From 56012487936c305a77b2f42295a8aed1e70b5dbe Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Thu, 31 Oct 2024 12:47:14 +0100 Subject: [PATCH] Retire 2.7 content --- _versions/2.7/guides/0-glossary.adoc | 18 - _versions/2.7/guides/README.adoc | 49 - _versions/2.7/guides/all-builditems.adoc | 15 - _versions/2.7/guides/all-config.adoc | 13 - _versions/2.7/guides/amazon-credentials.adoc | 5 - _versions/2.7/guides/amazon-lambda-http.adoc | 544 - _versions/2.7/guides/amazon-lambda.adoc | 623 - _versions/2.7/guides/amqp-dev-services.adoc | 53 - _versions/2.7/guides/amqp-reference.adoc | 802 - _versions/2.7/guides/amqp.adoc | 454 - .../apicurio-registry-dev-services.adoc | 60 - _versions/2.7/guides/attributes.adoc | 40 - .../2.7/guides/azure-functions-http.adoc | 123 - _versions/2.7/guides/blaze-persistence.adoc | 250 - .../guides/building-my-first-extension.adoc | 930 -- .../2.7/guides/building-native-image.adoc | 809 -- _versions/2.7/guides/cache.adoc | 833 -- _versions/2.7/guides/camel.adoc | 15 - _versions/2.7/guides/capabilities.adoc | 124 - _versions/2.7/guides/cassandra.adoc | 775 - _versions/2.7/guides/cdi-integration.adoc | 557 - _versions/2.7/guides/cdi-reference.adoc | 1030 -- _versions/2.7/guides/cdi.adoc | 481 - .../guides/centralized-log-management.adoc | 442 - .../2.7/guides/class-loading-reference.adoc | 215 - _versions/2.7/guides/cli-tooling.adoc | 526 - .../2.7/guides/command-mode-reference.adoc | 275 - .../conditional-extension-dependencies.adoc | 178 - .../2.7/guides/config-extending-support.adoc | 403 - _versions/2.7/guides/config-mappings.adoc | 772 - _versions/2.7/guides/config-reference.adoc | 557 - _versions/2.7/guides/config-yaml.adoc | 210 - _versions/2.7/guides/config.adoc | 243 - _versions/2.7/guides/container-image.adoc | 187 - _versions/2.7/guides/context-propagation.adoc | 293 - _versions/2.7/guides/continuous-testing.adoc | 164 - .../2.7/guides/credentials-provider.adoc | 191 - _versions/2.7/guides/datasource.adoc | 706 - .../2.7/guides/deploying-to-azure-cloud.adoc | 175 - .../2.7/guides/deploying-to-google-cloud.adoc | 294 - _versions/2.7/guides/deploying-to-heroku.adoc | 209 - .../2.7/guides/deploying-to-kubernetes.adoc | 1555 -- .../2.7/guides/deploying-to-openshift.adoc | 460 - .../2.7/guides/dev-mode-differences.adoc | 106 - _versions/2.7/guides/dev-services.adoc | 119 - _versions/2.7/guides/dev-ui.adoc | 402 - _versions/2.7/guides/docinfo.html | 45 - .../2.7/guides/duration-format-note.adoc | 9 - _versions/2.7/guides/elasticsearch.adoc | 498 - _versions/2.7/guides/extension-codestart.adoc | 286 - .../2.7/guides/extension-registry-user.adoc | 193 - _versions/2.7/guides/faq.adoc | 29 - _versions/2.7/guides/flyway.adoc | 223 - .../2.7/guides/funqy-amazon-lambda-http.adoc | 63 - _versions/2.7/guides/funqy-amazon-lambda.adoc | 300 - .../guides/funqy-azure-functions-http.adoc | 25 - .../2.7/guides/funqy-gcp-functions-http.adoc | 63 - _versions/2.7/guides/funqy-gcp-functions.adoc | 271 - _versions/2.7/guides/funqy-http.adoc | 300 - .../2.7/guides/funqy-knative-events.adoc | 380 - _versions/2.7/guides/funqy.adoc | 189 - _versions/2.7/guides/gcp-functions-http.adoc | 223 - _versions/2.7/guides/gcp-functions.adoc | 364 - .../2.7/guides/getting-started-reactive.adoc | 345 - .../2.7/guides/getting-started-testing.adoc | 1410 -- _versions/2.7/guides/getting-started.adoc | 493 - _versions/2.7/guides/gradle-config.adoc | 49 - _versions/2.7/guides/gradle-tooling.adoc | 573 - .../2.7/guides/grpc-getting-started.adoc | 428 - .../2.7/guides/grpc-service-consumption.adoc | 401 - .../guides/grpc-service-implementation.adoc | 396 - _versions/2.7/guides/grpc.adoc | 29 - _versions/2.7/guides/guides.md | 5 - .../guides/hibernate-orm-panache-kotlin.adoc | 217 - .../2.7/guides/hibernate-orm-panache.adoc | 1182 -- _versions/2.7/guides/hibernate-orm.adoc | 1098 -- .../guides/hibernate-reactive-panache.adoc | 1066 -- _versions/2.7/guides/hibernate-reactive.adoc | 240 - .../hibernate-search-orm-elasticsearch.adoc | 945 -- _versions/2.7/guides/http-reference.adoc | 374 - _versions/2.7/guides/ide-tooling.adoc | 161 - .../guides/images/amqp-guide-architecture.png | Bin 101788 -> 0 bytes .../guides/images/amqp-qs-app-screenshot.png | Bin 77603 -> 0 bytes .../guides/images/amqp-qs-architecture.png | Bin 177889 -> 0 bytes .../2.7/guides/images/architecture-phases.png | Bin 21594 -> 0 bytes .../2.7/guides/images/blocking-threads.png | Bin 378536 -> 0 bytes .../guides/images/build-time-principle.png | Bin 745348 -> 0 bytes .../2.7/guides/images/config-sources.png | Bin 35194 -> 0 bytes .../images/containerization-process.png | Bin 49966 -> 0 bytes .../guides/images/dev-ui-embedded-file.png | Bin 11979 -> 0 bytes .../2.7/guides/images/dev-ui-embedded.png | Bin 7434 -> 0 bytes .../2.7/guides/images/dev-ui-interactive.png | Bin 7530 -> 0 bytes .../guides/images/dev-ui-keycloak-admin.png | Bin 2297 -> 0 bytes ...v-ui-keycloak-client-credentials-grant.png | Bin 13086 -> 0 bytes .../images/dev-ui-keycloak-decoded-tokens.png | Bin 243797 -> 0 bytes .../guides/images/dev-ui-keycloak-image.png | Bin 70442 -> 0 bytes .../images/dev-ui-keycloak-login-error.png | Bin 10858 -> 0 bytes .../guides/images/dev-ui-keycloak-logout.png | Bin 403 -> 0 bytes .../images/dev-ui-keycloak-password-grant.png | Bin 18061 -> 0 bytes .../dev-ui-keycloak-sign-in-to-service.png | Bin 8209 -> 0 bytes .../images/dev-ui-keycloak-sign-in-to-spa.png | Bin 6036 -> 0 bytes .../dev-ui-keycloak-test-service-from-spa.png | Bin 21140 -> 0 bytes ...eycloak-test-service-swaggerui-graphql.png | Bin 14654 -> 0 bytes .../images/dev-ui-kogito-data-index-card.png | Bin 17162 -> 0 bytes .../images/dev-ui-kogito-data-index.png | Bin 170797 -> 0 bytes .../2.7/guides/images/dev-ui-message.png | Bin 22915 -> 0 bytes .../2.7/guides/images/dev-ui-oidc-card.png | Bin 13414 -> 0 bytes .../images/dev-ui-oidc-devconsole-card.png | Bin 15469 -> 0 bytes .../images/dev-ui-oidc-keycloak-card.png | Bin 15714 -> 0 bytes .../2.7/guides/images/dev-ui-overview.png | Bin 126641 -> 0 bytes _versions/2.7/guides/images/dev-ui-page.png | Bin 49924 -> 0 bytes .../images/getting-started-architecture.png | Bin 43653 -> 0 bytes .../guides/images/graphql-ui-screenshot01.png | Bin 49102 -> 0 bytes .../guides/images/health-ui-screenshot01.png | Bin 28313 -> 0 bytes .../2.7/guides/images/http-architecture.png | Bin 254375 -> 0 bytes .../guides/images/http-blocking-sequence.png | Bin 58135 -> 0 bytes .../guides/images/http-reactive-sequence.png | Bin 58230 -> 0 bytes .../images/kafka-guide-architecture.png | Bin 94163 -> 0 bytes .../images/kafka-one-app-one-consumer.png | Bin 158256 -> 0 bytes .../images/kafka-one-app-two-consumers.png | Bin 190660 -> 0 bytes .../guides/images/kafka-qs-app-screenshot.png | Bin 87162 -> 0 bytes .../guides/images/kafka-qs-architecture.png | Bin 144238 -> 0 bytes ...streams-guide-architecture-distributed.png | Bin 154128 -> 0 bytes .../kafka-streams-guide-architecture.png | Bin 177911 -> 0 bytes .../kafka-two-app-one-consumer-group.png | Bin 214043 -> 0 bytes .../kafka-two-app-two-consumer-groups.png | Bin 295975 -> 0 bytes .../keycloak-authorization-permissions.png | Bin 158171 -> 0 bytes .../kogito-DMN-guide-screenshot-DRG.png | Bin 29192 -> 0 bytes .../images/kogito-DMN-guide-screenshot-DT.png | Bin 78985 -> 0 bytes .../kogito-DMN-guide-screenshot-scesim.png | Bin 220658 -> 0 bytes .../guides/images/kogito-guide-screenshot.png | Bin 13867 -> 0 bytes .../images/native-executable-process.png | Bin 48349 -> 0 bytes ...erence-multi-flamegraph-joined-threads.svg | 7176 --------- ...ence-multi-flamegraph-separate-threads.svg | 12096 ---------------- .../images/native-reference-neo4j-db-info.png | Bin 31746 -> 0 bytes ...e-reference-perf-flamegraph-no-symbols.svg | 3984 ----- ...tive-reference-perf-flamegraph-symbols.svg | 4480 ------ .../openapi-swaggerui-guide-screenshot01.png | Bin 67946 -> 0 bytes .../openapi-swaggerui-guide-screenshot02.png | Bin 78515 -> 0 bytes .../optaplanner-time-table-app-screenshot.png | Bin 50289 -> 0 bytes ...ner-time-table-class-diagram-annotated.png | Bin 73695 -> 0 bytes ...aplanner-time-table-class-diagram-pure.png | Bin 45167 -> 0 bytes .../optaplanner-time-table-class-diagram.svg | 681 - .../2.7/guides/images/proactor-pattern.png | Bin 139220 -> 0 bytes .../guides/images/quarkus-reactive-core.png | Bin 216724 -> 0 bytes .../guides/images/quarkus-reactive-stack.png | Bin 233679 -> 0 bytes .../quarkus-vertx-guide-architecture.png | Bin 190445 -> 0 bytes .../images/rabbitmq-guide-architecture.png | Bin 101788 -> 0 bytes .../images/rabbitmq-qs-app-screenshot.png | Bin 77603 -> 0 bytes .../images/rabbitmq-qs-architecture.png | Bin 177889 -> 0 bytes .../2.7/guides/images/reactive-guide-code.png | Bin 352108 -> 0 bytes .../reactive-routes-guide-screenshot01.png | Bin 49345 -> 0 bytes .../2.7/guides/images/reactive-systems.png | Bin 59526 -> 0 bytes .../2.7/guides/images/reactive-thread.png | Bin 339050 -> 0 bytes .../images/registry-nexus-repository.png | Bin 62195 -> 0 bytes .../images/registry-nexus3-repository.png | Bin 59241 -> 0 bytes .../images/scheduling-task-architecture.png | Bin 50945 -> 0 bytes .../images/spring-web-guide-screenshot01.png | Bin 64063 -> 0 bytes .../stork-getting-started-architecture.png | Bin 153819 -> 0 bytes _versions/2.7/guides/images/stork-process.png | Bin 357793 -> 0 bytes .../images/validation-guide-architecture.png | Bin 46031 -> 0 bytes .../images/validation-guide-screenshot.png | Bin 14828 -> 0 bytes .../images/websocket-guide-architecture.png | Bin 48157 -> 0 bytes .../images/websocket-guide-screenshot.png | Bin 34148 -> 0 bytes .../build-native-container-parameters.adoc | 21 - .../devtools/build-native-container.adoc | 36 - .../includes/devtools/build-native.adoc | 36 - .../2.7/guides/includes/devtools/build.adoc | 36 - .../guides/includes/devtools/create-app.adoc | 105 - .../guides/includes/devtools/create-cli.adoc | 89 - .../includes/devtools/dev-parameters.adoc | 21 - .../2.7/guides/includes/devtools/dev.adoc | 36 - .../includes/devtools/extension-add.adoc | 21 - .../includes/devtools/extension-list.adoc | 21 - .../includes/devtools/prerequisites.adoc | 31 - .../2.7/guides/includes/devtools/test.adoc | 15 - _versions/2.7/guides/infinispan-client.adoc | 549 - .../2.7/guides/javascript/asciidoc-tabs.js | 86 - _versions/2.7/guides/javascript/config.js | 314 - _versions/2.7/guides/jms.adoc | 391 - _versions/2.7/guides/jreleaser.adoc | 824 -- _versions/2.7/guides/kafka-dev-services.adoc | 89 - .../kafka-reactive-getting-started.adoc | 509 - .../guides/kafka-schema-registry-avro.adoc | 705 - _versions/2.7/guides/kafka-streams.adoc | 1252 -- _versions/2.7/guides/kafka.adoc | 2295 --- ...kogito-dev-services-build-time-config.adoc | 54 - _versions/2.7/guides/kogito-dev-services.adoc | 65 - _versions/2.7/guides/kogito-dmn.adoc | 260 - _versions/2.7/guides/kogito-drl.adoc | 352 - _versions/2.7/guides/kogito-pmml.adoc | 243 - _versions/2.7/guides/kogito.adoc | 487 - _versions/2.7/guides/kotlin.adoc | 498 - _versions/2.7/guides/kubernetes-client.adoc | 470 - _versions/2.7/guides/kubernetes-config.adoc | 150 - _versions/2.7/guides/lifecycle.adoc | 248 - _versions/2.7/guides/liquibase-mongodb.adoc | 156 - _versions/2.7/guides/liquibase.adoc | 233 - _versions/2.7/guides/logging.adoc | 517 - _versions/2.7/guides/lra.adoc | 218 - _versions/2.7/guides/mailer-reference.adoc | 384 - _versions/2.7/guides/mailer.adoc | 220 - _versions/2.7/guides/maven-tooling.adoc | 1099 -- _versions/2.7/guides/micrometer.adoc | 598 - .../2.7/guides/mongodb-panache-kotlin.adoc | 200 - _versions/2.7/guides/mongodb-panache.adoc | 1203 -- _versions/2.7/guides/mongodb.adoc | 722 - _versions/2.7/guides/mutiny-primer.adoc | 340 - _versions/2.7/guides/native-and-ssl.adoc | 264 - _versions/2.7/guides/native-reference.adoc | 1565 -- _versions/2.7/guides/openapi-swaggerui.adoc | 539 - _versions/2.7/guides/opentelemetry.adoc | 358 - _versions/2.7/guides/opentracing.adoc | 324 - _versions/2.7/guides/optaplanner.adoc | 1099 -- _versions/2.7/guides/performance-measure.adoc | 244 - _versions/2.7/guides/picocli.adoc | 296 - _versions/2.7/guides/platform-include.adoc | 4 - _versions/2.7/guides/platform.adoc | 191 - .../2.7/guides/quarkus-blaze-persistence.adoc | 103 - _versions/2.7/guides/quarkus-intro.adoc | 79 - .../guides/quarkus-reactive-architecture.adoc | 199 - .../guides/quarkus-runtime-base-image.adoc | 126 - _versions/2.7/guides/quartz.adoc | 442 - _versions/2.7/guides/qute-reference.adoc | 2148 --- _versions/2.7/guides/qute.adoc | 533 - .../2.7/guides/rabbitmq-dev-services.adoc | 118 - _versions/2.7/guides/rabbitmq-reference.adoc | 847 -- _versions/2.7/guides/rabbitmq.adoc | 475 - _versions/2.7/guides/reactive-event-bus.adoc | 426 - _versions/2.7/guides/reactive-routes.adoc | 857 -- .../2.7/guides/reactive-sql-clients.adoc | 735 - _versions/2.7/guides/reaugmentation.adoc | 71 - _versions/2.7/guides/redis-dev-services.adoc | 38 - _versions/2.7/guides/redis-reference.adoc | 101 - _versions/2.7/guides/redis.adoc | 629 - .../2.7/guides/rest-client-multipart.adoc | 302 - .../2.7/guides/rest-client-reactive.adoc | 1004 -- _versions/2.7/guides/rest-client.adoc | 731 - _versions/2.7/guides/rest-data-panache.adoc | 433 - _versions/2.7/guides/rest-json.adoc | 718 - _versions/2.7/guides/resteasy-reactive.adoc | 2120 --- _versions/2.7/guides/scheduler-reference.adoc | 335 - _versions/2.7/guides/scheduler.adoc | 191 - _versions/2.7/guides/scripting.adoc | 440 - .../2.7/guides/security-authorization.adoc | 242 - .../security-built-in-authentication.adoc | 158 - .../2.7/guides/security-customization.adoc | 450 - _versions/2.7/guides/security-jdbc.adoc | 309 - _versions/2.7/guides/security-jpa.adoc | 418 - _versions/2.7/guides/security-jwt-build.adoc | 344 - _versions/2.7/guides/security-jwt.adoc | 1032 -- .../security-keycloak-authorization.adoc | 470 - _versions/2.7/guides/security-ldap.adoc | 252 - _versions/2.7/guides/security-oauth2.adoc | 459 - .../security-openid-connect-client.adoc | 956 -- .../security-openid-connect-dev-services.adoc | 373 - .../security-openid-connect-multitenancy.adoc | 469 - ...ity-openid-connect-web-authentication.adoc | 1312 -- .../2.7/guides/security-openid-connect.adoc | 1151 -- _versions/2.7/guides/security-properties.adoc | 147 - _versions/2.7/guides/security-testing.adoc | 112 - _versions/2.7/guides/security.adoc | 369 - .../2.7/guides/smallrye-fault-tolerance.adoc | 533 - .../2.7/guides/smallrye-graphql-client.adoc | 352 - _versions/2.7/guides/smallrye-graphql.adoc | 853 -- _versions/2.7/guides/smallrye-health.adoc | 447 - .../2.7/guides/smallrye-kafka-incoming.adoc | 175 - .../2.7/guides/smallrye-kafka-outgoing.adoc | 148 - _versions/2.7/guides/smallrye-metrics.adoc | 225 - .../guides/software-transactional-memory.adoc | 244 - .../2.7/guides/spring-boot-properties.adoc | 397 - _versions/2.7/guides/spring-cache.adoc | 270 - .../guides/spring-cloud-config-client.adoc | 155 - _versions/2.7/guides/spring-data-jpa.adoc | 625 - _versions/2.7/guides/spring-data-rest.adoc | 444 - _versions/2.7/guides/spring-di.adoc | 339 - _versions/2.7/guides/spring-scheduled.adoc | 243 - _versions/2.7/guides/spring-security.adoc | 441 - _versions/2.7/guides/spring-web.adoc | 530 - _versions/2.7/guides/status-include.adoc | 20 - _versions/2.7/guides/stork-reference.adoc | 347 - _versions/2.7/guides/stork.adoc | 381 - .../2.7/guides/stylesheet/asciidoc-tabs.css | 31 - _versions/2.7/guides/stylesheet/config.css | 159 - _versions/2.7/guides/tests-with-coverage.adoc | 456 - _versions/2.7/guides/tooling.adoc | 34 - _versions/2.7/guides/transaction.adoc | 247 - _versions/2.7/guides/upx.adoc | 72 - _versions/2.7/guides/validation.adoc | 439 - _versions/2.7/guides/vertx-reference.adoc | 1040 -- _versions/2.7/guides/vertx.adoc | 402 - _versions/2.7/guides/websockets.adoc | 242 - _versions/2.7/guides/writing-extensions.adoc | 3142 ---- .../writing-native-applications-tips.adoc | 454 - 294 files changed, 116769 deletions(-) delete mode 100644 _versions/2.7/guides/0-glossary.adoc delete mode 100644 _versions/2.7/guides/README.adoc delete mode 100644 _versions/2.7/guides/all-builditems.adoc delete mode 100644 _versions/2.7/guides/all-config.adoc delete mode 100644 _versions/2.7/guides/amazon-credentials.adoc delete mode 100644 _versions/2.7/guides/amazon-lambda-http.adoc delete mode 100644 _versions/2.7/guides/amazon-lambda.adoc delete mode 100644 _versions/2.7/guides/amqp-dev-services.adoc delete mode 100644 _versions/2.7/guides/amqp-reference.adoc delete mode 100644 _versions/2.7/guides/amqp.adoc delete mode 100644 _versions/2.7/guides/apicurio-registry-dev-services.adoc delete mode 100644 _versions/2.7/guides/attributes.adoc delete mode 100644 _versions/2.7/guides/azure-functions-http.adoc delete mode 100644 _versions/2.7/guides/blaze-persistence.adoc delete mode 100644 _versions/2.7/guides/building-my-first-extension.adoc delete mode 100644 _versions/2.7/guides/building-native-image.adoc delete mode 100644 _versions/2.7/guides/cache.adoc delete mode 100644 _versions/2.7/guides/camel.adoc delete mode 100644 _versions/2.7/guides/capabilities.adoc delete mode 100644 _versions/2.7/guides/cassandra.adoc delete mode 100644 _versions/2.7/guides/cdi-integration.adoc delete mode 100644 _versions/2.7/guides/cdi-reference.adoc delete mode 100644 _versions/2.7/guides/cdi.adoc delete mode 100644 _versions/2.7/guides/centralized-log-management.adoc delete mode 100644 _versions/2.7/guides/class-loading-reference.adoc delete mode 100644 _versions/2.7/guides/cli-tooling.adoc delete mode 100644 _versions/2.7/guides/command-mode-reference.adoc delete mode 100644 _versions/2.7/guides/conditional-extension-dependencies.adoc delete mode 100644 _versions/2.7/guides/config-extending-support.adoc delete mode 100644 _versions/2.7/guides/config-mappings.adoc delete mode 100644 _versions/2.7/guides/config-reference.adoc delete mode 100644 _versions/2.7/guides/config-yaml.adoc delete mode 100644 _versions/2.7/guides/config.adoc delete mode 100644 _versions/2.7/guides/container-image.adoc delete mode 100644 _versions/2.7/guides/context-propagation.adoc delete mode 100644 _versions/2.7/guides/continuous-testing.adoc delete mode 100644 _versions/2.7/guides/credentials-provider.adoc delete mode 100644 _versions/2.7/guides/datasource.adoc delete mode 100644 _versions/2.7/guides/deploying-to-azure-cloud.adoc delete mode 100644 _versions/2.7/guides/deploying-to-google-cloud.adoc delete mode 100644 _versions/2.7/guides/deploying-to-heroku.adoc delete mode 100644 _versions/2.7/guides/deploying-to-kubernetes.adoc delete mode 100644 _versions/2.7/guides/deploying-to-openshift.adoc delete mode 100644 _versions/2.7/guides/dev-mode-differences.adoc delete mode 100644 _versions/2.7/guides/dev-services.adoc delete mode 100644 _versions/2.7/guides/dev-ui.adoc delete mode 100644 _versions/2.7/guides/docinfo.html delete mode 100644 _versions/2.7/guides/duration-format-note.adoc delete mode 100644 _versions/2.7/guides/elasticsearch.adoc delete mode 100644 _versions/2.7/guides/extension-codestart.adoc delete mode 100644 _versions/2.7/guides/extension-registry-user.adoc delete mode 100644 _versions/2.7/guides/faq.adoc delete mode 100644 _versions/2.7/guides/flyway.adoc delete mode 100644 _versions/2.7/guides/funqy-amazon-lambda-http.adoc delete mode 100644 _versions/2.7/guides/funqy-amazon-lambda.adoc delete mode 100644 _versions/2.7/guides/funqy-azure-functions-http.adoc delete mode 100644 _versions/2.7/guides/funqy-gcp-functions-http.adoc delete mode 100644 _versions/2.7/guides/funqy-gcp-functions.adoc delete mode 100644 _versions/2.7/guides/funqy-http.adoc delete mode 100644 _versions/2.7/guides/funqy-knative-events.adoc delete mode 100644 _versions/2.7/guides/funqy.adoc delete mode 100644 _versions/2.7/guides/gcp-functions-http.adoc delete mode 100644 _versions/2.7/guides/gcp-functions.adoc delete mode 100644 _versions/2.7/guides/getting-started-reactive.adoc delete mode 100644 _versions/2.7/guides/getting-started-testing.adoc delete mode 100644 _versions/2.7/guides/getting-started.adoc delete mode 100644 _versions/2.7/guides/gradle-config.adoc delete mode 100644 _versions/2.7/guides/gradle-tooling.adoc delete mode 100644 _versions/2.7/guides/grpc-getting-started.adoc delete mode 100644 _versions/2.7/guides/grpc-service-consumption.adoc delete mode 100644 _versions/2.7/guides/grpc-service-implementation.adoc delete mode 100644 _versions/2.7/guides/grpc.adoc delete mode 100644 _versions/2.7/guides/guides.md delete mode 100644 _versions/2.7/guides/hibernate-orm-panache-kotlin.adoc delete mode 100644 _versions/2.7/guides/hibernate-orm-panache.adoc delete mode 100644 _versions/2.7/guides/hibernate-orm.adoc delete mode 100644 _versions/2.7/guides/hibernate-reactive-panache.adoc delete mode 100644 _versions/2.7/guides/hibernate-reactive.adoc delete mode 100644 _versions/2.7/guides/hibernate-search-orm-elasticsearch.adoc delete mode 100644 _versions/2.7/guides/http-reference.adoc delete mode 100644 _versions/2.7/guides/ide-tooling.adoc delete mode 100644 _versions/2.7/guides/images/amqp-guide-architecture.png delete mode 100644 _versions/2.7/guides/images/amqp-qs-app-screenshot.png delete mode 100644 _versions/2.7/guides/images/amqp-qs-architecture.png delete mode 100644 _versions/2.7/guides/images/architecture-phases.png delete mode 100644 _versions/2.7/guides/images/blocking-threads.png delete mode 100644 _versions/2.7/guides/images/build-time-principle.png delete mode 100644 _versions/2.7/guides/images/config-sources.png delete mode 100644 _versions/2.7/guides/images/containerization-process.png delete mode 100644 _versions/2.7/guides/images/dev-ui-embedded-file.png delete mode 100644 _versions/2.7/guides/images/dev-ui-embedded.png delete mode 100644 _versions/2.7/guides/images/dev-ui-interactive.png delete mode 100644 _versions/2.7/guides/images/dev-ui-keycloak-admin.png delete mode 100644 _versions/2.7/guides/images/dev-ui-keycloak-client-credentials-grant.png delete mode 100644 _versions/2.7/guides/images/dev-ui-keycloak-decoded-tokens.png delete mode 100644 _versions/2.7/guides/images/dev-ui-keycloak-image.png delete mode 100644 _versions/2.7/guides/images/dev-ui-keycloak-login-error.png delete mode 100644 _versions/2.7/guides/images/dev-ui-keycloak-logout.png delete mode 100644 _versions/2.7/guides/images/dev-ui-keycloak-password-grant.png delete mode 100644 _versions/2.7/guides/images/dev-ui-keycloak-sign-in-to-service.png delete mode 100644 _versions/2.7/guides/images/dev-ui-keycloak-sign-in-to-spa.png delete mode 100644 _versions/2.7/guides/images/dev-ui-keycloak-test-service-from-spa.png delete mode 100644 _versions/2.7/guides/images/dev-ui-keycloak-test-service-swaggerui-graphql.png delete mode 100644 _versions/2.7/guides/images/dev-ui-kogito-data-index-card.png delete mode 100644 _versions/2.7/guides/images/dev-ui-kogito-data-index.png delete mode 100644 _versions/2.7/guides/images/dev-ui-message.png delete mode 100644 _versions/2.7/guides/images/dev-ui-oidc-card.png delete mode 100644 _versions/2.7/guides/images/dev-ui-oidc-devconsole-card.png delete mode 100644 _versions/2.7/guides/images/dev-ui-oidc-keycloak-card.png delete mode 100644 _versions/2.7/guides/images/dev-ui-overview.png delete mode 100644 _versions/2.7/guides/images/dev-ui-page.png delete mode 100644 _versions/2.7/guides/images/getting-started-architecture.png delete mode 100644 _versions/2.7/guides/images/graphql-ui-screenshot01.png delete mode 100644 _versions/2.7/guides/images/health-ui-screenshot01.png delete mode 100644 _versions/2.7/guides/images/http-architecture.png delete mode 100644 _versions/2.7/guides/images/http-blocking-sequence.png delete mode 100644 _versions/2.7/guides/images/http-reactive-sequence.png delete mode 100644 _versions/2.7/guides/images/kafka-guide-architecture.png delete mode 100644 _versions/2.7/guides/images/kafka-one-app-one-consumer.png delete mode 100644 _versions/2.7/guides/images/kafka-one-app-two-consumers.png delete mode 100644 _versions/2.7/guides/images/kafka-qs-app-screenshot.png delete mode 100644 _versions/2.7/guides/images/kafka-qs-architecture.png delete mode 100644 _versions/2.7/guides/images/kafka-streams-guide-architecture-distributed.png delete mode 100644 _versions/2.7/guides/images/kafka-streams-guide-architecture.png delete mode 100644 _versions/2.7/guides/images/kafka-two-app-one-consumer-group.png delete mode 100644 _versions/2.7/guides/images/kafka-two-app-two-consumer-groups.png delete mode 100644 _versions/2.7/guides/images/keycloak-authorization-permissions.png delete mode 100644 _versions/2.7/guides/images/kogito-DMN-guide-screenshot-DRG.png delete mode 100644 _versions/2.7/guides/images/kogito-DMN-guide-screenshot-DT.png delete mode 100644 _versions/2.7/guides/images/kogito-DMN-guide-screenshot-scesim.png delete mode 100644 _versions/2.7/guides/images/kogito-guide-screenshot.png delete mode 100644 _versions/2.7/guides/images/native-executable-process.png delete mode 100644 _versions/2.7/guides/images/native-reference-multi-flamegraph-joined-threads.svg delete mode 100644 _versions/2.7/guides/images/native-reference-multi-flamegraph-separate-threads.svg delete mode 100644 _versions/2.7/guides/images/native-reference-neo4j-db-info.png delete mode 100644 _versions/2.7/guides/images/native-reference-perf-flamegraph-no-symbols.svg delete mode 100644 _versions/2.7/guides/images/native-reference-perf-flamegraph-symbols.svg delete mode 100644 _versions/2.7/guides/images/openapi-swaggerui-guide-screenshot01.png delete mode 100644 _versions/2.7/guides/images/openapi-swaggerui-guide-screenshot02.png delete mode 100644 _versions/2.7/guides/images/optaplanner-time-table-app-screenshot.png delete mode 100644 _versions/2.7/guides/images/optaplanner-time-table-class-diagram-annotated.png delete mode 100644 _versions/2.7/guides/images/optaplanner-time-table-class-diagram-pure.png delete mode 100644 _versions/2.7/guides/images/optaplanner-time-table-class-diagram.svg delete mode 100644 _versions/2.7/guides/images/proactor-pattern.png delete mode 100644 _versions/2.7/guides/images/quarkus-reactive-core.png delete mode 100644 _versions/2.7/guides/images/quarkus-reactive-stack.png delete mode 100644 _versions/2.7/guides/images/quarkus-vertx-guide-architecture.png delete mode 100644 _versions/2.7/guides/images/rabbitmq-guide-architecture.png delete mode 100644 _versions/2.7/guides/images/rabbitmq-qs-app-screenshot.png delete mode 100644 _versions/2.7/guides/images/rabbitmq-qs-architecture.png delete mode 100644 _versions/2.7/guides/images/reactive-guide-code.png delete mode 100644 _versions/2.7/guides/images/reactive-routes-guide-screenshot01.png delete mode 100644 _versions/2.7/guides/images/reactive-systems.png delete mode 100644 _versions/2.7/guides/images/reactive-thread.png delete mode 100644 _versions/2.7/guides/images/registry-nexus-repository.png delete mode 100644 _versions/2.7/guides/images/registry-nexus3-repository.png delete mode 100644 _versions/2.7/guides/images/scheduling-task-architecture.png delete mode 100644 _versions/2.7/guides/images/spring-web-guide-screenshot01.png delete mode 100644 _versions/2.7/guides/images/stork-getting-started-architecture.png delete mode 100644 _versions/2.7/guides/images/stork-process.png delete mode 100644 _versions/2.7/guides/images/validation-guide-architecture.png delete mode 100644 _versions/2.7/guides/images/validation-guide-screenshot.png delete mode 100644 _versions/2.7/guides/images/websocket-guide-architecture.png delete mode 100644 _versions/2.7/guides/images/websocket-guide-screenshot.png delete mode 100644 _versions/2.7/guides/includes/devtools/build-native-container-parameters.adoc delete mode 100644 _versions/2.7/guides/includes/devtools/build-native-container.adoc delete mode 100644 _versions/2.7/guides/includes/devtools/build-native.adoc delete mode 100644 _versions/2.7/guides/includes/devtools/build.adoc delete mode 100644 _versions/2.7/guides/includes/devtools/create-app.adoc delete mode 100644 _versions/2.7/guides/includes/devtools/create-cli.adoc delete mode 100644 _versions/2.7/guides/includes/devtools/dev-parameters.adoc delete mode 100644 _versions/2.7/guides/includes/devtools/dev.adoc delete mode 100644 _versions/2.7/guides/includes/devtools/extension-add.adoc delete mode 100644 _versions/2.7/guides/includes/devtools/extension-list.adoc delete mode 100644 _versions/2.7/guides/includes/devtools/prerequisites.adoc delete mode 100644 _versions/2.7/guides/includes/devtools/test.adoc delete mode 100644 _versions/2.7/guides/infinispan-client.adoc delete mode 100644 _versions/2.7/guides/javascript/asciidoc-tabs.js delete mode 100644 _versions/2.7/guides/javascript/config.js delete mode 100644 _versions/2.7/guides/jms.adoc delete mode 100644 _versions/2.7/guides/jreleaser.adoc delete mode 100644 _versions/2.7/guides/kafka-dev-services.adoc delete mode 100644 _versions/2.7/guides/kafka-reactive-getting-started.adoc delete mode 100644 _versions/2.7/guides/kafka-schema-registry-avro.adoc delete mode 100644 _versions/2.7/guides/kafka-streams.adoc delete mode 100644 _versions/2.7/guides/kafka.adoc delete mode 100644 _versions/2.7/guides/kogito-dev-services-build-time-config.adoc delete mode 100644 _versions/2.7/guides/kogito-dev-services.adoc delete mode 100644 _versions/2.7/guides/kogito-dmn.adoc delete mode 100644 _versions/2.7/guides/kogito-drl.adoc delete mode 100644 _versions/2.7/guides/kogito-pmml.adoc delete mode 100644 _versions/2.7/guides/kogito.adoc delete mode 100644 _versions/2.7/guides/kotlin.adoc delete mode 100644 _versions/2.7/guides/kubernetes-client.adoc delete mode 100644 _versions/2.7/guides/kubernetes-config.adoc delete mode 100644 _versions/2.7/guides/lifecycle.adoc delete mode 100644 _versions/2.7/guides/liquibase-mongodb.adoc delete mode 100644 _versions/2.7/guides/liquibase.adoc delete mode 100644 _versions/2.7/guides/logging.adoc delete mode 100644 _versions/2.7/guides/lra.adoc delete mode 100644 _versions/2.7/guides/mailer-reference.adoc delete mode 100644 _versions/2.7/guides/mailer.adoc delete mode 100644 _versions/2.7/guides/maven-tooling.adoc delete mode 100644 _versions/2.7/guides/micrometer.adoc delete mode 100644 _versions/2.7/guides/mongodb-panache-kotlin.adoc delete mode 100644 _versions/2.7/guides/mongodb-panache.adoc delete mode 100644 _versions/2.7/guides/mongodb.adoc delete mode 100644 _versions/2.7/guides/mutiny-primer.adoc delete mode 100644 _versions/2.7/guides/native-and-ssl.adoc delete mode 100644 _versions/2.7/guides/native-reference.adoc delete mode 100644 _versions/2.7/guides/openapi-swaggerui.adoc delete mode 100644 _versions/2.7/guides/opentelemetry.adoc delete mode 100644 _versions/2.7/guides/opentracing.adoc delete mode 100644 _versions/2.7/guides/optaplanner.adoc delete mode 100644 _versions/2.7/guides/performance-measure.adoc delete mode 100644 _versions/2.7/guides/picocli.adoc delete mode 100644 _versions/2.7/guides/platform-include.adoc delete mode 100644 _versions/2.7/guides/platform.adoc delete mode 100644 _versions/2.7/guides/quarkus-blaze-persistence.adoc delete mode 100644 _versions/2.7/guides/quarkus-intro.adoc delete mode 100644 _versions/2.7/guides/quarkus-reactive-architecture.adoc delete mode 100644 _versions/2.7/guides/quarkus-runtime-base-image.adoc delete mode 100644 _versions/2.7/guides/quartz.adoc delete mode 100644 _versions/2.7/guides/qute-reference.adoc delete mode 100644 _versions/2.7/guides/qute.adoc delete mode 100644 _versions/2.7/guides/rabbitmq-dev-services.adoc delete mode 100644 _versions/2.7/guides/rabbitmq-reference.adoc delete mode 100644 _versions/2.7/guides/rabbitmq.adoc delete mode 100644 _versions/2.7/guides/reactive-event-bus.adoc delete mode 100644 _versions/2.7/guides/reactive-routes.adoc delete mode 100644 _versions/2.7/guides/reactive-sql-clients.adoc delete mode 100644 _versions/2.7/guides/reaugmentation.adoc delete mode 100644 _versions/2.7/guides/redis-dev-services.adoc delete mode 100644 _versions/2.7/guides/redis-reference.adoc delete mode 100644 _versions/2.7/guides/redis.adoc delete mode 100644 _versions/2.7/guides/rest-client-multipart.adoc delete mode 100644 _versions/2.7/guides/rest-client-reactive.adoc delete mode 100644 _versions/2.7/guides/rest-client.adoc delete mode 100644 _versions/2.7/guides/rest-data-panache.adoc delete mode 100644 _versions/2.7/guides/rest-json.adoc delete mode 100644 _versions/2.7/guides/resteasy-reactive.adoc delete mode 100644 _versions/2.7/guides/scheduler-reference.adoc delete mode 100644 _versions/2.7/guides/scheduler.adoc delete mode 100644 _versions/2.7/guides/scripting.adoc delete mode 100644 _versions/2.7/guides/security-authorization.adoc delete mode 100644 _versions/2.7/guides/security-built-in-authentication.adoc delete mode 100644 _versions/2.7/guides/security-customization.adoc delete mode 100644 _versions/2.7/guides/security-jdbc.adoc delete mode 100644 _versions/2.7/guides/security-jpa.adoc delete mode 100644 _versions/2.7/guides/security-jwt-build.adoc delete mode 100644 _versions/2.7/guides/security-jwt.adoc delete mode 100644 _versions/2.7/guides/security-keycloak-authorization.adoc delete mode 100644 _versions/2.7/guides/security-ldap.adoc delete mode 100644 _versions/2.7/guides/security-oauth2.adoc delete mode 100644 _versions/2.7/guides/security-openid-connect-client.adoc delete mode 100644 _versions/2.7/guides/security-openid-connect-dev-services.adoc delete mode 100644 _versions/2.7/guides/security-openid-connect-multitenancy.adoc delete mode 100644 _versions/2.7/guides/security-openid-connect-web-authentication.adoc delete mode 100644 _versions/2.7/guides/security-openid-connect.adoc delete mode 100644 _versions/2.7/guides/security-properties.adoc delete mode 100644 _versions/2.7/guides/security-testing.adoc delete mode 100644 _versions/2.7/guides/security.adoc delete mode 100644 _versions/2.7/guides/smallrye-fault-tolerance.adoc delete mode 100644 _versions/2.7/guides/smallrye-graphql-client.adoc delete mode 100644 _versions/2.7/guides/smallrye-graphql.adoc delete mode 100644 _versions/2.7/guides/smallrye-health.adoc delete mode 100644 _versions/2.7/guides/smallrye-kafka-incoming.adoc delete mode 100644 _versions/2.7/guides/smallrye-kafka-outgoing.adoc delete mode 100644 _versions/2.7/guides/smallrye-metrics.adoc delete mode 100644 _versions/2.7/guides/software-transactional-memory.adoc delete mode 100644 _versions/2.7/guides/spring-boot-properties.adoc delete mode 100644 _versions/2.7/guides/spring-cache.adoc delete mode 100644 _versions/2.7/guides/spring-cloud-config-client.adoc delete mode 100644 _versions/2.7/guides/spring-data-jpa.adoc delete mode 100644 _versions/2.7/guides/spring-data-rest.adoc delete mode 100644 _versions/2.7/guides/spring-di.adoc delete mode 100644 _versions/2.7/guides/spring-scheduled.adoc delete mode 100644 _versions/2.7/guides/spring-security.adoc delete mode 100644 _versions/2.7/guides/spring-web.adoc delete mode 100644 _versions/2.7/guides/status-include.adoc delete mode 100644 _versions/2.7/guides/stork-reference.adoc delete mode 100644 _versions/2.7/guides/stork.adoc delete mode 100644 _versions/2.7/guides/stylesheet/asciidoc-tabs.css delete mode 100644 _versions/2.7/guides/stylesheet/config.css delete mode 100644 _versions/2.7/guides/tests-with-coverage.adoc delete mode 100644 _versions/2.7/guides/tooling.adoc delete mode 100644 _versions/2.7/guides/transaction.adoc delete mode 100644 _versions/2.7/guides/upx.adoc delete mode 100644 _versions/2.7/guides/validation.adoc delete mode 100644 _versions/2.7/guides/vertx-reference.adoc delete mode 100644 _versions/2.7/guides/vertx.adoc delete mode 100644 _versions/2.7/guides/websockets.adoc delete mode 100644 _versions/2.7/guides/writing-extensions.adoc delete mode 100644 _versions/2.7/guides/writing-native-applications-tips.adoc diff --git a/_versions/2.7/guides/0-glossary.adoc b/_versions/2.7/guides/0-glossary.adoc deleted file mode 100644 index 259e309503e..00000000000 --- a/_versions/2.7/guides/0-glossary.adoc +++ /dev/null @@ -1,18 +0,0 @@ -= Glossary - -include::./attributes.adoc[] - -This is a collection of preferred term in the documentation and website. -Please stay within these terms for consistency. - -* Live coding:: for our `quarkus:dev` capability -* GraalVM native image:: preferred term for the VM creating native executable. No space. -* Substrate VM:: non-preferred. Exclude. -* Native Executable:: the executable that is compiled to native 1s and 0s -* Docker image:: for the actual `Dockerfile` definition and when the tool chain is involved -* Container:: when we discuss Quarkus running in... containers -* Supersonic Subatomic Java:: our tagline -* Kubernetes Native Java:: our preferred tagline to say that we rock for containers -* Developer Joy:: for everything going from live reload to the opinionated layer to a single config file -* Unify Imperative and Reactive:: imperative and reactive. 'Nuff said. -* Best of breed frameworks and standards:: when we explain our stack diff --git a/_versions/2.7/guides/README.adoc b/_versions/2.7/guides/README.adoc deleted file mode 100644 index ccb24bfec4d..00000000000 --- a/_versions/2.7/guides/README.adoc +++ /dev/null @@ -1,49 +0,0 @@ -= How to Create Quarkus Documentation -include::./attributes.adoc[] - -This guide describes the asciidoc format and conventions that Quarkus has adopted. - -== References - -The following links provide background on the general conventions and Asciidoc syntax. - -* https://redhat-documentation.github.io/asciidoc-markup-conventions/[AsciiDoc Mark-up Quick Reference for Documentation] -* http://asciidoctor.org/docs/user-manual/[Asciidoctor User Manual] -* http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/[AsciiDoc Syntax Quick Reference] - -== Variables for Use in Documents - -The following variables externalize key information that can change over time, and so references -to such information should be done by using the variable inside of {} curly brackets. The -complete list of externalized variables for use is given in the following table: - -.Variables -[cols="()); - request.getRequestContext().getAuthorizer().getJwt().getClaims().put("cognito:username", "Bill"); - - given() - .contentType("application/json") - .accept("application/json") - .body(request) - .when() - .post("/_lambda_") - .then() - .statusCode(200) - .body("body", equalTo("Bill")); - } ----- - -The above example simulates sending a Cognito principal with an HTTP request to your HTTP Lambda. - -If you want to hand code raw events for the AWS HTTP API, the AWS Lambda library has the request event type which is -`com.amazonaws.services.lambda.runtime.events.APIGatewayV2HTTPEvent` and the response event type -of `com.amazonaws.services.lambda.runtime.events.APIGatewayV2HTTPResponse`. This corresponds -to the `quarkus-amazon-lambda-http` extension and the AWS HTTP API. - -If you want to hand code raw events for the AWS REST API, Quarkus has its own implementation: `io.quarkus.amazon.lambda.http.model.AwsProxyRequest` -and `io.quarkus.amazon.lambda.http.model.AwsProxyResponse`. This corresponds -to `quarkus-amazon-lambda-rest` extension and the AWS REST API. - -The mock event server is also started for `@NativeImageTest` unit tests so will work -with native binaries too. All this provides similar functionality to the SAM CLI local testing, without the overhead of Docker. - -Finally, if port 8080 or port 8081 is not available on your computer, you can modify the dev -and test mode ports with application.properties - -[source, subs=attributes+] ----- -quarkus.lambda.mock-event-server.dev-port=8082 -quarkus.lambda.mock-event-server.test-port=8083 ----- - - - -== Simulate Amazon Lambda Deployment with SAM CLI - -The AWS SAM CLI allows you to run your lambda's locally on your laptop in a simulated Lambda environment. This requires Docker to be installed. -After you have built your Maven project, execute this command: - -[source,bash,subs=attributes+] ----- -sam local start-api --template target/sam.jvm.yaml ----- - -This will start a Docker container that mimics Amazon's Lambda's deployment environment. Once the environment -is started you can invoke the example lambda in your browser by going to: - -http://127.0.0.1:3000/hello - -In the console you'll see startup messages from the lambda. This particular deployment starts a JVM and loads your -lambda as pure Java. - - -== Deploy to AWS - -[source,bash,subs=attributes+] ----- -sam deploy -t target/sam.jvm.yaml -g ----- - -Answer all the questions and your lambda will be deployed and the necessary hooks to the API Gateway will be set up. If -everything deploys successfully, the root URL of your microservice will be output to the console. Something like this: - ----- -Key LambdaHttpApi -Description URL for application -Value https://234asdf234as.execute-api.us-east-1.amazonaws.com/ ----- - -The `Value` attribute is the root URL for your lambda. Copy it to your browser and add `hello` at the end. - -[NOTE] -Responses for binary types will be automatically encoded with base64. This is different than the behavior using -`quarkus:dev` which will return the raw bytes. Amazon's API has additional restrictions requiring the base64 encoding. -In general, client code will automatically handle this encoding but in certain custom situations, you should be aware -you may need to manually manage that encoding. - -== Deploying a native executable - -To deploy a native executable, you must build it with GraalVM. - -include::includes/devtools/build-native-container.adoc[] - -You can then test the executable locally with sam local - -[source,bash,subs=attributes+] ----- -sam local start-api --template target/sam.native.yaml ----- - -To deploy to AWS Lambda: -[source,bash,subs=attributes+] ----- -sam deploy -t target/sam.native.yaml -g ----- - -== Examine the POM - -There is nothing special about the POM other than the inclusion of the `quarkus-amazon-lambda-http` extension -(if you are deploying an AWS Gateway HTTP API) or the `quarkus-amazon-lambda-rest` extension (if you are deploy an AWS Gateway REST API). -These extensions automatically generate everything you might need for your lambda deployment. - -Also, at least in the generated Maven archetype `pom.xml`, the `quarkus-resteasy`, `quarkus-reactive-routes`, and `quarkus-undertow` -dependencies are all optional. Pick which HTTP framework(s) you want to use (JAX-RS, Reactive Routes, and/or Servlet) and -remove the other dependencies to shrink your deployment. - -=== Examine sam.yaml - -The `sam.yaml` syntax is beyond the scope of this document. There's a couple of things that must be highlighted just in case you are -going to craft your own custom `sam.yaml` deployment files. - -The first thing to note is that for pure Java lambda deployments require a specific handler class. -Do not change the Lambda handler name. - -[source, subs=attributes+] ----- - Properties: - Handler: io.quarkus.amazon.lambda.runtime.QuarkusStreamHandler::handleRequest - Runtime: java11 ----- - -This handler is a bridge between the lambda runtime and the Quarkus HTTP framework you are using (JAX-RS, Servlet, etc.) - -If you want to go native, there's an environment variable that must be set for native GraalVM deployments. If you look at `sam.native.yaml` -you'll see this: - -[source, subs=attributes+] ----- - Environment: - Variables: - DISABLE_SIGNAL_HANDLERS: true ----- - -This environment variable resolves some incompatibilities between Quarkus and the Amazon Lambda Custom Runtime environment. - -Finally, there is one specific thing for AWS Gateway REST API deployments. -That API assumes that HTTP response bodies are text unless you explicitly tell it which media types are -binary through configuration. To make things easier, the Quarkus extension forces a binary (base 64) encoding of all -HTTP response messages and the `sam.yaml` file must configure the API Gateway to assume all media types are binary: - -[source, subs=attributes+] ----- - Globals: - Api: - EndpointConfiguration: REGIONAL - BinaryMediaTypes: - - "*/*" ----- - -== Injectable AWS Context Variables - -If you are using RESTEasy and JAX-RS, you can inject various AWS Context variables into your JAX-RS resource classes -using the JAX-RS `@Context` annotation. - -For the AWS HTTP API you can inject the AWS variables `com.amazonaws.services.lambda.runtime.Context` and -`com.amazonaws.services.lambda.runtime.events.APIGatewayV2HTTPEvent`. Here is an example: - -[source, java] ----- -import javax.ws.rs.core.Context; -import com.amazonaws.services.lambda.runtime.events.APIGatewayV2HTTPEvent; - - -@Path("/myresource") -public class MyResource { - @GET - public String ctx(@Context com.amazonaws.services.lambda.runtime.Context ctx) { } - - @GET - public String event(@Context APIGatewayV2HTTPEvent event) { } - - @GET - public String requestContext(@Context APIGatewayV2HTTPEvent.RequestContext req) { } - - -} ----- - -For the AWS REST API you can inject the AWS variables `com.amazonaws.services.lambda.runtime.Context` and -`io.quarkus.amazon.lambda.http.model.AwsProxyRequestContext`. Here is an example: - -[source, java] ----- -import javax.ws.rs.core.Context; -import io.quarkus.amazon.lambda.http.model.AwsProxyRequestContext; -import io.quarkus.amazon.lambda.http.model.AwsProxyRequest; - - -@Path("/myresource") -public class MyResource { - @GET - public String ctx(@Context com.amazonaws.services.lambda.runtime.Context ctx) { } - - @GET - public String reqContext(@Context AwsProxyRequestContext req) { } - - @GET - public String req(@Context AwsProxyRequest req) { } - -} ----- - -== Tracing with AWS XRay and GraalVM - -If you are building native images, and want to use https://aws.amazon.com/xray[AWS X-Ray Tracing] with your lambda -you will need to include `quarkus-amazon-lambda-xray` as a dependency in your pom. The AWS X-Ray -library is not fully compatible with GraalVM so we had to do some integration work to make this work. - -== Security Integration - -When you invoke an HTTP request on the API Gateway, the Gateway turns that HTTP request into a JSON event document that is -forwarded to a Quarkus Lambda. The Quarkus Lambda parses this json and converts in into an internal representation of an HTTP -request that can be consumed by any HTTP framework Quarkus supports (JAX-RS, servlet, Reactive Routes). - -API Gateway supports many different ways to securely invoke on your HTTP endpoints that are backed by Lambda and Quarkus. -If you enable it, Quarkus will automatically parse relevant parts of the https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html[event json document] -and look for security based metadata and register a `java.security.Principal` internally that can be looked up in JAX-RS -by injecting a `javax.ws.rs.core.SecurityContext`, via `HttpServletRequest.getUserPrincipal()` in servlet, and `RouteContext.user()` in Reactive Routes. -If you want more security information, the `Principal` object can be typecast to -a class that will give you more information. - -To enable this security feature, add this to your `application.properties` file: ----- -quarkus.lambda-http.enable-security=true ----- - - -Here's how its mapped: - -.HTTP `quarkus-amazon-lambda-http` -[options="header"] -|======================= -|Auth Type |Principal Class |Json path of Principal Name -|Cognito JWT |`io.quarkus.amazon.lambda.http.CognitoPrincipal`|`requestContext.authorizer.jwt.claims.cognito:username` -|IAM |`io.quarkus.amazon.lambda.http.IAMPrincipal` |`requestContext.authorizer.iam.userId` -|Custom Lambda |`io.quarkus.amazon.lambda.http.CustomPrincipal` |`requestContext.authorizer.lambda.principalId` - -|======================= - -.REST `quarkus-amazon-lambda-rest` -[options="header"] -|======================= -|Auth Type |Principal Class |Json path of Principal Name -|Cognito |`io.quarkus.amazon.lambda.http.CognitoPrincipal`|`requestContext.authorizer.claims.cognito:username` -|IAM |`io.quarkus.amazon.lambda.http.IAMPrincipal` |`requestContext.identity.user` -|Custom Lambda |`io.quarkus.amazon.lambda.http.CustomPrincipal` |`requestContext.authorizer.principalId` - -|======================= - -== Custom Security Integration - -The default support for AWS security only maps the principal name to Quarkus security -APIs and does nothing to map claims or roles or permissions. You have can full control -how security metadata in the lambda HTTP event is mapped to Quarkus security APIs using -implementations of the `io.quarkus.amazon.lambda.http.LambdaIdentityProvider` -interface. By implementing this interface, you can do things like define role mappings for your principal -or publish additional attributes provided by IAM or Cognito or your Custom Lambda security integration. - -.HTTP `quarkus-amazon-lambda-http` -[source, java] ----- -package io.quarkus.amazon.lambda.http; - -/** - * Helper interface that removes some boilerplate for creating - * an IdentityProvider that processes APIGatewayV2HTTPEvent - */ -public interface LambdaIdentityProvider extends IdentityProvider { - @Override - default public Class getRequestType() { - return LambdaAuthenticationRequest.class; - } - - @Override - default Uni authenticate(LambdaAuthenticationRequest request, AuthenticationRequestContext context) { - APIGatewayV2HTTPEvent event = request.getEvent(); - SecurityIdentity identity = authenticate(event); - if (identity == null) { - return Uni.createFrom().optional(Optional.empty()); - } - return Uni.createFrom().item(identity); - } - - /** - * You must override this method unless you directly override - * IdentityProvider.authenticate - * - * @param event - * @return - */ - default SecurityIdentity authenticate(APIGatewayV2HTTPEvent event) { - throw new IllegalStateException("You must override this method or IdentityProvider.authenticate"); - } -} ----- - -For HTTP, the important method to override is `LambdaIdentityProvider.authenticate(APIGatewayV2HTTPEvent event)`. From this -you will allocate a SecurityIdentity based on how you want to map security data from `APIGatewayV2HTTPEvent` - -.REST `quarkus-amazon-lambda-rest` -[source, java] ----- -package io.quarkus.amazon.lambda.http; - -import java.util.Optional; - -import com.amazonaws.services.lambda.runtime.events.APIGatewayV2HTTPEvent; - -import io.quarkus.amazon.lambda.http.model.AwsProxyRequest; -import io.quarkus.security.identity.AuthenticationRequestContext; -import io.quarkus.security.identity.IdentityProvider; -import io.quarkus.security.identity.SecurityIdentity; -import io.smallrye.mutiny.Uni; - -/** - * Helper interface that removes some boilerplate for creating - * an IdentityProvider that processes APIGatewayV2HTTPEvent - */ -public interface LambdaIdentityProvider extends IdentityProvider { -... - - /** - * You must override this method unless you directly override - * IdentityProvider.authenticate - * - * @param event - * @return - */ - default SecurityIdentity authenticate(AwsProxyRequest event) { - throw new IllegalStateException("You must override this method or IdentityProvider.authenticate"); - } -} ----- - -For REST, the important method to override is `LambdaIdentityProvider.authenticate(AwsProxyRequest event)`. From this -you will allocate a SecurityIdentity based on how you want to map security data from `AwsProxyRequest`. - -Your implemented provider must be a CDI bean. Here's an example: - -[source,java] ----- -package org.acme; - -import java.security.Principal; - -import javax.enterprise.context.ApplicationScoped; - -import com.amazonaws.services.lambda.runtime.events.APIGatewayV2HTTPEvent; - -import io.quarkus.amazon.lambda.http.LambdaIdentityProvider; -import io.quarkus.security.identity.SecurityIdentity; -import io.quarkus.security.runtime.QuarkusPrincipal; -import io.quarkus.security.runtime.QuarkusSecurityIdentity; - -@ApplicationScoped -public class CustomSecurityProvider implements LambdaIdentityProvider { - @Override - public SecurityIdentity authenticate(APIGatewayV2HTTPEvent event) { - if (event.getHeaders() == null || !event.getHeaders().containsKey("x-user")) - return null; - Principal principal = new QuarkusPrincipal(event.getHeaders().get("x-user")); - QuarkusSecurityIdentity.Builder builder = QuarkusSecurityIdentity.builder(); - builder.setPrincipal(principal); - return builder.build(); - } -} ----- - -Here's the same example, but with the AWS Gateway REST API: - -[source,java] ----- -package org.acme; - -import java.security.Principal; - -import javax.enterprise.context.ApplicationScoped; - -import io.quarkus.amazon.lambda.http.model.AwsProxyRequest; - -import io.quarkus.amazon.lambda.http.LambdaIdentityProvider; -import io.quarkus.security.identity.SecurityIdentity; -import io.quarkus.security.runtime.QuarkusPrincipal; -import io.quarkus.security.runtime.QuarkusSecurityIdentity; - -@ApplicationScoped -public class CustomSecurityProvider implements LambdaIdentityProvider { - @Override - public SecurityIdentity authenticate(AwsProxyRequest event) { - if (event.getMultiValueHeaders() == null || !event.getMultiValueHeaders().containsKey("x-user")) - return null; - Principal principal = new QuarkusPrincipal(event.getMultiValueHeaders().getFirst("x-user")); - QuarkusSecurityIdentity.Builder builder = QuarkusSecurityIdentity.builder(); - builder.setPrincipal(principal); - return builder.build(); - } -} ----- - -Quarkus should automatically discover this implementation and use it instead of the default implementation -discussed earlier. - -== Simple SAM Local Principal - -If you are testing your application with `sam local` you can -hardcode a principal name to use when your application runs by setting -the `QUARKUS_AWS_LAMBDA_FORCE_USER_NAME` environment variable diff --git a/_versions/2.7/guides/amazon-lambda.adoc b/_versions/2.7/guides/amazon-lambda.adoc deleted file mode 100644 index 2f9d2dfde5d..00000000000 --- a/_versions/2.7/guides/amazon-lambda.adoc +++ /dev/null @@ -1,623 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Amazon Lambda - -include::./attributes.adoc[] - -The `quarkus-amazon-lambda` extension allows you to use Quarkus to build your AWS Lambdas. -Your lambdas can use injection annotations from CDI or Spring and other Quarkus facilities as you need them. - -Quarkus lambdas can be deployed using the Amazon Java Runtime, or you can build a native executable and use -Amazon's Custom Runtime if you want a smaller memory footprint and faster cold boot startup time. - -Quarkus's integration with lambdas also supports Quarkus's Live Coding development cycle. You an -bring up your Quarkus lambda project in dev or test mode and code on your project live. - -== Prerequisites - -:prerequisites-time: 30 minutes -include::includes/devtools/prerequisites.adoc[] -* https://aws.amazon.com[An Amazon AWS account] -* https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html[AWS CLI] -* https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html[AWS SAM CLI], for local testing - -NOTE: For Gradle projects please <>, or for further reference consult the guide in the xref:gradle-tooling.adoc[Gradle setup page]. - -== Getting Started - -This guide walks you through generating an example Java project via a maven archetype and deploying it to AWS. - -== Installing AWS bits - -Installing all the AWS bits is probably the most difficult thing about this guide. Make sure that you follow all the steps -for installing AWS CLI. - -== Creating the Maven Deployment Project - -Create the Quarkus AWS Lambda maven project using our Maven Archetype. - - -[source,bash,subs=attributes+] ----- -mvn archetype:generate \ - -DarchetypeGroupId=io.quarkus \ - -DarchetypeArtifactId=quarkus-amazon-lambda-archetype \ - -DarchetypeVersion={quarkus-version} ----- - -[NOTE] -==== -If you prefer to use Gradle, you can quickly and easily generate a Gradle project via https://code.quarkus.io/[code.quarkus.io] -adding the `quarkus-amazon-lambda` extension as a dependency. - -Copy the build.gradle, gradle.properties and settings.gradle into the above generated Maven archetype project, to follow along with this guide. - -Execute: gradle wrapper to setup the gradle wrapper (recommended). - -For full Gradle details <>. -==== - -[[choose]] -== Choose Your Lambda - -The `quarkus-amazon-lambda` extension scans your project for a class that directly implements the Amazon `RequestHandler` or `RequestStreamHandler` interface. -It must find a class in your project that implements this interface or it will throw a build time failure. -If it finds more than one handler class, a build time exception will also be thrown. - -Sometimes, though, you might have a few related lambdas that share code and creating multiple maven modules is just -an overhead you don't want to do. The `quarkus-amazon-lambda` extension allows you to bundle multiple lambdas in one -project and use configuration or an environment variable to pick the handler you want to deploy. - -The generated project has three lambdas within it. Two that implement the `RequestHandler` interface, and one that implements the `RequestStreamHandler` interface. One that is used and two that are unused. If you open up -`src/main/resources/application.properties` you'll see this: - -[source,properties,subs=attributes+] ----- -quarkus.lambda.handler=test ----- - -The `quarkus.lambda.handler` property tells Quarkus which lambda handler to deploy. This can be overridden -with an environment variable too. - -If you look at the three generated handler classes in the project, you'll see that they are `@Named` differently. - -[source,java,subs=attributes+] ----- -@Named("test") -public class TestLambda implements RequestHandler { -} - -@Named("unused") -public class UnusedLambda implements RequestHandler { -} - -@Named("stream") -public class StreamLambda implements RequestStreamHandler { -} ----- - -The CDI name of the handler class must match the value specified within the `quarkus.lambda.handler` property. - - -== Deploy to AWS Lambda Java Runtime - -There are a few steps to get your lambda running on AWS. The generated maven project contains a helpful script to -create, update, delete, and invoke your lambdas for pure Java and native deployments. - -== Build and Deploy - -Build the project: - -include::includes/devtools/build.adoc[] - -This will compile and package your code. - -== Create an Execution Role - -View the https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-awscli.html[Getting Started Guide] for deploying -a lambda with AWS CLI. Specifically, make sure you have created an `Execution Role`. You will need to define -a `LAMBDA_ROLE_ARN` environment variable in your profile or console window, Alternatively, you can edit -the `manage.sh` script that is generated by the build and put the role value directly there: - -[source,bash] ----- -LAMBDA_ROLE_ARN="arn:aws:iam::1234567890:role/lambda-role" ----- - -== Extra Build Generated Files - -After you run the build, there are a few extra files generated by the `quarkus-amazon-lambda` extension. These files -are in the the build directory: `target/` for maven, `build/` for gradle. - -* `function.zip` - lambda deployment file -* `manage.sh` - wrapper around aws lambda cli calls -* `bootstrap-example.sh` - example bootstrap script for native deployments -* `sam.jvm.yaml` - (optional) for use with sam cli and local testing -* `sam.native.yaml` - (optional) for use with sam cli and native local testing - -== Create the function - -The `target/manage.sh` script is for managing your lambda using the AWS Lambda Java runtime. This script is provided only for -your convenience. Examine the output of the `manage.sh` script if you want to learn what aws commands are executed -to create, delete, and update your lambdas. - -`manage.sh` supports four operation: `create`, `delete`, `update`, and `invoke`. - -NOTE: To verify your setup, that you have the AWS CLI installed, executed aws configure for the AWS access keys, -and setup the `LAMBDA_ROLE_ARN` environment variable (as described above), please execute `manage.sh` without any parameters. -A usage statement will be printed to guide you accordingly. - -NOTE: If using Gradle, the path to the binaries in the `manage.sh` must be changed from `target` to `build` - -To see the `usage` statement, and validate AWS configuration: -[source,bash,subs=attributes+] ----- -sh target/manage.sh ----- - -You can `create` your function using the following command: - -[source,bash,subs=attributes+] ----- -sh target/manage.sh create ----- - -or if you do not have `LAMBDA_ROLE_ARN` already defined in this shell: - -[source,bash] ----- -LAMBDA_ROLE_ARN="arn:aws:iam::1234567890:role/lambda-role" sh target/manage.sh create ----- - -WARNING: Do not change the handler switch. This must be hardcoded to `io.quarkus.amazon.lambda.runtime.QuarkusStreamHandler::handleRequest`. This -handler bootstraps Quarkus and wraps your actual handler so that injection can be performed. - -If there are any problems creating the function, you must delete it with the `delete` function before re-running -the `create` command. - -[source,bash,subs=attributes+] ----- -sh target/manage.sh delete ----- - -Commands may also be stacked: -[source,bash,subs=attributes+] ----- -sh target/manage.sh delete create ----- - -== Invoke the Lambda - -Use the `invoke` command to invoke your function. - -[source,bash,subs=attributes+] ----- -sh target/manage.sh invoke ----- - -The example lambda takes input passed in via the `--payload` switch which points to a json file -in the root directory of the project. - -The lambda can also be invoked locally with the SAM CLI like this: - -[source,bash] ----- -sam local invoke --template target/sam.jvm.yaml --event payload.json ----- - -If you are working with your native image build, simply replace the template name with the native version: - -[source,bash] ----- -sam local invoke --template target/sam.native.yaml --event payload.json ----- - -== Update the Lambda - -You can update the Java code as you see fit. Once you've rebuilt, you can redeploy your lambda by executing the -`update` command. - -[source,bash,subs=attributes+] ----- -sh target/manage.sh update ----- - -== Deploy to AWS Lambda Custom (native) Runtime - -If you want a lower memory footprint and faster initialization times for your lambda, you can compile your Java -code to a native executable. Just make sure to rebuild your project with the `-Pnative` switch. - -For Linux hosts, execute: - -include::includes/devtools/build-native.adoc[] - -NOTE: If you are building on a non-Linux system, you will need to also pass in a property instructing Quarkus to use a docker build as Amazon -Lambda requires linux binaries. You can do this by passing this property to your build: -`-Dquarkus.native.container-build=true`. This requires you to have Docker installed locally, however. - -include::includes/devtools/build-native-container.adoc[] - -Either of these commands will compile and create a native executable image. It also generates a zip file `target/function.zip`. -This zip file contains your native executable image renamed to `bootstrap`. This is a requirement of the AWS Lambda -Custom (Provided) Runtime. - -The instructions here are exactly as above with one change: you'll need to add `native` as the first parameter to the -`manage.sh` script: - -[source,bash,subs=attributes+] ----- -sh target/manage.sh native create ----- - -As above, commands can be stacked. The only requirement is that `native` be the first parameter should you wish -to work with native image builds. The script will take care of the rest of the details necessary to manage your native -image function deployments. - -Examine the output of the `manage.sh` script if you want to learn what aws commands are executed -to create, delete, and update your lambdas. - -One thing to note about the create command for native is that the `aws lambda create-function` -call must set a specific environment variable: - -[source,bash,subs=attributes+] ----- ---environment 'Variables={DISABLE_SIGNAL_HANDLERS=true}' ----- - -== Examine the POM and Gradle build - -There is nothing special about the POM other than the inclusion of the `quarkus-amazon-lambda` extension -as a dependency. The extension automatically generates everything you might need for your lambda deployment. - -NOTE: In previous versions of this extension you had to set up your pom or gradle -to zip up your executable for native deployments, but this is not the case anymore. - -[[gradle]] -== Gradle build - -Similarly for Gradle projects, you also just have to add the `quarkus-amazon-lambda` dependency. The extension automatically generates everything you might need -for your lambda deployment. - -Example Gradle dependencies: - -[source,groovy] ----- -dependencies { - implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}") - implementation 'io.quarkus:quarkus-resteasy' - implementation 'io.quarkus:quarkus-amazon-lambda' - - testImplementation 'io.quarkus:quarkus-junit5' - testImplementation 'io.rest-assured:rest-assured' -} ----- - - -== Live Coding and Unit/Integration Testing -To mirror the AWS Lambda environment as closely as possible in a dev environment, -the Quarkus Amazon Lambda extension boots up a mock AWS Lambda event server in Quarkus Dev and Test mode. -This mock event server simulates a true AWS Lambda environment. - -While running in Quarkus Dev Mode, you can feed events to it by doing an HTTP POST to `http://localhost:8080`. -The mock event server will receive the events and your lambda will be invoked. You can perform live coding on your lambda -and changes will automatically be recompiled and available the next invocation you make. Here's an example: - -include::includes/devtools/dev.adoc[] - -[source,bash] ----- -$ curl -d "{\"name\":\"John\"}" -X POST http://localhost:8080 ----- - -For your unit tests, you can also invoke on the mock event server using any HTTP client you want. Here's an example -using rest-assured. Quarkus starts up a separate Mock Event server under port 8081. -The default port for Rest Assured is automatically set to 8081 by Quarkus so you can invoke -on this endpoint. - - -[source,java] ----- -import org.junit.jupiter.api.Test; - -import io.quarkus.test.junit.QuarkusTest; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.containsString; - -@QuarkusTest -public class LambdaHandlerTest { - - @Test - public void testSimpleLambdaSuccess() throws Exception { - Person in = new Person(); - in.setName("Stu"); - given() - .contentType("application/json") - .accept("application/json") - .body(in) - .when() - .post() - .then() - .statusCode(200) - .body(containsString("Hello Stu")); - } -} ----- - -The mock event server is also started for `@NativeImageTest` unit tests so will work -with native binaries too. All this provides similar functionality to the SAM CLI local testing, without the overhead of Docker. - -Finally, if port 8080 or port 8081 is not available on your computer, you can modify the dev -and test mode ports with application.properties - -[source, subs=attributes+] ----- -quarkus.lambda.mock-event-server.dev-port=8082 -quarkus.lambda.mock-event-server.test-port=8083 ----- - -== Testing with the SAM CLI -If you do not want to use the mock event server, you can test your lambdas with SAM CLI. - -The https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html[AWS SAM CLI] -allows you to run your lambdas locally on your laptop in a simulated Lambda environment. This requires -https://www.docker.com/products/docker-desktop[docker] to be installed. This is an optional approach should you choose -to take advantage of it. Otherwise, the Quarkus JUnit integration should be sufficient for most of your needs. - -A starter template has been generated for both JVM and native execution modes. - -Run the following SAM CLI command to locally test your lambda function, passing the appropriate SAM `template`. -The `event` parameter takes any JSON file, in this case the sample `payload.json`. - -NOTE: If using Gradle, the path to the binaries in the YAML templates must be changed from `target` to `build` - -[source,bash] ----- -sam local invoke --template target/sam.jvm.yaml --event payload.json ----- - -The native image can also be locally tested using the `sam.native.yaml` template: - -[source,bash] ----- -sam local invoke --template target/sam.native.yaml --event payload.json ----- - -== Modifying `function.zip` - -The are times where you may have to add some additions to the `function.zip` lambda deployment that is generated -by the build. To do this create a `zip.jvm` or `zip.native` directory within `src/main`. -Create `zip.jvm/` if you are doing a pure Java lambda. `zip.native/` if you are doing a native deployment. - -Any you files and directories you create under your zip directory will be included within `function.zip` - -== Custom `bootstrap` script - -There are times you may want to set a specific system properties or other arguments when lambda invokes -your native quarkus lambda deployment. If you include a `bootstrap` script file within -`zip.native`, the quarkus extension will automatically rename the executable to `runner` within -`function.zip` and set the unix mode of the `bootstrap` script to executable. - -NOTE: The native executable must be referenced as `runner` if you include a custom `bootstrap` script. - -The extension generates an example script within `target/bootstrap-example.sh`. - -== Tracing with AWS XRay and GraalVM - -If you are building native images, and want to use https://aws.amazon.com/xray[AWS X-Ray Tracing] with your lambda -you will need to include `quarkus-amazon-lambda-xray` as a dependency in your pom. The AWS X-Ray -library is not fully compatible with GraalVM so we had to do some integration work to make this work. - -In addition, remember to enable the AWS X-Ray tracing parameter in `manage.sh`, in the `cmd_create()` function. This can also be set in the AWS Management Console. -[source,bash] ----- - --tracing-config Mode=Active ----- - -For the sam template files, add the following to the YAML function Properties. -[source] ----- - Tracing: Active ----- - -AWS X-Ray does add many classes to your distribution, do ensure you are using at least the 256MB AWS Lambda memory size. -This is explicitly set in `manage.sh` `cmd_create()`. Whilst the native image potentially can always use a lower memory setting, it would be recommended to keep the setting the same, especially to help compare performance. - -[[https]] -== Using HTTPS or SSL/TLS - -If your code makes HTTPS calls, such as to a micro-service (or AWS service), you will need to add configuration to the native image, -as GraalVM will only include the dependencies when explicitly declared. Quarkus, by default enables this functionality on extensions that implicitly require it. -For further information, please consult the xref:native-and-ssl.adoc[Quarkus SSL guide] - -Open src/main/resources/application.properties and add the following line to enable SSL in your native image. - -[source,properties] ----- -quarkus.ssl.native=true ----- - -[[aws-sdk-v2]] -== Using the AWS Java SDK v2 - -NOTE: Quarkus now has extensions for DynamoDB, S3, SNS and SQS (more coming). -Please check link:{amazon-services-guide}[those guides] on how to use the various AWS Services with Quarkus, as opposed to wiring manually like below. - -With minimal integration, it is possible to leverage the AWS Java SDK v2, -which can be used to invoke services such as SQS, SNS, S3 and DynamoDB. - -For native image, however the URL Connection client must be preferred over the Apache HTTP Client -when using synchronous mode, due to issues in the GraalVM compilation (at present). - -Add `quarkus-jaxb` as a dependency in your Maven `pom.xml`, or Gradle `build.gradle` file. - -You must also force your AWS service client for SQS, SNS, S3 et al, to use the URL Connection client, -which connects to AWS services over HTTPS, hence the inclusion of the SSL enabled property, as described in the <> section above. - -[source,java] ----- -// select the appropriate client, in this case SQS, and -// insert your region, instead of XXXX, which also improves startup time over the default client - client = SqsClient.builder().region(Region.XXXX).httpClient(software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient.builder().build()).build(); ----- - -For Maven, add the following to your `pom.xml`. - -[source,xml] ----- - - - 2.10.69 - - - - - - - software.amazon.awssdk - bom - ${aws.sdk2.version} - pom - import - - - - - - - - software.amazon.awssdk - url-connection-client - - - - software.amazon.awssdk - apache-client - - - commons-logging - commons-logging - - - - - - software.amazon.awssdk - - sqs - - - - software.amazon.awssdk - apache-client - - - software.amazon.awssdk - netty-nio-client - - - commons-logging - commons-logging - - - - - - org.jboss.logging - commons-logging-jboss-logging - - ----- - -NOTE: if you see `java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty` or similar SSL error, due to the current status of GraalVM, -there is some additional work to bundle the `function.zip`, as below. For more information, please see the xref:native-and-ssl.adoc[Quarkus Native SSL Guide]. - -== Additional requirements for client SSL - -The native executable requires some additional steps to enable client SSL that S3 and other AWS libraries need. - -1. A custom `bootstrap` script -2. `libsunec.so` must be added to `function.zip` -3. `cacerts` must be added to `function.zip` - -To do this, first create a directory `src/main/zip.native/` with your build. Next create a shell script file called `bootstrap` -within `src/main/zip.native/`, like below. An example is create automatically in your build folder (target or build), called `bootstrap-example.sh` - -[source,bash] ----- -#!/usr/bin/env bash - -./runner -Djava.library.path=./ -Djavax.net.ssl.trustStore=./cacerts ----- - -Additional set `-Djavax.net.ssl.trustStorePassword=changeit` if your `cacerts` file is password protected. - -Next you must copy some files from your GraalVM distribution into `src/main/zip.native/`. - -NOTE: GraalVM versions can have different paths for these files, and whether you using the Java 8 or 11 version. Adjust accordingly. - -[source,bash] ----- -cp $GRAALVM_HOME/lib/libsunec.so $PROJECT_DIR/src/main/zip.native/ -cp $GRAALVM_HOME/lib/security/cacerts $PROJECT_DIR/src/main/zip.native/ ----- - -Now when you run the native build all these files will be included within `function.zip` - -NOTE: If you are using a Docker image to build, then you must extract these files from this image. - -To extract the required ssl, you must start up a Docker container in the background, and attach to that container to copy the artifacts. - -First, let's start the GraalVM container, noting the container id output. -[source,bash,subs=attributes+] ----- -docker run -it -d --entrypoint bash quay.io/quarkus/ubi-quarkus-native-image:{graalvm-flavor} - -# This will output a container id, like 6304eea6179522aff69acb38eca90bedfd4b970a5475aa37ccda3585bc2abdde -# Note this value as we will need it for the commands below ----- - -First, libsunec.so, the C library used for the SSL implementation: - -[source,bash] ----- -docker cp {container-id-from-above}:/opt/graalvm/lib/libsunec.so src/main/zip.native/ ----- - -Second, cacerts, the certificate store. You may need to periodically obtain an updated copy, also. -[source,bash] ----- -docker cp {container-id-from-above}:/opt/graalvm/lib/security/cacerts src/main/zip.native/ ----- - -Your final archive will look like this: -[source,bash] ----- -jar tvf target/function.zip - - bootstrap - runner - cacerts - libsunec.so ----- - -== Amazon Alexa Integration - -To use Alexa with Quarkus native, you need to use the https://github.com/quarkiverse/quarkus-amazon-alexa[Quarkus Amazon Alexa extension hosted at the Quarkiverse Hub]. - -[source,xml] ----- - - io.quarkiverse.alexa - quarkus-amazon-alexa - ${quarkus-amazon-alexa.version} <1> - ----- -<1> Define the latest version of the extension in your POM file. - -Create your Alexa handler, as normal, by sub-classing the abstract `com.amazon.ask.SkillStreamHandler`, and add your request handler implementation. - -That's all there is to it! diff --git a/_versions/2.7/guides/amqp-dev-services.adoc b/_versions/2.7/guides/amqp-dev-services.adoc deleted file mode 100644 index 72c11b83be2..00000000000 --- a/_versions/2.7/guides/amqp-dev-services.adoc +++ /dev/null @@ -1,53 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Dev Services for AMQP - -include::./attributes.adoc[] - -Dev Services for AMQP automatically starts an AMQP 1.0 broker in dev mode and when running tests. -So, you don't have to start a broker manually. -The application is configured automatically. - -== Enabling / Disabling Dev Services for AMQP - -Dev Services for AMQP is automatically enabled unless: - -- `quarkus.amqp.devservices.enabled` is set to `false` -- the `amqp-host` or `amqp-port` is configured -- all the Reactive Messaging AMQP channels have the `host` or `port` attributes set - -Dev Services for AMQP relies on Docker to start the broker. -If your environment does not support Docker, you will need to start the broker manually, or connect to an already running broker. -You can configure the broker access using the `amqp-host`, `amqp-port`, `amqp-user` and `amqp-password` properties. - -== Shared broker - -Most of the time you need to share the broker between applications. -Dev Services for AMQP implements a _service discovery_ mechanism for your multiple Quarkus applications running in _dev_ mode to share a single broker. - -NOTE: Dev Services for AMQP starts the container with the `quarkus-dev-service-amqp` label which is used to identify the container. - -If you need multiple (shared) brokers, you can configure the `quarkus.amqp.devservices.service-name` attribute and indicate the broker name. -It looks for a container with the same value, or starts a new one if none can be found. -The default service name is `amqp`. - -Sharing is enabled by default in dev mode, but disabled in test mode. -You can disable the sharing with `quarkus.amqp.devservices.shared=false`. - -== Setting the port - -By default, Dev Services for AMQP picks a random port and configures the application. -You can set the port by configuring the `quarkus.amqp.devservices.port` property. - -== Configuring the image - -Dev Services for AMQP uses https://quay.io/repository/artemiscloud/activemq-artemis-broker[activemq-artemis-broker] images. -You can configure the image and version using the `quarkus.amqp.devservices.image-name` property: - -[source, properties] ----- -quarkus.amqp.devservices.image-name=quay.io/artemiscloud/activemq-artemis-broker:latest ----- \ No newline at end of file diff --git a/_versions/2.7/guides/amqp-reference.adoc b/_versions/2.7/guides/amqp-reference.adoc deleted file mode 100644 index 45b692f43b1..00000000000 --- a/_versions/2.7/guides/amqp-reference.adoc +++ /dev/null @@ -1,802 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Reactive Messaging AMQP 1.0 Connector Reference Documentation - -include::./attributes.adoc[] - -This guide is the companion from the xref:amqp.adoc[Getting Started with AMQP 1.0]. -It explains in more details the configuration and usage of the AMQP connector for reactive messaging. - -TIP: This documentation does not cover all the details of the connector. -Refer to the https://smallrye.io/smallrye-reactive-messaging[SmallRye Reactive Messaging website] for further details. - -The AMQP connector allows Quarkus applications to send and receive messages using the AMQP 1.0 protocol. -More details about the protocol can be found in http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-overview-v1.0-os.html[the AMQP 1.0 specification]. -It's important to note that AMQP 1.0 and AMQP 0.9.1 (implemented by RabbitMQ) are incompatible. -Check <> to get more details. - -== AMQP connector extension - -To use the connector, you need to add the `quarkus-smallrye-reactive-messaging-amqp` extension. - -You can add the extension to your project using: - -:add-extension-extensions: quarkus-smallrye-reactive-messaging-amqp -include::includes/devtools/extension-add.adoc[] - -Or just add the following dependency to your project: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-reactive-messaging-amqp - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-reactive-messaging-amqp") ----- - -Once added to your project, you can map _channels_ to AMQP addresses by configuring the `connector` attribute: - -[source, properties] ----- -# Inbound -mp.messaging.incoming.[channel-name].connector=smallrye-amqp - -# Outbound -mp.messaging.outgoing.[channel-name].connector=smallrye-amqp ----- - -[TIP] -.Connector auto-attachment -==== -If you have a single connector on your classpath, you can omit the `connector` attribute configuration. -Quarkus automatically associates _orphan_ channels to the (unique) connector found on the classpath. -_Orphans_ channels are outgoing channels without a downstream consumer or incoming channels without an upstream producer. - -This auto-attachment can be disabled using: - -[source, properties] ----- -quarkus.reactive-messaging.auto-connector-attachment=false ----- -==== - -== Configuring the AMQP Broker access - -The AMQP connector connects to AMQP 1.0 brokers such as Apache ActiveMQ or Artemis. -To configure the location and credentials of the broker, add the following properties in the `application.properties`: - -[source, properties] ----- -amqp-host=amqp # <1> -amqp-port=5672 # <2> -amqp-username=my-username # <3> -amqp-password=my-password # <4> - -mp.messaging.incoming.prices.connector=smallrye-amqp # <5> ----- -<1> Configures the broker/router host name. You can do it per channel (using the `host` attribute) or globally using `amqp-host` -<2> Configures the broker/router port. You can do it per channel (using the `port` attribute) or globally using `amqp-port`. The default is `5672`. -<3> Configures the broker/router username if required. You can do it per channel (using the `username` attribute) or globally using `amqp-username`. -<4> Configures the broker/router password if required. You can do it per channel (using the `password` attribute) or globally using `amqp-password`. -<5> Instructs the prices channel to be managed by the AMQP connector - -In dev mode and when running tests, xref:amqp-dev-services.adoc[Dev Services for AMQP] automatically starts an AMQP broker. - -== Receiving AMQP messages - -Let's imagine your application receives `Message`. -You can consume the payload directly: - -[source, java] ----- -package inbound; - -import org.eclipse.microprofile.reactive.messaging.Incoming; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class AmqpPriceConsumer { - - @Incoming("prices") - public void consume(double price) { - // process your price. - } - -} ----- - -Or, you can retrieve the Message: - -[source, java] ----- -package inbound; - -import org.eclipse.microprofile.reactive.messaging.Incoming; -import org.eclipse.microprofile.reactive.messaging.Message; - -import javax.enterprise.context.ApplicationScoped; -import java.util.concurrent.CompletionStage; - -@ApplicationScoped -public class AmqpPriceMessageConsumer { - - @Incoming("prices") - public CompletionStage consume(Message price) { - // process your price. - - // Acknowledge the incoming message, marking the AMQP message as `accepted`. - return price.ack(); - } - -} ----- - -=== Inbound Metadata -Messages coming from AMQP contain an instance of `IncomingAmqpMetadata` in the metadata. - -[source, java] ----- -Optional metadata = incoming.getMetadata(IncomingAmqpMetadata.class); -metadata.ifPresent(meta -> { - String address = meta.getAddress(); - String subject = meta.getSubject(); - boolean durable = meta.isDurable(); - // Use io.vertx.core.json.JsonObject - JsonObject properties = meta.getProperties(); - // ... -}); ----- - -=== Deserialization - -The connector converts incoming AMQP Messages into Reactive Messaging `Message` instances. -`T` depends on the _body_ of the received AMQP Message. - -The http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-types-v1.0-os.html[AMQP Type System] defines the supported types. - -[options="header"] -|=== -| AMQP Body Type | `` -| AMQP Value containing a http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-types-v1.0-os.html#section-primitive-type-definitions[AMQP Primitive Type] | the corresponding Java type -| AMQP Value using the `Binary` type | `byte[]` -| AMQP Sequence | `List` -| AMQP Data (with binary content) and the `content-type` is set to `application/json` | https://vertx.io/docs/apidocs/io/vertx/core/json/JsonObject.html[`JsonObject`] -| AMQP Data with a different `content-type` | `byte[]` -|=== - -If you send objects with this AMQP connector (outbound connector), it gets encoded as JSON and sent as binary. -The `content-type` is set to `application/json`. -So, you can rebuild the object as follows: - -[source, java] ----- -import io.vertx.core.json.JsonObject; -// -@ApplicationScoped -public static class Consumer { - - List prices = new CopyOnWriteArrayList<>(); - - @Incoming("from-amqp") // <1> - public void consume(JsonObject p) { // <2> - Price price = p.mapTo(Price.class); // <3> - prices.add(price); - } - - public List list() { - return prices; - } -} ----- -<1> The `Price` instances are automatically encoded to JSON by the connector -<2> You can receive it using a `JsonObject` -<3> Then, you can reconstruct the instance using the `mapTo` method - -NOTE: The `mapTo` method uses the Quarkus Jackson mapper. Check xref:rest-json.adoc#json[this guide] to learn more about the mapper configuration. - -=== Acknowledgement - -When a Reactive Messaging Message associated with an AMQP Message is acknowledged, it informs the broker that the message has been http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-accepted[accepted]. - -=== Failure Management - -If a message produced from an AMQP message is _nacked_, a failure strategy is applied. -The AMQP connector supports six strategies: - -* `fail` - fail the application; no more AMQP messages will be processed (default). -The AMQP message is marked as rejected. -* `accept` - this strategy marks the AMQP message as _accepted_. The processing continues ignoring the failure. -Refer to the http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-accepted[accepted delivery state documentation]. -* `release` - this strategy marks the AMQP message as _released_. The processing continues with the next message. The broker can redeliver the message. -Refer to the http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-released[released delivery state documentation]. -* `reject` - this strategy marks the AMQP message as rejected. The processing continues with the next message. -Refer to the http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-rejected[rejected delivery state documentation]. -* `modified-failed` - this strategy marks the AMQP -message as _modified_ and indicates that it failed (with the `delivery-failed` attribute). The processing continues with the next message, but the broker may attempt to redeliver the message. -Refer to the http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-modified[modified delivery state documentation] -* `modified-failed-undeliverable-here` - this strategy marks the AMQP message as _modified_ and indicates that it failed (with the `delivery-failed` attribute). It also indicates that the application cannot process the message, meaning that the broker will not attempt to redeliver the message to this node. The processing continues with the next message. -Refer to the http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-modified[modified delivery state documentation] - -== Sending AMQP messages - -=== Serialization - -When sending a `Message`, the connector converts the message into an AMQP Message. -The payload is converted to the AMQP Message _body_. - -[options=header] -|=== -| `T` | AMQP Message Body -| primitive types or `String` | AMQP Value with the payload -| `Instant` or `UUID` | AMQP Value using the corresponding AMQP Type -| https://vertx.io/docs/apidocs/io/vertx/core/json/JsonObject.html[`JsonObject`] or https://vertx.io/docs/apidocs/io/vertx/core/json/JsonArray.html[`JsonArray`] | AMQP Data using a binary content. The `content-type` is set to `application/json` -| `io.vertx.mutiny.core.buffer.Buffer` | AMQP Data using a binary content. No `content-type` set -| Any other class | The payload is converted to JSON (using a Json Mapper). The result is wrapped into AMQP Data using a **binary** content. The `content-type` is set to `application/json` -|=== - -If the message payload cannot be serialized to JSON, the message is _nacked_. - -=== Outbound Metadata - -When sending `Messages`, you can add an instance of `OutgoingAmqpMetadata` to influence how the message is going to be sent to AMQP. -For example, you can configure the subjects, properties: - -[source, java] ----- - OutgoingAmqpMetadata metadata = OutgoingAmqpMetadata.builder() - .withDurable(true) - .withSubject("my-subject") - .build(); - -// Create a new message from the `incoming` message -// Add `metadata` to the metadata from the `incoming` message. -return incoming.addMetadata(metadata); ----- - -=== Dynamic address names - -Sometimes it is desirable to select the destination of a message dynamically. -In this case, you should not configure the address inside your application configuration file, but instead, use the outbound metadata to set the address. - -For example, you can send to a dynamic address based on the incoming message: - -[source, java] ----- -String addressName = selectAddressFromIncommingMessage(incoming); -OutgoingAmqpMetadata metadata = OutgoingAmqpMetadata.builder() - .withAddress(addressName) - .withDurable(true) - .build(); - -// Create a new message from the `incoming` message -// Add `metadata` to the metadata from the `incoming` message. -return incoming.addMetadata(metadata); ----- - -NOTE: To be able to set the address per message, the connector is using an _anonymous sender_. - -=== Acknowledgement - -By default, the Reactive Messaging `Message` is acknowledged when the broker acknowledged the message. -When using routers, this acknowledgement may not be enabled. -In this case, configure the `auto-acknowledgement` attribute to acknowledge the message as soon as it has been sent to the router. - -If an AMQP message is rejected/released/modified by the broker (or cannot be sent successfully), the message is nacked. - -=== Back Pressure and Credits - -The back-pressure is handled by AMQP _credits_. -The outbound connector only requests the amount of allowed credits. -When the amount of credits reaches 0, it waits (in a non-blocking fashion) until the broker grants more credits to the AMQP sender. - -== Configuring the AMQP address - -You can configure the AMQP address using the `address` attribute: - -[source, properties] ----- -mp.messaging.incoming.prices.connector=smallrye-amqp -mp.messaging.incoming.prices.address=my-queue - -mp.messaging.outgoing.orders.connector=smallrye-amqp -mp.messaging.outgoing.orders.address=my-order-queue ----- - -If the `address` attribute is not set, the connector uses the channel name. - -To use an existing queue, you need to configure the `address`, `container-id` and, optionally, the `link-name` attributes. -For example, if you have an Apache Artemis broker configured with: - -[source, xml] ----- - - -
people
- true - artemis -
-
----- - -You need the following configuration: -[source, properties] ----- -mp.messaging.outgoing.people.connector=smallrye-amqp -mp.messaging.outgoing.people.durable=true -mp.messaging.outgoing.people.address=people -mp.messaging.outgoing.people.container-id=people ----- - -You may need to configure the `link-name` attribute, if the queue name is not the channel name: - -[source, properties] ----- -mp.messaging.outgoing.people-out.connector=smallrye-amqp -mp.messaging.outgoing.people-out.durable=true -mp.messaging.outgoing.people-out.address=people -mp.messaging.outgoing.people-out.container-id=people -mp.messaging.outgoing.people-out.link-name=people ----- - -To use a `MULTICAST` queue, you need to provide the _FQQN_ (fully-qualified queue name) instead of just the name of the queue: - -[source, properties] ----- -mp.messaging.outgoing.people-out.connector=smallrye-amqp -mp.messaging.outgoing.people-out.durable=true -mp.messaging.outgoing.people-out.address=foo -mp.messaging.outgoing.people-out.container-id=foo - -mp.messaging.incoming.people-out.connector=smallrye-amqp -mp.messaging.incoming.people-out.durable=true -mp.messaging.incoming.people-out.address=foo::bar # Note the syntax: address-name::queue-name -mp.messaging.incoming.people-out.container-id=bar -mp.messaging.incoming.people-out.link-name=people ----- - -More details about the AMQP Address model can be found in the https://activemq.apache.org/components/artemis/documentation/2.0.0/address-model.html[Artemis documentation]. - -[#blocking-processing] -=== Execution model and Blocking processing - -Reactive Messaging invokes your method on an I/O thread. -See the xref:quarkus-reactive-architecture.adoc[Quarkus Reactive Architecture documentation] for further details on this topic. -But, you often need to combine Reactive Messaging with blocking processing such as database interactions. -For this, you need to use the `@Blocking` annotation indicating that the processing is _blocking_ and should not be run on the caller thread. - -For example, The following code illustrates how you can store incoming payloads to a database using Hibernate with Panache: - -[source,java] ----- -import io.smallrye.reactive.messaging.annotations.Blocking; -import org.eclipse.microprofile.reactive.messaging.Incoming; - -import javax.enterprise.context.ApplicationScoped; -import javax.transaction.Transactional; - -@ApplicationScoped -public class PriceStorage { - - @Incoming("prices") - @Transactional - public void store(int priceInUsd) { - Price price = new Price(); - price.value = priceInUsd; - price.persist(); - } - -} ----- - -[NOTE] -==== -There are 2 `@Blocking` annotations: - -1. `io.smallrye.reactive.messaging.annotations.Blocking` -2. `io.smallrye.common.annotation.Blocking` - -They have the same effect. -Thus, you can use both. -The first one provides more fine-grained tuning such as the worker pool to use and whether it preserves the order. -The second one, used also with other reactive features of Quarkus, uses the default worker pool and preserves the order. -==== - -[TIP] -.@Transactional -==== -If your method is annotated with `@Transactional`, it will be considered _blocking_ automatically, even if the method is not annotated with `@Blocking`. -==== - -== Customizing the underlying AMQP client - -The connector uses the Vert.x AMQP client underneath. -More details about this client can be found in the https://vertx.io/docs/vertx-amqp-client/java/[Vert.x website]. - -You can customize the underlying client configuration by producing an instance of `AmqpClientOptions` as follows: - -[source, java] ----- -@Produces -@Identifier("my-named-options") -public AmqpClientOptions getNamedOptions() { - // You can use the produced options to configure the TLS connection - PemKeyCertOptions keycert = new PemKeyCertOptions() - .addCertPath("./tls/tls.crt") - .addKeyPath("./tls/tls.key"); - PemTrustOptions trust = new PemTrustOptions().addCertPath("./tlc/ca.crt"); - return new AmqpClientOptions() - .setSsl(true) - .setPemKeyCertOptions(keycert) - .setPemTrustOptions(trust) - .addEnabledSaslMechanism("EXTERNAL") - .setHostnameVerificationAlgorithm("") - .setConnectTimeout(30000) - .setReconnectInterval(5000) - .setContainerId("my-container"); -} ----- - -This instance is retrieved and used to configure the client used by the connector. -You need to indicate the name of the client using the `client-options-name` attribute: - -[source, properties] ----- -mp.messaging.incoming.prices.client-options-name=my-named-options ----- - -== Health reporting - -If you use the AMQP connector with the `quarkus-smallrye-health` extension, it contributes to the readiness and liveness probes. -The AMQP connector reports the readiness and liveness of each channel managed by the connector. -At the moment, the AMQP connector uses the same logic for the readiness and liveness checks. - -To disable health reporting, set the `health-enabled` attribute for the channel to false. -On the inbound side (receiving messages from AMQP), the check verifies that the receiver is attached to the broker. -On the outbound side (sending records to AMQP), the check verifies that the sender is attached to the broker. - -Note that a message processing failures nacks the message, which is then handled by the `failure-strategy`. -It the responsibility of the `failure-strategy` to report the failure and influence the outcome of the checks. -The `fail` failure strategy reports the failure, and so the check will report the fault. - -== Using RabbitMQ -This connector is for AMQP 1.0. RabbitMQ implements AMQP 0.9.1. -RabbitMQ does not provide AMQP 1.0 by default, but there is a plugin for it. -To use RabbitMQ with this connector, enable and configure the AMQP 1.0 plugin. - -Despite the existence of the plugin, a few AMQP 1.0 features won’t work with RabbitMQ. -Thus, we recommend the following configurations. - -To receive messages from RabbitMQ: - -* Set durable to false - -[source, properties] ----- -mp.messaging.incoming.prices.connector=smallrye-amqp -mp.messaging.incoming.prices.durable=false ----- - -To send messages to RabbitMQ: - -* set the destination address (anonymous sender are not supported) -* set `use-anonymous-sender` to false - -[source, properties] ----- -mp.messaging.outgoing.generated-price.connector=smallrye-amqp -mp.messaging.outgoing.generated-price.address=prices -mp.messaging.outgoing.generated-price.use-anonymous-sender=false ----- - -As a consequence, it’s not possible to change the destination dynamically (using message metadata) when using RabbitMQ. - -== Receiving Cloud Events - -The AMQP connector supports https://cloudevents.io/[Cloud Events]. -When the connector detects a _structured_ or _binary_ Cloud Events, it adds a `IncomingCloudEventMetadata` into the metadata of the `Message`. -`IncomingCloudEventMetadata` contains accessors to the mandatory and optional Cloud Event attributes. - -If the connector cannot extract the Cloud Event metadata, it sends the Message without the metadata. - -For more information on receiving Cloud Events, see https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.12/amqp/amqp.html#_receiving_cloud_events[Receiving Cloud Events] in SmallRye Reactive Messaging documentation. - -=== Sending Cloud Events - -The AMQP connector supports https://cloudevents.io/[Cloud Events]. -The connector sends the outbound record as Cloud Events if: - -* the message metadata contains an `io.smallrye.reactive.messaging.ce.OutgoingCloudEventMetadata` instance, -* the channel configuration defines the `cloud-events-type` and `cloud-events-source` attributes. - -For more information on sending Cloud Events, see https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.12/amqp/amqp.html#_sending_cloud_events[Sending Cloud Events] in SmallRye Reactive Messaging documentation. - -[[configuration-reference]] -== AMQP Connector Configuration Reference - -=== Quarkus specific configuration - -include::{generated-dir}/config/quarkus-smallrye-reactivemessaging-amqp.adoc[opts=optional, leveloffset=+1] - -=== Incoming channel configuration - -[cols="25, 30, 15, 20",options="header"] -|=== -|Attribute (_alias_) | Description | Mandatory | Default - -| [.no-hyphens]#*address*# | The AMQP address. If not set, the channel name is used - -Type: _string_ | false | - -| [.no-hyphens]#*auto-acknowledgement*# | Whether the received AMQP messages must be acknowledged when received - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*broadcast*# | Whether the received AMQP messages must be dispatched to multiple _subscribers_ - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*client-options-name*# - -[.no-hyphens]#_(amqp-client-options-name)_# | The name of the AMQP Client Option bean used to customize the AMQP client configuration - -Type: _string_ | false | - -| [.no-hyphens]#*cloud-events*# | Enables (default) or disables the Cloud Event support. If enabled on an _incoming_ channel, the connector analyzes the incoming records and try to create Cloud Event metadata. If enabled on an _outgoing_, the connector sends the outgoing messages as Cloud Event if the message includes Cloud Event Metadata. - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*connect-timeout*# - -[.no-hyphens]#_(amqp-connect-timeout)_# | The connection timeout in milliseconds - -Type: _int_ | false | `1000` - -| [.no-hyphens]#*container-id*# | The AMQP container id - -Type: _string_ | false | - -| [.no-hyphens]#*durable*# | Whether AMQP subscription is durable - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*failure-strategy*# | Specify the failure strategy to apply when a message produced from an AMQP message is nacked. Accepted values are `fail` (default), `accept`, `release`, `reject`, `modified-failed`, `modified-failed-undeliverable-here` - -Type: _string_ | false | `fail` - -| [.no-hyphens]#*health-timeout*# | The max number of seconds to wait to determine if the connection with the broker is still established for the readiness check. After that threshold, the check is considered as failed. - -Type: _int_ | false | `3` - -| [.no-hyphens]#*host*# - -[.no-hyphens]#_(amqp-host)_# | The broker hostname - -Type: _string_ | false | `localhost` - -| [.no-hyphens]#*link-name*# | The name of the link. If not set, the channel name is used. - -Type: _string_ | false | - -| [.no-hyphens]#*password*# - -[.no-hyphens]#_(amqp-password)_# | The password used to authenticate to the broker - -Type: _string_ | false | - -| [.no-hyphens]#*port*# - -[.no-hyphens]#_(amqp-port)_# | The broker port - -Type: _int_ | false | `5672` - -| [.no-hyphens]#*reconnect-attempts*# - -[.no-hyphens]#_(amqp-reconnect-attempts)_# | The number of reconnection attempts - -Type: _int_ | false | `100` - -| [.no-hyphens]#*reconnect-interval*# - -[.no-hyphens]#_(amqp-reconnect-interval)_# | The interval in second between two reconnection attempts - -Type: _int_ | false | `10` - -| [.no-hyphens]#*sni-server-name*# - -[.no-hyphens]#_(amqp-sni-server-name)_# | If set, explicitly override the hostname to use for the TLS SNI server name - -Type: _string_ | false | - -| [.no-hyphens]#*tracing-enabled*# | Whether tracing is enabled (default) or disabled - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*use-ssl*# - -[.no-hyphens]#_(amqp-use-ssl)_# | Whether the AMQP connection uses SSL/TLS - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*username*# - -[.no-hyphens]#_(amqp-username)_# | The username used to authenticate to the broker - -Type: _string_ | false | - -| [.no-hyphens]#*virtual-host*# - -[.no-hyphens]#_(amqp-virtual-host)_# | If set, configure the hostname value used for the connection AMQP Open frame and TLS SNI server name (if TLS is in use) - -Type: _string_ | false | - -|=== - - -=== Outgoing channel configuration - -[cols="25, 30, 15, 20",options="header"] -|=== -|Attribute (_alias_) | Description | Mandatory | Default - -| [.no-hyphens]#*address*# | The AMQP address. If not set, the channel name is used - -Type: _string_ | false | - -| [.no-hyphens]#*client-options-name*# - -[.no-hyphens]#_(amqp-client-options-name)_# | The name of the AMQP Client Option bean used to customize the AMQP client configuration - -Type: _string_ | false | - -| [.no-hyphens]#*cloud-events*# | Enables (default) or disables the Cloud Event support. If enabled on an _incoming_ channel, the connector analyzes the incoming records and try to create Cloud Event metadata. If enabled on an _outgoing_, the connector sends the outgoing messages as Cloud Event if the message includes Cloud Event Metadata. - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*cloud-events-data-content-type*# - -[.no-hyphens]#_(cloud-events-default-data-content-type)_# | Configure the default `datacontenttype` attribute of the outgoing Cloud Event. Requires `cloud-events` to be set to `true`. This value is used if the message does not configure the `datacontenttype` attribute itself - -Type: _string_ | false | - -| [.no-hyphens]#*cloud-events-data-schema*# - -[.no-hyphens]#_(cloud-events-default-data-schema)_# | Configure the default `dataschema` attribute of the outgoing Cloud Event. Requires `cloud-events` to be set to `true`. This value is used if the message does not configure the `dataschema` attribute itself - -Type: _string_ | false | - -| [.no-hyphens]#*cloud-events-insert-timestamp*# - -[.no-hyphens]#_(cloud-events-default-timestamp)_# | Whether or not the connector should insert automatically the `time` attribute into the outgoing Cloud Event. Requires `cloud-events` to be set to `true`. This value is used if the message does not configure the `time` attribute itself - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*cloud-events-mode*# | The Cloud Event mode (`structured` or `binary` (default)). Indicates how are written the cloud events in the outgoing record - -Type: _string_ | false | `binary` - -| [.no-hyphens]#*cloud-events-source*# - -[.no-hyphens]#_(cloud-events-default-source)_# | Configure the default `source` attribute of the outgoing Cloud Event. Requires `cloud-events` to be set to `true`. This value is used if the message does not configure the `source` attribute itself - -Type: _string_ | false | - -| [.no-hyphens]#*cloud-events-subject*# - -[.no-hyphens]#_(cloud-events-default-subject)_# | Configure the default `subject` attribute of the outgoing Cloud Event. Requires `cloud-events` to be set to `true`. This value is used if the message does not configure the `subject` attribute itself - -Type: _string_ | false | - -| [.no-hyphens]#*cloud-events-type*# - -[.no-hyphens]#_(cloud-events-default-type)_# | Configure the default `type` attribute of the outgoing Cloud Event. Requires `cloud-events` to be set to `true`. This value is used if the message does not configure the `type` attribute itself - -Type: _string_ | false | - -| [.no-hyphens]#*connect-timeout*# - -[.no-hyphens]#_(amqp-connect-timeout)_# | The connection timeout in milliseconds - -Type: _int_ | false | `1000` - -| [.no-hyphens]#*container-id*# | The AMQP container id - -Type: _string_ | false | - -| [.no-hyphens]#*credit-retrieval-period*# | The period (in milliseconds) between two attempts to retrieve the credits granted by the broker. This time is used when the sender run out of credits. - -Type: _int_ | false | `2000` - -| [.no-hyphens]#*durable*# | Whether sent AMQP messages are marked durable - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*health-timeout*# | The max number of seconds to wait to determine if the connection with the broker is still established for the readiness check. After that threshold, the check is considered as failed. - -Type: _int_ | false | `3` - -| [.no-hyphens]#*host*# - -[.no-hyphens]#_(amqp-host)_# | The broker hostname - -Type: _string_ | false | `localhost` - -| [.no-hyphens]#*link-name*# | The name of the link. If not set, the channel name is used. - -Type: _string_ | false | - -| [.no-hyphens]#*merge*# | Whether the connector should allow multiple upstreams - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*password*# - -[.no-hyphens]#_(amqp-password)_# | The password used to authenticate to the broker - -Type: _string_ | false | - -| [.no-hyphens]#*port*# - -[.no-hyphens]#_(amqp-port)_# | The broker port - -Type: _int_ | false | `5672` - -| [.no-hyphens]#*reconnect-attempts*# - -[.no-hyphens]#_(amqp-reconnect-attempts)_# | The number of reconnection attempts - -Type: _int_ | false | `100` - -| [.no-hyphens]#*reconnect-interval*# - -[.no-hyphens]#_(amqp-reconnect-interval)_# | The interval in second between two reconnection attempts - -Type: _int_ | false | `10` - -| [.no-hyphens]#*sni-server-name*# - -[.no-hyphens]#_(amqp-sni-server-name)_# | If set, explicitly override the hostname to use for the TLS SNI server name - -Type: _string_ | false | - -| [.no-hyphens]#*tracing-enabled*# | Whether tracing is enabled (default) or disabled - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*ttl*# | The time-to-live of the send AMQP messages. 0 to disable the TTL - -Type: _long_ | false | `0` - -| [.no-hyphens]#*use-anonymous-sender*# | Whether or not the connector should use an anonymous sender. Default value is `true` if the broker supports it, `false` otherwise. If not supported, it is not possible to dynamically change the destination address. - -Type: _boolean_ | false | - -| [.no-hyphens]#*use-ssl*# - -[.no-hyphens]#_(amqp-use-ssl)_# | Whether the AMQP connection uses SSL/TLS - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*username*# - -[.no-hyphens]#_(amqp-username)_# | The username used to authenticate to the broker - -Type: _string_ | false | - -| [.no-hyphens]#*virtual-host*# - -[.no-hyphens]#_(amqp-virtual-host)_# | If set, configure the hostname value used for the connection AMQP Open frame and TLS SNI server name (if TLS is in use) - -Type: _string_ | false | - -|=== diff --git a/_versions/2.7/guides/amqp.adoc b/_versions/2.7/guides/amqp.adoc deleted file mode 100644 index d8363b4839d..00000000000 --- a/_versions/2.7/guides/amqp.adoc +++ /dev/null @@ -1,454 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Getting Started to SmallRye Reactive Messaging with AMQP 1.0 - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can utilize SmallRye Reactive Messaging to interact with AMQP 1.0. - -IMPORTANT: If you want to use RabbitMQ, you should use the xref:rabbitmq.adoc[SmallRye Reactive Messaging RabbitMQ extension]. -Alternatively, if want to use RabbitMQ with AMQP 1.0 you need to enable the AMQP 1.0 plugin in the RabbitMQ broker; -check the https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.9/amqp/amqp.html#amqp-rabbitmq[connecting to RabbitMQ] -documentation. - -== Prerequisites - -:prerequisites-docker-compose: -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this guide, we are going to develop two applications communicating with an AMQP broker. -We will use https://activemq.apache.org/components/artemis/[Artemis], but you can use any AMQP 1.0 broker. -The first application sends a _quote request_ to an AMQP queue and consumes messages from the _quote_ queue. -The second application receives the _quote request_ and sends a _quote_ back. - -image::amqp-qs-architecture.png[alt=Architecture, align=center,width=80%] - -The first application, the `producer`, will let the user request some quotes over an HTTP endpoint. -For each quote request, a random identifier is generated and returned to the user, to put the quote request on _pending_. -At the same time the generated request id is sent over the `quote-requests` queue. - -image::amqp-qs-app-screenshot.png[alt=Producer App UI, align=center] - -The second application, the `processor`, in turn, will read from the `quote-requests` queue put a random price to the quote, and send it to a queue named `quotes`. - -Lastly, the `producer` will read the quotes and send them to the browser using server-sent events. -The user will therefore see the quote price updated from _pending_ to the received price in real-time. - -== Solution - -We recommend that you follow the instructions in the next sections and create applications step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `amqp-quickstart` {quickstarts-tree-url}/amqp-quickstart[directory]. - -== Creating the Maven Project - -First, we need to create two projects: the _producer_ and the _processor_. - -To create the _producer_ project, in a terminal run: - -:create-app-artifact-id: amqp-quickstart-producer -:create-app-extensions: resteasy-reactive-jackson,smallrye-reactive-messaging-amqp -:create-app-post-command: -include::includes/devtools/create-app.adoc[] - -This command creates the project structure and select the two Quarkus extensions we will be using: - -1. RESTEasy Reactive and its Jackson support to handle JSON payloads -2. The Reactive Messaging AMQP connector - -To create the _processor_ project, from the same directory, run: - -:create-app-artifact-id: amqp-quickstart-processor -:create-app-extensions: smallrye-reactive-messaging-amqp -:create-app-post-command: -include::includes/devtools/create-app.adoc[] - -At that point you should have the following structure: - -[source, text] ----- -. -├── amqp-quickstart-processor -│ ├── README.md -│ ├── mvnw -│ ├── mvnw.cmd -│ ├── pom.xml -│ └── src -│ └── main -│ ├── docker -│ ├── java -│ └── resources -│ └── application.properties -└── amqp-quickstart-producer - ├── README.md - ├── mvnw - ├── mvnw.cmd - ├── pom.xml - └── src - └── main - ├── docker - ├── java - └── resources - └── application.properties ----- - -Open the two projects in your favorite IDE. - -== The Quote object - -The `Quote` class will be used in both `producer` and `processor` projects. -For the sake of simplicity we will duplicate the class. -In both projects, create the `src/main/java/org/acme/amqp/model/Quote.java` file, with the following content: - -[source,java] ----- -package org.acme.amqp.model; - -import io.quarkus.runtime.annotations.RegisterForReflection; - -@RegisterForReflection -public class Quote { - - public String id; - public int price; - - /** - * Default constructor required for Jackson serializer - */ - public Quote() { } - - public Quote(String id, int price) { - this.id = id; - this.price = price; - } - - @Override - public String toString() { - return "Quote{" + - "id='" + id + '\'' + - ", price=" + price + - '}'; - } -} ----- - -JSON representation of `Quote` objects will be used in messages sent to the AMQP queues -and also in the server-sent events sent to browser clients. - -Quarkus has built-in capabilities to deal with JSON AMQP messages. - -[NOTE] -.@RegisterForReflection -==== -The `@RegisterForReflection` annotation instructs Quarkus to include the class (including fields and methods) when building the native executable. -This will be useful later when we run the applications as native executables inside containers. -Without, the native compilation would remove the fields and methods during the dead-code elimination phase. -==== - -== Sending quote request - -Inside the `producer` project locate the generated `src/main/java/org/acme/amqp/producer/QuotesResource.java` file, and update the content to be: - -[source,java] ----- -package org.acme.amqp.producer; - -import java.util.UUID; - -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.acme.amqp.model.Quote; -import org.eclipse.microprofile.reactive.messaging.Channel; -import org.eclipse.microprofile.reactive.messaging.Emitter; - -import io.smallrye.mutiny.Multi; - -@Path("/quotes") -public class QuotesResource { - - @Channel("quote-requests") Emitter quoteRequestEmitter; // <1> - - /** - * Endpoint to generate a new quote request id and send it to "quote-requests" AMQP queue using the emitter. - */ - @POST - @Path("/request") - @Produces(MediaType.TEXT_PLAIN) - public String createRequest() { - UUID uuid = UUID.randomUUID(); - quoteRequestEmitter.send(uuid.toString()); // <2> - return uuid.toString(); - } -} ----- -<1> Inject a Reactive Messaging `Emitter` to send messages to the `quote-requests` channel. -<2> On a post request, generate a random UUID and send it to the AMQP queue using the emitter. - -The `quote-requests` channel is going to be managed as a AMQP queue, as that's the only connector on the classpath. -If not indicated otherwise, like in this example, Quarkus uses the channel name as AMQP queue name. -So, in this example, the application sends messages to the `quote-requests` queue. - -TIP: When you have multiple connectors, you would need to indicate which connector you want to use in the application configuration. - -== Processing quote requests - -Now let's consume the quote request and give out a price. -Inside the `processor` project, locate the `src/main/java/org/acme/amqp/processor/QuoteProcessor.java` file and add the following: - -[source, java] ----- -package org.acme.amqp.processor; - -import java.util.Random; - -import javax.enterprise.context.ApplicationScoped; - -import org.acme.amqp.model.Quote; -import org.eclipse.microprofile.reactive.messaging.Incoming; -import org.eclipse.microprofile.reactive.messaging.Outgoing; - -import io.smallrye.reactive.messaging.annotations.Blocking; - -/** - * A bean consuming data from the "request" AMQP queue and giving out a random quote. - * The result is pushed to the "quotes" AMQP queue. - */ -@ApplicationScoped -public class QuoteProcessor { - - private Random random = new Random(); - - @Incoming("requests") // <1> - @Outgoing("quotes") // <2> - @Blocking // <3> - public Quote process(String quoteRequest) throws InterruptedException { - // simulate some hard working task - Thread.sleep(200); - return new Quote(quoteRequest, random.nextInt(100)); - } -} ----- -<1> Indicates that the method consumes the items from the `requests` channel -<2> Indicates that the objects returned by the method are sent to the `quotes` channel -<3> Indicates that the processing is _blocking_ and cannot be run on the caller thread. - -The `process` method is called for every AMQP message from the `quote-requests` queue, and will send a `Quote` object to the `quotes` queue. - -Because we want to consume messages from the `quotes-requests` queue into the `requests` channel, we need to configure this association. -Open the `src/main/resources/application.properties` file and add: - -[source, properties] ----- -mp.messaging.incoming.requests.address=quote-requests ----- - -The configuration keys are structured as follows: - -`mp.messaging.[outgoing|incoming].{channel-name}.property=value` - -In our case, we want to configure the `address` attribute to indicate the name of the queue. - -== Receiving quotes - -Back to our `producer` project. -Let's modify the `QuotesResource` to consume quotes, bind it to an HTTP endpoint to send events to clients: - -[source,java] ----- -import io.smallrye.mutiny.Multi; -//... - -@Channel("quotes") Multi quotes; // <1> - -/** - * Endpoint retrieving the "quotes" queue and sending the items to a server sent event. - */ -@GET -@Produces(MediaType.SERVER_SENT_EVENTS) // <2> -public Multi stream() { - return quotes; // <3> -} ----- -<1> Injects the `quotes` channel using the `@Channel` qualifier -<2> Indicates that the content is sent using `Server Sent Events` -<3> Returns the stream (_Reactive Stream_) - -== The HTML page - -Final touch, the HTML page reading the converted prices using SSE. - -Create inside the `producer` project `src/main/resources/META-INF/resources/quotes.html` file, with the following content: - -[source, html] ----- - Quotes - - - - - -
-
-
-

Quotes

- -
-
-
-
- - - - ----- - -Nothing spectacular here. -On each received quote, it updates the page. - -== Get it running - -You just need to run both applications using: - -[source,bash] ----- -> mvn -f amqp-quickstart-producer quarkus:dev ----- - -And, in a separate terminal: - -[source, bash] ----- -> mvn -f amqp-quickstart-processor quarkus:dev ----- - -Quarkus starts a AMQP broker automatically, configures the application and shares the broker instance between different applications. -See xref:amqp-dev-services.adoc[Dev Services for AMQP] for more details. - - -Open `http://localhost:8080/quotes.html` in your browser and request some quotes by clicking the button. - -== Running in JVM or Native mode - -When not running in dev or test mode, you will need to start your AMQP broker. -You can follow the instructions from the https://activemq.apache.org/components/artemis/documentation/latest/using-server.html[Apache ActiveMQ Artemis website] or create a `docker-compose.yaml` file with the following content: - -[source, yaml] ----- -version: '2' - -services: - - artemis: - image: quay.io/artemiscloud/activemq-artemis-broker:0.1.2 - ports: - - "8161:8161" - - "61616:61616" - - "5672:5672" - environment: - AMQ_USER: quarkus - AMQ_PASSWORD: quarkus - networks: - - amqp-quickstart-network - - producer: - image: quarkus-quickstarts/amqp-quickstart-producer:1.0-${QUARKUS_MODE:-jvm} - build: - context: amqp-quickstart-producer - dockerfile: src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm} - environment: - AMQP_HOST: artemis - AMQP_PORT: 5672 - ports: - - "8080:8080" - networks: - - amqp-quickstart-network - - processor: - image: quarkus-quickstarts/amqp-quickstart-processor:1.0-${QUARKUS_MODE:-jvm} - build: - context: amqp-quickstart-processor - dockerfile: src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm} - environment: - AMQP_HOST: artemis - AMQP_PORT: 5672 - networks: - - amqp-quickstart-network - -networks: - amqp-quickstart-network: - name: amqp-quickstart ----- - -Note how the AMQP broker location is configured. -The `amqp.host` and `amqp.port` (`AMQP_HOST` and `AMQP_PORT` environment variables) properties configure location. - - -First, make sure you stopped the applications, and build both applications in JVM mode with: - -[source, bash] ----- -> mvn -f amqp-quickstart-producer clean package -> mvn -f amqp-quickstart-processor clean package ----- - -Once packaged, run `docker compose up --build`. -The UI is exposed on http://localhost:8080/quotes.html - -To run your applications as native, first we need to build the native executables: - -[source, bash] ----- -> mvn -f amqp-quickstart-producer package -Pnative -Dquarkus.native.container-build=true -> mvn -f amqp-quickstart-processor package -Pnative -Dquarkus.native.container-build=true ----- - -The `-Dquarkus.native.container-build=true` instructs Quarkus to build Linux 64bits native executables, who can run inside containers. -Then, run the system using: - -[source, bash] ----- -> export QUARKUS_MODE=native -> docker compose up --build ----- - -As before, the UI is exposed on http://localhost:8080/quotes.html - -== Going further - -This guide has shown how you can interact with AMQP 1.0 using Quarkus. -It utilizes https://smallrye.io/smallrye-reactive-messaging[SmallRye Reactive Messaging] to build data streaming applications. - -If you did the Kafka quickstart, you have realized that it's the same code. -The only difference is the connector configuration and the JSON mapping. - - diff --git a/_versions/2.7/guides/apicurio-registry-dev-services.adoc b/_versions/2.7/guides/apicurio-registry-dev-services.adoc deleted file mode 100644 index beb991b3fc9..00000000000 --- a/_versions/2.7/guides/apicurio-registry-dev-services.adoc +++ /dev/null @@ -1,60 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Dev Services for Apicurio Registry - -include::./attributes.adoc[] - -If the `quarkus-apicurio-registry-avro` extension is present, Dev Services for Apicurio Registry automatically starts an Apicurio Registry instance in dev mode and when running tests. -Also, all Kafka channels in SmallRye Reactive Messaging are automatically configured to use this registry. -(This automatic configuration of course only applies to serializers and deserializers from the Apicurio Registry Avro library.) - -== Enabling / Disabling Dev Services for Apicurio Registry - -Dev Services for Apicurio Registry is automatically enabled unless: - -- `quarkus.apicurio-registry.devservices.enabled` is set to `false` -- `mp.messaging.connector.smallrye-kafka.apicurio.registry.url` is configured -- all the Reactive Messaging Kafka channels have the `apicurio.registry.url` attribute set - -Dev Services for Apicurio Registry relies on Docker to start the registry. -If your environment does not support Docker, you will need to start the registry manually, or use an already running registry. -You can configure the registry URL for all Kafka channels in SmallRye Reactive Messaging with a single property: - -[source,properties] ----- -mp.messaging.connector.smallrye-kafka.apicurio.registry.url=http://localhost:8081/apis/registry/v2 ----- - -== Shared registry - -Most of the time you need to share the registry between applications. -Dev Services for Apicurio Registry implements a _service discovery_ mechanism for your multiple Quarkus applications running in _dev_ mode to share a single registry. - -NOTE: Dev Services for Apicurio Registry starts the container with the `quarkus-dev-service-apicurio-registry` label which is used to identify the container. - -If you need multiple (shared) registries, you can configure the `quarkus.apicurio-registry.devservices.service-name` attribute and indicate the registry name. -It looks for a container with the same value, or starts a new one if none can be found. -The default service name is `apicurio-registry`. - -Sharing is enabled by default in dev mode, but disabled in test mode. -You can disable the sharing with `quarkus.apicurio-registry.devservices.shared=false`. - -== Setting the port - -By default, Dev Services for Apicurio Registry picks a random port and configures the application. -You can set the port by configuring the `quarkus.apicurio-registry.devservices.port` property. - -Note that the Kafka channels in SmallRye Reactive messaging are automatically configured with the chosen port. - -== Configuring the image - -Dev Services for Apicurio Registry uses `apicurio/apicurio-registry-mem` images. -You can select any 2.x version from https://hub.docker.com/r/apicurio/apicurio-registry-mem: - -[source, properties] ----- -quarkus.apicurio-registry.devservices.image-name=apicurio/apicurio-registry-mem:latest-snapshot ----- diff --git a/_versions/2.7/guides/attributes.adoc b/_versions/2.7/guides/attributes.adoc deleted file mode 100644 index fffff07a1da..00000000000 --- a/_versions/2.7/guides/attributes.adoc +++ /dev/null @@ -1,40 +0,0 @@ -:imagesdir: /guides/images - -:project-name: Quarkus -:quarkus-version: 2.7.5.Final - -:maven-version: 3.8.1+ -:graalvm-version: 21.3.1 -:graalvm-flavor: 21.3.1-java11 -:mandrel-flavor: 21.3-java11 -:surefire-version: 3.0.0-M5 -:restassured-version: 4.4.0 -:gradle-version: 7.3.3 -:jandex-maven-plugin-version: 1.2.2 - -:generated-dir: ../../../_generated-doc/2.7 -:quarkus-home-url: https://quarkus.io -:quarkus-site-getting-started: /get-started -:quarkus-writing-extensions-guide: /guides/writing-extensions -:quarkus-site-publications: /publications -:quarkus-org-url: https://github.com/quarkusio -:quarkus-base-url: https://github.com/quarkusio/quarkus -:quarkus-clone-url: https://github.com/quarkusio/quarkus.git -:quarkus-archive-url: https://github.com/quarkusio/quarkus/archive/master.zip -:quarkus-tree-url: https://github.com/quarkusio/quarkus/tree/main -:quarkus-issues-url: https://github.com/quarkusio/quarkus/issues -:quarkus-images-url: https://github.com/quarkusio/quarkus-images/tree -:quarkus-chat-url: https://quarkusio.zulipchat.com -:quarkus-mailing-list-subscription-email: quarkus-dev+subscribe@googlegroups.com -:quarkus-mailing-list-index: https://groups.google.com/d/forum/quarkus-dev -:quickstarts-base-url: https://github.com/quarkusio/quarkus-quickstarts -:quickstarts-clone-url: https://github.com/quarkusio/quarkus-quickstarts.git -:quickstarts-archive-url: https://github.com/quarkusio/quarkus-quickstarts/archive/main.zip -:quickstarts-blob-url: https://github.com/quarkusio/quarkus-quickstarts/blob/main -:quickstarts-tree-url: https://github.com/quarkusio/quarkus-quickstarts/tree/main - -:config-consul-guide: https://quarkiverse.github.io/quarkiverse-docs/quarkus-config-extensions/dev/consul.html -:hibernate-search-orm-elasticsearch-aws-guide: https://quarkiverse.github.io/quarkiverse-docs/quarkus-hibernate-search-extras/2.x/index.html -:neo4j-guide: https://quarkiverse.github.io/quarkiverse-docs/quarkus-neo4j/dev/index.html -:vault-guide: https://quarkiverse.github.io/quarkiverse-docs/quarkus-vault/dev/index.html -:vault-datasource-guide: https://quarkiverse.github.io/quarkiverse-docs/quarkus-vault/dev/vault-datasource.html diff --git a/_versions/2.7/guides/azure-functions-http.adoc b/_versions/2.7/guides/azure-functions-http.adoc deleted file mode 100644 index 2426a42c994..00000000000 --- a/_versions/2.7/guides/azure-functions-http.adoc +++ /dev/null @@ -1,123 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Azure Functions (Serverless) with RESTEasy, Undertow, or Reactive Routes -:extension-status: preview - -include::./attributes.adoc[] - -The `quarkus-azure-functions-http` extension allows you to write microservices with RESTEasy (JAX-RS), -Undertow (servlet), Reactive Routes, or xref:funqy-http.adoc[Funqy HTTP] and make these microservices deployable to the Azure Functions runtime. - -One azure function deployment can represent any number of JAX-RS, servlet, Reactive Routes, or xref:funqy-http.adoc[Funqy HTTP] endpoints. - -include::./status-include.adoc[] - -NOTE: Only text based media types are supported at the moment as Azure Functions HTTP Trigger for Java does not support a binary format - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* https://azure.microsoft.com[An Azure Account]. Free accounts work. -* https://docs.microsoft.com/en-us/cli/azure/install-azure-cli[Azure CLI Installed] - -== Solution - -This guide walks you through running a Maven Archetype to generate a sample project that contains three http endpoints -written with JAX-RS APIs, Servlet APIs, Reactive Routes, or xref:funqy-http.adoc[Funqy HTTP] APIs. After building, you will then be able to deploy -to Azure. - -== Creating the Maven Deployment Project - -Create the Azure Maven project for your Quarkus application using our Maven Archetype. - - -[source,bash,subs=attributes+] ----- -mvn archetype:generate \ - -DarchetypeGroupId=io.quarkus \ - -DarchetypeArtifactId=quarkus-azure-functions-http-archetype \ - -DarchetypeVersion={quarkus-version} ----- - -Running this command will run maven in interactive mode and it will ask you to fill in some build properties: - -* `groupId` - The maven groupId of this generated project. Type in `org.acme`. -* `artifactId` - The maven artifactId of this generated project. Type in `quarkus-demo` -* `version` - Version of this generated project. -* `package` - defaults to `groupId` -* `appName` - Use the default value. This is the application name in Azure. It must be a unique subdomain name under `*.azurewebsites.net`. Otherwise deploying to Azure will fail. -* `appRegion` - Defaults to `westus`. Dependent on your azure region. -* `function` - Use the default which is `quarkus`. Name of your azure function. Can be anything you want. -* `resourceGroup` - Use the default value. Any value is fine though. - -The values above are defined as properties in the generated `pom.xml` file. - -== Login to Azure - -If you don't login to Azure you won't be able to deploy. - -[source,bash,subs=attributes+] ----- -az login ----- - -== Build and Deploy to Azure - -The `pom.xml` you generated in the previous step pulls in the `azure-functions-maven-plugin`. Running maven install -generates config files and a staging directory required by the `azure-functions-maven-plugin`. Here's -how to execute it. - -[source,bash,subs=attributes+] ----- -./mvnw clean install azure-functions:deploy ----- - -If you haven't already created your function up at azure, the will build an uber-jar, package it, create the function -at Azure, and deploy it. - -If deployment is a success, the azure plugin will tell you the base URL to access your function. - -i.e. -[source] ----- -Successfully deployed the artifact to https://quarkus-demo-123451234.azurewebsites.net ----- - -The URL to access the service would be - -https://{appName}.azurewebsites.net/api/hello -https://{appName}.azurewebsites.net/api/servlet/hello -https://{appName}.azurewebsites.net/api/vertx/hello -https://{appName}.azurewebsites.net/api/funqyHello - -== Extension maven dependencies - -The sample project includes the RESTEasy, Undertow, Reactive Routes, xref:funqy-http.adoc[Funqy HTTP] extensions. If you are only using one of those -APIs (i.e. jax-rs only), respectively remove the maven dependency `quarkus-resteasy`, `quarkus-undertow`, `quarkus-funqy-http`, and/or -`quarkus-reactive-routes`. - -You must include the `quarkus-azure-functions-http` extension as this is a generic bridge between the Azure Functions -runtime and the HTTP framework you are writing your microservices in. - -== Azure Deployment Descriptors - -Templates for Azure Functions deployment descriptors (`host.json`, `function.json`) are within -the `azure-config` directory. Edit them as you need to. Rerun the build when you are ready. - -*NOTE*: If you change the `function.json` `path` attribute or if you add a `routePrefix`, -your jax-rs endpoints won't route correctly. See <> for more information. - - -[#config-azure-paths] -== Configuring Root Paths - -The default route prefix for an Azure Function is `/api`. All of your JAX-RS, Servlet, Reactive Routes, and xref:funqy-http.adoc[Funqy HTTP] endpoints must -explicitly take this into account. In the generated project this is handled by the -`quarkus.http.root-path` switch in `application.properties` - -If you modify the `path` or add a `routePrefix` within the `azure-config/function.json` -deployment descriptor, your code or configuration must also reflect any prefixes you specify for your path. - diff --git a/_versions/2.7/guides/blaze-persistence.adoc b/_versions/2.7/guides/blaze-persistence.adoc deleted file mode 100644 index 219aaf7592b..00000000000 --- a/_versions/2.7/guides/blaze-persistence.adoc +++ /dev/null @@ -1,250 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Blaze-Persistence - -include::./attributes.adoc[] -:config-file: application.properties - -Blaze-Persistence offers a fluent query builder API on top of JPA with a deep Hibernate ORM integration that enables the -use of advanced SQL features like Common Table Expressions while staying in the realm of the JPA model. - -On top of that, the Blaze-Persistence Entity-View module allows for DTO definitions that can be applied to business logic -queries which are then transformed to optimized queries that only fetch the data that is needed to construct the DTO instances. -The same DTO definitions can further be used for applying database updates, leading to a great reduction in boilerplate -code and removing the need for object mapping tools. - -include::./platform-include.adoc[] - -== Setting up and configuring Blaze-Persistence - -The extension comes with default producers for `CriteriaBuilderFactory` and `EntityViewManager` that work out of the -box given a working Hibernate ORM configuration. For customization, overriding of the default producers is possible via the -standard mechanism as documented in the xref:cdi-reference.adoc#default_beans[Quarkus CDI reference]. -This is needed if you need to set custom link:https://persistence.blazebit.com/documentation/entity-view/manual/en_US/index.html#anchor-configuration-properties[Blaze-Persistence properties]. - -In Quarkus, you just need to: - -* `@Inject` `CriteriaBuilderFactory` or `EntityViewManager` and use it -* annotate your entity views with `@EntityView` and any other mapping annotation as usual - -Add the following dependencies to your project: - -* the Blaze-Persistence extension: `com.blazebit:blaze-persistence-integration-quarkus` -* further Blaze-Persistence integrations as needed: - - `blaze-persistence-integration-jackson` for link:https://persistence.blazebit.com/documentation/entity-view/manual/en_US/index.html#Jackson%20integration[Jackson] - - `blaze-persistence-integration-jaxrs` for link:https://persistence.blazebit.com/documentation/entity-view/manual/en_US/index.html#jaxrs-integration[JAX-RS] - - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.Example dependencies using Maven ----- - - - com.blazebit - blaze-persistence-integration-quarkus - - - com.blazebit - blaze-persistence-integration-hibernate-5.6 - runtime - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.Using Gradle ----- -implementation("com.blazebit:blaze-persistence-integration-quarkus") -runtimeOnly("com.blazebit:blaze-persistence-integration-hibernate-5.6") ----- - -The use in native images requires a dependency on the entity view annotation processor that may be extracted into a separate `native` profile: - -[source,xml] ----- - - - native - - - com.blazebit - blaze-persistence-entity-view-processor - provided - - - - ----- - -A `CriteriaBuilderFactory` and an `EntityViewManager` will be created based on the configured `EntityManagerFactory` as provided by the xref:hibernate-orm.adoc[Hibernate-ORM extension]. - -You can then access these beans via injection: - -[source,java] -.Example application bean using Hibernate ----- -@ApplicationScoped -public class SantaClausService { - @Inject - EntityManager em; <1> - @Inject - CriteriaBuilderFactory cbf; <2> - @Inject - EntityViewManager evm; <3> - - @Transactional <4> - public List findAllGifts() { - CriteriaBuilder cb = cbf.create(em, Gift.class); - return evm.applySetting(EntityViewSetting.create(GiftView.class), cb).getResultList(); - } -} ----- - -<1> Inject the `EntityManager` -<2> Inject the `CriteriaBuilderFactory` -<3> Inject the `EntityViewManager` -<4> Mark your CDI bean method as `@Transactional` so that a transaction is started or joined. - -[source,java] -.Example Entity ----- -@Entity -public class Gift { - private Long id; - private String name; - private String description; - - @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator="giftSeq") - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } -} ----- - -[source,java] -.Example Entity-View ----- -@EntityView(Gift.class) -public interface GiftView { - - @IdMapping - Long getId(); - - String getName(); -} ----- - -[source,java] -.Example updatable Entity-View ----- -@UpdatableEntityView -@CreatableEntityView -@EntityView(Gift.class) -public interface GiftUpdateView extends GiftView { - - void setName(String name); -} ----- - -[source,java] -.Example JAX-RS Resource ----- -@Path("/gifts") -public class GiftResource { - @Inject - EntityManager entityManager; - @Inject - EntityViewManager entityViewManager; - @Inject - SantaClausService santaClausService; - - @POST - @Transactional - public Response createGift(GiftUpdateView view) { - entityViewManager.save(entityManager, view); - return Response.created(URI.create("/gifts/" + view.getId())).build(); - } - - @GET - @Produces(MediaType.APPLICATION_JSON) - public List getGifts() { - return santaClausService.findAllGifts(); - } - - @PUT - @Path("{id}") - @Transactional - public GiftView updateGift(@EntityViewId("id") GiftUpdateView view) { - entityViewManager.save(entityManager, view); - return entityViewManager.find(entityManager, GiftView.class, view.getId()); - } - - @GET - @Path("{id"}) - @Produces(MediaType.APPLICATION_JSON) - public GiftView getGift(@PathParam("id") Long id) { - return return entityViewManager.find(entityManager, GiftView.class, view.getId()); - } -} ----- - -[[blaze-persistence-configuration-properties]] -== Blaze-Persistence configuration properties - -There are various optional properties useful to refine your `EntityViewManager` and `CriteriaBuilderFactory` or guide guesses of Quarkus. - -There are no required properties, as long as the Hibernate ORM extension is configured properly. - -When no property is set, the Blaze-Persistence defaults apply. - -The configuration properties listed here allow you to override such defaults, and customize and tune various aspects. - -include::quarkus-blaze-persistence.adoc[opts=optional, leveloffset=+2] - -Apart from these configuration options, further configuration and customization can be applied by observing a `CriteriaBuilderConfiguration` or `EntityViewConfiguration` events and applying customizations on these objects. The various customization use cases can be found in the link:https://persistence.blazebit.com/documentation/entity-view/manual/en_US/index.html#quarkus-customization[Quarkus section of the entity-view documentation]. - -[source,java] -.Example CriteriaBuilderConfiguration and EntityViewConfiguration observing ----- -@ApplicationScoped -public class BlazePersistenceConfigurer { - - public void configure(@Observes CriteriaBuilderConfiguration config) { - config.setProperty("...", "..."); - } - - public void configure(@Observes EntityViewConfiguration config) { - // Register custom BasicUserType or register type test values - config.registerBasicUserType(MyClass.class, MyClassBasicUserType.class); - } -} ----- - -== Limitations - -Apache Derby:: -Blaze-Persistence currently does not come with support for Apache Derby. -This limitation could be lifted in the future, if there's a compelling need for it and if someone contributes it. diff --git a/_versions/2.7/guides/building-my-first-extension.adoc b/_versions/2.7/guides/building-my-first-extension.adoc deleted file mode 100644 index 7ae69185458..00000000000 --- a/_versions/2.7/guides/building-my-first-extension.adoc +++ /dev/null @@ -1,930 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Building my first extension - -include::./attributes.adoc[] - -Quarkus extensions enhance your application just as projects dependencies do. -The role of the extensions is to leverage Quarkus paradigms to integrate seamlessly a library into Quarkus architecture - e.g. do more things at build time. -This is how you can use your battle-tested ecosystem and take advantage of Quarkus performance and native compilation. -Go to https://code.quarkus.io/[code.quarkus.io] to get the list of the supported extensions. - -In this guide we are going to develop the *Sample Greeting Extension*. -The extension will expose a customizable HTTP endpoint which simply greets the visitor. - -[NOTE] -.Disclaimer -To be sure it's extra clear you don't need an extension to add a Servlet to your application. -This guide is a simplified example to explain the concepts of extensions development, see the xref:writing-extensions.adoc[full documentation] if you need more information. -Keep in mind it's not representative of the power of moving things to build time or simplifying the build of native images. - -== Prerequisites - -:prerequisites-time: 30 minutes -:prerequisites-no-graalvm: -include::includes/devtools/prerequisites.adoc[] - -== Basic Concepts - -First things first, we will need to start with some basic concepts. - -* JVM mode vs Native mode - ** Quarkus is first and foremost a Java framework, that means you can develop, package and run classic JAR applications, that's what we call *JVM mode*. - ** Thanks to https://graalvm.org/[GraalVM] you can compile your Java application into machine specific code (like you do in Go or C++) and that's what we call *Native mode*. - -The operation of compiling Java bytecode into a native system-specific machine code is named *Ahead of Time Compilation* (aka AoT). - -* build time vs runtime in classic Java frameworks - ** The build time corresponds to all the actions you apply to your Java source files to convert them into something runnable (class files, jar/war, native images). - Usually this stage is composed by the compilation, annotation processing, bytecode generation, etc. At this point, everything is under the developer's scope and control. - ** The runtime is all the actions that happen when you execute your application. - It's obviously focused on starting your business-oriented actions but it relies on a lot of technical actions like loading libraries and configuration files, scanning the application's classpath, configuring the dependency injection, setting up your Object-Relational Mapping, instantiating your REST controllers, etc. - -Usually, Java frameworks do their bootstrapping during the runtime before actually starting the application "Business oriented layer". During bootstrap, frameworks dynamically collect metadata by scanning the classpath to find configurations, entity definitions, dependency injection binding, etc. in order to instantiate proper objects through reflection. The main consequences are: - -* Delaying the readiness of your application: you need to wait a couple of seconds before actually serving a business request. -* Having a peak of resource consumption at bootstrap: in a constrained environment, you will need to size the needed resources based on your technical bootstrap needs rather than your actual business needs. - -Quarkus' philosophy is to prevent as much as possible slow and memory intensive dynamic code execution by shifting left these actions and eventually do them during the build time. -A Quarkus extension is a Java piece of code acting as an adapter layer for your favorite library or technology. - -== Description of a Quarkus extension - -A Quarkus extension consists of two parts: - -* The *runtime module* which represents the capabilities the extension developer exposes to the application's developer (an authentication filter, an enhanced data layer API, etc). -Runtime dependencies are the ones the users will add as their application dependencies (in Maven POMs or Gradle build scripts). -* The *deployment module* which is used during the augmentation phase of the build, it describes how to "deploy" a library -following the Quarkus philosophy. -In other words, it applies all the Quarkus optimizations to your application during the build. -The deployment module is also where we prepare things for GraalVM's native compilation. - -IMPORTANT: Users should not be adding the deployment modules of extension as application dependencies. The deployment dependencies are resolved by -Quarkus during the augmentation phase from the runtime dependencies of the application. - -At this point, you should have understood that most of the magic will happen at the Augmentation build time thanks to the deployment module. - -== Quarkus Application Bootstrap - -There are three distinct bootstrap phases of a Quarkus application. - -* *Augmentation*. During the build time, the Quarkus extensions will load and scan your application's bytecode (including the dependencies) and configuration. -At this stage, the extension can read configuration files, scan classes for specific annotations, etc. -Once all the metadata has been collected, the extensions can pre-process the libraries bootstrap actions like your ORM, DI or REST controllers configurations. -The result of the bootstrap is directly recorded into bytecode and will be part of your final application package. -* *Static Init*. During the run time, Quarkus will execute first a static init method which contains some extensions actions/configurations. -When you will do your native packaging, this static method will be pre-processed during the build time and the objects it has generated will be serialized into the final native executable, so the initialization code will not be executed in the native mode (imagine you execute a Fibonacci function during this phase, the result of the computation will be directly recorded in the native executable). -When running the application in JVM mode, this static init phase is executed at the start of the application. - -* *Runtime Init*. Well nothing fancy here, we do classic run time code execution. -So, the more code you run during the two phases above, the faster your application will start. - -Now that everything is explained, we can start coding! - -== Project setup - -Extensions can be built with either Maven or Gradle. Depending on your build tool, setup can be done as following: - -NOTE: The Gradle extension plugin is still experimental and may be missing features available in the Maven plugin. - -=== Maven setup - -Quarkus provides `create-extension` Maven Mojo to initialize your extension project. - -It will try to auto-detect its options: - -* from `quarkus` (Quarkus Core) or `quarkus/extensions` directory, it will use the 'Quarkus Core' extension layout and defaults. -* with `-DgroupId=io.quarkiverse.[extensionId]`, it will use the 'Quarkiverse' extension layout and defaults. -* in other cases it will use the 'Standalone' extension layout and defaults. -* we may introduce other layout types in the future. - -TIP: You may call it without any parameter to use the interactive mode: `mvn io.quarkus.platform:quarkus-maven-plugin:{quarkus-version}:create-extension -N` - -[source,shell,subs=attributes+] ----- -$ mvn io.quarkus.platform:quarkus-maven-plugin:{quarkus-version}:create-extension -N \ - -DgroupId=org.acme \ #<1> - -DextensionId=greeting-extension \ #<2> - -DwithoutTests #<3> - -[INFO] --- quarkus-maven-plugin:{quarkus-version}:create-extension (default-cli) @ standalone-pom --- - -Detected layout type is 'standalone' #<4> -Generated runtime artifactId is 'greeting-extension' #<5> - - -applying codestarts... -🔠 java -🧰 maven -🗃 quarkus-extension -🐒 extension-base - ------------ -👍 extension has been successfully generated in: ---> /Users/ia3andy/workspace/redhat/quarkus/demo/greeting-extension ------------ -[INFO] ------------------------------------------------------------------------ -[INFO] BUILD SUCCESS -[INFO] ------------------------------------------------------------------------ -[INFO] Total time: 1.659 s -[INFO] Finished at: 2021-01-25T16:17:16+01:00 -[INFO] ------------------------------------------------------------------------ - ----- - -<1> The extension groupId -<2> The extension id (not namespaced). -<3> Indicate that we don't want to generate any test -<4> From a directory with no pom.xml and without any further options, the generator will automatically pick the 'standalone' extension layout -<5> With the 'standalone' layout, the `namespaceId` is empty by default, so the computed runtime module artifactId is the `extensionId` - -Maven has generated a `greeting-extension` directory containing the extension project which consists of the parent `pom.xml`, the `runtime` and the `deployment` modules. - -==== The parent pom.xml - -Your extension is a multi-module project. So let's start by checking out the parent POM at `./greeting-extension/pom.xml`. - -[source, xml, subs=attributes+] ----- - - - 4.0.0 - org.acme - greeting-extension-parent - 1.0.0-SNAPSHOT - pom - Greeting Extension - Parent - - deployment - runtime - - - 3.8.1 - ${surefire-plugin.version} - 11 - UTF-8 - UTF-8 - {quarkus-version} - 3.0.0-M5 - false - - - - - io.quarkus - quarkus-bom - ${quarkus.version} - pom - import - - - - - - - - maven-surefire-plugin - ${surefire-plugin.version} - - - org.jboss.logmanager.LogManager - ${maven.home} - ${settings.localRepository} - - - - - maven-failsafe-plugin - ${failsafe-plugin.version} - - - org.jboss.logmanager.LogManager - ${maven.home} - ${settings.localRepository} - - - - - maven-compiler-plugin - ${compiler-plugin.version} - - - -parameters - - - - - - - ----- - -<1> Your extension declares 2 sub-modules `deployment` and `runtime`. -<2> Quarkus requires a recent version of the Maven compiler plugin supporting the annotationProcessorPaths configuration. -<3> The `quarkus-bom` aligns your dependencies with those used by Quarkus during the augmentation phase. -<4> Quarkus requires these configs to run tests properly. -<5> Setting the `parameters` flag this way works around https://issues.apache.org/jira/browse/MCOMPILER-413[MCOMPILER-413]. - -==== The Deployment module - -Let's have a look at the deployment's `./greeting-extension/deployment/pom.xml`. -[source, xml] ----- - - - 4.0.0 - - org.acme - greeting-extension-parent - 1.0.0-SNAPSHOT - - - greeting-extension-deployment - Greeting Extension - Deployment - - - - io.quarkus - quarkus-arc-deployment - - - org.acme - greeting-extension - ${project.version} - - - io.quarkus - quarkus-junit5-internal - test - - - - - - - maven-compiler-plugin - - - - io.quarkus - quarkus-extension-processor - ${quarkus.version} - - - - - - - - ----- - -The key points are: - -<1> By convention, the deployment module has the `-deployment` suffix (`greeting-extension-deployment`). -<2> The deployment module depends on the `quarkus-arc-deployment` artifact. -We will see later which dependencies are convenient to add. -<3> The deployment module also *must* depend on the runtime module. -<4> We add the `quarkus-extension-processor` to the compiler annotation processors. - -In addition to the `pom.xml` `create-extension` also generated the `org.acme.greeting.extension.deployment.GreetingExtensionProcessor` class. - -[source, java] ----- -package org.acme.greeting.extension.deployment; - -import io.quarkus.deployment.annotations.BuildStep; -import io.quarkus.deployment.builditem.FeatureBuildItem; - -class GreetingExtensionProcessor { - - private static final String FEATURE = "greeting-extension"; - - @BuildStep - FeatureBuildItem feature() { - return new FeatureBuildItem(FEATURE); - } - -} ----- - -NOTE: `FeatureBuildItem` represents a functionality provided by an extension. -The name of the feature gets displayed in the log during application bootstrap. -An extension should provide at most one feature. - -Be patient, we will explain the `Build Step Processor` concept and all the extension deployment API later on. -At this point, you just need to understand that this class explains to Quarkus how to deploy a feature named `greeting` which is your extension. -In other words, you are augmenting your application to use the `greeting` extension with all the Quarkus benefits (build time optimization, native support, etc.). - -==== The Runtime module - -Finally `./greeting-extension/runtime/pom.xml`. - -[source, xml] ----- - - - 4.0.0 - - org.acme - greeting-extension-parent - 0.0.1-snapshot - - - greeting-extension - Greeting Extension - Runtime - - - - io.quarkus - quarkus-arc - - - - - - - io.quarkus - quarkus-bootstrap-maven-plugin - ${quarkus.version} - - - compile - - extension-descriptor - - - ${project.groupId}:${project.artifactId}-deployment:${project.version} - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - - io.quarkus - quarkus-extension-processor - ${quarkus.version} - - - - - - - ----- - -The key points are: - -<1> By convention, the runtime module has no suffix (`greeting-extension`) as it is the artifact exposed to the end user. -<2> The runtime module depends on the `quarkus-arc` artifact. -<3> We add the `quarkus-bootstrap-maven-plugin` to generate the Quarkus extension descriptor included into the runtime artifact which links it with the corresponding deployment artifact. -<4> We add the `quarkus-extension-processor` to the compiler annotation processors. - -=== Gradle setup - -Quarkus does not provide any way to initialize a Gradle project for extensions yet. - -As mentionned before, an extension is composed of two modules: - -* `runtime` -* `deployment` - -We are going to create a Gradle multi module project with those two modules. Here is a simple `settings.gradle` example file: - -[source, groovy] ----- -pluginManagement { - repositories { - mavenCentral() - gradlePluginPortal() - } - plugins { - id 'io.quarkus.extension' version "${quarkus.version}" <1> - } -} - -include 'runtime', 'deployment' <2> - -rootProject.name = 'greeting-extension' ----- - -<1> Configure the quarkus extension plugin version -<2> Include both `runtime` and `deployment` modules - -Here is a sample of a root `build.gradle` file: - -[source, groovy] ----- -subprojects { - apply plugin: 'java-library' <1> - apply plugin: 'maven-publish' <2> - - group 'org.acme' <3> - version '1.0-SNAPSHOT' -} ----- - -<1> Apply the `java-library` plugin for all sub-modules -<2> Apply the `maven-publish` plugin used to publish our artifacts -<3> Globally set the group id used for publication - -The `io.quarkus.extension` plugin will be used in order to help us building the extension. -The plugin will *only* be applied to the `runtime` module. - -==== The deployment module - -The deployment module does not require any specific plugin. -Here is an example of a minimal `build.gradle` file for the `deployment` module: - -[source, groovy] ----- -name = 'greeting-extension-deployment' <1> - -dependencies { - implementation project(':runtime') <2> - - implementation platform("io.quarkus:quarkus-bom:${quarkus.version}") - - testImplementation 'io.quarkus:quarkus-junit5-internal' -} ----- - -<1> By convention, the deployment module has the `-deployment` suffix (`greeting-extension-deployment`). -<2> The deployment module *must* depend on the `runtime` module. - -==== The runtime module - -The runtime module applies the `io.quarkus.extension` plugin. This will: - -* Add `quarkus-extension-process` as annotation processor to both modules. -* Generate extension description files. - -Here is an example of `build.gradle` file for the `runtime` module: - -[source, groovy] ----- -plugins { - id 'io.quarkus.extension' <1> -} - -name = 'greeting-extension' <2> -description = 'Greeting extension' - -dependencies { - implementation platform("io.quarkus:quarkus-bom:${quarkus.version}") -} ----- - -<1> Apply the `io.quarkus.extension` plugin. -<2> By convention, the runtime module doesn't have a suffix (and thus is named `greeting-extension`) as it is the artifact exposed to the end user. - -== Basic version of the Sample Greeting extension - -=== Implementing the Greeting feature -The (killer) feature proposed by our extension is to greet the user. -To do so, our extension will deploy, in the user application, a Servlet exposing the HTTP endpoint `/greeting` which responds to the GET verb with a plain text `Hello`. - -The `runtime` module is where you develop the feature you want to propose to your users, so it's time to create our Web Servlet. - -To use Servlets in your applications you need to have a Servlet Container such as http://undertow.io[Undertow]. -Luckily, `quarkus-bom` imported by our parent `pom.xml` already includes the Undertow Quarkus extension. - -All we need to do is add `quarkus-undertow` as dependency to our `./greeting-extension/runtime/pom.xml`: -[source, xml] ----- - - io.quarkus - quarkus-undertow - ----- - -For Gradle, add the dependency in `./greeting-extension/runtime/build.gradle` file: - -[source, groovy] ----- - implementation 'io.quarkus:quarkus-undertow' ----- - -NOTE: The dependency on `quarkus-arc` generated by the `create-extension` mojo can now be removed since -`quarkus-undertow` already depends on it. - -Now we can create our Servlet `org.acme.greeting.extension.GreetingExtensionServlet` in the `runtime` module. - -[source,bash] ----- -mkdir -p ./greeting-extension/runtime/src/main/java/org/acme/greeting/extension ----- - -[source, java] ----- -package org.acme.greeting.extension; - -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -@WebServlet -public class GreetingExtensionServlet extends HttpServlet { // <1> - - @Override - protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { // <2> - resp.getWriter().write("Hello"); - } -} ----- - -<1> As usual, defining a servlet requires to extend `javax.servlet.http.HttpServlet`. -<2> Since we want to respond to the HTTP GET verb, we override the `doGet` method and write `Hello` in the Servlet response's output stream. - -=== Deploying the Greeting feature - -Quarkus magic relies on bytecode generation at build time rather than waiting for the runtime code evaluation, that's the role of your extension's `deployment` module. -Calm down, we know, bytecode is hard and you don't want to do it manually, Quarkus proposes a high level API to make your life easier. -Thanks to basic concepts, you will describe the items to produce/consume and the corresponding steps in order to generate the bytecode to produce during the deployment time. - -The `io.quarkus.builder.item.BuildItem` concept represents object instances you will produce or consume (and at some point convert into bytecode) thanks to methods annotated with `@io.quarkus.deployment.annotations.BuildStep` which describe your extension's deployment tasks. - -NOTE:: See xref:all-builditems.adoc[the complete list of BuildItem implementations in core] for more information - - -Go back to the generated `org.acme.greeting.extension.deployment.GreetingExtensionProcessor` class. - -[source, java] ----- -package org.acme.greeting.extension.deployment; - -import io.quarkus.deployment.annotations.BuildStep; -import io.quarkus.deployment.builditem.FeatureBuildItem; - -class GreetingExtensionProcessor { - - private static final String FEATURE = "greeting-extension"; - - @BuildStep // <1> - FeatureBuildItem feature() { - return new FeatureBuildItem(FEATURE); // <2> - } - -} ----- - -<1> `feature()` method is annotated with `@BuildStep` which means it is identified as a deployment task Quarkus will have to execute during the deployment. -`BuildStep` methods are run concurrently at augmentation time to augment the application. -They use a producer/consumer model, where a step is guaranteed not to be run until all the items that it is consuming have been produced. - -<2> `io.quarkus.deployment.builditem.FeatureBuildItem` is an implementation of `BuildItem` which represents the description of an extension. -This `BuildItem` will be used by Quarkus to display information to the users when the application is starting. - -There are many `BuildItem` implementations, each one represents an aspect of the deployment process. -Here are some examples: - -* `ServletBuildItem`: describes a Servlet (name, path, etc.) we want to generate during the deployment. -* `BeanContainerBuildItem`: describes a container used to store and retrieve object instances during the deployment. - -If you don't find a `BuildItem` for what you want to achieve, you can create your own implementation. Keep in mind that a `BuildItem` should be as fine-grained as possible, representing a specific part of the deployment. -To create your `BuildItem` you can extend: - -* `io.quarkus.builder.item.SimpleBuildItem` if you need only a single instance of the item during the deployment (e.g. `BeanContainerBuildItem`, you only want one container). -* `io.quarkus.builder.item.MultiBuildItem` if you want to have multiple instances (e.g. `ServletBuildItem`, you can produce many Servlets during the deployment). - -It's now time to declare our HTTP endpoint. To do so, we need to produce a `ServletBuildItem`. -At this point, we are sure you understood that if the `quarkus-undertow` dependency proposes Servlet support for our `runtime` module, we will need the `quarkus-undertow-deployment` dependency in our `deployment` module to have access to the `io.quarkus.undertow.deployment.ServletBuildItem`. - -Let's add `quarkus-undertow-deployment` as dependency to our `./greeting-extension/deployment/pom.xml`: -[source, xml] ----- - - io.quarkus - quarkus-undertow-deployment - ----- -NOTE: The dependency on `quarkus-arc-deployment` generated by the `create-extension` mojo can now be removed since -`quarkus-undertow-deployment` already depends on it. - -For Gradle, add the dependency in `./greeting-extension/deployment/build.gradle` file: - -[source, groovy] ----- - implementation 'io.quarkus:quarkus-undertow-deployment' ----- - -We can now update `org.acme.greeting.extension.deployment.GreetingExtensionProcessor`: - -[source, java] ----- -package org.acme.greeting.extension.deployment; - -import io.quarkus.deployment.annotations.BuildStep; -import io.quarkus.deployment.builditem.FeatureBuildItem; -import org.acme.greeting.extension.GreetingExtensionServlet; -import io.quarkus.undertow.deployment.ServletBuildItem; - -class GreetingExtensionProcessor { - - private static final String FEATURE = "greeting-extension"; - - @BuildStep - FeatureBuildItem feature() { - return new FeatureBuildItem(FEATURE); - } - - @BuildStep - ServletBuildItem createServlet() { // <1> - ServletBuildItem servletBuildItem = ServletBuildItem.builder("greeting-extension", GreetingExtensionServlet.class.getName()) - .addMapping("/greeting") - .build(); // <2> - return servletBuildItem; - } - -} ----- - -<1> We add a `createServlet` method which returns a `ServletBuildItem` and annotate it with `@BuildStep`. -Now, Quarkus will process this new task which will result in the bytecode generation of the Servlet registration at build time. - -<2> `ServletBuildItem` proposes a fluent API to instantiate a Servlet named `greeting-extension` of type `GreetingExtensionServlet` (it's our class provided by our extension `runtime` module), and map it the `/greeting` path. - -=== Testing the Greeting Extension feature - -When developing a Quarkus extension, you mainly want to test your feature is properly deployed in an application and works as expected. -That's why the tests will be hosted in the `deployment` module. - -Quarkus proposes facilities to test extensions via the `quarkus-junit5-internal` artifact (which should already be in the deployment pom.xml), in particular the `io.quarkus.test.QuarkusUnitTest` runner which starts an application with your extension. - -We will use http://rest-assured.io[RestAssured] (massively used in Quarkus) to test our HTTP endpoint. -Let's add the `rest-assured` dependency into the `./greeting-extension/deployment/pom.xml`. - -[source, xml] ----- - ... - - io.rest-assured - rest-assured - test - ----- - -For Gradle, add the dependency in `./greeting-extension/deployment/build.gradle` file: - -[source, groovy] ----- - ... - testImplementation 'io.rest-assured:rest-assured' ----- - - -The `create-extension` Maven Mojo can create the test and integration-test structure (drop the `-DwithoutTests`). Here, we'll create it ourselves: - -[source,bash] ----- -mkdir -p ./greeting-extension/deployment/src/test/java/org/acme/greeting/extension/deployment ----- - -To start testing your extension, create the following `org.acme.greeting.extension.deployment.GreetingExtensionTest` test class: - -[source, java] ----- -package org.acme.greeting.extension.deployment; - -import io.quarkus.test.QuarkusUnitTest; -import io.restassured.RestAssured; -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.spec.JavaArchive; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; - -import static org.hamcrest.Matchers.containsString; - -public class GreetingExtensionTest { - - @RegisterExtension - static final QuarkusUnitTest config = new QuarkusUnitTest() - .withEmptyApplication(); // <1> - - @Test - public void testGreeting() { - RestAssured.when().get("/greeting").then().statusCode(200).body(containsString("Hello")); // <2> - } - -} ----- - -<1> We register a Junit Extension which will start a Quarkus application with the Greeting extension. -<2> We verify the application has a `greeting` endpoint responding to a HTTP GET request with a OK status (200) and a plain text body containing `Hello` - -Time to test and install to our local maven repository! - -[source,shell,subs=attributes+] ----- -$ mvn clean install -[INFO] Scanning for projects... -[INFO] ------------------------------------------------------------------------ -[INFO] Reactor Build Order: -[INFO] -[INFO] Greeting Extension - Parent [pom] -[INFO] Greeting Extension - Runtime [jar] -[INFO] Greeting Extension - Deployment [jar] -[INFO] -[INFO] -----------------< org.acme:greeting-extension-parent >----------------- -[INFO] Building Greeting Extension - Parent 1.0.0-SNAPSHOT [1/3] -[INFO] --------------------------------[ pom ]--------------------------------- -... -[INFO] ------------------------------------------------------- -[INFO] T E S T S -[INFO] ------------------------------------------------------- -[INFO] Running org.acme.greeting.extension.deployment.GreetingExtensionTest -2021-01-27 10:24:42,506 INFO [io.quarkus] (main) Quarkus {quarkus-version} on JVM started in 0.470s. Listening on: http://localhost:8081 -2021-01-27 10:24:42,508 INFO [io.quarkus] (main) Profile test activated. -2021-01-27 10:24:42,508 INFO [io.quarkus] (main) Installed features: [cdi, greeting-extension, servlet] -2021-01-27 10:24:43,764 INFO [io.quarkus] (main) Quarkus stopped in 0.018s -[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.799 s - in org.acme.greeting.extension.deployment.GreetingExtensionTest -[INFO] -[INFO] Results: -[INFO] -[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 -[INFO] -[INFO] -[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ greeting-extension-deployment --- -[INFO] Building jar: /Users/ia3andy/workspace/redhat/quarkus/demo/greeting-extension/deployment/target/greeting-extension-deployment-1.0.0-SNAPSHOT.jar -[INFO] -[INFO] --- maven-install-plugin:2.4:install (default-install) @ greeting-extension-deployment --- -... -[INFO] ------------------------------------------------------------------------ -[INFO] Reactor Summary for Greeting Extension - Parent 1.0.0-SNAPSHOT: -[INFO] -[INFO] Greeting Extension - Parent ........................ SUCCESS [ 0.303 s] -[INFO] Greeting Extension - Runtime ....................... SUCCESS [ 3.345 s] -[INFO] Greeting Extension - Deployment .................... SUCCESS [ 7.365 s] -[INFO] ------------------------------------------------------------------------ -[INFO] BUILD SUCCESS -[INFO] ------------------------------------------------------------------------ -[INFO] Total time: 11.246 s -[INFO] Finished at: 2021-01-27T10:24:44+01:00 -[INFO] ------------------------------------------------------------------------ ----- - -Looks good! Congratulations you just finished your first extension. - -=== Debugging your extension - -_If debugging is the process of removing bugs, then programming must be the process of putting them in._ -Edsger W. Dijkstra - - -==== Debugging your application build - -Since your extension deployment is made during the application build, this process is triggered by your build tool. -That means if you want to debug this phase you need to launch your build tool with the remote debug mode switched one. - -===== Maven - -You can activate Maven remote debugging by using `mvnDebug`. -You can launch your application with the following command line: - -[source,bash] ----- -mvnDebug clean compile quarkus:dev ----- - -By default, Maven will wait for a connection on `localhost:8000`. -Now, you can run your IDE `Remote` configuration to attach it to `localhost:8000`. - -===== Gradle - -You can activate Gradle remote debugging by using the flags `org.gradle.debug=true` or `org.gradle.daemon.debug=true` in daemon mode. -You can launch your application with the following command line: - -[source,bash] ----- -./gradlew quarkusDev -Dorg.gradle.daemon.debug=true ----- - -By default, Gradle will wait for a connection on `localhost:5005`. -Now, you can run your IDE `Remote` configuration to attach it to `localhost:5005`. - - -==== Debugging your extension tests - -We have seen together how to test your extension and sometimes things don't go so well and you want to debug your tests. -Same principle here, the trick is to enable the Maven Surefire remote debugging in order to attach an IDE `Remote` configuration. - -[source,shell] ----- -cd ./greeting-extension -mvn clean test -Dmaven.surefire.debug ----- - -By default, Maven will wait for a connection on `localhost:5005`. - -=== Time to use your new extension - -Now that you just finished building your first extension you should be eager to use it in a Quarkus application! - -*Classic Maven publication* - -If not already done in the previous step, you should install the `greeting-extension` in your local repository: -[source,shell] ----- -cd ./greeting-extension -mvn clean install ----- - -Then from another directory, use our tooling to create a new `greeting-app` Quarkus application with your new extension: -[source,bash, subs=attributes+] ----- -mvn io.quarkus.platform:quarkus-maven-plugin:{quarkus-version}:create \ - -DprojectGroupId=org.acme \ - -DprojectArtifactId=greeting-app \ - -Dextensions="org.acme:greeting-extension:1.0.0-SNAPSHOT" \ - -DnoCode ----- - -`cd` into `greeting-app`. - -NOTE: The `greeting-extension` extension has to be installed in the local Maven repository to be usable in the application. - - -Run the application and notice the `Installed Features` list contains the `greeting-extension` extension. - -[source,shell,subs=attributes+] ----- -$ mvn clean compile quarkus:dev -[INFO] Scanning for projects... -[INFO] -[INFO] -----------------------< org.acme:greeting-app >------------------------ -[INFO] Building greeting-app 1.0.0-SNAPSHOT -[INFO] --------------------------------[ jar ]--------------------------------- -[INFO] -[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ greeting-app --- -[INFO] -[INFO] --- quarkus-maven-plugin:{quarkus-version}:generate-code (default) @ greeting-app --- -[INFO] -[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ greeting-app --- -[INFO] Using 'UTF-8' encoding to copy filtered resources. -[INFO] Copying 1 resource -[INFO] -[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ greeting-app --- -[INFO] Nothing to compile - all classes are up to date -[INFO] -[INFO] --- quarkus-maven-plugin:{quarkus-version}:dev (default-cli) @ greeting-app --- -Listening for transport dt_socket at address: 5005 -__ ____ __ _____ ___ __ ____ ______ - --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ - -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \ ---\___\_\____/_/ |_/_/|_/_/|_|\____/___/ -2021-01-27 10:28:07,240 INFO [io.quarkus] (Quarkus Main Thread) greeting-app 1.0.0-SNAPSHOT on JVM (powered by Quarkus {quarkus-version}) started in 0.531s. Listening on: http://localhost:8080 -2021-01-27 10:28:07,242 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated. -2021-01-27 10:28:07,243 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, greeting-extension, servlet] ----- - -From an extension developer standpoint the Maven publication strategy is very handy and fast but Quarkus wants to go one step further by also ensuring a reliability of the ecosystem for the people who will use the extensions. -Think about it, we all had a poor Developer Experience with an unmaintained library, an incompatibility between dependencies (and we don't even talk about legal issues). -That's why there is the Quarkus Platform. - -*Quarkus Platform* - -Quarkus platform is a set of extensions that target the primary use-cases of Quarkus as a development framework and can safely be used in any combination in the same application without creating a dependency conflict. -From an application developer perspective, a Quarkus platform is represented as one or more Maven BOMs, for example `io.quarkus.platform:quarkus-bom:{quarkus-version}`, `io.quarkus.platform:quarkus-kogito-bom:{quarkus-version}`, etc, whose dependency version constraints were globally aligned so that these BOMs can be imported in the same application in any order without introducing a dependency conflict. - -*Quarkiverse Hub* - -link:https://github.com/quarkiverse[Quarkiverse Hub] is the GitHub organization that provides repository hosting (including build, CI and release publishing setup) for Quarkus extension projects contributed by the community. - -In case you are wondering about creating a new Quarkus extension and adding it to the Quarkus ecosystem so that the Quarkus community can discover it using the Quarkus dev tools (including the https://quarkus.io/guides/cli-tooling[Quarkus CLI] and https://code.quarkus.io[code.quarkus.io]), the https://github.com/quarkiverse[Quarkiverse Hub] GitHub organization will be a good home for it. - -You can get started by creating an link:https://github.com/quarkusio/quarkus/issues/new/choose[Extension Request] issue (check first if one wasn't already submitted link:https://github.com/quarkusio/quarkus/labels/kind%2Fextension-proposal[here]) and asking to lead it. - -We'll take care of provisioning a new repository and set it up to: - -- Be supported by our tooling; -- Publish the documentation you produce for your extension to the Quarkiverse website; -- Configure your extension to use the link:https://github.com/quarkusio/quarkus-ecosystem-ci#quarkus-ecosystem-ci[Quarkus Ecosystem CI] to build against the latest Quarkus Core changes; -- Give you the freedom to manage the project and release to Maven Central as you like. - -NOTE: Extensions hosted in the Quarkiverse Hub may or may not end up in the Quarkus platform. - -For more information, check link:https://github.com/quarkiverse/quarkiverse/wiki[the Quarkiverse Wiki] and link:https://quarkus.io/blog/quarkiverse/[this blog post]. - -== Conclusion - -Creating new extensions may appear to be an intricate task at first but once you understood the Quarkus game-changer paradigm (build time vs runtime) the structure of an extension makes perfectly sense. - -As usual, along the path Quarkus simplifies things under the hood (Maven Mojo, bytecode generation or testing) to make it pleasant to develop new features. - -== Further reading - -- xref:writing-extensions.adoc[Writing your own extension] for the full documentation. -- xref:dev-ui.adoc[Quarkus Dev UI] to learn how to support the Dev UI in your extension diff --git a/_versions/2.7/guides/building-native-image.adoc b/_versions/2.7/guides/building-native-image.adoc deleted file mode 100644 index 649093217ff..00000000000 --- a/_versions/2.7/guides/building-native-image.adoc +++ /dev/null @@ -1,809 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Building a Native Executable - -include::./attributes.adoc[] - -This guide covers: - -* Compiling the application to a native executable -* Packaging the native executable in a container -* Debugging native executable - -This guide takes as input the application developed in the xref:getting-started.adoc[Getting Started Guide]. - -== GraalVM - -Building a native executable requires using a distribution of GraalVM. -There are three distributions: -Oracle GraalVM Community Edition (CE), Oracle GraalVM Enterprise Edition (EE) and Mandrel. -The differences between the Oracle and Mandrel distributions are as follows: - -* Mandrel is a downstream distribution of the Oracle GraalVM CE. -Mandrel's main goal is to provide a way to build native executables specifically designed to support Quarkus. - -* Mandrel releases are built from a code base derived from the upstream Oracle GraalVM CE code base, -with only minor changes but some significant exclusions that are not necessary for Quarkus native apps. -They support the same capabilities to build native executables as Oracle GraalVM CE, -with no significant changes to functionality. -Notably, they do not include support for polyglot programming. -The reason for these exclusions is to provide a better level of support for the majority of Quarkus users. -These exclusions also mean Mandrel offers a considerable reduction in its distribution size -when compared with Oracle GraalVM CE/EE. - -* Mandrel is built slightly differently to Oracle GraalVM CE, using the standard OpenJDK project. -This means that it does not profit from a few small enhancements that Oracle have added to the version of OpenJDK used to build their own GraalVM downloads. -This enhancements are omitted because upstream OpenJDK does not manage them, and cannot vouch for. -This is particularly important when it comes to conformance and security. - -* Mandrel is recommended for building native executables that target Linux containerized environments. -This means that Mandrel users are encouraged to use containers to build their native executables. -If you are building native executables for macOS, -you should consider using Oracle GraalVM instead, -because Mandrel does not currently target this platform. -Building native executables directly on bare metal Linux or Windows is possible, -with details available in the https://github.com/graalvm/mandrel/blob/default/README.md[Mandrel README] -and https://github.com/graalvm/mandrel/releases[Mandrel releases]. - -== Prerequisites - -:prerequisites-docker: -:prerequisites-graalvm-mandatory: -include::includes/devtools/prerequisites.adoc[] -* A xref:configuring-c-development[working C development environment] -* The code of the application developed in the xref:getting-started.adoc[Getting Started Guide]. - -.Supporting native compilation in C -[[configuring-c-development]] -[NOTE] -==== -What does having a working C developer environment mean? - -* On Linux, you will need GCC, and the glibc and zlib headers. Examples for common distributions: -+ -[source,bash] ----- -# dnf (rpm-based) -sudo dnf install gcc glibc-devel zlib-devel libstdc++-static -# Debian-based distributions: -sudo apt-get install build-essential libz-dev zlib1g-dev ----- -* XCode provides the required dependencies on macOS: -+ -[source,bash] ----- -xcode-select --install ----- -* On Windows, you will need to install the https://aka.ms/vs/15/release/vs_buildtools.exe[Visual Studio 2017 Visual C++ Build Tools] -==== - -[[configuring-graalvm]] -=== Configuring GraalVM - -[TIP] -==== -If you cannot install GraalVM, you can use a multi-stage Docker build to run Maven inside a Docker container that embeds GraalVM. There is an explanation of how to do this at the end of this guide. -==== - -Version {graalvm-version} is required. Using the community edition is enough. - -1. Install GraalVM if you haven't already. You have a few options for this: -** Download the appropriate archive from or , and unpack it like you would any other JDK. -** Use platform-specific install tools like https://sdkman.io/jdks#Oracle[sdkman], https://github.com/graalvm/homebrew-tap[homebrew], or https://github.com/ScoopInstaller/Java[scoop]. -2. Configure the runtime environment. Set `GRAALVM_HOME` environment variable to the GraalVM installation directory, for example: -+ -[source,bash] ----- -export GRAALVM_HOME=$HOME/Development/graalvm/ ----- -+ -On macOS (not supported by Mandrel), point the variable to the `Home` sub-directory: -+ -[source,bash] ----- -export GRAALVM_HOME=$HOME/Development/graalvm/Contents/Home/ ----- -+ -On Windows, you will have to go through the Control Panel to set your environment variables. -+ -[TIP] -==== -Installing via scoop will do this for you. -==== -3. (Only for Oracle GraalVM CE/EE) Install the `native-image` tool using `gu install`: -+ -[source,bash] ----- -${GRAALVM_HOME}/bin/gu install native-image ----- -+ -Some previous releases of GraalVM included the `native-image` tool by default. This is no longer the case; it must be installed as a second step after GraalVM itself is installed. Note: there is an outstanding issue xref:graal-and-catalina[using GraalVM with macOS Catalina]. -4. (Optional) Set the `JAVA_HOME` environment variable to the GraalVM installation directory. -+ -[source,bash] ----- -export JAVA_HOME=${GRAALVM_HOME} ----- -5. (Optional) Add the GraalVM `bin` directory to the path -+ -[source,bash] ----- -export PATH=${GRAALVM_HOME}/bin:$PATH ----- - -[[graal-and-catalina]] -.Issues using GraalVM with macOS Catalina -[NOTE] -==== -GraalVM binaries are not (yet) notarized for macOS Catalina as reported in this https://github.com/oracle/graal/issues/1724[GraalVM issue]. This means that you may see the following error when using `gu`: - -[source,bash] ----- -“gu” cannot be opened because the developer cannot be verified ----- - -Use the following command to recursively delete the `com.apple.quarantine` extended attribute on the GraalVM install directory as a workaround: - -[source,bash] ------ -xattr -r -d com.apple.quarantine ${GRAALVM_HOME}/../.. ------ -==== - -== Solution - -We recommend that you follow the instructions in the next sections and package the application step by step. However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `getting-started` directory. - -== Producing a native executable - -The native executable for our application will contain the application code, required libraries, Java APIs, and a reduced version of a VM. The smaller VM base improves the startup time of the application and produces a minimal disk footprint. - -image:native-executable-process.png[Creating a native executable] - -If you have generated the application from the previous tutorial, you can find in the `pom.xml` the following _profile_: - -[source,xml] ----- - - - native - - native - - - ----- - -[TIP] -==== -You can provide custom options for the `native-image` command using the `` property. -Multiple options may be separated by a comma. - -Another possibility is to include the `quarkus.native.additional-build-args` configuration property in your `application.properties`. - -You can find more information about how to configure the native image building process in the <> section below. -==== - -We use a profile because, you will see very soon, packaging the native executable takes a _few_ minutes. You could -just pass -Dquarkus.package.type=native as a property on the command line, however it is better to use a profile as -this allows native image tests to also be run. - -Create a native executable using: - -include::includes/devtools/build-native.adoc[] - -[[graal-and-windows]] -[NOTE] -.Issues with packaging on Windows -==== -The Microsoft Native Tools for Visual Studio must first be initialized before packaging. You can do this by starting -the `x64 Native Tools Command Prompt` that was installed with the Visual Studio Build Tools. At -`x64 Native Tools Command Prompt` you can navigate to your project folder and run `mvnw package -Pnative`. - -Another solution is to write a script to do this for you: - -[source,bash] ----- -cmd /c 'call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat" && mvn package -Pnative' ----- -==== - -In addition to the regular files, the build also produces `target/getting-started-1.0.0-SNAPSHOT-runner`. -You can run it using: `./target/getting-started-1.0.0-SNAPSHOT-runner`. - -[[graal-package-preview]] -[NOTE] -.Java preview features -==== -Java code that relies on preview features requires special attention. -To produce a native executable, this means that the `--enable-preview` flag needs to be passed to the underlying native image invocation. -You can do so by prepending the flag with `-J` and passing it as additional native build argument: `-Dquarkus.native.additional-build-args=-J--enable-preview`. -==== - -== Testing the native executable - -Producing a native executable can lead to a few issues, and so it's also a good idea to run some tests against the application running in the native file. - -In the `pom.xml` file, the `native` profile contains: - -[source, xml] ----- - - org.apache.maven.plugins - maven-failsafe-plugin - ${surefire-plugin.version} - - - - integration-test - verify - - - - ${project.build.directory}/${project.build.finalName}-runner - org.jboss.logmanager.LogManager - ${maven.home} - - - - - ----- - -This instructs the failsafe-maven-plugin to run integration-test and indicates the location of the produced native executable. - -Then, open the `src/test/java/org/acme/quickstart/NativeGreetingResourceIT.java`. It contains: - -[source,java] ----- -package org.acme.quickstart; - - -import io.quarkus.test.junit.NativeImageTest; - -@NativeImageTest // <1> -public class NativeGreetingResourceIT extends GreetingResourceTest { // <2> - - // Run the same tests - -} ----- -<1> Use another test runner that starts the application from the native file before the tests. -The executable is retrieved using the `native.image.path` system property configured in the _Failsafe Maven Plugin_. -<2> We extend our previous tests, but you can also implement your tests - -To see the `NativeGreetingResourceIT` run against the native executable, use `./mvnw verify -Pnative`: -[source,shell] ----- -$ ./mvnw verify -Pnative -... -[getting-started-1.0.0-SNAPSHOT-runner:18820] universe: 587.26 ms -[getting-started-1.0.0-SNAPSHOT-runner:18820] (parse): 2,247.59 ms -[getting-started-1.0.0-SNAPSHOT-runner:18820] (inline): 1,985.70 ms -[getting-started-1.0.0-SNAPSHOT-runner:18820] (compile): 14,922.77 ms -[getting-started-1.0.0-SNAPSHOT-runner:18820] compile: 20,361.28 ms -[getting-started-1.0.0-SNAPSHOT-runner:18820] image: 2,228.30 ms -[getting-started-1.0.0-SNAPSHOT-runner:18820] write: 364.35 ms -[getting-started-1.0.0-SNAPSHOT-runner:18820] [total]: 52,777.76 ms -[INFO] -[INFO] --- maven-failsafe-plugin:2.22.1:integration-test (default) @ getting-started --- -[INFO] -[INFO] ------------------------------------------------------- -[INFO] T E S T S -[INFO] ------------------------------------------------------- -[INFO] Running org.acme.quickstart.NativeGreetingResourceIT -Executing [/data/home/gsmet/git/quarkus-quickstarts/getting-started/target/getting-started-1.0.0-SNAPSHOT-runner, -Dquarkus.http.port=8081, -Dtest.url=http://localhost:8081, -Dquarkus.log.file.path=build/quarkus.log] -2019-04-15 11:33:20,348 INFO [io.quarkus] (main) Quarkus 999-SNAPSHOT started in 0.002s. Listening on: http://[::]:8081 -2019-04-15 11:33:20,348 INFO [io.quarkus] (main) Installed features: [cdi, resteasy] -[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.387 s - in org.acme.quickstart.NativeGreetingResourceIT -... ----- - -[TIP] -==== -By default, Quarkus waits for 60 seconds for the native image to start before automatically failing the native tests. This -duration can be changed using the `quarkus.test.wait-time` system property. For example, to increase the duration -to 300 seconds, use: `./mvnw verify -Pnative -Dquarkus.test.wait-time=300`. -==== - -[WARNING] -==== -In the future, `@NativeImageTest` will be deprecated in favor of `@QuarkusIntegrationTest` which provides a superset of the testing -capabilities of `@NativeImageTest`. More information about `@QuarkusIntegrationTest` can be found in the xref:getting-started-testing.adoc#quarkus-integration-test[Testing Guide]. -==== - -By default, native tests runs using the `prod` profile. -This can be overridden using the `quarkus.test.native-image-profile` property. -For example, in your `application.properties` file, add: `quarkus.test.native-image-profile=test`. -Alternatively, you can run your tests with: `./mvnw verify -Pnative -Dquarkus.test.native-image-profile=test`. -However, don't forget that when the native executable is built the `prod` profile is enabled. -So, the profile you enable this way must be compatible with the produced executable. - -[[graal-test-preview]] -[NOTE] -.Java preview features -==== -Java code that relies on preview features requires special attention. -To test a native executable, this means that the `--enable-preview` flag needs to be passed to the Surefire plugin. -Adding `--enable-preview` to its `configuration` section is one way to do so. -==== - -=== Excluding tests when running as a native executable - -When running tests this way, the only things that actually run natively are you application endpoints, which -you can only test via HTTP calls. Your test code does not actually run natively, so if you are testing code -that does not call your HTTP endpoints, it's probably not a good idea to run them as part of native tests. - -If you share your test class between JVM and native executions like we advise above, you can mark certain tests -with the `@DisabledOnNativeImage` annotation in order to only run them on the JVM. - - -=== Testing an existing native executable - -It is also possible to re-run the tests against a native executable that has already been built. To do this run -`./mvnw test-compile failsafe:integration-test`. This will discover the existing native image and run the tests against it using -failsafe. - -If the process cannot find the native image for some reason, or you want to test a native image that is no longer in the -target directory you can specify the executable with the `-Dnative.image.path=` system property. - -[#container-runtime] -== Creating a Linux executable without GraalVM installed - -IMPORTANT: Before going further, be sure to have a working container runtime (Docker, podman) environment. If you use Docker -on Windows you should share your project's drive at Docker Desktop file share settings and restart Docker Desktop. - -Quite often one only needs to create a native Linux executable for their Quarkus application (for example in order to run in a containerized environment) and would like to avoid -the trouble of installing the proper GraalVM version in order to accomplish this task (for example, in CI environments it's common practice -to install as little software as possible). - -To this end, Quarkus provides a very convenient way of creating a native Linux executable by leveraging a container runtime such as Docker or podman. -The easiest way of accomplishing this task is to execute: - -include::includes/devtools/build-native-container.adoc[] - -[TIP] -==== -By default Quarkus automatically detects the container runtime. -If you want to explicitely select the container runtime, you can do it with: - -For Docker: - -:build-additional-parameters: -Dquarkus.native.container-runtime=docker -include::includes/devtools/build-native-container-parameters.adoc[] -:!build-additional-parameters: - -For podman: - -:build-additional-parameters: -Dquarkus.native.container-runtime=podman -include::includes/devtools/build-native-container-parameters.adoc[] -:!build-additional-parameters: - -These are normal Quarkus config properties, so if you always want to build in a container -it is recommended you add these to your `application.properties` in order to avoid specifying them every time. -==== - -[TIP] -==== -If you see the following invalid path error for your application JAR when trying to create a native executable using a container build, even though your JAR was built successfully, you're most likely using a remote daemon for your container runtime. ----- -Error: Invalid Path entry getting-started-1.0.0-SNAPSHOT-runner.jar -Caused by: java.nio.file.NoSuchFileException: /project/getting-started-1.0.0-SNAPSHOT-runner.jar ----- -In this case, use the parameter `-Dquarkus.native.remote-container-build=true` instead of `-Dquarkus.native.container-build=true`. - -The reason for this is that the local build driver invoked through `-Dquarkus.native.container-build=true` uses volume mounts to make the JAR available in the build container, but volume mounts do not work with remote daemons. The remote container build driver copies the necessary files instead of mounting them. Note that even though the remote driver also works with local daemons, the local driver should be preferred in the local case because mounting is usually more performant than copying. -==== - -[TIP] -==== -Building with Mandrel requires a custom builder image parameter to be passed additionally: - -:build-additional-parameters: -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel:{mandrel-flavor} -include::includes/devtools/build-native-container-parameters.adoc[] -:!build-additional-parameters: - -Please note that the above command points to a floating tag. -It is highly recommended to use the floating tag, -so that your builder image remains up-to-date and secure. -If you absolutely must, you may hard-code to a specific tag -(see https://quay.io/repository/quarkus/ubi-quarkus-mandrel?tab=tags[here] for available tags), -but be aware that you won't get security updates that way and it's unsupported. -==== - -== Creating a container - -=== Using the container-image extensions - -By far the easiest way to create a container-image from your Quarkus application is to leverage one of the container-image extensions. - -If one of those extensions is present, then creating a container image for the native executable is essentially a matter of executing a single command: - -[source,bash] ----- -./mvnw package -Pnative -Dquarkus.native.container-build=true -Dquarkus.container-image.build=true ----- - -* `quarkus.native.container-build=true` allows for creating a Linux executable without GraalVM being installed (and is only necessary if you don't have GraalVM installed locally or your local operating system is not Linux) -* `quarkus.container-image.build=true` instructs Quarkus to create a container-image using the final application artifact (which is the native executable in this case) - -See the xref:container-image.adoc[Container Image guide] for more details. - -=== Manually using the micro base image - -You can run the application in a container using the JAR produced by the Quarkus Maven Plugin. -However, in this section we focus on creating a container image using the produced native executable. - -image:containerization-process.png[Containerization Process] - -When using a local GraalVM installation, the native executable targets your local operating system (Linux, macOS, Windows etc). -However, as a container may not use the same _executable_ format as the one produced by your operating system, -we will instruct the Maven build to produce an executable by leveraging a container runtime (as described in <<#container-runtime,this section>>): - -The produced executable will be a 64 bit Linux executable, so depending on your operating system it may no longer be runnable. -However, it's not an issue as we are going to copy it to a container. -The project generation has provided a `Dockerfile.native-micro` in the `src/main/docker` directory with the following content: - -[source,dockerfile] ----- -FROM quay.io/quarkus/quarkus-micro-image:1.0 -WORKDIR /work/ -COPY target/*-runner /work/application -RUN chmod 775 /work -EXPOSE 8080 -CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] ----- - -[NOTE] -.Quarkus Micro Image? -==== -The Quarkus Micro Image is a small container image providing the right set of dependencies to run your native application. -It is based on https://catalog.redhat.com/software/containers/ubi8-micro/601a84aadd19c7786c47c8ea?container-tabs=overview[UBI Micro]. -This base image has been tailored to work perfectly in containers. - -You can read more about UBI images on: - -* https://www.redhat.com/en/blog/introducing-red-hat-universal-base-image[Introduction to Universal Base Image] -* https://catalog.redhat.com/software/container-stacks/detail/5ec53f50ef29fd35586d9a56[Red Hat Universal Base Image 8] - -UBI images can be used without any limitations. - -xref:quarkus-runtime-base-image.adoc[This page] explains how to extend the `quarkus-micro` image when your application has specific requirements. -==== - -Then, if you didn't delete the generated native executable, you can build the docker image with: - -[source,bash] ----- -docker build -f src/main/docker/Dockerfile.native -t quarkus-quickstart/getting-started . ----- - -And finally, run it with: - -[source,bash] ----- -docker run -i --rm -p 8080:8080 quarkus-quickstart/getting-started ----- - -=== Manually using the minimal base image - -The project generation has also provided a `Dockerfile.native` in the `src/main/docker` directory with the following content: - -[source,dockerfile] ----- -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.5 -WORKDIR /work/ -COPY target/*-runner /work/application -RUN chmod 775 /work -EXPOSE 8080 -CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] ----- - -The UBI minimal image is bigger than the micro one mentioned above. -It contains more utilities such as the `microdnf` package manager. - -[#multistage-docker] -=== Using a multi-stage Docker build - -The previous section showed you how to build a native executable using Maven or Gradle, but it requires you to have created the native executable first. -In addition, this native executable must be a Linux 64 bits executable. - -You may want to build the native executable directly in a container without having a final container containing the build tools. -That approach is possible with a multi-stage Docker build: - -1. The first stage builds the native executable using Maven or Gradle -2. The second stage is a minimal image copying the produced native executable - -Such a multi-stage build can be achieved as follows: - -Sample Dockerfile for building with Maven: -[source,dockerfile,subs=attributes+] ----- -## Stage 1 : build with maven builder image with native capabilities -FROM quay.io/quarkus/ubi-quarkus-native-image:{graalvm-flavor} AS build -COPY --chown=quarkus:quarkus mvnw /code/mvnw -COPY --chown=quarkus:quarkus .mvn /code/.mvn -COPY --chown=quarkus:quarkus pom.xml /code/ -USER quarkus -WORKDIR /code -RUN ./mvnw -B org.apache.maven.plugins:maven-dependency-plugin:3.1.2:go-offline -COPY src /code/src -RUN ./mvnw package -Pnative - -## Stage 2 : create the docker final image -FROM quay.io/quarkus/quarkus-micro-image:1.0 -WORKDIR /work/ -COPY --from=build /code/target/*-runner /work/application - -# set up permissions for user `1001` -RUN chmod 775 /work /work/application \ - && chown -R 1001 /work \ - && chmod -R "g+rwX" /work \ - && chown -R 1001:root /work - -EXPOSE 8080 -USER 1001 - -CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] ----- - -NOTE: This multi-stage Docker build copies the Maven wrapper from the host machine. -The Maven wrapper (or the Gradle wrapper) is a convenient way to provide a specific version of Maven/Gradle. -It avoids having to create a base image with Maven and Gradle. -To provision the Maven Wrapper in your project, use: `mvn -N org.apache.maven.plugins:maven-wrapper-plugin:3.1.0:wrapper`. - -Save this file in `src/main/docker/Dockerfile.multistage` as it is not included in the getting started quickstart. - -Sample Dockerfile for building with Gradle: -[source,dockerfile,subs=attributes+] ----- -## Stage 1 : build with maven builder image with native capabilities -FROM quay.io/quarkus/ubi-quarkus-native-image:{graalvm-flavor} AS build -COPY --chown=quarkus:quarkus gradlew /code/gradlew -COPY --chown=quarkus:quarkus /code/gradle -COPY --chown=quarkus:quarkus build.gradle /code/ -COPY --chown=quarkus:quarkus settings.gradle /code/ -COPY --chown=quarkus:quarkus gradle.properties /code/ -USER quarkus -WORKDIR /code -COPY src /code/src -RUN gradle -b /code/build.gradle buildNative - -## Stage 2 : create the docker final image -FROM quay.io/quarkus/quarkus-micro-image:1.0 -WORKDIR /work/ -COPY --from=build /code/build/*-runner /work/application -RUN chmod 775 /work -EXPOSE 8080 -CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] ----- - -If you are using Gradle in your project, you can use this sample Dockerfile. Save it in `src/main/docker/Dockerfile.multistage`. - -[WARNING] -==== -Before launching our Docker build, we need to update the default `.dockerignore` file as it filters everything except the `target` directory. As we plan to build inside a container, we need to copy the `src` directory. Thus, edit your `.dockerignore` and update the content. -==== - -[source,bash] ----- -docker build -f src/main/docker/Dockerfile.multistage -t quarkus-quickstart/getting-started . ----- - -And, finally, run it with: - -[source,bash] ----- -docker run -i --rm -p 8080:8080 quarkus-quickstart/getting-started ----- - -[TIP] -==== -If you need SSL support in your native executable, you can easily include the necessary libraries in your Docker image. - -Please see xref:native-and-ssl.adoc#working-with-containers[our Using SSL With Native Executables guide] for more information. -==== - -NOTE: To use Mandrel instead of GraalVM CE, update the `FROM` clause to: `FROM quay.io/quarkus/ubi-quarkus-mandrel:$TAG AS build`. -`$TAG` can be found on the https://quay.io/repository/quarkus/ubi-quarkus-mandrel?tab=tags[Quarkus Mandrel Images Tags page]. - -=== Using a Distroless base image - -IMPORTANT: Distroless image support is experimental. - -If you are looking for small container images, the https://github.com/GoogleContainerTools/distroless[distroless] approach reduces the size of the base layer. -The idea behind _distroless_ is the usage of a single and minimal base image containing all the requirements, and sometimes even the application itself. - -Quarkus provides a distroless base image that you can use in your `Dockerfile`. -You only need to copy your application, and you are done: - -[source, dockerfile] ----- -FROM quay.io/quarkus/quarkus-distroless-image:1.0 -COPY target/*-runner /application - -EXPOSE 8080 -USER nonroot - -CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] ----- - -Quarkus provides the `quay.io/quarkus/quarkus-distroless-image:1.0` image. -It contains the required packages to run a native executable and is only **9Mb**. -Just add your application on top of this image, and you will get a tiny container image. - -Distroless images should not be used in production without rigorous testing. - -=== Native executable compression - -Quarkus can compress the produced native executable using UPX. -More details on xref:./upx.adoc[UPX Compression documentation]. - -=== Separating Java and native image compilation - -In certain circumstances, you may want to build the native image in a separate step. -For example, in a CI/CD pipeline, you may want to have one step to generate the source that will be used for the native image generation and another step to use these sources to actually build the native executable. -For this use case, you can set the `quarkus.package.type=native-sources`. -This will execute the java compilation as if you would have started native compilation (`-Pnative`), but stops before triggering the actual call to GraalVM's `native-image`. - -[source,bash] ----- -$ ./mvnw clean package -Dquarkus.package.type=native-sources ----- - -After compilation has finished, you find the build artifact in `target/native-sources`: - -[source,bash] ----- -$ cd target/native-sources -$ ls -native-image.args getting-started-1.0.0-SNAPSHOT-runner.jar lib ----- - -From the output above one can see that, in addition to the produced jar file and the associated lib directory, a text file named `native-image.args` was created. -This file holds all parameters (including the name of the JAR to compile) to pass along to GraalVM's `native-image` command. -If you have GraalVM installed, you can start the native compilation by executing: - -[source,bash] ----- -$ cd target/native-source -$ native-image $(cat native-image.args) -... -$ ls -native-image.args -getting-started-1.0.0-SNAPSHOT-runner -getting-started-1.0.0-SNAPSHOT-runner.build_artifacts.txt -getting-started-1.0.0-SNAPSHOT-runner.jar ----- - -The process for Gradle is analogous. - -Running the build process in a container is also possible: - -[source,bash,subs=attributes+] ----- -cd target/native-image -docker run \ - -it \ - --rm \ - --v $(pwd):/work <1> - -w /work <2> - --entrypoint bin/sh \ - quay.io/quarkus/ubi-quarkus-native-image:{graalvm-flavor} \ <3> - -c "native-image $(cat native-image.args) -J-Xmx4g" <4> ----- - -<1> Mount the host's directory `target/native-image` to the container's `/work`. Thus, the generated binary will also be written to this directory. -<2> Switch the working directory to `/work`, which we have mounted in <1>. -<3> Use the `quay.io/quarkus/ubi-quarkus-native-image:{graalvm-flavor}` docker image introduced in <<#multistage-docker,Using a multi-stage Docker build>> to build the native image. -<4> Call `native-image` with the content of file `native-image.args` as arguments. We also supply an additional argument to limit the process's maximum memory to 4 Gigabytes (this may vary depending on the project being built and the machine building it). - -[WARNING] -==== -If you are running on a Windows machine, please keep in mind that the binary was created within a Linux docker container. -Hence, the binary will not be executable on the host Windows machine. -==== - -A high level overview of what the various steps of a CI/CD pipeline would look is the following: - -1. Register the output of the step executing `./mvnw ...` command (i.e. directory `target/native-image`) as a build artifact, -2. Require this artifact in the step executing the `native-image ...` command, and -3. Register the output of the step executing the `native-image ...` command (i.e. files matching `target/*runner`) as build artifact. - -The environment executing step `1` only needs Java and Maven (or Gradle) installed, while the environment executing step `3` only needs a GraalVM installation (including the `native-image` feature). - -Depending on what the final desired output of the CI/CD pipeline is, the generated binary might then be used to create a container image. - -== Debugging native executable - -Starting with Oracle GraalVM 20.2 or Mandrel 20.1, -debug symbols for native executables can be generated for Linux environments -(Windows support is still under development, macOS is not supported). -These symbols can be used to debug native executables with tools such as `gdb`. - -To generate debug symbols, -add `-Dquarkus.native.debug.enabled=true` flag when generating the native executable. -You will find the debug symbols for the native executable in a `.debug` file next to the native executable. - -[NOTE] -==== -The generation of the `.debug` file depends on `objcopy`. -On common Linux distributions you will need to install the `binutils` package: - -[source,bash] ----- -# dnf (rpm-based) -sudo dnf install binutils -# Debian-based distributions -sudo apt-get install binutils ----- - -When `objcopy` is not available debug symbols are embedded in the executable. -==== - -Aside from debug symbols, -setting `-Dquarkus.native.debug.enabled=true` flag generates a cache of source files -for any JDK runtime classes, GraalVM classes and application classes resolved during native executable generation. -This source cache is useful for native debugging tools, -to establish the link between the symbols and matching source code. -It provides a convenient way of making just the necessary sources available to the debugger/IDE when debugging a native executable. - -Sources for third party jar dependencies, including Quarkus source code, -are not added to the source cache by default. -To include those, make sure you invoke `mvn dependency:sources` first. -This step is required in order to pull the sources for these dependencies, -and get them included in the source cache. - -The source cache is located in the `target/sources` folder. - -[TIP] -==== -If running `gdb` from a different directory than `target`, then the sources can be loaded by running: - -[source,bash] ----- -directory path/to/target ----- - -in the `gdb` prompt. - -Or start `gdb` with: - -[source,bash] ----- -gdb -ex 'directory path/to/target' path/to/target/{project.name}-{project.version}-runner ----- - -e.g., -[source,bash] ----- -gdb -ex 'directory ./target' ./target/getting-started-1.0.0-SNAPSHOT-runner ----- -==== - -For a more detailed guide about debugging native images please refer to the xref:native-reference.adoc[Native Reference Guide]. - -[[configuration-reference]] -== Configuring the Native Executable - -There are a lot of different configuration options that can affect how the native executable is generated. -These are provided in `application.properties` the same as any other config property. - -The properties are shown below: - -include::{generated-dir}/config/quarkus-native-pkg-native-config.adoc[opts=optional] - -== What's next? - -This guide covered the creation of a native (binary) executable for your application. -It provides an application exhibiting a swift startup time and consuming less memory. -However, there is much more. - -We recommend continuing the journey with the xref:deploying-to-kubernetes.adoc[deployment to Kubernetes and OpenShift]. diff --git a/_versions/2.7/guides/cache.adoc b/_versions/2.7/guides/cache.adoc deleted file mode 100644 index 5c0c42ce648..00000000000 --- a/_versions/2.7/guides/cache.adoc +++ /dev/null @@ -1,833 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Application Data Caching -:extension-status: preview - -include::./attributes.adoc[] - -In this guide, you will learn how to enable application data caching in any CDI managed bean of your Quarkus application. - -include::./status-include.adoc[] - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Scenario - -Let's imagine you want to expose in your Quarkus application a REST API that allows users to retrieve the weather forecast for the next three days. -The problem is that you have to rely on an external meteorological service which only accepts requests for one day at a time and takes forever to answer. -Since the weather forecast is updated once every twelve hours, caching the service responses would definitely improve your API performances. - -We'll do that using a single Quarkus annotation. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `cache-quickstart` {quickstarts-tree-url}/cache-quickstart[directory]. - -== Creating the Maven project - -First, we need to create a new Quarkus project with the following command: - -:create-app-artifact-id: cache-quickstart -:create-app-extensions: resteasy,cache,resteasy-jackson -include::includes/devtools/create-app.adoc[] - -This command generates the project and imports the `cache` and `resteasy-jackson` extensions. - -If you already have your Quarkus project configured, you can add the `cache` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: cache -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-cache - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-cache") ----- - -== Creating the REST API - -Let's start by creating a service that will simulate an extremely slow call to the external meteorological service. -Create `src/main/java/org/acme/cache/WeatherForecastService.java` with the following content: - -[source,java] ----- -package org.acme.cache; - -import java.time.LocalDate; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class WeatherForecastService { - - public String getDailyForecast(LocalDate date, String city) { - try { - Thread.sleep(2000L); <1> - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } - return date.getDayOfWeek() + " will be " + getDailyResult(date.getDayOfMonth() % 4) + " in " + city; - } - - private String getDailyResult(int dayOfMonthModuloFour) { - switch (dayOfMonthModuloFour) { - case 0: - return "sunny"; - case 1: - return "cloudy"; - case 2: - return "chilly"; - case 3: - return "rainy"; - default: - throw new IllegalArgumentException(); - } - } -} ----- -<1> This is where the slowness comes from. - -We also need a class that will contain the response sent to the users when they ask for the next three days weather forecast. -Create `src/main/java/org/acme/cache/WeatherForecast.java` this way: - -[source,java] ----- -package org.acme.cache; - -import java.util.List; - -public class WeatherForecast { - - private List dailyForecasts; - - private long executionTimeInMs; - - public WeatherForecast(List dailyForecasts, long executionTimeInMs) { - this.dailyForecasts = dailyForecasts; - this.executionTimeInMs = executionTimeInMs; - } - - public List getDailyForecasts() { - return dailyForecasts; - } - - public long getExecutionTimeInMs() { - return executionTimeInMs; - } -} ----- - -Now, we just need to create the REST resource. -Create the `src/main/java/org/acme/cache/WeatherForecastResource.java` file with this content: - -[source,java] ----- -package org.acme.cache; - -import java.time.LocalDate; -import java.util.Arrays; -import java.util.List; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.MediaType; - -import org.jboss.resteasy.annotations.jaxrs.QueryParam; - -@Path("/weather") -public class WeatherForecastResource { - - @Inject - WeatherForecastService service; - - @GET - public WeatherForecast getForecast(@QueryParam String city, @QueryParam long daysInFuture) { <1> - long executionStart = System.currentTimeMillis(); - List dailyForecasts = Arrays.asList( - service.getDailyForecast(LocalDate.now().plusDays(daysInFuture), city), - service.getDailyForecast(LocalDate.now().plusDays(daysInFuture + 1L), city), - service.getDailyForecast(LocalDate.now().plusDays(daysInFuture + 2L), city) - ); - long executionEnd = System.currentTimeMillis(); - return new WeatherForecast(dailyForecasts, executionEnd - executionStart); - } -} ----- -<1> If the `daysInFuture` query parameter is omitted, the three days weather forecast will start from the current day. -Otherwise, it will start from the current day plus the `daysInFuture` value. - -We're all done! Let's check if everything's working. - -First, run the application using dev mode from the project directory: - -include::includes/devtools/dev.adoc[] - -Then, call `http://localhost:8080/weather?city=Raleigh` from a browser. -After six long seconds, the application will answer something like this: - -[source,json] ----- -{"dailyForecasts":["MONDAY will be cloudy in Raleigh","TUESDAY will be chilly in Raleigh","WEDNESDAY will be rainy in Raleigh"],"executionTimeInMs":6001} ----- - -[TIP] -==== -The response content may vary depending on the day you run the code. -==== - -You can try calling the same URL again and again, it will always take six seconds to answer. - -== Enabling the cache - -Now that your Quarkus application is up and running, let's tremendously improve its response time by caching the external meteorological service responses. -Update the `WeatherForecastService` class like this: - -[source,java] ----- -package org.acme.cache; - -import java.time.LocalDate; - -import javax.enterprise.context.ApplicationScoped; - -import io.quarkus.cache.CacheResult; - -@ApplicationScoped -public class WeatherForecastService { - - @CacheResult(cacheName = "weather-cache") <1> - public String getDailyForecast(LocalDate date, String city) { - try { - Thread.sleep(2000L); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } - return date.getDayOfWeek() + " will be " + getDailyResult(date.getDayOfMonth() % 4) + " in " + city; - } - - private String getDailyResult(int dayOfMonthModuloFour) { - switch (dayOfMonthModuloFour) { - case 0: - return "sunny"; - case 1: - return "cloudy"; - case 2: - return "chilly"; - case 3: - return "rainy"; - default: - throw new IllegalArgumentException(); - } - } -} ----- -<1> We only added this annotation (and the associated import of course). - -Let's try to call `http://localhost:8080/weather?city=Raleigh` again. -You're still waiting a long time before receiving an answer. -This is normal since the server just restarted and the cache was empty. - -Wait a second! The server restarted by itself after the `WeatherForecastService` update? -Yes, this is one of Quarkus amazing features for developers called `live coding`. - -Now that the cache was loaded during the previous call, try calling the same URL. -This time, you should get a super fast answer with an `executionTimeInMs` value close to 0. - -Let's see what happens if we start from one day in the future using the `http://localhost:8080/weather?city=Raleigh&daysInFuture=1` URL. -You should get an answer two seconds later since two of the requested days were already loaded in the cache. - -You can also try calling the same URL with a different city and see the cache in action again. -The first call will take six seconds and the following ones will be answered immediately. - -Congratulations! You just added application data caching to your Quarkus application with a single line of code! - -Do you want to learn more about the Quarkus application data caching abilities? -The following sections will show you everything there is to know about it. - -[#annotations-api] -== Caching using annotations - -Quarkus offers a set of annotations that can be used in a CDI managed bean to enable caching abilities. - -[WARNING] -==== -Caching annotations are not allowed on private methods. -They will work fine with any other access modifier including package-private (no explicit modifier). -==== - -=== @CacheResult - -Loads a method result from the cache without executing the method body whenever possible. - -When a method annotated with `@CacheResult` is invoked, Quarkus will compute a cache key and use it to check in the cache whether the method has been already invoked. -If the method has one or more arguments, the key computation is done from all the method arguments if none of them is annotated with `@CacheKey`, or all the arguments annotated with `@CacheKey` otherwise. -Each non-primitive method argument that is part of the key must implement `equals()` and `hashCode()` correctly for the cache to work as expected. -This annotation can also be used on a method with no arguments, a default key derived from the cache name is used in that case. -If a value is found in the cache, it is returned and the annotated method is never actually executed. -If no value is found, the annotated method is invoked and the returned value is stored in the cache using the computed key. - -A method annotated with `CacheResult` is protected by a lock on cache miss mechanism. -If several concurrent invocations try to retrieve a cache value from the same missing key, the method will only be invoked once. -The first concurrent invocation will trigger the method invocation while the subsequent concurrent invocations will wait for the end of the method invocation to get the cached result. -The `lockTimeout` parameter can be used to interrupt the lock after a given delay. -The lock timeout is disabled by default, meaning the lock is never interrupted. -See the parameter Javadoc for more details. - -This annotation cannot be used on a method returning `void`. - -[NOTE] -==== -Quarkus is able to also cache `null` values unlike the underlying Caffeine provider. -See <>. -==== - -=== @CacheInvalidate - -Removes an entry from the cache. - -When a method annotated with `@CacheInvalidate` is invoked, Quarkus will compute a cache key and use it to try to remove an existing entry from the cache. -If the method has one or more arguments, the key computation is done from all the method arguments if none of them is annotated with `@CacheKey`, or all the arguments annotated with `@CacheKey` otherwise. -This annotation can also be used on a method with no arguments, a default key derived from the cache name is used in that case. -If the key does not identify any cache entry, nothing will happen. - -=== @CacheInvalidateAll - -When a method annotated with `@CacheInvalidateAll` is invoked, Quarkus will remove all entries from the cache. - -=== @CacheKey - -When a method argument is annotated with `@CacheKey`, it is identified as a part of the cache key during an invocation of a -method annotated with `@CacheResult` or `@CacheInvalidate`. - -This annotation is optional and should only be used when some of the method arguments are NOT part of the cache key. - -=== Composite cache key building logic - -When a cache key is built from several method arguments, whether they are explicitly identified with `@CacheKey` or not, the building logic depends on the order of these arguments in the method signature. On the other hand, the arguments names are not used at all and do not have any effect on the cache key. - -[source,java] ----- -package org.acme.cache; - -import javax.enterprise.context.ApplicationScoped; - -import io.quarkus.cache.CacheInvalidate; -import io.quarkus.cache.CacheResult; - -@ApplicationScoped -public class CachedService { - - @CacheResult(cacheName = "foo") - public Object load(String keyElement1, Integer keyElement2) { - // Call expensive service here. - } - - @CacheInvalidate(cacheName = "foo") - public void invalidate1(String keyElement2, Integer keyElement1) { <1> - } - - @CacheInvalidate(cacheName = "foo") - public void invalidate2(Integer keyElement2, String keyElement1) { <2> - } - - @CacheInvalidate(cacheName = "foo") - public void invalidate3(Object notPartOfTheKey, @CacheKey String keyElement1, @CacheKey Integer keyElement2) { <3> - } - - @CacheInvalidate(cacheName = "foo") - public void invalidate4(Object notPartOfTheKey, @CacheKey Integer keyElement2, @CacheKey String keyElement1) { <4> - } -} ----- -<1> Calling this method WILL invalidate values cached by the `load` method even if the key elements names have been swapped. -<2> Calling this method WILL NOT invalidate values cached by the `load` method because the key elements order is different. -<3> Calling this method WILL invalidate values cached by the `load` method because the key elements order is the same. -<4> Calling this method WILL NOT invalidate values cached by the `load` method because the key elements order is different. - -[#programmatic-api] -== Caching using the programmatic API - -Quarkus also offers a programmatic API which can be used to store, retrieve or delete values from any cache declared using the annotations API. -All operations from the programmatic API are non-blocking and rely on https://smallrye.io/smallrye-mutiny/[Mutiny] under the hood. - -Before accessing programmatically the cached data, you need to retrieve an `io.quarkus.cache.Cache` instance. -The following sections will show you how to do that. - -=== Injecting a `Cache` with the `@CacheName` annotation - -`io.quarkus.cache.CacheName` can be used on a field, a constructor parameter or a method parameter to inject a `Cache`: - -[source,java] ----- -package org.acme.cache; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; - -import io.quarkus.cache.Cache; -import io.quarkus.cache.CacheName; -import io.smallrye.mutiny.Uni; - -@ApplicationScoped -public class CachedExpensiveService { - - @Inject //<1> - @CacheName("my-cache") - Cache cache; - - public Uni getNonBlockingExpensiveValue(Object key) { //<2> - return cache.get(key, k -> { //<3> - /* - * Put an expensive call here. - * It will be executed only if the key is not already associated with a value in the cache. - */ - }); - } - - public String getBlockingExpensiveValue(Object key) { - return cache.get(key, k -> { - // Put an expensive call here. - }).await().indefinitely(); //<4> - } -} ----- -<1> This is optional. -<2> This method returns the `Uni` type which is non-blocking. -<3> The `k` argument contains the cache key value. -<4> If you don't need the call to be non-blocking, this is how you can retrieve the cache value in a blocking way. - -=== Retrieving a `Cache` from the `CacheManager` - -Another way to retrieve a `Cache` instance consists in injecting the `io.quarkus.cache.CacheManager` first and then retrieving the desired `Cache` from its name: - -[source,java] ----- -package org.acme.cache; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; - -import io.quarkus.cache.Cache; -import io.quarkus.cache.CacheManager; - -import java.util.Optional; - -@ApplicationScoped -public class CacheClearer { - - @Inject - CacheManager cacheManager; - - public void clearCache(String cacheName) { - Optional cache = cacheManager.getCache(cacheName); - if (cache.isPresent()) { - cache.get().invalidateAll().await().indefinitely(); - } - } -} ----- - -=== Building a programmatic cache key - -Before building a programmatic cache key, you need to know how cache keys are built by the annotations API when an annotated method is invoked: - -* If the method has no arguments, then the cache key is an instance of `io.quarkus.cache.DefaultCacheKey` built from the cache name. -* If the method has exactly one argument, then this argument is the cache key. -* If the method has multiple arguments but only one annotated with `@CacheKey`, then this annotated argument is the cache key. -* In all other cases, the cache key is an instance of `io.quarkus.cache.CompositeCacheKey` built from multiple method arguments (annotated with `@CacheKey` or not). - -Now, if you want to retrieve or delete, using the programmatic API, a cache value that was stored using the annotations API, you just need to make sure the same key is used with both APIs. - -=== Retrieving all keys from a `CaffeineCache` - -The cache keys from a specific `CaffeineCache` can be retrieved as an unmodifiable `Set` as shown below. -If the cache entries are modified while an iteration over the set is in progress, the set will remain unchanged. - -[source,java] ----- -package org.acme.cache; - -import javax.enterprise.context.ApplicationScoped; - -import io.quarkus.cache.Cache; -import io.quarkus.cache.CacheName; -import io.quarkus.cache.CaffeineCache; - -import java.util.Set; - -@ApplicationScoped -public class CacheKeysService { - - @CacheName("my-cache") - Cache cache; - - public Set getAllCacheKeys() { - return cache.as(CaffeineCache.class).keySet(); - } -} ----- - -== Configuring the underlying caching provider - -This extension uses https://github.com/ben-manes/caffeine[Caffeine] as its underlying caching provider. -Caffeine is a high performance, near optimal caching library. - -=== Caffeine configuration properties - -Each of the Caffeine caches backing up the Quarkus application data caching extension can be configured using the following -properties in the `application.properties` file. By default caches do not perform any type of eviction if not configured. - -[TIP] -==== -You need to replace `cache-name` in all of the following properties with the real name of the cache you want to configure. -==== - -include::{generated-dir}/config/quarkus-cache-config-group-cache-config-caffeine-config.adoc[opts=optional, leveloffset=+1] - -Here's what your cache configuration could look like: - -[source,properties] ----- -quarkus.cache.caffeine."foo".initial-capacity=10 <1> -quarkus.cache.caffeine."foo".maximum-size=20 -quarkus.cache.caffeine."foo".expire-after-write=60S -quarkus.cache.caffeine."bar".maximum-size=1000 <2> ----- -<1> The `foo` cache is being configured. -<2> The `bar` cache is being configured. - -== Enabling Micrometer metrics - -Each cache declared using the <<#annotations-api,annotations caching API>> can be monitored using Micrometer metrics. - -[NOTE] -==== -The cache metrics collection will only work if your application depends on a `quarkus-micrometer-registry-*` extension. -See the xref:micrometer.adoc[Micrometer metrics guide] to learn how to use Micrometer in Quarkus. -==== - -The cache metrics collection is disabled by default. -It can be enabled from the `application.properties` file: - -[source,properties] ----- -quarkus.cache.caffeine."foo".metrics-enabled=true ----- - -[WARNING] -==== -Like all instrumentation methods, collecting metrics comes with a small overhead that can impact the application performances. -==== - -The collected metrics contain cache statistics such as: - -- the approximate current number of entries in the cache -- the number of entries that were added to the cache -- the number of times a cache lookup has been performed, including information about hits and misses -- the number of evictions and the weight of the evicted entries - -Here is an example of cache metrics available for an application that depends on the `quarkus-micrometer-registry-prometheus` extension: - -[source] ----- -# HELP cache_size The number of entries in this cache. This may be an approximation, depending on the type of cache. -# TYPE cache_size gauge -cache_size{cache="foo",} 8.0 -# HELP cache_puts_total The number of entries added to the cache -# TYPE cache_puts_total counter -cache_puts_total{cache="foo",} 12.0 -# HELP cache_gets_total The number of times cache lookup methods have returned a cached value. -# TYPE cache_gets_total counter -cache_gets_total{cache="foo",result="hit",} 53.0 -cache_gets_total{cache="foo",result="miss",} 12.0 -# HELP cache_evictions_total cache evictions -# TYPE cache_evictions_total counter -cache_evictions_total{cache="foo",} 4.0 -# HELP cache_eviction_weight_total The sum of weights of evicted entries. This total does not include manual invalidations. -# TYPE cache_eviction_weight_total counter -cache_eviction_weight_total{cache="foo",} 540.0 ----- - -== Annotated beans examples - -=== Implicit simple cache key - -[source,java] ----- -package org.acme.cache; - -import javax.enterprise.context.ApplicationScoped; - -import io.quarkus.cache.CacheInvalidate; -import io.quarkus.cache.CacheInvalidateAll; -import io.quarkus.cache.CacheResult; - -@ApplicationScoped -public class CachedService { - - @CacheResult(cacheName = "foo") - public Object load(Object key) { <1> - // Call expensive service here. - } - - @CacheInvalidate(cacheName = "foo") - public void invalidate(Object key) { <1> - } - - @CacheInvalidateAll(cacheName = "foo") - public void invalidateAll() { - } -} ----- -<1> The cache key is implicit since there's no `@CacheKey` annotation. - -=== Explicit composite cache key - -[source,java] ----- -package org.acme.cache; - -import javax.enterprise.context.Dependent; - -import io.quarkus.cache.CacheInvalidate; -import io.quarkus.cache.CacheInvalidateAll; -import io.quarkus.cache.CacheKey; -import io.quarkus.cache.CacheResult; - -@Dependent -public class CachedService { - - @CacheResult(cacheName = "foo") - public String load(@CacheKey Object keyElement1, @CacheKey Object keyElement2, Object notPartOfTheKey) { <1> - // Call expensive service here. - } - - @CacheInvalidate(cacheName = "foo") - public void invalidate(@CacheKey Object keyElement1, @CacheKey Object keyElement2, Object notPartOfTheKey) { <1> - } - - @CacheInvalidateAll(cacheName = "foo") - public void invalidateAll() { - } -} ----- -<1> The cache key is explicitly composed of two elements. The method signature also contains a third argument which is not part of the key. - -=== Default cache key - -[source,java] ----- -package org.acme.cache; - -import javax.enterprise.context.Dependent; - -import io.quarkus.cache.CacheInvalidate; -import io.quarkus.cache.CacheInvalidateAll; -import io.quarkus.cache.CacheResult; - -@Dependent -public class CachedService { - - @CacheResult(cacheName = "foo") - public String load() { <1> - // Call expensive service here. - } - - @CacheInvalidate(cacheName = "foo") - public void invalidate() { <1> - } - - @CacheInvalidateAll(cacheName = "foo") - public void invalidateAll() { - } -} ----- -<1> A unique default cache key derived from the cache name is used because the method has no arguments. - -=== Multiple annotations on a single method - -[source,java] ----- -package org.acme.cache; - -import javax.inject.Singleton; - -import io.quarkus.cache.CacheInvalidate; -import io.quarkus.cache.CacheInvalidateAll; -import io.quarkus.cache.CacheResult; - -@Singleton -public class CachedService { - - @CacheInvalidate(cacheName = "foo") - @CacheResult(cacheName = "foo") - public String forceCacheEntryRefresh(Object key) { <1> - // Call expensive service here. - } - - @CacheInvalidateAll(cacheName = "foo") - @CacheInvalidateAll(cacheName = "bar") - public void multipleInvalidateAll(Object key) { <2> - } -} ----- -<1> This method can be used to force a refresh of the cache entry corresponding to the given key. -<2> This method will invalidate all entries from the `foo` and `bar` caches with a single call. - -=== Clear all application caches - -[source,java] ----- -package org.acme.cache; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; - -import io.quarkus.cache.CacheManager; - -@ApplicationScoped -public class CacheClearer { - - @Inject - CacheManager cacheManager; - - public void clearAllCaches() { - for (String cacheName : cacheManager.getCacheNames()) { - cacheManager.getCache(cacheName).get().invalidateAll().await().indefinitely(); - } - } -} ----- - -[#negative-cache] -== Negative caching and nulls - -Sometimes one wants to cache the result of an (expensive) remote call. -If the remote call fails, one may not want to cache the result or exception, -but rather re-try the remote call on the next invocation. - -A simple approach could be to catch the exception and return `null`, so that the caller can -act accordingly: - -.Sample code -[source,java] ----- - public void caller(int val) { - - Integer result = callRemote(val); //<1> - if (result != null) { - System.out.println("Result is " + result); - else { - System.out.println("Got an exception"); - } - } - - @CacheResult(cacheName = "foo") - public Integer callRemote(int val) { - - try { - Integer val = remoteWebServer.getResult(val); //<2> - return val; - } catch (Exception e) { - return null; // <3> - } - } ----- -<1> Call the method to call the remote -<2> Do the remote call and return its result -<3> Return in case of exception - -This approach has an unfortunate side effect: as we said before, Quarkus can also cache -`null` values. Which means that the next call to `callRemote()` with the same parameter value -will be answered out of the cache, returning `null` and no remote call will be done. -This may be desired in some scenarios, but usually one wants to retry the remote call until it returns a result. - -=== Let exceptions bubble up - -To prevent the cache from caching (marker) results from a remote call, we need to let -the exception bubble out of the called method and catch it at the caller side: - -.With Exception bubbling up -[source,java] ----- - public void caller(int val) { - try { - Integer result = callRemote(val); //<1> - System.out.println("Result is " + result); - } catch (Exception e) { - System.out.println("Got an exception"); - } - - @CacheResult(cacheName = "foo") - public Integer callRemote(int val) throws Exception { // <2> - - Integer val = remoteWebServer.getResult(val); //<3> - return val; - - } ----- -<1> Call the method to call the remote -<2> Exceptions may bubble up -<3> This can throw all kinds of remote exceptions - -When the call to the remote throws an exception, the cache does not store the result, -so that a subsequent call to `callRemote()` with the same parameter value will not be -answered out of the cache. -It will instead result in another attempt to call the remote. - -== Going native - -The Cache extension supports building native executables. - -However, to optimize runtime speed, Caffeine embarks many cache implementation classes that are selected depending on the cache configuration. -We are not registering all of them for reflection -(and the ones not registered are not included into the native executables) as registering all of them would be very costly. - -We are registering the most common implementations but, depending on your cache configuration, you might encounter errors like: - -[source] ----- -2021-12-08 02:32:02,108 ERROR [io.qua.run.Application] (main) Failed to start application (with profile prod): java.lang.ClassNotFoundException: com.github.benmanes.caffeine.cache.PSAMS <1> - at java.lang.Class.forName(DynamicHub.java:1433) - at java.lang.Class.forName(DynamicHub.java:1408) - at com.github.benmanes.caffeine.cache.NodeFactory.newFactory(NodeFactory.java:111) - at com.github.benmanes.caffeine.cache.BoundedLocalCache.(BoundedLocalCache.java:240) - at com.github.benmanes.caffeine.cache.SS.(SS.java:31) - at com.github.benmanes.caffeine.cache.SSMS.(SSMS.java:64) - at com.github.benmanes.caffeine.cache.SSMSA.(SSMSA.java:43) ----- -<1> `PSAMS` is one of the many cache implementation classes of Caffeine so this part may vary. - -When you encounter this error, you can easily fix it by adding the following annotation to any of your application classes -(or you can create a new class such as `Reflections` just to host this annotation if you prefer): - -[source,java] ----- -@RegisterForReflection(classNames = { "com.github.benmanes.caffeine.cache.PSAMS" }) <1> ----- -<1> It is an array so you can register several cache implementations in one go if your configuration requires several of them. - -This annotation will register the cache implementation classes for reflection and this will include the classes into the native executable. diff --git a/_versions/2.7/guides/camel.adoc b/_versions/2.7/guides/camel.adoc deleted file mode 100644 index 6a9f60131a8..00000000000 --- a/_versions/2.7/guides/camel.adoc +++ /dev/null @@ -1,15 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Apache Camel on Quarkus - -include::./attributes.adoc[] - -http://camel.apache.org/[Apache Camel] is the Swiss knife of integrating heterogeneous systems with more than a decade -of history and a lively community of users and developers. - -The support for Apache Camel on top of Quarkus is provided by the -https://github.com/apache/camel-quarkus[Apache Camel Quarkus project]. Please refer to -https://camel.apache.org/camel-quarkus/latest/[their documentation] for more information. diff --git a/_versions/2.7/guides/capabilities.adoc b/_versions/2.7/guides/capabilities.adoc deleted file mode 100644 index c44596c1a02..00000000000 --- a/_versions/2.7/guides/capabilities.adoc +++ /dev/null @@ -1,124 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Extension Capabilities - -include::./attributes.adoc[] - -Quarkus extensions may declare in their descriptors (`META-INF/quarkus-extension.properties` found in the runtime extension JAR artifact) that they provide certain capabilities. A capability represents a technical aspect, e.g. an implementation of some functionality or a specification. Each capability has a name which should follow the Java package naming convention, e.g. `io.quarkus.rest`. - -IMPORTANT: Only a single provider of any given capability is allowed in an application. If more than one provider of a capability is detected, the application build will fail with the corresponding error message. - -At build time all the capabilities found in the application will be aggregated in an instance of the `io.quarkus.deployment.Capabilities` build item that extension build steps can inject to check whether a given capability is available or not. - -== Declaring capabilities - -The `quarkus-bootstrap-maven-plugin:extension-descriptor` Maven goal, that generates the extension descriptor, allows to declare provided capabilities in the following way: -[source,xml] ----- - - io.quarkus - quarkus-bootstrap-maven-plugin - - - io.quarkus.rest - io.quarkus.resteasy - - - ----- - -In this case, the extension is declaring two capabilities. - -=== Declaring conditional capabilities - -A capability may be provided only if a certain condition is satisfied, e.g. if a certain configuration option is enabled or based on some other condition. This could be expressed in the following way: -[source,xml] ----- - - io.quarkus - quarkus-bootstrap-maven-plugin - - - <1> - io.quarkus.container.image.openshift.deployment.OpenshiftBuild <2> - io.quarkus.container.image.openshift <3> - - - - ----- -<1> declaration of a conditional capability -<2> condition that must be resolved to `true` by a class implementing `java.util.function.BooleanSupplier` -<3> provided capability name - -NOTE: `providesIf` allows listing multiple `` as well as `` elements. - -In this case, `io.quarkus.container.image.openshift.deployment.OpenshiftBuild` should be included in one of the extension deployment dependencies and implement `java.util.function.BooleanSupplier`. At build time, the Quarkus bootstrap will create an instance of it and register `io.quarkus.container.image.openshift` capability only if its `getAsBoolean()` method returns true. - -An implementation of the `OpenshiftBuild` could look like this: -[source,java] ----- -import java.util.function.BooleanSupplier; - -import io.quarkus.container.image.deployment.ContainerImageConfig; - -public class OpenshiftBuild implements BooleanSupplier { - - private ContainerImageConfig containerImageConfig; - - OpenshiftBuild(ContainerImageConfig containerImageConfig) { - this.containerImageConfig = containerImageConfig; - } - - @Override - public boolean getAsBoolean() { - return containerImageConfig.builder.map(b -> b.equals(OpenshiftProcessor.OPENSHIFT)).orElse(true); - } -} ----- - -== CapabilityBuildItem - -Each provided capability will be represented with an instance of `io.quarkus.deployment.builditem.CapabilityBuildItem` at build time. Theoretically, `CapabilityBuildItem`'s could be produced by extension build steps directly, bypassing the corresponding declaration in the extension descriptors. However, this way of providing capabilities should be avoided, unless there is a very good reason not to declare a capability in the descriptor. - -IMPORTANT: Capabilities produced from extension build steps aren't available for the Quarkus dev tools. As a consequences, such capabilities can not be taken into account when analyzing extension compatibility during project creation or when adding new extensions to a project. - -== Querying capabilities - -All the capabilities found in an application will be aggregated during the build in an instance of `io.quarkus.deployment.Capabilities` build item, which can be injected by extension build steps to check whether a certain capability is present or not. E.g. - -[source,java] ----- - @BuildStep - HealthBuildItem addHealthCheck(Capabilities capabilities, DataSourcesBuildTimeConfig dataSourcesBuildTimeConfig) { - if (capabilities.isPresent(Capability.SMALLRYE_HEALTH)) { - return new HealthBuildItem("io.quarkus.agroal.runtime.health.DataSourceHealthCheck", - dataSourcesBuildTimeConfig.healthEnabled); - } else { - return null; - } - } ----- - -=== Capability prefixes - -Like a capability name, a capability prefix is a dot-separated string that is composed of either the first capability name element or a dot-separated sequence of the capability name elements starting from the first one. E.g. for capability `io.quarkus.resteasy.json.jackson` the following prefixes will be registered: - -* `io` -* `io.quarkus` -* `io.quarkus.resteasy` -* `io.quarkus.resteasy.json` - -`Capabilities.isCapabilityWithPrefixPresent(prefix)` could be used to check whether a capability with a given prefix is present. - -Given that only a single provider of a given capability is allowed in an application, capability prefixes allow expressing a certain common aspect among different but somewhat related capabilities. E.g. there could be extensions providing the following capabilities: - -* `io.quarkus.resteasy.json.jackson` -* `io.quarkus.resteasy.json.jackson.client` -* `io.quarkus.resteasy.json.jsonb` -* `io.quarkus.resteasy.json.jsonb.client` - -Including any one of those extensions in an application will enable the RESTEasy JSON serializer. In case a build step needs to check whether the RESTEasy JSON serializer is already enabled in an application, instead of checking whether any of those capabilities is present, it could simply check whether an extension with prefix `io.quarkus.resteasy.json` is present. diff --git a/_versions/2.7/guides/cassandra.adoc b/_versions/2.7/guides/cassandra.adoc deleted file mode 100644 index 649eac9dfb4..00000000000 --- a/_versions/2.7/guides/cassandra.adoc +++ /dev/null @@ -1,775 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using the Cassandra Client - -include::./attributes.adoc[] - -Apache Cassandra® is a free and open-source, distributed, wide column store, NoSQL database -management system designed to handle large amounts of data across many commodity servers, providing -high availability with no single point of failure. - -In this guide, we will see how you can get your REST services to use a Cassandra database. - -include::./platform-include.adoc[] - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* A running link:https://cassandra.apache.org[Apache Cassandra], -link:https://www.datastax.fr/products/datastax-enterprise[DataStax Enterprise] (DSE) or -link:https://astra.datastax.com[DataStax Astra] database; or alternatively, a fresh Docker -installation. - -== Architecture - -This quickstart guide shows how to build a REST application using the -link:https://github.com/datastax/cassandra-quarkus[Cassandra Quarkus extension], which allows you to -connect to an Apache Cassandra, DataStax Enterprise (DSE) or DataStax Astra database, using the -link:https://docs.datastax.com/en/developer/java-driver/latest[DataStax Java driver]. - -This guide will also use the -link:https://docs.datastax.com/en/developer/java-driver/latest/manual/mapper[DataStax Object Mapper] -– a powerful Java-to-CQL mapping framework that greatly simplifies your application's data access -layer code by sparing you the hassle of writing your CQL queries by hand. - -The application built in this quickstart guide is quite simple: the user can add elements in a list -using a form, and the items list is updated. All the information between the browser and the server -is formatted as JSON, and the elements are stored in the Cassandra database. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step -by step. However, you can go right to the completed example. - -The solution is located in the -link:https://github.com/datastax/cassandra-quarkus/tree/main/quickstart[quickstart directory] of -the Cassandra Quarkus extension GitHub repository. - -== Creating a Blank Maven Project - -First, create a new Maven project and copy the `pom.xml` file that is present in the `quickstart` -directory. - -The `pom.xml` is importing all the Quarkus extensions and dependencies you need. - -== Creating the Data Model and Data Access Objects - -In this example, we will create an application to manage a list of fruits. - -First, let's create our data model – represented by the `Fruit` class – as follows: - -[source,java] ----- -@Entity -@PropertyStrategy(mutable = false) -public class Fruit { - - @PartitionKey - private final String name; - - private final String description; - - public Fruit(String name, String description) { - this.name = name; - this.description = description; - } - // getters, hashCode, equals, toString methods omitted for brevity -} ----- - -As stated above, we are using the DataStax Object Mapper. In other words, we are not going to write -our CQL queries manually; instead, we will annotate our data model with a few annotations, and the -mapper will generate proper CQL queries underneath. - -This is why the `Fruit` class is annotated with `@Entity`: this annotation marks it as an _entity -class_ that is mapped to a Cassandra table. Its instances are meant to be automatically persisted -into, and retrieved from, the Cassandra database. Here, the table name will be inferred from the -class name: `fruit`. - -Also, the `name` field represents a Cassandra partition key, and so we are annotating it with -`@PartitionKey` – another annotation from the Object Mapper library. - -IMPORTANT: Entity classes are normally required to have a default no-arg constructor, unless they -are annotated with `@PropertyStrategy(mutable = false)`, which is the case here. - -The next step is to create a DAO (Data Access Object) interface that will manage instances of -`Fruit` entities: - -[source,java] ----- -@Dao -public interface FruitDao { - @Update - void update(Fruit fruit); - - @Select - PagingIterable findAll(); -} ----- - -This interface exposes operations that will be used in our REST service. Again, the annotation -`@Dao` comes from the DataStax Object Mapper, which will also automatically generate an -implementation of this interface for you. - -Note also the special return type of the `findAll` method, -link:https://docs.datastax.com/en/drivers/java/latest/com/datastax/oss/driver/api/core/PagingIterable.html[`PagingIterable`]: -it's the base type of result sets returned by the driver. - -Finally, let's create the a Mapper interface: - -[source,java] ----- -@Mapper -public interface FruitMapper { - @DaoFactory - FruitDao fruitDao(); -} ----- - -The `@Mapper` annotation is yet another annotation recognized by the DataStax Object Mapper. A -mapper is responsible for constructing instances of DAOs – in this case, out mapper is constructing -an instance of our only DAO, `FruitDao`. - -== Creating a Service & JSON REST Endpoint - -Now let's create a `FruitService` that will be the business layer of our application and store/load -the fruits from the Cassandra database. - -[source,java] ----- -@ApplicationScoped -public class FruitService { - - @Inject FruitDao dao; - - public void save(Fruit fruit) { - dao.update(fruit); - } - - public List getAll() { - return dao.findAll().all(); - } -} ----- - -Note how the service is being injected a `FruitDao` instance. This DAO instance is injected -automatically. - -The Cassandra Quarkus extension allows you to inject any of the following beans in your own -components: - -- All `@Mapper`-annotated interfaces in your project. -- All `@Dao`-annotated interfaces in your project, as long as they are produced by a corresponding -`@DaoFactory`-annotated method declared in a mapper interface from your project. -- The -link:https://javadoc.io/doc/com.datastax.oss.quarkus/cassandra-quarkus-client/latest/com/datastax/oss/quarkus/runtime/api/session/QuarkusCqlSession.html[`QuarkusCqlSession`] -bean: this application-scoped, singleton bean is your main entry point to the Cassandra client; it -is a specialized Cassandra driver session instance with a few methods tailored especially for -Quarkus. Read its javadocs carefully! - -In our example, both `FruitMapper` and `FruitDao` could be injected anywhere. We chose to inject -`FruitDao` in `FruitService`. - -The last missing piece is the REST API that will expose GET and POST methods: - -[source,java] ----- -@Path("/fruits") -@Produces(MediaType.APPLICATION_JSON) -@Consumes(MediaType.APPLICATION_JSON) -public class FruitResource { - - @Inject FruitService fruitService; - - @GET - public List getAll() { - return fruitService.getAll().stream().map(this::convertToDto).collect(Collectors.toList()); - } - - @POST - public void add(FruitDto fruit) { - fruitService.save(convertFromDto(fruit)); - } - - private FruitDto convertToDto(Fruit fruit) { - return new FruitDto(fruit.getName(), fruit.getDescription()); - } - - private Fruit convertFromDto(FruitDto fruitDto) { - return new Fruit(fruitDto.getName(), fruitDto.getDescription()); - } -} ----- - -Notice how `FruitResource` is being injected a `FruitService` instance automatically. - -It is generally not recommended using the same entity object between the REST API and the data -access layer. These layers should indeed be decoupled and use distinct APIs in order to allow each -API to evolve independently of the other. This is the reason why our REST API is using a different -object: the `FruitDto` class – the word DTO stands for "Data Transfer Object". This DTO object will -be automatically converted to and from JSON in HTTP messages: - -[source,java] ----- -public class FruitDto { - - private String name; - private String description; - - public FruitDto() {} - - public FruitDto(String name, String description) { - this.name = name; - this.description = description; - } - // getters and setters omitted for brevity -} ----- - -The translation to and from JSON is done automatically by the Quarkus RestEasy extension, which is -included in this guide's pom.xml file. If you want to add it manually to your application, add the -below snippet to your application's ppm.xml file: - -[source,xml] ----- - - io.quarkus - quarkus-resteasy - - - io.quarkus - quarkus-resteasy-jsonb - ----- - -IMPORTANT: DTO classes used by the JSON serialization layer are required to have a default no-arg -constructor. - -The conversion from DTO to JSON is handled automatically for us, but we still must convert from -`Fruit` to `FruitDto` and vice versa. This must be done manually, which is why we have two -conversion methods declared in `FruitResource`: `convertToDto` and `convertFromDto`. - -TIP: In our example, `Fruit` and `FruitDto` are very similar, so you might wonder why not use -`Fruit` everywhere. In real life cases though, it's not uncommon to see DTOs and entities having -very different structures. - -== Connecting to the Cassandra Database - -=== Connecting to Apache Cassandra or DataStax Enterprise (DSE) - -The main properties to configure are: `contact-points`, to access the Cassandra database; -`local-datacenter`, which is required by the driver; and – optionally – the keyspace to bind to. - -A sample configuration should look like this: - -[source,properties] ----- -quarkus.cassandra.contact-points={cassandra_ip}:9042 -quarkus.cassandra.local-datacenter={dc_name} -quarkus.cassandra.keyspace={keyspace} ----- - -In this example, we are using a single instance running on localhost, and the keyspace containing -our data is `k1`: - -[source,properties] ----- -quarkus.cassandra.contact-points=127.0.0.1:9042 -quarkus.cassandra.local-datacenter=datacenter1 -quarkus.cassandra.keyspace=k1 ----- - -If your cluster requires plain text authentication, you must also provide two more settings: -`username` and `password`. - -[source,properties] ----- -quarkus.cassandra.auth.username=john -quarkus.cassandra.auth.password=s3cr3t ----- - -=== Connecting to a DataStax Astra Cloud Database - -When connecting to link:https://astra.datastax.com[DataStax Astra], instead of providing a contact -point and a datacenter, you should provide a so-called _secure connect bundle_, which should point -to a valid path to an Astra secure connect bundle file. You can download your secure connect bundle -from the Astra web console. - -You will also need to provide a username and password, since authentication is always required on -Astra clusters. - -A sample configuration for DataStax Astra should look like this: - -[source,properties] ----- -quarkus.cassandra.cloud.secure-connect-bundle=/path/to/secure-connect-bundle.zip -quarkus.cassandra.auth.username=john -quarkus.cassandra.auth.password=s3cr3t -quarkus.cassandra.keyspace=k1 ----- - -=== Advanced Driver Configuration - -You can configure other Java driver settings using `application.conf` or `application.json` files. -They need to be located in the classpath of your application. All settings will be passed -automatically to the underlying driver configuration mechanism. Settings defined in -`application.properties` with the `quarkus.cassandra` prefix will have priority over settings -defined in `application.conf` or `application.json`. - -To see the full list of settings, please refer to the -link:https://docs.datastax.com/en/developer/java-driver/latest/manual/core/configuration/reference/[driver -settings reference]. - -== Running a Local Cassandra Database - -By default, the Cassandra client is configured to access a local Cassandra database on port 9042 -(the default Cassandra port). - -IMPORTANT: Make sure that the setting `quarkus.cassandra.local-datacenter` matches the datacenter of -your Cassandra cluster. - -TIP: If you don't know the name of your local datacenter, this value can be found by running the -following CQL query: `SELECT data_center FROM system.local`. - -If you want to use Docker to run a Cassandra database, you can use the following command to launch -one in the background: - -[source,shell] ----- -docker run --name local-cassandra-instance -p 9042:9042 -d cassandra ----- - -Next you need to create the keyspace and table that will be used by your application. If you are -using Docker, run the following commands: - -[source,shell] ----- -docker exec -it local-cassandra-instance cqlsh -e "CREATE KEYSPACE IF NOT EXISTS k1 WITH replication = {'class':'SimpleStrategy', 'replication_factor':1}" -docker exec -it local-cassandra-instance cqlsh -e "CREATE TABLE IF NOT EXISTS k1.fruit(name text PRIMARY KEY, description text)" ----- - -You can also use the CQLSH utility to interactively interrogate your database: - -[source,shell] ----- -docker exec -it local-cassandra-instance cqlsh ----- - -== Testing the REST API - -In the project root directory: - -- Run `mvn clean package` and then `java -jar ./target/cassandra-quarkus-quickstart-*-runner.jar` to start the application; -- Or better yet, run the application in dev mode: `mvn clean quarkus:dev`. - -Now you can use curl commands to interact with the underlying REST API. - -To create a fruit: - -[source,shell] ----- -curl --header "Content-Type: application/json" \ - --request POST \ - --data '{"name":"apple","description":"red and tasty"}' \ - http://localhost:8080/fruits ----- - -To retrieve fruits: - -[source,shell] ----- -curl -X GET http://localhost:8080/fruits ----- - -== Creating a Frontend - -Now let's add a simple web page to interact with our `FruitResource`. - -Quarkus automatically serves static resources located under the `META-INF/resources` directory. In -the `src/main/resources/META-INF/resources` directory, add a `fruits.html` file with the contents -from link:src/main/resources/META-INF/resources/fruits.html[this file] in it. - -You can now interact with your REST service: - -* If you haven't done yet, start your application with `mvn clean quarkus:dev`; -* Point your browser to `http://localhost:8080/fruits.html`; -* Add new fruits to the list via the form. - -[[reactive]] -== Reactive Programming with the Cassandra Client - -The -link:https://javadoc.io/doc/com.datastax.oss.quarkus/cassandra-quarkus-client/latest/com/datastax/oss/quarkus/runtime/api/session/QuarkusCqlSession.html[`QuarkusCqlSession` -interface] gives you access to a series of reactive methods that integrate seamlessly with Quarkus -and its reactive framework, Mutiny. - -TIP: If you are not familiar with Mutiny, please check xref:mutiny-primer.adoc[Mutiny - an intuitive reactive programming library]. - -Let's rewrite our application using reactive programming with Mutiny. - -First, let's to declare another DAO interface that works in a reactive way: - -[source,java] ----- -@Dao -public interface ReactiveFruitDao { - - @Update - Uni updateAsync(Fruit fruit); - - @Select - MutinyMappedReactiveResultSet findAll(); -} - ----- - -Note the usage of `MutinyMappedReactiveResultSet` - it is a specialized `Mutiny` type converted from -the original `Publisher` returned by the driver, which also exposes a few extra methods, e.g. to -obtain the query execution info. If you don't need anything in that interface, you can also simply -declare your method to return `Multi`: `Multi findAll()`, - -Similarly, the method `updateAsync` returns a `Uni` - it is automatically converted from the -original result set returned by the driver. - -NOTE: The Cassandra driver uses the Reactive Streams `Publisher` API for reactive calls. The Quarkus -framework however uses Mutiny. Because of that, the `CqlQuarkusSession` interface transparently -converts the `Publisher` instances returned by the driver into the reactive type `Multi`. -`CqlQuarkusSession` is also capable of converting a `Publisher` into a `Uni` – in this case, the -publisher is expected to emit at most one row, then complete. This is suitable for write queries -(they return no rows), or for read queries guaranteed to return one row at most (count queries, for -example). - -Next, we need to adapt the `FruitMapper` to construct a `ReactiveFruitDao` instance: - -[source,java] ----- -@Mapper -public interface FruitMapper { - // the existing method omitted - - @DaoFactory - ReactiveFruitDao reactiveFruitDao(); -} - ----- - -Now, we can create a `ReactiveFruitService` that leverages our reactive DAO: - -[source,java] ----- -@ApplicationScoped -public class ReactiveFruitService { - - @Inject ReactiveFruitDao fruitDao; - - public Uni add(Fruit fruit) { - return fruitDao.update(fruit); - } - - public Multi getAll() { - return fruitDao.findAll(); - } -} ----- - -Finally, we can create a `ReactiveFruitResource`: - -[source,java] ----- -@Path("/reactive-fruits") -@Produces(MediaType.APPLICATION_JSON) -@Consumes(MediaType.APPLICATION_JSON) -public class ReactiveFruitResource { - - @Inject ReactiveFruitService service; - - @GET - public Multi getAll() { - return service.getAll().map(this::convertToDto); - } - - @POST - public Uni add(FruitDto fruitDto) { - return service.add(convertFromDto(fruitDto)); - } - - private FruitDto convertToDto(Fruit fruit) { - return new FruitDto(fruit.getName(), fruit.getDescription()); - } - - private Fruit convertFromDto(FruitDto fruitDto) { - return new Fruit(fruitDto.getName(), fruitDto.getDescription()); - } -} ----- - -The above resource is exposing a new endpoint, `reactive-fruits`. Its capabilities are identical to -the ones that we created before with `FruitResource`, but everything is handled in a reactive -fashion, without any blocking operation. - -NOTE: The `getAll()` method above returns `Multi`, and the `add()` method returns `Uni`. These types -are the same Mutiny types that we met before; they are automatically recognized by the Quarkus -reactive REST API, so we don't need to convert them into JSON ourselves. - -To effectively integrate the reactive logic with the REST API, your application needs to declare a -dependency to the Quarkus RestEasy Mutiny extension: - -[source,xml] ----- - - io.quarkus - quarkus-resteasy-mutiny - ----- - -This dependency is already included in this guide's pom.xml, but if you are starting a new project -from scratch, make sure to include it. - -== Testing the Reactive REST API - -Run the application in dev mode as explained above, then you can use curl commands to interact with -the underlying REST API. - -To create a fruit using the reactive REST endpoint: - -[source,shell] ----- -curl --header "Content-Type: application/json" \ - --request POST \ - --data '{"name":"banana","description":"yellow and sweet"}' \ - http://localhost:8080/reactive-fruits ----- - -To retrieve fruits with the reactive REST endpoint: - -[source,shell] ----- -curl -X GET http://localhost:8080/reactive-fruits ----- - -== Creating a Reactive Frontend - -Now let's add a simple web page to interact with our `ReactiveFruitResource`. In the -`src/main/resources/META-INF/resources` directory, add a `reactive-fruits.html` file with the -contents from link:src/main/resources/META-INF/resources/reactive-fruits.html[this file] in it. - -You can now interact with your reactive REST service: - -* If you haven't done yet, start your application with `mvn clean quarkus:dev`; -* Point your browser to `http://localhost:8080/reactive-fruits.html`; -* Add new fruits to the list via the form. - -== Health Checks - -If you are using the Quarkus SmallRye Health extension, then the Cassandra client will automatically -add a readiness health check to validate the connection to the Cassandra cluster. This extension is -already included in this guide's pom.xml, but if you need to include it manually in your -application, add the following: - -[source,xml] ----- - - io.quarkus - quarkus-smallrye-health - ----- - -When health checks are available, you can access the `/health/ready` endpoint of your application -and have information about the connection validation status. - -Running in dev mode with `mvn clean quarkus:dev`, if you point your browser to -http://localhost:8080/health/ready you should see an output similar to the following one: - -[source,text] ----- -{ - "status": "UP", - "checks": [ - { - "name": "DataStax Apache Cassandra Driver health check", - "status": "UP", - "data": { - "cqlVersion": "3.4.4", - "releaseVersion": "3.11.7", - "clusterName": "Test Cluster", - "datacenter": "datacenter1", - "numberOfNodes": 1 - } - } - ] -} ----- - -TIP: If you need health checks globally enabled in your application, but don't want to activate -Cassandra health checks, you can disable Cassandra health checks by setting the -`quarkus.cassandra.health.enabled` property to `false` in your `application.properties`. - -== Metrics - -The Cassandra Quarkus client can provide metrics about the Cassandra session and about individual -Cassandra nodes. It supports both Micrometer and MicroProfile. - -The first step to enable metrics is to add a few additional dependencies depending on the metrics -framework you plan to use. - -=== Enabling Metrics with Micrometer - -Micrometer is the recommended metrics framework in Quarkus applications. - -To enable Micrometer metrics in your application, you need to add the following to your pom.xml. - -[source,xml] ----- - - com.datastax.oss - java-driver-metrics-micrometer - - - io.quarkus - quarkus-micrometer-registry-prometheus - ----- - -This guide uses Micrometer, so the above dependencies are already included in this guide's pom.xml. - -=== Enabling Metrics with MicroProfile Metrics - -Remove any dependency to Micrometer from your pom.xml, then add the following ones instead: - -[source,xml] ----- - - com.datastax.oss - java-driver-metrics-microprofile - - - io.quarkus - quarkus-smallrye-metrics - ----- - -=== Enabling Cassandra Metrics - -Even when metrics are enabled in your application, the Cassandra client will not report any metrics, -unless you opt-in for this feature. So your next step is to enable Cassandra metrics in your -`application.properties` file. - -[source,properties] ----- -quarkus.cassandra.metrics.enabled=true ----- - -That's it! - -The final (and optional) step is to customize which specific Cassandra metrics you would like the -Cassandra client to track. Several metrics can be tracked; if you skip this step, a default set of -useful metrics will be automatically tracked. - -TIP: For the full list of available metric names, please refer to the -link:https://docs.datastax.com/en/developer/java-driver/latest/manual/core/configuration/reference/[driver -settings reference] page; search for the `advanced.metrics` section. -Also, Cassandra driver metrics are covered in detail in the -https://docs.datastax.com/en/developer/java-driver/latest/manual/core/metrics/[driver manual]. - -If you do wish to customize which metrics to track, you should use the following properties: - -* `quarkus.cassandra.metrics.session.enabled` should contain the session-level metrics to enable -(metrics that are global to the session). -* `quarkus.cassandra.metrics.node.enabled` should contain the node-level metrics to enable (metrics -for which each node contacted by the Cassandra client gets its own metric value). - -Both properties accept a comma-separated list of valid metric names. - -For example, let's assume that you wish to enable the following three Cassandra metrics: - -* Session-level: `session.connected-nodes` and `session.bytes-sent`; -* Node-level: `node.pool.open-connections`. - -Then you should add the following settings to your `application.properties`: - -[source,properties] ----- -quarkus.cassandra.metrics.enabled=true -quarkus.cassandra.metrics.session.enabled=connected-nodes,bytes-sent -quarkus.cassandra.metrics.node.enabled=pool.open-connections ----- - -This guide's `application.properties` file has already many metrics enabled; you can use its metrics -list as a good starting point for exposing useful Cassandra metrics in your application. - -When metrics are properly enabled, metric reports for all enabled metrics are available at the -`/metrics` REST endpoint of your application. - -Running in dev mode with `mvn clean quarkus:dev`, if you point your browser to -`http://localhost:8080/metrics` you should see a list of metrics; search for metrics whose names -contain `cassandra`. - -IMPORTANT: For Cassandra metrics to show up, the Cassandra client needs to be initialized and -connected; if you are using lazy initialization (see below), you won't see any Cassandra metrics -until your application actually connects and hits the database for the first time. - -== Running in native mode - -If you installed GraalVM, you can link:https://quarkus.io/guides/building-native-image[build a -native image] using: - -[source,shell] ----- -mvn clean package -Dnative ----- - -Beware that native compilation can take a significant amount of time! Once the compilation is done, -you can run the native executable as follows: - -[source,shell] ----- -./target/cassandra-quarkus-quickstart-*-runner ----- - -You can then point your browser to `http://localhost:8080/fruits.html` and use your application. - -== Eager vs Lazy Initialization - -This extension allows you to inject either: - -- a `QuarkusCqlSession` bean; -- or the asynchronous version of this bean, that is, `CompletionStage`; -- or the reactive version of this bean, that is, `Uni`. - -The most straightforward approach is obviously to inject `QuarkusCqlSession` directly. This should -work just fine for most applications; however, the `QuarkusCqlSession` bean needs to be initialized -before it can be used, and this process is blocking. - -Fortunately, it is possible to control when the initialization should happen: the -`quarkus.cassandra.init.eager-init` parameter determines if the `QuarkusCqlSession` bean should be -initialized on its first access (lazy) or when the application is starting (eager). The default -value of this parameter is `false`, meaning the init process is lazy: the `QuarkusCqlSession` bean -will be initialized lazily on its first access – for example, when there is a first REST request -that needs to interact with the Cassandra database. - -Using lazy initialization speeds up your application startup time, and avoids startup failures if -the Cassandra database is not available. However, it could also prove dangerous if your code is -fully asynchronous, e.g. if you are using https://quarkus.io/guides/reactive-routes[reactive -routes]: indeed, the lazy initialization could accidentally happen on a thread that is not allowed -to block, such as a Vert.x event loop thread. Therefore, setting `quarkus.cassandra.init.eager-init` -to `false` and injecting `QuarkusCqlSession` should be avoided in these contexts. - -If you want to use Vert.x (or any other reactive framework) and keep the lazy initialization -behavior, you should instead inject only `CompletionStage` or -`Uni`. When injecting these beans, the initialization process will be triggered -lazily, but it will happen in the background, in a non-blocking way, leveraging the Vert.x event -loop. This way you don't risk blocking the Vert.x thread. - -Alternatively, you can set `quarkus.cassandra.init.eager-init` to true: in this case the session -bean will be initialized eagerly during application startup, on the Quarkus main thread. This would -eliminate any risk of blocking a Vert.x thread, at the cost of making your startup time (much) -longer. - -== Conclusion - -Accessing a Cassandra database from a client application is easy with Quarkus and the Cassandra -extension, which provides configuration and native support for the DataStax Java driver for Apache -Cassandra. diff --git a/_versions/2.7/guides/cdi-integration.adoc b/_versions/2.7/guides/cdi-integration.adoc deleted file mode 100644 index 338fef2856c..00000000000 --- a/_versions/2.7/guides/cdi-integration.adoc +++ /dev/null @@ -1,557 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= CDI Integration Guide - -include::./attributes.adoc[] -:numbered: -:toc: -:toclevels: 2 - -ArC, the CDI container, is bootstrapped at build time. -The downside of this approach is that CDI Portable Extensions cannot be supported. -Nevertheless, the functionality can be achieved using the Quarkus-specific extensions API. - -The container is bootstrapped in multiple phases. -From a high level perspective these phases go as follows: - -1. Initialization -2. Bean discovery -3. Registration of synthetic components -4. Validation - -In the _initialization_ phase the preparatory work is being carried out and custom contexts are registered. -_Bean discovery_ is then the process where the container analyzes all application classes, identifies beans and wires them all together based on the provided metadata. -Subsequently, the extensions can register _synthetic components_. -Attributes of these components are fully controlled by the extensions, i.e. are not derived from an existing class. -Finally, the _deployment is validated_. -For example, the container validates every injection point in the application and fails the build if there is no bean that satisfies the given required type and qualifiers. - -TIP: You can see more information about the bootstrap by enabling additional logging. Simply run the Maven build with `-X` or `--debug` and grep the lines that contain `io.quarkus.arc`. In the <>, you can use `quarkus.log.category."io.quarkus.arc.processor".level=DEBUG` and two special endpoints are also registered automatically to provide some basic debug info in the JSON format. - -Quarkus build steps can produce and consume various build items and hook into each phase. -In the following sections we will describe all the relevant build items and common scenarios. - -== Metadata Sources - -Classes and annotations are the primary source of bean-level metadata. -The initial metadata are read from the _bean archive index_, an immutable https://github.com/wildfly/jandex[Jandex index, window="_blank"] which is built from various sources during <>. -However, extensions can add, remove or transform the metadata at certain stages of the bootstrap. -Moreover, extensions can also register <>. -This is an important aspect to realize when integrating CDI components in Quarkus. - -This way, extensions can turn classes, that would be otherwise ignored, into beans and vice versa. -For example, a class that declares a `@Scheduled` method is always registered as a bean even if it is not annotated with a bean defining annotation and would be normally ignored. - -:sectnums: -:sectnumlevels: 4 - -== Use Case - My Class Is Not Recognized as a Bean - -An `UnsatisfiedResolutionException` indicates a problem during <>. -Sometimes an injection point cannot be satisfied even if there is a class on the classpath that appears to be eligible for injection. -There are several reasons why a class is not recognized and also several ways to fix it. -In the first step we should identify the _reason_. - -[[additional_bean_build_item]] -=== _Reason 1_: Class Is Not discovered - -Quarkus has a <>. -It might happen that the class is not part of the application index. -For example, classes from the _runtime module_ of a Quarkus extension are not indexed automatically. - -_Solution_: Use the `AdditionalBeanBuildItem`. -This build item can be used to specify one or more additional classes to be analyzed during the discovery. -Additional bean classes are transparently added to the application index processed by the container. - -IMPORTANT: It is not possible to conditionally enable/disable additional beans via the `@IfBuildProfile`, `@UnlessBuildProfile`, `@IfBuildProperty` and `@UnlessBuildProperty` annotations as described in <> and <>. Extensions should inspect the configuration or the current profile and only produce an `AdditionalBeanBuildItem` if really needed. - -.`AdditionalBeanBuildItem` Example -[source,java] ----- -@BuildStep -AdditionalBeanBuildItem additionalBeans() { - return new AdditionalBeanBuildItem(SmallRyeHealthReporter.class, HealthServlet.class)); <1> -} ----- -<1> `AdditionalBeanBuildItem.Builder` can be used for more complex use cases. - -Bean classes added via `AdditionalBeanBuildItem` are _removable_ by default. -If the container considers them <>, they are just ignored. -However, you can use `AdditionalBeanBuildItem.Builder.setUnremovable()` method to instruct the container to never remove bean classes registered via this build item. -See also <> and <> for more details. - -It is aso possible to set the default scope via `AdditionalBeanBuildItem.Builder#setDefaultScope()`. -The default scope is only used if there is no scope declared on the bean class. - -NOTE: If no default scope is specified the `@Dependent` pseudo-scope is used. - -=== _Reason 2_: Class Is Discovered but Has No Bean Defining Annotation - -In Quarkus, the application is represented by a single bean archive with the https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html#default_bean_discovery[bean discovery mode `annotated`, window="_blank"]. -Therefore, bean classes that don't have a https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html#bean_defining_annotations[bean defining annotation, window="_blank"] are ignored. -Bean defining annotations are declared on the class-level and include scopes, stereotypes and `@Interceptor`. - -_Solution 1_: Use the `AutoAddScopeBuildItem`. This build item can be used to add a scope to a class that meets certain conditions. - -.`AutoAddScopeBuildItem` Example -[source,java] ----- -@BuildStep -AutoAddScopeBuildItem autoAddScope() { - return AutoAddScopeBuildItem.builder().containsAnnotations(SCHEDULED_NAME, SCHEDULES_NAME) <1> - .defaultScope(BuiltinScope.SINGLETON) <2> - .build(); -} ----- -<1> Find all classes annotated with `@Scheduled`. -<2> Add `@Singleton` as default scope. Classes already annotated with a scope are skipped automatically. - -_Solution 2_: If you need to process classes annotated with a specific annotation then it's possible to extend the set of bean defining annotations via the `BeanDefiningAnnotationBuildItem`. - -.`BeanDefiningAnnotationBuildItem` Example -[source,java] ----- -@BuildStep -BeanDefiningAnnotationBuildItem additionalBeanDefiningAnnotation() { - return new BeanDefiningAnnotationBuildItem(Annotations.GRAPHQL_API); <1> -} ----- -<1> Add `org.eclipse.microprofile.graphql.GraphQLApi` to the set of bean defining annotations. - -Bean classes added via `BeanDefiningAnnotationBuildItem` are _not removable_ by default, i.e. the resulting beans must not be removed even if they are considered unused. -However, you can change the default behavior. -See also <> and <> for more details. - -It is also possible to specify the default scope. -The default scope is only used if there is no scope declared on the bean class. - -NOTE: If no default scope is specified the `@Dependent` pseudo-scope is used. - -[[unremovable_builditem]] -=== _Reason 3_: Class Was Discovered and Has a Bean Defining Annotation but Was Removed - -The container attempts to <> during the build by default. -This optimization allows for _framework-level dead code elimination_. -In few special cases, it's not possible to correctly identify an unused bean. -In particular, Quarkus is not able to detect the usage of the `CDI.current()` static method yet. -Extensions can eliminate possible false positives by producing an `UnremovableBeanBuildItem`. - -.`UnremovableBeanBuildItem` Example -[source,java] ----- -@BuildStep -UnremovableBeanBuildItem unremovableBeans() { - return UnremovableBeanBuildItem.targetWithAnnotation(STARTUP_NAME); <1> -} ----- -<1> Make all classes annotated with `@Startup` unremovable. - -== Use Case - My Annotation Is Not Recognized as a Qualifier or an Interceptor Binding - -It is likely that the annotation class is not part of the application index. -For example, classes from the _runtime module_ of a Quarkus extension are not indexed automatically. - -_Solution_: Use the `AdditionalBeanBuildItem` as described in <>. - -[[annotations_transformer_build_item]] -== Use Case - I Need To Transform Metadata - -In some cases, it's useful to be able to modify the metadata. -Quarkus provides a powerful alternative to https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html#process_annotated_type[`javax.enterprise.inject.spi.ProcessAnnotatedType`, window="_blank"]. -With an `AnnotationsTransformerBuildItem` it's possible to override the annotations that exist on bean classes. - -For example, you might want to add an interceptor binding to a specific bean class. -Here is how to do it: - -.`AnnotationsTransformerBuildItem` Example -[source,java] ----- -@BuildStep -AnnotationsTransformerBuildItem transform() { - return new AnnotationsTransformerBuildItem(new AnnotationsTransformer() { - - public boolean appliesTo(org.jboss.jandex.AnnotationTarget.Kind kind) { - return kind == org.jboss.jandex.AnnotationTarget.Kind.CLASS; <1> - } - - public void transform(TransformationContext context) { - if (context.getTarget().asClass().name().toString().equals("org.acme.Bar")) { - context.transform().add(MyInterceptorBinding.class).done(); <2> - } - } - }); -} ----- -<1> The transformer is only applied to classes. -<2> If the class name equals to `org.acme.Bar` then add `@MyInterceptorBinding`. Don't forget to invoke `Transformation#done()`. - -NOTE: Keep in mind that annotation transformers must be produced _before_ the bean discovery starts. - -Build steps can query the transformed annotations for a given annotation target via the `TransformedAnnotationsBuildItem`. - -.`TransformedAnnotationsBuildItem` Example -[source,java] ----- -@BuildStep -void queryAnnotations(TransformedAnnotationsBuildItem transformedAnnotations, BuildProducer myBuildItem) { - ClassInfo myClazz = ...; - if (transformedAnnotations.getAnnotations(myClazz).isEmpty()) { <1> - myBuildItem.produce(new MyBuildItem()); - } -} ----- -<1> `TransformedAnnotationsBuildItem.getAnnotations()` will return a possibly transformed set of annotations. - -NOTE: There are other build items specialized in transformation: <> and <>. - -[[inspect_beans]] -== Use Case - Inspect Beans, Observers and Injection Points - -=== _Solution 1_: `BeanDiscoveryFinishedBuildItem` - -Consumers of `BeanDiscoveryFinishedBuildItem` can easily inspect all class-based beans, observers and injection points registered in the application. -However, synthetic beans and observers are _not included_ because this build item is produced _before_ the synthetic components are registered. - -Additionaly, the bean resolver returned from `BeanDiscoveryFinishedBuildItem#getBeanResolver()` can be used to apply the type-safe resolution rules, e.g. to find out whether there is a bean that would satisfy certain combination of required type and qualifiers. - -.`BeanDiscoveryFinishedBuildItem` Example -[source,java] ----- -@BuildStep -void doSomethingWithNamedBeans(BeanDiscoveryFinishedBuildItem beanDiscovery, BuildProducer namedBeans) { - List namedBeans = beanDiscovery.beanStream().withName().collect(toList())); <1> - namedBeans.produce(new NamedBeansBuildItem(namedBeans)); -} ----- -<1> The resulting list will not contain `@Named` synthetic beans. - -=== _Solution 2_: `SynthesisFinishedBuildItem` - -Consumers of `SynthesisFinishedBuildItem` can easily inspect all beans, observers and injection points registered in the application. Synthetic beans and observers are included because this build item is produced _after_ the synthetic components are registered. - -Additionaly, the bean resolver returned from `SynthesisFinishedBuildItem#getBeanResolver()` can be used to apply the type-safe resolution rules, e.g. to find out whether there is a bean that would satisfy certain combination of required type and qualifiers. - -.`SynthesisFinishedBuildItem` Example -[source,java] ----- -@BuildStep -void doSomethingWithNamedBeans(SynthesisFinishedBuildItem synthesisFinished, BuildProducer namedBeans) { - List namedBeans = synthesisFinished.beanStream().withName().collect(toList())); <1> - namedBeans.produce(new NamedBeansBuildItem(namedBeans)); -} ----- -<1> The resulting list will contain `@Named` synthetic beans. - -[[synthetic_beans]] -== Use Case - The Need for Synthetic Beans - -Sometimes it is practical to be able to register a _synthetic bean_. -Bean attributes of a synthetic bean are not derived from a Java class, method or field. -Instead, all the attributes are defined by an extension. -In regular CDI, this could be achieved using the https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html#after_bean_discovery[`AfterBeanDiscovery.addBean()`, window="_blank"] methods. - -_Solution_: If you need to register a synthetic bean then use the `SyntheticBeanBuildItem`. - -.`SyntheticBeanBuildItem` Example 1 -[source,java] ----- -@BuildStep -SyntheticBeanBuildItem syntheticBean() { - return SyntheticBeanBuildItem.configure(String.class) - .qualifiers(new MyQualifierLiteral()) - .creator(mc -> mc.returnValue(mc.load("foo"))) <1> - .done(); -} ----- -<1> Generate the bytecode of the `javax.enterprise.context.spi.Contextual#create(CreationalContext)` implementation. - -The output of a bean configurator is recorded as bytecode. -Therefore, there are some limitations in how a synthetic bean instance is created at runtime. -You can: - -1. Generate the bytecode of the `Contextual#create(CreationalContext)` method directly via `ExtendedBeanConfigurator.creator(Consumer)`. -2. Pass a `io.quarkus.arc.BeanCreator` implementation class via `ExtendedBeanConfigurator#creator(Class>)`, and possibly specify some parameters via `ExtendedBeanConfigurator#param()`. -3. Produce the runtime instance through a proxy returned from a <> and set it via `ExtendedBeanConfigurator#runtimeValue(RuntimeValue)` or `ExtendedBeanConfigurator#supplier(Supplier)`. - -.`SyntheticBeanBuildItem` Example 2 -[source,java] ----- -@BuildStep -@Record(STATIC_INIT) <1> -SyntheticBeanBuildItem syntheticBean(TestRecorder recorder) { - return SyntheticBeanBuildItem.configure(Foo.class).scope(Singleton.class) - .runtimeValue(recorder.createFoo()) <2> - .done(); -} ----- -<1> By default, a synthetic bean is initialized during `STATIC_INIT`. -<2> The bean instance is supplied by a value returned from a recorder method. - -It is possible to mark a synthetic bean to be initialized during `RUNTIME_INIT`. -See the <> for more information about the difference between `STATIC_INIT` and `RUNTIME_INIT`. - -.`RUNTIME_INIT` `SyntheticBeanBuildItem` Example -[source,java] ----- -@BuildStep -@Record(RUNTIME_INIT) <1> -SyntheticBeanBuildItem syntheticBean(TestRecorder recorder) { - return SyntheticBeanBuildItem.configure(Foo.class).scope(Singleton.class) - .setRuntimeInit() <2> - .runtimeValue(recorder.createFoo()) - .done(); -} ----- -<1> The recorder must be executed in the `ExecutionTime.RUNTIME_INIT` phase. -<2> The bean instance is initialized during `RUNTIME_INIT`. - -[IMPORTANT] -==== -Synthetic beans initialized during `RUNTIME_INIT` must not be accessed during `STATIC_INIT`. `RUNTIME_INIT` build steps that access a runtime-init synthetic bean should consume the `SyntheticBeansRuntimeInitBuildItem`: - -[source,java] ----- -@BuildStep -@Record(RUNTIME_INIT) -@Consume(SyntheticBeansRuntimeInitBuildItem.class) <1> -void accessFoo(TestRecorder recorder) { - recorder.foo(); <2> -} ----- -<1> This build step must be executed after `syntheticBean()` completes. -<2> This recorder method results in an invocation upon the `Foo` bean instance and thus we need to make sure that the build step is executed after all synthetic beans are initialized. -==== - -NOTE: It is also possible to use the `BeanRegistrationPhaseBuildItem` to register a synthetic bean. However, we recommend extension authors to stick with `SyntheticBeanBuildItem` which is more idiomatic for Quarkus. - -[[synthetic_observers]] -== Use Case - Synthetic Observers - -Similar to <>, the attributes of a synthetic observer method are not derived from a Java method. Instead, all the attributes are defined by an extension. - -_Solution_: If you need to register a synthetic observer, use the `ObserverRegistrationPhaseBuildItem`. - -IMPORTANT: A build step that consumes the `ObserverRegistrationPhaseBuildItem` should always produce an `ObserverConfiguratorBuildItem` or at least inject a `BuildProducer` for this build item, otherwise it could be ignored or processed at the wrong time (e.g. after the correct CDI bootstrap phase). - -.`ObserverRegistrationPhaseBuildItem` Example -[source,java] ----- -@BuildStep -void syntheticObserver(ObserverRegistrationPhaseBuildItem observerRegistrationPhase, - BuildProducer myBuildItem, - BuildProducer observerConfigurationRegistry) { - observerConfigurationRegistry.produce(new ObserverConfiguratorBuildItem(observerRegistrationPhase.getContext() - .configure() - .beanClass(DotName.createSimple(MyBuildStep.class.getName())) - .observedType(String.class) - .notify(mc -> { - // do some gizmo bytecode generation... - }))); - myBuildItem.produce(new MyBuildItem()); -} ----- - -The output of a `ObserverConfigurator` is recorded as bytecode. -Therefore, there are some limitations in how a synthetic observer is invoked at runtime. -Currently, you must generate the bytecode of the method body directly. - -[[generated_beans]] -== Use Case - I Have a Generated Bean Class - -No problem. -You can generate the bytecode of a bean class manually and then all you need to do is to produce a `GeneratedBeanBuildItem` instead of `GeneratedClassBuildItem`. - -.`GeneratedBeanBuildItem` Example -[source,java] ----- -@BuildStep -void generatedBean(BuildProducer generatedBeans) { - ClassOutput beansClassOutput = new GeneratedBeanGizmoAdaptor(generatedBeans); <1> - ClassCreator beanClassCreator = ClassCreator.builder().classOutput(beansClassOutput) - .className("org.acme.MyBean") - .build(); - beanClassCreator.addAnnotation(Singleton.class); - beanClassCreator.close(); <2> -} ----- -<1> `io.quarkus.arc.deployment.GeneratedBeanGizmoAdaptor` makes it easy to produce ``GeneratedBeanBuildItem``s from Gizmo constructs. -<2> The resulting bean class is something like `public class @Singleton MyBean { }`. - -== Use Case - I Need to Validate the Deployment - -Sometimes extensions need to inspect the beans, observers and injection points, then perform additional validations and fail the build if something is wrong. - -_Solution_: If an extension needs to validate the deployment it should use the `ValidationPhaseBuildItem`. - -IMPORTANT: A build step that consumes the `ValidationPhaseBuildItem` should always produce a `ValidationErrorBuildItem` or at least inject a `BuildProducer` for this build item, otherwise it could be ignored or processed at the wrong time (e.g. after the correct CDI bootstrap phase). - -[source,java] ----- -@BuildStep -void validate(ValidationPhaseBuildItem validationPhase, - BuildProducer myBuildItem, - BuildProducer errors) { - if (someCondition) { - errors.produce(new ValidationErrorBuildItem(new IllegalStateException())); - myBuildItem.produce(new MyBuildItem()); - } -} ----- - -TIP: You can easily filter all registered beans via the convenient `BeanStream` returned from the `ValidationPhaseBuildItem.getContext().beans()` method. - -[[custom_context]] -== Use Case - Register a Custom CDI Context - -Sometimes extensions need to extend the set of built-in CDI contexts. - -_Solution_: If you need to register a custom context, use the `ContextRegistrationPhaseBuildItem`. - -IMPORTANT: A build step that consumes the `ContextRegistrationPhaseBuildItem` should always produce a `ContextConfiguratorBuildItem` or at least inject a `BuildProducer` for this build item, otherwise it could be ignored or processed at the wrong time (e.g. after the correct CDI bootstrap phase). - -`ContextRegistrationPhaseBuildItem` Example -[source,java] ----- -@BuildStep -ContextConfiguratorBuildItem registerContext(ContextRegistrationPhaseBuildItem phase) { - return new ContextConfiguratorBuildItem(phase.getContext().configure(TransactionScoped.class).normal().contextClass(TransactionContext.class)); -} ----- - -Additionally, each extension that registers a custom CDI context via `ContextRegistrationPhaseBuildItem` should also produce the `CustomScopeBuildItem` in order to contribute the custom scope annotation name to the set of bean defining annotations. - -`CustomScopeBuildItem` Example -[source,java] ----- -@BuildStep -CustomScopeBuildItem customScope() { - return new CustomScopeBuildItem(DotName.createSimple(TransactionScoped.class.getName())); -} ----- - -=== What if I Need to Know All the Scopes Used in the Application? - -_Solution_: You can inject the `CustomScopeAnnotationsBuildItem` in a build step and use the convenient methods such as `CustomScopeAnnotationsBuildItem.isScopeDeclaredOn()`. - -[[additional_interceptor_bindings]] -== Use Case - Additional Interceptor Bindings - -In rare cases it might be handy to programmatically register an existing annotation that is not annotated with `@javax.interceptor.InterceptorBinding` as an interceptor binding. -This is similar to what CDI achieves through `BeforeBeanDiscovery#addInterceptorBinding()`. -We are going to use `InterceptorBindingRegistrarBuildItem` to get it done. - -.`InterceptorBindingRegistrarBuildItem` Example -[source,java] ----- -@BuildStep -InterceptorBindingRegistrarBuildItem addInterceptorBindings() { - return new InterceptorBindingRegistrarBuildItem(new InterceptorBindingRegistrar() { - @Override - public List getAdditionalBindings() { - return List.of(InterceptorBinding.of(NotAnInterceptorBinding.class)); - } - }); -} ----- - -== Use Case - Additional Qualifiers - -Sometimes it might be useful to register an existing annotation that is not annotated with `@javax.inject.Qualifier` as a CDI qualifier. -This is similar to what CDI achieves through `BeforeBeanDiscovery#addQualifier()`. -We are going to use `QualifierRegistrarBuildItem` to get it done. - -.`QualifierRegistrarBuildItem` Example -[source,java] ----- -@BuildStep -QualifierRegistrarBuildItem addQualifiers() { - return new QualifierRegistrarBuildItem(new QualifierRegistrar() { - @Override - public Map> getAdditionalQualifiers() { - return Collections.singletonMap(DotName.createSimple(NotAQualifier.class.getName()), - Collections.emptySet()); - } - }); -} ----- - -[[injection_point_transformation]] -== Use Case - Injection Point Transformation - -Every now and then it is handy to be able to change the qualifiers of an injection point programmatically. -You can do just that with `InjectionPointTransformerBuildItem`. -The following sample shows how to apply transformation to injection points with type `Foo` that contain qualifier `MyQualifier`: - -.`InjectionPointTransformerBuildItem` Example -[source,java] ----- -@BuildStep -InjectionPointTransformerBuildItem transformer() { - return new InjectionPointTransformerBuildItem(new InjectionPointsTransformer() { - - public boolean appliesTo(Type requiredType) { - return requiredType.name().equals(DotName.createSimple(Foo.class.getName())); - } - - public void transform(TransformationContext context) { - if (context.getQualifiers().stream() - .anyMatch(a -> a.name().equals(DotName.createSimple(MyQualifier.class.getName())))) { - context.transform() - .removeAll() - .add(DotName.createSimple(MyOtherQualifier.class.getName())) - .done(); - } - } - }); -} ----- - -NOTE: In theory, you can use <> to achieve the same goal. However, there are few differences that make `InjectionPointsTransformer` more suitable for this particular task: (1) annotation transformers are applied to all classes during bean discovery, whereas `InjectionPointsTransformer` is only applied to discovered injection points after bean discovery; (2) with `InjectionPointsTransformer` you don't need to handle various types of injection points (field, parameters of initializer methods, etc.). - -== Use Case - Resource Annotations and Injection - -The `ResourceAnnotationBuildItem` can be used to specify resource annotations that make it possible to resolve non-CDI injection points, such as Jakarta EE resources. -An integrator must also provide a corresponding `io.quarkus.arc.ResourceReferenceProvider` service provider implementation. - -.`ResourceAnnotationBuildItem` Example -[source,java] ----- -@BuildStep -void setupResourceInjection(BuildProducer resourceAnnotations, BuildProducer resources) { - resources.produce(new GeneratedResourceBuildItem("META-INF/services/io.quarkus.arc.ResourceReferenceProvider", - MyResourceReferenceProvider.class.getName().getBytes())); - resourceAnnotations.produce(new ResourceAnnotationBuildItem(DotName.createSimple(MyAnnotation.class.getName()))); -} ----- - -[[build_metadata]] -== Available Build Time Metadata - -Any of the above extensions that operates with `BuildExtension.BuildContext` can leverage certain build time metadata that are generated during build. -The built-in keys located in `io.quarkus.arc.processor.BuildExtension.Key` are: - -ANNOTATION_STORE:: Contains an `AnnotationStore` that keeps information about all `AnnotationTarget` annotations after application of annotation transformers -INJECTION_POINTS:: `Collection` containing all injection points -BEANS:: `Collection` containing all beans -REMOVED_BEANS:: `Collection` containing all the removed beans; see <> for more information -OBSERVERS:: `Collection` containing all observers -SCOPES:: `Collection` containing all scopes, including custom ones -QUALIFIERS:: `Map` containing all qualifiers -INTERCEPTOR_BINDINGS:: `Map` containing all interceptor bindings -STEREOTYPES:: `Map` containing all stereotypes - -To get hold of these, simply query the extension context object for given key. -Note that these metadata are made available as build proceeds which means that extensions can only leverage metadata that were built before the extensions are invoked. -If your extension attempts to retrieve metadata that wasn't yet produced, `null` will be returned. -Here is a summary of which extensions can access which metadata: - -AnnotationsTransformer:: Shouldn't rely on any metadata as it could be used at any time in any phase of the bootstrap -ContextRegistrar:: Has access to `ANNOTATION_STORE`, `QUALIFIERS`, `INTERCEPTOR_BINDINGS`, `STEREOTYPES` -InjectionPointsTransformer:: Has access to `ANNOTATION_STORE`, `QUALIFIERS`, `INTERCEPTOR_BINDINGS`, `STEREOTYPES` -ObserverTransformer:: Has access to `ANNOTATION_STORE`, `QUALIFIERS`, `INTERCEPTOR_BINDINGS`, `STEREOTYPES` -BeanRegistrar:: Has access to `ANNOTATION_STORE`, `QUALIFIERS`, `INTERCEPTOR_BINDINGS`, `STEREOTYPES`, `BEANS` (class-based beans only), `OBSERVERS` (class-based observers only), `INJECTION_POINTS` -ObserverRegistrar:: Has access to `ANNOTATION_STORE`, `QUALIFIERS`, `INTERCEPTOR_BINDINGS`, `STEREOTYPES`, `BEANS`, `OBSERVERS` (class-based observers only), `INJECTION_POINTS` -BeanDeploymentValidator:: Has access to all build metadata diff --git a/_versions/2.7/guides/cdi-reference.adoc b/_versions/2.7/guides/cdi-reference.adoc deleted file mode 100644 index f7c94becfae..00000000000 --- a/_versions/2.7/guides/cdi-reference.adoc +++ /dev/null @@ -1,1030 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Contexts and Dependency Injection - -include::./attributes.adoc[] -:numbered: -:sectnums: -:sectnumlevels: 4 -:toc: - -Quarkus DI solution (also called ArC) is based on the https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html[Contexts and Dependency Injection for Java 2.0, window="_blank"] specification. -However, it is not a full CDI implementation verified by the TCK. -Only a subset of the CDI features is implemented - see also <> and <>. - -TIP: If you're new to CDI then we recommend you to read the xref:cdi.adoc[Introduction to CDI] first. - -NOTE: Most of the existing CDI code should work just fine but there are some small differences which follow from the Quarkus architecture and goals. - -[[bean_discovery]] -== Bean Discovery - -Bean discovery in CDI is a complex process which involves legacy deployment structures and accessibility requirements of the underlying module architecture. -However, Quarkus is using a *simplified bean discovery*. -There is only single bean archive with the https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html#default_bean_discovery[bean discovery mode `annotated`, window="_blank"] and no visibility boundaries. - -The bean archive is synthesized from: - -* the application classes, -* dependencies that contain a `beans.xml` descriptor (content is ignored), -* dependencies that contain a Jandex index - `META-INF/jandex.idx`, -* dependencies referenced by `quarkus.index-dependency` in `application.properties`, -* and Quarkus integration code. - -Bean classes that don't have a https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html#bean_defining_annotations[bean defining annotation, window="_blank"] are not discovered. -This behavior is defined by CDI. -But producer methods and fields and observer methods are discovered even if the declaring class is not annotated with a bean defining annotation (this behavior is different to what is defined in CDI). -In fact, the declaring bean classes are considered annotated with `@Dependent`. - -NOTE: Quarkus extensions may declare additional discovery rules. For example, `@Scheduled` business methods are registered even if the declaring class is not annotated with a bean defining annotation. - -=== How to Generate a Jandex Index - -A dependency with a Jandex index is automatically scanned for beans. -To generate the index just add the following to your `pom.xml`: - -[source,xml,subs="attributes+"] ----- - - - - org.jboss.jandex - jandex-maven-plugin - {jandex-maven-plugin-version} - - - make-index - - jandex - - - - - - ----- - -If you are are using gradle, you can apply the following plugin to your `build.gradle`: - -[source,groovy] ----- -plugins { - id 'org.kordamp.gradle.jandex' version '0.11.0' -} ----- - -If you can't modify the dependency, you can still index it by adding `quarkus.index-dependency` entries to your `application.properties`: - -[source,properties] ----- -quarkus.index-dependency..group-id= -quarkus.index-dependency..artifact-id= -quarkus.index-dependency..classifier=(this one is optional) ----- - -For example, the following entries ensure that the `org.acme:acme-api` dependency is indexed: - -.Example application.properties -[source,properties] ----- -quarkus.index-dependency.acme.group-id=org.acme <1> -quarkus.index-dependency.acme.artifact-id=acme-api <2> ----- -<1> Value is a group id for a dependency identified by name `acme`. -<2> Value is an artifact id for a dependency identified by name `acme`. - -=== How To Exclude Types and Dependencies from Discovery - -It may happen that some beans from third-party libraries do not work correctly in Quarkus. -A typical example is a bean injecting a portable extension. -In such case, it's possible to exclude types and dependencies from the bean discovery. -The `quarkus.arc.exclude-types` property accepts a list of string values that are used to match classes that should be excluded. - -.Value Examples -|=== -|Value|Description -|`org.acme.Foo`| Match the fully qualified name of the class -|`org.acme.*`| Match classes with package `org.acme` -|`org.acme.**`| Match classes where the package starts with `org.acme` -|`Bar`| Match the simple name of the class -|=== - -.Example application.properties -[source,properties] ----- -quarkus.arc.exclude-types=org.acme.Foo,org.acme.*,Bar <1><2><3> ----- -<1> Exclude the type `org.acme.Foo`. -<2> Exclude all types from the `org.acme` package. -<3> Exclude all types whose simple name is `Bar` - -It is also possible to exclude a dependency artifact that would be otherwise scanned for beans. -For example, because it contains a `beans.xml` descriptor. - -.Example application.properties -[source,properties] ----- -quarkus.arc.exclude-dependency.acme.group-id=org.acme <1> -quarkus.arc.exclude-dependency.acme.artifact-id=acme-services <2> ----- -<1> Value is a group id for a dependency identified by name `acme`. -<2> Value is an artifact id for a dependency identified by name `acme`. - -== Native Executables and Private Members - -Quarkus is using GraalVM to build a native executable. -One of the limitations of GraalVM is the usage of https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/Limitations.md#reflection[Reflection, window="_blank"]. -Reflective operations are supported but all relevant members must be registered for reflection explicitly. -Those registrations result in a bigger native executable. - -And if Quarkus DI needs to access a private member it *has to use reflection*. -That's why Quarkus users are encouraged __not to use private members__ in their beans. -This involves injection fields, constructors and initializers, observer methods, producer methods and fields, disposers and interceptor methods. - -How to avoid using private members? -You can use package-private modifiers: - -[source,java] ----- -@ApplicationScoped -public class CounterBean { - - @Inject - CounterService counterService; <1> - - void onMessage(@Observes Event msg) { <2> - } -} ----- -<1> A package-private injection field. -<2> A package-private observer method. - -Or constructor injection: - -[source,java] ----- -@ApplicationScoped -public class CounterBean { - - private CounterService service; - - CounterBean(CounterService service) { <1> - this.service = service; - } -} ----- -<1> A package-private constructor injection. `@Inject` is optional in this particular case. - -[[supported_features]] -== Supported Features - -* Programming model -** Managed beans implemented by a Java class -*** `@PostConstruct` and `@PreDestroy` lifecycle callbacks -** Producer methods and fields, disposers -** Qualifiers -** Alternatives -** Stereotypes -* Dependency injection and lookup -** Field, constructor and initializer/setter injection -** Type-safe resolution -** Programmatic lookup via `javax.enterprise.inject.Instance` -** Client proxies -** Injection point metadata -* Scopes and contexts -** `@Dependent`, `@ApplicationScoped`, `@Singleton`, `@RequestScoped` and `@SessionScoped` -** Custom scopes and contexts -* Interceptors -** Business method interceptors: `@AroundInvoke` -** Interceptors for lifecycle event callbacks: `@PostConstruct`, `@PreDestroy`, `@AroundConstruct` -* Decorators -* Events and observer methods, including asynchronous events and transactional observer methods - -[[limitations]] -== Limitations - -* `@ConversationScoped` is not supported -* Portable Extensions are not supported -* `BeanManager` - only the following methods are implemented: `getBeans()`, `createCreationalContext()`, `getReference()`, `getInjectableReference()` , `resolve()`, `getContext()`, `fireEvent()`, `getEvent()` and `createInstance()` -* Specialization is not supported -* `beans.xml` descriptor content is ignored -* Passivation and passivating scopes are not supported -* Interceptor methods on superclasses are not implemented yet -* `@Interceptors` is not supported - -[[nonstandard_features]] -== Non-standard Features - -=== Eager Instantiation of Beans - -[[lazy_by_default]] -==== Lazy By Default - -By default, CDI beans are created lazily, when needed. -What exactly "needed" means depends on the scope of a bean. - -* A *normal scoped bean* (`@ApplicationScoped`, `@RequestScoped`, etc.) is needed when a method is invoked upon an injected instance (contextual reference per the specification). -+ -In other words, injecting a normal scoped bean will not suffice because a _client proxy_ is injected instead of a contextual instance of the bean. - -* A *bean with a pseudo-scope* (`@Dependent` and `@Singleton` ) is created when injected. - -.Lazy Instantiation Example -[source,java] ----- -@Singleton // => pseudo-scope -class AmazingService { - String ping() { - return "amazing"; - } -} - -@ApplicationScoped // => normal scope -class CoolService { - String ping() { - return "cool"; - } -} - -@Path("/ping") -public class PingResource { - - @Inject - AmazingService s1; <1> - - @Inject - CoolService s2; <2> - - @GET - public String ping() { - return s1.ping() + s2.ping(); <3> - } -} ----- -<1> Injection triggers the instantiation of `AmazingService`. -<2> Injection itself does not result in the instantiation of `CoolService`. A client proxy is injected. -<3> The first invocation upon the injected proxy triggers the instantiation of `CoolService`. - -[[startup_event]] -==== Startup Event - -However, if you really need to instantiate a bean eagerly you can: - -* Declare an observer of the `StartupEvent` - the scope of the bean does not matter in this case: -+ -[source,java] ----- -@ApplicationScoped -class CoolService { - void startup(@Observes StartupEvent event) { <1> - } -} ----- -<1> A `CoolService` is created during startup to service the observer method invocation. - -* Use the bean in an observer of the `StartupEvent` - normal scoped beans must be used as described in <>: -+ -[source,java] ----- -@Dependent -class MyBeanStarter { - - void startup(@Observes StartupEvent event, AmazingService amazing, CoolService cool) { <1> - cool.toString(); <2> - } -} ----- -<1> The `AmazingService` is created during injection. -<2> The `CoolService` is a normal scoped bean so we have to invoke a method upon the injected proxy to force the instantiation. - -* Annotate the bean with `@io.quarkus.runtime.Startup` as described in xref:lifecycle.adoc#startup_annotation[Startup annotation]: -+ -[source,java] ----- -@Startup // <1> -@ApplicationScoped -public class EagerAppBean { - - private final String name; - - EagerAppBean(NameGenerator generator) { // <2> - this.name = generator.createName(); - } -} ----- -<1> For each bean annotated with `@Startup` a synthetic observer of `StartupEvent` is generated. The default priority is used. -<2> The bean constructor is called when the application starts and the resulting contextual instance is stored in the application context. - -NOTE: Quarkus users are encouraged to always prefer the `@Observes StartupEvent` to `@Initialized(ApplicationScoped.class)` as explained in the xref:lifecycle.adoc[Application Initialization and Termination] guide. - -=== Request Context Lifecycle - -The request context is also active: - -* during notification of a synchronous observer method. - -The request context is destroyed: - -* after the observer notification completes for an event, if it was not already active when the notification started. - -NOTE: An event with qualifier `@Initialized(RequestScoped.class)` is fired when the request context is initialized for an observer notification. Moreover, the events with qualifiers `@BeforeDestroyed(RequestScoped.class)` and `@Destroyed(RequestScoped.class)` are fired when the request context is destroyed. - -=== Qualified Injected Fields - -In CDI, if you declare a field injection point you need to use `@Inject` and optionally a set of qualifiers. - -[source,java] ----- - @Inject - @ConfigProperty(name = "cool") - String coolProperty; ----- - -In Quarkus, you can skip the `@Inject` annotation completely if the injected field declares at least one qualifier. - -[source,java] ----- - @ConfigProperty(name = "cool") - String coolProperty; ----- - -NOTE: With the notable exception of one special case discussed below, `@Inject` is still required for constructor and method injection. - -=== Simplified Constructor Injection - -In CDI, a normal scoped bean must always declare a no-args constructor (this constructor is normally generated by the compiler unless you declare any other constructor). -However, this requirement complicates constructor injection - you need to provide a dummy no-args constructor to make things work in CDI. - -[source,java] ----- -@ApplicationScoped -public class MyCoolService { - - private SimpleProcessor processor; - - MyCoolService() { // dummy constructor needed - } - - @Inject // constructor injection - MyCoolService(SimpleProcessor processor) { - this.processor = processor; - } -} ----- - -There is no need to declare dummy constructors for normal scoped bean in Quarkus - they are generated automatically. -Also if there's only one constructor there is no need for `@Inject`. - -[source,java] ----- -@ApplicationScoped -public class MyCoolService { - - private SimpleProcessor processor; - - MyCoolService(SimpleProcessor processor) { - this.processor = processor; - } -} ----- - -NOTE: We don't generate a no-args constructor automatically if a bean class extends a class that does not declare a no-args constructor. - -[[remove_unused_beans]] -=== Removing Unused Beans - -The container attempts to remove all unused beans, interceptors and decorators during build by default. -This optimization helps to minimize the amount of generated classes, thus conserving memory. -However, Quarkus can't detect the programmatic lookup performed via the `CDI.current()` static method. -Therefore, it is possible that a removal results in a false positive error, i.e. a bean is removed although it's actually used. -In such cases, you'll notice a big warning in the log. -Users and extension authors have several options <>. - -The optimization can be disabled by setting `quarkus.arc.remove-unused-beans` to `none` or `false`. -Quarkus also provides a middle ground where application beans are never removed whether or not they are unused, while the optimization proceeds normally for non application classes. -To use this mode, set `quarkus.arc.remove-unused-beans` to `fwk` or `framework`. - -==== What's Removed? - -Quarkus first identifies so-called _unremovable_ beans that form the roots in the dependency tree. -A good example is a JAX-RS resource class or a bean which declares a `@Scheduled` method. - -An _unremovable_ bean: - -* is excluded from removal by an extension, or -* has a name designated via `@Named`, or -* declares an observer method. - -An _unused_ bean: - -* is not _unremovable_, and -* is not eligible for injection to any injection point in the dependency tree, and -* does not declare any producer which is eligible for injection to any injection point in the dependency tree, and -* is not eligible for injection into any `javax.enterprise.inject.Instance` or `javax.inject.Provider` injection point. - -Unused interceptors and decorators are not associated with any bean. - -[TIP] -==== -When using the dev mode (running `./mvnw clean compile quarkus:dev`), you can see more information about which beans are being removed: - -1. In the console - just enable the DEBUG level in your `application.properties`, i.e. `quarkus.log.category."io.quarkus.arc.processor".level=DEBUG` -2. In the relevant Dev UI page -==== - -[[eliminate_false_positives]] -==== How To Eliminate False Positives - -Users can instruct the container to not remove any of their specific beans (even if they satisfy all the rules specified above) by annotating them with `@io.quarkus.arc.Unremovable`. -This annotation can be declared on a class, a producer method or field. - -Since this is not always possible, there is an option to achieve the same via `application.properties`. -The `quarkus.arc.unremovable-types` property accepts a list of string values that are used to match beans based on their name or package. - -.Value Examples -|=== -|Value|Description -|`org.acme.Foo`| Match the fully qualified name of the bean class -|`org.acme.*`| Match beans where the package of the bean class is `org.acme` -|`org.acme.**`| Match beans where the package of the bean class starts with `org.acme` -|`Bar`| Match the simple name of the bean class -|=== - -.Example application.properties -[source,properties] ----- -quarkus.arc.unremovable-types=org.acme.Foo,org.acme.*,Bar ----- - -Furthermore, extensions can eliminate false positives by producing an `UnremovableBeanBuildItem`. - -[[default_beans]] -=== Default Beans - -Quarkus adds a capability that CDI currently does not support which is to conditionally declare a bean if no other bean with equal types and qualifiers was declared by any available means (bean class, producer, synthetic bean, ...) -This is done using the `@io.quarkus.arc.DefaultBean` annotation and is best explained with an example. - -Say there is a Quarkus extension that among other things declares a few CDI beans like the following code does: - -[source,java] ----- -@Dependent -public class TracerConfiguration { - - @Produces - public Tracer tracer(Reporter reporter, Configuration configuration) { - return new Tracer(reporter, configuration); - } - - @Produces - @DefaultBean - public Configuration configuration() { - // create a Configuration - } - - @Produces - @DefaultBean - public Reporter reporter(){ - // create a Reporter - } -} ----- - -The idea is that the extension auto-configures things for the user, eliminating a lot of boilerplate - we can just `@Inject` a `Tracer` wherever it is needed. -Now imagine that in our application we would like to utilize the configured `Tracer`, but we need to customize it a little, for example by providing a custom `Reporter`. -The only thing that would be needed in our application would be something like the following: - - -[source,java] ----- -@Dependent -public class CustomTracerConfiguration { - - @Produces - public Reporter reporter(){ - // create a custom Reporter - } -} ----- - -`@DefaultBean` allows extensions (or any other code for that matter) to provide defaults while backing off if beans of that type are supplied in any -way Quarkus supports. - -[[enable_build_profile]] -=== Enabling Beans for Quarkus Build Profile - -Quarkus adds a capability that CDI currently does not support which is to conditionally enable a bean when a Quarkus build time profile is enabled, -via the `@io.quarkus.arc.profile.IfBuildProfile` and `@io.quarkus.arc.profile.UnlessBuildProfile` annotations. -When used in conjunction with `@io.quarkus.arc.DefaultBean`, these annotations allow for the creation of different bean configurations for different build profiles. - -Imagine for instance that an application contains a bean named `Tracer`, which needs to be do nothing when in tests or dev-mode, but works in its normal capacity for the production artifact. -An elegant way to create such beans is the following: - -[source,java] ----- -@Dependent -public class TracerConfiguration { - - @Produces - @IfBuildProfile("prod") - public Tracer realTracer(Reporter reporter, Configuration configuration) { - return new RealTracer(reporter, configuration); - } - - @Produces - @DefaultBean - public Tracer noopTracer() { - return new NoopTracer(); - } -} ----- - -If instead, it is required that the `Tracer` bean also works in dev-mode and only default to doing nothing for tests, then `@UnlessBuildProfile` would be ideal. The code would look like: - -[source,java] ----- -@Dependent -public class TracerConfiguration { - - @Produces - @UnlessBuildProfile("test") // this will be enabled for both prod and dev build time profiles - public Tracer realTracer(Reporter reporter, Configuration configuration) { - return new RealTracer(reporter, configuration); - } - - @Produces - @DefaultBean - public Tracer noopTracer() { - return new NoopTracer(); - } -} ----- - -NOTE: The runtime profile has absolutely no effect on the bean resolution using `@IfBuildProfile` and `@UnlessBuildProfile`. - -[[enable_build_properties]] -=== Enabling Beans for Quarkus Build Properties - -Quarkus adds a capability that CDI currently does not support which is to conditionally enable a bean when a Quarkus build time property has/has not a specific value, -via the `@io.quarkus.arc.properties.IfBuildProperty` and `@io.quarkus.arc.properties.UnlessBuildProperty` annotations. -When used in conjunction with `@io.quarkus.arc.DefaultBean`, this annotation allow for the creation of different bean configurations for different build properties. - -The scenario we mentioned above with `Tracer` could also be implemented in the following way: - -[source,java] ----- -@Dependent -public class TracerConfiguration { - - @Produces - @IfBuildProperty(name = "some.tracer.enabled", stringValue = "true") - public Tracer realTracer(Reporter reporter, Configuration configuration) { - return new RealTracer(reporter, configuration); - } - - @Produces - @DefaultBean - public Tracer noopTracer() { - return new NoopTracer(); - } -} ----- - -TIP: `@IfBuildProperty` and `@UnlessBuildProperty` are repeatable annotations, i.e. a bean will only be enabled if **all** of the conditions defined by these annotations are satisfied. - -If instead, it is required that the `RealTracer` bean is only used if the `some.tracer.enabled` property is not `false`, then `@UnlessBuildProperty` would be ideal. The code would look like: - -[source,java] ----- -@Dependent -public class TracerConfiguration { - - @Produces - @UnlessBuildProperty(name = "some.tracer.enabled", stringValue = "false") - public Tracer realTracer(Reporter reporter, Configuration configuration) { - return new RealTracer(reporter, configuration); - } - - @Produces - @DefaultBean - public Tracer noopTracer() { - return new NoopTracer(); - } -} ----- - -NOTE: Properties set at runtime have absolutely no effect on the bean resolution using `@IfBuildProperty`. - -=== Declaring Selected Alternatives - -In CDI, an alternative bean may be selected either globally for an application by means of `@Priority`, or for a bean archive using a `beans.xml` descriptor. -Quarkus has a simplified bean discovery and the content of `beans.xml` is ignored. - -The disadvantage of `@javax.annotation.Priority` is that it has `@Target({ TYPE, PARAMETER })` and so it cannot be used for producer methods and fields. -This problem should be fixed in Common Annotations 2.1. -Users are encouraged to use `@io.quarkus.arc.Priority` instead, until Quarkus upgrades to this version of `jakarta.annotation-api`. - -However, it is also possible to select alternatives for an application using the unified configuration. -The `quarkus.arc.selected-alternatives` property accepts a list of string values that are used to match alternative beans. -If any value matches then the priority of `Integer#MAX_VALUE` is used for the relevant bean. -The priority declared via `@Priority` or `@AlternativePriority` is overridden. - -.Value Examples -|=== -|Value|Description -|`org.acme.Foo`| Match the fully qualified name of the bean class or the bean class of the bean that declares the producer -|`org.acme.*`| Match beans where the package of the bean class is `org.acme` -|`org.acme.**`| Match beans where the package of the bean class starts with `org.acme` -|`Bar`| Match the simple name of the bean class or the bean class of the bean that declares the producer -|=== - -.Example application.properties -[source,properties] ----- -quarkus.arc.selected-alternatives=org.acme.Foo,org.acme.*,Bar ----- - -=== Simplified Producer Method Declaration - -In CDI, a producer method must be always annotated with `@Produces`. - -[source,java] ----- -class Producers { - - @Inject - @ConfigProperty(name = "cool") - String coolProperty; - - @Produces - @ApplicationScoped - MyService produceService() { - return new MyService(coolProperty); - } -} ----- - -In Quarkus, you can skip the `@Produces` annotation completely if the producer method is annotated with a scope annotation, a stereotype or a qualifier. - -[source,java] ----- -class Producers { - - @ConfigProperty(name = "cool") - String coolProperty; - - @ApplicationScoped - MyService produceService() { - return new MyService(coolProperty); - } -} ----- - -=== Interception of Static Methods - -The Interceptors specification is clear that _around-invoke_ methods must not be declared static. -However, this restriction was driven mostly by technical limitations. -And since Quarkus is a build-time oriented stack that allows for additional class transformations, those limitations don't apply anymore. -It's possible to annotate a non-private static method with an interceptor binding: - -[source,java] ----- -class Services { - - @Logged <1> - static BigDecimal computePrice(long amount) { <2> - BigDecimal price; - // Perform computations... - return price; - } -} ----- -<1> `Logged` is an interceptor binding. -<2> Each method invocation is intercepted if there is an interceptor associated with `Logged`. - -==== Limitations - -* Only *method-level bindings* are considered for backward compatibility reasons (otherwise static methods of bean classes that declare class-level bindings would be suddenly intercepted) -* Private static methods are never intercepted -* `InvocationContext#getTarget()` returns `null` for obvious reasons; therefore not all existing interceptors may behave correctly when intercepting static methods -+ -NOTE: Interceptors can use `InvocationContext.getMethod()` to detect static methods and adjust the behavior accordingly. - -=== Ability to handle 'final' classes and methods - -In normal CDI, classes that are marked as `final` and / or have `final` methods are not eligible for proxy creation, -which in turn means that interceptors and normal scoped beans don't work properly. -This situation is very common when trying to use CDI with alternative JVM languages like Kotlin where classes and methods are `final` by default. - -Quarkus however, can overcome these limitations when `quarkus.arc.transform-unproxyable-classes` is set to `true` (which is the default value). - -=== Container-managed Concurrency - -There is no standard concurrency control mechanism for CDI beans. -Nevertheless, a bean instance can be shared and accessed concurrently from multiple threads. -In that case it should be thread-safe. -You can use standard Java constructs (`volatile`, `synchronized`, `ReadWriteLock`, etc.) or let the container control the concurrent access. -Quarkus provides `@io.quarkus.arc.Lock` and a built-in interceptor for this interceptor binding. -Each interceptor instance associated with a contextual instance of an intercepted bean holds a separate `ReadWriteLock` with non-fair ordering policy. - -TIP: `io.quarkus.arc.Lock` is a regular interceptor binding and as such can be used for any bean with any scope. However, it is especially useful for "shared" scopes, e.g. `@Singleton` and `@ApplicationScoped`. - -.Container-managed Concurrency Example -[source,java] ----- -import io.quarkus.arc.Lock; - -@Lock <1> -@ApplicationScoped -class SharedService { - - void addAmount(BigDecimal amount) { - // ...changes some internal state of the bean - } - - @Lock(value = Lock.Type.READ, time = 1, unit = TimeUnit.SECONDS) <2> <3> - BigDecimal getAmount() { - // ...it is safe to read the value concurrently - } -} ----- -<1> `@Lock` (which maps to `@Lock(Lock.Type.WRITE)`) declared on the class instructs the container to lock the bean instance for any invocation of any business method, i.e. the client has "exclusive access" and no concurrent invocations will be allowed. -<2> `@Lock(Lock.Type.READ)` overrides the value specified at class level. It means that any number of clients can invoke the method concurrently, unless the bean instance is locked by `@Lock(Lock.Type.WRITE)`. -<3> You can also specify the "wait time". If it's not possible to acquire the lock in the given time a `LockException` is thrown. - -=== Repeatable interceptor bindings - -Quarkus has limited support for `@Repeatable` interceptor binding annotations. - -When binding an interceptor to a component, you can declare multiple `@Repeatable` annotations on methods. -Repeatable interceptor bindings declared on classes and stereotypes are not supported, because there are some open questions around interactions with the Interceptors specification. -This might be added in the future. - -As an example, suppose we have an interceptor that clears a cache. -The corresponding interceptor binding would be called `@CacheInvalidateAll` and would be declared as `@Repeatable`. -If we wanted to clear two caches at the same time, we would add `@CacheInvalidateAll` twice: - -[source,java] ----- -@ApplicationScoped -class CachingService { - @CacheInvalidateAll(cacheName = "foo") - @CacheInvalidateAll(cacheName = "bar") - void heavyComputation() { - // ... - // some computation that updates a lot of data - // and requires 2 caches to be invalidated - // ... - } -} ----- - -This is how interceptors are used. -What about creating an interceptor? - -When declaring interceptor bindings of an interceptor, you can add multiple `@Repeatable` annotations to the interceptor class as usual. -This is useless when the annotation members are `@Nonbinding`, as would be the case for the `@Cached` annotation, but is important otherwise. - -For example, suppose we have an interceptor that can automatically log method invocations to certain targets. -The interceptor binding annotation `@Logged` would have a member called `target`, which specifies where to store the log. -Our implementation could be restricted to console logging and file logging: - -[source,java] ----- -@Interceptor -@Logged(target = "console") -@Logged(target = "file") -class NaiveLoggingInterceptor { - // ... -} ----- - -Other interceptors could be provided to log method invocations to different targets. - -=== Caching the Result of Programmatic Lookup - -In certain situations, it is practical to obtain a bean instance programmatically via an injected `javax.enterprise.inject.Instance` and `Instance.get()`. -However, according to the specification the `get()` method must identify the matching bean and obtain a contextual reference. -As a consequence, a new instance of a `@Dependent` bean is returned from each invocation of `get()`. -Moreover, this instance is a dependent object of the injected `Instance`. -This behavior is well-defined but it may lead to unexpected errors and memory leaks. -Therefore, Quarkus comes with the `io.quarkus.arc.WithCaching` annotation. -An injected `Instance` annotated with this annotation will cache the result of the `Instance#get()` operation. -The result is computed on the first call and the same value is returned for all subsequent calls, even for `@Dependent` beans. - -[source,java] ----- -class Producer { - - AtomicLong nextLong = new AtomicLong(); - AtomicInteger nextInt = new AtomicInteger(); - - @Dependent - @Produces - Integer produceInt() { - return nextInt.incrementAndGet(); - } - - @Dependent - @Produces - Long produceLong() { - return nextLong.incrementAndGet(); - } -} - -class Consumer { - - @Inject - Instance longInstance; - - @Inject - @WithCaching - Instance intInstance; - - // this method should always return true - // Producer#produceInt() is only called once - boolean pingInt() { - return intInstance.get().equals(intInstance.get()); - } - - // this method should always return false - // Producer#produceLong() is called twice per each pingLong() invocation - boolean pingLong() { - return longInstance.get().equals(longInstance.get()); - } -} ----- - -TIP: It is also possible to clear the cached value via `io.quarkus.arc.InjectableInstance.clearCache()`. In this case, you'll need to inject the Quarkus-specific `io.quarkus.arc.InjectableInstance` instead of `javax.enterprise.inject.Instance`. - -=== Declaratively Choose Beans That Can Be Obtained by Programmatic Lookup - -It is sometimes useful to narrow down the set of beans that can be obtained by programmatic lookup via `javax.enterprise.inject.Instance`. -Typically, a user needs to choose the appropriate implementation of an interface based on a runtime configuration property. - -Imagine that we have two beans implementing the interface `org.acme.Service`. -You can't inject the `org.acme.Service` directly unless your implementations declare a CDI qualifier. -However, you can inject the `Instance` instead, then iterate over all implementations and choose the correct one manually. -Alternatively, you can use the `@LookupIfProperty` and `@LookupUnlessProperty` annotations. -`@LookupIfProperty` indicates that a bean should only be obtained if a runtime configuration property matches the provided value. -`@LookupUnlessProperty`, on the other hand, indicates that a bean should only be obtained if a runtime configuration property does not match the provided value. - -.`@LookupIfProperty` Example -[source,java] ----- - interface Service { - String name(); - } - - @LookupIfProperty(name = "service.foo.enabled", stringValue = "true") - @ApplicationScoped - class ServiceFoo implements Service { - - public String name() { - return "foo"; - } - } - - @ApplicationScoped - class ServiceBar implements Service { - - public String name() { - return "bar"; - } - } - - @ApplicationScoped - class Client { - - @Inject - Instance service; - - void printServiceName() { - // This will print "bar" if the property "service.foo.enabled" is NOT set to "true" - // If "service.foo.enabled" is set to "true" then service.get() would result in an AmbiguousResolutionException - System.out.println(service.get().name()); - } - } ----- - -=== Injecting Multiple Bean Instances Intuitively - -In CDI, it's possible to inject multiple bean instances (aka contextual references) via the `javax.enterprise.inject.Instance` which implements `java.lang.Iterable`. -However, it's not exactly intuitive. -Therefore, a new way was introduced in Quarkus - you can inject a `java.util.List` annotated with the `io.quarkus.arc.All` qualifier. -The type of elements in the list is used as the required type when performing the lookup. - -[source,java] ----- -@ApplicationScoped -public class Processor { - - @Inject - @All - List services; <1> <2> -} ----- -<1> The injected instance is an _immutable list_ of the contextual references of the _disambiguated_ beans. -<2> For this injection point the required type is `Service` and no additional qualifiers are declared. - -TIP: By default, the list of beans is sorted by priority as defined by `io.quarkus.arc.InjectableBean#getPriority()`. Higher priority goes first. In general, the `@javax.annotation.Priority` and `@io.quarkus.arc.Priority` annotations can be used to assign the priority to a class bean, producer method or producer field. - -If an injection point declares no other qualifier than `@All` then `@Any` is used, i.e. the behavior is equivalent to `@Inject @Any Instance`. - -You can also inject a list of bean instances wrapped in `io.quarkus.arc.InstanceHandle`. -This can be useful if you need to inspect the related bean metadata. - -[source,java] ----- -@ApplicationScoped -public class Processor { - - @Inject - @All - List> services; - - public void doSomething() { - for (InstanceHandle handle : services) { - if (handle.getBean().getScope().equals(Dependent.class)) { - handle.get().process(); - break; - } - } - } -} ----- - -=== Ignoring Class-Level Interceptor Bindings for Methods and Constructors - -If a managed bean declares interceptor binding annotations on the class level, the corresponding `@AroundInvoke` interceptors will apply to all business methods. -Similarly, the corresponding `@AroundConstruct` interceptors will apply to the bean constructor. - -For example, suppose we have a logging interceptor with the `@Logged` binding annotation and a tracing interceptor with the `@Traced` binding annotation: - -[source, java] ----- -@ApplicationScoped -@Logged -public class MyService { - public void doSomething() { - ... - } - - @Traced - public void doSomethingElse() { - ... - } -} ----- - -In this example, both `doSomething` and `doSomethingElse` will be intercepted by the hypothetical logging interceptor. -Additionally, the `doSomethingElse` method will be intercepted by the hypothetical tracing interceptor. - -Now, if that `@Traced` interceptor also performed all the necessary logging, we'd like to skip the `@Logged` interceptor for this method, but keep it for all other methods. -To achieve that, you can annotate the method with `@NoClassInterceptors`: - -[source, java] ----- -@Traced -@NoClassInterceptors -public void doSomethingElse() { - ... -} ----- - -The `@NoClassInterceptors` annotation may be put on methods and constructors and means that all class-level interceptors are ignored for these methods and constructors. -In other words, if a method/constructor is annotated `@NoClassInterceptors`, then the only interceptors that will apply to this method/constructor are interceptors declared directly on the method/constructor. - -This annotation affects only business method interceptors (`@AroundInvoke`) and constructor lifecycle callback interceptors (`@AroundConstruct`). - -[[build_time_apis]] -== Build Time Extensions - -Quarkus incorporates build-time optimizations in order to provide instant startup and low memory footprint. -The downside of this approach is that CDI Portable Extensions cannot be supported. -Nevertheless, most of the functionality can be achieved using Quarkus xref:writing-extensions.adoc[extensions]. -See the xref:cdi-integration.adoc[integration guide] for more information. - -== Development Mode - -In the development mode, two special endpoints are registered automatically to provide some basic debug info in the JSON format: - -* HTTP GET `/q/arc` - returns the summary; number of beans, config properties, etc. -* HTTP GET `/q/arc/beans` - returns the list of all beans -** You can use query params to filter the output: -*** `scope` - include beans with scope that ends with the given value, i.e. `http://localhost:8080/q/arc/beans?scope=ApplicationScoped` -*** `beanClass` - include beans with bean class that starts with the given value, i.e. `http://localhost:8080/q/arc/beans?beanClass=org.acme.Foo` -*** `kind` - include beans of the specified kind (`CLASS`, `PRODUCER_FIELD`, `PRODUCER_METHOD`, `INTERCEPTOR` or `SYNTHETIC`), i.e. `http://localhost:8080/q/arc/beans?kind=PRODUCER_METHOD` -* HTTP GET `/q/arc/removed-beans` - returns the list of unused beans removed during build -* HTTP GET `/q/arc/observers` - returns the list of all observer methods - -NOTE: These endpoints are only available in the development mode, i.e. when you run your application via `mvn quarkus:dev` (or `./gradlew quarkusDev`). - - -[[arc-configuration-reference]] -== ArC Configuration Reference - -include::{generated-dir}/config/quarkus-arc.adoc[leveloffset=+1, opts=optional] diff --git a/_versions/2.7/guides/cdi.adoc b/_versions/2.7/guides/cdi.adoc deleted file mode 100644 index 42ff0c39fa1..00000000000 --- a/_versions/2.7/guides/cdi.adoc +++ /dev/null @@ -1,481 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Introduction to Contexts and Dependency Injection - -include::./attributes.adoc[] -:numbered: -:sectnums: -:sectnumlevels: 4 -:toc: - -In this guide we're going to describe the basic principles of the Quarkus programming model that is based on the https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html[Contexts and Dependency Injection for Java 2.0, window="_blank"] specification. - -== OK. Let's start simple. What is a bean? - -Well, a bean is a _container-managed_ object that supports a set of basic services, such as injection of dependencies, lifecycle callbacks and interceptors. - -== Wait a minute. What does "container-managed" mean? - -Simply put, you don't control the lifecycle of the object instance directly. -Instead, you can affect the lifecycle through declarative means, such as annotations, configuration, etc. -The container is the _environment_ where your application runs. -It creates and destroys the instances of beans, associates the instances with a designated context, and injects them into other beans. - -== What is it good for? - -An application developer can focus on the business logic rather than finding out "where and how" to obtain a fully initialized component with all of its dependencies. - -NOTE: You've probably heard of the _inversion of control_ (IoC) programming principle. Dependency injection is one of the implementation techniques of IoC. - -== What does a bean look like? - -There are several kinds of beans. -The most common ones are class-based beans: - -.Simple Bean Example -[source,java] ----- -import javax.inject.Inject; -import javax.enterprise.context.ApplicationScoped; -import org.eclipse.microprofile.metrics.annotation.Counted; - -@ApplicationScoped <1> -public class Translator { - - @Inject - Dictionary dictionary; <2> - - @Counted <3> - String translate(String sentence) { - // ... - } -} ----- -<1> This is a scope annotation. It tells the container which context to associate the bean instance with. In this particular case, a *single bean instance* is created for the application and used by all other beans that inject `Translator`. -<2> This is a field injection point. It tells the container that `Translator` depends on the `Dictionary` bean. If there is no matching bean the build fails. -<3> This is an interceptor binding annotation. In this case, the annotation comes from the MicroProfile Metrics. The relevant interceptor intercepts the invocation and updates the relevant metrics. We will talk about <> later. - -[[typesafe_resolution]] -== Nice. How does the dependency resolution work? I see no names or identifiers. - -That's a good question. -In CDI the process of matching a bean to an injection point is *type-safe*. -Each bean declares a set of bean types. -In our example above, the `Translator` bean has two bean types: `Translator` and `java.lang.Object`. -Subsequently, a bean is assignable to an injection point if the bean has a bean type that matches the _required type_ and has all the _required qualifiers_. -We'll talk about qualifiers later. -For now, it's enough to know that the bean above is assignable to an injection point of type `Translator` and `java.lang.Object`. - -== Hm, wait a minute. What happens if multiple beans declare the same type? - -There is a simple rule: *exactly one bean must be assignable to an injection point, otherwise the build fails*. -If none is assignable the build fails with `UnsatisfiedResolutionException`. -If multiple are assignable the build fails with `AmbiguousResolutionException`. -This is very useful because your application fails fast whenever the container is not able to find an unambiguous dependency for any injection point. - -[TIP] -==== -Your can use programmatic lookup via `javax.enterprise.inject.Instance` to resolve ambiguities at runtime and even iterate over all beans implementing a given type: - -[source,java] ----- -public class Translator { - - @Inject - Instance dictionaries; <1> - - String translate(String sentence) { - for (Dictionary dict : dictionaries) { <2> - // ... - } - } -} ----- -<1> This injection point will not result in an ambiguous dependency even if there are multiple beans that implement the `Dictionary` type. -<2> `javax.enterprise.inject.Instance` extends `Iterable`. -==== - -== Can I use setter and constructor injection? - -Yes, you can. -In fact, in CDI the "setter injection" is superseded by more powerful https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html#initializer_methods[initializer methods, window="_blank"]. -Initializers may accept multiple parameters and don't have to follow the JavaBean naming conventions. - -.Initialized and Constructor Injection Example -[source,java] ----- -@ApplicationScoped -public class Translator { - - private final TranslatorHelper helper; - - Translator(TranslatorHelper helper) { <1> - this.helper = helper; - } - - @Inject <2> - void setDeps(Dictionary dic, LocalizationService locService) { <3> - / ... - } -} ----- -<1> This is a constructor injection. -In fact, this code would not work in regular CDI implementations where a bean with a normal scope must always declare a no-args constructor and the bean constructor must be annotated with `@Inject`. -However, in Quarkus we detect the absence of no-args constructor and "add" it directly in the bytecode. -It's also not necessary to add `@Inject` if there is only one constructor present. -<2> An initializer method must be annotated with `@Inject`. -<3> An initializer may accept multiple parameters - each one is an injection point. - -== You talked about some qualifiers? - -https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html#qualifiers[Qualifiers, window="_blank"] are annotations that help the container to distinguish beans that implement the same type. -As we already said a bean is assignable to an injection point if it has all the required qualifiers. -If you declare no qualifier at an injection point the `@Default` qualifier is assumed. - -A qualifier type is a Java annotation defined as `@Retention(RUNTIME)` and annotated with the `@javax.inject.Qualifier` meta-annotation: - -.Qualifier Example -[source,java] ----- -@Qualifier -@Retention(RUNTIME) -@Target({METHOD, FIELD, PARAMETER, TYPE}) -public @interface Superior {} ----- - -The qualifiers of a bean are declared by annotating the bean class or producer method or field with the qualifier types: - -.Bean With Custom Qualifier Example -[source,java] ----- -@Superior <1> -@ApplicationScoped -public class SuperiorTranslator extends Translator { - - String translate(String sentence) { - // ... - } -} ----- -<1> `@Superior` is a https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html#defining_qualifier_types[qualifier annotation, window="_blank"]. - -This bean would be assignable to `@Inject @Superior Translator` and `@Inject @Superior SuperiorTranslator` but not to `@Inject Translator`. -The reason is that `@Inject Translator` is automatically transformed to `@Inject @Default Translator` during typesafe resolution. -And since our `SuperiorTranslator` does not declare `@Default` only the original `Translator` bean is assignable. - -== Looks good. What is the bean scope? - -The scope of a bean determines the lifecycle of its instances, i.e. when and where an instance should be created and destroyed. - -NOTE: Every bean has exactly one scope. - -== What scopes can I actually use in my Quarkus application? - -You can use all the built-in scopes mentioned by the specification except for `javax.enterprise.context.ConversationScoped`. - -[options="header",cols="1,1"] -|=== -|Annotation |Description -//---------------------- -|`@javax.enterprise.context.ApplicationScoped` | A single bean instance is used for the application and shared among all injection points. The instance is created lazily, i.e. once a method is invoked upon the <>. -|`@javax.inject.Singleton` | Just like `@ApplicationScoped` except that no client proxy is used. The instance is created when an injection point that resolves to a @Singleton bean is being injected. -|`@javax.enterprise.context.RequestScoped` | The bean instance is associated with the current _request_ (usually an HTTP request). -|`@javax.enterprise.context.Dependent` | This is a pseudo-scope. The instances are not shared and every injection point spawns a new instance of the dependent bean. The lifecycle of dependent bean is bound to the bean injecting it - it will be created and destroyed along with the bean injecting it. -|`@javax.enterprise.context.SessionScoped` | This scope is backed by a `javax.servlet.http.HttpSession` object. It's only available if the `quarkus-undertow` extension is used. -|=== - -NOTE: There can be other custom scopes provided by Quarkus extensions. For example, `quarkus-narayana-jta` provides `javax.transaction.TransactionScoped`. - -== `@ApplicationScoped` and `@Singleton` look very similar. Which one should I choose for my Quarkus application? - -It depends ;-). - -A `@Singleton` bean has no <> and hence an instance is _created eagerly_ when the bean is injected. By contrast, an instance of an `@ApplicationScoped` bean is _created lazily_, i.e. -when a method is invoked upon an injected instance for the first time. - -Furthermore, client proxies only delegate method invocations and thus you should never read/write fields of an injected `@ApplicationScoped` bean directly. -You can read/write fields of an injected `@Singleton` safely. - -`@Singleton` should have a slightly better performance because the is no indirection (no proxy that delegates to the current instance from the context). - -On the other hand, you cannot mock `@Singleton` beans using <>. - -`@ApplicationScoped` beans can be also destroyed and recreated at runtime. -Existing injection points just work because the injected proxy delegates to the current instance. - -Therefore, we recommend to stick with `@ApplicationScoped` by default unless there's a good reason to use `@Singleton`. - -[[client_proxies]] -== I don't understand the concept of client proxies. - -Indeed, the https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html#client_proxies[client proxies, window="_blank"] could be hard to grasp but they provide some useful functionality. -A client proxy is basically an object that delegates all method invocations to a target bean instance. -It's a container construct that implements `io.quarkus.arc.ClientProxy` and extends the bean class. - -IMPORTANT: Client proxies only delegate method invocations. So never read or write a field of a normal scoped bean, otherwise you will work with non-contextual or stale data. - -.Generated Client Proxy Example -[source,java] ----- -@ApplicationScoped -class Translator { - - String translate(String sentence) { - // ... - } -} - -// The client proxy class is generated and looks like... -class Translator_ClientProxy extends Translator { <1> - - String translate(String sentence) { - // Find the correct translator instance... - Translator translator = getTranslatorInstanceFromTheApplicationContext(); - // And delegate the method invocation... - return translator.translate(sentence); - } -} ----- -<1> The `Translator_ClientProxy` instance is always injected instead of a direct reference to a https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html#contextual_instance[contextual instance, window="_blank"] of the `Translator` bean. - -Client proxies allow for: - -* Lazy instantiation - the instance is created once a method is invoked upon the proxy. -* Ability to inject a bean with "narrower" scope to a bean with "wider" scope; i.e. you can inject a `@RequestScoped` bean into an `@ApplicationScoped` bean. -* Circular dependencies in the dependency graph. Having circular dependencies is often an indication that a redesign should be considered, but sometimes it's inevitable. -* In rare cases it's practical to destroy the beans manually. A direct injected reference would lead to a stale bean instance. - - -== OK. You said that there are several kinds of beans? - -Yes. In general, we distinguish: - -1. Class beans -2. Producer methods -3. Producer fields -4. Synthetic beans - -NOTE: Synthetic beans are usually provided by extensions. Therefore, we are not going to cover them in this guide. - -Producer methods and fields are useful if you need additional control over instantiation of a bean. -They are also useful when integrating third-party libraries where you don't control the class source and may not add additional annotations etc. - -.Producers Example -[source,java] ----- -@ApplicationScoped -public class Producers { - - @Produces <1> - double pi = Math.PI; <2> - - @Produces <3> - List names() { - List names = new ArrayList<>(); - names.add("Andy"); - names.add("Adalbert"); - names.add("Joachim"); - return names; <4> - } -} - -@ApplicationScoped -public class Consumer { - - @Inject - double pi; - - @Inject - List names; - - // ... -} ----- -<1> The container analyses the field annotations to build a bean metadata. -The _type_ is used to build the set of bean types. -In this case, it will be `double` and `java.lang.Object`. -No scope annotation is declared and so it's defaulted to `@Dependent`. -<2> The container will read this field when creating the bean instance. -<3> The container analyses the method annotations to build a bean metadata. -The _return type_ is used to build the set of bean types. -In this case, it will be `List`, `Collection`, `Iterable` and `java.lang.Object`. -No scope annotation is declared and so it's defaulted to `@Dependent`. -<4> The container will call this method when creating the bean instance. - -There's more about producers. -You can declare qualifiers, inject dependencies into the producer methods parameters, etc. -You can read more about producers for example in the https://docs.jboss.org/weld/reference/latest/en-US/html/producermethods.html[Weld docs, window="_blank"]. - -== OK, injection looks cool. What other services are provided? - -=== Lifecycle Callbacks - -A bean class may declare lifecycle `@PostConstruct` and `@PreDestroy` callbacks: - -.Lifecycle Callbacks Example -[source,java] ----- -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; - -@ApplicationScoped -public class Translator { - - @PostConstruct <1> - void init() { - // ... - } - - @PreDestroy <2> - void destroy() { - // ... - } -} ----- -<1> This callback is invoked before the bean instance is put into service. It is safe to perform some initialization here. -<2> This callback is invoked before the bean instance is destroyed. It is safe to perform some cleanup tasks here. - -TIP: It's a good practice to keep the logic in the callbacks "without side effects", i.e. you should avoid calling other beans inside the callbacks. - -[[interceptors]] -=== Interceptors - -Interceptors are used to separate cross-cutting concerns from business logic. -There is a separate specification - Java Interceptors - that defines the basic programming model and semantics. - -.Simple Interceptor Example -[source,java] ----- -import javax.interceptor.Interceptor; -import javax.annotation.Priority; - -@Logged <1> -@Priority(2020) <2> -@Interceptor <3> -public class LoggingInterceptor { - - @Inject <4> - Logger logger; - - @AroundInvoke <5> - Object logInvocation(InvocationContext context) { - // ...log before - Object ret = context.proceed(); <6> - // ...log after - return ret; - } - -} ----- -<1> This is an interceptor binding annotation that is used to bind our interceptor to a bean. Simply annotate a bean class with `@Logged`. -<2> `Priority` enables the interceptor and affects the interceptor ordering. Interceptors with smaller priority values are called first. -<3> Marks an interceptor component. -<4> An interceptor instance may be the target of dependency injection. -<5> `AroundInvoke` denotes a method that interposes on business methods. -<6> Proceed to the next interceptor in the interceptor chain or invoke the intercepted business method. - -NOTE: Instances of interceptors are dependent objects of the bean instance they intercept, i.e. a new interceptor instance is created for each intercepted bean. - -[[decorators]] -=== Decorators - -Decorators are similar to interceptors, but because they implement interfaces with business semantics, they are able to implement business logic. - -.Simple Decorator Example -[source,java] ----- -import javax.decorator.Decorator; -import javax.decorator.Delegate; -import javax.annotation.Priority; -import javax.inject.Inject; -import javax.enterprise.inject.Any; - -public interface Account { - void withdraw(BigDecimal amount); -} - -@Priority(10) <1> -@Decorator <2> -public class LargeTxAccount implements Account { <3> - - @Inject - @Any - @Delegate - Account delegate; <4> - - @Inject - LogService logService; <5> - - void withdraw(BigDecimal amount) { - delegate.withdraw(amount); <6> - if (amount.compareTo(1000) > 0) { - logService.logWithdrawal(delegate, amount); - } - } - -} ----- -<1> `@Priority` enables the decorator. Decorators with smaller priority values are called first. -<2> `@Decorator` marks a decorator component. -<3> The set of decorated types includes all bean types which are Java interfaces, except for `java.io.Serializable`. -<4> Each decorator must declare exactly one _delegate injection point_. The decorator applies to beans that are assignable to this delegate injection point. -<5> Decorators can inject other beans. -<6> The decorator may invoke any method of the delegate object. And the container invokes either the next decorator in the chain or the business method of the intercepted instance. - -NOTE: Instances of decorators are dependent objects of the bean instance they intercept, i.e. a new decorator instance is created for each intercepted bean. - -=== Events and Observers - -Beans may also produce and consume events to interact in a completely decoupled fashion. -Any Java object can serve as an event payload. -The optional qualifiers act as topic selectors. - -.Simple Event Example -[source,java] ----- - -class TaskCompleted { - // ... -} - -@ApplicationScoped -class ComplicatedService { - - @Inject - Event event; <1> - - void doSomething() { - // ... - event.fire(new TaskCompleted()); <2> - } - -} - -@ApplicationScoped -class Logger { - - void onTaskCompleted(@Observes TaskCompleted task) { <3> - // ...log the task - } - -} ----- -<1> `javax.enterprise.event.Event` is used to fire events. -<2> Fire the event synchronously. -<3> This method is notified when a `TaskCompleted` event is fired. - -TIP: For more info about events/observers visit https://docs.jboss.org/weld/reference/latest/en-US/html/events.html[Weld docs, window="_blank"]. - -== Conclusion - -In this guide, we've covered some of the basic topics of the Quarkus programming model that is based on the https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html[Contexts and Dependency Injection for Java 2.0, window="_blank"] specification. -However, a full CDI implementation is not used under the hood. -Quarkus only implements a subset of the CDI features - see also <> and <>. -On the other hand, there are quite a few <> and <>. -We believe that our efforts will drive the innovation of the CDI specification towards the build-time oriented developer stacks in the future. - -TIP: If you wish to learn more about Quarkus-specific features and limitations there is a Quarkus xref:cdi-reference.adoc[CDI Reference Guide]. -We also recommend you to read the https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html[CDI specification] and the https://docs.jboss.org/weld/reference/latest/en-US/html/[Weld documentation] (Weld is a CDI Reference Implementation) to get acquainted with more complex topics. diff --git a/_versions/2.7/guides/centralized-log-management.adoc b/_versions/2.7/guides/centralized-log-management.adoc deleted file mode 100644 index 9c299942ba1..00000000000 --- a/_versions/2.7/guides/centralized-log-management.adoc +++ /dev/null @@ -1,442 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Centralized log management (Graylog, Logstash, Fluentd) - -include::./attributes.adoc[] -:es-version: 6.8.2 - -This guide explains how you can send your logs to a centralized log management system like Graylog, Logstash (inside the Elastic Stack or ELK - Elasticsearch, Logstash, Kibana) or -Fluentd (inside EFK - Elasticsearch, Fluentd, Kibana). - -There are a lot of different ways to centralize your logs (if you are using Kubernetes, the simplest way is to log to the console and ask you cluster administrator to integrate a central log manager inside your cluster). -In this guide, we will expose how to send them to an external tool using the `quarkus-logging-gelf` extension that can use TCP or UDP to send logs in the Graylog Extended Log Format (GELF). - -The `quarkus-logging-gelf` extension will add a GELF log handler to the underlying logging backend that Quarkus uses (jboss-logmanager). -By default, it is disabled, if you enable it but still use another handler (by default the console handler is enabled), your logs will be sent to both handlers. - -== Prerequisites - -:prerequisites-docker-compose: -include::includes/devtools/prerequisites.adoc[] - -== Example application - -The following examples will all be based on the same example application that you can create with the following steps. - -Create an application with the `quarkus-logging-gelf` extension. You can use the following command to create it: - -:create-app-artifact-id: gelf-logging -:create-app-extensions: resteasy,logging-gelf -include::includes/devtools/create-app.adoc[] - -If you already have your Quarkus project configured, you can add the `logging-gelf` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: logging-gelf -include::includes/devtools/extension-add.adoc[] - -This will add the following dependency to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-logging-gelf - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-logging-gelf") ----- - -For demonstration purposes, we create an endpoint that does nothing but log a sentence. You don't need to do this inside your application. - -[source,java] ----- -import javax.enterprise.context.ApplicationScoped; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.jboss.logging.Logger; - -@Path("/gelf-logging") -@ApplicationScoped -public class GelfLoggingResource { - private static final Logger LOG = Logger.getLogger(GelfLoggingResource.class); - - @GET - public void log() { - LOG.info("Some useful log message"); - } - -} ----- - -Configure the GELF log handler to send logs to an external UDP endpoint on the port 12201: - -[source,properties] ----- -quarkus.log.handler.gelf.enabled=true -quarkus.log.handler.gelf.host=localhost -quarkus.log.handler.gelf.port=12201 ----- - -== Send logs to Graylog - -To send logs to Graylog, you first need to launch the components that compose the Graylog stack: - -- MongoDB -- Elasticsearch -- Graylog - -You can do this via the following `docker-compose.yml` file that you can launch via `docker-compose up -d`: - -[source,yaml,subs="attributes"] ----- -version: '3.2' - -services: - elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:{es-version} - ports: - - "9200:9200" - environment: - ES_JAVA_OPTS: "-Xms512m -Xmx512m" - networks: - - graylog - - mongo: - image: mongo:4.0 - networks: - - graylog - - graylog: - image: graylog/graylog:3.1 - ports: - - "9000:9000" - - "12201:12201/udp" - - "1514:1514" - environment: - GRAYLOG_HTTP_EXTERNAL_URI: "http://127.0.0.1:9000/" - networks: - - graylog - depends_on: - - elasticsearch - - mongo - -networks: - graylog: - driver: bridge ----- - -Then, you need to create a UDP input in Graylog. -You can do it from the Graylog web console (System -> Input -> Select GELF UDP) available at http://localhost:9000 or via the API. - -This curl example will create a new Input of type GELF UDP, it uses the default login from Graylog (admin/admin). - -[source,bash] ----- -curl -H "Content-Type: application/json" -H "Authorization: Basic YWRtaW46YWRtaW4=" -H "X-Requested-By: curl" -X POST -v -d \ -'{"title":"udp input","configuration":{"recv_buffer_size":262144,"bind_address":"0.0.0.0","port":12201,"decompress_size_limit":8388608},"type":"org.graylog2.inputs.gelf.udp.GELFUDPInput","global":true}' \ -http://localhost:9000/api/system/inputs ----- - -Launch your application, you should see your logs arriving inside Graylog. - -== Send logs to Logstash / the Elastic Stack (ELK) - -Logstash comes by default with an Input plugin that can understand the GELF format, we will first create a pipeline that enables this plugin. - -Create the following file in `$HOME/pipelines/gelf.conf`: - -[source] ----- -input { - gelf { - port => 12201 - } -} -output { - stdout {} - elasticsearch { - hosts => ["http://elasticsearch:9200"] - } -} ----- - -Finally, launch the components that compose the Elastic Stack: - -- Elasticsearch -- Logstash -- Kibana - -You can do this via the following `docker-compose.yml` file that you can launch via `docker-compose up -d`: - -[source,yaml,subs="attributes"] ----- -# Launch Elasticsearch -version: '3.2' - -services: - elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:{es-version} - ports: - - "9200:9200" - - "9300:9300" - environment: - ES_JAVA_OPTS: "-Xms512m -Xmx512m" - networks: - - elk - - logstash: - image: docker.elastic.co/logstash/logstash-oss:{es-version} - volumes: - - source: $HOME/pipelines - target: /usr/share/logstash/pipeline - type: bind - ports: - - "12201:12201/udp" - - "5000:5000" - - "9600:9600" - networks: - - elk - depends_on: - - elasticsearch - - kibana: - image: docker.elastic.co/kibana/kibana-oss:{es-version} - ports: - - "5601:5601" - networks: - - elk - depends_on: - - elasticsearch - -networks: - elk: - driver: bridge - ----- - -Launch your application, you should see your logs arriving inside the Elastic Stack; you can use Kibana available at http://localhost:5601/ to access them. - -== Send logs to Fluentd (EFK) - -First, you need to create a Fluentd image with the needed plugins: elasticsearch and input-gelf. -You can use the following Dockerfile that should be created inside a `fluentd` directory. - -[source,dockerfile] ----- -FROM fluent/fluentd:v1.3-debian -RUN ["gem", "install", "fluent-plugin-elasticsearch", "--version", "3.7.0"] -RUN ["gem", "install", "fluent-plugin-input-gelf", "--version", "0.3.1"] ----- - -You can build the image or let docker-compose build it for you. - -Then you need to create a fluentd configuration file inside `$HOME/fluentd/fluent.conf` - -[source] ----- - - type gelf - tag example.gelf - bind 0.0.0.0 - port 12201 - - - - @type elasticsearch - host elasticsearch - port 9200 - logstash_format true - ----- - -Finally, launch the components that compose the EFK Stack: - -- Elasticsearch -- Fluentd -- Kibana - -You can do this via the following `docker-compose.yml` file that you can launch via `docker-compose up -d`: - -[source,yaml,subs="attributes"] ----- -version: '3.2' - -services: - elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:{es-version} - ports: - - "9200:9200" - - "9300:9300" - environment: - ES_JAVA_OPTS: "-Xms512m -Xmx512m" - networks: - - efk - - fluentd: - build: fluentd - ports: - - "12201:12201/udp" - volumes: - - source: $HOME/fluentd - target: /fluentd/etc - type: bind - networks: - - efk - depends_on: - - elasticsearch - - kibana: - image: docker.elastic.co/kibana/kibana-oss:{es-version} - ports: - - "5601:5601" - networks: - - efk - depends_on: - - elasticsearch - -networks: - efk: - driver: bridge ----- - -Launch your application, you should see your logs arriving inside EFK: you can use Kibana available at http://localhost:5601/ to access them. - -== GELF alternative: use Syslog - -You can also send your logs to Fluentd using a Syslog input. -As opposed to the GELF input, the Syslog input will not render multiline logs in one event, that's why we advise to use the GELF input that we implement in Quarkus. - -First, you need to create a Fluentd image with the elasticsearch plugin. -You can use the following Dockerfile that should be created inside a `fluentd` directory. - -[source,dockerfile] ----- -FROM fluent/fluentd:v1.3-debian -RUN ["gem", "install", "fluent-plugin-elasticsearch", "--version", "3.7.0"] ----- - -Then, you need to create a fluentd configuration file inside `$HOME/fluentd/fluent.conf` - -[source] ----- - - @type syslog - port 5140 - bind 0.0.0.0 - message_format rfc5424 - tag system - - - - @type elasticsearch - host elasticsearch - port 9200 - logstash_format true - ----- - -Then, launch the components that compose the EFK Stack: - -- Elasticsearch -- Fluentd -- Kibana - -You can do this via the following `docker-compose.yml` file that you can launch via `docker-compose up -d`: - -[source,yaml,subs="attributes"] ----- -version: '3.2' - -services: - elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:{es-version} - ports: - - "9200:9200" - - "9300:9300" - environment: - ES_JAVA_OPTS: "-Xms512m -Xmx512m" - networks: - - efk - - fluentd: - build: fluentd - ports: - - "5140:5140/udp" - volumes: - - source: $HOME/fluentd - target: /fluentd/etc - type: bind - networks: - - efk - depends_on: - - elasticsearch - - kibana: - image: docker.elastic.co/kibana/kibana-oss:{es-version} - ports: - - "5601:5601" - networks: - - efk - depends_on: - - elasticsearch - -networks: - efk: - driver: bridge ----- - -Finally, configure your application to send logs to EFK using Syslog: - -[source,properties] ----- -quarkus.log.syslog.enable=true -quarkus.log.syslog.endpoint=localhost:5140 -quarkus.log.syslog.protocol=udp -quarkus.log.syslog.app-name=quarkus -quarkus.log.syslog.hostname=quarkus-test ----- - -Launch your application, you should see your logs arriving inside EFK: you can use Kibana available at http://localhost:5601/ to access them. - -== Elasticsearch indexing consideration - -Be careful that, by default, Elasticsearch will automatically map unknown fields (if not disabled in the index settings) by detecting their type. -This can become tricky if you use log parameters (which are included by default), or if you enable MDC inclusion (disabled by default), -as the first log will define the type of the message parameter (or MDC parameter) field inside the index. - -Imagine the following case: - -[source, java] ----- -LOG.info("some {} message {} with {} param", 1, 2, 3); -LOG.info("other {} message {} with {} param", true, true, true); ----- - -With log message parameters enabled, the first log message sent to Elasticsearch will have a `MessageParam0` parameter with an `int` type; -this will configure the index with a field of type `integer`. -When the second message will arrive to Elasticsearch, it will have a `MessageParam0` parameter with the boolean value `true`, and this will generate an indexing error. - -To work around this limitation, you can disable sending log message parameters via `logging-gelf` by configuring `quarkus.log.handler.gelf.include-log-message-parameters=false`, -or you can configure your Elasticsearch index to store those fields as text or keyword, Elasticsearch will then automatically make the translation from int/boolean to a String. - -See the following documentation for Graylog (but the same issue exists for the other central logging stacks): link:https://docs.graylog.org/en/3.2/pages/configuration/elasticsearch.html#custom-index-mappings[Custom Index Mappings]. - -[[configuration-reference]] -== Configuration Reference - -Configuration is done through the usual `application.properties` file. - -include::{generated-dir}/config/quarkus-logging-gelf.adoc[opts=optional, leveloffset=+1] - -This extension uses the `logstash-gelf` library that allow more configuration options via system properties, -you can access its documentation here: https://logging.paluch.biz/ . diff --git a/_versions/2.7/guides/class-loading-reference.adoc b/_versions/2.7/guides/class-loading-reference.adoc deleted file mode 100644 index f471d7e76ee..00000000000 --- a/_versions/2.7/guides/class-loading-reference.adoc +++ /dev/null @@ -1,215 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Class Loading Reference - -include::./attributes.adoc[] - -This document explains the Quarkus class loading architecture. It is intended for extension -authors and advanced users who want to understand exactly how Quarkus works. - -The Quarkus class loading architecture is slightly different depending on the mode that -the application is run in. When running a production application everything is loaded -in the system ClassLoader, so it is a completely flat class path. This also applies to -native image mode which does not really support multiple ClassLoaders, and is based on -a normal production Quarkus application. - -For all other use cases (e.g. tests, dev mode, and building the application) Quarkus -uses the class loading architecture outlined here. - - -== Bootstrapping Quarkus - -All Quarkus applications are created by the QuarkusBootstrap class in the `independent-projects/bootstrap` module. This -class is used to resolve all the relevant dependencies (both deployment and runtime) that are needed for the Quarkus -application. The end result of this process is a `CuratedApplication`, which contains all the class loading information -for the application. - -The `CuratedApplication` can then be used to create an `AugmentAction` instance, which can create production application -and start/restart runtime ones. This application instance exists within an isolated ClassLoader, it is not necessary -to have any of the Quarkus deployment classes on the class path as the curate process will resolve them for you. - -This bootstrap process should be the same no matter how Quarkus is launched, just with different parameters passed in. - -=== Current Run Modes - -At the moment we have the following use cases for bootstrapping Quarkus: - -- Maven creating production application -- Maven dev mode -- Gradle creating a production application -- Gradle dev mode -- QuarkusTest (Maven, Gradle and IDE) -- QuarkusUnitTest (Maven, Gradle and IDE) -- QuarkusDevModeTest (Maven, Gradle and IDE) -- Arquillian Adaptor - -One of the goals of this refactor is to have all these different run modes boot Quarkus in fundamentally the same way. - -=== Notes on Transformer Safety - -A ClassLoader is said to be 'transformer safe' if it is safe to load classes in the class loader before the transformers -are ready. Once a class has been loaded it cannot be changed, so if a class is loaded before the transformers have been -prepared this will prevent the transformation from working. Loading classes in a transformer safe ClassLoader will not -prevent the transformation, as the loaded class is not used at runtime. - -== ClassLoader Implementations - -Quarkus has the following ClassLoaders: - -Base ClassLoader:: - -This is usually the normal JVM System ClassLoader. In some environments such as Maven it may be different. This ClassLoader -is used to load the bootstrap classes, and other ClassLoader instances will delegate the loading of JDK classes to it. - -Augment ClassLoader:: - -This loads all the `-deployment` artifacts and their dependencies, as well as other user dependencies. It does not load the -application root or any hot deployed code. This ClassLoader is persistent, even if the application restarts it will remain -(which is why it cannot load application classes that may be hot deployed). Its parent is the base ClassLoader, and it is -transformer safe. - -At present this can be configured to delegate to the Base ClassLoader, however the plan is for this option to go away and -always have this as an isolated ClassLoader. Making this an isolated ClassLoader is complicated as it means that all -the builder classes are isolated, which means that use cases that want to customise the build chains are slightly more complex. - -Deployment ClassLoader:: - -This can load all application classes, its parent is the Augment ClassLoader so it can also load all deployment classes. - -This ClassLoader is non-persistent, it will be re-created when the application is started, and is isolated. This ClassLoader -is the context ClassLoader that is used when running the build steps. It is also transformer safe. - -Base Runtime ClassLoader:: - -This loads all the runtime extension dependencies, as well as other user dependencies (note that this may include duplicate -copies of classes also loaded by the Augment ClassLoader). It does not load the application root or any hot deployed -code. This ClassLoader is persistent, even if the application restarts it will remain (which is why it cannot load -application classes that may be hot deployed). Its parent is the base ClassLoader. - -This loads code that is not hot-reloadable, but it does support transformation (although once the class is loaded this -transformation is no longer possible). This means that only transformers registered in the first application start -will take effect, however as these transformers are expected to be idempotent this should not cause problems. An example -of the sort of transformation that might be required here is a Panache entity packaged in an external jar. This class -needs to be transformed to have its static methods implemented, however this transformation only happens once, so -restarts use the copy of the class that was created on the first start. - -This ClassLoader is isolated from the Augment and Deployment ClassLoaders. This means that it is not possible to set -values in a static field in the deployment side, and expect to read it at runtime. This allows dev and test applications -to behave more like a production application (production applications are isolated in that they run in a whole new JVM). - -This also means that the runtime version can be linked against a different set of dependencies, e.g. the hibernate -version used at deployment time might want to include ByteBuddy, while the version used at runtime does not. - -Runtime Class Loader:: - -This ClassLoader is used to load the application classes and other hot deployable resources. Its parent is the base runtime -ClassLoader, and it is recreated when the application is restarted. - - -== Isolated ClassLoaders - -The runtime ClassLoader is always isolated. This means that it will have its own copies of almost every class from the -resolved dependency list. The exception to this are: - -- JDK classes -- Classes from artifacts that extensions have marked as parent first (more on this later). - -=== Parent First Dependencies - -There are some classes that should not be loaded in an isolated manner, but that should always be loaded by the system -ClassLoader (or whatever ClassLoader is responsible for bootstrapping Quarkus). Most extensions do not need to worry about -this, however there are a few cases where this is necessary: - -- Some logging related classes, as logging must be loaded by the system ClassLoader -- Quarkus bootstrap itself - -If this is required it can be configured in the `quarkus-bootstrap-maven-plugin`. Note that if you -mark a dependency as parent first then all of its dependencies must also be parent first, -or a `LinkageError` can occur. - -[source,xml] ----- - - io.quarkus - quarkus-bootstrap-maven-plugin - - - io.quarkus:quarkus-bootstrap-core - io.quarkus:quarkus-development-mode-spi - org.jboss.logmanager:jboss-logmanager-embedded - org.jboss.logging:jboss-logging - org.ow2.asm:asm - - - ----- - -=== Banned Dependencies - -There are some dependencies that we can be sure we do not want. This generally happens when a dependency has had a name -change (e.g. smallrye-config changing groups from `org.smallrye` to `org.smallrye.config`, the `javax` -> `jakarta` rename). -This can cause problems, as if these artifacts end up in the dependency tree out of date classes can be loaded that are -not compatible with Quarkus. To deal with this extensions can specify artifacts that should never be loaded. This is -done by modifying the `quarkus-bootstrap-maven-plugin` config in the pom (which generates the `quarkus-extension.properties` -file). Simply add an `excludedArtifacts` section as shown below: - -[source,xml] ----- - - io.quarkus - quarkus-bootstrap-maven-plugin - - - io.smallrye:smallrye-config - javax.enterprise:cdi-api - - - ----- - -This should only be done if the extension depends on a newer version of these artifacts. If the extension does not bring -in a replacement artifact as a dependency then classes the application needs might end up missing. - -== Configuring Class Loading - -It is possible to configure some aspects of class loading in dev and test mode. This can be done using `application.properties`. -Note that class loading config is different to normal config, in that it does not use the standard Quarkus config mechanisms -(as it is needed too early), so only supports `application.properties`. The following options are supported. - - -include::{generated-dir}/config/quarkus-class-loading-configuration-class-loading-config.adoc[opts=optional, leveloffset=+1] - -== Hiding/Removing classes and resources from dependencies - -It is possible to hide/remove classes and resources from dependencies. This is an advanced option, but it can be useful -at times. This is done via the `quarkus.class-loading.removed-resources` config key, for example: - -`quarkus.class-loading.removed-resources."io.quarkus\:quarkus-integration-test-shared-library"=io/quarkus/it/shared/RemovedResource.class` - -This will remove the `RemovedResource.class` file from the `io.quarkus:quarkus-integration-test-shared-library` artifact. - -Even though this option is a class loading option it will also affect the generated application, so when the application -is created removed resources will not be accessible. - -== Reading Class Bytecode - -It is important to use the correct `ClassLoader`. The recommended approach is to get it by calling the -`Thread.currentThread().getContextClassLoader()` method. - -Example: - - -[source,java,subs=attributes+] ----- -@BuildStep -GeneratedClassBuildItem instrument(final CombinedIndexBuildItem index) { - final String classname = "com.example.SomeClass"; - final ClassLoader cl = Thread.currentThread().getContextClassLoader(); - final byte[] originalBytecode = IoUtil.readClassAsBytes(cl, classname); - final byte[] enhancedBytecode = ... // class instrumentation from originalBytecode - return new GeneratedClassBuildItem(true, classname, enhancedBytecode)); -} ----- \ No newline at end of file diff --git a/_versions/2.7/guides/cli-tooling.adoc b/_versions/2.7/guides/cli-tooling.adoc deleted file mode 100644 index 225f1ece12f..00000000000 --- a/_versions/2.7/guides/cli-tooling.adoc +++ /dev/null @@ -1,526 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Building Quarkus apps with Quarkus Command Line Interface (CLI) -:extension-status: preview - -include::./attributes.adoc[] - -The `quarkus` command lets you create projects, manage extensions and -do essential build and dev commands using the underlying project build tool. - -include::./status-include.adoc[] - -== Installing the CLI - -The Quarkus CLI is available in several developer-oriented package managers such as: - -* https://sdkman.io[SDKMAN!] -* https://brew.sh[Homebrew] -* https://community.chocolatey.org/packages/quarkus[Chocolatey] - -If you already use (or want to use) one of these tools, it is the simplest way to install the Quarkus CLI and keep it updated. - -In addition to these package managers, the Quarkus CLI is also installable via https://www.jbang.dev[JBang]. -Choose the alternative that is the most practical for you: - -* JBang - for Linux, macOS and Windows -* SDKMAN! - for Linux and macOS -* Homebrew - for Linux and macOS -* Chocolatey - for Windows - -[role="primary asciidoc-tabs-sync-jbang"] -.JBang -**** -The Quarkus CLI is available as a jar installable using https://jbang.dev[JBang]. - -JBang will use your existing Java or install one for you if needed. - -On Linux, macOS, and Windows (using WSL or bash compatible shell like Cygwin or MinGW) -[source,bash] ----- -curl -Ls https://sh.jbang.dev | bash -s - trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/ -curl -Ls https://sh.jbang.dev | bash -s - app install --fresh --force quarkus@quarkusio ----- - -On Windows using Powershell: -[source,powershell] ----- -iex "& { $(iwr https://ps.jbang.dev) } trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/" -iex "& { $(iwr https://ps.jbang.dev) } app install --fresh --force quarkus@quarkusio" ----- - -If JBang has already been installed, you can directly use it: -[source,bash] ----- -# This can also be used to update to the latest version -jbang app install --fresh --force quarkus@quarkusio ----- - -If you want to use a specific version, you can directly target a version: -[source,bash] ----- -# Create an alias in order to use a specific version -jbang app install --name qs2.2.5 io.quarkus:quarkus-cli:2.2.5.Final:runner ----- - -If you have built Quarkus locally, you can use that version: -[source,bash] ----- -# Use the latest (or locally built) snapshot (with qss as an alias) -jbang app install --force --name qss ~/.m2/repository/io/quarkus/quarkus-cli/999-SNAPSHOT/quarkus-cli-999-SNAPSHOT-runner.jar ----- - -Once installed `quarkus` will be in your `$PATH` and if you run `quarkus --version` it will print the installed version: - -[source,shell,subs=attributes+] ----- -quarkus --version -{quarkus-version} ----- - -[CAUTION] -.Use a recent JBang version -==== -If you get an error about `app` not being readable then you probably -have a JBang version older than v0.56.0 installed. Please remove or upgrade it to a recent version. - -If you are installing JBang for the first time, start a new session to update your `PATH`. -==== -**** - -[role="secondary asciidoc-tabs-sync-sdkman"] -.SDKMAN! -**** -https://sdkman.io/[SDKMAN!] can be used to manage development environments. -It can manage parallel versions of multiple Software Development Kits on most Unix based systems, -making it a very good alternative to keep multiple JDK versions handy. - -With SDKMAN!, you can also install popular Java tools, including the Quarkus CLI. - -[NOTE] -==== -Make sure you have https://sdkman.io/jdks[a JDK installed] before installing the Quarkus CLI. - -To list the available versions of Java, use `sdk list java`. -You can then install the version of OpenJDK you want with `sdk install java x.y.z-open` -(or the JDK of another vendor if it is your preference). -==== - -To install the Quarkus CLI using SDKMAN!, run the following command: - -[source,shell] ----- -sdk install quarkus ----- - -It will install the latest version of the Quarkus CLI. - -Once installed `quarkus` will be in your `$PATH` and if you run `quarkus --version` it will print the installed version: - -[source,shell,subs=attributes+] ----- -quarkus --version -{quarkus-version} ----- - -SDKMAN! will let you know when new versions are available so updates will be straightforward: - -[source,shell] ----- -sdk upgrade quarkus ----- -**** - -[role="secondary asciidoc-tabs-sync-homebrew"] -.Homebrew -**** -https://brew.sh[Homebrew] is a package manager for macOS (and Linux). - -You can use Homebrew to install (and update) the Quarkus CLI. - -[NOTE] -==== -Make sure you have a JDK installed before installing the Quarkus CLI. -We haven't added an explicit dependency as we wanted to make sure you could use your preferred JDK version. - -You can install a JDK with `brew install openjdk` for Java 17 or `brew install openjdk@11` for Java 11. -==== - -To install the Quarkus CLI using Homebrew, run the following command: - -[source,shell] ----- -brew install quarkusio/tap/quarkus ----- - -It will install the latest version of the Quarkus CLI. -This command can also be used to update the Quarkus CLI. - -Once installed `quarkus` will be in your `$PATH` and if you run `quarkus --version` it will print the installed version: - -[source,shell,subs=attributes+] ----- -quarkus --version -{quarkus-version} ----- - -You can upgrade the Quarkus CLI with: - -[source,shell] ----- -brew update <1> -brew upgrade quarkus <2> ----- -<1> Update all package definitions and Homebrew itself -<2> Upgrade Quarkus CLI to the latest version -**** - -[role="secondary asciidoc-tabs-sync-chocolatey"] -.Chocolatey -**** -https://chocolatey.org[Chocolatey] is a package manager for Windows. - -You can use Chocolatey to install (and update) the Quarkus CLI. - -[NOTE] -==== -Make sure you have a JDK installed before installing the Quarkus CLI. - -You can install a JDK with `choco install ojdkbuild17` for Java 17 or `choco install ojdkbuild11` for Java 11. -==== - -To install the Quarkus CLI using Chocolatey, run the following command: - -[source,shell] ----- -choco install quarkus ----- - -It will install the latest version of the Quarkus CLI. - -Once installed `quarkus` will be in your `$PATH` and if you run `quarkus --version` it will print the installed version: - -[source,shell,subs=attributes+] ----- -quarkus --version -{quarkus-version} ----- - -You can upgrade the Quarkus CLI with: - -[source,shell] ----- -choco upgrade quarkus ----- -**** - -== Using the CLI - -Use `--help` to display help information with all the available commands: - -[source,shell] ----- -quarkus --help -Usage: quarkus [-ehv] [--verbose] [-D=]... [COMMAND] - -Options: - -D= Java properties - -e, --errors Display error messages. - -h, --help Show this help message and exit. - -v, --version Print version information and exit. - --verbose Verbose mode. - -Commands: - create Create a new project. - app Create a Quarkus application project. - cli Create a Quarkus command-line project. - extension Create a Quarkus extension project - build Build the current project. - dev Run the current project in dev (live coding) mode. - extension, ext Configure extensions of an existing project. - list, ls List platforms and extensions. - categories, cat List extension categories. - add Add extension(s) to this project. - remove, rm Remove extension(s) from this project. - registry Configure Quarkus registry client - list List enabled Quarkus registries - add Add a Quarkus extension registry - remove Remove a Quarkus extension registry - version Display version information. ----- - -[TIP] -==== -While this document is a useful reference, the client help is the definitive source. - -If you don't see the output you expect, use `--help` to verify that you are invoking the command with the right arguments. -==== - -[[project-creation]] -=== Creating a new project - -To create a new project we use the `create` command -(the `app` subcommand is implied when not specified): - -[source,shell] ----- -quarkus create ------------ - -applying codestarts... -📚 java -🔨 maven -📦 quarkus -📝 config-properties -🔧 dockerfiles -🔧 maven-wrapper -🚀 resteasy-codestart - ------------ -[SUCCESS] ✅ quarkus project has been successfully generated in: ---> //code-with-quarkus ----- - -This will create a folder called 'code-with-quarkus' in your current working directory using default groupId, artifactId and version values -(groupId='org.acme', artifactId='code-with-quarkus' and version='1.0.0-SNAPSHOT'). - -Note: the emoji shown above may not match precisely. The appearance of emoji can vary by font, and terminal/environment. IntelliJ IDEA, for example, has several long-running issues open regarding the behavior/rendering of emoji in the terminal. - -As of 2.0.2.Final, you should specify the groupId, artifactId and version using group:artifactId:version coordinate syntax directly on the command line. You can selectively omit segments to use default values: - -[source,shell] ----- -# Create a project with groupId=org.acme, artifactId=bar, and version=1.0.0-SNAPSHOT -quarkus create app bar - -# Create a project with groupId=com.foo, artifactId=bar, and version=1.0.0-SNAPSHOT -quarkus create app com.foo:bar - -# Create a project with groupId=com.foo, artifactId=bar, and version=1.0 -quarkus create app com.foo:bar:1.0 ----- - -The output will show your project being created: - -[source,shell] ----- ------------ - -applying codestarts... -📚 java -🔨 maven -📦 quarkus -📝 config-properties -🔧 dockerfiles -🔧 maven-wrapper -🚀 resteasy-codestart - ------------ -[SUCCESS] ✅ quarkus project has been successfully generated in: ---> //bar ------------ ----- - -Use the help option to display options for creating projects: - -[source,shell] ----- -quarkus create app --help -quarkus create cli --help ----- - -[WARNING] -==== -Previous versions of the CLI used options `--group-id` (`-g`),`--artifact-id` (`-a`) and `--version` (`-v`) to specify the groupId, artifactId, and version. If the output isn't what you expect, double check your client version `quarkus version` and help `quarkus create app --help`. -==== - -[[specifying-quarkus-version]] -=== Specifying the Quarkus version - -Both `quarkus create` and `quarkus extension list` allow you to explicitly specify a version of Quarkus in one of two ways: - -1. Specify a specific Platform Release BOM -+ -A https://quarkus.io/guides/platform#quarkus-platform-bom[Quarkus Platform release BOM] is identified by `groupId:artifactId:version` (GAV) coordinates. When specifying a platform release BOM, you may use empty segments to fallback to default values (shown with `quarkus create app --help`). If you specify only one segment (no `:`), it is assumed to be a version. -+ -For example: -+ -- With the `2.0.0.Final` version of the CLI, specifying `-P :quarkus-bom:` is equivalent to `-P io.quarkus:quarkus-bom:2.0.0.Final`. Specifying `-P 999-SNAPSHOT` is equivalent to `-P io.quarkus:quarkus-bom:999-SNAPSHOT`. -- With the `2.1.0.Final` version of the CLI, `io.quarkus.platform` is the default group id. Specifying `-P :quarkus-bom:` is equivalent to `-P io.quarkus.platform:quarkus-bom:2.1.0.Final`. Note that you need to specify the group id to work with a snapshot, e.g `-P io.quarkus::999-SNAPSHOT` is equivalent to `-P io.quarkus:quarkus-bom:999-SNAPSHOT`. -+ -Note: default values are subject to change. Using the `--dry-run` option will show you the computed value. - -2. Specify a Platform Stream -+ -A platform stream operates against a remote registry. Each registry defines one or more platform streams, and each stream defines one or more platform release BOM files that define how projects using that stream should be configured. -+ -Streams are identified using `platformKey:streamId` syntax. A specific stream can be specified using `-S platformKey:streamId`. When specifying a stream, empty segments will be replaced with _discovered_ defaults, based on stream resource resolution rules. - -=== Working with extensions - -[source,shell] ----- -quarkus ext --help ----- - -==== Listing extensions - -The Quarkus CLI can be used to list Quarkus extensions. - -[source,shell] ----- -quarkus ext ls ----- - -The format of the result can be controlled with one of four options: - -- `--name` Display the name (artifactId) only -- `--concise` Display the name (artifactId) and description -- `--full` Display concise format and version/status-related columns. -- `--origins` Display concise information along with the Quarkus platform release origin of the extension. - -The behavior of `quarkus ext ls` will vary depending on context. - -===== Listing Extensions for a Quarkus release - -If you invoke the Quarkus CLI from outside of a project, Quarkus will list all of the extensions available for the Quarkus release used by the CLI itself. - -You can also list extensions for a specific release of Quarkus using `-P` or `-S`, as described in <>. - -This mode uses the `--origins` format by default. - -===== Listing Extensions for a Quarkus project - -When working with a Quarkus project, the CLI will list the extensions the current project has installed, using the `--name` format by default. - -Use the `--installable` or `-i` option to list extensions that can be installed from the Quarkus platform the project is using. - -You can narrow or filter the list using search (`--search` or `-s`). - -[source,shell] ----- -quarkus ext list --concise -i -s jdbc -JDBC Driver - DB2 quarkus-jdbc-db2 -JDBC Driver - PostgreSQL quarkus-jdbc-postgresql -JDBC Driver - H2 quarkus-jdbc-h2 -JDBC Driver - MariaDB quarkus-jdbc-mariadb -JDBC Driver - Microsoft SQL Server quarkus-jdbc-mssql -JDBC Driver - MySQL quarkus-jdbc-mysql -JDBC Driver - Oracle quarkus-jdbc-oracle -JDBC Driver - Derby quarkus-jdbc-derby -Elytron Security JDBC quarkus-elytron-security-jdbc -Agroal - Database connection pool quarkus-agroal ----- - - -==== Adding extension(s) - -The Quarkus CLI can add Quarkus one or more extensions to your project with the 'add' -command: - -[source,shell] ----- -quarkus ext add kubernetes health -[SUCCESS] ✅ Extension io.quarkus:quarkus-kubernetes has been installed -[SUCCESS] ✅ Extension io.quarkus:quarkus-smallrye-health has been installed ----- - -==== Removing extension(s) - -The Quarkus CLI can remove one or more extensions from your project with the 'remove' -command: - -[source,shell] ----- -quarkus ext rm kubernetes -[SUCCESS] ✅ Extension io.quarkus:quarkus-kubernetes has been uninstalled ----- - -=== Build your project - -To build your project using the Quarkus CLI (using the default configuration in this example): - -[source,shell] ----- -quarkus build -[INFO] Scanning for projects... -[INFO] -[INFO] ---------------------< org.acme:code-with-quarkus >--------------------- -[INFO] Building code-with-quarkus 1.0.0-SNAPSHOT -[INFO] --------------------------------[ jar ]--------------------------------- -[INFO] -... -[INFO] ------------------------------------------------------------------------ -[INFO] BUILD SUCCESS -[INFO] ------------------------------------------------------------------------ -[INFO] Total time: 8.331 s -[INFO] Finished at: 2021-05-27T10:13:28-04:00 -[INFO] ------------------------------------------------------------------------ ----- - -NOTE: Output will vary depending on the build tool your project is using (Maven, Gradle, or JBang). - -=== Development mode - -[source,shell] ----- -quarkus dev --help ----- - -To start dev mode from the Quarkus CLI do: - -[source,shell] ----- -quarkus dev -[INFO] Scanning for projects... -[INFO] -[INFO] ---------------------< org.acme:code-with-quarkus >--------------------- -[INFO] Building code-with-quarkus 1.0.0-SNAPSHOT -[INFO] --------------------------------[ jar ]--------------------------------- -[INFO] -... -Listening for transport dt_socket at address: 5005 -__ ____ __ _____ ___ __ ____ ______ ---/ __ \/ / / / _ | / _ \/ //_/ / / / __/ --/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \ ---\___\_\____/_/ |_/_/|_/_/|_|\____/___/ -2021-05-27 10:15:56,032 INFO [io.quarkus] (Quarkus Main Thread) code-with-quarkus 1.0.0-SNAPSHOT on JVM (powered by Quarkus 999-SNAPSHOT) started in 1.387s. Listening on: http://localhost:8080 -2021-05-27 10:15:56,035 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated. -2021-05-27 10:15:56,035 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy, smallrye-context-propagation] - --- -Tests paused, press [r] to resume ----- - -NOTE: Output will vary depending on the build tool your project is using (Maven, Gradle, or JBang). - - -[[quarkus-version-compatibility]] -[WARNING] -.Compatibility with Quarkus 1.x -==== -The version 2 Quarkus CLI can not be used with 1.x Quarkus projects or releases. Use the Maven/Gradle plugins when working with Quarkus 1.x projects. -==== - -== Shell autocomplete and aliases - -Automatic command completion is available for Bash and Zsh: - -[source,shell] ----- -# Setup autocompletion in the current shell -source <(quarkus completion) ----- - -If you choose to use an alias for the quarkus command, adjust command completion with the following commands: - -[source,shell] ----- -# Add an alias for the quarkus command -alias q=quarkus -# Add q to list of commands included in quarkus autocompletion -complete -F _complete_quarkus q ----- diff --git a/_versions/2.7/guides/command-mode-reference.adoc b/_versions/2.7/guides/command-mode-reference.adoc deleted file mode 100644 index 7234f114451..00000000000 --- a/_versions/2.7/guides/command-mode-reference.adoc +++ /dev/null @@ -1,275 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Command Mode Applications - -include::./attributes.adoc[] - -This reference covers how to write applications that run and then exit. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `getting-started-command-mode` {quickstarts-tree-url}/getting-started-command-mode[directory]. - -== Writing Command Mode Applications - -There are two different approaches that can be used to implement applications -that exit. - -. Implement `QuarkusApplication` and have Quarkus run this method automatically -. Implement `QuarkusApplication` and a Java main method, and use the Java main method to launch Quarkus - -In this document the `QuarkusApplication` instance is referred to as the application main, -and a class with a Java main method is the Java main. - -The simplest possible command mode application with access to Quarkus API's might appear as follows: - -[source,java] ----- -import io.quarkus.runtime.QuarkusApplication; -import io.quarkus.runtime.annotations.QuarkusMain; - -@QuarkusMain // <.> -public class HelloWorldMain implements QuarkusApplication { - @Override - public int run(String... args) throws Exception { // <.> - System.out.println("Hello " + args[1]); - return 0; - } -} ----- -<.> The `@QuarkusMain` annotation tells Quarkus that this is the main entry point. -<.> The `run` method is invoked once Quarkus starts, and the application stops when it finishes. - -=== Contexts - -[sidebar] -.Got a `ContextNotActiveException`? --- -A command mode application (like a CLI) is a bit different from say a HTTP service, there is a single call from the command line. -So the notion of _request_ let alone multiple requests does not exist per se. -Therefore request scope is not the default. - -To get access to your application beans and services, be aware that a `@QuarkusMain` instance is an application scoped bean by default. -It has access to singletons, application and dependent scoped beans. - -If you want to interact with beans that requires a request scope, simply add the `@ActivateRequestContext` annotation on your `run()` method. -This let `run()` have access to methods like `listAll()` and `query*` methods on a Panache Entity. -Without it you will eventually get a `ContextNotActiveException` when accessing such classes/beans. --- - -=== Main method -If we want to use a Java main to run the application main it would look like: - -[source,java] ----- -import io.quarkus.runtime.Quarkus; -import io.quarkus.runtime.annotations.QuarkusMain; - -@QuarkusMain -public class JavaMain { - - public static void main(String... args) { - Quarkus.run(HelloWorldMain.class, args); - } -} ----- - -This is effectively the same as running the `HelloWorldMain` application main directly, but has the advantage it can -be run from the IDE. - -NOTE: If a class that implements `QuarkusApplication` and has a Java main then the Java main will be run. - -WARNING: It is recommended that a Java main perform very little logic, and just -launch the application main. In development mode the Java main will run in a -different ClassLoader to the main application, so may not behave as you would -expect. - -==== Multiple Main Methods - -It is possible to have multiple main methods in an application, and select between them at build time. -The `@QuarkusMain` annotation takes an optional 'name' parameter, and this can be used to select the -main to run using the `quarkus.package.main-class` build time configuration option. If you don't want -to use annotations this can also be used to specify the fully qualified name of a main class. - -By default the `@QuarkusMain` with no name (i.e. the empty string) will be used, and if it is not present -and `quarkus.package.main-class` is not specified then Quarkus will automatically generate a main class -that just runs the application. - -NOTE: The `name` of `@QuarkusMain` must be unique (including the default of the empty string). If you -have multiple `@QuarkusMain` annotations in your application the build will fail if the names are not -unique. - -=== The command mode lifecycle - -When running a command mode application the basic lifecycle is as follows: - -. Start Quarkus -. Run the `QuarkusApplication` main method -. Shut down Quarkus and exit the JVM after the main method returns - -Shutdown is always initiated by the application main thread returning. If you want to run some logic on startup, -and then run like a normal application (i.e. not exit) then you should call `Quarkus.waitForExit` from the main -thread (A non-command mode application is essentially just running an application that just calls `waitForExit`). - -If you want to shut down a running application and you are not in the main thread then you should call `Quarkus.asyncExit` -in order to unblock the main thread and initiate the shutdown process. - -=== Development Mode - -Also for command mode applications the dev mode is supported. -When you start your application in dev mode, the command mode application is executed: - -include::includes/devtools/dev.adoc[] - -As command mode applications will often require arguments to be passed on the command line, this is also possible in dev mode: - -[source, bash, subs=attributes+, role="primary asciidoc-tabs-sync-cli"] -.CLI ----- -quarkus dev '--help' ----- - -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-maven"] -.Maven ----- -./mvnw quarkus:dev -Dquarkus.args='--help' ----- - -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-gradle"] -.Gradle ----- -./gradlew quarkusDev --quarkus-args='--help' ----- - -You should see the following down the bottom of the screen after the application is stopped: - -[source] ----- --- -Press [space] to restart, [e] to edit command line args (currently '-w --tags 1.0.1.Final'), [r] to resume testing, [o] Toggle test output, [h] for more options> ----- - -You can press the `Space bar` key and the application will be started again. -You can also use the `e` hotkey to edit the command line arguments and restart your application. - -== Testing Command Mode Applications - -Command Mode applications can be tested using the `@QuarkusMainTest` and `@QuarkusMainIntegrationTest` annotations. These -work in a similar way to `@QuarkusTest` and `@QuarkusIntegrationTest` where `@QuarkusMainTest` will run the CLI tests -within the current JVM, while `QuarkusIntegrationTest` is used to run the generated executable (both jars and native). - -We can write a simple test for our CLI application above as follows: - -[source,java] ----- -import io.quarkus.test.junit.main.Launch; -import io.quarkus.test.junit.main.LaunchResult; -import io.quarkus.test.junit.main.QuarkusMainLauncher; -import io.quarkus.test.junit.main.QuarkusMainTest; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -@QuarkusMainTest -public class HelloTest { - - @Test - @Launch("World") - public void testLaunchCommand(LaunchResult result) { - Assertions.assertEquals("Hello World", result.getOutput()); - } - - @Test - @Launch(value = {}, exitCode = 1) - public void testLaunchCommandFailed() { - } - - @Test - public void testManualLaunch(QuarkusMainLauncher launcher) { - LaunchResult result = launcher.launch("Everyone"); - Assertions.assertEquals(0, result.exitCode()); - Assertions.assertEquals("Hello Everyone", result.getOutput()); - } -} - ----- - -We can then extend this with an integration test that can be used to test the native executable or runnable jar: - -[source,java] ----- -import io.quarkus.test.junit.main.QuarkusMainIntegrationTest; - -@QuarkusMainIntegrationTest -public class HelloIT extends HelloTest { -} ----- - -=== Mocking - -CDI injection is not supported in the `@QuarkusMainTest` tests. -Consequently, mocking CDI beans with `QuarkusMock` or `@InjectMock` is not supported either. - -It is possible to mock CDI beans by leveraging xref:getting-started-testing.adoc#testing_different_profiles[test profiles] though. - -For instance, in the following test, the singleton `CdiBean1` will be mocked by `MockedCdiBean1`: - -[source,java] ----- -package org.acme.commandmode.test; - -import java.util.Set; - -import javax.enterprise.inject.Alternative; -import javax.inject.Singleton; - -import org.junit.jupiter.api.Test; -import org.acme.commandmode.test.MyCommandModeTest.MyTestProfile; - -import io.quarkus.test.junit.QuarkusTestProfile; -import io.quarkus.test.junit.TestProfile; -import io.quarkus.test.junit.main.Launch; -import io.quarkus.test.junit.main.LaunchResult; -import io.quarkus.test.junit.main.QuarkusMainTest; - -@QuarkusMainTest -@TestProfile(MyTestProfile.class) -public class MyCommandModeTest { - - @Test - @Launch(value = {}) - public void testLaunchCommand(LaunchResult result) { - // ... assertions ... - } - - public static class MyTestProfile implements QuarkusTestProfile { - - @Override - public Set> getEnabledAlternatives() { - return Set.of(MockedCdiBean1.class); <1> - } - } - - @Alternative <2> - @Singleton <3> - public static class MockedCdiBean1 implements CdiBean1 { - - @Override - public String myMethod() { - return "mocked value"; - } - } -} ----- -<1> List all the CDI beans for which you want to enable an alternative mocked bean. -<2> Use `@Alternative` without a `@Priority`. Make sure you don't use `@Mock`. -<3> The scope of the mocked bean should be consistent with the original one. - -Using this pattern, you can enable specific alternatives for any given test. diff --git a/_versions/2.7/guides/conditional-extension-dependencies.adoc b/_versions/2.7/guides/conditional-extension-dependencies.adoc deleted file mode 100644 index b8e655d6a6c..00000000000 --- a/_versions/2.7/guides/conditional-extension-dependencies.adoc +++ /dev/null @@ -1,178 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Conditional Extension Dependencies - -include::./attributes.adoc[] - -Quarkus extension dependencies are usually configured in the same way as any other project dependencies in the project's build file, e.g. the Maven `pom.xml` or the Gradle build scripts. However, there are dependency types that aren't yet supported out-of-the-box by Maven and Gradle. What we refer here to as "conditional dependencies" is one example. - -== Conditional Dependencies - -The idea behind the notion of the conditional dependency is that such a dependency must be activated only if a certain condition is satisfied. If the condition is not satisfied then the dependency **must not** be activated. In that regard, conditional dependencies can be categorized as optional, i.e. they may or may not appear in the resulting set of project dependencies. - -In which cases could conditional dependencies be useful? A typical example would be a component that should be activated **only** in case all of its required dependencies are available. If one or more of the component's required dependencies aren't available, instead of failing, the component should simply not be activated. - -== Quarkus Conditional Extension Dependencies - -Quarkus supports conditional extension dependencies. I.e. one Quarkus extension may declare one or more conditional dependencies on other Quarkus extensions. Conditional dependencies on and from non-extension artifacts aren't supported. - -Let's take the following scenario as an example: `quarkus-extension-a` has an optional dependency on `quarkus-extension-b` which should be included in a Quarkus application only if `quarkus-extension-c` is found among its dependencies (direct or transitive). In other words, the presence of `quarkus-extension-c` is the condition which, if satisfied, enables `quarkus-extension-b` during the build of a Quarkus application. - -The condition which triggers activation of an extension is configured in the extension's descriptor, which is included into the runtime artifact of the extension as `META-INF/quarkus-extension.properties`. Given that extension descriptor is generated by the Quarkus plugin at extension build time, extension developers can add the following configuration to express the condition which would have to be satisfied for the extension to be activated: - -[source,xml] ----- - - - - - quarkus-extension-b <1> - - - - - - - io.quarkus - quarkus-bootstrap-maven-plugin - ${quarkus.version} - - - process-resources - - extension-descriptor <2> - - - <3> - org.acme:quarkus-extension-c <4> - - - - - - - ----- - -<1> runtime Quarkus extension artifact ID, in our example `quarkus-extension-b`; -<2> the goal that generates the extension descriptor which every Quarkus runtime extension project should be configured with; -<3> configuration of the condition which will have to be satisfied for this extension to be included into a Quarkus application expressed as a list of artifacts that must be present among the application dependencies; -<4> an artifact key (in the format of `groupId:artifactId[::]` but typically simply `:`) of the artifact that must be present among the application dependencies for the condition to be satisfied. - -NOTE: In the example above the `artifact` used in the condition configuration happens to be a runtime Quarkus extension artifact but it could as well be any other artifact. There could also be more than one `artifact` element in the body of `dependencyCondition`. - -Now, having a dependency activating condition in the descriptor of `quarkus-extension-b`, other extensions may declare a conditional dependency on it. - -A conditional dependency is configured in the runtime artifact of a Quarkus extension. In our example, it's the `quarkus-extension-a` that has a conditional dependency on `quarkus-extension-b`, which can be expressed in two ways. - -=== Declaring a dependency as `optional` - -If an extension was configured with a dependency condition in its descriptor, other extensions may configure a conditional dependency on it by simply adding `true` to the dependency configuration. In our example it would look like this: - -[source,xml] ----- - - - - - quarkus-extension-a <1> - - - - - - org.acme - quarkus-extension-b <2> - true - - - ----- - -<1> the runtime extension artifact `quarkus-extension-a` -<2> declares an optional Maven dependency on the runtime extension artifact `quarkus-extension-b` - -IMPORTANT: In general, for every runtime extension artifact dependency on another runtime extension artifact there must be a corresponding deployment extension artifact dependency on the other deployment extension artifact. And if the runtime dependency is declared as optional then the corresponding deployment dependency **must** also be configured as optional. - -[source,xml] ----- - - - - - quarkus-extension-a-deployment <1> - - - - - - org.acme - quarkus-extension-b-deployment <2> - true - - - ----- - -<1> the deployment extension artifact `quarkus-extension-a-deployment` -<2> declares an optional Maven dependency on the deployment extension artifact `quarkus-extension-b-deployment` - -Normally, optional Maven extension dependencies are ignored by the Quarkus dependency resolver at build time. In this case though, the optional dependency `quarkus-extension-b` includes a dependency condition in its extension descriptor, which turns this optional Maven dependency into a Quarkus conditional extension dependency. - -IMPORTANT: If `quarkus-extension-b` wasn't declared as `true` that would make `quarkus-extension-b` a required dependency of `quarkus-extension-a` and its dependency condition would be ignored. - -=== Declaring a conditional dependency in the Quarkus extension descriptor - -Conditional dependencies can also be configured in the Quarkus extension descriptor. The conditional dependency configured above could be expressed in the extension descriptor of `quarkus-extension-a` as: - -[source,xml] ----- - - - - - quarkus-extension-a <1> - - - - - - - io.quarkus - quarkus-bootstrap-maven-plugin - ${quarkus.version} - - - process-resources - - extension-descriptor <2> - - - <3> - org.acme:quarkus-extension-b:${b.version} <4> - - - - - - - ----- - -<1> runtime Quarkus extension artifact ID, in our example `quarkus-extension-a` -<2> the goal that generates the extension descriptor which every Quarkus runtime extension project should be configured with -<3> conditional dependency configuration element -<4> artifact coordinates of conditional dependencies on other extensions. - -In this case, the Maven dependency is not at all required in the `pom.xml`. diff --git a/_versions/2.7/guides/config-extending-support.adoc b/_versions/2.7/guides/config-extending-support.adoc deleted file mode 100644 index f1c843711f5..00000000000 --- a/_versions/2.7/guides/config-extending-support.adoc +++ /dev/null @@ -1,403 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Extending Configuration Support - -include::./attributes.adoc[] - -:numbered: -:sectnums: -:sectnumlevels: 4 -:toc: - -[[custom-config-source]] -== Custom `ConfigSource` - -It's possible to create a custom `ConfigSource` as specified in -link:https://github.com/eclipse/microprofile-config/blob/master/spec/src/main/asciidoc/configsources.asciidoc#custom-configsources-via-configsourceprovider[MicroProfile Config]. - -With a Custom `ConfigSource` it is possible to read additional configuration values and add them to the `Config` -instance in a defined ordinal. This allows overriding values from other sources or falling back to other values. - -image::config-sources.png[align=center,width=90%] - -A custom `ConfigSource` requires an implementation of `org.eclipse.microprofile.config.spi.ConfigSource` or -`org.eclipse.microprofile.config.spi.ConfigSourceProvider`. Each implementation requires registration via -the https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/ServiceLoader.html[ServiceLoader] mechanism, either in -`META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource` or -`META-INF/services/org.eclipse.microprofile.config.spi.ConfigSourceProvider` files. - -=== Example - -Consider a simple in-memory `ConfigSource`: - -.org.acme.config.InMemoryConfigSource -[source,java] ----- -package org.acme.config; - -import org.eclipse.microprofile.config.spi.ConfigSource; - -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -public class InMemoryConfigSource implements ConfigSource { - private static final Map configuration = new HashMap<>(); - - static { - configuration.put("my.prop", "1234"); - } - - @Override - public int getOrdinal() { - return 275; - } - - @Override - public Set getPropertyNames() { - return configuration.keySet(); - } - - @Override - public String getValue(final String propertyName) { - return configuration.get(propertyName); - } - - @Override - public String getName() { - return InMemoryConfigSource.class.getSimpleName(); - } -} ----- - -And registration in: - -.META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource -[source,properties] ----- -org.acme.config.InMemoryConfigSource ----- - -The `InMemoryConfigSource` will be ordered between the `.env` source, and the `application.properties` source due to -the `275` ordinal: - - -|=== -|ConfigSource |Ordinal - -|System Properties -|400 - -|Environment Variables from System -|300 - -|Environment Variables from `.env` file -|295 - -|InMemoryConfigSource -|275 - -|`application.properties` from `/config` -|260 - -|`application.properties` from application -|250 - -|`microprofile-config.properties` from application -|100 -|=== - -In this case, `my.prop` from `InMemoryConfigSource` will only be used if the config engine is unable to find a value -in xref:config-reference.adoc#system-properties[System Properties], -xref:config-reference.adoc#environment-variables[Environment Variables from System] or -xref:config-reference.adoc#env-file[Environment Variables from .env file] in this order. - -=== ConfigSource Init - -When a Quarkus application starts, a `ConfigSource` can be initialized twice. One time for _STATIC INIT_ and a second -time for _RUNTIME INIT_: - -==== STATIC INIT - -Quarkus starts some of its services during static initialization, and `Config` is usually one of the first things that -is created. In certain situations it may not be possible to add a custom `ConfigSource`. For instance, if the -`ConfigSource` requires other services, like a database access, it will not be available at this stage, and cause a -chicken-egg problem. For this reason, any custom `ConfigSource` requires the annotation -`@io.quarkus.runtime.configuration.StaticInitSafe` to mark the source as safe to be used at this stage. - -===== Example - -Consider: - -.org.acme.config.InMemoryConfigSource -[source,java] ----- -package org.acme.config; - -import org.eclipse.microprofile.config.spi.ConfigSource; -import io.quarkus.runtime.annotations.StaticInitSafe; - -@StaticInitSafe -public class InMemoryConfigSource implements ConfigSource { - -} ----- - -And registration in: - -.META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource -[source,properties] ----- -org.acme.config.InMemoryConfigSource ----- - -The `InMemoryConfigSource` will be available during _STATIC INIT_. - -IMPORTANT: A custom `ConfigSource` is not automatically added during Quarkus _STATIC INIT_. It requires to be marked with -the `@io.quarkus.runtime.configuration.StaticInitSafe` annotation. - -==== RUNTIME INIT - -The _RUNTIME INIT_ stage happens after _STATIC INIT_. In this stage a `ConfigSource` can be initialized again. There -are no restrictions at this stage, and a custom source is added to the `Config` instance as expected. - -[[config-source-factory]] -== `ConfigSourceFactory` - -Another way to create a `ConfigSource` is via the https://github.com/smallrye/smallrye-config[SmallRye Config] -`io.smallrye.config.ConfigSourceFactory` API. The difference between the -https://github.com/smallrye/smallrye-config[SmallRye Config] factory and the standard way to create a `ConfigSource` as -specified in -link:https://github.com/eclipse/microprofile-config/blob/master/spec/src/main/asciidoc/configsources.asciidoc#custom-configsources-via-configsourceprovider[MicroProfile Config], -is the factory ability to provide a context with access to the available configuration. - -Each implementation of `io.smallrye.config.ConfigSourceFactory` requires registration via -the https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/ServiceLoader.html[ServiceLoader] -mechanism in the `META-INF/services/io.smallrye.config.ConfigSourceFactory` file. - -=== Example - -Consider: - -.org.acme.config.URLConfigSourceFactory -[source,java] ----- -package org.acme.config; - -import java.util.Collections; -import java.util.OptionalInt; - -import org.eclipse.microprofile.config.spi.ConfigSource; - -import io.smallrye.config.ConfigSourceContext; -import io.smallrye.config.ConfigSourceFactory; -import io.smallrye.config.ConfigValue; -import io.smallrye.config.PropertiesConfigSource; - -public class URLConfigSourceFactory implements ConfigSourceFactory { - @Override - public Iterable getConfigSources(final ConfigSourceContext context) { - final ConfigValue value = context.getValue("config.url"); - if (value == null || value.getValue() == null) { - return Collections.emptyList(); - } - - try { - return Collections.singletonList(new PropertiesConfigSource(new URL(value.getValue()))); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Override - public OptionalInt getPriority() { - return OptionalInt.of(290); - } -} ----- - -And registration in: - -.META-INF/services/io.smallrye.config.ConfigSourceFactory -[source,properties] ----- -org.acme.config.URLConfigSourceFactory ----- - -By implementing `io.smallrye.config.ConfigSourceFactory`, a list of `ConfigSource` may be provided via the -`Iterable getConfigSources(ConfigSourceContext context)` method. The `ConfigSourceFactory` may also -assign a priority by overriding the method `OptionalInt getPriority()`. The priority values is used to sort -multiple `io.smallrye.config.ConfigSourceFactory` (if found). - -IMPORTANT: `io.smallrye.config.ConfigSourceFactory` priority does not affect the `ConfigSource` ordinal. These are -sorted independently. - -When the Factory is initializing, the provided `ConfigSourceContext` may call the method -`ConfigValue getValue(String name)`. This method looks up configuration names in all ``ConfigSource``s that were already -initialized by the `Config` instance, including sources with lower ordinals than the ones defined in the -`ConfigSourceFactory`. The `ConfigSource` list provided by a `ConfigSourceFactory` is not taken into consideration to -configure other sources produced by a lower priority `ConfigSourceFactory`. - -[[custom-converter]] -== Custom `Converter` - -It is possible to create a custom `Converter` type as specified by -link:https://github.com/eclipse/microprofile-config/blob/master/spec/src/main/asciidoc/converters.asciidoc#adding-custom-converters[MicroProfile Config]. - -A custom `Converter` requires an implementation of `org.eclipse.microprofile.config.spi.Converter`. Each implementation -requires registration via the https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/ServiceLoader.html[ServiceLoader] -mechanism in the `META-INF/services/org.eclipse.microprofile.config.spi.Converter` file. Consider: - -[source,java] ----- -package org.acme.config; - -public class MicroProfileCustomValue { - - private final int number; - - public MicroProfileCustomValue(int number) { - this.number = number; - } - - public int getNumber() { - return number; - } -} ----- - -The corresponding converter will look similar to the one below. - -[source,java] ----- -package org.acme.config; - -import org.eclipse.microprofile.config.spi.Converter; - -public class MicroProfileCustomValueConverter implements Converter { - - @Override - public MicroProfileCustomValue convert(String value) { - return new MicroProfileCustomValue(Integer.parseInt(value)); - } -} ----- - -NOTE: The custom converter class must be `public`, must have a `public` constructor with no arguments, and must not be -`abstract`. - -The custom configuration type converts the configuration value automatically: - -[source,java] ----- -@ConfigProperty(name = "configuration.value.name") -MicroProfileCustomValue value; ----- - -=== Converter priority - -The `javax.annotation.Priority` annotation overrides the `Converter` priority and change converters precedence to fine -tune the execution order. By default, if no `@Priority` is specified by the `Converter`, the converter is registered -with a priority of `100`. Consider: - -[source,java] ----- -package org.acme.config; - -import javax.annotation.Priority; -import org.eclipse.microprofile.config.spi.Converter; - -@Priority(150) -public class MyCustomConverter implements Converter { - - @Override - public MicroProfileCustomValue convert(String value) { - - final int secretNumber; - if (value.startsFrom("OBF:")) { - secretNumber = Integer.parseInt(SecretDecoder.decode(value)); - } else { - secretNumber = Integer.parseInt(value); - } - - return new MicroProfileCustomValue(secretNumber); - } -} ----- - -Since it converts the same value type (`MicroProfileCustomValue`) and has a priority of `150`, it will be used -instead of a `MicroProfileCustomValueConverter` which has a default priority of `100`. - -NOTE: All Quarkus core converters use the priority value of `200`. To override any Quarkus specific converter, the -priority value should be higher than `200`. - -[[config-interceptors]] -== Config Interceptors - -https://github.com/smallrye/smallrye-config[SmallRye Config] provides an interceptor chain that hooks into the -configuration values resolution. This is useful to implement features like -xref:config-reference.adoc#profiles[Profiles], -xref:config-reference.adoc#property-expressions[Property Expressions], -or just logging to find out where the config value was loaded from. - -An interceptor requires an implementation of `io.smallrye.config.ConfigSourceInterceptor`. Each implementation -requires registration via the https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/ServiceLoader.html[ServiceLoader] -mechanism in the `META-INF/services/io.smallrye.config.ConfigSourceInterceptor` file. - -The `io.smallrye.config.ConfigSourceInterceptor` is able to intercept the resolution of a configuration name with the -method `ConfigValue getValue(ConfigSourceInterceptorContext context, String name)`. The `ConfigSourceInterceptorContext` -is used to proceed with the interceptor chain. The chain can be short-circuited by returning an instance of -`io.smallrye.config.ConfigValue`. The `ConfigValue` objects hold information about the key name, value, config source -origin and ordinal. - -NOTE: The interceptor chain is applied before any conversion is performed on the configuration value. - -Interceptors may also be created with an implementation of `io.smallrye.config.ConfigSourceInterceptorFactory`. Each -implementation requires registration via the https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/ServiceLoader.html[ServiceLoader] -mechanism in the `META-INF/services/io.smallrye.config.ConfigSourceInterceptorFactory` file. - -The `ConfigSourceInterceptorFactory` may initialize an interceptor with access to the current chain -(so it can be used to configure the interceptor and retrieve configuration values) and set the priority. - -=== Example - -.org.acme.config.LoggingConfigSourceInterceptor -[source,java] ----- -package org.acme.config; - -import javax.annotation.Priority; - -import io.smallrye.config.ConfigSourceInterceptor; -import io.smallrye.config.ConfigLogging; - -@Priority(Priorities.LIBRARY + 200) -public class LoggingConfigSourceInterceptor implements ConfigSourceInterceptor { - private static final long serialVersionUID = 367246512037404779L; - - @Override - public ConfigValue getValue(final ConfigSourceInterceptorContext context, final String name) { - ConfigValue configValue = doLocked(() -> context.proceed(name)); - if (configValue != null) { - ConfigLogging.log.lookup(configValue.getName(), configValue.getLocation(), configValue.getValue()); - } else { - ConfigLogging.log.notFound(name); - } - return configValue; - } -} ----- - -And registration in: - -.META-INF/services/io.smallrye.config.ConfigSourceInterceptor -[source,properties] ----- -org.acme.config.LoggingConfigSourceInterceptor ----- - -The `LoggingConfigSourceInterceptor` logs looks up configuration names in the provided logging platform. The log -information includes config name and value, the config source origin and location if exists. diff --git a/_versions/2.7/guides/config-mappings.adoc b/_versions/2.7/guides/config-mappings.adoc deleted file mode 100644 index 010efd66702..00000000000 --- a/_versions/2.7/guides/config-mappings.adoc +++ /dev/null @@ -1,772 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Mapping configuration to objects - -include::./attributes.adoc[] - -:numbered: -:sectnums: -:sectnumlevels: 4 -:toc: - -With config mappings it is possible to group multiple configuration properties in a single interface that -share the same prefix. - -[[config-mappings]] -== `@ConfigMapping` - -A config mapping requires an interface with minimal metadata configuration and annotated with the -`@io.smallrye.config.ConfigMapping` annotation. - -[source,java] ----- -@ConfigMapping(prefix = "server") -interface Server { - String host(); - - int port(); -} ----- - -The `Server` interface is able to map configuration properties with the name `server.host` into the `Server.host()` -method and `server.port` into `Server.port()` method. The configuration property name to look up is built from the -prefix, and the method name with `.` (dot) as the separator. - -NOTE: If a mapping fails to match a configuration property a `NoSuchElementException` is thrown, unless the mapped -element is an `Optional`. - -=== Registration - -When a Quarkus application starts, a config mapping can be registered twice. One time for _STATIC INIT_ and a second -time for _RUNTIME INIT_: - -==== STATIC INIT - -Quarkus starts some of its services during static initialization, and `Config` is usually one of the first things that -is created. In certain situations it may not be possible to correctly initialize a config mapping. For instance, if the -mapping requires values from a custom `ConfigSource`. For this reason, any config mapping requires the annotation -`@io.quarkus.runtime.configuration.StaticInitSafe` to mark the mapping as safe to be used at this stage. Learn more -about xref:config-extending-support.adoc#custom-config-source[registration] of a custom `ConfigSource`. - -===== Example - -[source,java] ----- -@StaticInitSafe -@ConfigMapping(prefix = "server") -interface Server { - String host(); - - int port(); -} ----- - -==== RUNTIME INIT - -The _RUNTIME INIT_ stage happens after _STATIC INIT_. There are no restrictions at this stage, and any config mapping -is added to the `Config` instance as expected. - -=== Retrieval - -A config mapping interface can be injected into any CDI aware bean: - -[source,java] ----- -class BusinessBean { - @Inject - Server server; - - public void businessMethod() { - String host = server.host(); - } -} ----- - -In non-CDI contexts, use the API `io.smallrye.config.SmallRyeConfig#getConfigMapping` to retrieve the config mapping -instance: - -[source,java] ----- -SmallRyeConfig config = ConfigProvider.getConfig().unwrap(SmallRyeConfig.class); -Server server = config.getConfigMapping(Server.class); ----- - -=== Nested groups - -A nested mapping provides a way to subgroup other config properties: - -[source,java] ----- -@ConfigMapping(prefix = "server") -public interface Server { - String host(); - - int port(); - - Log log(); - - interface Log { - boolean enabled(); - - String suffix(); - - boolean rotate(); - } -} ----- - -.application.properties -[source,properties] ----- -server.host=localhost -server.port=8080 -server.log.enabled=true -server.log.suffix=.log -server.log.rotate=false ----- - -The method name of a mapping group acts as sub-namespace to the configurations properties. - -=== Overriding property names - -==== `@WithName` - -If a method name, or a property name do not match with each other, the `@WithName` annotation can override the method -name mapping and use the name supplied in the annotation: - -[source,java] ----- -@ConfigMapping(prefix = "server") -interface Server { - @WithName("name") - String host(); - - int port(); -} ----- - -.application.properties -[source,properties] ----- -server.name=localhost -server.port=8080 ----- - -==== `@WithParentName` - -The `@WithParent` annotation allows to configurations mapping to inherit its container name, simplifying the -configuration property name required to match the mapping: - -[source,java] ----- -interface Server { - @WithParentName - ServerHostAndPort hostAndPort(); - - @WithParentName - ServerInfo info(); -} - -interface ServerHostAndPort { - String host(); - - int port(); -} - -interface ServerInfo { - String name(); -} ----- - -.application.properties -[source,properties] ----- -server.host=localhost -server.port=8080 -server.name=konoha ----- - -Without the `@WithParentName` the method `name()` requires the configuration property `server.info.name`. Because we use -`@WithParentName`, the `info()` mapping will inherit the parent name from `Server` and `name()` maps to `server.name` -instead. - -==== NamingStrategy - -Method names in camelCase map to kebab-case property names: - -[source,java] ----- -@ConfigMapping(prefix = "server") -interface Server { - String theHost(); - - int thePort(); -} ----- - -.application.properties -[source,properties] ----- -server.the-host=localhost -server.the-port=8080 ----- - -The mapping strategy can be adjusted by setting `namingStrategy` value in the `@ConfigMapping` annotation: - -[source,java] ----- -@ConfigMapping(prefix = "server", namingStrategy = ConfigMapping.NamingStrategy.VERBATIM) -public interface ServerVerbatimNamingStrategy { - String theHost(); - - int thePort(); -} ----- - -.application.properties -[source,properties] ----- -server.theHost=localhost -server.thePort=8080 ----- - -The `@ConfigMapping` annotation support the following naming stategies: - -- `KEBAB_CASE` (default) - The method name is derived by replacing case changes with a dash to map the configuration property. -- `VERBATIM` - The method name is used as is to map the configuration property. -- `SNAKE_CASE` - The method name is derived by replacing case changes with an underscore to map the configuration property. - -=== Conversions - -A config mapping class support automatic conversions of all types available for conversion in `Config`: - -[source,java] ----- -@ConfigMapping -public interface SomeTypes { - @WithName("int") - int intPrimitive(); - - @WithName("int") - Integer intWrapper(); - - @WithName("long") - long longPrimitive(); - - @WithName("long") - Long longWrapper(); - - @WithName("float") - float floatPrimitive(); - - @WithName("float") - Float floatWrapper(); - - @WithName("double") - double doublePrimitive(); - - @WithName("double") - Double doubleWrapper(); - - @WithName("char") - char charPrimitive(); - - @WithName("char") - Character charWrapper(); - - @WithName("boolean") - boolean booleanPrimitive(); - - @WithName("boolean") - Boolean booleanWrapper(); -} ----- - -.application.properties -[source,properties] ----- -int=9 -long=9999999999 -float=99.9 -double=99.99 -char=c -boolean=true ----- - -This is also valid for `Optional` and friends: - -[source,java] ----- -@ConfigMapping -public interface Optionals { - Optional server(); - - Optional optional(); - - @WithName("optional.int") - OptionalInt optionalInt(); - - interface Server { - String host(); - - int port(); - } -} ----- - -In this case, the mapping won't fail if there are not configuration properties to match the mapping. - -==== `@WithConverter` - -The `@WithConverter` annotation provides a way to set a `Converter` to use in a specific mapping: - -[source,java] ----- -@ConfigMapping -public interface Converters { - @WithConverter(FooBarConverter.class) - String foo(); -} - -public static class FooBarConverter implements Converter { - @Override - public String convert(final String value) { - return "bar"; - } -} ----- - -.application.properties -[source,properties] ----- -foo=foo ----- - -A call to `Converters.foo()` results in the value `bar`. - -==== Collections ==== - -A config mapping is also able to map collections types `List` and `Set`: - -[source,java] ----- -@ConfigMapping(prefix = "server") -public interface ServerCollections { - Set environments(); - - interface Environment { - String name(); - - List apps(); - - interface App { - String name(); - - List services(); - - Optional> databases(); - } - } -} ----- - -.application.properties -[source,properties] ----- -server.environments[0].name=dev -server.environments[0].apps[0].name=rest -server.environments[0].apps[0].services=bookstore,registration -server.environments[0].apps[0].databases=pg,h2 -server.environments[0].apps[1].name=batch -server.environments[0].apps[1].services=stock,warehouse ----- - -The `List` or `Set` mappings can use xref:config-reference.adoc#indexed-properties[indexed properties] to map -configuration values in mapping groups. For collection with simple element types like `String`, their configuration -value is a comma separated string. - -==== Maps ==== - -A config mapping is also able to map a `Map`: - -[source,java] ----- -@ConfigMapping(prefix = "server") -public interface Server { - String host(); - - int port(); - - Map form(); -} ----- - -.application.properties -[source,properties] ----- -server.host=localhost -server.port=8080 -server.form.login-page=login.html -server.form.error-page=error.html -server.form.landing-page=index.html ----- - -The configuration property needs to specify an additional name to act as the key. In this case the `form()` `Map` will -contain three elements with the keys `login-page`, `error-page` and `landing-page`. - -=== Defaults - -The `@WithDefault` annotation allows to set a default property into a mapping (and prevent and error if the -configuration value is not available in any `ConfigSource`): - -[source,java] ----- -public interface Defaults { - @WithDefault("foo") - String foo(); - - @WithDefault("bar") - String bar(); -} ----- - -No configuration properties required. The `Defaults.foo()` will return the value `foo` and `Defaults.bar()` will return -thevalue `bar`. - -=== Validation - -A config mapping may combine annotations from https://beanvalidation.org[Bean Validation] to validate configuration -values: - -[source,java] ----- -@ConfigMapping(prefix = "server") -interface Server { - @Size(min = 2, max = 20) - String host(); - - @Max(10000) - int port(); -} ----- - -WARNING: For validation to work, the `quarkus-hibernate-validator` extension is required, and it is performed -automatically. - -=== Mocking - -A mapping interface implementation is not a proxy, so it cannot be mocked directly with `@InjectMock` like other CDI -beans. One trick is to make it proxyable with a producer method: - -[source,java] ----- -public class ServerMockProducer { - @Inject - Config config; - - @Produces - @ApplicationScoped - @io.quarkus.test.Mock - Server server() { - return config.unwrap(SmallRyeConfig.class).getConfigMapping(Server.class); - } -} ----- - -The `Server` can be injected as a mock into a Quarkus test class with `@InjectMock`: - -[source,java] ----- -@QuarkusTest -class ServerMockTest { - @InjectMock - Server server; - - @Test - void localhost() { - Mockito.when(server.host()).thenReturn("localhost"); - assertEquals("localhost", server.host()); - } -} ----- - -NOTE: The mock is just an empty shell without any actual configuration values. - -If the goal is to only mock certain configuration values and retain the original configuration, the mocking instance -requires a spy: - -[source,java] ----- -@ConfigMapping(prefix = "app") -public interface AppConfig { - @WithDefault("app") - String name(); - - Info info(); - - interface Info { - @WithDefault("alias") - String alias(); - @WithDefault("10") - Integer count(); - } -} - -public static class AppConfigProducer { - @Inject - Config config; - - @Produces - @ApplicationScoped - @io.quarkus.test.Mock - AppConfig appConfig() { - AppConfig appConfig = config.unwrap(SmallRyeConfig.class).getConfigMapping(AppConfig.class); - AppConfig appConfigSpy = Mockito.spy(appConfig); - AppConfig.Info infoSpy = Mockito.spy(appConfig.info()); - Mockito.when(appConfigSpy.info()).thenReturn(infoSpy); - return appConfigSpy; - } -} ----- - -The `AppConfig` can be injected as a mock into a Quarkus test class with `@Inject`: - -[source,java] ----- -@QuarkusTest -class AppConfigTest { - @Inject - AppConfig appConfig; - - @Test - void localhost() { - Mockito.when(appConfig.name()).thenReturn("mocked-app"); - assertEquals("mocked-app", server.host()); - - Mockito.when(appConfig.info().alias()).thenReturn("mocked-alias"); - assertEquals("mocked-alias", server.info().alias()); - } -} ----- - -NOTE: Nested elements need to be spied individually by Mockito. - -[[config-properties]] -== [.line-through]#`@ConfigProperties`# (Deprecated) - -IMPORTANT: This feature will be removed soon, please update your code base and use `@ConfigMapping` instead. - -The `@io.quarkus.arc.config.ConfigProperties` annotation is able to group multiple related configuration values in its -own class: - -[source,java] ----- -package org.acme.config; - -import io.quarkus.arc.config.ConfigProperties; -import java.util.Optional; - -@ConfigProperties(prefix = "greeting") <1> -public class GreetingConfiguration { - - private String message; - private String suffix = "!"; <2> - private Optional name; - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public String getSuffix() { - return suffix; - } - - public void setSuffix(String suffix) { - this.suffix = suffix; - } - - public Optional getName() { - return name; - } - - public void setName(Optional name) { - this.name = name; - } -} ----- -<1> `prefix` is optional. If not set then the prefix to be used will be determined by the class name. In this case it -would still be `greeting` (since the `Configuration` suffix is removed). If the class were named -`GreetingExtraConfiguration` then the resulting default prefix would be `greeting-extra`. -<2> `!` will be the default value if `greeting.suffix` is not set. - -Inject the `GreetingResource` with CDI `@Inject`: - -[source,java] ----- -@Inject -GreetingConfiguration greetingConfiguration; ----- - -Another alternative style provided by Quarkus is to create `GreetingConfiguration` as an interface: - -[source,java] ----- -package org.acme.config; - -import io.quarkus.arc.config.ConfigProperties; -import org.eclipse.microprofile.config.inject.ConfigProperty; -import java.util.Optional; - -@ConfigProperties(prefix = "greeting") -public interface GreetingConfiguration { - - @ConfigProperty(name = "message") <1> - String message(); - - @ConfigProperty(defaultValue = "!") - String getSuffix(); <2> - - Optional getName(); <3> -} ----- -<1> The `@ConfigProperty` annotation is needed because the name of the configuration property that the method -corresponds does not follow the getter method naming conventions. -<2> In this case since `name` is not set, the corresponding property will be `greeting.suffix`. -<3> It is unnecessary to specify the `@ConfigProperty` annotation because the method name follows the getter method -naming conventions (`greeting.name` being the corresponding property) and no default value is required. - -When using `@ConfigProperties` on a class or an interface, if the value of one of its fields is not provided, the -application startup will fail, and a `javax.enterprise.inject.spi.DeploymentException` will be thrown. This does not -apply to `Optional` fields and fields with a default value. - -=== Additional notes on @ConfigProperties - -When using a regular class annotated with `@ConfigProperties` the class doesn't necessarily have to declare getters and -setters. Having simple public non-final fields is valid as well. - -Furthermore, the configuration classes support nested object configuration. Suppose there was a need to have an extra -layer of greeting configuration named `content` that would contain a few fields: - -[source,java] ----- -@ConfigProperties(prefix = "greeting") -public class GreetingConfiguration { - - public String message; - public String suffix = "!"; - public Optional name; - public ContentConfig content; <1> - - public static class ContentConfig { - public Integer prizeAmount; - public List recipients; - } -} ----- -<1> The name of the field (not the class name) will determine the name of the properties that are bound to the object. - -Setting the properties would occur in the normal manner: - -.application.properties -[source,properties] ----- -greeting.message = hello -greeting.name = quarkus -greeting.content.prize-amount=10 -greeting.content.recipients=Jane,John ----- - -Furthermore, classes annotated with `@ConfigProperties` can be annotated with Bean Validation annotations: - -[source,java] ----- -@ConfigProperties(prefix = "greeting") -public class GreetingConfiguration { - - @Size(min = 20) - public String message; - public String suffix = "!"; - -} ----- - -WARNING: For validation to work, the `quarkus-hibernate-validator` extension is required. - -=== Using same ConfigProperties with different prefixes - -Quarkus also supports the use of the same `@ConfigProperties` object with different prefixes for each injection point -using the `io.quarkus.arc.config.@ConfigPrefix` annotation. If `GreetingConfiguration` from above needs to be used for -both the `greeting` prefix and the `other` prefix: - -[source,java] ----- -@ConfigProperties(prefix = "greeting") -public class GreetingConfiguration { - - @Size(min = 20) - public String message; - public String suffix = "!"; - -} ----- - -[source,java] ----- -@ApplicationScoped -public class SomeBean { - - @Inject <1> - GreetingConfiguration greetingConfiguration; - - @ConfigPrefix("other") <2> - GreetingConfiguration otherConfiguration; - -} ----- -<1> At this injection point `greetingConfiguration` will use the `greeting` prefix since that is what has been defined -on `@ConfigProperties`. -<2> At this injection point `otherConfiguration` will use the `other` prefix from `@ConfigPrefix` instead of the -`greeting` prefix. Notice that in this case `@Inject` is not required. - -=== Combining ConfigProperties with build time conditions - -Quarkus allows you to define conditions evaluated at build time (`@IfBuildProfile`, `@UnlessBuildProfile`, -`@IfBuildProperty` and `@UnlessBuildProperty`) to enable or not the annotations `@ConfigProperties` and `@ConfigPrefix` -which gives you a very flexible way to map your configuration. - -Let's assume that the configuration of a service is mapped thanks to a `@ConfigProperties` and you don't need this part -of the configuration for your tests as it will be mocked, in that case you can define a build time condition like in -the next example: - -`ServiceConfiguration.java` -[source,java] ----- -@UnlessBuildProfile("test") <1> -@ConfigProperties -public class ServiceConfiguration { - public String user; - public String password; -} ----- -<1> The annotation `@ConfigProperties` is considered if and only if the active profile is not `test`. - -`SomeBean.java` -[source,java] ----- -@ApplicationScoped -public class SomeBean { - - @Inject - Instance serviceConfiguration; <1> - -} ----- -<1> As the configuration of the service could be missing, we need to use `Instance` as type at -the injection point. diff --git a/_versions/2.7/guides/config-reference.adoc b/_versions/2.7/guides/config-reference.adoc deleted file mode 100644 index 521382b5559..00000000000 --- a/_versions/2.7/guides/config-reference.adoc +++ /dev/null @@ -1,557 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Configuration Reference Guide - -include::./attributes.adoc[] - -:numbered: -:sectnums: -:sectnumlevels: 4 -:toc: - -IMPORTANT: The content of this guide has been revised and split into additional topics. Please check the <> section. - -In this reference guide we're going to describe various aspects of Quarkus configuration. A Quarkus application and -Quarkus itself (core and extensions) are both configured via the same mechanism that leverages -the https://github.com/smallrye/smallrye-config[SmallRye Config] API an implementation of the -https://microprofile.io/project/eclipse/microprofile-config[MicroProfile Config] specification. - -TIP: If you're looking for information how to make a Quarkus extension configurable then see the -<> guide. - -[[configuration-sources]] -== Config Sources - -By default, Quarkus reads configuration properties from multiple sources (by descending ordinal): - -1. (400) <> -2. (300) <> -3. (295) <> file in the current working directory -4. (260) <> in `$PWD/config/application.properties` -5. (250) <> `application.properties` in classpath -6. (100) <> -`META-INF/microprofile-config.properties` in classpath - -The final configuration is the aggregation of the properties defined by all these sources. A configuration property -lookup starts by the highest ordinal configuration source available and works it way down to other sources until a -match is found. This means that any configuration property may override a value just by setting a different value in a -higher ordinal config source. For example, a property configured using an environment property overrides the value -provided using the `application.properties` file. - -image::config-sources.png[align=center,align=center,width=90%] - -[[system-properties]] -=== System properties - -System properties can be handed to the application through the `-D` flag during startup. The following examples assign -the value `youshallnotpass` to the attribute `quarkus.datasource.password`. - -* For Quarkus dev mode: `./mvnw quarkus:dev -Dquarkus.datasource.password=youshallnotpass` -* For a runner jar: `java -Dquarkus.datasource.password=youshallnotpass -jar target/quarkus-app/quarkus-run.jar` -* For a native executable: `./target/myapp-runner -Dquarkus.datasource.password=youshallnotpass` - -[[environment-variables]] -=== Environment variables - -* For a runner jar: `export QUARKUS_DATASOURCE_PASSWORD=youshallnotpass ; java -jar target/quarkus-app/quarkus-run.jar` -* For a native executable: `export QUARKUS_DATASOURCE_PASSWORD=youshallnotpass ; ./target/myapp-runner` - -NOTE: Environment variables names follow the conversion rules specified by -link:https://github.com/eclipse/microprofile-config/blob/master/spec/src/main/asciidoc/configsources.asciidoc#default-configsources[MicroProfile Config]. - -[[env-file]] -=== `.env` file in the current working directory - -..env -[source,properties] ----- -QUARKUS_DATASOURCE_PASSWORD=youshallnotpass <1> ----- -<1> The name `QUARKUS_DATASOURCE_PASSWORD` the same conversion rules used for <>. - -For `dev` mode, this file can be placed in the root of the project, but it is advised to **not** check it in to version -control. - -IMPORTANT: Environment variables in the `.env` file are not available via the `System.getenv(String)` API. - -[[application-properties-file]] -=== Quarkus Application configuration file - -The Quarkus Application configuration file is loaded from the classpath resources, for instance -`src/main/resources/application.properties`, `src/test/resources/application.properties` or from a `jar` dependency that -contains an `application.properties` entry. Each `application.properties` found is treated as a separate `ConfigSource` -and follow the same rules as every other source (override per property). Additionally, the configuration file may also -reside in `$PWD/config/application.properties`. The loading starts from the config folder and then classpath order -(`application.properties` files in the application sources will have priority on the classloader loading order). - -.`application.properties` -[source,properties] ----- -greeting.message=hello <1> -quarkus.http.port=9090 <2> ----- -<1> This is a user-defined configuration property. -<2> This is a configuration property consumed by the `quarkus-vertx-http` extension. - -NOTE: The `config/application.properties` is also available in `dev` mode. The file needs to be placed inside the build -tool output directory (`target` for Maven and `build/classes/java/main` for Gradle). Keep in mind however that any -cleaning operation from the build tool like `mvn clean` or `gradle clean` will remove the `config` directory as well. - -[[microprofile-config-properties-file]] -=== MicroProfile Config configuration file - -The MicroProfile Config configuration file in `src/main/resources/META-INF/microprofile-config.properties`. - -.`microprofile-config.properties` -[source,properties] ----- -greeting.message=hello <1> -quarkus.http.port=9090 <2> ----- -<1> This is a user-defined configuration property. -<2> This is a configuration property consumed by the `quarkus-vertx-http` extension. - -TIP: It works in the exact same way as Quarkus Application configuration file `application.properties`. Recommendation -is to use Quarkus `application.properties`. - -=== Additional Config Sources - -Quarkus provides additional extensions which cover other configuration formats and stores: - -* xref:config-yaml.adoc[YAML] -* xref:vault.adoc[HashiCorp Vault] -* xref:consul-config.adoc[Consul] -* xref:spring-cloud-config-client.adoc[Spring Cloud] - -TIP: It is also possible to create a xref:config-extending-support.adoc#custom-config-source[Custom Config Source]. - -== Inject - -Quarkus uses https://microprofile.io/project/eclipse/microprofile-config[MicroProfile Config] annotations to inject the -configuration properties in the application. - -[source,java] ----- -@ConfigProperty(name = "greeting.message") <1> -String message; ----- -<1> You can use `@Inject @ConfigProperty` or just `@ConfigProperty`. The `@Inject` annotation is not necessary for -members annotated with `@ConfigProperty`. - -NOTE: If the application attempts to inject a configuration property that is not set, an error is thrown. - -[source,java] ----- -@ConfigProperty(name = "greeting.message") <1> -String message; - -@ConfigProperty(name = "greeting.suffix", defaultValue="!") <2> -String suffix; - -@ConfigProperty(name = "greeting.name") -Optional name; <3> ----- -<1> If you do not provide a value for this property, the application startup fails with `javax.enterprise.inject.spi.DeploymentException: No config value of type [class java.lang.String] exists for: greeting.message`. -<2> The default value is injected if the configuration does not provide a value for `greeting.suffix`. -<3> This property is optional - an empty `Optional` is injected if the configuration does not provide a value for `greeting.name`. - -TIP: Use xref:config-mappings.adoc#config-mappings[Config Mappings] to group similar configuration properties. - -=== Default Values - -If a property is associated with a default value (by way of the `defaultValue` attribute), and no configuration value -is supplied for the property, then rather than throwing a `javax.enterprise.inject.spi.DeploymentException`, the -default value will be used. The `defaultValue` value is expressed as a `String`, and uses the same conversion mechanism -used to process configuration values. Several Built-in Converters already exist for primitives, boxed primitives, and -other classes; for example: - -* Primitives: `boolean`, `byte`, `short`, etc. -* Boxed primitives: `java.lang.Boolean`, `java.lang.Byte`, `java.lang.Short`, etc. -* Optional containers: `java.util.Optional`, `java.util.OptionalInt`, `java.util.OptionalLong`, and `java.util.OptionalDouble` -* Java `enum` types -* JSR 310 `java.time.Duration` -* JDK networking `java.net.SocketAddress`, `java.net.InetAddress`, etc. - -As you might expect, these converters are `org.eclipse.microprofile.config.spi.Converter` implementations. Therefore -these converters comply with the Microprofile or custom implementation providers expression rules, like: - -* Boolean values will be `true` in cases "true", "1", "YES", "Y" "ON". Otherwise, value will be interpreted as false -* For float and double values the fractional digits must be separated by a dot `.` - -Note that when a combination of `Optional*` types and the `defaultValue` attribute are used, the defined `defaultValue` -will still be used and if no value is given for the property, the `Optional*` will be present and populated with the -converted default value. However, when the property is explicitly empty, the default value is not used and the -`Optional` will be empty. Consider this example: - -[source,properties] ----- -# missing value, optional property -greeting.name = ----- - -In this case, since `greeting.name` was configured to be `Optional*` up above, the corresponding property value will -be an empty `Optional` and execution will continue normally. This would be the case even if there was a default value -configured: the default value is *not* used if the property is explicitly cleared in the configuration. - -On the other hand, this example: - -[source,properties] ----- -# missing value, non-optional -greeting.suffix = ----- - -will result in a `java.util.NoSuchElementException: SRCFG02004: Required property greeting.message not found` on -startup and the default value will not be assigned. - -Below is an example of a Quarkus-supplied converter: - -[source,java] ----- -@ConfigProperty(name = "server.address", defaultValue = "192.168.1.1") -InetAddress serverAddress; ----- - -== Programmatically access - -The `org.eclipse.microprofile.config.ConfigProvider.getConfig()` API allows to access the Config API programmatically. -This API is mostly useful in situations where CDI injection is not available. - -[source,java] ----- -String databaseName = ConfigProvider.getConfig().getValue("database.name", String.class); -Optional maybeDatabaseName = ConfigProvider.getConfig().getOptionalValue("database.name", String.class); ----- - -IMPORTANT: Do not use `System.getProperty(String)` or `System.getEnv(String)` to retrieve configuration values. These -APIs are not configuration aware and do not support the features described in this guide. - -[[profiles]] -== Profiles - -We often need to configure differently our application depending on the target _environment_. For example, the local -development environment may be different from the production environment. - -Configuration Profiles allow for multiple configurations in the same file or separate files and select between them via -a profile name. - -=== Profile in the property name -To be able to set properties with the same name, each property needs to be prefixed with a percentage sign `%` followed -by the profile name and a dot `.` in the syntax `%{profile-name}.config.name`: - -.application.properties -[source,properties] ----- -quarkus.http.port=9090 -%dev.quarkus.http.port=8181 ----- - -The Quarkus HTTP port will be 9090. If the `dev` profile is active it will be 8181. - -Profiles in the `.env` file follow the syntax `_{PROFILE}_CONFIG_KEY=value`: - -..env -[source, properties] ----- -QUARKUS_HTTP_PORT=9090 -_DEV_QUARKUS_HTTP_PORT=8181 ----- - -If a profile does not define a value for a specific attribute, the _default_ (no profile) value is used: - -.application.properties -[source, properties] ----- -bar=”hello” -baz=”bonjour” -%dev.bar=”hallo” ----- - -With the `dev` profile enabled, the property `bar` has the value `hallo`, but the property `baz` has the value -`bonjour`. If the `prod` profile is enabled, `bar` has the value `hello` (as there is no specific value for the `prod` -profile), and `baz` the value `bonjour`. - -=== Default Profiles - -By default, Quarkus provides three profiles, that activate automatically in certain conditions: - -* *dev* - Activated when in development mode (i.e. `quarkus:dev`) -* *test* - Activated when running tests -* *prod* - The default profile when not running in development or test mode - -=== Custom Profiles - -It is also possible to create additional profiles and activate them with the `quarkus.profile` configuration property. A -single config property with the new profile name is the only requirement: - -.application.properties -[source,properties] ----- -quarkus.http.port=9090 -%staging.quarkus.http.port=9999 ----- - -Setting `quarkus.profile` to `staging` will activate the `staging` profile. - -IMPORTANT: Only a single profile may be active at a time. - -[NOTE] -==== -The `io.quarkus.runtime.configuration.ProfileManager#getActiveProfile` API provides a way to retrieve the active profile -programmatically. - -Using `@ConfigProperty("quarkus.profile")` will *not* work properly. -==== - -=== Profile aware files - -In this case, properties for a specific profile may reside in an `application-{profile}.properties` named file. The previous -example may be expressed as: - -.application.properties -[source,properties] ----- -quarkus.http.port=9090 -%staging.quarkus.http.test-port=9091 ----- - -.application-staging.properties -[source,properties] ----- -quarkus.http.port=9190 -quarkus.http.test-port=9191 ----- - -[NOTE] -==== -In this style, the configuration names in the profile aware file do not need to be prefixed with the profile name. - -Properties in the profile aware file have priority over profile aware properties defined in the main file. -==== - -=== Parent Profile - -A Parent Profile adds one level of hierarchy to the current profile. The configuration `quarkus.config.profile.parent` -accepts a single profile name. - -When the Parent Profile is active, if a property cannot be found in the current active Profile, the config lookup -fallbacks to the Parent Profile. Consider: - -[source,properties] ----- -quarkus.profile=dev -quarkus.config.profile.parent=common - -%common.quarkus.http.port=9090 -%dev.quarkus.http.ssl-port=9443 - -quarkus.http.port=8080 -quarkus.http.ssl-port=8443 ----- - -Then - -* The active profile is `dev` -* The parent profile is `common` -* `quarkus.http.port` is 9090 -* `quarkus.http.ssl-port` is 9443 - -=== Default Runtime Profile - -The default Quarkus runtime profile is set to the profile used to build the application: - -[source,bash] ----- -./mvnw package -Pnative -Dquarkus.profile=prod-aws -./target/my-app-1.0-runner // <1> ----- -<1> The command will run with the `prod-aws` profile. This can be overridden using the `quarkus.profile` configuration. - -[[property-expressions]] -== Property Expressions - -Quarkus provides property expressions expansion on configuration values. An expression string is -a mix of plain strings and expression segments, which are wrapped by the sequence `${ ... }`. - -These expressions are resolved when the property is read. So if the configuration property is build time the property -expression will be resolved at build time. If the configuration property is overridable at runtime it will be resolved -at runtime. - -Consider: - -.application.properties -[source,properties] ----- -remote.host=quarkus.io -callable.url=https://${remote.host}/ ----- - -The resolved value of the `callable.url` property is `https://quarkus.io/`. - -Another example would be defining different database servers by profile: - -.application.properties -[source,properties] ----- -%dev.quarkus.datasource.jdbc.url=jdbc:mysql://localhost:3306/mydatabase?useSSL=false -quarkus.datasource.jdbc.url=jdbc:mysql://remotehost:3306/mydatabase?useSSL=false ----- - -can be simplified to: - -.application.properties -[source,properties] ----- -%dev.application.server=localhost -application.server=remotehost - -quarkus.datasource.jdbc.url=jdbc:mysql://${application.server}:3306/mydatabase?useSSL=false ----- - -Additionally, the Expression Expansion engine supports the following segments: - -* `${expression:value}` - Provides a default value after the `:` if the expansion doesn't find a value. -* `${my.prop${compose}}` - Composed expressions. Inner expressions are resolved first. -* `${my.prop}${my.prop}` - Multiple expressions. - -If an expression cannot be expanded and no default is supplied a `NoSuchElementException` is thrown. - -NOTE: Expressions lookups are performed in all config sources. The expression values and expansion values may reside in -different config sources. - -=== With Environment Variables - -Property Expressions also work with Environment Variables. - -.application.properties -[source,properties] ----- -remote.host=quarkus.io -application.host=${HOST:${remote.host}} ----- - -This will expand the `HOST` environment variable and use the value of the property `remote.host` as the default value -if `HOST` is not set. - -== Accessing a generating UUID - -The default config source from Quarkus provides a random UUID value. -It generates the UUID at startup time. -So, the value changes between startups, including reloads in dev mode. - -You can access the generated value using the `quarkus.uuid` property. -Use <> to access it: `${quarkus.uuid}`. -For example, it can be useful to configure a Kafka client with a unique consumer group: - -[source, properties] ----- -mp.messaging.incoming.prices.group.id=${quarkus.uuid} ----- - -== Clearing properties - -Run time properties which are optional, and which have had values set at build time or which have a default value, -may be explicitly cleared by assigning an empty string to the property. Note that this will _only_ affect -runtime properties, and will _only_ work with properties whose values are not required. - -.application.properties -[source,properties] ----- -remote.host=quarkus.io ----- - -A lookup to `remote.host` with `-Dremote.host=` will throw an Exception, because the system property cleared the value. - -[[indexed-properties]] -== Indexed Properties - -A config value which contains unescaped commas may be converted to `Collection`. This works for simple cases, but it -becomes cumbersome and limited for more advanced cases. - -Indexed Properties provide a way to use indexes in config property names to map specific elements in a `Collection` -type. Since the indexed element is part of the property name and not contained in the value, this can also be used to -map complex object types as `Collectionª elements. Consider: - -.application.properties -[source,properties] ----- -my.collection=dog,cat,turtle - -my.indexed.collection[0]=dog -my.indexed.collection[1]=cat -my.indexed.collection[2]=turtle ----- - -The indexed property syntax uses the property name and square brackets `[ ] with an index in between. - -A call to `Config#getValues("my.collection", String.class)`, will automatically create and convert a `List` -that contains the values `dog`, `cat` and `turtle`. A call to `Config#getValues("my.indexed.collection", String.class)` -returns the exact same result. If the same property name exists in both froms (regular and indexed), the regular -value has priority. - -The indexed property is sorted by their index before being added to the target `Collection`. Any gaps contained in the -indexes do not resolve to the target `Collection`, which means that the `Collection` result will store all values -without any gaps. - -IMPORTANT: Indexed Properties are not supported in Environment Variables. - -[[configuring_quarkus]] -== Configuring Quarkus - -Quarkus itself is configured via the same mechanism as your application. Quarkus reserves the `quarkus.` namespace -for its own configuration. For example to configure the HTTP server port you can set `quarkus.http.port` in -`application.properties`. All the Quarkus configuration properties are xref:all-config.adoc[documented and searchable]. - -[IMPORTANT] -==== -As mentioned above, properties prefixed with `quarkus.` are effectively reserved for configuring Quarkus itself and its -extensions. Therefore, the `quarkus.` prefix should **never** be used for application specific properties. -==== - -=== Build Time configuration - -Some Quarkus configurations only take effect during build time, meaning is not possible to change them at runtime. These -configurations are still available at runtime but as read-only and have no effect in Quarkus behaviour. A change to any -of these configurations requires a rebuild of the application itself to reflect changes of such properties. - -TIP: The properties fixed at build time are marked with a lock icon (icon:lock[]) in the xref:all-config.adoc[list of all configuration options]. - -However, some extensions do define properties _overridable at runtime_. A simple example is the database URL, username -and password which is only known specifically in your target environment, so they can be set and influence the -application behaviour at runtime. - -== Change build time properties after your application has been published - -If you are in the rare situation that you need to change the build time configuration after your application is built, then check out how xref:reaugmentation.adoc[re-augmentation] can be used to rebuild the augmentation output for a different build time configuration. - -[[additional-information]] -== Additional Information - -* xref:config-yaml.adoc[YAML ConfigSource Extension] -* xref:vault.adoc[HashiCorp Vault ConfigSource Extension] -* xref:consul-config.adoc[Consul ConfigSource Extension] -* xref:spring-cloud-config-client.adoc[Spring Cloud ConfigSource Extension] -* xref:config-mappings.adoc[Mapping configuration to objects] -* xref:config-extending-support.adoc[Extending configuration support] - -Quarkus relies on link:https://github.com/smallrye/smallrye-config/[SmallRye Config] and inherits its features: - -* Additional ``ConfigSource``s -* Additional ``Converter``s -* Indexed properties -* Parent profile -* Interceptors for configuration value resolution -* Relocate configuration properties -* Fallback configuration properties -* Logging -* Hide secrets - -For more information, please check the -link:https://smallrye.io/docs/smallrye-config/index.html[SmallRye Config documentation]. - -== Configuration Reference - -include::{generated-dir}/config/quarkus-config-config.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/config-yaml.adoc b/_versions/2.7/guides/config-yaml.adoc deleted file mode 100644 index dd358371c6f..00000000000 --- a/_versions/2.7/guides/config-yaml.adoc +++ /dev/null @@ -1,210 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= YAML Configuration - -include::./attributes.adoc[] - -:toc: - -https://en.wikipedia.org/wiki/YAML[YAML] is a very popular format. Kubernetes relies heavily on the YAML format to -write the various resource descriptors. - -Quarkus offers the possibility to use YAML in addition to the standard Java Properties file. - -== Enabling YAML Configuration - -To enable YAML configuration, add the `quarkus-config-yaml` extension: - -:add-extension-extensions: quarkus-config-yaml -include::includes/devtools/extension-add.adoc[] - -You can also just add the following dependency into your project: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-config-yaml - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-config-yaml") ----- - -Remove the `src/main/resources/application.properties` and create a `src/main/resources/application.yaml` file. - -NOTE: If both are present, Quarkus prioritizes configuration properties from the YAML file first and then from the -Properties file. However, to avoid confusion, we recommend removing the Properties file. - -TIP: Quarkus supports both the `yml` and `yaml` file extensions. - -=== Example - -The following snippets provide examples of YAML configuration: - -[source,yaml] ----- -# YAML supports comments -quarkus: - datasource: - db-kind: postgresql - jdbc: - url: jdbc:postgresql://localhost:5432/some-database - -# REST Client configuration property -quarkus: - rest-client: - org.acme.rest.client.ExtensionsService: - url: https://stage.code.quarkus.io/api ----- - -[source,yaml] ----- -# For configuration property names that use quotes, do not split the string inside the quotes -quarkus: - log: - category: - "io.quarkus.category": - level: INFO ----- - -[source, yaml] ----- -quarkus: - datasource: - url: jdbc:postgresql://localhost:5432/quarkus_test - - hibernate-orm: - database: - generation: drop-and-create - - oidc: - enabled: true - auth-server-url: http://localhost:8180/auth/realms/quarkus - client-id: app - - -app: - frontend: - oidc-realm: quarkus - oidc-app: app - oidc-server: http://localhost:8180/auth - -# With profiles -"%test": - quarkus: - oidc: - enabled: false - security: - users: - file: - enabled: true - realm-name: quarkus - plain-text: true ----- - -== Profiles - -As you can see in the previous snippet, you can use xref:config-reference.adoc#profiles[profiles] in YAML. The profile -key requires double quotes: `"%test"`. This is because YAML does not support keys starting with `%`. - -Everything under the `"%test"` key is only enabled when the `test` profile is active. For example, in the previous -snippet it disables OIDC (`quarkus.oidc.enabled: false`), whereas without the `test` profile, it would be enabled. - -As for the Java Properties format, you can define your own profile: - -[source, yaml] ----- -quarkus: - http: - port: 8081 - -"%staging": - quarkus: - http: - port: 8082 ----- - -If you enable the `staging` profile, the HTTP port will be 8082, whereas it would be 8081 otherwise. - -The YAML configuration also support profile aware files. In this case, properties for a specific profile may reside in -an `application-{profile}.yaml` named file. The previous example may be expressed as: - -.application.yaml -[source, yaml] ----- -quarkus: - http: - port: 8081 ----- - -.application-staging.yaml -[source, yaml] ----- -quarkus: - http: - port: 8082 ----- - -== Expressions - -The YAML format also supports xref:config-reference.adoc#expressions[expressions], using the same format as Java -Properties: - -[source, yaml] ----- -mach: 3 -x: - factor: 2.23694 - -display: - mach: ${mach} - unit: - name: "mph" - factor: ${x.factor} ----- - -Note that you can reference nested properties using the `.` (dot) separator as in `{x.factor}`. - -== External application.yaml file - -The `application.yaml` file may also be placed in `config/application.yaml` to specialize the runtime configuration. The -file has to be present in the root of the working directoryrelative to the Quarkus application runner: - -[source, text] ----- -. -├── config -│ └── application.yaml -├── my-app-runner ----- - -The values from this file override any values from the regular `application.yaml` file if exists. - -== Configuration key conflicts - -The MicroProfile Config specification defines configuration keys as an arbitrary `.`-delimited string. However, -structured formats like YAML only support a subset of the possible configuration namespace. For example, consider the -two configuration properties `quarkus.http.cors` and `quarkus.http.cors.methods`. One property is the prefix of another, -so it may not be immediately evident how to specify both keys in your YAML configuration. - -This is solved by using a `null` key (represented by `~`) for any YAML property which is a prefix of another one: - -[source,yaml] ----- -quarkus: - http: - cors: - ~: true - methods: GET,PUT,POST ----- - -YAML `null` keys are not included in the assembly of the configuration property name, allowing them to be used -in any level for disambiguating configuration keys. diff --git a/_versions/2.7/guides/config.adoc b/_versions/2.7/guides/config.adoc deleted file mode 100644 index 3c09b95795b..00000000000 --- a/_versions/2.7/guides/config.adoc +++ /dev/null @@ -1,243 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Configuring Your Application - -include::./attributes.adoc[] - -IMPORTANT: The content of this guide and been revised and split into additional topics. Please check the -<> section. - -:toc: - -Hardcoded values in your code are a _no go_ (even if we all did it at some point ;-)). -In this guide, we will learn how to configure a Quarkus application. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `config-quickstart` {quickstarts-tree-url}/config-quickstart[directory]. - -== Create the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: config-quickstart -:create-app-extensions: resteasy -include::includes/devtools/create-app.adoc[] - -It generates: - -* the Maven structure -* a landing page accessible on `http://localhost:8080` -* example `Dockerfile` files for both `native` and `jvm` modes -* the application configuration file - -== Create the configuration - -A Quarkus application uses the https://github.com/smallrye/smallrye-config[SmallRye Config] API to provide all -mechanisms related with configuration. - -By default, Quarkus reads configuration properties from <>. -For the purpose of this guide, we will use an application configuration file located in `src/main/resources/application.properties`. -Edit the file with the following content: - -.application.properties -[source,properties] ----- -# Your configuration properties -greeting.message = hello -greeting.name = quarkus ----- - -== Create a REST resource - -Create the `org.acme.config.GreetingResource` REST resource with the following content: - -[source,java] ----- -package org.acme.config; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/greeting") -public class GreetingResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return "Hello RESTEasy"; - } -} ----- - -== Inject the configuration - -Quarkus uses https://microprofile.io/project/eclipse/microprofile-config[MicroProfile Config] annotations to inject the -configuration properties in the application. - -[source,java] ----- -@ConfigProperty(name = "greeting.message") <1> -String message; ----- -<1> You can use `@Inject @ConfigProperty` or just `@ConfigProperty`. The `@Inject` annotation is not necessary for -members annotated with `@ConfigProperty`. - -NOTE: If the application attempts to inject a configuration property that is not set, an error is thrown. - -Edit the `org.acme.config.GreetingResource`, and introduce the following configuration properties: - -[source,java] ----- -@ConfigProperty(name = "greeting.message") <1> -String message; - -@ConfigProperty(name = "greeting.suffix", defaultValue="!") <2> -String suffix; - -@ConfigProperty(name = "greeting.name") -Optional name; <3> ----- -<1> If you do not provide a value for this property, the application startup fails with `javax.enterprise.inject.spi.DeploymentException: No config value of type [class java.lang.String] exists for: greeting.message`. -<2> The default value is injected if the configuration does not provide a value for `greeting.suffix`. -<3> This property is optional - an empty `Optional` is injected if the configuration does not provide a value for `greeting.name`. - -Now, modify the `hello` method to use the injected properties: - -[source,java] ----- -@GET -@Produces(MediaType.TEXT_PLAIN) -public String hello() { - return message + " " + name.orElse("world") + suffix; -} ----- - -TIP: Use `@io.smallrye.config.ConfigMapping` annotation to group multiple configurations in a single interface. Please, -check the https://smallrye.io/docs/smallrye-config/main/mapping/mapping.html[Config Mappings] documentation. - -== Update the test - -We also need to update the functional test to reflect the changes made to the endpoint. -Create the `src/test/java/org/acme/config/GreetingResourceTest.java` file with the following content: - -[source,java] ----- -package org.acme.config; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -public class GreetingResourceTest { - - @Test - public void testHelloEndpoint() { - given() - .when().get("/greeting") - .then() - .statusCode(200) - .body(is("hello quarkus!")); // Modified line - } - -} ----- - -== Package and run the application - -Run the application with: - -include::includes/devtools/dev.adoc[] - -Open your browser to http://localhost:8080/greeting. - -Changing the configuration file is immediately reflected. -You can add the `greeting.suffix`, remove the other properties, change the values, etc. - -As usual, the application can be packaged using: - -include::includes/devtools/build.adoc[] - -and executed using `java -jar target/quarkus-app/quarkus-run.jar`. - -You can also generate the native executable with: - -include::includes/devtools/build-native.adoc[] - -== Programmatically access the configuration - -The `org.eclipse.microprofile.config.ConfigProvider.getConfig()` API allows to access the Config API programmatically. -This API is mostly useful in situations where CDI injection is not available. - -[source,java] ----- -String databaseName = ConfigProvider.getConfig().getValue("database.name", String.class); -Optional maybeDatabaseName = ConfigProvider.getConfig().getOptionalValue("database.name", String.class); ----- - -== Configuring Quarkus - -Quarkus itself is configured via the same mechanism as your application. Quarkus reserves the `quarkus.` namespace -for its own configuration. For example to configure the HTTP server port you can set `quarkus.http.port` in -`application.properties`. All the Quarkus configuration properties are xref:all-config.adoc[documented and searchable]. - -[IMPORTANT] -==== -As mentioned above, properties prefixed with `quarkus.` are effectively reserved for configuring Quarkus itself and its -extensions. Therefore, the `quarkus.` prefix should **never** be used for application specific properties. -==== - -=== Build Time configuration - -Some Quarkus configurations only take effect during build time, meaning is not possible to change them at runtime. These -configurations are still available at runtime but as read-only and have no effect in Quarkus behaviour. A change to any -of these configurations requires a rebuild of the application itself to reflect changes of such properties. - -TIP: The properties fixed at build time are marked with a lock icon (icon:lock[]) in the xref:all-config.adoc[list of all configuration options]. - -However, some extensions do define properties _overridable at runtime_. A simple example is the database URL, username -and password which is only known specifically in your target environment, so they can be set and influence the -application behaviour at runtime. - -[[additional-information]] -== Additional Information - -* xref:config-reference.adoc[Configuration Reference Guide] -* xref:config-yaml.adoc[YAML ConfigSource Extension] -* xref:vault.adoc[HashiCorp Vault ConfigSource Extension] -* xref:consul-config.adoc[Consul ConfigSource Extension] -* xref:spring-cloud-config-client.adoc[Spring Cloud ConfigSource Extension] -* xref:config-mappings.adoc[Mapping configuration to objects] -* xref:config-extending-support.adoc[Extending configuration support] - -Quarkus relies on link:https://github.com/smallrye/smallrye-config/[SmallRye Config] and inherits its features: - -* Additional ``ConfigSource``s -* Additional ``Converter``s -* Indexed properties -* Parent profile -* Interceptors for configuration value resolution -* Relocate configuration properties -* Fallback configuration properties -* Logging -* Hide secrets - -For more information, please check the -link:https://smallrye.io/docs/smallrye-config/index.html[SmallRye Config documentation]. diff --git a/_versions/2.7/guides/container-image.adoc b/_versions/2.7/guides/container-image.adoc deleted file mode 100644 index faa860b46e7..00000000000 --- a/_versions/2.7/guides/container-image.adoc +++ /dev/null @@ -1,187 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Container Images - -include::./attributes.adoc[] - -Quarkus provides extensions for building (and pushing) container images. Currently it supports: - -- <<#jib,Jib>> -- <<#docker,Docker>> -- <<#s2i,S2I>> -- <<#buildpack,Buildpack>> - -== Container Image extensions - -[#jib] -=== Jib - -The extension `quarkus-container-image-jib` is powered by https://github.com/GoogleContainerTools/jib[Jib] for performing container image builds. -The major benefit of using Jib with Quarkus is that all the dependencies (everything found under `target/lib`) are cached in a different layer than the actual application making rebuilds really fast and small (when it comes to pushing). -Another important benefit of using this extension is that it provides the ability to create a container image without having to have any dedicated client side tooling (like Docker) or running daemon processes (like the Docker daemon) -when all that is needed is the ability to push to a container image registry. - -To use this feature, add the following extension to your project: - -:add-extension-extensions: container-image-jib -include::includes/devtools/extension-add.adoc[] - -WARNING: In situations where all that is needed to build a container image and no push to a registry is necessary (essentially by having set `quarkus.container-image.build=true` and left `quarkus.container-image.push` unset - it defaults to `false`), then this extension creates a container image and registers -it with the Docker daemon. This means that although Docker isn't used to build the image, it is nevertheless necessary. Also note that using this mode, the built container image *will* -show up when executing `docker images`. - -==== Including extra files - -There are cases when additional files (other than ones produced by the Quarkus build) need to be added to a container image. -To support these cases, Quarkus copies any file under `src/main/jib` into the built container image (which is essentially the same -idea that the Jib Maven and Gradle plugins support). -For example, the presence of `src/main/jib/foo/bar` would result in `/foo/bar` being added into the container filesystem. - -==== JVM Debugging - -There are cases where the built container image may need to have Java debugging conditionally enabled at runtime. - -When the base image has not been changed (and therefore `ubi8/openjdk-11-runtime` or `ubi8/openjdk-17-runtime` is used), then the `quarkus.jib.jvm-arguments` configuration property can be used in order to -make the JVM listen on the debug port at startup. - -The exact configuration is: - -[source,properties] ----- -quarkus.jib.jvm-arguments=-agentlib:jdwp=transport=dt_socket\\,server=y\\,suspend=n\\,address=*:5005 ----- - -Other base images might provide launch scripts that enable debugging when an environment variable is set, in which case you would set than environment variable when launching the container. - -Finally, the `quarkus.jib.jvm-entrypoint` configuration property can be used to completely override the container entry point and can thus be used to either hard code the JVM debug configuration or point to a script that handles the details. - -[#docker] -=== Docker - -The extension `quarkus-container-image-docker` is using the Docker binary and the generated Dockerfiles under `src/main/docker` in order to perform Docker builds. - -To use this feature, add the following extension to your project. - -:add-extension-extensions: container-image-docker -include::includes/devtools/extension-add.adoc[] - -[#s2i] -=== S2I - -The extension `quarkus-container-image-s2i` is using S2I binary builds in order to perform container builds inside the OpenShift cluster. -The idea behind the binary build is that you just upload the artifact and its dependencies to the cluster and during the build they will be merged to a builder image (defaults to `fabric8/s2i-java`). - -The benefit of this approach, is that it can be combined with OpenShift's `DeploymentConfig` that makes it easy to roll out changes to the cluster. - -To use this feature, add the following extension to your project. - -:add-extension-extensions: container-image-s2i -include::includes/devtools/extension-add.adoc[] - -S2I builds require creating a `BuildConfig` and two `ImageStream` resources, one for the builder image and one for the output image. -The creation of such objects is being taken care of by the Quarkus Kubernetes extension. - - -[#buildpack] -=== Buildpack - -The extension `quarkus-container-image-buildpack` is using buildpacks in order to perform container image builds. -Under the hood buildpacks will use a Docker daemon for the actual build. -While buildpacks support alternatives to Docker, this extension will only work with Docker. - -Additionally, the user will have to configure which build image to use (no default image is provided). For example: - -[source,properties] ----- -quarkus.buildpack.jvm-builder-image= ----- - -or for native: - -[source,properties] ----- -quarkus.buildpack.native-builder-image= ----- - -To use this feature, add the following extension to your project. - -:add-extension-extensions: container-image-buildpack -include::includes/devtools/extension-add.adoc[] - -NOTE: When using the buildpack container image extension it is strongly advised to avoid adding `quarkus.container-image.build=true` in your properties configuration as it might trigger nesting builds within builds. It's preferable to pass it as an option to the build command instead. - -== Building - -To build a container image for your project, `quarkus.container-image.build=true` needs to be set using any of the ways that Quarkus supports. - -:build-additional-parameters: -Dquarkus.container-image.build=true -include::includes/devtools/build.adoc[] -:!build-additional-parameters: - -NOTE: If you ever want to build a native container image and already have an existing native image you can set `-Dquarkus.native.reuse-existing=true` and the native image build will not be re-run. - -== Pushing - -To push a container image for your project, `quarkus.container-image.push=true` needs to be set using any of the ways that Quarkus supports. - -:build-additional-parameters: -Dquarkus.container-image.push=true -include::includes/devtools/build.adoc[] -:!build-additional-parameters: - -NOTE: If no registry is set (using `quarkus.container-image.registry`) then `docker.io` will be used as the default. - -== Selecting among multiple extensions - -It does not make sense to use multiple extension as part of the same build. When multiple container image extensions are present, an error will be raised to inform the user. The user can either remove the unneeded extensions or select one using `application.properties`. - -For example, if both `container-image-docker` and `container-image-s2i` are present and the user needs to use `container-image-docker`: - -[source,properties] ----- -quarkus.container-image.builder=docker ----- - -== Customizing - -The following properties can be used to customize the container image build process. - -=== Container Image Options - -include::{generated-dir}/config/quarkus-container-image.adoc[opts=optional, leveloffset=+1] - -==== Using CI Environments - -Various CI environments provide a ready to use container-image registry which can be combined with the container-image Quarkus extensions in order to -effortlessly create and push a Quarkus application to said registry. - -For example, https://gitlab.com/[GitLab] provides such a registry and in the provided CI environment, -makes available the `CI_REGISTRY_IMAGE` environment variable -(see GitLab's https://docs.gitlab.com/ee/ci/variables/[documentation]) for more information), which can be used in Quarkus like so: - -[source,properties] ----- -quarkus.container-image.image=${CI_REGISTRY_IMAGE} ----- - -NOTE: See xref:config.adoc#combine-property-env-var[this] for more information on how to combine properties with environment variables. - -=== Jib Options - -In addition to the generic container image options, the `container-image-jib` also provides the following options: - -include::{generated-dir}/config/quarkus-container-image-jib.adoc[opts=optional, leveloffset=+1] - -=== Docker Options - -In addition to the generic container image options, the `container-image-docker` also provides the following options: - -include::{generated-dir}/config/quarkus-container-image-docker.adoc[opts=optional, leveloffset=+1] - -=== S2I Options - -In addition to the generic container image options, the `container-image-s2i` also provides the following options: - -include::{generated-dir}/config/quarkus-container-image-s2i.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/context-propagation.adoc b/_versions/2.7/guides/context-propagation.adoc deleted file mode 100644 index fcfa1129b53..00000000000 --- a/_versions/2.7/guides/context-propagation.adoc +++ /dev/null @@ -1,293 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Context Propagation in Quarkus - -include::./attributes.adoc[] - -Traditional blocking code uses link:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ThreadLocal.html[`ThreadLocal`] - variables to store contextual objects in order to avoid -passing them as parameters everywhere. Many Quarkus extensions require those contextual objects to operate -properly: xref:rest-json.adoc[RESTEasy], xref:cdi-reference.adoc[ArC] and xref:transaction.adoc[Transaction] -for example. - -If you write reactive/async code, you have to cut your work into a pipeline of code blocks that get executed -"later", and in practice after the method you defined them in have returned. As such, `try/finally` blocks -as well as `ThreadLocal` variables stop working, because your reactive code gets executed in another thread, -after the caller ran its `finally` block. - -link:https://github.com/smallrye/smallrye-context-propagation[SmallRye Context Propagation] an implementation of -link:https://github.com/eclipse/microprofile-context-propagation[MicroProfile Context Propagation] was made to -make those Quarkus extensions work properly in reactive/async settings. It works by capturing those contextual -values that used to be in thread-locals, and restoring them when your code is called. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `context-propagation-quickstart` {quickstarts-tree-url}/context-propagation-quickstart[directory]. - -== Setting it up - -If you are using link:http://smallrye.io/smallrye-mutiny[Mutiny] (the `quarkus-mutiny` extension), you just need to add the -the `quarkus-smallrye-context-propagation` extension to enable context propagation. - -In other words, add the following dependencies to your `pom.xml`: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - - io.quarkus - quarkus-resteasy-mutiny - - - - io.quarkus - quarkus-smallrye-context-propagation - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -// RESTEasy support extensions if not already included -implementation("io.quarkus:quarkus-resteasy-mutiny") -// Context Propagation extension -implementation("io.quarkus:quarkus-smallrye-context-propagation") ----- - -With this, you will get context propagation for ArC, RESTEasy and transactions, if you are using them. - -== Usage example with Mutiny - -[TIP] -.Mutiny -==== -This section uses Mutiny reactive types. -If you are not familiar with Mutiny, check xref:mutiny-primer.adoc[Mutiny - an intuitive reactive programming library]. -==== - -Let's write a REST endpoint that reads the next 3 items from a xref:kafka.adoc[Kafka topic], stores them in a database using -xref:hibernate-orm-panache.adoc[Hibernate ORM with Panache] (all in the same transaction) before returning -them to the client, you can do it like this: - -[source,java] ----- - // Get the prices stream - @Inject - @Channel("prices") Publisher prices; - - @Transactional - @GET - @Path("/prices") - @Produces(MediaType.SERVER_SENT_EVENTS) - @SseElementType(MediaType.TEXT_PLAIN) - public Publisher prices() { - // get the next three prices from the price stream - return Multi.createFrom().publisher(prices) - .select().first(3) - .map(price -> { - // store each price before we send them - Price priceEntity = new Price(); - priceEntity.value = price; - // here we are all in the same transaction - // thanks to context propagation - priceEntity.persist(); - return price; - // the transaction is committed once the stream completes - }); - } ----- - -Notice that thanks to Mutiny support for context propagation, this works out of the box. -The 3 items are persisted using the same transaction and this transaction is committed when the stream completes. - -== Usage example for `CompletionStage` - -If you are using link:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/CompletionStage.html[`CompletionStage`] -you need manual context propagation. You can do that by injecting a `ThreadContext` -or `ManagedExecutor` that will propagate every context. For example, here we use the xref:vertx.adoc[Vert.x Web Client] -to get the list of Star Wars people, then store them in the database using -xref:hibernate-orm-panache.adoc[Hibernate ORM with Panache] (all in the same transaction) before returning -them to the client as JSON using xref:rest-json.adoc[Jackson or JSON-B]: - -[source,java] ----- - @Inject ThreadContext threadContext; - @Inject ManagedExecutor managedExecutor; - @Inject Vertx vertx; - - @Transactional - @GET - @Path("/people") - public CompletionStage> people() throws SystemException { - // Create a REST client to the Star Wars API - WebClient client = WebClient.create(vertx, - new WebClientOptions() - .setDefaultHost("swapi.dev") - .setDefaultPort(443) - .setSsl(true)); - // get the list of Star Wars people, with context capture - return threadContext.withContextCapture(client.get("/api/people/").send()) - .thenApplyAsync(response -> { - JsonObject json = response.bodyAsJsonObject(); - List persons = new ArrayList<>(json.getInteger("count")); - // Store them in the DB - // Note that we're still in the same transaction as the outer method - for (Object element : json.getJsonArray("results")) { - Person person = new Person(); - person.name = ((JsonObject) element).getString("name"); - person.persist(); - persons.add(person); - } - return persons; - }, managedExecutor); - } ----- - -Using `ThreadContext` or `ManagedExecutor` you can wrap most useful functional types and `CompletionStage` -in order to get context propagated. - -[NOTE] -==== -The injected `ManagedExecutor` uses the Quarkus thread pool. -==== - -== Overriding which contexts are propagated - -By default, all available contexts are propagated. However, you can override this behaviour in several ways. - -=== Using configuration - -The following configuration properties allow you to specify the default sets of propagated contexts: - -[cols="1,1,1"] -|=== -|Configuration Key|Description|Default Value - -|`mp.context.ThreadContext.propagated` -|The comma-separated set of propagated contexts -|`Remaining` (all non-explicitly list contexts) - -|`mp.context.ThreadContext.cleared` -|The comma-separated set of cleared contexts -|`None` (no context), unless neither the propagated nor cleared sets contain `Remaining`, in which case the default is `Remaining` (all non-explicitly listed contexts) - -|`mp.context.ThreadContext.unchanged` -|The comma-separated set of unchanged contexts -|`None` (no context) -|=== - -The following contexts are available in Quarkus either out of the box, or depending on whether you include -their extensions: - -[cols="1,1,1"] -|=== -|Context Name|Name Constant|Description - -|`None` -|https://javadoc.io/static/org.eclipse.microprofile.context-propagation/microprofile-context-propagation-api/1.2/org/eclipse/microprofile/context/ThreadContext.html#NONE[`ThreadContext.NONE`] -|Can be used to specify an empty set of contexts, but setting the value to empty works too - -|`Remaining` -|https://javadoc.io/static/org.eclipse.microprofile.context-propagation/microprofile-context-propagation-api/1.2/org/eclipse/microprofile/context/ThreadContext.html#ALL_REMAINING[`ThreadContext.ALL_REMAINING`] -|All the contexts that are not explicitly listed in other sets - -|`Transaction` -|https://javadoc.io/static/org.eclipse.microprofile.context-propagation/microprofile-context-propagation-api/1.2/org/eclipse/microprofile/context/ThreadContext.html#TRANSACTION[`ThreadContext.TRANSACTION`] -|The JTA transaction context - -|`CDI` -|https://javadoc.io/static/org.eclipse.microprofile.context-propagation/microprofile-context-propagation-api/1.2/org/eclipse/microprofile/context/ThreadContext.html#CDI[`ThreadContext.CDI`] -|The CDI (ArC) context - -|`Servlet` -|N/A -|The servlet context - -|`JAX-RS` -|N/A -|The RESTEasy Classic context - -|`Application` -|https://javadoc.io/static/org.eclipse.microprofile.context-propagation/microprofile-context-propagation-api/1.2/org/eclipse/microprofile/context/ThreadContext.html#APPLICATION[`ThreadContext.APPLICATION`] -|The current `ThreadContextClassLoader` -|=== - -=== Overriding the propagated contexts using annotations - -In order for automatic context propagation, such as Mutiny uses, to be overridden in specific methods, -you can use the https://javadoc.io/doc/io.smallrye/smallrye-context-propagation-api/latest/io/smallrye/context/api/CurrentThreadContext.html[`@CurrentThreadContext`] -annotation: - -[source,java] ----- - // Get the prices stream - @Inject - @Channel("prices") Publisher prices; - - @GET - @Path("/prices") - @Produces(MediaType.SERVER_SENT_EVENTS) - @SseElementType(MediaType.TEXT_PLAIN) - // Get rid of all context propagation, since we don't need it here - @CurrentThreadContext(unchanged = ThreadContext.ALL_REMAINING) - public Publisher prices() { - // get the next three prices from the price stream - return Multi.createFrom().publisher(prices) - .select().first(3); - } ----- - -=== Overriding the propagated contexts using CDI injection - -You can also inject a custom-built `ThreadContext` using the https://javadoc.io/doc/io.smallrye/smallrye-context-propagation-api/latest/io/smallrye/context/api/ThreadContextConfig.html[`@ThreadContextConfig`] annotation on your injection point: - -[source,java] ----- - // Get the prices stream - @Inject - @Channel("prices") Publisher prices; - // Get a ThreadContext that doesn't propagate context - @Inject - @ThreadContextConfig(unchanged = ThreadContext.ALL_REMAINING) - SmallRyeThreadContext threadContext; - - @GET - @Path("/prices") - @Produces(MediaType.SERVER_SENT_EVENTS) - @SseElementType(MediaType.TEXT_PLAIN) - public Publisher prices() { - // Get rid of all context propagation, since we don't need it here - try(CleanAutoCloseable ac = SmallRyeThreadContext.withThreadContext(threadContext)){ - // get the next three prices from the price stream - return Multi.createFrom().publisher(prices) - .select().first(3); - } - } ----- - -== Context Propagation for CDI - -In terms of CDI, `@RequestScoped`, `@ApplicationScoped` and `@Singleton` beans get propagated and are available in other threads. -`@Dependent` beans as well as any custom scoped beans cannot be automatically propagated via CDI Context Propagation. - - -`@ApplicationScoped` and `@Singleton` beans are always active scopes and as such are easy to deal with - context propagation tasks can work with those beans so long as the CDI container is running. -However, `@RequestScoped` beans are a different story. They are only active for a short period of time which can be bound either to HTTP request or some other request/task when manually activated/deactivated. -In this case user must be aware that once the original thread gets to an end of a request, it will terminate the context, calling `@PreDestroy` on those beans and then clearing them from the context. -Subsequent attempts to access those beans from other threads can result in unexpected behaviour. -It is therefore recommended to make sure all tasks using request scoped beans via context propagation are performed in such a manner that they don't outlive the original request duration. - - -[NOTE] -==== -Due to the above described behavior, it is recommended to avoid using `@PreDestroy` on `@RequestScoped` beans when working with Context Propagation in CDI. -==== diff --git a/_versions/2.7/guides/continuous-testing.adoc b/_versions/2.7/guides/continuous-testing.adoc deleted file mode 100644 index 1e0c1cffd4f..00000000000 --- a/_versions/2.7/guides/continuous-testing.adoc +++ /dev/null @@ -1,164 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Continuous Testing - -include::./attributes.adoc[] - -:toc: macro -:toclevels: 4 -:doctype: book -:icons: font -:docinfo1: - -:numbered: -:sectnums: -:sectnumlevels: 4 - -Learn how to use continuous testing in your Quarkus Application. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* The completed greeter application from the xref:getting-started.adoc[Getting Started Guide] - -== Introduction - -Quarkus supports continuous testing, where tests run immediately after code changes have been saved. This allows you to -get instant feedback on your code changes. Quarkus detects which tests cover which code, and uses this information to -only run the relevant tests when code is changed. - -== Solution - -Start the xref:getting-started.adoc[Getting Started] application (or any other application) using: - -include::includes/devtools/dev.adoc[] - -Quarkus will start in development mode as normal, but down the bottom of the screen you should see the following: - -[source] ----- --- -Tests paused, press [r] to resume, [h] for more options> ----- - -Press `r` and the tests will start running. You should see the status change down the bottom of the screen as they -are running, and it should finish with: - -[source] ----- --- -Tests all passed, 2 tests were run, 0 were skipped. Tests took 1470ms. -Press [r] to re-run, [v] to view full results, [p] to pause, [h] for more options> ----- - - -NOTE: If you want continuous testing to start automatically you can set `quarkus.test.continuous-testing=enabled` in -`application.properties`. If you don't want it at all you can change this to `disabled`. - - -Now you can start making changes to your application. Go into the `GreetingResource` and change the hello endpoint to -return `"hello world"`, and save the file. Quarkus should immediately re-run the test, and you should get output similar -to the following: - -[source] ----- -2021-05-11 14:21:34,338 ERROR [io.qua.test] (Test runner thread) Test GreetingResourceTest#testHelloEndpoint() failed -: java.lang.AssertionError: 1 expectation failed. -Response body doesn't match expectation. -Expected: is "hello" - Actual: hello world - - at io.restassured.internal.ValidatableResponseImpl.body(ValidatableResponseImpl.groovy) - at org.acme.getting.started.GreetingResourceTest.testHelloEndpoint(GreetingResourceTest.java:21) - - --- -Test run failed, 2 tests were run, 1 failed, 0 were skipped. Tests took 295ms -Press [r] to re-run, [v] to view full results, [p] to pause, [h] for more options> ----- - -Change it back and the tests will run again. - -== Controlling Continuous Testing - -There are various hotkeys you can use to control continuous testing. Pressing `h` will display the following list -of commands: - -[source] ----- -The following commands are available: -[r] - Re-run all tests -[f] - Re-run failed tests -[b] - Toggle 'broken only' mode, where only failing tests are run (disabled) -[v] - Print failures from the last test run -[p] - Pause tests -[o] - Toggle test output (disabled) -[i] - Toggle instrumentation based reload (disabled) -[l] - Toggle live reload (enabled) -[s] - Force restart -[h] - Display this help -[q] - Quit ----- - -These are explained below: - -[r] - Re-run all tests:: -This will re-run every test - -[f] - Re-run failed tests:: -This will re-run every failing test - -[b] - Toggle 'broken only' mode, where only failing tests are run:: -Broken only mode will only run tests that have previously failed, even if other tests would normally be affected by a code -change. This can be useful if you are modifying code that is used by lots of tests, but you only want to focus on debugging -the failing one. - -[v] - Print failures from the last test run:: -Prints the failures to the console again, this can be useful if there has been lots of console output since the last run. - -[p] - Pause tests:: -Temporarily stops running tests. This can be useful if you are making lots of changes, and don't want feedback until they -are all done. - -[o] - Toggle test output:: -By default test output is filtered and not displayed on the console, so that test output and dev mode output is not -interleaved. Enabling test output will print output to the console when tests are run. Even when output is disabled -the filtered output is saved and can be viewed in the Dev UI. - -[i] - Toggle instrumentation based reload:: -This is not directly related to testing, but allows you to toggle instrumentation based reload. This will allow live reload -to avoid a restart if a change does not affect the structure of a class, which gives a faster reload and allows you to keep -state. - -[l] - Toggle live reload:: -This is not directly related to testing, but allows you to turn live reload on and off. - -[s] - Force restart:: -This will force a scan for changed files, and will perform a live reload with and changes. Note that even if there are no -changes the application will still restart. This will still work even if live reload is disabled. - -== Continuous Testing Without Dev Mode - -It is possible to run continuous testing without starting dev mode. This can be useful if dev mode will interfere with -your tests (e.g. running wiremock on the same port), or if you only want to develop using tests. To start continuous testing -mode run `mvn quarkus:test`. - -NOTE: The Dev UI is not available when running in continuous testing mode, as this is provided by dev mode. - -== Multi Module Projects - -Note that continuous testing supports multi-module projects, so tests in modules other than the application can still -be run when files are changed. The modules that are run can be controlled using config as listed below. - -This is enabled by default, and can be disabled via `quarkus.test.only-test-application-module=true`. - -== Configuring Continuous Testing - -Continuous testing supports multiple configuration options that can be used to limit the tests that are run, and -to control the output. The configuration properties are shown below: - -include::{generated-dir}/config/quarkus-test-dev-testing-test-config.adoc[opts=optional, leveloffset=+2] - diff --git a/_versions/2.7/guides/credentials-provider.adoc b/_versions/2.7/guides/credentials-provider.adoc deleted file mode 100644 index 7ee769c83ef..00000000000 --- a/_versions/2.7/guides/credentials-provider.adoc +++ /dev/null @@ -1,191 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using a Credentials Provider - -include::./attributes.adoc[] -:extension-status: preview - -Interacting with a datastore typically implies first connecting using credentials. -Those credentials will allow the client to be identified, authenticated and eventually authorized. -Username/password based authentication is very common, but that is not by any means the only one. -Such credentials information may appear in the application configuration, -but it is becoming increasingly popular to store this type of sensitive information in secure stores, -such as HashiCorp Vault, Azure Key Vault or the AWS Secrets Manager to name just a few. - -To bridge datastores that consume credentials, which can take different forms, -and secure stores that provide those credentials, -Quarkus introduces an intermediate abstraction called `Credentials Provider`, -that some extensions may support to consume credentials (e.g. `agroal`), -and some others may implement to produce credentials (e.g. `vault`). - -This Service Programming Interface (SPI) may also be used by implementers that want to support custom providers -not yet implemented in Quarkus (e.g. Azure Key Vault). - -Currently, the `Credentials Provider` interface is implemented by the `vault` extension, and is supported -by the following credentials consumer extensions: - -* `agroal` -* `reactive-db2-client` -* `reactive-mysql-client` -* `reactive-mssql-client` -* `reactive-oracle-client` -* `reactive-pg-client` -* `oidc` -* `oidc-client` -* `smallrye-reactive-messaging-rabbitmq` - -All extensions that rely on username/password authentication also allow setting configuration -properties in the `application.properties` as an alternative. But the `Credentials Provider` is the only option -if credentials are generated (e.g. `Vault Dynamic DB Credentials`) or if a custom credentials provider is required. - -This guide will show how to use the `Credentials Provider` provided in the `vault` extension, -then we will look at implementing a custom `Credentials Provider`, and finally we will talk about additional -considerations regarding implementing a `Credentials Provider` in a new extension. - -include::./status-include.adoc[] - -== Vault Credentials Provider - -To configure a `Vault Credentials Provider` you need to provide the following properties: - -[source, properties] ----- -quarkus.vault.credentials-provider..= ----- - -The `` will be used in the consumer to refer to this provider. The `` and `` fields are specific to the `Vault Credentials Provider`. For complete details, please refer to the {vault-datasource-guide}. - -For instance: - -[source, properties] ----- -quarkus.vault.credentials-provider.mydatabase.kv-path=myapps/vault-quickstart/db ----- - -Once defined, the `mydatabase` provider can be used in any extension that supports the `Credentials Provider` interface. For instance in `agroal`: - -[source, properties] ----- -# configure your datasource -quarkus.datasource.db-kind = postgresql -quarkus.datasource.username = sarah -quarkus.datasource.credentials-provider = mydatabase -quarkus.datasource.jdbc.url = jdbc:postgresql://localhost:5432/mydatabase ----- - -Note that `quarkus.datasource.username` is the original `agroal` property, whereas the `password` property -is not included because the value will come from the `mydatabase` credentials provider we just defined. -An alternative is to define both username and password in Vault and drop the `quarkus.datasource.username` -property from configuration. All consuming extensions do support the ability to fetch both the username -and password from the provider, or just the password. - -== Custom Credentials Provider - -Implementing a custom credentials provider is the only option when a vault product is not yet supported in Quarkus, or if credentials need to be retrieved from a custom store. - -The only interface to implement is: - -[source, java] ----- -public interface CredentialsProvider { - - String USER_PROPERTY_NAME = "user"; - String PASSWORD_PROPERTY_NAME = "password"; - - Map getCredentials(String credentialsProviderName); - -} ----- - -`USER_PROPERTY_NAME` and `PASSWORD_PROPERTY_NAME` are standard properties that should be recognized by any consuming extension that support username/password based authentication. - -It is required that implementations be valid `@ApplicationScoped` CDI beans. - -Here is a simple example: - -[source, java] ----- -@ApplicationScoped -@Unremovable -public class MyCredentialsProvider implements CredentialsProvider { - - @Override - public Map getCredentials(String credentialsProviderName) { - - Map properties = new HashMap<>(); - properties.put(USER_PROPERTY_NAME, "hibernate_orm_test"); - properties.put(PASSWORD_PROPERTY_NAME, "hibernate_orm_test"); - return properties; - } - -} ----- - -Note that we decided here to return both the username and the password. - -This provider may be used in a datasource definition like this: - -[source, properties] ----- -quarkus.datasource.db-kind=postgresql -quarkus.datasource.credentials-provider=custom -quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5431/hibernate_orm_test ----- - -It is also possible to pass configuration properties to the provider using standard MicroProfile Config injection: - -[source, properties] ----- -custom.foo=bar ----- - -And in the provider implementation: - -[source, java] ----- -@Inject -Config config; - -@Override -public Map getCredentials(String credentialsProviderName) { - - System.out.println("MyCredentialsProvider called with foo=" + config.getValue(credentialsProviderName + ".foo", String.class)); - ... ----- - -== New Credentials Provider extension - -When creating a custom credentials provider in a new extension, there are a few additional considerations. - -First, you need to name it to avoid collisions in case multiple credentials providers are available in the project: - -[source, java] ----- -@ApplicationScoped -@Unremovable -@Named("my-credentials-provider") -public class MyCredentialsProvider implements CredentialsProvider { ----- - -It is the responsibility of the consumer to allow a `credentials-provider-name` property: - -[source, properties] ----- -quarkus.datasource.credentials-provider = custom -quarkus.datasource.credentials-provider-name = my-credentials-provider ----- - -The extension should allow runtime config, such as the `CredentialsProviderConfig` from the `vault` extension -to configure any custom property in the provider. For an AWS Secrets Manager extension, this could be: - -* `region` -* `credentials-type` -* `secrets-id` - -Note also that some consumers such as `agroal` will add to their connection configuration any properties returned -by the credentials provider, not just the username and password. So when you design the new credentials provider -limit the properties to what would be understood by consumers, or provide appropriate configuration options to -support different modes. diff --git a/_versions/2.7/guides/datasource.adoc b/_versions/2.7/guides/datasource.adoc deleted file mode 100644 index 30a42ec5027..00000000000 --- a/_versions/2.7/guides/datasource.adoc +++ /dev/null @@ -1,706 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Datasources - -include::./attributes.adoc[] - -Many projects that use data require connections to a relational database. - -The usual way of obtaining connections to a database is to use a datasource and configure a JDBC driver. -But you might also prefer using a reactive driver to connect to your database in a reactive way. - -Quarkus has you covered either way: - -* For JDBC, the preferred datasource and connection pooling implementation is https://agroal.github.io/[Agroal]. -* For reactive, we use the https://vertx.io/[Vert.x] reactive drivers. - -Both are configured via unified and flexible configuration. - -[NOTE] -==== -Agroal is a modern, light weight connection pool implementation designed for very high performance and scalability, -and features first class integration with the other components in Quarkus, such as security, transaction management components, health, and metrics. -==== - -This guide will explain how to: - -* configure a datasource, or multiple datasources -* how to obtain a reference to those datasources in code -* which pool tuning configuration properties are available - -This guide is mainly about datasource configuration. -If you want more details about how to consume and make use of a reactive datasource, -please refer to the xref:reactive-sql-clients.adoc[Reactive SQL clients guide]. - -== TL;DR - -This is a quick introduction to datasource configuration. -If you want a better understanding of how all this works, this guide has a lot more information in the subsequent paragraphs. - -[[dev-services]] -=== Zero Config Setup (Dev Services) - -When testing or running in dev mode Quarkus can even provide you with a zero config database out of the box, a feature -we refer to as Dev Services. Depending on your database type you may need Docker installed in order to use this feature. -Dev Services is supported for the following databases: - -* DB2 (container) (requires license acceptance) -* Derby (in-process) -* H2 (in-process) -* MariaDB (container) -* Microsoft SQL Server (container) (requires license acceptance) -* MySQL (container) -* Oracle Express Edition (container) -* PostgreSQL (container) - -If you want to use Dev Services then all you need to do is include the relevant extension for the type of database you want (either reactive or -JDBC, or both), and don't configure a database URL, username and password, Quarkus will provide the database and you can just start -coding without worrying about config. - -If you are using a proprietary database such as DB2 or MSSQL you will need to accept the license agreement. To do this -create a `src/main/resources/container-license-acceptance.txt` files in your project and add a line with the image -name and tag of the database. By default Quarkus uses the default image for the current version of Testcontainers, if -you attempt to start Quarkus the resulting failure will tell you the exact image name in use for you to add to the -file. - -An example file is shown below: - -.src/main/resources/container-license-acceptance.txt ----- -ibmcom/db2:11.5.0.0a -mcr.microsoft.com/mssql/server:2017-CU12 ----- - -[NOTE] -==== -All services based on containers are run using Testcontainers but Quarkus is not using the Testcontainers JDBC driver. - -Thus, even though extra JDBC URL properties can be set in your `application.properties` file, -specific properties supported by the Testcontainers JDBC driver such as `TC_INITSCRIPT`, `TC_INITFUNCTION`, `TC_DAEMON`, `TC_TMPFS` are not supported. - -Quarkus can support specific properties sent to the container itself though and, -typically, this is the case for `TC_MY_CNF` which allows to override the MariaDB/MySQL configuration file. - -Overriding the MariaDB/MySQL configuration would be done as follows: - -[source,properties] ----- -quarkus.datasource.devservices.container-properties.TC_MY_CNF=testcontainers/mysql-conf ----- - -This support is database specific and needs to be implemented in each dev service specifically. -==== - -=== JDBC datasource - -Add the `agroal` extension plus one of `jdbc-db2`, `jdbc-derby`, `jdbc-h2`, `jdbc-mariadb`, `jdbc-mssql`, `jdbc-mysql`, `jdbc-oracle` or `jdbc-postgresql`. - -Then configure your datasource: - -[source, properties] ----- -quarkus.datasource.db-kind=postgresql <1> -quarkus.datasource.username= -quarkus.datasource.password= - -quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/hibernate_orm_test -quarkus.datasource.jdbc.max-size=16 ----- -<1> If you only have a single JDBC extension, or you are running tests and only have a single test scoped JDBC extension installed then this is -optional. If there is only one possible extension we assume this is the correct one, and if a driver has been added with test scope then -we assume that this should be used in testing. - -=== Reactive datasource - -Add the correct reactive extension for the database you are using: -`reactive-db2-client`, `reactive-mssql-client`, `reactive-mysql-client`, `reactive-oracle-client`, or `reactive-pg-client`. - -Then configure your reactive datasource: - -[source, properties] ----- -quarkus.datasource.db-kind=postgresql <1> -quarkus.datasource.username= -quarkus.datasource.password= - -quarkus.datasource.reactive.url=postgresql:///your_database -quarkus.datasource.reactive.max-size=20 ----- -<1> As specified above this is optional. - -== Default datasource - -A datasource can be either a JDBC datasource, a reactive one or both. -It all depends on how you configure it and which extensions you added to your project. - -To define a datasource, start with the following (note that this is only required if you have more than one -database type installed): - -[source, properties] ----- -quarkus.datasource.db-kind=h2 ----- - -The database kind defines which type of database you will connect to. - -We currently include these built-in database kinds: - -* DB2: `db2` -* Derby: `derby` -* H2: `h2` -* MariaDB: `mariadb` -* Microsoft SQL Server: `mssql` -* MySQL: `mysql` -* Oracle: `oracle` -* PostgreSQL: `postgresql`, `pgsql` or `pg` - -Giving Quarkus the database kind you are targeting will facilitate configuration. -By using a JDBC driver extension and setting the kind in the configuration, -Quarkus resolves the JDBC driver automatically, -so you don't need to configure it yourself. -If you want to use a database kind that is not part of the built-in ones, use `other` and define the JDBC driver explicitly. - -[NOTE] -==== -You can use any JDBC driver in a Quarkus app in JVM mode (see <>). -It is unlikely that it will work when compiling your application to a native executable though. - -If you plan to make a native executable, we recommend you use the existing JDBC Quarkus extensions (or contribute one for your driver). -==== - -There is a good chance you will need to define some credentials to access your database. - -This is done by configuring the following properties: - -[source, properties] ----- -quarkus.datasource.username= -quarkus.datasource.password= ----- - -You can also retrieve the password from Vault by link:{vault-datasource-guide}[using a credential provider] for your datasource. - -Once you have defined the database kind and the credentials, you are ready to configure either a JDBC datasource, a reactive one, or both. - -=== JDBC datasource - -JDBC is the most common database connection pattern. -You typically need a JDBC datasource when using Hibernate ORM. - -==== Install the Maven dependencies - -First, you will need to add the `quarkus-agroal` dependency to your project. - -You can add it using a simple Maven command: - -[source,bash] ----- -./mvnw quarkus:add-extension -Dextensions="agroal" ----- - -[TIP] -==== -Agroal comes as a transitive dependency of the Hibernate ORM extension so if you are using Hibernate ORM, -you don't need to add the Agroal extension dependency explicitly. -==== - -You will also need to choose, and add, the Quarkus extension for your relational database driver. - -Quarkus provides driver extensions for: - -* DB2 - `jdbc-db2` -* Derby - `jdbc-derby` -* H2 - `jdbc-h2` -* MariaDB - `jdbc-mariadb` -* Microsoft SQL Server - `jdbc-mssql` -* MySQL - `jdbc-mysql` -* Oracle - `jdbc-oracle` -* PostgreSQL - `jdbc-postgresql` - -See <> if you want to use a JDBC driver for another database. - -[NOTE] -==== -The H2 and Derby databases can normally be configured to run in "embedded mode"; -the extension does not support compiling the embedded database engine into native executables. - -Read <> (below) for suggestions regarding integration testing. -==== - -As usual, you can install the extension using `add-extension`. - -To install the PostgreSQL driver dependency for instance, run the following command: - -[source,bash] ----- -./mvnw quarkus:add-extension -Dextensions="jdbc-postgresql" ----- - -==== Configure the JDBC connection - -Configuring your JDBC connection is easy, the only mandatory property is the JDBC URL. - -[source, properties] ----- -quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/hibernate_orm_test ----- - -[NOTE] -==== -Note the `jdbc` prefix in the property name. -All the configuration properties specific to JDBC have this prefix. -==== - -[TIP] -==== -For more information about the JDBC URL format, please refer to the <>. -==== - -When using one of the built-in datasource kinds, the JDBC driver is resolved automatically to the following values: - -.Database kind to JDBC driver mapping -|=== -|Database kind |JDBC driver |XA driver - -|`db2` -|`com.ibm.db2.jcc.DBDriver` -|`com.ibm.db2.jcc.DB2XADataSource` - -|`derby` -|`org.apache.derby.jdbc.ClientDriver` -|`org.apache.derby.jdbc.ClientXADataSource` - -|`h2` -|`org.h2.Driver` -|`org.h2.jdbcx.JdbcDataSource` - -|`mariadb` -|`org.mariadb.jdbc.Driver` -|`org.mariadb.jdbc.MySQLDataSource` - -|`mssql` -|`com.microsoft.sqlserver.jdbc.SQLServerDriver` -|`com.microsoft.sqlserver.jdbc.SQLServerXADataSource` - -|`mysql` -|`com.mysql.cj.jdbc.Driver` -|`com.mysql.cj.jdbc.MysqlXADataSource` - -|`oracle` -|`oracle.jdbc.driver.OracleDriver` -|`oracle.jdbc.xa.client.OracleXADataSource` - -|`postgresql` -|`org.postgresql.Driver` -|`org.postgresql.xa.PGXADataSource` -|=== - -[TIP] -==== -As previously stated, most of the time, this automatic resolution will suit you and -you won't need to configure the driver. -==== - -[[other-databases]] -==== Use a database with no built-in extension or with a different driver - -You can use a specific driver if you need to (for instance for using the OpenTracing driver) -or if you want to use a database for which Quarkus does not have a built-in JDBC driver extension. - -Without an extension, the driver will work fine in any Quarkus app running in JVM mode. -It is unlikely that it will work when compiling your application to a native executable though. -If you plan to make a native executable, we recommend you use the existing JDBC Quarkus extensions (or contribute one for your driver). - -Here is how you would use the OpenTracing driver: - -[source, properties] ----- -quarkus.datasource.jdbc.driver=io.opentracing.contrib.jdbc.TracingDriver ----- - -Here is how you would define access to a database with no built-in support (in JVM mode): - -[source, properties] ----- -quarkus.datasource.db-kind=other -quarkus.datasource.jdbc.driver=oracle.jdbc.driver.OracleDriver -quarkus.datasource.jdbc.url=jdbc:oracle:thin:@192.168.1.12:1521/ORCL_SVC -quarkus.datasource.username=scott -quarkus.datasource.password=tiger ----- - -==== More configuration - -You can configure a lot more things, for instance the size of the connection pool. - -Please refer to the <> for all the details about the JDBC configuration knobs. - -==== Consuming the datasource - -If you are using Hibernate ORM, the datasource will be consumed automatically. - -If for whatever reason, access to the datasource is needed in code, it can be obtained as any other bean in the following manner: - -[source,java] ----- -@Inject -AgroalDataSource defaultDataSource; ----- - -In the above example, the type is `AgroalDataSource` which is a subtype of `javax.sql.DataSource`. -Because of this, you can also use `javax.sql.DataSource` as the injected type. - -=== Reactive datasource - -If you prefer using a reactive datasource, Quarkus offers DB2, MariaDB/MySQL, Microsoft SQL Server, Oracle and PostgreSQL reactive clients. - -==== Install the Maven dependencies - -Depending on which database you want to use, add the corresponding extension: - -* DB2: `quarkus-reactive-db2-client` -* MariaDB/MySQL: `quarkus-reactive-mysql-client` -* Microsoft SQL Server: `quarkus-reactive-mssql-client` -* Oracle: `quarkus-reactive-oracle-client` -* PostgreSQL: `quarkus-reactive-pg-client` - -The installed extension must be consistent with the `quarkus.datasource.db-kind` you define in your datasource configuration. - -==== Configure the reactive datasource - -Once the driver is there, you just need to configure the connection URL. - -Optionally, but highly recommended, you should define a proper size for your connection pool. - -[source,properties] ----- -quarkus.datasource.reactive.url=postgresql:///your_database -quarkus.datasource.reactive.max-size=20 ----- - -=== JDBC and reactive datasources simultaneously - -By default, if you include both a JDBC extension (+ Agroal) and a reactive datasource extension handling the given database kind, -both will be created. - -If you want to disable the JDBC datasource explicitly, use: - -[source, properties] ----- -quarkus.datasource.jdbc=false ----- - -If you want to disable the reactive datasource explicitly, use: - -[source, properties] ----- -quarkus.datasource.reactive=false ----- - -[TIP] -==== -Most of the time, the configuration above won't be necessary as either a JDBC driver or a reactive datasource extension will be present and not both. -==== - -== Multiple Datasources - -=== Configuring Multiple Datasources - -For now, multiple datasources are only supported for JDBC and the Agroal extension. -So it is not currently possible to create multiple reactive datasources. - -[NOTE] -==== -The Hibernate ORM extension xref:hibernate-orm.adoc#multiple-persistence-units[supports defining several persistence units using configuration properties]. -For each persistence unit, you can point to the datasource of your choice. -==== - -Defining multiple datasources works exactly the same way as defining a single datasource, with one important change: -you define a name. - -In the following example, you have 3 different datasources: - -* The default one, -* A datasource named `users`, -* A datasource named `inventory`, - -each with its own configuration. - -[source,properties] ----- -quarkus.datasource.db-kind=h2 -quarkus.datasource.username=username-default -quarkus.datasource.jdbc.url=jdbc:h2:mem:default -quarkus.datasource.jdbc.max-size=13 - -quarkus.datasource.users.db-kind=h2 -quarkus.datasource.users.username=username1 -quarkus.datasource.users.jdbc.url=jdbc:h2:mem:users -quarkus.datasource.users.jdbc.max-size=11 - -quarkus.datasource.inventory.db-kind=h2 -quarkus.datasource.inventory.username=username2 -quarkus.datasource.inventory.jdbc.url=jdbc:h2:mem:inventory -quarkus.datasource.inventory.jdbc.max-size=12 ----- - -Notice there is an extra bit in the key. -The syntax is as follows: `quarkus.datasource.[optional name.][datasource property]`. - -NOTE: Even when only one database extension is installed, named databases need to specify at least one build time -property so that Quarkus knows they exist. Generally this will be the `db-kind` property, although you can also -specify Dev Services properties to create named datasources (covered later in this guide). - -=== Named Datasource Injection - -When using multiple datasources, each `DataSource` also has the `io.quarkus.agroal.DataSource` qualifier with the name of the datasource as the value. -Using the above properties to configure three different datasources, you can also inject each one as follows: - -[source,java,indent=0] ----- -@Inject -AgroalDataSource defaultDataSource; - -@Inject -@DataSource("users") -AgroalDataSource usersDataSource; - -@Inject -@DataSource("inventory") -AgroalDataSource inventoryDataSource; ----- - -== Datasource Health Check - -If you are using the `quarkus-smallrye-health` extension, the `quarkus-agroal` and reactive client extensions will automatically add a readiness health check -to validate the datasource. - -When you access the `/q/health/ready` endpoint of your application you will have information about the datasource validation status. -If you have multiple datasources, all datasources will be checked and the status will be `DOWN` as soon as there is one datasource validation failure. - -This behavior can be disabled via the property `quarkus.datasource.health.enabled`. - -== Datasource Metrics - -If you are using the `quarkus-micrometer` or `quarkus-smallrye-metrics` extension, `quarkus-agroal` can expose some data source metrics on the -`/q/metrics` endpoint. This can be turned on by setting the property `quarkus.datasource.metrics.enabled` to true. - -For the exposed metrics to contain any actual values, it is necessary that metric collection is enabled internally -by Agroal mechanisms. By default, this metric collection mechanism gets turned on for all data sources if a metrics extension -is present and metrics for the Agroal extension are enabled. If you want to disable metrics for a particular data source, -this can be done by setting `quarkus.datasource.jdbc.enable-metrics` to `false` (or `quarkus.datasource..jdbc.enable-metrics` for a named datasource). -This disables collecting the metrics as well as exposing them in the `/q/metrics` endpoint, -because it does not make sense to expose metrics if the mechanism to collect them is disabled. - -Conversely, setting `quarkus.datasource.jdbc.enable-metrics` to `true` (or `quarkus.datasource..jdbc.enable-metrics` for a named datasource) explicitly can be used to enable collection of metrics even if -a metrics extension is not in use. -This can be useful if you need to access the collected metrics programmatically. -They are available after calling `dataSource.getMetrics()` on an injected `AgroalDataSource` instance. If collection of metrics is disabled -for this data source, all values will be zero. - -== Narayana Transaction Manager integration - -If the Narayana JTA extension is also available, integration is automatic. - -You can override this by setting the `transactions` configuration property - see the <> below. - -== Dev Services (Configuration Free Databases) - -As mentioned above Quarkus supports a feature called Dev Services that allows you to create datasources without any config. If -you have a database extension that supports it and no config is provided, Quarkus will automatically start a database (either -using Testcontainers, or by starting a Java DB in process), and automatically configure a connection to this database. - -Production databases need to be configured as normal, so if you want to include a production database config in your -application.properties and continue to use Dev Services we recommend that you use the `%prod.` profile to define your -database settings. - -=== Configuring Dev Services - -Dev Services supports the following config options: - -include::{generated-dir}/config/quarkus-datasource-config-group-dev-services-build-time-config.adoc[opts=optional, leveloffset=+1] - -=== Named Datasources - -When using Dev Services the default datasource will always be created, but to specify a named datasource you need to have -at least one build time property so Quarkus knows to create the datasource. In general you will usually either specify -the `db-kind` property, or explicitly enable DevDb: `quarkus.datasource."name".devservices.enabled=true`. - -[[in-memory-databases]] -== Testing with in-memory databases - -Some databases like H2 and Derby are commonly used in "embedded mode" as a facility to run quick integration tests. - -Our suggestion is to use the real database you intend to use in production; container technologies made this simple enough so you no longer have an excuse. Still, there are sometimes -good reasons to also want the ability to run quick integration tests using the JVM powered databases, -so this is possible as well. - -It is important to remember that when configuring H2 (or Derby) to use the embedded engine, -this will work as usual in JVM mode but such an application will not compile into a native executable, as the Quarkus extensions only cover for making the JDBC client code compatible with the native compilation step: embedding the whole database engine into a native executable is currently not implemented. - -If you plan to run such integration tests in the JVM exclusively, it will of course work as usual. - -If you want the ability to run such integration test in both JVM and/or native executables, we have some cool helpers for you: just add either `@QuarkusTestResource(H2DatabaseTestResource.class)` or `@QuarkusTestResource(DerbyDatabaseTestResource.class)` on any class in your integration tests, this will make sure the test suite starts (and stops) the embedded database into a separate process as necessary to run your tests. - -These additional helpers are provided by the artifacts having Maven coordinates `io.quarkus:quarkus-test-h2` and `io.quarkus:quarkus-test-derby`, respectively for H2 and Derby. - -Follows an example for H2: - -[source,java] ----- -package my.app.integrationtests.db; - -import io.quarkus.test.common.QuarkusTestResource; -import io.quarkus.test.h2.H2DatabaseTestResource; - -@QuarkusTestResource(H2DatabaseTestResource.class) -public class TestResources { -} ----- - -This will allow you to test your application even when it's compiled into a native executable, -while the database will run in the JVM as usual. - -Connect to it using: - -[source,properties] ----- -quarkus.datasource.db-kind=h2 -quarkus.datasource.jdbc.url=jdbc:h2:mem:test ----- - -[[configuration-reference]] -== Common Datasource Configuration Reference - -include::{generated-dir}/config/quarkus-datasource.adoc[opts=optional, leveloffset=+1] - -[[jdbc-configuration]] -== JDBC Configuration Reference - -include::{generated-dir}/config/quarkus-agroal.adoc[opts=optional, leveloffset=+1] - -[[jdbc-url]] -== JDBC URL Reference - -Each of the supported databases contains different JDBC URL configuration options. -Going into each of those options is beyond the scope of this document, -but the following section gives an overview of each database URL and a link to the official documentation. - -=== DB2 - -`jdbc:db2://[:]/[:=;[=;]]` - -Example:: `jdbc:db2://localhost:50000/MYDB:user=dbadm;password=dbadm;` - -See the https://www.ibm.com/support/knowledgecenter/SSEPGG_11.5.0/com.ibm.db2.luw.apdv.java.doc/src/tpc/imjcc_r0052342.html[official documentation] for more detail on URL syntax and additional supported options. - -=== Derby - -`jdbc:derby:[//serverName[:portNumber]/][memory:]databaseName[;property=value[;property=value]]` - -Example:: `jdbc:derby://localhost:1527/myDB`, `jdbc:derby:memory:myDB;create=true` - -Derby is an embedded database. -It can run as a server, based on a file, or live completely in memory. -All of these options are available as listed above. -You can find more information at the https://db.apache.org/derby/docs/10.8/devguide/cdevdvlp17453.html#cdevdvlp17453[official documentation]. - -=== H2 - -`jdbc:h2:{ {.|mem:}[name] | [file:]fileName | {tcp|ssl}:[//]server[:port][,server2[:port]]/name }[;key=value...]` - -Example:: `jdbc:h2:tcp://localhost/~/test`, `jdbc:h2:mem:myDB` - -H2 is an embedded database. -It can run as a server, based on a file, or live completely in memory. -All of these options are available as listed above. -You can find more information at the https://h2database.com/html/features.html?highlight=url&search=url#database_url[official documentation]. - -=== MariaDB - -`jdbc:mariadb:[replication:|failover:|sequential:|aurora:]//[,...]/[database][?=[&=]]` -hostDescription:: `[:] or address=(host=)[(port=)][(type=(master|slave))]` - -Example:: `jdbc:mariadb://localhost:3306/test` - -You can find more information about this feature and others detailed in the https://mariadb.com/kb/en/library/about-mariadb-connector-j/[official documentation]. - -=== Microsoft SQL Server - -`jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]` - -Example:: `jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks` - -The Microsoft SQL Server JDBC driver works essentially the same as the others. -More details can be found in the https://docs.microsoft.com/en-us/sql/connect/jdbc/connecting-to-sql-server-with-the-jdbc-driver?view=sql-server-2017[official documentation]. - -=== MySQL - -`jdbc:mysql:[replication:|failover:|sequential:|aurora:]//[,...]/[database][?=[&=]]` -hostDescription:: `[:] or address=(host=)[(port=)][(type=(master|slave))]` - -Example:: `jdbc:mysql://localhost:3306/test` - -You can find more information about this feature and others detailed in the https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference.html[official documentation]. - -==== MySQL Limitations - -When compiling a Quarkus application to native-image, the MySQL support for JMX and Oracle Cloud Infrastructure (OCI) integrations are disabled as they are not compatible -with GraalVM native-images. -The lack of JMX support is a natural consequence of running in native and is unlikely to be resolved. -The integration with OCI could be resolved, if you need it we suggest opening a support request with the MySQL Connector/J maintainers. - -=== Oracle - -`jdbc:oracle:driver_type:@database_specifier` - -Example:: `jdbc:oracle:thin:@localhost:1521/ORCL_SVC` - -More details can be found in the https://docs.oracle.com/en/database/oracle/oracle-database/21/jjdbc/data-sources-and-URLs.html#GUID-AEA8E228-1B21-4111-AF4C-B1F33744CA08[official documentation]. - -=== PostgreSQL - -PostgreSQL only runs as a server, as do the rest of the databases below. -As such, you must specify connection details, or use the defaults. - -`jdbc:postgresql:[//][host][:port][/database][?key=value...]` - -Example:: `jdbc:postgresql://localhost/test` - -Defaults for the different parts are as follows: - -`host`:: localhost -`port`:: 5432 -`database`:: same name as the username - -The https://jdbc.postgresql.org/documentation/head/connect.html[official documentation] go into more detail and list optional parameters as well. - -:no-duration-note: true - -[[reactive-configuration]] -== Reactive Datasource Configuration Reference - -include::{generated-dir}/config/quarkus-reactive-datasource.adoc[opts=optional, leveloffset=+1] - -=== Reactive DB2 Configuration - -include::{generated-dir}/config/quarkus-reactive-db2-client.adoc[opts=optional, leveloffset=+1] - -=== Reactive MariaDB/MySQL Specific Configuration - -include::{generated-dir}/config/quarkus-reactive-mysql-client.adoc[opts=optional, leveloffset=+1] - -=== Reactive Microsoft SQL Server Specific Configuration - -include::{generated-dir}/config/quarkus-reactive-mssql-client.adoc[opts=optional, leveloffset=+1] - -=== Reactive Oracle Specific Configuration - -include::{generated-dir}/config/quarkus-reactive-oracle-client.adoc[opts=optional, leveloffset=+1] - -=== Reactive PostgreSQL Specific Configuration - -include::{generated-dir}/config/quarkus-reactive-pg-client.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/deploying-to-azure-cloud.adoc b/_versions/2.7/guides/deploying-to-azure-cloud.adoc deleted file mode 100644 index 174fe868afd..00000000000 --- a/_versions/2.7/guides/deploying-to-azure-cloud.adoc +++ /dev/null @@ -1,175 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Deploying to Microsoft Azure Cloud - -include::./attributes.adoc[] - -This guide covers: - -* Update Quarkus HTTP Port -* Install the Azure CLI -* Create an Azure Registry Service instance and upload the Docker image -* Deploy the Docker image to Azure Container Instances -* Deploy the Docker image to Azure Kubernetes Service -* Deploy the Docker image to Azure App Service for Linux Containers - -== Prerequisites - -:prerequisites-time: 2 hours for all modalities -:prerequisites-no-graalvm: -include::includes/devtools/prerequisites.adoc[] -* Having access to an Azure subscription. https://azure.microsoft.com/free/?WT.mc_id=opensource-quarkus-brborges[Get a free one here] - -This guide will take as input a native application developed in the xref:building-native-image.adoc[building native image guide]. - -Make sure you have the getting-started application at hand, or clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. The solution is located in the `getting-started` directory. - -== Change Quarkus HTTP Port - -If you correctly followed the xref:building-native-image.adoc[building native image guide], you should have a local container image named `quarkus-quickstart/getting-started`. - -While Quarkus by default runs on port 8080, most Azure services expect web applications to be running on port 80. Before we continue, go back to your quickstart code and open the file `src/main/docker/Dockerfile.native`. - -Change the last two commands in the `Dockerfile.native` file and make it read like this: - -[source,docker] ----- -EXPOSE 80 -CMD ["./application", "-Dquarkus.http.host=0.0.0.0", "-Dquarkus.http.port=80"] ----- - -Now you can rebuild the docker image: - -[source,shell] ----- -$ docker build -f src/main/docker/Dockerfile.native -t quarkus-quickstart/getting-started . ----- - -To test, run it by exposing port 80 into port 8080 in your host: - -[source,shell] ----- -$ docker run -i --rm -p 8080:80 quarkus-quickstart/getting-started ----- - -Your container image is now ready to run on Azure. Remember, the Quarkus application is mapped to run on port 80. - -== Install the Azure CLI - -To ease the user experience throughout this guide, it is better to have the Azure CLI installed and authenticated. - -Visit the https://docs.microsoft.com/cli/azure/install-azure-cli?view=azure-cli-latest?WT.mc_id=opensource-quarkus-brborges[Azure CLI] installation page for instructions specific to your operating system. - -Once installed, ensure you are authenticated: - -[source,shell] ----- -$ az login ----- - -== Create an Azure Container Registry instance - -It is possible to deploy images hosted on Docker Hub, but this location by default leaves images accessible to anyone. To better protect your container images, this guide shows how to host your images on a private instance of the Azure Container Registry service. - -First, create an Azure Resource Group: - -[source,shell] ----- -$ az group create --name --location eastus ----- - -Then you can create the ACR: - -[source,shell] ----- -$ az acr create --resource-group --name --sku Basic --admin-enabled true ----- - -Finally, authenticate your local Docker installation with this container registry by running: - -[source,shell] ----- -$ az acr login --name ----- - -== Upload Container Image on Azure - -If you've followed the build native image guide, you should have a local container image named `quarkus-quickstart/getting-started`. - -To upload this image to your ACR, you must tag and push the image under the ACR login server. To find the login server of the Azure Container Registry, run this command: - -[source,shell] ----- -$ az acr show -n --query loginServer ----- - -To upload, now do: - -[source,shell] ----- -$ docker tag quarkus-quickstart/getting-started /quarkus-quickstart/getting-started -$ docker push /quarkus-quickstart/getting-started ----- - -At this point, you should have your Quarkus container image on your Azure Container Registry. To verify, run the following command: - -[source,shell] ----- -$ az acr repository list -n ----- - -== Deploy to Azure Container Instances - -The simplest way to start this container in the cloud is with the Azure Container Instances service. It simply creates a container on Azure infrastructure. - -There are different approaches for using ACI. Check the documentation for details. The quickest way to get a container up and running goes as it follows. - -First step is to find the username and password for the admin, so that ACI can authenticate into ACR and pull the Docker image: - -[source,shell] ----- -$ az acr credential show --name ----- - -Now create the Docker instance on ACI pointing to your image on ACR: - -[source,shell] ----- -$ az container create \ - --name quarkus-hello \ - --resource-group \ - --image /quarkus-quickstart/getting-started \ - --registry-login-server \ - --registry-username \ - --registry-password \ - --dns-name-label quarkus-hello- \ - --query ipAddress.fqdn ----- - -The command above, if run successfully, will give you the address of your container in the Cloud. Access your Quarkus application in the address displayed as output. - -For more information and details on ACR authentication and the use of service principals, follow this guide below and remember the Azure Container Registry `loginServer` and the image name of your Quarkus application now hosted on the ACR. - -https://docs.microsoft.com/en-us/azure/container-instances/container-instances-using-azure-container-registry?WT.mc_id=opensource-quarkus-brborges[Deploy to Azure Container Instances from Azure Container Registry] - -Keep in mind that this service does not provide scalability. A container instance is unique and does not scale. - -== Deploy to Azure Kubernetes Service - -You can also deploy the container image as a microservice in a Kubernetes cluster on Azure. To do that, follow this tutorial: - -https://docs.microsoft.com/en-us/azure/aks/tutorial-kubernetes-deploy-cluster?WT.mc_id=opensource-quarkus-brborges[Tutorial: Deploy an Azure Kubernetes Service (AKS) cluster] - -Once deployed, the application will be running on whatever port is used to expose the service. By default, Quarkus apps run on port 8080 internally. - -== Deploy to Azure App Service on Linux Containers - -This service provides scalability out of the box for web applications. If more instances are required, it will provide a load-balancing automatically, plus monitoring, metrics, logging and so on. - -To deploy your Quarkus Native container image to this service, follow this tutorial: - -https://docs.microsoft.com/en-us/azure/app-service/containers/tutorial-custom-docker-image?WT.mc_id=opensource-quarkus-brborges[Tutorial: Build a custom image and run in App Service from a private registry] - diff --git a/_versions/2.7/guides/deploying-to-google-cloud.adoc b/_versions/2.7/guides/deploying-to-google-cloud.adoc deleted file mode 100644 index fd0a9529451..00000000000 --- a/_versions/2.7/guides/deploying-to-google-cloud.adoc +++ /dev/null @@ -1,294 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Deploying to Google Cloud Platform (GCP) - -include::./attributes.adoc[] - -This guide covers: - -* Login to Google Cloud -* Deploying a function to Google Cloud Functions -* Deploying a JAR to Google App Engine Standard -* Deploying a Docker image to Google App Engine Flexible Custom Runtimes -* Deploying a Docker image to Google Cloud Run -* Using Cloud SQL - -== Prerequisites - -:prerequisites-time: 1 hour for all modalities -:prerequisites-no-graalvm: -include::includes/devtools/prerequisites.adoc[] -* https://cloud.google.com/[A Google Cloud Account]. Free accounts work. -* https://cloud.google.com/sdk[Cloud SDK CLI Installed] - -This guide will take as input an application developed in the xref:getting-started.adoc[Getting Started guide]. - -Make sure you have the getting-started application at hand, or clone the Git repository: `git clone {quickstarts-clone-url}`, -or download an {quickstarts-archive-url}[archive]. The solution is located in the `getting-started` directory. - -== Login to Google Cloud - -Login to Google Cloud is necessary for deploying the application and it can be done as follows: - -[source, subs=attributes+] ----- -gcloud auth login ----- - -== Deploying to Google Cloud Functions - -Quarkus supports deploying your application to Google Cloud Functions via the following extensions: - -- xref:gcp-functions.adoc[Google Cloud Functions]: Build functions using the Google Cloud Functions API. -- xref:gcp-functions-http.adoc[Google Cloud Functions HTTP binding]: Build functions using Quarkus HTTP APIs: RESTEasy (JAX-RS), -Undertow (Servlet), Vert.x Web, or xref:funqy-http.adoc[Funqy HTTP]. -- xref:funqy-gcp-functions.adoc[Funky Google Cloud Functions]: Build functions using Funqy. - -Each extension supports a specific kind of application development, -follow the specific guides for more information on how to develop, package and deploy your applications using them. - -== Deploying to Google App Engine Standard - -We will only cover the Java 11 runtime as the Java 8 runtime uses its own Servlet engine which is not compatible with Quarkus. - -First of all, make sure to have an App Engine environment initialized for your Google Cloud project, if not, initialize one via `gcloud app create --project=[YOUR_PROJECT_ID]`. - -Then, you will need to create a `src/main/appengine/app.yaml` file, let's keep it minimalistic with only the selected engine: - -[source, yaml] ----- -runtime: java11 ----- - -This will create a default service for your App Engine application. - -App Engine Standard does not support the default Quarkus' specific packaging layout, therefore, you must set up your application to be packaged as an uber-jar via your `application.properties` file: - -[source, properties] ----- -quarkus.package.type=uber-jar ----- - -Then, you can choose to build the application manually or delegating that responsibility to `gcloud` or the Google Cloud Maven plugin. - -=== Building the application manually - -Use Maven to build the application using `mvn clean package`, it will generate a single JAR that contains all the classes of your application including its dependencies. - -Finally, use `gcloud` to deploy your application as an App Engine service. - -[source, shell script] ----- -gcloud app deploy target/getting-started-1.0.0-SNAPSHOT-runner.jar ----- - -This command will upload your application jar and launch it on App Engine. - -When it’s done, the output will display the URL of your application (target url), you can use it with curl or directly open it in your browser using `gcloud app browse`. - -=== Building the application via gcloud - -You can choose to let `gcloud` build your application for you, this is the simplest way to deploy to App Engine. - -Then, you can just launch `gcloud app deploy` in the root of your project, it will upload all your project files (the list can be reduced via the `.gcloudignore` file), -package your JAR via Maven (or Gradle) and launch it on App Engine. - -When it’s done, the output will display the URL of your application (target url), you can use it with curl or directly open it in your browser using `gcloud app browse`. - -=== Building the application via the Google Cloud Maven plugin - -You can also let Maven control the deployment of your application using the App Engine Maven plugin. - -First, add the plugin to your `pom.xml`: - -[source,xml] ----- - - com.google.cloud.tools - appengine-maven-plugin - 2.4.0 - - GCLOUD_CONFIG <1> - gettingstarted - ${project.build.directory}/${project.artifactId}-${project.version}-runner.jar <2> - - ----- -<1> Use the default `gcloud` configuration -<2> Override the default JAR name to the one generated by the Quarkus Maven plugin - -Then you would be able to use Maven to build and deploy your application to App Engine via `mvn clean package appengine:deploy`. - -When it’s done, the output will display the URL of your application (target URL), you can use it with curl or directly open it in your browser using `gcloud app browse`. - -== Deploying to Google App Engine Flexible Custom Runtimes - -Before all, make sure to have an App Engine environment initialized for your Google Cloud project, if not, initialize one via `gcloud app create --project=[YOUR_PROJECT_ID]`. - -App Engine Flexible Custom Runtimes uses a Docker image to run your application. - -First, create an `app.yaml` file at the root of your project with the following content: - -[source, yaml] ----- -runtime: custom -env: flex ----- - -App Engine Flexible Custom Runtimes deploys your application as a Docker container, you can choose to deploy one of the Dockerfile provided inside your application. - -Both JVM and native executable versions will work. - -To deploy a JVM application: - -- Copy the JVM Dockerfile to the root directory of your project: `cp src/main/docker/Dockerfile.jvm Dockerfile`. -- Build your application using `mvn clean package`. - -To deploy a native application: - -- Copy the native Dockerfile to the root directory of your project: `cp src/main/docker/Dockerfile.native Dockerfile`. -- Build your application as a native executable using `mvn clean package -Dnative`. - -Finally, launch `gcloud app deploy` in the root of your project, it will upload all your project files (the list can be reduced via the `.gcloudignore` file), -build your Dockerfile and launch it on App Engine Flexible custom runtime. - -It uses Cloud Build to build your Docker image and deploy it to Google Container Registry (GCR). - -When done, the output will display the URL of your application (target url), you can use it with curl or directly open it in your browser using `gcloud app browse`. - -NOTE: App Engine Flexible custom runtimes support link:https://cloud.google.com/appengine/docs/flexible/custom-runtimes/configuring-your-app-with-app-yaml#updated_health_checks[health checks], -it is strongly advised to provide them thanks to Quarkus xref:microprofile-health.adoc[Microprofile Health] support. - -== Deploying to Google Cloud Run - -Google Cloud Run allows you to run your Docker containers inside Google Cloud Platform in a managed way. - -NOTE: By default, Quarkus listens on port 8080, and it's also the Cloud Run default port. -No need to use the `PORT` environment variable defined in Cloud Run to customize the Quarkus HTTP port. - -Cloud Run will use Cloud Build to build your Docker image and deploy it to Google Container Registry (GCR). - -Both JVM and native executable versions will work. - -To deploy a JVM application: - -- Copy the JVM Dockerfile to the root directory of your project: `cp src/main/docker/Dockerfile.jvm Dockerfile`. -- Build your application using `mvn clean package`. - -To deploy a native application: - -- Copy the native Dockerfile to the root directory of your project: `cp src/main/docker/Dockerfile.native Dockerfile`. -- Build your application as a native executable using `mvn clean package -Dnative`. - -Then, create a `.gcloudignore` file to tell gcloud which files should be not be uploaded for Cloud Build, -without it, it defaults to `.gitignore` that usually exclude the target directory where you packaged application has been created. - -In this example, I only exclude the `src` directory: - -[source] ----- -src/ ----- - -Then, use Cloud Build to build your image, it will upload to a Google Cloud Storage bucket all the files of your application (except the ones ignored by the `.gcloudignore`file), -build your Docker image and push it to Google Container Registry (GCR). - -[source, shell script] ----- -gcloud builds submit --tag gcr.io/PROJECT-ID/helloworld ----- - -NOTE: You can also build your image locally and push it to a publicly accessible Docker registry, then use this image in the next step. - -Finally, use Cloud Run to launch your application. - -[source, shell script] ----- -gcloud run deploy --image gcr.io/PROJECT-ID/helloworld --platform managed ----- - -Cloud run will ask you questions on the service name, the region and whether or not unauthenticated calls are allowed. -After you answer to these questions, it will deploy your application. - -When the deployment is done, the output will display the URL to access your application. - -== Using Cloud SQL - -Google Cloud SQL provides managed instances for MySQL, PostgreSQL and Microsoft SQL Server. -Quarkus has support for all three databases. - -=== Using Cloud SQL with a JDBC driver - -To make your applications work with Cloud SQL, you first need to use the corresponding JDBC extension, for example, for PostgreSQL, -add the `quarkus-jdbc-postgresql` extension. - -Then you need to add to your `pom.xml` the Cloud SQL JDBC library that provides the additional connectivity to Cloud SQL. -For PostgreSQL you will need to include the following dependency: - -[source, xml] ----- - - com.google.cloud.sql - postgres-socket-factory - ${postgres-socket-factory.version} - ----- - -Finally, you need to configure your datasource specifically to use the socket factory: - -[source, properties] ----- -quarkus.datasource.db-kind=other <1> -quarkus.datasource.jdbc.url=jdbc:postgresql:///mydatabase <2> -quarkus.datasource.jdbc.driver=org.postgresql.Driver -quarkus.datasource.username=quarkus -quarkus.datasource.password=quarkus -quarkus.datasource.jdbc.additional-jdbc-properties.cloudSqlInstance=project-id:gcp-region:instance <3> -quarkus.datasource.jdbc.additional-jdbc-properties.socketFactory=com.google.cloud.sql.postgres.SocketFactory <4> ----- -<1> Database kind must be 'other' as we need to skip Quarkus auto-configuration. -<2> The JDBC URL should not include the hostname / IP of the database. -<3> We add the `cloudSqlInstance` additional JDBC property to configure the instance id. -<4> We add the `socketFactory` additional JDBC property to configure the socket factory used to connect to Cloud SQL, -this one is coming from the `postgres-socket-factory` dependency. - -NOTE: If you use Hibernate ORM, you also need to configure `quarkus.hibernate-orm.dialect=org.hibernate.dialect.PostgreSQL10Dialect` -as Hibernate ORM would not be able to automatically detect the dialect of your database. - -WARNING: Using a PostgreSQL socket factory is not possible in dev mode at the moment -due to issue link:https://github.com/quarkusio/quarkus/issues/15782[#15782]. - -=== Using Cloud SQL with a reactive SQL client - -You can also use one of our reactive SQL client instead of the JDBC client. -To do so with Cloud SQL, add the following dependency -(adjust the classifier depending on your platform): - -[source, xml] ----- - - io.netty - netty-transport-native-epoll - linux-x86_64 - ----- - -Then configure your reactive datasource with no hostname and with the Netty native transport: - -[source, properties] ----- -quarkus.datasource.reactive.url=postgresql://:5432/db-name?host=/cloudsql/project-id:zone:db-name -quarkus.vertx.prefer-native-transport=true ----- - -WARNING: This only works when your application is running inside a Google Cloud managed runtime like App Engine. - -== Going further - -You can find a set of extensions to access various Google Cloud Services in the Quarkiverse (a GitHub organization for Quarkus extensions maintained by the community), -including PubSub, BigQuery, Storage, Spanner, Firestore, Secret Manager (visit the repository for an accurate list of supported services). - -You can find some documentation about them in the link:https://github.com/quarkiverse/quarkiverse-google-cloud-services[Quarkiverse Google Cloud Services repository]. diff --git a/_versions/2.7/guides/deploying-to-heroku.adoc b/_versions/2.7/guides/deploying-to-heroku.adoc deleted file mode 100644 index d9fb6868da9..00000000000 --- a/_versions/2.7/guides/deploying-to-heroku.adoc +++ /dev/null @@ -1,209 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Deploying to Heroku -include::./attributes.adoc[] - -In this guide you will learn how to deploy a Quarkus based web application as a web-dyno to Heroku. - -This guide covers: - -* Update Quarkus HTTP Port -* Install the Heroku CLI -* Deploy the application to Heroku -* Deploy the application as Docker image to Heroku -* Deploy the native application as Docker image to Heroku - -== Prerequisites - -:prerequisites-time: 1 hour for all modalities -:prerequisites-no-graalvm: -include::includes/devtools/prerequisites.adoc[] -* https://www.heroku.com/[A Heroku Account]. Free accounts work. -* https://devcenter.heroku.com/articles/heroku-cli[Heroku CLI installed] - -== Introduction - -Heroku is a platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud. -It supports several languages like Java, Ruby, Node.js, Scala, Clojure, Python, PHP, and Go. -In addition it offers a container registry that can be used to deploy prebuilt container images. - -Heroku can be used in different ways to run a Quarkus application: - -* As a plain Java program running in a container defined by Heroku's environment -* As a containerized Java program running in a container defined by the Quarkus build process -* As a containerized native program running in a container defined by the Quarkus build process - -All three approaches need to be aware of the port that Heroku assigns to it to handle traffic. -Luckily, there's a dynamic configuration property for it. - -The guide assumes that you have the https://devcenter.heroku.com/articles/heroku-cli[Heroku CLI] installed. - -== Common project setup - -This guide will take as input an application developed in the xref:getting-started.adoc[Getting Started guide]. - -Make sure you have the getting-started application at hand, or clone the Git repository: `git clone {quickstarts-clone-url}`, -or download an {quickstarts-archive-url}[archive]. The solution is located in the `getting-started` directory. - -Heroku can react on changes in your repository, run CI and redeploy your application when your code changes. -Therefore we start with a valid repository already. - -Also, make sure your Heroku CLI is working: - -[source,bash] ----- -heroku --version -heroku login ----- - -== Prepare the Quarkus HTTP Port - -Heroku picks a random port and assigns it to the container that is eventually running your Quarkus application. -That port is available as an environment variable under `$PORT`. -The easiest way to make Quarkus in all deployment scenarios aware of it is using the following configuration: - -[source,properties] ----- -quarkus.http.port=${PORT:8080} ----- - -This reads as: "Listen on `$PORT` if this is a defined variable, otherwise listen on 8080 as usual." -Run the following to add this to your `application.properties`: - -[source,bash] ----- -echo "quarkus.http.port=\${PORT:8080}" >> src/main/resources/application.properties -git commit -am "Configure the HTTP Port." ----- - -== Deploy the repository and build on Heroku - -The first variant uses the Quarkus Maven build to create the _quarkus-app_ application structure containing the runnable "fast-jar" as well as all libraries needed -inside Heroku's build infrastructure and then deploying that result, the other one uses a local build process to create an optimized container. - -Two additional files are needed in your application's root directory: - -* `system.properties` to configure the Java version -* `Procfile` to configure how Heroku starts your application - -Quarkus needs JDK 11, so we specify that first: - -[source,bash] ----- -echo "java.runtime.version=11" >> system.properties -git add system.properties -git commit -am "Configure the Java version for Heroku." ----- - -We will deploy a web application so we need to configure the type `web` in the Heroku `Procfile` like this: - -[source,bash] ----- -echo "web: java \$JAVA_OPTS -jar target/quarkus-app/quarkus-run.jar" >> Procfile -git add Procfile -git commit -am "Add a Procfile." ----- - -Your application should already be runnable via `heroku local web`. - -Let's create an application in your account and deploy that repository to it: - -[source,bash] ----- -heroku create -git push heroku master -heroku open ----- - -The application will have a generated name and the terminal should output that. `heroku open` opens your default browser to access your new application. - -To access the REST endpoint via curl, run: - -[source,bash] ----- -APP_NAME=`heroku info | grep "=== .*" |sed "s/=== //"` -curl $APP_NAME.herokuapp.com/hello ----- - -Of course, you can use the Heroku CLI to connect this repo to your GitHub account, too, but this is out of scope for this guide. - -== Deploy as container - -The advantage of pushing a whole container is that we are in complete control over its content and maybe even choose to deploy a container with a native executable running on GraalVM. - -First, login to Heroku's container registry: - -[source,bash] ------ -heroku container:login ------ - -We need to add an extension to our project to build container images via the Quarkus Maven plugin: - -[source,bash] ----- -mvn quarkus:add-extension -Dextensions="container-image-docker" -git add pom.xml -git commit -am "Add container-image-docker extension." ----- - -The image we are going to build needs to be named accordingly to work with Heroku's registry and deployment. -We get the generated name via `heroku info` and pass it on to the (local) build: - -[source,bash] ----- -APP_NAME=`heroku info | grep "=== .*" |sed "s/=== //"` -mvn clean package\ - -Dquarkus.container-image.build=true\ - -Dquarkus.container-image.group=registry.heroku.com/$APP_NAME\ - -Dquarkus.container-image.name=web\ - -Dquarkus.container-image.tag=latest ----- - -With Docker installed, you can now push the image and release it: - -[source,bash] ----- -docker push registry.heroku.com/$APP_NAME/web -heroku container:release web --app $APP_NAME ----- - -You can and should check the logs to see if your application is now indeed running from the container: - -[source,bash] ----- -heroku logs --app $APP_NAME --tail ----- - -The initial push is rather big, as all layers of the image need to be transferred. -The following pushes will be smaller. - -The biggest advantage we take when deploying our app as a container is to deploy a container with the natively compiled application. -Why? Because Heroku will stop or sleep the application when there's no incoming traffic. -A native application will wake up much faster from its sleep. - -The process is pretty much the same. -We opt in to compiling a native image inside a local container, so that we don't have to deal with installing GraalVM locally: - -[source,bash] ----- -APP_NAME=`heroku info | grep "=== .*" |sed "s/=== //"` -mvn clean package\ - -Dquarkus.container-image.build=true\ - -Dquarkus.container-image.group=registry.heroku.com/$APP_NAME\ - -Dquarkus.container-image.name=web\ - -Dquarkus.container-image.tag=latest\ - -Pnative\ - -Dquarkus.native.container-build=true ----- - -After that, push and release again: - -[source,bash] ----- -docker push registry.heroku.com/$APP_NAME/web -heroku container:release web --app $APP_NAME ----- diff --git a/_versions/2.7/guides/deploying-to-kubernetes.adoc b/_versions/2.7/guides/deploying-to-kubernetes.adoc deleted file mode 100644 index b6317dead25..00000000000 --- a/_versions/2.7/guides/deploying-to-kubernetes.adoc +++ /dev/null @@ -1,1555 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Kubernetes extension - -include::./attributes.adoc[] - -Quarkus offers the ability to automatically generate Kubernetes resources based on sane defaults and user-supplied configuration using https://github.com/dekorateio/dekorate/[dekorate]. -It currently supports generating resources for vanilla <<#kubernetes,Kubernetes>>, <<#openshift,OpenShift>> and <<#knative,Knative>>. -Furthermore, Quarkus can deploy the application to a target Kubernetes cluster by applying the generated manifests to the target cluster's API Server. -Finally, when either one of container image extensions is present (see the xref:container-image.adoc[container image guide] for more details), Quarkus has the ability to create a container image and push it to a registry *before* deploying the application to the target platform. - -== Prerequisites - -:prerequisites-no-graalvm: -include::includes/devtools/prerequisites.adoc[] -* Access to a Kubernetes cluster (Minikube is a viable option) - -[#kubernetes] -== Kubernetes - -Let's create a new project that contains both the Kubernetes and Jib extensions: - -:create-app-artifact-id: kubernetes-quickstart -:create-app-extensions: resteasy,kubernetes,jib -include::includes/devtools/create-app.adoc[] - -This added the following dependencies to the build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-resteasy - - - io.quarkus - quarkus-kubernetes - - - io.quarkus - quarkus-container-image-jib - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-resteasy") -implementation("io.quarkus:quarkus-kubernetes") -implementation("io.quarkus:quarkus-container-image-jib") ----- - -By adding these dependencies, we enable the generation of Kubernetes manifests each time we perform a build while also enabling the build of a container image using Jib. -For example, following the execution of: - -include::includes/devtools/build.adoc[] - -you will notice amongst the other files that are created, two files named -`kubernetes.json` and `kubernetes.yml` in the `target/kubernetes/` directory. - -If you look at either file you will see that it contains both a Kubernetes `Deployment` and a `Service`. - -The full source of the `kubernetes.json` file looks something like this: - -[source,json] ----- -{ - { - "apiVersion" : "apps/v1", - "kind" : "Deployment", - "metadata" : { - "annotations": { - "app.quarkus.io/vcs-url" : "", - "app.quarkus.io/commit-id" : "", - }, - "labels" : { - "app.kubernetes.io/name" : "test-quarkus-app", - "app.kubernetes.io/version" : "1.0.0-SNAPSHOT", - }, - "name" : "test-quarkus-app" - }, - "spec" : { - "replicas" : 1, - "selector" : { - "matchLabels" : { - "app.kubernetes.io/name" : "test-quarkus-app", - "app.kubernetes.io/version" : "1.0.0-SNAPSHOT", - } - }, - "template" : { - "metadata" : { - "labels" : { - "app.kubernetes.io/name" : "test-quarkus-app", - "app.kubernetes.io/version" : "1.0.0-SNAPSHOT" - } - }, - "spec" : { - "containers" : [ { - "env" : [ { - "name" : "KUBERNETES_NAMESPACE", - "valueFrom" : { - "fieldRef" : { - "fieldPath" : "metadata.namespace" - } - } - } ], - "image" : "yourDockerUsername/test-quarkus-app:1.0.0-SNAPSHOT", - "imagePullPolicy" : "Always", - "name" : "test-quarkus-app" - } ] - } - } - } - }, - { - "apiVersion" : "v1", - "kind" : "Service", - "metadata" : { - "annotations": { - "app.quarkus.io/vcs-url" : "", - "app.quarkus.io/commit-id" : "", - }, - "labels" : { - "app.kubernetes.io/name" : "test-quarkus-app", - "app.kubernetes.io/version" : "1.0.0-SNAPSHOT", - }, - "name" : "test-quarkus-app" - }, - "spec" : { - "ports" : [ { - "name" : "http", - "port" : 8080, - "targetPort" : 8080 - } ], - "selector" : { - "app.kubernetes.io/name" : "test-quarkus-app", - "app.kubernetes.io/version" : "1.0.0-SNAPSHOT" - }, - "type" : "ClusterIP" - } - } -} ----- - -Beside generating a `Deployment` resource, you can also choose to get a `StatefulSet` instead via `application.properties`: - -[source,properties] ----- -quarkus.kubernetes.deployment-kind=StatefulSet ----- - -The generated manifest can be applied to the cluster from the project root using `kubectl`: - -[source,bash] ----- -kubectl apply -f target/kubernetes/kubernetes.json ----- - -An important thing to note about the `Deployment` (or `StatefulSet`) is that is uses `yourDockerUsername/test-quarkus-app:1.0.0-SNAPSHOT` as the container image of the `Pod`. -The name of the image is controlled by the Jib extension and can be customized using the usual `application.properties`. - -For example with a configuration like: - -[source,properties] ----- -quarkus.container-image.group=quarkus #optional, default to the system user name -quarkus.container-image.name=demo-app #optional, defaults to the application name -quarkus.container-image.tag=1.0 #optional, defaults to the application version ----- - -The image that will be used in the generated manifests will be `quarkus/demo-app:1.0` - -=== Namespace - -By default Quarkus omits the namespace in the generated manifests, rather than enforce the `default` namespace. That means that you can apply the manifest to your chosen namespace when using `kubectl`, which in the example below is `test`: - -[source,bash] ----- -kubectl apply -f target/kubernetes/kubernetes.json -n=test ----- - -To specify the namespace in your manifest customize with the following property in your `application.properties`: - -[source,properties] ----- -quarkus.kubernetes.namespace=mynamespace ----- - -=== Defining a Docker registry - -The Docker registry can be specified with the following property: - -[source,properties] ----- -quarkus.container-image.registry=my.docker-registry.net ----- - -By adding this property along with the rest of the container image properties of the previous section, the generated manifests will use the image `my.docker-registry.net/quarkus/demo-app:1.0`. -The image is not the only thing that can be customized in the generated manifests, as will become evident in the following sections. - -=== Labels and Annotations - -==== Labels - -The generated manifests use the Kubernetes link:https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels[recommended labels]. -These labels can be customized using `quarkus.kubernetes.name`, `quarkus.kubernetes.version` and `quarkus.kubernetes.part-of`. -For example by adding the following configuration to your `application.properties`: - -[source,properties] ----- -quarkus.kubernetes.part-of=todo-app -quarkus.kubernetes.name=todo-rest -quarkus.kubernetes.version=1.0-rc.1 ----- - -[NOTE] -==== -As is described in detail in the <<#openshift, OpenShift>> section, customizing OpenShift (or Knative) properties is done in the same way, but replacing -`kubernetes` with `openshift` (or `knative`). The previous example for OpenShift would look like this: - -[source,properties] ----- -quarkus.openshift.part-of=todo-app -quarkus.openshift.name=todo-rest -quarkus.openshift.version=1.0-rc.1 ----- -==== - -The labels in generated resources will look like: - -[source, json] ----- - "labels" : { - "app.kubernetes.io/part-of" : "todo-app", - "app.kubernetes.io/name" : "todo-rest", - "app.kubernetes.io/version" : "1.0-rc.1" - } ----- - -[NOTE] -==== -You can also remove the `app.kubernetes.io/version` label by applying the following configuration: - -[source,properties] ----- -quarkus.kubernetes.add-version-to-label-selectors=false ----- -==== - -==== Custom Labels - -To add additional custom labels, for example `foo=bar` just apply the following configuration: - -[source,properties] ----- -quarkus.kubernetes.labels.foo=bar ----- - -NOTE: When using the `quarkus-container-image-jib` extension to build a container image, then any label added via the aforementioned property will also be added to the generated container image. - -==== Annotations - -Out of the box, the generated resources will be annotated with version control related information that can be used either by tooling, or by the user for troubleshooting purposes. - -[source,json] ----- - "annotations": { - "app.quarkus.io/vcs-url" : "", - "app.quarkus.io/commit-id" : "", - } ----- - -==== Custom Annotations - -Custom annotations can be added in a way similar to labels.For example to add the annotation `foo=bar` and `app.quarkus/id=42` just apply the following configuration: - -[source,properties] ----- -quarkus.kubernetes.annotations.foo=bar -quarkus.kubernetes.annotations."app.quarkus/id"=42 ----- - -[#env-vars] -==== Environment variables - -Kubernetes provides multiple ways of defining environment variables: - -- key/value pairs -- import all values from a Secret or ConfigMap -- interpolate a single value identified by a given field in a Secret or ConfigMap -- interpolate a value from a field within the same resource - -===== Environment variables from key/value pairs - -To add a key/value pair as an environment variable in the generated resources: - -[source,properties] ----- -quarkus.kubernetes.env.vars.my-env-var=foobar ----- - -The command above will add `MY_ENV_VAR=foobar` as an environment variable. -Please note that the key `my-env-var` will be converted to uppercase and dashes will be replaced by underscores resulting in `MY_ENV_VAR`. - -[[secret-mapping]] -===== Environment variables from Secret - -To add all key/value pairs of `Secret` as environment variables just apply the following configuration, separating each `Secret` -to be used as source by a comma (`,`): - -[source,properties] ----- -quarkus.kubernetes.env.secrets=my-secret,my-other-secret ----- - -which would generate the following in the container definition: - -[source,yaml] ----- -envFrom: - - secretRef: - name: my-secret - optional: false - - secretRef: - name: my-other-secret - optional: false ----- - -The following extracts a value identified by the `keyName` field from the `my-secret` Secret into a `foo` environment variable: - -[source,properties] ----- -quarkus.kubernetes.env.mapping.foo.from-secret=my-secret -quarkus.kubernetes.env.mapping.foo.with-key=keyName ----- - -This would generate the following in the `env` section of your container: - -[source,yaml] ----- -- env: - - name: FOO - valueFrom: - secretKeyRef: - key: keyName - name: my-secret - optional: false ----- - -===== Environment variables from ConfigMap - -To add all key/value pairs from `ConfigMap` as environment variables just apply the following configuration, separating each -`ConfigMap` to be used as source by a comma (`,`): - -[source,properties] ----- -quarkus.kubernetes.env.configmaps=my-config-map,another-config-map ----- - -which would generate the following in the container definition: - -[source,yaml] ----- -envFrom: - - configMapRef: - name: my-config-map - optional: false - - configMapRef: - name: another-config-map - optional: false ----- - -The following extracts a value identified by the `keyName` field from the `my-config-map` ConfigMap into a `foo` -environment variable: - -[source,properties] ----- -quarkus.kubernetes.env.mapping.foo.from-configmap=my-configmap -quarkus.kubernetes.env.mapping.foo.with-key=keyName ----- - -This would generate the following in the `env` section of your container: - -[source,yaml] ----- -- env: - - name: FOO - valueFrom: - configMapRefKey: - key: keyName - name: my-configmap - optional: false ----- - -===== Environment variables from fields - -It's also possible to use the value from another field to add a new environment variable by specifying the path of the field to be used as a source, as follows: - -[source,properties] ----- -quarkus.kubernetes.env.fields.foo=metadata.name ----- - -[NOTE] -==== -As is described in detail in the <<#openshift, OpenShift>> section, customizing OpenShift properties is done in the same way, but replacing -`kubernetes` with `openshift`. The previous example for OpenShift would look like this: - -[source,properties] ----- -quarkus.openshift.env.fields.foo=metadata.name ----- -==== - -===== Validation - -A conflict between two definitions, e.g. mistakenly assigning both a value and specifying that a variable is derived from a field, will result in an error being thrown at build time so that you get the opportunity to fix the issue before you deploy your application to your cluster where it might be more difficult to diagnose the source of the issue. - -Similarly, two redundant definitions, e.g. defining an injection from the same secret twice, will not cause an issue but will indeed report a warning to let you know that you might not have intended to duplicate that definition. - -[#env-vars-backwards] -===== Backwards compatibility - -Previous versions of the Kubernetes extension supported a different syntax to add environment variables.The older syntax is still supported but is deprecated and it's advised that you migrate to the new syntax. - -.Old vs. new syntax -|==== -| |Old | New | -| Plain variable |`quarkus.kubernetes.env-vars.my-env-var.value=foobar` | `quarkus.kubernetes.env.vars.my-env-var=foobar` | -| From field |`quarkus.kubernetes.env-vars.my-env-var.field=foobar` | `quarkus.kubernetes.env.fields.my-env-var=foobar` | -| All from `ConfigMap` |`quarkus.kubernetes.env-vars.xxx.configmap=foobar` | `quarkus.kubernetes.env.configmaps=foobar` | -| All from `Secret` |`quarkus.kubernetes.env-vars.xxx.secret=foobar` | `quarkus.kubernetes.env.secrets=foobar` | -| From one `Secret` field |`quarkus.kubernetes.env-vars.foo.secret=foobar` | `quarkus.kubernetes.env.mapping.foo.from-secret=foobar` | -| |`quarkus.kubernetes.env-vars.foo.value=field` | `quarkus.kubernetes.env.mapping.foo.with-key=field` | -| From one `ConfigMap` field |`quarkus.kubernetes.env-vars.foo.configmap=foobar` | `quarkus.kubernetes.env.mapping.foo.from-configmap=foobar` | -| |`quarkus.kubernetes.env-vars.foo.value=field` | `quarkus.kubernetes.env.mapping.foo.with-key=field` | -|==== - -NOTE: If you redefine the same variable using the new syntax while keeping the old syntax, **ONLY** the new version will be kept -and a warning will be issued to alert you of the problem.For example, if you define both -`quarkus.kubernetes.env-vars.my-env-var.value=foobar` and `quarkus.kubernetes.env.vars.my-env-var=newValue`, the extension will -only generate an environment variable `MY_ENV_VAR=newValue` and issue a warning. - -==== Mounting volumes - -The Kubernetes extension allows the user to configure both volumes and mounts for the application. -Any volume can be mounted with a simple configuration: - -[source,properties] ----- -quarkus.kubernetes.mounts.my-volume.path=/where/to/mount ----- - -This will add a mount to the pod for volume `my-volume` to path `/where/to/mount`. -The volumes themselves can be configured as shown in the sections below. - -===== Secret volumes - -[source,properties] ----- -quarkus.kubernetes.secret-volumes.my-volume.secret-name=my-secret ----- - -===== ConfigMap volumes - -[source,properties] ----- -quarkus.kubernetes.config-map-volumes.my-volume.config-map-name=my-secret ----- - -==== Passing application configuration - -Quarkus supports passing configuration from external locations (via Smallrye Config). This usually requires setting an additional environment variable or system propertiy. -When you need to use a secret or a config map for the purpose of application configuration, you need to: - -- define a volume -- mount the volume -- create an environment variable for `SMALLRYE_CONFIG_LOCATIONS` - -To simplify things, quarkus provides single step alternative: - -[source,properties] ----- -quarkus.kubernetes.app-secret= ----- - -or - -[source,properties] ----- -quarkus.kubernetes.app-config-map= ----- - -When these properties are used, the generated manifests will contain everything required. -The application config volumes will be created using path: `/mnt/app-secret` and `/mnt/app-config-map` for secrets and configmaps respectively. - -Note: Users may use both properties at the same time. - -=== Changing the number of replicas: - -To change the number of replicas from 1 to 3: - -[source,properties] ----- -quarkus.kubernetes.replicas=3 ----- - -=== Add readiness and liveness probes - -By default, the Kubernetes resources do not contain readiness and liveness probes in the generated `Deployment`. Adding them however is just a matter of adding the SmallRye Health extension like so: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-health - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-health") ----- - -The values of the generated probes will be determined by the configured health properties: `quarkus.smallrye-health.root-path`, `quarkus.smallrye-health.liveness-path` and `quarkus.smallrye-health.readiness-path`. -More information about the health extension can be found in the relevant xref:microprofile-health.adoc[guide]. - -=== Customizing the readiness probe: -To set the initial delay of the probe to 20 seconds and the period to 45: - -[source,properties] ----- -quarkus.kubernetes.readiness-probe.initial-delay=20s -quarkus.kubernetes.readiness-probe.period=45s ----- - -=== Add hostAliases -To add entries to a Pod's `/etc/hosts` file (more information can be found in https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/[Kubernetes documentation]), just apply the following configuration: - -[source,properties] ----- -quarkus.kubernetes.hostaliases."10.0.0.0".hostnames=foo.com,bar.org ----- - -This would generate the following `hostAliases` section in the `deployment` definition: - -[source,yaml] ----- -kind: Deployment -spec: - template: - spec: - hostAliases: - - hostnames: - - foo.com - - bar.org - ip: 10.0.0.0 ----- - -=== Container Resources Management - -CPU & Memory limits and requests can be applied to a `Container` (more info in https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/[Kubernetes documentation]) using the following configuration: - -[source] ----- -quarkus.kubernetes.resources.requests.memory=64Mi -quarkus.kubernetes.resources.requests.cpu=250m -quarkus.kubernetes.resources.limits.memory=512Mi -quarkus.kubernetes.resources.limits.cpu=1000m ----- - -This would generate the following entry in the `container` section: - -[source, yaml] ----- -containers: - resources: - limits: - cpu: 1000m - memory: 512Mi - requests: - cpu: 250m - memory: 64Mi ----- - -=== Using the Kubernetes client - -Applications that are deployed to Kubernetes and need to access the API server will usually make use of the `kubernetes-client` extension: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-kubernetes-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-kubernetes-client") ----- - -To access the API server from within a Kubernetes cluster, some RBAC related resources are required (e.g. a ServiceAccount, a RoleBinding etc.). -So, when the `kubernetes-client` extension is present, the `kubernetes` extension is going to create those resources automatically, so that application will be granted the `view` role. -If more roles are required, they will have to be added manually. - -=== Deploying to Minikube - -https://github.com/kubernetes/minikube[Minikube] is quite popular when a Kubernetes cluster is needed for development purposes. To make the deployment to Minikube -experience as frictionless as possible, Quarkus provides the `quarkus-minikube` extension. This extension can be added to a project like so: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-minikube - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-minikube") ----- - -The purpose of this extension is to generate Kubernetes manifests (`minikube.yaml` and `minikube.json`) that are tailored to Minikube. -This extension assumes a couple things: - -* Users won't be using an image registry and will instead make their container image accessible to the Kubernetes cluster by building it directly -into Minikube's Docker daemon. To use Minikube's Docker daemon you must first execute: -+ -[source,bash] ----- -eval $(minikube -p minikube docker-env) ----- - -* Applications deployed to Kubernetes won't be accessed via a Kubernetes `Ingress`, but rather as a `NodePort` `Service`. -The advantage of doing this is that the URL of an application can be retrieved trivially by executing: -+ -[source,bash] ----- -minikube service list ----- - -To control the https://kubernetes.io/docs/concepts/services-networking/service/#nodeport[nodePort] that is used in this case, users can set `quarkus.kubernetes.node-port`. -Note however that this configuration is entirely optional because Quarkus will automatically use a proper (and non-changing) value if none is set. - -WARNING: It is highly discouraged to use the manifests generated by the Minikube extension when deploying to production as these manifests are intended for development purposes -only. When deploying to production, consider using the vanilla Kubernetes manifests (or the OpenShift ones when targeting OpenShift). - -NOTE: If the assumptions the Minikube extension makes don't fit your workflow, nothing prevents you from using the regular Kubernetes extension to generate Kubernetes manifests -and apply those to your Minikube cluster. - -== Tuning the generated resources using application.properties - -The Kubernetes extension allows tuning the generated manifest, using the `application.properties` file. -Here are some examples: - -=== Configuration options - -The table below describe all the available configuration options. - -.Kubernetes -|==== -| Property | Type | Description | Default Value -| quarkus.kubernetes.name | String | | ${quarkus.container-image.name} -| quarkus.kubernetes.version | String | | ${quarkus.container-image.tag} -| quarkus.kubernetes.deployment-kind | String | | Deployment -| quarkus.kubernetes.part-of | String | | -| quarkus.kubernetes.init-containers | Map | | -| quarkus.kubernetes.namespace | String | | -| quarkus.kubernetes.labels | Map | | -| quarkus.kubernetes.annotations | Map | | -| quarkus.kubernetes.app-secret | String | | -| quarkus.kubernetes.app-config-map | String | | -| quarkus.kubernetes.env-vars | Map | | -| quarkus.kubernetes.working-dir | String | | -| quarkus.kubernetes.command | String[] | | -| quarkus.kubernetes.arguments | String[] | | -| quarkus.kubernetes.replicas | int | | 1 -| quarkus.kubernetes.service-account | String | | -| quarkus.kubernetes.ports | Map | | -| quarkus.kubernetes.service-type | ServiceType | | ClusterIP -| quarkus.kubernetes.pvc-volumes | Map | | -| quarkus.kubernetes.secret-volumes | Map | | -| quarkus.kubernetes.config-map-volumes | Map | | -| quarkus.kubernetes.git-repo-volumes | Map | | -| quarkus.kubernetes.aws-elastic-block-store-volumes | Map | | -| quarkus.kubernetes.azure-disk-volumes | Map | | -| quarkus.kubernetes.azure-file-volumes | Map | | -| quarkus.kubernetes.mounts | Map | | -| quarkus.kubernetes.image-pull-policy | ImagePullPolicy | | Always -| quarkus.kubernetes.image-pull-secrets | String[] | | -| quarkus.kubernetes.liveness-probe | Probe | | ( see Probe ) -| quarkus.kubernetes.readiness-probe | Probe | | ( see Probe ) -| quarkus.kubernetes.sidecars | Map | | -| quarkus.kubernetes.ingress.expose | boolean | | false -| quarkus.kubernetes.ingress.host | String | | -| quarkus.kubernetes.ingress.annotations | Map | | -| quarkus.kubernetes.headless | boolean | | false -| quarkus.kubernetes.hostaliases | Map | | -| quarkus.kubernetes.resources.requests.cpu | String | | -| quarkus.kubernetes.resources.requests.memory | String | | -| quarkus.kubernetes.resources.limits.cpu | String | | -| quarkus.kubernetes.resources.limits.memory | String | | -|==== - -Properties that use non-standard types, can be referenced by expanding the property. -For example to define a `kubernetes-readiness-probe` which is of type `Probe`: - -[source,properties] ----- -quarkus.kubernetes.readiness-probe.initial-delay=20s -quarkus.kubernetes.readiness-probe.period=45s ----- - -In this example `initial-delay` and `period` are fields of the type `Probe`. -Below you will find tables describing all available types. - -==== Client Connection Configuration -You may need to configure the connection to your Kubernetes cluster. -By default, it automatically uses the active _context_ used by `kubectl`. - -For instance, if your cluster API endpoint uses a self-signed SSL Certificate you need to explicitly configure the client to trust it. You can achieve this by defining the following property: - -[source,properties] ----- -quarkus.kubernetes-client.trust-certs=true ----- - -The full list of the Kuberneters client configuration properties is provided below. - -include::{generated-dir}/config/quarkus-kubernetes-client.adoc[opts=optional, leveloffset=+1] - -==== Basic Types - -.ServiceType -Allowed values: `cluster-ip`, `node-port`, `load-balancer`, `external-name` - -.Env -|==== -| Property | Type | Description | Default Value -| value | String | | -| secret | String | | -| configmap | String | | -| field | String | | -|==== - -.Probe -|==== -| Property | Type | Description | Default Value -| http-action-path | String | | -| exec-action | String | | -| tcp-socket-action | String | | -| initial-delay | Duration | | 0 -| period | Duration | | 30s -| timeout | Duration | | 10s -|==== - -.Port -|==== -| Property | Type | Description | Default Value -| container-port | int | | -| host-port | int | | 0 -| path | String | | / -| protocol | Protocol | | TCP -|==== - -.Container -|==== -| Property | Type | Description | Default Value -| image | String | | -| env-vars | Env[] | | -| working-dir | String | | -| command | String[] | | -| arguments | String[] | | -| ports | Port[] | | -| mounts | Mount[] | | -| image-pull-policy | ImagePullPolicy | | Always -| liveness-probe | Probe | | -| readiness-probe | Probe | | -|==== - -.HostAlias -|==== -| Property | Type | Description | Default Value -| hostnames | String[] | list of hostnames | -|==== - -==== Mounts and Volumes - -.Mount -|==== -| Property | Type | Description | Default Value -| path | String | | -| sub-path | String | | -| read-only | boolean | | false -|==== - -.ConfigMapVolume -|==== -| Property | Type | Description | Default Value -| config-map-name | String | | -| default-mode | int | | 0600 -| optional | boolean | | false -|==== - -.SecretVolume -|==== -| Property | Type | Description | Default Value -| secret-name | String | | -| default-mode | int | | 0600 -| optional | boolean | | false -|==== - - -.AzureDiskVolume -|==== -| Property | Type | Description | Default Value -| disk-name | String | | -| disk-uri | String | | -| kind | String | | Managed -| caching-mode | String | | ReadWrite -| fs-type | String | | ext4 -| read-only | boolean | | false -|==== - -.AwsElasticBlockStoreVolume -|==== -| Property | Type | Description | Default Value -| volume-id | String | | -| partition | int | | -| fs-type | String | | ext4 -| read-only | boolean | | false -|==== - -.GitRepoVolume -|==== -| Property | Type | Description | Default Value -| repository | String | | -| directory | String | | -| revision | String | | -|==== - -.PersistentVolumeClaimVolume -|==== -| Property | Type | Description | Default Value -| claim-name | String | | -| read-only | boolean | | false -|==== - -.AzureFileVolume -|==== -| Property | Type | Description | Default Value -| share-name | String | | -| secret-name | String | | -| read-only | boolean | | false -|==== - -[#openshift] -=== OpenShift - -One way to deploy an application to OpenShift is to use s2i (source to image) to create an image stream from the source and then deploy the image stream: - -[source,bash,role="primary asciidoc-tabs-sync-cli"] -.CLI ----- -quarkus extension remove kubernetes,jib -quarkus extension add openshift - -oc new-project quarkus-project -quarkus build -Dquarkus.container-image.build=true - -oc new-app --name=greeting quarkus-project/kubernetes-quickstart:1.0.0-SNAPSHOT -oc expose svc/greeting -oc get route -curl /greeting ----- - -[source,bash,role="secondary asciidoc-tabs-sync-maven"] -.Maven ----- -./mvnw quarkus:remove-extension -Dextensions="kubernetes, jib" -./mvnw quarkus:add-extension -Dextensions="openshift" - -oc new-project quarkus-project -./mvnw clean package -Dquarkus.container-image.build=true - -oc new-app --name=greeting quarkus-project/kubernetes-quickstart:1.0.0-SNAPSHOT -oc expose svc/greeting -oc get route -curl /greeting ----- - -[source,bash,role="secondary asciidoc-tabs-sync-gradle"] -.Gradle ----- -./gradlew removeExtension --extensions="kubernetes, jib" -./gradlew addExtension --extensions="openshift" - -oc new-project quarkus-project -./gradlew build -Dquarkus.container-image.build=true - -oc new-app --name=greeting quarkus-project/kubernetes-quickstart:1.0.0-SNAPSHOT -oc expose svc/greeting -oc get route -curl /greeting ----- - -See further information in xref:deploying-to-openshift.adoc[Deploying to OpenShift]. - -A description of OpenShift resources and customisable properties is given below alongside Kubernetes resources to show similarities where applicable. This includes an alternative to `oc new-app ...` above, i.e. `oc apply -f target/kubernetes/openshift.json` . - -To enable the generation of OpenShift resources, you need to include OpenShift in the target platforms: - -[source,properties] ----- -quarkus.kubernetes.deployment-target=openshift ----- - -If you need to generate resources for both platforms (vanilla Kubernetes and OpenShift), then you need to include both (comma separated). - -[source,properties] ----- -quarkus.kubernetes.deployment-target=kubernetes,openshift ----- - -Following the execution of `./mvnw package -Dquarkus.container-image.build=true` you will notice amongst the other files that are created, two files named -`openshift.json` and `openshift.yml` in the `target/kubernetes/` directory. - -These manifests can be deployed as is to a running cluster, using `kubectl`: - -[source,bash] ----- -kubectl apply -f target/kubernetes/openshift.json ----- - -OpenShift users might want to use `oc` rather than `kubectl`: - -[source,bash] ----- -oc apply -f target/kubernetes/openshift.json ----- - - -NOTE: Quarkus also provides the xref:deploying-to-openshift.adoc[OpenShift] extension. This extension is basically a wrapper around the Kubernetes extension and -relieves OpenShift users of the necessity of setting the `deployment-target` property to `openshift` - -The OpenShift resources can be customized in a similar approach with Kubernetes. - -.OpenShift -|==== -| Property | Type | Description | Default Value -| quarkus.openshift.name | String | | ${quarkus.container-image.name} -| quarkus.openshift.version | String | | ${quarkus.container-image.tag} -| quarkus.openshift.deployment-kind | String | | DeploymentConfig -| quarkus.openshift.part-of | String | | -| quarkus.openshift.init-containers | Map | | -| quarkus.openshift.labels | Map | | -| quarkus.openshift.annotations | Map | | -| quarkus.openshift.app-secret | String | | -| quarkus.openshift.app-config-map | String | | -| quarkus.openshift.env-vars | Map | | -| quarkus.openshift.working-dir | String | | -| quarkus.openshift.command | String[] | | -| quarkus.openshift.arguments | String[] | | -| quarkus.openshift.replicas | int | | 1 -| quarkus.openshift.service-account | String | | -| quarkus.openshift.ports | Map | | -| quarkus.openshift.service-type | ServiceType | | ClusterIP -| quarkus.openshift.pvc-volumes | Map | | -| quarkus.openshift.secret-volumes | Map | | -| quarkus.openshift.config-map-volumes | Map | | -| quarkus.openshift.git-repo-volumes | Map | | -| quarkus.openshift.aws-elastic-block-store-volumes | Map | | -| quarkus.openshift.azure-disk-volumes | Map | | -| quarkus.openshift.azure-file-volumes | Map | | -| quarkus.openshift.mounts | Map | | -| quarkus.openshift.image-pull-policy | ImagePullPolicy | | Always -| quarkus.openshift.image-pull-secrets | String[] | | -| quarkus.openshift.liveness-probe | Probe | | ( see Probe ) -| quarkus.openshift.readiness-probe | Probe | | ( see Probe ) -| quarkus.openshift.sidecars | Map | | -| quarkus.openshift.route.expose | boolean | | false -| quarkus.openshift.route.host | String | | -| quarkus.openshift.route.annotations | Map | | -| quarkus.openshift.headless | boolean | | false -|==== - -[#knative] -=== Knative - -To enable the generation of Knative resources, you need to include Knative in the target platforms: - -[source,properties] ----- -quarkus.kubernetes.deployment-target=knative ----- - -Following the execution of `./mvnw package` you will notice amongst the other files that are created, two files named -`knative.json` and `knative.yml` in the `target/kubernetes/` directory. - -If you look at either file you will see that it contains a Knative `Service`. - -The full source of the `knative.json` file looks something like this: - -[source,json] ----- -{ - { - "apiVersion" : "serving.quarkus.knative.dev/v1alpha1", - "kind" : "Service", - "metadata" : { - "annotations": { - "app.quarkus.io/vcs-url" : "", - "app.quarkus.io/commit-id" : "" - }, - "labels" : { - "app.kubernetes.io/name" : "test-quarkus-app", - "app.kubernetes.io/version" : "1.0.0-SNAPSHOT" - }, - "name" : "knative" - }, - "spec" : { - "runLatest" : { - "configuration" : { - "revisionTemplate" : { - "spec" : { - "container" : { - "image" : "dev.local/yourDockerUsername/test-quarkus-app:1.0.0-SNAPSHOT", - "imagePullPolicy" : "Always" - } - } - } - } - } - } - } -} ----- - -The generated manifest can be deployed as is to a running cluster, using `kubectl`: - -[source,bash] ----- -kubectl apply -f target/kubernetes/knative.json ----- - -The generated service can be customized using the following properties: - -.Knative -|==== -| Property | Type | Description | Default Value -| quarkus.knative.name | String | | ${quarkus.container-image.name} -| quarkus.knative.version | String | | ${quarkus.container-image.tag} -| quarkus.knative.part-of | String | | -| quarkus.knative.init-containers | Map | | -| quarkus.knative.labels | Map | | -| quarkus.knative.annotations | Map | | -| quarkus.knative.app-secret | String | | -| quarkus.knative.app-config-map | String | | -| quarkus.knative.env-vars | Map | | -| quarkus.knative.working-dir | String | | -| quarkus.knative.command | String[] | | -| quarkus.knative.arguments | String[] | | -| quarkus.knative.replicas | int | | 1 -| quarkus.knative.service-account | String | | -| quarkus.knative.host | String | | -| quarkus.knative.ports | Map | | -| quarkus.knative.service-type | ServiceType | | ClusterIP -| quarkus.knative.pvc-volumes | Map | | -| quarkus.knative.secret-volumes | Map | | -| quarkus.knative.config-map-volumes | Map | | -| quarkus.knative.git-repo-volumes | Map | | -| quarkus.knative.aws-elastic-block-store-volumes | Map | | -| quarkus.knative.azure-disk-volumes | Map | | -| quarkus.knative.azure-file-volumes | Map | | -| quarkus.knative.mounts | Map | | -| quarkus.knative.image-pull-policy | ImagePullPolicy | | Always -| quarkus.knative.image-pull-secrets | String[] | | -| quarkus.knative.liveness-probe | Probe | | ( see Probe ) -| quarkus.knative.readiness-probe | Probe | | ( see Probe ) -| quarkus.knative.sidecars | Map | | -| quarkus.knative.revision-name | String | | -| quarkus.knative.traffic | Traffic[] | | ( see Traffic ) -| quarkus.knative.min-scale | int | See link:https://knative.dev/docs/serving/autoscaling/scale-bounds/#lower-bound[link] | -| quarkus.knative.max-scale | int | See link:https://knative.dev/docs/serving/autoscaling/scale-bounds/#upper-bound[link] | -| quarkus.knative.scale-to-zero-enabled | boolean | See link:https://knative.dev/docs/serving/autoscaling/scale-to-zero/#enable-scale-to-zero[link] | true -| quarkus.knative.revision-auto-scaling | AutoScalingConfig | | ( see AutoScalingConfig ) -| quarkus.knative.global-auto-scaling | GlobalAutoScalingConfig | | ( see GlobalAutoScalingConfig ) -|==== - -.Traffic -|==== -| Property | Type | Description | Default Value -| revision-name | String | A specific revision to which to send this portion of traffic | -| tag | String | Expose a dedicated url for referncing this target | -| latest-revision | Boolean | Optionally provided to indicate that the latest revision should be used for this traffic target | false -| percent | Logn | Indicates the percent of traffic that is be routed to this revision | 100 -|==== - -.AutoScalingConfig -|==== -| Property | Type | Description | Default Value -| auto-scaler-class | String | The auto-scaler class. Possible values: `kpa` for Knative Pod Autoscaler, `hpa` for Horizontal Pod Autoscaler | kpa -| metric | String | The autoscaling metric to use. Possible values (concurency, rps, cpu) | -| target | int | This value specifies the autoscaling target | -| container-concurrency | int | The exact amount of requests allowed to the replica at a time | -| target-utilization-percentage | int | This value specifies a percentage of the target to actually be targeted by the autoscaler | -|==== - -.GlobalAutoScalingConfig -|==== -| Property | Type | Description | Default Value -| auto-scaler-class | String | The auto-scaler class. Possible values: `kpa` for Knative Pod Autoscaler, `hpa` for Horizontal Pod Autoscaler | kpa -| container-concurrency | int | The exact amount of requests allowed to the replica at a time | -| target-utilization-percentage | int | This value specifies a percentage of the target to actually be targeted by the autoscaler | -| requests-per-second | Logn | The requests per second per replica | -|==== - -=== Deployment targets - -Mentioned in the previous sections was the concept of `deployment-target`. This concept allows users to control which Kubernetes manifests will be generated -and deployed to a cluster (if `quarkus.kubernetes.deploy` has been set to `true`). - -By default, when no `deployment-target` is set, then only vanilla Kubernetes resources are generated and deployed. When multiple values are set (for example -`quarkus.kubernetes.deployment-target=kubernetes,openshift`) then the resources for all targets are generated, but only the resources -that correspond to the *first* target are applied to the cluster (if deployment is enabled). - -In the case of wrapper extensions like OpenShift and Minikube, when these extensions have been explicitly added to the project, the default `deployment-target` -is set by those extensions. For example if `quarkus-minikube` has been added to a project, then `minikube` becomes the default deployment target and its -resources will be applied to the Kubernetes cluster when deployment via `quarkus.kubernetes.deploy` has been set. -Users can still override the deployment-targets manually using `quarkus.kubernetes.deployment-target`. - -=== Deprecated configuration - -The following categories of configuration properties have been deprecated. - -==== Properties without the quarkus prefix - -In earlier versions of the extension, the `quarkus.` was missing from those properties. These properties are now deprecated. - -==== Docker and S2i properties - -The properties for configuring `docker` and `s2i` are also deprecated in favor of the new container-image extensions. - -==== Config group arrays - -Properties referring to config group arrays (e.g. `kubernetes.labels[0]`, `kubernetes.env-vars[0]` etc) have been converted to maps, to align with the rest of the Quarkus ecosystem. - -The code below demonstrates the change in `labels` config: - -[source,properties] ----- -# Old labels config: -kubernetes.labels[0].name=foo -kubernetes.labels[0].value=bar - -# New labels -quarkus.kubernetes.labels.foo=bar ----- - -The code below demonstrates the change in `env-vars` config: - -[source,properties] ----- -# Old env-vars config: -kubernetes.env-vars[0].name=foo -kubernetes.env-vars[0].configmap=my-configmap - -# New env-vars -quarkus.kubernetes.env-vars.foo.configmap=myconfigmap ----- - -==== `env-vars` properties - -`quarkus.kubernetes.env-vars` are deprecated (though still currently supported as of this writing) and the new declaration style should be used instead. -See <<#env-vars>> and more specifically <> for more details. - -== Deployment - -To trigger building and deploying a container image you need to enable the `quarkus.kubernetes.deploy` flag (the flag is disabled by default - furthermore it has no effect during test runs or dev mode). -This can be easily done with the command line: - -[source,bash,subs=attributes+] ----- -./mvnw clean package -Dquarkus.kubernetes.deploy=true ----- - -=== Building a container image - -Building a container image is possible, using any of the 3 available `container-image` extensions: - -- xref:container-image.adoc#docker[Docker] -- xref:container-image.adoc#jib[Jib] -- xref:container-image.adoc#s2i[s2i] - -Each time deployment is requested, a container image build will be implicitly triggered (no additional properties are required when the Kubernetes deployment has been enabled). - -=== Deploying - -When deployment is enabled, the Kubernetes extension will select the resources specified by `quarkus.kubernetes.deployment-target` and deploy them. -This assumes that a `.kube/config` is available in your user directory that points to the target Kubernetes cluster. -In other words the extension will use whatever cluster `kubectl` uses. The same applies to credentials. - -At the moment no additional options are provided for further customization. - -== Using existing resources - -Sometimes it's desirable to either provide additional resources (e.g. a ConfigMap, a Secret, a Deployment for a database etc) or provide custom ones that will be used as a `base` for the generation process. -Those resources can be added under `src/main/kubernetes` directory and can be named after the target environment (e.g. kubernetes.json, openshift.json, knative.json, or the yml equivalents). The correlation between provided and generated files is done by file name. -So, a `kubernetes.json`/`kubernetes.yml` file added in `src/main/kubernetes` will only affect the generated `kubernetes.json`/`kubernetes.yml`. An `openshift.json`/`openshift.yml` file added in `src/main/kubernetes` will only affect the generated `openshift.json`/`openshift.yml`. -A `knative.json`/`knative.yml` file added in `src/main/kubernetes` will only affect the generated `knative.json`/`knative.yml` and so on. The provided file may be either in json or yaml format and may contain one or more resources. These resources will end up in both generated formats (json and yaml). For example, a secret added in `src/main/kubernetes/kubernetes.yml` will be added to both the generated `kubernetes.yml` and `kubernetes.json`. - -Note: At the time of writing there is no mechanism in place that allows a one to many relationship between provided and generated files. Minikube is not an exception to the rule above, so if you want to customize the generated minikube manifests, the file placed under `src/main/kubernetes` will have to be named `minikube.json` or `minikube.yml` (naming it `kubernetes.yml` or `kubernetes.json` will result in having only the generated `kubernetes.yml` and `kubernetes.json` affected). - -Any resource found will be added in the generated manifests. Global modifications (e.g. labels, annotations etc) will also be applied to those resources. -If one of the provided resources has the same name as one of the generated ones, then the generated resource will be created on top of the provided resource, respecting existing content when possible (e.g. existing labels, annotations, environment variables, mounts, replicas etc). - -The name of the resource is determined by the application name and may be overridden by `quarkus.kubernetes.name`, `quarkus.openshift.name` and `quarkus.knative.name`. - -For example, in the `kubernetes-quickstart` application, we can add a `kubernetes.yml` file in the `src/main/kubernetes` that looks like: - -[source,yaml] ----- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: kubernetes-quickstart - labels: - app: quickstart -spec: - replicas: 3 - selector: - matchLabels: - app: quickstart - template: - metadata: - labels: - app: quickstart - spec: - containers: - - name: kubernetes-quickstart - image: someimage:latest - ports: - - containerPort: 80 - env: - - name: FOO - value: BAR ----- - -The generated `kubernetes.yml` will look like: - -[source,yaml] ----- -apiVersion: "apps/v1" -kind: "Deployment" -metadata: - annotations: - app.quarkus.io/build-timestamp: "2020-04-10 - 12:54:37 +0000" - labels: - app: "quickstart" - name: "kubernetes-quickstart" -spec: - replicas: 3 <1> - selector: - matchLabels: - app.kubernetes.io/name: "kubernetes-quickstart" - app.kubernetes.io/version: "1.0.0-SNAPSHOT" - template: - metadata: - annotations: - app.quarkus.io/build-timestamp: "2020-04-10 - 12:54:37 +0000" - labels: - app: "quickstart" <2> - spec: - containers: - - env: - - name: "FOO" <3> - value: "BAR" - image: "<>/kubernetes-quickstart:1.0.0-SNAPSHOT" <4> - imagePullPolicy: "Always" - name: "kubernetes-quickstart" - ports: - - containerPort: 8080 <5> - name: "http" - protocol: "TCP" - serviceAccount: "kubernetes-quickstart" ----- - -The provided replicas <1>, labels <2> and environment variables <3> were retained. However, the image <4> and container port <5> were modified. Moreover, the default annotations have been added. - -[NOTE] -==== -* When the resource name does not match the application name (or the overridden name) rather than reusing the resource a new one will be added. Same goes for the container. - -* When the name of the container does not match the application name (or the overridden name), container specific configuration will be ignored. -==== - -== Service Binding [[service_binding]] - -Quarkus supports the link:https://github.com/k8s-service-bindings/spec[Service Binding Specification for Kubernetes] to bind services to applications. - -Specifically, Quarkus implements the link:https://github.com/k8s-service-bindings/spec#workload-projection[Workload Projection] part of the specification, therefore allowing applications to bind to services, such as a Database or a Broker, without the need for user configuration. - -To enable Service Binding for supported extensions, add the `quarkus-kubernetes-service-binding` extension to the application dependencies. - -* The following extensions can be used with Service Binding and are supported for Workload Projection: -+ -==== -* `quarkus-jdbc-mariadb` -* `quarkus-jdbc-mssql` -* `quarkus-jdbc-mysql` -* `quarkus-jdbc-postgresql` -* `quarkus-mongo-client` - -* `quarkus-kafka-client` -* `quarkus-smallrye-reactive-messaging-kafka` -==== - - -=== Workload Projection - -Workload Projection is a process of obtaining the configuration for services from the Kubernetes cluster. This configuration takes the form of directory structures that follow certain conventions and is attached to an application or to a service as a mounted volume. The `kubernetes-service-binding` extension uses this directory structure to create configuration sources, which allows you to configure additional modules, such as databases or message brokers. - -During application development, users can use workload projection to connect their application to a development database, or other locally-run services, without changing the actual application code or configuration. - -For an example of a workload projection where the directory structure is included in the test resources and passed to integration test, see the link:https://github.com/quarkusio/quarkus/tree/e7efe6b3efba91b9c4ae26f9318f8397e23e7505/integration-tests/kubernetes-service-binding-jdbc/src/test/resources/k8s-sb[Kubernetes Service Binding datasource] GitHub repository. - -[NOTE] -==== -* The `k8s-sb` directory is the root of all service bindings. In this example, only one database called `fruit-db` is intended to be bound. This binding database has the `type` file, that indicates `postgresql` as the database type, while the other files in the directory provide the necessary information to establish the connection. - -* After your Quarkus project obtains information from `SERVICE_BINDING_ROOT` environment variables that are set by OpenShift, you can locate generated configuration files that are present in the file system and use them to map the configuration-file values to properties of certain extensions. -==== - - -== Introduction to the Service Binding Operator - -The link:https://github.com/redhat-developer/service-binding-operator[Service Binding Operator] is an Operator that implements link:https://github.com/k8s-service-bindings/spec[Service Binding Specification for Kubernetes] and is meant to simplify the binding of services to an application. Containerized applications that support link:https://github.com/k8s-service-bindings/spec#workload-projection[Workload Projection] obtain service binding information in the form of volume mounts. The Service Binding Operator reads binding service information and mounts it to the application containers that need it. - -The correlation between application and bound services is expressed through the `ServiceBinding` resources, which declares the intent of what services are meant to be bound to what application. - -The Service Binding Operator watches for `ServiceBinding` resources, which inform the Operator what applications are meant to be bound with what services. When a listed application is deployed, the Service Binding Operator collects all the binding information that must be passed to the application, then upgrades the application container by attaching a volume mount with the binding information. - -The Service Binding Operator completes the following actions: - -* Observes `ServiceBinding` resources for workloads intended to be bound to a particular service -* Applies the binding information to the workload using volume mounts - -The following chapter describes the automatic and semi-automatic service binding approaches and their use cases. With either approach, the `kubernetes-service-binding` extension generates a `ServiceBinding` resource. With the semi-automatic approach, users must provide a configuration for target services manually. With the automatic approach, for a limited set of services generating the `ServiceBinding` resource, no additional configuration is needed. - - -=== Semi-automatic service binding - -A service binding process starts with a user specification of required services that will be bound to a certain application. This expression is summarized in the `ServiceBinding` resource that is generated by the `kubernetes-service-binding` extension. The use of the `kubernetes-service-binding` extensions helps users to generate `ServiceBinding` resources with minimal configuration, therefore simplifying the process overall. - -The Service Binding Operator responsible for the binding process then reads the information from the `ServiceBinding` resource and mounts the required files to a container accordingly. - - -* An example of the `ServiceBinding` resource: -+ -[source,yaml] ----- -apiVersion: binding.operators.coreos.com/v1beta1 -kind: ServiceBinding -metadata: - name: binding-request - namespace: service-binding-demo -spec: - application: - name: java-app - group: apps - version: v1 - resource: deployments - services: - - group: postgres-operator.crunchydata.com - version: v1beta1 - kind: Database - name: db-demo - id: postgresDB ----- -+ -[NOTE] -==== -* The `quarkus-kubernetes-service-binding` extension provides a more compact way of expressing the same information. For example: -+ -[source,properties] ----- -quarkus.kubernetes-service-binding.services.db-demo.api-version=postgres-operator.crunchydata.com/v1beta1 -quarkus.kubernetes-service-binding.services.db-demo.kind=Database ----- -==== - -After adding the earlier configuration properties inside your `application.properties`, the `quarkus-kubernetes`, in combination with the `quarkus-kubernetes-service-binding` extension, automatically generates the `ServiceBinding` resource. - -The earlier mentioned `db-demo` property-configuration identifier now has a double role and also completes the following actions: - -* Correlates and groups `api-version` and `kind` properties together -* Defines the `name` property for the custom resource with a possibility for a later edit. For example: -+ -[source,properties] ----- -quarkus.kubernetes-service-binding.services.db-demo.api-version=postgres-operator.crunchydata.com/v1beta1 -quarkus.kubernetes-service-binding.services.db-demo.kind=Database -quarkus.kubernetes-service-binding.services.db-demo.name=my-db ----- - -.Additional resources - -* For a semi-automatic service binding demonstration, see link:https://developers.redhat.com/articles/2021/12/22/how-use-quarkus-service-binding-operator#create_the_quarkus_application[How to use Quarkus with the Service Binding Operator] - -* List of link:https://github.com/redhat-developer/service-binding-operator#known-bindable-operators[List of bindable Operators] - - -=== Automatic service binding - -The `quarkus-kubernetes-service-binding` extension can generate the `ServiceBinding` resource automatically after detecting that an application requires access to the external services that are provided by available bindable Operators. - -NOTE: Automatic service binding can be generated for a limited number of service types. To be consistent with established terminology for Kubernetes and Quarkus services, this chapter refers to these service types as kinds. - -.Operators that support the service auto-binding -[%autowidth,%noheader,stripes=even] -|==== -| | Operator | API Version | Kind -| `postgresql` | link:https://operatorhub.io/operator/postgresql[CrunchyData Postgres] | postgres-operator.crunchydata.com/v1beta1 | PostgresCluster -| `mysql` | link:https://operatorhub.io/operator/percona-xtradb-cluster-operator[Percona XtraDB Cluster] | pxc.percona.com/v1-9-0 | PerconaXtraDBCluster -| `mongo` | link:https://operatorhub.io/operator/percona-server-mongodb-operator[Percona Mongo] | psmdb.percona.com/v1-9-0 | PerconaServerMongoDB -|==== - - -=== Automatic datasource binding - -For traditional databases, automatic binding is initiated whenever a datasource is configured as follows: - -[source,properties] ----- -quarkus.datasource.db-kind=postgresql ----- - -The previous configuration, combined with the presence of `quarkus-datasource`, `quarkus-jdbc-postgresql`, `quarkus-kubernetes`, and `quarkus-kubernetes-service-binding` properties in the application, results in the generation of the `ServiceBinding` resource for the the `postgresql` database type. - -By using the `apiVersion` and `kind` properties of the Operator resource, which matches the used `postgresql` Operator, the generated `ServiceBinding` resource binds the service or resource to the application. - -When you do not specify a name for your database service, the the value of the `db-kind` property is used as the default name. - -[source,yaml] ----- - services: - - apiVersion: postgres-operator.crunchydata.com/v1beta1 - kind: PostgresCluster - name: postgresql ----- - -Specified the name of the datasource as follows: - -[source,properties] ----- -quarkus.datasource.fruits-db.db-kind=postgresql ----- - -The `service` in the generated `ServiceBinding` then displays as follows: - -[source,yaml] ----- - services: - - apiVersion: postgres-operator.crunchydata.com/v1beta1 - kind: PostgresCluster - name: fruits-db ----- - -Similarly, if you use `mysql`, the name of the datasource can be specified as follows: - -[source,properties] ----- -quarkus.datasource.fruits-db.db-kind=mysql ----- - -The generated `service` contains the following: - -[source,yaml] ----- - services: - - apiVersion: pxc.percona.com/v1-9-0 - kind: PerconaXtraDBCluster - name: fruits-db ----- - - -==== Customizing Automatic Service Binding - -Even though automatic binding was developed to eliminate as much manual configuration as possible, there are cases where modifying the generated `ServiceBinding` resource might still be needed. The generation process exclusively relies on information extracted from the application and the knowledge of the supported Operators, which may not reflect what is deployed in the cluster. The generated resource is based purely on the knowledge of the supported bindable Operators for popular service kinds and a set of conventions that were developed to prevent possible mismatches, such as: - -* The target resource name does not match the datasource name -* A specific Operator needs to be used rather than the default Operator for that service kind -* Version conflicts that occur when a user needs to use any other version than default or latest - -.Conventions - -* The target resource coordinates are determined based on the type of Operator and the kind of service. -* The target resource name is set by default to match the service kind, such as `postgresql`, `mysql`, `mongo`. -* For named datasources, the name of the datasource is used. -* For named `mongo` clients, the name of the client is used. - -==== -.Example 1 - Name mismatch - -For cases in which you need to modify the generated `ServiceBinding` to fix a name mismatch, use the `quarkus.kubernetes-service-binding.services` properties and specify the service's name as the service key. - -The `service key` is usually the name of the service, for example the name of the datasource, or the name of the `mongo` client. When this value is not available, the datasource type, such as `postgresql`, `mysql`, `mongo`, is used instead. - -To avoid naming conflicts between different types of services, prefix the `service key` with a specific datasource type, such as `postgresql-____`. - -The following example shows how to customize the `apiVersion` property of the `PostgresCluster` resource: - -[source,properties] ----- -quarkus.datasource.db-kind=postgresql -quarkus.kubernetes-service-binding.services.postgresql.api-version=postgres-operator.crunchydata.com/v1beta2 ----- -==== - -==== -.Example 2: Application of a custom name for a datasource - -In Example 1, the `db-kind`(`postgresql`) was used as a service key. In this example, because the datasource is named, according to convention, the datasource name (`fruits-db`) is used instead. - -The following example shows that for a named datasource, the datasource name is used as the name of the target resource: - -[source,properties] ----- -quarkus.datasource.fruits-db.db-kind=postgresql ----- - -This has the same effect as the following configuration: - -[source,properties] ----- -quarkus.kubernetes-service-binding.services.fruits-db.api-version=postgres-operator.crunchydata.com/v1beta1 -quarkus.kubernetes-service-binding.services.fruits-db.kind=PostgresCluster -quarkus.kubernetes-service-binding.services.fruits-db.name=fruits-db ----- -==== - -.Additional resources -* For more details about the available properties and how do they work, see the link:https://github.com/k8s-service-bindings/spec#workload-projection[Workload Projection] part of the Service Binding specification. diff --git a/_versions/2.7/guides/deploying-to-openshift.adoc b/_versions/2.7/guides/deploying-to-openshift.adoc deleted file mode 100644 index dda09d202b3..00000000000 --- a/_versions/2.7/guides/deploying-to-openshift.adoc +++ /dev/null @@ -1,460 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Deploying on OpenShift - -include::./attributes.adoc[] - -This guide covers generating and deploying OpenShift resources based on sane default and user supplied configuration. - - -== Prerequisites - -:prerequisites-no-graalvm: -include::includes/devtools/prerequisites.adoc[] -* Access to an OpenShift cluster (Minishift is a viable option) -* OpenShift CLI (Optional, only required for manual deployment) - -== Bootstrapping the project - -First, we need a new project that contains the OpenShift extension. This can be done using the following command: - -:create-app-artifact-id: openshift-quickstart -:create-app-extensions: resteasy,openshift -:create-app-code: -include::includes/devtools/create-app.adoc[] - -Quarkus offers the ability to automatically generate OpenShift resources based on sane defaults and user supplied configuration. -The OpenShift extension is actually a wrapper extension that brings together the xref:deploying-to-kubernetes.adoc[kubernetes] and xref:container-image.adoc#s2i[container-image-s2i] -extensions with sensible defaults so that it's easier for the user to get started with Quarkus on OpenShift. - -When we added the OpenShift extension to the command line invocation above, the following dependency was added to the `pom.xml` - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-openshift - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-openshift") ----- - -== Log Into the OpenShift Cluster - -Before we build and deploy our application we need to log into an OpenShift cluster. -You can log in via the https://docs.openshift.com/container-platform/4.9/cli_reference/openshift_cli/getting-started-cli.html[OpenShift CLI]: - -.Log In - OpenShift CLI Example -[source,bash] ----- -oc login -u myUsername <1> ----- -<1> You'll be prompted for the required information such as server URL, password, etc. - -Alternatively, you may log in using the API token: - -.Log In - OpenShift CLI With API Token Example -[source,bash] ----- -oc login --token=myToken --server=myServerUrl ----- - -TIP: You can request the token via the _Copy Login Command_ link in the OpenShift web console. - -Finally, you don't need to use the OpenShift CLI at all. -Instead, set the `quarkus.kubernetes-client.master-url` config property and authenticate with the `quarkus.kubernetes-client.token`, or `quarkus.kubernetes-client.username` and `quarkus.kubernetes-client.password` respectively: - -:build-additional-parameters: -Dquarkus.kubernetes-client.master-url=myServerUrl -Dquarkus.kubernetes-client.token=myToken -include::includes/devtools/build.adoc[] -:!build-additional-parameters: - -== Build and Deployment - -You can trigger a build and deployment in a single step or build the container image first and then configure the OpenShift application manually if you need <>. - -To trigger a build and deployment in a single step: - -:build-additional-parameters: -Dquarkus.kubernetes.deploy=true -include::includes/devtools/build.adoc[] -:!build-additional-parameters: - -TIP: If you want to test your application immediately then set the `quarkus.openshift.route.expose` config property to `true` to <>, e.g. add `-Dquarkus.openshift.route.expose=true` to the command above. - -This command will build your application locally, then trigger a container image build and finally apply the generated OpenShift resources automatically. -The generated resources use OpenShift's `DeploymentConfig` that is configured to automatically trigger a redeployment when a change in the `ImageStream` is noticed. -In other words, any container image build after the initial deployment will automatically trigger redeployment, without the need to delete, update or re-apply the generated resources. - -You can use the OpenShift web console to verify that the above command has created an image stream, a service resource and has deployed the application. -Alternatively, you can run the following OpenShift CLI commands: -[source,bash,subs=attributes+] ----- -oc get is <1> -oc get pods <2> -oc get svc <3> ----- -<1> Lists the image streams created. -<2> Get the list of pods. -<3> Get the list of Kubernetes services. - -Note that the service is not exposed to the outside world by default. -So unless you've used the `quarkus.openshift.route.expose` config property to expose the created service automatically you'll need to expose the service manually. - -.Expose The Service - OpenShift CLI Example -[source,bash,subs=attributes+] ----- -oc expose svc/greeting <1> -oc get routes <2> -curl http:///greeting <3> ----- -<1> Expose the service. -<2> Get the list of exposed routes. -<3> Access your application. - -[[control_application_config]] -=== Configure the OpenShift Application Manually - -If you need more control over the deployment configuration you can build the container image first and then configure the OpenShift application manually. - -To trigger a container image build: - -[source,bash,subs=attributes+] ----- -./mvnw clean package -Dquarkus.container-image.build=true ----- - -The build that will be performed is an _s2i binary_ build. -The input of the build is the jar that has been built locally and the output of the build is an `ImageStream` that is configured to automatically trigger a deployment. - -[NOTE] -==== -During the build you may find the `Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed` exception due to self-signed certificate. To solve this, just add the following line to your `application.properties`: -```properties -quarkus.kubernetes-client.trust-certs=true -``` -For more information, see link:https://quarkus.io/guides/deploying-to-kubernetes#client-connection-configuration[deploying to kubernetes]. -==== - -Once the build is done we can create a new application from the relevant `ImageStream`. - -[source,bash,subs=attributes+] ----- -oc get is <1> -oc new-app --name=greeting /openshift-quickstart:1.0.0-SNAPSHOT <2> -oc get svc -oc expose svc/greeting <3> -oc get routes <4> -curl http:///greeting <5> ----- -<1> Lists the image streams created. The image stream of our application should be tagged as /openshift-quickstart:1.0.0-SNAPSHOT. -<2> Create a new application from the image source. -<3> Expose the service to the outside world. -<4> Get the list of exposed routes. -<5> Access your application. - -After this setup the next time the container image is built a deployment to OpenShift is triggered automatically. -In other words, you don't need to repeat the above steps. - -=== Non-S2I Builds - -Out of the box the OpenShift extension is configured to use xref:container-image.adoc#s2i[container-image-s2i]. However, it's still possible to use other container image extensions like: - -- xref:container-image.adoc#docker[container-image-docker] -- xref:container-image.adoc#jib[container-image-jib] - -When a non-s2i container image extension is used, an `ImageStream` is created that is pointing to an external `dockerImageRepository`. The image is built and pushed to the registry and the `ImageStream` populates the tags that are available in the `dockerImageRepository`. - -To select which extension will be used for building the image: - -[source,properties] ----- -quarkus.container-image.builder=docker ----- - -or - -[source,properties] ----- -quarkus.container-image.builder=jib ----- - -== Customizing - -All available customization options are available in the xref:deploying-to-kubernetes.adoc#openshift[OpenShift configuration options]. - -Some examples are provided in the sections below: - -[[exposing_routes]] -=== Exposing Routes - -To expose a `Route` for the Quarkus application: - -[source,properties] ----- -quarkus.openshift.route.expose=true ----- - -[TIP] -==== -You don't necessarily need to add this property in the `application.properties`. You can pass it as a command line argument: - -[source,bash,subs=attributes+] ----- -./mvnw clean package -Dquarkus.openshift.route.expose=true ----- - -The same applies to all properties listed below. -==== - -=== Labels - -To add a label in the generated resources: - -[source,properties] ----- -quarkus.openshift.labels.foo=bar ----- - -=== Annotations - -To add an annotation in the generated resources: - -[source,properties] ----- -quarkus.openshift.annotations.foo=bar ----- - -[#env-vars] -=== Environment variables - -OpenShift provides multiple ways of defining environment variables: - -- key/value pairs -- import all values from a Secret or ConfigMap -- interpolate a single value identified by a given field in a Secret or ConfigMap -- interpolate a value from a field within the same resource - -==== Environment variables from key/value pairs - -To add a key/value pair as an environment variable in the generated resources: - -[source,properties] ----- -quarkus.openshift.env.vars.my-env-var=foobar ----- - -The command above will add `MY_ENV_VAR=foobar` as an environment variable. -Please note that the key `my-env-var` will be converted to uppercase and dashes will be replaced by underscores resulting in `MY_ENV_VAR`. - -==== Environment variables from Secret - -To add all key/value pairs of `Secret` as environment variables just apply the following configuration, separating each `Secret` -to be used as source by a comma (`,`): - -[source,properties] ----- -quarkus.openshift.env.secrets=my-secret,my-other-secret ----- - -which would generate the following in the container definition: - -[source,yaml] ----- -envFrom: - - secretRef: - name: my-secret - optional: false - - secretRef: - name: my-other-secret - optional: false ----- - -The following extracts a value identified by the `keyName` field from the `my-secret` Secret into a `foo` environment variable: - -[source,properties] ----- -quarkus.openshift.env.mapping.foo.from-secret=my-secret -quarkus.openshift.env.mapping.foo.with-key=keyName ----- - -This would generate the following in the `env` section of your container: - -[source,yaml] ----- -- env: - - name: FOO - valueFrom: - secretKeyRef: - key: keyName - name: my-secret - optional: false ----- - -==== Environment variables from ConfigMap - -To add all key/value pairs from `ConfigMap` as environment variables just apply the following configuration, separating each -`ConfigMap` to be used as source by a comma (`,`): - -[source,properties] ----- -quarkus.openshift.env.configmaps=my-config-map,another-config-map ----- - -which would generate the following in the container definition: - -[source,yaml] ----- -envFrom: - - configMapRef: - name: my-config-map - optional: false - - configMapRef: - name: another-config-map - optional: false ----- - -The following extracts a value identified by the `keyName` field from the `my-config-map` ConfigMap into a `foo` -environment variable: - -[source,properties] ----- -quarkus.openshift.env.mapping.foo.from-configmap=my-configmap -quarkus.openshift.env.mapping.foo.with-key=keyName ----- - -This would generate the following in the `env` section of your container: - -[source,yaml] ----- -- env: - - name: FOO - valueFrom: - configMapRefKey: - key: keyName - name: my-configmap - optional: false ----- - -==== Environment variables from fields - -It's also possible to use the value from another field to add a new environment variable by specifying the path of the field to be used as a source, as follows: - -[source,properties] ----- -quarkus.openshift.env.fields.foo=metadata.name ----- - -==== Using Deployment instead of DeploymentConfig -Out of the box the extension will generate a `DeploymentConfig` resource. Often users, prefer to use `Deployment` as the main deployment resource, but still make use of OpenShift specific resources like `Route`, `BuildConfig` etc. -This feature is enabled by setting `quarkus.openshift.deployment-kind` to `Deployment`. - -[source,properties] ----- -quarkus.openshift.deployment-kind=Deployment ----- - -Since `Deployment` is a Kubernetes resource and not OpenShift specific, it can't possibly leverage `ImageStream` resources, as is the case with `DeploymentConfig`. This means that the image references need to include the container image registry that hosts the image. -When the image is built, using OpenShift builds (s2i binary and docker strategy) the OpenShift internal image registry `image-registry.openshift-image-registry.svc:5000` will be used, unless an other registry has been explicitly specified by the user. Please note, that in the internal registry the project/namespace name is added as part of the image repository: `image-registry.openshift-image-registry.svc:5000//:`, so users will need to make sure that the target project/namespace name is aligned with the `quarkus.container-image.group`. - -[source,properties] ----- -quarkus.container-image.group= ----- - -==== Validation - -A conflict between two definitions, e.g. mistakenly assigning both a value and specifying that a variable is derived from a field, will result in an error being thrown at build time so that you get the opportunity to fix the issue before you deploy your application to your cluster where it might be more difficult to diagnose the source of the issue. - -Similarly, two redundant definitions, e.g. defining an injection from the same secret twice, will not cause an issue but will indeed report a warning to let you know that you might not have intended to duplicate that definition. - -[#env-vars-backwards] -===== Backwards compatibility - -Previous versions of the OpenShift extension supported a different syntax to add environment variables. The older syntax is still supported but is deprecated, and it's advised that you migrate to the new syntax. - -.Old vs. new syntax -|==== -| |Old | New | -| Plain variable |`quarkus.openshift.env-vars.my-env-var.value=foobar` | `quarkus.openshift.env.vars.my-env-var=foobar` | -| From field |`quarkus.openshift.env-vars.my-env-var.field=foobar` | `quarkus.openshift.env.fields.my-env-var=foobar` | -| All from `ConfigMap` |`quarkus.openshift.env-vars.xxx.configmap=foobar` | `quarkus.openshift.env.configmaps=foobar` | -| All from `Secret` |`quarkus.openshift.env-vars.xxx.secret=foobar` | `quarkus.openshift.env.secrets=foobar` | -| From one `Secret` field |`quarkus.openshift.env-vars.foo.secret=foobar` | `quarkus.openshift.env.mapping.foo.from-secret=foobar` | -| |`quarkus.openshift.env-vars.foo.value=field` | `quarkus.openshift.env.mapping.foo.with-key=field` | -| From one `ConfigMap` field |`quarkus.openshift.env-vars.foo.configmap=foobar` | `quarkus.openshift.env.mapping.foo.from-configmap=foobar` | -| |`quarkus.openshift.env-vars.foo.value=field` | `quarkus.openshift.env.mapping.foo.with-key=field` | -|==== - -NOTE: If you redefine the same variable using the new syntax while keeping the old syntax, **ONLY** the new version will be kept, and a warning will be issued to alert you of the problem. For example, if you define both -`quarkus.openshift.env-vars.my-env-var.value=foobar` and `quarkus.openshift.env.vars.my-env-var=newValue`, the extension will only generate an environment variable `MY_ENV_VAR=newValue` and issue a warning. - -=== Mounting volumes - -The OpenShift extension allows the user to configure both volumes and mounts for the application. - -Any volume can be mounted with a simple configuration: - -[source,properties] ----- -quarkus.openshift.mounts.my-volume.path=/where/to/mount ----- - -This will add a mount to my pod for volume `my-volume` to path `/where/to/mount` - -The volumes themselves can be configured as shown in the sections below: - -==== Secret volumes - -[source,properties] ----- -quarkus.openshift.secret-volumes.my-volume.secret-name=my-secret ----- - -==== ConfigMap volumes - -[source,properties] ----- -quarkus.openshift.config-map-volumes.my-volume.config-map-name=my-secret ----- - -==== Persistent Volume Claims - -[source,properties] ----- -quarkus.openshift.pvc-volumes.my-pvc.claim-name=my-pvc ----- - -== Knative - OpenShift Serverless - -OpenShift also provides the ability to use Knative via the link:https://www.openshift.com/learn/topics/serverless[OpenShift Serverless] functionality. - -The first order of business is to instruct Quarkus to generate Knative resources by setting: - -[source,properties] ----- -quarkus.kubernetes.deployment-target=knative ----- - -In order to leverage OpenShift S2I to build the container image on the cluster and use the resulting container image for the Knative application, -we need to set a couple of configuration properties: - -[source,properties] ----- -# set the Kubernetes namespace which will be used to run the application -quarkus.container-image.group=geoand -# set the container image registry - this is the standard URL used to refer to the internal OpenShift registry -quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000 ----- - -The application can then be deployed to OpenShift Serverless by enabling the standard `quarkus.kubernetes.deploy=true` property. - -== Configuration Reference - -include::{generated-dir}/config/quarkus-openshift-openshift-config.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/dev-mode-differences.adoc b/_versions/2.7/guides/dev-mode-differences.adoc deleted file mode 100644 index 244edb3c453..00000000000 --- a/_versions/2.7/guides/dev-mode-differences.adoc +++ /dev/null @@ -1,106 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= How dev-mode differs from a production application - -include::./attributes.adoc[] - -This document explains how the dev-mode in Quarkus differs from a production application. - -== Intro - -Quarkus provides a dev-mode (explained in more detail xref:maven-tooling.adoc#dev-mode[here] and link:gradle-tooling#dev-mode[here]) which greatly aids -during development but should *NEVER* be used in production. - -[[architectural-differences]] -== Architectural differences - -Feature sets aside, the Quarkus application that is run under dev-mode differs architecturally from the production application (i.e. the one that is run using `java -jar ...`). - -In dev-mode, Quarkus uses a ClassLoader hierarchy (explained in detail xref:class-loading-reference.adoc[here]) that enables the live reload of user code -without requiring a rebuild and restart of the application. - -In a production application, the aforementioned class loading infrastructure is entirely absent - there is a single, purpose built ClassLoader that loads (almost) all classes and dependencies. - -== Dev-mode features - -In keeping with the mantra of providing developer joy, Quarkus provides a host of features when dev-mode is enabled. The most important features are: - -=== Live reload - -This mightily important feature needs no introduction and has already been mentioned in the <> section. - -=== Dev UI - -Quarkus provides a very useful xref:dev-ui.adoc[UI] accessible from the browser at `/q/dev`. This UI allows a developer to see the state of the application, but -also provides access to various actions that can change that state (depending on the extensions that are present). -Examples of such operations are: - -* Changing configuration values -* Running Database migration scripts -* Clearing of caches -* Running scheduled operations -* Building a container - -=== Error pages - -In an effort to make development errors very easy to diagnose, Quarkus provides various detailed error pages when running in dev-mode. - -=== Database import scripts - -The `quarkus-hibernate-orm` extension will run the `import.sql` script in `src/main/resources` when Quarkus is running in dev-mode. More details can be found xref:hibernate-orm.adoc#dev-mode[here]. - -=== Dev Services - -When testing or running in dev-mode Quarkus can even provide you with a zero config database out of the box, a feature we refer to as Dev Services. -More information can be found xref:datasource.adoc#dev-services[here]. - -=== Swagger UI - -The `quarkus-smallrye-openapi` extension will expose the Swagger UI when Quarkus is running in dev-mode. Additional information can be found xref:openapi-swaggerui.adoc#dev-mode[here]. - -=== GraphQL UI - -The `quarkus-smallrye-graphql` extension will expose the GraphiQL UI when Quarkus is running in dev-mode. More details can be found xref:smallrye-graphql.adoc#ui[here]. - -=== Health UI - -The `quarkus-smallrye-health` extension will expose the Health UI when Quarkus is running in dev-mode. xref:smallrye-health.adoc#ui[This] section provides additional information. - -=== Mock mailer - -The `quarkus-mailer` extension will enable an in-memory mock mail server when Quarkus is running in dev-mode. See xref:mailer-reference.adoc#testing[this] for more details. - - -=== gRPC - -* The gRPC Reflection Service is enabled in dev mode by default. That lets you use tools such as `grpcurl`. In production mode, the reflection service is disabled. You can enable it explicitly using `quarkus.grpc-server.enable-reflection-service=true`. - -* In dev-mode, `quarkus.grpc.server.instances` has no effect. - -=== Others - -There might be other configuration properties (depending on the extensions added to the application) that have no effect in dev-mode. - - -== Performance implications - -In dev-mode minimizing the runtime footprint of the application is not the primary objective (although Quarkus still starts plenty fast and consumes little memory even in dev-mode) - the primary objective -is enabling developer joy. -Therefore, many more classes are loaded and build time operations also take place every time a live-reload is performed. - -In contrast, in a production application the main objective for Quarkus is to consume the least amount of memory and startup in the smallest amount of time. -Thus, when running the production application, build time operations are not performed (by definition) and various infrastructure classes needed at build time are not present at all at runtime. -Furthermore, the purpose built ClassLoader that comes with the xref:maven-tooling.adoc#fast-jar[fast-jar] package type ensures that class lookup is done as fast as possible while also keeping -the minimum amount of jars in memory. - -== Security implications - -Perhaps the most important reason why dev-mode applications should not be run in production is that the dev-mode allows reading information that could be confidential (via the Dev-UI) -while also giving access to operations that could be destructive (either by exposing endpoints that should not be available in production application or via the Dev-UI). - -== Native executable - -When a native executable is created (explained in detail xref:building-native-image.adoc[here]), it is *always* built from a production application. diff --git a/_versions/2.7/guides/dev-services.adoc b/_versions/2.7/guides/dev-services.adoc deleted file mode 100644 index 5c485a93631..00000000000 --- a/_versions/2.7/guides/dev-services.adoc +++ /dev/null @@ -1,119 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Dev Services Overview - -include::./attributes.adoc[] - -Quarkus supports the automatic provisioning of unconfigured services in development and test mode. We refer to this capability -as Dev Services. From a developer's perspective this means that if you include an extension and don't configure it then -Quarkus will automatically start the relevant service (usually using https://www.testcontainers.org/[Testcontainers] behind the scenes) and wire up your -application to use this service. - -All this functionality is part of the Quarkus `deployment` modules, so does not affect the production application in any -way. If you want to disable all Dev Services you can use the `quarkus.devservices.enabled=false` config property, although -in most cases this is not necessary as simply configuring the service will result in the Dev Service being disabled automatically. - -Note that the default startup timeout is 60s, if this is not enough you can increase it with the `quarkus.devservices.timeout` property. - - -This page lists all the Dev Services that Quarkus supports. - -NOTE: In order to use Dev Services you will generally need a working Docker environment (remote environments are supported). -If you don't have Docker installed you will need to configure your services normally. - -== AMQP - -The AMQP Dev Service will be enabled when the `quarkus-smallrye-reactive-messaging-amqp` extension is present in your application, and -the broker address has not been explicitly configured. More information can be found at the -xref:amqp-dev-services.adoc[AMQP Dev Services Guide]. - -include::{generated-dir}/config/quarkus-smallrye-reactivemessaging-amqp-config-group-amqp-dev-services-build-time-config.adoc[opts=optional, leveloffset=+1] - -== Apicurio Registry - -The Apicurio Dev Service will be enabled when the `quarkus-apicurio-registry-avro` extension is present in your application, and it's -address has not been explicitly configured. More information can be found at the -xref:apicurio-registry-dev-services.adoc[Apicurio Registry Dev Services Guide]. - -include::{generated-dir}/config/quarkus-apicurio-registry-devservices-apicurio-registry-avro-apicurio-registry-dev-services-build-time-config.adoc[opts=optional, leveloffset=+1] - -== Databases - -The database Dev Services will be enabled when a reactive or JDBC datasource extension is present in the application, -and the database URL has not been configured. More information can be found at the -xref:datasource.adoc#dev-services[Datasource Guide]. - -Quarkus provides Dev Services for all databases it supports. Most of these are run in a container, with the -exception of H2 and Derby which are run in process. Dev Services are supported for both JDBC and reactive drivers. - -include::{generated-dir}/config/quarkus-datasource-config-group-dev-services-build-time-config.adoc[opts=optional, leveloffset=+1] - -== Kafka - -The Kafka Dev Service will be enabled when the `quarkus-kafka-client` extension is present in your application, and -the broker address has not been explicitly configured. More information can be found at the -xref:kafka-dev-services.adoc[Kafka Dev Services Guide]. - -include::{generated-dir}/config/quarkus-kafka-client-config-group-kafka-dev-services-build-time-config.adoc[opts=optional, leveloffset=+1] - -== Keycloak - -The Keycloak Dev Service will be enabled when the `quarkus-oidc` extension is present in your application, and -the server address has not been explicitly configured. More information can be found at the -xref:security-openid-connect-dev-services.adoc[OIDC Dev Services Guide]. - -:no-duration-note: true -include::{generated-dir}/config/quarkus-keycloak-devservices-keycloak-keycloak-build-time-config.adoc[opts=optional, leveloffset=+1] - -== Kogito - -The Kogito Dev Service will be enabled when either `kogito-quarkus` or `kogito-quarkus-processes` extension is present in your application. More information can be found at the xref:kogito-dev-services.adoc[Kogito Dev Services Guide]. - -include::kogito-dev-services-build-time-config.adoc[opts=optional, leveloffset=+1] - -== MongoDB - -The MongoDB Dev Service will be enabled when the `quarkus-mongodb-client` extension is present in your application, and -the server address has not been explicitly configured. More information can be found at the -xref:mongodb.adoc#dev-services[MongoDB Guide]. - -include::{generated-dir}/config/quarkus-mongodb-config-group-dev-services-build-time-config.adoc[opts=optional, leveloffset=+1] - -== RabbitMQ - -The RabbitMQ Dev Service will be enabled when the `quarkus-smallrye-reactive-messaging-rabbitmq` extension is present in your application, and -the broker address has not been explicitly configured. More information can be found at the -xref:rabbitmq-dev-services.adoc[RabbitMQ Dev Services Guide]. - -include::{generated-dir}/config/quarkus-smallrye-reactivemessaging-rabbitmq-config-group-rabbit-mq-dev-services-build-time-config.adoc[opts=optional, leveloffset=+1] - -== Redis - -The Redis Dev Service will be enabled when the `quarkus-redis-client` extension is present in your application, and -the server address has not been explicitly configured. More information can be found at the -xref:redis-dev-services.adoc[Redis Dev Services Guide]. - -include::{generated-dir}/config/quarkus-redis-client-config-group-dev-services-config.adoc[opts=optional, leveloffset=+1] - -== Vault - -The Vault Dev Service will be enabled when the `quarkus-vault` extension is present in your application, and -the server address has not been explicitly configured. More information can be found at the -link:{vault-guide}#dev-services[Vault Guide]. - -== Neo4j - -The Neo4j Dev Service will be enabled when the `quarkus-neo4j` extension is present in your application, and -the server address has not been explicitly configured. More information can be found at the -link:{neo4j-guide}#dev-services[Neo4j Guide]. - -== Infinispan - -The Infinispan Dev Service will be enabled when the `quarkus-infinispan-client` extension is present in your application, and -the server address has not been explicitly configured. More information can be found at the -xref:infinispan-client.adoc#dev-services[Infinispan Guide]. - -include::{generated-dir}/config/quarkus-infinispan-client-infinispan-client-dev-service-build-time-config.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/dev-ui.adoc b/_versions/2.7/guides/dev-ui.adoc deleted file mode 100644 index 9751ef4ffec..00000000000 --- a/_versions/2.7/guides/dev-ui.adoc +++ /dev/null @@ -1,402 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Dev UI - -include::./attributes.adoc[] - -This guide covers the Quarkus Dev UI for xref:building-my-first-extension.adoc[extension authors]. - -Quarkus now ships with a new experimental Dev UI, which is available in dev mode (when you start -quarkus with `mvn quarkus:dev`) at http://localhost:8080/q/dev[/q/dev] by default. It will show you something like -this: - -image::dev-ui-overview.png[alt=Dev UI overview,role="center",width=90%] - -It allows you to quickly visualize all the extensions currently loaded, see their status and go directly -to their documentation. - -On top of that, each extension can add: - -- <> -- <> -- <> - -== How can I make my extension support the Dev UI? - -In order to make your extension listed in the Dev UI you don't need to do anything! - -So you can always start with that :) - -If you want to contribute badges or links in your extension card on the Dev UI overview -page, like this: - -image:dev-ui-embedded.png[alt=Dev UI embedded,role="center"] - -You have to add a file named `dev-templates/embedded.html` in your -xref:building-my-first-extension.adoc#description-of-a-quarkus-extension[`deployment`] -extension module's resources: - -image::dev-ui-embedded-file.png[alt=Dev UI embedded.html,align=center] - -The contents of this file will be included in your extension card, so for example we can place -two links with some styling and icons: - -[source,html] ----- - - - OpenAPI -
- - - Swagger UI ----- - -TIP: We use the Font Awesome Free icon set. - -Note how the paths are specified: `{config:http-path('quarkus.smallrye-openapi.path')}`. This is a special -directive that the quarkus dev console understands: it will replace that value with the resolved route -named 'quarkus.smallrye-openapi.path'. - -The corresponding non-application endpoint is declared using `.routeConfigKey` to associate the route with a name: - -[source,java] ----- - nonApplicationRootPathBuildItem.routeBuilder() - .route(openApiConfig.path) // <1> - .routeConfigKey("quarkus.smallrye-openapi.path") // <2> - ... - .build(); ----- -<1> The configured path is resolved into a valid route. -<2> The resolved route path is then associated with the key `quarkus.smallrye-openapi.path`. - -== Path considerations - -Paths are tricky business. Keep the following in mind: - -* Assume your UI will be nested under the dev endpoint. Do not provide a way to customize this without a strong reason. -* Never construct your own absolute paths. Adding a suffix to a known, normalized and resolved path is fine. - -Configured paths, like the `dev` endpoint used by the console or the SmallRye OpenAPI path shown in the example above, -need to be properly resolved against both `quarkus.http.root-path` and `quarkus.http.non-application-root-path`. -Use `NonApplicationRootPathBuildItem` or `HttpRootPathBuildItem` to construct endpoint routes and identify resolved -path values that can then be used in templates. - -The `{devRootAppend}` variable can also be used in templates to construct URLs for static dev console resources, for example: - -[source,html] ----- -Quarkus ----- - -Refer to the xref:all-config.adoc#quarkus-vertx-http_quarkus.http.non-application-root-path[Quarkus Vertx HTTP configuration reference] -for details on how the non-application root path is configured. - -== Template and styling support - -Both the `embedded.html` files and any full page you add in `/dev-templates` will be interpreted by -xref:qute.adoc[the Qute template engine]. - -This also means that you can xref:qute-reference.adoc#user_tags[add custom Qute tags] in -`/dev-templates/tags` for your templates to use. - -The style system currently in use is https://getbootstrap.com/docs/4.6/getting-started/introduction/[Bootstrap V4 (4.6.0)] -but note that this might change in the future. - -The main template also includes https://jquery.com/[jQuery 3.5.1], but here again this might change. - -=== Accessing Config Properties - -A `config:property(name)` expression can be used to output the config value for the given property name. -The property name can be either a string literal or obtained dynamically by another expression. -For example `{config:property('quarkus.lambda.handler')}` and `{config:property(foo.propertyName)}`. - -Reminder: do not use this to retrieve raw configured path values. As shown above, use `{config:http-path(...)}` with -a known route configuration key when working with resource paths. - -== Adding full pages - -To add full pages for your Dev UI extension such as this one: - -image::dev-ui-page.png[alt=Dev UI custom page,align=center,width=90%] - -You need to place them in your extension's -xref:building-my-first-extension.adoc#description-of-a-quarkus-extension[`deployment`] module's -`/dev-templates` resource folder, like this page for the xref:cache.adoc[`quarkus-cache` extension]: - -[[action-example]] -[source,java] ----- -{#include main}// <1> - {#style}// <2> - .custom { - color: gray; - } - {/style} - {#script} // <3> - $(document).ready(function(){ - $(function () { - $('[data-toggle="tooltip"]').tooltip() - }); - }); - {/script} - {#title}Cache{/title}// <4> - {#body}// <5> - - - - - - - - - {#for cacheInfo in info:cacheInfos}// <6> - - - - - {/for} - -
NameSize
- {cacheInfo.name} - -
- enctype="application/x-www-form-urlencoded"> - - - -
-
- {/body} -{/include} ----- -<1> In order to benefit from the same style as other Dev UI pages, extend the `main` template -<2> You can pass extra CSS for your page in the `style` template parameter -<3> You can pass extra JavaScript for your page in the `script` template parameter. This will be added inline after the JQuery script, so you can safely use JQuery in your script. -<4> Don't forget to set your page title in the `title` template parameter -<5> The `body` template parameter will contain your content -<6> In order for your template to read custom information from your Quarkus extension, you can use - the `info` xref:qute-reference.adoc#namespace_extension_methods[namespace]. -<7> This shows an <> - -== Linking to your full-page templates - -Full-page templates for extensions live under a pre-defined `{devRootAppend}/{groupId}.{artifactId}/` directory -that is referenced using the `urlbase` template parameter. Using configuration defaults, that would resolve to -`/q/dev/io.quarkus.quarkus-cache/`, as an example. - -Use the `{urlbase}` template parameter to reference this folder in `embedded.html`: - -[source,html] ----- -// <1> - - Caches {info:cacheInfos.size()} ----- -<1> Use the `urlbase` template parameter to reference full-page templates for your extension - -== Passing information to your templates - -In `embedded.html` or in full-page templates, you will likely want to display information that is -available from your extension. - -There are two ways to make that information available, depending on whether it is available at -build time or at run time. - -In both cases we advise that you add support for the Dev UI in your `{pkg}.deployment.devconsole` -package in a `DevConsoleProcessor` class (in your extension's -xref:building-my-first-extension.adoc#description-of-a-quarkus-extension[`deployment`] module). - -=== Passing run-time information - -[source,java] ----- -package io.quarkus.cache.deployment.devconsole; - -import io.quarkus.cache.runtime.CaffeineCacheSupplier; -import io.quarkus.deployment.IsDevelopment; -import io.quarkus.deployment.annotations.BuildStep; -import io.quarkus.devconsole.spi.DevConsoleRuntimeTemplateInfoBuildItem; - -public class DevConsoleProcessor { - - @BuildStep(onlyIf = IsDevelopment.class)// <1> - public DevConsoleRuntimeTemplateInfoBuildItem collectBeanInfo() { - return new DevConsoleRuntimeTemplateInfoBuildItem("cacheInfos", - new CaffeineCacheSupplier());// <2> - } -} ----- -<1> Don't forget to make this xref:building-my-first-extension.adoc#deploying-the-greeting-feature[build step] - conditional on being in dev mode -<2> Declare a run-time dev `info:cacheInfos` template value - -This will map the `info:cacheInfos` value to this supplier in your extension's -xref:building-my-first-extension.adoc#description-of-a-quarkus-extension[`runtime module`]: - -[source,java] ----- -package io.quarkus.cache.runtime; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Comparator; -import java.util.List; -import java.util.function.Supplier; - -import io.quarkus.arc.Arc; -import io.quarkus.cache.CaffeineCache; - -public class CaffeineCacheSupplier implements Supplier> { - - @Override - public List get() { - List allCaches = new ArrayList<>(allCaches()); - allCaches.sort(Comparator.comparing(CaffeineCache::getName)); - return allCaches; - } - - public static Collection allCaches() { - // Get it from ArC at run-time - return (Collection) (Collection) - Arc.container().instance(CacheManagerImpl.class).get().getAllCaches(); - } -} ----- - -=== Passing build-time information - -Sometimes you only need build-time information to be passed to your template, so you can do it like this: - -[source,java] ----- -package io.quarkus.qute.deployment.devconsole; - -import java.util.List; - -import io.quarkus.deployment.IsDevelopment; -import io.quarkus.deployment.annotations.BuildStep; -import io.quarkus.devconsole.spi.DevConsoleTemplateInfoBuildItem; -import io.quarkus.qute.deployment.CheckedTemplateBuildItem; -import io.quarkus.qute.deployment.TemplateVariantsBuildItem; - -public class DevConsoleProcessor { - - @BuildStep(onlyIf = IsDevelopment.class) - public DevConsoleTemplateInfoBuildItem collectBeanInfo( - List checkedTemplates,// <1> - TemplateVariantsBuildItem variants) { - DevQuteInfos quteInfos = new DevQuteInfos(); - for (CheckedTemplateBuildItem checkedTemplate : checkedTemplates) { - DevQuteTemplateInfo templateInfo = - new DevQuteTemplateInfo(checkedTemplate.templateId, - variants.getVariants().get(checkedTemplate.templateId), - checkedTemplate.bindings); - quteInfos.addQuteTemplateInfo(templateInfo); - } - return new DevConsoleTemplateInfoBuildItem("devQuteInfos", quteInfos);// <2> - } - -} ----- -<1> Use whatever dependencies you need as input -<2> Declare a build-time `info:devQuteInfos` DEV template value - -== Advanced usage: adding actions - -You can also add actions to your Dev UI templates: - -image::dev-ui-interactive.png[alt=Dev UI interactive page,align=center,width=90%] - -This can be done by adding another xref:building-my-first-extension.adoc#deploying-the-greeting-feature[build step] to -declare the action in your extension's -xref:building-my-first-extension.adoc#description-of-a-quarkus-extension[`deployment`] module: - - -[source,java] ----- -package io.quarkus.cache.deployment.devconsole; - -import static io.quarkus.deployment.annotations.ExecutionTime.STATIC_INIT; - -import io.quarkus.cache.runtime.devconsole.CacheDevConsoleRecorder; -import io.quarkus.deployment.annotations.BuildStep; -import io.quarkus.deployment.annotations.Record; -import io.quarkus.devconsole.spi.DevConsoleRouteBuildItem; - -public class DevConsoleProcessor { - - @BuildStep - @Record(value = STATIC_INIT, optional = true)// <1> - DevConsoleRouteBuildItem invokeEndpoint(CacheDevConsoleRecorder recorder) { - return new DevConsoleRouteBuildItem("caches", "POST", - recorder.clearCacheHandler());// <2> - } -} ----- -<1> Mark the recorder as optional, so it will only be invoked when in dev mode -<2> Declare a `POST {urlbase}/caches` route handled by the given handler - - -Note: you can see <>. - -Now all you have to do is implement the recorder in your extension's -xref:building-my-first-extension.adoc#description-of-a-quarkus-extension[`runtime module`]: - - -[source,java] ----- -package io.quarkus.cache.runtime.devconsole; - -import io.quarkus.cache.CaffeineCache; -import io.quarkus.cache.runtime.CaffeineCacheSupplier; -import io.quarkus.runtime.annotations.Recorder; -import io.quarkus.devconsole.runtime.spi.DevConsolePostHandler; -import io.quarkus.vertx.http.runtime.devmode.devconsole.FlashScopeUtil.FlashMessageStatus; -import io.vertx.core.Handler; -import io.vertx.core.MultiMap; -import io.vertx.ext.web.RoutingContext; - -@Recorder -public class CacheDevConsoleRecorder { - - public Handler clearCacheHandler() { - return new DevConsolePostHandler() {// <1> - @Override - protected void handlePost(RoutingContext event, MultiMap form) // <2> - throws Exception { - String cacheName = form.get("name"); - for (CaffeineCache cache : CaffeineCacheSupplier.allCaches()) { - if (cache.getName().equals(cacheName)) { - cache.invalidateAll(); - flashMessage(event, "Cache for " + cacheName + " cleared");// <3> - return; - } - } - flashMessage(event, "Cache for " + cacheName + " not found", - FlashMessageStatus.ERROR);// <4> - } - }; - } -} ----- -<1> While you can use https://vertx.io/docs/vertx-web/java/#_routing_by_http_method[any Vert.x handler], - the `DevConsolePostHandler` superclass will handle your POST actions - nicely, and auto-redirect to the `GET` URI right after your `POST` for optimal behavior. -<2> You can get the Vert.x `RoutingContext` as well as the `form` contents -<3> Don't forget to add a message for the user to let them know everything went fine -<4> You can also add error messages - - -NOTE: Flash messages are handled by the `main` DEV template and will result in nice notifications for your -users: - -image::dev-ui-message.png[alt=Dev UI message,align=center,width=90%] - diff --git a/_versions/2.7/guides/docinfo.html b/_versions/2.7/guides/docinfo.html deleted file mode 100644 index cae91e61d33..00000000000 --- a/_versions/2.7/guides/docinfo.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - diff --git a/_versions/2.7/guides/duration-format-note.adoc b/_versions/2.7/guides/duration-format-note.adoc deleted file mode 100644 index 823c283a5e3..00000000000 --- a/_versions/2.7/guides/duration-format-note.adoc +++ /dev/null @@ -1,9 +0,0 @@ -[NOTE] -==== -The format for durations uses the standard `java.time.Duration` format. -You can learn more about it in the link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html#parse-java.lang.CharSequence-[Duration#parse() javadoc]. - -You can also provide duration values starting with a number. -In this case, if the value consists only of a number, the converter treats the value as seconds. -Otherwise, `PT` is implicitly prepended to the value to obtain a standard `java.time.Duration` format. -==== diff --git a/_versions/2.7/guides/elasticsearch.adoc b/_versions/2.7/guides/elasticsearch.adoc deleted file mode 100644 index 17a8b02b73c..00000000000 --- a/_versions/2.7/guides/elasticsearch.adoc +++ /dev/null @@ -1,498 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Connecting to an Elasticsearch cluster -include::./attributes.adoc[] - -Elasticsearch is a well known full text search engine and NoSQL datastore. - -In this guide, we will see how you can get your REST services to use an Elasticsearch cluster. - -Quarkus provides two ways of accessing Elasticsearch: via the lower level `RestClient` or via the `RestHighLevelClient` we will call them -the low level and the high level clients. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* Elasticsearch installed or Docker installed - -== Architecture - -The application built in this guide is quite simple: the user can add elements in a list using a form and the list is updated. - -All the information between the browser and the server is formatted as JSON. - -The elements are stored in Elasticsearch. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: elasticsearch-quickstart -:create-app-extensions: resteasy,resteasy-jackson,elasticsearch-rest-client -include::includes/devtools/create-app.adoc[] - -This command generates a Maven structure importing the RESTEasy/JAX-RS, Jackson, and the Elasticsearch low level client extensions. -After this, the `quarkus-elasticsearch-rest-client` extension has been added to your build file. - -If you want to use the high level client instead, replace the `elasticsearch-rest-client` extension by the `elasticsearch-rest-high-level-client` extension. - -[NOTE] -==== -We use the `resteasy-jackson` extension here and not the JSON-B variant because we will use the Vert.x `JsonObject` helper -to serialize/deserialize our objects to/from Elasticsearch and it uses Jackson under the hood. -==== - -If you don’t want to generate a new project, add the following dependencies to your build file. - -For the Elasticsearch low level client, add: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-elasticsearch-rest-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-elasticsearch-rest-client") ----- - -For the Elasticsearch high level client, add: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-elasticsearch-rest-high-level-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-elasticsearch-rest-high-level-client") ----- - -== Creating your first JSON REST service - -In this example, we will create an application to manage a list of fruits. - -First, let's create the `Fruit` bean as follows: - -[source,java] ----- -package org.acme.elasticsearch; - -public class Fruit { - public String id; - public String name; - public String color; -} ----- - -Nothing fancy. One important thing to note is that having a default constructor is required by the JSON serialization layer. - -Now create a `org.acme.elasticsearch.FruitService` that will be the business layer of our application and store/load the fruits from the Elasticsearch instance. -Here we use the low level client, if you want to use the high level client instead follow the instructions in the <> paragraph instead. - -[source,java] ----- -package org.acme.elasticsearch; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; - -import org.apache.http.util.EntityUtils; -import org.elasticsearch.client.Request; -import org.elasticsearch.client.Response; -import org.elasticsearch.client.RestClient; - -import io.vertx.core.json.JsonArray; -import io.vertx.core.json.JsonObject; - -@ApplicationScoped -public class FruitService { - @Inject - RestClient restClient; //<1> - - public void index(Fruit fruit) throws IOException { - Request request = new Request( - "PUT", - "/fruits/_doc/" + fruit.id); //<2> - request.setJsonEntity(JsonObject.mapFrom(fruit).toString()); //<3> - restClient.performRequest(request); //<4> - } - - public Fruit get(String id) throws IOException { - Request request = new Request( - "GET", - "/fruits/_doc/" + id); - Response response = restClient.performRequest(request); - String responseBody = EntityUtils.toString(response.getEntity()); - JsonObject json = new JsonObject(responseBody); //<5> - return json.getJsonObject("_source").mapTo(Fruit.class); - } - - public List searchByColor(String color) throws IOException { - return search("color", color); - } - - public List searchByName(String name) throws IOException { - return search("name", name); - } - - private List search(String term, String match) throws IOException { - Request request = new Request( - "GET", - "/fruits/_search"); - //construct a JSON query like {"query": {"match": {"": " results = new ArrayList<>(hits.size()); - for (int i = 0; i < hits.size(); i++) { - JsonObject hit = hits.getJsonObject(i); - Fruit fruit = hit.getJsonObject("_source").mapTo(Fruit.class); - results.add(fruit); - } - return results; - } -} ----- - -In this example you can note the following: - -1. We inject an Elasticsearch low level `RestClient` into our service. -2. We create an Elasticsearch request. -3. We use Vert.x `JsonObject` to serialize the object before sending it to Elasticsearch, you can use whatever you want to serialize to JSON. -4. We send the request (indexing request here) to Elasticsearch. -5. In order to deserialize the object from Elasticsearch, we again use Vert.x `JsonObject`. - -Now, create the `org.acme.elasticsearch.FruitResource` class as follows: - -[source,java] ----- -package org.acme.elasticsearch; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.QueryParam; -import java.io.IOException; -import java.net.URI; -import java.util.List; -import java.util.UUID; - -@Path("/fruits") -public class FruitResource { - - @Inject - FruitService fruitService; - - @POST - public Response index(Fruit fruit) throws IOException { - if (fruit.id == null) { - fruit.id = UUID.randomUUID().toString(); - } - fruitService.index(fruit); - return Response.created(URI.create("/fruits/" + fruit.id)).build(); - } - - @GET - @Path("/{id}") - public Fruit get(@PathParam("id") String id) throws IOException { - return fruitService.get(id); - } - - @GET - @Path("/search") - public List search(@QueryParam("name") String name, @QueryParam("color") String color) throws IOException { - if (name != null) { - return fruitService.searchByName(name); - } else if (color != null) { - return fruitService.searchByColor(color); - } else { - throw new BadRequestException("Should provide name or color query parameter"); - } - } -} ----- - -The implementation is pretty straightforward and you just need to define your endpoints using the JAX-RS annotations and use the `FruitService` to list/add new fruits. - -== Configuring Elasticsearch -The main property to configure is the URL to connect to the Elasticsearch cluster. - -A sample configuration should look like this: - -[source,properties] ----- -# configure the Elasticsearch client for a cluster of two nodes -quarkus.elasticsearch.hosts = elasticsearch1:9200,elasticsearch2:9200 ----- - -In this example, we are using a single instance running on localhost: - -[source,properties] ----- -# configure the Elasticsearch client for a single instance on localhost -quarkus.elasticsearch.hosts = localhost:9200 ----- - -If you need a more advanced configuration, you can find the comprehensive list of supported configuration properties at the end of this guide. - -== Programmatically Configuring Elasticsearch -On top of the parametric configuration, you can also programmatically apply additional configuration to the client by implementing a `RestClientBuilder.HttpClientConfigCallback` and annotating it with `ElasticsearchClientConfig`. You may provide multiple implementations and configuration provided by each implementation will be applied in a randomly ordered cascading manner. - -For example, when accessing an Elasticsearch cluster that is set up for TLS on the HTTP layer, the client needs to trust the certificate that Elasticsearch is using. The following is an example of setting up the client to trust the CA that has signed the certificate that Elasticsearch is using, when that CA certificate is available in a PKCS#12 keystore. - -[source,java] ----- -import io.quarkus.elasticsearch.restclient.lowlevel.ElasticsearchClientConfig; -import org.apache.http.impl.nio.client.HttpAsyncClientBuilder; -import org.apache.http.ssl.SSLContextBuilder; -import org.apache.http.ssl.SSLContexts; -import org.elasticsearch.client.RestClientBuilder; - -import javax.enterprise.context.Dependent; -import javax.net.ssl.SSLContext; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.security.KeyStore; - -@ElasticsearchClientConfig -public class SSLContextConfigurator implements RestClientBuilder.HttpClientConfigCallback { - @Override - public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) { - try { - String keyStorePass = "password-for-keystore"; - Path trustStorePath = Paths.get("/path/to/truststore.p12"); - KeyStore truststore = KeyStore.getInstance("pkcs12"); - try (InputStream is = Files.newInputStream(trustStorePath)) { - truststore.load(is, keyStorePass.toCharArray()); - } - SSLContextBuilder sslBuilder = SSLContexts.custom() - .loadTrustMaterial(truststore, null); - SSLContext sslContext = sslBuilder.build(); - httpClientBuilder.setSSLContext(sslContext); - } catch (Exception e) { - throw new RuntimeException(e); - } - - return httpClientBuilder; - } -} ----- -See https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/_encrypted_communication.html[Elasticsearch documentation] for more details on this particular example. - -[NOTE] -==== -Classes marked with `@ElasticsearchClientConfig` are made application scoped CDI beans by default. -You can override the scope at the class level if you prefer a different scope. -==== - -== Running an Elasticsearch cluster - -As by default, the Elasticsearch client is configured to access a local Elasticsearch cluster on port 9200 (the default Elasticsearch port), -if you have a local running instance on this port, there is nothing more to do before being able to test it! - -If you want to use Docker to run an Elasticsearch instance, you can use the following command to launch one: - -[source,bash,subs=attributes+] ----- -docker run --name elasticsearch -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m"\ - --rm -p 9200:9200 docker.elastic.co/elasticsearch/elasticsearch-oss:{elasticsearch-version} ----- - -== Running the application - -Now let's run our application via Quarkus dev mode: - -:devtools-wrapped: -+ -include::includes/devtools/dev.adoc[] -:!devtools-wrapped: - -You can add new fruits to the list via the following curl command: - -[source,bash,subs=attributes+] ----- -curl localhost:8080/fruits -d '{"name": "bananas", "color": "yellow"}' -H "Content-Type: application/json" ----- - -And search for fruits by name or color via the flowing curl command: - -[source,bash,subs=attributes+] ----- -curl localhost:8080/fruits/search?color=yellow ----- - -== Using the High Level REST Client - -Quarkus provides support for the Elasticsearch High Level REST Client but keep in mind that it comes with some caveats: - -- It drags a lot of dependencies - especially Lucene -, which doesn't fit well with Quarkus philosophy. The Elasticsearch team is aware of this issue and it might improve sometime in the future. -- It is tied to a certain version of the Elasticsearch server: you cannot use a High Level REST Client version 7 to access a server version 6. - -[WARNING] -==== -Due to the license change made by Elastic for the Elasticsearch High Level REST Client, -we are keeping in Quarkus the last Open Source version of this particular client, namely 7.10, -and it won't be upgraded to newer versions. - -Given this client was deprecated by Elastic and replaced by a new Open Source Java client, -the Elasticsearch High Level REST Client extension is considered deprecated and will be removed from the Quarkus codebase at some point in the future. - -Note that contrary to the High Level REST client, we are using the latest version of the Low Level REST client (which is still Open Source), -and, while we believe it should work, the situation is less than ideal and might cause some issues. -Feel free to override the versions of the clients in your applications depending on your requirements, -but be aware of https://www.elastic.co/blog/elastic-license-v2[the new licence of the High Level REST Client] for versions 7.11+: -it is not Open Source and has several usage restrictions. - -We will eventually provide an extension for the new Open Source Java client but it will require changes in your applications -as it is an entirely new client. -==== - -Here is a version of the `FruitService` using the high level client instead of the low level one: - -[source,java] ----- -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; - -import org.elasticsearch.action.get.GetRequest; -import org.elasticsearch.action.get.GetResponse; -import org.elasticsearch.action.index.IndexRequest; -import org.elasticsearch.action.search.SearchRequest; -import org.elasticsearch.action.search.SearchResponse; -import org.elasticsearch.client.RequestOptions; -import org.elasticsearch.client.RestHighLevelClient; -import org.elasticsearch.common.xcontent.XContentType; -import org.elasticsearch.index.query.QueryBuilders; -import org.elasticsearch.search.SearchHit; -import org.elasticsearch.search.SearchHits; -import org.elasticsearch.search.builder.SearchSourceBuilder; - -import io.vertx.core.json.JsonObject; - -@ApplicationScoped -public class FruitService { - @Inject - RestHighLevelClient restHighLevelClient; // <1> - - public void index(Fruit fruit) throws IOException { - IndexRequest request = new IndexRequest("fruits"); // <2> - request.id(fruit.id); - request.source(JsonObject.mapFrom(fruit).toString(), XContentType.JSON); // <3> - restHighLevelClient.index(request, RequestOptions.DEFAULT); // <4> - } - - public Fruit get(String id) throws IOException { - GetRequest getRequest = new GetRequest("fruits", id); - GetResponse getResponse = restHighLevelClient.get(getRequest, RequestOptions.DEFAULT); - if (getResponse.isExists()) { - String sourceAsString = getResponse.getSourceAsString(); - JsonObject json = new JsonObject(sourceAsString); // <5> - return json.mapTo(Fruit.class); - } - return null; - } - - public List searchByColor(String color) throws IOException { - return search("color", color); - } - - public List searchByName(String name) throws IOException { - return search("name", name); - } - - private List search(String term, String match) throws IOException { - SearchRequest searchRequest = new SearchRequest("fruits"); - SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); - searchSourceBuilder.query(QueryBuilders.matchQuery(term, match)); - searchRequest.source(searchSourceBuilder); - - SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT); - SearchHits hits = searchResponse.getHits(); - List results = new ArrayList<>(hits.getHits().length); - for (SearchHit hit : hits.getHits()) { - String sourceAsString = hit.getSourceAsString(); - JsonObject json = new JsonObject(sourceAsString); - results.add(json.mapTo(Fruit.class)); - } - return results; - } -} ----- - -In this example you can note the following: - -1. We inject an Elasticsearch `RestHighLevelClient` inside the service. -2. We create an Elasticsearch index request. -3. We use Vert.x `JsonObject` to serialize the object before sending it to Elasticsearch, you can use whatever you want to serialize to JSON. -4. We send the request to Elasticsearch. -5. In order to deserialize the object from Elasticsearch, we again use Vert.x `JsonObject`. - -== Hibernate Search Elasticsearch - -Quarkus supports Hibernate Search with Elasticsearch via the `hibernate-search-orm-elasticsearch` extension. - -Hibernate Search Elasticsearch allows to synchronize your JPA entities to an Elasticsearch cluster and offers a way to query your Elasticsearch cluster using the Hibernate Search API. - -If you're interested in it, you can read the xref:hibernate-search-orm-elasticsearch.adoc[Hibernate Search with Elasticsearch guide]. - -== Cluster Health Check - -If you are using the `quarkus-smallrye-health` extension, both the extension will automatically add a readiness health check -to validate the health of the cluster. - -So when you access the `/q/health/ready` endpoint of your application you will have information about the cluster status. -It uses the cluster health endpoint, the check will be down if the status of the cluster is **red**, or the cluster is not available. - -This behavior can be disabled by setting the `quarkus.elasticsearch.health.enabled` property to `false` in your `application.properties`. - -== Building a native executable - -You can use both clients in a native executable. - -You can build a native executable with the usual command: - -include::includes/devtools/build-native.adoc[] - -Running it is as simple as executing `./target/elasticsearch-low-level-client-quickstart-1.0.0-SNAPSHOT-runner`. - -You can then point your browser to `http://localhost:8080/fruits.html` and use your application. - -== Conclusion - -Accessing an Elasticsearch cluster from a low level or a high level client is easy with Quarkus as it provides easy configuration, CDI integration and native support for it. - -== Configuration Reference - -include::{generated-dir}/config/quarkus-elasticsearch-restclient-lowlevel.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/extension-codestart.adoc b/_versions/2.7/guides/extension-codestart.adoc deleted file mode 100644 index 7ae0eec08bd..00000000000 --- a/_versions/2.7/guides/extension-codestart.adoc +++ /dev/null @@ -1,286 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Extension codestart -include::./attributes.adoc[] - -This guide explains how to create and configure a Quarkus Codestart for an extension. - -== Description - -"Extension Codestarts" is the name we gave to our Quarkus extension quickstart code generation system. It aims to provide a personalized getting started experience with Quarkus. -A Quarkus extension is able to provide one or more well defined codestarts which will contain the necessary resources and code required to start using that particular extension. - -You can apply extension codestarts in the Quarkus tooling: - -* https://code.quarkus.io[code.quarkus.io, window="_blank"] (find the extensions tagged with [code]) -* The Quarkus Maven plugin: -+ -[source,bash] ----- -mvn io.quarkus.platform:quarkus-maven-plugin:create ----- - -* The Quarkus CLI: -+ -[source,bash] ----- -quarkus create app ----- - -== How it works - -When starting a project, you choose the language, the build tool, the framework, then you add dockerfiles, CI, dependencies and code. - -Codestarts are working the same way when contributing to the generation of a project, they are split in two categories: - -**The "Base" codestarts (you choose a combination of those):** - -* project: The project skeleton (e.g. a Quarkus project) -* buildtool: The build tool (e.g. Maven, Gradle, Gradle with Kotlin DSL) -* language: The coding language (e.g. Java, Kotlin, Scala) -* config: The config type (e.g. yaml, properties) - -**Extra codestarts (as much as wanted, to put on top):** - -* tooling: Anything that can be added to improve the project (e.g. dockerfiles, github-action) -* code: Any Quarkus extension can provide starter code. The user can decide to activate it or not. - -Each codestart consists of: - -. A codestart unique name, ie `my-codestart` -. A directory for the codestart files, ie `my-codestart/` -. A `codestart.yml` file -. Optionally some templates that are following a common structure and naming conventions - -== Where are the Quarkus Extension Codestarts located - -- In Quarkus core repo, the extension codestarts are all in the same https://github.com/quarkusio/quarkus/tree/main/devtools/project-core-extension-codestarts/src/main/resources/codestarts/quarkus/extension-codestarts[module, window="_blank"]. - -- RESTEasy, RESTEasy Reactive and Spring Web extension codestarts are part of https://github.com/quarkusio/quarkus/tree/main/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/extension-codestarts[the base codestarts, window="_blank"]. - -- For other extensions, the codestart will typically be located in the runtime module (with special instruction in the `pom.xml` to generate a separate codestart artifact). - -== Base codestarts - -The https://github.com/quarkusio/quarkus/tree/main/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus[base codestarts, window="_blank"] contains templates to create project, buildtool, languages, config & tooling files. - -== Writing an Extension Codestart - -As was mentioned previously, the base project files (pom.xml, dockerfiles, ...) are already generated by base codestarts provided by the Quarkus core. Thanks to this, we can only focus on the important - the starter code for the extension. - -The codestart should not include any business logic, instead, it should contain some stub data/hello world to compile. The idea is to bring code that is the starting point to everyone using the extension. - -== Writing an Extension Codestart in Quarkus Core - -- Copy one of the existing https://github.com/quarkusio/quarkus/tree/main/devtools/project-core-extension-codestarts/src/main/resources/codestarts/quarkus/extension-codestarts[Quarkus core extension codestarts, window="_blank"]. If the code needs to expose a web resource, `resteasy-qute-codestart` could be a good base Otherwise, `config-yaml-codestart` could be a better starting point. More info on the <>. - -- Edit the <>: - -- Create the extension binding in the extension metadata (https://github.com/quarkusio/quarkus/blob/main/extensions/config-yaml/runtime/src/main/resources/META-INF/quarkus-extension.yaml#L12-L17[example, window="_blank"]). *Thanks to this, the codestart is added when the user selects the extension* - -- Add the readme <> section template. - -- Add the code in the language folder (it is recommended to at least provide java and kotlin). *You have to use `org.acme` as the package name: <>*. It is possible to use <> if needed. - -- Optionally, Add the `index.html` section template (<>). - -- Optionally, add some resources (`./base` directory if they are non language specific) - -- Optionally, add the <>. - -- Create an <>. - -- <> - -== Writing an Extension Codestart in the Quarkiverse or standalone - -For extensions hosted outside of the Quarkus core[https://github.com/quarkusio/quarkus] repository, codestarts will typically be located in the runtime module (with special instruction in the `pom.xml` to generate a separate codestart artifact). https://github.com/ia3andy/aloha-code/[Here, window="_blank"] is an example extension with a codestart and its tests. - - -[#generating] -== Generating your Extension Codestart - -**You need to build your codestart with Maven to make it available in the tooling:** - -- First add the codestart and update the relevant extension's metadata yml file, and build it all (the codestart and the extension if in core). - -- In Quarkus core, you also have to rebuild the `devtools/bom-descriptor-json` module to bind the codestart with the extension in the platform descriptor. - -=== With the tests - -You can use the <> to help develop your codestart with `buildAllProjects` (In Quarkus core we added `@EnabledIfSystemProperty(named = "build-projects", matches = "true")` because codestarts are already built together in another test from `QuarkusCodestartBuildIT`). - -Use `-Dbuild-projects=true` when running this test to generate the real project with your codestart. Open it with your IDE, then change the code and copy it back to the codestart (and iterate until you are happy with the result). - -=== With the Quarkus tooling - -NOTE: Using the tooling to generate your local extension codestart during dev is not yet available Quarkiverse/Standalone extension (Until then, you may use the tests and follow https://github.com/quarkusio/quarkus/issues/21165[#21165, window="_blank"] for updates). - -Using the CLI or Maven plugin to generate a project with your codestart: - -- If using the CLI, you'll probably need to add `-P=io.quarkus:quarkus-bom:999-SNAPSHOT` to the CLI's arguments to use your snapshot of the platform - -- Example CLI command: `quarkus create app -x smallrye-health --code --java -P=io.quarkus:quarkus-bom:999-SNAPSHOT` - -- Equivalent for the Maven plugin: `mvn io.quarkus:quarkus-maven-plugin:2.3.0.Final:create -Dextensions=smallrye-health -DplatformVersion=999-SNAPSHOT` - - -== Specific topics - -[#org-acme-package] -=== Dynamic package name generation from org.acme - -You have to use `org.acme` as the package name in your extension codestart sources. In the generated project, the user specified package will be used (and auto-replace `org.acme`). - -It will be auto-replaced in all the source files (.java, .kt, .scala). The package directory will also be automatically adjusted. If for some reason, another type of file needs the user package name then you should use a <> for it and `{project.package-name}` data placeholder (https://github.com/quarkusio/quarkus/blob/main/devtools/project-core-extension-codestarts/src/main/resources/codestarts/quarkus/extension-codestarts/grpc-codestart/base/src/main/proto/hello.tpl.qute.proto#L4[find an example in the grpc proto file, window="_blank"]). - -[#codestart-yml] -=== codestart.yml - -[source,yaml] ----- -# the codestart unique name -name: resteasy-example -# the codestart reference (the name is used if not set) -ref: resteasy -# the type of codestart (other types are used for other project files) -type: code -# public metadata for this example (they will also be accessible from this codestart qute templates by using the key: {title}) -metadata: - title: RESTEasy JAX-RS example - description: Rest is easy peasy with this Hello World RESTEasy resource. - related-guide-section: https://quarkus.io/guides/getting-started#the-jax-rs-resources - # the path is optional and used by the generated index.html if present - path: /some-path -language: - base: - # Specify the extension and possibly other required dependencies - dependencies: - - io.quarkus:quarkus-resteasy - # And maybe test dependencies? - test-dependencies: - - io.rest-assured:rest-assured ----- - -[#directory-structure] -=== Directory Structure - -NOTE: `codestart.yml` is the only required file. - -* `codestart.yml` must be at the root of the codestart -* `./base` contains all the files that will be processed independently of the specified language -* `./[java/kotlin/scala]` contains all the files that will be processed only if the specified language has been selected (overriding base) - -=== Naming Convention for files - -* `.tpl.qute` will be processed with Qute and can use data (`.tpl.qute` will be removed from the output file name). -* certain common files, such as `readme.md`, `src/main/resources/application.yml`, `src/main/resources/META-INF/resources/index.html` are generated from the collected fragments found in the selected codestarts for the project -* other files are copied. - -[#qute-templates] -=== Templates (Qute) - -Codestarts may use Qute templates `MyClass.tpl.qute.java` for dynamic rendering. - -Those templates are able to use data which contains: - -* The `data` (and public `metadata`) of the codestart to generate (specified in the `codestart.yml`) -* A merge of the `shared-data` from the all the codestarts used to generate the project -* The user input -* Some dynamically generated data (e.g. `dependencies` and `test-dependencies`) - -[#readme-md] -=== README.md - -You may add a `README.md` or `README.tpl.qute.md` in the `base` directory, it will be appended to the others. -So just add the info relative to your extension codestart. - -base/readme.tpl.qute.md -[source,html] ----- -{#include readme-header /} - -[Optionally, Here you may add information about how to use the example, settings, ...] ----- - -NOTE: The `{#include readme-header /}` will use a template located in the Quarkus project codestart which displays standard info from the `codestart.yml` metadata. - -[#app-config] -=== application config application.yml - -As a convention, you should always provide the Quarkus configuration as a yaml file (`base/src/main/resources/application.yml`). - -It is going to be: - -* merged with the other extension codestarts configs -* automatically converted to the selected config type (yaml or properties) at generation time depending on the selected extensions - -[#index-html] -=== index.html and web extension codestarts - -Extension codestarts may provide a snippet for the generated index.html by adding this file: - -base/src/main/resources/META-INF/resources/index.entry.qute.html: -[source,html] ----- -{#include index-entry /} ----- - -NOTE: The `{#include index-entry /}` will use a template located in the Quarkus project codestart which displays standard info from the `codestart.yml` metadata. - -[#integration-test] -=== Integration test - -An extension is available to help test extension codestarts `QuarkusCodestartTest`. It provides a way to test: - -- the generated project content (with immutable mocked data) using snapshot testing -- the generated project build/run (with real data) with helpers to run the build - -NOTE: Before all the tests, the extension will generate Quarkus projects in the specified languages with the given codestart using mocked data and real data. You can find those generated projects in the `target/quarkus-codestart-test` directory. You can open the `real-data` ones in your IDE or play with them using the terminal. *The real data is the easiest way to iterate on your extension codestart development.* - - -The extension provides helpers to test that the projects build `buildAllProjects` or just a specific language project `buildProject(Language language)`. It also provides helpers to test the content with <>. - -The https://github.com/quarkusio/quarkus/blob/main/integration-tests/devtools/src/test/java/io/quarkus/devtools/codestarts/quarkus/ConfigYamlCodestartTest.java[ ConfigYamlCodestartTest, window="_blank"] is a good example in Quarkus core. - -[#snapshot-testing] -==== Snapshot testing - -Snapshot testing is a way to make sure the content generated by a test doesn't change from one revision to another, i.e. between commits. That means, the generated content for each commit needs to be immutable and deterministic (this is the reason for using mocked data). To be able to perform such checks, we auto-generate snapshots of the generated content and commit them as the references of the expected output for subsequent test runs. When the templates change, we also commit the induced snapshots changes. This way, during the review, we can make sure the applied code changes have the expected effects on the generated output. - -The extension provides helpers to check the content: - -- `checkGeneratedSource()` validate a class against the snapshots for all languages (or a specific one). -- `checkGeneratedTestSource()` validate a test class against the snapshots for all languages (or a specific one). -- `assertThatGeneratedFileMatchSnapshot()` check a project file against the snapshot. -- You can use `AbstractPathAssert.satisfies(checkContains("some content"))` or any Path assert on the return of the methods above to also check the file contains a specific content. -- `assertThatGeneratedTreeMatchSnapshots()` lets you compare the project file structure (tree) for a specific language against its snapshot. - -NOTE: In order to first generate or update existing snapshots files on your local filesystem, you need to add `-Dsnap` when running the tests locally while developing the codestart. They need to be added as part of the commit, else the tests will not pass on the CI. - -=== Writing tips - -* Your extension codestart must/should be independent of buildtool and dockerfiles. -* Extension codestarts should be able to work alongside each other without interference (in combination). -* Make sure your class names are unique across all extension codestarts. -* Only use `org.acme` as package name. -* Use a unique path `/[unique]` for your REST paths -* Write the config in yml `src/main/resources/application.yml`. -+ -It is going to be merged with the other codestarts config and automatically converted to the selected config type (yaml or properties). -* You can start with java and add kotlin later in another PR (create an issue so you don't forget). -* If you have a question, ping me @ia3andy on https://quarkusio.zulipchat.com/. - -== The generator sources - -* https://github.com/quarkusio/quarkus/tree/main/independent-projects/tools/codestarts[Codestart generator, window="_blank"] -* https://github.com/quarkusio/quarkus/tree/main/independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/codestarts/quarkus[Quarkus implementation of the Codestart generator, window="_blank"] - -== Issues and Feature requests - -https://github.com/quarkusio/quarkus/labels/area%2Fcodestarts - - diff --git a/_versions/2.7/guides/extension-registry-user.adoc b/_versions/2.7/guides/extension-registry-user.adoc deleted file mode 100644 index 89d1e6c7bde..00000000000 --- a/_versions/2.7/guides/extension-registry-user.adoc +++ /dev/null @@ -1,193 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Quarkus Extension Registry - -include::./attributes.adoc[] - -The Quarkus dev tools, such as the https://quarkus.io/guides/cli-tooling[Quarkus CLI], the https://quarkus.io/guides/maven-tooling[Maven] and the https://quarkus.io/guides/gradle-tooling[Gradle] plugins, or https://code.quarkus.io[code.quarkus.io] can be used to list and search the Quarkus ecosystem for extensions that match a certain criteria. That includes the https://quarkus.io/guides/platform[Quarkus platform] extensions and various other extensions contributed by the community, many of which are hosted on the https://github.com/quarkiverse[Quarkiverse Hub]. - -The information about all the available Quarkus extensions is provided to the dev tools by __Quarkus extension registries__. - -A Quarkus extension registry is a database providing information about: - -* available Quarkus platforms, indicating which of those are currently recommended for new projects and/or as updates; -* available non-platform extensions, indicating which Quarkus versions they are compatible with. - -[[registry.quarkus.io]] -== registry.quarkus.io - -The registry hosted at https://registry.quarkus.io[registry.quarkus.io] is the default Quarkus community extension registry. It is updated on every release of the https://github.com/quarkusio/quarkus-platform[Quarkus community platform] and includes extensions hosted on the https://github.com/quarkiverse[Quarkiverse Hub]. - -=== Maven repository - -The registry hosted at https://registry.quarkus.io[registry.quarkus.io] is a Maven __snapshot__ repository that provides platform and extension catalogs to the dev tools as Maven JSON artifacts. Once downloaded the extension catalogs will be cached in the user's local Maven repository and will be available to the dev tools even if the Internet network (or the registry itself) isn't available. - -The extension catalog artifacts cached locally will be regularly checked for updates and updated if newer versions of those catalogs are available in the registry. The default interval to check for updates is *daily*, which matches the default Maven repository `updatePolicy` for SNAPSHOT artifacts. - -[[registry.quarkus.io.maven.repo]] -==== Maven repository configuration - -IMPORTANT: The repository configuration below is shown only for illustrative purposes and does *NOT* have to be added to the user `settings.xml` or the application's `pom.xml`. The Quarkus dev tools come with this repository pre-configured. - -The complete https://maven.apache.org/settings.html#repositories[Maven repository configuration] of <> is - -[source,xml] ----- - - registry.quarkus.io - Quarkus community extension registry - https://registry.quarkus.io/maven - - true - daily - warn - - ----- - -When the Quarkus dev tools are initialized, this repository configuration is automatically added to the Maven resolver which will be used to resolve the platform and extension catalogs from <>. - -==== Maven repository mirrors and proxies - -When the Quarkus dev tools Maven resolver is initialized, the relevant Maven mirrors and proxies found in the user `settings.xml` are automatically applied to the <> Maven repository configuration, as if the <> Maven repository was configured in the user `settings.xml`. - -That means, if, for example, a matching Maven repository mirror was applied to the <> Maven repository, the <> Maven repository would have to be added to the mirror repository group in the corresponding Maven server instance (e.g. Nexus). - -==== Overriding the default registry Maven repository configuration - -The default registry Maven repository configuration can actually be overriden in the user `settings.xml` by simply adding the desired `` configuration with the `registry.quarkus.io` as its `` value. If such a repository configuration is found in the user `settings.xml`, the dev tools will use it in place of the default <> Maven repository configuration shown above. - -== Quarkus Extension Registry Client Configuration - -Typically, Quarkus community users will not need to have any registry-related configuration in their environment. The registry hosted at <> is enabled in all the Quarkus dev tools by default. However, there could be a few situations where a custom registry client configuration could help. For example, to change the local registry cache update policy or to configure additional (non-default) Quarkus extension registries. - -=== Registry client configuration location - -When the Quarkus dev tools are launched, a search for the registry client configuration file is performed following these steps: - -. `quarkus.tools.config` system property is checked, if it exists, its value will be used as a path to the registry client configuration file; -. the current directory is checked to contain the `.quarkus/config.yaml` file, if the file exists, it will be used to configure the registry client; -. the user home directory is checked to contain the `~/.quarkus/config.yaml` file, if the file exists, it will be used to configure the registry client; -. if none of the above steps located a configuration file, the default <> configuration will be used. - -=== Configuring multiple registries - -The <> is the default Quarkus community extension registry but it is not meant to be always the only registry. Other organizations may find it useful to create their own Quarkus extension registries to provide their own https://quarkus.io/guides/platform[Quarkus platforms] and/or individual (non-platform) Quarkus extensions. Users wishing to enable custom Quarkus extension registries in their environment would need to add them to the registry client configuration file. - -The registry client configuration file is a simple YAML file which contains a list of registries, for example: - -[source,yaml] ----- -registries: -- registry.acme.org -- registry.quarkus.io ----- - -The configuration above enables two registries: `registry.acme.org` and `registry.quarkus.io`. The order of the registries is actually significant. When the Quarkus dev tools are looking for extensions on user's request, the registries will be searched in the order they are configured, i.e. from the top to the bottom of the list. Extensions and platforms found first will appear as the preferred ones to the user. - -IMPORTANT: <> is the default registry which normally does not have to be configured explicitly, however if a user provides a custom registry list and `registry.quarkus.io` is not in it, <> will *not* be enabled. - -For example, here is a registry client configuration that replaces the default <> registry with a custom one: - -[source,yaml] ----- -registries: -- registry.acme.org ----- - -=== Adjusting the registry cache update policy - -Usually, a Quarkus extension registry will be implemented as a Maven snapshot repository. The platform and extension catalogs resolved from the registry as Maven artifacts will be cached in the user's local Maven repository. The platform and extension catalogs are actually `SNAPSHOT` artifacts that are periodically checked for updates by the registry client. The default registry interval to check for updates matches the default value of the Maven's `updatePolicy` for https://maven.apache.org/settings.html#repositories[snapshot repositories] and is `daily`. This default can be override in the registry configuration, for example: - -[source,yaml] ----- -registries: -- registry.acme.org: - update-policy: "always" -- registry.quarkus.io ----- - -In the example above, the `registry.acme.org` registry will be checked for catalog updates on every catalog request, while the `registry.quarkus.io` registry will be checked for catalog updates once a day (on the first catalog request of the day). - -Here is a complete list of choices for a registry's `update-policy` value: - -* _always_ - check for the updates on every catalog request; -* _daily_ (default) - check for the catalog updates once a day on the first catalog request; -* _interval:X_ (where X is an integer in minutes) - custom interval in minutes; -* _never_ - resolve the catalogs once and never check for updates. - -=== Disabling a registry in the configuration - -All the registries listed in the configuration file are enabled by default. A registry can be disabled though by adding `enabled: false` to its configuration. For example: - -[source,yaml] ----- -registries: -- registry.acme.org -- registry.quarkus.io: - enabled: false ----- - -In the configuration above, only the `registry.acme.org` is enabled. The configuration above is equivalent to: - -[source,yaml] ----- -registries: -- registry.acme.org ----- - -=== Enabling the debug mode - -The registry client is not logging much information by default. However, it does resolve various artifacts from Maven repositories behind the scenes. If you would like to see artifact transfer and other debugging related messages in the logs, you can enable the debug mode in the configuration. For example: - -[source,yaml] ----- -debug: true -registries: -- registry.acme.org -- registry.quarkus.io ----- -=== Overriding a registry URL - -There may be situations where the URL of the registry changes, however the ID needs to be the same (because the Maven coordinates are queried). To override the registry URL, add the following: - -[source,yaml] ----- -registries: -- registry.acme.org -- registry.quarkus.io: - maven: - repository: - url: https://internal.registry.acme.org/maven ----- - - - -=== [[how-to-register-as-nexus-repository]] How to register as a Nexus Repository proxy - -You can register a Quarkus extension registry as a Nexus repository proxy.You need to be an administrator to perform these operations. - -==== [[how-to-register-as-nexus-2-repository]] Nexus 2.x -Some options need to be set: - -- Set the `Repository Policy` to `Snapshot`; -- Disable `Download Remote Indexes`; -- Disable `Allow File Browsing`; -- Disable `Include in Search`. - -Here is an example on how it should look like: - -[#img-nexus] -.Nexus Repository Manager: Add Proxy Repository -image:registry-nexus-repository.png[Nexus Repository Proxy] - -==== [[how-to-register-as-nexus-3-repository]] Nexus 3.x - -- Create a `maven2(proxy)` repository -- Set the `Version Policy` to `Snapshot` -- Set the `Remote Storage` URL to `https://registry.quarkus.io/maven` - -image:registry-nexus3-repository.png[Nexus Repository Proxy] diff --git a/_versions/2.7/guides/faq.adoc b/_versions/2.7/guides/faq.adoc deleted file mode 100644 index a7c9bbe4fe4..00000000000 --- a/_versions/2.7/guides/faq.adoc +++ /dev/null @@ -1,29 +0,0 @@ -= Frequently Asked Questions - -include::./attributes.adoc[] - -:toc: macro -:toclevels: 4 -:doctype: book -:icons: font -:docinfo1: - -:numbered: -:sectnums: -:sectnumlevels: 4 - -== Native compilation - -Native executable fails on macOS with `error: unknown type name 'uint8_t'`:: -Your macOS has the wrong `*.h` files compared to the OS and no gcc compilation will work. -This can happen when you migrate from versions of the OS. -See https://stackoverflow.com/questions/48029309/cannot-compile-any-c-programs-error-unknown-type-name-uint8-t -+ -The solution is to - -* `sudo mv /usr/local/include /usr/local/include.old` -* Reinstall XCode for good measure -* (optional?) `brew install llvm` -* generally reinstall your brew dependencies with native compilation - -The executable should work now. diff --git a/_versions/2.7/guides/flyway.adoc b/_versions/2.7/guides/flyway.adoc deleted file mode 100644 index 44b03457449..00000000000 --- a/_versions/2.7/guides/flyway.adoc +++ /dev/null @@ -1,223 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Flyway - -include::./attributes.adoc[] -:migrations-path: src/main/resources/db/migration -:config-file: application.properties - -https://flywaydb.org/[Flyway] is a popular database migration tool that is commonly used in JVM environments. - -Quarkus provides first class support for using Flyway as will be explained in this guide. - -== Setting up support for Flyway - -To start using Flyway with your project, you just need to: - -* add your migrations to the `{migrations-path}` folder as you usually do with Flyway -* activate the `migrate-at-start` option to migrate the schema automatically or inject the `Flyway` object and run -your migration as you normally do - -In your build file, add the following dependencies: - -* the Flyway extension -* your JDBC driver extension (`quarkus-jdbc-postgresql`, `quarkus-jdbc-h2`, `quarkus-jdbc-mariadb`, ...) -* the MariaDB/MySQL support is now in a separate dependency, MariaDB/MySQL users need to add the `flyway-mysql` dependency from now on. -* the Microsoft SQL Server support is now in a separate dependency, Microsoft SQL Server users need to add the `flyway-sqlserver` dependency from now on. - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - - io.quarkus - quarkus-flyway - - - - - org.flywaydb - flyway-sqlserver - - - - - org.flywaydb - flyway-mysql - - - - - io.quarkus - quarkus-jdbc-postgresql - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -// Flyway specific dependencies -implementation("io.quarkus:quarkus-flyway") -// Flyway SQL Server specific dependencies -implementation("org.flywaydb:flyway-sqlserver") -// Flyway MariaDB/MySQL specific dependencies -implementation("org.flywaydb:flyway-mysql") -// JDBC driver dependencies -implementation("io.quarkus:quarkus-jdbc-postgresql") ----- - -Flyway support relies on the Quarkus datasource config. -It can be customized for the default datasource as well as for every <>. -First, you need to add the datasource config to the `{config-file}` file -in order to allow Flyway to manage the schema. -Also, you can customize the Flyway behaviour by using the following properties: - -include::{generated-dir}/config/quarkus-flyway.adoc[opts=optional, leveloffset=+1] - - -The following is an example for the `{config-file}` file: - -[source,properties] ----- -# configure your datasource -quarkus.datasource.db-kind=postgresql -quarkus.datasource.username=sarah -quarkus.datasource.password=connor -quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/mydatabase - -# Flyway minimal config properties -quarkus.flyway.migrate-at-start=true - -# Flyway optional config properties -# quarkus.flyway.baseline-on-migrate=true -# quarkus.flyway.baseline-version=1.0.0 -# quarkus.flyway.baseline-description=Initial version -# quarkus.flyway.connect-retries=10 -# quarkus.flyway.schemas=TEST_SCHEMA -# quarkus.flyway.table=flyway_quarkus_history -# quarkus.flyway.locations=db/location1,db/location2 -# quarkus.flyway.sql-migration-prefix=X -# quarkus.flyway.repeatable-sql-migration-prefix=K ----- - -Add a SQL migration to the default folder following the Flyway naming conventions: `{migrations-path}/V1.0.0__Quarkus.sql` - -[source,sql] ----- -CREATE TABLE quarkus -( - id INT, - name VARCHAR(20) -); -INSERT INTO quarkus(id, name) -VALUES (1, 'QUARKED'); ----- - -Now you can start your application and Quarkus will run the Flyway's migrate method according to your config: - -[source,java] ----- -@ApplicationScoped -public class MigrationService { - // You can Inject the object if you want to use it manually - @Inject - Flyway flyway; <1> - - public void checkMigration() { - // This will print 1.0.0 - System.out.println(flyway.info().current().getVersion().toString()); - } -} ----- - -<1> Inject the Flyway object if you want to use it directly - -== Multiple datasources - -Flyway can be configured for multiple datasources. -The Flyway properties are prefixed exactly the same way as the named datasources, for example: - -[source,properties] ----- -quarkus.datasource.db-kind=h2 -quarkus.datasource.username=username-default -quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:default -quarkus.datasource.jdbc.max-size=13 - -quarkus.datasource.users.db-kind=h2 -quarkus.datasource.users.username=username1 -quarkus.datasource.users.jdbc.url=jdbc:h2:tcp://localhost/mem:users -quarkus.datasource.users.jdbc.max-size=11 - -quarkus.datasource.inventory.db-kind=h2 -quarkus.datasource.inventory.username=username2 -quarkus.datasource.inventory.jdbc.url=jdbc:h2:tcp://localhost/mem:inventory -quarkus.datasource.inventory.jdbc.max-size=12 - -# Flyway configuration for the default datasource -quarkus.flyway.schemas=DEFAULT_TEST_SCHEMA -quarkus.flyway.locations=db/default/location1,db/default/location2 -quarkus.flyway.migrate-at-start=true - -# Flyway configuration for the "users" datasource -quarkus.flyway.users.schemas=USERS_TEST_SCHEMA -quarkus.flyway.users.locations=db/users/location1,db/users/location2 -quarkus.flyway.users.migrate-at-start=true - -# Flyway configuration for the "inventory" datasource -quarkus.flyway.inventory.schemas=INVENTORY_TEST_SCHEMA -quarkus.flyway.inventory.locations=db/inventory/location1,db/inventory/location2 -quarkus.flyway.inventory.migrate-at-start=true ----- - -Notice there's an extra bit in the key. -The syntax is as follows: `quarkus.flyway.[optional name.][datasource property]`. - -NOTE: Without configuration, Flyway is set up for every datasource using the default settings. - -== Using the Flyway object - -In case you are interested in using the `Flyway` object directly, you can inject it as follows: - -NOTE: If you enabled the `quarkus.flyway.migrate-at-start` property, by the time you use the Flyway instance, -Quarkus will already have run the migrate operation - -[source,java] ----- -@ApplicationScoped -public class MigrationService { - // You can Inject the object if you want to use it manually - @Inject - Flyway flyway; <1> - - @Inject - @FlywayDataSource("inventory") <2> - Flyway flywayForInventory; - - @Inject - @Named("flyway_users") <3> - Flyway flywayForUsers; - - public void checkMigration() { - // Use the flyway instance manually - flyway.clean(); <4> - flyway.migrate(); - // This will print 1.0.0 - System.out.println(flyway.info().current().getVersion().toString()); - } -} ----- - -<1> Inject the Flyway object if you want to use it directly -<2> Inject Flyway for named datasources using the Quarkus `FlywayDataSource` qualifier -<3> Inject Flyway for named datasources -<4> Use the Flyway instance directly - -== Flyway and Hibernate ORM - -When using Flyway together with Hibernate ORM, you can use the Dev UI to generate the initial schema creation script. - -You can find more information about this feature in the xref:hibernate-orm.adoc#flyway[Hibernate ORM guide]. diff --git a/_versions/2.7/guides/funqy-amazon-lambda-http.adoc b/_versions/2.7/guides/funqy-amazon-lambda-http.adoc deleted file mode 100644 index e1932b113b9..00000000000 --- a/_versions/2.7/guides/funqy-amazon-lambda-http.adoc +++ /dev/null @@ -1,63 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Funqy HTTP Binding with Amazon Lambda  -:extension-status: preview - -include::./attributes.adoc[] - -If you want to allow HTTP clients to invoke on your Funqy functions on AWS Lambda, Quarkus allows you to expose multiple -Funqy functions through HTTP deployed as one AWS Lambda. This approach does add overhead over the -regular Funqy AWS Lambda integration and also requires you to use AWS API Gateway. - -include::./status-include.adoc[] - -Follow the xref:amazon-lambda-http.adoc[Amazon Lambda Http Guide]. It walks through using a variety of HTTP -frameworks on Amazon Lambda, including Funqy. - -WARNING: The Funqy HTTP + AWS Lambda binding is not a replacement for REST over HTTP. Because Funqy -needs to be portable across a lot of different protocols and function providers its HTTP binding -is very minimalistic and you will lose REST features like linking and the ability to leverage -HTTP features like cache-control and conditional GETs. You may want to consider using Quarkus's -JAX-RS, Spring MVC, or Vert.x Web Reactive Route xref:amazon-lambda-http.adoc[support] instead. They also work with Quarkus and AWS Lambda. - -== An additional Quickstart - -Beyond generating an AWS project that is covered in the xref:amazon-lambda-http.adoc[Amazon Lambda Http Guide], -there's also a quickstart for running Funqy HTTP on AWS Lambda. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `funqy-amazon-lambda-quickstart` {quickstarts-tree-url}/funqy-quickstarts/funqy-amazon-lambda-http-quickstart[directory]. - -== The Code - -There is nothing special about the code and more importantly nothing AWS specific. Funqy functions can be deployed to many different -environments and AWS Lambda is one of them. The Java code is actually the same exact code as the {quickstarts-tree-url}/funqy-quickstarts/funqy-http-quickstart[funqy-http-quickstart]. - -== Getting Started - -The steps to get this quickstart running are exactly the same as defined in the xref:amazon-lambda-http.adoc[Amazon Lambda HTTP Guide]. -This differences are that you are running from a quickstart and the maven dependencies are slightly different. - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-funqy-http - - - io.quarkus - quarkus-amazon-lambda-http - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-funqy-http") -implementation("io.quarkus:quarkus-amazon-lambda-http") ----- diff --git a/_versions/2.7/guides/funqy-amazon-lambda.adoc b/_versions/2.7/guides/funqy-amazon-lambda.adoc deleted file mode 100644 index 12ce63d1a76..00000000000 --- a/_versions/2.7/guides/funqy-amazon-lambda.adoc +++ /dev/null @@ -1,300 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Funqy Amazon Lambda Binding -:extension-status: preview -:devtools-no-gradle: - -include::./attributes.adoc[] - -The guide walks through quickstart code to show you how you can deploy Funqy functions to Amazon Lambda. - -Funqy functions can be deployed using the AWS Lambda Java Runtime, or you can build a native executable and use -Lambda Custom Runtime if you want a smaller memory footprint and faster cold boot startup time. - -include::./status-include.adoc[] - -== Prerequisites - -:prerequisites-time: 30 minutes -include::includes/devtools/prerequisites.adoc[] -* Read about xref:funqy.adoc[Funqy Basics]. This is a short read! -* https://aws.amazon.com[An Amazon AWS account] -* https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html[AWS CLI] -* https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html[AWS SAM CLI], for local testing - -NOTE: Funqy Amazon Lambdas build off of our xref:amazon-lambda.adoc[Quarkus Amazon Lambda support]. - -== Installing AWS bits - -Installing all the AWS bits is probably the most difficult thing about this guide. Make sure that you follow all the steps -for installing AWS CLI. - -== The Quickstart - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `funqy-amazon-lambda-quickstart` {quickstarts-tree-url}/funqy-quickstarts/funqy-amazon-lambda-quickstart[directory]. - -== The Code - -There is nothing special about the code and more importantly nothing AWS specific. Funqy functions can be deployed to many different -environments and AWS Lambda is one of them. The Java code is actually the same exact code as the {quickstarts-tree-url}/funqy-quickstarts/funqy-http-quickstart[funqy-http-quickstart]. - -[[choose]] -== Choose Your Function - -Only one Funqy function can be exported per Amazon Lambda deployment. If you have multiple functions defined -within your project, then you will need to choose the function within your Quarkus `application.properties`: - -[source,properties,subs=attributes+] ----- -quarkus.funqy.export=greet ----- - -You can see how the quickstart has done it within its own {quickstarts-tree-url}/funqy-quickstarts/funqy-amazon-lambda-quickstart/src/main/resources/application.properties[application.properties]. - -Alternatively, you can set the `QUARKUS_FUNQY_EXPORT` environment variable when you create the Amazon Lambda using the `aws` cli. - -== Deploy to AWS Lambda Java Runtime - -There are a few steps to get your Funqy function running on AWS Lambda. The quickstart maven project generates a helpful script to -create, update, delete, and invoke your functions for pure Java and native deployments. This script is generated -at build time. - -== Build and Deploy - -Build the project using Maven: - -include::includes/devtools/build.adoc[] - -This will compile and package your code. - -== Create an Execution Role - -View the https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-awscli.html[Getting Started Guide] for deploying -a lambda with AWS CLI. Specifically, make sure you have created an `Execution Role`. You will need to define -a `LAMBDA_ROLE_ARN` environment variable in your profile or console window, Alternatively, you can edit -the `manage.sh` script that is generated by the build and put the role value directly there: - -[source,bash] ----- -LAMBDA_ROLE_ARN="arn:aws:iam::1234567890:role/lambda-role" ----- - -== Extra Build Generated Files - -After you run the build, there are a few extra files generated by the `quarkus-funqy-amazon-lambda` extension. These files -are in the the build directory: `target/` for maven, `build/` for gradle. - -* `function.zip` - lambda deployment file -* `manage.sh` - wrapper around aws lambda cli calls -* `bootstrap-example.sh` - example bootstrap script for native deployments -* `sam.jvm.yaml` - (optional) for use with sam cli and local testing -* `sam.native.yaml` - (optional) for use with sam cli and native local testing - -== Create the function - -The `target/manage.sh` script is for managing your Funqy function using the AWS Lambda Java runtime. This script is provided only for -your convenience. Examine the output of the `manage.sh` script if you want to learn what aws commands are executed -to create, delete, and update your functions. - -`manage.sh` supports four operation: `create`, `delete`, `update`, and `invoke`. - -NOTE: To verify your setup, that you have the AWS CLI installed, executed aws configure for the AWS access keys, -and setup the `LAMBDA_ROLE_ARN` environment variable (as described above), please execute `manage.sh` without any parameters. -A usage statement will be printed to guide you accordingly. - -To see the `usage` statement, and validate AWS configuration: -[source,bash,subs=attributes+] ----- -sh target/manage.sh ----- - -You can `create` your function using the following command: - -[source,bash,subs=attributes+] ----- -sh target/manage.sh create ----- - -or if you do not have `LAMBDA_ROLE_ARN` already defined in this shell: - -[source,bash] ----- -LAMBDA_ROLE_ARN="arn:aws:iam::1234567890:role/lambda-role" sh target/manage.sh create ----- - -WARNING: Do not change the handler switch. This must be hardcoded to `io.quarkus.funqy.lambda.FunqyStreamHandler::handleRequest`. -This special handler is Funqy's integration point with AWS Lambda. - -If there are any problems creating the function, you must delete it with the `delete` function before re-running -the `create` command. - -[source,bash,subs=attributes+] ----- -sh target/manage.sh delete ----- - -Commands may also be stacked: -[source,bash,subs=attributes+] ----- -sh target/manage.sh delete create ----- - -== Invoke the function - -Use the `invoke` command to invoke your function. - -[source,bash,subs=attributes+] ----- -sh target/manage.sh invoke ----- - -The example function takes input passed in via the `--payload` switch which points to a json file -in the root directory of the project. - -The function can also be invoked locally with the SAM CLI like this: - -[source,bash] ----- -sam local invoke --template target/sam.jvm.yaml --event payload.json ----- - -If you are working with your native image build, simply replace the template name with the native version: - -[source,bash] ----- -sam local invoke --template target/sam.native.yaml --event payload.json ----- - -== Update the function - -You can update the Java code as you see fit. Once you've rebuilt, you can redeploy your function by executing the -`update` command. - -[source,bash,subs=attributes+] ----- -sh target/manage.sh update ----- - -== Deploy to AWS Lambda Custom (native) Runtime - -If you want a lower memory footprint and faster initialization times for your Funqy function, you can compile your Java -code to a native executable. Just make sure to rebuild your project with the `-Pnative` switch. - -For Linux hosts execute: - -include::includes/devtools/build-native.adoc[] - -NOTE: If you are building on a non-Linux system, you will need to also pass in a property instructing Quarkus to use a Docker build as Amazon -Lambda requires Linux binaries. You can do this by passing this property to your build: -`-Dnative-image.docker-build=true`. This requires you to have Docker installed locally, however. - -include::includes/devtools/build-native-container.adoc[] - -Either of these commands will compile and create a native executable. It also generates a zip file `target/function.zip`. -This zip file contains your native executable image renamed to `bootstrap`. This is a requirement of the AWS Lambda -Custom (Provided) Runtime. - -The instructions here are exactly as above with one change: you'll need to add `native` as the first parameter to the -`manage.sh` script: - -[source,bash,subs=attributes+] ----- -sh target/manage.sh native create ----- - -As above, commands can be stacked. The only requirement is that `native` be the first parameter should you wish -to work with native image builds. The script will take care of the rest of the details necessary to manage your native -image function deployments. - -Examine the output of the `manage.sh` script if you want to learn what aws commands are executed -to create, delete, and update your functions. - -One thing to note about the create command for native is that the `aws lambda create-function` -call must set a specific environment variable: - -[source,bash,subs=attributes+] ----- ---environment 'Variables={DISABLE_SIGNAL_HANDLERS=true}' ----- - -== Examine the POM - -There is nothing special about the POM other than the inclusion of the `quarkus-funqy-amazon-lambda` extension -as a dependency. The extension automatically generates everything you might need for your lambda deployment. - -== Integration Testing - -Funqy Amazon Lambda support leverages the Quarkus AWS Lambda test framework so that you can unit tests your Funqy functions. -This is true for both JVM and native modes. -This test framework provides similar functionality to the SAM CLI, without the overhead of Docker. - -If you open up {quickstarts-tree-url}/funqy-quickstarts/funqy-amazon-lambda-quickstart/src/test/java/org/acme/funqy/FunqyTest.java[FunqyTest.java] -you'll see that the test replicates the AWS execution environment. - -[source,java] ----- -package org.acme.funqy; - -import io.quarkus.amazon.lambda.test.LambdaClient; -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -@QuarkusTest -public class FunqyTest { - @Test - public void testSimpleLambdaSuccess() throws Exception { - Friend friend = new Friend("Bill"); - Greeting out = LambdaClient.invoke(Greeting.class, friend); - Assertions.assertEquals("Hello Bill", out.getMessage()); - } -} ----- - -== Testing with the SAM CLI - -The https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html[AWS SAM CLI] -allows you to run your functions locally on your laptop in a simulated Lambda environment. This requires -https://www.docker.com/products/docker-desktop[docker] to be installed. This is an optional approach should you choose -to take advantage of it. Otherwise, the Quarkus JUnit integration should be sufficient for most of your needs. - -A starter template has been generated for both JVM and native execution modes. - -Run the following SAM CLI command to locally test your function, passing the appropriate SAM `template`. -The `event` parameter takes any JSON file, in this case the sample `payload.json`. - -[source,bash] ----- -sam local invoke --template target/sam.jvm.yaml --event payload.json ----- - -The native image can also be locally tested using the `sam.native.yaml` template: - -[source,bash] ----- -sam local invoke --template target/sam.native.yaml --event payload.json ----- - -== Modifying `function.zip` - -There are times where you may have to add additional entries to the `function.zip` lambda deployment that is generated -by the build. To do this create a `zip.jvm` or `zip.native` directory within `src/main`. -Create `zip.jvm/` if you are doing a pure Java. `zip.native/` if you are doing a native deployment. - -Any you files and directories you create under your zip directory will be included within `function.zip` - -== Custom `bootstrap` script - -There are times you may want to set specific system properties or other arguments when lambda invokes -your native Funqy deployment. If you include a `bootstrap` script file within -`zip.native`, the Funqy extension will automatically rename the executable to `runner` within -`function.zip` and set the unix mode of the `bootstrap` script to executable. - -NOTE: The native executable must be referenced as `runner` if you include a custom `bootstrap` script. - -The extension generates an example script within `target/bootstrap-example.sh`. diff --git a/_versions/2.7/guides/funqy-azure-functions-http.adoc b/_versions/2.7/guides/funqy-azure-functions-http.adoc deleted file mode 100644 index 7142acfc4ae..00000000000 --- a/_versions/2.7/guides/funqy-azure-functions-http.adoc +++ /dev/null @@ -1,25 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Funqy HTTP Binding with Azure Functions -:extension-status: preview - -include::./attributes.adoc[] - -You can use xref:funqy-http.adoc[Funqy HTTP] on Azure Functions. This allows you to invoke on multiple Funqy functions -using HTTP deployed as one Azure Function. - -WARNING: The Funqy HTTP + Azure Functions binding is not a replacement for REST over HTTP. Because Funqy -needs to be portable cross a lot of different protocols and function providers its HTTP binding -is very minimalistic and you will lose REST features like linking and the ability to leverage -HTTP features like cache-control and conditional GETs. You may want to consider using Quarkus's -JAX-RS, Spring MVC, or Vert.x Web Reactive Route xref:azure-functions-http.adoc[support] instead. They also work with Quarkus and Azure Functions. - - -include::./status-include.adoc[] - -Follow the xref:azure-functions-http.adoc[Azure Functions HTTP Guide]. It walks through using a variety of HTTP -frameworks on Azure Functions. Including Funqy. - diff --git a/_versions/2.7/guides/funqy-gcp-functions-http.adoc b/_versions/2.7/guides/funqy-gcp-functions-http.adoc deleted file mode 100644 index 1c425a7c8a4..00000000000 --- a/_versions/2.7/guides/funqy-gcp-functions-http.adoc +++ /dev/null @@ -1,63 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Funqy HTTP Binding with Google Cloud Functions -:extension-status: experimental - -include::./attributes.adoc[] - -If you want to allow HTTP clients to invoke your Funqy functions on Google Cloud Functions, Quarkus allows you to expose multiple -Funqy functions through HTTP deployed as one Google Cloud Function. This approach does add overhead over the -regular Funqy Google Cloud Function integration. - -include::./status-include.adoc[] - -Follow the xref:gcp-functions-http.adoc[Google Cloud Functions Http Guide]. It walks through using a variety of HTTP -frameworks on Google Cloud Functions, including Funqy. - -WARNING: The Funqy HTTP + Google Cloud Functions binding is not a replacement for REST over HTTP. Because Funqy -needs to be portable across a lot of different protocols and function providers its HTTP binding -is very minimalistic and you will lose REST features like linking and the ability to leverage -HTTP features like cache-control and conditional GETs. You may want to consider using Quarkus's -JAX-RS, Spring MVC, or Vert.x Web Reactive Route xref:gcp-functions-http.adoc[support] instead. They also work with Quarkus and Google Cloud Functions. - -== An additional Quickstart - -Beyond generating a Google Cloud Functions project that is covered in the xref:gcp-functions-http.adoc[Google Cloud Functions HTTP Guide], -there's also a quickstart for running Funqy HTTP on Google Cloud Functions. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `funqy-google-cloud-functions-http-quickstart` {quickstarts-tree-url}/funqy-quickstarts/funqy-google-cloud-functions-http-quickstart[directory]. - -== The Code - -There is nothing special about the code and more importantly nothing Google Cloud specific. Funqy functions can be deployed to many different -environments and Google Cloud Functions is one of them. The Java code is actually the same exact code as the {quickstarts-tree-url}/funqy-quickstarts/funqy-http-quickstart[funqy-http-quickstart]. - -== Getting Started - -The steps to get this quickstart running are exactly the same as defined in the xref:gcp-functions-http.adoc[Google Cloud Functions HTTP Guide]. -This differences are that you are running from a quickstart and the Maven dependencies are slightly different. - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-funqy-http - - - io.quarkus - quarkus-google-cloud-functions-http - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-funqy-http") -implementation("io.quarkus:quarkus-google-cloud-functions-http") ----- diff --git a/_versions/2.7/guides/funqy-gcp-functions.adoc b/_versions/2.7/guides/funqy-gcp-functions.adoc deleted file mode 100644 index 3144f3a98a1..00000000000 --- a/_versions/2.7/guides/funqy-gcp-functions.adoc +++ /dev/null @@ -1,271 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Funqy Google Cloud Functions -:extension-status: experimental - -include::./attributes.adoc[] - -The guide walks through quickstart code to show you how you can deploy Funqy functions to Google Cloud Functions. - -include::./status-include.adoc[] - -== Prerequisites - -:prerequisites-time: 30 minutes -:prerequisites-no-graalvm: -include::includes/devtools/prerequisites.adoc[] -* https://cloud.google.com/[A Google Cloud Account]. Free accounts work. -* https://cloud.google.com/sdk[Cloud SDK CLI Installed] - -== Login to Google Cloud - -Login to Google Cloud is necessary for deploying the application and it can be done as follows: - -[source,bash,subs=attributes+] ----- -gcloud auth login ----- - -== The Quickstart - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `funqy-google-cloud-functions-quickstart` {quickstarts-tree-url}/funqy-quickstarts/funqy-google-cloud-functions-quickstart[directory]. - -== Creating the Maven Deployment Project - -Create an application with the `quarkus-funqy-google-cloud-functions` extension. -You can use the following Maven command to create it: - -:create-app-artifact-id: funqy-google-cloud-functions -:create-app-extensions: funqy-google-cloud-functions -include::includes/devtools/create-app.adoc[] - -== The Code - -There is nothing special about the code and more importantly nothing Google Cloud specific. Funqy functions can be deployed to many different -environments and Google Cloud Functions is one of them. - -[[choose]] -== Choose Your Function - -Only one Funqy function can be exported per Google Cloud Functions deployment. If you only have one method -annotated with `@Funq` in your project, then there is no worries. If you have multiple functions defined -within your project, then you will need to choose the function within your Quarkus `application.properties`: - -[source,properties,subs=attributes+] ----- -quarkus.funqy.export=greet ----- - -Alternatively, you can set the `QUARKUS_FUNQY_EXPORT` environment variable when you create the Google Cloud Function using the `gcloud` cli. - -== Build and Deploy - -Build the project: - -include::includes/devtools/build.adoc[] - -This will compile and package your code. - - -== Create the function - -In this example, we will create two background functions. Background functions allow to -react to Google Cloud events like PubSub messages, Cloud Storage events, Firestore events, ... - -[source,java] ----- -import javax.inject.Inject; - -import io.quarkus.funqy.Funq; -import io.quarkus.funqy.gcp.functions.event.PubsubMessage; -import io.quarkus.funqy.gcp.functions.event.StorageEvent; - -public class GreetingFunctions { - - @Inject GreetingService service; // <1> - - @Funq // <2> - public void helloPubSubWorld(PubsubMessage pubSubEvent) { - String message = service.hello(pubSubEvent.data); - System.out.println(pubSubEvent.messageId + " - " + message); - } - - @Funq // <3> - public void helloGCSWorld(StorageEvent storageEvent) { - String message = service.hello("world"); - System.out.println(storageEvent.name + " - " + message); - } - -} ----- - -NOTE: Function return type can also be Mutiny reactive types. - -1. Injection works inside your function. -2. This is a background function that takes as parameter a `io.quarkus.funqy.gcp.functions.event.PubsubMessage`, -this is a convenient class to deserialize a PubSub message. -3. This is a background function that takes as parameter a `io.quarkus.funqy.gcp.functions.event.StorageEvent`, -this is a convenient class to deserialize a Google Storage event. - -NOTE: we provide convenience class to deserialize common Google Cloud event inside the `io.quarkus.funqy.gcp.functions.event` package. -They are not mandatory to use, you can use any object you want. - -As our project contains multiple function, we need to specify which function needs to be deployed via the following property inside our `application.properties` : - -[source,property] ----- -quarkus.funqy.export=helloPubSubWorld ----- - -== Build and Deploy to Google Cloud - -To build your application, you can package your application via `mvn clean package`. -You will have a single JAR inside the `target/deployment` repository that contains your classes and all your dependencies in it. - -Then you will be able to use `gcloud` to deploy your function to Google Cloud, the `gcloud` command will be different depending from which event you want to be triggered. - -[WARNING] -==== -The first time you launch the `gcloud functions deploy`, you can have the following error message: - -[source] ----- -ERROR: (gcloud.functions.deploy) OperationError: code=7, message=Build Failed: Cloud Build has not been used in project before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudbuild.googleapis.com/overview?project= then retry. ----- -This means that Cloud Build is not activated yet. To overcome this error, open the URL shown in the error, follow the instructions and then wait a few minutes before retrying the command. -==== - -=== Background Functions - PubSub - -Use this command to deploy to Google Cloud Functions: - -[source,bash] ----- -gcloud functions deploy quarkus-example-funky-pubsub \ - --entry-point=io.quarkus.funqy.gcp.functions.FunqyBackgroundFunction \ - --runtime=java11 --trigger-resource hello_topic --trigger-event google.pubsub.topic.publish \ - --source=target/deployment ----- - -The entry point always needs to be `io.quarkus.funqy.gcp.functions.FunqyBackgroundFunction` as it will be this class -that will bootstrap Quarkus. - -The `--trigger-resource` option defines the name of the PubSub topic, and the `--trigger-event google.pubsub.topic.publish` option -define that this function will be triggered by all message publication inside the topic. - -To trigger an event to this function, you can use the `gcloud functions call` command: - -[source,bash] ----- -gcloud functions call quarkus-example-funky-pubsub --data '{"data":"Pub/Sub"}' ----- - -The `--data '{"data":"Hello, Pub/Sub"}'` option allow to specify the message to be send to PubSub. - -=== Background Functions - Cloud Storage - -Before deploying your function, you need to create a bucket. - -[source,bash] ----- -gsutil mb gs://quarkus-hello ----- - -Then, use this command to deploy to Google Cloud Functions: - -[source,bash] ----- -gcloud functions deploy quarkus-example-funky-storage \ - --entry-point=io.quarkus.funqy.gcp.functions.FunqyBackgroundFunction \ - --runtime=java11 --trigger-resource quarkus-hello --trigger-event google.storage.object.finalize \ - --source=target/deployment ----- - -The entry point always needs to be `io.quarkus.funqy.gcp.functions.FunqyBackgroundFunction` as it will be this class -that will bootstrap Quarkus. - -The `--trigger-resource` option defines the name of the Cloud Storage bucket, and the `--trigger-event google.storage.object.finalize` option -define that this function will be triggered by all new file inside this bucket. - -To trigger an event to this function, you can use the `gcloud functions call` command: - -[source,bash] ----- -gcloud functions call quarkus-example-funky-storage --data '{"name":"test.txt"}' ----- - -The `--data '{"name":"test.txt"}'` option allow to specify a fake file name, a fake Cloud Storage event will be created for this name. - -You can also simply add a file to Cloud Storage using the command line of the web console. - -== Testing locally - -The easiest way to locally test your function is using the Cloud Function invoker JAR. - -You can download it via Maven using the following command: - -[source,bash] ----- -mvn dependency:copy \ - -Dartifact='com.google.cloud.functions.invoker:java-function-invoker:1.0.2' \ - -DoutputDirectory=. ----- - -Before using the invoker, you first need to build your function via: - -include::includes/devtools/build.adoc[] - -Then you can use it to launch your function locally, again, the command depends on the type of function and the type of events. - -=== Background Functions - PubSub - -For background functions, you launch the invoker with a target class of `io.quarkus.funqy.gcp.functions.FunqyBackgroundFunction`. - -[source,bash] ----- -java -jar java-function-invoker-1.0.2.jar \ - --classpath target/funqy-google-cloud-functions-1.0.0-SNAPSHOT-runner.jar \ - --target io.quarkus.funqy.gcp.functions.FunqyBackgroundFunction ----- - -IMPORTANT: The `--classpath` parameter needs to be set to the previously packaged JAR that contains your function class and all Quarkus related classes. - -Then you can call your background function via an HTTP call with a payload containing the event: - -[source,bash] ----- -curl localhost:8080 -d '{"data":{"data":"world"}}' ----- - -This will call your PubSub background function with a PubSubMessage `{"data":"hello"}`. - -=== Background Functions - Cloud Storage - -For background functions, you launch the invoker with a target class of `io.quarkus.funqy.gcp.functions.FunqyBackgroundFunction`. - -[source,bash] ----- -java -jar java-function-invoker-1.0.2.jar \ - --classpath target/funqy-google-cloud-functions-1.0.0-SNAPSHOT-runner.jar \ - --target io.quarkus.funqy.gcp.functions.FunqyBackgroundFunction ----- - -IMPORTANT: The `--classpath` parameter needs to be set to the previously packaged JAR that contains your function class and all Quarkus related classes. - -Then you can call your background function via an HTTP call with a payload containing the event: - -[source,bash] ----- -curl localhost:8080 -d '{"data":{"name":"text"}}' ----- - -This will call your PubSub background function with a Cloud Storage event `{"name":"file.txt"}`, so an event on the `file.txt` file. - -== What's next? - -If you are looking for JAX-RS, Servlet or Vert.x support for Google Cloud Functions, we have it thanks to our xref:gcp-functions-http.adoc[Google Cloud Functions HTTP binding]. diff --git a/_versions/2.7/guides/funqy-http.adoc b/_versions/2.7/guides/funqy-http.adoc deleted file mode 100644 index e7ab5bd2ffa..00000000000 --- a/_versions/2.7/guides/funqy-http.adoc +++ /dev/null @@ -1,300 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Funqy HTTP Binding (Standalone) - -include::./attributes.adoc[] -:extension-status: preview - -The guide walks through quickstart code to show you how you can deploy Funqy as a -standalone service and invoke on Funqy functions using HTTP. - -WARNING: The Funqy HTTP binding is not a replacement for REST over HTTP. Because Funqy -needs to be portable across a lot of different protocols and function providers its HTTP binding -is very minimalistic and you will lose REST features like linking and the ability to leverage -HTTP features like cache-control and conditional GETs. You may want to consider using Quarkus's -JAX-RS, Spring MVC, or Vert.x Web Reactive Routes support instead, although Funqy will have less overhead -than these alternatives (except Vert.x which is still super fast). - -== Prerequisites - -:prerequisites-no-graalvm: -include::includes/devtools/prerequisites.adoc[] -* Read about xref:funqy.adoc[Funqy Basics]. This is a short read! - -== The Quickstart - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `funqy-http-quickstart` {quickstarts-tree-url}/funqy-quickstarts/funqy-http-quickstart[directory]. - -== The Code - -If you look at the Java code, you'll see that there is no HTTP specific API. Its just simple Java methods -annotated with `@Funq`. Simple, easy, straightforward. - -== Maven Dependencies - -To write Funqy HTTP functions, simply include the `quarkus-funqy-http` dependency into your Quarkus `pom.xml` file: - -[source, xml] ----- - - io.quarkus - quarkus-funqy-http - ----- - -== Build Project - -[source,bash] ----- -mvn clean quarkus:dev ----- - -This starts your functions in Quarkus dev mode. - -== Execute Funqy HTTP functions - -The URL path to execute a function is the function name. For example if your function name is `foo` then the URL path -to execute the function would be `/foo`. - -The HTTP POST or GET methods can be used to invoke on a function. The return value of the function -is marshalled to JSON using the Jackson JSON library. Jackson annotations can be used. If your function -has an input parameter, a POST invocation must use JSON as the input type. Jackson is also used here for unmarshalling. - -You can invoke the `hello` function defined in {quickstarts-tree-url}/funqy-quickstarts/funqy-http-quickstart/src/main/java/org/acme/funqy/PrimitiveFunctions.java[PrimitiveFunctions.java] -by pointing your browser to http://localhost:8080/hello - -Invoking the other functions in the quickstart requires an HTTP POST. -To execute the `greet` function defined in {quickstarts-tree-url}/funqy-quickstarts/funqy-http-quickstart/src/main/java/org/acme/funqy/GreetingFunction.java[GreetingFunction.java] -invoke this curl script. - -[source,bash] ----- -curl "http://localhost:8080/greet" \ --X POST \ --H "Content-Type: application/json" \ --d '{"name":"Bill"}' ----- - -Primitive types can also be passed as input using the standard JSON mapping for them. -To execute the `toLowerCase` function defined in {quickstarts-tree-url}/funqy-quickstarts/funqy-http-quickstart/src/main/java/org/acme/funqy/PrimitiveFunctions.java[PrimitiveFunctions.java] -invoke this curl script: - -[source,bash] ----- -curl "http://localhost:8080/toLowerCase" \ --X POST \ --H "Content-Type: application/json" \ --d '"HELLO WORLD"' ----- - -To execute the `double` function defined in {quickstarts-tree-url}/funqy-quickstarts/funqy-http-quickstart/src/main/java/org/acme/funqy/PrimitiveFunctions.java[PrimitiveFunctions.java] -invoke this curl script: - -[source,bash] ----- -curl "http://localhost:8080/double" \ --X POST \ --H "Content-Type: application/json" \ --d '2' ----- - -== GET Query Parameter Mapping - -For GET requests, the Funqy HTTP Binding also has a query parameter mapping for function input parameters. -Only bean style classes and `java.util.Map` can be used for your input parameter. For bean style -classes, query parameter names are mapped to properties on the bean class. Here's an example of a simple -`Map`: - -[source, java] ----- -@Funq -public String hello(Map map) { -... -} ----- - -Key values must be a primitive type (except char) or `String`. Values can be primitives (except char), `String`, `OffsetDateTime` or a complex -bean style class. For the above example, here's the corresponding curl request: - -[source,bash] ----- -curl "http://localhost:8080/a=1&b=2" ----- - -The `map` input parameter of the `hello` function would have the key value pairs: `a`->1, `b`->2. - -Bean style classes can also be use as the input parameter type. Here's an example: - -[source, java] ----- -public class Person { - String first; - String last; - - public String getFirst() { return first; } - public void setFirst(String first) { this.first = first; } - public String getLast() { return last; } - public void setLast(String last) { this.last = last; } -} - -public class MyFunctions { - @Funq - public String greet(Person p) { - return "Hello " + p.getFirst() + " " + p.getLast(); - } -} ----- - -Property values can be any primitive type except `char`. It can also be `String`, and `OffsetDateTime`. -`OffsetDateTime` query param values must be in ISO-8601 format. - -You can invoke on this using an HTTP GET and query parameters: - -[source,bash] ----- -curl "http://localhost:8080/greet?first=Bill&last=Burke" ----- - -In the above request, the query parameter names are mapped to corresponding properties in the input class. - -The input class can also have nested bean classes. Expanding on the previous example: - -[source, java] ----- -public class Family { - private Person dad; - private Person mom; - - public Person getDad() { return dad; } - public void setDad(Person dad) { this.dad = dad; } - public Person getMom() { return mom; } - public void setMom(Person mom) { this.mom = mom; } -} - -public class MyFunctions { - @Funq - public String greet(Family family) { - ... - } -} - ----- - -In this case, query parameters for nested values use the `.` notation. For example: - -[source,bash] ----- -curl "http://localhost:8080/greet?dad.first=John&dad.last=Smith&mom.first=Martha&mom.last=Smith" ----- - -`java.util.List` and `Set` are also supported as property values. For example: - -[source, java] ----- -public class Family { - ... - - List pets; -} - -public class MyFunctions { - @Funq - public String greet(Family family) { - ... - } -} - ----- - -To invoke a GET request, just list the `pets` query parameter multiple times. - -[source,bash] ----- -curl "http://localhost:8080/greet?pets=itchy&pets=scratchy" ----- - -For more complex types, `List` and `Set` members must have an identifier in the -query parameter. For example: - -[source, java] ----- -public class Family { - ... - - List kids; -} - -public class MyFunctions { - @Funq - public String greet(Family family) { - ... - } -} - ----- - -Each `kids` query parameter must identify the kid they are referencing so that -the runtime can figure out which -property values go to which members in the list. Here's the curl request: - -[source,bash] ----- -curl "http://localhost:8080/greet?kids.1.first=Buffy&kids.2.first=Charlie" ----- - -The above URL uses the value `1` and `2` to identity the target member of the list, but any unique -string can be used. - -A property can also be a `java.util.Map`. The key of the map can be any primitive type and `String`. -For example: - -[source, java] ----- -public class Family { - ... - - Map address; -} - -public class MyFunctions { - @Funq - public String greet(Family family) { - ... - } -} ----- - -The corresponding call would look like this: - -[source,bash] ----- -curl "http://localhost:8080/greet?address.state=MA&address.city=Boston" ----- - -If your `Map` value is a complex type, then just continue the notation by adding the property to set at the end. - -[source, java] ----- -public class Family { - ... - - Map addresses; -} - -public class MyFunctions { - @Funq - public String greet(Family family) { - ... - } -} ----- - -[source,bash] ----- -curl "http://localhost:8080/greet?addresses.home.state=MA&addresses.home.city=Boston" ----- diff --git a/_versions/2.7/guides/funqy-knative-events.adoc b/_versions/2.7/guides/funqy-knative-events.adoc deleted file mode 100644 index 1476aec3b1a..00000000000 --- a/_versions/2.7/guides/funqy-knative-events.adoc +++ /dev/null @@ -1,380 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Funqy Knative Events Binding - -include::./attributes.adoc[] -:extension-status: preview -:devtools-no-gradle: - -Quarkus Funqy link:https://knative.dev/docs/eventing[Knative Events] builds off of the xref:funqy-http.adoc[Funqy HTTP] extension to allow you to -route and process Knative Events within a Funqy function. - -The guide walks through quickstart code to show you how you can deploy and invoke on Funqy functions -with Knative Events. - -== Prerequisites - -:prerequisites-time: 1 hour -:prerequisites-no-graalvm: -include::includes/devtools/prerequisites.adoc[] -* Read about xref:funqy.adoc[Funqy Basics]. This is a short read! -* Have gone through the link:https://redhat-developer-demos.github.io/knative-tutorial/knative-tutorial/index.html[Knative Tutorial], specifically link:https://redhat-developer-demos.github.io/knative-tutorial/knative-tutorial/eventing/eventing-trigger-broker.html[Brokers and Triggers] - -== Setting up Knative - -Setting up Knative locally in a Minikube environment is beyond the scope of this guide. It is advised -to follow https://redhat-developer-demos.github.io/knative-tutorial/knative-tutorial/index.html[this] Knative Tutorial -put together by Red Hat. It walks through how to set up Knative on Minikube or OpenShift in a local environment. - -NOTE: Specifically you should run the link:https://redhat-developer-demos.github.io/knative-tutorial/knative-tutorial/eventing/eventing-trigger-broker.html[Brokers and Triggers] -tutorial as this guide requires that you can invoke on a Broker to trigger the quickstart code. - -== Read about Cloud Events - -The Cloud Event link:https://cloudevents.io/[specification] is a good read to give you an even greater understanding of Knative Events. - -== The Quickstart - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `funqy-knative-events-quickstart` {quickstarts-tree-url}/funqy-quickstarts/funqy-knative-events-quickstart[directory]. - -== The Quickstart Flow - -The quickstart works by manually sending an HTTP request containing a Cloud Event to the Knative Broker using `curl`. -The Knative Broker receives the request and triggers the startup of the Funqy container built by the quickstart. -The event triggers the invocation of a chain of Funqy functions. The output of one function triggers the -invocation of another Funqy function. - -== Funqy and Cloud Events - -When living within a Knative Events environment, Funqy functions are triggered by a specific -Cloud Event type. You can have multiple Funqy functions within a single application/deployment, -but they must be triggered by a specific Cloud Event Type. The exception to this rule is if there is -only one Funqy function in the application. In that case, the event is pushed to that function irregardless -of the Cloud Event type. - -Currently, Funqy can only consume JSON-based data. It supports both Binary and Structured mode of execution, -but the data component of the Cloud Event message must be JSON. This JSON must also be marshallable to and from the -Java parameters and return types of your functions. - -== The Code - -Let's start looking at our quickstart code so that you can understand how Knative Events map to Funqy. -Open up {quickstarts-tree-url}/funqy-quickstarts/funqy-knative-events-quickstart/src/main/java/org/acme/funqy/SimpleFunctionChain.java[SimpleFunctionChain.java] - -The first function we'll look at is `defaultChain`. - -[source, java] ----- -import io.quarkus.funqy.Funq; - -public class SimpleFunctionChain { - @Funq - public String defaultChain(String input) { - log.info("*** defaultChain ***"); - return input + "::" + "defaultChain"; - } ----- - -As is, a Funqy function has a default Cloud Event mapping. By default, the Cloud Event type must match -the function name for the function to trigger. If the function returns output, -the response is converted into a Cloud Event and returned to the Broker to be routed to other triggers. -The default Cloud Event type for this response is the function name + `.output`. The default Cloud Event source is the function name. - -So, for the `defaultChain` function, the Cloud Event type that triggers the function is `defaultChain`. It generates -a response that triggers a new Cloud Event whose type is `defaultChain.output` and the event source is `defaultChain`. - -While the default mapping is simple, it might not always be feasible. You can change this default mapping -through configuration. Let's look at the next function: - -[source, java] ----- -import io.quarkus.funqy.Funq; - -public class SimpleFunctionChain { - @Funq - public String configChain(String input) { - log.info("*** configChain ***"); - return input + "::" + "configChain"; - } ----- - -The `configChain` function has its Cloud Event mapping changed by configuration within {quickstarts-tree-url}/funqy-quickstarts/funqy-knative-events-quickstart/src/main/resources/application.properties[application.properties]. - - -[source,properties,subs=attributes+] ----- -quarkus.funqy.knative-events.mapping.configChain.trigger=defaultChain.output -quarkus.funqy.knative-events.mapping.configChain.response-type=annotated -quarkus.funqy.knative-events.mapping.configChain.response-source=configChain ----- - -In this case, the configuration maps the incoming Cloud Event type `defaultChain.output` to the `configChain` function. -The `configChain` function maps its response to the `annotated` Cloud Event type, and the Cloud Event source `configChain`. - -* `quarkus.funqy.knative-events.mapping.{function name}.trigger` sets the Cloud Event type that triggers a specific function. It is possible to use the special value `*` as a catch-all value. The function will in this case be used for all event types. -* `quarkus.funqy.knative-events.mapping.{function name}.response-type` sets the Cloud Event type of the response -* `quarkus.funqy.knative-events.mapping.{function name}.resource-source` sets the Cloud Event source of the response - -The Funqy Knative Events extension also has annotations to do this Cloud Event mapping to your functions. Take a look at the -`annotatedChain` method - -[source, java] ----- -import io.quarkus.funqy.Funq; -import io.quarkus.funqy.knative.events.CloudEventMapping; - -public class SimpleFunctionChain { - @Funq - @CloudEventMapping(trigger = "annotated", responseSource = "annotated", responseType = "lastChainLink") - public String annotatedChain(String input) { - log.info("*** annotatedChain ***"); - return input + "::" + "annotatedChain"; - } ----- - -If you use the `@CloudEventMapping` annotation on your function you can map the Cloud Event type trigger -and the Cloud Event response. In this example the `annotatedChain` function will be triggered -by the `annotated` Cloud Event type and the response will be mapped to a `lastChainLink` type -and `annotated` Cloud Event source. - -So, if look at all the functions defined within `SimpleFunctionChain` you'll notice that one function triggers the next. -The last function that is triggered is `lastChainLink`. - -[source, java] ----- -import io.quarkus.funqy.Context; -import io.quarkus.funqy.Funq; - -public class SimpleFunctionChain { - @Funq - public void lastChainLink(String input, @Context CloudEvent event) { - log.info("*** lastChainLink ***"); - log.info(input + "::" + "lastChainLink"); - } -} ----- - -There are two things to notice about this function. One, it has no output. Your functions are not -required to return output. Second, there is an additional `event` parameter to the function. - -If you want to know additional information about the incoming Cloud Event, you can inject the -`io.quarkus.funqy.knative.events.CloudEvent` interface using the Funqy `@Context` annotation. The `CloudEvent` interface exposes information -about the triggering event. - -[source, java] ----- -public interface CloudEvent { - String id(); - String specVersion(); - String source(); - String subject(); - OffsetDateTime time(); -} ----- - -== Maven - -If you look at the {quickstarts-tree-url}/funqy-quickstarts/funqy-knative-events-quickstart/pom.xml[POM], -you'll see that it is a typical Quarkus POM that pulls in one Funqy dependency: - -[source,xml] ----- - - io.quarkus - quarkus-funqy-knative-events - ----- - -== Dev mode and Testing - -Funqy Knative Events support dev mode and unit testing using RestAssured. You can invoke on Funqy Knative Events functions -using the same invocation model as -xref:funqy-http.adoc[Funqy HTTP] using normal HTTP requests, or Cloud Event Binary mode, or Structured Mode. All -invocation modes are supported at the same time. - -So, if you open up the unit test code in {quickstarts-tree-url}/funqy-quickstarts/funqy-knative-events-quickstart/src/test/java/org/acme/funqy/FunqyTest.java[FunqyTest.java] -you'll see that its simply using RestAssured to make HTTP invocations to test the functions. - -Funqy also works with Quarkus Dev mode! - -== Build the Project - -First build the Java artifacts: - -include::includes/devtools/build.adoc[] - -Next, a docker image is required by Knative, so you'll need to build that next: - -[source,bash] ----- -docker build -f src/main/docker/Dockerfile.jvm -t yourAccountName/funqy-knative-events-quickstart . ----- - -Make sure to replace `yourAccountName` with your docker or quay account name when you run `docker build`. The -Dockerfile is a standard Quarkus dockerfile. No special Knative magic. - -Push your image to docker hub or quay - -[source,bash] ----- -docker push yourAccountName/funqy-knative-events-quickstart ----- - -Again, make sure to replace `yourAccountName` with your docker or quay account name when you run `docker push`. - -== Deploy to Kubernetes/OpenShift - -The first step is to set up the broker in our namespace. -Following is an example command from the the Knative cli. - -[source, yaml] ----- -kn broker create default \ - --namespace knativetutorial ----- - -The broker we have created is called `default`, this broker will receive the cloud events. -The broker is also referenced in the function YAML files. - -The second step is to define a Kubernetes/OpenShift service to point to the Docker image you created and pushed -during build. Take a look at {quickstarts-tree-url}/funqy-quickstarts/funqy-knative-events-quickstart/src/main/k8s/funqy-service.yaml[funqy-service.yaml] - -[source, yaml] ----- -apiVersion: serving.knative.dev/v1 -kind: Service -metadata: - name: funqy-knative-events-quickstart -spec: - template: - metadata: - name: funqy-knative-events-quickstart-v1 - annotations: - autoscaling.knative.dev/target: "1" - spec: - containers: - - image: docker.io/yourAccountName/funqy-knative-events-quickstart ----- - -This is a standard Kubernetes service definition YAML file. - -NOTE: Make sure you change the image URL to point to the image you built and pushed earlier! - -For our quickstart, one Kubernetes service will contain all functions. There's no reason you couldn't break up this -quickstart into multiple different projects and deploy a service for each function. For simplicity, and to show that you -don't have to have a deployment per function, the quickstart combines everything into one project, image, and service. - -Deploy the service: - -[source,bash] ----- -kubectl apply -n knativetutorial -f src/main/k8s/funqy-service.yaml ----- - -The next step is to deploy Knative Event triggers for each of the event types. As noted in the code section, each -Funqy function is mapped to a specific Cloud Event type. You must create Knative Event triggers that map a Cloud Event -and route it to a specific Kubernetes service. We have 4 different triggers. - - -{quickstarts-tree-url}/funqy-quickstarts/funqy-knative-events-quickstart/src/main/k8s/defaultChain-trigger.yaml[defaultChain-trigger.yaml] -[source, yaml] ----- -apiVersion: eventing.knative.dev/v1alpha1 -kind: Trigger -metadata: - name: defaultchain -spec: - broker: default - filter: - attributes: - type: defaultChain - subscriber: - ref: - apiVersion: serving.knative.dev/v1 - kind: Service - name: funqy-knative-events-quickstart ----- - -The `spec:filter:attributes:type` maps a Cloud Event type to the Kubernetes service defined in `spec:subscriber:ref`. -When a Cloud Event is pushed to the Broker, it will trigger the spin up of the service mapped to that event. - -There's a trigger YAML file for each of our 4 Funqy functions. Deploy them all: - -[source,bash] ----- -kubectl apply -n knativetutorial -f src/main/k8s/defaultChain-trigger.yaml -kubectl apply -n knativetutorial -f src/main/k8s/configChain-trigger.yaml -kubectl apply -n knativetutorial -f src/main/k8s/annotatedChain-trigger.yaml -kubectl apply -n knativetutorial -f src/main/k8s/lastChainLink-trigger.yaml ----- - -== Run the demo - -You'll need two different terminal windows. One to do a curl request to the Broker, the other to watch the pod log -files so you can see the messages flowing through the Funqy function event chain. - -Make sure you have the `stern` tool installed. See the Knative Tutorial setup for information on that. Run stern -to look for logs outputted by our Funqy deployment - -[source,bash] ----- -stern funq user-container ----- - -Open a separate terminal. You'll first need to learn the URL of the broker. Execute this command to find it. - -[source,bash] ----- -kubectl get broker default -o jsonpath='{.status.address.url}' ----- - -This will provide you a URL similar to e.g.: `http://broker-ingress.knative-eventing.svc.cluster.local/knativetutorial/default`. Remember this URL. - -Next thing we need to do is ssh into our Kubernetes cluster so that we can send a curl request to our broker. -Following command will create a simple OS pod so we can curl into our functions. - -[source,bash] ----- -kubectl -n knativetutorial apply -f src/main/k8s/curler.yaml ----- - -You might need to wait a couple of seconds until the curler pod comes up. Run the following to get bash access to the curler pod: - -[source,bash] ----- -kubectl -n knativetutorial exec -it curler -- /bin/bash ----- - - -You will now be in a shell within the Kubernetes cluster. Within the shell, execute this curl command , the broker address is an example and might differ based on your project or broker name. - -[source,bash] ----- -curl -v "http://default-broker.knativetutorial.svc.cluster.local" \ --X POST \ --H "Ce-Id: 1234" \ --H "Ce-Specversion: 1.0" \ --H "Ce-Type: defaultChain" \ --H "Ce-Source: curl" \ --H "Content-Type: application/json" \ --d '"Start"' ----- - -This posts a Knative Event to the broker, which will trigger the `defaultChain` function. As discussed earlier, the output -of `defaultChain` triggers an event that is posted to `configChain` which triggers an event posted to `annotatedChain` then -finally to the `lastChainLink` function. You can see this flow in your `stern` window. Something like this should -be outputted. - -[source, subs=attributes+] ----- -funqy-knative-events-quickstart-v1-deployment-59bb88bcf4-9jwdx user-container 2020-05-12 13:44:02,256 INFO [org.acm.fun.SimpleFunctionChain] (executor-thread-1) *** defaultChain *** -funqy-knative-events-quickstart-v1-deployment-59bb88bcf4-9jwdx user-container 2020-05-12 13:44:02,365 INFO [org.acm.fun.SimpleFunctionChain] (executor-thread-2) *** configChain *** -funqy-knative-events-quickstart-v1-deployment-59bb88bcf4-9jwdx user-container 2020-05-12 13:44:02,394 INFO [org.acm.fun.SimpleFunctionChain] (executor-thread-1) *** annotatedChain *** -funqy-knative-events-quickstart-v1-deployment-59bb88bcf4-9jwdx user-container 2020-05-12 13:44:02,466 INFO [org.acm.fun.SimpleFunctionChain] (executor-thread-2) *** lastChainLink *** -funqy-knative-events-quickstart-v1-deployment-59bb88bcf4-9jwdx user-container 2020-05-12 13:44:02,467 INFO [org.acm.fun.SimpleFunctionChain] (executor-thread-2) Start::defaultChain::configChain::annotatedChain::lastChainLink ----- diff --git a/_versions/2.7/guides/funqy.adoc b/_versions/2.7/guides/funqy.adoc deleted file mode 100644 index 03373bdec8d..00000000000 --- a/_versions/2.7/guides/funqy.adoc +++ /dev/null @@ -1,189 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Funqy - -include::./attributes.adoc[] -:extension-status: preview - -Quarkus Funqy is part of Quarkus's serverless strategy and aims to provide a portable Java API to write functions -deployable to various FaaS environments like AWS Lambda, Azure Functions, Google Cloud Functions, Knative, and Knative Events (Cloud Events). -It is also usable as a standalone service. - -Because Funqy is an abstraction that spans multiple different cloud/function providers -and protocols it has to be a very simple API and thus, might not have all the features you are used -to in other remoting abstractions. A nice side effect though is that Funqy is as optimized and -as small as possible. This means that because Funqy sacrifices a little bit on flexibility, you'll -get a framework that has little to no overhead. - -== Funqy Basics - -The Funqy API is simple. Annotate a method with `@Funq`. This method may only have one optional input parameter -and may or may not return a response. - -[source, java] ----- -import io.quarkus.funqy.Funq; - -public class GreetingFunction { - @Funq - public String greet(String name) { - return "Hello " + name; - } -} ----- - -Java classes can also be used as input and output and must follow the Java bean convention and have -a default constructor. The Java type that is declared as the parameter or return type is the type that will be -expected by the Funqy runtime. Funqy does type introspection at build time to speed up boot time, so any derived types -will not be noticed by the Funqy marshalling layer at runtime. - -Here's an example of using a POJO as input and output types. - -[source, java] ----- -public class GreetingFunction { - public static class Friend { - String name; - - public String getName() { return name; } - public void setName(String name) { this.name = name; } - } - - public static class Greeting { - String msg; - - public Greeting() {} - public Greeting(String msg) { this.msg = msg } - - public String getMessage() { return msg; } - public void setMessage(String msg) { this.msg = msg; } - } - - @Funq - public Greeting greet(Friend friend) { - return new Greeting("Hello " + friend.getName()); - } -} ----- - -== Async Reactive Types - -Funqy supports the https://smallrye.io/smallrye-mutiny[Smallrye Mutiny] `Uni` reactive type as a return type. The only requirement is that -the `Uni` must fill out the generic type. - -[source, java] ----- -import io.quarkus.funqy.Funq; -import io.smallrye.mutiny.Uni; - -public class GreetingFunction { - - @Funq - public Uni reactiveGreeting(String name) { - ... - } -} ----- - -== Function Names - -The function name defaults to the method name and is case sensitive. If you want your function referenced by a different name, -parameterize the `@Funq` annotation as follows: - -[source, java] ----- -import io.quarkus.funqy.Funq; - -public class GreetingFunction { - - @Funq("HelloWorld") - public String greet(String name) { - return "Hello " + name; - } -} ----- - -== Funqy DI - -Each Funqy Java class is a Quarkus Arc component and supports dependency injection through -CDI or Spring DI. Spring DI requires including the `quarkus-spring-di` dependency in your build. - -The default object lifecycle for a Funqy class is `@Dependent`. - -[source, java] ----- -import io.quarkus.funqy.Funq; - -import javax.inject.Inject; -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class GreetingFunction { - - @Inject - GreetingService service; - - @Funq - public Greeting greet(Friend friend) { - Greeting greeting = new Greeting(); - greeting.setMessage(service.greet(friend.getName())); - return greeting; - } -} ----- - -== Context injection - -The Funqy API will usually not allow you to inject or use abstractions that -are specific to a protocol (i.e. HTTP) or function API (i.e. AWS Lambda). There are -exceptions to the rule though and you may be able to inject -contextual information that is specific to the environment you are deploying in. - -NOTE: We do not recommend injecting contextual information specific to a runtime. Keep your functions portable. - -Contextual information is injected via the `@Context` annotation which can be used on a function parameter -or a class field. A good example is the `io.quarkus.funqy.knative.events.CloudEvent` interface that comes with our Funqy -Knative Cloud Events integration: - -[source, java] ----- -import io.quarkus.funqy.Funq; -import io.quarkus.funqy.Context; -import io.quarkus.funqy.knative.events.CloudEvent; - -public class GreetingFunction { - - @Funq - public Greeting greet(Friend friend, @Context CloudEvent eventInfo) { - System.out.println("Received greeting request from: " eventInfo.getSource()); - - Greeting greeting = new Greeting(); - greeting.setMessage("Hello " + friend.getName())); - return greeting; - } -} ----- - -== Should I Use Funqy? - -REST over HTTP has become a very common way to write services over the past decade. While Funqy -has an HTTP binding it is not a replacement for REST. Because Funqy has to work across a variety -of protocols and function cloud platforms, it is very minimalistic and constrained. For example, if you -use Funqy you lose the ability to link (think URIs) to the data your functions spit out. You also -lose the ability to leverage cool HTTP features like `cache-control` and conditional GETs. Many -developers will be ok with that as many won't be using these REST/HTTP features or styles. You'll -have to make the decision on what camp you are in. Quarkus does support REST integration (through JAX-RS, - Spring MVC, Vert.x Web, and Servlet) with -various cloud/function providers, but there are some disadvantages of using that approach as well. For example, -if you want to do xref:amazon-lambda-http.adoc[HTTP with AWS Lambda], this requires you to use the AWS API Gateway which may -slow down deployment and cold start time or even cost you more. - -The purpose of Funqy is to allow you to write cross-provider functions so that you can move -off of your current function provider if, for instance, they start charging you a lot more for their -service. Another reason you might not want to use Funqy is if you need access specific APIs of the -target function environment. For example, developers often want access to the AWS Context on -Lambda. In this case, we tell them they may be better off using the xref:amazon-lambda.adoc[Quarkus Amazon Lambda] integration instead. - diff --git a/_versions/2.7/guides/gcp-functions-http.adoc b/_versions/2.7/guides/gcp-functions-http.adoc deleted file mode 100644 index 8781f484084..00000000000 --- a/_versions/2.7/guides/gcp-functions-http.adoc +++ /dev/null @@ -1,223 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Google Cloud Functions (Serverless) with RESTEasy, Undertow, or Reactive Routes -:extension-status: preview - -include::./attributes.adoc[] - -The `quarkus-google-cloud-functions-http` extension allows you to write microservices with RESTEasy (JAX-RS), -Undertow (Servlet), Reactive Routes, or xref:funqy-http.adoc[Funqy HTTP], and make these microservices deployable to the Google Cloud Functions runtime. - -One Google Cloud Functions deployment can represent any number of JAX-RS, Servlet, Reactive Routes, or xref:funqy-http.adoc[Funqy HTTP] endpoints. - -include::./status-include.adoc[] - -== Prerequisites - -:prerequisites-no-graalvm: -include::includes/devtools/prerequisites.adoc[] -* https://cloud.google.com/[A Google Cloud Account]. Free accounts work. -* https://cloud.google.com/sdk[Cloud SDK CLI Installed] - -== Solution - -This guide walks you through generating a sample project followed by creating three HTTP endpoints -written with JAX-RS APIs, Servlet APIs, Reactive Routes, or xref:funqy-http.adoc[Funqy HTTP] APIs. Once built, you will be able to deploy -the project to Google Cloud. - -If you don't want to follow all these steps, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `google-cloud-functions-http-quickstart` {quickstarts-tree-url}/google-cloud-functions-http-quickstart[directory]. - -== Creating the Maven Deployment Project - -Create an application with the `quarkus-google-cloud-functions-http` extension. -You can use the following Maven command to create it: - -:create-app-artifact-id: google-cloud-functions-http -:create-app-extensions: resteasy,google-cloud-functions-http,resteasy-jackson,undertow,reactive-routes,funqy-http -include::includes/devtools/create-app.adoc[] - -== Login to Google Cloud - -Login to Google Cloud is necessary for deploying the application and it can be done as follows: - -[source,bash,subs=attributes+] ----- -gcloud auth login ----- - -== Creating the endpoints - -For this example project, we will create four endpoints, one for RESTEasy (JAX-RS), one for Undertow (Servlet), -one for Reactive routes and one for xref:funqy-http.adoc[Funqy HTTP]. - -[NOTE] -==== -These various endpoints are for demonstration purposes. -For real life applications, you should choose one of this technology and stick to it. -==== - -If you don't need endpoints of each type, you can remove the corresponding extensions from your `pom.xml`. - -=== The JAX-RS endpoint - -[source,java] ----- -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/hello") -public class GreetingResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return "hello"; - } -} ----- - -=== The Servlet endpoint - -[source,java] ----- -import java.io.IOException; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -@WebServlet(name = "ServletGreeting", urlPatterns = "/servlet/hello") -public class GreetingServlet extends HttpServlet { - @Override - protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - resp.setStatus(200); - resp.addHeader("Content-Type", "text/plain"); - resp.getWriter().write("hello"); - } - - @Override - protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - String name = req.getReader().readLine(); - resp.setStatus(200); - resp.addHeader("Content-Type", "text/plain"); - resp.getWriter().write("hello " + name); - } -} ----- - -=== The Reactive Routes endpoint - -[source,java] ----- -import static io.quarkus.vertx.web.Route.HttpMethod.GET; - -import io.quarkus.vertx.web.Route; -import io.vertx.ext.web.RoutingContext; - -public class GreetingRoutes { - @Route(path = "/vertx/hello", methods = GET) - void hello(RoutingContext context) { - context.response().headers().set("Content-Type", "text/plain"); - context.response().setStatusCode(200).end("hello"); - } -} ----- - -=== The Funqy HTTP endpoint - -[source,java] ----- -import io.quarkus.funqy.Funq; - -public class GreetingFunqy { - @Funq - public String funqy() { - return "Make it funqy"; - } -} ----- - -== Build and Deploy to Google Cloud - -NOTE: Quarkus forces a packaging of type `uber-jar` for your function as Google Cloud Function deployment requires a single JAR. - -Package your application using the standard `mvn clean package` command. -The result of the previous command is a single JAR file inside the `target/deployment` directory that contains the classes and the dependencies of the project. - -Then you will be able to use `gcloud` to deploy your function to Google Cloud. - -[source,bash] ----- -gcloud functions deploy quarkus-example-http \ - --entry-point=io.quarkus.gcp.functions.http.QuarkusHttpFunction \ - --runtime=java11 --trigger-http --source=target/deployment ----- - -[IMPORTANT] -==== -The entry point must always be set to `io.quarkus.gcp.functions.http.QuarkusHttpFunction` as this is the class that integrates Cloud Functions with Quarkus. -==== - -[WARNING] -==== -The first time you launch this command, you can have the following error message: -[source] ----- -ERROR: (gcloud.functions.deploy) OperationError: code=7, message=Build Failed: Cloud Build has not been used in project before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudbuild.googleapis.com/overview?project= then retry. ----- -This means that Cloud Build is not activated yet. To overcome this error, open the URL shown in the error, follow the instructions and then wait a few minutes before retrying the command. -==== - - -This command will give you as output a `httpsTrigger.url` that points to your function. - -You can then call your endpoints via: - -- For JAX-RS: {httpsTrigger.url}/hello -- For servlet: {httpsTrigger.url}/servlet/hello -- For Reactive Routes: {httpsTrigger.url}/vertx/hello -- For Funqy: {httpsTrigger.url}/funqy - -== Testing locally - -The easiest way to locally test your function is using the Cloud Function invoker JAR. - -You can download it via Maven using the following command: - -[source,bash] ----- -mvn dependency:copy \ - -Dartifact='com.google.cloud.functions.invoker:java-function-invoker:1.0.2' \ - -DoutputDirectory=. ----- - -Before using the invoker, you first need to build your function via `mvn package`. - -Then you can use it to launch your function locally. - -[source,bash] ----- -java -jar java-function-invoker-1.0.2.jar \ - --classpath target/deployment/google-cloud-functions-http-1.0.0-SNAPSHOT-runner.jar \ - --target io.quarkus.gcp.functions.http.QuarkusHttpFunction ----- - -IMPORTANT: The `--classpath` parameter needs to be set to the previously packaged JAR that contains your function class and all Quarkus related classes. - -Your endpoints will be available on http://localhost:8080. - -== What's next? - -You can use our xref:funqy-gcp-functions.adoc[Google Cloud Functions Funqy binding] to use Funqy, -a provider agnostic function as a service framework, that allow to deploy HTTP function or Background function to Google Cloud. diff --git a/_versions/2.7/guides/gcp-functions.adoc b/_versions/2.7/guides/gcp-functions.adoc deleted file mode 100644 index 2c409011555..00000000000 --- a/_versions/2.7/guides/gcp-functions.adoc +++ /dev/null @@ -1,364 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Google Cloud Functions (Serverless) -:extension-status: preview - -include::./attributes.adoc[] - -The `quarkus-google-cloud-functions` extension allows you to use Quarkus to build your Google Cloud Functions. -Your functions can use injection annotations from CDI or Spring and other Quarkus facilities as you need them. - -include::./status-include.adoc[] - -== Prerequisites - -:prerequisites-no-graalvm: -include::includes/devtools/prerequisites.adoc[] -* https://cloud.google.com/[A Google Cloud Account]. Free accounts work. -* https://cloud.google.com/sdk[Cloud SDK CLI Installed] - -== Solution - -This guide walks you through generating a sample project followed by creating multiple functions showing how to implement `HttpFunction`, `BackgroundFunction` and `RawBackgroundFunction` in Quarkus. -Once built, you will be able to deploy the project to Google Cloud. - -If you don't want to follow all these steps, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `google-cloud-functions-quickstart` {quickstarts-tree-url}/google-cloud-functions-quickstart[directory]. - - -== Creating the Maven Deployment Project - -Create an application with the `quarkus-google-cloud-functions` extension. -You can use the following Maven command to create it: - -:create-app-artifact-id: google-cloud-functions -:create-app-extensions: google-cloud-functions -include::includes/devtools/create-app.adoc[] - -Now, let's remove the `index.html` from `resources/META-INF/resources` or it will be picked up instead of your Function. - -== Login to Google Cloud - -Login to Google Cloud is necessary for deploying the application and it can be done as follows: - -[source,bash,subs=attributes+] ----- -gcloud auth login ----- - -== Creating the functions - -For this example project, we will create three functions, one `HttpFunction`, one `BackgroundFunction` (Storage event) and one `RawBackgroundFunction` (PubSub event). - -== Choose Your Function - -The `quarkus-google-cloud-functions` extension scans your project for a class that directly implements the Google Cloud `HttpFunction`, `BackgroundFunction` or `RawBackgroundFunction` interface. -It must find a class in your project that implements one of these interfaces or it will throw a build time failure. -If it finds more than one function classes, a build time exception will also be thrown. - -Sometimes, though, you might have a few related functions that share code and creating multiple maven modules is just -an overhead you don't want to do. The extension allows you to bundle multiple functions in one -project and use configuration or an environment variable to pick the function you want to deploy. - -To configure the name of the function, you can use the following configuration property: - -[source,properties,subs=attributes+] ----- -quarkus.google-cloud-functions.function=test ----- - -The `quarkus.google-cloud-functions.function` property tells Quarkus which function to deploy. This can be overridden -with an environment variable too. - -The CDI name of the function class must match the value specified within the `quarkus.google-cloud-functions.function` property. -This must be done using the `@Named` annotation. - -[source, java] ----- -@Named("test") -public class TestHttpFunction implements HttpFunction { -} ----- - - -=== The HttpFunction - -[source,java] ----- -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import java.io.Writer; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import com.google.cloud.functions.HttpFunction; -import com.google.cloud.functions.HttpRequest; -import com.google.cloud.functions.HttpResponse; -import io.quarkus.gcp.function.test.service.GreetingService; - -@Named("httpFunction") // <1> -@ApplicationScoped // <2> -public class HttpFunctionTest implements HttpFunction { // <3> - @Inject GreetingService greetingService; // <4> - - @Override - public void service(HttpRequest httpRequest, HttpResponse httpResponse) throws Exception { // <5> - Writer writer = httpResponse.getWriter(); - writer.write(greetingService.hello()); - } -} ----- -<1> The `@Named` annotation allows to name the CDI bean to be used by the `quarkus.google-cloud-functions.function` property, this is optional. -<2> The function must be a CDI bean -<3> This is a regular Google Cloud Function implementation, so it needs to implement `com.google.cloud.functions.HttpFunction`. -<4> Injection works inside your function. -<5> This is standard Google Cloud Function implementation, nothing fancy here. - -=== The BackgroundFunction - -This `BackgroundFunction` is triggered by a Storage event, you can use any events supported by Google Cloud instead. - -[source,java] ----- -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import com.google.cloud.functions.BackgroundFunction; -import com.google.cloud.functions.Context; -import io.quarkus.gcp.function.test.service.GreetingService; - - -@Named("storageTest") // <1> -@ApplicationScoped // <2> -public class BackgroundFunctionStorageTest implements BackgroundFunction { // <3> - @Inject GreetingService greetingService; // <4> - - @Override - public void accept(StorageEvent event, Context context) throws Exception { // <5> - System.out.println("Receive event: " + event); - System.out.println("Be polite, say " + greetingService.hello()); - } - - // - public static class StorageEvent { // <6> - public String name; - } -} ----- -<1> The `@Named` annotation allows to name the CDI bean to be used by the `quarkus.google-cloud-functions.function` property, this is optional. -<2> The function must be a CDI bean -<3> This is a regular Google Cloud Function implementation, so it needs to implement `com.google.cloud.functions.BackgroundFunction`. -<4> Injection works inside your function. -<5> This is standard Google Cloud Function implementation, nothing fancy here. -<6> This is the class the event will be deserialized to. - -=== The RawBackgroundFunction - -This `RawBackgroundFunction` is triggered by a PubSub event, you can use any events supported by Google Cloud instead. - -[source,java] ----- -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.inject.Named; -import com.google.cloud.functions.Context; -import com.google.cloud.functions.RawBackgroundFunction; -import io.quarkus.gcp.function.test.service.GreetingService; - -@Named("rawPubSubTest") // <1> -@ApplicationScoped // <2> -public class RawBackgroundFunctionPubSubTest implements RawBackgroundFunction { // <3> -@Inject GreetingService greetingService; // <4> - - @Override - public void accept(String event, Context context) throws Exception { // <5> - System.out.println("PubSub event: " + event); - System.out.println("Be polite, say " + greetingService.hello()); - } -} ----- -<1> The `@Named` annotation allows to name the CDI bean to be used by the `quarkus.google-cloud-functions.function` property, this is optional. -<2> The function must be a CDI bean -<3> This is a regular Google Cloud Function implementation, so it needs to implement `com.google.cloud.functions.RawBackgroundFunction`. -<4> Injection works inside your function. -<5> This is standard Google Cloud Function implementation, nothing fancy here. - -== Build and Deploy to Google Cloud - -To build your application, you can package it using the standard command: - -include::includes/devtools/build.adoc[] - -The result of the previous command is a single JAR file inside the `target/deployment` repository that contains classes and dependencies of the project. - -Then you will be able to use `gcloud functions deploy` command to deploy your function to Google Cloud. - -[WARNING] -==== -The first time you launch this command, you can have the following error message: -[source] ----- -ERROR: (gcloud.functions.deploy) OperationError: code=7, message=Build Failed: Cloud Build has not been used in project before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudbuild.googleapis.com/overview?project= then retry. ----- -This means that Cloud Build is not activated yet. To overcome this error, open the URL shown in the error, follow the instructions and then wait a few minutes before retrying the command. -==== - -=== The HttpFunction - -This is an example command to deploy your `HttpFunction` to Google Cloud: - -[source,bash] ----- -gcloud functions deploy quarkus-example-http \ - --entry-point=io.quarkus.gcp.functions.QuarkusHttpFunction \ - --runtime=java11 --trigger-http --source=target/deployment ----- - -[IMPORTANT] -==== -The entry point must always be set to `io.quarkus.gcp.functions.QuarkusHttpFunction` as this is the class that integrates Cloud Functions with Quarkus. -==== - -This command will give you as output a `httpsTrigger.url` that points to your function. - -=== The BackgroundFunction - -Before deploying your function, you need to create a bucket. - -[source,bash] ----- -gsutil mb gs://quarkus-hello ----- - -This is an example command to deploy your `BackgroundFunction` to Google Cloud, as the function is triggered by a Storage event, -it needs to use `--trigger-event google.storage.object.finalize` and the `--trigger-resource` parameter with the name of a previously created bucket: - -[source,bash] ----- -gcloud functions deploy quarkus-example-storage \ - --entry-point=io.quarkus.gcp.functions.QuarkusBackgroundFunction \ - --trigger-resource quarkus-hello --trigger-event google.storage.object.finalize \ - --runtime=java11 --source=target/deployment ----- - -[IMPORTANT] -==== -The entry point must always be set to `io.quarkus.gcp.functions.QuarkusBackgroundFunction` as this is the class that integrates Cloud Functions with Quarkus. -==== - -To trigger the event, you can send a file to the GCS `quarkus-hello` bucket or you can use gcloud to simulate one: - -[source,bash] ----- -gcloud functions call quarkus-example-storage --data '{"name":"test.txt"}' ----- - -NOTE: `--data` contains the GCS event, it is a JSON document with the name of the file added to the bucket. - -=== The RawBackgroundFunction - -This is an example command to deploy your `RawBackgroundFunction` to Google Cloud, as the function is triggered by a PubSub event, -it needs to use `--trigger-event google.pubsub.topic.publish` and the `--trigger-resource` parameter with the name of a previously created topic: - -[source,bash] ----- -gcloud functions deploy quarkus-example-pubsub \ - --entry-point=io.quarkus.gcp.functions.QuarkusBackgroundFunction \ - --runtime=java11 --trigger-resource hello_topic --trigger-event google.pubsub.topic.publish --source=target/deployment ----- - -[IMPORTANT] -==== -The entry point must always be set to `io.quarkus.gcp.functions.QuarkusBackgroundFunction` as this is the class that integrates Cloud Functions with Quarkus. -==== - -To trigger the event, you can send a file to the `hello_topic` topic or you can use gcloud to simulate one: - -[source,bash] ----- -gcloud functions call quarkus-example-pubsub --data '{"data":{"greeting":"world"}}' ----- - -== Testing locally - -The easiest way to locally test your function is using the Cloud Function invoker JAR. - -You can download it via Maven using the following command: - -[source,bash] ----- -mvn dependency:copy \ - -Dartifact='com.google.cloud.functions.invoker:java-function-invoker:1.0.2' \ - -DoutputDirectory=. ----- - -Before using the invoker, you first need to build your function via: - -include::includes/devtools/build.adoc[] - -=== The HttpFunction - -To test an `HttpFunction`, you can use this command to launch your function locally. - -[source,bash] ----- -java -jar java-function-invoker-1.0.2.jar \ - --classpath target/google-cloud-functions-1.0.0-SNAPSHOT-runner.jar \ - --target io.quarkus.gcp.functions.QuarkusHttpFunction ----- - -IMPORTANT: The `--classpath` parameter needs to be set to the previously packaged JAR that contains your function class and all Quarkus related classes. - -Your endpoints will be available on http://localhost:8080. - -=== The BackgroundFunction - -For background functions, you launch the invoker with a target class of `io.quarkus.gcp.functions.BackgroundFunction`. - -[source,bash] ----- -java -jar java-function-invoker-1.0.2.jar \ - --classpath target/google-cloud-functions-1.0.0-SNAPSHOT-runner.jar \ - --target io.quarkus.gcp.functions.QuarkusBackgroundFunction ----- - -IMPORTANT: The `--classpath` parameter needs to be set to the previously packaged JAR that contains your function class and all Quarkus related classes. - -Then you can call your background function via an HTTP call with a payload containing the event: - -[source,bash] ----- -curl localhost:8080 -d '{"data":{"name":"hello.txt"}}' ----- - -This will call your Storage background function with an event `{"name":"hello.txt"}`, so an event on the `hello.txt` file. - -=== The RawBackgroundFunction - -For background functions, you launch the invoker with a target class of `io.quarkus.gcp.functions.BackgroundFunction`. - -[source,bash] ----- -java -jar java-function-invoker-1.0.2.jar \ - --classpath target/google-cloud-functions-1.0.0-SNAPSHOT-runner.jar \ - --target io.quarkus.gcp.functions.QuarkusBackgroundFunction ----- - -IMPORTANT: The `--classpath` parameter needs to be set to the previously packaged JAR that contains your function class and all Quarkus related classes. - -Then you can call your background function via an HTTP call with a payload containing the event: - -[source,bash] ----- -curl localhost:8080 -d '{"data":{"greeting":"world"}}' ----- - -This will call your PubSub background function with a PubSubMessage `{"greeting":"world"}`. diff --git a/_versions/2.7/guides/getting-started-reactive.adoc b/_versions/2.7/guides/getting-started-reactive.adoc deleted file mode 100644 index 376f2dd2fea..00000000000 --- a/_versions/2.7/guides/getting-started-reactive.adoc +++ /dev/null @@ -1,345 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Getting Started With Reactive - -include::./attributes.adoc[] - -_Reactive_ is a set of principles to build robust, efficient, and concurrent applications and systems. -These principles let you handle more load than traditional approaches while using the resources (CPU and memory) more efficiently while also reacting to failures gracefully. - -Quarkus is a _Reactive_ framework. -Since the beginning, _Reactive_ has been an essential tenet of the Quarkus architecture. -It includes many reactive features and offers a broad ecosystem. - -This guide is not an in-depth article about what _Reactive_ is and how Quarkus enables reactive architectures. -If you want to read more about these topics, refer to the xref:quarkus-reactive-architecture.adoc[Reactive Architecture guide], which provides an overview of the Quarkus reactive ecosystem. - -In this guide, we will get you started with some reactive features of Quarkus. -We are going to implement a simple CRUD application. -Yet, unlike in the xref:hibernate-orm-panache.adoc[Hibernate with Panache guide], it uses the reactive features of Quarkus. - -This guide will help you with: - -* Bootstrapping a reactive CRUD application with Quarkus -* Using Hibernate Reactive with Panache to interact with a database in a reactive fashion -* Using RESTEasy Reactive to implement HTTP API while enforcing the reactive principle -* Packaging and Running the application - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -NOTE: Verify that Maven is using the Java version you expect. -If you have multiple JDKs installed, make sure Maven is using the expected one. -You can verify which JDK Maven uses by running `mvn --version.` - -== Imperative vs. Reactive: a question of threads - -As mentioned above, in this guide, we are going to implement a reactive CRUD application. -But you may wonder what the differences and benefits are in comparison to the traditional and imperative model. - -To better understand the contrast, we need to explain the difference between the reactive and imperative execution models. -It's essential to comprehend that _Reactive_ is not just a different execution model, but that distinction is necessary to understand this guide. - -In the traditional and imperative approach, frameworks assign a thread to handle the request. -So, the whole processing of the request runs on this worker thread. -This model does not scale very well. -Indeed, to handle multiple concurrent requests, you need multiple threads; and so your application concurrency is constrained by the number of threads. -In addition, these threads are blocked as soon as your code interacts with remote services. -So, it leads to inefficient usage of the resources, as you may need more threads, and each thread, as they are mapped to OS threads, has a cost in terms of memory and CPU. - -image::blocking-threads.png[alt=Imperative Execution Model and Worker Threads, width=50%, align=center] - -On the other side, the reactive model relies on non-blocking I/Os and a different execution model. -Non-blocking I/O provides an efficient way to deal with concurrent I/O. -A minimal amount of threads called I/O threads, can handle many concurrent I/O. -With such a model, request processing is not delegated to a worker thread but uses these I/O threads directly.It saves memory and CPU as there is no need to create worker threads to handle the requests. -It also improves the concurrency as it removes the constraint on the number of threads. -Finally, it also improves response time as it reduces the number of thread switches. - -image::reactive-thread.png[alt=Reactive Execution Model and I/O Threads, width=50%, align=center] - - -== From sequential to continuation style - -So, with the reactive execution model, the requests are processed using I/O threads. -But that's not all. -An I/O thread can handle multiple concurrent requests. -How? Here is the trick and one of the most significant differences between reactive and imperative. - -When processing a request requires interacting with a remote service, like an HTTP API or a database, it does not block the execution while waiting for the response. -Instead, it schedules the I/O operation and attaches a continuation, i.e., the request processing remaining code. -This continuation can be passed as a callback (a function invoked with the I/O outcome), or use more advanced constructs such as reactive programming or co-routines. -Regardless of how the continuation is expressed, the essential aspect is the release of the I/O thread and, as a consequence, the fact that this thread can be used to process another request. -When the scheduled I/O completes, the I/O thread executes the continuation, and the processing of the pending request continues. - -So, unlike the imperative model, where I/O blocks the execution, reactive switches to a continuation-based design, where the I/O threads are released, and continuation invoked when the I/Os complete. -As a result, the I/O thread can handle multiple concurrent requests, improving the overall concurrency of the application. - -But, there is a catch. -We need a way to write continuation-passing code. -There are many ways of doing this. -In Quarkus, we propose: - -* Mutiny - an intuitive and event-driven reactive programming library -* Kotlin co-routines - a way to write asynchronous code in a sequential manner - -In this guide, we will use Mutiny. -To know more about Mutiny, check the xref:mutiny-primer.adoc[Mutiny documentation]. - -NOTE: Project Loom is coming to the JDK soon and proposes a virtual thread-based model. -The Quarkus architecture is ready to support Loom as soon as it's become globally available. - -== Bootstrapping the Reactive Fruits application - -With this in mind, let's see how we can develop a CRUD application with Quarkus, which will use the I/O thread to handle the HTTP requests, interact with a database, process the result, and write the HTTP response; in other words: a reactive CRUD application. - -While we recommend you to follow the step-by-step instructions, you can find the final solution on https://github.com/quarkusio/quarkus-quickstarts/tree/main/hibernate-reactive-panache-quickstart. - -First, go to https://code.quarkus.io[code.quarkus.io] and select the following extensions: - -1. RESTEasy Reactive Jackson -2. Hibernate Reactive with Panache -3. Reactive PostgreSQL client - -image::reactive-guide-code.png[alt=Extensions to select in https://code.quarkus.io,width=90%,align=center] - -The last extension is the reactive database driver for PostgreSQL. -Hibernate Reactive uses that driver to interact with the database without blocking the caller thread. - -Once selected, click on "Generate your application", download the zip file, unzip it and open the code in your favorite IDE. - -== Reactive Panache Entity - -Let's start with the `Fruit` entity.Create the `src/main/java/org/acme/hibernate/orm/panache/Fruit.java` file with the following content: - -[source, java] ----- -package org.acme.hibernate.orm.panache; - -import javax.persistence.Cacheable; -import javax.persistence.Column; -import javax.persistence.Entity; - -import io.quarkus.hibernate.reactive.panache.PanacheEntity; // <1> - -@Entity -@Cacheable -public class Fruit extends PanacheEntity { - - @Column(length = 40, unique = true) - public String name; - -} ----- -<1> Make sure you import the reactive variant of `PanacheEntity`. - -This class represents `Fruits`. -It's a straightforward entity with a single field (`name`). -Note that it uses `io.quarkus.hibernate.reactive.panache.PanacheEntity`, the reactive variant of `PanacheEntity`. -So, behind the scenes, Hibernate uses the execution model we described above. -It interacts with the database without blocking the thread. -In addition, this reactive `PanacheEntity` proposes a reactive API. -We will use this API to implement the REST endpoint. - -Before going further, open the `src/main/resource/application.properties` file and add: - -[source, properties] ----- -quarkus.datasource.db-kind=postgresql -quarkus.hibernate-orm.database.generation=drop-and-create ----- - -It instructs the application to use PostgreSQL for the database and to handle the database schema generation. - -In the same directory, create an `import.sql` file, which inserts a few fruits, so we don't start with an empty database in dev mode: - -[source, text] ----- -INSERT INTO fruit(id, name) VALUES (nextval('hibernate_sequence'), 'Cherry'); -INSERT INTO fruit(id, name) VALUES (nextval('hibernate_sequence'), 'Apple'); -INSERT INTO fruit(id, name) VALUES (nextval('hibernate_sequence'), 'Banana'); ----- - -In a terminal, launch the application in dev mode using: `./mvnw quarkus:dev`. -Quarkus automatically starts a database instance for you and configure the application. Now we only need to implement the HTTP endpoint. - - -== Reactive Resource - -Because the interaction with the database is non-blocking and asynchronous, we need to use asynchronous constructs to implement our HTTP resource. -Quarkus uses Mutiny as its central reactive programming model. -So, it supports returning Mutiny types (`Uni` and `Multi`) from HTTP endpoints. -Also, our Fruit Panache entity exposes methods using these types, so we only need to implement the _glue_. - -Create the `src/main/java/org/acme/hibernate/orm/panache/FruitResource.java` file with the following content: - -[source, java] ----- -package org.acme.hibernate.orm.panache; - -import javax.enterprise.context.ApplicationScoped; -import javax.ws.rs.Path; - -@Path("/fruits") -@ApplicationScoped -public class FruitResource { - -} ----- - -Let's start with the `getAll` method. The `getAll` method returns all the fruits stored in the database. -In the `FruitResource`, add the following code: - -[source, java] ----- -@GET -public Uni> get() { - return Fruit.listAll(Sort.by("name")); -} ----- - -Open http://localhost:8080/fruits to invoke this method: - -[source, json] ----- -[{"id":2,"name":"Apple"},{"id":3,"name":"Banana"},{"id":1,"name":"Cherry"},{"id":4,"name":"peach"}] ----- - -We get the expected JSON array. -RESTEasy Reactive automatically maps the list into a JSON Array, except if instructed otherwise. - -Look at the return type; it returns a `Uni` of `List`. -`Uni` is an asynchronous type. -It's a bit like a future. -It's a placeholder that will get its value (item) later. -When it receives the item (Mutiny says it _emits_ its item), you can attach some behavior. -That's how we express the continuation: get a uni, and when the uni emits its item, execute the rest of the processing. - -NOTE: Reactive developers may wonder why we can't return a stream of fruits directly. -It tends to be a bad idea when dealing with a database. -Relational databases do not handle streaming well. -It’s a problem of protocols not designed for this use case. -So, to stream rows from the database, you need to keep a connection (and sometimes a transaction) open until all the rows are consumed. -If you have slow consumers, you break the golden rule of databases: don’t hold connections for too long. -Indeed, the number of connections is rather low, and having consumers keeping them for too long will dramatically reduce the concurrency of your application. -So, when possible, use a `Uni>` and load the content. -If you have a large set of results, implement pagination. - -Let's continue our API with `getSingle`: - -[source, java] ----- -@GET -@Path("/{id}") -public Uni getSingle(Long id) { - return Fruit.findById(id); -} ----- - -In this case, we use `Fruit.findById` to retrieve the fruit. -It returns a `Uni`, which will complete when the database has retrieved the row. - -The `create` method allows adding a new fruit to the database: - -[source, java] ----- -@POST -public Uni create(Fruit fruit) { - return Panache.withTransaction(fruit::persist) - .onItem().transform(inserted -> Response.created(URI.create("/fruits/" + inserted.id)).build()); -} ----- - -The code is a bit more involved. -To write to a database, we need a transaction. -So we use `Panache.withTransaction` to get one (asynchronously) and call the `persist` method when we receive the transaction. -The `persist` method is also returning a `Uni`. -This `Uni` emits the result of the insertion of the fruit in the database. -Once the insertion completes (and that's our continuation), we create a `201 CREATED` response. -RESTEasy Reactive automatically reads the request body as JSON and creates the `Fruit` instance. - -NOTE: The `.onItem().transform(...)` can be replaced with `.map(...)`. -`map` is a shortcut. - -If you have https://curl.se/[curl] on your machine, you can try the endpoint using: - -[source, bash] ----- -> curl --header "Content-Type: application/json" \ - --request POST \ - --data '{"name":"peach"}' \ - http://localhost:8080/fruits ----- - -Following the same ideas, you can implement the other CRUD methods. - -== Testing and Running - -Testing a reactive application is similar to testing a non-reactive one: use the HTTP endpoint and verify the HTTP responses. -The fact that the application is reactive does not change anything. - -In https://github.com/quarkusio/quarkus-quickstarts/blob/main/hibernate-reactive-panache-quickstart/src/test/java/org/acme/hibernate/orm/panache/FruitsEndpointTest.java[FruitsEndpointTest.java] you can see how the test for the fruit application can be implemented. - -Packaging and running the application does not change either. - -You can use the following command as usual: - -include::includes/devtools/build.adoc[] - -or to build a native executable: - -include::includes/devtools/build-native.adoc[] - -You can also package the application in a container. - -To run the application, don’t forget to start a database and provide the configuration to your application. - -For example, you can use Docker to run your database: - -[source, bash] ----- -docker run -it --rm=true \ - --name postgres-quarkus -e POSTGRES_USER=quarkus \ - -e POSTGRES_PASSWORD=quarkus -e POSTGRES_DB=fruits \ - -p 5432:5432 postgres:14.1 ----- - -Then, launch the application using: - -[source, bash] ----- -java \ - -Dquarkus.datasource.reactive.url=postgresql://localhost/fruits \ - -Dquarkus.datasource.username=quarkus \ - -Dquarkus.datasource.password=quarkus \ - -jar target/quarkus-app/quarkus-run.jar ----- - -Or, if you packaged your application as native executable, use: - - -[source, bash] ----- -./target/getting-started-with-reactive-runner \ - -Dquarkus.datasource.reactive.url=postgresql://localhost/fruits \ - -Dquarkus.datasource.username=quarkus \ - -Dquarkus.datasource.password=quarkus ----- - -The parameters passed to the application are described in the datasource guide. -There are other ways to configure the application - please check the xref:config-reference.adoc#configuration_sources[configuration guide] to have an overview of the possibilities (such as env variable, .env files and so on). - -== Going further - -This guide is a brief introduction to some reactive features offered by Quarkus. -Quarkus is a reactive framework, and so offers a lot of reactive features. - -If you want to continue on this topic check: - -* xref:quarkus-reactive-architecture.adoc[The Quarkus Reactive Architecture] -* xref:mutiny-primer.adoc[Mutiny - an intuitive reactive programming library] - diff --git a/_versions/2.7/guides/getting-started-testing.adoc b/_versions/2.7/guides/getting-started-testing.adoc deleted file mode 100644 index b4c0637c63a..00000000000 --- a/_versions/2.7/guides/getting-started-testing.adoc +++ /dev/null @@ -1,1410 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Testing Your Application - -include::./attributes.adoc[] - -:toc: macro -:toclevels: 4 -:doctype: book -:icons: font -:docinfo1: - -:numbered: -:sectnums: -:sectnumlevels: 4 - - -Learn how to test your Quarkus Application. -This guide covers: - -* Testing in JVM mode -* Testing in native mode -* Injection of resources into tests - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* The completed greeter application from the xref:getting-started.adoc[Getting Started Guide] - -== Architecture - -In this guide, we expand on the initial test that was created as part of the Getting Started Guide. -We cover injection into tests and also how to test native executables. - -NOTE: Quarkus supports Continuous testing, but this is covered by the xref:continuous-testing.adoc[Continuous Testing Guide]. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `getting-started-testing` {quickstarts-tree-url}/getting-started-testing[directory]. - -This guide assumes you already have the completed application from the `getting-started` directory. - -== Recap of HTTP based Testing in JVM mode - -If you have started from the Getting Started example you should already have a completed test, including the correct -`pom.xml` setup. - -In the `pom.xml` file you should see 2 test dependencies: - -[source,xml,subs=attributes+] ----- - - io.quarkus - quarkus-junit5 - test - - - io.rest-assured - rest-assured - test - ----- - -`quarkus-junit5` is required for testing, as it provides the `@QuarkusTest` annotation that controls the testing framework. -`rest-assured` is not required but is a convenient way to test HTTP endpoints, we also provide integration that automatically -sets the correct URL so no configuration is required. - -Because we are using JUnit 5, the version of the https://maven.apache.org/surefire/maven-surefire-plugin/[Surefire Maven Plugin] -must be set, as the default version does not support Junit 5: - -[source,xml,subs=attributes+] ----- - - maven-surefire-plugin - ${surefire-plugin.version} - - - org.jboss.logmanager.LogManager - ${maven.home} - - - ----- - -We also set the `java.util.logging.manager` system property to make sure tests will use the correct logmanager and `maven.home` to ensure that custom configuration -from `${maven.home}/conf/settings.xml` is applied (if any). - -The project should also contain a simple test: - -[source,java] ----- -package org.acme.getting.started.testing; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import java.util.UUID; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -public class GreetingResourceTest { - - @Test - public void testHelloEndpoint() { - given() - .when().get("/hello") - .then() - .statusCode(200) - .body(is("hello")); - } - - @Test - public void testGreetingEndpoint() { - String uuid = UUID.randomUUID().toString(); - given() - .pathParam("name", uuid) - .when().get("/hello/greeting/{name}") - .then() - .statusCode(200) - .body(is("hello " + uuid)); - } - -} ----- - -This test uses HTTP to directly test our REST endpoint. When the test is run the application will be started before -the test is run. - -=== Controlling the test port - -While Quarkus will listen on port `8080` by default, when running tests it defaults to `8081`. This allows you to run -tests while having the application running in parallel. - -[TIP] -.Changing the test port -==== -You can configure the ports used by tests by configuring `quarkus.http.test-port` for HTTP and `quarkus.http.test-ssl-port` for HTTPS in your `application.properties`: -[source] ----- -quarkus.http.test-port=8083 -quarkus.http.test-ssl-port=8446 ----- -`0` will result in the use of a random port (assigned by the operating system). -==== - -Quarkus also provides RestAssured integration that updates the default port used by RestAssured before the tests are run, -so no additional configuration should be required. - -=== Controlling HTTP interaction timeout - -When using REST Assured in your test, the connection and response timeouts are set to 30 seconds. -You can override this setting with the `quarkus.http.test-timeout` property: - -[source] ----- -quarkus.http.test-timeout=10s ----- - -=== Injecting a URI - -It is also possible to directly inject the URL into the test which can make is easy to use a different client. This is -done via the `@TestHTTPResource` annotation. - -Let's write a simple test that shows this off to load some static resources. First create a simple HTML file in -`src/main/resources/META-INF/resources/index.html` : - - -[source,xml] ----- - - - Testing Guide - - - Information about testing - - ----- - -We will create a simple test to ensure that this is being served correctly: - - -[source,java] ----- -package org.acme.getting.started.testing; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.nio.charset.StandardCharsets; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import io.quarkus.test.common.http.TestHTTPResource; -import io.quarkus.test.junit.QuarkusTest; - -@QuarkusTest -public class StaticContentTest { - - @TestHTTPResource("index.html") // <1> - URL url; - - @Test - public void testIndexHtml() throws Exception { - try (InputStream in = url.openStream()) { - String contents = readStream(in); - Assertions.assertTrue(contents.contains("Testing Guide")); - } - } - - private static String readStream(InputStream in) throws IOException { - byte[] data = new byte[1024]; - int r; - ByteArrayOutputStream out = new ByteArrayOutputStream(); - while ((r = in.read(data)) > 0) { - out.write(data, 0, r); - } - return new String(out.toByteArray(), StandardCharsets.UTF_8); - } -} ----- -<1> This annotation allows you to directly inject the URL of the Quarkus instance, the value of the annotation will be the path component of the URL - -For now `@TestHTTPResource` allows you to inject `URI`, `URL` and `String` representations of the URL. - -== Testing a specific endpoint - -Both RESTassured and `@TestHTTPResource` allow you to specify the endpoint class you are testing rather than hard coding -a path. This currently supports both JAX-RS endpoints, Servlets and Reactive Routes. This makes it a lot easier to see exactly which endpoints -a given test is testing. - -For the purposes of these examples I am going to assume we have an endpoint that looks like the following: - -[source,java] ----- -@Path("/hello") -public class GreetingResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return "hello"; - } -} ----- - -NOTE: This currently does not support the `@ApplicationPath()` annotation to set the JAX-RS context path. Use the -`quarkus.resteasy.path` config value instead if you want a custom context path. - -=== TestHTTPResource - -You can the use the `io.quarkus.test.common.http.TestHTTPEndpoint` annotation to specify the endpoint path, and the path -will be extracted from the provided endpoint. If you also specify a value for the `TestHTTPResource` endpoint it will -be appended to the end of the endpoint path. - -[source,java] ----- -package org.acme.getting.started.testing; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.nio.charset.StandardCharsets; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import io.quarkus.test.common.http.TestHTTPEndpoint; -import io.quarkus.test.common.http.TestHTTPResource; -import io.quarkus.test.junit.QuarkusTest; - -@QuarkusTest -public class StaticContentTest { - - @TestHTTPEndpoint(GreetingResource.class) // <1> - @TestHTTPResource - URL url; - - @Test - public void testIndexHtml() throws Exception { - try (InputStream in = url.openStream()) { - String contents = readStream(in); - Assertions.assertTrue(contents.equals("hello")); - } - } - - private static String readStream(InputStream in) throws IOException { - byte[] data = new byte[1024]; - int r; - ByteArrayOutputStream out = new ByteArrayOutputStream(); - while ((r = in.read(data)) > 0) { - out.write(data, 0, r); - } - return new String(out.toByteArray(), StandardCharsets.UTF_8); - } -} ----- -<1> Because `GreetingResource` is annotated with `@Path("/hello")` the injected URL -will end with `/hello`. - -=== RESTassured - -To control the RESTassured base path (i.e. the default path that serves as the root for every -request) you can use the `io.quarkus.test.common.http.TestHTTPEndpoint` annotation. This can -be applied at the class or method level. To test out greeting resource we would do: - -[source,java] ----- -package org.acme.getting.started.testing; - -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.common.http.TestHTTPEndpoint; -import org.junit.jupiter.api.Test; - -import java.util.UUID; - -import static io.restassured.RestAssured.when; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -@TestHTTPEndpoint(GreetingResource.class) //<1> -public class GreetingResourceTest { - - @Test - public void testHelloEndpoint() { - when().get() //<2> - .then() - .statusCode(200) - .body(is("hello")); - } -} ----- -<1> This tells RESTAssured to prefix all requests with `/hello`. -<2> Note we don't need to specify a path here, as `/hello` is the default for this test - -== Injection into tests - -So far we have only covered integration style tests that test the app via HTTP endpoints, but what if we want to do unit -testing and test our beans directly? - -Quarkus supports this by allowing you to inject CDI beans into your tests via the `@Inject` annotation (in fact, tests in -Quarkus are full CDI beans, so you can use all CDI functionality). Let's create a simple test that tests the greeting -service directly without using HTTP: - - -[source,java] ----- -package org.acme.getting.started.testing; - -import javax.inject.Inject; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import io.quarkus.test.junit.QuarkusTest; - -@QuarkusTest -public class GreetingServiceTest { - - @Inject // <1> - GreetingService service; - - @Test - public void testGreetingService() { - Assertions.assertEquals("hello Quarkus", service.greeting("Quarkus")); - } -} ----- -<1> The `GreetingService` bean will be injected into the test - -== Applying Interceptors to Tests - -As mentioned above Quarkus tests are actually full CDI beans, and as such you can apply CDI interceptors as you would -normally. As an example, if you want a test method to run within the context of a transaction you can simply apply the -`@Transactional` annotation to the method and the transaction interceptor will handle it. - -In addition to this you can also create your own test stereotypes. For example we could create a `@TransactionalQuarkusTest` -as follows: - -[source,java] ----- -@QuarkusTest -@Stereotype -@Transactional -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.TYPE) -public @interface TransactionalQuarkusTest { -} ----- - -If we then apply this annotation to a test class it will act as if we had applied both the `@QuarkusTest` and -`@Transactional` annotations, e.g.: - - -[source,java] ----- -@TransactionalQuarkusTest -public class TestStereotypeTestCase { - - @Inject - UserTransaction userTransaction; - - @Test - public void testUserTransaction() throws Exception { - Assertions.assertEquals(Status.STATUS_ACTIVE, userTransaction.getStatus()); - } - -} ----- - -== Tests and Transactions - -You can use the standard Quarkus `@Transactional` annotation on tests, but this means that the changes your -test makes to the database will be persistent. If you want any changes made to be rolled back at the end of -the test you can use the `io.quarkus.test.TestTransaction` annotation. This will run the test method in a -transaction, but roll it back once the test method is complete to revert any database changes. - -== Enrichment via QuarkusTest*Callback - -Alternatively or additionally to an interceptor, you can enrich *all* your `@QuarkusTest` classes by implementing the following callback interfaces: - -* `io.quarkus.test.junit.callback.QuarkusTestBeforeClassCallback` -* `io.quarkus.test.junit.callback.QuarkusTestAfterConstructCallback` -* `io.quarkus.test.junit.callback.QuarkusTestBeforeEachCallback` -* `io.quarkus.test.junit.callback.QuarkusTestAfterEachCallback` - -Such a callback implementation has to be registered as a "service provider" as defined by `java.util.ServiceLoader`. - -E.g. the following sample callback: -[source,java] ----- -package org.acme.getting.started.testing; - -import io.quarkus.test.junit.callback.QuarkusTestBeforeEachCallback; -import io.quarkus.test.junit.callback.QuarkusTestMethodContext; - -public class MyQuarkusTestBeforeEachCallback implements QuarkusTestBeforeEachCallback { - - @Override - public void beforeEach(QuarkusTestMethodContext context) { - System.out.println("Executing " + context.getTestMethod()); - } -} ----- -has to be registered via `src/main/resources/META-INF/services/io.quarkus.test.junit.callback.QuarkusTestBeforeEachCallback` as follows: -[source] ----- -org.acme.getting.started.testing.MyQuarkusTestBeforeEachCallback ----- - -TIP: It is possible to read annotations from the test class or method to control what the callback shall be doing. - -WARNING: While it is possible to use JUnit Jupiter callback interfaces like `BeforeEachCallback`, you might run into classloading issues because Quarkus has - to run tests in a custom classloader which JUnit is not aware of. - -[[testing_different_profiles]] -== Testing Different Profiles - -So far in all our examples we only start Quarkus once for all tests. Before the first test is run Quarkus will boot, -then all tests will run, then Quarkus will shutdown at the end. This makes for a very fast testing experience however -it is a bit limited as you can't test different configurations. - -To get around this Quarkus supports the idea of a test profile. If a test has a different profile to the previously -run test then Quarkus will be shut down and started with the new profile before running the tests. This is obviously -a bit slower, as it adds a shutdown/startup cycle to the test time, but gives a great deal of flexibility. - -To reduce the amount of times Quarkus needs to restart, `io.quarkus.test.junit.util.QuarkusTestProfileAwareClassOrderer` -is registered as a global `ClassOrderer` as described in the -link:https://junit.org/junit5/docs/current/user-guide/#writing-tests-test-execution-order-classes[JUnit 5 User Guide]. -The behavior of this orderer is configurable via `junit-platform.properties` (see the source code or javadoc for more details). -It can also be disabled entirely by setting another orderer that is provided by JUnit 5 or even your own custom one. + -Please note that as of JUnit 5.8.2 link:https://github.com/junit-team/junit5/issues/2794[only a single `junit-platform.properties` is picked up and a warning is logged if more than one is found]. -If you encounter such warnings, you can can get rid of them by removing the Quarkus-supplied `junit-platform.properties` from the classpath via an exclusion: -[source,xml] ----- - - io.quarkus - quarkus-junit5 - test - - - io.quarkus - quarkus-junit5-properties - - - ----- - -=== Writing a Profile - -To implement a test profile we need to implement `io.quarkus.test.junit.QuarkusTestProfile`: - -[source,java] ----- -package org.acme.getting.started.testing; - -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import io.quarkus.test.junit.QuarkusTestProfile; -import io.quarkus.test.junit.QuarkusTestProfile.TestResourceEntry; - -public class MockGreetingProfile implements QuarkusTestProfile { <1> - - /** - * Returns additional config to be applied to the test. This - * will override any existing config (including in application.properties), - * however existing config will be merged with this (i.e. application.properties - * config will still take effect, unless a specific config key has been overridden). - * - * Here we are changing the JAX-RS root path. - */ - @Override - public Map getConfigOverrides() { - return Collections.singletonMap("quarkus.resteasy.path","/api"); - } - - /** - * Returns enabled alternatives. - * - * This has the same effect as setting the 'quarkus.arc.selected-alternatives' config key, - * however it may be more convenient. - */ - @Override - public Set> getEnabledAlternatives() { - return Collections.singleton(MockGreetingService.class); - } - - /** - * Allows the default config profile to be overridden. This basically just sets the quarkus.test.profile system - * property before the test is run. - * - * Here we are setting the profile to test-mocked - */ - @Override - public String getConfigProfile() { - return "test-mocked"; - } - - /** - * Additional {@link QuarkusTestResourceLifecycleManager} classes (along with their init params) to be used from this - * specific test profile. - * - * If this method is not overridden, then only the {@link QuarkusTestResourceLifecycleManager} classes enabled via the {@link io.quarkus.test.common.QuarkusTestResource} class - * annotation will be used for the tests using this profile (which is the same behavior as tests that don't use a profile at all). - */ - @Override - public List testResources() { - return Collections.singletonList(new TestResourceEntry(CustomWireMockServerManager.class)); - } - - - /** - * If this returns true then only the test resources returned from {@link #testResources()} will be started, - * global annotated test resources will be ignored. - */ - @Override - public boolean disableGlobalTestResources() { - return false; - } - - /** - * The tags this profile is associated with. - * When the {@code quarkus.test.profile.tags} System property is set (its value is a comma separated list of strings) - * then Quarkus will only execute tests that are annotated with a {@code @TestProfile} that has at least one of the - * supplied (via the aforementioned system property) tags. - */ - @Override - public Set tags() { - return Collections.emptySet(); - } - - /** - * The command line parameters that are passed to the main method on startup. - */ - @Override - public String[] commandLineParameters() { - return new String[0]; - } - - /** - * If the main method should be run. - */ - @Override - public boolean runMainMethod() { - return false; - } - - /** - * If this method returns true then all {@code StartupEvent} and {@code ShutdownEvent} observers declared on application - * beans should be disabled. - */ - @Override - public boolean disableApplicationLifecycleObservers() { - return false; - } -} ----- -<1> All these methods have default implementations so just override the ones you need to override. - -Now we have defined our profile we need to include it on our test class. -We do this by annotating the test class with `@TestProfile(MockGreetingProfile.class)`. - -All the test profile configuration is stored in a single class, which makes it easy to tell if the previous test ran with the -same configuration. - -=== Running specific tests - -Quarkus provides the ability to limit test execution to tests with specific `@TestProfile` annotations. -This works by leveraging the `tags` method of `QuarkusTestProfile` in conjunction with the `quarkus.test.profile.tags` system property. - -Essentially, any `QuarkusTestProfile` with at least one matching tag matching the value of `quarkus.test.profile.tags` will be considered active -and all the tests annotated with `@TestProfile` of active profiles, will be run while the rest will be skipped. -This is best shown in the following example. - -First let's define a few `QuarkusTestProfile` implementations like so: -[source,java] ----- -public class Profiles { - - public static class NoTags implements QuarkusTestProfile { - - } - - public static class SingleTag implements QuarkusTestProfile { - @Override - public Set tags() { - return Collections.singleton("test1"); - } - } - - public static class MultipleTags implements QuarkusTestProfile { - @Override - public Set tags() { - return new HashSet<>(Arrays.asList("test1", "test2")); - } - } -} ----- - -Now let's assume that we have the following tests: - -[source,java] ----- -@QuarkusTest -public class NoQuarkusProfileTest { - - @Test - public void test() { - // test something - } -} ----- - -[source,java] ----- -@QuarkusTest -@TestProfile(Profiles.NoTags.class) -public class NoTagsTest { - - @Test - public void test() { - // test something - } -} ----- - -[source,java] ----- -@QuarkusTest -@TestProfile(Profiles.SingleTag.class) -public class SingleTagTest { - - @Test - public void test() { - // test something - } -} ----- - -[source,java] ----- -@QuarkusTest -@TestProfile(Profiles.MultipleTags.class) -public class MultipleTagsTest { - - @Test - public void test() { - // test something - } -} ----- - -Let's consider the following scenarios: - -* `quarkus.test.profile.tags` is not set: All tests will be executed. -* `quarkus.test.profile.tags=foo`: In this case none of tests will be executed because none of the tags defined on the `QuarkusTestProfile` implementations match the value of `quarkus.test.profile.tags`. -Note that `NoQuarkusProfileTest` is not executed either because it is not annotated with `@TestProfile`. -* `quarkus.test.profile.tags=test1`: In this case `SingleTagTest` and `MultipleTagsTest` will be run because the tags on their respective `QuarkusTestProfile` implementations -match the value of `quarkus.test.profile.tags`. -* `quarkus.test.profile.tags=test1,test3`: This case results in the same tests being executed as the previous case. -* `quarkus.test.profile.tags=test2,test3`: In this case only `MultipleTagsTest` will be run because `MultipleTagsTest` is the only `QuarkusTestProfile` implementation whose `tags` method -matches the value of `quarkus.test.profile.tags`. - -== Mock Support - -Quarkus supports the use of mock objects using two different approaches. You can either use CDI alternatives to -mock out a bean for all test classes, or use `QuarkusMock` to mock out beans on a per test basis. - -=== CDI `@Alternative` mechanism. - -To use this simply override the bean you wish to mock with a class in the `src/test/java` directory, and put the `@Alternative` and `@Priority(1)` annotations on the bean. -Alternatively, a convenient `io.quarkus.test.Mock` stereotype annotation could be used. -This built-in stereotype declares `@Alternative`, `@Priority(1)` and `@Dependent`. -For example if I have the following service: - -[source,java] ----- -@ApplicationScoped -public class ExternalService { - - public String service() { - return "external"; - } - -} ----- - -I could mock it with the following class in `src/test/java`: - -[source,java] ----- -@Mock -@ApplicationScoped // <1> -public class MockExternalService extends ExternalService { - - @Override - public String service() { - return "mock"; - } -} ----- -<1> Overrides the `@Dependent` scope declared on the `@Mock` stereotype. - -It is important that the alternative be present in the `src/test/java` directory rather than `src/main/java`, as otherwise -it will take effect all the time, not just when testing. - -Note that at present this approach does not work with native image testing, as this would required the test alternatives -to be baked into the native image. - -[[quarkus_mock]] -=== Mocking using QuarkusMock - -The `io.quarkus.test.junit.QuarkusMock` class can be used to temporarily mock out any normal scoped -bean. If you use this method in a `@BeforeAll` method the mock will take effect for all tests on the current class, -while if you use this in a test method the mock will only take effect for the duration of the current test. - -This method can be used for any normal scoped CDI bean (e.g. `@ApplicationScoped`, `@RequestScoped` etc, basically -every scope except `@Singleton` and `@Dependent`). - -An example usage could look like: - -[source,java] ----- -@QuarkusTest -public class MockTestCase { - - @Inject - MockableBean1 mockableBean1; - - @Inject - MockableBean2 mockableBean2; - - @BeforeAll - public static void setup() { - MockableBean1 mock = Mockito.mock(MockableBean1.class); - Mockito.when(mock.greet("Stuart")).thenReturn("A mock for Stuart"); - QuarkusMock.installMockForType(mock, MockableBean1.class); // <1> - } - - @Test - public void testBeforeAll() { - Assertions.assertEquals("A mock for Stuart", mockableBean1.greet("Stuart")); - Assertions.assertEquals("Hello Stuart", mockableBean2.greet("Stuart")); - } - - @Test - public void testPerTestMock() { - QuarkusMock.installMockForInstance(new BonjourGreeter(), mockableBean2); // <2> - Assertions.assertEquals("A mock for Stuart", mockableBean1.greet("Stuart")); - Assertions.assertEquals("Bonjour Stuart", mockableBean2.greet("Stuart")); - } - - @ApplicationScoped - public static class MockableBean1 { - - public String greet(String name) { - return "Hello " + name; - } - } - - @ApplicationScoped - public static class MockableBean2 { - - public String greet(String name) { - return "Hello " + name; - } - } - - public static class BonjourGreeter extends MockableBean2 { - @Override - public String greet(String name) { - return "Bonjour " + name; - } - } -} ----- -<1> As the injected instance is not available here we use `installMockForType`, this mock is used for both test methods -<2> We use `installMockForInstance` to replace the injected bean, this takes effect for the duration of the test method. - -Note that there is no dependency on Mockito, you can use any mocking library you like, or even manually override the -objects to provide the behaviour you require. - -NOTE: Using `@Inject` will get you a CDI proxy to the mock instance you install, which is not suitable for passing to methods such as `Mockito.verify` -which want the mock instance itself. So if you need to call methods such as `verify` you need to hang on to the mock instance in your test, or use `@InjectMock` -as shown below. - -==== Further simplification with `@InjectMock` - -Building on the features provided by `QuarkusMock`, Quarkus also allows users to effortlessly take advantage of link:https://site.mockito.org/[Mockito] for mocking the beans supported by `QuarkusMock`. -This functionality is available via the `@io.quarkus.test.junit.mockito.InjectMock` annotation which is available in the `quarkus-junit5-mockito` dependency. - -Using `@InjectMock`, the previous example could be written as follows: - -[source,java] ----- -@QuarkusTest -public class MockTestCase { - - @InjectMock - MockableBean1 mockableBean1; // <1> - - @InjectMock - MockableBean2 mockableBean2; - - @BeforeEach - public void setup() { - Mockito.when(mockableBean1.greet("Stuart")).thenReturn("A mock for Stuart"); // <2> - } - - @Test - public void firstTest() { - Assertions.assertEquals("A mock for Stuart", mockableBean1.greet("Stuart")); - Assertions.assertEquals(null, mockableBean2.greet("Stuart")); // <3> - } - - @Test - public void secondTest() { - Mockito.when(mockableBean2.greet("Stuart")).thenReturn("Bonjour Stuart"); // <4> - Assertions.assertEquals("A mock for Stuart", mockableBean1.greet("Stuart")); - Assertions.assertEquals("Bonjour Stuart", mockableBean2.greet("Stuart")); - } - - @ApplicationScoped - public static class MockableBean1 { - - public String greet(String name) { - return "Hello " + name; - } - } - - @ApplicationScoped - public static class MockableBean2 { - - public String greet(String name) { - return "Hello " + name; - } - } -} ----- -<1> `@InjectMock` results in a mock being and is available in test methods of the test class (other test classes are *not* affected by this) -<2> The `mockableBean1` is configured here for every test method of the class -<3> Since the `mockableBean2` mock has not been configured, it will return the default Mockito response. -<4> In this test the `mockableBean2` is configured, so it returns the configured response. - -Although the test above is good for showing the capabilities of `@InjectMock`, it is not a good representation of a real test. In a real test -we would most likely configure a mock, but then test a bean that uses the mocked bean. -Here is an example: - -[source,java] ----- -@QuarkusTest -public class MockGreetingServiceTest { - - @InjectMock - GreetingService greetingService; - - @Test - public void testGreeting() { - when(greetingService.greet()).thenReturn("hi"); - given() - .when().get("/greeting") - .then() - .statusCode(200) - .body(is("hi")); // <1> - } - - @Path("greeting") - public static class GreetingResource { - - final GreetingService greetingService; - - public GreetingResource(GreetingService greetingService) { - this.greetingService = greetingService; - } - - @GET - @Produces("text/plain") - public String greet() { - return greetingService.greet(); - } - } - - @ApplicationScoped - public static class GreetingService { - public String greet(){ - return "hello"; - } - } -} ----- -<1> Since we configured `greetingService` as a mock, the `GreetingResource` which uses the `GreetingService` bean, we get the mocked response instead of the response of the regular `GreetingService` bean - -By default the `@InjectMock` annotation can be used for any normal CDI scoped bean (e.g. `@ApplicationScoped`, `@RequestScoped`). -Mocking `@Singleton` beans can be performed by setting the `convertScopes` property to true (such as `@InjectMock(convertScopes = true`). -This will convert the `@Singleton` bean to an `@ApplicationScoped` bean for the test. - -This is considered an advanced option and should only be performed if you fully understand the consequences of changing the scope of the bean. - -==== Using Spies instead of Mocks with `@InjectSpy` - -Building on the features provided by `InjectMock`, Quarkus also allows users to effortlessly take advantage of link:https://site.mockito.org/[Mockito] for spying on the beans supported by `QuarkusMock`. -This functionality is available via the `@io.quarkus.test.junit.mockito.InjectSpy` annotation which is available in the `quarkus-junit5-mockito` dependency. - -Sometimes when testing you only need to verify that a certain logical path was taken, or you only need to stub out a single method's response while still executing the rest of the methods on the Spied clone. Please see link:https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#spy-T-[Mockito documentation] for more details on Spy partial mocks. -In either of those situations a Spy of the object is preferable. -Using `@InjectSpy`, the previous example could be written as follows: - -[source,java] ----- -@QuarkusTest -public class SpyGreetingServiceTest { - - @InjectSpy - GreetingService greetingService; - - @Test - public void testDefaultGreeting() { - given() - .when().get("/greeting") - .then() - .statusCode(200) - .body(is("hello")); - - Mockito.verify(greetingService, Mockito.times(1)).greet(); <1> - } - - @Test - public void testOverrideGreeting() { - when(greetingService.greet()).thenReturn("hi"); <2> - given() - .when().get("/greeting") - .then() - .statusCode(200) - .body(is("hi")); <3> - } - - @Path("greeting") - public static class GreetingResource { - - final GreetingService greetingService; - - public GreetingResource(GreetingService greetingService) { - this.greetingService = greetingService; - } - - @GET - @Produces("text/plain") - public String greet() { - return greetingService.greet(); - } - } - - @ApplicationScoped - public static class GreetingService { - public String greet(){ - return "hello"; - } - } -} ----- -<1> Instead of overriding the value, we just want to ensure that the greet method on our `GreetingService` was called by this test. -<2> Here we are telling the Spy to return "hi" instead of "hello". When the `GreetingResource` requests the greeting from `GreetingService` we get the mocked response instead of the response of the regular `GreetingService` bean -<3> We are verifying that we get the mocked response from the Spy. - -==== Using `@InjectMock` with `@RestClient` - -The `@RegisterRestClient` registers the implementation of the rest-client at runtime, and because the bean needs to be a regular scope, you have to annotate your interface with `@ApplicationScoped`. - -[source,java] ----- -@Path("/") -@ApplicationScoped -@RegisterRestClient -public interface GreetingService { - - @GET - @Path("/hello") - @Produces(MediaType.TEXT_PLAIN) - String hello(); -} ----- - -For the test class here is an example: - -[source,java] ----- -@QuarkusTest -public class GreetingResourceTest { - - @InjectMock - @RestClient // <1> - GreetingService greetingService; - - @Test - public void testHelloEndpoint() { - Mockito.when(greetingService.hello()).thenReturn("hello from mockito"); - - given() - .when().get("/hello") - .then() - .statusCode(200) - .body(is("hello from mockito")); - } - -} ----- -<1> Indicate that this injection point is meant to use an instance of `RestClient`. - -=== Mocking with Panache - -If you are using the `quarkus-hibernate-orm-panache` or `quarkus-mongodb-panache` extensions, check out the xref:hibernate-orm-panache.adoc#mocking[Hibernate ORM with Panache Mocking] and xref:mongodb-panache.adoc#mocking[MongoDB with Panache Mocking] documentation for the easiest way to mock your data access. - -== Testing Security - -If you are using Quarkus Security, check out the xref:security-testing.adoc[Testing Security] section for information on how to easily test security features of the application. - -[#quarkus-test-resource] -== Starting services before the Quarkus application starts - -A very common need is to start some services on which your Quarkus application depends, before the Quarkus application starts for testing. To address this need, Quarkus provides `@io.quarkus.test.common.QuarkusTestResource` and `io.quarkus.test.common.QuarkusTestResourceLifecycleManager`. - -By simply annotating any test in the test suite with `@QuarkusTestResource`, Quarkus will run the corresponding `QuarkusTestResourceLifecycleManager` before any tests are run. -A test suite is also free to utilize multiple `@QuarkusTestResource` annotations, in which case all the corresponding `QuarkusTestResourceLifecycleManager` objects will be run before the tests. When using multiple test resources they can be started concurrently. For that you need to set `@QuarkusTestResource(parallel = true)`. - -NOTE: test resources are global, even if they are defined on a test class or custom profile, which means they will all be activated for all tests, even though we do -remove duplicates. If you want to only enable a test resource on a single test class or test profile, you can use `@QuarkusTestResource(restrictToAnnotatedClass = true)`. - -Quarkus provides a few implementations of `QuarkusTestResourceLifecycleManager` out of the box (see `io.quarkus.test.h2.H2DatabaseTestResource` which starts an H2 database, or `io.quarkus.test.kubernetes.client.KubernetesServerTestResource` which starts a mock Kubernetes API server), -but it is common to create custom implementations to address specific application needs. -Common cases include starting docker containers using https://www.testcontainers.org/[Testcontainers] (an example of which can be found https://github.com/quarkusio/quarkus/blob/main/test-framework/keycloak-server/src/main/java/io/quarkus/test/keycloak/server/KeycloakTestResourceLifecycleManager.java[here]), -or starting a mock HTTP server using http://wiremock.org/[Wiremock] (an example of which can be found https://github.com/geoand/quarkus-test-demo/blob/main/src/test/java/org/acme/getting/started/country/WiremockCountries.java[here]). - - -=== Altering the test class -When creating a custom `QuarkusTestResourceLifecycleManager` that needs to inject the something into the test class, the `inject` methods can be used. -If for example you have a test like the following: - -[source,java] ----- -@QuarkusTest -@QuarkusTestResource(MyWireMockResource.class) -public class MyTest { - - @InjectWireMock // this a custom annotation you are defining in your own application - WireMockServer wireMockServer; - - @Test - public someTest() { - // control wiremock in some way and perform test - } -} ----- - -Making `MyWireMockResource` inject the `wireMockServer` field can be done as shown in the `inject` method of the following code snippet: - -[source,java] ----- -public class MyWireMockResource implements QuarkusTestResourceLifecycleManager { - - WireMockServer wireMockServer; - - @Override - public Map start() { - wireMockServer = new WireMockServer(8090); - wireMockServer.start(); - - // create some stubs - - return Map.of("some.service.url", "localhost:" + wireMockServer.port()); - } - - @Override - public synchronized void stop() { - if (wireMockServer != null) { - wireMockServer.stop(); - wireMockServer = null; - } - } - - @Override - public void inject(TestInjector testInjector) { - testInjector.injectIntoFields(wireMockServer, new TestInjector.AnnotatedAndMatchesType(InjectWireMock.class, WireMockServer.class)); - } -} ----- - -IMPORTANT: It is worth mentioning that this injection into the test class is not under the control of CDI and happens after CDI has performed -any necessary injections into the test class. - -=== Annotation-based test resources - -It is possible to write test resources that are enabled and configured using annotations. This is enabled by placing the `@QuarkusTestResource` -on an annotation which will be used to enable and configure the test resource. - -For example, this defines the `@WithKubernetesTestServer` annotation, which you can use on your tests to activate the `KubernetesServerTestResource`, -but only for the annotated test class. You can also place them on your `QuarkusTestProfile` test profiles. - -[source,java] ----- -@QuarkusTestResource(KubernetesServerTestResource.class) -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.TYPE) -public @interface WithKubernetesTestServer { - /** - * Start it with HTTPS - */ - boolean https() default false; - - /** - * Start it in CRUD mode - */ - boolean crud() default true; - - /** - * Port to use, defaults to any available port - */ - int port() default 0; -} ----- - -The `KubernetesServerTestResource` class has to implement the -`QuarkusTestResourceConfigurableLifecycleManager` interface in order to be configured using the previous annotation: - -[source,java] ----- -public class KubernetesServerTestResource - implements QuarkusTestResourceConfigurableLifecycleManager { - - private boolean https = false; - private boolean crud = true; - private int port = 0; - - @Override - public void init(WithKubernetesTestServer annotation) { - this.https = annotation.https(); - this.crud = annotation.crud(); - this.port = annotation.port(); - } - - // ... -} ----- - -== Hang Detection - -`@QuarkusTest` has support for hang detection to help diagnose any unexpected hangs. If no progress is made for a specified -time (i.e. no JUnit callbacks are invoked) then Quarkus will print a stack trace to the console to help diagnose the hang. -The default value for this timeout is 10 minutes. - -No further action will be taken, and the tests will continue as normal (generally until CI times out), however the printed -stack traces should help diagnose why the build has failed. You can control this timeout with the -`quarkus.test.hang-detection-timeout` system property (you can also set this in application.properties, but this won't -be read until Quarkus has started, so the timeout for Quarkus start will be the default of 10 minutes). - -== Native Executable Testing - -It is also possible to test native executables using `@NativeImageTest`. This supports all the features mentioned in this -guide except injecting into tests (and the native executable runs in a separate non-JVM process this is not really possible). - - -This is covered in the xref:building-native-image.adoc[Native Executable Guide]. - -[WARNING] -==== -Although `@NativeImageTest` is not yet deprecated, it will be in the future as its functionality is covered by `@QuarkusIntegrationTest` -which is described in the following section. -==== - -[#quarkus-integration-test] -== Using @QuarkusIntegrationTest - -`@QuarkusIntegrationTest` should be used to launch and test the artifact produced by the Quarkus build, and supports testing a jar (of whichever type), a native image or container image. -Put simply, this means that if the result of a Quarkus build (`mvn package` or `gradle build`) is a jar, that jar will be launched as `java -jar ...` and tests run against it. -If instead a native image was built, then the application is launched as `./application ...` and again the tests run against the running application. -Finally, if a container image was created during the build (by including the `quarkus-container-image-jib` or `quarkus-container-image-docker` extensions and having the -`quarkus.container-image.build=true` property configured), then a container is created and run (this requires the `docker` executable being present). - -As is the case with `@NativeImageTest`, this is a black box test that supports the same set features and has the same limitations. - -[NOTE] -==== -As a test annotated with `@QuarkusIntegrationTest` tests the result of the build, it should be run as part of the integration test suite - i.e. via the `maven-failsafe-plugin` if using Maven or an additional task if using Gradle. -These tests will **not** work if run in the same phase as `@QuarkusTest` as Quarkus has not yet created the final artifact. -==== - -=== Launching containers - -When `@QuarkusIntegrationTest` results in launching a container (because the application was built with `quarkus.container-image.build` set to `true`), the container is launched on a predictable container network. This facilitates writing integration tests that need to launch services to support the application. -This means that `@QuarkusIntegrationTest` works out of the box with containers launched via xref:dev-services.adoc[Dev Services], but it also means that it enables using <> resources that launch additional containers. -This can be achieved by having your `QuarkusTestLifecycleManager` implement `io.quarkus.test.common.DevServicesContext.ContextAware`. A simple example could be the following: - -[source,java] ----- -import io.quarkus.test.common.DevServicesContext; -import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; - -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; - -public class CustomResource implements QuarkusTestResourceLifecycleManager, DevServicesContext.ContextAware { - - private Optional containerNetworkId; - - @Override - public void setIntegrationTestContext(DevServicesContext context) { - containerNetworkId = context.containerNetworkId(); - } - - @Override - public Map start() { - // start a container making sure to call withNetworkMode() with the value of containerNetworkId if present - - // return a map containing the configuration the application needs to use the service - return new HashMap<>(); - } - - @Override - public void stop() { - // close container - } -} ----- - -`CustomResource` would be activated on a `@QuarkusIntegrationTest` using `@QuarkusTestResource` as is described in the corresponding section of this doc. - -=== Executing against a running application - -[WARNING] -==== -This feature is considered experimental and is likely to change in future versions of Quarkus. -==== - -`@QuarkusIntegrationTest` supports executing tests against an already running instance of the application. This can be achieved by setting the -`quarkus.http.test-host` system property when running the tests. - -An example use of this could be the following Maven command, that forces `@QuarkusIntegrationTest` to execute against that is accessible at `http://1.2.3.4:4321`: - -[source,bash] ----- -./mvnw verify -Dquarkus.http.test-host=1.2.3.4 -Dquarkus.http.test-port=4321 ----- - - -== Mixing `@QuarkusTest` with other type of tests - -Mixing tests annotated with `@QuarkusTest` with tests annotated with either `@QuarkusDevModeTest`, `@QuarkusProdModeTest` or `@QuarkusUnitTest` -is not allowed in a single execution run (in a single Maven Surefire Plugin execution, for instance), -while the latter three can coexist. - -The reason of this restriction is that `@QuarkusTest` starts a Quarkus server for the whole lifetime of the tests execution run, -thus preventing the other tests to start their own Quarkus server. - -To alleviate this restriction, the `@QuarkusTest` annotation defines a JUnit 5 `@Tag`: `io.quarkus.test.junit.QuarkusTest`. -You can use this tag to isolate the `@QuarkusTest` test in a specific execution run, for example with the Maven Surefire Plugin: - -[source,xml] ----- - - maven-surefire-plugin - ${surefire-plugin.version} - - - default-test - - test - - - io.quarkus.test.junit.QuarkusTest - - - - quarkus-test - - test - - - io.quarkus.test.junit.QuarkusTest - - - - - - org.jboss.logmanager.LogManager - - - ----- - -[[test-from-ide]] -== Running `@QuarkusTest` from an IDE - -Most IDEs offer the possibility to run a selected class as a JUnit test directly. For this you should set a few properties in the settings of your chosen IDE: - -* `java.util.logging.manager` (see xref:logging.adoc[Logging Guide]) - -* `maven.home` (only if there are any custom settings in `${maven.home}/conf/settings.xml`, see xref:maven-tooling.adoc[Maven Guide]) - -* `maven.settings` (in case a custom version of `settings.xml` file should be used for the tests) - -=== Eclipse separate JRE definition - -Copy your current "Installed JRE" definition into a new one, where you will add the properties as a new VM arguments: - -* `-Djava.util.logging.manager=org.jboss.logmanager.LogManager` - -* `-Dmaven.home=` - -Use this JRE definition as your Quarkus project targeted runtime and the workaround will be applied to any "Run as JUnit" configuration. - -=== VSCode "run with" configuration - -The `settings.json` placed in the root of your project directory or in the workspace will need the following workaround in your test configuration: -[source, json] ----- -"java.test.config": [ - { - "name": "quarkusConfiguration", - "vmargs": [ "-Djava.util.logging.manager=org.jboss.logmanager.LogManager -Dmaven.home= ..." ], - ... - }, - ... -] ----- - -=== IntelliJ JUnit template - -Nothing needed in IntelliJ because the IDE will pick the `systemPropertyVariables` from the surefire plugin configuration in `pom.xml`. - -== Testing Dev Services - -By default tests should just work with xref:dev-services.adoc[Dev Services], however from some use cases you may need access to -the automatically configured properties in your tests. - -You can do this with `io.quarkus.test.common.DevServicesContext`, which can be injected directly into any `@QuarkusTest` -or `@QuarkusIntegrationTest`. All you need to do is define a field of type `DevServicesContext` and it will be automatically -injected. Using this you can retrieve any properties that have been set. Generally this is used to directly connect to a -resource from the test itself, e.g. to connect to kafka to send messages to the application under test. - -Injection is also supported into objects that implement `io.quarkus.test.common.DevServicesContext.ContextAware`. If you -have a field that implements `io.quarkus.test.common.DevServicesContext.ContextAware` Quarkus will call the -`setIntegrationTestContext` method to pass the context into this object. This allows client logic to be encapsulated in -a utility class. - -`QuarkusTestResourceLifecycleManager` implementations can also implement `ContextAware` to get access to these properties, -which allows you to setup the resource before Quarkus starts (e.g. configure a KeyCloak instance, add data to a database etc). - - -[NOTE] -==== -For `@QuarkusIntegrationTest` tests that result in launcher the application as a container, `io.quarkus.test.common.DevServicesContext` also provides access to the id of the container network on which the application container was launched (via the `containerNetworkId` method). -This can be used by `QuarkusTestResourceLifecycleManager` that need to launch additional containers that the application will communicate with. -==== - diff --git a/_versions/2.7/guides/getting-started.adoc b/_versions/2.7/guides/getting-started.adoc deleted file mode 100644 index c93906ab67b..00000000000 --- a/_versions/2.7/guides/getting-started.adoc +++ /dev/null @@ -1,493 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Creating Your First Application - -include::./attributes.adoc[] - -:toc: macro -:toclevels: 4 -:doctype: book -:icons: font -:docinfo1: - -:numbered: -:sectnums: -:sectnumlevels: 4 - - -Learn how to create a Hello World Quarkus app. -This guide covers: - -* Bootstrapping an application -* Creating a JAX-RS endpoint -* Injecting beans -* Functional tests -* Packaging of the application - -== Prerequisites - -:prerequisites-no-graalvm: -include::includes/devtools/prerequisites.adoc[] - -[TIP] -.Verify Maven is using the Java you expect -==== -If you have multiple JDK's installed it is not certain Maven will pick up the expected java -and you could end up with unexpected results. -You can verify which JDK Maven uses by running `mvn --version`. -==== - - -== Architecture - -In this guide, we create a straightforward application serving a `hello` endpoint. To demonstrate -dependency injection, this endpoint uses a `greeting` bean. - -image::getting-started-architecture.png[alt=Architecture, align=center] - -This guide also covers the testing of the endpoint. - -== Solution - -We recommend that you follow the instructions from <> and onwards to create the application step by step. - -However, you can go right to the completed example. - -Download an {quickstarts-archive-url}[archive] or clone the git repository: - -[source,bash,subs=attributes+] ----- -git clone {quickstarts-clone-url} ----- - -The solution is located in the `getting-started` {quickstarts-tree-url}/getting-started[directory]. - -== Bootstrapping the project - -The easiest way to create a new Quarkus project is to open a terminal and run the following command: - -For Linux & MacOS users - -:create-app-artifact-id: getting-started -:create-app-extensions: resteasy -:create-app-code: -include::includes/devtools/create-app.adoc[] - -For Windows users - -- If using cmd , (don't use backward slash `\` and put everything on the same line) -- If using Powershell , wrap `-D` parameters in double quotes e.g. `"-DprojectArtifactId=getting-started"` - -It generates the following in `./getting-started`: - -* the Maven structure -* an `org.acme.GreetingResource` resource exposed on `/hello` -* an associated unit test -* a landing page that is accessible on `http://localhost:8080` after starting the application -* example `Dockerfile` files for both `native` and `jvm` modes in `src/main/docker` -* the application configuration file - -Once generated, look at the `pom.xml`. -You will find the import of the Quarkus BOM, allowing you to omit the version of the different Quarkus dependencies. -In addition, you can see the `quarkus-maven-plugin` responsible of the packaging of the application and also providing the development mode. - -[source,xml,subs=attributes+] ----- - - - - ${quarkus.platform.group-id} - quarkus-bom - ${quarkus.platform.version} - pom - import - - - - - - - - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus-plugin.version} - true - - - - build - generate-code - generate-code-tests - - - - - - ----- - -In a Gradle project, you would find a similar setup: - -* the Quarkus Gradle plugin -* an `enforcedPlatform` directive for the Quarkus BOM - -If we focus on the dependencies section, you can see the extension allowing the development of REST applications: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-resteasy - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-resteasy") ----- - -=== The JAX-RS resources - -During the project creation, the `src/main/java/org/acme/GreetingResource.java` file has been created with the following content: - -[source,java] ----- -package org.acme; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/hello") -public class GreetingResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return "Hello RESTEasy"; - } -} ----- - -It's a very simple REST endpoint, returning "Hello RESTEasy" to requests on "/hello". - -[TIP] -.Differences with vanilla JAX-RS -==== -With Quarkus, there is no need to create an `Application` class. It's supported, but not required. In addition, only one instance -of the resource is created and not one per request. You can configure this using the different `*Scoped` annotations (`ApplicationScoped`, `RequestScoped`, etc). -==== - -== Running the application - -Now we are ready to run our application: - -include::includes/devtools/dev.adoc[] - -[source,shell] ----- -[INFO] --------------------< org.acme:getting-started >--------------------- -[INFO] Building getting-started 1.0.0-SNAPSHOT -[INFO] --------------------------------[ jar ]--------------------------------- -[INFO] -[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ getting-started --- -[INFO] Using 'UTF-8' encoding to copy filtered resources. -[INFO] skip non existing resourceDirectory /getting-started/src/main/resources -[INFO] -[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ getting-started --- -[INFO] Changes detected - recompiling the module! -[INFO] Compiling 2 source files to /getting-started/target/classes -[INFO] -[INFO] --- quarkus-maven-plugin::dev (default-cli) @ getting-started --- -Listening for transport dt_socket at address: 5005 -2019-02-28 17:05:22,347 INFO [io.qua.dep.QuarkusAugmentor] (main) Beginning quarkus augmentation -2019-02-28 17:05:22,635 INFO [io.qua.dep.QuarkusAugmentor] (main) Quarkus augmentation completed in 288ms -2019-02-28 17:05:22,770 INFO [io.quarkus] (main) Quarkus started in 0.668s. Listening on: http://localhost:8080 -2019-02-28 17:05:22,771 INFO [io.quarkus] (main) Installed features: [cdi, resteasy] ----- - -Once started, you can request the provided endpoint: - -[source,shell] ----- -$ curl -w "\n" http://localhost:8080/hello -hello ----- - -Hit `CTRL+C` to stop the application, or keep it running and enjoy the blazing fast hot-reload. - -[TIP] -.Automatically add newline with `curl -w "\n"` -==== -We are using `curl -w "\n"` in this example to avoid your terminal printing a '%' or put both result and next command prompt on the same line. -==== - -== Using injection - -Dependency injection in Quarkus is based on ArC which is a CDI-based dependency injection solution tailored for Quarkus' architecture. -If you're new to CDI then we recommend you to read the xref:cdi.adoc[Introduction to CDI] guide. - -Quarkus only implements a subset of the CDI features and comes with non-standard features and specific APIS, you can learn more about it in the xref:cdi-reference.adoc[Contexts and Dependency Injection guide]. - -ArC comes as a dependency of `quarkus-resteasy` so you already have it handy. - -Let's modify the application and add a companion bean. -Create the `src/main/java/org/acme/GreetingService.java` file with the following content: - -[source, java] ----- -package org.acme; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class GreetingService { - - public String greeting(String name) { - return "hello " + name; - } - -} ----- - -Edit the `GreetingResource` class to inject the `GreetingService` and create a new endpoint using it: - -[source, java] ----- -package org.acme; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -@Path("/hello") -public class GreetingResource { - - @Inject - GreetingService service; - - @GET - @Produces(MediaType.TEXT_PLAIN) - @Path("/greeting/{name}") - public String greeting(@PathParam String name) { - return service.greeting(name); - } - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return "hello"; - } -} ----- - -If you stopped the application -(keep in mind you don't have to do it, changes will be automatically deployed by our live reload feature), -restart the application with: - -include::includes/devtools/dev.adoc[] - -Then check that the endpoint returns `hello quarkus` as expected: - -[source,shell,subs=attributes+] ----- -$ curl -w "\n" http://localhost:8080/hello/greeting/quarkus -hello quarkus ----- - -== Development Mode - -`quarkus:dev` runs Quarkus in development mode. This enables live reload with background compilation, which means -that when you modify your Java files and/or your resource files and refresh your browser, these changes will automatically take effect. -This works too for resource files like the configuration property file. -Refreshing the browser triggers a scan of the workspace, and if any changes are detected, the Java files are recompiled -and the application is redeployed; your request is then serviced by the redeployed application. If there are any issues -with compilation or deployment an error page will let you know. - -This will also listen for a debugger on port `5005`. If you want to wait for the debugger to attach before running you -can pass `-Dsuspend` on the command line. If you don't want the debugger at all you can use `-Ddebug=false`. - -== Testing - -All right, so far so good, but wouldn't it be better with a few tests, just in case. - -In the generated build file, you can see 2 test dependencies: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-junit5 - test - - - io.rest-assured - rest-assured - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-junit5") -testImplementation("io.rest-assured:rest-assured") ----- - -Quarkus supports https://junit.org/junit5/[JUnit 5] tests. - -Because of this, in the case of Maven, the version of the https://maven.apache.org/surefire/maven-surefire-plugin/[Surefire Maven Plugin] must be set, as the default version does not support JUnit 5: - -[source,xml,subs=attributes+] ----- - - maven-surefire-plugin - ${surefire-plugin.version} - - - org.jboss.logmanager.LogManager - ${maven.home} - - - ----- - -We also set the `java.util.logging` system property to make sure tests will use the correct log manager and `maven.home` to ensure that custom configuration -from `${maven.home}/conf/settings.xml` is applied (if any). - -The generated project contains a simple test. -Edit the `src/test/java/org/acme/GreetingResourceTest.java` to match the following content: - -[source,java] ----- -package org.acme; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import java.util.UUID; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -public class GreetingResourceTest { - - @Test // <1> - public void testHelloEndpoint() { - given() - .when().get("/hello") - .then() - .statusCode(200) // <2> - .body(is("hello")); - } - - @Test - public void testGreetingEndpoint() { - String uuid = UUID.randomUUID().toString(); - given() - .pathParam("name", uuid) - .when().get("/hello/greeting/{name}") - .then() - .statusCode(200) - .body(is("hello " + uuid)); - } - -} ----- -<1> By using the `QuarkusTest` runner, you instruct JUnit to start the application before the tests. -<2> Check the HTTP response status code and content - -These tests use http://rest-assured.io/[RestAssured], but feel free to use your favorite library. - -You can run these using Maven: - -[source,bash,subs=attributes+] ----- -./mvnw test ----- - -You can also run the test from your IDE directly (be sure you stopped the application first). - -By default, tests will run on port `8081` so as not to conflict with the running application. We automatically -configure RestAssured to use this port. If you want to use a different client you should use the `@TestHTTPResource` -annotation to directly inject the URL of the tested application into a field on the test class. This field can be of the type -`String`, `URL` or `URI`. This annotation can also be given a value for the test path. For example, if I want to test -a Servlet mapped to `/myservlet` I would just add the following to my test: - - -[source,java] ----- -@TestHTTPResource("/myservlet") -URL testUrl; ----- - -The test port can be controlled via the `quarkus.http.test-port` config property. Quarkus also creates a system -property called `test.url` that is set to the base test URL for situations where you cannot use injection. - -== Working with multi-module project or external modules - -Quarkus heavily utilizes https://github.com/wildfly/jandex[Jandex] at build time, to discover various classes or annotations. One immediately recognizable application of this, is CDI bean discovery. -As a result, most of the Quarkus extensions will not work properly if this build time discovery isn't properly setup. - -This index is created by default on the project on which Quarkus is configured for, thanks to our Maven and Gradle plugins. - -However, when working with a multi-module project, be sure to read the `Working with multi-module projects` section of the -xref:maven-tooling.adoc#multi-module-maven[Maven] or xref:gradle-tooling.adoc#multi-module-maven[Gradle] guides. - -If you plan to use external modules (for example, an external library for all your domain objects), -you will need to make these modules known to the indexing process either by adding the Jandex plugin (if you can modify them) -or via the `quarkus.index-dependency` property inside your `application.properties` (useful in cases where you can't modify the module). - -Be sure to read the xref:cdi-reference.adoc#bean_discovery[Bean Discovery] section of the CDI guide for more information. - -== Packaging and run the application - -The application is packaged using: - -include::includes/devtools/build.adoc[] - -It produces several outputs in `/target`: - -* `getting-started-1.0.0-SNAPSHOT.jar` - containing just the classes and resources of the projects, it's the regular -artifact produced by the Maven build - it is *not* the runnable jar; -* the `quarkus-app` directory which contains the `quarkus-run.jar` jar file - being an executable _jar_. Be aware that it's not an _über-jar_ as -the dependencies are copied into subdirectories of `quarkus-app/lib/`. - -You can run the application using: `java -jar target/quarkus-app/quarkus-run.jar` - -NOTE: If you want to deploy your application somewhere (typically in a container), you need to deploy the whole `quarkus-app` directory. - -NOTE: Before running the application, don't forget to stop the hot reload mode (hit `CTRL+C`), or you will have a port conflict. - -[#banner] -== Configuring the banner - -By default when a Quarkus application starts (in regular or dev mode), it will display an ASCII art banner. The banner can be disabled by setting `quarkus.banner.enabled=false` in `application.properties`, -by setting the `-Dquarkus.banner.enabled=false` Java System Property, or by setting the `QUARKUS_BANNER_ENABLED` environment variable to `false`. -Furthermore, users can supply a custom banner by placing the banner file in `src/main/resources` and configuring `quarkus.banner.path=name-of-file` in `application.properties`. - -== What's next? - -This guide covered the creation of an application using Quarkus. -However, there is much more. -We recommend continuing the journey with the xref:building-native-image.adoc[building a native executable guide], where you learn about creating a native executable and packaging it in a container. -If you are interested in reactive, we recommend the xref:getting-started-reactive.adoc[Getting Started with Reactive guide], where you can see how to implement reactive applications with Quarkus. - -In addition, the xref:tooling.adoc[tooling guide] document explains how to: - -* scaffold a project in a single command line -* enable the _development mode_ (hot reload) -* import the project in your favorite IDE -* and more diff --git a/_versions/2.7/guides/gradle-config.adoc b/_versions/2.7/guides/gradle-config.adoc deleted file mode 100644 index 198d6863572..00000000000 --- a/_versions/2.7/guides/gradle-config.adoc +++ /dev/null @@ -1,49 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Gradle Plugin Repositories - -include::./attributes.adoc[] - -// tag::repositories[] -The Quarkus Gradle plugin is published to the https://plugins.gradle.org/plugin/io.quarkus[Gradle Plugin Portal]. - -To use it, add the following to your `build.gradle` file: - -[source, groovy, subs=attributes+] ----- -plugins { - id 'java' - id 'io.quarkus' -} ----- - -You also need to add the following at the top of your `settings.gradle` file: -[source, groovy, subs=attributes+] ----- -pluginManagement { - repositories { - mavenCentral() - gradlePluginPortal() - } - plugins { - id 'io.quarkus' version "${quarkusPluginVersion}" - } -} ----- - -NOTE:: the `plugins{}` method in `settings.gradle` is not supported in Gradle 5.x. In this case make sure to explicitly declare the plugin version in the `build.gradle` file like the example below: - -[source, groovy, subs=attributes+] ----- -plugins { - id 'java' - id 'io.quarkus' version '{quarkus-version}' -} ----- - - - -// end::repositories[] diff --git a/_versions/2.7/guides/gradle-tooling.adoc b/_versions/2.7/guides/gradle-tooling.adoc deleted file mode 100644 index 8a1155c3cb7..00000000000 --- a/_versions/2.7/guides/gradle-tooling.adoc +++ /dev/null @@ -1,573 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Building Quarkus apps with Gradle - -include::./attributes.adoc[] -:devtools-no-maven: - -[[project-creation]] -== Creating a new project - -To scaffold a Gradle project you can either use the xref:cli-tooling.adoc[Quarkus CLI] or the Quarkus Maven plugin: - -[role="primary asciidoc-tabs-sync-cli"] -.CLI -**** -[source, bash] ----- -quarkus create app my-groupId:my-artifactId \ - --extension=resteasy,resteasy-jackson \ - --gradle ----- - -_For more information about how to install the Quarkus CLI and use it, please refer to xref:cli-tooling.adoc[the Quarkus CLI guide]._ -**** - -[role="secondary asciidoc-tabs-sync-maven"] -.Maven -**** -[source, bash, subs=attributes+] ----- -mvn io.quarkus.platform:quarkus-maven-plugin:{quarkus-version}:create \ - -DprojectGroupId=my-groupId \ - -DprojectArtifactId=my-artifactId \ - -Dextensions="resteasy,resteasy-jackson" \ - -DbuildTool=gradle ----- - -NOTE: If you just launch `mvn io.quarkus.platform:quarkus-maven-plugin:{quarkus-version}:create` the Maven plugin asks -for user inputs. You can disable this interactive mode (and use default values) by passing `-B` to the Maven command. -**** - -TIP: If you prefer using the Kotlin DSL, use `gradle-kotlin-dsl` instead of `gradle`. - -[NOTE] -==== -Quarkus project scaffolding automatically installs the Gradle wrapper (`./gradlew`) in your project. - -If you prefer to use a standalone Gradle installation, please use Gradle {gradle-version}. -==== - -The project is generated in a directory named after the passed artifactId. - -A pair of Dockerfiles for native and JVM modes are also generated in `src/main/docker`. -Instructions to build the image and run the container are written in those Dockerfiles. - -[[custom-test-configuration-profile]] -=== Custom test configuration profile in JVM mode - -By default, Quarkus tests in JVM mode are run using the `test` configuration profile. If you are not familiar with Quarkus -configuration profiles, everything you need to know is explained in the -xref:config.adoc#configuration-profiles[Configuration Profiles Documentation]. - -It is however possible to use a custom configuration profile for your tests with the Gradle build configuration shown below. -This can be useful if you need for example to run some tests using a specific database which is not your default testing -database. - -[role="primary asciidoc-tabs-sync-groovy"] -.Groovy DSL -**** -[source,groovy,subs=attributes+] ----- -test { - systemProperty "quarkus.test.profile", "foo" <1> -} ----- - -<1> The `foo` configuration profile will be used to run the tests. -**** - -[role="secondary asciidoc-tabs-sync-kotlin"] -.Kotlin DSL -**** -[source,kotlin,subs=attributes+] ----- -tasks.test { - systemProperty("quarkus.test.profile", "foo") <1> -} ----- - -<1> The `foo` configuration profile will be used to run the tests. -**** - -[WARNING] -==== -It is not possible to use a custom test configuration profile in native mode for now. Native tests are always run using the -`prod` profile. -==== - -== Dealing with extensions - -From inside a Quarkus project, you can obtain a list of the available extensions with: - -[source,bash,subs=attributes+,role="primary asciidoc-tabs-sync-cli"] -.CLI ----- -quarkus extension ----- - -[source,bash,subs=attributes+,role="secondary asciidoc-tabs-sync-gradle"] -.Gradle ----- -./gradlew listExtensions ----- - -You can enable an extension using: - -:add-extension-extensions: hibernate-validator -include::includes/devtools/extension-add.adoc[] - -Extensions are passed using a comma-separated list. - -The extension name is the GAV name of the extension: e.g. `io.quarkus:quarkus-agroal`. -But you can pass a partial name and Quarkus will do its best to find the right extension. -For example, `agroal`, `Agroal` or `agro` will expand to `io.quarkus:quarkus-agroal`. -If no extension is found or if more than one extensions match, you will see a red check mark ❌ in the command result. - -[source,shell] ----- -$ ./gradlew addExtension --extensions="jdbc,agroal,non-exist-ent" -[...] -❌ Multiple extensions matching 'jdbc' - * io.quarkus:quarkus-jdbc-h2 - * io.quarkus:quarkus-jdbc-mariadb - * io.quarkus:quarkus-jdbc-postgresql - Be more specific e.g using the exact name or the full gav. -✅ Adding extension io.quarkus:quarkus-agroal -❌ Cannot find a dependency matching 'non-exist-ent', maybe a typo? -[...] ----- - -You can install all extensions which match a globbing pattern: - -:add-extension-extensions: smallrye-* -include::includes/devtools/extension-add.adoc[] - -[[dev-mode]] -== Development mode - -Quarkus comes with a built-in development mode. -You can start it with: - -include::includes/devtools/dev.adoc[] - -Note that if you run it this way the continuous testing experience will not be as nice, as gradle runs as a daemon -Quarkus can't draw the 'pretty' test output so falls back to just logging the output. - -You can then update the application sources, resources and configurations. -The changes are automatically reflected in your running application. -This is great to do development spanning UI and database as you see changes reflected immediately. - -`quarkusDev` enables hot deployment with background compilation, which means that when you modify -your Java files or your resource files and refresh your browser these changes will automatically take effect. -This works too for resource files like the configuration property file. -The act of refreshing the browser triggers a scan of the workspace, and if any changes are detected the -Java files are compiled, and the application is redeployed, then your request is serviced by the -redeployed application. If there are any issues with compilation or deployment an error page will let you know. - -Hit `CTRL+C` to stop the application. - -You can change the working directory the development environment runs on: - -[role="primary asciidoc-tabs-sync-groovy"] -.Groovy DSL -**** -[source,groovy] ----- -quarkusDev { - workingDir = rootProject.projectDir -} ----- -**** - -[role="secondary asciidoc-tabs-sync-kotlin"] -.Kotlin DSL -**** -[source,kotlin] ----- -tasks.quarkusDev { - workingDir = rootProject.projectDir.toString() -} ----- -**** - -[TIP] -==== -By default, the `quarkusDev` task uses `compileJava` compiler options. These can be overridden by setting the `compilerArgs` property in the task. -==== - -[NOTE] -==== -By default, `quarkusDev` sets the debug host to `localhost` (for security reasons). If you need to change this, for example to enable debugging on all hosts, you can use the `-DdebugHost` option like so: - -:dev-additional-parameters: -DdebugHost=0.0.0.0 -include::includes/devtools/dev-parameters.adoc[] -:!dev-additional-parameters: -==== -The plugin also exposes a `quarkusDev` configuration. Using this configuration to declare a dependency will restrict the usage of that dependency to development mode. -The `quarkusDev` configuration can be used as following: - -[role="primary asciidoc-tabs-sync-groovy"] -.Groovy DSL -**** -[source,groovy] ----- -dependencies { - quarkusDev 'io.quarkus:quarkus-jdbc-h2' -} ----- -**** - -[role="secondary asciidoc-tabs-sync-kotlin"] -.Kotlin DSL -**** -[source,kotlin] ----- -dependencies { - quarkusDev("io.quarkus:quarkus-jdbc-h2") -} ----- -**** - -=== Remote Development Mode - -It is possible to use development mode remotely, so that you can run Quarkus in a container environment (such as OpenShift) -and have changes made to your local files become immediately visible. - -This allows you to develop in the same environment you will actually run your app in, and with access to the same services. - -WARNING: Do not use this in production. This should only be used in a development environment. You should not run production applications in dev mode. - -To do this you must build a mutable application, using the `mutable-jar` format. Set the following properties in `application.properties`: - -[source,properties] ----- -quarkus.package.type=mutable-jar <1> -quarkus.live-reload.password=changeit <2> -quarkus.live-reload.url=http://my.cluster.host.com:8080 <3> ----- -<1> This tells Quarkus to use the mutable-jar format. Mutable applications also include the deployment time parts of Quarkus, -so they take up a bit more disk space. If run normally they start just as fast and use the same memory as an immutable application, -however they can also be started in dev mode. -<2> The password that is used to secure communication between the remote side and the local side. -<3> The URL that your app is going to be running in dev mode at. This is only needed on the local side, so you -may want to leave it out of the properties file and specify it as a system property on the command line. - -The `mutable-jar` is then built in the same way that a regular Quarkus jar is built, i.e. by issuing: - -include::includes/devtools/build.adoc[] - -Before you start Quarkus on the remote host set the environment variable `QUARKUS_LAUNCH_DEVMODE=true`. If you are -on bare metal you can set it via the `export QUARKUS_LAUNCH_DEVMODE=true` command and then run the application with the proper `java -jar ...` command to run the application. - -If you plan on running the application via Docker, then you'll need to add `-e QUARKUS_LAUNCH_DEVMODE=true` to the `docker run` command. -When the application starts you should now see the following line in the logs: `Profile dev activated. Live Coding activated`. - - -NOTE: The remote side does not need to include Maven or any other development tools. The normal `fast-jar` Dockerfile -that is generated with a new Quarkus application is all you need. If you are using bare metal launch the Quarkus runner -jar, do not attempt to run normal devmode. - -Now you need to connect your local agent to the remote host, using the `remote-dev` command: - -[source,bash] ----- -./gradlew quarkusRemoteDev -Dquarkus.live-reload.url=http://my-remote-host:8080 ----- - -Now every time you refresh the browser you should see any changes you have made locally immediately visible in the remote -app. - -All the config options are shown below: - -include::{generated-dir}/config/quarkus-live-reload-live-reload-config.adoc[opts=optional, leveloffset=+1] - -== Debugging - -In development mode, Quarkus starts by default with debug mode enabled, listening to port `5005` without suspending the JVM. - -This behavior can be changed by giving the `debug` system property one of the following values: - -* `false` - the JVM will start with debug mode disabled -* `true` - The JVM is started in debug mode and will be listening on port `5005` -* `client` - the JVM will start in client mode and attempt to connect to `localhost:5005` -* `{port}` - The JVM is started in debug mode and will be listening on `{port}` - -An additional system property `suspend` can be used to suspend the JVM, when launched in debug mode. `suspend` supports the following values: - -* `y` or `true` - The debug mode JVM launch is suspended -* `n` or `false` - The debug mode JVM is started without suspending - -[TIP] -==== -You can also run a Quarkus application in debug mode with a suspended JVM using: - -:dev-additional-parameters: -Dsuspend -Ddebug -include::includes/devtools/dev-parameters.adoc[] -:!dev-additional-parameters: - -Then, attach your debugger to `localhost:5005`. -==== - -== Import in your IDE - -Once you have a <>, you can import it in your favorite IDE. -The only requirement is the ability to import a Gradle project. - -**Eclipse** - -In Eclipse, click on: `File -> Import`. -In the wizard, select: `Gradle -> Existing Gradle Project`. -On the next screen, select the root location of the project. -The next screen list the found modules; select the generated project and click on `Finish`. Done! - -In a separated terminal, run: - -include::includes/devtools/dev.adoc[] - -and enjoy a highly productive environment. - -**IntelliJ** - -In IntelliJ: - -1. From inside IntelliJ select `File -> New -> Project From Existing Sources...` or, if you are on the welcome dialog, select `Import project`. -2. Select the project root -3. Select `Import project from external model` and `Gradle` -4. Next a few times (review the different options if needed) -5. On the last screen click on Finish - -In a separated terminal or in the embedded terminal, run: - -include::includes/devtools/dev.adoc[] - -Enjoy! - -**Apache NetBeans** - -In NetBeans: - -1. Select `File -> Open Project` -2. Select the project root -3. Click on `Open Project` - -In a separated terminal or the embedded terminal, go to the project root and run: - -include::includes/devtools/dev.adoc[] - -Enjoy! - -**Visual Studio Code** - -Open the project directory in VS Code. If you have installed the Java Extension Pack (grouping a set of Java extensions), the project is loaded as a Gradle project. - -== Downloading dependencies for offline development and testing - -Quarkus extension dependencies are divided into the runtime extension dependencies that end up on the application runtime -classpath and the deployment (or build time) extension dependencies that are resolved by Quarkus only at application build time to create -the build classpath. Application developers are expected to express dependencies only on the runtime artifacts of Quarkus extensions. - -To enable the use-case of building and testing a Quarkus application offline, the plugin includes the `quarkusGoOffline` task that could be called from the command line like this: - -[source,bash] ----- -./gradlew quarkusGoOffline ----- - -This task will resolve all the runtime, build time, test and dev mode dependencies of the application to the Gradle cache. -Once executed, you will be able to safely run quarkus task with `--offline` flag. - -== Building a native executable - -Native executables make Quarkus applications ideal for containers and serverless workloads. - -Make sure to have `GRAALVM_HOME` configured and pointing to GraalVM version {graalvm-version} (Make sure to use a Java 11 version of GraalVM). - -Create a native executable using: - -include::includes/devtools/build-native.adoc[] - -A native executable will be present in `build/`. - -Native related properties can either be added in `application.properties` file, as command line arguments or in the `quarkusBuild` task. -Configuring the `quarkusBuild` task can be done as following: - -[role="primary asciidoc-tabs-sync-groovy"] -.Groovy DSL -**** -[source,groovy,subs=attributes+] ----- -quarkusBuild { - nativeArgs { - containerBuild = true <1> - builderImage = "quay.io/quarkus/ubi-quarkus-native-image:{graalvm-flavor}" <2> - } -} ----- - -<1> Set `quarkus.native.container-build` property to `true` -<2> Set `quarkus.native.builder-image` property to `quay.io/quarkus/ubi-quarkus-native-image:{graalvm-flavor}` -**** - -[role="secondary asciidoc-tabs-sync-kotlin"] -.Kotlin DSL -**** -[source,kotlin,subs=attributes+] ----- -tasks.quarkusBuild { - nativeArgs { - "container-build" to true <1> - "builder-image" to "quay.io/quarkus/ubi-quarkus-native-image:{graalvm-flavor}" <2> - } -} ----- - -<1> Set `quarkus.native.container-build` property to `true` -<2> Set `quarkus.native.builder-image` property to `quay.io/quarkus/ubi-quarkus-native-image:{graalvm-flavor}` -**** - -[WARNING] -==== -When using the Gradle Groovy DSL, property keys must follow lower camel case notation. -e.g. `container-build` is not valid, and should be replaced by `containerBuild`. -This limitation does not apply to the Gradle Kotlin DSL. -==== - -=== Build a container friendly executable - -The native executable will be specific to your operating system. -To create an executable that will run in a container, use the following: - -include::includes/devtools/build-native-container.adoc[] - -The produced executable will be a 64 bit Linux executable, so depending on your operating system it may no longer be runnable. -However, it's not an issue as we are going to copy it to a Docker container. -Note that in this case the build itself runs in a Docker container too, so you don't need to have GraalVM installed locally. - -[TIP] -==== -By default, the native executable will be generated using the `quay.io/quarkus/ubi-quarkus-native-image:{graalvm-flavor}` Docker image. - -If you want to build a native executable with a different Docker image (for instance to use a different GraalVM version), -use the `-Dquarkus.native.builder-image=` build argument. - -The list of the available Docker images can be found on https://quay.io/repository/quarkus/ubi-quarkus-native-image?tab=tags[quay.io]. -Be aware that a given Quarkus version might not be compatible with all the images available. -==== - -== Running native tests - -Run the native tests using: - -[source,bash] ----- -./gradlew testNative ----- - -This task depends on `quarkusBuild`, so it will generate the native image before running the tests. - -[NOTE] -==== -By default, the `native-test` source set is based on `main` and `test` source sets. It is possible to add an extra source set. For example, if your integration tests are located in an `integrationTest` source set, you can specify it as: - -[role="primary asciidoc-tabs-sync-groovy"] -.Groovy DSL -**** -[source,groovy] ----- -quarkus { - sourceSets { - extraNativeTest = sourceSets.integrationTest - } -} ----- -**** - -[role="secondary asciidoc-tabs-sync-kotlin"] -.Kotlin DSL -**** -[source,kotlin] ----- -quarkus { - sourceSets { - setExtraNativeTest(sourceSets["integrationTest"]) - } -} ----- -**** - -==== - -== Using fast-jar - -`fast-jar` is now the default quarkus package type. The result of `./gradlew build` command is a new directory under `build` named `quarkus-app`. - -You can run the application using: `java -jar target/quarkus-app/quarkus-run.jar`. - -WARNING: In order to successfully run the produced jar, you need to have the entire contents of the `quarkus-app` directory. If any of the files are missing, the application will not start or -might not function correctly. - -TIP: The `fast-jar` packaging results in creating an artifact that starts a little faster and consumes slightly less memory than a legacy Quarkus jar -because it has indexed information about which dependency jar contains classes and resources. It can thus avoid the lookup into potentially every jar -on the classpath that the legacy jar necessitates, when loading a class or resource. - -== Building Uber-Jars - -Quarkus Gradle plugin supports the generation of Uber-Jars by specifying a `quarkus.package.type` argument as follows: - -:build-additional-parameters: -Dquarkus.package.type=uber-jar -include::includes/devtools/build.adoc[] -:!build-additional-parameters: - -When building an Uber-Jar you can specify entries that you want to exclude from the generated jar by using the `--ignored-entry` argument: - -[source,bash] ----- -./gradlew quarkusBuild -Dquarkus.package.type=uber-jar --ignored-entry=META-INF/file1.txt ----- - -The entries are relative to the root of the generated Uber-Jar. You can specify multiple entries by adding extra `--ignored-entry` arguments. - -[[multi-module-gradle]] -=== Working with multi-module projects - -By default, Quarkus will not discover CDI beans inside another module. - -The best way to enable CDI bean discovery for a module in a multi-module project would be to include a `META-INF/beans.xml` file, -unless it is the main application module already configured with the quarkus-maven-plugin, in which case it will indexed automatically. - -Alternatively, there is some unofficial link:https://plugins.gradle.org/search?term=jandex[Gradle Jandex plugins] that can be used instead of the `META-INF/beans.xml` file. - -More information on this topic can be found on the xref:cdi-reference.adoc#bean_discovery[Bean Discovery] section of the CDI guide. - - -== Publishing your application - -In order to make sure the right dependency versions are being used by Gradle, the BOM is declared as an `enforcedPlatform` in your build file. -By default, the `maven-publish` plugin will prevent you from publishing your application due to this `enforcedPlatform`. -This validation can be skipped by adding the following configuration in your build file: - -[role="primary asciidoc-tabs-sync-groovy"] -.Groovy DSL -**** -[source,groovy] ----- -tasks.withType(GenerateModuleMetadata).configureEach { - suppressedValidationErrors.add('enforced-platform') -} ----- -**** - -[role="secondary asciidoc-tabs-sync-kotlin"] -.Kotlin DSL -**** -[source,kotlin] ----- -tasks.withType().configureEach { - suppressedValidationErrors.add("enforced-platform") -} ----- -**** diff --git a/_versions/2.7/guides/grpc-getting-started.adoc b/_versions/2.7/guides/grpc-getting-started.adoc deleted file mode 100644 index 6fe98105456..00000000000 --- a/_versions/2.7/guides/grpc-getting-started.adoc +++ /dev/null @@ -1,428 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Getting Started with gRPC - -include::./attributes.adoc[] - -This page explains how to start using gRPC in your Quarkus application. -While this page describes how to configure it with Maven, it is also possible to use Gradle. - -Let's imagine you have a regular Quarkus project, generated from the https://code.quarkus.io[Quarkus project generator]. -The default configuration is enough, but you can also select some extensions if you want. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `grpc-plain-text-quickstart` {quickstarts-tree-url}/grpc-plain-text-quickstart[directory]. - -== Configuring your project - -Edit the `pom.xml` file to add the Quarkus gRPC extension dependency (just under ``): - -[source,xml] ----- - - io.quarkus - quarkus-grpc - ----- - -By default the `quarkus-grpc` extension relies on reactive programming model, in this guide we will follow reactive approach. -Under the dependencies section of your `pom.xml` file replace the `quarkus-resteasy` dependency with: - -[source,xml] ----- - - io.quarkus - quarkus-resteasy-reactive - ----- - -Make sure you have `generate-code` goal of `quarkus-maven-plugin` enabled in your `pom.xml`. -If you wish to generate code from different `proto` files for tests, also add the `generate-code-tests` goal. -Please note that no additional task/goal is required for the Gradle plugin. - -[source,xml] ----- - - - - io.quarkus - quarkus-maven-plugin - ${quarkus-plugin.version} - true - - - - build - generate-code - generate-code-tests - - - - - - ----- - -With this configuration, you can put your service and message definitions in the `src/main/proto` directory. -`quarkus-maven-plugin` will generate Java files from your `proto` files. - -`quarkus-maven-plugin` retrieves a version of `protoc` (the protobuf compiler) from Maven repositories. The retrieved version matches your operating system and CPU architecture. -If this retrieved version does not work in your context, you can either force to use a different OS classifier with -`-Dquarkus.grpc.protoc-os-classifier=your-os-classifier` (e.g. `osx-x86_64`). -You can also download the suitable binary and specify the location via -`-Dquarkus.grpc.protoc-path=/path/to/protoc`. - - -Alternatively to using the `generate-code` goal of the `quarkus-maven-plugin`, you can use `protobuf-maven-plugin` to generate these files, more in <> - -Let's start with a simple _Hello_ service. -Create the `src/main/proto/helloworld.proto` file with the following content: - -[source,javascript] ----- -syntax = "proto3"; - -option java_multiple_files = true; -option java_package = "io.quarkus.example"; -option java_outer_classname = "HelloWorldProto"; - -package helloworld; - -// The greeting service definition. -service Greeter { - // Sends a greeting - rpc SayHello (HelloRequest) returns (HelloReply) {} -} - -// The request message containing the user's name. -message HelloRequest { - string name = 1; -} - -// The response message containing the greetings -message HelloReply { - string message = 1; -} ----- - -This `proto` file defines a simple service interface with a single method (`SayHello`), and the exchanged messages (`HelloRequest` containing the name and `HelloReply` containing the greeting message). - -Before coding, we need to generate the classes used to implement and consume gRPC services. -In a terminal, run: - -[source,shell] ----- -$ mvn compile ----- - -Once generated, you can look at the `target/generated-sources/grpc` directory: - -[source,txt] ----- -target/generated-sources/grpc -└── io - └── quarkus - └── example - ├── Greeter.java - ├── GreeterBean.java - ├── GreeterClient.java - ├── GreeterGrpc.java - ├── HelloReply.java - ├── HelloReplyOrBuilder.java - ├── HelloRequest.java - ├── HelloRequestOrBuilder.java - ├── HelloWorldProto.java - └── MutinyGreeterGrpc.java ----- - -These are the classes we are going to use. - - -=== `proto` files with imports - -Protocol Buffers specification provides a way to import `proto` files. -The Quarkus code generation mechanism lets you control the scope of dependencies to scan for possible imports by setting the `quarkus.generate-code.grpc.scan-for-imports` property to one of the following: - -- `all` - scan all the dependencies -- `none` - don't scan the dependencies, use only what is defined in the `src/main/proto` or `src/test/proto` -- `groupId1:artifactId1,groupId2:artifactId2` - scan only the dependencies with group id and artifact id in the list. - -If not specified, the property is set to `com.google.protobuf:protobuf-java`. -To override it, set the `quarkus.generate-code.grpc.scan-for-imports` property in your application.properties to the desired value, e.g. - -[source,properties] ----- -quarkus.generate-code.grpc.scan-for-imports=all ----- - -=== `proto` files from dependencies -In some cases, you may want to use `proto` files from a different project to generate the gRPC stubs. In this case: - -1. Add a dependency on the artifact that contains the proto file to your project -2. In `application.properties`, specify the dependencies you want to scan for proto files. - -[source,properties] ----- -quarkus.generate-code.grpc.scan-for-proto=: ----- -The value of the property may be `none`, which is the default value, or a comma separated list of `groupId:artifactId` coordinates. - -== Implementing a gRPC service - -Now that we have the generated classes let's implement our _hello_ service. - -With Quarkus, implementing a service requires to implement the generated service interface based on Mutiny, a Reactive Programming API integrated in Quarkus, and expose it as a CDI bean. -Learn more about Mutiny on the xref:mutiny-primer.adoc[Mutiny guide]. -The service class must be annotated with the `@io.quarkus.grpc.GrpcService` annotation. - -=== Implementing a service - -Create the `src/main/java/org/acme/HelloService.java` file with the following content: - -[source,java] ----- -package org.acme; - -import io.grpc.stub.StreamObserver; -import io.quarkus.example.Greeter; -import io.quarkus.example.HelloReply; -import io.quarkus.example.HelloRequest; -import io.quarkus.grpc.GrpcService; -import io.smallrye.mutiny.Uni; - -@GrpcService <1> -public class HelloService implements Greeter { <2> - - @Override - public Uni sayHello(HelloRequest request) { <3> - return Uni.createFrom().item(() -> - HelloReply.newBuilder().setMessage("Hello " + request.getName()).build() - ); - } -} ----- -<1> Expose your implementation as a bean. -<2> Implement the generated service interface. -<3> Implement the methods defined in the service definition (here we have a single method). - -You can also use the default gRPC API instead of Mutiny: - -[source,java] ----- -package org.acme; - -import io.grpc.stub.StreamObserver; -import io.quarkus.example.GreeterGrpc; -import io.quarkus.example.HelloReply; -import io.quarkus.example.HelloRequest; -import io.quarkus.grpc.GrpcService; - -@GrpcService <1> -public class HelloService extends GreeterGrpc.GreeterImplBase { <2> - - @Override - public void sayHello(HelloRequest request, StreamObserver responseObserver) { <3> - String name = request.getName(); - String message = "Hello " + name; - responseObserver.onNext(HelloReply.newBuilder().setMessage(message).build()); <4> - responseObserver.onCompleted(); <5> - } -} ----- -<1> Expose your implementation as a bean. -<2> Extends the `ImplBase` class. This is a generated class. -<3> Implement the methods defined in the service definition (here we have a single method). -<4> Build and send the response. -<5> Close the response. - -NOTE: If your service implementation logic is blocking (use blocking I/O for example), annotate your method with -`@Blocking`. -The `io.smallrye.common.annotation.Blocking` annotation instructs the framework to invoke the -annotated method on a worker thread instead of the I/O thread (event-loop). - -=== The gRPC server - -The services are _served_ by a _server_. -Available services (_CDI beans_) are automatically registered and exposed. - -By default, the server is exposed on `localhost:9000`, and uses _plain-text_ (so no TLS) when -running normally, and `localhost:9001` for tests. - -Run the application using: `mvn quarkus:dev`. - -== Consuming a gRPC service - -In this section, we are going to consume the service we expose. -To simplify, we are going to consume the service from the same application, which in the real world, does not make sense. - -Open the existing `org.acme.ExampleResource` class, and edit the content to become: - -[source, java] ----- -package org.acme; - -import io.quarkus.example.Greeter; -import io.quarkus.example.HelloRequest; -import io.quarkus.grpc.GrpcClient; -import io.smallrye.mutiny.Uni; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/hello") -public class ExampleResource { - - @GrpcClient // <1> - Greeter hello; // <2> - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return "hello"; - } - - @GET - @Path("/{name}") - public Uni hello(@PathParam("name") String name) { - return hello.sayHello(HelloRequest.newBuilder().setName(name).build()) - .onItem().transform(helloReply -> helloReply.getMessage()); // <3> - } -} ----- -<1> Inject the service and configure its name. The name is used in the application configuration. If not specified then the field name is used instead: `hello` in this particular case. -<2> Use the generated service interface based on Mutiny API. -<3> Invoke the service. - -We need to configure the application to indicate where the `hello` service is found. -In the `src/main/resources/application.properties` file, add the following property: - -[source,properties] ----- -quarkus.grpc.clients.hello.host=localhost ----- - -- `hello` is the name used in the `@GrpcClient` annotation. -- `host` configures the service host (here it's localhost). - -Then, open http://localhost:8080/hello/quarkus in a browser, and you should get `Hello quarkus`! - -== Packaging the application - -Like any other Quarkus applications, you can package it with: `mvn package`. -You can also package the application into a native executable with: `mvn package -Pnative`. - -== Generating Java files from proto with protobuf-maven-plugin - -Alternatively to using Quarkus code generation to generate stubs for `proto` files, you can also use -`protobuf-maven-plugin`. - -To do it, first define the 2 following properties in the `` section: - -[source,xml,subs="verbatim,attributes"] ----- -{grpc-version} -{protoc-version} ----- - -They configure the gRPC version and the `protoc` version. - -Then, add to the `build` section the `os-maven-plugin` extension and the `protobuf-maven-plugin` configuration. - -[source,xml,subs="verbatim,attributes"] ----- - - - - kr.motd.maven - os-maven-plugin - ${os-maven-plugin-version} - - - - - - org.xolstice.maven.plugins - protobuf-maven-plugin // <1> - ${protobuf-maven-plugin-version} - - com.google.protobuf:protoc:${protoc.version}:exe:${os.detected.classifier} // <2> - grpc-java - io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier} - - - quarkus-grpc-protoc-plugin - io.quarkus - quarkus-grpc-protoc-plugin - {quarkus-version} - io.quarkus.grpc.protoc.plugin.MutinyGrpcGenerator - - - - - - compile - - compile - compile-custom - - - - test-compile - - test-compile - test-compile-custom - - - - - - - - ----- -<1> The `protobuf-maven-plugin` that generates stub classes from your gRPC service definition (`proto` files). -<2> The class generation uses a tool named `protoc`, which is OS-specific. -That's why we use the `os-maven-plugin` to target the executable compatible with the operating system. - -NOTE: This configuration instructs the `protobuf-maven-plugin` to generate the default gRPC classes and classes using Mutiny to fit with the Quarkus development experience. - -IMPORTANT: When using `protobuf-maven-plugin`, instead of the `quarkus-maven-plugin`, every time you update the `proto` files, you need to re-generate the classes (using `mvn compile`). - - -== gRPC classes from dependencies - -When gRPC classes - the classes generated from `proto` files - are in a dependency of the application, then the dependency needs a Jandex index. -The `jandex-maven-plugin` can be used to create a Jandex index. More information on this topic can be found in the xref:cdi-reference.adoc#bean_discovery[Bean Discovery] section of the CDI guide. - -[source,xml,subs="attributes+"] ----- - - - - org.jboss.jandex - jandex-maven-plugin - {jandex-maven-plugin-version} - - - make-index - - jandex - - - - - - ----- \ No newline at end of file diff --git a/_versions/2.7/guides/grpc-service-consumption.adoc b/_versions/2.7/guides/grpc-service-consumption.adoc deleted file mode 100644 index 858758b1475..00000000000 --- a/_versions/2.7/guides/grpc-service-consumption.adoc +++ /dev/null @@ -1,401 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Consuming a gRPC Service - -include::./attributes.adoc[] - -gRPC clients can be injected in your application code. - -IMPORTANT: Consuming gRPC services requires the gRPC classes to be generated. -Place your `proto` files in `src/main/proto` and run `mvn compile`. - -== Stubs and Injection - -gRPC generation provides several stubs, providing different ways to consume a gRPC service. -You can inject: - -* a service interface using the Mutiny API, -* a blocking stub using the gRPC API, -* a reactive stub based on Mutiny, -* the gRPC `io.grpc.Channel`, that lets you create other types of stubs. - -[source, java] ----- -import io.quarkus.grpc.GrpcClient; - -import hello.Greeter; -import hello.GreeterGrpc.GreeterBlockingStub; -import hello.MutinyGreeterGrpc.MutinyGreeterStub; - -class MyBean { - - // A service interface using the Mutiny API - @GrpcClient("helloService") // <1> - Greeter greeter; - - // A reactive stub based on Mutiny - @GrpcClient("helloService") - MutinyGreeterGrpc.MutinyGreeterStub mutiny; - - // A blocking stub using the gRPC API - @GrpcClient - GreeterGrpc.GreeterBlockingStub helloService; // <2> - - @GrpcClient("hello-service") - Channel channel; - -} ----- -<1> A gRPC client injection point must be annotated with the `@GrpcClient` qualifier. This qualifier can be used to specify the name that is used to configure the underlying gRPC client. For example, if you set it to `hello-service`, configuring the host of the service is done using the `quarkus.grpc.clients.**hello-service**.host`. -<2> If the name is not specified via the `GrpcClient#value()` then the field name is used instead, e.g. `helloService` in this particular case. - -The stub class names are derived from the service name used in your `proto` file. -For example, if you use `Greeter` as a service name as in: - -[source] ----- -option java_package = "hello"; - -service Greeter { - rpc SayHello (HelloRequest) returns (HelloReply) {} -} ----- - -Then the service interface name is: `hello.Greeter`, the Mutiny stub name is: `hello.MutinyGreeterGrpc.MutinyGreeterStub` and the blocking stub name is: `hello.GreeterGrpc.GreeterBlockingStub`. - -== Examples - -=== Service Interface - -[source, java] ----- -import io.quarkus.grpc.GrpcClient; -import io.smallrye.mutiny.Uni; - -import hello.Greeter; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/hello") -public class ExampleResource { - - @GrpcClient <1> - Greeter hello; - - @GET - @Path("/mutiny/{name}") - public Uni helloMutiny(@PathParam("name") String name) { - return hello.sayHello(HelloRequest.newBuilder().setName(name).build()) - .onItem().transform(HelloReply::getMessage); - } -} ----- -<1> The service name is derived from the injection point - the field name is used. The `quarkus.grpc.clients.hello.host` property must be set. - -=== Blocking Stub - -[source, java] ----- -import io.quarkus.grpc.GrpcClient; - -import hello.GreeterGrpc.GreeterBlockingStub; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/hello") -public class ExampleResource { - - @GrpcClient("hello") <1> - GreeterGrpc.GreeterBlockingStub blockingHelloService; - - @GET - @Path("/blocking/{name}") - public String helloBlocking(@PathParam("name") String name) { - return blockingHelloService.sayHello(HelloRequest.newBuilder().setName(name).build()).getMessage(); - } -} ----- -<1> The `quarkus.grpc.clients.hello.host` property must be set. - -=== Handling streams - -gRPC allows sending and receiving streams: - -[source] ----- -service Streaming { - rpc Source(Empty) returns (stream Item) {} // Returns a stream - rpc Sink(stream Item) returns (Empty) {} // Reads a stream - rpc Pipe(stream Item) returns (stream Item) {} // Reads a streams and return a streams -} ----- - -Using the Mutiny stub, you can interact with these as follows: - -[source, java] ----- -package io.quarkus.grpc.example.streaming; - -import io.grpc.examples.streaming.Empty; -import io.grpc.examples.streaming.Item; -import io.grpc.examples.streaming.MutinyStreamingGrpc; -import io.quarkus.grpc.GrpcClient; - -import io.smallrye.mutiny.Multi; -import io.smallrye.mutiny.Uni; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/streaming") -@Produces(MediaType.APPLICATION_JSON) -public class StreamingEndpoint { - - @GrpcClient - MutinyStreamingGrpc.MutinyStreamingStub streaming; - - @GET - public Multi invokeSource() { - // Retrieve a stream - return streaming.source(Empty.newBuilder().build()) - .onItem().transform(Item::getValue); - } - - @GET - @Path("sink/{max}") - public Uni invokeSink(@PathParam("max") int max) { - // Send a stream and wait for completion - Multi inputs = Multi.createFrom().range(0, max) - .map(i -> Integer.toString(i)) - .map(i -> Item.newBuilder().setValue(i).build()); - return streaming.sink(inputs).onItem().ignore().andContinueWithNull(); - } - - @GET - @Path("/{max}") - public Multi invokePipe(@PathParam("max") int max) { - // Send a stream and retrieve a stream - Multi inputs = Multi.createFrom().range(0, max) - .map(i -> Integer.toString(i)) - .map(i -> Item.newBuilder().setValue(i).build()); - return streaming.pipe(inputs).onItem().transform(Item::getValue); - } - -} - ----- - -== Client configuration - -For each gRPC service you inject in your application, you can configure the following attributes: - -include::{generated-dir}/config/quarkus-grpc-config-group-config-grpc-client-configuration.adoc[opts=optional, leveloffset=+1] - -The `client-name` is the name set in the `@GrpcClient` or derived from the injection point if not explicitly defined. - -The following examples uses _hello_ as the client name. -Don't forget to replace it with the name you used in in the `@GrpcClient` annotation. - -=== Enabling TLS - -To enable TLS, use the following configuration. -Note that all paths in the configuration may either specify a resource on the classpath -(typically from `src/main/resources` or its subfolder) or an external file. - -[source,properties] ----- -quarkus.grpc.clients.hello.host=localhost - -# either a path to a classpath resource or to a file: -quarkus.grpc.clients.hello.ssl.trust-store=tls/ca.pem ----- - -NOTE: When SSL/TLS is configured, `plain-text` is automatically disabled. - -=== TLS with Mutual Auth - -To use TLS with mutual authentication, use the following configuration: - -[source,properties] ----- -quarkus.grpc.clients.hello.host=localhost -quarkus.grpc.clients.hello.plain-text=false - -# all the following may use either a path to a classpath resource or to a file: -quarkus.grpc.clients.hello.ssl.certificate=tls/client.pem -quarkus.grpc.clients.hello.ssl.key=tls/client.key -quarkus.grpc.clients.hello.ssl.trust-store=tls/ca.pem ----- - -=== Client Deadlines - -It's always reasonable to set a deadline (timeout) for a gRPC client, i.e. to specify a duration of time after which the RPC times out and the client receives the status error `DEADLINE_EXCEEDED`. -You can specify the deadline via the `quarkus.grpc.clients."service-name".deadline` configuration property, e.g.: - -[source,properties] ----- -quarkus.grpc.clients.hello.host=localhost -quarkus.grpc.clients.hello.deadline=2s <1> ----- -<1> Set the deadline for all injected clients. - -== gRPC Headers -Similarly to HTTP, alongside the message, gRPC calls can carry headers. -Headers can be useful e.g. for authentication. - -To set headers for a gRPC call, create a client with headers attached and then perform the call on this client: -[source,java] ----- -import javax.enterprise.context.ApplicationScoped; - -import examples.Greeter; -import examples.HelloReply; -import examples.HelloRequest; -import io.grpc.Metadata; -import io.quarkus.grpc.GrpcClient; -import io.quarkus.grpc.GrpcClientUtils; -import io.smallrye.mutiny.Uni; - -@ApplicationScoped -public class MyService { - @GrpcClient - Greeter client; - - public Uni doTheCall() { - Metadata extraHeaders = new Metadata(); - if (headers) { - extraHeaders.put("my-header", "my-interface-value"); - } - - Greeter alteredClient = GrpcClientUtils.attachHeaders(client, extraHeaders); // <1> - - return alteredClient.sayHello(HelloRequest.newBuilder().setName(name).build()); // <2> - } -} ----- -<1> Alter the client to make calls with the `extraHeaders` attached -<2> Perform the call with the altered client. The original client remains unmodified - -`GrpcClientUtils` work with all flavors of clients. - -== Client Interceptors - -A gRPC client interceptor can be implemented by a CDI bean that also implements the `io.grpc.ClientInterceptor` interface. -You can annotate an injected client with `@io.quarkus.grpc.RegisterClientInterceptor` to register the specified interceptor for the particular client instance. -The `@RegisterClientInterceptor` annotation is repeatable. -Alternatively, if you want to apply the interceptor to any injected client then annotate the interceptor bean with `@io.quarkus.grpc.GlobalInterceptor`. - -.Global Client Interceptor Example -[source, java] ----- -import io.quarkus.grpc.GlobalInterceptor; - -import io.grpc.ClientInterceptor; - -@GlobalInterceptor <1> -@ApplicationScoped -public class MyInterceptor implements ClientInterceptor { - - @Override - public ClientCall interceptCall(MethodDescriptor method, - CallOptions callOptions, Channel next) { - // ... - } -} ----- -<1> This interceptor is applied to all injected gRPC clients. - -TIP: Check the https://grpc.github.io/grpc-java/javadoc/io/grpc/ClientInterceptor.html[ClientInterceptor JavaDoc] to properly implement your interceptor. - -.`@RegisterClientInterceptor` Example -[source, java] ----- -import io.quarkus.grpc.GrpcClient; -import io.quarkus.grpc.RegisterClientInterceptor; - -import hello.Greeter; - -@ApplicationScoped -class MyBean { - - @RegisterClientInterceptor(MySpecialInterceptor.class) <1> - @GrpcClient("helloService") - Greeter greeter; -} ----- -<1> Registers the `MySpecialInterceptor` for this particular client. - -When you have multiple client interceptors, you can order them by implementing the `javax.enterprise.inject.spi.Prioritized` interface: - -[source, java] ----- -@ApplicationScoped -public class MyInterceptor implements ClientInterceptor, Prioritized { - - @Override - public ClientCall interceptCall(MethodDescriptor method, - CallOptions callOptions, Channel next) { - // ... - } - - @Override - public int getPriority() { - return 10; - } -} ----- - -Interceptors with the highest priority are called first. -The default priority, used if the interceptor does not implement the `Prioritized` interface, is `0`. - -== gRPC Client metrics - -=== Enabling metrics collection - -gRPC client metrics are automatically enabled when the application also uses the xref:micrometer.adoc[`quarkus-micrometer`] extension. -Micrometer collects the metrics of all the gRPC clients used by the application. - -As an example, if you export the metrics to Prometheus, you will get: - -[source, text] ----- -# HELP grpc_client_responses_received_messages_total The total number of responses received -# TYPE grpc_client_responses_received_messages_total counter -grpc_client_responses_received_messages_total{method="SayHello",methodType="UNARY",service="helloworld.Greeter",} 6.0 -# HELP grpc_client_requests_sent_messages_total The total number of requests sent -# TYPE grpc_client_requests_sent_messages_total counter -grpc_client_requests_sent_messages_total{method="SayHello",methodType="UNARY",service="helloworld.Greeter",} 6.0 -# HELP grpc_client_processing_duration_seconds The total time taken for the client to complete the call, including network delay -# TYPE grpc_client_processing_duration_seconds summary -grpc_client_processing_duration_seconds_count{method="SayHello",methodType="UNARY",service="helloworld.Greeter",statusCode="OK",} 6.0 -grpc_client_processing_duration_seconds_sum{method="SayHello",methodType="UNARY",service="helloworld.Greeter",statusCode="OK",} 0.167411625 -# HELP grpc_client_processing_duration_seconds_max The total time taken for the client to complete the call, including network delay -# TYPE grpc_client_processing_duration_seconds_max gauge -grpc_client_processing_duration_seconds_max{method="SayHello",methodType="UNARY",service="helloworld.Greeter",statusCode="OK",} 0.136478028 ----- - -The service name, method and type can be found in the _tags_. - -=== Disabling metrics collection - -To disable the gRPC client metrics when `quarkus-micrometer` is used, add the following property to the application configuration: - -[source, properties] ----- -quarkus.micrometer.binder.grpc-client.enabled=false ----- \ No newline at end of file diff --git a/_versions/2.7/guides/grpc-service-implementation.adoc b/_versions/2.7/guides/grpc-service-implementation.adoc deleted file mode 100644 index 82ec98d1aeb..00000000000 --- a/_versions/2.7/guides/grpc-service-implementation.adoc +++ /dev/null @@ -1,396 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Implementing a gRPC Service - -include::./attributes.adoc[] - -gRPC service implementations exposed as CDI beans are automatically registered and served by quarkus-grpc. - -IMPORTANT: Implementing a gRPC service requires the gRPC classes to be generated. -Place your `proto` files in `src/main/proto` and run `mvn compile`. - -== Generated Code - -Quarkus generates a few implementation classes for services declared in the `proto` file: - -1. A _service interface_ using the Mutiny API - - the class name is `${JAVA_PACKAGE}.${NAME_OF_THE_SERVICE}` -2. An _implementation base_ class using the gRPC API - - the class name is structured as follows: `${JAVA_PACKAGE}.${NAME_OF_THE_SERVICE}Grpc.${NAME_OF_THE_SERVICE}ImplBase` - -For example, if you use the following `proto` file snippet: - -[source] ----- -option java_package = "hello"; <1> - -service Greeter { <2> - rpc SayHello (HelloRequest) returns (HelloReply) {} -} ----- -<1> `hello` is the java package for the generated classes. -<2> `Greeter` is the service name. - -Then the service interface is `hello.Greeter` and the implementation base is the abstract static nested class: `hello.GreeterGrpc.GreeterImplBase`. - -IMPORTANT: You'll need to implement the _service interface_ or extend the _base class_ with your service implementation bean as described in the following sections. - -== Implementing a Service with the Mutiny API - -To implement a gRPC service using the Mutiny API, create a class that implements the service interface. -Then, implement the methods defined in the service interface. -If you don't want to implement a service method just throw an `java.lang.UnsupportedOperationException` from the method body (the exception will be automatically converted to the appropriate gRPC exception). -Finally, implement the service and add the `@GrpcService` annotation: - -[source, java] ----- -import io.quarkus.grpc.GrpcService; -import hello.Greeter; - -@GrpcService <1> -public class HelloService implements Greeter { <2> - - @Override - public Uni sayHello(HelloRequest request) { - return Uni.createFrom().item(() -> - HelloReply.newBuilder().setMessage("Hello " + request.getName()).build() - ); - } -} ----- -<1> A gRPC service implementation bean must be annotated with the `@GrpcService` annotation and should not declare any other CDI qualifier. All gRPC services have the `javax.inject.Singleton` scope. Additionally, the request context is always active during a service call. -<2> `hello.Greeter` is the generated service interface. - -NOTE: The service implementation bean can also extend the Mutiny implementation base, where the class name is structured as follows: `Mutiny${NAME_OF_THE_SERVICE}Grpc.${NAME_OF_THE_SERVICE}ImplBase`. - -== Implementing a Service with the default gRPC API - -To implement a gRPC service using the default gRPC API, create a class that extends the default implementation base. -Then, override the methods defined in the service interface. -Finally, implement the service and add the `@GrpcService` annotation: - -[source, java] ----- -import io.quarkus.grpc.GrpcService; - -@GrpcService -public class HelloService extends GreeterGrpc.GreeterImplBase { - - @Override - public void sayHello(HelloRequest request, StreamObserver responseObserver) { - String name = request.getName(); - String message = "Hello " + name; - responseObserver.onNext(HelloReply.newBuilder().setMessage(message).build()); - responseObserver.onCompleted(); - } -} ----- - -== Blocking Service Implementation - -By default, all the methods from a gRPC service run on the event loop. -As a consequence, you must **not** block. -If your service logic must block, annotate the method with `io.smallrye.common.annotation.Blocking`: - -[source, java] ----- -@Override -@Blocking -public Uni sayHelloBlocking(HelloRequest request) { - // Do something blocking before returning the Uni -} ----- - -== Handling Streams - -gRPC allows receiving and returning streams: - -[source] ----- -service Streaming { - rpc Source(Empty) returns (stream Item) {} // Returns a stream - rpc Sink(stream Item) returns (Empty) {} // Reads a stream - rpc Pipe(stream Item) returns (stream Item) {} // Reads a streams and return a streams -} ----- - -Using Mutiny, you can implement these as follows: - -[source, java] ----- -import io.quarkus.grpc.GrpcService; - -@GrpcService -public class StreamingService implements Streaming { - - @Override - public Multi source(Empty request) { - // Just returns a stream emitting an item every 2ms and stopping after 10 items. - return Multi.createFrom().ticks().every(Duration.ofMillis(2)) - .select().first(10) - .map(l -> Item.newBuilder().setValue(Long.toString(l)).build()); - } - - @Override - public Uni sink(Multi request) { - // Reads the incoming streams, consume all the items. - return request - .map(Item::getValue) - .map(Long::parseLong) - .collect().last() - .map(l -> Empty.newBuilder().build()); - } - - @Override - public Multi pipe(Multi request) { - // Reads the incoming stream, compute a sum and return the cumulative results - // in the outbound stream. - return request - .map(Item::getValue) - .map(Long::parseLong) - .onItem().scan(() -> 0L, Long::sum) - .onItem().transform(l -> Item.newBuilder().setValue(Long.toString(l)).build()); - } -} ----- - -== Health Check -For the implemented services, Quarkus gRPC exposes health information in the following format: -[source,protobuf] ----- -syntax = "proto3"; - -package grpc.health.v1; - -message HealthCheckRequest { - string service = 1; -} - -message HealthCheckResponse { - enum ServingStatus { - UNKNOWN = 0; - SERVING = 1; - NOT_SERVING = 2; - } - ServingStatus status = 1; -} - -service Health { - rpc Check(HealthCheckRequest) returns (HealthCheckResponse); - - rpc Watch(HealthCheckRequest) returns (stream HealthCheckResponse); -} ----- - -Clients can specify the fully qualified service name to get the health status of a specific service -or skip specifying the service name to get the general status of the gRPC server. - -For more details, check out the -https://github.com/grpc/grpc/blob/v1.28.1/doc/health-checking.md[gRPC documentation] - -Additionally, if Quarkus SmallRye Health is added to the application, a readiness check for -the state of the gRPC services will be added to the MicroProfile Health endpoint response, that is `/q/health`. - -== Reflection Service - -Quarkus gRPC Server implements the https://github.com/grpc/grpc/blob/master/doc/server-reflection.md[reflection service]. -This service allows tools like https://github.com/fullstorydev/grpcurl[grpcurl] or https://github.com/gusaul/grpcox[grpcox] to interact with your services. - -The reflection service is enabled by default in _dev_ mode. -In test or production mode, you need to enable it explicitly by setting `quarkus.grpc.server.enable-reflection-service` to `true`. - -== Scaling -By default, quarkus-grpc starts a single gRPC server running on a single event loop. - -If you wish to scale your server, you can set the number of server instances by setting `quarkus.grpc.server.instances`. - -== Server Configuration - -include::{generated-dir}/config/quarkus-grpc-config-group-config-grpc-server-configuration.adoc[opts=optional, leveloffset=+1] - -== Example of Configuration - -=== Enabling TLS - -To enable TLS, use the following configuration. - -Note that all paths in the configuration may either specify a resource on the classpath -(typically from `src/main/resources` or its subfolder) or an external file. - -[source,properties] ----- -quarkus.grpc.server.ssl.certificate=tls/server.pem -quarkus.grpc.server.ssl.key=tls/server.key ----- - -NOTE: When SSL/TLS is configured, `plain-text` is automatically disabled. - -=== TLS with Mutual Auth - -To use TLS with mutual authentication, use the following configuration: - -[source,properties] ----- -quarkus.grpc.server.ssl.certificate=tls/server.pem -quarkus.grpc.server.ssl.key=tls/server.key -quarkus.grpc.server.ssl.trust-store=tls/ca.jks -quarkus.grpc.server.ssl.trust-store-password=***** -quarkus.grpc.server.ssl.client-auth=REQUIRED ----- - -== Server Interceptors - -gRPC server interceptors let you perform logic, such as authentication, before your service is invoked. - -You can implement a gRPC server interceptor by creating an `@ApplicationScoped` bean implementing `io.grpc.ServerInterceptor`: - -[source, java] ----- -@ApplicationScoped -// add @GlobalInterceptor for interceptors meant to be invoked for every service -public class MyInterceptor implements ServerInterceptor { - - @Override - public ServerCall.Listener interceptCall(ServerCall serverCall, - Metadata metadata, ServerCallHandler serverCallHandler) { - // ... - } -} ----- - -TIP: Check the https://grpc.github.io/grpc-java/javadoc/io/grpc/ServerInterceptor.html[ServerInterceptor JavaDoc] to properly implement your interceptor. - -To apply an interceptor to all exposed services, annotate it with `@io.quarkus.grpc.GlobalInterceptor`. -To apply an interceptor to a single service, register it on the service with `@io.quarkus.grpc.RegisterInterceptor`: -[source, java] ----- -import io.quarkus.grpc.GrpcService; -import io.quarkus.grpc.RegisterInterceptor; - -@GrpcService -@RegisterInterceptor(MyInterceptor.class) -public class StreamingService implements Streaming { - // ... -} ----- - -When you have multiple server interceptors, you can order them by implementing the `javax.enterprise.inject.spi.Prioritized` interface. Please note that all the global interceptors are invoked before the service-specific -interceptors. - -[source, java] ----- -@ApplicationScoped -public class MyInterceptor implements ServerInterceptor, Prioritized { - - @Override - public ServerCall.Listener interceptCall(ServerCall serverCall, - Metadata metadata, ServerCallHandler serverCallHandler) { - // ... - } - - @Override - public int getPriority() { - return 10; - } -} ----- - -Interceptors with the highest priority are called first. -The default priority, used if the interceptor does not implement the `Prioritized` interface, is `0`. - - -== Testing your services - -The easiest way to test a gRPC service is to use a gRPC client as described -in xref:grpc-service-consumption.adoc[Consuming a gRPC Service]. - -Please note that in the case of using a client to test an exposed service that does not use TLS, -there is no need to provide any configuration. E.g. to test the `HelloService` -defined above, one could create the following test: - -[source,java] ----- -public class HelloServiceTest implements Greeter { - - @GrpcClient - Greeter client; - - @Test - void shouldReturnHello() { - CompletableFuture message = new CompletableFuture<>(); - client.sayHello(HelloRequest.newBuilder().setName("Quarkus").build()) - .subscribe().with(reply -> message.complete(reply.getMessage())); - assertThat(message.get(5, TimeUnit.SECONDS)).isEqualTo("Hello Quarkus"); - } -} ----- - -== Trying out your services manually -In the dev mode, you can try out your gRPC services in the Quarkus Dev UI. -Just go to http://localhost:8080/q/dev and click on _Services_ under the gRPC tile. - -Please note that your application needs to expose the "normal" HTTP port for the Dev UI to be accessible. If your application does not expose any HTTP endpoints, you can create a dedicated profile with a dependency on `quarkus-vertx-http`: -[source,xml] ----- - - - development - - - io.quarkus - quarkus-vertx-http - - - - ----- -Having it, you can run the dev mode with: `mvn quarkus:dev -Pdevelopment`. - -If you use Gradle, you can simply add a dependency for the `quarkusDev` task: - -[source,groovy] ----- -dependencies { - quarkusDev 'io.quarkus:quarkus-vertx-http' -} ----- - -== gRPC Server metrics - -=== Enabling metrics collection - -gRPC server metrics are automatically enabled when the application also uses the xref:micrometer.adoc[`quarkus-micrometer`] extension. -Micrometer collects the metrics of all the gRPC services implemented by the application. - -As an example, if you export the metrics to Prometheus, you will get: - -[source, text] ----- -# HELP grpc_server_responses_sent_messages_total The total number of responses sent -# TYPE grpc_server_responses_sent_messages_total counter -grpc_server_responses_sent_messages_total{method="SayHello",methodType="UNARY",service="helloworld.Greeter",} 6.0 -# HELP grpc_server_processing_duration_seconds The total time taken for the server to complete the call -# TYPE grpc_server_processing_duration_seconds summary -grpc_server_processing_duration_seconds_count{method="SayHello",methodType="UNARY",service="helloworld.Greeter",statusCode="OK",} 6.0 -grpc_server_processing_duration_seconds_sum{method="SayHello",methodType="UNARY",service="helloworld.Greeter",statusCode="OK",} 0.016216771 -# HELP grpc_server_processing_duration_seconds_max The total time taken for the server to complete the call -# TYPE grpc_server_processing_duration_seconds_max gauge -grpc_server_processing_duration_seconds_max{method="SayHello",methodType="UNARY",service="helloworld.Greeter",statusCode="OK",} 0.007985236 -# HELP grpc_server_requests_received_messages_total The total number of requests received -# TYPE grpc_server_requests_received_messages_total counter -grpc_server_requests_received_messages_total{method="SayHello",methodType="UNARY",service="helloworld.Greeter",} 6.0 ----- - -The service name, method and type can be found in the _tags_. - -=== Disabling metrics collection - -To disable the gRPC server metrics when `quarkus-micrometer` is used, add the following property to the application configuration: - -[source, properties] ----- -quarkus.micrometer.binder.grpc-server.enabled=false ----- diff --git a/_versions/2.7/guides/grpc.adoc b/_versions/2.7/guides/grpc.adoc deleted file mode 100644 index fb4ecc50281..00000000000 --- a/_versions/2.7/guides/grpc.adoc +++ /dev/null @@ -1,29 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= gRPC - -include::./attributes.adoc[] - -https://grpc.io/[gRPC] is a high-performance RPC framework. -It can efficiently connect services implemented using various languages and frameworks. -It is also applicable in the last mile of distributed computing to connect devices, mobile applications, and browsers to backend services. - -In general, gRPC uses HTTP/2, TLS, and https://developers.google.com/protocol-buffers[Protobuf (Protocol Buffers)]. -In a microservice architecture, gRPC is an efficient, type-safe alternative to HTTP. - -The Quarkus gRPC extension integrate gRPC in Quarkus application. -It: - -* supports implementing gRPC services -* supports consuming gRPC services -* integrates with the reactive engine from Quarkus as well as the reactive development model -* allows plain-text communication as well as TLS, and TLS with mutual authentication - -Quarkus gRPC is based on https://vertx.io/docs/vertx-grpc/java/[Vert.x gRPC]. - -* xref:grpc-getting-started.adoc[Getting Started] -* xref:grpc-service-implementation.adoc[Implementing a gRPC Service] -* xref:grpc-service-consumption.adoc[Consuming a gRPC Service] diff --git a/_versions/2.7/guides/guides.md b/_versions/2.7/guides/guides.md deleted file mode 100644 index 21a674e3752..00000000000 --- a/_versions/2.7/guides/guides.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -layout: documentation -title: Guides -permalink: /version/2.7/guides/ ---- diff --git a/_versions/2.7/guides/hibernate-orm-panache-kotlin.adoc b/_versions/2.7/guides/hibernate-orm-panache-kotlin.adoc deleted file mode 100644 index 2faf13d54cb..00000000000 --- a/_versions/2.7/guides/hibernate-orm-panache-kotlin.adoc +++ /dev/null @@ -1,217 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Simplified Hibernate ORM with Panache and Kotlin - -include::./attributes.adoc[] -:config-file: application.properties - -Hibernate ORM is the de facto standard JPA implementation and is well-known in the Java ecosystem. Hibernate ORM with Panache offers a -new layer atop this familiar framework. This guide will not dive in to the specifics of either as those are already -covered in the xref:hibernate-orm-panache.adoc[Hibernate ORM with Panache guide]. In this guide, we'll cover the Kotlin specific changes -needed to use Hibernate ORM with Panache in your Kotlin-based Quarkus applications. - -NOTE: When using the kotlin version of Hibernate ORM with Panache, note that the `PanacheEntity`, `PanacheQuery` and `PanacheRepository` are in a different package: `io.quarkus.hibernate.orm.panache.kotlin`. - -== First: an example - -As we saw in the Hibernate with Panache guide, it allows us to extend the functionality in our entities and repositories (also known as DAOs) with some automatically -provided functionality. When using Kotlin, the approach is very similar to what we see in the Java version with a slight -change or two. To Panache-enable your entity, you would define it something like: - -[source,kotlin] ----- -@Entity -class Person: PanacheEntity { - lateinit var name: String - lateinit var birth: LocalDate - lateinit var status: Status -} ----- - -As you can see our entities remain simple. There is, however, a slight difference from the Java version. The Kotlin -language doesn't support the notion of static methods in quite the same way as Java does. Instead, we must use a -https://kotlinlang.org/docs/tutorials/kotlin-for-py/objects-and-companion-objects.html#companion-objects[companion object]: - -[source,kotlin] ----- -@Entity -class Person : PanacheEntity() { - companion object: PanacheCompanion { // <1> - fun findByName(name: String) = find("name", name).firstResult() - fun findAlive() = list("status", Status.Alive) - fun deleteStefs() = delete("name", "Stef") - } - - lateinit var name: String // <2> - lateinit var birth: LocalDate - lateinit var status: Status -} ----- -<1> The companion object holds all the methods not related to a specific instance allowing for general management and -querying bound to a specific type. -<2> Here there are options, but we've chosen the `lateinit` approach. This allows us to declare these fields as non-null -knowing they will be properly assigned either by the constructor (not shown) or by hibernate loading data from the -database. - -NOTE: These types differ from the Java types mentioned in those tutorials. For Kotlin support, all the Panache -types will be found in the `io.quarkus.hibernate.orm.panache.kotlin` package. This subpackage allows for the distinction -between the Java and Kotlin variants and allows for both to be used unambiguously in a single project. - -In the Kotlin version, we've simply moved the bulk of the link:https://www.martinfowler.com/eaaCatalog/activeRecord.html[`active record pattern`] -functionality to the `companion object`. Apart from this slight change, we can then work with our types in ways that map easily -from the Java side of world. - - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `hibernate-orm-panache-kotlin-quickstart` {quickstarts-tree-url}/hibernate-orm-panache-kotlin-quickstart[directory]. - - -== Setting up and configuring Hibernate ORM with Panache and Kotlin - -To get started using Hibernate ORM with Panache and Kotlin, you can, generally, follow the steps laid out in the Java tutorial. The biggest -change to configuring your project is the Quarkus artifact to include. You can, of course, keep the Java version if you -need but if all you need are the Kotlin APIs then include the following dependency instead: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-hibernate-orm-panache-kotlin // <1> - ----- -<1> Note the addition of `-kotlin` on the end. Generally you'll only need this version but if your project will be using -both Java and Kotlin code, you can safely include both artifacts. - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-hibernate-orm-panache-kotlin") <1> ----- -<1> Note the addition of `-kotlin` on the end. Generally you'll only need this version but if your project will be using -both Java and Kotlin code, you can safely include both artifacts. - -== Using the repository pattern - - -=== Defining your entity - -When using the repository pattern, you can define your entities as regular JPA entities. -[source,kotlin] ----- -@Entity -class Person { - @Id - @GeneratedValue - var id: Long? = null; - lateinit var name: String - lateinit var birth: LocalDate - lateinit var status: Status -} ----- - -=== Defining your repository - -When using Repositories, you get the exact same convenient methods as with the active record pattern, injected in your Repository, -by making them implement `PanacheRepository`: - -[source,kotlin] ----- -@ApplicationScoped -class PersonRepository: PanacheRepository { - fun findByName(name: String) = find("name", name).firstResult() - fun findAlive() = list("status", Status.Alive) - fun deleteStefs() = delete("name", "Stef") -} ----- - -All the operations that are defined on `PanacheEntityBase` are available on your repository, so using it -is exactly the same as using the active record pattern, except you need to inject it: - -[source,kotlin] ----- -@Inject -lateinit var personRepository: PersonRepository - -@GET -fun count() = personRepository.count() ----- - -=== Most useful operations - -Once you have written your repository, here are the most common operations you will be able to perform: - -[source,kotlin] ----- -// creating a person -var person = Person() -person.name = "Stef" -person.birth = LocalDate.of(1910, Month.FEBRUARY, 1) -person.status = Status.Alive - -// persist it -personRepository.persist(person) - -// note that once persisted, you don't need to explicitly save your entity: all -// modifications are automatically persisted on transaction commit. - -// check if it's persistent -if(personRepository.isPersistent(person)){ - // delete it - personRepository.delete(person) -} - -// getting a list of all Person entities -val allPersons = personRepository.listAll() - -// finding a specific person by ID -person = personRepository.findById(personId) ?: throw Exception("No person with that ID") - -// finding all living persons -val livingPersons = personRepository.list("status", Status.Alive) - -// counting all persons -val countAll = personRepository.count() - -// counting all living persons -val countAlive = personRepository.count("status", Status.Alive) - -// delete all living persons -personRepository.delete("status", Status.Alive) - -// delete all persons -personRepository.deleteAll() - -// delete by id -val deleted = personRepository.deleteById(personId) - -// set the name of all living persons to 'Mortal' -personRepository.update("name = 'Mortal' where status = ?1", Status.Alive) - ----- - -All `list` methods have equivalent `stream` versions. - -[source,kotlin] ----- -val persons = personRepository.streamAll(); -val namesButEmmanuels = persons - .map { it.name.toLowerCase() } - .filter { it != "emmanuel" } ----- - -NOTE: The `stream` methods require a transaction to work. - -For more examples, please consult the xref:hibernate-orm-panache.adoc[Java version] for complete details. Both APIs -are the same and work identically except for some Kotlin-specific tweaks to make things feel more natural to -Kotlin developers. These tweaks include things like better use of nullability and the lack of `Optional` on API -methods. diff --git a/_versions/2.7/guides/hibernate-orm-panache.adoc b/_versions/2.7/guides/hibernate-orm-panache.adoc deleted file mode 100644 index ca8c587b7be..00000000000 --- a/_versions/2.7/guides/hibernate-orm-panache.adoc +++ /dev/null @@ -1,1182 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Simplified Hibernate ORM with Panache - -include::./attributes.adoc[] -:config-file: application.properties - -Hibernate ORM is the de facto JPA implementation and offers you the full breadth of an Object Relational Mapper. -It makes complex mappings possible, but it does not make simple and common mappings trivial. -Hibernate ORM with Panache focuses on making your entities trivial and fun to write in Quarkus. - -== First: an example - -What we're doing in Panache is to allow you to write your Hibernate ORM entities like this: - -[source,java] ----- -public enum Status { - Alive, - Deceased -} - -@Entity -public class Person extends PanacheEntity { - public String name; - public LocalDate birth; - public Status status; - - public static Person findByName(String name){ - return find("name", name).firstResult(); - } - - public static List findAlive(){ - return list("status", Status.Alive); - } - - public static void deleteStefs(){ - delete("name", "Stef"); - } -} ----- - -You have noticed how much more compact and readable the code is? -Does this look interesting? Read on! - -NOTE: the `list()` method might be surprising at first. It takes fragments of HQL (JP-QL) queries and contextualizes the rest. That makes for very concise but yet readable code. - -NOTE: what was described above is essentially the link:https://www.martinfowler.com/eaaCatalog/activeRecord.html[active record pattern], sometimes just called the entity pattern. -Hibernate with Panache also allows for the use of the more classical link:https://martinfowler.com/eaaCatalog/repository.html[repository pattern] via `PanacheRepository`. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `hibernate-orm-panache-quickstart` {quickstarts-tree-url}/hibernate-orm-panache-quickstart[directory]. - - -== Setting up and configuring Hibernate ORM with Panache - -To get started: - -* add your settings in `{config-file}` -* annotate your entities with `@Entity` -* make your entities extend `PanacheEntity` (optional if you are using the repository pattern) - -Follow the xref:hibernate-orm.adoc#setting-up-and-configuring-hibernate-orm[Hibernate set-up guide for all configuration]. - -In your build file, add the following dependencies: - -* the Hibernate ORM with Panache extension -* your JDBC driver extension (`quarkus-jdbc-postgresql`, `quarkus-jdbc-h2`, `quarkus-jdbc-mariadb`, ...) - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - - io.quarkus - quarkus-hibernate-orm-panache - - - - - io.quarkus - quarkus-jdbc-postgresql - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -// Hibernate ORM specific dependencies -implementation("io.quarkus:quarkus-hibernate-orm-panache") - -// JDBC driver dependencies -implementation("io.quarkus:quarkus-jdbc-postgresql") ----- - -Then add the relevant configuration properties in `{config-file}`. - -[source,properties] ----- -# configure your datasource -quarkus.datasource.db-kind = postgresql -quarkus.datasource.username = sarah -quarkus.datasource.password = connor -quarkus.datasource.jdbc.url = jdbc:postgresql://localhost:5432/mydatabase - -# drop and create the database at startup (use `update` to only update the schema) -quarkus.hibernate-orm.database.generation = drop-and-create ----- - -== Solution 1: using the active record pattern - -=== Defining your entity - -To define a Panache entity, simply extend `PanacheEntity`, annotate it with `@Entity` and add your -columns as public fields: - -[source,java] ----- -@Entity -public class Person extends PanacheEntity { - public String name; - public LocalDate birth; - public Status status; -} ----- - -You can put all your JPA column annotations on the public fields. If you need a field to not be persisted, use the -`@Transient` annotation on it. If you need to write accessors, you can: - -[source,java] ----- -@Entity -public class Person extends PanacheEntity { - public String name; - public LocalDate birth; - public Status status; - - // return name as uppercase in the model - public String getName(){ - return name.toUpperCase(); - } - - // store all names in lowercase in the DB - public void setName(String name){ - this.name = name.toLowerCase(); - } -} ----- - -And thanks to our field access rewrite, when your users read `person.name` they will actually call your `getName()` accessor, -and similarly for field writes and the setter. -This allows for proper encapsulation at runtime as all fields calls will be replaced by the corresponding getter/setter calls. - -=== Most useful operations - -Once you have written your entity, here are the most common operations you will be able to perform: - -[source,java] ----- -// creating a person -Person person = new Person(); -person.name = "Stef"; -person.birth = LocalDate.of(1910, Month.FEBRUARY, 1); -person.status = Status.Alive; - -// persist it -person.persist(); - -// note that once persisted, you don't need to explicitly save your entity: all -// modifications are automatically persisted on transaction commit. - -// check if it's persistent -if(person.isPersistent()){ - // delete it - person.delete(); -} - -// getting a list of all Person entities -List allPersons = Person.listAll(); - -// finding a specific person by ID -person = Person.findById(personId); - -// finding a specific person by ID via an Optional -Optional optional = Person.findByIdOptional(personId); -person = optional.orElseThrow(() -> new NotFoundException()); - -// finding all living persons -List livingPersons = Person.list("status", Status.Alive); - -// counting all persons -long countAll = Person.count(); - -// counting all living persons -long countAlive = Person.count("status", Status.Alive); - -// delete all living persons -Person.delete("status", Status.Alive); - -// delete all persons -Person.deleteAll(); - -// delete by id -boolean deleted = Person.deleteById(personId); - -// set the name of all living persons to 'Mortal' -Person.update("name = 'Mortal' where status = ?1", Status.Alive); - ----- - -All `list` methods have equivalent `stream` versions. - -[source,java] ----- -try (Stream persons = Person.streamAll()) { - List namesButEmmanuels = persons - .map(p -> p.name.toLowerCase() ) - .filter( n -> ! "emmanuel".equals(n) ) - .collect(Collectors.toList()); -} ----- - -NOTE: The `stream` methods require a transaction to work. + -As they perform I/O operations, they should be closed via the `close()` method or via a try-with-resource to close the underlying `ResultSet`. -If not, you will see warnings from Agroal that will close the underlying `ResultSet` for you. - -=== Adding entity methods - -Add custom queries on your entities inside the entities themselves. -That way, you and your co-workers can find them easily, and queries are co-located with the object they operate on. -Adding them as static methods in your entity class is the Panache Active Record way. - -[source,java] ----- -@Entity -public class Person extends PanacheEntity { - public String name; - public LocalDate birth; - public Status status; - - public static Person findByName(String name){ - return find("name", name).firstResult(); - } - - public static List findAlive(){ - return list("status", Status.Alive); - } - - public static void deleteStefs(){ - delete("name", "Stef"); - } -} ----- - -== Solution 2: using the repository pattern - - -=== Defining your entity - -When using the repository pattern, you can define your entities as regular JPA entities. - -[source,java] ----- -@Entity -public class Person { - @Id @GeneratedValue private Long id; - private String name; - private LocalDate birth; - private Status status; - - public Long getId(){ - return id; - } - public void setId(Long id){ - this.id = id; - } - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - public LocalDate getBirth() { - return birth; - } - public void setBirth(LocalDate birth) { - this.birth = birth; - } - public Status getStatus() { - return status; - } - public void setStatus(Status status) { - this.status = status; - } -} ----- - -TIP: If you don't want to bother defining getters/setters for your entities, you can make them extend `PanacheEntityBase` and -Quarkus will generate them for you. You can even extend `PanacheEntity` and take advantage of the default ID it provides. - -=== Defining your repository - -When using Repositories, you get the exact same convenient methods as with the active record pattern, injected in your Repository, -by making them implements `PanacheRepository`: - -[source,java] ----- -@ApplicationScoped -public class PersonRepository implements PanacheRepository { - - // put your custom logic here as instance methods - - public Person findByName(String name){ - return find("name", name).firstResult(); - } - - public List findAlive(){ - return list("status", Status.Alive); - } - - public void deleteStefs(){ - delete("name", "Stef"); - } -} ----- - -All the operations that are defined on `PanacheEntityBase` are available on your repository, so using it -is exactly the same as using the active record pattern, except you need to inject it: - -[source,java] ----- -@Inject -PersonRepository personRepository; - -@GET -public long count(){ - return personRepository.count(); -} ----- - -=== Most useful operations - -Once you have written your repository, here are the most common operations you will be able to perform: - -[source,java] ----- -// creating a person -Person person = new Person(); -person.setName("Stef"); -person.setBirth(LocalDate.of(1910, Month.FEBRUARY, 1)); -person.setStatus(Status.Alive); - -// persist it -personRepository.persist(person); - -// note that once persisted, you don't need to explicitly save your entity: all -// modifications are automatically persisted on transaction commit. - -// check if it's persistent -if(personRepository.isPersistent(person)){ - // delete it - personRepository.delete(person); -} - -// getting a list of all Person entities -List allPersons = personRepository.listAll(); - -// finding a specific person by ID -person = personRepository.findById(personId); - -// finding a specific person by ID via an Optional -Optional optional = personRepository.findByIdOptional(personId); -person = optional.orElseThrow(() -> new NotFoundException()); - -// finding all living persons -List livingPersons = personRepository.list("status", Status.Alive); - -// counting all persons -long countAll = personRepository.count(); - -// counting all living persons -long countAlive = personRepository.count("status", Status.Alive); - -// delete all living persons -personRepository.delete("status", Status.Alive); - -// delete all persons -personRepository.deleteAll(); - -// delete by id -boolean deleted = personRepository.deleteById(personId); - -// set the name of all living persons to 'Mortal' -personRepository.update("name = 'Mortal' where status = ?1", Status.Alive); - ----- - -All `list` methods have equivalent `stream` versions. - -[source,java] ----- -Stream persons = personRepository.streamAll(); -List namesButEmmanuels = persons - .map(p -> p.name.toLowerCase() ) - .filter( n -> ! "emmanuel".equals(n) ) - .collect(Collectors.toList()); ----- - -NOTE: The `stream` methods require a transaction to work. - -NOTE: The rest of the documentation show usages based on the active record pattern only, -but keep in mind that they can be performed with the repository pattern as well. -The repository pattern examples have been omitted for brevity. - -== Writing a JAX-RS resource - -First, include one of the RESTEasy extensions to enable JAX-RS endpoints, for example, add the `io.quarkus:quarkus-resteasy-jackson` dependency for JAX-RS and JSON support. - -Then, you can create the following resource to create/read/update/delete your Person entity: - -[source,java] ----- -@Path("/persons") -@Produces(MediaType.APPLICATION_JSON) -@Consumes(MediaType.APPLICATION_JSON) -public class PersonResource { - - @GET - public List list() { - return Person.listAll(); - } - - @GET - @Path("/{id}") - public Person get(@PathParam("id") Long id) { - return Person.findById(id); - } - - @POST - @Transactional - public Response create(Person person) { - person.persist(); - return Response.created(URI.create("/persons/" + person.id)).build(); - } - - @PUT - @Path("/{id}") - @Transactional - public Person update(@PathParam("id") Long id, Person person) { - Person entity = Person.findById(id); - if(entity == null) { - throw new NotFoundException(); - } - - // map all fields from the person parameter to the existing entity - entity.name = person.name; - - return entity; - } - - @DELETE - @Path("/{id}") - @Transactional - public void delete(@PathParam("id") Long id) { - Person entity = Person.findById(id); - if(entity == null) { - throw new NotFoundException(); - } - entity.delete(); - } - - @GET - @Path("/search/{name}") - public Person search(@PathParam("name") String name) { - return Person.findByName(name); - } - - @GET - @Path("/count") - public Long count() { - return Person.count(); - } -} ----- - -NOTE: Be careful to use the `@Transactional` annotation on the operations that modify the database, -you can add the annotation at the class level for simplicity purpose. - -== Advanced Query - -=== Paging - -You should only use `list` and `stream` methods if your table contains small enough data sets. For larger data -sets you can use the `find` method equivalents, which return a `PanacheQuery` on which you can do paging: - -[source,java] ----- -// create a query for all living persons -PanacheQuery livingPersons = Person.find("status", Status.Alive); - -// make it use pages of 25 entries at a time -livingPersons.page(Page.ofSize(25)); - -// get the first page -List firstPage = livingPersons.list(); - -// get the second page -List secondPage = livingPersons.nextPage().list(); - -// get page 7 -List page7 = livingPersons.page(Page.of(7, 25)).list(); - -// get the number of pages -int numberOfPages = livingPersons.pageCount(); - -// get the total number of entities returned by this query without paging -long count = livingPersons.count(); - -// and you can chain methods of course -return Person.find("status", Status.Alive) - .page(Page.ofSize(25)) - .nextPage() - .stream() ----- - -The `PanacheQuery` type has many other methods to deal with paging and returning streams. - -=== Using a range instead of pages - -`PanacheQuery` also allows range-based queries. - -[source,java] ----- -// create a query for all living persons -PanacheQuery livingPersons = Person.find("status", Status.Alive); - -// make it use a range: start at index 0 until index 24 (inclusive). -livingPersons.range(0, 24); - -// get the range -List firstRange = livingPersons.list(); - -// to get the next range, you need to call range again -List secondRange = livingPersons.range(25, 49).list(); ----- - -[WARNING] -==== -You cannot mix ranges and pages: if you use a range, all methods that depend on having a current page will throw an `UnsupportedOperationException`; -you can switch back to paging using `page(Page)` or `page(int, int)`. -==== - -=== Sorting - -All methods accepting a query string also accept the following simplified query form: - -[source,java] ----- -List persons = Person.list("order by name,birth"); ----- - -But these methods also accept an optional `Sort` parameter, which allows your to abstract your sorting: - -[source,java] ----- -List persons = Person.list(Sort.by("name").and("birth")); - -// and with more restrictions -List persons = Person.list("status", Sort.by("name").and("birth"), Status.Alive); ----- - -The `Sort` class has plenty of methods for adding columns and specifying sort direction. - -=== Simplified queries - -Normally, HQL queries are of this form: `from EntityName [where ...] [order by ...]`, with optional elements -at the end. - -If your select query does not start with `from`, we support the following additional forms: - -- `order by ...` which will expand to `from EntityName order by ...` -- `` (and single parameter) which will expand to `from EntityName where = ?` -- `` will expand to `from EntityName where ` - -If your update query does not start with `update`, we support the following additional forms: - -- `from EntityName ...` which will expand to `update from EntityName ...` -- `set? ` (and single parameter) which will expand to `update from EntityName set = ?` -- `set? ` will expand to `update from EntityName set ` - -If your delete query does not start with `delete`, we support the following additional forms: - -- `from EntityName ...` which will expand to `delete from EntityName ...` -- `` (and single parameter) which will expand to `delete from EntityName where = ?` -- `` will expand to `delete from EntityName where ` - -NOTE: You can also write your queries in plain -link:https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#hql[HQL]: - -[source,java] ----- -Order.find("select distinct o from Order o left join fetch o.lineItems"); -Order.update("update from Person set name = 'Mortal' where status = ?", Status.Alive); ----- - -=== Named queries - -You can reference a named query instead of a (simplified) HQL query by prefixing its name with the '#' character. You can also use named queries for count, update and delete queries. - -[source,java] ----- -@Entity -@NamedQueries({ - @NamedQuery(name = "Person.getByName", query = "from Person where name = ?1"), - @NamedQuery(name = "Person.countByStatus", query = "select count(*) from Person p where p.status = :status"), - @NamedQuery(name = "Person.updateStatusById", query = "update Person p set p.status = :status where p.id = :id"), - @NamedQuery(name = "Person.deleteById", query = "delete from Person p where p.id = ?1") -}) - -public class Person extends PanacheEntity { - public String name; - public LocalDate birth; - public Status status; - - public static Person findByName(String name){ - return find("#Person.getByName", name).firstResult(); - } - - public static long countByStatus(Status status) { - return count("#Person.countByStatus", Parameters.with("status", status).map()); - } - - public static long updateStatusById(Status status, long id) { - return update("#Person.updateStatusById", Parameters.with("status", status).and("id", id)); - } - - public static long deleteById(long id) { - return delete("#Person.deleteById", id); - } -} ----- - -[WARNING] -==== -Named queries can only be defined inside your JPA entity classes (being the Panache entity class, or the repository parameterized type), -or on one of its super classes. -==== - -=== Query parameters - -You can pass query parameters by index (1-based) as shown below: - -[source,java] ----- -Person.find("name = ?1 and status = ?2", "stef", Status.Alive); ----- - -Or by name using a `Map`: - -[source,java] ----- -Map params = new HashMap<>(); -params.put("name", "stef"); -params.put("status", Status.Alive); -Person.find("name = :name and status = :status", params); ----- - -Or using the convenience class `Parameters` either as is or to build a `Map`: - -[source,java] ----- -// generate a Map -Person.find("name = :name and status = :status", - Parameters.with("name", "stef").and("status", Status.Alive).map()); - -// use it as-is -Person.find("name = :name and status = :status", - Parameters.with("name", "stef").and("status", Status.Alive)); ----- - -Every query operation accepts passing parameters by index (`Object...`), or by name (`Map` or `Parameters`). - -=== Query projection - -Query projection can be done with the `project(Class)` method on the `PanacheQuery` object that is returned by the `find()` methods. - -You can use it to restrict which fields will be returned by the database. - -Hibernate will use **DTO projection** and generate a SELECT clause with the attributes from the projection class. -This is also called **dynamic instantiation** or **constructor expression**, more info can be found on the Hibernate guide: -link:https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#hql-select-clause[hql select clause] - -The projection class needs to be a valid Java Bean and have a constructor that contains all its attributes, this constructor will be used to -instantiate the projection DTO instead of using the entity class. This class must have a matching constructor with all the class attributes as parameters. - - -[source,java] ----- -import io.quarkus.runtime.annotations.RegisterForReflection; - -@RegisterForReflection // <1> -public class PersonName { - public final String name; // <2> - - public PersonName(String name){ // <3> - this.name = name; - } -} - -// only 'name' will be loaded from the database -PanacheQuery query = Person.find("status", Status.Alive).project(PersonName.class); ----- -<1> The `@RegisterForReflection` annotation instructs Quarkus to keep the class and its members during the native compilation. More details about the `@RegisterForReflection` annotation can be found on the xref:writing-native-applications-tips.adoc#registerForReflection[native application tips] page. -<2> We use public fields here, but you can use private fields and getters/setters if you prefer. -<3> This constructor will be used by Hibernate, it must be the only constructor in your class and have all the class attributes as parameters. - - -[WARNING] -==== -The implementation of the `project(Class)` method uses the constructor's parameter names to build the select clause of the query, -so the compiler must be configured to store parameter names inside the compiled class. -This is enabled by default if you are using the Quarkus Maven archetype. If you are not using it, add the property `true` to your `pom.xml`. -==== - -If in the DTO projection object you have a field from a referenced entity, you can use the `@ProjectedFieldName` annotation to provide the path for the SELECT statement. - -[source,java] ----- -@Entity -public class Dog extends PanacheEntity { - public String name; - public String race; - @ManyToOne - public Person owner; -} - -@RegisterForReflection -public class DogDto { - public String name; - public String ownerName; - - public DogDto(String name, @ProjectedFieldName("owner.name") String ownerName) { // <1> - this.name = name; - this.ownerName = ownerName; - } -} - -PanacheQuery query = Dog.findAll().project(DogDto.class); ----- -<1> The `ownerName` DTO constructor's parameter will be loaded from the `owner.name` HQL property. - -== Multiple Persistence Units - -The support for multiple persistence units is described in detail in xref:hibernate-orm.adoc#multiple-persistence-units[the Hibernate ORM guide]. - -When using Panache, things are simple: - -* A given Panache entity can be attached to only a single persistence unit. -* Given that, Panache already provides the necessary plumbing to transparently find the appropriate `EntityManager` associated to a Panache entity. - -== Transactions - -Make sure to wrap methods modifying your database (e.g. `entity.persist()`) within a transaction. Marking a -CDI bean method `@Transactional` will do that for you and make that method a transaction boundary. We recommend doing -so at your application entry point boundaries like your REST endpoint controllers. - -JPA batches changes you make to your entities and sends changes (it's called flush) at the end of the transaction or before a query. -This is usually a good thing as it's more efficient. -But if you want to check optimistic locking failures, do object validation right away or generally want to get immediate feedback, you can force the flush operation by calling `entity.flush()` or even use `entity.persistAndFlush()` to make it a single method call. This will allow you to catch any `PersistenceException` that could occur when JPA send those changes to the database. -Remember, this is less efficient so don't abuse it. -And your transaction still has to be committed. - -Here is an example of the usage of the flush method to allow making a specific action in case of `PersistenceException`: -[source,java] ----- -@Transactional -public void create(Parameter parameter){ - try { - //Here I use the persistAndFlush() shorthand method on a Panache repository to persist to database then flush the changes. - return parameterRepository.persistAndFlush(parameter); - } - catch(PersistenceException pe){ - LOG.error("Unable to create the parameter", pe); - //in case of error, I save it to disk - diskPersister.save(parameter); - } -} ----- - -== Lock management - -Panache provides direct support for database locking with your entity/repository, using `findById(Object, LockModeType)` or `find().withLock(LockModeType)`. - -The following examples are for the active record pattern, but the same can be used with repositories. - -=== First: Locking using findById(). - -[source,java] ----- -public class PersonEndpoint { - - @GET - @Transactional - public Person findByIdForUpdate(Long id){ - Person p = Person.findById(id, LockModeType.PESSIMISTIC_WRITE); - //do something useful, the lock will be released when the transaction ends. - return person; - } - -} ----- - -=== Second: Locking in a find(). - -[source,java] ----- -public class PersonEndpoint { - - @GET - @Transactional - public Person findByNameForUpdate(String name){ - Person p = Person.find("name", name).withLock(LockModeType.PESSIMISTIC_WRITE).findOne(); - //do something useful, the lock will be released when the transaction ends. - return person; - } - -} ----- - -Be careful that locks are released when the transaction ends, so the method that invokes the lock query must be annotated with the `@Transactional` annotation. - -== Custom IDs - -IDs are often a touchy subject, and not everyone's up for letting them handled by the framework, once again we -have you covered. - -You can specify your own ID strategy by extending `PanacheEntityBase` instead of `PanacheEntity`. Then -you just declare whatever ID you want as a public field: - -[source,java] ----- -@Entity -public class Person extends PanacheEntityBase { - - @Id - @SequenceGenerator( - name = "personSequence", - sequenceName = "person_id_seq", - allocationSize = 1, - initialValue = 4) - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "personSequence") - public Integer id; - - //... -} ----- - -If you're using repositories, then you will want to extend `PanacheRepositoryBase` instead of `PanacheRepository` -and specify your ID type as an extra type parameter: - -[source,java] ----- -@ApplicationScoped -public class PersonRepository implements PanacheRepositoryBase { - //... -} ----- - -== Mocking - -=== Using the active record pattern - -If you are using the active record pattern you cannot use Mockito directly as it does not support mocking static methods, -but you can use the `quarkus-panache-mock` module which allows you to use Mockito to mock all provided static -methods, including your own. - -Add this dependency to your `pom.xml`: - -[source,xml] ----- - - io.quarkus - quarkus-panache-mock - test - ----- - - -Given this simple entity: - -[source,java] ----- -@Entity -public class Person extends PanacheEntity { - - public String name; - - public static List findOrdered() { - return find("ORDER BY name").list(); - } -} ----- - -You can write your mocking test like this: - -[source,java] ----- -@QuarkusTest -public class PanacheFunctionalityTest { - - @Test - public void testPanacheMocking() { - PanacheMock.mock(Person.class); - - // Mocked classes always return a default value - Assertions.assertEquals(0, Person.count()); - - // Now let's specify the return value - Mockito.when(Person.count()).thenReturn(23L); - Assertions.assertEquals(23, Person.count()); - - // Now let's change the return value - Mockito.when(Person.count()).thenReturn(42L); - Assertions.assertEquals(42, Person.count()); - - // Now let's call the original method - Mockito.when(Person.count()).thenCallRealMethod(); - Assertions.assertEquals(0, Person.count()); - - // Check that we called it 4 times - PanacheMock.verify(Person.class, Mockito.times(4)).count();// <1> - - // Mock only with specific parameters - Person p = new Person(); - Mockito.when(Person.findById(12L)).thenReturn(p); - Assertions.assertSame(p, Person.findById(12L)); - Assertions.assertNull(Person.findById(42L)); - - // Mock throwing - Mockito.when(Person.findById(12L)).thenThrow(new WebApplicationException()); - Assertions.assertThrows(WebApplicationException.class, () -> Person.findById(12L)); - - // We can even mock your custom methods - Mockito.when(Person.findOrdered()).thenReturn(Collections.emptyList()); - Assertions.assertTrue(Person.findOrdered().isEmpty()); - - // Mocking a void method - Person.voidMethod(); - - // Make it throw - PanacheMock.doThrow(new RuntimeException("Stef2")).when(Person.class).voidMethod(); - try { - Person.voidMethod(); - Assertions.fail(); - } catch (RuntimeException x) { - Assertions.assertEquals("Stef2", x.getMessage()); - } - - // Back to doNothing - PanacheMock.doNothing().when(Person.class).voidMethod(); - Person.voidMethod(); - - // Make it call the real method - PanacheMock.doCallRealMethod().when(Person.class).voidMethod(); - try { - Person.voidMethod(); - Assertions.fail(); - } catch (RuntimeException x) { - Assertions.assertEquals("void", x.getMessage()); - } - - PanacheMock.verify(Person.class).findOrdered(); - PanacheMock.verify(Person.class, Mockito.atLeast(4)).voidMethod(); - PanacheMock.verify(Person.class, Mockito.atLeastOnce()).findById(Mockito.any()); - PanacheMock.verifyNoMoreInteractions(Person.class); - } -} ----- -<1> Be sure to call your `verify` and `do*` methods on `PanacheMock` rather than `Mockito`, otherwise you won't know -what mock object to pass. - -==== Mocking `EntityManager`, `Session` and entity instance methods - -If you need to mock entity instance methods, such as `persist()` you can do it by mocking the Hibernate ORM `Session` object: - -[source,java] ----- -@QuarkusTest -public class PanacheMockingTest { - - @InjectMock - Session session; - - @BeforeEach - public void setup() { - Query mockQuery = Mockito.mock(Query.class); - Mockito.doNothing().when(session).persist(Mockito.any()); - Mockito.when(session.createQuery(Mockito.anyString())).thenReturn(mockQuery); - Mockito.when(mockQuery.getSingleResult()).thenReturn(0l); - } - - @Test - public void testPanacheMocking() { - Person p = new Person(); - // mocked via EntityManager mocking - p.persist(); - Assertions.assertNull(p.id); - - Mockito.verify(session, Mockito.times(1)).persist(Mockito.any()); - } -} ----- - -=== Using the repository pattern - -If you are using the repository pattern you can use Mockito directly, using the `quarkus-junit5-mockito` module, -which makes mocking beans much easier: - -[source,xml] ----- - - io.quarkus - quarkus-junit5-mockito - test - ----- - -Given this simple entity: - -[source,java] ----- -@Entity -public class Person { - - @Id - @GeneratedValue - public Long id; - - public String name; -} ----- - -And this repository: - -[source,java] ----- -@ApplicationScoped -public class PersonRepository implements PanacheRepository { - public List findOrdered() { - return find("ORDER BY name").list(); - } -} ----- - -You can write your mocking test like this: - -[source,java] ----- -@QuarkusTest -public class PanacheFunctionalityTest { - @InjectMock - PersonRepository personRepository; - - @Test - public void testPanacheRepositoryMocking() throws Throwable { - // Mocked classes always return a default value - Assertions.assertEquals(0, personRepository.count()); - - // Now let's specify the return value - Mockito.when(personRepository.count()).thenReturn(23L); - Assertions.assertEquals(23, personRepository.count()); - - // Now let's change the return value - Mockito.when(personRepository.count()).thenReturn(42L); - Assertions.assertEquals(42, personRepository.count()); - - // Now let's call the original method - Mockito.when(personRepository.count()).thenCallRealMethod(); - Assertions.assertEquals(0, personRepository.count()); - - // Check that we called it 4 times - Mockito.verify(personRepository, Mockito.times(4)).count(); - - // Mock only with specific parameters - Person p = new Person(); - Mockito.when(personRepository.findById(12L)).thenReturn(p); - Assertions.assertSame(p, personRepository.findById(12L)); - Assertions.assertNull(personRepository.findById(42L)); - - // Mock throwing - Mockito.when(personRepository.findById(12L)).thenThrow(new WebApplicationException()); - Assertions.assertThrows(WebApplicationException.class, () -> personRepository.findById(12L)); - - Mockito.when(personRepository.findOrdered()).thenReturn(Collections.emptyList()); - Assertions.assertTrue(personRepository.findOrdered().isEmpty()); - - // We can even mock your custom methods - Mockito.verify(personRepository).findOrdered(); - Mockito.verify(personRepository, Mockito.atLeastOnce()).findById(Mockito.any()); - Mockito.verifyNoMoreInteractions(personRepository); - } -} ----- - -== How and why we simplify Hibernate ORM mappings - -When it comes to writing Hibernate ORM entities, there are a number of annoying things that users have grown used to -reluctantly deal with, such as: - -- Duplicating ID logic: most entities need an ID, most people don't care how it's set, because it's not really -relevant to your model. -- Traditional EE patterns advise to split entity definition (the model) from the operations you can do on them -(DAOs, Repositories), but really that requires a split between the state and its operations even though -we would never do something like that for regular objects in the Object Oriented architecture, where state and methods -are in the same class. Moreover, this requires two classes per entity, and requires injection of the DAO or Repository -where you need to do entity operations, which breaks your edit flow and requires you to get out of the code you're -writing to set up an injection point before coming back to use it. -- Hibernate queries are super powerful, but overly verbose for common operations, requiring you to write queries even -when you don't need all the parts. -- Hibernate is very general-purpose, but does not make it trivial to do trivial operations that make up 90% of our -model usage. - -With Panache, we took an opinionated approach to tackle all these problems: - -- Make your entities extend `PanacheEntity`: it has an ID field that is auto-generated. If you require -a custom ID strategy, you can extend `PanacheEntityBase` instead and handle the ID yourself. -- Use public fields. Get rid of dumb getter and setters. Hibernate ORM w/o Panache also doesn't require you to use getters and setters, -but Panache will additionally generate all getters and setters that are missing, and rewrite every access to these fields to use the accessor methods. This way you can still -write _useful_ accessors when you need them, which will be used even though your entity users still use field accesses. This implies that from the Hibernate perspective you're using accessors via getters and setters even while it looks like field accessors. -- With the active record pattern: put all your entity logic in static methods in your entity class and don't create DAOs. -Your entity superclass comes with lots of super useful static methods, and you can add your own in your entity class. -Users can just start using your entity `Person` by typing `Person.` and getting completion for all the operations in a single place. -- Don't write parts of the query that you don't need: write `Person.find("order by name")` or -`Person.find("name = ?1 and status = ?2", "stef", Status.Alive)` or even better -`Person.find("name", "stef")`. - -That's all there is to it: with Panache, Hibernate ORM has never looked so trim and neat. - -== Defining entities in external projects or jars - -Hibernate ORM with Panache relies on compile-time bytecode enhancements to your entities. - -It attempts to identify archives with Panache entities (and consumers of Panache entities) -by the presence of the marker file `META-INF/panache-archive.marker`. Panache includes an -annotation processor that will automatically create this file in archives that depend on -Panache (even indirectly). If you have disabled annotation processors you may need to create -this file manually in some cases. - -WARNING: If you include the jpa-modelgen annotation processor this will exclude the Panache -annotation processor by default. If you do this you should either create the marker file -yourself, or add the `quarkus-panache-common` as well, as shown below: - -[source,xml] ----- - - maven-compiler-plugin - ${compiler-plugin.version} - - - - org.hibernate - hibernate-jpamodelgen - ${hibernate.version} - - - io.quarkus - quarkus-panache-common - ${quarkus.platform.version} - - - - ----- diff --git a/_versions/2.7/guides/hibernate-orm.adoc b/_versions/2.7/guides/hibernate-orm.adoc deleted file mode 100644 index 4cfd7ca77f0..00000000000 --- a/_versions/2.7/guides/hibernate-orm.adoc +++ /dev/null @@ -1,1098 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Hibernate ORM and JPA - -include::./attributes.adoc[] -:config-file: application.properties -:orm-doc-url-prefix: https://docs.jboss.org/hibernate/orm/5.6/userguide/html_single/Hibernate_User_Guide.html - -Hibernate ORM is the de facto standard JPA implementation and offers you the full breadth of an Object Relational Mapper. -It works beautifully in Quarkus. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `hibernate-orm-quickstart` {quickstarts-tree-url}/hibernate-orm-quickstart[directory]. - -== Setting up and configuring Hibernate ORM - -When using Hibernate ORM in Quarkus, you don't need to have a `persistence.xml` resource to configure it. - -Using such a classic configuration file is an option, but unnecessary unless you have specific advanced needs; -so we'll see first how Hibernate ORM can be configured without a `persistence.xml` resource. - -In Quarkus, you only need to: - -* add your configuration settings in `{config-file}` -* annotate your entities with `@Entity` and any other mapping annotation as usual - -Other configuration needs have been automated: Quarkus will make some opinionated choices and educated guesses. - -Add the following dependencies to your project: - -* the Hibernate ORM extension: `io.quarkus:quarkus-hibernate-orm` -* your JDBC driver extension; the following options are available: - - `quarkus-jdbc-db2` for link:https://www.ibm.com/products/db2-database[IBM DB2] - - `quarkus-jdbc-derby` for link:https://db.apache.org/derby/[Apache Derby] - - `quarkus-jdbc-h2` for link:https://www.h2database.com/html/main.html[H2] - - `quarkus-jdbc-mariadb` for link:https://mariadb.com/[MariaDB] - - `quarkus-jdbc-mssql` for link:https://www.microsoft.com/en-gb/sql-server/[Microsoft SQL Server] - - `quarkus-jdbc-mysql` for link:https://www.mysql.com/[MySQL] - - `quarkus-jdbc-oracle` for link:https://www.oracle.com/database/[Oracle Database] - - `quarkus-jdbc-postgresql` for link:https://www.postgresql.org/[PostgreSQL] - -For instance: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - - io.quarkus - quarkus-hibernate-orm - - - - - io.quarkus - quarkus-jdbc-postgresql - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -// Hibernate ORM specific dependencies -implementation("io.quarkus:quarkus-hibernate-orm") - -// JDBC driver dependencies -implementation("io.quarkus:quarkus-jdbc-postgresql") ----- - -Annotate your persistent objects with `@Entity`, -then add the relevant configuration properties in `{config-file}`. - -[source,properties] -.Example `{config-file}` ----- -# datasource configuration -quarkus.datasource.db-kind = postgresql -quarkus.datasource.username = hibernate -quarkus.datasource.password = hibernate -quarkus.datasource.jdbc.url = jdbc:postgresql://localhost:5432/hibernate_db - -# drop and create the database at startup (use `update` to only update the schema) -quarkus.hibernate-orm.database.generation=drop-and-create ----- - -Note that these configuration properties are not the same ones as in your typical Hibernate ORM configuration file. -They will often map to Hibernate ORM configuration properties but could have different names and don't necessarily map 1:1 to each other. - -Also, Quarkus will set many Hibernate ORM configuration settings automatically, and will often use more modern defaults. - -Please see below section <> for the list of properties you can set in `{config-file}`. - -An `EntityManagerFactory` will be created based on the Quarkus `datasource` configuration as long as the Hibernate ORM extension is listed among your project dependencies. - -The dialect will be selected based on the JDBC driver - unless you set one explicitly. - -You can then happily inject your `EntityManager`: - -[source,java] -.Example application bean using Hibernate ----- -@ApplicationScoped -public class SantaClausService { - @Inject - EntityManager em; <1> - - @Transactional <2> - public void createGift(String giftDescription) { - Gift gift = new Gift(); - gift.setName(giftDescription); - em.persist(gift); - } -} ----- - -<1> Inject your entity manager and have fun -<2> Mark your CDI bean method as `@Transactional` and the `EntityManager` will enlist and flush at commit. - -[source,java] -.Example Entity ----- -@Entity -public class Gift { - private Long id; - private String name; - - @Id - @SequenceGenerator(name = "giftSeq", sequenceName = "gift_id_seq", allocationSize = 1, initialValue = 1) - @GeneratedValue(generator = "giftSeq") - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } -} ----- - -To load SQL statements when Hibernate ORM starts, add an `import.sql` file to the root of your resources directory. -This script can contain any SQL DML statements. -Make sure to terminate each statement with a semicolon. - -This is useful to have a data set ready for your tests or demos. - -WARNING: Make sure to wrap methods modifying your database (e.g. `entity.persist()`) within a transaction. Marking a -CDI bean method `@Transactional` will do that for you and make that method a transaction boundary. We recommend doing -so at your application entry point boundaries like your REST endpoint controllers. - -[[hibernate-configuration-properties]] -=== Hibernate ORM configuration properties - -There are various optional properties useful to refine your `EntityManagerFactory` or guide guesses of Quarkus. - -There are no required properties, as long as a default datasource is configured. - -When no property is set, Quarkus can typically infer everything it needs to setup Hibernate ORM -and will have it use the default datasource. - -The configuration properties listed here allow you to override such defaults, and customize and tune various aspects. - -include::{generated-dir}/config/quarkus-hibernate-orm.adoc[opts=optional, leveloffset=+2] - -[NOTE] --- -Do not mix `persistence.xml` and `quarkus.hibernate-orm.*` properties in `{config-file}`. -Quarkus will raise an exception. -Make up your mind on which approach you want to use. --- - -[TIP] -==== -Want to start a PostgreSQL server on the side with Docker? - -[source,bash] ----- -docker run --rm=true --name postgres-quarkus-hibernate -e POSTGRES_USER=hibernate \ - -e POSTGRES_PASSWORD=hibernate -e POSTGRES_DB=hibernate_db \ - -p 5432:5432 postgres:14.1 ----- - -This will start a non-durable empty database: ideal for a quick experiment! -==== - -[[multiple-persistence-units]] -=== Multiple persistence units - -==== Setting up multiple persistence units - -It is possible to define multiple persistence units using the Quarkus configuration properties. - -The properties at the root of the `quarkus.hibernate-orm.` namespace define the default persistence unit. -For instance, the following snippet defines a default datasource and a default persistence unit: - -[source,properties] ----- -quarkus.datasource.db-kind=h2 -quarkus.datasource.jdbc.url=jdbc:h2:mem:default;DB_CLOSE_DELAY=-1 - -quarkus.hibernate-orm.dialect=org.hibernate.dialect.H2Dialect -quarkus.hibernate-orm.database.generation=drop-and-create ----- - -Using a map based approach, it is possible to define named persistence units: - -[source,properties] ----- -quarkus.datasource."users".db-kind=h2 <1> -quarkus.datasource."users".jdbc.url=jdbc:h2:mem:users;DB_CLOSE_DELAY=-1 - -quarkus.datasource."inventory".db-kind=h2 <2> -quarkus.datasource."inventory".jdbc.url=jdbc:h2:mem:inventory;DB_CLOSE_DELAY=-1 - -quarkus.hibernate-orm."users".database.generation=drop-and-create <3> -quarkus.hibernate-orm."users".datasource=users <4> -quarkus.hibernate-orm."users".packages=org.acme.model.user <5> - -quarkus.hibernate-orm."inventory".database.generation=drop-and-create <6> -quarkus.hibernate-orm."inventory".datasource=inventory -quarkus.hibernate-orm."inventory".packages=org.acme.model.inventory ----- -<1> Define a datasource named `users`. -<2> Define a datasource named `inventory`. -<3> Define a persistence unit called `users`. -<4> Define the datasource used by the persistence unit. -<5> This configuration property is important but we will discuss it a bit later. -<6> Define a persistence unit called `inventory` pointing to the `inventory` datasource. - -[NOTE] -==== -You can mix the default datasource and named datasources or only have one or the other. -==== - -[NOTE] -==== -The default persistence unit points to the default datasource by default. -For named persistence units, the `datasource` property is mandatory. -You can point your persistence unit to the default datasource by setting it to `` -(which is the internal name of the default datasource). - -It is perfectly valid to have several persistence units pointing to the same datasource. -==== - -[[multiple-persistence-units-attaching-model-classes]] -==== Attaching model classes to persistence units - -There are two ways to attach model classes to persistence units, and they should not be mixed: - -* Via the `packages` configuration property; -* Via the `@io.quarkus.hibernate.orm.PersistenceUnit` package-level annotation. - -If both are mixed, the annotations are ignored and only the `packages` configuration properties are taken into account. - -Using the `packages` configuration property is simple: - -[source,properties] ----- -quarkus.hibernate-orm.database.generation=drop-and-create -quarkus.hibernate-orm.packages=org.acme.model.defaultpu - -quarkus.hibernate-orm."users".database.generation=drop-and-create -quarkus.hibernate-orm."users".datasource=users -quarkus.hibernate-orm."users".packages=org.acme.model.user ----- - -This configuration snippet will create two persistence units: - -* The default one which will contain all the model classes under the `org.acme.model.defaultpu` package, subpackages included. -* A named `users` persistence unit which will contain all the model classes under the `org.acme.model.user` package, subpackages included. - -You can attach several packages to a persistence unit: - -[source,properties] ----- -quarkus.hibernate-orm."users".packages=org.acme.model.shared,org.acme.model.user ----- - -All the model classes under the `org.acme.model.shared` and `org.acme.model.user` packages will be attached to the `users` persistence unit. - -It is also supported to attach a given model class to several persistence units. - -[NOTE] -==== -Model classes need to be consistently added to a given persistence unit. -That meant that all dependent model classes of a given entity (mapped super classes, embeddables...) are required to be attached to the persistence unit. -As we are dealing with the persistence unit at the package level, it should be simple enough. -==== - -[WARNING] -==== -Panache entities can be attached to only one persistence unit. - -For entities attached to several persistence units, you cannot use Panache. -You can mix the two approaches though and mix Panache entities and traditional entities where multiple persistence units are required. - -If you have a use case for that and clever ideas about how to implement it without cluttering the simplified Panache approach, -contact us on the link:{quarkus-mailing-list-index}[quarkus-dev mailing list]. -==== - -The second approach to attach model classes to a persistence unit is to use package-level `@io.quarkus.hibernate.orm.PersistenceUnit` annotations. -Again, the two approaches cannot be mixed. - -To obtain a configuration similar to the one above with the `packages` configuration property, create a `package-info.java` file with the following content: - -[source,java] ----- -@PersistenceUnit("users") <1> -package org.acme.model.user; - -import io.quarkus.hibernate.orm.PersistenceUnit; ----- -<1> Be careful, use the `@io.quarkus.hibernate.orm.PersistenceUnit` annotation, not the JPA one. - -[CAUTION] -==== -We only support defining the `@PersistenceUnit` for model classes at the package level, -using the `@PersistenceUnit` annotation at the class level is not supported in this case. -==== - -Note that, similarly to what we do with the configuration property, we take into account the annotated package but also all its subpackages. - -==== CDI integration - -If you are familiar with using Hibernate ORM in Quarkus, you probably already have injected the `EntityManager` using CDI: - -[source,java] ----- -@Inject -EntityManager entityManager; ----- - -This will inject the `EntityManager` of the default persistence unit. - -Injecting the `EntityManager` of a named persistence unit (`users` in our example) is as simple as: - -[source,java] ----- -@Inject -@PersistenceUnit("users") <1> -EntityManager entityManager; ----- -<1> Here again, we use the same `@io.quarkus.hibernate.orm.PersistenceUnit` annotation. - -You can inject the `EntityManagerFactory` of a named persistence unit using the exact same mechanism: - -[source,java] ----- -@Inject -@PersistenceUnit("users") -EntityManagerFactory entityManagerFactory; ----- - -[[persistence-xml]] -== Setting up and configuring Hibernate ORM with a `persistence.xml` - -Alternatively, you can use a `META-INF/persistence.xml` to set up Hibernate ORM. -This is useful for: - -* migrating existing code -* when you have relatively complex settings requiring the full flexibility of the configuration -* or if you like it the good old way - -[NOTE] -==== -If you have a `persistence.xml`, then you cannot use the `quarkus.hibernate-orm.*` properties -and only persistence units defined in `persistence.xml` will be taken into account. -==== - -Your `pom.xml` dependencies as well as your Java code would be identical to the precedent example. The only -difference is that you would specify your Hibernate ORM configuration in `META-INF/persistence.xml`: - -[source,xml] -.Example persistence.xml resource ----- - - - - - My customer entities - - - - - - - - - - - - - - - - ----- - -When using the `persistence.xml` configuration you are configuring Hibernate ORM directly, -so in this case the appropriate reference is the link:{orm-doc-url-prefix}#configurations[documentation on hibernate.org]. - -Please remember these are not the same property names as the ones used in the Quarkus `{config-file}`, nor will -the same defaults be applied. - -[[xml-mapping]] -== XML mapping - -Hibernate ORM in Quarkus supports XML mapping. -You can add mapping files following -the https://jakarta.ee/specifications/persistence/3.0/jakarta-persistence-spec-3.0.html#a16944[`orm.xml` format (JPA)] -or the http://hibernate.org/dtd/hibernate-mapping-3.0.dtd[`hbm.xml` format (specific to Hibernate ORM, deprecated)]: - -* in `application.properties` through the (build-time) link:#quarkus-hibernate-orm_quarkus.hibernate-orm.mapping-files[`quarkus.hibernate-orm.mapping-files`] property. -* in <> through the `` element. - -XML mapping files are parsed at build time. - -[IMPORTANT] -==== -The file `META-INF/orm.xml` will always be included by default, if it exists in the classpath. - -If that is not what you want, use `quarkus.hibernate-orm.mapping-files = no-file` or `no-file`. -==== - -== Defining entities in external projects or jars - -Hibernate ORM in Quarkus relies on compile-time bytecode enhancements to your entities. If you define your entities in the -same project where you build your Quarkus application, everything will work fine. - -If the entities come from external projects -or jars, you can make sure that your jar is treated like a Quarkus application library by adding an empty `META-INF/beans.xml` file. - -This will allow Quarkus to index and enhance your entities as if they were inside the current project. - -[[dev-mode]] -== Hibernate ORM in development mode - -Quarkus development mode is really useful for applications that mix front end or services and database access. - -There are a few common approaches to make the best of it. - -The first choice is to use `quarkus.hibernate-orm.database.generation=drop-and-create` in conjunction with `import.sql`. - -That way for every change to your app and in particular to your entities, the database schema will be properly recreated -and your data fixture (stored in `import.sql`) will be used to repopulate it from scratch. -This is best to perfectly control your environment and works magic with Quarkus live reload mode: -your entity changes or any change to your `import.sql` is immediately picked up and the schema updated without restarting the application! - -[TIP] -==== -By default in `dev` and `test` modes, Hibernate ORM, upon boot, will read and execute the SQL statements in the `/import.sql` file (if present). -You can change the file name by changing the property `quarkus.hibernate-orm.sql-load-script` in `application.properties`. -==== - -The second approach is to use `quarkus.hibernate-orm.database.generation=update`. -This approach is best when you do many entity changes but -still need to work on a copy of the production data -or if you want to reproduce a bug that is based on specific database entries. -`update` is a best effort from Hibernate ORM and will fail in specific situations -including altering your database structure which could lead to data loss. -For example if you change structures which violate a foreign key constraint, Hibernate ORM might have to bail out. -But for development, these limitations are acceptable. - -The third approach is to use `quarkus.hibernate-orm.database.generation=none`. -This approach is best when you are working on a copy of the production data but want to fully control the schema evolution. -Or if you use a database schema migration tool like xref:flyway.adoc[Flyway] or xref:liquibase.adoc[Liquibase]. - -With this approach when making changes to an entity, make sure to adapt the database schema accordingly; -you could also use `validate` to have Hibernate verify the schema matches its expectations. - -WARNING: Do not use `quarkus.hibernate-orm.database.generation` `drop-and-create` and `update` in your production environment. - - -These approaches become really powerful when combined with Quarkus configuration profiles. -You can define different xref:config.adoc#configuration-profiles[configuration profiles] -to select different behaviors depending on your environment. -This is great because you can define different combinations of Hibernate ORM properties matching the development style you currently need. - -[source,properties] -.application.properties ----- -%dev.quarkus.hibernate-orm.database.generation = drop-and-create -%dev.quarkus.hibernate-orm.sql-load-script = import-dev.sql - -%dev-with-data.quarkus.hibernate-orm.database.generation = update -%dev-with-data.quarkus.hibernate-orm.sql-load-script = no-file - -%prod.quarkus.hibernate-orm.database.generation = none -%prod.quarkus.hibernate-orm.sql-load-script = no-file ----- - -You can start dev mode using a custom profile: - -:dev-additional-parameters: -Dquarkus.profile=dev-with-data -include::includes/devtools/dev.adoc[] -:!dev-additional-parameters: - -== Hibernate ORM in production mode - -Quarkus comes with default profiles (`dev`, `test` and `prod`). -And you can add your own custom profiles to describe various environments (`staging`, `prod-us`, etc). - -The Hibernate ORM Quarkus extension sets some default configurations differently in dev and test modes than in other environments. - -* `quarkus.hibernate-orm.sql-load-script` is set to `no-file` for all profiles except the `dev` and `test` ones. - -You can override it in your `application.properties` explicitly -(e.g. `%prod.quarkus.hibernate-orm.sql-load-script = import.sql`) -but we wanted you to avoid overriding your database by accident in prod :) - -Speaking of, make sure to not drop your database schema in production! -Add the following in your properties file. - -[source,properties] -.application.properties ----- -%prod.quarkus.hibernate-orm.database.generation = none -%prod.quarkus.hibernate-orm.sql-load-script = no-file ----- - -[[flyway]] -== Automatically transitioning to Flyway to Manage Schemas - -If you have the xref:flyway.adoc[Flyway extension] installed when running in development mode, Quarkus provides a simple way to turn -your Hibernate ORM auto generated schema into a Flyway migration file. This is intended to make is easy to move from -the early development phase, where Hibernate can be used to quickly setup the schema, to the production phase, where -Flyway is used to manage schema changes. - -To use this feature simply open the Dev UI when the `quarkus-flyway` extension is installed and click in the `Datasources` -link in the Flyway pane. Hit the `Create Initial Migration` button and the following will happen: - -- A `db/migration/V1.0.0__\{appname\}.sql` file will be created, containing the SQL Hibernate is running to generate the schema -- `quarkus.flyway.baseline-on-migrate` will be set, telling Flyway to automatically create its baseline tables -- `quarkus.flyway.migrate-at-start` will be set, telling Flyway to automatically apply migrations on application startup -- `%dev.quarkus.flyway.clean-at-start` and ``%test.quarkus.flyway.clean-at-start` will be set, to clean the DB after reload in dev/test mode - -WARNING: This button is simply a convenience to quickly get you started with Flyway, it is up to you to determine how you want to -manage your database schemas in production. In particular the `migrate-at-start` setting may not be right for all environments. - -[[caching]] -== Caching - -Applications that frequently read the same entities can see their performance improved when the Hibernate ORM second-level cache is enabled. - -=== Caching of entities - -To enable second-level cache, mark the entities that you want cached with `@javax.persistence.Cacheable`: - -[source,java] ----- -@Entity -@Cacheable -public class Country { - int dialInCode; - // ... -} ----- - -When an entity is annotated with `@Cacheable`, all its field values are cached except for collections and relations to other entities. - -This means the entity can be loaded without querying the database, but be careful as it implies the loaded entity might not reflect recent changes in the database. - -=== Caching of collections and relations - -Collections and relations need to be individually annotated to be cached; in this case the Hibernate specific `@org.hibernate.annotations.Cache` should be used, which requires also to specify the `CacheConcurrencyStrategy`: - -[source,java] ----- -package org.acme; - -@Entity -@Cacheable -public class Country { - // ... - - @OneToMany - @Cache(usage = CacheConcurrencyStrategy.READ_ONLY) - List cities; - - // ... -} ----- - -=== Caching of queries - -Queries can also benefit from second-level caching. Cached query results can be returned immediately to the caller, avoiding to run the query on the database. - -Be careful as this implies the results might not reflect recent changes. - -To cache a query, mark it as cacheable on the `Query` instance: - -[source,java] ----- -Query query = ... -query.setHint("org.hibernate.cacheable", Boolean.TRUE); ----- - -If you have a `NamedQuery` then you can enable caching directly on its definition, which will usually be on an entity: - -[source,java] ----- -@Entity -@NamedQuery(name = "Fruits.findAll", - query = "SELECT f FROM Fruit f ORDER BY f.name", - hints = @QueryHint(name = "org.hibernate.cacheable", value = "true") ) -public class Fruit { - ... ----- - -That's all! Caching technology is already integrated and enabled by default in Quarkus, so it's enough to set which ones are safe to be cached. - -=== Tuning of Cache Regions - -Caches store the data in separate regions to isolate different portions of data; such regions are assigned a name, which is useful for configuring each region independently, or to monitor their statistics. - -By default entities are cached in regions named after their fully qualified name, e.g. `org.acme.Country`. - -Collections are cached in regions named after the fully qualified name of their owner entity and collection field name, separated by `#` character, e.g. `org.acme.Country#cities`. - -All cached queries are by default kept in a single region dedicated to them called `default-query-results-region`. - -All regions are bounded by size and time by default. The defaults are `10000` max entries, and `100` seconds as maximum idle time. - -The size of each region can be customized via the `quarkus.hibernate-orm.cache."".memory.object-count` property (Replace __ with the actual region name). - -To set the maximum idle time, provide the duration (see note on duration's format below) via the `quarkus.hibernate-orm.cache."".expiration.max-idle` property (Replace __ with the actual region name). - -[NOTE] -==== -The double quotes are mandatory if your region name contains a dot. For instance: - -[source,properties] ----- -quarkus.hibernate-orm.cache."org.acme.MyEntity".memory.object-count=1000 ----- -==== - - -include::duration-format-note.adoc[] - -=== Limitations of Caching - -The caching technology provided within Quarkus is currently quite rudimentary and limited. - -The team thought it was better to have _some_ caching capability to start with, than having nothing; you can expect better caching solution to be integrated in future releases, and any help and feedback in this area is very welcome. - -[NOTE] -==== -These caches are kept locally, so they are not invalidated or updated when changes are made to the persistent store by other applications. - -Also, when running multiple copies of the same application (in a cluster, for example on Kubernetes/OpenShift), caches in separate copies of the application aren't synchronized. - -For these reasons, enabling caching is only suitable when certain assumptions can be made: we strongly recommend that only entities, collections and queries which never change are cached. Or at most, that when indeed such an entity is mutated and allowed to be read out of date (stale) this has no impact on the expectations of the application. - -Following this advice guarantees applications get the best performance out of the second-level cache and yet avoid unexpected behaviour. - -On top of immutable data, in certain contexts it might be acceptable to enable caching also on mutable data; this could be a necessary tradeoff on selected - entities which are read frequently and for which some degree of staleness is acceptable; this " acceptable degree of staleness" can be tuned by setting eviction properties. - This is however not recommended and should be done with extreme care, as it might - produce unexpected and unforeseen effects on the data. - -Rather than enabling caching on mutable data, ideally a better solution would be to use a clustered cache; however at this time Quarkus doesn't provide any such implementation: feel free to get in touch and let this need known so that the team can take this into account. -==== - -Finally, the second-level cache can be disabled globally by setting `hibernate.cache.use_second_level_cache` to `false`; this is a setting that needs to be specified in the `persistence.xml` configuration file. - -When second-level cache is disabled, all cache annotations are ignored and all queries are run ignoring caches; this is generally useful only to diagnose issues. - -[[envers]] -== Hibernate Envers -The Envers extension to Hibernate ORM aims to provide an easy auditing / versioning solution for entity classes. - -In Quarkus, Envers has a dedicated Quarkus Extension `io.quarkus:quarkus-hibernate-envers`; you just need to add this to your project to start using it. - -[source,xml] -.Additional dependency to enable Hibernate Envers ----- - - - io.quarkus - quarkus-hibernate-envers - ----- - -At this point the extension does not expose additional configuration properties. - -For more information about Hibernate Envers, see link:https://hibernate.org/orm/envers/[hibernate.org/orm/envers/]. - -[[metrics]] -== Metrics -Either xref:micrometer.adoc[Micrometer] or xref:microprofile-metrics.adoc[SmallRye Metrics] are -capable of exposing metrics that Hibernate ORM collects at runtime. To enable exposure of Hibernate metrics -on the `/q/metrics` endpoint, make sure your project depends on a metrics extension and set the configuration property `quarkus.hibernate-orm.metrics.enabled` to `true`. -When using link:microprofile-metrics[SmallRye Metrics], metrics will be available under the `vendor` scope. - -== Limitations and other things you should know - -Quarkus does not modify the libraries it uses; this rule applies to Hibernate ORM as well: when using -this extension you will mostly have the same experience as using the original library. - -But while they share the same code, Quarkus does configure some components automatically and injects custom implementations -for some extension points; this should be transparent and useful but if you're an expert of Hibernate you might want to -know what is being done. - -=== Automatic build time enhancement - -Hibernate ORM can use build time enhanced entities; normally this is not mandatory but it's useful and will have your -applications perform better. - -Typically you would need to adapt your build scripts to include the Hibernate Enhancement plugins; in Quarkus this is -not necessary as the enhancement step is integrated in the build and analysis of the Quarkus application. - -[WARNING] -==== -Due to the usage of enhancement, using the `clone()` method on entities is currently not supported -as it will also clone some enhancement-specific fields that are specific to the entity. - -This limitation might be removed in the future. -==== - -=== Automatic integration - -Transaction Manager integration:: -You don't need to set this up, Quarkus automatically injects the reference to the Narayana Transaction Manager. -The dependency is included automatically as a transitive dependency of the Hibernate ORM extension. -All configuration is optional; for more details see xref:transaction.adoc[Using Transactions in Quarkus]. - -Connection pool:: -Don't need to choose one either. Quarkus automatically includes the Agroal connection pool; -configure your datasource as in the above examples and it will setup Hibernate ORM to use Agroal. -More details about this connection pool can be found in xref:datasource.adoc[Quarkus - Datasources]. - -Second Level Cache:: -as explained above in section <>, you don't need to pick an implementation. -A suitable implementation based on technologies from link:https://infinispan.org/[Infinispan] and link:https://github.com/ben-manes/caffeine[Caffeine] is included as a transitive dependency of the Hibernate ORM extension, and automatically integrated during the build. - -=== Limitations - -XML mapping with duplicate files in the classpath:: -<> files are expected to have a unique path. -+ -In practice, it's only possible to have duplicate XML mapping files in the classpath in very specific scenarios. -For example, if two JARs include a `META-INF/orm.xml` file (with the exact same path, but in different JARs), -then the mapping file path `META-INF/orm.xml` can only be referenced from a `persistence.xml` -**in the same JAR as the `META-INF/orm.xml` file**. - -JMX:: -Management beans are not working in GraalVM native images; -therefore Hibernate's capability to register statistics and management operations with the JMX bean is disabled when compiling into a native image. -This limitation is likely permanent, as it's not a goal for native images -to implement support for JMX. All such metrics can be accessed in other ways. - -JACC Integration:: -Hibernate ORM's capability to integrate with JACC is disabled when building GraalVM native images, -as JACC is not available - nor useful - in native mode. - -Binding the Session to ThreadLocal context:: -It is not possible to use the `ThreadLocalSessionContext` helper of Hibernate ORM as support for it is not implemented. -Since Quarkus provides out of the box support for CDI, we believe using injection or programmatic CDI lookup to be a better approach. -This feature also didn't integrate well with reactive components and more modern context propagation techniques, making us believe this legacy feature has no future. -If you badly need to bind it to a ThreadLocal it should be trivial to implement in your own code. - -JNDI:: -The JNDI technology is commonly used in other runtimes to integrate different components. -A common use case is Java Enterprise servers to bind the TransactionManager and the Datasource components to a name, and then have Hibernate ORM -configured to look these components up by name. -But in Quarkus this use case doesn't apply as components are injected directly, making JNDI support an unnecessary legacy. -As a precaution, to avoid unexpected use of JNDI, the whole support for JNDI has been disabled in the Hibernate ORM extension for Quarkus. -This is both a security precaution and an optimisation. - -=== Other notable differences - -Format of `import.sql`:: -When importing a `import.sql` to setup your database, keep in mind that Quarkus reconfigures Hibernate ORM so to require a semicolon (';') to terminate each statement. -The default in Hibernate is to have a statement per line, without requiring a terminator other than newline: remember to convert your scripts to use the ';' terminator character if you're reusing existing scripts. -This is useful so to allow multi-line statements and human friendly formatting. - -== Simplifying Hibernate ORM with Panache - -The xref:hibernate-orm-panache.adoc[Hibernate ORM with Panache] extension facilitates the usage of Hibernate ORM by providing active record style entities (and repositories) and focuses on making your entities trivial and fun to write in Quarkus. - -== Configure your datasource - -Datasource configuration is extremely simple, but is covered in a different guide as technically -it's implemented by the Agroal connection pool extension for Quarkus. - -Jump over to xref:datasource.adoc[Quarkus - Datasources] for all details. - -[[multitenancy]] -== Multitenancy - -"The term multitenancy, in general, is applied to software development to indicate an architecture in which a single running instance of an application simultaneously serves multiple clients (tenants). This is highly common in SaaS solutions. Isolating information (data, customizations, etc.) pertaining to the various tenants is a particular challenge in these systems. This includes the data owned by each tenant stored in the database" (link:{orm-doc-url-prefix}#multitenacy[Hibernate User Guide]). - -Quarkus currently supports the link:{orm-doc-url-prefix}#multitenacy-separate-database[separate database] and the link:{orm-doc-url-prefix}#multitenacy-separate-schema[separate schema] approach. - -To see multitenancy in action, you can check out the {quickstarts-tree-url}/hibernate-orm-multi-tenancy-quickstart[hibernate-orm-multi-tenancy-quickstart] quickstart. - -=== Writing the application - -Let's start by implementing the `/{tenant}` endpoint. As you can see from the source code below it is just a regular JAX-RS resource: - -[source,java] ----- -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.persistence.EntityManager; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -@ApplicationScoped -@Path("/{tenant}") -public class FruitResource { - - @Inject - EntityManager entityManager; - - @GET - @Path("fruits") - public Fruit[] getFruits() { - return entityManager.createNamedQuery("Fruits.findAll", Fruit.class) - .getResultList().toArray(new Fruit[0]); - } - -} ----- - -In order to resolve the tenant from incoming requests and map it to a specific tenant configuration, you need to create an implementation for the `io.quarkus.hibernate.orm.runtime.tenant.TenantResolver` interface. - -[source,java] ----- -import javax.enterprise.context.ApplicationScoped; - -import io.quarkus.hibernate.orm.runtime.tenant.TenantResolver; -import io.vertx.ext.web.RoutingContext; - -@PersistenceUnitExtension // <1> -@RequestScoped // <2> -public class CustomTenantResolver implements TenantResolver { - - @Inject - RoutingContext context; - - @Override - public String getDefaultTenantId() { - return "base"; - } - - @Override - public String resolveTenantId() { - String path = context.request().path(); - String[] parts = path.split("/"); - - if (parts.length == 0) { - // resolve to default tenant config - return getDefaultTenantId(); - } - - return parts[1]; - } - -} ----- -<1> Annotate the TenantResolver implementation with the `@PersistenceUnitExtension` qualifier -to tell Quarkus it should be used in the default persistence unit. -+ -For <>, use `@PersistenceUnitExtension("nameOfYourPU")`. -<2> The bean is made `@RequestScoped` as the tenant resolution depends on the incoming request. - -From the implementation above, tenants are resolved from the request path so that in case no tenant could be inferred, the default tenant identifier is returned. - -[NOTE] -==== -If you also use xref:security-openid-connect-multitenancy.adoc[OIDC multitenancy] and both OIDC and Hibernate ORM tenant IDs are the same and must be extracted from the Vert.x `RoutingContext` then you can pass the tenant id from the OIDC Tenant Resolver to the Hibernate ORM Tenant Resolver as a `RoutingContext` attribute, for example: - -[source,java] ----- -import io.quarkus.hibernate.orm.runtime.tenant.TenantResolver; -import io.vertx.ext.web.RoutingContext; - -@PersistenceUnitExtension -@RequestScoped -public class CustomTenantResolver implements TenantResolver { - - @Inject - RoutingContext context; - ... - @Override - public String resolveTenantId() { - // OIDC TenantResolver has already calculated the tenant id and saved it as a RoutingContext `tenantId` attribute: - return context.get("tenantId"); - } -} ----- -==== - -=== Configuring the application - -In general it is not possible to use the Hibernate ORM database generation feature in conjunction with a multitenancy setup. -Therefore you have to disable it and you need to make sure that the tables are created per schema. -The following setup will use the xref:flyway.adoc[Flyway] extension to achieve this goal. - -==== SCHEMA approach - -The same data source will be used for all tenants and a schema has to be created for every tenant inside that data source. -CAUTION: Some databases like MariaDB/MySQL do not support database schemas. In these cases you have to use the DATABASE approach below. - -[source,properties] ----- -# Disable generation -quarkus.hibernate-orm.database.generation=none - -# Enable SCHEMA approach and use default datasource -quarkus.hibernate-orm.multitenant=SCHEMA -# You could use a non-default datasource by using the following setting -# quarkus.hibernate-orm.multitenant-schema-datasource=other - -# The default data source used for all tenant schemas -quarkus.datasource.db-kind=postgresql -quarkus.datasource.username=quarkus_test -quarkus.datasource.password=quarkus_test -quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/quarkus_test - -# Enable Flyway configuration to create schemas -quarkus.flyway.schemas=base,mycompany -quarkus.flyway.locations=classpath:schema -quarkus.flyway.migrate-at-start=true ----- - -Here is an example of the Flyway SQL (`V1.0.0__create_fruits.sql`) to be created in the configured folder `src/main/resources/schema`. - -[source,sql] ----- -CREATE SEQUENCE base.known_fruits_id_seq; -SELECT setval('base."known_fruits_id_seq"', 3); -CREATE TABLE base.known_fruits -( - id INT, - name VARCHAR(40) -); -INSERT INTO base.known_fruits(id, name) VALUES (1, 'Cherry'); -INSERT INTO base.known_fruits(id, name) VALUES (2, 'Apple'); -INSERT INTO base.known_fruits(id, name) VALUES (3, 'Banana'); - -CREATE SEQUENCE mycompany.known_fruits_id_seq; -SELECT setval('mycompany."known_fruits_id_seq"', 3); -CREATE TABLE mycompany.known_fruits -( - id INT, - name VARCHAR(40) -); -INSERT INTO mycompany.known_fruits(id, name) VALUES (1, 'Avocado'); -INSERT INTO mycompany.known_fruits(id, name) VALUES (2, 'Apricots'); -INSERT INTO mycompany.known_fruits(id, name) VALUES (3, 'Blackberries'); ----- - - - -==== DATABASE approach - -For every tenant you need to create a named data source with the same identifier that is returned by the `TenantResolver`. - -[source,properties] ----- -# Disable generation -quarkus.hibernate-orm.database.generation=none - -# Enable DATABASE approach -quarkus.hibernate-orm.multitenant=DATABASE - -# Default tenant 'base' -quarkus.datasource.base.db-kind=postgresql -quarkus.datasource.base.username=quarkus_test -quarkus.datasource.base.password=quarkus_test -quarkus.datasource.base.jdbc.url=jdbc:postgresql://localhost:5432/quarkus_test - -# Tenant 'mycompany' -quarkus.datasource.mycompany.db-kind=postgresql -quarkus.datasource.mycompany.username=mycompany -quarkus.datasource.mycompany.password=mycompany -quarkus.datasource.mycompany.jdbc.url=jdbc:postgresql://localhost:5433/mycompany - -# Flyway configuration for the default datasource -quarkus.flyway.locations=classpath:database/default -quarkus.flyway.migrate-at-start=true - -# Flyway configuration for the mycompany datasource -quarkus.flyway.mycompany.locations=classpath:database/mycompany -quarkus.flyway.mycompany.migrate-at-start=true ----- - -Following are examples of the Flyway SQL files to be created in the configured folder `src/main/resources/database`. - -Default schema (`src/main/resources/database/default/V1.0.0__create_fruits.sql`): - -[source,sql] ----- -CREATE SEQUENCE known_fruits_id_seq; -SELECT setval('known_fruits_id_seq', 3); -CREATE TABLE known_fruits -( - id INT, - name VARCHAR(40) -); -INSERT INTO known_fruits(id, name) VALUES (1, 'Cherry'); -INSERT INTO known_fruits(id, name) VALUES (2, 'Apple'); -INSERT INTO known_fruits(id, name) VALUES (3, 'Banana'); ----- - -Mycompany schema (`src/main/resources/database/mycompany/V1.0.0__create_fruits.sql`): - -[source,sql] ----- -CREATE SEQUENCE known_fruits_id_seq; -SELECT setval('known_fruits_id_seq', 3); -CREATE TABLE known_fruits -( - id INT, - name VARCHAR(40) -); -INSERT INTO known_fruits(id, name) VALUES (1, 'Avocado'); -INSERT INTO known_fruits(id, name) VALUES (2, 'Apricots'); -INSERT INTO known_fruits(id, name) VALUES (3, 'Blackberries'); ----- - -=== Programmatically Resolving Tenants Connections - -If you need a more dynamic configuration for the different tenants you want to support and don't want to end up with multiple entries in your configuration file, -you can use the `io.quarkus.hibernate.orm.runtime.tenant.TenantConnectionResolver` interface to implement your own logic for retrieving a connection. -Creating an application-scoped bean that implements this interface -and annotating it with `@PersistenceUnitExtension` (or `@PersistenceUnitExtension("nameOfYourPU")` for a <>) -will replace the current Quarkus default implementation `io.quarkus.hibernate.orm.runtime.tenant.DataSourceTenantConnectionResolver`. -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. - -[[interceptors]] -== Interceptors - -You can assign an link:{orm-doc-url-prefix}#events-interceptors[`org.hibernate.Interceptor`] -to your `SessionFactory` by simply defining a CDI bean with the appropriate qualifier: - -[source,java] ----- -@PersistenceUnitExtension // <1> -public static class MyInterceptor extends EmptyInterceptor { // <2> - @Override - public boolean onLoad(Object entity, Serializable id, Object[] state, // <3> - String[] propertyNames, Type[] types) { - // ... - return false; - } -} ----- -<1> Annotate the interceptor implementation with the `@PersistenceUnitExtension` qualifier -to tell Quarkus it should be used in the default persistence unit. -+ -For <>, use `@PersistenceUnitExtension("nameOfYourPU")` -<2> Either extend `org.hibernate.EmptyInterceptor` or implement `org.hibernate.Interceptor` directly. -<3> Implement methods as necessary. - -[TIP] -==== -By default, interceptor beans annotated with `@PersistenceUnitExtension` are application-scoped, -which means only one interceptor instance will be created per application -and reused across all entity managers. -For this reason, the interceptor implementation must be thread-safe. - -In order to create one interceptor instance per entity manager instead, -annotate your bean with `@Dependent`. -In that case, the interceptor implementation doesn't need to be thread-safe. -==== - -[NOTE] -==== -Due to a limitation in Hibernate ORM itself, -`@PreDestroy` methods on `@Dependent`-scoped interceptors will never get called. -==== diff --git a/_versions/2.7/guides/hibernate-reactive-panache.adoc b/_versions/2.7/guides/hibernate-reactive-panache.adoc deleted file mode 100644 index 5020b5824cb..00000000000 --- a/_versions/2.7/guides/hibernate-reactive-panache.adoc +++ /dev/null @@ -1,1066 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Simplified Hibernate Reactive with Panache - -include::./attributes.adoc[] -:config-file: application.properties - -link:http://hibernate.org/reactive/[Hibernate Reactive] is the only reactive JPA implementation and offers you the full -breadth of an Object Relational Mapper allowing you to access your database over reactive drivers. -It makes complex mappings possible, but it does not make simple and common mappings trivial. -Hibernate Reactive with Panache focuses on making your entities trivial and fun to write in Quarkus. - -== First: an example - -What we're doing in Panache is allow you to write your Hibernate Reactive entities like this: - -[source,java] ----- -@Entity -public class Person extends PanacheEntity { - public String name; - public LocalDate birth; - public Status status; - - public static Uni findByName(String name){ - return find("name", name).firstResult(); - } - - public static Uni> findAlive(){ - return list("status", Status.Alive); - } - - public static Uni deleteStefs(){ - return delete("name", "Stef"); - } -} ----- - -You have noticed how much more compact and readable the code is? -Does this look interesting? Read on! - -NOTE: the `list()` method might be surprising at first. It takes fragments of HQL (JP-QL) queries and contextualizes the rest. That makes for very concise but yet readable code. - -NOTE: what was described above is essentially the link:https://www.martinfowler.com/eaaCatalog/activeRecord.html[active record pattern], sometimes just called the entity pattern. -Hibernate with Panache also allows for the use of the more classical link:https://martinfowler.com/eaaCatalog/repository.html[repository pattern] via `PanacheRepository`. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `hibernate-reactive-panache-quickstart` {quickstarts-tree-url}/hibernate-reactive-panache-quickstart[directory]. - - -== Setting up and configuring Hibernate Reactive with Panache - -To get started: - -* add your settings in `{config-file}` -* annotate your entities with `@Entity` -* make your entities extend `PanacheEntity` (optional if you are using the repository pattern) - -Follow the xref:hibernate-orm.adoc#setting-up-and-configuring-hibernate-orm[Hibernate set-up guide for all configuration]. - -In your `pom.xml`, add the following dependencies: - -* the Hibernate Reactive with Panache extension -* your reactive driver extension (`quarkus-reactive-pg-client`, `quarkus-reactive-mysql-client`, `quarkus-reactive-db2-client`, ...) - -For instance: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - - io.quarkus - quarkus-hibernate-reactive-panache - - - - - io.quarkus - quarkus-reactive-pg-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -// Hibernate Reactive dependency -implementation("io.quarkus:quarkus-hibernate-reactive-panache") - -Reactive SQL client for PostgreSQL -implementation("io.quarkus:quarkus-reactive-pg-client") ----- - -Then add the relevant configuration properties in `{config-file}`. - -[source,properties] ----- -# configure your datasource -quarkus.datasource.db-kind = postgresql -quarkus.datasource.username = sarah -quarkus.datasource.password = connor -quarkus.datasource.reactive.url = vertx-reactive:postgresql://localhost:5432/mydatabase - -# drop and create the database at startup (use `update` to only update the schema) -quarkus.hibernate-orm.database.generation = drop-and-create ----- - -== Solution 1: using the active record pattern - -=== Defining your entity - -To define a Panache entity, simply extend `PanacheEntity`, annotate it with `@Entity` and add your -columns as public fields: - -[source,java] ----- -@Entity -public class Person extends PanacheEntity { - public String name; - public LocalDate birth; - public Status status; -} ----- - -You can put all your JPA column annotations on the public fields. If you need a field to not be persisted, use the -`@Transient` annotation on it. If you need to write accessors, you can: - -[source,java] ----- -@Entity -public class Person extends PanacheEntity { - public String name; - public LocalDate birth; - public Status status; - - // return name as uppercase in the model - public String getName(){ - return name.toUpperCase(); - } - - // store all names in lowercase in the DB - public void setName(String name){ - this.name = name.toLowerCase(); - } -} ----- - -And thanks to our field access rewrite, when your users read `person.name` they will actually call your `getName()` accessor, -and similarly for field writes and the setter. -This allows for proper encapsulation at runtime as all fields calls will be replaced by the corresponding getter/setter calls. - -=== Most useful operations - -Once you have written your entity, here are the most common operations you will be able to perform: - -[source,java] ----- -// creating a person -Person person = new Person(); -person.name = "Stef"; -person.birth = LocalDate.of(1910, Month.FEBRUARY, 1); -person.status = Status.Alive; - -// persist it -Uni persistOperation = person.persist(); - -// note that once persisted, you don't need to explicitly save your entity: all -// modifications are automatically persisted on transaction commit. - -// check if it's persistent -if(person.isPersistent()){ - // delete it - Uni deleteOperation = person.delete(); -} - -// getting a list of all Person entities -Uni> allPersons = Person.listAll(); - -// finding a specific person by ID -Uni personById = Person.findById(23L); - -// finding all living persons -Uni> livingPersons = Person.list("status", Status.Alive); - -// counting all persons -Uni countAll = Person.count(); - -// counting all living persons -Uni countAlive = Person.count("status", Status.Alive); - -// delete all living persons -Uni deleteAliveOperation = Person.delete("status", Status.Alive); - -// delete all persons -Uni deleteAllOperation = Person.deleteAll(); - -// delete by id -Uni deleteByIdOperation = Person.deleteById(23L); - -// set the name of all living persons to 'Mortal' -Uni updateOperation = Person.update("name = 'Mortal' where status = ?1", Status.Alive); ----- - -=== Adding entity methods - -Add custom queries on your entities inside the entities themselves. -That way, you and your co-workers can find them easily, and queries are co-located with the object they operate on. -Adding them as static methods in your entity class is the Panache Active Record way. - -[source,java] ----- -@Entity -public class Person extends PanacheEntity { - public String name; - public LocalDate birth; - public Status status; - - public static Uni findByName(String name){ - return find("name", name).firstResult(); - } - - public static Uni> findAlive(){ - return list("status", Status.Alive); - } - - public static Uni deleteStefs(){ - return delete("name", "Stef"); - } -} ----- - -== Solution 2: using the repository pattern - - -=== Defining your entity - -When using the repository pattern, you can define your entities as regular JPA entities. - -[source,java] ----- -@Entity -public class Person { - @Id @GeneratedValue private Long id; - private String name; - private LocalDate birth; - private Status status; - - public Long getId(){ - return id; - } - public void setId(Long id){ - this.id = id; - } - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - public LocalDate getBirth() { - return birth; - } - public void setBirth(LocalDate birth) { - this.birth = birth; - } - public Status getStatus() { - return status; - } - public void setStatus(Status status) { - this.status = status; - } -} ----- - -TIP: If you don't want to bother defining getters/setters for your entities, you can make them extend `PanacheEntityBase` and -Quarkus will generate them for you. You can even extend `PanacheEntity` and take advantage of the default ID it provides. - -=== Defining your repository - -When using Repositories, you get the exact same convenient methods as with the active record pattern, injected in your Repository, -by making them implements `PanacheRepository`: - -[source,java] ----- -@ApplicationScoped -public class PersonRepository implements PanacheRepository { - - // put your custom logic here as instance methods - - public Uni findByName(String name){ - return find("name", name).firstResult(); - } - - public Uni> findAlive(){ - return list("status", Status.Alive); - } - - public Uni deleteStefs(){ - return delete("name", "Stef"); - } -} ----- - -All the operations that are defined on `PanacheEntityBase` are available on your repository, so using it -is exactly the same as using the active record pattern, except you need to inject it: - -[source,java] ----- -@Inject -PersonRepository personRepository; - -@GET -public Uni count(){ - return personRepository.count(); -} ----- - -=== Most useful operations - -Once you have written your repository, here are the most common operations you will be able to perform: - -[source,java] ----- -// creating a person -Person person = new Person(); -person.setName("Stef"); -person.setBirth(LocalDate.of(1910, Month.FEBRUARY, 1)); -person.setStatus(Status.Alive); - -// persist it -Uni persistOperation = personRepository.persist(person); - -// note that once persisted, you don't need to explicitly save your entity: all -// modifications are automatically persisted on transaction commit. - -// check if it's persistent -if(personRepository.isPersistent(person)){ - // delete it - Uni deleteOperation = personRepository.delete(person); -} - -// getting a list of all Person entities -Uni> allPersons = personRepository.listAll(); - -// finding a specific person by ID -Uni personById = personRepository.findById(23L); - -// finding all living persons -Uni> livingPersons = personRepository.list("status", Status.Alive); - -// counting all persons -Uni countAll = personRepository.count(); - -// counting all living persons -Uni countAlive = personRepository.count("status", Status.Alive); - -// delete all living persons -Uni deleteLivingOperation = personRepository.delete("status", Status.Alive); - -// delete all persons -Uni deleteAllOperation = personRepository.deleteAll(); - -// delete by id -Uni deleteByIdOperation = personRepository.deleteById(23L); - -// set the name of all living persons to 'Mortal' -Uni updateOperation = personRepository.update("name = 'Mortal' where status = ?1", Status.Alive); ----- - -NOTE: The rest of the documentation show usages based on the active record pattern only, -but keep in mind that they can be performed with the repository pattern as well. -The repository pattern examples have been omitted for brevity. - -== Advanced Query - -=== Paging - -You should only use the `list` methods if your table contains small enough data sets. For larger data -sets you can use the `find` method equivalents, which return a `PanacheQuery` on which you can do paging: - -[source,java] ----- -// create a query for all living persons -PanacheQuery livingPersons = Person.find("status", Status.Alive); - -// make it use pages of 25 entries at a time -livingPersons.page(Page.ofSize(25)); - -// get the first page -Uni> firstPage = livingPersons.list(); - -// get the second page -Uni> secondPage = livingPersons.nextPage().list(); - -// get page 7 -Uni> page7 = livingPersons.page(Page.of(7, 25)).list(); - -// get the number of pages -Uni numberOfPages = livingPersons.pageCount(); - -// get the total number of entities returned by this query without paging -Uni count = livingPersons.count(); - -// and you can chain methods of course -Uni> persons = Person.find("status", Status.Alive) - .page(Page.ofSize(25)) - .nextPage() - .list(); ----- - -The `PanacheQuery` type has many other methods to deal with paging and returning streams. - -=== Using a range instead of pages - -`PanacheQuery` also allows range-based queries. - -[source,java] ----- -// create a query for all living persons -PanacheQuery livingPersons = Person.find("status", Status.Alive); - -// make it use a range: start at index 0 until index 24 (inclusive). -livingPersons.range(0, 24); - -// get the range -Uni> firstRange = livingPersons.list(); - -// to get the next range, you need to call range again -Uni> secondRange = livingPersons.range(25, 49).list(); ----- - -[WARNING] -==== -You cannot mix ranges and pages: if you use a range, all methods that depend on having a current page will throw an `UnsupportedOperationException`; -you can switch back to paging using `page(Page)` or `page(int, int)`. -==== - -=== Sorting - -All methods accepting a query string also accept the following simplified query form: - -[source,java] ----- -Uni> persons = Person.list("order by name,birth"); ----- - -But these methods also accept an optional `Sort` parameter, which allows your to abstract your sorting: - -[source,java] ----- -Uni> persons = Person.list(Sort.by("name").and("birth")); - -// and with more restrictions -Uni> persons = Person.list("status", Sort.by("name").and("birth"), Status.Alive); ----- - -The `Sort` class has plenty of methods for adding columns and specifying sort direction. - -=== Simplified queries - -Normally, HQL queries are of this form: `from EntityName [where ...] [order by ...]`, with optional elements -at the end. - -If your select query does not start with `from`, we support the following additional forms: - -- `order by ...` which will expand to `from EntityName order by ...` -- `` (and single parameter) which will expand to `from EntityName where = ?` -- `` will expand to `from EntityName where ` - -If your update query does not start with `update`, we support the following additional forms: - -- `from EntityName ...` which will expand to `update from EntityName ...` -- `set? ` (and single parameter) which will expand to `update from EntityName set = ?` -- `set? ` will expand to `update from EntityName set ` - -If your delete query does not start with `delete`, we support the following additional forms: - -- `from EntityName ...` which will expand to `delete from EntityName ...` -- `` (and single parameter) which will expand to `delete from EntityName where = ?` -- `` will expand to `delete from EntityName where ` - -NOTE: You can also write your queries in plain -link:https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#hql[HQL]: - -[source,java] ----- -Order.find("select distinct o from Order o left join fetch o.lineItems"); -Order.update("update from Person set name = 'Mortal' where status = ?", Status.Alive); ----- - -=== Named queries - -You can reference a named query instead of a (simplified) HQL query by prefixing its name with the '#' character. You can also use named queries for count, update and delete queries. - -[source,java] ----- -@Entity -@NamedQueries({ - @NamedQuery(name = "Person.getByName", query = "from Person where name = ?1"), - @NamedQuery(name = "Person.countByStatus", query = "select count(*) from Person p where p.status = :status"), - @NamedQuery(name = "Person.updateStatusById", query = "update Person p set p.status = :status where p.id = :id"), - @NamedQuery(name = "Person.deleteById", query = "delete from Person p where p.id = ?1") -}) -public class Person extends PanacheEntity { - public String name; - public LocalDate birth; - public Status status; - - public static Uni findByName(String name){ - return find("#Person.getByName", name).firstResult(); - } - - public static Uni countByStatus(Status status) { - return count("#Person.countByStatus", Parameters.with("status", status).map()); - } - - public static Uni updateStatusById(Status status, Long id) { - return update("#Person.updateStatusById", Parameters.with("status", status).and("id", id)); - } - - public static Uni deleteById(Long id) { - return delete("#Person.deleteById", id); - } -} ----- - -[WARNING] -==== -Named queries can only be defined inside your JPA entity classes (being the Panache entity class, or the repository parameterized type), -or on one of its super classes. -==== - -=== Query parameters - -You can pass query parameters by index (1-based) as shown below: - -[source,java] ----- -Person.find("name = ?1 and status = ?2", "stef", Status.Alive); ----- - -Or by name using a `Map`: - -[source,java] ----- -Map params = new HashMap<>(); -params.put("name", "stef"); -params.put("status", Status.Alive); -Person.find("name = :name and status = :status", params); ----- - -Or using the convenience class `Parameters` either as is or to build a `Map`: - -[source,java] ----- -// generate a Map -Person.find("name = :name and status = :status", - Parameters.with("name", "stef").and("status", Status.Alive).map()); - -// use it as-is -Person.find("name = :name and status = :status", - Parameters.with("name", "stef").and("status", Status.Alive)); ----- - -Every query operation accepts passing parameters by index (`Object...`), or by name (`Map` or `Parameters`). - -=== Query projection - -Query projection can be done with the `project(Class)` method on the `PanacheQuery` object that is returned by the `find()` methods. - -You can use it to restrict which fields will be returned by the database. - -Hibernate will use **DTO projection** and generate a SELECT clause with the attributes from the projection class. -This is also called **dynamic instantiation** or **constructor expression**, more info can be found on the Hibernate guide: -link:https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#hql-select-clause[hql select clause] - -The projection class needs to be a valid Java Bean and have a constructor that contains all its attributes, this constructor will be used to -instantiate the projection DTO instead of using the entity class. This must be the only constructor of the class. - -[source,java] ----- -import io.quarkus.runtime.annotations.RegisterForReflection; - -@RegisterForReflection // <1> -public class PersonName { - public final String name; // <2> - - public PersonName(String name){ // <3> - this.name = name; - } -} - -// only 'name' will be loaded from the database -PanacheQuery query = Person.find("status", Status.Alive).project(PersonName.class); ----- -<1> The `@RegisterForReflection` annotation instructs Quarkus to keep the class and its members during the native compilation. More details about the `@RegisterForReflection` annotation can be found on the xref:writing-native-applications-tips.adoc#registerForReflection[native application tips] page. -<2> We use public fields here, but you can use private fields and getters/setters if you prefer. -<3> This constructor will be used by Hibernate, and it must have a matching constructor with all the class attributes as parameters. - - -[WARNING] -==== -The implementation of the `project(Class)` method uses the constructor's parameter names to build the select clause of the query, -so the compiler must be configured to store parameter names inside the compiled class. -This is enabled by default if you are using the Quarkus Maven archetype. If you are not using it, add the property `true` to your pom.xml. -==== - -If in the DTO projection object you have a field from a referenced entity, you can use the `@ProjectedFieldName` annotation to provide the path for the SELECT statement. - -[source,java] ----- -@Entity -public class Dog extends PanacheEntity { - public String name; - public String race; - @ManyToOne - public Person owner; -} - -@RegisterForReflection -public class DogDto { - public String name; - public String ownerName; - - public DogDto(String name, @ProjectedFieldName("owner.name") String ownerName) { // <1> - this.name = name; - this.ownerName = ownerName; - } -} - -PanacheQuery query = Dog.findAll().project(DogDto.class); ----- -<1> The `ownerName` DTO constructor's parameter will be loaded from the `owner.name` HQL property. - -== Multiple Persistence Units - -Hibernate Reactive in Quarkus currently does not support multiple persistence units. - -== Transactions - -Make sure to wrap methods modifying your database (e.g. `entity.persist()`) within a transaction. Marking a -CDI bean method `@ReactiveTransactional` will do that for you and make that method a transaction boundary. Alternatively, -you can use `Panache.withTransaction()` for the same effect. We recommend doing -so at your application entry point boundaries like your REST endpoint controllers. - -NOTE: You cannot use `@Transactional` with Hibernate Reactive for your transactions: you must use `@ReactiveTransactional`, -and your annotated method must return a `Uni` to be non-blocking. Otherwise it needs be called from a non-`VertxThread` thread -and will become blocking. - -JPA batches changes you make to your entities and sends changes (it's called flush) at the end of the transaction or before a query. -This is usually a good thing as it's more efficient. -But if you want to check optimistic locking failures, do object validation right away or generally want to get immediate feedback, you can force the flush operation by calling `entity.flush()` or even use `entity.persistAndFlush()` to make it a single method call. This will allow you to catch any `PersistenceException` that could occur when JPA send those changes to the database. -Remember, this is less efficient so don't abuse it. -And your transaction still has to be committed. - -Here is an example of the usage of the flush method to allow making a specific action in case of `PersistenceException`: -[source,java] ----- -@ReactiveTransactional -public Uni create(Person person){ - //Here I use the persistAndFlush() shorthand method on a Panache repository to persist to database then flush the changes. - return person.persistAndFlush() - .onFailure(PersistenceException.class) - .recoverWithItem(() -> { - LOG.error("Unable to create the parameter", pe); - //in case of error, I save it to disk - diskPersister.save(person); - return null; - }); -} ----- - -The `@ReactiveTransactional` annotation will also work for testing. -This means that changes done during the test will be propagated to the database. -If you want any changes made to be rolled back at the end of -the test you can use the `io.quarkus.test.TestReactiveTransaction` annotation. -This will run the test method in a transaction, but roll it back once the test method is -complete to revert any database changes. - -== Lock management - -Panache provides direct support for database locking with your entity/repository, using `findById(Object, LockModeType)` or `find().withLock(LockModeType)`. - -The following examples are for the active record pattern, but the same can be used with repositories. - -=== First: Locking using findById(). - -[source,java] ----- -public class PersonEndpoint { - - @GET - public Uni findByIdForUpdate(Long id){ - return Panache.withTransaction(() -> { - return Person.findById(id, LockModeType.PESSIMISTIC_WRITE) - .invoke(person -> { - //do something useful, the lock will be released when the transaction ends. - }); - }); - } -} ----- - -=== Second: Locking in a find(). - -[source,java] ----- -public class PersonEndpoint { - - @GET - public Uni findByNameForUpdate(String name){ - return Panache.withTransaction(() -> { - return Person.find("name", name).withLock(LockModeType.PESSIMISTIC_WRITE).firstResult() - .invoke(person -> { - //do something useful, the lock will be released when the transaction ends. - }); - }); - } - -} ----- - -Be careful that locks are released when the transaction ends, so the method that invokes the lock query must be called within a transaction. - -== Custom IDs - -IDs are often a touchy subject, and not everyone's up for letting them handled by the framework, once again we -have you covered. - -You can specify your own ID strategy by extending `PanacheEntityBase` instead of `PanacheEntity`. Then -you just declare whatever ID you want as a public field: - -[source,java] ----- -@Entity -public class Person extends PanacheEntityBase { - - @Id - @SequenceGenerator( - name = "personSequence", - sequenceName = "person_id_seq", - allocationSize = 1, - initialValue = 4) - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "personSequence") - public Integer id; - - //... -} ----- - -If you're using repositories, then you will want to extend `PanacheRepositoryBase` instead of `PanacheRepository` -and specify your ID type as an extra type parameter: - -[source,java] ----- -@ApplicationScoped -public class PersonRepository implements PanacheRepositoryBase { - //... -} ----- - -== Mocking - -=== Using the active record pattern - -If you are using the active record pattern you cannot use Mockito directly as it does not support mocking static methods, -but you can use the `quarkus-panache-mock` module which allows you to use Mockito to mock all provided static -methods, including your own. - -Add this dependency to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-panache-mock - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-panache-mock") ----- - -Given this simple entity: - -[source,java] ----- -@Entity -public class Person extends PanacheEntity { - - public String name; - - public static Uni> findOrdered() { - return find("ORDER BY name").list(); - } -} ----- - -You can write your mocking test like this: - -[source,java] ----- -@QuarkusTest -public class PanacheFunctionalityTest { - - @Test - public void testPanacheMocking() { - PanacheMock.mock(Person.class); - - // Mocked classes always return a default value - Assertions.assertEquals(0, Person.count().await().indefinitely()); - - // Now let's specify the return value - Mockito.when(Person.count()).thenReturn(Uni.createFrom().item(23l)); - Assertions.assertEquals(23, Person.count().await().indefinitely()); - - // Now let's change the return value - Mockito.when(Person.count()).thenReturn(Uni.createFrom().item(42l)); - Assertions.assertEquals(42, Person.count().await().indefinitely()); - - // Now let's call the original method - Mockito.when(Person.count()).thenCallRealMethod(); - Assertions.assertEquals(0, Person.count().await().indefinitely()); - - // Check that we called it 4 times - PanacheMock.verify(Person.class, Mockito.times(4)).count();// <1> - - // Mock only with specific parameters - Person p = new Person(); - Mockito.when(Person.findById(12l)).thenReturn(Uni.createFrom().item(p)); - Assertions.assertSame(p, Person.findById(12l).await().indefinitely()); - Assertions.assertNull(Person.findById(42l).await().indefinitely()); - - // Mock throwing - Mockito.when(Person.findById(12l)).thenThrow(new WebApplicationException()); - try { - Person.findById(12l); - Assertions.fail(); - } catch (WebApplicationException x) { - } - - // We can even mock your custom methods - Mockito.when(Person.findOrdered()).thenReturn(Uni.createFrom().item(Collections.emptyList())); - Assertions.assertTrue(Person.findOrdered().await().indefinitely().isEmpty()); - - PanacheMock.verify(Person.class).findOrdered(); - PanacheMock.verify(Person.class, Mockito.atLeastOnce()).findById(Mockito.any()); - PanacheMock.verifyNoMoreInteractions(Person.class); - } -} ----- -<1> Be sure to call your `verify` and `do*` methods on `PanacheMock` rather than `Mockito`, otherwise you won't know -what mock object to pass. - -==== Mocking `Mutiny.Session` and entity instance methods - -If you need to mock entity instance methods, such as `persist()` you can do it by mocking the Hibernate Reactive `Mutiny.Session` object: - -[source,java] ----- -@QuarkusTest -public class PanacheMockingTest { - - @InjectMock - Mutiny.Session session; - - @Test - public void testPanacheSessionMocking() { - Person p = new Person(); - // mocked via Mutiny.Session mocking - p.persist().await().indefinitely(); - Assertions.assertNull(p.id); - - Mockito.verify(session, Mockito.times(1)).persist(Mockito.any()); - } -} ----- - -=== Using the repository pattern - -If you are using the repository pattern you can use Mockito directly, using the `quarkus-junit5-mockito` module, -which makes mocking beans much easier: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-junit5-mockito - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-junit5-mockito") ----- - -Given this simple entity: - -[source,java] ----- -@Entity -public class Person { - - @Id - @GeneratedValue - public Long id; - - public String name; -} ----- - -And this repository: - -[source,java] ----- -@ApplicationScoped -public class PersonRepository implements PanacheRepository { - public Uni> findOrdered() { - return find("ORDER BY name").list(); - } -} ----- - -You can write your mocking test like this: - -[source,java] ----- -@QuarkusTest -public class PanacheFunctionalityTest { - @InjectMock - PersonRepository personRepository; - - @Test - public void testPanacheRepositoryMocking() throws Throwable { - // Mocked classes always return a default value - Assertions.assertEquals(0, mockablePersonRepository.count().await().indefinitely()); - - // Now let's specify the return value - Mockito.when(mockablePersonRepository.count()).thenReturn(Uni.createFrom().item(23l)); - Assertions.assertEquals(23, mockablePersonRepository.count().await().indefinitely()); - - // Now let's change the return value - Mockito.when(mockablePersonRepository.count()).thenReturn(Uni.createFrom().item(42l)); - Assertions.assertEquals(42, mockablePersonRepository.count().await().indefinitely()); - - // Now let's call the original method - Mockito.when(mockablePersonRepository.count()).thenCallRealMethod(); - Assertions.assertEquals(0, mockablePersonRepository.count().await().indefinitely()); - - // Check that we called it 4 times - Mockito.verify(mockablePersonRepository, Mockito.times(4)).count(); - - // Mock only with specific parameters - Person p = new Person(); - Mockito.when(mockablePersonRepository.findById(12l)).thenReturn(Uni.createFrom().item(p)); - Assertions.assertSame(p, mockablePersonRepository.findById(12l).await().indefinitely()); - Assertions.assertNull(mockablePersonRepository.findById(42l).await().indefinitely()); - - // Mock throwing - Mockito.when(mockablePersonRepository.findById(12l)).thenThrow(new WebApplicationException()); - try { - mockablePersonRepository.findById(12l); - Assertions.fail(); - } catch (WebApplicationException x) { - } - - // We can even mock your custom methods - Mockito.when(mockablePersonRepository.findOrdered()).thenReturn(Uni.createFrom().item(Collections.emptyList())); - Assertions.assertTrue(mockablePersonRepository.findOrdered().await().indefinitely().isEmpty()); - - Mockito.verify(mockablePersonRepository).findOrdered(); - Mockito.verify(mockablePersonRepository, Mockito.atLeastOnce()).findById(Mockito.any()); - Mockito.verify(mockablePersonRepository).persist(Mockito. any()); - Mockito.verifyNoMoreInteractions(mockablePersonRepository); - } -} ----- - -== How and why we simplify Hibernate Reactive mappings - -When it comes to writing Hibernate Reactive entities, there are a number of annoying things that users have grown used to -reluctantly deal with, such as: - -- Duplicating ID logic: most entities need an ID, most people don't care how it's set, because it's not really -relevant to your model. -- Dumb getters and setters: since Java lacks support for properties in the language, we have to create fields, -then generate getters and setters for those fields, even if they don't actually do anything more than read/write -the fields. -- Traditional EE patterns advise to split entity definition (the model) from the operations you can do on them -(DAOs, Repositories), but really that requires an unnatural split between the state and its operations even though -we would never do something like that for regular objects in the Object Oriented architecture, where state and methods -are in the same class. Moreover, this requires two classes per entity, and requires injection of the DAO or Repository -where you need to do entity operations, which breaks your edit flow and requires you to get out of the code you're -writing to set up an injection point before coming back to use it. -- Hibernate queries are super powerful, but overly verbose for common operations, requiring you to write queries even -when you don't need all the parts. -- Hibernate is very general-purpose, but does not make it trivial to do trivial operations that make up 90% of our -model usage. - -With Panache, we took an opinionated approach to tackle all these problems: - -- Make your entities extend `PanacheEntity`: it has an ID field that is auto-generated. If you require -a custom ID strategy, you can extend `PanacheEntityBase` instead and handle the ID yourself. -- Use public fields. Get rid of dumb getter and setters. Under the hood, we will generate all getters and setters -that are missing, and rewrite every access to these fields to use the accessor methods. This way you can still -write _useful_ accessors when you need them, which will be used even though your entity users still use field accesses. -- With the active record pattern: put all your entity logic in static methods in your entity class and don't create DAOs. -Your entity superclass comes with lots of super useful static methods, and you can add your own in your entity class. -Users can just start using your entity `Person` by typing `Person.` and getting completion for all the operations in a single place. -- Don't write parts of the query that you don't need: write `Person.find("order by name")` or -`Person.find("name = ?1 and status = ?2", "stef", Status.Alive)` or even better -`Person.find("name", "stef")`. - -That's all there is to it: with Panache, Hibernate Reactive has never looked so trim and neat. - -== Defining entities in external projects or jars - -Hibernate Reactive with Panache relies on compile-time bytecode enhancements to your entities. - -It attempts to identify archives with Panache entities (and consumers of Panache entities) -by the presence of the marker file `META-INF/panache-archive.marker`. Panache includes an -annotation processor that will automatically create this file in archives that depend on -Panache (even indirectly). If you have disabled annotation processors you may need to create -this file manually in some cases. - -WARNING: If you include the jpa-modelgen annotation processor this will exclude the Panache -annotation processor by default. If you do this you should either create the marker file -yourself, or add the `quarkus-panache-common` as well, as shown below: - -[source,xml] ----- - - maven-compiler-plugin - ${compiler-plugin.version} - - - - org.hibernate - hibernate-jpamodelgen - ${hibernate.version} - - - io.quarkus - quarkus-panache-common - ${quarkus.platform.version} - - - - ----- diff --git a/_versions/2.7/guides/hibernate-reactive.adoc b/_versions/2.7/guides/hibernate-reactive.adoc deleted file mode 100644 index b1277593467..00000000000 --- a/_versions/2.7/guides/hibernate-reactive.adoc +++ /dev/null @@ -1,240 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Hibernate Reactive - -include::./attributes.adoc[] -:config-file: application.properties -:reactive-doc-url-prefix: https://hibernate.org/reactive/documentation/1.1/reference/html_single/#getting-started - -link:https://hibernate.org/reactive/[Hibernate Reactive] is a reactive API for Hibernate ORM, supporting non-blocking database drivers -and a reactive style of interaction with the database. - -[NOTE] -==== -Hibernate Reactive works with the same annotations and most of the configuration described in the -xref:quarkus-hibernate-orm.adoc[Hibernate ORM guide]. This guide will only focus on what's specific -for Hibernate Reactive. -==== - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `hibernate-reactive-quickstart` {quickstarts-tree-url}/hibernate-reactive-quickstart[directory]. - -[[hr-getting-started]] -== Setting up and configuring Hibernate Reactive - -When using Hibernate Reactive in Quarkus, you need to: - -* add your configuration settings in `{config-file}` -* annotate your entities with `@Entity` and any other mapping annotations as usual - -Other configuration needs have been automated: Quarkus will make some opinionated choices and educated guesses. - -Add the following dependencies to your project: - -* the Hibernate Reactive extension: `io.quarkus:quarkus-hibernate-reactive` -* the xref:reactive-sql-clients.adoc[Reactive SQL client extension] for the database of your choice; the following options are available: - - `quarkus-reactive-pg-client`: link:https://vertx.io/docs/vertx-pg-client/java[the client for PostgreSQL or CockroachDB] - - `quarkus-reactive-mysql-client`: link:https://vertx.io/docs/vertx-mysql-client/java[the client MySQL or MariaDB] - - `quarkus-reactive-mssql-client`: link:https://vertx.io/docs/vertx-mssql-client/java[the client for Microsoft SQL Server] - - `quarkus-reactive-db2-client`: link:https://vertx.io/docs/vertx-db2-client/java[the client for IBM Db2] - - `quarkus-reactive-oracle-client`: link:https://vertx.io/docs/vertx-oracle-client/java[the client for Oracle] - -For instance: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - - io.quarkus - quarkus-hibernate-reactive - - - - - io.quarkus - quarkus-reactive-pg-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -// Hibernate Reactive dependency -implementation("io.quarkus:quarkus-hibernate-reactive") - -Reactive SQL client for PostgreSQL -implementation("io.quarkus:quarkus-reactive-pg-client") ----- - -Annotate your persistent objects with `@Entity`, -then add the relevant configuration properties in `{config-file}`: - -[source,properties] -.Example `{config-file}` ----- -# datasource configuration -quarkus.datasource.db-kind = postgresql -quarkus.datasource.username = quarkus_test -quarkus.datasource.password = quarkus_test - -quarkus.datasource.reactive.url = vertx-reactive:postgresql://localhost/quarkus_test <1> - -# drop and create the database at startup (use `update` to only update the schema) -quarkus.hibernate-orm.database.generation=drop-and-create ----- - -<1> The only different property from a Hibernate ORM configuration - -Note that these configuration properties are not the same ones as in your typical Hibernate Reactive configuration file. -They will often map to Hibernate Reactive configuration properties but could have different names and don't necessarily map 1:1 to each other. - -Also, Quarkus will set many Hibernate Reactive configuration settings automatically, and will often use more modern defaults. - -WARNING: Configuring Hibernate Reactive using the standard `persistence.xml` configuration file is not supported. - -Please, see section <> for the list of properties you can set in `{config-file}`. - -A `Mutiny.SessionFactory` will be created based on the Quarkus `datasource` configuration as long as the Hibernate Reactive extension is listed among your project dependencies. - -The dialect will be selected based on the Reactive SQL client - unless you set one explicitly. - -You can then happily inject your `Mutiny.SessionFactory`: - -[source,java] -.Example application bean using Hibernate Reactive ----- -@ApplicationScoped -public class SantaClausService { - @Inject - Mutiny.SessionFactory sf; <1> - - public Uni createGift(String giftDescription) { - Gift gift = new Gift(); - gift.setName(giftDescription); - return sf.withTransaction(session -> session.persist(gift)) <2> - } -} ----- - -<1> Inject your session factory and have fun -<2> `.withTransaction()` will automatically flush at commit - -WARNING: Make sure to wrap methods modifying your database (e.g. `session.persist(entity)`) within a transaction. - -[source,java] -.Example of an Entity ----- -@Entity -public class Gift { - private Long id; - private String name; - - @Id - @SequenceGenerator(name = "giftSeq", sequenceName = "gift_id_seq", allocationSize = 1, initialValue = 1) - @GeneratedValue(generator = "giftSeq") - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } -} ----- - -To load SQL statements when Hibernate Reactive starts, add an `import.sql` file in your `src/main/resources/` directory. -This script can contain any SQL DML statements. -Make sure to terminate each statement with a semicolon. - -This is useful to have a data set ready for your tests or demos. - -[[hr-configuration-properties]] -=== Hibernate Reactive configuration properties - -There are various optional properties useful to refine your session factory or guide Quarkus' guesses. - -When no properties are set, Quarkus can typically infer everything it needs to setup Hibernate Reactive -and will have it use the default datasource. - -The configuration properties listed here allow you to override such defaults, and customize and tune various aspects. - -Hibernate Reactive uses the same properties you would use for Hibernate ORM. You will notice that some properties -contain `jdbc` in the name but there is not JDBC in Hibernate Reactive, these are simply legacy property names. - -include::{generated-dir}/config/quarkus-hibernate-orm.adoc[opts=optional, leveloffset=+2] - -[TIP] -==== -Want to start a PostgreSQL server on the side with Docker? - -[source,bash] ----- -docker run --rm --name postgres-quarkus-hibernate -e POSTGRES_USER=quarkus_test \ - -e POSTGRES_PASSWORD=quarkus_test -e POSTGRES_DB=quarkus_test \ - -p 5432:5432 postgres:14.1 ----- - -This will start a non-durable empty database: ideal for a quick experiment! -==== - -[[hr-cdi-integration]] -==== CDI integration - -If you are familiar with using Hibernate Reactive in Quarkus, you probably already have injected the `Mutiny.SessionFactory` using CDI: - -[source,java] ----- -@Inject -Mutiny.SessionFactory sessionFactory; ----- - -This will inject the `Mutiny.SessionFactory` of the default persistence unit. - -You can also inject an instance of `Uni` using the exact same mechanism: - -[source,java] ----- -@Inject -Uni session; ----- - -[[hr-limitations]] -== Limitations and other things you should know - -Quarkus does not modify the libraries it uses; this rule applies to Hibernate Reactive as well: when using -this extension you will mostly have the same experience as using the original library. - -But while they share the same code, Quarkus does configure some components automatically and inject custom implementations -for some extension points; this should be transparent and useful but if you're an expert of Hibernate Reactive you might want to -know what is being done. - -Here's a list of things to pay attention when using Hibernate Reactive in Quarkus: - -* it's not possible to configure multiple persistence units at the moment -* it's not configurable via a `persistence.xml` file -* integration with the Envers extension is not supported -* transaction demarcation cannot be done using `javax.transaction.Transactional` - -== Simplifying Hibernate Reactive with Panache - -The xref:hibernate-reactive-panache.adoc[Hibernate Reactive with Panache] extension facilitates the usage of Hibernate Reactive -by providing active record style entities (and repositories) and focuses on making your entities trivial and fun to write in Quarkus. - diff --git a/_versions/2.7/guides/hibernate-search-orm-elasticsearch.adoc b/_versions/2.7/guides/hibernate-search-orm-elasticsearch.adoc deleted file mode 100644 index fbeeee54f17..00000000000 --- a/_versions/2.7/guides/hibernate-search-orm-elasticsearch.adoc +++ /dev/null @@ -1,945 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Hibernate Search guide -:hibernate-search-doc-prefix: https://docs.jboss.org/hibernate/search/6.1/reference/en-US/html_single/ -include::./attributes.adoc[] - -You have a Hibernate ORM-based application? You want to provide a full-featured full-text search to your users? You're at the right place. - -With this guide, you'll learn how to synchronize your entities to an Elasticsearch or OpenSearch cluster in a heartbeat with Hibernate Search. -We will also explore how you can query your Elasticsearch or OpenSearch cluster using the Hibernate Search API. - -== Prerequisites - -:prerequisites-time: 20 minutes -:prerequisites-docker: -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -The application described in this guide allows to manage a (simple) library: you manage authors and their books. - -The entities are stored in a PostgreSQL database and indexed in an Elasticsearch cluster. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `hibernate-search-orm-elasticsearch-quickstart` {quickstarts-tree-url}/hibernate-search-orm-elasticsearch-quickstart[directory]. - -[NOTE] -==== -The provided solution contains a few additional elements such as tests and testing infrastructure. -==== - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: hibernate-search-orm-elasticsearch-quickstart -:create-app-extensions: hibernate-orm-panache,jdbc-postgresql,hibernate-search-orm-elasticsearch,resteasy-jackson -include::includes/devtools/create-app.adoc[] - -This command generates a Maven structure importing the following extensions: - - * Hibernate ORM with Panache, - * the PostgreSQL JDBC driver, - * Hibernate Search + Elasticsearch, - * RESTEasy and Jackson. - -If you already have your Quarkus project configured, you can add the `hibernate-search-orm-elasticsearch` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: hibernate-search-orm-elasticsearch -include::includes/devtools/extension-add.adoc[] - -This will add the following to your `pom.xml`: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-hibernate-search-orm-elasticsearch - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-hibernate-search-orm-elasticsearch") ----- - -== Creating the bare entities - -First, let's create our Hibernate ORM entities `Book` and `Author` in the `model` subpackage. - -[source,java] ----- -package org.acme.hibernate.search.elasticsearch.model; - -import java.util.List; -import java.util.Objects; - -import javax.persistence.CascadeType; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.OneToMany; - -import io.quarkus.hibernate.orm.panache.PanacheEntity; - -@Entity -public class Author extends PanacheEntity { // <1> - - public String firstName; - - public String lastName; - - @OneToMany(mappedBy = "author", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER) // <2> - public List books; - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof Author)) { - return false; - } - - Author other = (Author) o; - - return Objects.equals(id, other.id); - } - - @Override - public int hashCode() { - return 31; - } -} ----- -<1> We are using Hibernate ORM with Panache, it is not mandatory. -<2> We are loading these elements eagerly so that they are present in the JSON output. -In a real world application, you should probably use a DTO approach. - -[source,java] ----- -package org.acme.hibernate.search.elasticsearch.model; - -import java.util.Objects; - -import javax.persistence.Entity; -import javax.persistence.ManyToOne; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import io.quarkus.hibernate.orm.panache.PanacheEntity; - -@Entity -public class Book extends PanacheEntity { - - public String title; - - @ManyToOne - @JsonIgnore <1> - public Author author; - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof Book)) { - return false; - } - - Book other = (Book) o; - - return Objects.equals(id, other.id); - } - - @Override - public int hashCode() { - return 31; - } -} ----- -<1> We mark this property with `@JsonIgnore` to avoid infinite loops when serializing with Jackson. - -== Initializing the REST service - -While everything is not yet set up for our REST service, we can initialize it with the standard CRUD operations we will need. - -Create the `org.acme.hibernate.search.elasticsearch.LibraryResource` class: - -[source,java] ----- -package org.acme.hibernate.search.elasticsearch; - -import javax.transaction.Transactional; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.acme.hibernate.search.elasticsearch.model.Author; -import org.acme.hibernate.search.elasticsearch.model.Book; -import org.jboss.resteasy.annotations.jaxrs.FormParam; -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -@Path("/library") -public class LibraryResource { - - @PUT - @Path("book") - @Transactional - @Consumes(MediaType.APPLICATION_FORM_URLENCODED) - public void addBook(@FormParam String title, @FormParam Long authorId) { - Author author = Author.findById(authorId); - if (author == null) { - return; - } - - Book book = new Book(); - book.title = title; - book.author = author; - book.persist(); - - author.books.add(book); - author.persist(); - } - - @DELETE - @Path("book/{id}") - @Transactional - public void deleteBook(@PathParam Long id) { - Book book = Book.findById(id); - if (book != null) { - book.author.books.remove(book); - book.delete(); - } - } - - @PUT - @Path("author") - @Transactional - @Consumes(MediaType.APPLICATION_FORM_URLENCODED) - public void addAuthor(@FormParam String firstName, @FormParam String lastName) { - Author author = new Author(); - author.firstName = firstName; - author.lastName = lastName; - author.persist(); - } - - @POST - @Path("author/{id}") - @Transactional - @Consumes(MediaType.APPLICATION_FORM_URLENCODED) - public void updateAuthor(@PathParam Long id, @FormParam String firstName, @FormParam String lastName) { - Author author = Author.findById(id); - if (author == null) { - return; - } - author.firstName = firstName; - author.lastName = lastName; - author.persist(); - } - - @DELETE - @Path("author/{id}") - @Transactional - public void deleteAuthor(@PathParam Long id) { - Author author = Author.findById(id); - if (author != null) { - author.delete(); - } - } -} ----- - -Nothing out of the ordinary here: it is just good old Hibernate ORM with Panache operations in a standard JAX-RS service. - -In fact, the interesting part is that we will need to add very few elements to make our full text search application working. - -== Using Hibernate Search annotations - -Let's go back to our entities. - -Enabling full text search capabilities for them is as simple as adding a few annotations. - -Let's edit the `Book` entity again to include this content: - -[source,java] ----- -package org.acme.hibernate.search.elasticsearch.model; - -import java.util.Objects; - -import javax.persistence.Entity; -import javax.persistence.ManyToOne; - -import org.hibernate.search.mapper.pojo.mapping.definition.annotation.FullTextField; -import org.hibernate.search.mapper.pojo.mapping.definition.annotation.Indexed; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import io.quarkus.hibernate.orm.panache.PanacheEntity; - -@Entity -@Indexed // <1> -public class Book extends PanacheEntity { - - @FullTextField(analyzer = "english") // <2> - public String title; - - @ManyToOne - @JsonIgnore - public Author author; - - // Preexisting equals()/hashCode() methods -} ----- -<1> First, let's use the `@Indexed` annotation to register our `Book` entity as part of the full text index. -<2> The `@FullTextField` annotation declares a field in the index specifically tailored for full text search. -In particular, we have to define an analyzer to split and analyze the tokens (~ words) - more on this later. - -Now that our books are indexed, we can do the same for the authors. - -Open the `Author` class and include the content below. - -Things are quite similar here: we use the `@Indexed`, `@FullTextField` and `@KeywordField` annotations. - -There are a few differences/additions though. Let's check them out. - -[source,java] ----- -package org.acme.hibernate.search.elasticsearch.model; - -import java.util.List; -import java.util.Objects; - -import javax.persistence.CascadeType; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.OneToMany; - -import org.hibernate.search.engine.backend.types.Sortable; -import org.hibernate.search.mapper.pojo.mapping.definition.annotation.FullTextField; -import org.hibernate.search.mapper.pojo.mapping.definition.annotation.Indexed; -import org.hibernate.search.mapper.pojo.mapping.definition.annotation.IndexedEmbedded; -import org.hibernate.search.mapper.pojo.mapping.definition.annotation.KeywordField; - -import io.quarkus.hibernate.orm.panache.PanacheEntity; - -@Entity -@Indexed -public class Author extends PanacheEntity { - - @FullTextField(analyzer = "name") // <1> - @KeywordField(name = "firstName_sort", sortable = Sortable.YES, normalizer = "sort") // <2> - public String firstName; - - @FullTextField(analyzer = "name") - @KeywordField(name = "lastName_sort", sortable = Sortable.YES, normalizer = "sort") - public String lastName; - - @OneToMany(mappedBy = "author", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER) - @IndexedEmbedded // <3> - public List books; - - // Preexisting equals()/hashCode() methods -} ----- -<1> We use a `@FullTextField` similar to what we did for `Book` but you'll notice that the analyzer is different - more on this later. -<2> As you can see, we can define several fields for the same property. -Here, we define a `@KeywordField` with a specific name. -The main difference is that a keyword field is not tokenized (the string is kept as one single token) but can be normalized (i.e. filtered) - more on this later. -This field is marked as sortable as our intention is to use it for sorting our authors. -<3> The purpose of `@IndexedEmbedded` is to include the `Book` fields into the `Author` index. -In this case, we just use the default configuration: all the fields of the associated `Book` entities are included in the index (i.e. the `title` field). -The nice thing with `@IndexedEmbedded` is that it is able to automatically reindex an `Author` if one of its ``Book``s has been updated thanks to the bidirectional relation. -`@IndexedEmbedded` also supports nested documents (using the `storage = NESTED` attribute) but we don't need it here. -You can also specify the fields you want to include in your parent index using the `includePaths` attribute if you don't want them all. - -== Analyzers and normalizers - -=== Introduction - -Analysis is a big part of full text search: it defines how text will be processed when indexing or building search queries. - -The role of analyzers is to split the text into tokens (~ words) and filter them (making it all lowercase and removing accents for instance). - -Normalizers are a special type of analyzers that keeps the input as a single token. -It is especially useful for sorting or indexing keywords. - -There are a lot of bundled analyzers but you can also develop your own for your own specific purposes. - -You can learn more about the Elasticsearch analysis framework in the https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html[Analysis section of the Elasticsearch documentation]. - -=== Defining the analyzers used - -When we added the Hibernate Search annotations to our entities, we defined the analyzers and normalizers used. -Typically: - -[source,java] ----- -@FullTextField(analyzer = "english") ----- - -[source,java] ----- -@FullTextField(analyzer = "name") ----- - -[source,java] ----- -@KeywordField(name = "lastName_sort", sortable = Sortable.YES, normalizer = "sort") ----- - -We use: - - * an analyzer called `name` for person names, - * an analyzer called `english` for book titles, - * a normalizer called `sort` for our sort fields - -but we haven't set them up yet. - -Let's see how you can do it with Hibernate Search. - -[[analysis-configurer]] -=== Setting up the analyzers - -It is an easy task, we just need to create an implementation of `ElasticsearchAnalysisConfigurer` -(and configure Quarkus to use it, more on that later). - -To fulfill our requirements, let's create the following implementation: - -[source,java] ----- -package org.acme.hibernate.search.elasticsearch.config; - -import org.hibernate.search.backend.elasticsearch.analysis.ElasticsearchAnalysisConfigurationContext; -import org.hibernate.search.backend.elasticsearch.analysis.ElasticsearchAnalysisConfigurer; - -import javax.enterprise.context.Dependent; -import javax.inject.Named; - -@Dependent -@Named("myAnalysisConfigurer") // <1> -public class AnalysisConfigurer implements ElasticsearchAnalysisConfigurer { - - @Override - public void configure(ElasticsearchAnalysisConfigurationContext context) { - context.analyzer("name").custom() // <2> - .tokenizer("standard") - .tokenFilters("asciifolding", "lowercase"); - - context.analyzer("english").custom() // <3> - .tokenizer("standard") - .tokenFilters("asciifolding", "lowercase", "porter_stem"); - - context.normalizer("sort").custom() // <4> - .tokenFilters("asciifolding", "lowercase"); - } -} ----- -<1> We will need to reference the configurer from the configuration properties, so we make it a named bean. -<2> This is a simple analyzer separating the words on spaces, removing any non-ASCII characters by its ASCII counterpart (and thus removing accents) and putting everything in lowercase. -It is used in our examples for the author's names. -<3> We are a bit more aggressive with this one and we include some stemming: we will be able to search for `mystery` and get a result even if the indexed input contains `mysteries`. -It is definitely too aggressive for person names but it is perfect for the book titles. -<4> Here is the normalizer used for sorting. Very similar to our first analyzer, except we don't tokenize the words as we want one and only one token. - -== Adding full text capabilities to our REST service - -In our existing `LibraryResource`, we just need to inject the `SearchSession`: - -[source,java] ----- - @Inject - SearchSession searchSession; // <1> ----- -<1> Inject a Hibernate Search session, which relies on the `EntityManager` under the hood. -Applications with multiple persistence units can use the CDI qualifier `@io.quarkus.hibernate.orm.PersistenceUnit` -to select the right one: -see <>. - -And then we can add the following methods (and a few ``import``s): - -[source,java] ----- - @Transactional // <1> - void onStart(@Observes StartupEvent ev) throws InterruptedException { // <2> - // only reindex if we imported some content - if (Book.count() > 0) { - searchSession.massIndexer() - .startAndWait(); - } - } - - @GET - @Path("author/search") // <3> - @Transactional - public List searchAuthors(@QueryParam String pattern, // <4> - @QueryParam Optional size) { - return searchSession.search(Author.class) // <5> - .where(f -> - pattern == null || pattern.trim().isEmpty() ? - f.matchAll() : // <6> - f.simpleQueryString() - .fields("firstName", "lastName", "books.title").matching(pattern) // <7> - ) - .sort(f -> f.field("lastName_sort").then().field("firstName_sort")) // <8> - .fetchHits(size.orElse(20)); // <9> - } ----- -<1> Important point: we need a transactional context for these methods. -<2> As we will import data into the PostgreSQL database using an SQL script, we need to reindex the data at startup. -For this, we use Hibernate Search's mass indexer, which allows to index a lot of data efficiently (you can fine tune it for better performances). -All the upcoming updates coming through Hibernate ORM operations will be synchronized automatically to the full text index. -If you don't import data manually in the database, you don't need that: -the mass indexer should then only be used when you change your indexing configuration (adding a new field, changing an analyzer's configuration...) and you want the new configuration to be applied to your existing entities. -<3> This is where the magic begins: just adding the annotations to our entities makes them available for full text search: we can now query the index using the Hibernate Search DSL. -<4> Use the `org.jboss.resteasy.annotations.jaxrs.QueryParam` annotation type to avoid repeating the parameter name. -<5> We indicate that we are searching for ``Author``s. -<6> We create a predicate: if the pattern is empty, we use a `matchAll()` predicate. -<7> If we have a valid pattern, we create a https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html[`simpleQueryString()`] predicate on the `firstName`, `lastName` and `books.title` fields matching our pattern. -<8> We define the sort order of our results. Here we sort by last name, then by first name. Note that we use the specific fields we created for sorting. -<9> Fetch the `size` top hits, `20` by default. Obviously, paging is also supported. - -[NOTE] -==== -The Hibernate Search DSL supports a significant subset of the Elasticsearch predicates (match, range, nested, phrase, spatial...). -Feel free to explore the DSL using autocompletion. - -When that's not enough, you can always fall back to -link:{hibernate-search-doc-prefix}#search-dsl-predicate-extensions-elasticsearch-from-json[defining a predicate using JSON directly]. -==== - -== Configuring the application - -As usual, we can configure everything in the Quarkus configuration file, `application.properties`. - -Edit `src/main/resources/application.properties` and inject the following configuration: - -[source,properties] ----- -quarkus.ssl.native=false <1> - -quarkus.datasource.db-kind=postgresql <2> -quarkus.datasource.username=quarkus_test -quarkus.datasource.password=quarkus_test -quarkus.datasource.jdbc.url=jdbc:postgresql:quarkus_test - -quarkus.hibernate-orm.database.generation=drop-and-create <3> -quarkus.hibernate-orm.sql-load-script=import.sql <4> - -quarkus.hibernate-search-orm.elasticsearch.version=7 <5> -quarkus.hibernate-search-orm.elasticsearch.analysis.configurer=bean:myAnalysisConfigurer <6> -quarkus.hibernate-search-orm.schema-management.strategy=drop-and-create <7> -quarkus.hibernate-search-orm.automatic-indexing.synchronization.strategy=sync <8> ----- -<1> We won't use SSL so we disable it to have a more compact native executable. -<2> Let's create a PostgreSQL datasource. -<3> We will drop and recreate the schema every time we start the application. -<4> We load some initial data. -<5> We need to tell Hibernate Search about the version of Elasticsearch we will use. -It is important because there are significant differences between Elasticsearch mapping syntax depending on the version. -Since the mapping is created at build time to reduce startup time, Hibernate Search cannot connect to the cluster to automatically detect the version. -Note that, for OpenSearch, you need to prefix the version with `opensearch:`; see <>. -<6> We point to the custom `AnalysisConfigurer` which defines the configuration of our analyzers and normalizers. -<7> Obviously, this is not for production: we drop and recreate the index every time we start the application. -<8> This means that we wait for the entities to be searchable before considering a write complete. -On a production setup, the `write-sync` default will provide better performance. -Using `sync` is especially important when testing as you need the entities to be searchable immediately. - -[TIP] -For more information about the Hibernate Search extension configuration please refer to the <>. - -== Creating a frontend - -Now let's add a simple web page to interact with our `LibraryResource`. -Quarkus automatically serves static resources located under the `META-INF/resources` directory. -In the `src/main/resources/META-INF/resources` directory, overwrite the existing `index.html` file with the content from this -{quickstarts-blob-url}/hibernate-search-orm-elasticsearch-quickstart/src/main/resources/META-INF/resources/index.html[index.html] file. - -== Automatic import script - -For the purpose of this demonstration, let's import an initial dataset. - -Let's create a `src/main/resources/import.sql` file with the following content: - -[source,sql] ----- -INSERT INTO author(id, firstname, lastname) VALUES (nextval('hibernate_sequence'), 'John', 'Irving'); -INSERT INTO author(id, firstname, lastname) VALUES (nextval('hibernate_sequence'), 'Paul', 'Auster'); - -INSERT INTO book(id, title, author_id) VALUES (nextval('hibernate_sequence'), 'The World According to Garp', 1); -INSERT INTO book(id, title, author_id) VALUES (nextval('hibernate_sequence'), 'The Hotel New Hampshire', 1); -INSERT INTO book(id, title, author_id) VALUES (nextval('hibernate_sequence'), 'The Cider House Rules', 1); -INSERT INTO book(id, title, author_id) VALUES (nextval('hibernate_sequence'), 'A Prayer for Owen Meany', 1); -INSERT INTO book(id, title, author_id) VALUES (nextval('hibernate_sequence'), 'Last Night in Twisted River', 1); -INSERT INTO book(id, title, author_id) VALUES (nextval('hibernate_sequence'), 'In One Person', 1); -INSERT INTO book(id, title, author_id) VALUES (nextval('hibernate_sequence'), 'Avenue of Mysteries', 1); -INSERT INTO book(id, title, author_id) VALUES (nextval('hibernate_sequence'), 'The New York Trilogy', 2); -INSERT INTO book(id, title, author_id) VALUES (nextval('hibernate_sequence'), 'Mr. Vertigo', 2); -INSERT INTO book(id, title, author_id) VALUES (nextval('hibernate_sequence'), 'The Brooklyn Follies', 2); -INSERT INTO book(id, title, author_id) VALUES (nextval('hibernate_sequence'), 'Invisible', 2); -INSERT INTO book(id, title, author_id) VALUES (nextval('hibernate_sequence'), 'Sunset Park', 2); -INSERT INTO book(id, title, author_id) VALUES (nextval('hibernate_sequence'), '4 3 2 1', 2); ----- - -== Preparing the infrastructure - -We need a PostgreSQL instance and an Elasticsearch cluster. - -Let's use Docker to start one of each: - -[source,bash,subs=attributes+] ----- -docker run -it --rm=true --name elasticsearch_quarkus_test -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch-oss:{elasticsearch-version} ----- - -[source,bash] ----- -docker run -it --rm=true --name postgresql_quarkus_test -e POSTGRES_USER=quarkus_test -e POSTGRES_PASSWORD=quarkus_test -e POSTGRES_DB=quarkus_test -p 5432:5432 postgres:14.1 ----- - -== Time to play with your application - -You can now interact with your REST service: - -:devtools-wrapped: - - * start your Quarkus application with: -+ -include::includes/devtools/dev.adoc[] - * open a browser to `http://localhost:8080/` - * search for authors or book titles (we initialized some data for you) - * create new authors and books and search for them too - -:!devtools-wrapped: - -As you can see, all your updates are automatically synchronized to the Elasticsearch cluster. - -[[opensearch]] -== OpenSearch compatibility - -Hibernate Search is compatible with both https://www.elastic.co/elasticsearch[Elasticsearch] -and https://www.opensearch.org/[OpenSearch], -but it assumes it is working with an Elasticsearch cluster by default. - -To have Hibernate Search work with an OpenSearch cluster instead, -link:{hibernate-search-doc-prefix}#backend-elasticsearch-configuration-version[prefix the configured version with `opensearch:`], -as shown below. - -[source,properties] ----- -quarkus.hibernate-search-orm.elasticsearch.version=opensearch:1.2 ----- - -All other configuration options and APIs are exactly the same as with Elasticsearch. - -You can find more information about compatible distributions and versions of Elasticsearch in -link:{hibernate-search-doc-prefix}#getting-started-compatibility[this section of Hibernate Search's reference documentation]. - -[[multiple-persistence-units]] -== Multiple persistence units - -=== Configuring multiple persistence units - -With the Hibernate ORM extension, -xref:hibernate-orm.adoc#multiple-persistence-units[you can set up multiple persistence units], -each with its own datasource and configuration. - -If you do declare multiple persistence units, -you will also configure Hibernate Search separately for each persistence unit. - -The properties at the root of the `quarkus.hibernate-search-orm.` namespace define the default persistence unit. -For instance, the following snippet defines a default datasource and a default persistence unit, -and sets the Elasticsearch host for that persistence unit to `es1.mycompany.com:9200`. - -[source,properties] ----- -quarkus.datasource.db-kind=h2 -quarkus.datasource.jdbc.url=jdbc:h2:mem:default;DB_CLOSE_DELAY=-1 - -quarkus.hibernate-orm.dialect=org.hibernate.dialect.H2Dialect - -quarkus.hibernate-search-orm.elasticsearch.hosts=es1.mycompany.com:9200 -quarkus.hibernate-search-orm.elasticsearch.version=7 -quarkus.hibernate-search-orm.automatic-indexing.synchronization.strategy=write-sync ----- - -Using a map based approach, it is also possible to configure named persistence units: - -[source,properties] ----- -quarkus.datasource."users".db-kind=h2 <1> -quarkus.datasource."users".jdbc.url=jdbc:h2:mem:users;DB_CLOSE_DELAY=-1 - -quarkus.datasource."inventory".db-kind=h2 <2> -quarkus.datasource."inventory".jdbc.url=jdbc:h2:mem:inventory;DB_CLOSE_DELAY=-1 - -quarkus.hibernate-orm."users".datasource=users <3> -quarkus.hibernate-orm."users".packages=org.acme.model.user - -quarkus.hibernate-orm."inventory".datasource=inventory <4> -quarkus.hibernate-orm."inventory".packages=org.acme.model.inventory - -quarkus.hibernate-search-orm."users".elasticsearch.hosts=es1.mycompany.com:9200 <5> -quarkus.hibernate-search-orm."users".elasticsearch.version=7 -quarkus.hibernate-search-orm."users".automatic-indexing.synchronization.strategy=write-sync - -quarkus.hibernate-search-orm."inventory".elasticsearch.hosts=es2.mycompany.com:9200 <6> -quarkus.hibernate-search-orm."inventory".elasticsearch.version=7 -quarkus.hibernate-search-orm."inventory".automatic-indexing.synchronization.strategy=write-sync ----- -<1> Define a datasource named `users`. -<2> Define a datasource named `inventory`. -<3> Define a persistence unit called `users` pointing to the `users` datasource. -<4> Define a persistence unit called `inventory` pointing to the `inventory` datasource. -<5> Configure Hibernate Search for the `users` persistence unit, -setting the Elasticsearch host for that persistence unit to `es1.mycompany.com:9200`. -<6> Configure Hibernate Search for the `inventory` persistence unit, -setting the Elasticsearch host for that persistence unit to `es2.mycompany.com:9200`. - -[[multiple-persistence-units-attaching-model-classes]] -=== Attaching model classes to persistence units - -For each persistence unit, Hibernate Search will only consider indexed entities that are attached to that persistence unit. -Entities are attached to a persistence unit by -xref:hibernate-orm.adoc#multiple-persistence-units-attaching-model-classes[configuring the Hibernate ORM extension]. - -[[multiple-persistence-units-attaching-cdi]] -== CDI integration - -You can inject Hibernate Search's main entry points, `SearchSession` and `SearchMapping`, using CDI: - -[source,java] ----- -@Inject -SearchSession searchSession; ----- - -This will inject the `SearchSession` of the default persistence unit. - -To inject the `SearchSession` of a named persistence unit (`users` in our example), -just add a qualifier: - -[source,java] ----- -@Inject -@PersistenceUnit("users") <1> -SearchSession searchSession; ----- -<1> This is the `@io.quarkus.hibernate.orm.PersistenceUnit` annotation. - -You can inject the `SearchMapping` of a named persistence unit using the exact same mechanism: - -[source,java] ----- -@Inject -@PersistenceUnit("users") -SearchMapping searchMapping; ----- - -== Building a native executable - -You can build a native executable with the usual command `./mvnw package -Pnative`. - -[NOTE] -==== -As usual with native executable compilation, this operation consumes a lot of memory. - -It might be safer to stop the two containers while you are building the native executable and start them again once you are done. -==== - -Running it is as simple as executing `./target/hibernate-search-orm-elasticsearch-quickstart-1.0.0-SNAPSHOT-runner`. - -You can then point your browser to `http://localhost:8080/` and use your application. - -[NOTE] -==== -The startup is a bit slower than usual: it is mostly due to us dropping and recreating the database schema and the Elasticsearch mapping every time at startup. -We also inject some data and execute the mass indexer. - -In a real life application, it is obviously something you won't do at startup. -==== - -[[offline-startup]] -== Offline startup - -By default, Hibernate Search sends a few requests to the Elasticsearch cluster on startup. -If the Elasticsearch cluster is not necessarily up and running when Hibernate Search starts, -this could cause a startup failure. - -To address this, you can configure Hibernate Search to not send any request on startup: - -* Disable Elasticsearch version checks on startup by setting the configuration property - link:#quarkus-hibernate-search-orm-elasticsearch_quarkus.hibernate-search-orm.elasticsearch.version-check.enabled[`quarkus.hibernate-search-orm.elasticsearch.version-check.enabled`] - to `false`. -* Disable schema management on startup by setting the configuration property - link:#quarkus-hibernate-search-orm-elasticsearch_quarkus.hibernate-search-orm.schema-management.strategy[`quarkus.hibernate-search-orm.schema-management.strategy`] - to `none`. - -Of course, even with this configuration, Hibernate Search still won't be able to index anything or run search queries -until the Elasticsearch cluster becomes accessible. - -[IMPORTANT] -==== -If you disable automatic schema creation by setting `quarkus.hibernate-search-orm.schema-management.strategy` to `none`, -you will have to create the schema manually at some point before your application starts persisting/updating entities -and executing search requests. - -See link:{hibernate-search-doc-prefix}#mapper-orm-schema-management-manager[this section of the reference documentation] -for more information. -==== - -[[coordination]] -== Coordination through outbox polling - -[CAUTION] -==== -Coordination through outbox polling is considered preview. - -In _preview_, backward compatibility and presence in the ecosystem is not guaranteed. -Specific improvements might require changing configuration or APIs, or even storage formats, -and plans to become _stable_ are under way. -Feedback is welcome on our https://groups.google.com/d/forum/quarkus-dev[mailing list] -or as issues in our https://github.com/quarkusio/quarkus/issues[GitHub issue tracker]. -==== - -While it’s technically possible to use Hibernate Search and Elasticsearch in distributed applications, -by default they suffer from -link:{hibernate-search-doc-prefix}#architecture-examples-no-coordination-elasticsearch-pros-and-cons[a few limitations]. - -These limitations are the result of Hibernate Search not coordinating between threads or application nodes by default. - -In order to get rid of these limitations, you can -link:{hibernate-search-doc-prefix}#architecture-examples-outbox-polling-elasticsearch[use the `outbox-polling` coordination strategy]. -This strategy creates an outbox table in the database to push entity change events to, -and relies on a background processor to consume these events and perform automatic indexing. - -To enable the `outbox-polling` coordination strategy, an additional extension is required: - -:add-extension-extensions: hibernate-search-orm-coordination-outbox-polling -include::includes/devtools/extension-add.adoc[] - -Once the extension is there, you will need to explicitly select the `outbox-polling` strategy -by setting link:#quarkus-hibernate-search-orm-elasticsearch_quarkus.hibernate-search-orm.coordination.strategy[`quarkus.hibernate-search-orm.coordination.strategy`] -to `outbox-polling`. - -Finally, you will need to make sure that the Hibernate ORM entities added by Hibernate Search -(to represent the outbox and agents) have corresponding tables/sequences in your database: - -* If you are just starting with your application -and intend to xref:hibernate-orm.adoc#dev-mode[let Hibernate ORM generate your database schema], -then no worries: the entities required by Hibernate Search will be included in the generated schema. -* Otherwise, you must -link:{hibernate-search-doc-prefix}#coordination-outbox-polling-schema[manually alter your schema to add the necessary tables/sequences]. - -Once you are done with the above, you're ready to use Hibernate Search with an outbox. -Don't change any code, and just start your application: -it will automatically detect when multiple applications are connected to the same database, -and coordinate the index updates accordingly. - -[NOTE] -==== -Hibernate Search mostly behaves the same when using the `outbox-polling` coordination strategy -as when not using it: application code (persisting entities, searching, etc.) should not require any change. - -However, there is one key difference: index updates are necessarily asynchronous; -they are guaranteed to happen _eventually_, but not immediately. - -This means in particular that the configuration property -link:#quarkus-hibernate-search-orm-elasticsearch_quarkus.hibernate-search-orm.automatic-indexing.synchronization.strategy[`quarkus.hibernate-search-orm.automatic-indexing.synchronization.strategy`] -cannot be set when using the `outbox-polling` coordination strategy: -Hibernate Search will always behave as if this property was set to `write-sync` (the default). - -This behavior is consistent with Elasticsearch's -https://www.elastic.co/guide/en/elasticsearch/reference/current/near-real-time.html[near-real-time search] -and the recommended way of using Hibernate Search even when coordination is disabled. -==== - -For more information about coordination in Hibernate Search, -see link:{hibernate-search-doc-prefix}#coordination[this section of the reference documentation]. - -For more information about configuration options related to coordination, -see <>. - -[[aws-request-signing]] -== [[configuration-reference-aws]] AWS request signing - -If you need to use https://docs.aws.amazon.com/elasticsearch-service/[Amazon’s managed Elasticsearch service], -you will find it requires a proprietary authentication method involving request signing. - -You can enable AWS request signing in Hibernate Search by adding a dedicated extension to your project and configuring it. - -See link:{hibernate-search-orm-elasticsearch-aws-guide}#aws-configuration-reference[the documentation for the Hibernate Search ORM + Elasticsearch AWS extension] -for more information. - -== Further reading - -If you are interested in learning more about Hibernate Search 6, -the Hibernate team publishes link:{hibernate-search-doc-prefix}[an extensive reference documentation]. - -== FAQ - -=== Why Elasticsearch only? - -Hibernate Search supports both a Lucene backend and an Elasticsearch backend. - -In the context of Quarkus and to build microservices, we thought the latter would make more sense. -Thus we focused our efforts on it. - -We don't have plans to support the Lucene backend in Quarkus for now. - -[[configuration-reference]] -== Hibernate Search Configuration Reference - -[[configuration-reference-main]] -=== Main Configuration - -include::{generated-dir}/config/quarkus-hibernate-search-orm-elasticsearch.adoc[leveloffset=+1, opts=optional] - -[NOTE] -[[bean-reference-note-anchor]] -.About bean references -==== -When referencing beans using a string value in configuration properties, that string is parsed. - -Here are the most common formats: - -* `bean:` followed by the name of a `@Named` CDI bean. -For example `bean:myBean`. -* `class:` followed by the fully-qualified name of a class, to be instantiated through CDI if it's a CDI bean, -or through its public, no-argument constructor otherwise. -For example `class:com.mycompany.MyClass`. -* An arbitrary string referencing a built-in implementation. -Available values are detailed in the documentation of each configuration property, -such as `async`/`read-sync`/`write-sync`/`sync` for -<>. - -Other formats are also accepted, but are only useful for advanced use cases. -See link:{hibernate-search-doc-prefix}#configuration-bean-reference-parsing[this section of Hibernate Search's reference documentation] -for more information. -==== - -:no-duration-note: true - -[[configuration-reference-coordination-outbox-polling]] -=== Configuration of coordination with outbox polling - -NOTE: These configuration properties require an additional extension. See <>. - -include::{generated-dir}/config/quarkus-hibernate-search-orm-coordination-outboxpolling.adoc[leveloffset=+1, opts=optional] diff --git a/_versions/2.7/guides/http-reference.adoc b/_versions/2.7/guides/http-reference.adoc deleted file mode 100644 index fb34a335657..00000000000 --- a/_versions/2.7/guides/http-reference.adoc +++ /dev/null @@ -1,374 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= HTTP Reference - -include::./attributes.adoc[] -:numbered: -:sectnums: -:sectnumlevels: 4 -:toc: - -:numbered: -:sectnums: -:sectnumlevels: 4 - - -This document explains various HTTP features that you can use in Quarkus. - -HTTP is provided using Eclipse Vert.x as the base HTTP layer. Servlet's are supported using a modified version of Undertow that -runs on top of Vert.x, and RESTEasy is used to provide JAX-RS support. If Undertow is present RESTEasy will run as a -Servlet filter, otherwise it will run directly on top of Vert.x with no Servlet involvement. - -== Serving Static Resources - -To serve static resources you must place them in the `META-INF/resources` directory of your application. This location -was chosen as it is the standard location for resources in `jar` files as defined by the Servlet spec. Even though -Quarkus can be used without Servlet following this convention allows existing code that places its resources in this -location to function correctly. - -=== WebJar Locator Support - -If you are using webjars, like the following JQuery one: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.webjars - jquery - 3.1.1 - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.webjars:jquery:3.1.1") ----- - -and rather write `/webjars/jquery/jquery.min.js` instead of `/webjars/jquery/3.1.1/jquery.min.js` -in your HTML files, you can add the `quarkus-webjars-locator` extension to your project. -To use it, add the following to your project's dependencies: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-webjars-locator - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-webjars-locator") ----- - -== Configuring the Context path - -By default Quarkus will serve content from under the root context. If you want to change this you can use the -`quarkus.http.root-path` config key to set the context path. - -If you are using Servlet you can control the Servlet context path via `quarkus.servlet.context-path`. This item is relative -to the http root above, and will only affect Servlet and things that run on top of Servlet. Most applications will -want to use the HTTP root as this affects everything that Quarkus serves. - -If both are specified then all non-Servlet web endpoints will be relative to `quarkus.http.root-path`, while Servlet's -will be served relative to `{quarkus.http.root-path}/{quarkus.servlet.context-path}`. - -If REST Assured is used for testing and `quarkus.http.root-path` is set then Quarkus will automatically configure the -base URL for use in Quarkus tests, so test URL's should not include the root path. - -[[ssl]] -== Supporting secure connections with SSL - -In order to have Quarkus support secure connections, you must either provide a certificate and associated key file, or supply a keystore. - -In both cases, a password must be provided. See the designated paragraph for a detailed description of how to provide it. - -[TIP] -==== -To enable SSL support with native executables, please refer to our xref:native-and-ssl.adoc[Using SSL With Native Executables guide]. -==== - -=== Providing a certificate and key file - -If the certificate has not been loaded into a keystore, it can be provided directly using the properties listed below. -Quarkus will first try to load the given files as resources, and uses the filesystem as a fallback. -The certificate / key pair will be loaded into a newly created keystore on startup. - -Your `application.properties` would then look like this: - -[source,properties] ----- -quarkus.http.ssl.certificate.file=/path/to/certificate -quarkus.http.ssl.certificate.key-file=/path/to/key ----- - -=== Providing a keystore - -An alternate solution is to directly provide a keystore which already contains a default entry with a certificate - You will need to at least provide the file and a password. - -As with the certificate/key file combination, Quarkus will first try to resolve the given path as a resource, before attempting to read it from the filesystem. - -Add the following property to your `application.properties`: - -[source,bash] ----- -quarkus.http.ssl.certificate.key-store-file=/path/to/keystore ----- - -As an optional hint, the type of keystore can be provided as one of the options listed. -If the type is not provided, Quarkus will try to deduce it from the file extensions, defaulting to type JKS. - -[source,properties] ----- -quarkus.http.ssl.certificate.key-store-file-type=[one of JKS, JCEKS, P12, PKCS12, PFX] ----- - -=== Setting the password - -In both aforementioned scenarios, a password needs to be provided to create/load the keystore with. -The password can be set in your `application.properties` (in plain-text) using the following property: - -[source, properties] ----- -quarkus.http.ssl.certificate.key-store-password=your-password ----- - -However, instead of providing the password as plain-text in the configuration file (which is considered bad practice), it can instead be supplied (using link:https://github.com/eclipse/microprofile-config[MicroProfile Config]) -as the environment variable `QUARKUS_HTTP_SSL_CERTIFICATE_KEY_STORE_PASSWORD`. -This will also work in tandem with link:https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-environment-variables[Kubernetes secrets]. - -_Note: in order to remain compatible with earlier versions of Quarkus (before 0.16) the default password is set to "password". It is therefore not a mandatory parameter!_ - -=== Disable the HTTP port - -It is possible to disable the HTTP port and only support secure requests. This is done via the -`quarkus.http.insecure-requests` property in `application.properties`. There are three possible -values: - -`enabled`:: The default, HTTP works as normal -`redirect`:: HTTP requests will be redirected to the HTTPS port -`disabled`:: The HTTP port will not be opened. - -NOTE: if you use `redirect` or `disabled` and have not added a SSL certificate or keystore, your server will not start! - -== Additional HTTP Headers - -To enable HTTP headers to be sent on every response, add the following properties: - -[source, properties] ----- -quarkus.http.header."X-Content-Type-Options".value=nosniff ----- - -This will include the `X-Content-Type-Options: nosniff` HTTP Header on responses for requests performed on any resource in the application. - -You can also specify a `path` pattern and the HTTP `methods` the header needs to be applied: - -[source, properties] ----- -quarkus.http.header.Pragma.value=no-cache -quarkus.http.header.Pragma.path=/headers/pragma -quarkus.http.header.Pragma.methods=GET,HEAD ----- - -This will apply the `Pragma` header only when the `/headers/pragma` resource is called with a `GET` or a `HEAD` method - -include::{generated-dir}/config/quarkus-vertx-http-config-group-header-config.adoc[leveloffset=+1, opts=optional] - -== HTTP/2 Support - -HTTP/2 is enabled by default, and will be used by browsers if SSL is in use on JDK11 or higher. JDK8 does not support -ALPN so cannot be used to run HTTP/2 over SSL. Even if SSL is not in use HTTP/2 via cleartext upgrade is supported, -and may be used by non-browser clients. - -If you want to disable HTTP/2 you can set: - -[source, properties] ----- -quarkus.http.http2=false ----- - -== Listening on a Random Port - -If you don't want to specify a port you can set `quarkus.http.port=0` or `quarkus.http.test-port=0`. A random open port -will be picked by the OS, and a log message printed in the console. When the port is bound the `quarkus.http.port` system -property will be set to the actual port that was selected, so you can use this to get the actual port number from inside -the application. If you are in a test you can inject the URL normally and this will be configured with the actual port, -and REST Assured will also be configured appropriately. - -WARNING: As this sets a system property you can access `quarkus.http.port` via MicroProfile Config, however if you use -injection the injected value may not always be correct. This port allocation is one of the last things to happen in -Quarkus startup, so if your object that is being injected is created eagerly before the port has opened the injected -value will not be correct. - -== CORS filter - -link:https://en.wikipedia.org/wiki/Cross-origin_resource_sharing[Cross-origin resource sharing] (CORS) is a mechanism that -allows restricted resources on a web page to be requested from another domain outside the domain from which the first resource -was served. - -Quarkus comes with a CORS filter which implements the `javax.servlet.Filter` interface and intercepts all incoming HTTP -requests. It can be enabled in the Quarkus configuration file, `src/main/resources/application.properties`: - -[source, properties] ----- -quarkus.http.cors=true ----- - -If the filter is enabled and an HTTP request is identified as cross-origin, the CORS policy and headers defined using the -following properties will be applied before passing the request on to its actual target (servlet, JAX-RS resource, etc.): - - -include::{generated-dir}/config/quarkus-vertx-http-config-group-cors-cors-config.adoc[leveloffset=+1, opts=optional] - -Here's what a full CORS filter configuration could look like, including a regular expression defining an allowed origin: - -[source, properties] ----- -quarkus.http.cors=true -quarkus.http.cors.origins=http://foo.com,http://www.bar.io,/https://([a-z0-9\\-_]+)\\.app\\.mydomain\\.com/ -quarkus.http.cors.methods=GET,PUT,POST -quarkus.http.cors.headers=X-Custom -quarkus.http.cors.exposed-headers=Content-Disposition -quarkus.http.cors.access-control-max-age=24H -quarkus.http.cors.access-control-allow-credentials=true ----- - -== HTTP Limits Configuration - -include::{generated-dir}/config/quarkus-vertx-http-config-group-server-limits-config.adoc[leveloffset=+1, opts=optional] - -== Configuring HTTP Access Logs - -You can add HTTP request logging by configuring it in `application.properties`. There are two options for logging, -either logging to the standard JBoss logging output, or logging to a dedicated file. - -include::{generated-dir}/config/quarkus-vertx-http-config-group-access-log-config.adoc[opts=optional, leveloffset=+1] - -[frame="topbot",options="header"] -|=== -|Attribute |Short Form|Long Form -|Remote IP address | `%a` | `%{REMOTE_IP}` -|Local IP address | `%A` | `%{LOCAL_IP}` -|Bytes sent, excluding HTTP headers, or '-' if no bytes were sent | `%b` | -|Bytes sent, excluding HTTP headers | `%B` | `%{BYTES_SENT}` -|Remote host name | `%h` | `%{REMOTE_HOST}` -|Request protocol | `%H` | `%{PROTOCOL}` -|Request method | `%m` | `%{METHOD}` -|Local port | `%p` | `%{LOCAL_PORT}` -|Query string (prepended with a '?' if it exists, otherwise an empty string) | `%q` | `%{QUERY_STRING}` -|First line of the request | `%r` | `%{REQUEST_LINE}` -|HTTP status code of the response | `%s` | `%{RESPONSE_CODE}` -|Date and time, in Common Log Format format | `%t` | `%{DATE_TIME}` -|Remote user that was authenticated | `%u` | `%{REMOTE_USER}` -|Requested URL path | `%U` | `%{REQUEST_URL}` -|Request relative path | `%R` | `%{REQUEST_PATH}` -|Local server name | `%v` | `%{LOCAL_SERVER_NAME}` -|Time taken to process the request, in millis | `%D` | `%{RESPONSE_TIME}` -|Time taken to process the request, in seconds | `%T` | -|Time taken to process the request, in micros | | `%{RESPONSE_TIME_MICROS}` -|Time taken to process the request, in nanos | | `%{RESPONSE_TIME_NANOS}` -|Current request thread name | `%I` | `%{THREAD_NAME}` -|SSL cypher | | `%{SSL_CIPHER}` -|SSL client certificate | | `%{SSL_CLIENT_CERT}` -|SSL session id | | `%{SSL_SESSION_ID}` -|All request headers | | `%{ALL_REQUEST_HEADERS}` -|Cookie value | | `%{c,cookie_name}` -|Query parameter | | `%{q,query_param_name}` -|Request header | | `%{i,request_header_name}` -|Response header | | `%{o,response_header_name}` -|=== - - -[[reverse-proxy]] -== Running behind a reverse proxy - -Quarkus could be accessed through proxies that additionally generate headers (e.g. `X-Forwarded-Host`) to keep -information from the client-facing side of the proxy servers that is altered or lost when they are involved. -In those scenarios, Quarkus can be configured to automatically update information like protocol, host, port and URI -reflecting the values in these headers. - -IMPORTANT: Activating this feature leaves the server exposed to several security issues (i.e. information spoofing). -Consider activate it only when running behind a reverse proxy. - -To setup this feature, please include the following lines in `src/main/resources/application.properties`: -[source,properties] ----- -quarkus.http.proxy-address-forwarding=true ----- - -To consider only de-facto standard header (`Forwarded` header), please include the following lines in `src/main/resources/application.properties`: -[source,properties] ----- -quarkus.http.proxy.allow-forwarded=true ----- - -To consider only non-standard headers, please include the following lines instead in `src/main/resources/application.properties`: - -[source,properties] ----- -quarkus.http.proxy.proxy-address-forwarding=true -quarkus.http.proxy.enable-forwarded-host=true -quarkus.http.proxy.enable-forwarded-prefix=true ----- - -Both configurations related to standard and non-standard headers can be combined, although the standard headers configuration will have precedence. - -Supported forwarding address headers are: - -* `Forwarded` -* `X-Forwarded-Proto` -* `X-Forwarded-Host` -* `X-Forwarded-Port` -* `X-Forwarded-Ssl` -* `X-Forwarded-Prefix` - -[[same-site-cookie]] -== SameSite cookies - -One can easily add a https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite[SameSite] cookie property to any of the cookies set by a Quarkus endpoint by listing a cookie name and a `SameSite` attribute, for example: - -[source] ----- -quarkus.http.same-site-cookie.jwt.value=Lax -quarkus.http.same-site-cookie.session.value=Strict ----- - -Given this configuration, the `jwt` cookie will have a `SameSite=Lax` attribute and the `session` cookie will have a `SameSite=Strict` attribute. - -== Servlet Config - -To use Servlet you need to explicitly include `quarkus-undertow`: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-undertow - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-undertow") ----- - -=== undertow-handlers.conf - -You can make use of the Undertow predicate language using an `undertow-handlers.conf` file. This file should be placed -in the `META-INF` directory of your application jar. This file contains handlers defined using the -link:http://undertow.io/undertow-docs/undertow-docs-2.0.0/index.html#predicates-attributes-and-handlers[Undertow predicate language]. - -=== web.xml - -If you are using a `web.xml` file as your configuration file, you can place it in the `src/main/resources/META-INF` directory. diff --git a/_versions/2.7/guides/ide-tooling.adoc b/_versions/2.7/guides/ide-tooling.adoc deleted file mode 100644 index 1cfd441f15c..00000000000 --- a/_versions/2.7/guides/ide-tooling.adoc +++ /dev/null @@ -1,161 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Quarkus Tools in your favorite IDE - -include::./attributes.adoc[] - -The following IDEs have support for the community developed Quarkus Tools: - -* https://marketplace.visualstudio.com/items?itemName=redhat.vscode-quarkus[Quarkus Tools for Visual Studio Code] -* https://marketplace.eclipse.org/content/quarkus-tools[Quarkus Tools for Eclipse] -* https://plugins.jetbrains.com/plugin/13234-quarkus/versions[Quarkus Tools for IntelliJ] -* https://github.com/eclipse/che-devfile-registry/blob/main/devfiles/quarkus/devfile.yaml[Quarkus Tools for Eclipse Che] - -In addition IntelliJ has additional support for Quarkus in their Ultimate non-open source version. - -* https://www.jetbrains.com/help/idea/quarkus.html[IntelliJ Ultimate Edition built-in Quarkus support] - -The table below gives an overview of the current IDEs with links and a high-level overview of their features. - -:vscode-logo: https://simpleicons.org/icons/visualstudiocode.svg -:eclipse-logo: https://simpleicons.org/icons/eclipseide.svg -:intellij-logo: https://simpleicons.org/icons/intellijidea.svg -:che-logo: https://simpleicons.org/icons/eclipseche.svg -[cols="6*^", header] -|=== -| . -| image:{vscode-logo}[VSCode,100,100] -{empty} + -VSCode Quarkus Tools -| image:{eclipse-logo}[Eclipse,100,100] -{empty} + -Eclipse Quarkus Tools -| image:{intellij-logo}[IntelliJ,100,100] -{empty} + -IntelliJ Quarkus Tools -| image:{intellij-logo}[IntelliJ,100,100] -{empty} + -IntelliJ Ultimate -| image:{che-logo}[Eclipse Che,100,100] -{empty} + -Eclipse Che - -|Description -|Visual Studio Code extension to install using the marketplace -|Eclipse plugin to install into Eclipse using an updatesite -|IntelliJ plugin that works in IntelliJ Community and Ultimate. Available from Marketplace. -|Built-in Quarkus features available only in IntelliJ Ultimate -|Built-in Quarkus features available in Eclipse Che incl. che.openshift.io. - -|Status -|Stable -|Stable -|Stable -|Stable -|Stable - -|Downloads -| https://marketplace.visualstudio.com/items?itemName=redhat.vscode-quarkus[Marketplace] -{empty} + - https://download.jboss.org/jbosstools/vscode/snapshots/vscode-quarkus/?C=M;O=D[Development Builds] -| https://download.jboss.org/jbosstools/photon/snapshots/builds/jbosstools-quarkus_master/[Development Update Site] -| https://plugins.jetbrains.com/plugin/13234-quarkus/versions[Marketplace] -{empty} + -https://download.jboss.org/jbosstools/intellij/snapshots/intellij-quarkus/[Development Builds] -| https://www.jetbrains.com/idea/nextversion/[Installer] -| https://che.openshift.io/f?url=https://raw.githubusercontent.com/redhat-developer/devfile/master/getting-started/quarkus/devfile.yaml[Start Che Workspace] - -|Source -|https://github.com/redhat-developer/vscode-quarkus[GitHub] -|https://github.com/jbosstools/jbosstools-quarkus[GitHub] -|https://github.com/redhat-developer/intellij-quarkus[GitHub] -|Closed-Source -| - -|https://github.com/redhat-developer/quarkus-ls[Quarkus Language Server] -|icon:check[] -|icon:check[] -|icon:check[] -|icon:times[] -|icon:check[] - -|Wizards w/code.quarkus.io -|icon:check[] -|icon:check[] -|https://issues.jboss.org/browse/JBIDE-26950[icon:times[]] -|icon:check[] -|icon:check[] - -|Custom Wizard -|icon:times[] -|icon:times[] -|icon:check[] -|icon:check[] -|icon:times[] - -|Config editor -|icon:check[] -|icon:check[] -|icon:check[] -|icon:times[] -|icon:check[] - -|Config autocompletion -|icon:check[] -|icon:check[] -|icon:check[] -|icon:check[] -|icon:check[] - -|Config validation -|icon:check[] -|icon:check[] -|icon:check[] -|icon:check[] -|icon:check[] - -|Config jump to definition -|icon:check[] -|icon:check[] -|icon:check[] -|? -|icon:check[] - -|Config profiles -|icon:check[] -|icon:check[] -|icon:check[] -|icon:check[] -|icon:check[] - -|Config outline -|icon:check[] -|icon:check[] -|icon:check[] -|icon:times[] -|icon:check[] - -|Easy Launch debug/dev:mode -|icon:check[] -|icon:check[] -|icon:times[] -|icon:check[] -|icon:check[] - -|Quarkus Code Snippets -|icon:check[] -|icon:check[] -|icon:check[] -|icon:times[] -|icon:check[] - -|Injection Discovery/Navigation -|icon:times[] -|icon:times[] -|icon:times[] -|icon:check[] -|icon:times[] -|=== diff --git a/_versions/2.7/guides/images/amqp-guide-architecture.png b/_versions/2.7/guides/images/amqp-guide-architecture.png deleted file mode 100644 index ea6682da1b6810447c31bb273678e13893741719..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101788 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%0AA-7mN%lGRtK(%ck@kLNu z@5hm_B3YyBA#4V{^#pX$V?G78gFhz|PS_7<%6g9AGAOjF1jqG36%{HyHVF!`U-R_< z<3rohg79QqCs2uPcc3Tx`t*08+Dy9vRbi^Bd4 zwEs=6sVcNM-(mlgetyM-sAz=2BIBv7COs84YBq*8>Nu(mLM%ej&t~T+o!D5cvT75?n5sn> zb{tvX8tjt=2P0p8e;t|D1{R8z*cN(_o{tQmkMn*UQ7Rl2j;g7IIE+u*q1EjZNm=rH zpai-)VtNtBQwL=!78KM{aWJVim7Up{WK-jqW6_yo1Mdn3)S|hWt)(Kv_nbpz$M-c*Rx=e_st zSspcH<;H({%s?0Ef2(1mUVC{qpzXqr`=9*Zm)}!YvkUF*!Za$vLMFNPy?~c|=Kb!{wN6^%wP|Y%LUB8#TD?Kw1BHZ`^15Po8kuJ%31XGDO@W z8C92k-+qlgSg5lEaLL~Awq`NdUNlhg3!4%Nuenrf5sI_DiO-79%w$*4jFTx+ZVigh zguOw3dtSR?dm=a!7DPbnZA_(w(V>7gYyvF|wjrp46S&U`S~OMEWOS9UH@{ABN>y_d z0V{19!lRKeFWb`yz_ArnffxIDw8#dlHTJ);ec?v^?qXR{UN=ailqB3lz2C`5^ z_HHVblI)qAl@!42a|wD6w{s&i7|vikzBl$0Vkd|YBz>ik1;*QCHa9YoGV*eW8L_d9 z3XK+}hn|i_i+yWt!sFv10GQ z%m#;&>0;maXJ~fhRi0sMx&2o>1CD<2&ik+S&lQzZL<_t~cHs+WU32fV>)9?CPz5XP z!tB?%U8t+H3l3tb2zL;>5cUh|-)tX~kEL3>pz$MP$}?;=OY>!Ai*M}OcA@sq2`{rZ zY&|3l*mCvsR%oqUlhDTrr%N>KNl5*?cbq2G+pdc{B-b4kKKG?7Y{N@pebdiHydP*g(I+4~g4eZsx5+GdVWR6?)yH|4k}`flc6 zwtJ8M`v^s6gR`a{IKI{H2fhEok9-HC+Y)p>vXnMh%o|M#Ojbq^VlbeXun5hB#uL=F zaI$7VhhdSSvXV|7<2LMYK_#T35)}mc+G2YY_;9e|vF^JX;Y9^;gD|G9u9*6BACCns z00g29u_$<36!(}#=><3zfhk6vgV&__MO7sP8Bi6BbCi^*S$2jIkXdSH*~iK8FJPPc zSg_JDrds3ggwvaps1SRgy3$Mrm;3C;+oKB0qMtM_A3xQq7$p*cEJ~>?VvO#{UfHo^ zmM_&TO;=;BG$?U~U+6b;qEOV(nbG?=*@chw-Fg38F8J`bHoRSkYC#9E3qdJP>fzLm zWEYw&EAeQZAl+v&de77WVz*4WB-ubd@M!g3x6_x*n zPh39!wFI#>)PmUaC#^bCC^{oV32qWSc&t!V!WC8rsNH(>J553A3#JVVmH)I|zk#mM z>UB4!zg;Lg6P!6$rR9@agx-2s^N2vOl&7gBR4ebm+(oM!((siiNHY=a!0)0DZ@fZaAF?qXf;S zjqb86j5xGHDn?{4n^5tLxsf@-BE%M=YNYQG)IYzs4w~Q`=#MC?GV6|+jr6B2f?^X{ z)9j%ktBVsV)W?1dsw7^7P%~tK@uCh@(Se0;4JcFDBR4gaQ-jWfQfbhGat_}psKwAk z{k@XjXkiCC`F?DtwdW4|wo!qWTftf=YUrHMzc)C5Rhz-pyB~h`{Ts$EM88|u1^Q!O z?{-0t%XY!lO`b<|s$pMXX z*OfaRaPk*NO(GDZ7jx7!5>x*DLhVP5IIfu-pJRIfdqZ$QN9zE;`(P3%_+$OzJsGIZ zjct?7(UcWb12zM~Zmm=uQ31xrREop7pPn9gfzdm*1=?;LqG<%{B=@qPJ!r;y40V^| zht(DBN%7q{reJQ6)X(|2^_htCXBkvZv2BgnQyhK4ZGpSNKC*=&zo+dj!E&6ROhO{Q z$Nuy%!;I{{|fi!2vm+ zEG~Y(Zn^+S>7skzF>**7|8sVs z>Gf}O$tm7pzY|K`x7jtEQi*`o>_V6Qw~+*$ z?(uBceNVio-a)K`Oe&kYZR@M_{kV?&JV_Srr%j*&n=B5YF=xPzg3;kX4VFS)2PwkV zHr|UQEx}vdVq@ZZYvLOAeQW|1#z_1wsvN;%m_Y$60XD_-RQ-*$mKo9rJE7F>Yc*_8 zT+fl1A_&iFFcjZpq0k3RkLuD8j3S8kaoP5zTDsqtiorP-7JEt+I}?9Yj7camhqr=y z-N5sG%Oz|nE)k$qV~>m~m#h?V%$BJJnlje2dfw@`Ejc)p(u z$sNM|I~{Q9itJq}S6G_tB$7>g0)@-@&;%n>mx3m3a|WY73_R-X(txI8#!NHlbxDhn z0Y<*PF{%boUKy^<%r=BjbU!LDK}!m!GAce}adzp|NZMhFBKWb6M-HlwgC4o1aSN5u ziwvryvDhR%i3$zS8u3-reF+#B+mIlDkqF5Nm@@cBQ)laCH4Me zwr&Wqgc_>AA|H?A+~PoI-)nP)lO37cq%LL;W6b)D1+%3>$yA?9rOJ-$fu~y*>wVK^5P_=^fnEewJU5p4%Lv3}@Jzof6`9d<4@X7{^}Z7_z7?hd&fSbuc&PA)2%-7#qNqVCK$p zUAC~l2&O~1I09BZj_;*&oHlk^&e|3lgSjz+x+vCq94ea8-GSO;~m5@ChqM4x9Mg;9--NpE+XE^CugF zCp`CVfA-MHD~?gHc-X7s*~5lTdhW;(6JI!1`+K+FFLm70hE7<1*6>Ly&ebstEq}&@ z=PnvLY1L)=tSdFgbc~K^+^~tOZqzK?_v^WjDu}*In5N_Wj0CN|qTBBZ|E>Fv>vqnt z3CkB~Ur*_MFX;V$(BqeewXYmcHl7Cx;*BX0%!3Gw0nY&k$pp$E_ghg>?kGX*$Vn?t z7mCh`qUf`^)rf_s6uj*v6zyQ@@L`rV5M1Q zz;08Y6%T`Y4J-VUqa(HaX3`YRjgpyaa<2Q#qs%gmT~N1#G^lCK|BsxGJ*=> zSVJ|8`+RqVEV9yqPz5TbvyIFgk0NVLFQ7Bl{)`a0nTG7Wjt_Ab#5TwX^F4LmSr}QY z^w|42?A)6wGpG-%p?V*osG;-0bIIH%|Ay{;es=2B(^@x-U1%Z@^lel$d`-WO?E*pT z44w}WtBz+Epg1eQWV!x{O+IZA;^^Pn3) z|H>$;uhELrkcra>gpvuAiopb@K_kwDOxyjL1et6%jjAI1kNYqZn3qbws}n{1ZViGe zUx!>@qoNX-w0-(m*(YoWu0spSF?$tTh47PY7A+9oFMap%TGE)=CxJJu5Sb7|cY_3; zU-Pjp5p(0|NEYhY@s&K&Hjgc+Ff>V@u?O)tGgC^`ZL4SM8FgT^n|XwaR@ zHyt$jSDOv``0uvV{a%A6Jm2?%$-mlW*o0*RM&7e(yP@P z@QKeKJ!0~+?@^#RSV8W^3Zh3VD86avq!k}=fUE%eKE3uuJ^qdYd4Ln%j<(Hb+HL9BF|YzR#kBruwlJy|yJIIuwn!U>E4 z|2EX|dCVu&Z5ZouI8`#XII()o@3j&2aYFHv;f|sH<$WwORgn3P;qbCP8nY@x zwwB{WNJiU_@`6oeM({py{!wRy0vI%_$nX*E8u?Sko(aqggtS7R6UI%asKU3jjmCbw$neUqu7Z`^$AMd#l9FoCLr$@va! zV%})91LWG1R8@iTb*SJ%gHHy>jLP}36+NGAtghx%08T1!Bx$K$(!0v6S8PPKCSU`2 z|6JQG_NVQHP}yY$wm|ggOq#n>(*MV{DK2AwcBD%%AJfPIU=RCCxoQTWFR2&oxi z$85VQzMm_$^x>ix&_a;B#P?Ak_BONmT-2SXfM~yj@GqW2zM&J!YhUzpyz0XM` z(Gb^)#GLJwKUc?U`)8Zx*S6a2;L?@@-x_v96!cUzA2#9Hy;OaC*}-X50gShsu;R}{ zr##zJC~A0h9R2gsn;j@$tRQ*#UC(TL-d)e{Fmlq0-E_|1cHYG2_8)%F%0pd^9)8dA z6J1?)V5rxI54mU6B_k%S8m)@=wF-uB(QD&JOkDY~p%Yfzp#XZKg5i4=I6tJ@FX{2u z^tbu8-uGku9e=9l9@lFP+E>%7V|l%{e=N3N^)vl#oAr1N=)|jr3Po2yx8D74QIPsq z^~xS16z$>BItq555S92FTwHJHtU;^;5jh^;6J9>^n*0BEEXGmQ0;&OvTevj&5 z7)KCUNiUM7+bEc%((z16Y_^7bIccX(mZVo9&hvbZfT`cI~Si@);;mwdX^ZR=f1Z|>3WkE+CePAF>V zoG3QlVi#3Zek8l_(rKfo{A$D5g`oKQ`X8st>DZ297X+L;e@|am9mFm)QOSL@on4se zW3I|BoP7B`WxMc}o&)}1Dk&_c+P^OL&&&-c#NWKdHVs!#nbSs77nV`QTnLMTz;S9z z{w~K*VI`>*RN-hvz?RIS(pQ&aNZ1bB3>aOl4)VCRLx{}Ry+QR=Xrs5f6(Ist-JR?D7PcH4jY+O-nMErLA1A_%|Z6UwBc-j z$Ur>jO1DxKZN(-mNb0kn^YJpqi-Z}rAV>E!aL&2U{8@p1;`;0t9+kpQw1eF@&vq3d zyy(vjn-ZhK%oI5JWw&kswFI`vKy#HQpjINi3FXXy2{LbaOs4DpT>Sx84gV>i; zb=+PkYWUBgC`xY_Kfd(FL64N)boBVrn_XQ#X~MFNFL>zbOe4*$nFlAUl>T^Z0b$6j?k4<~_+s+kPZ8u6NwCz7Tqp*{r_JfrP zyW0lkoEyIUH#?~GtKb|)wlro3VsK@M!`Yn6LK9RTW%;R0;NS^1;uU=s={y;X!EnaZ z#+pjY!f@{NIaDERh%ulzk^e$%n-@-%X@fTU^qtumwQ4F0Kpyv~3g-_ z&c6P0r5z7Awe;pKw*8xWs6QwaHFQaQpzKR*zSXKL?)gPrzaf4Uy`9P4AZaso4vMyQ zBw1(Ce$WuC4%XY~&uk0&7>`45tQ3z)5{2@92B78O%3zMGgH$J{rjrDNrI5)Xy*G{z zwt*G6A22Lt7OfPqzv#b@_o6sVAPob>whrb-2qXD1vtT3n1$EiqE&FBle#GI}U-aSI z9$=fW8*DH8n^jo+5LypXc#YRl25vQNnr#i38`xmKpE%pAK>T2o@Fgh#) z?&yP!{@rrR2BXYuw`_xDE5`X;>bS3#rovXcAL?lz1hRcUE)+&F=$?2P#W|C z!g*_AahnT#9MK~jk9CWLy+1R1Q=-?9&qq#Q-$$>9LK9gc`Jz^u~We^L41KMx|ybgR}AH-|6A5o2s-#@w@ zv>_zD7=b6>=9nHorpj!)XeTx`mgunV?{iQb2X1@HcHDC%nkbI3AFhhLT=|{ z&-Q`3Otit!5}-qKJosqIkf9fu#3ObnM<3N2Fi#fxyioy<+j8|-DC-%NMF3-F>>fv) zSL*lHqeIcWvWNbXyMMX0sHID)RVYSy=`){%+J=R@e@w;{2R9bLnB|Djf^MPqAnc;;wJm}RI{r}SqwmxEF`&@I2#T^Zo--|R ziW~h}EH-vj15`Yyydd@hqOu{3MoAHHtTz??1B;(H~ek=+XV-hb8Ht}{jl@r3aX#)Kz8AA z9cKr#3%;c~n^ec_53J5E4884JvJ1y5xwYNzRmHzpC~D|(aPsR@3S$5J&0B7}F#5vh z@jEAIB{+(;h$t`5Vt_pw_Td*mi;nDl61q*aRqRTSYg6 zw0LciKo!>P4SMIt3bHBmblR2#JA$etl}+2XI#>+#ag0!i<>wF-I)O*por6D0?hBL>}#ionC~4e98t}Vsw&FNS-FjK8uV<$ znh5wwI%GS=%wU#~6qFr``@YR!yDdoo9ox`3KW5~IO1mC%mg&SVsef+=p(w+>t?IXI zvM5lML9Fo)2RuSiL+63|Vc%7K5c_;dO3`D5q7%Xa>usvK{!}O`;OD>U{@Auk>n1(7 zJwhnj;88k$UMM`Xl}g-K5mU z?R|`PxNYFWXd=k4hFxcPoKv3Y)C zfzzUd5JOTOsT7m3ZsI-7EMB^w!_k|9!j0s8WMk*XXNGee&mj=u%(HRQ6%#CtUk+jw z+)OUI_k5dB)X?cba?5t1&o2%cbkj@g)h^^9|0P*P!0E(+>OgkE&-=aQzOjyA7aDN< zz0W3BNllR-<%y=F?T!0 zo`pR{v6$BdpSw2u(vs|rlPf|AEaPW$y5j#*hbxK_FB zTo`)Kiesu(s`hpop>&;4bV69HX^^PFe<+ILEkgX;Vn8nirmOs#VCwLK?mY)wClnR9 z(a#GGc>mFDi-89SMQ4Ie&Y`A;O2p;)!-w2vV+R^SQB?P%-(gW96v?PV)Qr{ik zQQC2z<4VVk{9x&dyMKXFXV7E@UH_TVc5gen)U*E{rJe)!EbZ`)V@oGo^r6yK6Mh!X zDm0}d&%L%Z;`T?#1V5Gw>B*OUqSSBqgG#*z?p-?Y)XPg(PYQ!S?DmICoAuqHwQ4q}DGd;&5J(~r$6{;Z=Bmvbw9Drs)kMn!Q5O?>lIU~w;^t`YgpUv=g zVQD_cz;~REMuCMf7B$Xoed!#XyB^!W-45&T9NhS~BNR1sKA7Ugh@BOOoO9z#>(MTl zwr8g;dqcAt=-+8awF?s+h;|UW;Dna9(|ts5*2pfLd(#(6J+^yWX_MaD{np7)CqRUv zhAxKgeXem5<4s#`^V|g={V%GOW<8kw;1-0&d>lQR%^6rasLIN!U`6v}Z%m!(=R>S1 zgS`2$IS_9%`@*)um`>6*1fzr|e=b!=AH$posOTAI)K)SaU`7zUIv|T)^ax_(x(en- zeFUu;m_||wRz^jj`dHWsS`bh?7d)Gld91#^vriZLukJ&?rUzcH<*1(pg3n_jC`ca*v)fVxWr1KP%*NCGn+OKr^x(`F)v|%t;~UG{?sddDrNho1SK4Cho#fPBUp_B~pEJ(RulmEjQ5rG+Yo%egJzN@c z%hyWh-u#u)l@r_MT-w>D2Ljluv8X_&^lSRNKs!WPHIxadxG>ii zM->M(oc-pCzXh3I-TFTLF0qaF1^qbAv5slbbq|!b+voTYaOvLnv+k!BiW)i{9K`PD zkr@g~{&ej5AAE5=+64rbLg5T0uXR5@G#mV0 zq=C?dhH}di(+b*mO#Ne+>WTAt8^#q>^SaGAStP@;y0F?WhXeK^_w$B%MybqxVS^g8TP*m1xCS z!v~Z5;hgB!v(%YQV8(XX_fz`Yi9;almhMeM~rt+o7RgY2yh z^rgPV6SL{IrDB~gQyvHRs{P!EsC00{-?=r1>8^^Rh>CY z+lgeuijrd;9Ho!&7!_Dq&5m!uN|WNcmG~TJTLWw7$(c{x}ft0_0sg88Fu)4Fo>At z4=gs2$+bj>V2n{bkeG!(9Z~Akqv@p9>V2mk5O-NV{ypsG_K$+^geL-pe~-^JwJ{hh z+bm)fMpNnL&c4^+>Ia-N4yxLzryribMnDMj>pyyTLXUo93>7{paLvFKzDUV%ZlpJYd<%`)Tq-dgz+Oxe$|xC<5`=_1r;}}r!u&a zKwIJ~Xb3ayEAIU7B`j?W)W?bf2>uWlcRJ$xXDkOl1+t(7L zeLC)i?RiQrbN<*7kD<0yv6Ir_+76-HQPp3)FhIQv;=fz<7S8lnHL&>D@%0;~J72ny zCg@Q2B4-HewGw9guV{(ej+{IF>qxG7@V}^y>-pfxb+MymT#KuR(AMb}&`2)f!(QC! zMnQJk+O_%sRoQ@o?j7vV#a5kR>)^WgI;P6FZ*5eQf6>LAZJA7r2bt%EuG52+^t{*y zeSH!AIXq5ni(3@#7R@kD@`y)w{#~kxoX0k6G7RW0tuHBk{6{O=j|E^c#TrBN+yc2 zd8I+7d~`^Fn_kEG(DR@Q6B=kCc(K&3Al=?Ng`Gj;n zrP2&a6AlCZrRsnX_<02o!MsYMZ=`| zQ-f$O!PkzLNt93@ctO<9JJ`KCPF*nR4%DYcO#Xg06LLVcibR%&8N|w!1)r;$&gSZ!C}Wys8qE}r<8P2Je;X~$LcMxCc_k7l)JpY1pg*>E z3GV;(6WMSplb_z_MGOs2IDGY}*N`Cysedn_GdQT5=bL+f&zf`RyL5WJ{#ccd4z9V+ z9zD5X>MZ6tiqd=)A8~vCJV?4+a#5Y1!EHddsLFd;bpM@T0E3a5b_{!5(Vd_~nfA#+ zMv8Qga?x*lR;4%@;=N8Wq~>%&oShbjWwsU1Zcm^%J0HEKt-j?4iF%H-nZ*Iu&C_B7 z-8hU85t_F(y_0Q44HtkC<9_7x;%D=j^Xm7`v+Fnq&i6F>78-QYx6Vh4d~yY9ZQt$F z83y@Y7SChhT=_Ff`7tK~lEe_8G(oC5yek#fH< z6@e=<09!Srn{Tub=Epevn zRrnL>{Jz0-Fr!!TJOy1ayz)!*brf*q6(wD{VhR?WZ&N`OyDmKuogZZmJ*S-Y$V4&n z87cT1;F$Ph70CyIuG{S(iE>r3V(ZfS$WsCq&GxR^o9{YZpHBnfh&TtCl9*A_qUOu} zC-#R=LCJwUsAk0g^0|JUX<_5GNV~fIsQ=2D>Yq)H-Z-D*hqlwgN$Yk|BS|ipyf!Mb zU`L%Wl}g>wCywssC(gg#8~-6}S|nL5a7^=jt~!1bS43Q;1hzj5R|RS50y3ypl)le~ zvO+_gGxt=P*!vlnUaodm|^8>FqchzC^dj;5WmV0@jmWJ zrB<{$xb|Lrc%3?^qK1IA@8sf0{rlM(roPrB(e(hwY#6G}V(|R9vvTf3JZIf;clN#XwQ3jQZkFaE3hLF2;gCMDMDD~a0m87 zH0@St-uABA5gU`Sc;>(Q^w`#C`v$r2O{nvy^dok6{c!@srfs#X=tW zq)pOxFQNp~!TKg=xO%|-zkcPvjWx)LMAh_?92IP;-2fQ#ZyfPubiR^L(o0H1zs5@= zcU>L^vBL4bf7AFIW2QjpiB&MVEkD~C{~K+bJyT>(v4d%!R~#cbZ~Guq3olo;SeWW1 zFUgotgV?aPNO^g>6z#-e%Yiw>dI%wNzBb;0)? zCm?^|;>qWstU8#Ad={HEPDwx6|F}-9PBX&z!%^Qt%0x=hl~5+9PHCF1;-PM8(Dlt_ zW*lce1(A5|I$YK$)*IpE#ft!Qo}KN%IBQT4P>=eWpJ`t1ZX!D<2oZa>+e5|C0@c6^%Eo@xpp+0-1&%n`r;O;DKENW`~Q^?>}Pdb`Rl7 z0+1m0ozdMW+z-dDm1*!_b>*t}w538N)9Bqu4b7SkK-8+qm}5GZlfWhFRdm^>rZGM9`v+Y{EK3N4BIq zhU*sn&NwhbM*f=eh|=?1gqeNC{9Q50?!^XGTeleF-Rae@do>ojg(FEOAEVE3%lC5Z zCqnNy2%l_YHVwo}#=cg)K_#g}|Nj?9-zu(w0>;)PZ7TCOsR#m8o+7C38!_)NnK*P# zq<7;EeW~h_ZL=FExO;M(uB5@?AtpP~`sGs7j+9yQx6q2?WjHHv^`CqPL4>y7vV|m# zvZVFYVs7J}56<;)K#PAtaDu(OSVc~dROY##3QzmbjX|&d6xSHf9#QK{I6p*#fH`w9F&4 zf3Z2 z1`jTdjss*_&s?>9*NKIHd|nMa?D zCcOZ;libJh6H&+1Ufoc%wp`=m`T_`+(%qC$;tgYu;W!GNQJ8FH>~5}dqWVdm;n-S$ znho|(bs(;?nW{IsN9;t?!=jBby)R9B*3DMqf>nd~!ZXvGji{mxYp0GbBs5Yju$1qK z^Zsdk9?NzKlhJ?|yfUnRIdG2hKl$gjGD44x0H?~IPJRej!(sKUhS2Hb_$w^dr4BsY z`HBW6OlImT{SiHhIqHKEv4iOaas(-_2ckL^>6AEVOnKQx6OfGhwAC^Y%gFT?uy{AQ z4-qwU zIBj>@-$taA4C#HZ3KQNB`H+K{b5WVTCP z)>5V}RX#uQ;gL=qjn4Ak*A&Y_tjqVoB{72JZhGwRg2xy-KakSW1@T9_0rU2fs=^nd z+Jhx-|ME9Tzpu#vTVD3x1k|}en6Kn7yR^_K^wFT?5>xjv*#y9!G_Es~VDHd%)DZdi?H576cW{J1Za5T0sKCDac{Ol`{vil7eTk;^zi^vu zv~ez-Jkxj#1e`r*8<@id9)uD79C-JyLJw%6c~$hjUeS&Xw`g$%k2m>^faD(>+0fSm zXQxZU)VQt+c7t`DwW_sjT>nar5OAc0vy?iCq%It<|6;yg^d#}?kH>XsV#!g9FQjIN z5Wk;Gbc>Q*9s&;6*ae+DUa9t5I-JrcM|^PoNrjz~=CqxJO%lnEx+0D$b~tiJRc7^l zAM#88L^5K#gBZRmnK2>K%ta|(PJZ49Uia@@^by2+Khv!gCae~uUb zr5J7tr+nbD0%Xj7*DmTh$jq6r*TaHSSP6j8PLYDuVxOqZ#Dk_NNS)G0OS69lz_FN~ zzEOSslRolu#O6!KMNkoe?DdYvSN`vR&7!$XSggD1M-hpPB49N;E?xaL#8S1#DsGwZ zQH$3y98}cIAcVH|sS8mguDY*o5x?;w>V}imG^o@BYh1O0|#g!*T>==$hU# z&3^N_zhn$(O2jp8T=Oh_CJELPr_#3h5DxM=9WIB3>W(t>Sy1U6B81A1KtjSk)eU$1 zvW17g6(`?_S!KToET~s#%zVaojETm>Qd~=h+X6^Y9K#(s+OEZ@eM1<^x$(-SiNjHa z&4q491|YbY;mpvWO!^k9E|Iiv-I&OVR{;4*u! zjX0-ayB{^**pT5N2jL61BtF_%PeNDH>0Jg|$Z7Csfnx>@TYr+8>QyuxsM+m;KM4RA zE{~Ex)@Ulfu5*j6P6s(~LS)4JwoDA=>cl>CT3MsWLd67FnK{d7LK+D?P`0p6}K*u zjQ_z0MwJ=3W_y9G&t(e~$ec0^SVx~Q_tmr1NgjG7WXmTsj7h5eFpH##C5573lC8PK z{^2L(!ldR^v;!2L^Hrns3(;U9e!KH9H!4vN9=fIVjTPI z5luS7RV_-*Won?^`USuh^e$DcvCgt5yo=OE6hrZ5+4^_a3^Uej{Br^HK3Pl7ift>klv{q91!Zad>sea`f?L zjxn0_L-&n=-A!HM_;n~4Le0)5$;P9Ng>17nFBwN3e;ePwShMoH?Yv;)lQo(+Fr`n| zL6yYYBBZTx)at|B!hc_A*DYC4YyBfQnBkKrtJl1KM7~2FHg~V#=Y>>AO3m*Vx>3W4 zE9Q;vv>&cCCG*tEw%=>uDR~KU6?$&%%hUa-PnpnL>2izXjWsC$H1qT`Rv(`f5@MO& z%%rW@McN>U{U)15=G5s;UP|wc%#Ds%$fHz;_sxxSp+aj|WV(=v^n7w4z5d5c)HsLS zR{IKErPCpPS?Q|jtC%VbtrT>F-Xt}rRlF?$1*TD+<_O3aG9w3o7(^J)rK4}-b$~zh zIJjpNLOB!?Ai4M`4SA-oUBuD~CGpWKa-|h6^J!5sVlN;$>1^Jcu-;8Mi*uL<%JKI@ z@St{e=Ds3($SkUw-EMyJ#d`g;rvk%+r`FE;H4=y^Fk6L!()SSFgl)N#R>UYADg;#( zLlfF5y#Q!W4cA^<)qK8db1o&P6i?U_9k)q^W$y{P;_l-Ulscr!V9exHB4}K-A$Asu z5siZWeA=)1{Dq;jdf(@ET8R2V=*_K|penG&Oa*TX(eKJ*3JKMHU?7N?JzR^=4@w~i-$!}>9Rng%$l@Hp@M^ynQ>47;pxby$}KS6H(UrXx63ogS&7ih7(KWeI)R{M3daud&4Idt!?fx zo9xH_DfQajjJ5aTt?*>X1yUNS=8;Qh@B?U^`ML$aA2wzgY5xPInF}>4gU)=T z+CL`Pm(pysVB2*}VB*@uPz`w0qzfELeN7*5XK4Ugs-YryqNS2hPl6;F9nDO=+VqMtx#tFax(w}-B%^pD~+l<&j^!;ASXL3tfPnDb-);Frdw2pT;;c+BEQq7JyG zd_YqW&QrSu`ehJKap)4wU$$*O{*C8)I32b3|I97K49A90fA!X@oA)6VQ}YysoR#s$QHBPNf%uVZhb$hh~G5)qiJqlp`;4{md-XYjXp$5oQHiL%pcE>$n_73>4`skpf;u?B+n@j z%h5a_k|jVIYnb|D53cjUcsr_e?5hql=XL#J@O;dNcQ>rFoj&XQC<7;Ot(@*xC1Uos z*Q(C`b6CHpA??HV-%->(M^MD{Jb}z~m%nibnWBJ@Q0E*5sjb$m2n(m_s`s6|cVbQU&n?M^LM3QehDurbG@_Ecy572@H;f95LZ8(P7GoQl&mC@iD) z(afBkCaI)SJ)rNqv49%@t;bLipHVRKO?)M1|9coAU@|0MC321+v@F!iYnjjpx2^U$ zU7t&w8>JC4`zOv%#YFm7{M1VV3)aiebtDNCx6%`+pXSpM9Jcd0)_&g+JCoPosMQzs z8`X}!qK%h@~?pMia48NTTdFFpp*bCJmolqQPg@^8976z;XV zd8CS>1L8l7R>Il}rIS>)fPNDuoK!3{FU=!p6l0^@=(NW=n+f_QmYp(%U&~l&kE32aD_qztv{EB1K;p~X5&5Mbwa@13CRjHqJVu8YSYY1Zlfmwp+Kx%DZ&s_qY3o7vLrpJ5 z`Zh(5eOrJD5Gf1WujnZoI&^&lJkzQCgc+x>Px5s?T}b>T(DpuV!SPkr`N@?K*%)8; z*ZsR{F7H`0t{G2V*JMhdOm0_dQ|-Ipl^+``RT{E+9DXPZ7J|b7C;bf+1d8zU$12zf z&xfFh7w4lcpPg|eyh*dh>H4H;uL+3+Z|3f+-BnI{A4zZ4kiv*>nAVaRMYb4FsAV#gqlTL{w_zHs^RWi^F`IIolVt~sygQg0xo@cQ1DS) zNq7;{7#<3-^_ts2JfFv@;|8;nKjH1euhp|k^a$mxwYKR{!QmH{H9u?pF8gQwUHZQV zX8ptvUTxf?o-V=I%FreojQ(dwejI^8RjeCi>ijfQe}w*x$q*+KvgqQ41^xMDrLZ^m zlZZLcXDeDh(18d#gV3(EQlC0$cuHczHQL-X2AeC;Cv1m>a=m>V>lTfu_j`=$)R#Ex z@b;^l@&}*9vBiL}b}3GSt|>B2@if)gpSjYeIXiL(xZ^yiS|?|2_BRRfq1h(syzBpxG zd(;~A-e;3;TKlwNS)T9^`~bq#{ectkCiEmkU*hGJCC;B77Wt$Pge~up21PMvTmSQr z;7+P$BY%iOH1DzDJoq}rf!t~iO17udjOYm~2vU)2}nxQLn)g9BrAOoB~D5YSx zz?2o_z;K)-ia!|}hxQrW{uzuXuE-9Wz4MF)r!=iI^f^!~ z$mf`;YL(B3TZIt3_oQsT%6rXW`@?)&N8{hiv0SXdIj&67Fq`DqM(oFCt~yhWV?W%tF9Drd58)QlTN_w4cn?9(jbs-UiHu-MW>nb{ zPGcRxDAa-u-duNf}8h|Q>0YozMN`Q~oLVe(U*6^#V`jJ}_i zv0_8<6c^=*FzbjI>)czzv(jbNCmk^D&f2Ohr5HpoewXD`e9XS_4POpGO{3TouIRyG zAvc;j4C~LI!_J zmp2~oc+Tbphv=_al)q>tWgRzmA^*V{ zyp&eVQY^>CE;En%)*+KDUXP#GuyEAnHE%iri9C=G7fkv}5uS>TXk(`TX<~DMmAoc+ zS4{D_6CqG1d?nh5p7{@0Ut=TCZy}m?4bTI2WYRF?eiRukKj%81sLl?tg z$ML94FA?=bY}@dVmDqWcK!vgjD;>QJd$Omx3_!W7tY=S~Ya0HV(L9z1MSybAO(HGL;o=Skagkm0O|%l>A#A6xotppjzHPRqD8r<+d&%!}Dj-512qRo5()A879Xrq-C_ zdZ4#^{buO7$^x07|4zWwdZKwkc}=~l%mWI;ys1y_5M;F(!PXTss&v$#Fc~S16Y^)l zu&@~_esxi5W{)cl7bjDZsKM-0_cQ0dH+qjLMCpJ zWlPF)EWD^j|MLE4dnYh`+rhRk#JZUgV{+<&BDGsj#{uX5KPS2?e~|RN|D@Yj{YzMD z5sWW|qL7Ve}!3stF=INkGlD8H+G929E-Wqe}BnXVQgP^4S!EL%K@TP(om zCV#@AAL=IBD#?}#*e!M2v^6z}QuY@{qI4Xl78DMC>S8t{daY>iu_dq+5niSs&nun)vs+YP#5`odRWgnKs4~mnQnrQ$7;op0VV75w=p|$e^aEegw;F2 z6}(~yi72**h3Xh}YWoeg@vF2=3BQNUnQ_&<;>YVc8V@wHfK>S2y-f1ff{<;<)e1xbB2yM3FL@yPn(Jj`(pHeX#*mL)iD< zRbcv{h=^gi2(6}_N`y2uYCHO<1B)N9auyR;RQ9983EKNn+?HaWEQpZ}%uvmMk- z&Pd$0Z}*RxHid!VOcTC^9wR@w0|BBQo3-WXSvTNt`b5za`0r5{(Wl4vQ-{|U_vuBS zQQv1zis7b_Oa%0qi|3CwIKMFKFr)6ZH`|(|ON!q&Q&qZ|)_m@j&x0@L?)+_uu`jFW zEjhe4+`u9Jp+ORa`hhS2LaH^3>%6o4)h_^Q?H?R&5!kKkk(Hq=p`X}UZiyc+=AY(Z zkmIs_)L;;BcR%euz1sl9A`OrXOqfb1H_FV&J;i!pqnEdn#BKM%wUBN#{Lmxmx#&mwG)eL8PbAUc)SSL+$RvR%2sZrlS=1(Y@z z<{V$PCPGg=B?}~B?wQE-Hwq4o-Ih@sT3#QYGkIjaDL{tTl_18k{k%0Do|Ew^MH;P` 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�heJmpP&T3V!|K2b!%kHr@!P;?)eXQ;J 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

C3RBPYT6|n2wAzs3{+KP` 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 O00K`}KbLh*2~7Z4l%k*j diff --git a/_versions/2.7/guides/images/amqp-qs-app-screenshot.png b/_versions/2.7/guides/images/amqp-qs-app-screenshot.png deleted file mode 100644 index 864b952a78289cc84ea0de601497ee04e751253a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77603 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%0DiXR zCVX>Tu0M&jb4|4QBQJ4Y_w-35Eaxw7c$N4<_dYEO{7c+b75p3g3q}89A7CBlyqf!u zPcR56`;77oo+O8lC;SiiZx0wlc?N<~)B67=|4)_yAHdKOY@qi)KEYG$*Uo^xF!tBd z;@?7nVF;iZ*k*NE8e9EGQ?R6d(+6k^yvY z1t92#Q|BG6LpTN@+pTd_eg5`j_>tXu;}2LQ${lbA=)m^|sk@^no!z9yJCt(ZJ-1^r zaSLGbWUdkW;`P?~?;17hQ{*j|fA$43u2e4o7}jtDP=&FyzpJdg8DYk|@8+}sD*0n- z%XoLpR%j>vG?&#C1+*FfiZGjpu#ni%pWD*#zureDuWjWSuiuHf1s3S`5AOj7!un#3 z*T3!tpaNsYC&?4LJRUzEM!r^_LVdS#1Gwuz{dc1^jyV*Jf3+rg924bo0MI?LP(Nf` zT5-d8Rmm7?Ux8Oi3wP%=b2Ibj)%%7E*RMB(B`pu+Sw)A6oO;rIHpCX#?L_y1+~VA4 zUZ16X@eL6T_sSd^yD5%(*maXF?D7i0akb$G(ZS+S_xh2vl7@D{k|CNcB}IekP{G8u z0hFf!lkDvw`^Rud2QJ+G{_loVgV_90af$<^w$6euCzDFnGSOck*)!@Yiz%l4phcfG7a{hq!NE z1MBB|`?Ub1FIom@m{h$x;E?3;hTmCfcu()klGkf4Z7>iX-SdBSBJya(_%90~p~NNc zl`EI`FLtSQ{wVg7=g)w8`h+OZvORx)cd?=EzRE;b*Es`rYTB)R%|Z9qOpX@lE$$tn z)g`_w+nr%&mffBE=?`~&4 z-#jR3CU-pzd#Ed(MS0Jz)H|o`7}<;)ihBWsdJeD&h<4NgXsmwh=@D4cw58_2;YTbj z3Y^;r4&LjyHSNkcDCC2gg2uHDD5MT5(x@}iu;NZ)NhWRt0+$6w8D46Rpy*qwqD=1A5jEoI;fYIFw zipiE&Sd}x z%egnM(3Fxr#+^rL1TB4niiEXSUw2T0%QfMlKMHK_nfzTQPjo7P{9&(0-QzT&!S5z# zMf=RGA}_Bb4s4SA2E3b_FIurB%e(;#$Ao8#=#X34T}_I}d$Mi(&%~N=^k;X=^sHry zeSqJWZcYFl>HgIo2JJ=NfG?h<^GYtOgcWuzs6r0?H|^OsMOR=X^5RX_0q|d(3+zQm zpLCB>H#nt9&E95;81$2)@j-QNL9AB{?vf}MKt*aq8c7N7E*VClH*}|g4?zN4#UFh^ z+ULNgEc*a+b$1+Ye>C-D?I|1cqq-V|qnaxKY_48j05(h>q&)tu3SjwkY`Baa{RT9K zq7wyH^A!x)srHn)-S>HR=9r^6^ggmtTstC}`6g@Jzy840PeeJw|L=Fs$*XcL28&8O_if7NOYq(#9 zg~GboVC!TpfTYs!XB7JL&Kz7PdA9WJ z{6`gt{P2m1jNW>80T||Zp!M1DIB1@AG`z+9cYruBT^XUVGgbj;+5d#TB9AtyDrNpO zABJz9xeYWf>;h=ea&N%78c8yDsjf(~EAASyk!C1RFWsUD?3o1DgBo{2oS&(H(ZJOB z{DX|v%)!*=(@_|)bUPBVej5xh}Ijk zQx$GgMC3x=^(&|u=;`qpsVl&Adu7Da@wVE0tS=_6{0QxPJ9@9=GD#HM33}%2-*sVL zFYmaN+1$fl;smbJK{D-oz;w0F@xKRoR2gjl*`hsa=bS?PrVCGCY)K@IWv2i(Lz`YY zOs@;vpu~$NDns5RkIepvZ@15WdVe*csb9QO;>%S_z7SqReJ-*g|_zQCr_mXV5U=UvA@mS0IN#+MaAqO(xLN{ zc#(`=wQLv{fP2-r(n%r_eiC=2|Dt39%wrdg>lT*7bbsCLxYT8(?)+2%Z-``q%hNjN z?vp?JPRImqH}nOgx6X>WO*}?FG90SkHjIOAAS*{x#)W0J?fnCTO2nZ-po6jlsVLb6 z*4m`rfGA$Qd_4e27YPf9&E77GC12=*k^al*sZ-oP4qv@{%DhRH_}lM^lEBN{PVvLC zHH~ZBtPzaQh_4)Dx**QnfSVP&z*P``#TN9-f3#KPHaeC)H$UKmH6N898|tG#iKrbhDRdE|5Omo z?3{|&i$vox1?>7-dHN0zM&5og`60&3n5o!~A-zPweKqM!^6u~mb2)Jg=RvrBWRfC? z@#!(~!eK+YFd->LvLZjc%Rnu`*ro+Fg(nuv8)r1(IaZ#XUAu!ufG@zWd8l;26m>Y2 zEr55Erb<+h$|Sezd8S0LgY6f!7r3+v<&vNN@@uE};ReIbgHwW>qk6R#7*=HtEmp$Y zA3IMGr32>S!TQfs#H34_cusHz8ScB^e+fBx#0SxnlKccGoJww^+5b?d`w?G7BZmE! zRb#u1ob~5$HwO0YAfYrq=<_5_|8#1^P`nXQPh^A&C4J~$jOeWI#(UPBGOu0q7T^}w zo~bL;tO|-zp!A~(cLwojJ9B~dc2=Eh6xi++ydgU_a^V7}d$;AdB`i2b6WXpe;xfC# zB7=QR&Qtqf8ZrFcncaNG=g7o89;cYF_+kb=0R?D(ER%F7ToO%jwWEsbWsy|%LNkxg zfOeeIOhPr6W*2h^Xq{xGE2J}1o_#%mZvKRNqq`Q3ES#gw)*&#ebK*VU$5s*&KG>Yx zxdHtzv`M}q{P@bsPURQB^5tXRf$`S@wtFPwq3>~?2gf^4VY#jw#Y-tjCs$MGXG%lc zYG*ED)nZbg1UlFC7?;>WVUrPt_kd;P9bcp{(V1NMEi@o;i#Q?7&pK4@54L`se7fK_ zKB><9(qz&h+7*h9Z@i^{+sR{oq6AH+zH9f+He2@5}ndZ3^Ld=Tuds@Dy4udS!RIMF1_rr6vDOY3H zsU-(*&SDsxaFM)aVH8^bdlUh$(xko<2X5bmjbYkP8(J{%~OXWo;KVR>Q zPHRSQTI51Ngn34I@Ly*i+cix^h>8ukGgUJ7$v>5f)po@S5ePB5c^)oCQsheuS6(kHvACp~B$kO& zD1^CYEs=(MVtj%NIWR0@f53WP_XK(RX;XRqcU{B?lEs`bb!6pG{){rwVqFVKj|^R< zL-P?z&92wzhkfkKsT8J-<@Gj#tZKpq^fx|LkYhSX3>?MMfgf1LvYWB!^AQ?TNxO27 z6t+kvJ7g*wuB)_ajWE`!Pr=%ssl*Y~!&%UY(Y!&$^APG*oZQP#Am(Zo%tlAQHd_~@ zZR^(LB{WuxCKb}50}cv0M;h(6U_M3g9g^QOaZ>R+?C^JNT^K|md!_w$3!4XhW%y|5 zy3fn}uFY~p!~)Q@C)KY_EQ(Itz6q_vtb^=q*G>ROpx<%Wl4C5{k2Qxu0@z!FbRBTZ zw6XKZa0TE!@XTCg1z&0-Nv%Psy!QPh|4#T+5=|N6q};+OLdGnYVvb^Ewns}h(%yH+ zkUY!63^@ee>89lTjIPU;2xE_&s{)ZI(`N%&{I3)hxvcKGJrwOQjL8o?O~1l}N;lDL zwfNNIeo6svEN{B6!LP9ivH~#*(H9I{vm3mC)3aJON)w~&wzC~eV!dncZeV#QJV7mp-3?la;G%rm{iU*+ zpv8p@4fZksl{rFO!4nO5(W_S=P-o0X9`O=#+r)b;6bA8>*^j2;v`<8R^_eHwYb=eX z8JO0Uo(Qj|wmB8c6sqP+tHfp!%h_d#)c_vS4a5G!*BNp za3N@TTcE`^JFPEzXS{lkKH&GHkI*>$AgD;*Eu^o+iZ*vW4xW0VxzOQFb=TLIu4*Wh z^Gn3}BffQb_oRGCycQV49F|}5WgOCEP`HD9Dd_y^1d#w4lP5Iy*N{!)4{^Qqb0#Ev zjP{`OX|AIJ-&miA%$&YE&x7x!^7K_my_z14O#Cjk-?aja(Z1fs|5 zZ+QqqVk*w9n#M#qmC5X;I1AlXG^U@vSBuvu^1r;$qTpqwV)#h>%uq-rKCL`9YT9vz z7gK!9;rphyNe|{#=Vb|DN1X?r}|~s8Y(Ay z%_0|F-}7gibMaeAkKNfb!Ah&_i z!8vE(EdBZ3Q?XDJR<>w`A83LW%IhK@=&eoe$1DVnMolt11?LbypLSPm3}rjU&@B!P z+afj71?C}_PuZ4igeW*kS^Ra?%=A$+UwO#;C_b;zcKzb!*2Z-)+Izi= zbn7dj?e9h__bCx|x`~_4Ctc7Le{kM3pGm8!G{neY!1spffiw=i#li7W zHrUrrKl7Id>AM&2Omv^DJk{iP@S{jehUi3!4te_y9LO(KtxzExX;=E9ub3pwpI3eQ z6QeVk92BYJ61j^gW%}lHlvxT1VyAEW!p|0tmGkU)`L8W;amB-~Z=+kzYM5LGHu-$< z7*ld_Ej1)}V4RXJ?PpZF1uQ**w~07U2ogVa|GDcCXx|l7SEkM+HSb+Ya;Jaw#EdIj z#W>QV4Hs(l=>&X%X29N%Gk^t)8U^2Cfx2QOaIa+vDPs9^+Ft70GfafX-HnnFzc&p% zm8e7G`x}`WahB9PngstlN9M|E&62V$aL`&V8CDi&r4rPGB*D&cNM&3m8)W`V`$ld;WZAtaM}aC%GPu;OmyajQir#wk{;rR2+VfUl95Skt6!Hw(Xx4W zLyoLk@;6_Zl&4Sl|HVkozfSTBco-RKgpn4rGdtjDZRA+n#^2>vo`lfoJrZBu-IM`O z#55e5?@pB;IU;c(LHduplMc-%HRyY6)^$WP_s-IVU3tVhx=V!hk$uS5E?Ac3Nn+Ab z#ke>@pES_ecdJ^%ijn-Qv|YV#XiHsP-VC@&E+D1#nwu02_(f4{8V!(?63gkfG{xVDybqlCz|P&H9nSaXm$PmG*Q47WoLc*N z^bgCIBazNSNk{z{NnO8lP16V7{J0^EFx$=$O=kVw%GiT;7Asvh>Hi~d!SjqXq&Vkj zG=XV@D3@;(tkCstt=Sx*5AQ1UeQEAX*vZE`6_?rE`(AJ{Gxsyc4DNxAC_4;k$2YvMHN^^G0bdqXan=e>VI)rSeT%a94B_SCsEVKaV zPv>uLhnMj+d$F!*6Zi0Bu0RAHYjgXmSMla#ZMKT5sYD74B4n3N%|Yd<^+aLcS~7uZ zY+~~A&>$a#>qHv8#6Gjz%%v6*fvMfw7mpfLz+&gf#F=QUu*wc<9aANUulhlBnDO}d z8_iWO#G_lRzf22aUYgvU=25U;TdTS>>2v*+uz=8)pM@0M?*<>SrsMwlfW@Yj(+Qzx zQf3N;8s&IU8#8uz{o1uEWA6)^5UtO18ScZ(!s6%`nOusEXNw^X-QKRz*{*K)qk5G4 zqcr>h(?;rtN7DL%^hf0z&fHU&E9#+A7t|GXqlWl$nphqW7GcGV`?-4x82pp)(D0v= zDXjQJP$DyyXLi&|;|zP2ruy+MGe03+FYpP9(~iIS-Ef*$ksz@+3QawOAm(n7ouHL3 zLEf?5z~pvoI_eMw@<&KRNqz}T?A-AQbp`3u7WJ@G;oWm%5C$k4n|5zl7I$f`C7UC@ z>^c^1*na(^Gu|#4@2lje$a5&_yyk_Zg|A0!i%el3>S-J9pNu*$J4!=AO#iT|1vi6Ji zyb2b87Yw^>2P2NT5-DjNKmb|wZ=~e#d^gSS#@E-*#iH_YuDTRsI zX!uh$t(g<;Pw3Hf;mi(4olYTsX90mv#*{|*rSU%sCDf3c&A)HVb;bZw7(*Y8gMUZw z2(%GGUy?i}inp_)COS<#B4)>s#&4c5#`U{fW?hXUAHSh=ZtWHDb9R&NCUfK(ZgD*B zc6>@*65#`u(@seW+cDY@{Zr0{jpJ!TS7k*A=TK3}KE94%Pr-;76WISg@+LryY8?K` zRmVr=O)7**g{2dpSllRfFgO{pS7X6-^&3avI2@;gVa&EAta&QzqkLKWfzG23D%EHf zG2lbn`>1mCKhU154=+nf%y-?PenTEdf2fIsZ(<0hFjM}(mMb+(PY2#q;5OKcS#3jp zT+fd>P*Rs>jgYh&wREL%ecAaU+r{Zk{~fANa_OR$A+C2o64u5PbxOgz*A=Y~R&;$I z(`?;Q-;#%KzNmW|jL}cJu6r-CE#Ex!c4ECt@G9J>6lSy@XnriD4gPle_)x;gb{eH)-zdSzrENgU!yu8M_PtRk2C`U){oDKO@JVcy9l`62m^R)R9 z1vXyax!pGbU7;OJ8Xt4=_-%LDDD)RRb_vrnMJ7nrg*fM>NUnEq5@iy_P?H`#CCeT| ze@q}Ny`Ywvt5Ya`x+FSBYBP>%ZWpeV*l#$OYy%og7cqW-%678ocIm}Ngu;RkJk)C? zn;0(l>QPJnL#Bd@wM zL1utTtepbHJx#O~HxP}ydMpi&x{Jhv?*zh6Aqh(rC;cKmzLY$V@H4t-KZ`!q3kpQn zM00*I9^AY5_SV|QI0Gg-0ISPw7CtjX5b&MJBzc2MOrFO7$PB!U?TtE`a%M2l(CvPS zQ2=(7#w);wGhJ`G9(RV?oI<2cM0_`FAJ8IXY_4?tl&C8umrRij9%aQwykb0ic#-gN zOfnCch??d*zu2K6N$k!iL*$?I+S>`oGZSwa-G$6CvLw4%P9Q?f+Hdb+ev>rd*od7a z$5s0n!c9(^$xhFiIgx&k2`{qEWM0fShR0cAtJ={OmPE{+V1L`Na9=gsgX*d-?~B?|sQ6c62P9Z|21Y^fR8OoCUqNubbWdY&ou|Q!!t@ z_77brgX|;}--Y&N?QALOVZSC)x!{@LhzhvfsWsVD#LtKvU^4*>>F(@czSc7FplixLtFe7_$TG z_)|@B4~|Fnbi$@fdw2vS*MwzFCcNj}TqA8HFOu^0GqRG-riQPNwOg*R2F|@7C32XO zGw%4(>-h}a|Ed}Fo$6iiwz8ecED99mn4yng(+*nh5R$X6;jg+ALNRAk!pp!YgcOt+ zs&)Q+dZeRf{3aTOFOlh5c zM|q{B@P8fUbjWYYJNkYjE-!XZEPG610XURbWs38A+;+b#EN#Tb1!6u2>_CD4(RgG$ z>PM-N^*;o8Qk5_ye5bGDypnsm2bpv`Ggp0ndbG#mKYfzY5nxw$TH(2C#rA$)4JrkjAj|9g( zlS$S4|AU?7oNEA} zSOgjcC;oi^aTHKb*ZTqeH_~T8U4hzr51W#IAHWlJTH>V!UH?`B)YgG3Na;NsH~RMh zj!~!OX;KyY?{-P)MU@jsTKZA*4eQNoS_#~(H&TRu0gQHlO7OY> z_(He=h?)PM`@`c_z7Ig&RdoUYBi?TTnfVFV4v__EJpKQ!1<>#KPqbZZZb63^Kz|3D zhnvcJ^~2RP*>(Tq*L}BjGPWZD-sVnT*QrpS0}#0xH*s?sDM+}Z?JRbI%|ECX$X`ax z0Z`(6AId5=l^lEr@b2at0KH5ZFOw#|IjPtSxOXx$1SRkS>EJmF$&;l0nT0#I3xL2D ziCuMRm`JA1q`$v>U!i{i(7!^l1J8k(Gyq!hRGb!DNPHK&-O^YvUPLFKw5vk}>Zc`E zC)j%B{U+xMP-;(6SDIzw?~mMpR5^LQ;q3Ag&H*|gHNV3HoM36{gp?l;ba#vL>@}~q zF;sBp81I|>4cb%^xGFmiUFFy=q0?|mQzZQ>3D+8Y`MKlA9~FTMp> zX#%+Y2#zhDDTWG(+e?3z^IaFnn7ZAyklHD6O8D-A(hT&bXF}+JMEOB|%Iqr3XNTT-JF|&TJUecAcSN(i!b47yz#IU50*U5 z(t#GP7)(=t|6m;sP;tE;NYDT^u%f(a?~+4Bz+0L+5VxY&e4N19XyloB?}(^K&1(R1 z&<3Uki75Ki(jW{}B>1OB!#;4WI^|NrwLb~!nE<6gZ0sIY6e9ix_&EsRItz{y$0D7y zqFzrt=W`T+47IxijDk_1a%2JbnmV8(>_O=!Z%}~k&pM7teAd0WUBR7#;@*f>HFm}T zs@MXNv9UZ5H8-vAkUTG+L#6hO(K*`HHl`q6Wv`bX0pN+;WtCv=G+%fRh=u1A>#kfI z&L1O|>F$971Fjo@4iTo7MdgjRHzx45`W5!cKNbkE7Co;uJcx?*KmNS7NPC)z{R46u zKh?Q{irl{YR08M-c1i+3H3^MSCZH|??XdB2Y~t=6U@AO8YXS266UKMPi3@u|0XT$E z+NO2EQg-Q20=0k_q93{}mV*YN_h~uJ<2ClXxklAVAPdo+aCQM0aYMsM+J2>We-sr! zRB6ob;tRy{*vLAdJRM5!14d}86Os6Xs5~~XaSkY~>B5BWZy%%ys4uZk2(*wps*VJn z<_H!BEk?(;`P+SW-ivTFX;dAItT$U1FkbJeV?!wi_lB9ra$D#tVc44}xPAfDt|+Tq z`V0KW7w&CT^JNV{x@-p6d%}-rPiTnAF7uysHs+pNo->D%cTN4+57GK}k*L8CDakO+ z9Cyjm@PrbhACO%(N}QlT_WY(ECDG)i8}vicQAHM1#6DJ4icD|aEl*Me#E8u<5&m%` z%2@eEdtMeyz?_J7XNq(IZYI4Hn9TUd>X)4Xg8>a_*f@1?V4;y*?7YodI@E(d$N;Lx4r;<=H$S8NUPU zMzL6|x9{{r?=%6q{oF#rL%&YwK(W*|&xh!f8^^c>?)#>XRK0Nmh}h0T;V z4;Vt@74u#F*GjN)3+8S?F!41o5F~aYj*AB_6I8B8siw8<*;pl{zcv9?0y54b3*z?# z`11y?=PeAh*SPF1VkWz*=B|dQ>L1fusWecjNqkE`Q;~Q$GfeKYE#O)qxy?2A>j3ak zO4gowK1>SqJ)bHtIuP*TgjKD1f@|=9`_lq`cL@X5F zxsPDob~?a>M}&Cradn|hcyeHOUDp6%Ag@{wE#pK`er>W0JQ zwh46WSd*W|dXJA}d9rVs90e(e7OIi>mA=WN-Sa7pdSd<2RzU%wl4(3NXwXUekTi|n z8xsA^TYos8zwxTiVIK-dWU&IXbKV=8pL7?s9eZA7lWEtZ1tx{EtD#&!Kj+eLN1QIg zo)HinUEt}2o)YF#dk2m+0fr1$O9auqwPXs$4JFhGtVr1sVy(oxIg&M8_hmLWEqIiw zeK_(ey6^)~$e~8VXZeu|OP(Y4Ej`M=nE%b+#_zI_)f&=!{h#l5sR#kIK80>wSJ z7B3Dh#a#jvcPJjLI4#AkxLfhyg&={z+4MQ@JJ0{?nK?7(!}-!_GVErP+3arizJAxu zAhY8}o*JfLDf+iSawlA3#&Q*TI!KGirJ=j4-6DkpXDdSn9TA87y-^a1R}!$`TFbeV z$e1w*~}*i6@Qs0L{mC)Cb(m z4ea6xauDY1Dydzo1mqZ+Vvz&dTW%Y5a;~?pnin}lf>Eg?HbYw4b`C?|aL2z)f4-m( zj!bUEd0VDx-NBPD2t3Em>BjEIYf)c@|sS9S%4EwzOp%j25 z;lGF6W`S70Br5g5RfGcHN)f8NX8%X^MI8SIy$gIqdbcOi?NBQF!f|p0>N@VZKbfCs zV|KJsM`ay}qJLGbWQ;rs>Q0Uvqjn-MXm*cn%xp*U8`phX7}o1Bbv^xVoZ=&Q2X`2F zP0N6&s4_RpAH13}(K&s)f#)q$`gH$x?ICc^hULjXqnH2Okz)eNB## zvz+`+mY9Ye%&yJlzSA;qv3u!Y;3a$MrSByThF@VULZq0J>7vpV82rPGF^dJX&vVL8 zeBuaMg-{+bqPAS^_x}w!bi!_|tJ9cEZS=5OQHYGQA|ZFc{_5H!)2`tOc1+-xm6x#X zbY62wG%avZ%t{_=v3;K{OjfQ+$oP}~#Z;;A)4W7B)Mvq!Ji&#PynVkmR1+n5e=bD$ z)n~3$lBC|4HH74oS5KQekuRJ&Iv?^AaZoS@zBRi-$p|KCudg1uSq20p9OL-Z5}R8& zW#jIbPx3_085hyUWXE^Xs4^twm)b{`LNsy`#HIOr-}KQJeG4(28aA$&0T0d?J%ZbIjDlV znfdKNH z{mo%fB>7dCi?X$SMR0=ueB0$CQv zVel7>VKzIfl+yfzA5btqn&n(%Fjfg#W4-+tS3eqNwI1w#4^SRWyv?2~Fqg65&7KP2 zSJsWyDu~;`BuT}^F`>?Kc_fxS>L8FYEKUZPMM=U#3rv2)ZF2rpRZmB1RU#d2w^-^y zj%AasM|Xl(iv3U3?zFJ}1_rvt;N!fn#e(C{+aOY^(B*e>n+|q-h!NLS^3fU}IT)r} z>x(a@qE9b}FtzXw0j^uS?iI)_E9RxbHgVEf*;*E5vNuW@*qcr__zUYt;&m{}xL7hp zoEJ9DfJDwL9$CZ%OANlajAf+J^tKUe+r@$=O?HVP)mi&!&Zifi2f8Q;tqjd5fm^c> zt^n5N9%eI@&r%te=fHjBK3_J)jsv;Xh%G*LmGBWk@#co!KKz?Zw>a>|yc<((0{xFJ z`WZ2B260T{k>ghlpTHt;htZmPKgUz;PwNz6J|tF4GmY})-s*yM%uX44(j4zq2MR`7 zB*mg+39zUXcEy5O2n!svQef9YpMo2+G{kpB(0dYGIdKZ--pU=OO!1d*(ns2o`}EOp zKWAKLyCo6QA%qdefBcnNFz7#{oSaDown4N1`FSzHvMQ^v!h2fFl5U#snBGjq>xuqz z;van0QYk!qMfCfo7)2lB&bJBPUcOFAPUJcdW|dj!(RwYQGZ%u5;4=v>ii0li{*ujv z$H)f4jVU=MI4ru+HM6i}-F}@%Ow9?D_J6n0XJ`AnXpU7hcbhbwt?e%r841(`-s4FEkHjW@{~?+1vyC}7_6k-R(Eb-O zw_l$aP^OoYXx%wCcUtn>+vHbMH`cS4xQN>Ha#CdL*R-`8B=)) ztp|hnVDVh({-3%Ft}fh*Q&>f6jpMt&O+lz54!3Ww&RnuiR^G|+znC)t&C@O zv^IwVNj?#Wn&><=_YH0`jyNFFlt z<1z+)hsiPlCR7kZ!gF$N7O5x9=y4-6fDiA)0tX?Ua7UdM{Bv<{-{G1=hIlg~h}UxG zeP~iyyT`W&NO>ZvR^Z4WvsOaWc@_vdrMvDjGS9~@vDLfmrV|{AAffP^O+j`rw!(Rx z$^N9sMGRWEj3s2!0^Wnv@;ZsQ1}qH4U7MVJ(mZI3C9}%L{i{3{6dn}cbi$Ys=JP){ z7v-x2%GM}51hsvx^hx}2X$XoV zCPnfn@0itA_GeZ@sos>1;qPIPgN5ZnnX%E3?ue{KrZ~yqIv-4(upqP_@|v`*kCxM2 zf@3#nk`6A_>a3u38ayN|%u9{S(5bi1Gd(nhL}~d6M|E8>9q6-r_Pnlu&miuao>2oc zCebnca1Om`Z!aM@W8Mn!9-nfMCT!j)FTToRX;khmo;L?QX+i4Jot(Qk=g4CjBJ~B0 zSbOYSTzB|L>?bU3oRhg-m}T3Tt=6(74ipk-b3RiL$)Xyuu5mP}exd(F$CSZRS%2zx zh~~>*!K^P|k$tO?{X@kER2yXd`MtMA*iPC)1hq;@1^t%zJRE^l_R9zVT^r0>o-OWu zo4!O8x<{-<0X1o!E6v;F&IMDn-x*w80dE<^Z=azs_HhFO+_!kdC$OHAkyPP$MlMpA zDV$*4s$B-+A0DP6eOYu(Nwb)+PvO^89lh*oD^x+uwNj>x@+xJv>ozIM- zL!ZljOyO)0UGK6!p31t#;|MAg^Q@$Ug)A}Vt3{dUMT~|63BNG^ygD8*C8Me3*tM`; z!!zMHRh$ZD(O~5*v0&Gn_E*t0_X%4h6U<^Xi!bk3Z-YZ{z-p6HPu^NRW@hR!Z|RZ9 zrhltM(T>t&8H{2-?BQvR`cVhJP4ZIEf@mHGy=j1hfU2c&c~Bo+YayBCz=AD%G<82J zK)|MlUH4b)qzlnr(A|NW;!uV^ z$qz18#2mpqcPm&YWjC~c@|%y>$IvJ?fr9RW)kC~eGhP)2Zp)w%603($LD8@=o9meS zrL~Zf;PF$6U03Irk1s@_9Pu-loKg%yr>Z{d14fZU(%p}~)$E%J6f*zZDie=}Ho`4c zWXmLGLqH?41zMSK_KInhSH*wsU#W9<)6HcsRe%D~q9}0R)$yCFe`xow9Cn|{p4UmOekBpcl=x5N5=ugmPw$ucAQ$Ar$(<@QazOs&89 zG$8FD@xF36Dhcn`O6*#0m$(bbTZ$4Wj*v|o!EW5npr~P_&|kKKVPIAKz53Pr|fKH`*v$q2t^2nFW6{f$LCMgRM)l} zjNXmOK0vc6F09z3ji}3PTLSMcd>&u`h7A}&<5{Usm#!TEvz&4_YI~PLddzE9lc)TJ znUCwjC=v)!gTZoWJk?naSvKOPld}Tm`dy^4;p9($Vm_YhTNVzNJGC!lgBRE`d}$|4 zZr!1djr?@*>T?f|XxggPH1?v{W>PEhn?=@l=%nhB>l{{y08+wcTp!rHTW)?rVtJv- zl~}mY_S;1(5+YQCSpts8Z|HP#6xTfq)92Xh^dL3kSy*zwAa5eJZMx6jEJ4UyfoQl> z29CZmC0Z&^V9HOdfZmA6kDB1Wd|8Uxq3m)#=P2n-&GME)V4w5KI($BL_}+#gtfC@}6duzIWRsC_fdwMpb3b-XjO@K~hWJhhVEf{;Fin&T8I`L97KE@zI z4RRvyhZ=V|LWgQ{ZyoMVNB-hzaNX9=dpvZ(JJ3^0Z?|#(1*RJ6TM;OGcB_miUQ&gD zvlTsKvyZws8f$y%N)?|!*x=oDTI<}oqG|GqYR4!0B9|T?Ws1wdYnCJ)Y@L~XeJ|Dw z`wWjaEe9w}nXGiO{;4rHIZ{A5$%mxLX@Op)TWQ#DUXYYxF+&I`aU%6D%db$MnMp`k zqgokQ6OCHw{T#8v1i87x3Uu3%t(0H(SM78h%|G^G)Id22%2%3^kIEcsEh< zx8PUaYAfPS{TUsaVq#*m7nt55AMS{cNnoM><0A@p&7=N#cL6Y~(3sGQIRd&)5))s$ ziG^Njf|tKqvEE$AlS3uC$u#*)-)grNUO!GB#^m%T`LzJ(1rdm8l;7mW*kyHuPxx!l z(7}oKG=~3>GD_ZT$XVa_(fD&8m*?DBG1%chgw{cp{nnF3W5V_@dX(Nt4KE`#gYUDUbk2!GvB+bUZbxk!6a8G7Vef=S&sww;yp$* zmAjK6*Tv&trr4fITJ8#UfAxnDY!of(#<4O`3D9rJ-V=0KfMLi0a!) zcZW1TIxS$l&^^T%VBrpZ39^#Dh-gKpJ=U|_ zJpUtQoO@F!GZ776^}0iH8rHmK7_p3?-(fYz3q`+Ba9DdX$x>7rQul(<6bEtn_+r?Z z8>XcuK8*-lW?qnod_`gOL_?v9062}94pkHapeu;lVj60dXjBuA$`Z*C-d)TodYMVI z*kF4T!t?jdwU&ZLsKGQNdV=Frt;7>fkXcL&!yhqJwDu}KB?kUs#mfn9?17KMPlkx1 zh^uiU{etyyUepf!Ko>#D6|P)THWs#a$~pV?cpinSy>;O1hHi|ruY*(a4wnGMrn?ru z(9!t&*!RTLx7nkE{PHvz-n{)jyo>a1kFM7}vEwZ($b+OFNxr?-9|z^=d;F4tq`nZ` z7S?|gyr;TlQ$0doIFOKhkid@XgT~}vv^AJ<&l+9g2*wCAdkw>h?=ECF=Jkvb>Ku=$G%pL^Vwh<9AZb)t&)9ckwur0H|!zU1U9OzN8N+J zDS50x8UQZXD`0%N{HS-ymwBcx$BFIZ> z64zK8#O zjRRP$%e|g?S-#B^Byqpxf6)mABuro8w=BfV;`?j@w2kgfhk0Qe9rrFw6NGN9I5!XM z=N^ULm=5>3?BaBsBH?qx3HOt266k!*LO#=LJoiP=Wp(-;NjVma5UV z6h1a&^DRD?=K39TtGv9UUdi>a$>LK>LdoU1lC#>uHfixwjwXkN2N<7YA-<3`!qB&8 z_`od=A7PSNK#ZWYI?&wJskBsixY}Y1WnH3s|H3UK{UE{~n&E{A>JKr=P$uE5%8HqJ zs1~f+j$M~>SynDOm{B3TWHu{;T3t`f&B zqN3{iZlkn4`#iQ7xNqg0MC>VitiGOHk$!L9#`&li|?+^J^gRsNqLcLHevX7yXZQfmBljBh)*O6xPzS}BG zt$5l~zsrHUe2xVYm*S5w|J614LUoo95UaP1japx{tqp6fR@Q~I+-JVYobYnk>;f2u zVkPPS#u~ue-A&7d5UZ92k^e(LP>sYLj29MO{vQ;E29lS^S$6dNZ;Yez6%x46^=caW zZw_QO86Y+)Sp^M^{~MS%7y^Ka+0^VR$bSP9uq}YNI2at&(f#jDYjp#V4NohZipu{+ zHpG!|g|A!v%*=l?AODXx_r9j14JDacuod%=o9{dE4{r6BxCXfC% zf!-^$*s@B}F&+JX4{fnu1AlxVn@5=HS+D@L|Mw7BR!YXK3j1{dL`TTb>fb};vbNZj z#3Az9vys*n75^S0m&FZfWcVF1WU%3w%Kx9&MZQq2I>z&N`mA58s)1GgXW7>nvr$rv zFCD(rzn=wG^`B+`U)@Ltk`Uy8|9@HvRQ>^mi)3{2y-DP9%UA^#&Lg)>h>B{eOxY zG}BtOy%RoD6)isiquq^uKxE(9Q2h#!5UiN^9lakyRyMFFyBvlg)BY86JoofEm2-Ds z)E>VT*%YxdQ|;Awj09os?o#jphdq|EK+9?JXWjl*=8_rZOi&2u6bbke;10Ji5?kdzdcQi_b<8y z9L6&Nz@YF^9FUlUFSB5kHb;1Xs)DP{>0;6P13wlJo#CejQXiUO9jLp1ogxt{ZEABy z`Ewm(BUXqk9+)-WSJs7&0Uyg;nxH>G6?83k{2{H`i}NUA^h5?Rf<}h0M>@2?fUy^w z7a(@1YWsofTswSIN37NN00eN}|3Hut8 z>f0$^+3Ogrd%&&s8pjXSKsUnGKR9Ux$u~(`+ykUd+TIt}IKJwGN=bK#oM>!9*$_r+ z)s4GPWbJtgKjAs=b4&lgk=T$B3M~83lJ!-nu~(E<@VK=SQBpz27F4&(S2zwKLk7z@ zliLws?2D&i9F{Q;)g83%dq8?Td}eFa@vebg?(Xyg9Js5E>{uYP*?cp=F22#81MJGA zkfS?mc&XS*zniV;)yDSuL`?lZt!V($I> z^Zmn@;L%I;3H*h)*lS?hMI=iD{KqzFuD(x{K<9L@DIX@&IvYTxggBoF0O-l)VC-Wb zAGpOP>sjO(f9|6O8DV5;M#K=3ID1EFl2)pl_Wc)g6Z1PB^QNi`Vs|f~7Xma}->y$9 zHv&gxb2_3Psf=eI;-B+V_!tb!&!wtI(qD#`?Gislon7*50xn(UgTh5x^Vd;Nw~=~tyG^7aUbv~Fo^uyTNR1kDHwHNxYm5yeD58<2 z5QXGlS#J;PHQ1ge%Yl|e5A`*&tdZ3dDt<8vxrr~YU_XAe$7bIA#!{@$$r}auH`>%C zUkl0M_7m!dt#9zkiAww-WkdLg+rCY1>erQHujW^vW#U>NKVITOWJcQle;tW;db6W>=iwt-4 znN=RcvxF~@#+i+Jypg9%0)-YC3JotA_Njk`m7O7FIQl~g(w#?6E{0%bOA|%OedVF^ zG6iucC!2x_4H%=yEZ#K+G;IlSS8I|LS?wUNggeyTonAI~bz~_&SA%xMJ(ES(tVaZU zLnM*dl3+tewaa1sWn!(jXCji(db)@XR$k^u&Ve)s zdi^iYv(%><{LE>TLy+eKE<|mN1su0T^jgp>t(`WcDyF&m7#mt39zyS~rh zuYvVJlhs3O!2|X;)2%5YR_RvsmfGw-97Mx!?-`&4{SbHXw=mvE@%35T?Acud^gxYG zLE)tX;HT*t*uNpXM}GZ8H_abMI|%_70VZP|0O0x}AZ2u_3Ar1utRnt?QEhVM78{%n z9Kf0M8&B}jvu0$^pp>Ne#dhhun!j@Q8|(Qw`xEgZ)1B9p%#6LX9K%w7lX)w)K7@-J z4NAw4zHil9g1y$YzC;R0Zl285Z4ai1bH^`%%Pw%fue%{JEQyV9DVSqzQ6IS()91oX zltUG>0g5F9a+5js*lC9?l0U!^)>MgSc3X`^MT|wIqo^RpH$p&(TahY#tRUoYLJiIS!i{=oKebJ-lh z4fdaFG=Ak|y#I4ExvJSni22jUZe;Phfy1t?LuJD`aJKbn;m7-tq!MbbCAiz0o{(}< z7*&j^s2|pipi*Yqa<2EYaSOtBQ2Qy?!%I?1_~v_Yeid8y zK1qf_)8Y>>wyV9DWdv``ULh?99$@M;4%2VLCN!D{Rm@m(LQ4bF_xeAV0T6DulU*Pp zrV$k{K%kW1MB?+;epQK|VYT^*h-ifYKjYFCg)S4oMYY4T9Wnop&2`7nK|;xb^U;U> z=4)w#dXnst<;k(8@|q1t0SFU3FYHKhx}v7RfRf4t#``_s^2EVM>~^3eKJwD~vF^j6 zDAm~1@@{LF!LrL>&{hrjhMpeDr6BN=922siror_W@Z zKpscSHY8q7TTQ zK`L%^l{S;YNocC3+~O0X8Uuysg`5}elG!J;U1sh(qyQ8A)SmP2r_ zYB^z;b_doPqX~wPCZ!%;%)4Km2ya*KSDVg2{5&adaij2sJ7FYzC;>paqb&q_H1dB^_x=e)`?_Iu|%aECb<{D zWx1j!eQ}Z=`vQ6-cQW)`H6IqKP|Y5PnwK-2L{=oz8?hKaYgG_YPb`d5mA)ksE3y<+ z4|gb%CV?oTr|4=EaEE2%>cf{lXuUxDaXtIVl0k!kJt&68t<|122%3=kmL_8wUmj!P zo1jk5WQn8`7{QQ5q@d|yn-%4dlU=At&B7f3fb9Aa9@T)Ad)GFW%c5_ukIq`vjds&f zb=`4_2O&dOI6kCC(Y0PE=0=deix2#yNt176izXioyf%D&@9KCw(H!Aghe}~br`U87 z!SQMN#8qkHWETDFFBNykE>ncyCbXDtx8y>jC8Cqz zrKKXbaWbi!XM6Q(L4~^Ech&PTWbF6Ik%cw zQcU!=?nn349xE~xGewP^PI$=$C?i&ifn!iEsY3w&PL9A(z~_~0Urf*$STB?dq{V*o z7fXg+Q~ja7(%R(tRKz)$exVZXUpWK2@_AB{2>HvfFqw4ePf1`oOoA_WUw$(&Cc*pT7IKs3*koq^1{~(VsVwB2-I6m? z9^0PCXVX(K29PY?(-alNm1uH({y9HLL+3P^OqKZB{+BNwLtpxwi+;KpeNr_c-eM8N z1b7Kww=E;_G?^U_0>%Qwk16ki=1{_^Cgilh7lM!AT}yp=irftgs>x@&GovW#gh$UN zSSze*P<9O|iQX~2(X^B}w1eEq{cUX-*ZT0j`k6=^w=(YV#|UuRV^FAGWUFQ2AMQV= z_HHj^EbRs~!|V7@3gTPF>q}xxsR-H0&3w~&66y7sDT0`+7Op7;nWVsbKuMB&Sh=>*_|M& zC_ZR)fvk_!B}e;bHaCX-49o0E#K^zNVKl;U3RRoBI%3CKtB&2wqR<->Qr(<&dPbTc zH~bth)YwqAsK)u49q}HtFQvCeR#ySF|SJUJ^XDXj=cq& zwDK=-accXw5j%Dwj4$~sHn{;qnwehi4LCUciE35)G+P&mm<-a1Et3)xp_gtW5Y5y2 zl2;5?dE}^xMCi)>?b1*R!ni(5_1wGF2+2(+M{-^}hlxsFDo~%kPGk>L&ak3?Y|7#dkC0=HMm-LZ4{J@00!RujxAn}zLf?PKD%@eyMZnU;FXx=&fZvWMDs zg1=U>vATzsDNJh!TERvF^eKO7KO4H^wx;59w3?l+%edbbc0>ty&RB{~^d^*WVZ>eJ z1@>beHDmDOBqx%$k>4A&z=VTYQ3}vu!i=QUKU5r70}%PNl)7m%bq+}L4^Kty2G%)y z8;N3CM+~tGK>@T#Sv?2J{D4J+_%26+Tbv#ODulLH!mhOLu&Gd`$l*O!N*%j`}jsq^qJ_yC|DhMu98KB!1BrZOlo;w)t5fml2 zCoZKqZS`lsYnw<@!a)axlEf%6)Nk+~L^0$VKx!Cw$we4Q2L`x^#x$97nX$HIzy4Z; zyGrRl-{xnTmsxz03ZEYL#*U?E@le}IQRP9<+;QotV z_RAS>Adgfz<1Yb9%JWUHg2STGeG=8m48IZtIy6c~mn{2R5@_(WoB4*Z|-6hHXrUDQG8c(3-4ut?ifj(OgE2KX!O zET8Jr?+NFMYeOL}`0w(2{8c$RS?RRAMg*s~n|pS*X|AOl^Y?<2VfI@L1q`38q;Nd~ zjrrdF(KBFARA{wI5E8x>QEdR~GjaN*pxc;h;lIN8KwGK(w*8Y|k12`mHrjnY{fPFc z-^`py)=wg(hy9|haQHZe(d;O51A40^Px}{LZFoRqXikBG)-%j;z$oEsV})eqFZ)gC zs_KZ_)Os$#IQgv+ILE^@26CPg!j9V?2V(GXW{BSSYr@i6%$P(w^vaawu1ARBWelnk zJi8|yQfhl0L0?_n^GxYovp5@w5T@65G!a5pKDU&-y`h~g*eshp^pjriJC_xQ@NYYe z4>Q*-E~*41FlGzVi8ziP%e(Lz%edHwdH1a7o_e;~`63NZ57RZu?B|?vU(*Jji*9`N z;q>Dr8JE&brL=bX%ZI%v>(w0Op@;DFdUYfPS5&kes}JdGSp}syz<4s93j4Lr6sfbm zci8DCHFVi2p4Q{oP?0^J%)|Al1Y43ruBtk9f@ms!8S-pD!18fzegHwAFQpuD%c z^@qtQssfAiKL?Ex1ESa&w7BIJ6HKLb1H#S6CNegx&4vvKB~PD;rn@hleRsMlZR5=Gj4IVyox}K`_wHo>d(T#9<7AK)>rXx=VMKgR>WfMFy4Ij_!v})k ze7g7o4SjScRvv;yO2RMUbklwBwV$5I9pTTI1Og9Bc^WOkQD>07Cp?|tg0nW6qV^>UipS9T4iU;dEW3sQV zVa?2nEv#-)$jfu``OKo;+({OPh)+&+qyL-v1D!%TC6UCkcbBJ9vovO}K%6W?^6~42 zWCWz4f)=2o8flMd>j@Qye#?g{wy-iRZOqk)i*BYl9EcgrCL8dtC-x%163cYM8P#&5?l&pzUedW?w6a)}TODrmzG@-wo?T5^`Fwp3f zr!o81;yE*Hd8J8K_)@Rxw;>$SOt)ed5lN%vsg4sJV-8%qk+1b$61-!?i-=HFpOlXl zIa~F~US0AIu$NQXDQUmw@|*u&Ar5BZ-5^lEq8yKKP15HDAM@l0VD(^a7&I`g2O`dH z(fX*%Q{U%tT||HM!Y(?1D6hinN*qTiW-oqv*NCh4rgBP`1%W=TVvSIJE)=N7lbD5+(&d)?@9o`p9a;qAwMiw033$ zk_X*h_BmouE6M9;Uuyga>mWRwB(}s9xZn;gJzf%#n8Ny=&iA46OSY9@gI%KDj*W)Q z)-gqu4Ss=jV2SLTw3?;O_ zhCUw1i_#oyHF;l3Lz+7|nivG#6I7!;E3YNF*@Y^qT#|4midD?+viInV@&09Nq5E2u{U#=gz7O+y@u>o_t5&A zHpjaeCmOdgde}~+YhClB*+yHkeiBNHJ7E>|k7^q>^?Tn+EYc z!Vh&^h!3TIa`-KV#N6gQOlQ&AWNAFfN)TjM%_JIK+g&qOmmtn+@(I!g&UpAA}M`b5bIJ5>3`m(1p3QKEUUKWP}pA9 z?soe5yx{R*ZAN=R7x_{he7!Q3A$&t`dONjH5E%R3Ad{#Eh!w}={9E0|{(!|}{AbY~ zb}y@Yyd1+%D*Etecam=E+FFG?@Aj#AMVQ-|B6!C8hvef&a;@M^I6^0Y!}D9m|gw9*D>!y`W1AGg2EWDB>P4i z8~bZVtRT#3G&{U|_QEzEU<>%)HW*MM6Y~E=)AP>QhlzgLO_UJ;EAc;1+G0E60!g_e zZgth{|85%)VFx24Y?Qk96aN)q&(Z+_`0VjJo8TOkTKG3T=ZHU6@PE;35;{KpFn1JUqG zJ|KEfTYCsXgo%GD^WS)Cx+eiRB)oytwz(DQH&{{9@SXhIpK$V;kvDU+6>nWW@Z)|!?7(R??oq<$iJVp!%z6N3nBTGxZ1#j00aA)Rb=N2@ z4=mwNAA?Nx zsm_?g(Sl?zqJSxVX)I*0*)mmHJV2{~Rt|6A*&AI?^T2>_ame?0f@A?w z0&5svE(QVjMC%hq#UiqWuYZuW5pKEy;snv&Hso~gzZwbNl76urp6CwY1O4$uWXnWO z+Svy1ww>sYJYaxILdF}(iXiJV8dZd?7BIg8J4&Fg#jz_ zLiQwlXeM`tE*&Or<_T$$`q#rA{s%?yBuTmhpo&9)McDO3wq&rr@9mZZq7q7uSIY6} zAAwp2t$%KW?G%R?ggX$(Ns}i;8>puLV+p2_7Lj8NR-rdMMM!F7x0n3Ta0RNfEv7I$ z&#in6%lb^?v8h~m4vc&;wweMr`+Lty?tQ*IAh@>|di?r2`BpFNGU)6owtz3R8%1HA z8;*=6-$$f1R6pr9#WfcXjJl2mzAl+APLCyzKVq4_29AYb+f0?$lUl2cN#}sq} zWFPi+jYztv4d~0D=`EjNlomw7CeI8%#DJ(kfs(stz#Hx;Oh!UFD#8?Kp?iQd|D=66 z1)nQmU*)M%OD~7>yPam9x4XQF`X7;ZsXg>CtrPKr0Pf-y25yFQFaY*c#OmDk(B9X! z0ep%is|v5i&V;p`P6RbYl+Bz7vRkC8f%Vc_uk(KFcrfCq<7#!K1F&AWt)bJL2J?0u zxWSM$CX?H*+B}w)R-1%0S;g?}2&V@I$oqvpWC(^P8k?mB0@{ES8-L(m_RI1nM#Vz_ zry2f4XnaPMfe$(Zn2C1L$;7zVE^#+pFNm;{8k|hbMrp-Pkatff3^(6cYLB?QVdU+I zxWFDl7S5AM>k2--zv!5CVcKR9Y*7mLnEeZ2Dj;VWyqFu4W~-o}W9r$aREfV|VT8w( zHe2-)PcmTWri+WOHY;s@Z+|^NSc-PTPXS?wl~=5T5okDP&PGVN%U6zLd=J;~<{s#* z@towlE&i<8DTq=pL9}!_ryzSS0_+JVDQ@EQ88E!stZ+s#WLLn*@Xc?^d$;>=X1zE`+>_dTMNvJuv#RLaO}5&o+6(j)7Iz|hV_--1tB=Rvw%(Xr(hq(NT0@si z?lKGSO-E=!nOzcwbx?4lNvYpOsi|_tjIYpT!pJSsUAfI`g!GJno2IG;km@@D-%$J}cM~s&{1b&+IeP9 z@H`{#QvE}dssbz{?&THG9^h{U>yuls5|Cnsb^v`erbCx_z9uz1hl5j<_)^0yNNk~A zg3)jYR#cqzS^O3%9FU+jR>$ZK9BGGyFM0k5BRQp~O@|n&ex>5HX-M@yo5%s*bG{}{ z_{lZ!QQ8Lv%wUcG3HP;V`exfgg9F{gmAsO*Y~Z|tgnRn5>Iap|)Cp!#R@blK145Z6 zVQfLjy!b-cZ*nk}{`kH`{GbA*@K;kY)@{fOLbLRS?GR*d12f_{(tJSTYRF)+WELZw z;b*F5?|k^5=d-s>%^g)mRQ+Hq_V|mwIu&~ztIm>h$VXL%A?*MXbqrUUSwZ?|b~&7It)TVpw3SC^1n;b3 ztjhK#c?o@#%!l!)0nEu%r@_b%0Q}Yl508L?BFfXMt7Kp&5fpeNNJ{B0Lb{Sn_`5_F z#@#XB%c-+?3TOj5sY>q{N!h>hr;SkZHYvzns;8&`r9JKi;MHL8Wd=HL^e^#6$JLnv zdbuc;@P|fiX(Il~@qdmYz(?>MLX}wjxjq+hXjM(_ zo{?c-h5$4#C9*BxRH*8gbB2$JrNTDVT*(IECtl5MsRbbY$Q%?8ppmJ5sNI#RV1FLs zR`7ro*x}BVUhm!4GFzHb5ns#w>_bUcUwF55RNTv9y!3OAo^*X{4^B@unG2b0jJUzL zRN~J;d+4GsLGQ*L^ofSO2eYVlxWn0QYnRpIBbbQ<-h)G{3A|)kq`NF=hris@>Ps&W zkAK=nLJdAFRkLezotKSr-j>72ItVgqF#v4Jwx12$3Nj-Y)Z7AkmbQ;QN=1!*0zE{m z++Itv*VWyCZySukwbk*t`=94NDLJ;>`X)`nwyOO4_;M1VJFf`NiT&2Yo!TxKM^$_U zgjzZG4aUi%K@CA)HX6KpMd|~HCo?fCpAmQS4-+GGPCIEusVClDw@%zfoNnL2A5~Gt zKbXpj%Tg8{Jl^cLeOG`TZmkxm-@5dxsZ&wNfaotN^9WxxUZW6tD%TCQ>0X`W> zpGb#0Ub$BWOgEb205j(b-pFiY81wsjxg!U5EHihUpYlsRANAk9H@q32`rn!sK@mIx z^h`ZA-0Gp#8iaj|ZlSIL$nkz0I_Z=%4eEi%?e;6h3KZy9J!E5qe)vL|w}C=25uFvU zEcC-Rm>V~TU~qBh)0oejy8*yo zegerZ$E(bx9Vu+Zp}Bq)lfOw{^yI^5_)B^&mLXvRc3c}}VHS@cCm!%6JiV&kqEXQV z_i5&y=eSUiI%|27fCny!prCy<^CzT5YgHBDT043J`hB}<%{!#U~1mKMflXF}k>>`{((T|Z4T$2%oiM!s5A z*=$}iOzUrF)d%jh%q0Zak3fuQ{H}<|`JbOm0fk&@qZYt7MBE)RGpCJ<%>z(V_6fH^W16UpO-7(S~UL@1tGvpk8zS}PVtJxWDg5-0!LO~To+pHq^4FO@0(U@?!r1rxtnI+~ z#DIoEGh=s7f$7WlE*3q{47hs)(_|mrPr0S=xS%IAADXQL4-D5@h1f(GqG*=roc&|i zSi9#J8`_k~dHt}39*~#wy;750apli2r&mc~_D^LL)(Vzz@>)WQ=rS&PV90w1#n0i1 zxT!k~Nd=ssHxC39ew8t|db9b?(XnwDsNduo;$^9Kh5Fe_lX)n?Q?r)z^^&NA(6pH+ z`fUJlXC#o~KFKZDH}Wos_w}N)*yybl5%p!eoJiKKjM@5br~kO8Cmmn)0`^N4i;)pS z3T~ILvIM9g<*vP8)z3KfIN|Ih8Q%&oO9^gY%v0SKO~z{a@{! z=|2?E*T4&j8e^}q6=O>gGm5cIF=NZVBvRHHqmZ4Dlx>E_zBiVP5h>eP6D7;oiEN`H zVQeGBDEp%qPtWuE_xgALg8R8I?mhRM@A;noZ>O2O28(cy|D;qF6wpmJ)zG6se3`*; zuxr2eAtOij^v)2lw*JgxnWKU(%Tv3HgPtw$&JwJ3OYvli<*6fqpSvwFxsd5z6FRw9 zlkbrYwbCs$Tfr1?Mdc_UwdJ$76id-ul&RT}D(<5D$^kg0g=K({ZIC5Z%vkQ;Z=cGY zlhj|>C_?q*fkPxL$X~MM^#g%@P()Y$_A`ZkhLB{xGegM@qGg`nRs{kL@^nFy1A>-c zoMDwB1Q;D~ksKRtcW09N8-O|)ALnGF;~kf(Mlf`kIJcKxIv>2F^(}`8Vj_|6>ilwC zkqmgw#0m7s#T3SA9BtUn?5!OSg7(9W>n(>4BV5O=^|7G)r~z{UqUOn4F@5!`%Zl!P z=9XxI=wXyty-Gr_gwGKOKN|bVo|5-ieL<7+Vo^;7#BUO#WxvP=kzyA{R&*!9NWajt zc`)UEB~-6@Ys%3OKy$(4U~lX2dnZmWb8V>w@?b(JEs{xTt(lA*LfE_Vo#$Z8{FeJ%s`dH6rbLr zOeV8nrDrg`j&T<*N;kh^e-aF)vxqpQ$gKk;g<==q!JjMRy!V}$eA3}04ZT7RQf}V5 z$+y1`UXKrd%PMEI9%F5Vk~#og8{W>{RSF>`xR=pgksnZPyBaXGB13^U)5lpim{yw4 z*6Z`3my6ifpYoh!&6FHP{fz#?lZO29n)tQCsoya$vWoasOy(8yOj8SgnJM&?o+K+@Nj9m64VtM6Rj#YE4%-QZ1SU!hO2{fl=qi8|v!U8MNpmXw zvAmgD<|qv8s*c%2mPB}&NTK)a6)qwy+Hnd&OM4|r0wX{DiegLVE}b_B=TJ?Q)jg_i z*$5KEk&z?qo%fxE4cX)Y_=w8itQ^=9!%k~ldgb+CIZ1pH-+&HVVgEE)Ao<56dS*Vj zO_7CXM@QaGKM^gQcq0Hi3C55`wk~uUd;8I3)v?Y=JFpFH)!5mRg!qz6ZCySV8e34# zGV#E+dAj~9f9ZiOb9R1@xT<%uL`v9s!vXO?0r^P%p z|AMzM=zY!Z9@>KUga~hnl0YKeVw#lG6X?Ht?g!K=!59B#N;7{?s=8Q5O%KWk?;$EY z{EPqUE7}%iTwMzMc-E-^(Dh5m*+CxoD*`W}D4_+`0}2rQ-YV%>{(yCi(u?3~nW8c^ z9}ASdWE0sy}wYSUp~*vJYh- zk6o0jCh`duKe*iRZSC^|Eo_q0JZV9WQictaf659NH}qo*Nune1n#hBYYYZVMP+h_M70QQ*{%y^62G0$7w{UM^#1 zH%xW8*Yo3joN&CtSgQHXT%#cdDdp|%X;F5%f1&sQ%^X@bw@?={&NG{9=UbNE<93Jp z&e%e#PwsLNk2)dJG|LUzr<7)Un@?60M#HIS(3J1D@aGtPsa?_wL@UY3je$D_e&)X^ zAIn3(BhUAZgDbACE7-FXMCRP|q?h7L&_x<|Ydv(L5UApcIZ!>MBBhD#73flmFXOV; zJWNU81k%}%rwce{fJGbKZ;|=ilpUzV|R1%)FJJmO`zV6 zv75LHPQxP|`CV+|jPteqPg*gVs)mB9gWkBW6$xv#vnMhtuTqisyy5;IUc%Lq0sz)a zxEZ0I(dL%m#!e;V<=>D;2!yR##ZkPx#Ud6y`9O^DQGDeN8iwwIRm#reDi&8NN@+$- zQaMvbgJq=1#o|hG;0?I@q!-j^(U%I~P>ZK3X-BT-WOQZ-c;F{|DVG4n7b zTDPVK4>kBV3^pO0TAySM>ubgrYHajQC;e(X${xuTp|2w)z}ny$u_`{ANTK{$=>y&( zfk#e}vb-Z&UDKI0!DE{#PX(Qv!;?VYxYA|EQlIT#1B1y6XHBb$q*yEY4py&OE$ZH#Y%`(79V`A?xy%qq1elWrJDZsV@$qOIyAaRK)}Tb(Qs0pD{RWQ8o48yM;YOh#Y z(R5g&A7FySLrBpx*$pB|Y>ZKqcel?A_{kZ((Ou8|Ac1^+9mo1dIe?pN;k{>Gt(WFi z(yP2bbu26p>pJjt7lf1gct)Vfb6H#LT|dNz{A(ZBgjAo{*0v-LIM3ZZEmJ9RhW+FD z%T(VVKfCIS8pTDlJ}n%87T@&zoEl)`R*QG2YNBNYEPBcz@+|DD5Z7*-6(X4dU8v$}M_h;U_w&wUCG_x1Jnxce}>iA%?s>M1RD?mU4 z7wJCxPJCaxyXzAyBjs=(3rTJlJV0CI6}W9*R#pDV0F5zL7*mG2Z24|}9Z<0tUPcyg zq#2F1mwpvz=zWewIVTlVR6BFj)a*)6ibwc=FL&bhq1239hmBI!1p8Z&iz zSl>L1CQOJ0o=ZvK|dQ z;EODCZ$#(0vz&_+#kfz7AO2X8;$c#2JS*iMCtL1rku&marAs}~)4g#^C?%gXz+MqO zHn#t*ap@Vh$;`JXKX1B_m7ghIm$7U)<2-|?U|}2dhCG!<|yu;vPX5xKPaLH zs6Y6Ek3C*3(~}%oOLg2cQ%C6%w76UJ^Sjp0j*R+Y>Vhs|MS*riD5yp1>e0~uSXM-2&cP~ z+pmDZu@w{c$DKO?tW*$xvQNDA7}NtHZPJ3vr^3a)X#$*gi#J!L`~gni_! zr9}BE+I1!dwXRoXu{Wl2WW{*g_#nJ8vx` zvBxcHaMQi$J3Ej&)FEWL9ll&u8Ikqfc)M~A66){ir^N7R=hk#FSSgIjomKJr6&>#_ z$eW36n`?N_(JuTs@TqEu0sWRhY~fzhfshxVd_`vJ=(l`aG>ZQ%1j+}C;P%=VkwZjg=7llP_KcPgH@}WBp{6#TZ^VpK z9A-$J+g6Frl(-M#$w;;JBW>npDcgX=`frCV*LbENNi=@=+-KuIFn=Xc;Jr__8mn$Ii2qoB{S^Uzg~kBJ=&8pk(|4iSDYs>9Rx9)yxoZ7d};f zWQ2mmspyPt3rx}inI2WiM%l>)2=ORr>!R&Y59xs^Cs3!ggunlgdx0bSor8<< zy^RKm=`C5$`Z3}-h+*L|xC60SF=T&F+x7{ou*h@IPgBD5*0Ob7dXpN{bnLV1WZu@U zFA>XaE(`W6kB!MO0k#r9xjk+Nxp`_}wg!BiPj23t8p)Z{WDIdcy4KqSAF6L$e^+jD!&S}m$7MZ2OsrfqT5}JlcnnVeKD#?S{U*W5rODU&X7%0_IFtpp zTu^wodn+Ym^wLpB;oAJ+$*#*$wF{B(kTRt=$#6je!;H3fh_|+UKeYi_7B3il4_sZ$ zc;vFrIz7Gk?Euc8?n{l=zyoa}cB>h0l!tm^d&}ioTMs!ttBpskC`DT^ybqd>I=*c7 z8xHWsc>T@$^oh0X;FrDmM_)`rgu+JMjp{Tz<3WFahE3{SO6dS!+9AT_XpFHfqn>%T z;jz46M8k3SX>!ne0g0 z;A)~*t)?87=Q&>87Yf!McsUU_y>Id1^J%!}>-EfuT>msRTrBWPdNqMF-J_XLn~?4h zEp#fdY9hcE@%kgu=lM08MrQi-isp&qFHN?ZS#`7U^bpszJEe1ew0D z9$)k*CtFp$z#x!t3RZsME{lbk4uZr(yP+dWBicUv1>B?worjVppxrIfNp zL!iL%boYUxu5;r;e3iH4g|d9hM1+`5N-%}Y4h~>SUVG2pj!CUz^T;p2 ze0qE9>;FS3tiTnzKh12YudV*q5Ae4ZFY@#VuuyXX*-HPD7E~zy^%!8{-Ij0uQwapH z9KjiMoTGcr|Ct2(|5^-kRLV+k{X;Isx&Kla;?b4<#DBs9wZ9I709t*m-9MDXLH94g z5f7q_#{AnL-SEg@K+T$&2p;)|di-~D|M|%^A2P=!^}-5$+IEf|Eq!fcWSN#j`2PS7 CQF9>x diff --git a/_versions/2.7/guides/images/amqp-qs-architecture.png b/_versions/2.7/guides/images/amqp-qs-architecture.png deleted file mode 100644 index a6bad5bfbe508c6c94379085116088509d7d2e0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177889 zcmb?jby(B;_m{W=A|Z-MgCHrQG>jDKZUG4;M@?#U%m5V_4GIiYHX25EDWx={K|q5g<5-!1 z=M2&J&k4_*2?w4b{@*#;`1fyrN%+^dYyN&GdQI@Zv+y1P&P}JlXPR)b1!4`Vy?bNJ4Fm5>N7L13awH+FL&pzVp{# zf9W+7Ke*d`=I!g3s$4f``D)LR=Y&{v6Bs_~%qt)b6MghHl&p-0@6lK3?&h!3%qKG@ zgLF51X7Y!OhG~OIdg~c`wVL+w@|Noj_Gr(M60@BlAeBEuNF93S|M{^09q|ihX`d|0 zKi?nXM5>uEzzLLS$LQM2jpylENc!I^#oiY!y$FyfPv#8@-v(n`GgY$J65JB5QisYvCi~p%c2l?Z@gLc917YHK)M0Pzp zbF6SEgV{rjYFr?dXS*6o1bC!C^T$Pg%}zX@m+YWQl`sKpNFLG~RrMqE$(!hPS?)tf zU(u(IndS;5s;lag%MbrWg#O8)%xWsC8T=N!xVPI}K>pSlB|6n))#Ptae7!~HQh1Gt zv!ZN5+ZjZKQa81O6<=;EtZMmS0Vpj1^hxTkD3w38^ zVl3Ib6U6XL|5q#hABDm+PGcraFK$~RxYbexpdZSGc_WvDtTTpJ6fmrW)Q%F6k4qbp zsA#nYtdg&m_|{^oYcSjFscK(L{jA+Vf64z*; zCI90yYvV$hhZa=B5xF*PvCpB`T`B{Wh~PFj`FshSuQnjrN90>r`uR5XTSNHT(YB~O7bFZCAT@Z=) z_KGj(PSYlog=ZD7)4+uTkn(3j3bk&$sp&k_#j z{v5oN6>9-}$H_;|>WPnXWO~@Ro5LKgi|C&$#Z|HloCkC1A(h(|G}FV~52x zP`Px`3i1A7vDkDW&C&S4XY=yEk8?XyI^&*&Xni4&O$ky0nS!mmJ z4g{%eT)@a7OxI{_c(;!Fk`Wzh9m_an#i|AgsiP~HQA8KKLTK+Ow~AlkPYz4IgL+I; zxIsH*j`Sd_Gkd5wuE*}k36l+k-K zxXNvPOdWzmwa#0ENPq%(3zF?zPm6jub(9hk6tVDmFDw&bl_<+e;R$RV&|Vi*wPK&r zeleuoye2LfYstQ|qu1ppX|;P1@kdYU=u8+dTIUQmg+^25*7Fo{1_}Arl%x74N4w^O zP)>&lfW28V_y`aen-ea0qocRs(V3_k6TnDE@;A3v-i`7<>dgwr(57g}@6 zTD0@g@Zk?9LWjvB*vxw;2~JYlF4Ch--016?E-5gXyF}Nu=3^>)kL=2<%D4xgocI`K z1Ur6$Xf3AR$mhPPljWmYRwR%tik{dE9tr+1Q-Qh8;9BnZXQ|Q@l!NYX&xQGYZhfGG~-H(7ZU-_3)6w9QY$+| zR&c;r0XVUuq8P8NBH zf@hd~r5Af07;5|L6LL5$%hAN+q$_{bgB+CW5$EK6^5&3`-MvlGME0SWbIMSI}DOw z>rc7$d(*B-OxaNMMjE)>L&oC`Lt7BDsSdYMrKA8oKg%cvEqpkxZnrUVoyvBs+-87S zt5a|LeiRk2g-geC@Rv00$ZC?4jREsb!xt}hcBR7AnA@{clH<6vAC#{sAwAB4IuSr~GNr%PfYZr^ z>7L#w<$~Zd`>X!FgdD$EiD?tGD9aSB)GPK-}vL zm<7bB8d}T`Lu8wL4g63r*}h_nBEqS!hGPp`-n-PXwZb*760s5WsGy?OCCV!Vcs)K* z^4?M^kzYXB!cMZ0+rmL2DjwlN&p|4~DO^6Hjy$>;@Qg&`>3<{TYYNh_`xii<`{5(x zDL0W*!ww9ED<#4F-nLtJzuJpZLL~q*dCzYYdDo9S#VAKLnc3;Ygp~w!N9cMHd${b0 z%-M{azS@?SAe2gc#dnvRBFG|!A#$FXo!Mm*3N4^`V4t4J;kLChxT!E6Y$avH5W#_A zCPVSI$y6a_^hN!T#+y0FEEy zhEi5t>c_coNcAkD&nC7l`(ksVm_yuas)W_r%(GkdN};czAeu2#MiryFCUNz$R_)Ke z^`0~wDo;SFF7*{p7OXeYhuj;E$TwxL&DQ#+S>@kI_jHVBnaO%o4I5n0P&BM(J^^Qu zq(-TOxT6p{^dOsyF7F2}puuTJ?T}ITFt6v^=YZT1nYkgn6wBRGMJ7QUX(Nr4%oVOG zz7pK(SE={qh$;1-BkKy52kZpn@s-OT^btd>-?8$J;);9iVYPnB+N{7m=S`BXBk;_;*DtliOj={Rb91j*2`PxU&7JJ+&f^8 zCXJLi`MruHxBGA3LN5T81>@Vh8DL;eY=}lsVZvmo(l9A8i_&Mqxy_;urM$^my%F0# zIKEK%i=?d=P|iak98C94vw}C%Sl%34l^(=+rI%Zdn^KS<-sq_0h_$@(yC)LXaTq3& z#GgRs`H
  • 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%0AKK5h4=Z3GC23cQgnN`7_!Y z=9VqH3_!1s62EuDfx|6rn?DstbSZ+pffzx3gA~dP=u9E^H0dDs4rKpvRE3E86XWjN z)UZYvfnj(;+6_W$d$CT*;!vs^_1ocPXlxHPYmZ9M#HS%Zb-=h!ZwbEqj4hsdZ!%qR zh=tt3QK*FO0)fKD&nQPsLWw-aZy$cHazTrRNU^LfEge2u4?&z(K{E!~#9D>E z7#-B~ucbr?;$;y(9=>OIKs)NS?*)&?9|KMz#*7Fs-U76!@kkuJ2e(29s)8gu^gS&t zcb}gg^kAmAb9#QQZA<;SZ-y0w{-Jtr!DmEvTXEjBtVYKB*)!T>BQ2TrQ&0U4NWx<> zQP1Y@HbHg&Rm3EO3tcLFt z)pMyN@GPo5^}esXe)JKwg;@t|lWcW0i_W3rq?rf~><&}p1mp4Rg#<2%h!oZQLV;^7 zFm;Mwr?KAn&?sk96%`+S{L$JW^B2cVF^My6=odz&Yo z--v_n$0_DL(9j$OVkE{pB_=P%+AA8{r^fC79!K8XMw!H{Pb?4cWZ<|?F0zW=X18Kd z=ResF}lTyb(M!uGE@!tU0jv&^|)C(dDT4P&B-rV^Wt zZia;L3vF3`B{Oj6Is(VNY+p(6qIQ`CslK-D0}1aJB$hE5h&|Wrnq@ zmt~v^i7?}^#L=OoeH~_QB_Y$rEy<2+tzU#IIQZhassCpaoHE zUUBYOb{B-Y7X&K)Y&3=Q;5w`oQv07t%slE*2?ZDxzDv?m%0`01f*#(V_z{TEXu9bCqQR%a%$?{Vdf#+dIzcPCf~B>(=9!|$j@R09 z_Tpd@Wd5iB4-Vey1&6PAp^$>F2~8V+gkYZ5v2GMss5AOapn+ zPo^^>(S>Dk|FVw>nlTXn6=XcfH+9ism`1=P`cyej29KdqJwlN$jM4Q_qiT8dtr^^!)TPnx-~cCd8y#{!D4}CV=+I z3AX7YE-qf40Y^u^eF)wkl4ktiNHjFwFzX>BC&P<^O~U3#VQ3l_C=`~^>ul!LJOziD zYAXG6ILqO)R-84&MChBJeSR0Qq04Bcb1-s1YAk{%{2y9G4~>sQ0ByK1&7+GII29$p z#-C>b7lcX!kOy5TuW+dqh4?+&Bw}kk}xf)k%b8j+s8I)m?M5 zwKm@Wz{Q+OQrgAEdE-CiuKxJ|=`iZP(=m>7@xaf-N@+L{zxXQ7+qCZ}j1xZ|R!!ST z5G2u{=-hBi6GswiroP@}h2DZ8!AcO;@?+;SK%ivO3b{YXqvrrxuQ-!^`P(3~Ff~4_U!lx>7i9>PtmJJkJNdt36n@v`e zQ*smR`82-Bt22v8UZk*pYlyXin9;(feSN6^YHWz(z0;f)IiY8A`Avr4P@;9^(wA} zGNc`wzWEoM$5@y1W>htn^v{3DxZAbdynPiYJVt!d{rTfA(?%~}y4HkVL|59_*aKel z3c{*8oM51OlbaG(gj3VDn6=@vwRdD(?dx}c#aVv@iLcoN$hDN?d}OU-Jvo@_42eob zu<>n79yj9uB2=V1UjXlG_SO133r!gmGQE;7F~aZ^>e{e+qu-DSybW{z<~FsVpXS6* z>8}(gdFc@5{Wd^UQy<4#a%39UaBs z?TZTpYHHb!lORB1LqTCy$2TAAD>N6`Fh!8)F?x$FVq*N1TL4UDUt$hm9Z&?SLF(kD z=%f6E0jya>G3K(F=!`HVAil#Gglsjv+eWf6pG@K-oJQghyZ}}dE)9(ha{^CT(v#EM zVmgYu`}_O5%+;bmog(5sTVAfGvxbpx*^@1bL=V}(4NPfv0n=;GH}z=~tzM+iy#l0H zTmWvg%oU(}tM|gY-^7_-Z;2*AZ7x`r)uYPH7vw;%-*Cd0SLv0rm+^awx39Z>5B zT&=P7wHAsH*mNmw1D+mq*oS|rW_`+SV zcUhhs_5#pI;2tC@<(QX7iz2h2-{t|uZCB3ADWMQ{6idv%^7IJ_y$2an-@ZzFQOl=6 zwKul3FJe{muka#ls^Nou1F-eo_~e3Y#_G*C<0=cn31rh#bRLfKGb6Z%Sm2d;E5j?l zV>oPiyl`|yA~qb3Bw+`&e8to0*{a<%Q_j2}Wwh8!Cb$Gy|2iXrkT5gj^ElMNa(@1G znJ`~++ru!DSW^viuZ)ac-z|_zbN^fMC9~PHYS&EbXB(2lA+3Et*AaB-Z_7-Fa5}hB3AM=ift;{tXq|r|8JhbEeyuucv)lZlmfHj;AedW3M^O*ATsL zTm$AFokcdlk7kN*ShNUhv!81&e@2!4`VayCLS{kq1_AWK6Q#S^={^^plDu~A_QqV; zk4vbl2gp549{Lv~f7NRSbrdA^Os1P1eFsB+C$mC#=+^$uJ_P&Sq(wnJlDAyaLhq-! zt)cc}ko9b5?W<^^`N6`8jt*%+LBelhqIgQ|Nwh@bp8gO{;`SFjm~NMwR^ekeitx~!>3Pxu>1}z)igSuKy9WJMjO+|tbpn+ z-N7a`4#BGkBluB#HQ5cRD19XLAE=?lm!?q#UF`(Bp6X&>@{5Y)5)_6fJ+H35hpoQ` zG+(*-zz$J8V$63VN!yG?lY!s2^}McUuwv+fG@$lLJy@il0)L#BAQ8_5wY3Q&Fq7w| z!3~E-&!T6e!-;$A>iqYR0duOm6zdvwKRJK2z--ua@#j#TG?f@8yW;a*BU;P0Ks`u_ zhsYVFpap)Gb~88r(0TRjqpYn7`PO!@N)hY|S#Wutk8G zdb(A{A))nSIN|y$NwuPVGEG0xdZZ~*TmobriksieTNq`|MRRk%IJ!~W6P_brB%`{XpE@3&JK*OL|J z9`Wtr`Qh1tXvC&u(bD_6-;RZ7B-&9g_;4|&B)l!@lL&V>id0MCUQbvLJ`*@^hmjY{ zlCR&oow05rIg<=My+UdK`tqvHUnCh9{P1)u(%X)_7N~YNwvKe6@-XuIeXQqWTB1^4(hZbkv;Th3!gNKv|p}PzNmiw zrAK}{5gc&8+HH-}+V0Tj>8++T{6dWPo6FH1|FY)!@?z}yRtF)Y;XSMoe%9%Y1Biy| zl0U82qPW`-4m>?Qg;e@H%yJu7GbL+k5ja(-z&I%^5hNr9vB z)!_{PzJ~NyaairlA0~t40mkC53Ox~8%i_0E1Z5033zpwy=X1KD-*ZyHNEr%qkRI|2-RAJ#; z+;9w%?sU5sk0p(X+tdB^Ph&Bb=A(CRul%_%Ot*R><4TWq-4rT8-vd zoYK8|mV=&{$8~mpUqYNT9myuoxYvbu^PTkj=TpBOCDBAV*Y@?7zvD%r#}qBS;+J2j z`RVhid{`m>hSn{+6kxqjE1^VH10Hxyrx_f>?BH_*R3Mv3|IvXWzuQ;o0604SwIaQQ z4Cpu0&#<~VFu-b8MM&psV`BFMFn!4K8N1l+KYc*-BPkmy6uYD@&bf_eR*{_%xd^n^Vu!)?d24?)j;UF3TA)t7&*M;qhE z#;Mp#w#UBXUfz$%W$Q0zXV6(jNo$>2|DCVP`xXhFlK<6ib zfoj@B%NjbN4nl4%D@=8+QdA{t9rT;FGRr;M2A;(u zrX7Cv)^HZ(J(YNWroMTHL|EQrsaMB1C1w3R3#C7e&Iea!&*V0mf4V#gDV$s(DaqLr zf4jF^J0H{5(sD2kv2T)Anq#~2mF3% ze}zR&fGe7rij!}5S_-vCzZdoau78!*6+9KC42Iv-j_M3s1uXHiED;jF8hx#*U8)`T z`;vPMr!&Uzr%i5F>1~h<@=xE3KEvLIZduqFoK5Q;NI`+Ad5?Uz%!Yr2X2YPAR2A(X zXRgcc^iEtK`q}5+f|5(@Xm#X+YfG}*Zrjda;^eJbQGoyCRHF{yEAPRO)f>LQyTfUV z1b-i0!1vLAd?a=O$ga1Ro_Ls-^6aV_+P&gGtZije?<|hm{^3I&=D?butDV#Dw~hiM z^?)0XTjE7Jc+Ow})_!O_mQBij;cqiM&21isz4mSvMe*E!72a&X*>$1mLFX?&YTEM2 zOi4ZPzw6O#5R~GjTJ0KKy;UZ%z{j0pk%;=a=P#(UbtbGQb|=l3O8vDmn*%8-=*5)# z^K*0sZOH)DEOZ_ONJef!94;~F*x(owj1^PO21h&dh0(Sp1tKP7pEHZXr^?7Qkt!Nf z{!{lD`11$oE%@$?tUDF{Iswy@@gE`G{aOVETnY{Ng;;!0*8)c?|5IOx65fM4m<+@# za4h8kyLIgaM$tA?=2rp}0>=kc2%N$JVYEzNtv_MN?wN|N*P@lPr$Q-_+5liQZ}Io2?2VHQ6CG5Q zPGI4hq>g#5_++t(I4DgfK_M*TZbr1;k`YK@!ZDD#mk1nxs|`Q5wl6P9E=^~a}2Mkkc2D#FZi3^OWl;%0FG|ie`G!zCohTfo?fe_xYRxA z^HyM4=>W}Z-0wS25d=}cfz<6b`!ai=fhATQFQ0M{qI|6<_TE@jK(FF#fd<8sZ8ru) zW-0HIOaL82X4wTvx7I3Q3)+c*9I?m<;~!Tgn3u^PK>62-jI0{iz>3GhBPVS@>HNGQ z#}GI%4%ffLTu=C_jL=9=EuB_tK{1 zVSHhAq7t>@9)HC9!WcR4DXm6Y<00 z@|Q9i+3sP;l%_~x9dZF3^Ae#ezs;Y&p?Iu9$8c%_r!ks+kw-Qu=jgO=)^m;Z=)JfY z`~}FZfQE6*=R24qe*~^ZlRB?_OvhS&7{$ZJ2-L`+_l#^dUtFl@s4ACVS+7I13aB;> zkbE(}yFJFnI@P+h7Sk1JncC~05_!%qSoRt_ak3Ql_*+4Kc@(A~XdFsz?fFfR#S z1anE6jsCrIQ|7a@D3+&*6!LkFgXYQx@~Zxv-4OJq^+61Gb+Kpu|6#6!*U2HN3v?~| zP*{ED*;q1%I)eZi^ETdVLTP$>x>XYFulN{_EXYUJBzvcBIBWyW~sjOkst0FDf zX=-Y$!hg&0s;vCO8vj36=6BY1Ip2f?IJP3OFePG87W~%z1%Q`YHr&TqIz#cSJl5wz zPfy5+`IX4dkOt=8NN;9*5#CKbTWp%3q~)}A)Z(L#WXFv14xbRsm-bLDjaNaUMZ%!n z;}B^b(FSDnFVBEstGsgPe591>|Mmh{WT>mP28@%2oR@NgDOj^7F#XAO+*VvnU=LKg z=gJqSL5k0u6dvUKJFi(27#hjAcLJ1~=@|SruqocbqeX=R7!TKk4)Z~F8P&#@YG3j_ z*?^UqT|ZZ!1P^BPlQ#~3HF1Vhb}&S&V(AKufV4Y@s$Y_9K$eq`gFjM7&jh(;0& z$p1oEes1hat;|yH*XPp;rH@{qtA!M3P%OfQ(=YQzQCz^sy1aKu+kkdypzRi*l0~!{ z%r}h_-p!vplior1kca$>t^Hw<{9%jz}Wog#o7bL zs0FjxL5AiCoyqUMlmk5%e%n(EC?W50g-L*rttvkZn4@y4dLcg6)z*3X51@_a0PC(^ z!!~KzVu|_r`Cl`sl_qPndEasFhx)H&4ZapFk)YoeS`-s@BJ*$k`22y{Ibf_v&pyT9 z6L>SoG+Xa)N@M{r@1mn$C83U(B>Ixbxj6U{R7qP)MNf=2Oia85i8tbaKh1n|PyA-1D~6!ni<>cx zY5;+6uhpnnnz^$NYaWnb1w(&sivfwmUsmykisvW8_DZQ1c~OKzTJ6q4=zl8h36SFS zSVS}Nb`dVakA=^^*5}GPa-1BjodwKL z_WyM)>@c5=_Wmtl`nWA{E7}`RK0KCe3njWsj@U=@HGC}xv zL|B87xL=+Re%7zH@BS5HeSXt)S&xc}t5Byex!8YQ2KC%e>A#c*kDB4?MneiJtvmRy zO&AE^OSiZ%rJ8Kv%YhQQWPA}Q4ykgXF@T9zSBHs-t%c5uBNWms&;9k` zB^+fxr{R_YJ@4?AZ(eHE-z!%PAfbb$+V?iYR_GRe0Q)!=PGFgYgrndCZmomayJ=BN zV1Lz5i2L*t(;XJ@fS-QfRhnsuzGUp2%7gx`R+w1mL}?&3wtXAiccQ$a)k2)f`lz_P zb#?(I#j`JxR4(#z=4;G_xhpYDb1&lnses2{&-ZkdjR7)YdFF$y@hiTrZX$0e;Z*kb zlt_p0*g411R!dUVKabjldeL9wQtE;mj#`9Q$#nJ^UtRCEhS8Et^cmvqV>fyu+$69y z&~FxA0<0t8y(oR)82ImpEP;NhYtL%*OVD7Evr7(EIi4NO-3MqGfyeuw1j0>XL>To5 znp|D;rEm}24p0GL+z*q(%}0myU+&7{4jzB&+AZ3Wsqv#8&R18Z_Ai67UC`=8t#}rD z8BeR7fvf!pMsEQN3hE5U!v1uo^74U%t{r-OvjF&6sYYtMtUNIr%DUWUV-UiZCaYt3 zVAl%HZH@My19_}@4}ZVOtc7hr#{1ye|65BJFoi4by8UZcdy@DHrjHe(N(h}7wT0bW zcE}n4#jC4_x-Dkqx`_gUSsR3k1)J70Ms{6l+&SQsmWV5Eu{j)lJ0ifYk4LWe%_4E4O zqw->1MmUms>iiw;qrkac=N#ngc*Hr)v)|?mSv%OTgSS2P0M%&p*c+#UEs|sS*9d3M zriJip)%Wv@Z@zC6Z0Xuwgve_fCaDt)s~E^%c~^*DPM-TElG$i!jLNnWaau;^xwh0< zz3+3+r`1UnvftJcuFiS*DPKZL;fF-Yt841@__YEcy7M?Ddi;QZfDj$_#0=YS%KXw~ zWv`#vTwY&~@9OM*zy98WRzMaCMFY0@{|5OW5jAI)1qneZKJ$;oG~fW3SZ^vJGEBFN z-JURcTHAQQEG6YWZ0{}8;DW|&jCJ&3%Avp-odZYszAj~mKIY*QijR-a7zb~q6MW6cLp1hV zZEB!Wq2CdituG=9r>!HEQY|@WM;aUuT zue?L8DtBvUY`|6j4%H<@)Cxn?gYriM(1pk|QrLm82Z$g(6GkQK@?6wJ4`>9gK zbkIL_|EL<+d6ckf@NUt2$<`_Ww-!eAPVfhL_Y3W_t2br~ow=^-T;&tTquk@z*~_b! z(7CYo=W4G>iLoWv@R^!Z+gs+2zOPiL8Tg!vB1t|{Gx1>ATgR~Q)KpMa7@V?C>x z2hu8b#gKOI$0^SaD++9?NJUw8gxsAUk*YoQ#N)o2)HTQFUSS#svHAD_yt+K}<^ z??wKhLIkY7068MLTQRZbS8n#msqzP`U!V^arh9&@TU0;&1ve%Pa|Qn1+W*4%sS#R} zhn7i((dxf^eZ@d=je4if8hXtjohN03$IG&hlh(XQ^}7^ywP_7Z(dwMxaL-8k7^EfrLU0bbTEM^(1VkUm0r4Pel)926H z<^zKAkpw6aCsAoV=IPMB;a|5gb^sAE7Lkd2v9D~2w%!5tX| zE`48|PD@NB-P}$;t1V_)7 zbuTQMTL|YaNeJM0v^hGN1%XFF7}qOV+GY;j&Fh|K0>)4U74RPJu3L`ZSGl`o^LSMj zdcAv;z0=J49BCz@$N6`3W9@@~C=jIOuFAG#u$peyZzYDcUoiE(GE$hseJ`VCnsf_^eQ|@KE>a&Agd271T`HY+qqlb-6#vLDEENT^ zuAxsCbRUZ@v zq%p%F3M+sbBetaNm&KY-ZI2(_IyNB;%m6}>F*%_lvw+65V63Db0<|(-o5WH03d*xM zEOE^+h5J??A7=wYRM^u=vT@b!QkDqvBf%l*%d8xNONvI@kxUA&_}lw7TWijCsHmW9m+#*e z#J&TY#hU#rFiXoBLwi@${*rh_n-{n3GOwKXYZ}zi;LG*b6~Vk?kOtS3E!R_98U7^Q z*1MuS0UWtd)*!#u5%e?2K%J%r+mvw^&RF~DSm@%J!u2yuQ*;{5ADe^Y|4 zjrQC(H(YmQfV%nNX}cSw!gsbj(?Jj}JW-Z$t)op?R85hR0Lavby$bH@+$&=;7)SJH_aV^>OTqTO?g`f0t*h?mB$ z9DHjBN&V8k-D&)xOi7C8cnZ6+@SI7p>mz^&(`3N9D# zlQ&taf$-XZIprG`CUU=t6gLXm4p)odvdYj}(Zrm8)i@%=ZuEXXT)I)yY~uDW1yWCh zoUJ%tW~P;-HG<$*=EiME6Uc4eP|mQ%@B!2hg`I& ztzD_prQ7qIDfU8UTgT0`5w3WU)W@00W6D@ zlr-8&8S3Ah0(8@3f5%yKu`A$42Qc6G&|BL?g<686=sFqHV4#oit5b#>R`{q5Rv`UO z8=-}Tz|AD@n?6+lSSRsVyt%$k5{DGe17^Ds6}CjaN#cugVi>c>*7|3OTHhP_YoyH` z)GWS2P0dPultt06g}X&4k|KL6|BBPXN*p*@hxwoDV6u^vTUk%vmXgKaT>`za9o*}; zj2@&;&$ry(Vi7*K7ts5h!GLNHp%&1f8kp6zO%C)?O5oE$I-p-S;^joG?IKQ&0OMfE zu6>2%_Yv**o9N{b<&R;qmJXjA(I*@}J1?Ucgq?a^DRxmMwEkg4Y~R}9MGQZ5uNBR! z5+;&QJ45LlZepg|$#GTAJ z?8Q~ia`2ZUZNfKHs}jPi1>xmf#k;&Ts@=!)4poO^jjTP@vhEeh(O_Ud&?LP z)~V`)gLPq-x+dep+W&{BvwmyBf5ZJY7>FZ9Mu&hP-Hm_}N~1KRyBnn$($dmh(%lV{ z?(SB)yX)-pJ=eL;Px}Yn+wSMSpXYTWA4fqI80}@h1BIdywepapD|Gra*}VwoKsb_@ zA}+ZkUDQwG=!Y6o#85)IQpZ7hdYS@@P*-8B2U5oN!TQYE>~>!TddI$Zh7Z@{33BRv zd83xT>R`CO;4Vz46W7wdz>lz^_%D3lX1z4-rw6JI@5teIhjrR2LRU=N8WP+ z96$!IpGg^pq8&BuCOMJnFiVHd`yqEO8lZD-;=ShHo;%H9rb4Zt1gn5`twuZ`QScul zkAKth<(gd%V(`W zJydP_>jO*F^hUIusiC!Mq{d91!kPT-*lo#K%w-hoiMk1&FG$gcSk1FA!y~@|vKppww`ME_v$%a7EBvOVOA=+mu*84+Vkm z&XeXObn@bP=5Lbwioq2AeIR55x>L!k z)ahAS0_j}}IC``kGoFFI*{_hLh6GCIms@Y$B`;NTadEUBxlphJg3%3PNSAlWgi ziq4hORwi)rooM5A%`W|Q#=#FP4G0nB#&*CeB*LZCrpV0qP~{S+0s%{zpkNT@;7D-= zi$dZCe-@9GXE%?DO0@@Q6)u7Fe(%`jC}x-vwx&Lkxs$pRGTN)zN<9(Yy>x~!HWDwJ zecXKBIXrf~EeXhIvi_atJMEzMr$v{dGl!}R`VNM_48X<`=2d4;64_{+FI(wpTj~%c zSrkVqJ)qf*d3%E8!Pi^u3j&kuz&-DF`@aV!}fC z_tKf54->p#K#4N-@_?Wq88k)!FOeh(GEjnO#Iaco1HqhDBlM2+Th0}NScyzAI$Ss}L zbsZi4_=sls`h|l3sj#xVm{C)?W?lpg(7u2_$D&}t?mNpdKv)+NQ?^d9#;mWs)@)4^ zXJc$fE*^O2e89*QrTd5$`b|T7(qikH<8ZugVAAwM`zTlXX&C<_Y0gmwCzasb($WJ0 z38=dUR18Y~?D?Gk;&L%$lR>Q#19>KZ6=2MqamE>uFx+ccNL!xY;4G6*Nm>?0#vg18 zKq56iY*7B+mpcTyUag>c&Tcvc<3q(E~yX<8gEb~)@4)%PJB5=k)lSC*Sh zKR80Buii>axOaGmF^Pg5j>_^Q*TFv+eM#jJwRgzD0(Zx0?Zy4+oA?#FfzlMq@xGyr ze&_{&yLAdLqshTnDm?b|w0qBqrq@+u%B?zsDaZ!nO146e8fwI4VZ;+S)-dniu_y7a z@-@vcExH?LEN3_0q`i}y;$H0nlr z;Q9uzHOpJPIny4V8Hs2*F1M>6|X@ROW%nyeuago+^3nyBM#l&XHU*djm$dSXo{^BY5d zIy)R>RGT4YT_|QACmr9BoWa0KNXkff<2-_*!t`F*P<7BG_%6!C2iQ(QRhihUb%853 z`-cUJkDxAKIq~we9wL4nC4aAF?jYw~%uv1_ZD&!2d;7;WJ3`o|)W1x)=5Gf?2G|ULaV!dZz z0aTc9kylre8iWkIvt25wh+B@8%8;AyU;TLa=D-A6*cJX09XGx6sP|SLr&`H)lxJ3( z3!ZWQvd}*7e_bXe8v0%Pkv#mD7G;zGayBshN4u4O!aHpO3iZCk83z;(i&VJpq4nZ7 zwL1f*|NgG|J)mnLN9|NI0)Hmc9sK_YF`0*%8`m?;*HXfA|`>S9Z{@}Kgy8f;J^={ zA^^`U$v$#R$IC4);rO)(jWo37Q67Ij zQOZa1&@Npy`3rIUQf!`2o(ksb!sG5Xa!@>gaeyilO zDE3GV+@;6l3tSzjq#n0KZ$CRAR4~&q&znvQEU#XiR2vwBoT7=o{kcQxRefrA6w zNC-apx_o=&QosWf z<2Sr!IQdbF@R)t1{hb9i{@0?wAfiW+w7@$ano!Sf3T0BhXa@r`3yoil`n#tADV zBdl{VYF?RJ0j%=gfoj38NmpmXU0bq7@LOB+L~g?sFk0yJ%08&MI1|;?QA`;^`d6Fp z7N+NSFDez|?b*ERrh75qmX(Q%>LvEwYdz|<#Z{jo$nZ!7XQq~xK8wBrbSsiwx5W8* zdEF-`u#lSDTHJCl?-^BeEbbaLWwnU_iO7P&4|%zH?`Uq$MaEZ;e*T7Qe3yeOY zgw?N8!g_rUcD_uq0k_dyDM_7b$$x8;-%qIPJ(6d$a?F{KqFfn4fHUmtX8|?oAkiBjtDI(;0)!z;yS(|pUb>`Y){?Q=0B5R$@ zgEc)+wXJbbIM3lyu;Z>UsuXe&nlf&y1Py(yZ6m@@wCnwBF&Ct6*htT2@_z}SAyCf` z_1&B@aM!|$yB^Tjf>%!*k~1sZHsK)hov7hF&D-$7m!NQH zjm6G#c3VbPiW+`9_mRJ%xP6`eYf!2)r%2RKtVmvd0o%JaruHuuY)7Y18ok~McJk0} zWmlEr@5>*t*myN=W{b_nf}R;fJME!x9VQ@3{C&hfmooK&?tRz*%ZBEa){s-=7o1~> z%l<6r^H{K&L98>fqzU)zUFj@qEI3omEo)Wsb&KmnzfZU{p~gsx+TK?eckiSLXPSxw zW2(|=`kH6B+e z0jTchn-aV>G1JDnF@T;}&4Z949@axH?N0;d6U{Pll}Latu=Hk%eXV3f*0+JN_)ew% z-vV;x%ln?(fN=1uQf57IVmZ-b)K@RD67l0p;3p<>JE=L=IGJSaAu zd0x;GhQbakIBLLkYss2;-|#`J1kg-o zp%=nx87kNB#A=})++rTPt|sW@)px%>VeKaiHxhjj?MCG@_(wE;G0YxTp!iLB8T1c@ zu1?Ima^w@gE_u*Efz8}L+3(}(;4ORVltaB{_shyqwzh_t0J=}R?QcJw+{2Q5AYlY( zMz#G~MBV}wfOwKwX)?K;Tj3~*k4;WBoECwg|7J;~Y2XiClUJpn#l<0wgD4{WkKO+W zFC8S#xpm?X1sg4YiVPXiakC+aok9fUpG&+srg+*qE`9&?4{P0L0%rSJuHj4x6#PnD zMU||9D%FFV*bHsmS@jsA>pe}a=DH}e3iOmz4oz}DPO=(-TKI+wrnVKZe==-*&x_A@ zKmOy-4;D16_M8>R4&flB5pfJtsthbQdBE~b(y6LT!vcv~*_h&>iK)M9{ZcjHqh{XVwC#=i z)2P+hO~x_jtxBJ|YZU1}Tagxut!lZ!Hr+(g?8CTPF-^$QZ8}dY+k=K#zWu>@nddtQ`1Yp zZ@K-Y2E@FxS1a4e>+fU>^?enlOlvAmqCF=v&cEL34f_H5rt-7VjN_ZJd?yXA-xwOF zcroOh45%Whj7)WvVw*vfo@4!>u`}u!c=b*0xA@w6A!3Bhx{O~P7&8(CC}ycFjO;*O z^DrxE!oQO;oBOtgv&V0){DxVZUwydEjLWBj0k?-sOARG^fk*1qb|@vs`Ipz1rKoe> zQFl%Dg=hFp0xwQlL!NBhG4JYCSTk2NIng;V^>~E*53&M^7w>>ozF37%9Q~UQ!{4k} z*ki!SX{R0b!dR;je=SbEjYlMwWru#Zrb9kvnA6^JFFSoZPA}w4`EN_4LW~8m-4@_F zj=}qWDp%y5Cg|1KOAc@^qX>a&z&>`!xQ>O%>r_?LwDEd>!bqNBtvRTMGt$TKOZ13% z4WMOyE5`ph`EjXBvt!s4_kf>|cw}}fSL`F5TgupM z=CR~#4p%>Ezb9JJnP_U^+N)s?ir!0;ST^z0@|>T8X`ciNU-vWA+wmU~NF;Y+WSs=~ zw+D)l>fq|F_}_h#VNV#al3DIU&E!d!>3#gDmKwjlBn0NdbSig?^4QvW+f4p^rF>O~ z@!wx7WD#^qgFpZG3*e6yhaeMP+}YX6&lKAxhCsDC<+lWjoT1|&%=g1`oW9MWnA_31 z6Sn{6$I##@fi0v#Jf)|FKp(I$1U0@mlFZr~?`_zxa$(=G2aci&qUnHF)f#IRDw{;g z)t?+Fr&UqrN}Yj~hTM=;f@00gY6DV~jhC^ii;Of>4H#nTBGuFN8~}^kTIiytoN?nu z)FAG3>DfoCO}>zD)c+m4y+pjVe4y!7&KtW=tE7nLf)PqNSeGJd>J z7Y@^MlwiB<6s=+x9oL%*gX+dok4kLmzvg(r%-a6I|-PfGGvVK z1)B$h4x;W~U^pvj5t)fG4)EB}g;cG1mt%|VQs;3dI|0;G*n51m%dqBcoGM9*tjs)A?TvmH^%SZf+5O(zO%|ABs$LHDn})U$!8^sny(oRm3P;5*Z=< zhFIbPq-Pav-2JsMq@>wu_Haw2-X5ptYUsZev)7QDC!iEFy4z^mwA`g4gA%JRlW4kz z+v*wL33L0dMB^*o!x@OgNtslL26GBm40vwq78tr1h>DB4tpQCFxTn5l|^31AJ#P$1X_p)F=4 z-m2B=erfCla)SXZ;yzJgAy^XL^hjb{qP1m#-_6cW3mCrLpC_#GYH41KCC>NRgFJFF z<4iMM(}7wAbia3>ZQg`lbD?9CX`oY4>}yp13o4#1A>Q-2`HKSIqhVGnRItrkK`m4G z#iZ~5y+q4oZnpu=;5MmbQWoY2p^gq8iWik$_~Nq%oC3BES2F4WghXnw;HzPZ)^T{Q zI_NvBV=M5*3q=!PgI6OdF$tM7@XG7K`kn`{Q`7Oc=bX@Hc|l&e7ubId)TYcD?W~xf zKUplzz)V&!Zp$0dL>lJ3&^|MRKnEFmLkg=j5#^&9LpZ|eH1lC7d!z6Y*qw0nW0 z-!}idj}K!(?CT?h+iJ#KM2dIZ`8NLv7v!&L!~l5VH@KrhUX=0Nh?|l)wXg8N-M5kB zO)@fzoHHOUSmw~wsF;c4;@P+b~676?)v;zgNrk*(FwsS}J}H~j8|nUYHMBK z?5wSBXGmGCAqHIwGcIItYY(*Pzvs|de6^D-sF~E698j5x9J|bSNEuC8GoRRgl?nSI z>$O@j16mAMP?v_UylWW41okQoS=dX#C#W4&o~%}tYOKQ5HD@caI&?s5k+&3vh%6X- zv9XHoZpmARcIjoqA>XL)9{qjf?4Gd8+D`ilMTl+*1z-5LKV$y@0dHhP8YEI z^z`)lUWyr}Ma73X>29UPF zDiHvX#_D5K(kx@|qUQC3iCOqA4iFZ*5+iD%`qm~)?CN4p3YQfb5<_-ly4Ctw|Cr^> z7lh%FR=(4Q%vQb<2^D~2;k6rnz&BkNT+tb%t>GvPn(e-TQnA8eUP#hG+rTH@UR#7w zafUHI6{4=uHQ&j&f2QV($gYzxO6Uj}#Zw8cf@8lh6 zV0d0n;WR$t7U+tLgQ^Wa+*?|?I&<63Ev&B-TNC8i2_zm;Ans8&y{!L%ESn7-Aol8_ zE~yLOhZkzMTsI-wy$*)@h{3PebS-nMoek{sAzl$dKSS11XE@ZPTJI>ps8pnoatG?-wTYM6{U>2p; zRL{h&dl@ZOpOuNH^PSN3!MeQj67NA0V1wS@Mr{(b7Y&BmO8Ru8vr|W|PkAY}wC8zl z`^7f@9rWuTLE&|Q%J&UNAq1heD6Uw>*6E+sTVhxmXju?HyqT+xrcqe!wg4IK4>zX~ zdcr4gAWSkSR?#f6TP(Yq_%}jBfif>F-LLs4^&Dh}S;++ipJp$^2z43$7)Tf4fz?S3 zh1;C<%Tu!u6aI&U*1#{#LM$!Wy~=s%h_*iIqQex9(lCzR)4`Hy1zlYpv&R# z&j+DSz_z7$sPIeAl?I0#Hv#*dv8=9>ISn#3cYGVV)8Y4=oZQ?W^s3=^0h@=1m2u?c zM=Px!X-I=iE}oC~m6Z-edw>^|>7n`V{OSJ4srz6nv8(F{U2HYPDn93d*NcUP*8TB$gF%+R#`bEpg~My1BL*mQg=n z-j|$ss@~a77~3Mg^AK=L?rgz)9LL;*8qP=wy1c(*xoCz|`qe4Eft=LA)?cz7DE%Ay za4wDCa%f-JWsFKly#dfy?9UhySq6v`+43|0F#9i_$fSlePz);f5V@!;E_u2@9i~#W z8dZV^VA3}f1J|h|<(aVYtEj!a34)0nf1GTOF$d?YmqRL@!A~z2t&kUkZyZ`nk0O4n zGYvo_w}*H5zHlrpjun{G(JZp@j63+eOgl38EuCoXL+{SIdC5KFE7B^LW4ON>q3e4U z*PoH`JLO?cVi~3IV_7k7`L4OXf>L=S+`qkr>3lMsQg-7un_oTST{g<3rk8gFqRtXI zTC#_NTQm%UgV;hVM-KlHNUe1{_}OiG*1dDLOGl@sh-TPJ z{_$ICYxaeM+sZfj=K-Cd5-{3+67`shNZ$K8L7dAi&0UZtSc8cbE}+DTb;80&ai-2< zS~E9mNLNh0DJy^bHSI3CD-2q!xmJZR*u{feiy3UAK4nj<`_39_Fv&B*)i0q1k&;+g zOt8zMXGfvziZfM(vd??k64`Yr%tn^)Iy#ygahjgp`&jVo5G!%7UihK1P?dwOH(Z%JA*Q5WcgI ze*u^`A2gQIuy!wqm@oO6_xJ(awC5a?>W6HZI^LZYl**(Iv%us@#mF=KDN#9(cB+-p zHcQ#_pOzym1tZ9+=Oh@Fz|mh2;`&u3?S3r>?=)5pt#;s0ND|J8q$ry zsR~#lG4uP?=8Z!Bi4`ES%dKw$T7@sDp2+SToWJJ^rL8;C)Lc_vKnfz1sm1Q6cM_@1 zG~47J-ASK_F9gh~S~|H!D!|TcZ}F&}ztk+b<*iTASKPfnQrjR4rGpFhwnyq}=N(@D z4#6saVtLW{|2M|Guyfg7a*6@+>^R!i|K(9lC1cnL#~Z0?3J3QcIgx5I2h-H1A@ih2 z7Tj|;g>I?PioawBaM*`PMXs%iAeN>s<_f261wJ9}sR08WrPZk#>{)zrcpHTXr!d0c zyR|Dn>vsx6LCEhOtYEk{JsO-5pdn}ao_!+*`R0CfTSGNUJb`m!#eqpSOM$Tm`P>{e zn-CbFPCNK>ZTs8++S&~C&uZZOKca;x2Hsk@6L1g>(GwRe<_P8FcBm}teq{&1Ezf5& zd|#~F$cYCpZJ3*5{j8Cui%X>nvWWoK2nXz)DTtKfLXy7Z>26xQ}#$ z9~-%DbcIO1+^5v3cUT|DfB(3vf8#1BrvJ-GX7alqEB=*Z@~!J>QrjT)rQBp8P?N)N|X6Yo>g@>BZ6S{4I7|dV}^Ud$u@aGB0dX ziB8EXFUP?*pzWRS1;q+1rNIaO(|AapcbU!E+xV8UCp^ zGCa@f4NR*L0ZI;C`YE;jtT|DanN~2c6v&(Xi$n!r&%Ua<@G)UH3;PM{?`Wo17B{Ij zQZ*XAX-!I>6rL201y*(jabV~-ds_$hQY#E!{3@2o_P{>g$O;*~Aoh+Ush-w=Fk?Yp zYxpO9V9wdz;deReRd0!R4mYXjKlWy zK0RX)R6l54Xk%w~Y51@r7fI2_xbM6#(9H$Ly>#p*a1sW!5f(mjtK2t<3TS<DDnEL6`O=zA~xPwkJTGPB)lf{ExtaMJOvd zSIt&rN6wzKbKAVn%VOv-D^4LCxC;JX$v5TVso(E9e1=vn>| z_ZknE~vi; z1rW>{MoUR6>!AujVxeNCys>m}n61JFJ6i_kE2Q}qBgt#UI zzhPBtg!;)vjmm_(&CLkRjiUVy%+fhWpy1R{ELEG`zCeD9zoGOoW~I+pA3`>&l1@x{2F z@q;6tA>@+=FFpBSV&_C6OYhPcr!4-gyG68LUS4s>ejgLG# z-^cYMo*g?zKRlD_U{;AtNs}K-O@Zd#JD2>EfUL;>+ksQTPyguXGIZzA)9;idnF=V~ zG_(H!H+|;mZ%NqIbaCN92W%hk+lV8%64n3Pfn#swIHolzrFH^XP7?sYjEvS07EK6u zUF{}NtQR0#-B8{K{70wHM~`|}rdi!XNlfwWB$TCMs^M;o?@7wlwJ$sXp>f5P>6q+= ziaIzQ3_oxfa0m1-(wt}_s>IBEdmT{>wY>rQ+o;Zv*Ji75hti;EjYUvB3a<9yPYl*C z@0|zWTc9x2{JB}Ji*e?M0$xB-3ZQgRgX$}w4*F~AV=%}!>thOW<(@&b#H5|JS7Os& zjg%)Rr97NLEf|&t4su;>6}2}Dqd|7nvQm98`sir069uJsZWJG0DzlRUd^AW(ImCr< zb*K=c2<3Sqwj2_d1&5@pQ?{t~PZHAp#L1w9?F+jd>U@fvd8yrdT<6AHtXEM?4zN@; z@Wz>kA!;HN;ru1G&v>2=F=<{$P8qOvhjpp%*GJ2pi*+{m@wQjhVs#vTkJVz#N(r_O z^e=OWSwT?l@IUqZ0Wl&EfI|x;+)H?ETz6 zjh+3-ft+_rz>JlEmRBpcH>#kDP(M{Q*JQ`P>JvBv!AZG6YuyC#8CD$fs5R7Qr;SIh z&;ij5!Dp;i>}k^7T?y-h+gNn-hf6N!HOsS_u{>`(@<0lC7lMeB3JR6x!k#VZU0LVGFiqJUHR*+k-AhXAGl$9SaJj$B0r(}7wXZ9ZjLMv-kmr>en-YCyJEJqT_u} z1owHKFO%w~(-Wr*byJ?IMdd8%(NC-%bns`N1|SigHJ?@|;H!I-3dQg5QhL>0MKAlM z{9-9ZJa6nDPe(?+iS0u)>>cpE%W8LW5f<&|a~v!9q|a+*$g<-Q{~&T5-Pb4B2&W!L zf%yDCJw`_Ejj6^Nb;em^VmigZCQ@MK=2zOq>FLdb#d<|nY0N(CM4P%hd0KZoDpl<= zZP!zPj_Ps#@_0@VHWs${tZwbMLpXyrtv+fF{Ohk}E4{w> z3Me~tY?~m=qPV_;bNx0p^tr7ubfr(k>Zn<@B}kjav;5zLS@{})ikDE){gh9po%l1J zj`f60&@&iob>s5K8p*}s&h}UUts%zJ&o;|I1#%k2N4;SG(C?Gw^f`*+IaR+ zxYxCNNMH7Ah-{jWu|YanIe)elohhK7?UaG=Wa;9GJh}@WWxxh^I$4F&*_GOAJioxhVK3pc3TaAY>?J4IBk2 zxm;nKkSEw#*Wtr^UsX14>KerYR3&to6JRut86kRbTMqS%IIUrWzTGhu8p>Pa5xJ)F(E@9 zl7|_k(T3S|p+NtN19%MID}o=H`2YvqaMn&bE1Dt?R-3PH0nej)ZH}92i2cxbHsp!e zis5fcA#XAfizR6%GC^IATyX63+Wjh@O_@gH#P7;>CP1={Hohs~AXLM7eAWH5TZC2X z0XT5H*gV?;z(s+H)z$eHC}_;~ybnp-a&)PRU(booN?%#2-T9lhpyew_uWx8(U}$tU z!Jnyu(aXj2reFzK=Q`pG{&$MXgb;LTSs8Gx({XvA<8^aV_8 z612kW_P2%$gG-5L(pO+63w@1ryCL%DzNrtPJ7rOQ%h&#&zh2HQ!uPUn_;x%8(F9Mh zxEnt0ez?Ke5mdoh?WWDhtF{_&*6{Q5k<<%#;&ms|c|l$AxIirE=-*C(=O)Tv?xPR93fVrMlut{ygy!xg}U}+b82~cr{!%|Oi$=ve7 z+28K=C>`#-xi%)4{L4pBc-L> zV?{ZNT8#zaeZ{-H$*C#sU2Ms^I3m&_@(#cebCIPr2_dOYnb@l{90k2;`a*=Wr;QK_ zS@9iHV8b4$>s$9wk5u{qLO(qEi1NLAjbEE<(!xS~$<|GGLP2-WG!U5uKoFqR7Ej^m zqU&W;dUv8Wwe5x{FCT(g8B&rV212oNLSw=e`EtvT?`g6YD}{1`5O{G1N516 z@PE96KYCA;sneZlI1;kX;=7&cl-A~1wyb=AvUYaA8jYV!HV?izfMgq7;-_NExS)VcFwXE)i$VQR_V{@ zpFbQvYhKhwU)W!`NgN@wu4TSbm0?ialjjG&9`rVf*%(fwGSRgS{wv`^=rE=8;%maO z;)@qmhX0)a`hvA}dCn26*HYC#S`}HcnM97EjA_63K4hibX&o< z3Kt>rdsU3#N$w?F6f|``cAPyOuf_O4(&Uo-v--D>cXCTWVu|AKi^alGnCVU?8Z<*p zFQkn;961mQno&ooKi<3~5fQz9)_q6IHoG7c7yH&J*6NC|iw3g-nNBdlDEchE^q7Y196 zX?Q19m!#7kyNX?*%^|&MgT{QrJhyihxC&>|>=N%g8Q6A1;H(+gF0?FR=eWo)SR@ZI;dGYWb$BAWH1r!Bz7`u_dRz zynO7SDM(02=#zS>R<0R-AW{OdKSTQ*PEXlo2#DebU~uAmOH|1hFXLHtZK-<}#~!|a z`+Kz(?kw-LD8`*Ik*ajQS0UGn&?RM+xT*a7Fd7`x+Zg$3m5?E4r#$3tJWCT$xRg+Fi=g2Te;evQXK?SwJ11VO#xfy*FJFI9z-goh^ zd4U$R29#IrBrd5D1Hzi{+rqZNF?)lrbif0ZEOr%p{M-K2BGjLD$d2zXcJjy|K?9q&A|6Q{cf@y?UTe};2~3T)zj+|8VT(2OJGb`z zLCVw>s!*{T!s_CbH9E&6(V7AQ8XbfD?COTZx&e zndwrK(@y@(Vkl_qy}7V$;+&V)nF~EY%{(Rs{r5ELS3Z&3Cf)jPrKgjgFUG!M0%qX- z@LJy&+63Y-Tai70F<4_zk5|qR<=|x(K|}Fj<%ojW3(=Wg1Np(Uzz11~wwiXCK%Mpc zKW-GQ*~$VV7LiOCux7SY@A%@^>f)r4#uQ*QW=#N49Rnpz9We$(fU8gzCTSk50L-B} zS9&_4c4ON0LcDoCJxsfa0&98Y?N5mR9)h-@o_%t{C}g z@ig%6E)j9S3P93n4HL|eg{RnAjtq{NQneAXw#qe8xkQ_w6%+MyN4OCgctgZ_4bIi2 zc2AU|Y$lp{&G}$m-qBk-w@Iku9NkG0ZkS))w2aaF-dh+u_%IaAnxf}$yXn%S_f7a| z<4<%n53;)MlQdz<2`VEl%rp^ov~vG|5BpHRTPyP?v@gHc==3AYllV|EU0p6c(Yi_l zv}Cmdgi~-ts+L!aNTC++ktAzQamaDX>07-<#5%hGYXTHI@>0qQ$!|X5%o{ZE-`l z8zEZ#<&LNcyA>a+r}dcX!Qq14GM5oLrf5v@K5n`P!kVh1kYtt?HdRLcuP2jK!X$3E zRK>7UJ~9pC9dG@NwS|?hB=SM!;q&L0ZoR3X>*=>@_3UP$^+8EHn#?})h*R{Ez1<*I z&X7EMZw}B!4?rFrybV?{NXd?P7Rz`qu472FA|n3uab%+NI&wTevpqF8N044OQsn0o z3nMH8Yg~YUe9V9G7M`&84}4!X#1w@ zu883_!gH=0rjC$z%=M{ybM=;s)+p^3i-I^@tec7L@c8C>@8}Eh0(SD&*DYw%wZwgc z7{c_y%s&qAlqg+VNW~pUwE<9e+e6>1tqFpiEC*W@Gm|mV1n;>jNGAx{%*e8qHxDknx?UX%6XIsqL|~W64e{?r zZ(Qig1OWqBP9*H}%p>pMu=}6k%m8&0)sX|)ro?`b9T;k5@Y#0}>A+zp5Tl6^BFn^B z#ad#3wDHf@zCEBJ&ESbC`aU^_!aL?^j_eu`-SIsQV1%CiBb!$Uap#zGc*f-!|o@lNlbGTQ59>Gd{*ZO-z02H;LZ_16>sUYt?_R9zy~(a1FGgwe_yTee1S-Y^<%jjuDPH;o4!{!sqOkK^t`NBJj|@swFT4C-$lflz=& z5B->R`(&&X5ysjcCnXO3-Y1T;TE0ecwuha{y(V0SX?eC~tm1{eYatOk=dGFDuLR$W zkY=$4)e$XG(^m0KRA4+$Gmdqc{CbM2*f)(7np6Aqj=$&>UuX!=uHDQpvQ&pyp0D5h zx{NAiig|oB@q{}qek@1ZKLX0rV;6r*`R2HjYlAJmhArB%0-16*WI=`X;J;`vtN9S=(~gli3x6v7O4-f6) zCQwIvuis8-(GB4v)nE-iKQ`vui4HOSY8R>5=1k7E31C-xY0a?S8FUOI%OY3d<#iRg z&=p_`+2p*2$Yl>L2XX77S=EbUPa5&?1UMj+=Q@QowezvXG+@4UpoGPE7A{uSjTP}V zYs@Vtk~Ixm0a{R0ck;}SP*5gm$RI%=67d?34m1ZJvHD5t;Jjc_BIY9s{L_l2Ru9kt zj)QC{Jx@MN+J+J>u*Y?$LtR^;SC@hEDXD6E=9ad+h$g@?Gr*qEBnS+eOrJp2oduW| zV*yWS*ef?Jtj;9~3Cumhj6D3qXu@4wuBUl%Y0!D-wvX1?}LwO6@0Oo;^Xd<3=x3N7d0#iig{ziLSL{g z4yd8b?L~j0bfIwDz;lu_OdVWV%{^vh#yR~lK4(hRZL)gWnEA^8c|vUz=D z=XR@}jJ$e#Uj@QI_e(;fO;Td^JJnr_qYVSKn8tY5`sy^+fC8>3(I*_YOrZZle8jbFLUV-rp{`H80`x z(4>^5PjBZh7>7T zd)D^>3!PRqYxx~8fnLdAy zbuSY?7VE?j&6X1B(|fPfrWZDHTYh&dprU`{e0FTym)89i4@=ip3S9F@c_HIWhlh9; zRQcv@p7*1AgJX{S2oE(~lvU-5w_|a_rfq)P4 zRDQRJx0hSCst>}Gsrz$V16c9bES^t`+2?>4C#Eppx1^1VSK5pszbQoQ5asUxKr^L% zO~SbZ8$!L3rD+{N6z74{dG}VHGbulb?$+=%L<79Tb6)}a4GdOQxLuGzB}s9g`{}@v zS4-4ms59syg=m@)u~dF_Go&^LZ#~Grs!{qaq2Gkit}F*9qGv;`0Hfe2GeA&nIe_a@ zGW25+w(r6jIfzOpvz5%`Zoag>u+*lcw6qieSQ+Yc7HGrV)0fPj>uvb@<#{T77v~b< zs=oM@34AnxUk$NF&|d9iu@?MH*=kr8|Yu2+|D#qmk~8 z-@eZ|&v}0T!gingzCN$(9f)Culqv3U*OE4wgX$zxUG|FhftS0nG<_eHw2Xv4559N~sDf->o*ZZ)%5Hln#&)(BkirUM2tFi@o6((28tubhc zSAH$#T_PTDRdTIvG}geuq#T|F&BKr%>AJKVi`Bx{q}9)|W-&fbT&gy7k%D4Is-l{l2zI$%tEm(((^89?}VLZH@RP4%xg~FDzC&2RkSLu#&vOFWFAiok35sFao@0MD)i)El?V_{6%g??2aju)k)<@ zRT9l*WjcK@ul4Wb0j-kdxRq$3{K*&x|2={9O2)ufKQWtw+<)=T!YyC0!IhjZXrplI z9Ayh?GQxx9E*b)VDB)q2xZij)VBY$z8A}(04JlOb$`JpLAPxhs;FF1Bxv&xJhwc@6 z;Xn(>_E=9WO2*l&El|gswN|(1k<&gTzObG7i#zwp_i$7<*eczetO>232CMXJf`FgY z$ADW#4^a*3*}R(Zm*>nSFNGTO{33Nl-ave~jCJ|CbB3xyx=?DntRXJz zIi=RS*R=p7^R>BXk%E40nANP_I%1hHfT`;;waJd+qiV76;JASpv)d%c3Z=ss0=$ zO9i$lO8f@--cSnxVZ=;GuzLgs^Qs6moZF%>%ct(;h zgTxGA-YC%04tE!sO}0;bBxa^#>xb+wqRlPgG2Um7=jF-&qa<@NJJ{kh$PQ`!5=(o% z$!%~vd{BE_v|_|^?O9)c7(r@if{Q)pu-j9QMdtSB+`uu0o{Ps%LfP$iUV(gk`MbHd zh!)-5n#=?(y85&=H_H4ve5k!ewY+=4aMhrJI`3ewN9x1B+8}w!#x>W3hq)G4z(vOG z?Q2diC*ua?tAj1#z(BP|KgV5WzpQAj3N68bXMS~mT8BZbR z-(*Ws_D}B#K5yrm^}c7=V>uV}c-gQ{z40U}8p5UZOyQjVTdZ41?gKPii@VVZv}IXnVWa(%o7i3-}=L>vI&w} zSopb=>p01MDR?L{mk1`qyVJWXm4KVj-+~7T)-fzT`OqTnvEgR|PNKVWLTF!JX-Lv{ zO!cX~dLZ>to6nahk?(&Y)I5R9qSjH@RCJpsSu)CIeyj3#E+QagRFtdN_l*h6cczjr z=@e0H7F%jG&xWVKnJcw3v{5~QNs%t@RYaUPZbZyYCLCvY_L)(hV*av1xB9ht`=B$` z&&7}RFcQvBao_cdcnQ>p`8k9x=&i8k12|>eTjqt!n_vI@sKTB6v&-ZV3v-%Sgy$Kw zEB_=z#+@%7*zIO7{8|{t#9o{{d6)@(eTGi$>gy9O11d)+s2?V&Mko5HWkmV2*`E$G z6lOztP`h=*A2X7!Ba35$f4{4sFR&mR+Bc6`KrR%7&xyPf7l<{6V3xlOh1rVzdE?m? z@P0rgpCX@nM?3^zG{4dPl(~QF|2j5Tj8gYk!~3K z_}r0G^Nv{IE_la%jM(zDThW>B)U=K@iwt{3(U9QSkSXwooM6d~#CgGvaXzRq6c~Xa zv5E1LDFJ%^*elMbJ)YKu~^77lUoXQGiQxa4Hu zm9AJfgz?ApS`gK#S8)Gj$S@IT0!ODuFK1Fvc6i>yrlSjZg9Gf4nl#ywkTp^2ib6>Gj1;c|M`i}TZS@!qM_T< zzv*6!jNp)31ge(`wVKlBn6Nj}z14ZJ%WS8-bSG{v&NQ(r9f3bvjwZ0Z$?YSp17_4R zGV;j>RD5NF?RKO&J=&VKfAHqzozPZkA7WctP_^%3!x=R7*RmYC}+OBWRevng#}2`d>u`%*e)b#DGK zT*iDDHGEN=NeVunZM)0N^C7%v2Z6%7PZ=3Z-Fiq?mAjsxF_`0xgjk760&;PKN^h{u z!=J>SbCdp6&4-`BP_A&+oI-Jo0@-Wd0oHEV-r7 zP_#wM%9%jxpuqgaQsm*1w^sAoy4o{|GRgQ6bfdkzYoa=;^|Xx_oQZB89SKgd;Nn4y8Xa1FRe?DX z&2bYsv^*)P$&b+AkHIohSE`enOIL;D2~;Xk-=B zuN#W#;UMs#^fx>?o%2|(#{P}$`Q1m^eCa^lVsn#9JW_^xU8YCtp6(>ThwmBcGMhSz z3Q0iCNdeX|-0;UWVMPyv0Y zbHf!>k-4%@f3_^xKY!Z*$-o-I889pa<18l73*X}I;9lD~aed{zNSjO%pU^V06lPa3 zG+>a03SDdiEQ{>q56J0_O)3_!8rcaAT)TTP?x(fk)nua}@A_mcrqNusN*-9NJk_Y^ z2-aQV*mo+r227VFEZ7nspLiAxHTg3eXSmsg#zBeXg*2?;Z-kA8Y{V}KVUvTstNkJ#ju)kEX*{uEA)B>@GmtoiGWXRm6yrIesR>cQRtJ}W3Q-RWxPJ= z`r-_TcFq?+qT*wy{b7e1ZO+Vq&4jCO*S=l}K4KHRA6EX9L~MN<^xD#_dFtbbhYRv= zE81~j0VhZzrZ2X-_MoE=Yo93n1S?LGG#e(~KWI7a%u!aJ*UyXHHm zJ*SJ2K3%q|pYVF=T2eYU!wF}@K%6h;!vo|zSZ(rXNa0E3*7KZs$GAX5;1ecR0PZx} zkF0j?EPP2C{?7H%D?q zAA)ILeAr%YnC>qFQz+{|> z!8rT%`P>cA@X~5kx{i$QTi!#@LXZ|q1u}}^gwF2+A&cWtY>#K~y$92Qd(R3SM`dED z@K?z#(~aZ#Pzhk`D(_XkG)<@C4KVL}-lN6a8~9F zPXg<$3xqSb1trY~rLqd1MHIGoruk{6z3Y-2!G!Q!@oxhN-(BBpWUMSKWE|MoihvMz z7uBCXD*>DvkN+Z$oCNgJB03?bL2uI;79c zGB!rSmjNd$1*DGsl|)xXYy=h)!%^G-*Dqp~!aoyrkzgR4yN>R=YS3M-%KL_DN!!MH zES~;8eLb%I>pJPu{)hEJizl5~(*>f^TRi=o`)`{sx{IHQiN`r1z=HsyR}uF6SI`xA z(8=@5=4f+=3D=pbN`!g!0I(4cCMhbkMR0x<8{>E%5*tymp3J>RzaZguT_w_&d|j)Z zsd8N{)Ih}ktwlg#>||g%8dx_U`h~KQNmTm=Cv|xD+@@X)-!^Lq1$!*n;Vx*`^nIKVY8ej@ z!Nr$ie22{JdE)=lz)SR`&D8$!nwh~?S^&qS5}$9*j;f^D^!>7OXkS-|xB~LKbYa~z zX{hOqoG_n?updk-@uT4Qg}W4Q4}Ij{e$UErAv4f z{K$euCF}wPnu`Q3Ei`}(>Jy^|!oG>);# zOI|OI=X);^P@Vp`yKk$Fc#MrlyFIN}6pEzaDNC;8*EFau`qBLr4eQk%7A)B=7$?2v zwL#d~eAaZKy_D^k)$yC?at`A;kV_FLWpiC0*#vjJkfp2D09c2NJb*HQjlF-ggQqbN z)dYm%%X5FTz~|K8pL~vw_5UrhrL7Fvw#G*=CApE9&25RR*Q*ymQ@`RUKyw|SH9h!S zO*@HjE8g1piQswI-B3}CtM}_COQ~`V(}d*q9pNqpgC8^@Pc^^xISkT-fWJNe@cfA7 zMlaFvgka5{#Nequ1q|LUL|x{UlP**_V{+3ksAUO{zfSK#Ri$h$2i+ZLQsR4ep|W{L z^1(P=KRmJ3mi<(PtR$fpRd3&B91(Jr{_g1&#pg;*0*|hYJ>BRaiXug?|IL6fJ^ySkxEnXlRp58L^WA zbIoIter@}ZUPqTs1GqJ#b7R-iRH5m+G-QIv2?JW|Pj4`SUy{pyZc1W<3Hi< zpdP|KDSMAZk8|^MJF71jaRxnLx`?N$q!9vnTM+^0Fd4u-6*G_Cd4Cdcea@U3f}{RR zhh+UYXqB3GP_lfgWUtOEl$d~hMwZLKt11#v z40z!`20Si(Ri7sgc9!kF!<;wcjSA)tJoL5x^!u`Cr}p&;u&X0dZg1kkPw_|A?Kf$y z)WX^(*T=d#JRuYT-e7z_w!ufZM6mo!=Jg`&vyppd%m$bmpwCJ^K$?=2(yf4=j&fxvUo9gf4GJ$qbJ*-$SEqH>1sZ^tzf^W+ z159@L;T5nsQL=uJ16a=A1`FbdW@#WO<`sS?4Jyd z)5v~v?iU>Ag<+bzJ*)8>&d`{sWi&UBvI!pO%>#u0 zG79$P3u+|4j2V24rE?Xdh!eaBi|8*hW>1DVUlPx2ydCp#r}oQzK1+7aUNV7p^AcDj zyE&oWWgbotxwad2d(QTr?iN$y_vlB;Gad76&Yd@Tbv9M$;nO93mD*eLAX#*K48Wpd zuK>lT?uwsY$v=3Xh&)GxhE9I|G)jj1_Uzu3bRD)<3zVIv_=Dc{wp%y`);Bp5YjWV4;Q!s;{_m8-_ z#Y&cluwh4O_yNZGM|H!i*8kYDiwN+Wl4*0&fDOy)6>2!Va4Y^=*rpfWDN_o4{F4UD~ke+v_fES%uk#bSZ@FE&`17ZPt0lGNP z^94A#DJo;quuD`@TK+exWFO!p0vP>AgXTOs1Y)}a=_dBNBz09Y0V`%LTqr?12AB#o z{m`EXz?LXJTHB<~1^a$u3p&Hz81=msC9?h56%A+`6Zn1FJJD~7l=r748g;DMRGxoSMcJ0%R zA~_RN>!_MgI~=%#ULq<>H|qtY$K&=cNK*Tl=(cgDqw{|q%ycEz6d)#ld8nSF2NmEu{oKnA+`B*v*Yga%n&~;tz z<+%{Xf%=^3*GJXkpRL4J$e@k;oRv#6)sY~6u|A*GHGsDvtl~QaM~q_Ms^*#k4A#f% z_&$y1%@$Bh?gkh{4a!Z}kCkdH$poW4cux(A>%*rF(g#(4ZM;zvUiMo@%eGnSQ0rDQL7esWKSCGgow zPqbnUWNURag7N+<+~I)wzyt8c9)Bu};FUa*{35cP(U)+oop0JJ-VIExN8NVjcEf#* zTWl|XIoe!JiBqzhhm?P=bCzF|itfpIdw=+DL8_`8vI*J8?@)$>wX zzFbbL2Y^?8!0aX_SAo74;!tDAzXgql%gp^&K8;i;mdiSl5gV62e|>&Z z;y_Lld`a|#VYey32~UKXusw)>9tw!Oouls?%RQyGDjBlk41!>l;U|Pnnw{!L)$bks zZLY1#D<}}lQ4VT7o2yo8O`z?-BJ}iS`&<$=PZehBxEwApHPeSK9GlERr0NYC?NEqQ?CYHqE%?AdIyWO{XE46 zrg7|CeS&44>z8lnJRQv$qx#&_T!5%R*BL5nI#4s%0#Y)=YfF1Gk&?5QK}2UP-vak( z=6Pmd@W%~!d0i_+cQbN#bTyr`pxl@IZDM2f$biE$*v5q?duPXoiW^hg^G98s1NGrQ45H_@9IqgwtgN#oTENlLfB6X+ts z@@kv`k3}~3Ueved0(znWz^=xxU6YPppHHMFEx%M$@5JZbH$F>=+?0wAz`z6S2X(Ey zDLAzy5}?8D3krUHJ!}J^NTFev%}tCTR$4V#p|i&eIo1_bn7yog^X%duN`OyH^qKQe zzF(b&PqS}ZhItcVF@W*Y23WBn5~mfLc>e=;pVh^S4@&zYuLakErmZ+NduYSaorGXn z8&$s{!1>8VGj4*uerMbeZ#Ca&19u;RL(81oIFtj63hkNj(qf`Xu!_+=7Ik<=nN0xM z*&Mnmw!P+?Sb3$gY|G62&_snkg-l}M>ho-3Aav{_aH77c7cUwP6U}n&{;q2x%VHT` zg)whBK1*ZT{PX!U#*Ly?+^$BsH4T8lRZEEt;6l6?zABN^O;R65cbURoFKVrjl^ql@ zklH5AFlS;+867DlC*jlPlM{Nx5iv^6-VgA9e^VSfn@+QP{z} zC{#G5@>Fi~mFL`aB7c33VxntE}F*D4v&1F+8KkR%1B# zLfK@8yva2O!$0OYse4m3I@LJ`*RxA5;m<#yzADSWFUbVm^LPd;W;VO5lRi%yknVSm zE>}N1_l5jyY*Lf&-7tt3}d|KJFn)qn$RX$e$w}Ds^4M-K|wrnuSel|$;O2};*!fB)@ol0veY2a&w1ts zI*x^NqGCObkx+oR=mQggX}DsMZCJ<<14)fRCxIU3hgr6UIWaztisE&~xOc!Tnf?wI z@f}fz<_ae};*MnuL>hr0dZ{!uA&H$M&~U+EfF;laZH!G=$yM4)dNv;`U|S0y%n_g< zAtVm31J#GtZQz-3^}oM8G2mo0)M20@HJ-r++_S(uX;mcAA-?>GBT2(>+^!0zpwk#; z?fOAwNxwSI>j|TJwtt~FW$eU5&VQ@ulLLplq7_YqH7g$sTb(}q!%1L;bKX&UNWq6& z@I|VEgLR|FFKu6vPg~yN#7a!rXAmKr7LM}c+gPy5+!iZxoD)r@4l;$Fk3j`eFDe4T z<;lPNFT-m9*D-g$GyU2g?k*!Dm?ctzYO90U;r`ow@syQ)p3yMX!Tbcwf3ss5g7%?;-RgA+*%;Q@wBi!~x^doS`*Tq%5+pwMB*AJYBZ}@M{IMl7#tM--n z64O(YWF+Gr=|xYraz^#o9&k1K3!UZ9)=6XRf@2=>ThKT^UUBx ze8!W2AUraS4p%ZsWP5ueYKhc-fl#dXZ9X^~3=tpZrNVt|6zzATyVTjaDA~S>vn=$i zG9*7h1V>Nq5E)o~pTWr<4m}($OyrA3ChKJ-X7|pi?w|b;=zQ`!6(r&ZEXH(Ok55O$ zJw67JeEGeJej0XMNx1Dz&g@Ko+2_h?{&|#SVuobR0LQi9V2Atp#8WY0ql(Vf#39|^ z)Yw^w69-d!eAAW9VqJUjf<~2}*eweMfT%%(!VFlseiC-iuRR3e(q0_M@wfg%<82fG zB`o`sO#sLOL84sLI`u;juFxiEB;1aX5P;%h;xj~ur~?UN=Aw7xo0yWs zHGIY~y1fjnW69B~WhujNjB5#Ql<@MB!=#-9G=bWr)Ae`dMbWA)T_J~7cj%EH&efp} zhp$UGsAjLd01og|wgvfLQ9yUv4^1wsAt)W0jm_EC@IkBhfj-#Wmjv>vVd0RZR6BWV zIHz*d20txD$YBmql=Afw?Jcda3ms1zICU1yq%;bjmdkOan(?}cC`=uykt0;VRp$4SjNRvLbFeU1lo{wcT)CT>EQO13++{k_Io7TR& z7LEo+1gx|NS}uJ;P|@}lML)lU?y?eh*pa{1!mPf5?z-X<9gR}F8uV>MxE#S2rY1zt z%Ql<7YAOASeI9NAYz#lOnNOya+v5#@fVmcS==~mvOBz-C3leU;a>?oJZ`BG$rIWpL zJ0exBG+jHd3PM}BWq-Z;8$%<_Kd*`unsPn;wqvn2H)H-Jbn7-{{&v^53~J@B{W;=6 zbH_RFRqoJu`Obq)yNb--pz-J1*&WNB=^Zu??%U_LSo+%=jDmw;%Me$9SCPO1LD!Nx zDTDb@Z}&j4yWXf1cLvKiXdGl+4H!L)T!vBZeA?jPOl&Ox=YvPgLe#3BMIFdVA%jF1#sGqDThSXa&Lfhv#ioVp!>+yXTOUbif_VGNeu9%Z$ndRJ~~|4;1yX|E<+M0I@R^| z=4C+mF)8H4Z`@3Zh9LU#SAy55eKo7@t019qaYw@Dn66ft9)Tj`Xi+uD{@Oz4pNZH&o}= ztOCkF11-nqC0PN8O>;FCX~WAOt1*_66QLQS4_|9(=0|F(huNFhcQ}#$L^*Svw4UWz z@vm|a!f~79DNO$yZJk%7)4u~p8>vxV>5Yf0mEaevo0PMa#{FKblC_zNl@*7FT3Gu40s_%L@Vx|aS5kmREFhZqZ!IzU}uO=ak0 z-!S_CX9+jb(I|ZebS$4pgXeiCKep@vJYsJ6xE@#J8z3FbGG~6dnYLB?Xrhxg&BYS) zmDYFT^C9(OBX^fiD)6gw&q%BBRm<$nUv~%fJ8XtCeREmcHn1F7!mfXIX_nf{iMLCP z;SjQy7_`JlO73>UANGZ=F-DD<{Y7!I%HGQV4BzOX9I!WWpZN#o``o;<@*G@eg@~ro zqv5rFTx-$)PBOBUZgjV(IC%#76{RkXM)*IYP8h4>;re>{YBlem@=wl`-Uuvq(bTv0 zAH~eX_389;O+rj1cevFWu-xg7-sj^V`<6;f`uD!aCpnXW$Uu~bL7~yF3ivQj87T8; zcG5=qH(iPZdW7>LwDQx!_-x3SZE-Xi$Snw-l03$jA9)n1Q<>#Xp-oW(rS{lobE3$n zD1Gt8fH3&}rwR`GMhS)MZMPGSCSJ%?1O89`&%>urc{R2BATlw|11>m$j5z|9x`7+ig(;a%oFqKDWH%Rm%MVpIAL zReWeoAUMA`FrStqbut7X4I;uR6$3PDxPZ5NB|EGdc^C2l-!f>1mW?d#PNDYVXN*YuTAkF_b*52Z{z zTeHY~CPzp6R*QcVMU=m{-5p--s+lGw3(Jw!zPVpCfq1~*qCMxmQ*m`VSitpE70lLZ z`ei1Xi618(iGzB@D=XwJrXP zvMqW&jXJ<_k$0@QayfkW-hhpUUf-la4?b>b&IOGGwm^Kg*#FF1#mp_+gf!a#rB3b| zZD;_=q8DE0{x)w42XS+v0?5@e8UJARErFXl>LN)EINtY?QWQm18m{`lN#`_PRwJkj zQE!6YBl?46%cz2ig{Q-toXi(f4MA=<`X2tA*(+tE@>te6Fd^bcf!jCr4+hc+q80`Iy-xeE5II;c8L|xc!Ax=&ezWw<$Q>k>+6-b zO%oLfQoL+L*5V%FRzcB8$*wFBte2UGprqXO7oA>?OlYk!LN_&traz7kc6$jj{_55g zb1OVs^$$Oim}hB3Ja!^tQ#d*;e)$6j?*Mgo4n{T>_r#noG#u(Qj-Hn9oY2i_HJ=ka z130c|MAY&eP)_&;d`;IyqDN4-TCTt9Z-^Z)u=#2ea%LA&&Aj{vpBEpYnn?t$W%(!5 z;mUV8Kn&Y+Ff6JrMja{p5VzXyxxS#Em{iMSLw<+)QkNY1NWEHk1(Rd~j>QxCZE%6= zbIO;~&r(``Fj-0tOkqDZVcWc`Kt4g8Lu*P0r{5J7u~p5lRE3TH`uLc}^}yu!q1=9N zemQE;BnX}4{K4{^O@O=o`8DrU+rXRBu zFqU753?lpxW5vLDzg?@~wCC%h$i?-Ei;jD4pJ^Mf#H48=%!-%}=s=DvFFBpvX&v|1 z$dL;Dx1bRCq6OO%_jY|}B~K$;1rpvW&9Es5nj0-%vYxLdi=UwsOIYLAi*&Mmtg*ZT zoYUwFJ1@TsU~fE{Z++FYkk(-$y`X2H&I2fCWaMff^jit>#|3K1zC6JKl;dt#Dy3pr z)eL-f1?mYlQRF#b99tm-_bp!l=EC6B2V8{%GXiJ2+VDAZY&XbOm!IkYKaR~JT2s6A z@2&^}Dp5Ku?uh@*0`RNLiGXZRCR!GBch8>A83N%;=#wJJg5{$-VSuw4;E)Jfz&~vw zn0<)7VZzrf*MLr6z4_2l_#+vyDLpuV z>6+4=^WM398(>co;Hp~q*ha7g*$VH?;Y8~E6=n0o(TlRJO@5h2qG7`D)w5_N!$M4Jbl}S*u`r=il7qNc86^On>2QemU&+UC-|= z3#Lfw{n*p6Dp>zp2X?}Q;nOph6 zvZ#11e0$_3_7QoJwC_)R>%yfbxg&DZG1j<23^Dzj^#pksjX0NLc*HrEcl&qH>>}wC z9Ub`SB*`0@BLO)k!LUIn1T;VFrw7bX$J`j4=n;Oh1dQ+jwqf4hS7Dg=w96f+j4FAc zRpMl4sflhQkdNT%;XB^q z$p&!YS|vQ|D<7ekjzvSIug0$&yd$Zab_306Axt}$5K}K#SSKzpFxy%C1$wv>ULh7wYJRA*xTwUe*1=bc|_Yg9qCvxmLfBA$~rg4 zu3e$*;mHuIZxVn7Ya(c*;u#II$M3Yew@fw3O`Yi+G(s1l?d9g4T_ehlWiqY^_W zrHB7r=t~96Nx+wG2Ze%;k5^>~KP>JXq6cr0kj)kK(*(EqVLdH{la{ur`z$v&E+!mn z1`$ASPwMSaq#KodM*8`!Ftb~S+6fi;5XqAqM0p%EZOZjGg^f(89Z+aEO|02jo%!?k zn2kSr)n57z)dba~lMHpiav=Vu`DdFDTRlK(a+1+nlGa!4^b%+v!#ZHUGYN8+w2_#5>S3CpV2zjch>j|G^;^ard-VqlE4Mh5okcCL zBlAT~ATt}KAD=I+78&%?& zqZkzVt;T&hVGF3*AN9Xr$a*d@|NjR=Pq-3sa<*w;^!sb67pMTj8;ZD3sRkPP;9_SW zR8kq}hG|N91v)?ca)7IeQXlS%!;F>_-}jMC0E#=4BSuMJ#(G0s?^sIMVC-{jXa;>Q z7}_~O7#e+blW+OEyAq}(K=4xkPdF9A=t-7Ntt8K(Wz(azWh&`?j>Xl8jbo$bmyf4T;?NE1^(Sp&i!{2yF}16wp(At&G#dt=4jsMC7wT}>t3uT_eh;H{LbwN- zqERGLms;`9|Lydudqc`;^srpT?|+kdE!H$D1TKDc0tW2Wv{}~fy^L5HdvWUUhCG!8 z+flctMR%{NcXEF()HEApa`$&2ks(?x2Ab9k##qqJLT!^YRlAO{O1(281XQOiN<{do ztewuS?Sx++S6JusKIe3Kv<`Sh@LD-f<_{4kAt%ow=O>U!s{X^D z`Fbi~O}}E=KFC3=QN`f8_*%dHZn?WaAH(S@zX9y>SS=Sn#iF9FKx_>6liMHI@egwxGMH!`q73`xsUYf?WR*rB`OWtypJ$+JI|tiPU8dCiz{x< zEL9;jHT(L4O@9dYBP_GZB5XOt^tJ0@WhOtB?Un+ucC46-x#YXdKHWNEl#rkcB_c|5 z4;gfau;ERytT^u>r@J*Wa*fDJ#PRD>fDgf^C);dS1L4OG@oQvQQDyMMo(^Z0)RW!4 z{K~*zZ}P_i&)|2Ky!|zRyIAAXFX~U*l2^^|Qv{XwVT!Y(^~w&Ndm0N=s6yu4%Kh%D zLB}MH-QHMIOqf2>=b^)F{GR#kBY%(ZX) z(CUrpb%XlC2GMc)98`b6noLEz)Ec+q!k?F>tYZvnf73$O0#P&a+)V!QXOB6@he4zh zl+=Jm%J#3tbMGf=h1pa4_6!4X#I@jqn{pe3LyHnAx*tvJ7$2OyNb;c_<#^V}-w4Y< zv{$U{CnQx@>~KW$^ZmfD_k#UKO>n5ABF2e4cmGlv@ROPX)5IWpQ7$adL~8QuE{l^) z{(qbzYZ}C{={6%i`5WP_$KR%UBKGb2n zvaH=4>(w9AITbAKSl_JbH3=@Tv}I>kU$P768zA4nzWkB&n>y*BB&j`K!1E;ovMf6m z%R}5~(w&udD9ami>=xT-u>HVu0&t%PY0XV_1HMNAH4T80SNN+^>BRQ*-(D_IA@n-+ zrCp-(C0%bZF^QJ~(wu03+d*A55sN@mJ;1YUFn(^`gBx4WVR5?!aCOh#}Iq_or5fELW~WfK+a6nZx{6i>xcVy+Nd4 zKMt;2&L7YmXaE>pEQxBi03ksuEjl9Dy0rT;B6o#}_Tzv{HKTl%la zehP)EP&-hj&9=QK{M%^Er9MBZT`XitbnhC~OI`h$`|UQt)fM-m|EWde<%jcp(gRaQ zh<^=f_5MfHFdhhLnqnbkF-A|hh}P6mw&H@ozv1VQA$t=3`=4DjbP+GI*u)vmzI_9j zoT=ImMA;PdQW8iii%Om6)!pY2yoi^A6;M*`#X_$`^i1GD2g|<^qLanPrYB5qLepoc zhU8JF!LS5s6WSBW&(J>TQRB=GX(ZVOn1_L&Bdne&^6bQY=%jWlR?@AHVvhH88O>xj zaGk+fB?76ft^Eg(19*x#x>s)kZQV1oSA!nOb|tL=L_XeeL^#<0BRemk&oS#NGF~ z@uC)d9gREapHc^Q?JWRtLx((CIGipuM&tLN9vc{VeLGi^`-?h`ityJjYLNT8g$`@A zmPAq0_srL^ToT(qOF=_7rN$3-wzP2$+e4t=jep&g{-x-&<$HjFXPUHGso^n!vmN(J z1NKs`9nW-;e1+TN^5nBE`|5w~NS6|AGC%cIle&xRO)aSL7y%5S4S`OpO?)%pJaAEE z{)ZOx@rn@N1Ku6X2b|m%sgyq#>|7m&9kWH1K?nA~9|P}Re`wJSkv9IUwLFj7bwzS zrU@#qIkC&rC99}OQwp1nW}|u`_dhti0DP}I#`@2LYrXo_^!kTA)vU7Oe zph4doPp$u+&669x?FG`V+2Mr#?V~Im4vM zvQtx9yZgDyHXc4MG9zP?Tux3-e!?U7SCJ(<{DkMiqY5vb#oov!9ndmmD;(g0h2-Ml z$fTr8)u~lsbRf`JQa$}<1|0Olk&Zjm4}~OwZJnK)2+uP)Vfzd*Q(B^-dw5HkSTsZL zyi8?*PT$CN8-rRU8aS*__s(WbEx4Nh6-~{z6Z#Je?ScL*jA`X+4j~SUI{^k&fBhti zFPbm%95Of@92uLq2eNpp!6U=+AponWM`Gx4Ll!EN=~W;XCtRe$KN)!IhMP+NrtTGd zji=GHHL5{B6(Dl(g3K@>Ic9WQxYTBw*D$VbjhKqfABA=L^i2e8?YP$6vWHUCgj82v z_ECrTlUTD@Ggv4X@%LiR3h(tO)FJk(5G;veG$$9_r;4qJWMf@QCkFVpLNwtg9G_W_ zu@l9_^aB%hUh#JaZD!NO8zUT?PXC>SUESOqpra<^3JtF!9`Q%f{*Q|PZBg8(LEQyt zwgyFk(c}*7qh~E>K~4hi_Q=$}et`=R_S4|~ditYvr`(o68Oi4WklUuq2j+%>v z382R{-)`Fg0db0*{JCqsHtJ=kYgMooRD2=*xp2^z4oqaL@95YV#yy{Rmr3M~cos-` zT>?!38vgbfi`I$xw>4+cs!-$OeA4t3gb_xVsL?c-DN=g>!^L? z7bd=8-&uwK{OM*Y!YsSrp!a2nxncBIOE&Hg4IF^|s_(==;|I@Hg$?hccCqWFnMA<{ z)FY3+eg!l_`-lmfZ@^No)NL1s_wyB8t+n3Ln#k`3-_EFHf++7!hqxd&fQfEB24T*E zyXS|m%QW+bJCg_88cL7j@yx~Hn=RZY!WLMLa3Jkk3k$Ynk9&oIh3;a|5pL)XSH_Pg zm-O8|AqNFg|fZG5>;Jlzj9XrwZeMr7Q z52&Es>FrPIES)4?PO4yCD!-ZV*w*-84_1#QbVv4*$+mXQjGQU`vhmpbW#eoURap(NAF)o3( zb+B&ETyA^Ge3Kxl_@AuLX8Y43f0@nj>m!wnZ{IP5QOr_rqD+bZ0+UceHwsM+5}W$LO26Py|R&Y6&f!m3h3&FYks_W z*#H{o1N%A}6Ze}s1yI~iOI;8_^`38#;Ns`<9DKQOFtD(Pn4t~D-}DxjA?qmattREj zCquU`HC$ik5H;YQ|39L>I;`pU4R;%i8Y!}Yq@tk2KtMWGKw3p|#ApOYN#|%0DJcPI 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,e%vF6AfCnb8}ugo|`ct1RHI_t8Ri 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∓5$Ff(xPS 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 _7~7;ZMlbW>8l&{lr^Dej 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 diff --git a/_versions/2.7/guides/images/architecture-phases.png b/_versions/2.7/guides/images/architecture-phases.png deleted file mode 100644 index 14d75477c257aba3431a863d864446dfe74ccc67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21594 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%0A4OL>Vwf)kjiRuO&+(Nc8s$B1r4 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 z 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Г{kA`-f>N+gAEX5>aYlD{gZj;W8&U| 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 z zjvWKofvXcbbnp2@L>lATwQpaX&vD2Sd&2%2zvKB9sxZJ`yI$9N!Z(W(#ljL6 zlAXmum***;@3=a(A$Wm{IS%wW+Q!urCr(Uw9N|dUyo)cs_-fL>iaP295Jw2dvye7c zOrCxD)=lkD%GV%&BoN>=oTI+skH3Y$Qb$n>?-=F=zGNI}UFKEdlD^{arTqU-X_-ka z0^G;94PJ2$xUT~D{(1TN1;Si5X!!q~d5Qi{_dit_7Nu_G@gMBp3G+60I0ug=S1>d6 zATV#!bAMt#CN7mCn}VbIn|EM#AI)>&soSDV3e zUx@#B!gThghTkF5SqWWE_*w_}t#?W5-Pc}w?Fklo=vZf+d{ID}dyyq+VWqCuXtW{C zLTrq@h`QrlTgIKiWz(ij%kSU6e+Tj{p{_l_=oqXPp6J9MO*FRgzIx}*oom5mU!x0E zPXg3`51)OL8~hYQ^@t}IsV7DI)EERzk=q#b(kL#Bk$OCR$v2->31hkWG%9yX6osRs zLNO6T2Zo`O{FW$ZCgcfTnh?e`x=bj$mC+FJBEZpaIu`4M{M_8h5Qvj#+kN@2V^qZ$ z<|Bx5gd=M6vPU!Y3$5~Xgt;(Ydx*0H`aA>w*I~TYL9=(D92P@lrWp`GpmLoQp!~-l z^-d0ywFC?NH{((0u0rAa0m8nNf+B^k&?FxTQuFI;M-f5jL{^O><9+joJnwYxqa$7( zWqg4&P7c;XWyZgp_I3`!ic~8AqLU^U8}iCqw{Bglr~lNm_SqFH%8#w-{QBXX!zCzg z_9Mz34Guj)ygd{_gCNSb+#Rf;eeZD9;a%0WHMgBS^q561R@wff-)T`{bS0SD4)2|^ z9hYGJ!Kts?uhs6bJiTQ=TU{5eixb@4ibHXCm*AAPxI=;9?(W5*Kyilxr4$S9?ykk% zCAh=M``vra@BG_)?W{S+eC8OfP5Sfr%~JV#hZF@PpaF=j?z|U@^pSa!R<|y!o-=22 z=XW=ke8#Nui5<82qm@R-K=Y9l=DnATX*n#muk+y1pEVqoDg+d!ZRjhA5c`jiwo=@| ztv5t#zYIZf>J&y51I9}?z1gi_55|K2JDLNJ2}NLk1K>%LHkf=H5#)GruoC#MT|`%8 zq>zeiv+1xf=5J8dBTtA*&JzxvjJH&z`HLY|e?iU(Q#gyp_8ZH#v9_eZ2lcR62?n-} zZSt2s<90ZS+6BD1Y-U-Qi~-B#VOq{W`z?aWslZ?F^RJybo`+*n`yq`I$ZDxle*P`#&Yrx`^6_|5d>3%KOfOY-vS_QbZY&C;6 z-nGeRf8b|Vghv2Mv_4y`vqw$LK_OK(7DWfT&x@>b%J3C00y=Db`^i!bocAhOtm2Q< zT`qQ^Smkd2LNVavg!8SO_F365O(X@>hn=fx2A0KRy z{H)7dkDtbbN0&I1LwxPNPrdgGGYC+Z-h6j_D-GOi>%rT)ZgR)J=fGzhRA>Gc1uAxlGj4s=@lAKZX-R6&~ov_jJjG zIr9wH7SfyUGy8`lvnMH!^J{A^EY+2TS9JJof5EA7_`BfB=mnGbdj@{n**- z2Ci(-Wq}KHw3y%mc0_5l1zx=$HQ8;Qop$US9<*rB6uM33A}pUgbY#AJz`md9zclJ8 zm@z0K9404sxu&di&h2xlR~Ol;{!naa0gV|mgpMk%d!yMqQrcf6{VZdB*Jk5A`OKC$ zZAL;eeqG?3P`6Sgw&Uc&Qm0qQ{j-#MDjM7CVGHV`oFnW`;5v{Rs}WkBc`v?zIrR_a zAx_ePk^b-b?EEd>;N?vO9*v$?BYGySIHx^^yC6)$4dKfyeWBFf0&#o^?Lp-ex(w0k zDY5nrJkG~`q(uUKTCWTQ_GH159azHkC}aC-DOl0;aL=MHW!Fz^2BMMyE6$F6e_bCD zRpcIt0Vj4Mb)Iu}<+Q1^Wg*)Gd!}HE`4U{Jy8W}4b*2&{&NFA!R-3yWnSBy87?P~c zq3M~m(QgS<3sxdt;siC!Aq}^TGOhEMR~->(_G7;rT)}}P)Mgw5nMMxpNR*f5Epo{Tw7aI*abrYy*u|%Y8PSk`f+0)Vi0Q>vKBh;5J`zs0jZ6bk0`bM zu|B`W@M$ACSu)o=wv$+x^GjRMK)~YE0&m{MVEQwzX@~rham&WBuRKV>U&?P|PJAm4 zoaMx3f8!%Q5mfq}azjnfXlfPq_ym`?eEZqMRl! zlf_IMjJc$=YP0wZ;_(%_u5SA%(HUJGX{{VNpN37YUEMUjPm4l(o&dw!!?`R_G)bP<4ZHh@@Ep^r-dI%FBUK95)r=*=m;9JA0~8BMWuQT{o8#g9-+ z0Q)zzOe(1rtAz_g&j-(3^OIBs-Z*$lO}ij`RWQlZ#(Z!-Ok30l35eRN+oRVNohNke{T*gH9> zVU#I)-dxNO%)DSSLex3#TvBTycp+-3YGk~i59`*og0RrpEecb)@*%_h8nVYs$)d(O zx0@+uUY}M3GD-5J(9YJG^n4L;owyk(ZhFDCXTyqCBgj5`8BcPtjC58w6}*X06}CK-cQ}0O}>d>DVjAyS~V4pb=ii99B^Gn~3zR`qf!Q zUs6|NcLd};=rWbt7!9E?;%*8j;#B|~No7+ToRc8ALppMW8ayzXz&QrM};kZqT{r)o01u`btj*$mSG^42R*EA0{ku zH58VdpysruzC%8aOmDEE?TLi1S%1l|isRtn2i=|%L(x?xg znW4XN1zdF**EVS%jV1sIA(0Wv$m%&|!87hcd;URJ1~KyvOT`%OX;+OYH*X1UX)ZIf zzNRskZdO9Xwx&A?HNwNa&GKp_zRsyxU^o8*W>Jpqx_z;=c2oRFM>DN@uQ3%K8f@W5 z>wy=x3ViCWZ_Fcfh(G2YueMUyu{pDhs0F#;h=(UXJn3PWGmr;oIyqkRAswE^*9Hf1;Tj{ealJDY>ku%YaB3!r{zytEI3j)1yOSQDKOjnJ#TP3JHul zfG@r`4+D2@`!n>UsEVpa>2nm0zbBbTyF0FeTox`x3lOK`4c{j3X*Uhfd!KLq=++@Y zD0w`>PkChRP?em)$7RI7rJ;R^v`!rX`tE9U2eoZtt@o z_^Kpl3=lczrXt^omwF)*mfA8neK*Bh^Dl$FC;5Y*vuIXygVxEw!{ln!o24+_CM9Y) zCF{{)G}0)bA-IbBa_$e*xWq~UYX_~_g4+=jxB5kiu2Xy&-U8{Xs&Fi4pwSocj4$Ej zYcJZ4q?fDze-HOww<(d!>)$QxeoSXEz8HZ;Wpw^*!l4=w6jl$#PnV3s(Cu6wJnoUytvD^al@yI*JM zk92G)T33n4M$=uMkl!352?ky=F@r;XDKCF^a6mY$=0X?A`Ix4t=SoChd2L?%u|Nr3 z3tJ3jy_f#U+OTM!nS80wEzofv)jYAr`mK%zk~Slzd2kyG~_@amah1#=v;;c0#KR z7IRz1jU0^B;%`3N1@zT=+eLVl-6}Jn49Ju(g1aLCdu#XckJC4vv6T&(O(8Mf>Wymw z6$W0M>7+P~-gEY5$Jxtl;>f>00?3$MtgDi-XcisiJ zXWcqe827#8E{QfRZ#s`m9Ql}M1Hfd9rGRb@JMJZ$<7|-J;iSLDcQ3}-`KfRQu?fCu zZcAIQ<==-l9Z(5jZ11or?ICZ%M*Hg=4rSLCN?VgcIekDzsRx9T?i?1>{{4;NRDX#P zr?AaIG=!+WsP%|Scz>J-+wXGX-uFpbP&8}cuOsfAc&=WTC$$GU|JZ5YwZ$L&rpe2V zqq1d7f!L!8oQ61t!1`34&}%Q|1duO9`sli9mMB*4b{4CeZwy2{?&F0`<8l&f7B`R8 zMD~R6blCfj%GoEzJkYXU8w|&-@lkuTNA~?Rzp*Zc0MW2D2wWQ#lN{@CS0?>KUaxp zh}(Y_KoNz_)E;b;GiTiYz{Xri)Rl02XaVg6gP2{ia87@XMJpO%sL;I*ZBThHI(r06 z{$f=?Dju)-N^{E9XNYIc$-Afg@{X-X0iPwk$RZn+m+jAmkckP)?2MC(DI>yW*SYXXswjkA-#&6K`rE z((pzaPfme~)`%Y^}|&|8*HP?eV=m)*Ln~3Qdt~b=#mhFTY$a|IEL!TYz%iSju@9mu}^8NT$#A_;52|la%@vGp>`9i`$VI zlQ3?-Np%OM>L2_bl0UQX4eE6 z>TCQn?{xgJkCBU0j6bUd&-INYT*=@nQD6^&?5;tKvhRkyUioic3D3D_>M2EwQe;ow z&OtxhyOKt#d|zj}p-YeFzDi0;vURK88ER8a!8^df-YCVLos8<@e5W@;Jxb+&a{4-X|1mQ0)?K2aXA0SlvZn&3 zlCBS@-u}%cq1*hUu!IXm3W;<1B?T9Z#IX1~M5^qBt~xh!i)!Hm{-Y>wpBg}ZA zw$A<>N^4q}KUGH7PizrHu==mS0^U;Qz35e4>APgTpe8*%!jog$FST{DwCY=> z|1x0OrbIz1N zu#U~NhT*Q+>{%Up=bTbC`_Jp=B=Hw`)!$Gu)25M$MZwm zzvj&3CM0oHwH(Q!ex8;7UM{s9^(ET}hE+fLNAr3`IT3$%ZAakxO5!g!TC)xdilS;k z@R6kU$ZPDE<9%82e?=rXoUjHwA!{kRM@=Tee&A5=>%!2-lFs!6-9yWnQRWKo3I9MT zQ1Kxb9#L?*2rdCGTwXOcy#wZ5H#P_X4vmPNT=K@5X-D2wyjvlxJoH0=|MX9HnWY1! z%@BWaRuN+S4NL=+Kh?r!j?^Ap9?Yf-(m;OGQ5`v}o;%JDWQUAxy>CPau;aoWa&Lp> z;3Aw@yaeuY38Qy^Q9Ns+r`1qlzn_r2`6am7_Pm^?i-IoyWFNN8mC&i-S(H)=Ne$YF zEC?-%FOex2q1Li12)3T{czfJN;-MQW+IxMV^vw^?+>ktu+*#ohoLXbDCiTc6!wRCz zn_eIGm=R^>*9!uagA}yS`|`chzj!rx;o$%gF<)s&g9 zf^OP_8P>oqaZrFzPpW_U=gbo0O8pMm*wmKmS#9iUU~U@KTKMMkQnV5F59@+|fn^s7 z*g8fm^zi2(jPRJzgrLE1r_7u6ITX0cx}aZ(HtIC126%Ca`S4O(e7nvp)|hGAOIe+cwQuIzicgf9*k5t6@XB?DW!M@OrJq@z1GEPdKPYX%%n8uJM_W4O^G(~kmm zomy6Il^YKZr;9d%wZvtbiyxfOd8-)RPPGox<8}GXp>uJzupmPH#QIiZFD%iaCujsD z&;8wsmY^aoGQD1S#0?TKX*dnSg90}-ZRou42g*g15P0~$)(MdQO>c}6V#-o za__l$YQMtE1B(H@vZDK4_tYQa_)e?lyZWlQBReA)c~NwEq9Qu3Szlv8f2VQE`_0PM zdx5LCyYH-h7@JehAsI@|q0Dj}$;5wX^5&VCTI~T~2298b%2dql_DAGLV*c2)j9z5` zZg68m!2!j~D{P+w9_I-T7M9WZXuf3=eT4G02ag}bn7NF-8nLHS9sU9I(SoW?^<-k_zoNdmdI!cR<}o|M(hwlonS0^9BELAY^$=4AzFaB~ zzsrW*TFo$=M@Ug}6of5nh!$N%TMyvUYgZ5hXN=^p+_rH9cx&5G?kRHjM04hUie4*J zSw7ty&7Tfc?$#%|F(&^!-=ipQYm*bMKRext6<6 zZ~6*0Hr%PvAB#bqYAl_VC|;}qf=ZfL_BrgeE=SGXIva&<;TnQj`4dC5si^yo#A7!xXd<|?p8@#yLcG4s)AW1{ zI^g6-qU<`Ty2?KsiCmXJz^YIFqGN71gXlnp`}2b zYWF6{wSK9OZz{=sO!aNQqx2*>8R73{=bxYeA-QjM(|=c~xEg&zt~k^eUG$sLgY9Hs zGPfaXOip!`$6U8!uQ#)vH2}HAwkY}L(l((j$jM0hE!%@+4zB?DF!_kGOBqB+`u=ro`hBY~7&Q62`IO7zyeHNYvvs%Co3&v_X25mTN;Ctg-`R z`F&!HXnOR7D2hBij$crzNAx`QmA0}z%ltF**xhD)>vV>)2p^yVN6AE7b-uQ`Bs@IcQ$YnF_{&U2Hu%(vwi0l7y|O zC?R1!L|yWBn`QIE^7El1Id^0>QYY#m>Y>7<2}631@cxM;@kw{pKrR-$9pg zG>B?V&HQ1a&HFk4gWVIR`|Dx2hY;it> z5F*&3CDA}(DTX$!-w5D_0vGBYO$k#wP<={leF|^WR-VrTK4kw@nM(!UOIK_J-(_Ua zA~MS4{z@HAlsE?UueP{XG%-*N5@RSGq&y#H#)4u`JwSWhePbLXlMV`IHdx}~67>Sh z87No&WlPE*v8UFEm>iznPZsR2hD>|K8~jfes;1UEq8M07Zdo{GGHw99q6^fYboa)_0oOf6zKRQr*82^)5 zbsTU#2Ibnod<2Iutv39l3$xV%%5*P;tFsU1ldrm{)=7*M)l3uuZCQp|mJ|Ag$kC24 z>U=Epi3P#{cANYI9-uPMXq?ZTyj*D*EFtZ@7vD|7F%_-gdFap_(39^Ho9UYv>2bPO@vjM zNe&!?4^L=r(yJaapqC!OwE`S$J#EsT7Ys6fu&I$B`i1#nGNV)9%4ibNytb(g$Hf3oRMv||C;hs!y*o`0qSVoCXw z?9EB;7OZD~`P)J^yWy>YwALb}+>d#(E9B$FomnZZ+%~pJcl!V#lmpTE_`N&Q?cY@3 z?v1TUfa|BNPZJ&kog(Jih&?NYfBY7ELR~|x%ZxuoB%_G2{Mvi^RW{{5TeRspWr-v~9?8zAY<_=^PkAYot!GN-t{b8(y;*t2r3 zpv&qZ+yT8pziehnpr}5=)CN012IQJ@PFQ{vbZ>Kg+hTFMx$;nZe?n>NS8t2^abfmN zd~&To?9;x{`C3hxsK);O&O0!rIZJSBSI*G@+U943!Q5CPzmBf0owK4^I?Es*S2HFb zCmq*vZ#-u0Q~eD#s@Mn|@t-U{(6!3Z3^&vBeC?p~4vtkL%UA1+jCfreWHf93q)Rz|bdLS}G<9=G{W?4|DvLa$`c^Hj^7-P&{;@J{)>y~PPr9|4ZLp{8p#whB_op+&)rLiBd}pSr z*H&#J0A}&yYr!$}T=cc`a|n3y<=Ub&A$9VF8IN9zec6t9Ro*9xfU%cjq0*K+opm6N z7Zv@<&yOJTou7~R{SC~qwzC>;WwmUsKd{da9`Cjpm6B<50DLp<4wTu|=bCirTMMh) zT5+2B-Q5nq0`JL-QUYwbcS=|<0(fo21c0)Oe)xqjD+t>8eZwa3O^|}2HpW0jq}bZ^ ziveq+NYt&5?LGx%V;@`Hn4S$_?0s2ty5mKtMS+d;G`%h9>_b;E-KyA`GWt!c!AyczG^!8!5)%_dEvrm@dD(PaV3T$34`%_raANR zyeQG4GRqZ8{MeQ(HLqZ;QNXv>y(y}FRQ`r(=$-XA*!ekAgNGr)Wyb*z(Y7#%MGPgWb%y=*qb&(WLUKRc==A|iZyn%t^qI>7}7hI;-|h{ z4sRFSZ>1O<66|N(%M{f!cdJCun7}omzwU(eN7PIOW)R(!;w{c(n3wc*2kG8SaLoxV zr;`1t1(D0LA@!Ox+4)B*Vi6Qh^`Y0<+2b>p3EWS(l?{!a7#r#e!Lgkw-t^Yc`HG(X z#!_EH`)!cD_qMM2b|sog9e1dvpxTfTtGU&f%&VOroY}9o;cf5Y`mQbPb0ho$UI~g! zo}d2FaA6(WMd7)cbf1*qR}3!#RNItz#Wv6P81@K`7>^iuPt9?tx{?q$s)s+#G{lmv z<=K&v`**b@Boca+Bh~EJJ!iyKYVMAe6GkK4@P}=(R-ub}jv6cYbRLlUMsZ3OJ$bJW zcrHkPGqvfG@idywEWEvtIoX`hU*^VH9;mn&b9^OGo(s0cqwp{d{icrAbrjWOKj0?A zD%U%u0f&dZVb$@jz``PYrLGYC8;fPY`06`jbEdsH0 zRTsPcDsszg8aB%kg0eYt@~+Ur3kc4Rp$tWt@~)`Iqd9cE5aNn9Fomnr0xgBnc7^5c z9Bn_20$<|s$X#zKHLAcEF(goXU`yA8gY3>8kUij9%ej# zsl%gR`#GgNBK7p(1A;e#>HgQMso5`o{ptgI0+>E0u!&x4z}OO<^B>o#Y=ko4-k|}g z&&|?QiZa}*(Zy`C1NKeG$2Qh6U^(Dcg*>XYtBf@EiVubC?*$#x?cCKfxJ!^S=Z5tI zpIT!VM^_^xwP?F^@PyOq<7Xh2-G&V@C~Uq0A_B|j%k>oq{q{8j&Rau*#@(2!hGYT` zt2jdT#amIn(uFXOyu9{QA$?^1i%nn^buX73*(>$jicSCcaBXY#4*O~~RJ|toCIX0H zLO$o?k#%VfA%%dbZu%@X=rclbTRWr&ZL**;ApXt^^9-yrh-jfDpNlE;At^R*zoT~r~u!SusE=K{}CxCs`xfauoBkpjz{;>9}(Cd$xZ`7 z1gHH0!W3v&Aqc}yk6`YJF5zUuR~4B?($*aHitA92Re1DeFLBjFFG6LV=*l}L#9(}V z7oN)*k05vOjAu4QlehOf%kRHNT;Imh&;IlMoj7aU$W7)k4PkcFZ*sp%xc20Gb2LdC zv?951O<);z0M`_vK>^-}c>c~qUaxAT~Cai1+2fo|@k z*JfoYj=WzluUxr>1N`Zz z5QF3YP4=IO)j8f}l6lRem+UNKKdNMkltDyV6!v%U8j z_^wPsyFY+t`xYVj5y!;HNzDBA3_>iH0R%-h@puBVzBD~X150x*%r3igR;m0;Px3I- zpAHg^Mm2;IA6TEBD=W*-AwGBoau?ADMfQT4G2oa0i1!{i!;v#>Zguv*a-0~>IuxcY zS&QOKEelRp>T`6EF-!7HF$6(kO*m zk0~6XXwTC0++ZY#l1KF~SlLMJ6T%hlPsi{>YvjVPFT%?nY+s!%9NcfOGR1rsFrXrh zp_)m6j`NxD*}o6~C=qpru$`9N8d7tnQhXs51aW8943W1kk1O*ZmSxx!0@zT>HG{+E z=UNhK z+iv(J{}fw}Nkh@mrU7#@=aEkfKQ$)T!nD&-Ll!?g*vnA(;-2gE+&J^>HOFj&qt{q- zg)?TMmrpGK_UtL>uOaN(GX?L3@L{&HazZrR&E%GG{`jC|t5r?wJ=rPb`ACCS4@Tw# z3IdcnuUBK8@rkYRLp68PhbCSop_Irz7(Aqje6pjI^$PHmPT~>dbbtGU|Bw5|b9iaJ zplV`t^J71L&YC^TgE6vXj8SR4{}x-3X}VPuV;i#Yz1;DHF;xdA7il;7|GolZC>MkJ zpAw5IsS-(N!cH#dP|eCo9%-s@0&eYw(S4Xu`?X9V;?c+Cg7Zi5aLuG&szJ(Ac7mj} znQZ8)q=}5rW)4S9d?l#n=?VLje%B5$1Ft!VY{y!_TyXh8Q1)Qi{cBiW%2#h}`rCTH zTM^IC#fm1O7^Vd4aYejCwk#KD3g+T&j+EY&lGtE(Xp#5qb9buiI%8crKi)x_orGv- zgYb|?2ZDwi?iPM7Z20DZy5Rao_vfm~ckEQ>nFuoS1M{i-km>xcE%1^?0E1uir^fD))k} zpkzAJxHhR#(cL-eg}~xjJdZ=VY_0>T19>VVX!VBR=atBwreG>s1p&hfWMilf{pTyT zyXGsHr7}UlzlW9nCDY{T4qEf`z}@%os?ynR z&%4C+uQ3h(4SVy%5mV^{1q2NS zaMv;YDT%BNX!chX?aeV=01jtc2-t3*G`D3o+l+DR$^g0va2n}@TdQ7)1sfl6){W3W zg|{kYXZ~?~bUYQ#n(5Vs^YdB2SxmHx5d17okL?U?#c;J4n^w9x*X>3nNe1+rYn<$upiXgqF(VgI$` z-#@^pGIW?Lf3m3`T^CwcD#N=qf3;9gOGm$T`Y!xsvBt!H! zVhiTJ-&@{Sw^YhP`+P~}r=4RD8bLpHmH)Rk^+PI%;wN4PRh#6>DZVZzwyL~&Eq>!? zmBKD4){q>Qp|~<99kB*k_pKJL*}{>v*o)K_QiMQaKU@KCKY} z`n^Zefvy`ouR`Vnu^#mF^q$vwMp9zWkk|rM2a0g`+eiaKzaPn36D%AYd4k?o-`G}p z{+llS@0=8q!{T+7kk9;7#5Q$ot$yw_Va;xB(fjrFD8u$*z1{Zy^dBB=O1uiUzbE=H zD-7rlDqoL_6WG2WjPj}Cn9S%6ee>YG*|#gUDdnzAZY{EG#&7=A{}&+i>v-s(kENtT zuXj47&!BhAn=twGvA8}+@s5x|gMhrw8(S{d7&pa>pRgzcd$Th}SEuMbUC~(vG*R{N zUNrcu^w8r~W*D%@jIrEpSnLY3ckcfi({v*eWjxhR9qE@i3xDcqx)cau4%i~7uQ6}sS8%?4CbqeSBpRA2_}u$10k z_+B+cK2;4iXp*_u6Z6|_{EY&;19d)1TnLnGW#;Q&ppsoyp&iN#Ud0|%RT=F3osM-) z^`0TpDc!|axnbVk{f?3lvJfTP5tcfu4ZJ8d1^1l-f{nwqr{-^Z8 zK#vVQjFvERxOX&aZTnu>WtkbSB^)&t6Q?e2pO7ba^yLj{n+#*tI_JORUu;JKP3gyI zqpLL}w4_?9B(BJQV4if|1wDgkt0sA?wyO0s0c z2xic*|1_hSys-8AH%0LcdqCar0bec}mG5cIJbAJOnB6)|pPlAR#*^$BHQy8D-X3ib ze|bLg;L)s{MvP1!1xUdOquZL)!P{naHu& z3TI3Ba|C9a=T1BF<83!(uP?`Xj&o9J(Nh10Cgi;9mFCWrkb2yVXizPj>%ULi9pJ<^ zaktj$8N*N(C`5JhttMG5kSkda0jy&IxM9ou2v$Y?ZRSxSfdZ_dok*#1xBrAe>!90+sh=KT#kR<#`r_W4fR73DbY9`yCnLg!XA)EkSV(ifbc% zkZgTUAY}4dDe>5tSvRs|+_Q(;#qod00AW832peVh7kqx|hBxT*wbkB*Gd_2kMkFys zF`gr#2dzMj-9Bi^oQEmBQ>oERO-~umFKy3AIEo}mxJ?O}Wz`IpH*)5mPeXpwU)Y=C z8h7g!dh-0gis<8i6vW4AyKb-vgY-pt=vEntsF%~4${)nhbave;of?`*!{&nYu58`B z@7KWYG8;3h>r{TNQKci!Eh`nBYmhqt-zjXWX6_h);cw{_V1S4aA1u-};$4qV5y)B; zrT$TcEPhN(VVSNevEkucfa-qaN+}W8F0(T^c)`}MLj3J$+p)#~co!v~{f0&kT&}j@OouH`Sk`Q$5Jn)BTi3CFA zfo(wA5Zd(xEAPuqX3N{eLB=kcc~M-3qM6n73qZ0;pzg~SEJCR|_33dOh2rxJ`PWmz9Ct1zD8^B2&UNTWT3Y$q|Ea2 zYH4M2ZM^_J0d#&8$3Y3mJr^gudW{U1O8wt;86N?2-=ZdGxscOvfMD@LkY^y@+Vawe zr|$O(y6o*pUcf7Mt`Mopx5vUnTO@sH5+L&^Eh7RKu-smbqva1W)+W32#k3B_5_6dW zf6Z%`e$a>{Yj>Nhl-Yf_*Lz#3_cIPQRM0WpD?Z^A-l0@#eF|CmOLN)c^g3Cp`^m2} zD_#uh*YV#B6FvCrhs1`S(XU_Gvu1+4=U(+YKAun@6(Q~OTHXh9nEY&4sAdc{u3qLe z(UT%-sS_gRC)+SJ@~_Y~L^m<2&`5j$)0_+VHaH+?{WV~QjR7TiP~C1b6?hbiK!t-Z z`UTd4A|A=m9ra=PCrh=*^>$|dTOgbTe6Xox2U>q|VFQdf3 z>`wQA)H;fQ!&y@+7BzGrw>kz{BnsZRwUH?fB!J5vmVFOrvD5gBt7f)v$Y`i)ZC&m` zYZM{5X>jaEedH`W#djyf?oG{hrXT5H~ zPZfVSkD_62%y3@&g;ZrM<{lE@ENIN1%b83q=|7)C=PmW71+F+d-;f`MF^j+SJuJsR zn&S9L>94jB7AMxIGxF6_bA$+bHW7Y8Vp|xZRbk&K0#<(M@cWaF8W%&C%(zagv;uLB z?HLO5k3qnJuXH1j_hz0n82O}{``Jji6nk?oTUL@dZZh(*E$^aLv4vdRN}{cYGS@d_ z_d+&KwDC(v(^1XNorYI# zL)c@C7ymY}t|T7*VdD+zs-U3`70xjvgWh}y{6$GWzwSNkBuFqECxwObzRLtQ&&Mfc zU5uF3HbBlvT6yLxV>~up)lUW2s|Ji@jVXt=c}pd1BHI?r5jBP98$htxEzjq>IOaZ-7XqaX|MN77v;_55{3l3O8-b{Y1>fr z`8DJ&RsSEW{$IbSgbn?7R5G!9lr{Mf6H@YBB?Z&jE(s+HZnMj-MY`vZh?o!RQ1n&e z*cy`qE_^)-EIxH!3_>G-_|j&!-qJ|sO;4w4)~Xn}B-#n3?up5Jr81$~7}sX<3gca@ zu6irfzs327x2Z&BG38s6<~F!+>hQkMF_onOgYOWI+^tG_!=5Fe+X22NP+=_#B+(2Y z=ulodD{h22`GQHClDKIa!1?ax2V{Px*(3c+us(NSdCdRg?Ep|0o~BYPz6UVtlzH%_ zn8bhSE4of8Sbt|i)YZqWgd(@8qz?QL?0O~_3;oMZYfT=6OhVXwYYrJ6@!kDGXZ1Gf zovGy0%@=X=#~miDg%c6f?;fY?7qY}>VH|SQg4q|J;qDpZaQ}D=cv@=vi(I1AwjFRs zC`BFb8Rr<@_oYc1Z>6-Er$`(LI*3^iXuolv&w5|J$o6>qndLaNJQccqOKr^hl|`lA z7M~JYdqU~Rh>8jrf4wz=&->KvP*-UJCcPKggz!7BZ$0}a$?*v>HC+F@6;0uFV3;W7 zW4y~$=m5quLIMP%v%rJ}Q#xubjEPlvde)}MU8R1633>g>aFqL1Oh>*oWapF@+kDNJ z&w!Ca#)r<*{uoE7u7wS|yaixh`ZkvbIzVBALHSkci63;)WPO|?>Y@RN?|N)l=b6q2 z?*>(dV9lyuMBddqKj%GhzBa6XluAa^T@q7wC3u3s-y*3cCrp)R32KQbP0sT}lHu-W zvq`7&`ME8}(&y(M*+CcY)|XM}Hw|gkU<@qlE1*8t{|Y}4Js=(CZ|X}DC;6GFU?HAp zquzribPr@+g3MLI@(9mzu313U%Uku^k7KAK3NkFjny63VLWlV(sLqt7T}&~Prx%A9 zy7S6+KYVIgt1YkT!M#;3cXWKAb2~S^f^68Bn>1X{urx+e;r^0&E^83_9s>rGAhWQf z)jbzF{Ie7DUMh{1%$I)mP3(Yl+CrDWd+#-c&qr((fUUk&``>5Jn_^Jv()n*V?Y|D1 zJi_B8@mCNmy0%#tw~}>#*Yez$k zdlrdHcs(7JmKwWF%L#9F$5K0eMF6>G5(#e2EgT`E#giT}!3vVtFxr1z`6ALJWxavt zWK~R)ChkqMR8~b)p4XxT?el@Y(H*k;TK6a4-8>dMy}^QPuQ}Ytr7o>V_gReDPCZ`t z?FH%s*^&9m8glHs4KS<{iZ2rUyclR!|F>}@#|Un*C;_5bZ_HA_9uQ+WQq!U<_NOp^ zIkpsEhtWN??D@E7jt<9Z(y^w;1zWp93yzzfz%(=O9&`9pTX^?!p{e4=&poXl`^^p` zbzNgv$#9zT>2o_VQ!JTUvb8RSY4KVkz>i$O|LZ+HJ9PoDy0hyQAtb*IyrJ?qFHj!Q&-B6;@#ap6s3;(9#$|J9klu_enJ zp%&K08p}^VQfj4uW=c|_`XWxx*!eusoubUt#gcQL&GlKaync+jOk5bwMkk{mdW}ME zu_fs3iVbiudt?MRH>g9jC05spS24aU=cj*q>7;9|hZw58^)IR4j zt3Q3CjA73;p?o70{6Fk{RahLzwl0uH6M_eKf&`b~?hu?{!5tFZT>}JY+?@mn?(QxD zf)kv^9U6D&+sVxAJ$v6XcjoavoHsr`x~W?A*T1Be;JD)|G&n1f=8nD}cVT>L`C&Ff zhmoG^VVsK;J);-$n#-n1u<@#%-ucr6**E5nHP3JH8f+LA`xN6`Gb@k4{kq@vhaY(~ z3Scj(CZ7WFO^z12pZ~#*DM7rY35B_AU58KyKz%`KpPOOSmAc5eS}v-cCnG1o$fde4 zV*JP`QsQ+>)l*o2Slalhh1wZmP0086xbU>5lyMt7aS3B1lT054Olk8tDdgUXdz2gLZ{7KFKOUK?3oysThON^b#`~*J^(1rj({8=a9M{`h zit&Ut1R>6~mQ&+%>=(-9C9sDR4Gytumzf8{O~1yZb(5zWdEe!=u%8ubbAeb<@P5z- zR^c;E!`RF|6XB5famn!S$BQ2b6P_f9=zE>|;*pi9H(uMPEaE1anq)18@Pn!{4ld0V zej+u>b2=ReqT)q(1sL^$GK#REItpWw2&P?dHpI!?zNJPfvgOSzvl4s$$p z(^#*%8&c;u*+-fAn6X`n`_~-*zAt+WB%I-1RBO_S7qEEcWqQ=&@Hkko?8>f@%JYeB zH%}4tUaPzcN>&<;w$s{%H_jxrGR81l0^Ddpt!JF&3PUl|lLF;(2Xu#*PE!4|7e}+7 z1FP5ct$QqKJTT?e4+}7R39v+#)LN5{3Um_|ZfX*23Ej(99|U6O2R>E-&+9J0AR);) zDQ@;s7}&?NWC*9|hp;Ghfg>r;(7TYf?w&i(d3g#-@-QoYN`C+-3G?wh6pLm)#_PoI z^m-Ck4421}JeVe#=U-MgwFFF17tS#fQnO4r$F^~{M$BMt%GVz;7j;6y-qdI4=&P{FRsX9#S6dytbSO(I~~Pi=~)mv;I-JHO)`I z^D(wVCbSu~*tn4M%$hhLW0Tf>hN~B&a>J1NJNgP_nQrqHq_x}xX!&@E+g9$(OmubS zZE=f04f5@&C*yw6ME;s5KVw(37jbs_%yI^lDJ2Ed>zcL#p=7uL-3NA!$5o;Ki-RYS z#LL9EVS87&l(>C9R(hkat5){qW{)?(D`v+fKgYBo9errg=x}|zvi$vO>A1wx?P#re zdFUjmv_tpXER95z+gx`GDYeaOcapw#0(gnnU}dq?>2wlDyiM~6Y%(v`WCDd0^4%7l z8^ia=xH)PPmPMZ48OIJe2U90`uW4B_Xy&Hb6u;*^gZE-yc^}&KoS1imm3guS+8z!k z#s(J~DMKb7uz&?wzP_4>YiY)6Pj(8s`60-*y%`5O)?L4Kxz4@WILWbJ?`vH{i@7J{ z`ydn*YtCTG8&oBUH8JvT&qFY5KI`*wBahrFrO?sQJqh2((aRAD%FPG7U7sjGE&3FY z932;S-sf!$A#yyX1k<4%=^<|_^LdWQS(3%a7f!-b%>E=m6@7<@$nx!tz$|M}+k^Ib z>qiB>93lOu#9s3PUx{y1(MoyaYV;i@6|2p0=Ot>SyZq@hV{LGA)wc4=zdTTp@Nr8x za)kVbBd7|129k)Rj7}JwZprO{Nyy44J)b)Gfx1;DGIVi+5lGF}+ZYY}m$Sw^&?c6J z>$Cijmq6F(&MU9)f;3XPn}O5zH95@&vdpJtn&;VuPCZW~Ir%WSt;NvK*x*uI&+|sQ zL<3k#0A{>f4+bPQxzMOEu2QJFd;sg=n!vyr*~u$(rNeb^Fmz_EwZCv82lYo%zCg7+ zfr0%3K8GbYS~JpgX#VUZ5?Og}hGqSTTdl}^Y@etM%?ox(!B3!^k4qbU)#lykF!f`` zXq_D7u!`Ld)k^<@)B{pBUP~GlkB>yb5m4C}A56olv5S?01`a}-{iGWO@wgxC(LODq z8aBj6RpWCxD99A__IS;gC%XOdVmlLGztETIY`II&`?f}cXFT#YoC_QUk!B(Mh?Au@ za3|7cy>f$a-O~DDri|DSWg2_xR(2v;v8{DrNanfg^Fb0~a}P17XB1LJd#+NZ5<2(b zdisrKbR+qPc?yjV*=G5NYkfYIOQDlT*qPDHU|}MF7YekJLiSeBdbYkGMsVZc`6t!j zn$xckoubElAKLCOC`)+{K3lR7g|FG^P8`IW6)xMnj@-9jZ!Z~J^7AN?ZtoP*C*v{P zdob4G0Wd3?BB^c344jv>d>|>Prut>tvj8x~JFr=h;SwV|HA*zcUj!GIyE+#S7UC2m z)sA-SV|~@oD!oNtRy1!8Fxi_boR29c4rpsv1rk2*DGh`dO=95pZgjJRZeP zN_V1=x^zGREi}yKFh<&t%j9o_gB=!~@1>@;Ii!rs5j(H-W`HXYHgq+(E>OO6SM&%l zVX2n|EOKJJ98A5QRH!L#?nGGad=3XufAKD}|0p6839Sax3w*rV9mnTe+1XfsLvw?)C9=TT z4x)RN4J`I#*Ef|!jDZ_3Xf1{OAP=-V<(ushb2x~KSMD1G^q;VGb-v!vh231`Y_xu) zOwR&RTRazAp+(A70`0{WP6V@?L1WPn!5wjIx~+XQ>f#<}Eb{L{>uuk>^Ru!PvzVUk zPue6WdWb5%YHcpugr-uY>0_k{uO>5Fo>csNTly7H&;Euk?GgRH3R9~KnNsQ9I}fB_ zOAS2sBI0-!TIk3+@=NkAMk6?9tii+`0PX5CZ4m(8kEWEIe8FpT@2u>Ijmp?ldRn1n zxF|wPA^U`eRQ|~$pEdunbgf7jSIfg`WEi=R>Sys47Q}FAj6+GxpiUG|;txrzaSIF( z`n1y95WW*c=Y^F$YO67b0kSFl4g~z4u=D`EmY@@l$eN?R2p&-bZ zgrQ>IL%)!wMBJR;&7*Pn8G+h$5z+qC7)BjY^g-fx@LIqlnY2z6;oOJV;Iu{M^bLJ# zAnnn7-%C%gduGUl-~jF&txdfstzT}!Sm;MhVjP85Q>m&&BuEcoy)>&^K`+TqcAxL& zIatj6PAo3;B)qH!%MkNfYR+_6O>JojcPnsuI@|~@S?UKxcFt^#nCKvTre|);v{BrE zK$BK@xEjA8TyJkLZ`gvAMeJM*p%CKTgeKrxXdZEL%(oBEAZ(G01^R~k`=c8koIS=$ z=K4&Ev0g}()J*Ypm!&z=+3;B*GP%pkPe4^;LPK_-Qj9X7f2x+SbgUo;rYtX70up|3!&kkgj>Q#f`PEYeWnd8|@}GTSSn=7 zI~*qmYVuvoClLf?J>9}?g%s10vpFdwIfw1M66QxSyL5&z)Fbq2@e@OC@S%aKOR^3O z^}EjkZ8Bv5im?=?xj<2mnRrN!<3MtDuW_4a=S1@hb>2TN3iRa(5x~v5Nv`mm5A6}` zSI>X!Gm_Crt06f2O>h*Th_PO_I8E!=KJ>-dmcu-T)oT!tmEVd7M*^_;Fy5T>dNg|C z`x%cV&2A#C0REzf)r4Xbq1$!jGTSNBOS7DWF@~`vNl*keV=uL3RFp?oKr!CIU{w;1#De#F+_7F$wk93>zA*YNwIPX-5p%A?_u<_BQGR;vXul z_+TJ7()I80%V~2XYLg*w4x>{`71JBqfT0C-XJNo(fJ7At^K@L_AJPn$A~8IoqYHWx zW&iwa0-DZz4ImicArXzl=;mV6AkLKIVNh@(6Xpve*)Hu39q3STU?biY$IYBDtFa`-MkNUjPqy-!W%UGdV+;1kc(yG#YeNDolZLCqi|*17a)nd9P> zc$NXLo@GO@hixaZSn(nln&bS3){!9l5U(Bz7gxBd3?1K_wBau2!(^~__6#ehl$WW; z)8tdVjZsO>npP{iw-AHMe|#@YM=lC-)#oy|rA%p<4V8X9SwoJWc7xcEuB4waqfK2rey& zmwl%LWLU2r*7e=-3FI0!UB1P|HWS<|YwOORr6Xrjx&(@J3{|fsE}9F=WmEA-=SjF; z%Er9WwmCoPk-?^1rJZVL8CXzFil-%(xni{S?=VTf63|^t9a2i1vvKbbA5m-ohYHHr zdQqXeihbX|&I3$}4;iigzM^+DaHa1or+Fb&!PByF6bHR>z>z@ZR$>IBgvg%hGTEd? zJJpHi_{K$0wrwNJJB`mRo|)4YqZP(ysn7uYX0xGoHx|QN#Y3u7H7UH~Qnl%6ZISqT z^UK}IZHz|{zFb)QP<`9&Xzd!$Ku@te66ulZ4@YEh7WK0GqWdk7OCDNJ0EOe2CO{L} z8;@YU87yZh8s*8wX&s(L0LX^4axl4}LfRj%RQ~7%pr{6&0w5Q&58wMQ@_|~L=y1c# z`eJ7G_zozC8)v;iQt@n8>RXi{2`2mH1>1IksK(u!<@Gl>BH-c8!$DF~kIOX)825h3 zdT*Ia5k7*0hfH7^)}dqvr4;i=oN^$MwH}-0YgeM%@b>Dw3Ye8UAzOz5O2k0H;5MZ-Zbi0sU28p2dvDDIy;kVrP z_J8PR=;!t^R*n{Mlk+n}F^9Q8*zM$|OoLT?l@NaoBGR{OYvu0yX9EIT<^s_O!a9Il zohcdPvd+VGYh4H+OXH2t7Qy^+8>?|&i3@1*zVIfg{F6Z}rYZeynHtC$^+3I)>WI{UNmhBpn}pgrQ@!;|!E_Hz%>WDKQBNWECKv?m9mk0qv{L)d`UL@b zHGgsU9x7#K;xn@^VXJ>puX12PZ?`(c<{ractB=#D2^IwhFt!!z02?$}LvRtJy#Qgi6nD_)yI6 zl2uIBcV;Zn<9jk|PR?ECFjnI?ocBp({#-sY&iQv(b5XYAA2-AqE}3PO8__JvRtPR8 zp|u}1@dDMKa-ZGoJg+a|bxErd8bF2tS7l$TZ@lleq*2BvPt%@X;R2-Wm?N_ruXY7_ zb~-R!Uu;8MW0jX=%o+1hiR>o-c=!1gx0`Tak(cOYh_D0v>3Jvul#uVboG!+;@eHH{zI* zdmkus{PbQUYs+_Ja1kfbAq;(u;{@~-m zLAi-u2j||$)1&QPb9^b#j3KPWHCgP0!yN8#GT4{h#cx_bsBfKk&TfWCeF4g8O#DzI z9q<^Bc|)>GLMYwrvNQJiQ4Pc?(#8Hv{`*b6mJ-z?QpIbzjJ-t5ulzG# z-$XlXSG_v+if^dCAYH=9ei}!Yz4E}I6xAD}&KVofQ;Gn&K13Rhi14!NYpk)q!7;wMx{t$lFr0)s3 z0o(iI-bk;0u^l#b%}(b-OzA7>+c3AUegbQ4k-b#nWJ(!pJ)S6-BzG9otkY=F88BTl znazJu|1Eb0)4qWuZ?Sn+|BR&qKQ63lj4Qu^n_gfG6&&C^f0V3W`+mAQemvho{pRIe zys5%FKb_KylEu`VK_PC}1TT3M?>29ulzGp>j){ri(}h@|<*WdFG%%N=IWinAcA}WCs%cqdm-*gfYk`s8@ zo9)5TXg~duqLb(M_$8&fPo>XNdEL2d<_#Y3i#H-u}WNl;DvI=PhS6rT$ z?sL1_-14|(LjrK3!CvnTRVngB1t$P$z-|wJW>;voKDw|-F&{k$&2~0K*G^Zd4W|<; zkp;{srNzmG8N=Sk4b(1Nh*~^V0gDa5@L7Zu z?I-QT_2QZb49RII1gU7q9v#K>;)hbttgUtyFdybILws=`_X!S2<_9FVzNWovu~Ucn z9myqP9WEPYOZv;lC`pNld&xr!(3U=@^mvs~UD4jqalq@nvrWL1v{XD@{29{VLmjMyC*q0CSET?r#?rFvZLzNP!>V^Zka?XwxuTcX9>qFDASAR z4tIwY$RN>6zCM|K(*Qw#L?g<&7uD1}WB=)jkP)LBSh*84ZK`gtZ53GP_oPzP!$0Oi zjga&~w>8zZFht>O!>0l7Rv;A&f84;|E@CV+a=po@gLe6)+4wD;3=`E{SbSZT2v$6y z%#Q#8@mc*U&|Jt;Xl!eGw4 z;Ub0uhH}BH&geP=xd`H*JxBf%Nzg|%K05vRJIEX#8uy#9_x2#Z>T3K%GA)N#Dp_L#pM!VVW_|vR zFdSyIAAm~9QKHNjz=*XXdLan(9qFC3Vn*7i}WB4d7;*iNo z_ujjX0_%{z|+CZQ+P90HzzFKMp!dvb>UG;q-G&w{@8@?ie#WG zn*}3aqw%7boukM>%bkrnh(xO5>I~XcDu1DM!=NzE4?z7AcG=xUs2#)nMBw`V6o$_A zn9vcXsXYE-t3MH@{fzKz;j|?=UQOX7I%IUCq-vxEKt%?NEdARKzQVyC@r;a7$|j^GK|0)s6Rp=H%Iamg*{zHa?}u z0wMJFu^AA|T&F`SY3EV4s))}R0@j)RN3RTUv@b5Ky`{7(jY0j0yeyQz|Idz3NY9qF zUBu;g`InG%+&2@>8d*GfwjbUz&1XU_4;~DsVR+}KoRzUOa0NQpS))N~u5Q9!ytost zI2Y^ARGN0!of|=$PiNeG5!WI3u=`2C8SXHj7tlhXlK|Wn0}bw@QFt&c(3;)m1wvgB z)4^c>3Lbx@_Vcr+hBuV=zFiEHd_yi$s@K>zFLp~e~J_WRQ( z+->kad=9WJWO%AaaYSG|X5igkrBH@ne?GTf<=s(pKVO9WPh5XxfTf-*>07Z~=Q32k zp+Y+96HgmG;XBE!TE3q}UvagxCfQpYwjIyT(7w(H17+f#HU&-ge>K-mfZmCJi>MF! zX3lPebGmeLTjmgEu2A_U@q;hZgQuta7Iw8&QmiRsXNl4e<>|>4>v73N_G9244m8+$ z78*2?^T*dvQW}uCn%ti&ARQ~rlr~!MrG^}hu6Ego=*-&3BxzR8px_1v^~h?%wWDDy zK5(8oFC%+C1QXg^51{8Ozdeq=4LrX%aUg@Xac!)GyR3oMXrD;r%uYvt)wKU10m3M8 zuU>1hqU)r;_;?*UcL_dfDUK?qXL8~Uo{1bv6u({ybXBl3nke7c#3@mbu zv|nhA{x$(5qS0K5k(1TnMW_D!?rPiN4ZjATadsE*UmK@}ZoCJ{noP>iU{e7=q~8s{ zNRPZ%hO3Q-$7d_hSJYIyLEkAGKrL+Q$q5sK`_&%bXaU( z-=ULd=K)B0@V?`r>nU@3x9ohY0VeF?_Hne=6Eix_MM0kQr<{NcFnNVNFWO|3Ik0_; zn?qD^EDirB&{gALn)!$Ipu@pzH@PUOTb|`UhB9%T2{a^VGoTsZUp(Vew;HmY!Z`*r zaFMi2+)K8>U$zxDJnQ>Ul3{_(jPeG;BS13BhOIB+jqD})ht?lgkDxq@ZW`ny%Gb(k#UF9Y+!VE{?%!A7=Z>H} z!(TuDu@`~VWNpjQ-KAE!WhC5Oi8Y43PKJa#!c74uoMo*Im~nBmd5vY&*4ymFY&etI z{|u3T_z$jOApktvh(wTBu#hENt`8ZH87Pi=@FiVF4TU$+z}1JYR6nMoLoeNoXaMn6YPp76OsCkA`5Y){Hb`K{#WB>NOB zy0%azO_$SD5AOS!J*r)lP%NZBoyVnM?lf~9v44Tqmxf@Ma-(U?k5SQl-gdip z!|&zG2|J30*|C@sauK+U6E442`$dz#h32^NS(di@$~|#pf0gV`S&3LsY-xhfx4>Pr z3i#m;h(FW|kRZE4rXD8^B*7)LkX0}dUPg-wYw@EFH&?6R!&IsM? zxN#pLbeG^bzezc-;lT>G86+r({}0OlGy4NOgwa0?dsG-AbC7p%_IqLh1mN5W{O9^H z?$a?~$3z{DPL4CD%e?8GNqw$Yo88=ei7ti6X+18Wa~kZxT|rL~ndxK+K953P;@xLL zIXpp4y>MK;CFHWA$4mO8X}>JZ8{B$TCYI&No;bsvnBQA8uenNCoHBtUFYyH9Q)H!7 z*EZ}egs;gKYvAEgHS2at3WYD~*HKgi2m>5%d>&BaT-3eX%{q?nFzB7Y)OhX)pdo#V zg1Zo4$}1%F7G0PejbrU|NuQ9+0kE3Jw5_^b(C*0bef9C5_W2(_`k&B1@p_-KU<~gs zbiazGeNy3LOTs|fA+~9b8DDy)&_;j;CT!E-B;n|<>j6k4osdDmvsv9@ds&##4~&}! z6MA*(g28ReFBV8}>C`tSKwQV3s-NFPwTRh?d0nodutNLZ zC{c06Yo)kJq}U31yn_tf`6NAKtN9IWfk^1XOG)6xxSJ7O^mb%5I_fC{tj_-ZO6?xo zjufvMJuhg6sQ!#qfTCKOs+R8%WBqXJVci0!f2VrI?2}-Kh!3uhzBx8ll*4w2_5G2H zu_qarT=1oNj>2yS@c)fzJWnWn_h(iL)X4aenbW{dTD$w*KiAP0fHqj0E72^~*-YhB ztf)ys9Bbw8X%A~!M>-{`UvgPkQlB07$q+u8abNM}t^|qdrV07_SlQph!!?2llrGJg zTF)nFRgG{MglT!gEZmylaj`!FGN=6#n1$5fQXarJ>a{NhKFvO=0lgK z{&V1LzT8Cxt5V?MI3ILUsxq#g+bWUzPT3n@&oNi43?lj<%CQAp>`x(UYIJ*DiP$mA z+U{;`pH637q1kF@#a>gt{25_KIIk#I%rSvyL&nJOMi_iUxUR}B4v)}5<6e-fF?D9^ z^J8LSdPUqgU%+(E0H)Q^_BD*PptN8>Yxp@wyo12&ZwMfsz5r6ERFoZBpD#?vWld&Rd@Qk>03rzw9U(Nk&DE zE>|+>M0Ou8t-?E;fCjL0GX$2y>_6_=zh%i{2q?-?#^QvwdF)Vv12}1He!jwTAGp_f zuRns4Q)=w2Y=t_-d=rZr>GbVJfey9Md^pVLb}B)5O{u99F4SS^IhyR zqD$y@4fe**IyIE{-~+I@&g5I{?EKlx`IYfK?je+NX1-qj<^&jA17^c~<=Y%VJ+6l_ za+fK%pk_)Lj2__Bo;{U!knO!$ZabZ2<4#UV`5wCXW>ML~I@uXOPBl&}L#;<=?BLRI; zVbU~(8pKk^OP(yC)`i}WsmV2}nYokdfs-BF0n;aZxb3?4&jn%1&*&h`&C2Oqs0tv} zzu@_fcnTJ(=+}9YV1xYEuq5-YIu74n-krkS=JB`q^0IJ>Z1siZxqTw-m+q}BX9@5P zOL&)uxKfF7^}H_op6~nPvj=2FkBK-N5@-?BFUO~Y1-U}jmA)+w1iX7Q*J>!>gJ|?- zt!+Pj{FWGRYm9oT^!hN2vU9=o-i(pjmsPH9=+4ErYBN!r6EtrmI@&SvA1242aN>=O zH;~bm^&soKb;6`evS`~cw)fyJ+$y9^WQ$INNAIj<&#^YGC2`DIrvTMQA?t?MJp9if z$lkgg-N(L%RYOcCkK#Yw0jNdC;xF{DtEl_T5EeAb*AIrh@xIAi{+Q65ficFYevn9W zFLxX*wJ5MXS3k(R`q7oo88bUBhk}_p^SF?HbO`(bhwKC9dsM= z`oGB(`di6BC>F-EEePYnV9-vsPtot-`AZ%ZBRx-#JrG1@49kZj5I0%^S>d|gxZ(L= z9{MCQ(w48}Lha*1L3hNTUN@QI3e@!12@K`l$Lv}96v|C_rrSo>j!HaN9m4i zBM9J})ggB1UMb3@ZnCMupB|MU#}7bD(~GP>X3pK>y&{p*a#g3Dz**?S-tbKL|?d5CQYg?rO zZEc`2{hUvSJ*977^M3}?fBjaD9`0v-Rkkvn9i{jv`^WyrX~aLYdC@6pNptrQK!0cOAf&oFK*2A#mqHo?P^N1`?bGyCB@ zseMTu0dlUM$2V4k+xEI&6%zi!tot)oE7&l|xEo%c3T*IF$qy-|2e&*cESK9BNEwCy zF)HD(D-q|u7%Be`WPnEw`{m;Y3Vrd!Es9|LCHEapQp5VDdSRH6@_}Qt={MSTGvfc? zYm&nNNJvK^i-a+qoRea+V0N5Q_g4}4eYQo{I++3qBi)sMZz>p+AUgq_5!a^$VY?`I z_O}P#ckeio2v$y?E_WYK=Q+bQx^4ttiIsAF&ii`_sr$gG3P!&V$ttyo{$Qwv8+fk zMPSfA8h!R?CPn@V%RfM>zZn1tr7eeoCAla|*(Q9jHfBgQN988a)blJy45lq95f68c zPcq+GJLVs#JL+^8<&JIgp>PX>!1c|>PNQ~&(|nZn=COWHNBJCan9NG}%e7}wuN0)e}58R`TXf{2VQ>C-WI!~u6iF%y3DBN0&t}KWknNj)>J;dVCg2#?J|mYR;pT~M$9*BFyR6x_{Ttffw7M60Ex8Kw?&7pwn%<_ zt$fpb>foB!XmhZ0I4N^I{Mr%v>7z%bx5l{Jm0Im@ALP|a2U;okK8edLd?2@1sE#eN z!f2K`OX-2ZAJs9@rg~Ix(3UeF75fJurWSyOGtd_)nh@qHij+sfN| z!!GIoN3I}NOMC}Au@IG)b)cs-6FCDzvTD|*Cx^m%q3PlAlik=O!tYR|aWjm3eS9fh z?H3Ej@}>4%#1+JjM8ay4hb!?H!chVzPPV3)H2MTb80RCLxK3NrbwB6$bP2`bJzY-@ zYJt5$ts6?-6=#T$R410x;N z$a^*EpFqV`fyb2*k zK_Ewh8wp~c@`3Beq7?l`5=at7uk5s(W8hniXV#`c_EtmbU+ZxnR9F#t=wC|@`sV5| z-|&+cGKWdM;B2InEEky|vst}cLdgn!lyfoi^L>Rd*L89=`>bLxBaZjq&%}S_7RkxN z0h%b>@D}d3CLlP0U)j{(f8DM5(zf@hn?@!7@pKi{i?iR%G6-a-<`YEHo@L@?9Q5H0 zSh4r$Pj1($_QJ)AMb1qzdZJ6lg@m(N zA;QqoqT-39!ONI_yDvgd8c3o0jZ(CXU${|z$c&9G77jC{==nV{;^Tk zev{{Szm|&jbE(w?*Iw;iG;r>y^+S0+f-1GKE<;6vPX*c#DZAy(u@5&QIS4w(I38H7 zlpi@tX%oO?z7`T``pk1Ub4UTB#TB5;rn{%z!zTz%QHtK<@&o3g?I%o&5V7F2GKJCJ ze?UvnyYYsc5=EXyhi|`MQmbU^Lgl z(PfVFyDH?_hH~yJ0rB4L=p^!d4Ls}2I_>z%D91Od$G%cU2h36{w?hMa5`?=kO>VeW zsZ7#`Ux4HD0~dw%gG^Wc>Hl=6Hdl7EtYM?9Hu^gahw z(sFtxjHK;%{4XDB5{_r+y%ZD|qS)$~ODoVWe0Z{|o~PMz9)l{av`5w_cOGh#XSC{= zPj`e;cEOAi-X1+JX+Upe^`++#hS zfdlXg-d2Mo$Nldapo9Z}6#QM7L^{Ak8K@S$pHCBZl%kv>gP32Z+{aXR+DdOsS`_%o z%V_fh(*vrhz_#j6K@@cQR_yB}8-{}k%D%fzqFZO*Rc@gRy1^-Lvh_RQ7eN7|J0Q@z zh?nuA_|^LL*;LADHe)WG5Psp>DY|oD-I&7N7oSC_K6vt=Zv8~SWMRi?_&?KH{ztxI zF-1nF4KMxRxEs|N*JYQH&e~M2KHFZ6i~tCpRmp@7vZ9;WgMI$_T!K}Xf@RZkWcm#&MJ-!}|R8QL8swNMqLR9~`!zyZ^kE={!yGx&>C5)Y_ilP4`D4oMuN-Jp5;9e16Ql4*)mFzMe6p&nQ}Z9I z@j+MlE}LwZQYK!5Mdb;Hgq!wZ33ZJ%8rRAgS)GMEfj&z#1hpVgUxP1oZ!+F`GXe17 zNl=E=KREQa0Hj#&QVOLy&*@MjU#~uzfXt_Zg7NwZmGp1tN<#|yTUn$dLA3Q5L&lJk zo_rmk@bT~z+LD>{bYi!@!r_qVz0tyso5qLKNXCUccOdT9=Xs}r8#6NAMT4_#`5W3M zxN#{sf;bmJOU&P#-qz~wRN~K!=I(Gso(teMViwBMsIu;W%MNVy{@xQ%jfD}Z$Wj*{ z_)*MDegJyA%3iUSaGNqvi{mnrLwZ`a;FIO1|AFaH{dMNpdWGPr-AJXrtI2}{Dh{Cgt>8d*k0hiPWPBGwKrbI7B1#?Tzf%Xv!nwvEqx ztlU%4P(x6q-Zf}6!L(V2q}^8i`o*3`p3mE1u{GV+Mknd_S&8mS#opZIOZj+&V6vx?j!A^IjJHj6693vr}<3yAormmZ` zz{>nT-kd*sw*GV?ejPLIY%!IDgs3EUZs7Mvx;5q@q|OVJ;W0W*D5e@^-sceJZNH-& zo;y(~Z$M%a^dj-9=RMcb4L>?A7|unqLDOQ@ImeaSqpZM#1?$}E&DEv%b3^-!`H<2t za1Kq5OtNJlhV+xunCzjb0m?P3fA~xpbCqSuj zl~jY#YaCPLI{#v;zizz0!JE1?lJ0;z1~nRlO%u}M0_GC!sM_tz#a7^bsKn_Z;B z#;KYRHTKpyIumG{uxI#+v*dkT)5R;IDBG24cEL((hw2*Td4%V-C3b^t?e)j~=EfUs zC?L^RUBfIA)`n~r*+@vrJm;%*Li#Mn?aYN!-rb_BkcfGvJv)M*_oRNBa(!P|&~Jk~ z`$(X5x~}Gr6so@tV07eC2v_V!VVn%+LM%9yydI-Zid7yoaxU#WWP{cb9erj;Bp=mR zRn_(1twMsTl<6Q1>E1gPp&hHXZ|WMY066Ab^TI;7-{6UpK9?WVe<^)9!M6!h>(6L( z8RE72bupF{GVR;2L%$(5o~OIaPyDUC3~tda8sx!L9d<6gc!FYYOXg;^bx*F1Z?E4< z2nBgWP{a}0$_`>EmFC=WR>{9hqJ!|~Je{t?e`w#oxYfn?)n?9)6L_IPhwbo+hwMUncG`1Y>V%&tO616{wy%O)NB7NNLBywp7dR}@J|dDn3x z)NlP;BX}}hxY}Sxe4VG!2&Vaq(3dY|N?B?q1Vr6iwSWZ=!dda@J)DbrlXFt3Bm|1$ z`EryEn-t3{FupFp-Z*V{cI~D@$NNh&1zl43UHsELuWnbwq=UgZ@1dZud*>ZA(YC}w z2w=NbK~i5mV&A;WEmGL%!;U_MyvD~QMA^smTpesz2DX2~gn3Bl9CtjiZz^>Ul?S2? zIGP@!i(@3|>Z~(CD9;Y`^v1_J_&yXyl}5C`HFWim^mSAN&2H5NwIMuYpQ!jyIKWT5 zAGCodUeES_!xq6HHFH!qNN7GUqZak$lY!ScA-E~RA(cs#b;ql_O?oQg%KQ{;;%Bb1 zT!^PQjgiK*ff#D5d~ckPx{H&+uWRt8IxOiHCwuRkxf_Cz{gX49vj^{#?u|Hqk0)MG^L2&ZeWvM;5g58YE)VQSIgPXjmbMDCHMT+Qyw-dJhVJ-=eVaiWhf zj(hrPTZdFKWkHlrK>m0C&0j{|4^%xXkt1!b&j;Mt*x{f)$Js52smUwYj;SSjS;u`g6d1pX^7`Q<|UCbs&$IM=klm@ z%wj)mIQn#m1@(t()C!CUcZyiWJMIR%SR8?+74@&KWZV}8v2If%dRzu`Vge3}hqjG= zw>DVRkdM<`q)ykbV^4T-ZzDbwId~kpU04hKwCl`beu z5KR(x#k$#lrWq@V_%U~jMduAz#(9NL~)R(y@ zz*!gBq8~a`Zfo7J6KgC>?>CEz)s1;joBKM=KT_Fi$FvmcFe!Pc)Gp{?Int=_%GEDY ztVtKOU@of99;0c$xL2et7n18ab};!V@VED8GXFwxKTs`4vd7aVcw_J9=NMe$mSOu5 zult&87k(xT{#l*+C#1n#B|eQtn&`7hOQJ00$7*}pj1`?Ma5ph??K)PZI(TBL zuQ2+d);8V9Y_!#MTTXC!ly9RSR+k6e%Rwy*nxK^DeV}Cul2g<+r`&WR4I*D3stwe| zJvH1=rb^P&xa>Bd5RA*%xk8lYi$kICyTdT~etP}=S1wS;26e}k3vsAxHnVWB)tOME zl+a~Ppv=9^_Qae1CRg4ih8fl-y2@8c_I)6AsR7OED)0Zk@D>p;R~F6WLgMr8m*F?j z*yV5p^~A;R_?mZ3;UR8$CO3{P@u$PP5}nlv9RTQ_b-X_N!16rh!RJA{Va4?S!9})@ z-Aze)VHxHc|NKMqll#o5djfZ)MvTyeFG3=h^tTM8YF|6nsUDv=80-!4;1` z!p_cq;|F6!Kky!L%oVx400wCPiegEcrx$E{f7$QqwHW_^&4UsO`t02A6K@Q9vVFpl zn>SZ9Tk5|tfnhA5!dp5IzfoEdgMP{li;&>>dX+CUD@4o>Qo?#hk+hu5YO5s?$R2$iVA~W+VHJI$ZPU^f z&ACM}ZvF=Cyds>n?%V*snK9b>Rg;ajyfz`3{2a%JWKIgQ4AhmcZL<+~<|;t{wsn6S zK&3{M*XOI>#1fYV1Da!HHOF8hpmX`=MswQm&HKmAIO|b^*}E|8T@|*3YPG_J1{S$U zsZCEj0mg^JtaB}FApwupxAo%Y5M3wk=lw{iJAFfc^a4Q2iXZ|Gml5DNTYLW>=H4@^ z$!^;pRYX8(B3+t_qJng!SCJ-7>AgxXfzSyA5E1DhAV`-Y(!tO|2mvXf_fF_dN(eQf z1upO2`#t~d9_Nn#Irr23#29?Yc%He|Gv{2tG8b4E{o_BrGrn08HyJM>0lkeBq3weu zq9C2!ldIF+zTmqpqVL?gLyB#;SYHj(L>-`BKpsclQ?banwVQna*tj(4rjI+|+x}b7 z7^0#WycLosFhRnutH5{Y(b=ft-9R4R>N}HG7Kz6y^S}!&mGa)G6ju3*r_4#;?h|o& zAB)J?3SjoEnie@rqd2^JJatX28~^b=TnTJ(+UEC`&!Fy5{me);h3J-e_xe5^>9;Sb{b9e$MteG>m(4#- zUOQ>Fy$igZ-9=<`W(fwba`gV~X8KpwO6@1qaM@eoZQlWPDkb=q4Z;#MAKJ0cD(m`- z;9SbP`$i(pP`(^*^P%rF)G(l^ZoSwee>gGh3J{Qny{s@IxSOg>a9$W^$g($ACB!0_ zu>2G7cQ81UKG*T;(d$0^G~occGSFj55qJ)}$m$laTp(MAaGljd`x#WNZ8 zGbJjmT1 z6NTHIbw%5p$Lh^qYxnBKOm#RIJ<&Z(L0T*9eEHghS(J3`{*8R?b%&fSW;^P+{8A%R z*TfIa5i6ST`v(cSuaTX|`O)_m%gyF7JswME~LZ_{G)+L-_)GvxWw;D0LxCzx5$`t&9kIi@KsLiqJjZz$Tol3#ZoSt_# z{ljYY?^t4v-g47se=mFnFl`xnDI(zVVY3WfEokbz2(-9aK^aYVV>*tdJyuRS{FUtN zqmXCv7UFRBx(>2vgJ*mFy@e1v#lpY&;1Gvb!CN2NI|sy8Jzs2CnydguNE8s5x~eHs zKR#=w5+9$=-%pYw4-9?7~B=Ran^%u+l zyBB|d+&dvJWD5NIL;IK1pfriF9+!=bkmB(GI@x)~=;&g7M1W}>Ub?s*k!U*Vos@xB zbFpnZr4uoFuv+$zz59G+1kmeAm-&0a*dXfq^v5<)e>XU4@&u^r_VJpkc9*oQ1Wuq$ zx!}bI=|?HTUC*AR$9jAU_IAF3H(62bTu(@O08JuY!CEmGzm2g;iwr>(cU=o&Qh(zD z2Io!HxcmnTlDbIM{ZDb9HhwJN#$4P52(Cs zq+FQ{edRXsf3#=g#jk>*IP(B1 z?Z?6$ZXDK5_au?R-fuxtcLRx{&O~c7b}1?Ni|`Zyp?1c%F29Pl6|d;VtJ>#nLbZ(1 zAKimyZq5gdc=rTpy7+t#CG2>AEvW4%zRG?^_;0=|)t|7QXOgt5K)(hkEZQ%-)Bhsa zbwqDEl~XuFa}4AdBs0D)JFowaVV-~dYFh_(fb?v8zZv;FLT_^Y`OdNgdGf($5MCWr zU0`)G>u%ufpQX7mY&DY|wa4?L^NQ8961Fu-m3TA6d>(U&_xPq$)amS*%d#8qPjjwJ zi@L`^9Z%H>Z7C&$w_duZ`xmS*yC0%C; z!Mg9T;?sFIKZED{?lgzG!M}^qL%LLgqo(Sd9}C_siGHXGNA~H{_|{#Ne^^o@K@_m`-Oco!L4`vLfa53m zT}mdD5Pfa2st(DHwjel>>cJXQ!Zlc6uM?t&wS zUNn=9-&YcC5!3xDi;_HoZc+S0=2zLYl`@-zU~TwGq_?ruuri8}CDtU#Vb|8PLjLsq zM`m3A^)TT`C0P8 zs1#*{tY@C*i)3yLN0iI1RN33muMLyv(oI_H)d%VS-mW#T+;6_=>@1P^{eUTkVp%tV z_r6q-biOM+*72#1yz6tqe`NB%jGQB z>Eu7Y#pzZeALbS}>C|tt@ zc4ijI7ctYX!&c5qJST&yR?PcjPsvaWH(08rjBDmG$NLMfPfSbtxyP0dINup|)fr-6 zFq}WMrkSDWdp(o=+@=Ey?M;hd2GC1=cr)o#AjqwM!%!nF=~;dqdeu{ndc~y>r=6wudR7YXdsX8$(tct_ck8y z!BgsCjnlYaGO?l;^(^brXv82(c$SZ1Cho=w#L!Jeye5}2&)ym9|_mb))oHFfXgxz>?c zYVOy9cNE-b!ade9<$`Y3l7~}R=P@t>X!T;)GP=2bsnSn&(O3Obb_9e711VFyhnoG zusQ>JXs2sY@UOT89ExR36(8*O+_b!$?iO2SGQOoS=u@rbJ?6<}&FI9W!FScZpCp$rm7*{^`lq{DsgLv;t_^_1z+?Nr%-m3!M03ZV29^jYAX+2TR+==lE113v40 zGMjc~f2WEd%d+tk@z+f3EHTIl5b@E(sN+$IW6jRiu60KzTx84<0@6S3TMSwkp%Zbn zR^X;M^m6k?9P6F4K{j$TH7-IAT|e%)$88X=?%4J2l{cc}Ql!2ylOesS| zNTu@fiKa_Fn}6CwuDV_{m9KxtIgzK*eSp$<|7c;cE6u#Tv_ZwhvUtI2TbQSF@?qrd z@I(j9cx1y%77=miR)o!O!1HJUq?|Ep@+P#lSWPqkqf^#{h^>T$S;BZ z1ECeGcQWsS@(oW-1w(I@#+7}yvpJQK$zzIjyjsK^z)3l9JwQX^jVn%Z$M86V0lhHa zzW6AA(_gfAc+{=LVVW$KpUXdGv6L#`GoZ{z66D};I+et@!m{FRqbdwWnl(`eOUZ?5U_%3V9WS*wG?%$h%UqB$Jz^% zw-bdOK_G!My~#HCTU{e|?Y+8}O0bf|ON!4~9w;TLM0bU2`|tLN+4m&#GK8PeSH}4E zJ(vs%U8d_qlkjIw(cTL0YelLYmS_h7R3=gsE_DO| z%18KBh-lLtgoW7CZxTfF@VDPl*}|QJzw#f(pWVo;ypA28bE6p`q_33@Zo=omjk`squDGwwbhKZ(ZJ#B9d0U9O$B2HlMe*LEb zy1DxC8?S*b$bu1}jYs15o-63%PD>NUP4n)+rx_LAX5ZP{;RCwAdp3QNNL8eF=0E0N zfVytVbDq*gk=rjzJHkVTBh@6ie8KMX?N#ZuOW<>xh*`J_wBi#U)A^wd4{oyp;(XSv zac+}j>@wW5{oi%00X-}1uCBoLqJQTcsm~dh+~CWqrQ!3| zm+qnt%XO(+?wn+&Cio*xc={9sVT$(mW>NG>bH0c-xi-R!}h@j-{u3GK;^uZRQPt`rAe zN_z>`9Le`I=;zS)y3K^Wg&OZ~m}dY`N%dIlyTof?3@6_ik=lSMoSEub+)u0XFGemKHsxPjLvlF&I$&}HU!yNE9(3^!9o|&t>DWai z%mZ6`e86WB7t3|_4{aAH>}nk|7Bpz>rhM|W-_mc^pZIwz;Ohnvj2~wer2GaCSrx^= z`X^HT-%F~Zm~y((>c2C5W|ccYKA6VRww|1i=cl8jnvV*0WMnTQ3V;b-weE7i{%cyt zKhC&UYUathmM)>&ONz~Vs-1;U-aaB;rfOpycthtSWXaP@&LMJ6Ac8s3(_B#b#9)!5 zgQlg!#E8X4O8YG#ueq|RT9f+7x9TnkM$Ta>XE^d#AERmUG->;}j><`Ibh+->4(&%o z*IHclB-&mAaP|A%F zf|D!kWJz(@E9Jlqd)L2L%XL%Pn_VFV+J%nqZ>_K{sg1^)HTx*-^jPP1Km@Q7QHhb^ z5z0BN7ANSt=sZJrJOnw~F=s*%++Wi2pN$2*Z2L*?FAF;TnJ@w^_3sQyP!%0oMRh4)#YcEu(2!=>j0A)guofk(f=`roqMUM$Cw1{c~8 z0jbuLVO>3`!aC&Z2QxXj?M(x*{D4=1gs2fuvDACOhcBniL>#@q$B)e(>m61$Fh2D9-2ih$^@OZXabSeD{pD*uto;3c=iqa{`{M`;$J; zlDi02!-xNfORiWwJO+M~VGEgzdv~};_QAI~r~2ZrjUhEje#-RwGQF#Yk@Yexu+1W^ zz(<$iofSRpmttgc^P}4<9X*JsoQZmYO32WI!4*Ie1~U7;{H5Xp+90m>DtiHL`cpY1 z$vK5qwDki5xJofHMacN94@5L0f-$SeJbYti@%A5Ve@9j`IB!sa5dF~L#BwFj#DopG z7Xoo5jzeJ4DNKmYphD6g?CYU@oxl$42bI+bt5>-2Y=JUMWZ`vE-KK9*tN z)@U^A6>n`cpD?t3ZhhS#%`D_04tEa*4itI8lOk4ljFR~%Sy74^Feff#67<(i3~r8A z;rn>;;LwcEuVYF15g!$y)#E)!z_)cx^;a0|v#Tb;qT%ksOJUbEY+uIZ&~K~44E7OxjO?MKB2i?0mBdqRHi(q@ z&Fsn8;Vt#S=)fKwytUU^f%9`g6$sak zi_>UV*)a3NY*LepfaV`~wVex5Be4<{ZO#7C>`b*<>NOlk2OnLR=d_4{>Z zXIQ{w7LNYD-$k3XJK^2brvyjvjValkSBrJ#|A^ivi`yc!Z!HM=#|j#J(fUp6B@5lx4IYe3C8Z!+qYam;WO7bo&zJV;T&d@tikmiBg95#r8l z5hLEt@@jNRKk=3>s(tNAuFKfzRCVK!kWT?!V% zgg|`@!&6{ZC^-6jD}L+=J*U!NNbKN@6f1l({2%xT*~8uUas{+uN}^=9Yu&3@uGdep zK3%z;4@l;wA9lB{;|22ls_Bgnwn1fNzMrM5cBelPLT7WH_E<~Z@TtEdRL*~fnDm3V z`qy)M#X20<2W$_;bjQel-xOQ!%2{q)Uc+sCtvb&_gi_7!;_3{K#4?gMAf?^2l@c@c zYMp<~M0&)>P2x6BmssP|mEkN&{RwTy9&D(&$sUh=u~PYJ-j#o61DM!-*&(&emL`Oy z+GIlC`$GB>`=U#1fCHjFd?BB-+~}=*Soanjl*>hrdq#hH5M*=iV|!?$%M%ZhA?hP& zUKJibpDTL5&mH|ZYhI@SU6h)w(;+59ta1Y~k$3h~E1A_?cc>z+>lDy4btSU@7UcMS zXaALtvKDL162H*Cv?w=QOoy|zGl^QUtScNFv=@8`e*mx1hy2RtVhw(wY+6MV@T5t# zZiT^IAYE`VZ+G#VV_+0fKeTx3?LM1hPE3Y6R|83hsr+Tipq}g3z#u00-u+{?PAiTE zlvWA1%Ylq)Ankcp+rbjrKJ+U)+`VZ}fh^Ad^hW5k&`pvI>6;zD@BD?=mO2w=Ws7~g z>Y!boO^yTTVUg$WqcHWiL>Z^V9XzhD*0+d#D@97bZv-WK6`a?po;)xNm{1b?%vkR} zlB#OAlJt0X(=6kuKj17n2h1_pLA6{trn07nY<3AQ)IW^uU$ac_92*ac}1HFJc&9g=^7Q{BWRI z>8&T%k^;TisQUFR&L({Aw~ujk%=^xsAD63d2Cl0UI*-&3*8GlTuJnCQjUi~lR4rMH zbx zM}=fe`;8!VxyP(YF7rO9EfnZLndBfVwmp3RP#f6aI@k_L#ju;(s0IBc8edkskEfLA zpVjx#uVA^9^+L<42Sk{Ny?HGFuaOs7l!*9B9mxA#!;zTwR-?C>aYf+rxZHG?`KJQ} zl~|eN=-f0DtLBMH=XdRaC?AL-Vb?W_{l zveFZC{DVGYctT*}EE7^L+~euvtvI1WOW$05B2E^R!f(4jwIIv0O48BSGa0)!dt)r<1qq^qZ&C|Z)+!5W@!KY`#k#s#0`jfgu zmK(fT=pbT;!{|%N4jT8+;v`ZtX@2Vfadbw~5PflAXXT)?vLi!h`>BGwq~24o**Aa! zoLBKE+7c46$=iASN>-F(IYrw!0%d=F+>D`6+U64R_SniWVa58~p@F*HD?$J#$x$Cj zJ9R4}b+AD>`tgVM&o!(oiYxPY;7ug8Xtpnpb=pHh4ww5rLdR9VaQ@S`zUmd3osFw! zxOL`?8cPHd`;ht?n3^+9eF%Oew{s7ouzAiRMDA@Z{-_;G9^f~c$I?XO&vY&|HqmA~ z9#7ZtYG|e>wY*?slEC`t9NMmT9gef0H@8wF`fd6etbyP*cZFXO#yfx~X$`RCuAA_h z31AlFJ<|JFK%y8>Ft*$&6L#+SJCSC_6MI2z88%+mgse~xs7m`MxpPjk!ZV$RGmo<% zG1fn}1rs|`3*1OaM=bX11sb(OGqXoVG%Gv%UgKFs$j>S2lB6SbO+4~9Txo(-k`sS4 z>f1g)-O6Ch1#ivPC-WKJU+lGv_S~ zVEt@7d0@6Ff2rZzT9H|8-66W;aT$NLP6jVv#&3U!UX;Ex|BG)raM!wqYL(@D6);)xU3#KrwJ?5Q0)eQa#f>vHE2~% z%FYAt#Qji%B3cb-rFTWzec7>h-NS`4qfH4*<<+>Jg%E|*B_Bo??m3J(J!wzT=&fhK zwTWmbm3jYOYm4#AnGx}@r$G+Z1s>sRjBsT_-EnHT(4%P_8*4j-k!!J;1P|C*e(Bqf zf42D?G9f7PHZsS}5?O`U1v8qj6OWJq(BoGj3D>44=?tnP*+&kClb_!WZp z*ZH>xMN?rxrT6;_4m@6aUa^;#)h}g~`=C3)OYw5u$lFofA}`{Ko=79>L(wCG>?b#@ z!9sZe{THYKUL1}!+WNbznAlY@YW=eqRSr`vG;wpV6w1Lw2UP0;QR}^d5$6h%iuW;2 z_~OGmUL{rsM9%EKlR}nE5)vJRTSA#COjBXf$886pl!X*ufu)1J9Mc9VktWx~YGgjU zqf$Aet}dZ2m4W@l)*bIXtrn3J-5i4C_5qtGgUnlJa8WNB^5kKQ&w_uqL>i%seUD?i$+ zA;jO8KYDlz2@pr%R@Sscy1j<;)=A&h9J{w6{5x;%*@=M;?a2~}5XP?6 zGJjDEw(5_Z(+Y_BeFO5`wJujVVk99Eml(kdndfJ3WNsLKsgkI7w)+!Ij&F7&ajV#? z?Zqqpi0!Tkzo4eYhMm#~K!8m}6tF@Xjjp}WBA2A9uQBJ`ReiL)eJAwd%oJT>j~hsz z*hf!$-FqwI#ihR z5}apxPIn)Q$ZPG!TR|KY*sieK|5T$eP+Z>;(I~55pDZet+D4cyYX4Y<%C_Db9ugKF z;AZ~393N3KijB5ei@^bsin2y`p7E_bvp0=N~QRrP67uj3}m0K-D)Me;tC0U;3$6f5Q>r)(2TC|?IeE=fBebpmpKJZJI1O}{lgI{j{? zi;*u722RBl;McoF%@W*hxP2%D#6oPRU>L5S?97TZ7)FeqHN_v@>01^e*FX_D9OAPbeqX4yJv0N2xYAMaUf_n1Yk`5nzTAJ zk96J+O50P>HRl!8=wJ`U`-od~2i=RQ8rGQk3x@owvJV|!bC&-jBB}dV5cKpF9|91P z5X*R&dWO#MQ1Rh9>AuF~r8~3HRQQ`M{r9@6GSBM!6cPF+D0|Fyiqnt$GvbqvAxL}r zbWZPz?xU+bAFQ4Ai81_qIa=kRE4x8oZge5={NMw1RZ~oW#-oMmT z7B6qPx%>0orQhUzO7!x=OF1pAjBb`JJnsHPVJz(`jt*a-w2cfTa*YlFdx!*(+m&F? z@XtJA>k8I&ld1w0JEV0$G{URwr|Jo+zjDG3KmWwM>lVZwaduonhZvr?Ts5nUi7+v> z@QuG>75tyEIwY)T6qkfQ*yPpMkmSjxsr6b(q;;X$Y=38Fgyp)@Li1d?ANrE!qnSUM zd>N%}pHJ*k-*pjPWX!IhC)Z)lHjJ(qqME0)J!f~D<=a&W)c?z_95oenrA)!dgJYh{ z12-A6d%PX4j8$!esueuE6R^}4y|q9acx*e&zZP#U0FHzBR_TkiFVxVO7!4tb^C!oGG_E>*G240 zIGn}feG9h(X|YA8Z)w=)az*iyiY2|1OGH8`ip&AuhZezLU6GV_(JSo0DCk=4e*iH4 z1Sk?bz+F&BTv4{_%1pN3WqHZ*DC@CK0Z9_xZmO^|4^iG-6mn59s^GSBz?l9~&VHLo zUHMXjzuZ=78p=0<3#wV5AJAWdLt51-7mxFSGD-8F9iG4MPM)z2mpQu9cHbVO?+Fy@ zUf!+v^-PR)ytCp*>w0b*Z)C-@O%J6_&4FW@VqaS?iM!MUOH(QkPxW%jf60*lc^GH# zAuxf?eS!MNFh;F1#ZShrzvw(m;C=YkoZ?W+`5B&~ggZU+kuZ~fH61<5`YJi4L`tXk z=>=+p&2yFXQ=g@N3jlOru6we{V-;g%mlUfrJ#BTf6XgaX0z^Fo+y!gal#xnIt@!f{ zm&PUei14TV!mJx?xfg#cn*KstQkMwpc{|m;r5r>H6^yHF+;`^ak7WI=r-fe(F#T}h zrj~0x%4LZyWla-Er%cE`n!cRO)uGFlytlN4bEWc&49%=q&ReRjphe9BOX22;+ z*Y#?LHhpm@o$6lkJ$j?t@G;WQK?W+|y`>{`7gL4qy>jzTzOs-YukElKauc|IG=yR4 zRMvL(nB6se$?% z$xZtjMKNJxy*GUd=8 z8Uw!eTW+AriAduQa+j=psFB=c@&tuYBPNqi>o?<6XOwWOEw;%8B}G&DyHA2%Tb)GZ zmT!Ivym!u><_k{NEJj++{3`N1f8(gH+wsI(DT<|cTBXX-3u2P~TeDkeR7f;JQw^o5 zt=4=IXCfoUQcLxwudD;?-7h`1ct-e0o!lI!TOFdU79E$2ymDSI);kPk{ozSe6TQy! zM&zZH?W#dO%>IzNlL(#lRC-zJMjd*p*j*#~z*zZ;3!c$(YhK(_?#*x!X^;Fp*)OI( z`*fUpIy+jaqmGY7XjL<&!@!~NiaKYrW2!io&2W*t7xba_-^E}d$sexO-I6hKFB!xE zO7&do@BW-}Se_4QWQwpOgdQGNlSeNdiDkcf_{ku7N!o4D(YSkKyn8@(Mx*E0IihWI z3V7=5IPoKT8Ea#=k5EV}m*%dEzyzuU*ME`o>!R$Ge@;~eAd$<%+!=myC|#nr;^_>da2gnERY^PO2 z;{4NTaRJw$*ZfE#Xn)8k-MjfHTN7WAP>G<5i1=}(aqo#C#gBKICn!Hza|Vh#`^dY> z<;Jl+{+0tLc z8#pjG?Y;i?y#mU4(y_Uap1>5(OLOWSdt4Ti5%nrE$6IwqK#6U#BY$fvUYVYKt8T={ zGRiyyX_sLB;8HPior-D!&MHQHa%UL36q-x<&k?%+5(_hk5SY|=kdGxOkC7P`b8449 zk4djc-GeUMlc&{+C+ww#NT9BER;c>}t$Yi9gf7t}YqX@6s6KO01h^HLo+Ohv$!buZ zUFz3y9yVOROazs_XI+qam6ETLObli7AK%v1Aokd6I76xo=44PUjYjp1#>`{~+()v` z{_!WqWmk#ga81cj2JGfC__Fp)eTruF0&68wp-XBCQwq>`n0T_iM>;1MzHE$T+?hN( zV;j51<@#HnWqQblIb-9=A=sUW008gm;L%vk+@uhM%Q)9=4b*_#$7xn{nOrZ z;BAc&Z-|-|d_;utuj!(2JD&e*d_t(GMSUvZwx#fKBNnGQ8JN>Js=qwEL0lqtX!W20 z)Zl6^jHrV^d^)0I%MDEhL0>$5CfG8kOtTHsXQW_QW%N*Zisao|DZvK+^?|Pw9+)L1 ze>)WTD6a>QIR@J}iu&?u)>EAbSh)2B6I8JP{R*D1#$MeQ@Vj`n z#B;!8wY=c!Pd0pdzrP%6dL-V0Vys!6?OE%~iSxI!vnwkMS5KaL3k|g{o12}Q85)_L zf#*YDc7863`elVpjUYvz^?jQjHWSpy$k>Qj-oadfDI{gU(0k(N8JoZT6kXi*c;K*+ zKK25gkM@r%=4Qsx!brvR^9$AAwF-;GOE`Oq|9d<5-|x;V>*#&^8AFK$Q^5*2?)z7W zo@wRliS4Yfv$HG^#~#qyQSbKVrcr~lSs6q+$PaFfjgF0FeDM-G+mkZTQ3jcNi`ia4 z*UND|{6;m1ev~z1j4|v-^xQi2_8fJZ9rgC{;RWSG3QOt=%@7r^xr5H=0yrhN`OlT6 zSVk#TRs*O0JV-g(ur{C{4L3gD)bBY>yI07adRcwYZwfO3svL^(bjj}2ThvnjZ7BFd zj`+t;QDY&1*MzY=VR5qwER(>LR{R{(JIeG6LieqkH(B%>ZS|S{JPv`fc-WQdS9p~f zmEii>?@2_FxX_d8Nu2e^cRt?&+*1;${PT_8TsG5sPF#lBT+K_Vzgr zIZ|Jgryi6}DW{OnGa zn@1*g%#5Xi&I69bbFn`309N6WzU`fzzNz+hYJ=_8W!DS08iL7w4ZXR3%HVNm;77`+ zS{0&ER;;%=(Q54=mUmwI#DdL+%LjjR!l-~WON!a0woz1^cjD%rX>g!%3JCaR$MRZh zr5U4PAE|&DH$0c*cO}FNx5HZd)0ovxgxCTDtO84?V_Y?(c2H9DbEtqyBUkS@RG) z%}iyC02(6M0o5j@qni`~0h0szTwJjgwh)mExXkHM%9w2?x1{O+GGKql_}r^IB>UVA zyW95!U^>?)?SHVhvp;5B0-*0XaYBD;Y(zTNpn5yJJ=U9>4>UY1#)?qBIOHsh?G%+XM)5_ zJ9xuvS;XBFv6ME7UdU8fo{#3ii0iE#xDkO@9DO?RR{QqdQy6UaIe<;ZF90@+)+}jV z#*Zb=UQAr}o5LE+S$8yXb%kRUhAh(HYRPSYjCT&EwH>LCn@B%Hx6`o{j`?p>yDVZB zPaF^+8|YhXb0PadfeCf|nbxG_|F;dcP{B=nE&E{VD)k}urkzUCajtCTYx-X*rDvSK zq)%ud(W`5~Bcjoxnp!oYDrv{5GMg&ZGY;e9d&&~H%Z-cQ_q8z097=!1vtlS~{$fRt1yT={*+N1=a$$M>9>`;V6-}Q4fbpNT(gK)89 zpC;VMPczZ-fG@14bwF{R9Qp#t^4QYS=3ARG=O(fRc&1p3k5o1w4${}cIit^ug8(wi zQ;>a&ix+gtXPY%Fx!>xfzZ@)g(+w&;VzvVr9Jzb(BaBKrzQVmfNQVyc7BN1#k9*AT z&uRO={Q`G?itgqO{`8Txxxu6Tn~fk0PI?z)xT?8&UbEVK&G}N`?&nbO#qkV4#@D09 zzw&q&d+OhGGIw%%xWEVVx2IeT=j(}Doqjz-{pQe~X}PLaPO0$S;9a;Lx$e=1Tku!E@Bd0C58$d4{D{@kR>ashkmIpeW ze}75;(`>b{9)6?HXWlemmCM|)5x>&qaFu(bD!Q>zK^J8s+g)+w_Dtr7JBMwr%zWvmc;sUXTJ~d%9&2Q%fmDuv?Bvst2{=-c&Wv;7wRy5egqp4r z4L*F1XsVY8t)>_hS~)(ioXwD8km;Y{`c=BRLHpNRitLfaE~zX^LG>t% z2yAu3weH5esif3)MI3D8ptW^^K71Bb(z-rZIkP>{1dx$k;0;(L%ZH!s91}haq&GNg zA4oR8plKrgdcHUXgRljyBlXhlvNMA&TSYX?K^UhfV$E`WWL$QZZT9t-b8tV&xqz*G zH=MHv{*-HiZ@Oe;<057ictrTo|CVK-{YFt{SX_@@cI_!0kpyN%{|;B@u)h%#Q+QY{ z-xor{Od|$RHK6L9xAw=+M&C#u)b#L2*XC;sxZvIyKRv4=oMgq>-J#O}Np=!HKb?iR z(HHJoVLEGlZnz-3O%UIH(b_Ssth!GS^-5t(O!%IEmbWQ`pvMmO_s0p?Vsn<-t?EK( z00kALVY=1EeAN)3d;n#$l>ufi|0hCW)mv}zV!he=X(jBS-Fu9#J8Bh7ENzylmnt~p zx9B-tJh2C^Yx1oOlt$FW9a>(TTrSL?eC-ZmoG6q%=y~eIY5l*=D17b<>zyGZn6tpG zsR5Jc;H4uFjehNi&um-dg$)K*Q}SWz1`gYc_1CRp&sj=?v^vtF50q zY9OvKs;6hf5{gJK!y=>5Rz3~JJ9g>lS&*h(IJzPL6B>Rd5(m3nEW|}A;SSP$=BCi| zAUE;A)i{Y4p3kE)uFYm!r{hf$t#>aS_EycwUtNNl4hx7eWkK7A4PoC(jvVlUI2kF> z(b&}5h40zdk)yThMq^hVUd)%egQ%Vot}Q@HPY-_YxBcW%>oO4R0^Pi8ezZY2Y*xz2$YH;0P$Z?gkbi!)tdhL6@fn>)kcZ->m2Yh=SWkSI8h^>{y zviuQ{-?*p8taETqfOt^c!N<9@G08!h-|Z;Fx_P^>hH^J~<|HH(*z&WbPp)AnFs-=4 zHTRW`5jl#~n%=fL_8nNKzp&z|X1Vx#blzUe2?87Ykt6&z$oMg+rFIzf=!V-wdY?l{ zM?XqosNH8`@nsPgw!rkNXbu}l(F*;~ny~+q36G)f3y4%W{B)(YH4n{I*rQL8k_|OB zGZ*`L2&^$I%h4bFu}ZXGW5Del%xQo+x2P}%{U)fE)p_&m4TEU8Rth9+>}z>UnJs0r z1gV!@Vbt=fYaPn4#kbyIn@K(6i_{*|w@8D5_1UQmC_rE!r?_JKJ4%i2~m0b)cntE&III zOR}`uB?A?cPjL44EC6ihn_l6!JI>Sj#80P}OyV~tgHLYG$b?xC2a7L^?Opg#O&s9) z^rpCMV}pZN+;?`w;%>j8Xda!Ow0)SvoN)VL6*A;noiKB1l(;Iucp9YWPf7QiM?-=( zRh2ZvC1o|C=*g$IbEK1A(CVa#r5QeRpNYbPcI1INlVIK9v8O=G1I}@mDl&FgRU4-n zO+k1`>0!c1U&p%l*+V4#(dEsH)L@jk1(D{I=Ks9C{%d6slA_mIPI#nOdw5B5Jp75B z4;R=B5SJ~)-X8evcF@31IY2K;sqkd>vB8!)Q?Ho>!h^Aqklsn|TbZScjD)$NmIL>S zyL9+spT-%UDvADsPe-HpCAH^FMZ3eTihYOcg-4%}=#AZL_t&nyHD2p>uWD+9WuhtR zv+*^!o-tcojQLUAoOknY$J%LvPKp#*p@b@(=DeS`yM7P&9F9Y}D`IADY^3*nFZ+5~ zOc3P1p1G=@=@4+V7=FN(5on2xfn~FZn$8#_F6l95m)m(qtFAY_eHypjy(G-%%D~sK z_19f_^a|TI>zn+muelKMJNA>pt`FF4(Kh}ZtDq<$?;=DEplir;2z~pd2oW4?yJz_i z;_td&JYjCCGolNg)~u6Q_g03cUvCC7>hJy-wU$}AHW!k?ie2d%Z~w9y>)F)R4esS! zI13IevvVKz% zPp(nQ)+shX3V^fowWF&i!{xU+1071UZm0cEk5zxKdspfJcphUMsO!~qyncD^aP>wG z*wudhK>E8L9cEy^(Zh<;c8RD8gy4)xZ`N}Jdgy#;_I%CQr{rjPWWR-Y0vV@QSI8cG zusB3lQ{FnebDXKa<6Tz)_dZ=R24ptvCs*{&#p+*D+6^^bLd+Ya;V(dZ#xen(uzAGE z!Z2f@-h$D~dcwz3JQL#6;}re28V^`18B)nJ?Tr3A(5ogq}x;NJ~NwDdZWIm|e zbG~oCRYm4eTNwwWCHQ1W>j$XGSI7=;zo$&r`@RjmE$-I%G1Elu#6@7|Tya|(p%%j%tuz`EE3wi_0Y&=P~UNiojS(^B;p=i&5QXHgS+ z^9`4$1!Gx&Ub>PVz??aETt$T$c?{sOb9n7bDsBc->MzUR<(+C+pHJL1@f-VTkBx_4UGR2`d}(%ASHDcrzLcj1jB+Ul!8Q0)0acSd<; zcLNsIuLY)*1&0N5n5n1$h#P;sgAc#BHj(w%GNk-xaL*}4b#mp4a`dv=ix2n07aj_9 zF+s?t1O475`6kM|snG0n(x%i|F(J_zqgRNr`ea>SPTO8So(-cM^=hs#x{+agw$(Ya zV2sf334Po=WF}XeMlm7f+9+UL-rTQiyMqNnrOu71J&)eO-Dyy#?175XDF&9D~`%VL&Gc%6rjG7paB&XCei?11$uR)|VzxCw@kjXq= ze=zVE(_HnmRj}#HK*{;!L4N0Bk;O{!-MIQTRnQGIFZ6-PD#+wyYUovKLDBf|+NYSW z-%ePet+rtAc}4wm@)2<~$!Lat3Q8})!;A#ibE7F5c7DhaciI!SnA2D8?3xr_BlX;8 zUqWpDW00+WSq4rHV)}LZ@$Us6uV?hEn*FgOmL1MImeQDhq}JQR z1mjY;+NQpG1UnlF&97tJJ9Nxg)arF{JJBBQ6q2Rb$G~5`s5SX0Ch(BW(S|9?eTl50 zFCeD2o?5E0gd-7i?Anwr9}P`L!sG#F3jr||ee1N%gTf%dNm;7syNl!r{7EqnRim#Q6)oGNTLUJ>)xTqk5AFumdp}EiUpiM)HkLXK zYD7$7WR!V&u4{&~Wd}SW_|!*vB##$vqwnh;qkGhIV7mgyn1XoR(ZW#n$5S6bZd&d7 zL5ECh*Zq!6kFp6QidKi?(GPM#H^lk{4s{c95dgFBaw&b1l{Qk-dxK zJ{g=KCg^POXwT6VRBPAmD_|TK;A$s9vFD8427CK@c|+?PM7aSXaTHr;-EI2tdsTJ}h<@-=X}asL8fhkEu9(4_iiDB4z^w z&h{zcpWf(p^S<9g`{+X|8jTMEaQ_cmXBiY%v;b*bgNNXrKyY^r?iSqL2X~iX!QI_u zaCdi?AcK1bcNlE*YIkdEci-Rp>(;GPb-TLzeC_?X4Qbpi((h3YA4aGA90y`%=q_ZQ zPD|q>o3Ul@kiu9k#dS3x%D3L9(r;Y%QBdx`+@IN%$7{6pZN;SWV$^WD*f)^1vHqrc zvsmzxX*WuNByV8V|9EX$iQ(eBxur*IQ-9`xh`-7D{m_ZIr%2|suG2F7@#Ea%<6$px zk@G)7>jMq(y&;Qb037Uw9%XP`F(E#cJ;%@!@V|dp#x@k( zS0K*oXGjB;2|vHTue=TAS(v{r^!P7LjC*Xo4ER2@c)za3FmjotSVwFdr<8^T72LOCQW zr;EpA#BsuJ{|*X0nUK(bX41C0ct{+CeI126^_cL78bL}mD;PC3?x2_O)8XNw9L}^U z{wO=V?7rb#+MXRuf(TFgmpAA7HAjoKMENPD_FM%XU+g}HB$h@Y%ezo2+v=S`3I{Bf zjRi%t@5p6gsE6}y@%~MbwcmQ$qqMm%K7)4%AUT7eh6J$ax1m}9QK(cBB}&!!Hk zU@!{rJpS1)O)}oqZ+oIHhPTK!r^Q77TpRk5ZQk$Cxci;r@QltvX1K1zj*~P;*=myW zA$_~V1lrm9go?3id|O1dM6~0D)Z|%IH>1ioSSF7>o4_YemxsLb%u7wczWu? z)9?P@3~ZA>l#vbxbiM0)-KrN&%5vkxI)`ztPCYw7!1uFzh<|Hu#yL~XQFvL$^y6En z@J-B^H-Tmh`+xI94Nwr@GXm~~Ut*;Czz7d@o6w)|M=(fh3|py|PNU73n3E5A&jph8;K3 zI=sWgFaG>1;stH=ASy~%*4CxKNaEGbIdLvjBoOyP`Q4s}7D^e4+M8GHwLztnO%x-6 zb%Rs!CM+t%vf+Tlsov9x*XD;fw9oe+-BTcRWThc%eXXWS#au&5=i*wXz9Q)4LhjmX z%2vICzWErB_(WUIUQBK)bnd>FHVsR3%9wEASbeeUsx03Hv>U$R6#MmfSV1yJ!V{YZ4xDHfxM)5WRD023f;ovSf0FI%E5n;h z&2Capr9;bTpI3`ZZq{^Uxo{qH26T!fRqkieTWNYd&#$Y$8YtL>mg?V5Aa=JO!6Q4b zrBQF$g3M@DM$_&cWA26XZW64g_;Z*7=Q=~5(4IAX*}mj!RlrBYJ}wJl+aQoW==5$b zqe^}kAyPjXQrY01W=_>q z$ko~n^jOE8WHN*P8x=nBrgx2gNZGmuhMHg8W5=gDPWO>}%whys4P34UjRgiV~Qe+Uk?VOu1Hd4noiHPlp`6V<& z(m)2|Jwko;K%V|3cujOrS&Yl+jE3q*G=eV2&TwvuWyg0bE-Vj1f^yg2>EGlPEy9%< z=2{6JTyFRd9Nfd-<1Fa$AOEN&9zqnQ+CN)Uv>y1dZdWT-@&Ec2j?un?^u(ZbFrp>S zrfYzbsIm^3*gf#UqK)hRI9t0ed)2Y~<$7Upn)NpQb~w_Mx*6-es<&lWi-E^3cxSZ4 zdvPvNjvV*mBR22sW9cAzJT^?BOTfexwTw?Kou8YgIC}H!)QN4ee#u2tz=HJV6d>Vz zNxO;AD+k-}WbO@D!L3w;)5U<0uB~GHAnvE#NFZeC(f7D)2e24{H0fSwPJScwoeMhv z-2Jc{C4Dn(1f6;*Kxt*wI%RII**dsDuP|SD^D(qaXV4xEL~KNK4Bj+XQn)+yc6A$a zUCY#Gk|fQS8e0(;M>1YWsVPqTW_lRGjJr33_|%x$&>P=i;WsO`gFM$z9UJ-2PMVs% zkUP7B4w~9^KrgKC@hD9qRJ9hKep)KbHE3T{28WcN0RES4!m5XbVHkXi@6A<*mRPsH zw@Y2L6@GB51T1mXN9OZkbqiY1Rgk*5<-d_Qr=rX&!#OnS2vblb%e}eY=_}oZhDxa2 zD1fcG{7ib6aj}eqrmWZCisk&eKSuwgc;AO&<@cznspW6J75Fs&#^t!FREoDVrQ57< zAeY-#e3sTkTog+IV5>l`?Ory#A21nB<%>NVJSL6|YOGXsWL=95=k#yzAyk|Ctv^&s zxGgZMM9N9v5t@!Q`d8^4PvDqIV*0n1CLog}f@TB+f7GP}WPZev3u^sn(c0GH26I3e zzUlfVeLjtdq}?ErH~2En}x3MbbJxo2p$eB-q6(^x^Ox6YzTZ^bG^^+w4D)vXjP#_`b6J{@C;U zv^&V0uGeXfwHf+#%fZ2+rggNF+wcwTa(2tKqDx`2=Y6VUgx;r0>98CI`tZqh}$()ShB&?32~bl$u7?U^VkV zA|ILH(^e)!)-Po#P-4*T_kN}@cs1QO862JJ+*x$U=ap=*XPbEcRvSRJ~(a@ z#xOixT)Yq-!g|Ap$Fb3T_mW;dv8&Iui5J{v&w@HJJ;b6|@f&MUut>F~CgF$u+U*e) zK?$$ztt)%CeA?q*ufuwioF>9_pBDX?AJnz$L0nte=(CLz+;}UqBh_U@EFW*VfJWi1 zUZ?A`mt0}tb(5#NVX|keyY8K=u8#@S0v8Ym2EWn61x8$+f3)}eq4oC5!lkFH4tqwP zKzrupcKkt?z4OO-inmvRa|H zwP)S9+#cuWgLzJ>O|Lp_x-v#xoBaM#{p+B5CvUnRQiK;Us zh2KAiWa;PV2SDwGSH{w}s`+qw-JT(ON!VN?loA-0oJE7rdUx&bH(40VSpC|$OwVGc zAYy8pY0!F{9@-{c@>~OLpT80Y(cIi3ops^Sk6(}>L?^OQk0C^T&0w7+T7K>}XA(}O z^?sKn_c)Mf(SQx8p%|aBHuS*m9G68O6AEdxij**+;KSPgl~AUJ9f3Hu9D}k}UgdM$ zuf&>j^!18NeUnNs(XOc08CZ3JfS7|8d# z9t;Zy2yC%Uq$wMAn{}@R%#wX@_wqj7VZZ19*I?u|V84$);7ZCc;1GO&|B_Yq*!zB+ zG;64zlgsi;SIc9(v&#Soh3e%7FYJfc()ro%K)%iunw?a@#2ywwsgw=x*VLh@ovycz zQ4&1HXHx->UZaBvV_Izxu>wNVqZe%O^=r>)$?*_U#L-#IfrpMp=didFr>=BoDh8H~qW~jF8ir;*&t`Wt9DZ+2=0#dKI0`K7)77bd6$X)-uR;rEbV_fIq8n|-~l0A~c%}*7w+AN%=?-Jo73RFn9jN>h4k5`_AiM7)A- z1OHJzo!w1$PhnXiSb~4U5ANl(N&RbpJ3#^*+OKJHFu!vg&A1pFIbe9!sNp)jCQiEXe{KGr40z_wd_Jy0a$RW08#+ee}Q%n!}~gAHR0 zL%G`+uR;Az0)$2@_xDekMN9quI*#jgSSeM@b`PI_V;$RD7XCCozv5wVXS}A#T#YaC zZL5L=`uoJsaG4ee(?KAOnMAkmmo6(tClS`0Ia-$#dU6foUPp;WF3$t2QPmvjhT$TJ zft0g#5)G$7+uqdv@EPIZfj247lXO;3fz}RdER{xzE~8-_;~2Eo63LzMFT9t^-f(r0 zqrBH$0!}B)KP5C!u1kBPjRuOXQ~BiQfImeyNAps;TR+I7avGnu4CIDfsEc4_U!iCwZ&D)lLrt9~tt(t@I@2fzUVhG9UKUMli`=imE ziGdi8Jfz{0(HCrQEcA1Fe#VR>nngy1{-DkD2rg+*Tg!;}_H%G+H~^GgZZ{VCSf8)3inXXZ8!0=UgH9 z$Yi~I3Zm}cLCvWWhP9`4_2XI2r+Qg7Lk5Tnp^q>^b36QWGqb-c*)c?-^n@z84^#^0c6>$JwjmSppSi#c~Fk2o+Z*7a06mwT_vEsfj zn&m9nU$hyWQXKq=FLl1St|-!Oyi1Ygq|la?QKesEVew1i(!i^B6P^2Y6go@guf6zACkME8whf1jrl z-Ali#pQGo?H#1#vgKzd8t!o)v&VJqkFJ@c;w)++3y;UyqmOyA=T0F)hV*xN;wST=AcyywfG2L=hFcQ9bJ(0KQ;WaA`f>UEVa8Df zVKZjn$#Cb}EokvUBdw#gdF;XeVQW`c_&Mo?+5f)vwDvMLW!zA#r)l&2e*4MD={g5( z%Du&Z<`M)vIzOBNv32k&a^faxJSROXb+EuKu45D#&t5jY;Dz;7NUY^$;z9wEs|62Xmvt#CJBhx zAG2xJo%FJKZSc-=;TBEp~UodyqtOt~l%X--F3qr1tYxhy}+U>1VCs zlCwBw4t@c*ua;9d&MwVDe&V_x>zCa+o3pj@;rrU4TU-*4XH^9%bL&Ap#Z3dj?e5lN`hCMno2eB+ipJ^0TZR6^*2O2u( zVGJ{8_GUg2&Ys&bo!1Spy*4I{d2)U4`(pTkkdd*<|5Cdq(IN35sX#%ZMr=-;N`3{ z3((8KxAcNGJ;b$0nTA{-HX{#jSAm|Q1q;zyOXC)jmf1MF&#jz3!3EWCe4zwb=kXop zitNTSsrbbQc}jEb(F+V+gRXiJbKWNem&rtgQmv4Fq~1{SHBa?ACe#-RK0}n&HSD!{ zYB|sj+%LF4o;7A_M?YNV=VnmrOz!4nJ2g^1-wN{chSZ20!xT$cJZfabr1*NVYj`;Q z8;8*g&(8FP@|Q7CS5!r(Ba?b?sv$4mF}!~uE$f@mKAQkUeDastik3BS(Yf(wr;*^QEfr=-|~_W~HH658C~9um0Cvb^ExrZ&7gyrF8fc^H0?y z>?%XI9KGZ7!Pw}b08A*%*Fs^b`Y{W;>Bsttb1Tp~>+xyRAuWpC3)cdjLA=jW094m* zO+%k>vIgu~x}ohg41YG&BSSeMTVW|xK0_XO1oe|LyNs?a5UvSBZU%oQKO@O@R<qV4Jy@&Q!vw!p+bsD1>i_H$_-p7fvo{j8fkFUZJLj6E z9#MLT7y!TebsM%W#SiD)YjJp^n*+*DZVGcrW6D^s$P?#q{96z8Po2a?FdkIl_E?pa zgza<84zIiCQK>D@TwesFi7oYZQbQaCvjC9IoGkxfhiOyk+6M$jIx*lqG7jJ#e5qP& zx;fau;ERxLERJF@LgZEDjl)TDx<0BR)P|!?(;%F3u9{M+J*BF(t^_I%)TaEDeA3fl%TE&71qJAY>P zOc^Pb?&@^)DWBU8y*BD`Efce+R)G6*tW3UzAQBvuG4>q+lv|znz0bin%??@SDmhdW zu;tdzGFHRx+iLqeL0PUyMT2Fr!^+FCVi`gSQJd+4@7LkEL~hn=L(1Rl9poFzy(j2< z%7(rVjiM9lNu08QenUVf7A=C>=Sfvb`qy0P29;vESC(7Q^_M#h%k#{U# zObba|v!J%>hBOh<*6$^IIEb(#S#L`0=mZtBnAGH+*|$UO8(h--6pmEQq-1$07A#8r z2p<&K@;JZ7{mB?_gfPR-IO_GGnf;qK^-1^4KFh(qIfp$>2~$m1>I~JlT*R3ca9@tN zsy*Ay@)HX+o?c}&vV29@NGs&oh>fXvx%1+0YPi|Z6Lz3>w&#^LFSVL+0_~KE_fTluKdc;=Tr|iV|b4I_5PO~*peW;29TIm z@Uw_ek0E1-&YP@ip|Dz1-B>>~DaMYP`d;gn zEnc|NSj4w(S$`LwG`S{OW)!L&qi%?aci&rtqp5N~9WuSiiiB10g+hnz#%VW`&5$PG zw@#N1TE~NIw8C__`n$1c=9BLDbd=8&oU55g_6$(WyxDaLiHs*CpS4r@ zz5C!OorA;h+!HoP>Kyel&(!NQB)aLLNj%O@qB1R`U#(W~5I$7DUW+g3>q-}#FSv6h z#*eYT^Wk&F$)_RMSTsd?Wj9@IFVgLdkQjJUpWbdE)&ws2S~xubAv z%Ax|qvGPOW?9+s=N8i_apRI4W|K$w^)QCOzVjpAMm71>x zna5(z9~2mSGv#yQ!~8hB7YYIH5DbnZpwGJlIrunlbH9vXUUw?-6sceppV&;>riwNqyq*8SSO1&L zSR%5%b5oBujl1->HSn zW0V`J)~>2WMuXp+FiGQ6yj+737AG?uDzzkqJwPN>_t?&?jtEV_?1j*=a9Y@R3O4Rh z66@gQFLxF!dn2(8OQBlagv^A6b*z3nPPlv&Ywq|myX$YvCD-=Bw!#R8665q09?$)- z9_x*Xb^MkvO&6edSw-KLb!WUWO9vh=LuV-xzPCy&_$G!M8Am2bK~m(N>F?D?#0aI> zOfEwX0_zsew$V-#nezEzhQT1Mjb+NkIO`;t`l*mA|Uxotm<>Us08&L|A2^_#S1J|yJyr2VE4`u|m%yExEayFZrld~f-0 zF&qNkYG1cj4D^8koK=3OaKoq(LqxMpGX4@_p>!Q|YLc0FM!}6XN zQh_QnWgfaJ6<;xP8&;>XB~>J1r4$FR0(c1r7pG%B+wHe~S~{Ep`C9apLVf@6@LE}t zcQWRG;IX|hOEE_;?~;s9i2Cg3-`rN(cSUfv|AXzwMH(szX2RDjo8TE0GprPysDrj? z1IIs@nRjU72HoKsNLVC-{`e(=p_LM0neEVM{NOD9)B3^M1clJ6<5@z8zb!Rt*Rj6I zXuD&TIMu-EG1s-x0q){qR4jB41xy@jah_q70V6=two~=X$-(BYOVS#aKWByp>0F=D zdNokxNS1l=1bebiAz_)oP|AVRz;XbqE;(^6s!p8I&^4CkahIwc2NHVc0ZiLK(R>rM zrYU@Zoy|8ky>TpcLlgDY{3AfH#G1`ee%fD#YGtlkkvE6wS=Pw_(b&*# z$U;2)l~3w*-RaJIxpRLi9A%;c_G*i&1xTX8AWLpAtJiW8Is_m(IRz|yz&dMY6J9QI zj5_c@k4P3IJL@F37DN-OD4JSr??5T4f5X7v?A9e?e=3C>2Zj?x(n`Oo#RBI!)0Zk& zxvy6;x7Y%msf3DSq^=(-Vp4}Uz~>tFdDi8Cs98iNYkbf)0^3&~81BYJ-JAVJ#H)nP z;a4AnwHSuKR9q-t#rdyK5T?n0UpA4DVXKCtt zE7mE|pM5J@&xdau>Tk`$_{DWXw#VR6IgA!W^yOIAx|Bhv=(gSZER9;)*89n3S7tOJ zM9-X7+(&dH4SfrX9hWQf+7HCOXd%7(I({zrvoF0rrma@NYWYPlm9^`p;JMBTN3Yst z{2PKQ;lJxo7M9-Dz@BB4Uo5}9R|4SKC&~nxN8^#@4#x2Z4#E{nFm`2P3deB;*=T7T zFxE8Wp;nDDN@?;Sb)#tT!3{b!myx&W<#9muf!;>q=yzS+KSFs6$NYX;ud*Naf}6`? z=EG$NbflCV-eIfdgF9&>amskl(bhqGRJ9#?ttqu>IrpWnOA7fnpIX$-F%q@TwRvI9 z2-*G=LkVb1v|+Ps|CF{wGuVQ6|MvroB|BcvKCKl*ED4nRw8Vvkn5j;-?Uv>8&wO#( z7TgAl0UhJg#%=sIg>`9OSXP$L&eEH2aj)3u&gy&~00b{1t_T7$#aWK`s7UI1r5dpjLM5M{ zek`MHiRAMnEt^Vl+QyYdi=EW_(LkSnYWditfDtZ13djI+aXQzUuKi(E;?6IOguN&S zX2R|Bt#(#8U$Ms`%ToOrqakLHM7VuNuZ9*Swv8(Oli(3{#z(Wo6!j9R)^E(xPnQVG z!i_t@sMx39(jgX^FqxU4V61%cfJUf6_w~V^{4`%|5C5~L&LUbc#Gfg=tMw%mWTmQR z{tr;A-q?Yhi9qJfb)dLDueH32N52GnK{P1|egFBa*sNQ~pl=n9T{q~VF2rmgmu>*s zwTk;TSW(h4g{Y}_Olf_DWhI>@kzpUB#e>?kGfTR9*Q^nWboSzJU_HG|bR6Vbso%fs zCT{{GMGSiBz*Pl;3tw+7)E&gL;XKuOH(f6APmwd;_vtxU!g2R~#O0SzV4?*{{4+ zmf6bR<vZaD#tN?ou2I96)l)mi`&&Q&f)s}ZrJN`61 zQ<}wie7pw$eVn>LIYRHK+wUi*X|qRM{?0e1j z3x7~pug_ig^DFJM-2#D^o%3&hXPzw@j#HR?&024R0VA-}a?#v+B^+7>0`La12C2GN0e|^j3j_NP zmzuL$M0ZR6I@YcwlDL_j;ei_4!ZYUwC_xit zZnYIkkINmVmQdNVX=G*N={dy%){qF1X#Wl(GGKSmWbv@#dlr@;Tm`UdTQ~n+I+AB2 zwf$3j3E!5&XL$Mj`RsE>@$Z=LckzIX&3u=|fVJY^vTyETa?D(D$tauwBewQLxCpas z&-}-JCn6JVP9pCDb~V4%$ENE!(ebmaB`-_=Wb>S*KR5a$fNNI4=g&8HP|ImBh^}3% zU!Bia&Fk#hjFOVEC_ipjh24+hXP}AfN~S;zk>#hgK6J*Q9ryR^DW={7PKikxISgC4 zUe26A$p<(lSV$IJwez#B!f=1A38GXIN6D;;qInS>BZ+%Lf;ypFl5s5u7Y+ACXG!oT zQvwChOHy41N8KUDjNCbd`Vqu4MvCt(bVF2Vb8`LrQb-{)nW#ZPyj>Cyu_!L4Tp98d zv>Wkr%`^UuWg;yOCVEp{@fL10w%%K(AA(O0HZSN6_|F)ywUWcW{8<5dHYsDL8+mB2Mt z&8VoTZLg0z9FdEoEdr_0PQ*vhg=EqD88eU)S~ncS!k$^zn7qxSfrupUSN-f@x7AAj z(Q?CcMjKF)?}87drbNOkIketW?FF-90Knk>r6omnJ;OG7U2E9&BM(yyPgyh=n3Cw0BabpHBK_)W$8MOd-fk3S1m2?1N7PDCPk{*Su6(=E7J~z;YC{V;{ z7QC98ZgG|9<;K)YaV1nZ`zM>#p2xHDPioz@9&KMmhln9>c5`%Lp|#!YCx-s{=fCVo zgs+t7@cPLmWA*01wJopEsu_^&8%aE>V{JAeANkCj-_S1IgR_+x=1Uq7$N6rZh? zf6!7kR9&Zg1$_;@V^?;6VEj3V9Jbx8%5T*Q#k@vso4J_mhQ^cEeVNmdq`dfAW7UJg zU*uAH-i`OF0iCUPseR6I5~C^t8LxgD7OUu*t$&bbSmhc8{E+{&kF7#u2H)!zp}~Y~ z-(*Ql9{J%L<7)(Lq2L!&W+k)K6%54tn-PrTX;{UBK7S77A6N=ZWR;vNy2}or7jRye zE1|j?26Yf2+ZgChe4=-S?MuztTF!+S?D3zSY|L)%pEFQ2~9%L0orzs6A=M~7)p5WP_6MnhlDOi zos5p$x+~#x{DA`i;THuJsTIZn3BS@y82KujN8qo-V(_^jPat2@4x;u_ZPPdJWg2CU zx83IY5@%h+Nml={1R z&Uj_k45@doC4lNoZ@&N!9E>7L;Us0@M)<>UFsz||E0y0PX=xD6WZ-^P`M(VzU8jOTC zrRTtLL&1uTn1~5+LLnWp2JB@U zEZT1?4l^kWNDwK}@PK1~B8PfAv)9!SU2v8@n}IZ$AfkJVtoqurcKrw~nDR}%mzt}B z9h7^T$0lc?BcJNsb6Zw~zd_^ExQ6qLClXt!1G^g%XF$YOen@QLOV~*k4=Qppxs%dE zFwb6?PvCdeHxhPNCHec8y{|GIl6ew<<0gt;UGqbapUf=4yojSBsC%hX_9Sn4=S|d1+frg-)3_IG8y4cOWT|_8Dby=LjAZv$u^uUc+W?mZPewHl$;@RguCgO>fsNhMI z0u=EZPQAvD?Z^Ne9?Ar(vh%(21ZXd4Xkff>`%`}m?a1Q(MXN?T;X4)|C<+#i&Vk=uY zII*5^nv$ERud~`O;eMysci?ta;GUTc6N9;3JdQ)y4}_FH;C#$`3 z{gIQluAv840@GpqYTBB2-d^t18t{HcOhC6Ce`HgA;%}(JdgrCA*QCMh@W`Uz@uyR@ z!Y2E)=8_Rl!z$l_&r2NMs(K5+cJCE2)9*ZqUupJ&?z!5_3RSq$%IZ`}!F7p%IO2qQ z{6%(j;g)ci9E7D%nE?!((8^ci?%DPeZtrsMwIoq)5CyHyT%q?q>R zZ!bS`);~7*Q%Ow*-Vr*%jJ3jHt|EgzWZGWdNL-C^D7JH4!fsN@0!!RcY0}m;!W%pF z6H6ZI?_;WA%&ztI4{4|5Fb;%@MVyVl(wHrqw7u~G0%wCGGf?{OQk%dqyeuAW2jWvY z%MTg>w8)+nPsN*#i?y2?tHZ%pgN|wf0=^ta+)oeA zHF)>lyrBvu|BuV%PwTvsv;9$o;gNM*m9?zfdHy2o)8^f@wZZrOII=x+YGg3L-8BnuqV!Z+r181 z*5zt#)R+ImcDlsd_`+4RFIC3?YPo0CU3xZ_*U%jZ%|;HmF;M_J=s(}SOiPXJ+Qc8R>dqGLvH1|FtjwicA?RUDj$#thich^miU3C z%uqSzR=-JAJ7K5%)urVh|AgmZ#la##SCZ|RU`77;Z3dk$$0MBd+Zy3$>MyFfs2P~r zPj=>CJZHLhX5oZHa`LmQ&jU9E9{Lcy938O+=HBHjH#N4McITkf!k2SD5X7foX2*_I zP-0?mn`NDgTvTw0cD~LmYe!|gNFR7P*9}aE(WiS5@dm$XG$DXvAAv_4vrC;A23?@v z88Cnem(kEiUg{#WB{@uiSmYg>lYC}lfAScpCN7QIjS6+ZMgy|b?aK0_w`UMwGNaZ* zr>ihHxNVTt>vxSN&(Gj*xsKpN*k4G|Cp2ZNF*n1V*-5$Fww*=>q}qWjluaz*snHdM zb(zAMQ56r+h*3#K{6->zU+pIU)SKu&Z)u7#W6LV?cy3`Zl4e2PWz`*pz7mOWe8+WoLMq9-B#x*6bYFI1Ckt|MJ=u*PhTAfKkeY_c=ymKe4- zYbr=d?~3A{7598RLMmu~;(l7JVeQ*-kX$S;SrN&yX5QBttGlJnK=Q`(_QC6N9(@vw ztS|vT^3Iv?-!sI3t^wvClj`zlamUZ0sRwkq^Ng0t#113X!DbSan~K$D@#>@GllbS| z8Z?t~1^1^;?zO$reSnxB{!k4!L!7?--Kn!U_Uzrz!RkUHyTr8r>Z(g87poVFgC%L1 zp5#$%Bro%&u8S4-m-GJ+?Cn)G(1kKWCdAVl-^<~@h)C%#dX+@7cMBY}KH%3D%->qY zT;0_LhVq*RPio1m$HMvR8q2*?hMiFp1^K9=@6h%6oTwm=!a>*tmyMws)vJZ{I}uk4 z9G1G(k^gSARC8+=SDp@f{=o}TFw*R*Q4@)qT{mDuODCU$zlIi?)9|M@k=}iTa^4RO z+TREZA?tAd>hre#hS7}N0eq6RD2ORj5gM+-|AgUKPfvO-3N zEqdi-@X^d(gbmtgnaBQ(>h(-=XWwE4E zSLpj7HLup&+5z%suM3M1Q}Yt4tRbv_7z!qYac@Y~PI=c7{*I@=xtd*I5LkpMoHWsJ zBeqmS41JC^9-R>vXZhIs*+7|Yi^d_%TLc1&iqdATN(_6kAaS=Dzdy1wP%N=d=rV7C z9r!0%#Tz{)D0JM@6xdp|J5Nw|hFyvvXyEuP0V-z4_PVhNR@FtR0=(5esIIVoz(V-r zI+k@!>H$fb{IY5rm<7w@w;H0h?3|T(OQTh@R<~xR=+&q4hkdZRnv*hX3Y4nVkEqh6 z!*}{A{I%|7sB_A&)^s?+ETRsCh)4~LzYiY=peVl)@grn=u|XD}ry<~RuEHnVU(E}P zzbJ0VHFclz4pqF&YHhwN^Ot4g!hfpUw6a+dyJ6?U^giIXu@fNX+eo68YIgoS+x_?6 z4*peoY4MRt*f%cRzf56~`H70Z)BF>8W3&{B+Ugs{lO=4)yW1bPX-gv4r%f87a5U+- zxR+5S8iyF?@o{|afBnn+NKe3o9?=_wq1H@N#XD@A*enEQAulYKT=;;3_ov1k<%Bc6 zz*3*5Rm$1ZopeC?=Cump4G(py+V}y*Gzo~0Es;@gZd>X5C%S!29OD`9Cf1!^>em0w z0=TRG(Cs$mH}B1CQ}<}Ko!(K};|kLj>Atz{5I6zC$Lnmg$Uv`siy;Hf{0Z;QSK{C; zav58!=bS&;|C>xG#1AImebO40i&ZG)X^5)kP+FOa1&r6cu=Hoeb3^`Q&@`Y7`4tcm zE!s33<$oPLd$^P2I;|_Jif=MYa|hsI9n{M%d~8wriZi{qUA&rnvp#jw^cwGuWwR4C zF?Uio!w{5u7&!}ED8#`4c8h6NS2%FUgc3-a9%sd~nhuVV61`MQ>k{YfR`+Xk*aTNGfDnlQ2lyB2n$4 z&sOF;FSI<)uS}jA-RQVi4x885U#k60%B~#7M1%!4NLpT$9$Hy85gX6nyAip!pM$0g zQaS>zL#j0MW^!jpGgDZ4dom66cy7#fuelX%dz%1DPA^o0T6Br#8ka8AH2w1R5? zWRz>c%1sKJH95f60h6{&NX?@X_-GFo~7ZE0}&xnQrOlEsj3X@JWIG7i*I~~ zC$5;IX{egIb2P1ccp+HOBT6H=3VXo|e~E`4V^%rdfW&&D)JX*gXXSW1nf1Ng zS60aXFt&0r_h?#m{EKG($KqZdpG1PlXpvwZ5tbYzxjC1_;MUo}Tgjp(y_|(Zf(6>T z2jb!8?N-_f3nFpWlT)MLZ&;Ab3A|<#I(?DE^BO57ypRXY9ZytYdSLt+0CW2z+aiI~ zqOdh`uzrw#_pdAp2BllK{Phjhz%LT$7cl_jF_tu`JhFRWM;RY;XSl8ssp2!w|LhuE z^6w%IF)t{}(bu~3ct$It434Asm)X;zF`?H~a;?lpZiz`VWte)X6nuJg{`1#{))}gN znuRFu^?v`ETxf@M5|=migQP&Yucl z8FFss;#_%M+_dqkcRiZgyDPm9vh|t&)jVE;BwDX&G+{EX-uUUTiQV{*&bWvqi1WNP z94(z0!=_uS7KTQ4_FZ@Dx3yFJle`|HCJ4A;c^Tyk&o`EJUP){pABcLZ84N>?vOT!6 zK68)rV~S=FO__kVb<;4FP09jpoIPRN2$RhC)` zx<=$X2D6=4XMlPYea^!!vz)=bUO8rQf+!A;aF~sT(~2tx6#sD|Vso39yb|;5BaJs_ zb6Py}0#gme+s#keS-tW}_ah9JF`r+f**5|a4<@eFV#?l^s|r^TeppnO6bJ0MDPCYKN0=a$XJTWNua16kM(o==Y0{t=l=W}2b%{A7_uUh;&)F$HW zR+Nne6YVGYBNy5pQ%W|tL|u4SJv}Fv)^t7ra9w3WON%m6RBt1viz8Ggl}Kg<`X|gf z1JaC*!N}EJ+6=q!d{S3?vPbmq#>;e=H7(z*xExM%rPh;8RkiNUv}i+FP|l2J+ZA3# zA|OX~*yEngzEqhi%&TW$JF)vkS-?+xmg@*Z9Q+tx@lQ(jPuMwV_u9>P-;vCAn@nT5 z_Q!lqL*vx@i-yA&K|UAcvhH|R{=eTfUYFKyu6isd=&p3H1hwnY5{$rC-J22HUe52! ze=6fQzD`@ra-X*2ionNInF+boKVU&cloPk#5Z?k)PU+&k(1(f&y-^>KO-^v0@a80E z;Ga=2QH^&p0!yJ}nSji%`+d1)%{ICTE_R&t`4vgAaL=6heHcoG6an%IPUI7U3x-Ps zKn3}T@CjRqsz`MIcn<;m4f?hXTUfiq9v5;TkM&6NxtmPBQIib1nItC1Kz!|3q0st+ zr`>QG`6CiEo;YxO^m1teYEBr)Z*j6{`oh3Qj0Mef-I$WK%7(FI2S58=;woUNL;y}F z^HYKMeW6VW#)#c4%*Faby+`LZm_oo#T`90Jmu8SXW?C)w32T~`O^mm>!yam%vtmcb zIlsHPGXUsZ?O(}mR_X`?RoU}z2G?%q@=^a|;De7O75)ZyETJP`)HTgkbwM0TjZV8W zhhFDm0%`TPJ;5sW;)II4HLgEBU-cbvY)k$#!D?y}CA>ZzCi2ARz%MKX4r&zb6^!c| zOnwHhg_5@g$u-F(zdV2TNgJ3xc%5I%!?u3weBeqX=P;??0Nd@+Vaj;$qE-`X&ohP) zE<7Ia^^hCNK*yA^Runc8MM*XT@BR&<4xnyTLWj?kdj`eah-ixxIHOLH0nLa&TNI<7 zIAh8mXx9WcL`VyjOvf}Rv7Q=)(**e;i0TX^UrvJ3UFNEBb!b5NE#PkT+#rP_1)raN zkxh7Q$#PQzM=->|Knl6#S@*V+IfqE4Dw`3m<8*7>gLa3!AQ*rZ+jcB)#Ett{NciG77~D{QUm`WI&t0zcdS2s9EaNi3;}0M{}U&j?_I!tkMCPm~IM8t#32}zDQkjHz6ZB zNjY8VJG-SeKRv}qW1BMMA*3kx(R9X&0kjr)46GXGv?J2jYSEzCG9%QSuVinGm+?k@ zw1;m)euiw;KnYwc61_HbcH={1Vue?KLHT2=44XJJ+De;j>YufpVa9~3WY=T`D_s@Q zz&$!(gK624$pED5`mHn#qU?~)5srpd1CzPI8zj{JgIDnrX^p?>N-MC3d<}gmzs4%< zk&bZR4jsOa^HkYhqy6R6Z)K`CS&K>dfBs%@+c5-mv&0ILO|l5j90|QiCwR|ghmPnc zZ$qBsqXE;n>dFRdrBJuVIc|aGn%$~s`L-qc7{mOoEM`!ESYu*xCRvk#TH)LTC8`+} z$wyK+w(iY6d3$l_7oF|_Q`7JF#()rEz>-#@?Ke?yPi|0{psxBOK6n66(M9Qei${oa3(aq}C= zav&iQ8~Vz)HDo$l&6eqGc>oeEpP$L+IekJJ=-=U6F;QA6s#mj1LJGbj)hj(Grq-x!dk9R~MTrqPW_vX6uwG z!ABhsEX5bO<6i0?&5RE{J?m2dBcyJhyO$bgr%Qet? z>8ogUlq*mk+no%n=Gdnm^>%lY%l;mffB={B(f)oepsKEzpvVJGr3 zQOAZKz2553_?KNHd5)#ZCN=%xa0gJOw*r#KU1>Z@rz$N&%sW!%(hR+ima*iN@=HJT zXbdW&wCoP5&V6~tBri)Pe;L+XrEVN6?h=+NYYjR|JeMQ!NKT=bmF%-$$Br_#|2TKB zCXZHrHqH3-QCZ0Yo+#)n=58hT|2<>+%ejW3@N$ZpN|`t? zabV)W#DR$e69<02IPf?9!5_VP^#0xA@^h~&{^Fne=Hac+y*0bP{cwKqYhOG4hU>?l zfAGrkGprfg+u5rpW1kno!C3QN_ILZm{l)6^8ldzQHc6&;vnjz-a5`Y95J21FIXeZy zu$aA`4aBg@)@9VSs>Y0W=j$<+_~1G9a7{itQ!eYDvo9~UTHl$n3NOvsbUHo=&gHmp zWkd+tqLNLd*wgaj96T_=@5M}T<=#PUtx6Jx_OELgX{@QXAY$#JC5w>-336dFf?yEB zDrL3?SoKt}XHif%N1(twTiLd8z$CLMnQl2f0@MNvf;0h2Gpgr;@gAc6#_Zby zSD$5n3KUwYXI89t&E5qz2P%vpBI9>dhz}w{ai*9tJm#)*TG@`Q$F_v&AXHg+=KRQ} zhN^phi!9sra5wT4XSID!FJwxFq?40*JU&!Sp# z%?ZhXR>hOET(Vz*4ua+Ct^QW#U|1G8dso0HFiUWA00l*Lve)IQa!BPw%Utlt_f|jV z1l7!(2-3z~^`lw>04i}z+vFa`QFKVtTvn7cJ2Rkz69zrT%<>^Ttt61wScy=uRVd0< zi9{(eAf&m^DrY4p`9fK8Qb1gti)x9?l?xdfK52mJc$34I8&=5@i&$~+1UE+jw$*h7 zLkGcuPz6a_{SlBM+0wR$`8e@p1dVI%g87BxYmY#WW>5zVqE#t1K%enM;8QbjK5|&_ zt5%3dJs$yA6$e;)SHG;jc{FOJe!PYRT)pa8R^bWYc{_IYegR81eO(UNG=dFi8KB(x zS*MY0PJejK4v0_l!xZKU2>-j&>yjFVcT}ENUQ1V=l+%i_*FT5 z_dgZWz%ak5HKiyI<3{sX(yMvXQfmRf%gev2=}fB^5{WF608V!@c}6ca!QzY#YacnL zuEvTyWg#K?5>`-(T=d84Wu?4AJ*+$>%%79x>X7UtpLL?bGUzMi+{&lUCsmUX6he6| zDw$fBH+CL#0xUMQ)>I4RJ0TVTG}(e8ec_+={*$UYwJpC($FD zSdftzjE?`bzK9LAA6oQNoedJ?XV=ZGe<+dQ!l! zajjDZ8lz-g9$Fs|jvpo~k*IV%-Ye@x4L6Ij}V?q4rtE$;)z|VNvL<_no z861Jc6g6I)!TZ{&dRCm$?K+WuH8!6?x-ouNZv-{zB)xyGcE%y*BW}nD-m`y-dyhV7 zRU%3%1s^17CB5+sPlgbnX&7p!)-Kv|4ocr^bC4?Ss1f*IjgM+MPm_uM2{m!`oyCu?&{rk=g5X^%zqp+hwfXVbBy`=)HN?#pA7n%&K8ufKJCPiObop__T+ZIt@&FetocTt#l?32z@?ZZ1J^UUY{&cS zXJeIrL!kwh8#ii~0Jl~HOOt5@?bRXYbVC9KH> zk*L3TX7aO6WovTT+kJuP+)(XL$)vDd~Qv=0~GZ(h30)B$`6Rvz!Q;C$B-QP(c zvg{u%?@Bd<+B9S1tU%2m(#1ll%(-Coc*B7Va;kF;Kyc3r5pK`fWoV#h7ztVs#Nb_-{5hXl~arw zHc!9%j~(LH=-vK~LZf16RzK5uy_1f}C-9_Ev{%Y*u*^pZk`GsJXAcd`ln3fGu=IO8MnafZSgRgz-A3BD@fALK2T7peLF_#lcqsBKM z3W&bOz{bxC#3mFC{o5`oG`@m7V=Ip`hbMim%b0LB3?t-_3wKfUVywuQt1Z3dT~A72 zfaXg`LMHs54->NMR-`X7BxHo*-isR5^^A0vi2XYnvG|oqR*7@lMvu+ahHjUf_}1d* zoi*@{50TGkyM5Wp&>O>!9$XLbRn92PxZOnM5v$53L7s6fT>4!9_>Vm4&-v6Au|~Dn z2mBp04rZ36uf)Fp`rb!CvTic&WXs}tcG0;l&pvQ+MH*_BAw_;mb8crZR=MccgtdPy zdG0%MAEoq^{6|Jz=f?Lb`6#1=?w_xcs&#pk(NpJQ`9>^WT(7@5?3hn~ z{(^sgm#|;(lBNPC4on=FI52Tw;=o@g9QbX2;6Hi%n||HJ6PCfndcWL02R+zRZhpCT zeuU+O-22PN4=+9oF0mm8OQq2E(F9V9qF5=Ou+EhBV3 z-hKc~Egd?DCS^_(n98cSW4_t4Ykn;Qlk)<;oU>$`I)=)5B`L#%r6U;MR)S+z`>5&xb+wqSwM0*uiSK&*vPlKmY?feUTbtJ(pO z12nkxB~aigFvzMg$A6ac|8QN5ER(EHJo1JKq>f!V#|nZMe6 zxXH`0iY_5wXlLxV>c#5Q=qae04_i=`PcisX)5t?w)foX~zDAbu2cwiu4p2=uqQE|5QlbVe_Xx}(2x)&<-AmS2n+WuYk(WA%(P(@4#r6XBx|l8t0nHnJkG z`Pl_5;$bloSp}|04pNS4{Gyt3r5gMsKP89tjt(@7BJ76fjzoUH%D7l2teY6 z4jJ`8BLW3CMh_-Z1AxVlQ30|&g4b9uJlXn9{Et5uNujG1Moow)@Ea*3(1I0#_su2` z{PfBI&B-Os4Hk{SK>D`#y)(wH8lrQ;k}KV8lv6t!!^XB{@~PgVzP(E(ilmwJV(WJ0 z;a7cS@VJujw>-S10oe#)x2!Cn=>Tcy`O;Y#8K>e2QfxM1vIn`uG>b55jC21$di^5>ot!q7h%Sz3 zPk;b^4*mv+Yb@JlilE02CCZ|?CaJptGF|GREQ+xuFaUPwk0x|fooE^Irl6obB)Y3? z5y|?Q{!;KIz`SkMf+O+SkJ@mgHC`d1my|s~`!s@_M&Br~)4K&@)SWINuV~QUs_J>n z{ce9sX2j@JjhZW9RQDY1UwddQRkO+v-a$iAxGEHks@FvGHiK zq^S#&baa!yt8YpUz|J=P+IzmxG;V6A^$SfJwiu&HZocW-JCC*R;{);unNI$v{yh1E z=~AjVK5*N+Jk>4SXfj9`sf^$HVu__rQ*bYg(POTU7@9;*XL<1^rkli@EoOg-h@USR z>!@=~w#W<7x(Ji*!A?%~)mt3E4Dirzb()Fv8}F0=Qi>>sV=hYZ4e^>k@NB`UANAJ? z<0}($JsLKtck>QTl}q-Ae_+}L>TCQ+o&xJRxFsEHmq@!exksY<^R)@>KbYb6g}=pu zzTB!k;T5#SC4glQ^$AW6>3H~Juwq1$RP90~FR<7UK5NleHy<$a`vK%LwZ z1v_!Ces7Z_2^RXbS`12FRB`K_(!P)s{ zI#e?Gjhw>wFrr#Y~JqUHt$|>=3D|I2QRSg77|0{3QD7vojDK2aKYtMrPW>`sR|eGuZ4q zpCBGsrFgFR>=!ZZDt^a}jN%J2C<%|hT5RnSP z8y(k)TT#|&Sz6%)(oWPCC??YuGt~w30fjChuD4Zlf!7)^+Q6l2zE+X^YfhMl_HUP5 z{=u)^|MFk>4>sujyPyAq`(J+f?c1OG`Cokg=l;yk{fdovuWs+I@4WEBfc=#b$6Gsw z$LR9b8EIBU-*^G$)iX1s_h!wuVp{04Xhwh{`F>MU*?D$*Pl!Re*8o{8Coq3)YnRp2 z;@}hPT))5L1e<8J^;B>yR4$PDV@3$#WfM)soX!CfONnm0C+Wc}qL3lB5vSdJ24)t1;Qxbhy56RSGDNL3FyUsqs-hv*V2NpyumR$g#}V)3WD z16h~;X+3!O1o{M*|W))lun{Y(xZsf z-xH^Qs`8TCyE`!nBX6&NWSQmrOobgZVQ8#rxp9EQX0X^GwcUfsxMWpHl=wh$LGqGv zC7p<`Iz2#IBPdaS7|uki$v)%hXL~H`u`-u9fKH2mxGfmWPR+Bap3#lV)m?~hfaXTLG>B+2 zq$C@Bc7&cCB(ex?7WNLKlHT5dhTe`_tlc$X478Clw!uik>}Uf-;FjEPqQY-H(~IBQ zQR4|lwIu4HO@SJ`V+l311`rrUaQgU611g~!53Sa1loT%#{w2Lj>?&;FuWX6@WKi=h zqrU|Z$|keyyNT5lC;?DHaWrMv5(zh786h@F!MqY{GARjMo$ua7)0gn?O8qtN9CQE}Q z+0xEP?}`MU@66B4rmCx2yYftKS@k|(OW@}Z(a(yr{QT3|1)N=(9B*QMtDf2FCgZUa z)cM>d!?Q&ov&7Wcpgtd$QcDz-sPMF7)HWHAGRDCt;Jlv*vJ2=BSB(*W1 zdh^d}*F;>btTw%^f$+5hCzXH>m5SMDKbG`QCF*#dh1X|nnBUQuC4t@TC@#84o8HN* zkGj!%9Ur${`NTx_655Fy4()J;(=~tA(PeYIDTDo|2mc)}8&P~l>MU!pHr!P*LejP* zr5l6sO%T=&vJ=TN{R3YNcJDYu_l;dy$>zue4Ye;aD_H^3jf8O=cf@H{uthd1rq`9( z#I%wqTiq?V$fqMm0&#+{W3NO?Im7t|g3BCk_WtB{%XO@tgySYQoeU5xO7J%!!IPb6 zkNmv8E5Mk+Yl)9`tW617iR4gPQH8X!3&vUdHbL2Ly^a;FO~>w|K15ug5-DT{Em-M9 z0F~>z$iW&kVuRdGZI70Ri^lZ>iBkllk^<}@jDhMBdzl40VG^qLr{i4V>DekZ8ITV& zsgkQp8YRo@*aE}*-g)X;Az}lC>z6$+Q*3BO?qZM zWi}(R=l(FTtD8?9@IhbrwyPSj9SMv!ez)U%I|-sbiG;|G;F)SRmkoD3|C*mZbABax z1>RzhA}ThpzKcr$D1K|S>elD@tS=yw@`2MmRrUBxnnfOMnz-PvH<9RuL^qcC*7Qj! zIwoQ&=4mISqT5kPt~I~m&zB5ncB4p(J=8&(yKv>LOaev!%8{wq=itnK+l8GEOK~65 zy12wHf3qj?Mv5iuAsfwf*}^w)>|m+=sn#w`(oJXe!N*oG2|4|rAFJOpMw{0YCr93+ z-B!n^VWr8-Am`h}u1iX90*>*uNU62}D&M#X?5=La?u-At+5!z0^r5xBp`)zxW%Y55 z8StEs%y$I02`!U*)=I@l6{9W9`__+c0v6~Rhkw^MA0{3In+%+=^|N`6O#(MbY@(4g zvW8qYh_qMoU0d|uS*(=qigU6panE9qcFeXLD4VNxZ6{u{2mWzBqKP#3TO1``+!559 z*kFU&FVa;kk(#cEj-1$3u+ST?!CGIfY}B_P<(1NiET*2_7Jo`x?^$iQ1w`s6j{Mq; z%_Q7r3|a_S9Kffo@qa;SWCy1V-n(KOALVP~uhRmGOW0X{dU%^Wj*fO7n=Iu&@rjntQ1T&VHohw< zUt$?49Rr;1Heu8vu8!gMc&DD&soa8xtKRt=GaqB8-M9LeE$+fKuiox!yAG9g>~QZz zu5a5Iq=5t7wNSS-E3oTB`2O1mX zt4<79%qyJi!*?1aaFNf*2Q5ynE1Z=C~3RJ7dXn>m^6I}K3{8iUOQ1) z-Eqs39y%J@Ldz@f64h3PkU#p~yAS{PZ~pba^QQ&;pXdcY`gi`7f9Agn*3;)3mOwU{ zs`6A>g;Yp=GF`IEnvFj`O1w?q)UV`XoB6XQx7hr4jB6CNjg15I1o@pHXRkRk&B&rZ z<1)4>T~jj?H}bh2e*%b;#jZYv=!fdOg3BT$bFMSh`}#MgBf*mi*R^GjJc}ic-g3KE zt9nH?;L6=JPVJ+p4u;p-43hayZ;JBV7)Af24dmCo&dGuxK7_MCkb23#_5sbMh zPyqwYlj#eeXJ8!9dF^CRFv@sBAAr#lJUPNsYu~vbMd9mD`aFfx^*U=$eEQozn%Vv6 zi`D!unQZ9cYE^<4RGz5bih}F&Ga26p+%C{eUFys(fX*_)GKqP%t3#5T0UCK=9J`7J zREPleue&#pQ417q-3vzL0vvjjZBjhH&78=}gIu9f_2ua#CW)dtVu{7u^Qjdqw$7(V zT>ek}`r;|8c5oJWj?VS%o1m|!MSH%xeynQsiJc;nPO^(L-ipbKEUD2^%}T^JD@IIX ze{>DMNnAFVoOAQ~Q*`;@x&@LegYxye2?cveB4lwv4E{{+Zh17l$WtYuL{odLdSnlB zbQV`6n-*mZF$}3BImUywk$K^#4)MTEQh|yDAbcmeK2dSX57D{V{Rt>q_h0;<8Vgv$ z+vVs4G96qv>-&Od>bO8SooqP9W+L@pOnq5^;w@hq6UXt@?c@La&L1lF&3zUWd~@iY zFg;1&Ndiw2c#^=A1SWx-U;pjD`KR8wed&zb&n+)39+5Zk`QYsr-_f(*eRco3=(d+@ z^}5tW^CFt}#02jMS%l6aO@WPFrxyM8u_C`o)yL}(jFa#F1(OyxfBx^>%SM#ADQVFW ztnZ3Fgwod^ny>iE;PCc&@l^>i1Jb)K%C-YZ@S)2WwJ%2V&Ywowf)nIGWD?<~T|jPj zgq(@afQq#A=`XC%^d2B_r<8||zTgS0t51|G!P4r=kKwnew7QliKYBr|qRNzlw?cDq zMuTAQm0B`f5QC0FUhxR5a_r^ql$W3eGXw&m2IPX`QZ49F0?SJlmPGTP;>A>pKY%x= zQPmi$pj1tRmm)1ly!)~5_(XpjB8zT94t*h`Fp1a;yb^`vMl1X`XVmJw5)mblsv=EqP0CsfYgdH(252#k4o8ups-s-njatC$ zXw6h-XY2_Ek-wx)u}xu^-LWWX`Wp?~G| zJ<2N14-igrehI^De|0@7k{3`bYV0JgWNX{OcDMFl6cLhZuj2g_wmAdi4(@*{ya*h*aV81wj)7%lDXGCFG(C9kseOYQhz?_20Fc1pN= zmoF4Y@4Z82#q%5tJ8fr^oDiDhWdi9NTidlJ>yRhmFPP!TMq3HpgwSMFiM(Sq(Tr#C z07U1J%bhlCmxl!CCVKeV&6_Dws`k(xtR~FJoGi{HS(1ZQ^O(5j_)HYKY`%$x$i^;} zB@H(y21`3jbGuK~Tj;^B#Pxhlj744({!OITM$iFP#FRj4a0(9MYcp)C&C5#X3o4Y! zUnav?U6W@`Ui2=X6xYO`31bsmHJEwg&;jA&Uj7c~R;edLKB9JgbMvFS%t#?#A%?Q*mF(sKq9V)OKK1k)yH> z$?m@KUos?8dXxq8u?nNzpnA!7{ZS3^l*ky>uMO)gLeX&$B?8uNTF64ifJvJ1W%H#G zJVx^SCoxc;k{`4frVhX)q<4W9)cOBZ zl<)0!lY9KIXjn38jh4q4fUt% z@3S%2?APfI=_om)ByeD*2Nw|uW0s~3qqK5y+eC*2A=y#=;%I`B&E)V;qo|F7b0nQ@ zrXG5e+Xlxq4E0CZiFf<9tD`n=Vy)d#2pnt%j|TmHeOU6?Vyc9g->*#|;L$E*{yh2T z0U2=Yx^DMmlROz00&@GoU1BY#7oT~N+D5UED&V`swRf-MtA!Z+I2YkIDYO_yJNE;Q z+Nw$VGImWwY=Q~q>2}F4Rc6rjA@I^MInyWEAaIGm)K3cY9rb~O)y_*3cKM?wbwp*^ z55+2MQq5Cffy4}0$qp$5S(`0}XqRH;7yl%eL{E?DAgAKr6cQatr&lPTM=a=AbTH#J z-OLb`Z80Da>sN4xPPVg}^S7v*Y}g)%#0mA;B?u}wTcpMQi8f2}2e@`1l@#N1rYpBY z97RcFe#Si$U$tWb((3X#a0h#RVF55uc*&Ngd8zA`sqqcq)y|xRqFrs0O2P4-Zq#ta z_Vbsut0v)E2o(A>lB~K=5UhL$*}>%-%}Daie%x!~(DMp*6W%7z_^MtnvN! zV2L3~w)bY|Gum|vX8LAPpg*kr0xb{*fhehq?Qm)eOY;xMK+D;R) z{Y!?vCXBVWTvdOMY{RdSdN!@X-^54e@1oIo}uyCQcWpY7!Qv8F#4HA~5he zI@TgDZ6G3IiYy!3M1$S?FrH6(EVk*r$=xT)?6eb9>ib$?$ws1{0FDcIGtkJ^iWbkh%nDbm8V{9&)nX}53jENTtF(UspO)6C7JS9;sKd}A-an)36Di>c^> zogSaXEVdw`$?JHhoXI~s935PtzJ~7B=V+4_!LqpE79WI@eCWNN$`uFIV!-vs++Bp{ zA6iUfvEgi?9+h0SMqTNRD=jux<=CPe&Q51qe>%Y0gl{n)ID?%>nD;nso!v1b zzP5#G#`-NH&|Wq67QygK+*E5f=l1k=76Bh}Rr0U({jHT^q4kweb=$Gb)!d-ah;Ya1W65GKE_ui7MC4!7Q>K1iGFn0Elchh*b!KWhQ{ zqym{1+vTe?cK6**B5OIpNFKQ}GCh;Kl~4p(T21X^O6;QvdX+kJ8b zXLR>08#rVRUNPTpMoRdUeDguKe`#!$2r)r-=fHz+l`FqeTY#1yBdh?A*9HsqTVqoB zi6aVrjA-&acD!=R;=8(T9!?Vg2@AnH<$pZA3Jt)pupzs(t~(H!1%8sGbubX+eE^)mt!P3@p>wsqqO{9@Y{F0WplU-j#E2g`Rr z5_0#?B{8kOKL=Ah1RJICa#VoV;b*tm04jUV9*9WIjg`Z3VD4`UXV0Eu_e~xy+4X6m zRImaYfWFU@N{_v4CIy^_!+tL7a#z8(U;g*wQf>gx?EzX5rPBb${0;cITV=+*ui^6G z%a%3Q+6o#TUcPM=SL?>UxsL$i>GLFkCkZ@B;7I~c68OI*ftz3X)$c$1?|<<9um0t~ z@}GV0kG**N=U3YcSH-#yZ{6K}TUX!2L+?QHeyZLHbXy`uIJdk=opVXY?-+T@43x*K z|7{Y^!sy$rD8G8qL4rO)Zqb-Qr{6~TI`iK5Cjc>ltEYX{*c&|az7H=AOf8T!FZ|Hy zHX>00z%vuA_3xvxboxL%er0mD1bw){6@1$Uy9B}B6VY_4>a9yebrIVML^k$l;9Kxj zGRg#I0M_X@w_-JR3915sW)MQ_M@JK%T~TrLyx|41o9x70F>;|m6RF$&w{R-N3W;rk zw}c$xecmKE%V`v8G+ArVUanfKEQ#AV!DMV<;d!5<;I9EeIY>K8+5zZ2w>Xh#DGIMF zDz{p-T>w5|9oYnze3c8f{~I_Iq?J%8EDpB`=OsOxeULPIa76D0Ayvd9F+ARWtB_ha zN6`=OY+*MF@j@L#)tOH_N}21%9=X09cd_8d7x zWamT5t57js+*O_e)ZLE5b~46i11*Wa1+`>1{z{s&1c@qzeH_2EL8cwqCL9_?N?f2J z(0G(IX#jdCnnhNLuEN{EKys#{s4A(|M048pUNm=360D@Gau~_pN~Sv=cgf=9rfn@w zeX}yS$@Z{IoDx+ln!WcH`%UZtKbj?%SP#UNIr83k2#VQO)Ok3A>i8=>WE1pEpN!UX z5_+`S-XA|&_3smxv%Gc@c5L4luvp>jzq8v2NQ)}8B`_sfN9Wo`Z5G13he3=I4I;?7 z3^?OahXu4!yMawdeD{94%Tallh_)OLIpOCd8ETikCsn&SN0_3oo#Z7F6s=)Yr93S) zn~jTK_fkjp;s|e8YEfs$7&aB4%bCial}HFigL@OH3GGpW4sFS0B5rsHnKES`4A3X2 zcA9`@(k3Y|a-vA8= z&zP)z!uI$!Bpt(jju$@f%x=PFS|YES8sBqRy9|htH!ieG2|W5x=CpQ9pdbEr1uA{o ze15B>s+KxOk}cF;o5-3kz(RdZEx*a+jICXk(HDR0)e(Vf3yB4jAu1-jt5ya06O4Xg9h%9eO;+Z|llzQE zvFxPwPd32tY5ukg8`366^PTIb(6WTRHC~VJV2Cf&XE~iBh5IKd9i11j;oZ*Mk|Slf zHK#o_;RfY#-x=m8=}-MPwKbnvlM9`NDH3+k$N=e}g+`Jih>cd2*56>Dg(=DA9qp{X zss`rtgX`ybB1U9-&3AbZxcd>t9!nZGd8?f*ai;HMk02E< zb-GN84^-mQZuqeE!``J9L66=)>I>ie_l`o9j5bG8sCRrH@Ph?jrdqywcKCJkbA`MOb(P>FP5DO2U`yOy1)QIzFT*R55YEWGFI59SB`*XVjwXok&ckG#Y_C)VtU1Q z+Q57XLTU@e)qM-iqa!0xkty+P^{cZ}unJ*n2ibLSEpi*-Eq3G2^nY$=Sftw|qyENE z%($o0`~lfnpb@-`J#=N_?c>p z&G<1`S_H=ykCdyYT(2>CW8c|?#jfgm53ll2wCIT+U)vL}w_&ih!oPUG5LLk7iSj&aQo zrnj4Rm}OgaiGggvUr;R!!9_N4b^YBVw!{VM`l;fH7HF3gnBPrWz|WiKTss}eJ(vcg zO_9aeupt2PVQF_}%6j`>`|bbY=ij=zf1zXf;lKau|J)C+uKosoe=U7IeSVq}I19g0 zUD~3V9OTq|u+F+Px3d_lHeXEHg1F7tXDBpUa|D2P8M1GE7hBK3>i5`lmen<#7iXy6 zv#K1Ypb=YO*Wzz+XUC;_trc<_b2ldcjMH_==Wa-4;eZ8xW^fzmf4*ogd(NWPHk`-9 z!LMwcOP_(6M=aPLqZLlD=L3y)kk81+%<(Hw5wTJW)bM#hT!rKftXJuvq6*0{%4$YH zBvDFfG7XN2IAH!Ce6infbqgqEsfXahup6p`JFQ2f;^z*MfIU=`Ww6&4mCoCz*XSwm z@`*4{KpuMo9k@c{;Ejfgs1uFBjU*pckD$lE#X&TbTK*=?N=M`Qu*Aq3Kdq@A#p~0G ztw)8biP**06^S&vLDGgzk>)Ad8od@Toc_OlD>23jELC#h9>_gQ9uM_@ZX|~aj+Rx5 zm~QUlL4Ni?n_OIk=rGTux5BL)g+XG^ZNHHZ{Y za(Yt)w3ts7{4D^NKG;p<#kYEj*Pkq}nC+vLzzz5INV$EF=UA=AKHUxuy@j@4vyBwg z-SJN?lV_B#r&DWmW(h-GP4yKIh)-5{aGbxp8%usv8ym;RD43pC`2yu2!!*H+AA)0eyL<)De?->QY^qN*doqYy7BGHj#ZJ7M?f8i6o^>_5D?;Ed` z7%&@f`-$H1=cMXh36;Mx)hZGD?5)#vN^lI0Bay7!mpRybdz>MBS6b^{k1sP=2Cf16 z>1K;=ZVg0z={M_j4TK&2cw3^ju%s@yL}bY=VX_i>^_c;lg5}o_6LB8uqAbfR4a;JBAT|3^V19fjr;7L*ffsU^r zY*NbPZaXX5k!*s`L{N#^OB7cEu4Gr^8>vn2bh(zGE-*BJM+Ob1>yB!#x^(cPHC2Mg&d`8P52fwCq43rHn_JThn`{C1gy z@_s3hdzBc)yCbax|h-ME6Cw6Fq+xHo7( z#u@x33HQ#&kCKrE<90GRzHte8$#1eCi8A{ohT_?z^YHB0zf_&FAxfr>jnn>{cLNAX z+=Qd%8f`ROuko~yfX#T=e>LseK`XN}>x3{L;Mv=x)1bXcnK!FX=Ct9D#w(1HJNCUluIDVwgJK3lPEzP`;%vhM-2phYcJKo z#nd@~QRQg4tlA{h?7{u(l5EMGe8?z!!|UGN>>ij}Pc{>*O@y$$O%kG4J3?VQM3PSf zzk~WDsCTr|DPy-yc1>tp4T@p8x_4aJ&3C}+y=hB2qeT+VuIbuL6Aqh@Zf9UC>4}1V zW7qw5RmAicYnuQfGs{e7lB1JKa&2fd+eFm$*#MU~ntxyM#ra2>^Zqt0f@YO+USq5a?!;x$XP}ehJ;`wYquA z1}$4;^WIB-+eFap^Bk!hEqhJecEIKr;NN7Mt{|V<0vS34*?*sF)4E?P=}maSUE-d; zY5gQFv)A}Nex8g}(^t0hj2~CuG~% zA7QrJZd3X5ac^uSg8_3B+Pz~c=q+AAGw(PbyneGbmS3xX2Xc#VN?y$oL>T(m*Y%Ic z;k%Sp62ei>WU_W~ExFx0)tBpO=TvzzCu-!}L_aD6GW0I1JrI;Qs$mlEE%0S5a;sP@D@)(6fZvz;xhO1a4d7=E|D(Zmh>$&gw}h%E5x znAS8wYo2Fo(MNdUj>pa?m}dzNaQt?!ETEgcPdR$q&7*#Om3C0`BCg)!0D(Y$zY4U) z2r9sJc+1B%QHYLs1he`nULTy_$ahZs;w?$H#l8B}`U|uMQN7w!eO3!WyrLo<&!6@l zQkTWbby#Py3$n>cKOY}?%eWQe)1xap_SFHkKFx$Zxi;~W!w6ZXP%N;-<2su9(5PsW z!*-yurjp74i_aV%?{_}3I5Yp3FV1e%Ti=}T*C(|DoD|T4VsWX2IUd#;QVrd)nHH2O zPC|%5Jf5==Eba!IRUe+qpR>Tl#dZuSU;WF! zwlF9;>-UcSw5W6w%~{7$^C^F9h8~nBM<1_T@#tN0^wlxI>$7TuV#bVk@(6Z3whK)q zlkPBR6U971sh>@2@u{c5Z7BRUr7D_+ay?@$yj&B+Ix#*xYX_|oFsG_-bs@D_)~Pe+j>5iP~kX8{@a1i1DD4!z87@)47)PUE$P zTI@4Bb(>u6Sk4T!-#0QLg(z&&x4rD{wh4;G(Jn&>?d8+ zhB{5cc+mSeoqXY5eqqd~48LomNu|sFX79i~l1?|aAU zZ~e9Z<}*j=-re2(&L^GbrH-0+78`Lcj(|tP!(Ovw&!*wSk3Rb3%ll`~-+KJYbk~=k z{r*?~$@hQlAFR&PpZ_ZoSihK&q@1bi7|f6BHlfO(s5CPw23B+`Zh=$2pmx#2e1;A@hx5+a1z^gzD=sQWPJ|(+tp=GRt2pL)sQhUr7MphlMtlODf zgs=Yp*kqNG$i{02cJ7DSw`d`r23L8o_qRruuShQ1U9#lMJVd1O9^^AL8wLCgzn?4K zFC|^!#rGci5!K^6T&Kb+Z$)h3aj|L5-a3>z^59?wJ<*+TPz+TPb=6};<$OFDZ9NZX zPP*IW%M{*#ASSmOxO%}!HfrwDANaaC{|&~Je#$G-T}~xftLq2S_gQ_vqgkoLr>_f( zaonftk?ap>@K$HR32-qXsY+`e|3~<`ql8>=tC%pco5+p4aykCuNgKC5k;xlNkR5V7wh2q2xJ2cUpT>6>a^6lG1P#fz%c&js<=?UJRtZ%8(#ik~|5tIz#Q8B8Y zIh8YlKRP3z$4aSk$e%c4A+jqHnKhG@I&7UMgHVzEIPl(70Jc8Ir zs2x=aBkD6IKQn9#sn4fXsM6cluRr*`H@7ZNe!5>5NBh%7@&x@!0#6cnlE9M$z9|X( zs*dmn_y6`^{agQ}jG!Lfp~a4p>;0=& zG9Ta76W$u?bq-R!_B#Rv&l@k+f!#hcx^~gZ#`T;9xFxVQpj6+HGVPKC{kDbv3oIm2 z3<(!MH2`m-)+BPrY4x5}*wQja}(N16mqS~Zy@rVAp1Zk5U0-fFsA^45Q6BrjMm7J*{*bBx0*a|ok zYD-CZBp6vIZs35QVh)!E98x(+%MpRNX;KxqB?SrvUWoYPs|02-uic(eSuD^5N?!#A zI7^lf4|gW2jSx)KwF44HrS}}U9Z_lE5l->@qe%jJ!S+-rPpRJZhn|935q8N|E4U>z zH{T0R0XQ9@`-7n*N3@t^-h^34d0loNJicTd$x>dKG?!G76h(KE!MTK5@EXUI>@4UL zOhSy(ie)~P-XAoT)KRG2i92o#cvzdTJd*r4dJ?S)9&Esskp>|Q5q>0YlmYnfPzVf3h675a^xN20X{|6gSS* zPDzVjOl;TQTe_s*EIt*t`T!BLhvpfu(Bxr=<1G`7rn3v!1wg&)Mj3aH56Q=-h87oi z?6!p*OjjF?Q0a7XQlMRPjjt8=>om3o`Xy^OIpkq-?0Dm^@XvlYizNkTJ~7Z>u#0e| zmy(q2dN@11mq0$xlM~#R&H~nCpTOe32^K<{o0Q1RbWQj-A<(n>g0z`j_P;N(tQpFt zq$9T}$SPtsGCQ42(|)z6;h{+aEZYT{kA#ncqCF!=)@7#)S+WTP=cx9cp~T%_nD5JI z;8Yll=x?Ga%LRG1n35XZwnNObT!v(2@H%}0UIgSrQ%Q?NU}tliFn}_VWQ}?3d|5s= zyOrE*)DE$y_~u`e3A(YsU-z5b+@{Au+zJGCdeoL|e;4vuMRVe{mttAm!h%&pVJS}!d`0|#UZbBlu(x>W8Y|4 z1$snvWuPtwvH(4spA079CY-*A4unPQ+LAI=@Xp9_&%d&9GRH5R-5Y@P6sg-Wj*;kE zZb;*{70Hgxlh6!W+2`<*2|M>eXS4uT9Sa=j)iWUMQ1>($qOgT2^~s8uTnM)c0Cn`b zHaALLda^!q@RC8vc)qdg#V~AMf^KmDIh0yVB5o{jHG3jAB;qMskC#*%{d@x=gOoe8$t$c~q;?wU*eL%i3fnmDcBja?JN z8A!8cOTGf7wUQUUKy0Ci(zTXo@pt#xTHv>WslYh|5DcmE}W>;_ElCmz4Gu{U-Frr&%|bS#dXxS|1l z=`h=B*Lp>=2{*&k;+4?4Ya(k;lT(-bPrZx)5V-4u`=x1EP|*Uo;BL|YtkE~ek13iyH5A z6nZtHCSg{g_;N*E?EG%xzPLFKxVew^Pij|ZL!Dz^D(_3~JMtrX! zopxu};tnn_sK+^bmXE1Esam*iPn=$cI8fuq^G;|GY9Kfil^`!+A!?#QSy z*z(VysaI2viQ+wmuAw-MVDs!KY<=DBr!O1{CLV~~tDA5CiO1jiYyb7fx89E4qIM_e z(<9S(B@ViN{D@u3Q3wQYU);QY^~Dz-zkc}9vsb4de)fmo{a?QS{a>k%|NqUWHbvz9 zS5N8Fc;qKO`6M@Iv3||0rdtmf3`;7eS`|93XK6eeOr_OL+3WKx8Y}cvHk*Mr$j0zn z+0bO~6;=_yg}Kaz7)6q_}khj2v@ekf+feQ|zp^7kW30Frs5zuIih{oyaD;_@5Y* zjtg}soJ53)fb?TN#nqdxv33{n!&m#_SR&+TCw!jo`cii{{0UtCy8gij%j-s>r(3(( zgMALP=uD!A0gSFiCjzzSJCnhx#`R*UGsaQ{G9nt-T55C04P-lAuaNTc$-3Kg-pPyJ=W^cuw+0@iB%ZVeD@PAe@(VxpWwRFk2MTGJ=8x`t@cx-QY^Pc zt+kDY#}c~jjK0QQPO3?0yQ`nqj-;gz6E2CDxFZII|oHs}U zN-X0wM1EDY64hBqQUjh=g;k*x!;=HZc2dt@9!S? z=klliw}AfX^CW>M2|P*QNdkWaB=8%5z+|gN44!^&QXwDsMbWK0gxEA2SwKCDaa_FVj!wZ zt}}G2M7!wX!Q|Sy^@8<&h;yr4PHLU&=}Aj(7l48+$~VDq;H%ptk;GTLmDi06Ok#0iNAY0^ht6ny3$M*i8TgCS z_4y};LaqcMs{CuEqQMMiD}!zWh=LlFLI!`yN+=o?z_MKw4H_ofVhy`vp}fE9_@8!@ z6;5`PX#p##^zYjHSRP;E|H~MGr6}^lQHHkkt8DM``&LSUc63$9brVCFGkLR}52LXV zC!rP_w5yGb6XfcZpvTIB!6hj~XA*Tm7T1y`$qBL*Um&@}^l0)ts|s$rh@%0Y8}Jy| zG%HCTQ<21cfhqui6dV?8A1jjV@eKIA7p)M=dyq~-VzI0nS#p6M!w*0^a%cr9*-&<4hn8~8r=;Q~@lI?>5XGqwoHR07 zwM!)Xk~EBzpp98y!%!kPVAeovSff}1HK;V;LhfinRXT~}*_hucv7I^DR!Oz&qDc_E z?31-oS7}rCs}+`PZ(@i)H7Nj~DwNnOC@-_YWJ;cqX-O|)n7KjeVQto>&vrl=Jddm< z%zfCo>n2i$T2mdz@G93%<;=Lm=lH2k>RY1EJz&YIwZoA2%%8sbpC!xkckMRWZWvFR zV2zesOUtN}Xnej#s3dy2$u+q09=zKdE2&GIElKvkAD|hPp&}DROqOB9;_fy{7JyqG#V*rrihj8 z+TAKESMd}HOM_u5EP-*|DFD$O#UbG1){et&(g1D~3tC+hVo_TC%GPFK!HDb10o`}J zK#BAjb8mp?hRHi~x%dy?YA_0PUStK8@{u+Ew}Xj4*2dbg zlwOlbh5Nf5X%BWI`YkyQNvrK!yrH`Uhr}@AGWo2X&wrqXO*Ih^58LIsqlhO(1Mh(b zJf8ZvU)k(C|MqfLkPRgMqv!PQqIYQDvi&eq(5jA>ASp5D-h_C%+bVhR*g;^(fUVCS zR0QyazAL9hY-@+9tB%{QC}Yw!+2q`$WRy-ue!8A+se}zg*wI}4Wc9}oKuxb6Pddpb zd(2L1|G1|s$5Oi2V7VhoJ)d2qgxCY=#ss4}?a+=kUcp1ur{_)NrAj6!IW|}m&-y^Ef-UsIQlRjHP4(?v56yoH$7^h1z8S6Bx(yWWk(Crx0oQ{ zDsFNoGJJXlHJkLqPm86}UK6tsn^3jCRFvIb+GaxQGgWL(APHw_nQ5_F9Ass2OLJf| zm3FLC82Rw|ZiAc1V%LQ0*lM8_z&Cc8$IR#xa~-j`aeP7CLJ`|)kr1TeqgX%dlf;8- z*72teD&tyTD%2HBLz{u};mIJHkm0yvrP{S>u}1A4wbxhgLe;4V9pA0rDkeg1OyLtj zCYWn?*%^L4B!hNRR<<_fmM3=34r9I*LI9T7g4$e&LqG~u*wSoaRvN5ir!a*N)`LYF zr=PC{RzC@Ep%F?`H9JXNs<_6GdYkA8f4VqaCiEg?*6CiZtIuiAS**qkUOWHN71YFQ zOC4H>H^uhe-L&IWm(X2oHnhqUH98VQZQ;ig^Xp#*ZDc5Q)Rug@NJV*&+HWNFdXhJj zVNG07hdY^Xzx@w$wxSK99aU~bOnyPX*yMDhrkyTAwyAT9PNb76Jkc8O=UC}%UgfZ3 zE8R!)`fs;tZ)23-DDuPLkV z8HDFMUG>Q)CW`?swd_aHO}%!poW~o=;oUV81sM-$DHiZl857i-q>K8+3!Y`SV+M$5 z?@#f_+WpYMbo8`7vVI%X^=#QgRah+$(L?T2Q*D6^-AGyeJ6!a$>MN9gtu^l26I7?B zaqN3>`<#D5>XQ$O)9M`m1RKal?h3IXBBk4Gv^JPcj{5QI9_mMrr()Z1jGW@FBa{4b zIC26^ezv{_UkxOpYduJsObgkhc66bdE^0Z-Z_j^(*b+s2cr7e z#2fr0%b(;BIVmaGi(S^=WP8;wR*R)OCz=%3)Sx8s_CV{do7&YuMQf2HQ$_p6UvYQQb+gEZ!ScRY5!Oq_Se-tNV>w~y}| z{aW;X#t$_JrN4)`n!LxIT+ndyp5JsTMf6&X+6LyUXSZLydwcgO?0h8*?|uBIO#=5S z7Ym$jKcYN_@a)xB_n&=!_3Gs(zyHIJKKiTw)<6IE-Tp`BL-Q?k^xw4F*E$f{nHtsf z?FS!~k@&U7m@YG(Ofl2SKI(_EpY`R&Dzug^*nNIV(d;REJCGpttA%!9X@TV#V@|TW zneEr68sBEm@-UUY^lyuK^J|TVG?JjL4f9LEMqYfaDq0FkV<4;=7W#r2L-W&{$x?<;vTmV7|V0E=TWGu z5f4=eS1j&+e@0Jb2W+wluL`?a;p8I}P-FX4FN%=v2hdc-g(700|Dgcc(>>&R?p9st^7!>?)2N^q?;S> zXZ_;v6rTk(#^&49)B#6vvECFCzb#;iBtDum(k}p%KZ@EdX45bxerz=M?nyjFPcl4C z-OZS|-1n7?qQzeqgwohFo%QKE9OXHJU9s*dmR>I`2hC?B&&nz`xVwLfxz)2!pW;A_ ze>W$f0d*@h*-d5lnaHP;Qz22I^im-5M@hh{^`?F?%zVxpIF$oy|GHOAUww>y&j)ew zn;$uGc(;#!+_?VatJkl+tiVBjUs$VSE79lQ^@fFS@Kb;C^m&rNlLVe5@Fansu>}5& z|McU|fUw~BQgT<^CkQ*vfoOL!aD7p<(DJIRmI zhxKgjU|nzMPmyCeAwB!OiNM>EDg{4+y57IG_rXbIBBk&LJpHRc&)E5F=`CT=?fB9^ zE~qFn?Vm)sV9o>`6bA9=H8L8)lAR6m-BAU#B|$*}K^NS>^-ea$z^~P34<&vL9v@oy z?rSU3HkihSiN_nqL_d5X0twg=6?|R7)vDp{7ZeCeHs%k@z0~+7Ry@1IoYlKu6VRYC zV(?H9V?Z}Nt&p>J_tCM1#i(S`@Ys;L$t3UUYjPD!5^e{ zxsLmAm-ug2TN5?~K7HIuds`Xn*OY1?ZTGO1f}UMc8a--=yiWv8zrow5gv61@6cDXd4sF*mZzC%FUvSQC1K6- z$Rl%fBYp~BB^^x8jAs)CO#sYb%eq`9MYE%hNWHoKSh?g!86`SvQ^*>BevGH&1wP3B zN?a1)v9I*m~L?ixA$mgJpJO#D440orZ_ zdNqllE>=s7_dK|6*KFDuxA!_*kddmPFEQ675_{!)s3)78pw#nof|)9s#7$SVtB$1$ zdId^Xc{D$fjaSPP?PAHW?G*h=DTBFiUA=B51W#n#F7A%b1uH+6T_DD_|CLM~$GV!- zvnGZy)&%S1;w!1buXe(iroioPP_*IW8&qlsU~+1wgQE1J{PAriPdiT7`#48Np!u}Y z`Uf_Ik>Vemei6bx(HQAa%0Emd!CjkdGN+PNBK%fIuYvHDweck+O|-3fHK1nuG*Vm3 ze_vmHg5DC86EW`cFCdm*N7iLQNNw}5%f@1FcIw>39v69W1dCVF?$L`Q3gtu@@Z~Bmae{@EzF(YJ>JEMCG6-e9R@>yl*?( z^J%$<62cW|M?{|{(3@^c5Bf(j%S@FFlJ(TmjjS%+g)1uUigc6Ae7ZyABTuTdKJVN{ zuTmj&!xtVsn|kYS>dW%;qNZHpY){*0q9+cTAWF|EW{Y={LwXtO^$mP<6TN#6+Qm0C z8MpS6JSR?KNIv^bw8<8;=R^nam9y|Dzj5U>l6voqV||pu$;9#fz8x9cbVn0;dN?}A zi|5cC2BVT~o(I0!MC~f-%a^q{jAW<$)vaulFf#uo>rJdYn1pO+V7ox0qsi{d&+F%3 zi&%OmYIdESVYV1!Fet5MgX}Hh0-5=2f*}#6n<i$ zmY@|wPA2HA|3k~LXbrXTxx$h!hG+C)zk}ewwkyAjj82z==Ex<4CuQf#DGlZvvH6Yg0t~c^? zbboc~Vxx!Q1t+C+-@jgoka&7XRvFon)%ABv(kfp&60focLUF%IBqi5|9i995Da1Lj zXzafBivu9tfRCJ``pAo^&`p+nTQsd^@ziRLP`~pX;Do=wwb#W0{ZtpQ(Yr$@>Ia}{ z_ho%>R_@2N8Xa^!^rv~KW*mSH&m+(Gg~o&M$RWSJj$xR>mYtk24qH|;#g!222_ixwah)a%Chq~#KijJ&fBwAv!xW!Lxa&mH~2UP($18|iOi^kYoe54eg z-lET84^nc@pJs>oK)dTB%YT#ciAgHxzx;F9*cJ!3;9Un+5?SAZ$=>!nD(+`}AGoX^wvE6A7^C={p zYF6wZR<3?Ddh27NtMQViIfA04PkuDHS&*~1BBGN++RhfTmvkHd#OQAq^9g>e?R01M z9dDK24N{1v^xUo5La~36Zw#6wf`8C__Jzxl{9Uc9R zUtg-8@#Wf*TNjb6f5PKtCw#SIwRX|lf8uQVPS(IBN8{jpMGJ$XAWG}Q#djpZmff4p ztxe~{!p|O8G+g|)9 zJnirqK)fo+#Iff2aCiIsX?zW9ajz4!TV{-=NY4<5gI_UY~Y_22t9|KgwdDEa&m z|Ll0=^v4Kljwv(aqZ^;>C>_1=35VIV??a5oc5653cYUR@^_!jYps^GqE;j;fW<3o{-=Jn97ugaRh+e3e&?@aBhh5Q7Wo|7E4K%&I(q$v1DBBE?i_i2R1Q; z?Sgk=s6b6Yo0<4ksnIG$l!=2*lD;?>o=igvE7ga?(!1si5o+B?}LqBdI&nX15F>V$$zgMYxw-Mx*GBx;e zZS2g03oejQxJ5}DGYm_58rH+lcsw>RO2*&vj)|(V%KFV-Z6X(#N$(Uv3-l(Y`g^Bn z>7OI{bOUch6^|Dh;aU?Q@X2vRB-_fe9>uy<%&S0j`r~#GzWzVb^u_g;i%W}5H@2Fz z8v7i(a$BVlv8qti8ZiaR@ z_U!ylsXZI~;jM}FY|!#AgU5*K8UxZ;YE|%~px=>~7^kQZE&l#dM*Zf~dlY{65C8Bd zZ@qc+Q~NI1d-^;{;7I~c5_popPe}s5@gMzH-+TSV{q2YETzl8--CI}BTJ97dK=beBs&g9dCC;ARK5tc36P|S~y?3*BqAu2H zf~t`4^D60QM1>OE1x~%Mqjf~3=1b`sbG(TOMJKI7)w>#p+!x#$a7je#63Zku7%6Tk zf&8WuT*qI?wMpDdhb9JVS40yez0WF|>oJ@8^!N6xgxla!5Le)$3tUdUV5#uFbW{Vr zP1KOa@NK}06ft<%x6`E%t#Ee%84=(ea^0+z_Hx{i1GLHF%`RcAE*a5py5Z#1yXOk+ zn}BE){d#g33gD@vNs}8pgdgmrij5G~%Xf7K5wZeC$za-Hq1R6bcE*NcN5&Qh^xnx< zaox$ld}Qe8-KR2F54RodQ!=rM!6r}M5!Llw|Ap(T?aVDxcZVEp2pP zk;+YmB~-}uBqj@E$!@`o7y^XG9gcX8A~oWx!BIT6LbW8JTkYVXo)JWHO(2$lfrC6c zglv2zL*#7?&jzEn+zgHbZAxSD91*w7Y4sh%Z{?%^c;r?MDmfUuj{FqJKiFZpH1 zt(`0-eLz;ZL{Bi>GT0-bHKJCU(#K3UX^|Be*-iA7Y*4RVGeejuC$>d`;Cy)o6iUTG zsc{n<9=h)M?P}E)CnNMVA(~xj4d^6M^4YT@PPCDY9dV;VWsNqx>7}HhGVQtyb%O_Y zBokeE{}aowbH}qY7~Uh;B>e&DotKhuI8JBUAlu7E(t(dQS^Mw!GxAh^%@vmkH@Z@O zswt`3t{@t|>HU|%4_}J#xKV~XlKB3H%YargaP~cYC6$g_GvSh=t5g2uLPZ>$1kh}- zi2_f?CzScGh`@W34PV=XvOA`*L{j>SrgQZ7OvTaB5t9oFPZ#-sOB>toO-|+0*0u&9 zelh~jlYax7bc55bz{mvrj9ofOKdhpZSB^FRklL9%x2fyk z&t96Oj3&2K-UJKVPHMHwWN~RXHKgg1pcE}JkUxkQ4YjgLSHibH)jRfCd(;%@l27(- zF=q`bQu+Ld;%s2YQ^oUGo`tF`mg$uWb=dWh4m(#CvCyC(5$4Yk;#R&Vo6iq3$<*0H zQkiX512W(vYqCCk_W-OW-;zm-BtSs#Nv6Tqu3#c^w>~yrfKCQj95bR2gnPLy*;76@gp+df=DXmT{8vUdmL_MBD_{Z&nl8OWu5&`=b&n|+Yy2U=diYBvE2MFv0EvAzfZ>Pnt`lrk#0 zLH*-B;*wzgrV}rK;RE=th^|SJIafePIZ$8ZlD%cubU7MplUZ9hh$EiUMI5uY6rmp2 z(XyR))hG4(yZj(qON>nnk7ecU44%KFH$T9tJueQ)8f$bclFn3wxLQ!>s}n_uWXETB zf4lmVWs5oL2i$dKQG*}VO<9rJ5xFfe>$C|)*QVpOm`t4OmmT$<)i#Q;(swZ+nw!)f zI2%lU@dW(ZZerC26K{x;H)$=|7Ru;y zU5f*7B>SUm(l`?e#a>tlyyH#?B5ifeq50SY>r%-1YSX#LV86C zIjTPt;p;~{4|9Fuet=aw8=lbk@YNPl#Q9;Ucr5z~U()IC9%p#LQ?#~K3{zb*QvOzl zG89B@sB44nxm)E}>pH4Ey@XBf)NCs6KjoAu4j)c!bj(CUyk%b&s-fA1n*C96u|u|> zLBvt*8Fl%_$rK;??(nquOOyorZs?mBr@ z9td#>8;N%R)%R9mJnnHc9odq>`m%TkUaWVpf8{H(dc%_bGjl;eCBD+x}8?9-v zPv49207Oei`3`jTY9FDgRS?rq^e34%xe#OZjp=4!{q^u7NiwNffzQvNXYJPCDD;_T zj#e7OBnx1xFnk_U&52Eqi`0%)O@3oEz9L_(#@!cxIA0Mxco`<-j9=|B|2+Sl%uL3O zim0iLwg5Z0*_5MyNiWe;6xP@DBA*Mx?gn`0Y2=6onOi1 z8}n77e&9sF)F;B$D}LpB!hE$lu3Vhz|9#@qr}ku$@dy!RHGq%~G2H#D z{oucLo*0s9pIQ90P`jz)NTxse0ZBEmCT!2UuJ1eT1{PESlR_xcec*G)#a1B0o4@Zg zk!BjxMeR4aMWyS$HcqMVg{9Fqy4)D%xF20Bu2!+xWXOR~93=Hi^{Ij9vkEwK@-@4N zbvyrsXC2cz$Am!|iKhNu-`a(LanyOk6|?e~P>mrLfHr`Zgy8|zyb0_fq4 zr}Z^&7B1o$N0V7!lxtXq{NeR5-LEawueFF=P7ll$fNo5f3s%@T042o^QC7c=xBU)d z>}C>?-rroAUn}9!#Z~q2qOn!Y#>QIWtkzJ~XJyBT0Ispj;4J1|PNkcn32=Y<49<@) z&&|u<3LQ!ktxAV9JRTX0{5`sqiuQ_CZpF{{>PE3P+ zuD_=F@;gB)8MYzKx2O9k(*6ec0)G<8GBwca9}f0U{Q1=%{NNvMPCxPV|NWmi(5KIn z1fC@DB!MRh{6CPuU;4}cbnI3H?ovXI@AFN(9yWd&aL-Wpx9>5>iaKUnIcOx7c-Q|1FJbm<2-Z~ zD(Tf5Ko*0Sn5$=t$Oa?@<*mxXXoH=HCSeK$?4ntqTCn1A+5D1b(b=asqZO+lKRmoJ z|NDik?n~r(XPU5N#a74Te`FV&LuiIeN^nFBnDpjomZJ{OT)A znlQM2J6VHSSxM)Th6b&u5X63m0zN>Ofu96lA|~LT6$rRCxG3U6aX~}x<1DxoA%OMq zqMSwxLIV%6;Im{=gZk;FJ zMC=butft8lLG&;?qus_bO#qhkH@J?1jUgJy^}GN4lY~QPf$LpFgF%K(6#JY64ZP{6 zaGLzJEAmL5y;FyN!E6xO02j$Pacnlwp$-nV;j2;6gWq(f664s@EQW)R z5QFRVo}r<@ByNo}9j2G!-?6)fq)4(&_Bj|P<9OaC1Nbv_W3d5(L0P*^aJ`973l03- z<9KS^G}8%FCYGeu4%S4#>Q;lZ5^BzpM>#ry^E02@HQLu zZ>}-Ynpm?dH<{g_rK(Hpn?#`raLC{-f@E-SWRA|+$sTun?b@K5Eg0EN_7Q4AnH)}1 zoIU1ff$W``DXk;{J@mnUVD(41v?!#!gTC(ip&jELTbUk^*69$wjxGAp3hx<0la1Ma z`t|N%6)<&@A6;bs2Z!IP?>O`15v5CD(p6nwz}r~^mdQf|%uD*AWRq>1I8z6{c!=z| zOwXHC$v4#&(tF)3pFGoob7*T0Gqu24fW#LkbO|6<6uJ4wXpQDC}S@Bo;^px4^|Gu-({E5V2iGSsLf9EC{psAhciz2MD z{>$H%%>LXr9EBrFO@I7+w609_)SikD+{tFqfkXPV+eCYy7?PeeHb_oS5N6p}8oH9G z`PMGBs0AAay%}J9o17-!#70oHzTnj6;ft|bHc}&1JUyUc_3}BjQHAhT0ez&4a9{4# zvOG@~^^W?lQQA()s)3ixM)B$Q@+IE0i%#>D?B;TUK=u4TUz*yZ4QW2%N*^ZC+Qn;u z7!3LeB~EKmQY6p^-H27OP^ILG2~tO&;Ci}I0*krQK0f3!oxCAD{$X_@v?!Kh*u@8@Br~so{}5o_1ma7jQ({TINR8yT(~;6^Rxw( z-3KNUD-LTB$B-r{qCk8Ty}@(H4&KGf`Wy=jf)|gLAxojm)S>4xzV*o zeRAz2J)U>Kdfq}RkJacOc1a|9;w3gJi=yPy<2lK-->wx5W()ArbZuF(oNq0rFTw(x z7&`7USu>k%pOW-KdV!})t<-(=$S8~nMa zLj6hoVZi)dJU86zsb;HWtw+&=U~Pu1)`y}hb<94(aiJZY+WG8ltuHuqs*kzwHQ2?> zWbWSTW~;#%uk{Owa#U3yF-F30XI_h^^>{cRG zuTwn|?q2%>hrVtL1~8?aNxJ%;uedmHB!py?@DJot9FctVXRc?LDP{&X;5~yk&GtQ7 z*OBD|+#-P3oQ;#m`W#G7tS2r3F53zWdVt9me*C%I+5|`Z_Pm5?xZ=3FWI~u+g==M6 z+nDaN*8v|TM}q#&-0BO*)8TfyA?Nb}ldKL`qXt#g3*+fG=W)-m^-y>)2C7{=aPhxN z&nDm4Krr&*QC-oM>$-LfN@B{ijze=l^3&1f{%OnZvZ1Qa2DJqx!2qHD@Ip*gf}~DZ z7t7>J#$%?Jew)~@ZaR$ax=*ZKmbWZK~%~mqyCP`Pbm4^FxJWyUH_5%s!P{s2)}23 z*S1!UP}XO~+$pP3#F?@xW+^J=w>RKuF+}nhB2~oD@XhkXCHb2ifx1-yyI7&f|HH~$ zc+j@<@5T$8r{SNX?AYdH>M|MX>+4jM^ohQh8gC|a6^xmx)^}S(>cjy%KFLL&ESl99 zEAkejX+ewrV;=UOQsW&C<9~el>Ye||^FNXkx$!fJC4A*5`Hj9WIMxPCe>s2LSSDW@tu5f1L|xNSx5DivM9C(8Tn3=aX?Zm~ z*u8yKDlm%2o}ZUze(&dj7(0PV1_NB-e)Y9#E3ikqbNO>_q_4?BY096;*A4q|}!LST9PyJnr^4@wp_8z6n%M zIG!Z%B!MRh{C`^l|LSl4&F_5hwhry(^PA__FYKWG@-2C|l9KP;JiD{P@b&9w&u-tk ze{BGwgTKFj{foN8xAhnWkMG(%@V0J47T(dvg|R-pzgDN9n|LM}qTkR3i)h6hI$BvR zT}T7j&nl$9k#sHTZz6tbQ;oVz9h_`=lb;1e`E6ke3=4r8#Ory0)?F3-NRU0e zWt&T%(FtAypHYO)1sg?~>YdIMTx6HbkQ^`DtTd#yY8rH$KvuV10u9*$o}v(&d1D4o z1r~y4lgf_WlqN2)E{4FhPV(OFj&|nwjZC5eP;{ifBv+C>5k*Nhfnuy%(iQ@fhdNLH zwver^v4Lst{i>{iE`|YBF2TJgENa*CM1n^$Dlum#7G!AbsN9#uTagTwcX%!oDLQQ+ zSJI)K6RiyIT{~u)JDRfqu7Jp-Ps23mzTgy`={+0Cc6|Ayclg~jXi$2=Gq5`nugQxN)37RtZhG9rl4MwcRRb0B zq$r}11fIZ=m-#5Z7&ZGT_VE7Dq`)W%4?&V3V7d0Z0B=F!u%}8zCBhSc1PqP)zi0*B zIFyV(blTlXdFT+Z7R43Z^-+udQ5{G0kAi;n9o$X0UcJ4An+gKoBth0&852j@7;B;+ zA99HdweUP$EFj&Dj^Qk^+mX}_u!9f{M_g)IJ<-vxk)SPX2V%PaGA@E$5xlBP=c$Cu z0^(i?g?7vpTsQH~LYEZtvkCDfr8Drbwi3CcxBIUZ-Wg8gni*{N9zgswfXn_Hz!j<+ ztSRkNS-)Qb=!HwO`)ID-tT(|?^AYorm1nIMZwKm<>};=iQ;RRUuaNgH%vaQW59P-d+$5U6AkBulw#d$6I><$*#beA%TH#ZXaKBjc#39( z@&n!y{Rve)-DI90Xnp3tMD;g@vJ1X$``|7;R#zKz z6Ip3A=hvpr!EW$Gl_lAk*2qwZ?YnqEnVUSW(%9I5eo3x);*OVsZXz_Ni_|b~fku;i z<2SX!N-kAFf0J^Oy{>Bm;jCl{3D4Qa$mWB*mlZjmdEB{g29hmSj-B+FF7Q>VEFZ#- zU~ZvIc=cbb1|X>Uf`^w1w7>^i=m78|f0AyZIQ;A{xitBIdB=7ApBw&7p6YdNml~M{ zB~8R|u3cMlRoh@w@()g(fV~A#^*IXNy!HUk!;T%ONP^K^V6`Bmg&Tu-^fzAt>fU>u zbQ)n#044IZ1<6;9MLpC^C;5ovLNHXGOxx|IT)4VlyCsJP!J9mWF1wgsB4y>rG|CZ~ z=B6OYbwY2U$n3d-DC+<8RJ-g5_-uc63RJv~8h)yNdVR1Cyl+7wqIz0JE>GUU(+X9!{@aR+JHi|EzQqX^Er$F5BsS?k=O{_;ux=Amt_tNe^$? zP%)hU`hzwqoi1kjsoAv{jR?Y7|5B8ISoJNqs+v3Lpja=zL|)O?uKpy*Hzvi1x5xxE z3(?lEBe(d+{Vk;0q!VIiD@4sEXLD;K3<_?(L*eaA7Tf3Z=3gV;eW)#9JANX2XfYdV zz19SQ>@;6e>{Z{*dYnpe%C;l5`r5lbvc?fV^`^-cBbk^{K>b?_4}48oe$3wLQ;V@Z z>Xyk~*Kk$OM6^aNV>2ymmDtrNVyXMP?iQA+hZb^&E3 z0`f5yHOZ4*%mZW-6{uf4_HBaMEfxBQniBMEqW3lLvhTlKl*#STjfNB$NkPGI_yOaRyx z5xkNqZW40XP^S$8Zk(V%%=Q^>-`N*76ixOJD5n&<=EFQq2BFIwpU1hZ7qYo~1qAXh69q7gx`Si?i7SfYw41RoE=*-WHziMCl(hEEk zkWAzk3#duzRmtyJD3dP`zYN#-2b4^(puP_jKGOvohH3u!2nFP?`R2B}2>aM9rwJkMYyEB?>{!ut1K7`i~|KDxE$n2$TX}YsBT+^2J!x@hcmN zu0Y497zNIJdd%myeFw?&^cyG9({*(xI2Z93rtYU(WqhWZqc~Ub8p)Fz$uhV^kkewK z^>50<(AXgl1j+gg@H)x(;6+RD>kEi&3%xtlU`XOWMgX%=xZ^;s?*tP(1$Np- zgpQ5b@h-+QA&Hx-*g^5~2M>1jYQIp}MVHLcTc5-H$mdqCPZ!O1iJyD@NOA5Kv(ZGb zlS%Sz3>UX8t^7aOyLV^XmMp*P`*Ggq+u7mgRJNk z%x7N_DQn;9UU;@3oH8oH#_4~@=2Z?q=v=WFq``?_7=Y-e!|a$bK`a8lnvYaoU}-9} z{$}1$-FkqofMwG;$2#QFE; zj7H(uFkO#a8-TabZS#O|O8*hqI2%xP5%xy z(0XbGlrS6GmB3fnVzXjU@gwdcYiuF#5^Wqje&Gnt%#)lQJm^9ZuF!SAKC=Mr=8hpwaS}So$Ib~HDlc&45a3NrHMrr~GNU6Y$ z6B@cuE5Ez*83J9Fvdbq4JmvrHZv{?8dP;*>@C&eEF!^0ti7~mRpKon#rp33pw4SZ} zBYzmRFP|?Q_`-oN9Qgk&2mZ@n{LgRx?jL{q^UsAe5c%rm-J9n(ueMt+_v2Y%KkuOI z@s@3i{PgfAMW$Z2WNHZgx>$3L_Jc>Byv^NlnyZD5hqrkyFY;Vk)a6(7ZWYenh7Q4} zf+shRy$8iY6F;H1o^W&;bF6*l0M*ugi-g`^cIWeoxa3oDhofBk*$UTH`#Xqq1} z53%2h2v(z^#hqH~sUnRq0*;)9niJ1!r0P+|4UL?Kvok;V4NV2_2FnDf#sbGVT;Q#Q z^LWV~+t$S8v3Jbgw78%Jk7RXPWRqUwS*t93H^Vpw?8a%=0QVKH&%6XAh7>sW^k^Qg zHG6;6M&jNh8@ItcvUAzZ9(A&X)Wiw# zPC<04E{32u^rGYOH(~cxEXWDv$OU0egl7A97%T5ql#XA6Yw70aVGB3W`U!{n0WuN$I#|{3hWFw5R&T&?$=l-Sj1~m z8O*3j_JUi2$OYD#Olq^nOdb$OF1+$N{8wkOcpx z(p6Eu9ABF=khws`5-n&=PrEe<;gXZv*TEMMHuqZq_fqOC0^vyI!lM(h-hC6nP0(xX zH~1MwI+%%;nNsf`=B&e!Vpey3$4nxqyfOX$`qAUC2RB0ThJZY3SeG+#+C&hKYPUde z3#)+(k0$+Gyz6gkyNP@{<>=#4j~*LGq^`&O00?$iR3UbH%b>mO=DP^04_VyOqy-ie zx9bnV+^Opzosi)rz>|V>LL^Hu+`UUukP_mOHl5Me&Pl))$?z?h;P%PRoC$GYws0!B z)6RPrDE?YZwYahc_jEPc6x6W*5Dk#8y#DB_CdU`}1iy)2?3#ThVAej9r#r^albiQodUCC3jFs*pbX%chkuEGiuyPHIP6QdzJ}kh0PS zh43AFy02)9T;<&KPQ;34FTwjrPL^w@bF!*k>^c?IR!xT2NpD?t_o61*KbjO{+=>0oI(sQ1`3K zdptkgqHh(iDoZ??%=FU--O?iM&DF2`))w22CXaNpfYBze^nE<-iuj``BvGM{1^4Dd zW95sS7Jdz1#PoAG))?XUal&j%@7Zl1L#Ht=3DMd5VEHyL887i{rx1plwuT3_oIgQ`XKdf5J$NzZYjBE|_f~vNS6cr!F^dh*kyB1+Ant3fjtPZQI z_(=aM1F^tme;e1X9)DfecUn^(`DDiy*fahZ6GdR~roC^aR4!oXP9-M)Gp>hj(E$a( zv5+O5h`x6nj2Fv=z%~vAIK%~t6QIYf@gqEyg3ri*^FGvUSX8!=Eh&1k2oos_sK5V1j`9viy!)aeH3$~sl2g|{2-ZzjICWx$FovDyTs1hmRYv34O)+0wGu%4c!zQlA|NYL#O!`=RW2&6n6TU9paJ zbU4iOOTgJU9vJZBMvw+CAT?=htasB_>61~ss!;QeIADy)7l@i8X9BJXyj%ridt))H zKV5TV!ki#*8{3n4vS~9_`HVV+FRR)umPLP6&t??&fu`TEz_|*|IWcyzx%380d2)O7 zxHN)+t=!;ZBOl2VTKI0es)*t|Lvo2B}+ef zU9v9}KQ@8_UL1Dar*8rv`O4@FWLh#9_&l7zgJ%7&xJwrhB|gQ%efAJI{f*p=FFKV| zrz1ms%}i(Zb94`=%Jrv>^)+L?a!hN#`mMGGa6qb}T4~x?j}ae%NOO|KIGhG$XZe@r z_g(HaMME$~BQho!46r<<8+k!Qg-?{|V=<=&jBWYY8Z1Nou8eDOuT2r-U3JO_cO17L zeD)rv)8h?T`Fp1Yu$p6TzN){8i2z>GFfcBgCz`0TWuD4n$HE6hmlxjs3lrW@Wx^p2 z08(au{C0hqI#lk^QUPNto{1f3%mmFiNe3!tqiJ;7;I+@A`4wAaUIA8k$4tbiKgiXJ z0i{JIQSmpX%FWBxl`BaH;$cOqRes-nR!t2y9N4Gv$kWHt+5Q(x3FpV_H(h5lT$@sw z4=#3s-u@4pc((DRJ0Q>aRfCo9^Mvrm3pd;F4U^`{)l?4TvT85eR-Z%&RP~=F9~(?% zN}MgeE{K7H<@7{ar=PJTVVd-(ME4;w}P zxJB1SlKaQo+ZS&w{uLa1SM=SYpT(P;_=meUuR1>~kaGR-eV%%UP8)Ms_ZDTFg?(ye z#AM`su0exNrxbW&JKb2oq{V@T6qB#qf*hS{1Z#s{BTqQ;z4%miKF#$pxHMku{Tsb2 zwV_Mh*! z7|OS!)Ufx^iROZiSJyu)&xBD(NqPZI!N#1LbJml?=rOVa8J+TT0@h?|0XdV|;I%lL z97@a4vAecu`(q0h*L$3&MUS9Y8;?e*i9CvP#FJ?_G(S5FZDoHfx*&ifNNjS;`BdF% zI6nIC{j%|9?>OTSnK0T9{W39r6?Z?x7n8x9R*u&e1&rnvo%{*7H7Uf`1(Ry_pJ3u;i3s9r<;Rs0y^KJ0#0nb!jt4v z-)Rw`#k4xZ>#(qB9h=KNfxSSqcpUy3(e#vRhew!a2>kqq!*Yk+R&$`y$-D#ny z;_>w+U54AJUa$f!77g@?-jChCvyfxns8^A((?8NpWc81C)zLqhL??tSz7<4iw{L`1 zvH-tDw62fbExw(=d*w=F7VILg>^6vK_AD0FSj6h*DNE(bN!EHolgnLoS=w}~)>=@k z5j$bOj$pj4-z|{sWK;of91|RB1I+@dF|9?`^t)hpb|rle2MbqpbTXT@^4L&;>-y?Z z+IYvd1vIVJ4@DBos!bE3f~3Lf{^6T=ZlZ`1cCN*TD}@2=kl%VI+Mu#G6jAro}1T0~;ojd$c$z4cQks9SIbu4&;W>9w5R z6IAqDs0we33{%tOA@UFuya3z#;>QeQ2MPyVpwOb4#hC1z(}`hIpRO6Um)*C)K_64Y z&SjdAE(z?AarQg?$+q{D4ht9SJD$#wPT!YXxClaAGPX>q6~L$YH!8Sk8ha7PKJQ{ImnryqNKZv=*d z`uIgZ1%=wIhLgCq%@X0fjST!ia?;=UK2A*OpLECuKD4#LC*3eYXe2+gpFZn{|SPqZ~|#vJAQgvMX}9_LEzH~ZM;xfElA0`do0>eSh?(DwWc&-i6f*n6gJ+w(|;pRPhop@;y9ZR z4YsxJeq_gwz+e84R~2}?d;P7)wjWO8rE$j7TKJG?p(|`w*NG)y-Se-j%4SfL^tYxe zi}b$d4_TtBKlTXZ`h8sik1+sErN#3$M?|{dt9q$!CpGxEqz`(!9WH#0iaHM*uNoKe zwi4N(>U5)IDxZdK_zR~JQaa4;f-DXIZ+*ju_AS9Gfx$#JF(huUfF%7+4$Hn_lKK9$zgr$yeeR zY`&qn`B>>AS|YUEXshmYBid%~yXSXZgu+!4lvO=xnjS^7f7K*^x(6RV49&EN3#!FF zL>YtWOEwZLLxrI8I*?mqWccU%XZ3?YW){rGqw~f@OS$6_uVH=eJcxmGynL3OotsEUxRU-BqEFO(FrYC%s%8VC~*A$ILhw>oBX>lM`#?KFZp0j_bDJY z&f(knj0LE@v5>K;X)rUC>1(8zjv7n#TTk(EVJtE3gL2|`+Q}~W4KIfc)>wee zFw9%FkqIqjxOX8AhKTV86DGj%BlP;K1y4lEUUi!N%-O^{_}Jkw8(baE58nY85VgG@ zv6G4$`yO8*pgeO1x~~r_WDJzAxljdegCm;=HDd&==vGf{@zkvsuE)|B{doRxUVq#t8%{~)gSm& zWpnE=tiHAjSzkZJ4U|eBjCt4)6_vALuVOd_TRLV;Hn)`rO$gPd-!j*l8`ss;YIoTr zBUCUdP%XM@d2N9V=FzS#v>E+Mj|7w-IFGEMs$zs=$(gx6^$($6AkxGlnX(AGE6o8H}SeLDK1cwpHuL# zp;JJRBe_MzVCHyvJnOw+wjd>ktvbe!CP25nlhUemK)6_-Mpus_=2$g*v*>w$_0!PH z35fm^WD%5c48Q=7&EJ|sG%5{=*wSv~tFJ>K5F1oq!q*LdEPPPZqJy#a%3`FTE}XxM z)>jn~Boge7e`jLXu-mY9Q;=luKNSEnF|#NXKYJV;dLdzA9E}M`fasUOwOj5@$XoD= zu4@Zgk-9P6Nek=`ofhD377T0B=#=RKi2^YKcAUs$#c|s-qT&Afo9^wreV$h`6--7J zL^(PY--Ii$TZr=h$6C4W(b?m#(>r|9?h0V{I8+X3GI^E4ehjz(ckkgtzg_R!;T@;q99L>FF@%RcfY>v%wPAXqu|MA}>TBp`XL=ea#oB$F8$tGS} z0Fkhd9rxWjxlpa}#<9`@y2);|k6(gyU|2*`mpsGSBUF1=X3lSX4zKXsBy(~VsD-n# z9P9;^B8W?!j>1cjY2HL#h zfgAl($4^z-+;C$vKv;3!JtFV%>U~htg}${NoEoJIVBr-ya3>u_i-oJXp7O;a5s$~Z zUJGBkC&ztME7_+qgN|L{rx>wOKjcws%%;?9BRYwtEUiuo}06>`4UQ*Mq+a-m3;p z28lwpcpJ{iu^Iw}3|jW44M$_^m`|RK$F&u0fsT(`;DZug;7HH(C^ZEMsRAR{zpSmV zCdqhK9k#w^`szC5EE?lidO@U*jl&zy1O&-}{_-7y$bTTaVC%nZ-R!u8`30$%AZH7s z*AMSvN%oZ;7@p~1jXv6p!p?<9GGVQ1S4$SG((m|(W_GybtXjdNp3-srgaN3n&n*8(;3;&e~ z|4551$s*fs(N{Mpz*ZTX8`xE`H$1bLOOO>4P}#pTzT){7J^MZOaf?T_RWp5WA*Jhr z_z~>M6>hc&9JDiz9T^43W~dhP=-cs!&KMugRkLBqm|#&lnboJaF{P^okm%O}3IxPEo@E3{x^s9yMs!UbcZNl`_i0r@m5IAJ@sI%tN4setxbe z*cjJs(7{tr4`E};BDs1TXnJexzP=Gi#S^?n8rzt@ZH%K+_}6cI1?xQVrwwY2s|hNs z&LSj>M|5M2{&(~1_{&$#kI;t`%6&Yo@!%(#ZGP}ra{Ot$Pd`tag2{Xi3#jxXnA^0# zH?3^;7AG24yAJKH$WL3?4W-JIqc4*uA4AZsr@B-eo$-$m%{Wf*-3uyPh=g1ZABx_G z{LK84;Df~nsVaRM%uG^+=@LDn2S$*LSBYkR7A?&O@KVKaOi%RTV@tZ6Etl!lF7&0O zYMe2w`?$7oq*iT$=quWcp;}JI=2?;bik1pK+9c4y88p1?I()YX%qO#n!Wf8u7A9?; zxY!*ebT`+eykO`!OkB|1wC#kD0bycFI>0CuvXQ1&{Pq}xylc7=|=Ucv5@ zv9WaXzmQ-bp}jc{yrUQMN?9Km^&u0CEn=c;eUy%0<{D3OD6fCx$iB)(%If2@_LafIE;kne2etBM=gVQMq-KMH z>XP0ze<^)Y^|INk_vQHYVXtr!ui@BVwN;N}7kTRsQX?@MIOw2^g^k!kpOkL=tda4cBsAx< zF{Ql|J)0etY;H2I@aUJ1CO#;?WO`^$7EDi~nN3EIJ|0aEZD?jcH~w|$5kU|6_Uli4 za-ThADI~-$;^CgGm8!Mi1t+$GJ?Uvru`8T^|33fV+i!cmjLoW49(()}uzsq~l-NBL zSn5bzQi+ODs&cBTRHgSNXMYK~@x1=P2P4s%(dYLh7xN68*Z3_}CFj{Le#;sg|6P|?nfyHVCAJhV zhz=sE5AGET@QjC@GG5=4*BBLXYcl++dCceQD$i z2flFN_n8AN$o}-ZPv71D>|HCR&tJW@T=={RCrWCv%P0e`;# z`OVF%Kh5GkeDyZxw?`BAGPiH$W8B`}=kdI6c3-fYExvx@Xj{!O-+iKc?(>R}v&W~u&&1Y+%EG}6vt+fmb6g%lwnW7Vo3v;a0>wkYL z^jOgXV1j+2wuOR*4nwVh$0WmIP^TvrU@<;$t_fkh?Od{d%Cidm4OjV z;e6(V-L$B>N7$+)@W`pmIb7hc+B@|eT~QVNk@bpf^Oyulf&MNUy50cn6ykO&(zTMn z>~Yz(8wX>BMKOV+7J8ac^$AInDS<2}wWrKo6P$&m#%S!PTXSaNHm4J0iuq>@>ur(dzV1(E7Tc<16 zWSU18H-iVhpiPcrln4-$jUYzok>_yZSQq@zS!%7-_4VZhn(7!t}tm#*z9vMbJBG3Uj>t74sW=` z+na(GrX%Zu^s^c#fLmXz+4QgP`ne4#Ybd@p#~LV<|M0@wIn;QcI2*0w;OV65P7rz7i*U}@eW3AT><;R|*q`aJfrbc+z| zT7kZ5*IuyNnA7jmDe`1PDJ$a?7T&fXFw`yHhDswJ*;-6G<3}{qUo4Ca$KWE64(*~r z2>scw1PVk8{w@}vVykqd+AENpU7bDzKh^rkI@Xp2HIr0$jPn7pU@O>Y5owK;PtVa* zyY^vZIXY<@GqQaqWMH)+D#pbyV_RlOAbk1)2z~!%_<;F%{WH`KUigQh%>x!A%6kg7 zVpJdHJrcL^EjVP**wg#2V^&!;xPG5(EzY{v_TJ@eQA7|jjf;P6dPtVJFC!_LVidXi zDc?c}xh!Ee*Q3hmI6K9Jdi_8$M!Zj_X0<)LLn)f$!CxB-T(GH(Ur;7*a&kJUF)012 zjP#!!80DNmxXG<@`uE%V$xp+d5|)kt#%e5eq; zO?I95XwyP%u+NZ&ukq6(1S1TulV3>nYY_oY1%8|qL601=QcvIO@$<&90@5Ac8-oaipF0<7OdL*ad7xb*go^nw60bJL=74TnQLlrF8PG!Zw-^m_Ib3pEYT*GyWeUpYFjuf$1{(4C`>kRAcK135=&nlpO9{ zPjbjt=~|#Z^pel;UOHJXzwe8lc-$T`FMZz$r1`tauZrcQgIm1qj+XHqgB47?JE(P6 zN(xgS=(Qi&vg)L3)0@D}t~%+hb&ny`r}`^6&;EHoa`J*Ls`^Ls@SU8ulQGq`h;{mi zwyO+>Ao>`W2z3~iUbWLTG86i2W&Q90JDHx4)`SJa7C~ZVES)}8Zhea%1&qxH>Xl6A z#u0e(hxpTc{4s+xQ!;v^A)jt7WMsqRL_`^Tyg!?*2;W0n*FhcJ`XwCp7-%gS<1Erv zA{?U5WkthDYjDz1o17Nt)x2sE+IN@iyaI;A@u%YCA4vBb!-3(Od6LXn7+`*^r?>D+ zF8$Jjm1Z09o4r-9jZ7Q&EEX>4TWX8Ha5N58ayqa%$$Z4s0<(Z}#@&JpKIjSP=98*q zlV|AH#1?qy+n$IN1K5h$ttYvY8#`p&3Z4yK(WTyiv!Rvff7YxZ?%`1>IG7exGV#T@ zP{uPheDZ@7{-uMHm9d|Pq)(<$v&DEh=rvXK#(#5?03hbbIoVHtTWH=BZTQwvVYc$r zqJAe6Dx`&vYg>!4v%atL#MmDj?*8A7>1%eAoDV{0x5H`XMOmdGRD0b-aFc z1AVj)gLa?q7Ql_KCkYp)uNS{$FyTht78=csY>)t=zGJL3uUKDDH&=-KZGzL-#`f8u zDv)a^&u@&S)ps{!MoUC9+JKBH=*JKxjO*2&kBH7v`83B@txR!%?)Z`VA3F;^IQk!u zcycyIt@fHZ@MA%x`(S@aW#_h`Cb9OJ9t0Pzv%|xio)~lK9XZhLnjY=^Jbc=))^9RM zrW5;U;qS2XH8TW}4U^z(>>I_^lYKB47sdd#lPpT%W0A9x#>I_G&EL_fz3B$5IXI~! zzm{(G+K2XDQ5{bu7ueQ>@= zU?X<@V{~@yX(D&kYCddE+tYFOq@A#;Z$%W}XbQ0uZhVbiaK;^EVM=8eZ!nKULt`wv z_s}L0rSSAUvk9(+DAD<7oGJX zbwwmg+fT_S{Xh!e zxs2bc{gA6vZLH`Z&i{PM)}Qkq4}g?8eK4TR?^cDr!;hW>gn`)RPUD$ZC{#EKHs^(+ zxZ*aoRnlukHb7)=_!0(kf9nhSVBi8%V^N9~;5fXIPg8fC5134yPHu2qEqsZiFjHs9m8%M0LKzIKTRt217!=fu+tctqyp+hAyIN;c7 zG>I0Tim5Ls!3hVd-gjRCN1IrOTMTBKnr)P&?S0^S>Q%~huwM~R$?ZhHXl2R_Mu(ko(fu6=HrJ?Z~x9$zXtlp z{80QapD!Hv!hwGqIgmN}Z~oE$^3%_^uW#Rd-$e24!@HNaH!tpTiJv`hynfMpTt76o z+mlkS-`sz^|M$Ln^XAj@+pDZrCty1ldfS*(iI=@W^Q&xTlf3)Rt2B`|kjcyTJ%9PU zMGZ02>~52mhg+MrOprwzZX5J+f*&8eAMQ<2mG3(->XF3;mdtX&ng%X*n@KiLDa|5M zr%lePWhT}RZ6|a(6}pqF7A!36+U?jv9*2OVvS3FO!)iuiX8w7zW+z=OC^ic;`7oi~ z7-H8L18;EVC^R^+=mly{dJ};K2blFHb3OX3YR0-gf)NJM{#wfpfx$5e+54$BEAdP$ zlyMH;2DgRr`McF}WN{0jJ+}4wCyn$bL7d`?7h)*dj@fpWua#kzDyd2mXNS{+XK{3slj-hx0w0T%*131^AQY0s#7A5M*wVsbF3> zwfnv_Gz6v=IDkiW7Sstv>1a2>xcHsvz?eVUAt#9AgbI++S>K4VD(X*Uyr%<120kla zcd>9?e`q2U^U}lGj>PgNn@ZKfeYD*cpxY^i$ZD0d<;FU|f_{|=Q%IFDj<(2HzmEX| zZ)~Qg!1oiLrv#<7u&XcD4o`H!@_vTPdAyj36z7-#01rgp&=YiEt|qur^`Ejsy+%UK zB&pPP@qQyXYbM_^~w@VQZ-J|LlfC3E|O~;Y5-*)QB&e3ITi%4 zVm1?8izu-3)B+jNJBA5z)p|Oxpr58UPLvG~LY35GwyU_78wP@7Y_Tv)?oOrdU*+Q4 zYJi`Obkcg0OhHysa4I{rM?BjkLgob1*b$-yIuW@^Z-A)0VYZaugpVNz?KT<=$4Cjz zf}w(R7kfLjYi}|wI|}!B`efb{9O6eXH^D}vdbmKo8IkA{1mEe!1q>rElVXnm06+jq zL_t(ev6=&a*O()i3N!jzc65~&--*kjozAU_%n@>^-s!q9qjMDuQvHve3zWwrXXg*T z!!K~#=s`I!xzq*0D z*s1D_l#0@Y{?DI?tb7LI5X>xo5LQX`eG=QL{=xPL*bqp1vA}F~<3IcblzQmyKKqttNm=J7jE!3!gMKG;HLr`@ZHS;m)el~L zf;M0+tg_d8dPOzzg@d)Cl@stok5iY^pK9=JplTBW2kLbt;Gda6KR;`JTJ`1!H8zD{ zbs~+9*9U8FO^lqdsa8Dbt2%Ub3$grb_x|L=K0R>H_YP=RG&qFt&SFVT;k+u)uD^tj z`$Bg4uLiKSh9Q;Yi%tih#a(^8Hu`SSIEJ7dUmUww(7deSQ3D>&t|j)3E!UiE@=YhZ z!_#9|z+~Sn@b2UW5~|J?HD{PzK#YYe8L`pD7Ca$aUABHGOE-T=vc~)s1p6`u2l?nk z;E364P3q@11+vMdYC%1QVD$**;K@$GIR>oX!4ln=O1@;vCWCS0lD35xSz7Gw`ZEgKKBu3fLG6{TK%0Z$(Eaf4BK!^jK>C*rg5nBYZ2qw*m6AW4YHgb;;_uNfIWRar)i9}i zd|!F|d-|ZctTusREyO~q%0W-(%92=tbo{`+vEP~8z(D@A9HX+HXF2n<^WVi z!BoA?H|KNkSOXF^42ELs z7#Rn{19x+1xZz8>8ZHr8zlRvys$ZSyad%yp1E=X;zcxX^A-fpQ(y%J3JOJIZ%e9E? z&Arp_aRuj3YK8k$u6E|@4K}%sCDLOIbj3aLLt(f?1@Q<@<^h$7I=Gc~CV5c8A7lD# zld6EtG()pSu+{r|Vj1{~;1m9`EBbqPBV$;RkreXA6Xju;FKg_@zYCEyS{mB{9`5N@ zc=7b9F28IvnPbRF*N9Iao{SBpqYH>jdw5>|ot>zUtzM*Pr8;~3v{zKY1T5cy!LG}k zsf6a)%&&K137@oya>yx+rl+S{={Lqa^B6icn^qlzV&O0wvC_%lraxy>C;fzQe|&{^ zUDQziW%H&Qq=3_tSfwxDmCA*uWTggQ=peJkR61J(s%+#_gF6TlibOh zv;`!s9Ux;5&{|iSJv%LqK5f`!w`yh0*V#B*DfZylEI?O%ykm%hC#k+mHZ`6u^Cd1+ zZmd{(RoNMoUND^Bfxt*)%Xg&=#7SzRNbgB|RWY#wB`qa~4|_IlO46T)VZ|YZW*@&* z<7631W$HlGpgi`eu~^+$6~GF}shxw`2JS9vT%n2#NtDbc^WEj7G0R@M;>M}lj1r1@ zYD58Y!Sa}eW-0Ln9wEgp0*#h#C+K*9m-@jz%Km`e;3;_06i{wu6dHVzTb1Q4d95lt zRURLdcxuCSIHz-}svVEk3`$PwB}eX>|DF5QK>r2gntTF?(T!vwA~nVlhxu2GuUjF~0 znsg{UnZXM#Q0_NJac{y}Ri*V+JR3w;L$up)x3l8G6G!S^mfW`1`AW z@=sLx(LO&A_oKD=rJ*kz_`-p|F$ezRU;MAn{@^eE^6}6A{6Ax)FShLJ%4yl#*R8+a zKf8bV`1$44i(dA6`!SF3_Ws4QhtAMm-QC@{+57&3cQZZDUA(*cr~mu6pI*HElOka+ zuHHROQ&W(JwcJ-%RII&G9m7Dp;TbKg7QHt!YWwBx^E)LL?qE?>e< z%hqw)ahYj#TBvu%+U?lnut{M?xAqP2Szrq!w|m5~W(?|C_8_I5?PEc-r( zbBi3os4W8mba%qz>(JPM(k!J@OFfFqBHzu`x7mLuEn8HwAx$$?;%Bum?WTX6dye@; z)pRuvV)K|_n^SU>Hn@{x;5WEeZ{@r1WLS%{L3Zk)2|x?p=Mis86b#!UYXg{tWRID( z$Q)aWK1RaS}>`wCc?9Txd>tumU!k z;#}U_90LPxc{vThl@8&^>>tN=ySY(e#vkQqAKX|v>Y{PXHd3nlpI6WT_}X=OBHbQ zIp60J_$rK7b&v(CO+SNDJMiH2Yw>aKJ5yB8LKEi~FT1RX6Ev#44FT0zqvNy1aPr6^ z1lPmEt1zjBbXUlwGI#`UW%Uu2CkG;{i=4L-l-&n%{X3^AoD3*b2vz*|-vUVulaZ6OMKRo0HF#Tq zsz~W)A+tpi>|7I=s$NFVrS~lfI!|EYYD1#BIh;V^MbC{F0Bb;$zXXVfVO7xM+PfPQ zg!ftNY=Z-D{V!M}6ZqI5;9yZ9o47}O_8#Ym3f?Sz^sH}{hlJ!n@zE8%5Urhlolwvr z@DQPu8jacv)K2)9PB(Uf+3VH;hkPea(I28%6D)RPxm;pAz9 zuYr;RTBNl=Q(GqIxqq*8vpif`=E3_se-+2aSVoz1@KiE*H-r0N+$Y{J! zRv7_YC-0+QurpoP{@}3vlSx&ecM~0&+@0|X)MQ)vqyN$CUB5I9eH$x}o-HUyr0mCZ z$u$~u4(K5`KxwuyCqObUl+ugfRHgo)P=#}Qrf1q_hkfXSQUL4Ua3iDe!h)kZU1yu( zMv787C)5De{4NftJ(;5ZzejuHf_|W_>@M6E^oteA9SPMheV<_Bu6uCTuPPG`#Whag z5>8ua?iZ0>wP2%D^+Sv<7BG##Ho>LWVHqrorQYw1FPX4Scq^|hR15T$*#%M6bUHY` z249~kQ!h8#O!w&33T7klh5Y;GQPAye^yqR6E93<&wj*BxlH(Va9w7b9#0DLo>T6x0 zO=Ck48`c0FrfVA0W&>fDGflt>(z7w6xmRh7CzQ^DBzwuuvLQD5h2Uz}!kAEd0R#E? z3#TuT^wD|G5@BaqS1?CkHNmV(bXGlfla&&|<97)t_Z@{RxA9qf@k9puqW;)2m>N9# zaQw0OIlRa{OTqMkg;)Ec7`3xDZC1&S2^!BAN{1ghCCt3U%K4uzvGt)KREshp8JGgi zHUzLavtbr0C!8=3B(k_MP(-ggmtqe*74J+B99yRXjaEM{TVtF}*Iydq}mUUO2Qk^CSL z#B;H}D~BI#j+j*S8&2D3MWy!PMsD~~J{{Ic=MU`Z7E4Pe*nV0mWq1rfwkIuu!jk(6 z>;?C=hhzG%aiPojO)xOsI1(ConaxOS!--F|g&R1TpYpM4`oh7}Hr(-~ra>iJ^b_;a zG~fnE0qat;V$RWTF-w`{;xYLuqH6sqD7)r2WLxGF)PI}Wg}Vi0bx=E<$L~NbvMh}% z9#C<15-Gn781%!YTzn(=&)2x*p)vm>n?~1SD%r5bTEGK#`_%Eep%_v{^p&h?T{7Uc zZSrEyL?xmI<%2y);XqdP;br+cu!I#dGT`(N?SA7;yp7`M?$RG}sSF=$^Ry>=QCVx$ zfr#O<3SSn-xcAGO)3ZEUP{o!($-o7x-PGhJzNa(Hxr&tnj}0CCY~d z8M%D=IdsH^)K8%KP**M>W8N^<&*p2??rhq|ga(Dm&+h><5nY~?1kZR3%wfp}65|aY zGqUFUL*nS!g&|>RW4rVp_=I&;!aZ%twAmIOX>IlOo{a z-fuJYgD8=^n#ni!`2H6CA8+0(qq~PgSHo#fkLtF*cmI32ko){qd#89N_>HeA(MF(6 z<03bO>#x4jI5xs7IJ+O`aAI94;Y|L>MQK!qOxQu zy9bJ01!iRieQ1TKzNQ!yyP`M}&M1b}-Lb9_;O_#Z64h}^mEmwlA{SJotT;Ss;^dr* zQnLAdlT)8HTfC{1>3$V97uf_0(J-#;yf;r5IYeq==G{{p_hh%x40tH=Q8Zh_n|~7R zY%6(}sBs?HUV4ezxdR79R$s+UVW*)g=wO&eHvY zZyta1umAP8USXodkNQagzkI%M;NLC|{Nf+|#k;GIzkKoGRWIuK*sC{vzWV;=>enA1 ze);(E=H;umJ@>a&yN`E|FMj%_3Gn?M+xk4W>hrUA*U#^M(@NuumI^&Z^!?TI_VImg zTJ8R>yl3slzANojug182{rvW>C55|I1R7gR+@8I9{p_L8#@*-2J*(V@&mZod+f(YP zPY<7Nz;fSHG;be1-I|pu+PPq+EdH#g5bV#~V>?i#jUyu7{sZidQYB;#gU z(SqrW_Wj;nV`~?r7YQ|5_OUQg zmEHwqQgP$Gc#mHdXLz4oWj7h`S=fy)O{7Zf{cR6|m+`N64D69{>~U0I-P`f5`3Cj* zYG&bIL1}1Zd>cVoV3YJxAtpXP3_WtF_oAG^Xy*6&=4A|fAAu%&{=hLHSSYrz3O|o? zUGOZ37Rf?wZN&2hDyp;r$SF_`i8^x^;;uo^LiK2kM({11*3!yiumRhtRF6w+Viasn z0ImsEZMVCVqI{6iac}}5{)UhDV#S6AwG%Wk3APwu^y_@J-v)9ng&0>PcXYO$>s8&_9>9wpu5l}1>L!smTTO=Nm+Ydj8~2^{CsB+F#altnuzlhX%!Y1ZX* zTh$QS_kuRH)vZ&VTO`;?M->dn$*v}Lx~$VYcn80H$I($Gv5}yW3Hm*{6we|hjN(q; z$PYxn2PbWV(`}B}c=z~uY90XaD_;$h(beS8L)U2%?-IL@XZXu|5Eu+H*`g<2>vsX8 ze#ggILuf6lHbWdQG~`wjQxX$n4nnfiszRYw+gS{KR?xVF%4SRi+QRdJ4if4f!@ASh z0md^y9}Tu76R0H4>#Axw@u7*6UKG=J4`SkB_< zSBy11#z~U=lsrv#ste66!e!qIUespHuoKo|M@1t=m4dbPDLO@G(8#{@In8$Q+XcP_ z@-4C^uj$Pumq;&efWUI1B$|-nbdo@n6XD*u#(uK--eXCkio?7gi`|%!9-W|&#Ui%R zN%N{J?sQO8`!_LYEXwJ_`cDC*$#5!M-i7NYAYRRJNo(ZHW;q#?)^_#Vpc2YW@ajh! z1W*%C1W0H^u+tw+mNtGxgrI7;+HaGfNk*;mM-n^&meJ5hnLIq6Ff|^3?3nK{$LJd_ zqo`VfGh}VUMRwk%jds}I6u6w8v5x}%C+HjEL&{fZ_*6Hf@h)X3A3@==1$VNkM$o8U zf7P?;rVSbu3PSAig#NUx{u|QOC3ihfHXK_RtCj{gaZGyA3>K~in_QksRB8c9t;QGh z;}sg}6!21dw&JFKGyS$%1cTJ2QT1@Z;~#RSq@~BFQlDt3==ck#u&yo*1KAHeb4c7r zp#&M}e)`+ET2a)6$x1+KV^Mi<+_;4`RSdS0WU>uEjRATbLMkzo*E&!*^dw92#wWo! z?HCUaKir=W+d4?G5T`sBN@i8@MKT>n`B6bt)p)h!6deB^a45#xP^IGl3_aN zMACtyi3=d7y6BgH%pHea9(81V!e`zsOOD!^}< zP!5zqltITWl-58s_vm$~3@bqJIKt+~Rh)yev7g?>SG?M0DdU~TS-0`8O*S?H2vCJk z)%95mRN=lcolfX-`iD++e9yQS0)16#Ymw6&i3tZwwoxnHo7$*}^1i~2ZAY|zp8l4W zPIWSVk5LEpjJazr9pBiakY2w&bX^wBR}4z4oPFr3 z>(k@&3!}Z$^pEdR(KUMbLvGm2h)uG|ruMd3qYTX|z2+6A4-_ug75CeJ-vu=5YK}h` zSA#tQFs6QuFO5&io()O$-)=1W80L>pz^GKKO(U}tkYi-dbayGx; zd!_@VoyKH57!Aq9rn6m-13^|_zKJr=nn0?#0JUJU&6TCja8Lq5WPRw*aGb6=&O9PuB43AC!t(Mzoi<7`h$LdxDbvpAL`&+5T4dm{{o~k zEQ7I*lqyp@<7xF9GqTw;12K-AO{GidW8%e@)9cHM+7Eg;1_n!;gVisN`S1IT0b9_! zAhK>!sp&{^BG^3SH}2R6EQpN zm>ql#R>cvI)8@ld2en-XXokJe8xjJ7+~&8zdCmM z$bw7^G|UW);ok?k#x{jcLTT)UR@j?v6A$}5KSm5^>GX3%R+b-GTR?T?Usv7r*%uye zlZ*Uts7h5UP{Aau*Q_G4RfFQ7RA_y=JGg{bMZ7lUp_8&p3(m%Y$+>ZVO|~)h>Q|+h zl@}c_ENf*F0GP2;q0*W<5G@-mk(aJ*F#u^GV!UDQdP!rK3iAa zu?1M&_qs|t1fKC`RTT_gol*rwhSv}J+U@yN9whlQe9Aw4ss(QdEJ@kZ*}Hv0|JZ#t zHT$~0{#1PxFYpcur=5c$2-NEE>{vN8_wgmOZ#vlhek9=M7+i(=r|!S9tAe^8ZrN8A z`agYUN-FAubA#Vi*Pt?rV^|f83-BQ}tZ%&Tvt}fe>;sX5uP5&byA1N-m;7p&ha3!n z2eLU;TtamhWocfKe)e~8lTTi{*>Ov1qN4p9I2ilW;=o?uWFKOR84V4xiQD8Gt`l6P zQlg_s!H>@Fr)@&#fks=2<@Ge4k(bQ_AdIKb^CK>La^O7Ct9}hZM|qz^o3wM=w`(Mx z&lBCdKL8LpcCXOBfKvh@<#pljFlvo4RQY0+c~b9-B3zo;Pqn8nr}l4ip0ImL0r>!W zBE;CRL}P+DV_0O9V=~Nq$h2#S&%A}UtAk<{mRBKl&+St+;ye;nM(X<4Q?|;2P z;9vY7zkGQ6&3BJ~{L_E<)w|a(+P`U$^fy^EBIf=+h?B(O+NFy)>c|8&XV?=S}vLHBmH^KQ$6O$&N~(;}JR!2-5i?;JF-?Q4_mP}f+H5Z^DF#s|(r30+&b$U87$ zh)!)DM-5#t65zl)f#Q=gyPlY{P6f) z8se1oNFPSvn|{_5;r^E(B_WrkntlQ%>|(nTo@@1)s%#rd0Sy-*81O zs-s=KckAQJmbXp4K*^UDw4P1m7o-GlQ+7GX3{%xV=9xDLp-syM;+S@IJEzV{w9* z)KJall78_!)(fD=dsoSj>^bMzMyDVZ^nJPV?qp>W>d?Auk{-qdOlyQK&{9 zDJ4*b0M&PER=UTnS!|Hcxt!jOX8p~ATRIdTAM1>>RTueIlx`(6x}F$qI*76n(61nd z$wJTBmN*crn$A7a z_tl7%mEAk&qOJDr>4Drn(}mhReJNmbs%6m>mMoFeO%((TWM%V*h@cmG(<_Ezx)p1t zo!U%y*q@z>tthe8{Q?(iB#++y6Z!P+=pM8uv@j)$`gR4fy9JgGMUgh*v{^uo-YOSQ zPcQ`kekkgq3KmhZf6dh{d3BvV7UU$AK=x@9Ok^u-3{N%$AAj}0=(lyBY3(i?Yh`0V zwcE5I@L##gR-65E;-K3t7;Tv9?qgEYXVS6J%~rFFFi^Ta2SlmUxper9om3hh1O@eR zW4;N4Hi3$%px6MAZC_ITt&=VF{ho+%a>I+xRX#Y!4(a1#W;yy18R!dbXmV|6+lB_5 z(+(&X#o$3#)<~X#28HyGGqq{!L2+i)mFQJ~kwv9K+#TFCC>diK2mfZ#tw&`ythq@@; z=C5Fe{QB4UMCV(m-ZlOnN{>#!C7ZkPXzZvyOHvu9X;4A|Mq|9nW;F4wU_n}^Y&flj zE9-l;kMeNEC_3q4C;V&r!7CB!^XO-@dXN0kU2>=4Q0_m(ZMcaAeBAO%wOLHRq5GHq z+eEvz`;Y$cpHCyO3f?7HJ)L6%Ki32EOCCJlyz&v`l-0xf;%Hjyw51*pOPxTguY$cz zX}2Ewi~FVbF1&0Jn-ZRZGlmB+T57OQnVcK&>{t>o5q9CT)-z;c7rej z(!87IG7kmK(zm5g?+<~PU!N|Stdx#l_Wk%x3e=vIT8g zEh}Hs`{~#9D~K;p>+d>${@|@X8t|?H(KMZ#@3iE;_=xpuj~_>C#nehpL8>o%ys8aV z;l!rd3Zbd}Dat<@&R!*f=W6TUxXWkC?>A0IPMJO=71rC31kaMF7Gsa6A#6iIWk~1r z0fo?xuYEK$?)6&*keSSQ6aXiN_6piEn%dPnoL% z|EQ<+^m>o5?)5hvCfN9VlPw8_8cCv&F&hW#j|n@~I462TxVPrm;CuBk=7yW?WC#7= zka4oe9p#CTS)Ig~y11bZ5jq>VOgtl3wf`AmLmBS7UPgx_Xr_y=}ZlYP}pEgozrNOy^8Mk2x0 z273%*xXrg>6PEHjko6eyhLODAeo8roFHqcPvs74@==T&xyZUh?dr@9|gZ=?13t}*) zO%Vst>coxG1EPP2YjqX=ZN-%Wd8HAH_j=IU?pkr+K^uO3%f2v0t~_{Zr+@vFB7J6} zAL%6ma9Ud7;U~G$bsoob-|zW`114xCumm~S`_|tEM&3T=48@`0vH{hY za$>tdh=(;(lpH^Ug`wjeAS2h@TuY_)Dbs8KC|0`)oAbzevfUM4{;6_sLw)Ta9uF#l z6Feh29hgkjbPJ%9TLWw$XwojNAC6>34t{DXa^MfN!oU4!OSaavGupZWysFCrdxg-n z@@((sRB9?y_U31&{L)6FO*`T*!L6!T^epkv72_~oEgTXXwA1qkg`zmCjW;P++MD9&&Ueag7y& zryBir=s}FrMjeMSB(w9wtQiQmw;4}gr221u^Xxb8zWE@21jOIUhvW3+^MwO{V-Eb{ z7k}~M>YIP{=KD8aJ-+|=uO9#S-Mg31u3z1L-jb2o?A`6lo7)%Hx6dE$T1s`A_51tl zKkRAZfAFH!(1*L%&zq4y{0INwO%s+pu$M3Y^xi?h`wvC0UU-Fc^|B#nvXN!})FINF z*H`z?KHlH9ZrXv>R>BIv-o0t&_n~FV4En>@#cg!d1_}13*htghk6xRV(Rudl*?kY6 z{a7z-Rk&lXQJ- z;zdh522gdus?HK~ z$%<~`ki8Jt+#v6b8L$LPf ze0@(qr536azlT%5Em&dr+6v}^tOD=``O@c&YaR}C*{Qd5yhq_RkwDjKn=HdoLv&A7 zU&9lhJU+PKffI(C%yU4eBPs|e#CtQ!@X{0M0ls3yCWhm6*?r2xWYMs$u{@ol5=6ks z!RJfRX8!3;AgU;&X`%_a=d~M@qpzi~TdWg4vr5?uES1_l9#zPH0*d*5t0$6Fn# z9WP~V5s0r}dU`*5rCyaZ5T5O6Njo{rAA<3k;wA)kAolFhtqjo8Zf}1h|$AA|4S9Aw=-(=?e7c6LY0Hw4fe~!$ z0&Vedi&p|6>BnfWh@=VaE9(@R02#i+Yq<2QM<%K<&UJZUW!=;CaJuvxkB7DJrNtI? z4|5M~Fr$a;2OjUy`9L=MOvwe!x?)8Zg zAPYuiqr(L&@U1NQDv1vA780!SFDr4TPf4SGf9LYJ+J9X)^Fg{*lMgQF@QE6bsNk2 zt}Y)X8c8@GZgdY%iw38;ac3LfW?}KDyxdkSg=#(*!)ZfDjWT*ZdU5%&$Hoigoa`KN zO5lIDYvsV;KZgDA^mK~F2eEQG4tMGh&EZ#4bjIHCxBKq=qeIC|M&-$_k3Lh4mGDm8 zy(=~hJTiArv2gOAFEeD+46Tt-CB*9g8iX)_$r!)Zhr?#dMfZK!KsF}(eOeq#_jpT` zc%<~+;R(e8H`lN0&J-6<-j0j#jA`I>)mTmB7O^}fqN~RGDno^w`)r&-Z&d^-8Uv!P zjEZiYwX5`FZN$5kvC&a|V#)W|V*OYB;up(p?9tZj0bVJRKsIZ8(?;_i+ugl7t~$9iG$%X2$2wsGsu&n3S^xh zla6?oU*DBs9lCN_672q3yrMBE?|&j_;b&vkm4%afyW;5xjJmB<_B`G@9o`+jMBCnD z8S2qW0`;k$cn}6V%zH8btKHQ;Zu!dk z{N!G0a|MBNc2aF>nXp+&p5IZ=%3dhtYa<9vO2R{_{vuUg@Zu?!gi|sb595ixZ_I`k z9n=>*{o>+Zu3zO-jQ`Uad>O?~oA)_gVw?KNtt@ztw{B+V*M>gdMMc(JG;ho-$+*JC zsf!@?g8tG;jp4Vs03Wzg>r>eoQauwn@68ZB_Z;x5z4F6FS2pn^E=AKK_$ooe>j zTzy?7Nk5J2g9UgOYU|_4a(YMyj|!RdOz(g?EI?PF>0W<&1FL0okLqKvUp%v6xqL&a z+H9o!uqZEvq5S|xMmK$zJVfx9Z<5cTA?-!wc}0o(efFe=Gq$+viAfclji|<@Ojp}X z6^8sQO&qy*G3NTw2k2VOO<%FDq~XXec@mL1KZe_kkk2Ym{$@%M;rMC!D=|Ewc$qhE@OT=R6}8?Zr@}(c=;1k$!%bo z*RB_h8_|znmk%9jPClJp538L(z++II`~{IcZEUHx@IY|H2BrxOKdPlR49*51_RB^; zxTcdU!-2OUqvprGez!Yk^WJXA5!$hI&=fNUVpBE&xAC8hW6P+Skis95{iC&jATG)f z(hdHV!HzATO*E4Yf(BPnyo4OqSPfgS4%P0Zt{7jd6Bhv+G&E&PYJq(KCb70ix=rid zp0R%Lx*Im-)pq)MIwXISeGt!LSB6NcK}W%idVWqyU4;^}ds8Yr=<@Q^rt~Prm^<-v zs**VNuHA4Ovh&GxX{_g8P@0c3@{es?YfKGz=REePd}A&Bo?b+t_v|8u4e`3L@{IL- z6a4NfpFP}OeYjbOva-KFpI?6e`liR|Au-kv{$Kl)w!Sd6I@hSaXvB(FFU6=7Et#ey zPqK6e=0$}MoJy00nn{ODHPC%M40BJZ)vKaWV?`^y3)+1?!`j#pJhi&`fA}a473#G% zYL)JQV*#38YNlLR%Q#Jzpubh`R1CyWtCZBC=4$^=D}ksn#2BHL`PVU0bj2}2gCMvX z6IMP1+LXYr3727Z0dr{v22~htr=j7z+#y@>gZ1hyT@86ZeCjA?WWA(ZD#GGmRC+Zq zL{n}6(yo5#S7$gDPdPe)mxBt7zk!O6hl^O;)i{XWAfNgb1P{;poM>ctL`0knY_;mW z%?X%+KIK#)b6Q3ooOWl8jBSB<0y+$aI#eeWNrtKoKx0UCq4@)j6$}kom+W0Up|_Id zoewNFIsiL9&AeA}{9mENHzlQ_WN<4_OHSJ19db^~7eSdN$hiaSl$|J zgv*ZB0AE!h@uz%~9b!qH7MmJ}@wJQjzbkv-14^>|11b7eG74h9F-+>yXMGwI`&6KE zb4O8$zEKNlRer!-#;Fldmlx<48t6mp0f~kU$m!qevGK=$R1sqqhp9Q6K7lBE{s1Ox zYA~KK`jbEZ?`=~0Tm2YhzkI%M;KG5&>;L>0|J%!Nzy8ZQ$iH*-^3{2y@b%jlH{U*7 zKmXhbSdaW|FWNH?er<{D?)}}b|McPR#ov3^eC^GPZ|VRyf6(l_$ywXh@~=BO%bEH~ zyVmYI_VoU9{#XfbUp?Po(lYJsZKF!>tH@Q$m=;0G5qj3UquYySJuGwDYJv&)3@tmW zCl&2|S#(b_ zX4W~&n|N#}s>Am zpx{ZM1dVDdI)y<0!YA(sA@~i73--jP0@xw<-F_ch z_-f(i@OlF$5s&1A5lak+brv`~xb3~X9*Iq=ArV_VPSHf4P6||TB04E+)PdJ_k$MCu znZhr5Kt6r2ctoN91RbW1+wC+T=zb?UCIkn~ydCL~|5wf{hvqQ0i!EAxseOOvb*i zyA}qhmViUdtWzboPF#45UZyJ87C!`X;Y%LR^|6S(sgJ+!LBxVlWF2hK{i8;#Wh-YBND8APk#1^GEZ)MT6#umPs!OES~wBMU$+-Z)`VUzHKneVX_Q-hZp@XtDhfu z4b`K9bnYLb6dn(E;x||()7dCq#RRTp(g_ZObh^b1OC;phgTFl6t z$FL^=C+}|}o~;Eszlk4C*L9x?sfH~Cc%3tmb^x8F+~# zm|Pm{h2HfkbXwJ38#AWaeH8Ywx&7V@5aV8#${K*EKUfSW4?~N5o>1iLUWS$LYV?d~(xf0jh2H>CmevyO-@+ z9H~62FeGO5MO|!C)voC{|B1l&vE5TQcRiiAms(FP79)#X`2yaCZ~Z&*Y?9uqchOg~(NA}XLOc5~JHfB0ix1CwTm(N6?YGtO z-MI;@`j|)vM)kCJ9^V$KOx4|%3#3IiqlfX=7cDm6(WaoYiEDBO#)g8$l6<*lB#_&Z zbA)zlbccFzCx6%m3NdYQb0UhgnjGKuN=!I5fVSwBZ3Vc0-!F$t9^oR3sPQuci}STjAA@)BZGvh)FOZ#;k510|2jU;iuLvM|#uvre{IDyFFMzTxwfon>?!#yOtE4}BjSmQ~No;-X z7Lj^&d~y2th8PVYUdT-U7|`;G+3N^GN0r2{Y%{pkH`$GEexUD=4-qmijH+R_VCJ3$ zEqMSQqI!8VI8e*O(YQAv1cG0LdJDlg(;wZgL?{St2xaL_NwxezBV! z@!{~vqk~)QUbm-ub!*4oUV~S`rzBhMHaw(avt~T3@6(TDs}=#|Fv&}t$4Ih@faRGH z5Y5bLJ0s(5ibY{h4ozmgF=kI`MRx^N4Za);9r`S~&xdb+s8M->rQSK|A;f%T3uowdLynm&ms8LgYu$zuy6n&#ocDmWU%aqK7k4drQs~alO`)UB!(!2yY)Qv>SYy+HVtQ-zOHc*KGc_ z$^83Iofs#S3q@t|rrO!$0!2PKUO*5(19vt>;Z|XPd;nc0vE_z=TdYSALYCu14EW&X z!uRj%FTF0EoY2lv=5;mUPhwI(LExyIf6i|LhJ^bYdcd3fzZ1$LzhtW4ozGXzMml3~ zp4ZLM`)K2v#kt_i{nKrm=a}+D26y9;{gg?T?ys>$7{nDkO@E4`!@>_gWj}apP5{hG z`GH(4{mu*0P32f}51?}H@tH*Ae0Mf&cm)_7F}gk)P1yp!Oa#qYFr>jx)}0!MNg-=L zg7^-9&Ae)n*M!kOFwqyu+xRROMhl;+Y_XB<#5C_5OOW{q>z{6e7mnooB7l8uA>T$p zqNj&qMpD|Ql0k+lCgMT=a(6a+M1;4|WP8!Nm>Z?_rNQnyNZrdX8!IM7PaQJxjv~<6 zl6!O@FWKBcV8lNDff=@hFSzOVTBw|P#2Y(en;W08S2DRUqkVoT{vzC+HA8Zj* z4u33(olmIv3+{BxZ-zUWAZPO>@ad}?-!Ath<0+~Ndz(gH*2cf=KuvXh24}dc+g0)s z*K8`@n_4VvXFE}JYztq;C*D3m_hQ!;UBk=wJfYtK*cOaYS-&AZHJ_Bu69ic77(V~i zVLRvge4o6e^MfOqJi7G?dDR2Mmb19^AL+dE{`BwS8~dr&-e{%0ykr}<#!HQ2IMI{U z?eeuSkF37LMKJu4|H(~at&$#=SRcm^*cCaD7rJrdO%`NggNb>Ewa?)9d&gY{TR&=C zaP(L!{`x)xkYDA);ih3RZDKkVgGER9EOsszH}1EY7VcwT^*@vSezM9O!gA4#spzKm zbQua`^~Y~>SDR(B!M!d$Q5YGU%gF}y$x0Sm&0~5?3YldL=r9g0rqos(yq@5nUmDl; z7OC<(eskt-*l#~c6h*NU-PB_fG2{Osdj9my-SZvb|L1f3>WzFDGjtj^@sncX zU6003+;usXx{>Y(K;CtXhFz`RKGb%?r*}|W2RNtTC!cFE-@nd&a<5Z`^fj8UTLB5! zjAju)o&Ja6C}*d_V1+hzJHbm=s~8p4e4u5xSKuZHHN!t>my7uV{oz=>RZ+J7LX1Cz ziSL-rTSwC3CjdvpdR<;|q*J|)(f##|`B#6n-0wd$S(sw8k+aF4tRi(CuPYSGCwe^gmPq>)Nz8uq0gdMjEXfG(Nz zxOTDTqbYbm?o~sU&%bCpR{3?n~>^rB<5J2|BTdz~My4%V+gA1aRqjP;b>)f7CgHfFDfAx&`IG9*2(hkH`N{B=DR6;=ld&Zyx>aqhCMz z)uU%`K0f!_;%7bbdjIs*6TkoZ`?vpfiBt*UiLz$61)*Yj-(^*A3Yo78l1)sDL)E&y`L`am zUL4*gC0dFxDb)mC7=OWMD;ILYQAV~N@BZ6psWaH?wqBQM3sJ&CNtmRKpWgL~okgDp zkNdqeNuWVXzen4^x$3bb>CcyLnha?e$ix_2 z6P{6>^t3(;!QwzW2p7Ei@?*Xe_69rE5x7heC~gpe!?+7@bt@C}U7EbIAg~_FM6N+z z0|?jAy&P??D(KzWCeO1KR3wK6IUfgoyC^#wf*6zd6ITC>HmYtg7cDKIB*0er(U1rl zarSgDaw5e97~-bRkjDqrj|jQq$s$_ZQdXs2%N*3nas^G4``t6Y73ms_(HGa@+CZig z&k%RHol4o;2013Yf)^c|#Mp$@5Ck23*0Q>3++eKQ(b58_Mu|23C%n}qm%E5nuBz@!elI1^ZsB$(~8ds);pb)(Ukss%qVE0B-X6btZl z)UHX25HN;_s9l3+6Hm9V3Z>*lpQO^)nbfQ?Di*RTHb6B2r_!qg(c*76<2P9C_o+NT z2dDp4uejbSV7wI^3+3d}&x*%GbdSZMtWg_y0zv*JvFL^k+jo=tw-M&DwZX~`!!h}j z_wXU#ie2lWgof9d^CFAnemy zazCu;`%NIPejn*+e88&Iq*mc&Gk~wpmOu(U^+Fq^ZBNkpyXNl0D zp~?b=;9y}@t?9Lbct`~n^oQ2s&1{bS7@*1lT431IO@XT&z1Ha?vIDGWiYU3mCWzTa z7>ix}GT7n5)H+E1Aor+mO|%tLbf1@wvw4kI9h>oP@=6>GMyu>zfhkakKx8!*g9+G~ z7%T{kI}|vMt>y>0&g49}6lMX%#hC=Y60@#Nxbn3Z5ta_3@Z&cOyvfNBhoOELDe=v0@!BEy170;IPUv7m14sd)O| zQ62mt$mRiOO>&1+?ohid(Pox>%I1go(oUWLA<7fz&5FoBEjPHkdhiG}I1!_FAlgT5_^b|B5kpE)u=z?4Oy$M2ID`x4> zl3lU4I@++2+686(;o|Oj!^dopS&`84BL2p{x?YZBvAQCE`i9l1&+kn;@{&VTIlb65 z`t>(8sX_nxF7~B^6BT0yE&Of%99icG4!dE;`lq7Hju10i8z{Pi`Ul#M4qmbNipy2Q z-rsEO*psns3q8R^JO9nryU;=jU7?sw*vLsnWakhMF2CWxQIOoSn{52NVzmM^u^XXL zKHKkWhhyWTTAzEfyXqNNc`KHXi5`oUh1IS)@{{%5p_$8!0?ZU`Iv2muW<#qOa&E^* zHLgWGHluFRxNkG?(NlfjaSu%PFaG18oIW6gPpk4H!r*U$2$@upe#EMizpKGEv!C5G zcGL#S?&!_J*cL1avGxctS0V{-Y&{Cp z?ySu~`pgr*$hW$KD_+t&Z2Y1mdi||jz}qM)XHxSib^I3x#0z>4w3yb@q(B}(8VJ7L z-UgS=E?{&VJycD8$PO!y(L;xUmCur^a4y9vi~ ziolTGHjGC}_B6#+VJN(vEMKpj%xu;}JsaZ_`u&=Q$Jp3wl-p!iJvk9RsV5qQ=W^Ke zUwaGW#g24rQ<_+iLyW}rcXu!4K+Q$=z=v_exfiacNllOHZ)V%Zf6PmK<-b#c>yo3! zB%4aA+*>i`UFwQ~=JAehk3fDlpWlA_%WspP}gl>cAZNj>Md?tHyI zrCPWH+|k!AxmI!tU~tKKrD=Gn!UbxOnemb5aYs#lLc~RpswcOHI~@1!pwCQ z@#{SQJPEE*IaJNQZ_k(q0cC}Q0Eq(02kD+y|V-*!RzQRiZ zJD>k7yj8Jr^?@-Nh_AaQKygH892P}Qoy;l{%`Kmlf0UmM1YK;Ivw6;7Z#%6q62v6UStRiN6R0^ZfZc`AJ+RouV& z&|rxhr>@FX>hCM0T@~hz5+Yz^?!G$5LZ^UozvWE($(W4D=1e6+_|}G2pvI! zD-7`mn|_2nuQu%c56^&%2Yo-?9rEA-2SU;MYETokmJ5yY;9hh94JcYVWeS^etmF@S zEGhiMlJH0D|6fSpFMjh^&;I=1{qE_T+wYpP@9kV)-rYWb*#oB^emfmM?YWunfBf`M zzUze-#tvFx^h>n_tzn)IBd80B+EsGmsp4ItRv*&L&uv1KBaVq%#uM&;)%BUQ!ts!D(`& z9m()=VUv3`2#Up!7NR``(qLX!U;xL)WtK8kPz zg)_+BB$CLmen)lW1)_=e(Dpy{Awh}Bsg{f=Q|b3> zs~3&g%m$PODJI*}OD$6rKItpmK-qS%#Yn&dv3C|Vi7~#)%?BJuh49g9BG$wh5DfxE zcJzlK`oi67W7$9X82Fg*#myG_OlU~-Jz<7M`H(@DjwPL1$eU~oq%1UWKob(}W;Zy^ zvNi^Y&YhP~8L;~ew=BOxi`ML&u1qwLvrPjgmp!d)FiqcqY%;N@=`vM=tq5U9@n!O+ zN8Qz}T5=*`G*#A z7u-$EWq)_=_ka|4$)M>8Pt5iD`{Wp&UJq3%fwSF{6rn@gh%4OolmK0XugR_r z{*i@d0rkRt{UVI`GuyU+YZ3{*bYRU> zbII4_oJph*(BOIUgx6%ZHXyCOJ`Wel*M9~gPzLL5#E8mTvJHz(bOfA9s+~j&e~Ko2 z^lxMzIz}V=Gr5k1P3W1V%fnTT>1g`EWosPSUE*l*P~635Q3|GP|J;tRZX7fxmUOc= zlatDlh$c?fMq5S9!6bZf?~0SN*TsSsk`~|G_mpk+Q}vGOMqs5Z9L6!9thy7)>};qy9?u4lz{n#Fq5;(LI@10G=&X>zHjf`?FXgt(db! zD-`LV*d=d>|E|R8iX7D~vmDq>fv?6+IH)Ys3j<6(NjLJcg0;*_G;$uxtG?nRRR&SJxK zy9Mj&B$xV*6FX)3o77|;9rP+zieKw1R1OFG?^ZGBOo-;w{1M+8%4MQn`+monEbtW! zvPB)<$*2B)@c=J2&5$wHiWxTVg;N3LV2tS|XgAr*(bh4ClRINX(9vcZ!f9#9} zVkx`aBD<0*l2)5l&eOCS>Zh;>t3@1b*c9Ho7$im!JH$!SVB^_6HeSm!c`f%UHiI=t z>h3@X-AsdWH99^UH@xGbC*{Sr!R{+8^H-gHA>za_rTFGsEJeIrRbkZ0?khiJTimNX zp07NYzKaJErw)BgHK$d&3Z$pNw$Ka$U#q+t(GnvYkAM}T+4*S>#^8~m{uw2W&FVN-@U4BE$nDX?-q?aH8?B8e%GJ+;R5@#LzLtGAJ|x-skNCSF7Yu@yQ_5S! zAPcgW0)o;J4_6#L@+GM%$dwVxhuBddg97aAVH>pAw0J?jbjdIECxil@Ty%e3hjwG7 z0RnH9mLV{^ny@pA`{4JrzS}n$#7$tb9lUgwy-(K}Tz#yK8VA?Q>dAxDhqrwFTqIu` zqSC<@yU4n~0|UL4Lz)O}7#xoHLD%#QPvCbCGk`PYSv=>{tQ1Hs#nfy{FXW8}xz~XUPH{!UizxS6@~IKSRIIawlxZWMn}oZFOw$Q%_vhxj3nFoGr!H8R;-wd z6Y<$C{BE$$z#NGzt+S5)b+e-6m)2MwYuE|lbSSO;fuleO&IDs`xM0bR|pyq4!aB(;~z zhclTmo{>KW4>?!WzPetZbh`LHCJ!y(M~4rJ(No$2y0PMdo_ihYXtCp5pm}5jeO*@9 z#IkCUG)0d>O`VL8$&!pzB&xw7K6D?x!xAx*tJqhQ32G5e%t%j#!YM#l_?=b4R@!~P!8%>_~FD+%^cbjPG@~M z9sWbdsAP~=4m`86G0QwUdK#OKda^**#w3ILhy2h{|MB?ONCJQHSAX^R&)@%}7jNEu zy8qpe##-n2{N%THzy8xdzyF*6?SH!Y^*1kHKD&MO`1|j_fAs5L{o>}gKmPd5mv{I7 z&Z~FNeqC?aD}Fz`Z2J7w{fB;M_VJ7F+8oy_{vJPj{p!)X&z-m8${auBxi9jTUYq2p zqB-pnt-_biwVm2IaS2;}M9EC&w~u-SSifL@p2U+txnDwNv9$@%lgLU~?#iAx+jqg) zL=Hw2{7K$u>C8lV(0?>kU zfo~*kablAho*ZprFSJb<2KO37Zt){fqahFm15vRB?M)bi>bI{7xXDvn2TBusyy<}7 zcGaLeMoWsTFT?A611+^nU}GQ(>(820*+QVe*aF@r=rxt(_P0Y))Ja(Jrcc$uTktuh z7W17~0a9cqk1}GRzyBt)@o2(|j6B&Bj&x~2TGAR^AbZNT8@3zJkPlCy~}$y81i^cFyaWZ;F`09Va9gHU}ATudrU|zL~w(FW5)1_1r9c~4B+#eY8!~Mt2UmD1A3SZ72gc@ zsQK>RtF!|-eW1&e;n__(K2oUC2I`TqMdGR--|Tz8Eg7O`MR5aAxc%m@sj@Se-P60H zpDspZIEXkBm*n<#f{WVt8BTGcN(o0CY=UIE_gGfotKt9g7d!(c&Q~|gmmaIcnB0{_ zdV+J44b7w-|29!qAxPn9GOJHIIJ@QeueJvAXw~L|hqCzwI+9yoN+he%-=%iwfDe>0 zSD}ush0*DU|MNDJDG#;CUR>6`$-ew2KMQhEZG8=$FNaDD61&Og63NJSKMIcC;9uK5 z`PjMwbmBKIj}30pfBbQ>0ZfXZxu%E3G`)gA$B4>r32cJkPSSQTNFpVYnx*G2TtE-D~aja1`z{+*3%eOHk! zMV5*KjwF}SG%m!7^`(46W~3$p(CDzkVwka7@Rdkp4v+ zwt)zm^JE4R#2^yus0DjXp9H)m0(a^ ziv{Q=S@8_Lc$)TO#s(B36Nk{oR=0~T39rvi7IY^cK$p6p1iK4#&f~l4 zBP~jUTPwI8#=O3l4^|0$bpRM|)y-aOvp8QF+IPEcuT|r zT{u*87cKKo3!89(7Ho^xHp_u|^7qQ~5px>RB3C*a0MiQ!vT0`HVm4o`m@UR{7ng2yLn1%Be29A#d9q67lID;}a)OmcXu2Z?K=NFQGukxP#cb<)R# zPD}XPy^ve1sNHC$vzfh`;m%&K1$}L>5xijbu`z&`@fD4i|eo87RVigJ^xI5ksxbZ#O*JOiEDpqxnB1SZ-y&1&;eBvw5n}lqy~qdfLgFMw%zTz!C~W??8*%~kAm!wY^X;zj zPZs1=mA#cjC01LJHhZmpWVj@&9elz$!=E4n2IE57!1syG8_7`EM}1Wy9EH6{2~IFrn>llKcvnUh`j0 z+V}d%c$}P$+{5Q-O#SzXuhZH3x=G^DMi?UqF}WkU&iF1Gsv?fjsdiW7S7&)xnDN(! z6?dW?-EtHy#UdyA>7l5`=P!9={Gk(8ZzIX*AL^=}WFz{>{K%m~{wI!c|ik zv#x@ihCJ0g6qBtsHkOQ@YWuAW{h>blY&em_(x$#O`BeY#mRJ(UOfb<0XU1ZT%igP_ z?~9XeoLhae13sZ@pPfH!C~Cee?yn8s(P#tE3K9(YkYW8tpuIUryg7VUG9vgoCBPxy zS~?M8o5@C6z{T>fM@-3mLK0_mBhH4bvPceJIN>=aRhd}AcPfmEc;ALMGIT!`{glLs2l>u6K?tzA2!3Y_Z8Jrk*7{I6Mg7O^XOoRl zo=^5aJq5^X&dF5_$5uQ*(RS>UPKG;}7w?w^pQdKQ$mf z?iNmN{v^w6;rHitJihtzOT&`~s*@{2nSiPL@HRQgn^uhhI1(OxCblD_U6OJC+(>S| zRih%GJ1PLlJ(jLvf#%i!_Z9ZaQK9hK{!h4wCn;}GMz1BJ&#RUNK_y~2lzhXB_A zD6V2CFP1fO-uL1n)#K(MIP4x^KEHDFa2wDAdh|S0A&cukf2WuD++dbSFZPFMbd7|E zCSxB|@^GJ`7UQ~BiS+ana`r2aUESU5W7I>WptkFm*naKS`;4OQ{ojspLmI&@K1S{0 z#gQAa)gr)Hs#0~_ah3Fjb*JhC0*m_|nzj9kunOTivin*%Awe;n^4HoYxL{$W+O;6N zE<3-lUQ9&>a9FPDkwH~zuI>tbUc{o>jfZ3HDmsUI&iXiIFn8u+1t@n$UaVL-*+#Sb zyNRBIIk`W0QGJe98q~gX^M?9yhp}`&aoJgOsOt5PZ^UhJi(2}wcsdNmsX5n$C?uz^ zI{nEWh=ZbfsSgAI4q5pSbt7o*{v?X&v9 zm^^|bX79X41eD8%hXw+ZuCYdLKq{*`aX+}W8x>J$qNuI=VslPBDxwcd7mm};SPHl+ zrU3hgJ0#A3Jbog9zx>O8`t;A z@pnD>`nyNJef09~&wBC954Z21^-~8=U*5g=vAp5Uv)d2vez@^etZ(nH`q25K-~Fza zUVZoIp$y#Le|dKM?CING9jwFW!9l`0>l@*H2!&y8ULoX359ARh)Xo5F5(1kkTuUdHR=|Uu2Et z3jJVB1{-8alZoTk;gHCR23$t^CgIF>Z~Cn^uQ!g2?cJH<^M)4bHo0oDz;BHBol8$1 zNub|n|0c%*f7|21I+Qt531X8t^A0|6oD0d}`%<`hQ7ZbhwD)Z{O(F{zOJ-w8vbc$^ zE82HE%nh3JU?3Na^3k`!>Ni30gdcU1$729$l0tBkhg#w>xoAMyREf=d)h`K6 zE&`XyETK&q=WZ}gyi4LO2suwnjZwRs;7qDX#4JQ4(na*O2XJc}g;`DC3Q$tF9wySMxE2|_E3Z@Z``!&kvQyM2Qgd@;w9it0%8 z4KCt8c^L#Jvj~VoIh!Ymqx%d74Y)o=kiL@x*#dj9 zNRfV{)vMq_5b*xncrne>TE!II(?c_&4FuDnwZ+A!>fcIoB|oW-p0R0~_Rq$AlH$PpqKJj@Uvr!5}F8F7`%}c(?w8O^R82(v=xZF%{Mnv5NS%BiMmT zcU8iJwl=tk^ZbwTNLU@goS?*lw3kKXKa<=<5Et6>;hBe6K3!%b!>g4#CcN;R_$tS_ zczEdNe-xYSg6{XY))(p1^Yxh|c32pe<2m4P28n+A>fD4)-_=WICV-EuYT>t>(5|F* zg*|;^b%(bG^a(M80^}(CmOLikV8iQ=Yos1Rv?SdTY!VOc zbVI-39T}b9jS;iP*!kfPIZ{ADpA`#*YyI1c(<^$aHU-m+Kz zFbev>7n~5tf%=no(19F^>}LyNjkp5`JCM5szPs7yYMj1D!N3PVo;dVXb=asNro9j0 z-YQX#wufT@ny2FCi>_snA5YEqpbX3PuA3qP4-WmnPAux zq}9yEjs=LV;p;6Qkwz94dAB*Dc4ThM6Xz2)G7(w79PA?ue0DxPoBZa(>qBZ^tjlap zREAId>-HwD;|d+@eteuolgVcjzwAJ^z}EF``d>PieA{TKA4C+NFK-DC*x_8YW7E@5 z9Jygb0$H*pM9@_L#g^sk@wzxo2jzo_{Jg10{p(mCLQ0l@qb+K{9!q4u+(KP#^nd-c7$ELOQhHnrTdbzq;BL{4Uy5aY5zuAZN3u)k61e-IwmGAP&3?+J^FVsV z`5E6t*O2zbCfT|BOxLx1elm%+6RX`k8y!K$WLk|X-Z}NF&wt5?7?az{In=O_ug|oR z(&kR_oGMK~vDwK!T%-v6uIpb9sWbqhmv5Ie01&*?={DiOb?3OntbY2VJ`LZ?Yu+bpn@_yOpj(R>0W!{!6Hk_Gn1CA()iuRW7uifYPgO@GgFW9S z$Ewr4aYE zejdbur@=pca0Eob6+`m%(+`Jk4AD8L%h8=y3Vu%uWHc?#*BB4_+xUt0`RecsH~vlH ziH;nK>sdvcm4d-u@R~~G(Ur`e^%L+Q;j7;!A+bciI1OfUm7G389_^<;FzihRd*+}^ z_vy!xea%;^Gu+(+!Tn?rm6Kt17Inuyn^OwHgFaL?=fmPQCaEoB2)do~6s8i>(i z43ZuuGcoH!boAAm+Sa%9InhsdY&kgQh4yN8{j<7}*IUixAL8T5>*^;wk$%%0o(EZO zUZmZ4G(MaUX~=%@fX{8NtBtW0cFiMvjF~2NBjNOg<|p`bZSK6mFFs~3WPpJ)&$v)v z?BFM*MwABt{1z}jN*JVrujR>?^hogMb7b7VFe`Q28@AUWARSNrORnTeFAP?Gc-hBT zPiFJQMPpJpS2ZI=?LfF-I7_ZoQ+mqXWM2F3qc;1W{uqXnjtN>3iydF2l*q3oOoe8*@}{m{YS`v>$n&iO%wM|6(XKKt&X#-$k% zdMeGXc78!%kM;HZJx<17etG(E-0-JEzznNX*NfweZt#&nO~@yx;3*BpsCGv;AujIr z)YI9z5x(BNgQ7a(M_>EIi58meIAAM8!QoT67X7D|U0pI&>oh*_R#8!5NS|}juU3WA zYbP;0yhG~M+`SM29H_E7O$I%G@{xlyc6+3wmkLhOaBhzVbN+{l z_3g{WM_a~Bel;GU8jBAVMg2m=^sWE`wikotg%xyvpK+n?&fPx;HLdJxfd-=$q)A13 za!P$w=JI&5IRi8$&&2q=PD`G&*!2ML5A|KA^>6<1m;dEIefn=d`~LLlN3WjNRlmP~_T}l#r?+pOJ+3GF z`0mq-$B&;jNV|8gzVL!fR1UB9vi=xmOHk`x3K)djqvSfpG7) zxn!w7^wsa;^jo)I8W?XuqprQ*MvV$dIVJ^|t{W^DB$Bbf8o34`H?h~NP2wp!NJ7A^%0@$aN3Q{GO-xMe1+Nw* z4cz*(D0_!5E*o!9vc3n;ncD5! zvY^-1w>b5s5FL+cuir4qA{o8Kyva0pUh%cgrm_~SXV>g7P<|(Q`U_1-swci{T%B^- zG)a%!_0N9T7ab%612Wt;G1fWxvn_)yGWT09sO4{dpU0B|7TCzr(*h}pNMr@eQMwYCmC2E*{f!|Hn1{j6kSXQ{Vr%EZ-6+1v&*(($nqJ}z9ydUZ+>9+3D#o7t0271f2fUS46w5U z>Av5)G3YG*Rw-P**wWi{l;8ErHZL9MR`={G{#Y~qL4!?1EGPsPA89`Q0!{#t^nxb( z&1$bLFYX!4VWy{WXP4^S_j_RhK~ew^6e0-=gt0(`*=f9q8kJX(&2O?89f=~F5wlA2 z!e_7q?j+b5e#C4vn(*sn6KzRn@j1GOI=tyAAFr+nKKhGhHo!u%w=+pfANrK=vOPAr z7%kpq2i%9v9Qu7@pyrqZKl-+@C9=dIH=_E)cmV`pvh1FxiuW2Y0@`cLs!Jm1(Wckq zpX9FVV2hsNmhdhSTVEo%g*OnJXu%DoUoOB17&nZ&Z8ij9jsbl^!a3{1wpBZ<$5uWZl# zPic|Qj<2rSHF$liOZD}$6->4nKoF71*0No(Pu#rvZJWRlFFtN^q{(~}n&RLlDA6;y z1RKa`%TJSq#REr+e?wy9$I)fJnW3;raN-}^w>Ggk;UmfN#)OI8@BBi1-GXLy^;Z_G z>VKlTyecEqkI;+f;bKoLZUH2LS8k(<1D))~Ai67NInK$}<`N4X#hzFt|A*K1im-&0 z{d9|Mm~=Fm51`o1Z!8p=cx{53PTY+OQk!(y>n4Dhh?{=rp3l)kgv|Eols?-?!&Jol z>9lIlr@v%V_1>tG{C7?lHo%a_*umfFJCj9Zz-1ynmZnqkS5u!Gt~JsR#0R&jZ$AVj z4!G8LmEUc0jo9D^%%%v<$yvOMR`QvxmM)V?oMgZ0k@63&_^EEU^Fz9l2M05pY(c)% zTW7k%NXsty5Tos|$V$J{-;A|3-R|{wmu>Umc&*Z9pZNj0wn$MwKlyF45BV_FWG%qJpD<}C(kL4 zI+9tm#7A<;X9F5u^{F9UwP~h2e0lb9-1Fv^Vnp}V4ex0;oV=%eqI{b{6Uf16Qfz4`84(HXQ^01#7UenEiw0jV7K_EI!f|81@vqg{BQg}Ni zlllgmo{(F#+l*AXMDet|^0WcJm^%9OeeCtb7PgDy;4Q=J2LKVA59<|<&-D{C^u>0j zKKY$ED6R~!ww>#{=r#YEJOa^4quW@bo9M39`i#^Db|Q~gxvPy1#!0W((+dIB+h7HoQQD>AAOt=Ye})e2y(eWp`mqiYitX3iK=yvzk>Xzcpr1K~pJ zVAybsoihfNlg@@BK;BNa{rO3v^$UJmb~;D~i}S%@YjnvEY@9X*6*qB#F8<%`u-I%p z^Jr6I8$2qczxhcu_H#-}&U^s*M7y{3n`JFCj1Eb2z(< zhnTLOcy1gm57zfljeeINPHYut<2n1KV|3U!qMx8wEaT6K`cC|rcQHQMW&HJ%J<-Mb zi)kSV-C}-Z!xeoemlHSly4v7-^8i2ensWT~*AT4n(`8R=A~@0JiDHt|!+TJ*DY)wP zGY`wnsFcqpkMx1WEtYN$hP)PAyHBE3p~vD0`|PcAwVgk8n@kqZ`wr$%ze9kHjssfuGcNX4}SV4`}^`X+9XY_6qROsF<-ko^urIJWtdJuB#b`jQt^rR(fVzm9gff*4_}NQS&WJi{!0 zuLLcXJFNFRZ=XH0ORAz2%nSsnUfGs$L2_0j80qmF;( z7*AU$JPBvN`B>KarXJ))*-(ksU4z^`-Tp4-oLu~-F*DHr2?EOYYvd&?*K){9V`0ZbT6jil!mc{kx)(pd7{Jp*R) z`P_&@ve=}i)^RPc_f2BmH~AYq4YC_F3ufK0IB2HQAX>*j2RaURvLqnUv0H)5gbWM@ z{@|y_{6yuO7P6M0ZlI*R;_NpZn#2z@lSda!q(>jCGJJO?i49KSf01ep1UwO7^k$HY zksxgVY@no_o#G}D>$Gkq*rX#;n=neR?5?3k$$#*4Ab9D|k^Bwl$TZojSA7eU4M^SF z(;@hIRb`1d`~rAn(p?k3={EXI;FyivB#-js@^S1IAR2bk07*naR5!Q@xIrYd zH5jI>2{9RTG!!`Q`zd?nE z$}K#m&Ev1+3PVsDC`VrY;;A(lzpIW8y?@=eVIWKiF}tN3I+;FVqltt}C&Jigm(v}4 z_4;@Q9yumy@CAC66wV(Eau@%DKA$kbWx&I}OrQTRtAEvrn{H#C3#saM{t|SLPcm{T{m@ zqHJw3nZ0h|pt7@}qY1dg(1asq$A?J{h{X3MbT}LRWM63Zdr{S^{bWQlDNPJRgLZ6? z9?$)VuaHfl%TW{-e-5wRPRD!gd<1O5NQ|>_tZpkg;bi^XEQ+15G5v?dCicJ=(j{J_ z^Z2w_Bd&`O^hMDn0P?HiZ55-_WV20JBwZdk?oI52DLzDVwY1zM+;^Kw4wT(u7mrIlrm)mA=bhC-L2RV=d*{xl=1S)~rG~ua28x_ewF3|MeHq;Rr zdsS7bAfPwpL;N3)blzr~YGfxd+F#Un)BTUXV0TpoH(umWYf6rc#(m(jw$O1J$ zRl`X@vqyc6rGWS#zx1l#qYeD)p3%)_a=FP_+&l|Yr;o@c^+o-|>wf=vF)kR#cVa3Z zM!s4*J90WPGc%nIqNt1{8_c`o)`iz2IW7_+jLlq{67%o`eJy! zi-l(T5l5;dW`(Ev%iz7uCR%KMVk1{yHu=SyQu)L%(H~2P#Ci}|7cu#Y$AFAQ$ zZw84UjedIVyqqH1qp8iS>~a35%v)44zoFKTAw^8+7IX3X@&UvzS}HG&9C@n62HA7x zOnMsyy4ID~i>Q(Gy63lKIivQ8AQ;ioC0J-pKFDeuBR*$``X;!#roYiR6m1?f@T>lb zuL}8!J|h&}f@IUb;jTYKTlN#pkgJ>WYcsm&A0Ba5-zV-yb~N$5#nr?U}Tg?2MRVmUPpYDj~R7dE%WK{*BgO@@p6^CCV$?ED$Y>whrOzY|j@ z!f}zTC+EGgACG9&yvjsQH~ORcUNp?^*uww=cm#2H?lZj!LvgT}=2wTdc?a*a^_tS# zz>zcYcFp?TZ^=A_7Ng{TzScSlwY8N9`GQnJ=Zx#4Sn1y!oiqXSu;;EkV+;1i# zM(79SpZW>oKo!KIEi!dk`|=9odyNo$X ze&A}+-2|5`&mO$PL#N;SCj>bn{F-Ou7GIfWpI0nrY^--A=L2Kp8FIJcTL z>(EO6>eRk-`4M~>qwg@Ce!?b+E)ETcyspSsXgFbm-7`k?Lu`+M{Q-jd$|NPZ7-}ZLS-Vxk|0%pcO5S;0pouTk(EK z9vx9rQMY_tNJj4fS8(b=H-=QfM7IO!Yk&uSQkBi^2Jt~TSt5`OyQJT9qsze`+UTks zY56+!a`52^p0XXgt3y;(y~Eh<9jzDMrt`r*ATOIr_Ua#2v_8NNsBOlFrZ73{iOa=u z)NIE0(vI8+FEm4=&L76W7xc};$Pvht+(@Y~Hrcy?qGtGmZw?3^+2~7jnV4X2RZ|QO zmPw@R%Q#RFG{PS4)mxdGE37TZmwpdT5AzvEgA*qdCyx&Alow<~=!1Sj2Q|TuAa))r z1iD=PAVgaC0KAOAY4&_5#LR3dAlmEa()9ew`2ly{PFef*4j`jg93A;~Z}Nn(J~^W5 zyYK#XZT`R?lF5JLkA(gYo;IHMq%R5Aj06e$>IF~O+d20&c_+FmUtE2-!G-I(4@1N z>$Fq5$%i85cJ75Uj|fXUB;&A2qw%#)DZYKP@m|9jl{y!{J1WtY{FPu7>B-6>pv?G# zu(W|w$#$@+zD4C;xqK3r>T-bdq%OYqir}7*Imr)yOeW-dO>b9Nd!^bS35&JJz!CXrV?^U-AAWa zGKbbAf+W5~F(o6Q(i)$gc-1lBH$55G+XeM1vdPSAT2k3KuTH_US8nw!5jME7P=-4r z&+0B2=t(P!`z6RH)j5mQ`k^!~Z3jz?NnclR>J1iJ+Q1mdrPJ62ZaS(^+t_xl}v}$3hEvCSrmYoY;~0 znnc_|&on`2J$c$$vaaRhWD$(}7Zcu13&3pP^bzz?v)OVo+MoeWd;pMNZ8Do)JRuPL z5NyYAG;G0A2hg4BC+FlJ=gAFYVKuR4>qoBy+>TF4m_bIKWdVy^42I}`l<-*tI)n4* zsBQA^PDi^rd92B06f*;*8(6jQl#Nz+9r*|~O;6cF6GLf4EQwHd%-lB-^{P`dNCp^z z0<(oad!hk2lM5!3yav!w>?v-FW%**foF^ekK01O+wz=vy8IWi6>szb&rNLX*!QsOk z8t4zpRk0n9%b?{0Oc2nJ}N(0Ygq3IBp|DtY$M7n$yL@u_uT(=&e3`*c>PM z5kUjj#Uw;!_e&V?1$d&JpIYoChb6Z$KnBrKt=eb9_LsM+@TG$~36X4lH z)#zxBjt+c_Bf-M+Ca`-42ALjSfLMO1bs{j;;vxz=_$PTyxDJ5I-K_mA04 zFx@t(EHf~{LL8f5^7OO|leM^jmhD1BANmaUJcBP5rh~;MKaY@%^@pPwWBO^fZ6YP` z%_w*RYn_JqT7Vhk)-Xc5cT-&Nmxh6cD=wB@N z1FXj zU$mGewvsaQ>P;-Ezc(gCCz~M$(&9UwEU0&?)#7+kJ_{ro$kq7h^BgMO%d>g;o)F5f zqqIQ~LDr9Ux&;Dn60tzg6R_1tCfzsL$%2|t#D`5hq_lj_g3e?fq5T%g@;`Z&%+$mY z>exNRVj+L=BwNsrp9e@kY~qcb@(p?=Z7Ld=P2U&J1zTo;y-dzwa1l3>W^DQ{V%$~Z5_gJWQxj;k( zx2IIPAe30spSFQ1oGr#xzz2^H=sklM1N2g{{s^^0%&ycgHjY<5mn@c7$yXqV#!kv7 zYE;~uJ}pRyHEpQd#vO|YT@Gk6&uZ2mT@%gj9fXlS+Q9;Ye#m}?m-R%71>z*Z_DN=n zoQ)c?lo%d@a7Z(4wp3of1$7>YdUwRi?kbEd_8i<2i-i(M!D$_>^(E;fRx z4?vus!!bIdXA+5#HWkiK=GSZ-G4k<>7q>UA4xiudE;kdB^0Tfp$b!-~wxljLTm5Vl zv7H-Z(JMIBo3G{q6PhO!k;GOzjlO6TA&%b3Zbm@IH8n}P{wK>9W)!Erh>wN({GN6% z)^{Z*0@y2uF_285kBTmbX|}Q{epO$@D+FXe8|o?8RU<1;^L>=2U5NSS@|HTW+W@g^4C-MBqTp` zC1S2zpsH*yxW;7?FuKWbhcPtYxdqvFuSX!KV%ixe=_AZl zh;N~jZ>=xqSH~nfDQ1kWpagda#6c4!#w^vN>%Gw^R}?R~VP;h zD)6P7vyp5zygS9cyo(HN_I{FqYLy=K5xOVgf?oHgCB3{` zFP^G()CcY+d0laW+XqiR?ATmji+9PSxcgY=in{b;d`|Bc@oh3;+;|<|94DIfI_jAK zmV=;|Q=*|cBu`tHdBs*=ViLVCCkhn*2XOYvY2vp0$y1@lm*{{`+sKKuwO5Pj1T#9& zgQDxY?`w_$`9bMsbjz))<(1pU8T`e(#AIv3!TStEeh`hCX_X!!?e|@ipL~KCLtI{x zpGDB-Z33&mACZe9(xb7jkBsv4)BVkZR87A(eR`7_e*-r^535ZmLd5cSaTrwdXpu61 z3U9hiBHf53IqrPG+yvettK>hK1(YX?F*V0~>$cvYk-m*ELdp4Fry#yzBMa$ZuUzcz zO(1MIPi^&u-t^bK{=wjLbkB zmCFZ9ef{YE*^Tb43SxWzx}ztVJ$G>`H6F`SI(N4dIkP}sO}>WojdS#893jLgjqz-$ z+W-lG>pQ}JairM)K2%w-uH@)|9*hHVK|70g;JZFwzOf~@inpt<(oW+ZuesImt;xoY z6{^t}nA6SbnTK&FP_B)ousY?W_Rtv8MrbatYV|?@DRy84xexccMEAMGrS?Nm*@-jc zF$mh%;A@2%f_4=Qc2o=nF@aAPLw8Wa3Ag`3!G%cSAnn$}xt5`pa@T8gD@5|eN)Obl zy)`3ovvq)Ecr3d9v8D%-c-y}s;Am2~{H!k|4j8b2DnJ?Hx6stNVzivf?sV1vkuHeO6pW{S?_g;Dz4#uyuPl z&h=m?nRKlnLVRJXoCbfCH9jTfkR~TJGi|0<3etN`d4!Fl3q^-wG*pDvOC4@b-o-*Kq@&| z!r!je+jlAJP4=MMuq)9-5XX8&jX9eqA`RsKE^~ZU9SK>l%iIcmMlfgPkxjTaIO&y$ zwJAbvG0zy(D}Y*1GjNeCou_j00F!_mf`J8g3w^Khi*JG{5jGLHr!2cKDZA{^Kx#W) z8Czw#gUlAKwjrlxda;qJ!Ffflg8`1U$AQL zH*lLs*rdgMK=cuxcNRL}_!zc5 z{SXY;O+MJoPb!LG~UKa4` zq$9Sc`{HZA<3|6(y#z8^3>ENI5=Zq(cP22p<5nlvfXM)90~m{LI<{&WsBY0~+7%R= zbnI?6StAqK7C|lOdX2Q-Anvun!41#wWzU&Fa2Ln~NeQ&zpB+k|A3e=M49L$wCV50H z=14J?O}h2jcR2h;^3&vQp~MrqCdqs1_8<$VLtr#f6amvWHa6hwo`ut1-_-q*+T>Eg zKEHVwI52y5auL0=+-1ww!Ejf8(e{TWBvX`!_ao#Hfh#xNLA2l z$8Sx(m_#Fs5}>%B?`+Uuf+$nq7Y+l1z9dRIWqv?%J>?yN5_^@rp4q_co38jSQ~aU( z1}z58onnXF`^~fB1mOfzd?C*!h?_h%K#WHfYr>!D#em2+dpc>L7L%DyCtVby7;~#k z24msRDj(gyuA0pqI;$;Y>Yeb~HN)!_!3{j5SY6cK=8cbStriou$kH8yT{!H7rF(-c z6DhU#R1fDum-i!nLSjiS4Lixuq$magl4{Ek~8q>@-Bb8 z-9$VZCAE@Oiy76MEV`VoBC)#-xrNi@mAcCe4fHmljdqjzvup9yQ>i9UHmMQ1;Fu)s zNpl0zVpTRX+v|otBhojSD%Nd6H~hu==_N3HJq&1?LW|kwmGOKsv_V9(6yxC9#8tQO zYa-4B02o^HE3tx6vJPa+v4P*D_M3?8`eZ7T^1|JkMBZQ+XNflE%>cM_4GUP z96O7}c?RqC&rO=p9qfExo7?1M{GeOgQ(W}msb!NTd_td?jaUp04_pxdWdA9{H-O~X z?IrwnIX4kDQlmRu!-uZyze+*a;3pi(q=N8NXhNGlBDb>>kHo*+@QQ2a)%{h`f9uVr zM-=EQ!@uakPfh~OHVrW13BdlI1<4>@ztLh=8*dH|g_7{H!}HqV!(YU8kbSqe&`+N6 zT1_&Uj@=u*G!%|*=0g<~Te_Fb3Tcr#+a@P6@nnFy#SHqMQk%f2@fJp!tSDcJaK1_h zCRNBrjLKeu-5|1Svdve6GF&@zuUjVErw=xgjW;PfG<_a>qwD&9=8w<$HXCBUl!rtL z7MCmAgtr)Fn@F%W_>db|Bqe_fs5Px6yAM!uNO!_XS3QNDIMYo!=`}X-N+#Nw8Damu z4aH9g$P><@*f3>rGdlgliHiWzYp+zd$a&MEqK#+ea>1%hUILH4$TbH+;Hc=7tosPhF=Uj*=4w;r^|BOL^z_4Y*jvhXX>;O3xD0)VpXxX z-+AW;$Ikc%-TYWRuQX&4`dRUYozipY#QVF?{c?z0hYr%siIvGDc-Sfj6-%mJT=m8i zIWyams}(~6w%C9FL!dn&D>vMeg_WN^b^S&tBce9!B;R!}NO1!Ic_$k-UfeD+%^ukb z1dEYv&hxVx#nQc5VNM2r3(m{c`BA>Lg;sAAD4tvBp4crsG^wUZk}1)$^gsb z`wh0cUhmqCP*j&(*;MwGPLpdoEiTR4TltwmlFV{8xkKXX4L!&^izDherg~mwniwX3PgD8F-q^wq$vPXk^E77pzCNzF1h%&&StPZM!Oxpy z8GL*UPnvfv_{w|l?mUGF-xeLK$<84!L`<)t+5P>T zhkN~zH@L=XQINhGuf!#N_(>rP)XrI%K8TD6QgEIQyT_nDC#Mz;r(^Q9coJ5&mCF`O zDiaH*gy6zWH5Da0njq&1q79%`Zh%KJ`V#RGU+8E9c3fCoW{chMNN0KC@}@4UE_PJY zI5?(~Np!G~#T>Q^ll~*|UK6SHd4he1em}}<54$IWGv;J`@{`5~-M8TKr2v+XFLu+V z+(RR8FFNCjT`z8lb@bdkL~_3Rp>XNj*iiQ%B#jx0Tt0Kl?@k|4wP@~%yYO6cSbVKK zd#+!P>skj7PjWg>W|{z79=*jsv3g_Q;L3AJ#T-qvvcQgbgue@MJ9Fx%Oz3m=JiOvU zuBdvt$iF)&-W_OZ?5&uPCiOWOV)VS&hVmzZ>7|&!6szSSao8s^s?7$`ql?wEP9H~yKsjfx0~)BXZa0_H;yL?78+dA?EA`ks^XTG%Vp z@Hslo+Pcx--c&c8S=u?eL$NwW;l}1-G9NUy0u-w@voZg49TX8bod>`?037+&^q{(U zAvTyZvY{%!!9$jkz^mma^>dy7QYeYi76Z2(#vp@xjslPr7ii;dAD_2>D-(eC5W3g z?SHv@o$)lUcV}KFoVTy}Zm!0@mq%B(pPrg6qeE2b&1ZCwy{FR{I&>fTx3PbDetAkX zFMjZKKZ|g^&1a?_FM9|hpRW&m{Pf8``H%mz|Kz{<>%acZ{}H`Ei=z(XpT*-pOIW{7 zm5KLDbL3@FHkaxX=*>BeXJN-)`RjJW{qHY; z80aLz$<3i3h+v=Hgmz8Iv18Z!U^sMf20TGg`5cquh(b?SVzC$?hesd<$=6(ozs|7b zBs^Limb$lU3Of&RGO1$c6N-XPDEH*6M0W1EKA;Cve+X)@5it<(s}*h}pL=Ks;%TZ) zx7ZV?L+*~N)zWO&2P}Xq=<6ImDVRDdJ-+1jX*AH)Lqkv{TF$U1|+;H(E$9dP-0^54cvJvD#(v6esPssHoM?dSjT^W$g# z{Mnbg-`CUJN&;yur}+@X`n@MVG&->(gzO-43; z#!;(*_ai1_rpX|y+K94byMc#+I?w~kl z0^^zAm6d3PN3@m97W4**0CHW~Wma3e1eD<@Kxxo4nxgIF1a7T#LHk(+B(#a2RwM$@ z%&Nl;Jfka5V=`9KCK;L0HvrRY&4e@B#P1rAw9_|cFwNt}1y5v4ey^T|a7nh3P7P+z zq*gY-t$>9C1?WrW#~OguF5c6L;ktpF0gTm!-d}=Vf#HJ;SF%a1o|7t*)O9y`GJ#{V zGy>8aM6LeXa3OqMl7l73Nj3wi>;`3XgxyvuQlw8CM4idX z?wt1yqsF@LuR-0eWFWcikv8g<31HB#nqYm9JiNb2T6@%hh+^)@a`@>@;4iToKF}Io z(G$;@6v?{U_C#V+(yJAhDX6}BEdP~^NLKc+L54)}_)SjhkFG`=ZEwH`R$L`l24`p+ zsL5m9^`wFLRjco-f$quMs2_bREBFbs>2P4DHzpsu8LZK$oxy@y>G*7pq*ndh zd=OOa;F3J)ucSxi8Va&^HSo9tXEdZNO$^sqhVPJTLAr!bkkp}xK?odu2!){Cjmc?b zf#^*MAxn&N4$*+?qz4Pn{*%yX8YXine0fSRHN$`A$R0` z9}6%ICee+(g71NI3G9B8@>XJDbC@>(drZb-{kbah=s$?dg5Qu(cd`b)noqAbNRz}< zzUl_S0`mQUOSGCz(sTr^=M#W|H5AtNlFa))xoVKN>d|M_}3@A2@;vEv9ri%_$=`Y zo7v~dcE9uo57seTK3UfUTaFIe@XP}yJbB+BB6y;!)y;NUCZQo08x4Lgmpb7Djv8rF z`$MMmJ>2S=T5yR?tfXy;cvsEh>)_(=*LWiH=0f2TwH67ZCL9nUL@AMUx(y!%Uf zXcirp?8to5tP`O2q>GKJJffm)bUODziYuFF^jz8g^c=oo)~;lrCyqbQc5UGW+%w;` z6`lcgk=x=Meq^#6P9_W_)u4N68&kAc%WOAuvx%sl_myuXM@SvL&>2M8A{7V^V7hBX zc|MNH3YNPcPkUza#v&i_Pda<`c{kx&xz*-}{hBcwIngaI6?Mc1V(LK^{q;#wigUmg zyz6EsX|SE*8E~{X?`U{^%?HOCN>#`s{pmWVF|1FM3olI7#Lsmn;1d|B~xo&9KQ|t=o+m0)xT# zUN|yfBrEBs#fW4&^kP7;)W^FmfYO5)6{6lJxt&=UJ(|vroOq`ac3X*E*$udQ=jw-e zRNdOXF8R!NaaY5uayRh^U#n9B4Be81r%_z;l5^3O#HsiiOp>i8I9=k3>2~cq`9U-~ ziu5ee84;^OGUIu&RXA!lZWBaNxaSd<&ein%(+9QDSMk6DTO~fy4jBW9*jPNUNyFd} zi^m(fHDlQ%>-?D*e*r`|Pk)04ABj$XuD{dM-ouuxpyFc2;U=z~4g{PX9t|dit@IHY zER5(b-MrsoN)vDMIib+2H8hrv>WkdhGJ2A??v)T8)#yO>&g(VcKDq3OLOQV6UhGQN zg@r_cY(Bc#mEz73)|?Xg?7`6V4y42G$~W{Vvyjrdp})6YGam>@>kWh=mS0QIWdY) zS1nM?hKI96I3Lj16$`uDsZh$@-rT-!)^jusu5_uLMB?T8PQO0uH+vYrVHTXnCnUp7 z4&7$9?~609Z{vS(1TZfau8CgI#!LMMJ04qb(hl2tPyVVG4e@Gm6}otYP5fwhRJY$z z%YvpJW?!<;$aw@1#5fd(y3h^ClPgW|JI3MyB1i?GSN9sT0y z53AOgRC91(6Y(-&SPqDUSNt(15I6E&Rw=b82jYDEO|Q*hkLKGfSP++vhkbuH*bjdy z4!A1COR>4wD_&_u=jnyd+E-(|SH)_L{_D8l`4bafWN><3Yfg#c56PFd>vyqQy!Dl| zPTPBiLJ_aHAWUh5#Bwkg=S-&A5*)GX5GhfGth04n*nvIa3!mzqoyoymmHsH#Ljv0W z9W|P5-y+Fus?ie8orIese^;qGbSL|bnskIOG(nojywIe2@T%SES4~zXJ_Vx*s@^j# zZV!Y>9sgUad^+Eh>{njQgnwT$t_c{q3z6>Dc_gy=FCWHkweY#zLzIKjd{jlF4}y)r zm?^$epnk=2!?37K`L?!hsK+&KsjLIq{axtgl#DgVFj~v_wq{59zpt%f&1Rb@gd& zp<}1a(VtZ@=?$w%Q0=!F;<^dvwPMoOLu8)3)~6FY#Fmqy9wc!s{Mcf(^{pp9v(Ck4 z51)mM=j18?^A&Oz!P>n@6%zfJ|H+zkgFn}0Wx)FI0eW_i?7Modp)DSa29{N9;x(S} zlRmng%&c4;=%y5rMFtjoMe}S3J1`%46MaTU6Y~CNw$++Xt8aF*`+Ao{XqPS7ag!He zBT!b1aAXZX@n&*bUt-`XW5Q|?aF1qdCnvQd?!rtHAd!MhPd^W~Xl=qV3Ut54Oj}Um zStRaPNYy>xr5XI^XMM?!C7WbolTTno5hA^LGcu;H^k8}vA08)I!)g2}4yu9Ltd21b zz3eQlCUXN3t-DXw;4_+mB^w#O?uS-)#diwfNp((z+EWhjVmWQ#Np$UmlEn=5TBg1J z;Yz>Lmc`+1kmy@aYiqJxefdKI1#bCA;#a(Lxh1X{-^J0vM!%QW68{XY>;;o!tXSFQ zW7E^Smuu|(Z%VZf7~rSppg&=%f{*Q*h1jcbCf?-tgn z&;GIX?>xCJ$J@He8ve#yUwwJ|&!66W`9Iyf^W?84z#oT~g@bJGdkM?4)EPfpxOwv; zQsE(99^QS8CE=*Xba3(#S#~dm;$PJCw418<&4{deL_eZav6Wa6!bGkfuYFsMKfiY= zgP)I=MpvpxO*iW%&{<=IjQ0U}x7b3kmb?sKpqC#J_ciKUz$<-9HU*ayLtCwW1Px?6<9JtYcAbJ>< z$)TK81uDn3uCc!Jqw_o2j_-l>t@9Mk8 z$U1!usl{6RrcG+2*}>Nh)aVBLLwC^ak>2h>2gy8JU;X71`mRp^>k+p!Mdwj_$_aiq zSGaH4YUXks;Y-D+F@FaLzb{4Wq(=Q_paw@JeAdO<#2*cdfh*S6>hGERyM{l+)rhdJ+6?dh674fGWnr}g3KVYM~ifBv2dvn!XH>jId5D{yJ~{2YF6SADXM zMA7#2a_MRn-CFhPqy535AJGGO@uaE%R;+upsP^6LmUeqM{Tja63DJZRqUQRj&Y%JZbtYru}B3 z@ggy?;=6EkI$UD$MnWOWBlEE%bXoy!g3t54ucg3Fpx(gZtOysOrpDcoIJ$0CG~>y! zH)G$;vwE~nYC&*FGQTW);y8{H9uid7FA5+f4gf-$Gy1jG3R2R1^x*0jai`VES07d4 zWdg|{64wNk=%1Z^Q;u$igSeN#+PNofHGwU1mh@YKvSKdBohaV%NUelD$Zt}vXOx7I zRlrV(m)Z~C7s2&@pNw$^(xA^Et+Guz%^GF)!=a<2w=-2zg&_d507y`1u+gn>Ji#fq z*kJA2PC*K~$!653Z^~X|tqB2kS4veoC3m(Xilz(T+W~4IzoTGOaWFIsTZ{b)(Eb(( zFZrPr9Z~d4g0dSO4<+-EeKAprhplpNGJi)d0;Tpg_P}lf*(FyQQUk$~YIbP}dQE2Z z3<<+`kT0NTi@IZCqa0fTly^%ADl z(rl}p=PV=_IjNeIeCge~b{lcPXyJ<5;iTU@_HZ!}TxbFg5Be|EgLg*=pd05_aM_XL z>5D-;XIJI)A<+${crHz#-|O^dyDbIf@wGs`cbfHFu9`NAZzw ztD?!Mz%N=B5rp3Y7dHx`_@tho=4`tCwmCy@m`e|ni{gfozfT=#%2T}^NJ_0H^s}c5Pi&mne2XLKE_PJd}grI+ zUauXjfLgTeL9i*KWrJ!#X>BbL#DN>k2~_l3x53Gz^rahpY!x&)42+Ipt1fAZY=YO| zt{WxmV6cq#>jSR(i*601pgj(N6=lfTQy#FztEubS!}8e>BX7u|)`>y~#p_ z@*(Uc0zGtezR|z9Fn`qVswP*0;%Zk|qxI!k&FmugnzcKnqqG|wY=_Shv)!*J{L?QR zkz8MHzKW*L*0*-)gQOd(OLA4%|Dw0S%f>|4^ohNzy#?w=e-3=;ZqTiY6qR?bs_ZUf@<^kU$qx3Q*21xw z8xv-cH{U3kn~n$E;5hZ`Jl{}Z^d?vF91qy8c6KL8wLRT9-3{j1qv&A=2716lFYJZ7 z$jo$+&wlJ!{Xz+TO~QS^vo!!db*tR};FeJ2#|b^Zlzh*o85rb?w6{JC5YFzxjAK~6 z7f|GN@-`F)Fsf}Z5iA|i)~`Bj75VH!4}pLF3m&laWAK&i%W8O(9jgb<-2@=|k(CqD zY|=$Ypr7r~aLksUs+s^aFm(b!@KJzR4&z&mZ>i=mgC8hU9%TmbASr)QFNDJzFOh0)nHjlCVuk7Z1!RO}DfhSBZ>% zuf_lEyj(;~PSP`>{_RO>#2pjF410u$A8bstP5Jru?Bem0wI!Ksp{M6TjNTHr#XOSL zOCV1_;Z=dk^`QSGX}^rVTxFAn%3tgO{_t;$FYHj5KbFwWr$_4>iw%R1EnUn&Pxx;t zSE=fCgI$OY*WU?ouaB|d%dxaQoYBT3be;_>JnE#0Vzm%`CrNSf{UPOid5`SS4_6Z*_xUUf0{XMQ_?7#!Gd*lSix%wScY^)X+OVGb z!}!q0V)Xon#RcJ4>=C8xJd5t)BRg`-cFdpsVDcD*iOwkRMy&8Td^AI)2A815~UtFYbR_>Sv*8k{|#x zwTX{iPF+a{L(*;{Oz^li>F zzJTq9j`JDyGhTU*sD9~YzOP^RcXs;Mw1uls^L z^V)s*B$9QMdwyU$64RGzR4?9C#lqkFp{edrj zet15;Q@)rWDKHUBPT*cVx){)jTS%-;8>`XJ|;cMbiuzd=BsY#D}Fd3LZVfp*LE$}h27W>-osg4=#D>p z+WQUDjiF%~U9#=lwHod5`@U0(at-y%e&iR9Zq|oJ7js8_M>F3xRbgD8ek}iCXEl4l zuUK5e@8uJ>Ak`!jIX8xEho~LPL?T)oT#!2Z8IM9Bz0Bu2MQO*_bs||UU9%Mr7No?- z8>i|h%k0D3;;0@ima({dQC@i1b)0`}(UVhIlF!No!p1c9!{r27vKhiSuTc7Ojx)MgG`;hG;jvOfDQwy1fFfWD~3 zR5Bcwb11(v{jtaj2`PXv&UoH<483|q1G-*ceG)s8eT=^PO`nN(JF@9qPXmG#P|MJhb+cdgE!rE7JHc0GH)LfN)Tkjh@w z6WjQXNW<3624h`1%x!<%i`r+YMU=Kew zj%|+M7E2XJl?zGG!2LAorcO0x_vscJ1eusje3?BccI`g0rK3$=4V>8r@W9I0fvl91 zdvNr(W6=dV`3v^7Qt25YR#x68SZ0UYk-S_HJM(@N=_p@hGoiYLSn&ew>zvNBq4-OO zPi!S`l}rRiG^RL_rd-FpSG`3B0w#8u9Xsk}%mIpH^Fhx~$w`T$&*?9l+Nj6r{%lMw z2gP>O^X-QY-Rh)~;UQK+MQvN?kNF%G`3yd^%D2YW()q?UPUPI8ER-?&b^A|I9=7 z=i&Q_=l8-By^8av92b?KbCIk+52kM>(hwsh-1=4(7j*RlWX+ zo5a1fwcuVm1GEC!#Vt;O-z863TLLmr)K%cs*I?@TV9*CyHEF-^_3vasWsNoDkOK#F zjlhb*)$10_sIBp?SSx#0+xe{S^+<;soAwxqr|<5C^PbnNF}tE0+aF$y9Gi3oG;~-m^aSd0J7M9FBs;L*)i*ho6kr z2e>`oy3fO#gV3m2v0VuAYj{20KF|8AvvoMCz~(~3mGHB^$Vgwh`n7n9ZTo(q1?D z@Oh5!Wy6Lq0{V~g{(o}&*+2U~|M8nQuRr>o-?@JN2Y>nDhc)uE-}$5K->s>Cboc!F zZ#@6O{a^j*e}R5~p)Oqb)?feN$N&8gZf~FbM~TGuLRe7PL{7;kUW2?G{hHABgOCZ< zn_SAMNGw?RnWBq!`ZRDOcbI7)Rj_xi>3OPC2$fP4gg@N3TXunF11hWjGfV|I^(!W^ zLiwYll%ku=TLLKoE!e0RYIsv{`Ed1n!TNFKT1~JWr1kDHNG?E6h=audnHLZQQ98zz zuu4!Fke_!AbqsLd1*(+n(Qr@MyPwg{s9QxWsa%_MngUXkniWYDq%N7=uFez&ppd?o zSftwP8*tR~@=(C)Js-8cYwsxflH&DK!m_eP5MZt+s|u^%!&Zx5_wI=M^NyBo9{9lG zC@1#9BoGrr=gi(O@7Bz^Y#Q=O|rHqk*rLw@XC1-z^DcD^)p` zmC4X-z~Ap`<-f8o&jY)`M-Jx*5Lir*>7ee;@m-lw!GeK2d{s6{X6N!r{xvCW{8ELz zpQmy;4CM_z3K|_#Gp9ywdr}|~tP+j_{Kz+>Ja|W7#_sU3YV~v5s<+Clf2(>qyMP;v z)env+l+VhF#V~Yjpjbd!A^=T-VaQbOb&Am{_9O~T*G8qHZ7@YpUbZB{&3!ww$>yWe z9qttwkI0_mWlVI!;s0(BJs0d6l%Z9}$B|cGlh?UNhJ48>nP`axgHwqO!EXiomhld} zVA%h`%<%vKKmbWZK~zL8x`Xl1Z%O*AX9>ULhoFqZK8ffG>L^ghgG-wx16nn>!A5F2 z-0Gsj`akbk6?kE^eh%;IJdD3e$~hj#vU_i@WDXgLjDr*Bx2PcoaAw-8?eX4#3GVP_ z5n5TAes`o^?B5ZTgMbXj*-eNp0;3X$C2LE7R(3RrRwi1J422B@ z8(htHtxv*V*>K(ol3sR4>Qt}$!sZFW=5XnfXK)4o`Uz4t$`el6{n?$> zH>jFU_p2|#CIdybDJ*t1IbPsbLi^Aw`po`Kz9qgc@>GxPOETQQ*`@e1fvTwkhaQfs zu>-*)Ky@vCqagHluvgdQB3Te+0!ZEt48HWAa)ZT}t3z+LP=)WwocV z?1|*bf$h*~0X#kGS!9Zq`uF1`VHpq=$QqdeKUmqx`7&bGZy-)W`)k01_7*n`?Lyk!R< z+r*zp@(79~CU>d>I4Xm_HmryrW*A~alR#hZE{UG=E6M(Ppfk~PzJW}$r%SQ-An?Q0 zBu@#a7-f+knK$7B5tGCCO+mzz;-l$a&!T5{As;fJiSA^?uAL3yd&Vx!ZqNb+b`OiqN+LrMQ=+oXII#LDrgd*A_U@lU!VsfPZ2L~m3|c5`w& zCR2a9>9a*bTfEt>_nj6JZ#^IiX_bjVf7!ZZs89C)$#ER9ev{6N+kqb;s@o3V{+Rr+ zI3XMU@I`QMVN>}33SS6YWU_d~PHqb^I|fm|9n~FgU|IilBcbj1aj{?}77GUt!eTFK zwEH=kH4e}}zu7gPh38ZwnD3v3JDEYj+Oflrv5HP6^qQy*XNyhPMg|7Sp}F8v+wNH^Xzh;o5&Lv zWCL$I@d@y8LZUFj)PMh`^4j+dTqfo=F;Gb-BJc?oIw6taDR$$kjNg9(sFY^n&N7pc7 zYrQAg80ZK^a9-p@JvjE7r|!f*6WwM~*xkkA;`0_o*H$MogiZXEPN-CVl)OYwbj^-# z5x9InlmGo{5-gNi?oE>QJCV4={lz#5fF1S4F!A4E*J>c~{8PGWY^a~nB)f%v;@#~0 zrJYKjam{cz46C6=j16gPmlU&$uPEkdyWKRY7)~}$?@uuYAF_qW;?V`m~$RBA|Mz^&yuHez^a<_QGSaz-T)-jah1Vx^RE@VP8!&J+BQrx2XwArtYi9 zhXne4_GicKw?LvC40`Oy@&Q{Yxark7gOhR;TK;b)yA6aym*gHTZClcvI#A(-&$TM z{MhW|Lwp&clL0=jmTPQvi30>Q|3Wg?cBkR!@o>i06%nv5{uPH+)hWykI;u37CiHr%5*nZ>K+ z)PgzN5EsL#pfh@fU03i1&g9%!3khcDW1=xv_%GNDkDV-WiO;}d(S`cEYG$w-o2w@l zD>tyqSaf#2`v*7UsP08CLL4Y`s>QHi>RW{zkN;6J#g=COfbjVzWHM@gYhSSL|$5ybtV#o}q5|Hc+|P4?ejKe_$8fA`<{z5m0rZ_@RPzx}sAzI*=OZ{2@%`|PWS zyB1Skee~|tZLdAp;*w}|{ck2ue?6NKS)*xx!k6t7i<1jwjAt`}O}3L7HX=E!XmrA^ z*{_Xc@HCnwZ+)R|ed!**Ez+;a{&SH#(`?C74^ydrd49Q)qvERuWtGFTZuc*ncJz{N z1a^E(9fHR*Mf~ZidD3ZYy>bx)hC7`#2M0YH<0`k618dWt!&bKA3J zY_XailaUr-HDNVBoz~P&m5n(v5|N`zgH_14F^cQeZ*~(AjTscEa(}!0)=IP+ylX4? zBVzD%%^vi)wpfUW?e$}qG3aPg%{D~ki+IeS^m4O&lqP5Iqmiy>4*)HusPO|wA7U7- z({=XXJpp_MXLoBbyNmb6%;Zs&H3U-Rnmb4xn!`P{efS2YICO5Jc+A@ z{fEaZ`seK&Sh`)!Jpf=ppTApOwjWQsYL6brL+y_?AxjmiN^;m__{WGk)1EGfWS=0c zZokmovu?^8xDQ+lg4AJ8Ehe&X{quy|Sj`yLsVZJ2^r{y|u(Nj^Yt~0xzIyn)X^yw8 zWN!o3?LV*8FYa#ce$_0|%YvU@J$(0_7vKN!kN-mLv<;_!p$h@O_18c6&;Eyhy=8a* zaa#JlR6~GFz)1$9@orMWAee;cv5D53cQTxkgi7U5$!xNaXeEaQN*mx~D=$Z2_tVtwa^er{sas^hIt#qEk@oCn)Vv?i|=!<^@N2poNy z&~wCL^3=fnRsw-@8||_~sM5e@rGq6J95{FE51KSisa3r#pb!7Pk+D86=C>yc?3bjp z(^TMLAR{=!>{_=AxKhb*eZ2|R-jOpLMGoX8OFWsG(+B%{914>KE*7vR-0|0nMHH&- z9L-tns|vYs6S3jaM1oy*kEjXM$m8gt1_&l|HwaDv zlC7hk6|y>q>m^)N$N-G~YQe?%*foO8c0Cqwcaf1Z7{$j10P(KAV~YOEgwbWS<{d;` zzIW_jh;5)3{Z4F1r+dfC&8rAckB9&S9Ic1$Cy`{r%JHBLLTX4tA-(svf1Io&Ne-)e z?VuTRu)P5hRXL8lf_TNSp@eECN&YLiU$^zu*J+Nm(Up&y3ps=>}+R=&Cyd$eTu*EYhyK5`Sqajl;{ zTR^r%RFh&$0%Sa`%=`JvJ0V_Uk=S-qy=WCE6l?qr0mH3&#vOA<~d23E};p1M~JG92BezulT{ z>Pt`L-FHcIK{)!36m^tLhA*FS`UNX!bSyqH`YP=mlx zi{#Y>C-{&zt2up7n-n~JK4p@tE`9a8O96OpHRt&0X8-7p@ROZ^j~>F4YPs6!LDgm+ zvR~_7n}=q7ksweHA0=H3GWb>XHBogorZ2vo3(m@EDEXiKkPS%|^3*l{s}P=Gk<{71 zk*fv4{3+tjfFjt zWegvUg6-^LVbM}8BIWQf`Nm0ui)_gDdB<}8qNH9Euid9Zcuz4w z1LyhR?rTkBWN8Ztz<9augYMx!TsT+99-RSe3De*gcS^d}bO~rjWnV7v_O*XbCTWM7 ziHc34foAO@^iJdG7r25989UCZV|2j<+zVddsHyE#JblpFb2A;0Q&O~s+NGQ+h#uX* znoV$cFPWV+^Vg0C&BnEhbuLdQL7vY{Kr9TB{d9wFIA$(1+ch-0*|9>o48{)+_|0*# zo+J9x22)Km+*$BpXJL!(B-bu{kH>5KemmAJ3P>N0&er^JtZaH19TI{*;Wf;IXgXGT zKGB4m-Hir%id1ce2v8x^qOgE!L^)qy1}S-+eLk&?U)kIyR%$ICVSmoO39-IJ*_t_a zh5U~7HOrr~h0%X-WwV=X5?ze0j(kd%D?O`N%$iI4Zoi$-gRFM{v_s4C;Sv?_n=`HngOVYEWAe^1RxSYxURn?nr^3OanyZdV zj*ev%#E(_kX)cnl^q{8LvgBbta=Uav?!*^KAvnM?aRaA?q{A0aA8~*)jqTm`c0?YT zi7=sBDdVDvWqWgkrbW|7rz66Zz#5@uh|znTf3qNe-&INcC{hVyUF-$dNg@F z^pCR5uG^6x6j3(rC$tyaIB{JA#<_jb7J1*|xcWtj`KS8q2^t;y)JJ#lDj2(MJm@>b zgubn8@A-+Fw-BPH-!?FO${oP=&^wOy|8R}SeGkYQS=DuRn^50oD>UEp=`gzS<=&?) zw%8~G~^>kMEWLKO?n$eMempWj3_Nu4F1rRy0f%qsrta7$dPM{+{C;xS!k1Exv$>Q{F zCtegInCuWAEP-laOMQVAzfiDs<}WE=ke%qXU~IP9%W62a|3oGC>d&vw6L8$0Ye;wo2A+--GqgcesTp7qVUF zHJDwtg}6uhk$YeZ*zzXIgZ0;Rv%ZU+q!rE6I0FCXdHB%rna`Q__z-V9&B{*Ed*k|e ze|?u>%LoKU#Okl4KA6G^y~Mxs<-v+~;{n_hDc2BnlYww7`JWv*bu6Zmhp8pQa${0Ot?7D7u z>`o7CuKc#rgSU0Y&qJP{wy&Ue3CyEgtJgVnWwVX=mXeTP>Bj~_>``+9h! z*O;=&+R9XJc|+s+7v1+eip=k4Hx?+#rBGII$eDrnva2?14vchYJK-y-BeZ^my(&o7 zZ?yh89;u&bH|fhhhqv+h$;pkbCqAwo|LJr%uWlPtLnhzNw`YT++tii<#S?vpBfiV& zcoy$~fb{EgB=Q?x0qQ^gvidcTThLB-`?OFH-j8+gB^%PBwWVM3yI=>_8E2e=my^`0 zyOVe7V0ONTL1NxYph2Vn~sY~ z`Q3`ti|2jA1E2bKdlw6ei!|z@Ykf&JFq&AOx+>{h$?nm^8ksLv)~G4|uEW!7f~`!Y zj`(HotC(B4|EkqzUq%f;*eC!JaZx`9m=il{GJVVTd3}rVKxIN_0^0*IarXkJ|Eraq z8(enZZ;VoT0!MMHmthUy{?}`MKSSKF;PuAM!5-fprU%NXFCc5(X zCx)%uV}2DF`m8KHhsyBRCB5dZ;;nc)UFEuR{DElPk$o5-qFQ78Rm`b`;|8|~YeAT} zLEGxVsv_X%>-ydzk!S*?nkb&DBBsjsRip>huwMEjH_P2E^oh_<`;x2D_SP40x~mlX=Nlp*UuB;FVoA*)+H8donDL@HRnO~S8Ev0Y%!w=qUKPy_Yz@L7G(_vCOJ zzMQfE_7`vO@0z^5dM!XNdodgfiVC1^zR0@V-9EheJg)uG%~y9Xzxd@Je)`vb`qSkG zK>kg=z8;8vQxW(Vf%~)PumAYt@4WZFXXO5sgr;4t9gDc&@JuXDC{MuNfYv}}&O2vq zM?jL;RhcAW#|yN&zaUPcjVbXq6b9z%-Y$kuk}LY0GZq|C+yvghkqYOC`pXUEoJ}fu zXYP!RKDXk$Hl{AMDkyT49=+NQ#&G>4Yx1YTF7N|eLAXJGC8jrmr;=)tMFH5&vx_8w zuTw^b&SeaIWL!?L#CS{avg6XE=i4!am$80upWQ$W-i;+vgOh|Ulmf6-LF-Rav1I86 ztIQyyWMJTapmCP-x*5lnXHlviw!BAe_CQ+#-fjW7UuSUZ=pR#&$}}kS9L%ox)g)pF zNuV$u66Kss#%HS!QPHvtNf14=7SnUQVoeI#JU3`_3}w$RM_ zKmoQa9i9U#Lz-RBfc1kp%l7nR!TXMpHlXR4>IJO$#ZBU()wjY^x2*JUpdXx$k_)cE zPC9}&oWYN_ea(P1u&7K;hF(EuWjqS4>*oRTZnaFt*QCHP`Oh^*2?-+(3J-HuVcjb3 zT96z!395aI0n&vH%1jVw*)BFT$-T~h=+$mO30KE)d!|{cBf-JW7y#jmNtjwW4z2qo z0G0rOdIPPkPK85l#0klQkn5TEA#sK(qhI$bWstkRmU-*Z0Cc}egh0=Q;;|hbV|b;4xOUD8uGP`k=?^NkdFZ4E^2N6GFRV_zdJ>eP zpTLMvk<0bFmHokh{J2JL3&Qldw$Xp$-tU??gPaPU9grq0yIsfOyb11_s$vOfW&4UQ z!?AV@zArof!5BZ9;Ex9MfWS;Q&?ML-Pc;Qk3vs+p4@`gxR%F*FdIG!BYzo0Ta&7Ww zJLRH+#ScxQ_9!50M&L@<>po1A850CWF<`Ap?d;!$)^2SQlN$L>-$tL>C3p13Z}J|W z2LrjIyX07_66^-QU6O}wV%dtsOWB|gN8|P&GH6L5xdND-`e@lN@CjPu-N6fto80Sp zFl1qy_)#THgN;kHDSj)~;am$QP)szM@ED!(i~K#}t6zAKg)^x**x=E|GHv5u0b4+h~SjlKxMH*7lN79l$EPjF$v0Fq@2W*7IwQGyq`ZNL9 zb9|m1LJyq!b{qa-n24ZS)O?*WmCrbi-h`kfWc4M&z zXFrkOj^6h>oa0B&@`VAMknod0wE~d%I{cQrbOa_J%zsFv>HO?~LKJ{Uv&w|V z{Aspz@uS6szdG>pUmX!>!X-I~D(cyhB~fKJqGNe22GkEY8^?QoN9a@=Crx3j?D``{VM+qpfw!rT!^$uYY2S^|@_;}hQ09^T?s6WRTev|&!g zQS}`~#Vdm9fATT99(=i08vkW0+$L?0F43hr270w5B!K#jUg&opYBfq-n~^nmWr z_gVxy^U*t5qkCW44V%2u`f!zTO|Ws6Z>U;d^KCtr(|0fZn7>N=Cs#GK!LAd3&=DL1 zxbG6#UeiLJX}0=Z=5UuO;X|FoVnQPMcZ_jdt8itGuChL4WD7*%&h^!wv@a^!eZ2~P z?*)wyvuQQ(s^E*?pKnXa#H6oN(su(q7?Qd04OT~}Mvr3lCKYo%>BNq~hCsBMZ^YjS zkUd=jJ5oQ~G$x6LRTxc*lYpBIXfnKn(oUpl>F4~?{D#*CkTPbX&ydbs~A=uFO-0ILL_unC`&%sn*07x*Nw67?-guiVu|N&N`TWh$sL+& zHxEA04^t0l6#ef@+%<8WzQ;Irh|ka}-a0Lc0%ps*k-*fJMSAUkZ-;EWOb#uo5I?Px z?$IvsYf-3ndbLk6Nyz6bstwU>cko1xDg~P>Yg7y^Byf^Ux$P>{pM;BeDjDHR#LLwm zB;nFnxW0o=nI>@qs&Xag!qGV5^Z`#}fhImtvv$05m#tI~+_hie-nbK)lD#uw@8pGy zGdo?e13PmZ<5l+ zW?RVN^%o{E9FJ{b#~F_pe~u&MV11!yKI!gFh9EfDPVsWp$c_PXxe>C+nj|=?#0M8Gc&sLRSKl z4+@&daiM9{sCOP?uYRS1u@Bw7$=RE_n$0di`ERvdj46020e5yIRl31mvh!!T592M2e!jYuYZ4?M?&9|57honF|nx3iH+oL@i>{{TN9Nn25qcW zEY+^{cmm$YUJTo*3vr|(*@)?l3HZiC*^_2e+Ub5{As(X5u7(Ww$!Ka;#TO2@`Q}~8 z?8DVhXU7KofA_;5{@K6wY=+bm{@Z=`H?I-%ZVa6h+5;gRzS>HqOhyfRkWB%?8wQ3E+l35XZ361TY2 z^sbWYq(|eq0zL2XVAO1_&wj8IB#G`V7FnMOQCQWs;Tt($Ki#d=7S73MBNAPpC-%Ehb?@d!(*00d{IM$_$j{vu0-l zT&%V{Qjhpq&G=ni&Wnf$0XMc#mJFdQKjKrnvw6DjH!3C3 zEdoC^G^tJhw5F#E?lr5O#%jBxwfMfj8g^B?do?vup^?}G57zv7&QEAkTgqDy;K^W0 zN9HSveZtTG?9@W_J%=&X<^K(Uw!_Iw}1VoKRr3k5$c=!2gASh*Uht%x3Kj7p6p9f zD2T`g7T7n5k}w!RW$MWLtb(MZcdE=FCv64}j)=+7-sh+%$SGTct(%fP8JDA6JA&1u zLW4azVZwJu-OwNk)M^4paa=nREhQ~TTOTQv0IGyuLRtWqU2(w3DMN5ceBjL1{Z_x* zT`~nJAo8dHkMdHd=>a$yu>$s?bSB;c$g#GLW0IU!GW&J?s&94xZ~}oCooWTO`lQT` zhlxH0hy|YQaP2cA+wWtj^y)om3{R_c8{{^rS`(5hkAos*4U(VK|EXV3>n|JdR#3kop0F<%V;4Xd?WUCvK8>V}AY?EW-jh&t{V0e}z zn1SzjpbUBj9;H)!$5dFQ65Qz569eWY5~EY$ZO>5$i~>jPmk`0%s52W_qGI-Yych5( zZ;;SHa!7%q1kVCs*a$QYa+f?>dA`mH`y4}2e8w_tmH_H+u-0JmxV{W-8B&@i7dhp6G-Bf2%0h1xc&_IOeFVJa5H*?-3_<3 zX=0rqW=|!r<8zn-JWSJkp6nRWNS}#Ja-vPrZ*>}HFFW)x^Iw#5B~KyxS$~B=}(tq-=aOaJBuLMbkMU7Ofv{d`B4_}! zM25t*{`Z^YqGNJzjA`(QZ9PSgO_-+h!CfhK451{#27lBy*aE|@>P~k0fuAmQ3~2n) z7u&r1`%6CQB)lVbaKuiDOA~$@XiZ17<$h(^Y`CJYKF}IH*@@bRD9{3+ppjfDx4wHA zN9k8jXB$H=`UqIEG0`blvk{X)6SUpeRD1eSZ?nWE`$b_InoomDU2pj;-o` zlYW6+Ezd8LtH?us*_iBc^#;L6`p_<&%X^Au>rRh@bvqczHGQ5^O7s>024@q)=o?S@ z7hBHgJRfcHimaksdMg<<8ioS@DDgKtzhf!;&id0WRoLu`kCzjv@Th-2biCGwcgssR z&_y<@BoWDKG7Xx&BP|#v6QP$6E?Lqa$?N)-C?v;pefG7pl}diymkg6^k^qm#QMG@9 zR(!6>EhtMKY~-`ppaF>F>ebcf^+7f;Ng_cqV@9Cgff=<*_ElE0ZL$uz`j}qS)$!l4 zHw?%GZt5dC66$Sga2%oKCGA$D!xaqn`Yp*7Nz<8%k_Y-m2XrCnsuMfGvmtPL9DKH; zZwVeW>OPNK6)VzGyyBAk-Ys@xg(ldFGw`_{OyIDIY!db%= z9zUN&5`){VV2x(T@x1o7_^h%Lq)vL#*^4CZOLCh8hPG2*vU@kl&w1~$x^@yRffsI{ z*3Fr;gq=KMwq%}4{g{#6vhzmYCPLwfy6H>bS7i7%L53z#ZHgMrBzF0x^h2lN690y} zIQqThuw8`Ab5Dz7!Y}z{VuK@mYo_EX{V2h;*L3uRZt^W95o1VjMUyk3F`p8-P5L_3 zqD7Aos)W;2OmyG0i?ds`#lF^0J@yxl{cFcndOG`puhVC~ggEj-ABQu49MiH@()wb} z-r)uIZYO6uvNu{=1lE;*t~%LG-y}uF875lpi+MWgwUyfOr2pnN*s(Yp-SQJPFX2bG z=#Hd6n)mxQUD?hoeSB2ol)AQN<6C6t9l+Ha=4&!^m!z-y^nJ?J<7^Kt$wq{84&bA3 zu9^Or$f>W|F}aI4Uj|e6_^%~vd*`XsVft6XJskMg!l=R7$Hm_ym+=pOUv<-vSfc+o z(mBoMPVOTYO&YabU%=& z6x(;xd*$LKq-wkN_;#|0CuEb~OJ1vC$KX}(k2QAD_MwGc)l@P4Zzotu0lu*c0eu$w z)eidzjf$0grLpW-eY?H>24{TBokS!PM8poU#ctluxHt|1cu@1jMz{56dPl>AbN_wtV^zZ{?2Oln4m|cAou~%{sBgXySNpLJ7qZEXJQr z{@{J40ev|=1Wxv6WlfsGrNwYt#3(`2*8o@4@!8q4v?lv;?e#z73)2W;ZGwuE7H?4B z8+J_$4h|Crk9x~?krVcygt;E*uwFLvqCNJnu_pZ|6O*fAFyoC%7uGN?K^6`U6qpcJ zYzso|qOzoWV}o(*EHsHePAaO#8Q&K3SmeuLX21BM{`nmZC6r8b?Wor3V3`S`{C>5J zM#TEz2I-h-Qb>Hk#stg=kYC@W&vt3|peuVHO-d*PZEX~Pbm!hH1N>_dEfUgKl8_vw z&Ba>7*69q1cy>+iD-$ozg0fmiPqAXrNs}D(F#`2Aq8VK?q>JwCp!v=gefR2?`6B-7v~?DbY|(VGz%M7@flymvGWy4d`8wnB zCa=OPqMN9BosycA3&eKTRj=}?lf}1vYhpd#TIA1Z#+NYKcVqbFhnfK0JHIlY79xK1X} zuzM)HV|26MEe?tQXce-Kip-Ymy^YB$1=+E-?1FfTkB@%!T%&+X;^dO@L4|Upk1RIX zg&(1FMpp5(U*aC`QC1bZdxtRk7So1Bzb!s5kHp3I+xRoN3DU-h;bgh#-fd14EQn|^ z(|Hv{Ka(sMrRZ@%q7xw^O|M&#NWRg@$5HKC1K((z~}w&#yg-f$xX*u4ht8( zp5a3QN;ESLm6OB|ddxnpvnhmO!Bbe89;Scpg8{u;Z=jRp$)+T9-3Z$8ujq~q+- zJlfZP)1Tg5{pd$8 zfA-#2Uw-oQ55M^6+3P<@dRhoHYFY@3FTIK^`A)VYFgZv>NLuEh2PoekzE)1ncmK;R z5^akQ&Vqw}kkuZN41Cj0p)Yw{oEPciP=6|Ok=gpJojMwG`>s1O7g+s^i;8Ed&fSWw z%$lgcde{%0COVUWnja(~2^hAqYTBDU*taIU*uG@>`o?jwG}gq}N?t(VlU!ig-#+NX z1zPuNdvg~Ey5EU7L#}2w)~5&EL__r9TGPPMXpL34(#ajOC|0V;(O#dCrYkzQFOq`f zsL&0_4QX{%nSNF}7=sL9PbvLZ?SL_A$CuUbUSAGI##o@Q%?wQWfXgF%_BEv;5z2=m zyEDFKYqZVZq_9vAz-)L`tea#Zzqdh7eo#GK*QCD_ zxs7A`IibLhgL@s+j>wHYQ(8V`iwncG`WuI^YjB3~NUKiY#)H~oHxzMecq`t$st*?E zE6+~W{BZ00+S1D@j#Hxtn6{uih-&XR;xDAHbxAupkd>~@2wP+hW`mAK-6-Nq_ z!)K9ex1wQV^XcefoEGr&t%W^Htz{5ixh?}=h?w&m9SB^|%^t9vKfBy9P+3m}_&yu_+O=vuS`}DIX zumAX$|I5SQ{D=Q=v2}fY>n?)%t-tPHr9e-u_&rI!nV@M>>#kaXOBBuHV90G3i8+(XWI)MmPoN`ow1}e zt=MB6HW`{c_kaELDOja?1!-BYhpX@OB;_@6mA@Bo9Cc4;u0Lj$!l~p;y)z3__+ZJ{ zXeRBV+%6~vN`u(y2hiSA{k4XqoF7AM}(gRN6$$R)MF<4Y1jxCG>h0B}1;?=%Osc#klp8;e&DC+-nfzOU;8K zoM(9KtdjULXg8r!j4vsLpC!7oNMV2 zTyszhFlqyxFYqsk-_Iu5`JM0sV5pU7FM-ko_Tt?kzY&gsa{*(6+IUk1mJ^(eFhf`) zBl{B63|}A!UL-+-cL|$17~N2iJQZ|euOPl7#x{hAzjIu{y@>{i(h_SRJ7IzRQ87c5 zGH5!DTSid%YHYB*Rl7}q*RGy=7VaC=)t0_EJJd1>QF9XoJBM1~De=3B3c>B+B-rOP z@S@71Srh3S{D*dO6KrQd7+wIcY6-laZStU&QM!-5_{)hDINul84H2{~NES@jJ9t~q zR&CCu%cOBV>^mwLRY?|iu71gpcm-B`j~!YpU<}HfOz}i~K9jrJ@r)43>T;&;2_DE) zd`tcUqPCLP;6I6_2KW-NB{^133ze>J-^Po|Dety{8vc{hj;Wj59UUtS@k>x~;U{Rr z^>SZ*$R8U&Ox6nrjx71XejE7D#^^peP4*kO7Vz}EdzB_geT)9_cZscTlGXG|zy=q( zd#*Ye+Y^C zL96>Ipozn!J^fshsHgho*+>8*^Pwg2H}-BG@(~6 zWJ^9u+L%bFkTUpC!TMN0#ZHWIm1iscsJt&1K7|N?x*xy=ph{uG(tS$^5NPt%B*!Lx z*zm{t)to^BH-(QjTAQF|TW)??QIm7<0VnN<8?k%j@h8H}KZU^bqXteJ;G`c0y2?#Y zEBs!@$GZq6btP+I)ARlwT-=iwnUAPz{rayUwDijO83g#He4mvOWG73$Ry5j8Mj}J2 zXvlB7G0=Fy>ug@nC1V*aN8+)d^;69{?ysFeY!n1PudgOGn=oMEuCH5B*yQqZL&sOd z3bqE;>Rx~_8A49`N59Ejb!q_)R@U2{5HX`dN#`(gWU$?Z5~p=Dyy@_M)@1f$1}y4JZfs?J6<#DeA6KsKn!I-S z@o5)XT#*9AB}{rhVZy>M@;~tFD}G6EhCfRj^$xE*9tTI4>ItRpYMo69*YVZ6G#wRP zoUjEJ>3+$Ye0$G_@5Gzl>nR<<@C^B7qI^AMMtXNj1t%>x+l6TI)}VUY8@tJ&!hG=j zEYNFDVpQTFT`v)&g$fj?Ss5o8*?aG=KdtO!E;8pk*z(#dW(rdam?ZG3c6t9(GJ?R# zKsct54zWyZ0~`DrvfE)-gd*$P%fQfOfY@x4CZlY1*q{>O!>%Jmlf`HqtjK{E?Haj% zT6_{sX3I*721=6*A^IxKlgw(cKf7jU65Qiha~4Tt11?Ua&+uxI0oUn}l1Sd2c$78F0gr3C^`&e`#}+es#lt;GRl2c4KT|1JD>jz<3Oyz@B9+?HUu z7mtwNzHZE*ziwIJNa#@E>q|_-Uzyya1o-Zg#&x2Pxa$5%!r#uQ>WXc8fX$k(eaS%a zt%aKvsQQs56IOE2@*OO*H+>aCSm5JbNqoiP?tlnK$x;hxDoigZX)Pz8 z>x(}Nwy@E@Nn<lxpWS-4#qJE|?6zsHsknxF$+H`v` z_1FJ3Tv4&v_>L-QQTOSkK(ig#SJ&lFrjOZAHk}U|fW{p9=qH*cWM{FC#a_YDZoT0c zhv<`Bwu!;ZEG)>vPUDdrj7fulUoGUdwv6Q_-6M`J_pbN zVbWflecV~?wu5i^3%u&!`g;o*?M?C>M|On^QUZz$P>)tyGl*FY&15z>KQBmf^O%KqA*-$N+ULxk>0PfC@pc0I*QQ zQQ%;zcn;>Sayc*XhO|lJYTcO@8-yI*{_mi#eUh1j93KZ^4LA>zjW? zyN9cv`~>g)yZV!V>)-qRu>2wtzZb*bEg1bUVziiHi+oM)JH?4C#UdohHZhVG{*WVA zN)p3*^+>vG$*ny^|UByPr74V)D?#3|>s0T)C&r<3(-PqX&6>hcfNBYu-(*nuk zL8h<$ggo^f?vE8?LDe#7r#Q_EPVMv$aRO+dxlv`Bx6;b&PJcP0YO%|B)(@Rjnl9?` zkaRWtsRLNnbr_r&Sfv0D|DIP_3=4j2CrmcqLGLsRkqo+LN(2;YUjSV`UTn#ib$j7V zc)_$DjibY3w3tC!0gt=ZpN_Nrn}af$o9`ba#TNRh)Lg(}2zvM(-$LoQq|pf9AyM&Q zmwT`(@Wd!Rh)~t2KuscsPlOrv+U)T}s1pEsd=|vQ>9CY6@?E-xrm9V(lFhm)&(rN} z{I&d(i^n&?d-AGVl-hVOk{>xS7HHvoi$SB7aUjXGKnm5(FX0t9Ugh9l6g{`N_~v;W zd~iha9Kl;(lkACojhpXTJ{p+87 z^4*)?{q)oOtDk@W`e(nxOkZ97?jQfnhpV4n-GA@uC%<0xTlf92ZSKxRoi>rOuC*40>;0(%2&ofw{m%++Xc3NB^Vi= z{-5C^)!j-Jz~o3Lns)-ZbenbQL6Okz&j1W2j)Fg=SSBCrK&{YB9V*o1n%1hMhKG`W zDR+Y@Nnn5p@C8D%b1afc5YK1OLT`hGnqL$upfM?jE;T#jX$OgRtcvaa0`Y*}U?JEH z)R*jrbM0-F9M{1{WWPp(8Ihn3yy#^i1N`Fv06+jqL_t*FLlX|s&tMH-1%L5rPEWAA z3={GLg9T?@GmBqD`A?#N6?F((QzO6YM_p%}bSe8TsaR2aO z@){;av?kE&H++%QM5u)A5-SD~RqDCVYIBGtTmqQBY(-?e;mgAW-D?Vsn;VL<8 zr_NceM}|4vI5fwLCwa3RhhBoADgt>ch>=OZaaFOBAX@~tu1i%MPDhj6!QU|Nn z`i-Nl#+Bemt~Uw0$&7Amf2+SKs(KIZQ4c$BUnm5~Gdh z;Gn(3zfT1aqGnB`I)Zx7`l+o`9_?z?Z%$cx{b@)2iM;z=^wH&+pz8dVXxnjnb!1?1 z+)Y)PM^N%wsY@A{~#;U($YyR9sWz$fxC8o&*~;eaOnKN_B(>?EV`8qF+XSkR2t zUGDo9jlBPylFYU|@~O7K5itth`Yu3>4&=Q~V{Db_9b3mHp%J*$gM)u-zmGl#x8DU% z!%MO~kfzTP2FbO=zIyao$7>A@1V*z57a6g*$5El$Goc3-aMDrmO?!H}3FRd8t0pcb zkHJPqRAgs-W}NY=HX2P^GNAT zv`tUYs-D8V&U?4zcq{>J5G;Y;pwNz*+fvq9%KC^N`oTZDIxJG_9i_?N2EZj!vM&V& z+30u#r{WU0MH4mwoXJQet4_T)QOuT4XOXZ00&Bk4BamB(5%&9Hi?Z9h=07erW_oKU z13nx(&oZ8Zqf4S*{pygB2vDo)>R7_df;oeElcKSAvq{s5%G(+9%E&309Fs<`yJY}O z{^EVPpq{4}4JLA=-IJUbmo?F5Qv)B)e{|GOJ17$vzOW03D_>jqP#Y!n`krr%soQ+g zx9$2tGn35{J9cr_Zxcs+SnJdBnK!X#cBppA`h%l(f3w@pP^TizT|7rAl6(zJ0u1k9J@#NhA3`xkZN}KRXa@q}5 zqB$9i@BFEeV|o?EMl*U62A9eYQF@8BVkQq zC!b4JZX)1O6q2Wh@AfFi8rg(kvIogC);?RS-%&y^0wu*1F(2~!~HiX*enUy6x z!Hafb8M~uMa0E|s&}jj9ZlP862z9WsS>&EvMWfoTPQ8>QA3q(JCgbKuF+iVpPO@i!M zc4CwGv#*0)|E>fkdNc`R$J3}>lHtBx&B@wXC=%{Kll?okNQn^qe*VMNG=S~aWwSR1 zIy%;A1GUqF0TY|at0eKpK0!pT@JFpNTvcp$R zf?kzCX@P+WDzX{jYBJfLhvo0tH1ZMqMqfL<(=dJ2S{WPqS%LR5HeZg1+eL%>3RLIt z0GHX;$aVW7sJq3+w|d!Xwu?P<4%*7Y!Q}$U7IyQCLeA-uWq~A+2CC*L~8tX;blC@ zezIzdh2zl{FmJbXcKyT)Oab4H~9;U;8uq{ibcmyM%$fY5TuoF^4j~i2S0N$6mh<^0)1$|DXmXQDay3^5*)Vq+OM%r4Wf#bVa;?uE}of zsK8ezYx*Q5_(ibLKm*H4{bp6tw) z)b|WgJrppqTCF6*I$X*o^xToczoBj;o3b>$_Cni5m^|de+l7*RndlRqS9fpk{z}4V z%#!%+)w(ZQO;gSwSh}hx5-~uFj}LEh7$zdp=N1+9o?vB6addaI@0ZO5ztKOwt$a;> zqnNetP9G4HM7Tb+?G;vy4QrCGjgJLGY{C{{@oNS(VOd#%z#e3j`F{~;KK;hTVE^-Z z+GJn0&@~u0QIIMY7u`R6Cqz0uWwED4;l`vEKeDTA=xkbW)=e>*2~>H;P4u%-y+)00 zf|1FqkNVVK|M;)uM|_C?cMB7n7ZxVrX%mg?Hyf!upR&wIp|wF7-WM)OWgY z)vo;Huw`*#C;l~VCi%TWM2!htJju`v-*D2J$*c<_vuzP5dZtSo2lsP%0=t7f(lvf0 zpz-lOeZng_2@tizGg`&Zy}sgq4IUHFd)9p?!5MRF#-gQuSErrTC0`l5ps@G^FDyWc zIZd?HZ(ZdJibb=3HcPN;uhJP~QqZ<=wG!B$VX6^}Lpq_sqRi+lerOy~J-%Z?F{iK? zFPhAl=z95&k6ym~>c=-f|Be6h@BO_WTw!Uycsn&2D^< z*>UoM6Dw@~xy}8EYb>&gqLCy)?*HDAT@Bh8`BLa6e3Ng4D_-gWyPbTJd439=llDF% zTRJwqs<;@O-i>K|n+}vQaVZ`UYgKK;PEYm7PUzO#!;Z?V_ ziI(Zc5qQtmvp6#MQvps1%ZPbD`*pe2Wh(45;44$36{rLD&?2a#K~rU_>EtZ!*olXI8?wX5ogD)$6G^*|VDOcJo{Lj(ki)Ax>qJyD!FLpVPnatFhuW z`gH#?aS7c>c={=a5zotIbmuNcKZy`J26n!HAR!@ol*bF8o7*Sl9*Rrv?mm0_&U^p# z>BHTZuU~%g{LQ=X|GdHd)t5yUFW$a;_t~GmzW=?S{djqWZvX$+{|f~$>>GU%|G)Eh z{@bTd{@P8)3VnR_{<~j&@XpOs3VGF<-P?Dr-g)o-`lCO&z53$cXl2#kPdFPe83d3+ z+GfQk1JWv<9wzcB2%VXf3$`f1j>>YsI^J(r&>(P9{NZ_p1%v|C23Taie?3UvRiT+F zU{59b7A&mqAA0t!140_J;1c&Mia9n}82|w^vcl}@L zGeCpz()QqRFPOHfBOo_OWndUCwiQhn%vPjc97{K<^4Nywl5`A?J`DuoVj~YI6Lea?@nG!ZxxPhyV1QFV^G1Z$u#At7>@ zypnJ5R;G3gIR!J42NkTE1d$c$259}>iaL5&(+ze`Vg-H!us?|6A(Egg=Zs$Dc(m(d z38j85AyI$UO*@ird{)c_j_#|UBWW;KU>5k~^*H$@$2)c-J*z+PPyT$Vx@M}b8MyBg z!3xg$UY}7Vl=?h!$-$>BN~`>E4TuJm#CtFp?3RGv;9SoY-N3t~1TDOJ z(~%)h?F&-@SrSAGL+IAzwZ>~QjRa`zt_|`Xrd{dv6g-V!IC z)RZJ61wp9%@G>aNKy9+r%pJQ^LN-XNRo_0N&q+koy5L))5dQ@GJ%sL#ma%Gk z@BXW{l|9-*{OO=l?v*THMZpx?YB?T~i%Ql!lxJgD(8;c+73%5*nP@S)K4=`;tq6d9C>S1 z>rQi7LK+b6Yda8=`IwN7ru+CsAo97pFFIgn*lFlU>ZZB9b9prF{))3-$yL0@w*;m> zHxSRB+x=R?D&P}nylbuCNhp%S8f8n2P0wUq?bQ+%AwSkzW)QvG5!7JJeGdZMs^tF9 zUUjdO>v+{2c25E?ou7R*A=ZZ8t9ME+gEkyAdi^2;V`2$S`E+cj69-qY1x3HfFMh_a z383Dh-#G@hA7oG&lLrI3c91LJ!D6xBeaCI;ck!=;F@6WulBci23Eh*|eg}N;C5v?t z@hS!3S-j-A&(T=SVEkG$%44TV$%}lRxMcDQj*-w&%<7!uZOInAi)pqngb$Szu7@TP z*5_>J|HazoM4%dG#pSG7=a=hp%VlR8c0QhNHhtppdca9 z%k88A5+J34L?k3yG$?vVk#H*#D3K6ppkM<*B&pab-zrz#*SY7lpM1W*wNK$R5W-lF zU8!}>-uwSwYtAvp9IrX%7<0~5?c`*(BwRe7E!pQ1OO-`ie}jomlY@2@SFgY$1d*ry z5FCZO(b!fJwggVP*iJ3zjd$#!q`$?dI%iy&jiM%KcF;tx*Xo1M^I*qj54JP(&~d=v zqn%yKF36l;IE2!{+VfqqBC0Pi-K#zdJT(sK)1BQ)>1*%BO&{t84kQ_Pm2|2%W1?f5 zLn*Ow&HZe3L5stNm0(HV-||hbhuM)pY*$19w8q$WLkkdgZ0XE%d<-U7cK=T$LL(H= zd%9nn{Y(2}2%H_=xY`jsE+$Ek^RN>~GKVd^3Ww3Fr|aY4)Au@*q^-cB1km96h(EKx zlRbX)5rlECekF~KEzo$-rT+eSTseG$+8oCvJL?0)+&UIgtPk;a$n*-H?W_xO^Dg5O z+rms$!9VsHMYDCjxR7JMAoWa-PzLAp&cN|7#vHilPC}SH&Nj`jV0YJt<5eS3ak?H)uQqGd=zS%+GZ^JH;-SRJ#8}uQ8G7 zErE4%^6S8UZXmOyO5=j!l$7me67F za&E97LQp&Pqrui&DQm!tU%{*KSPhNj1YsszvsL6(zclDv>J@`+X30C$jk|hrg*PU4 z$f@4l{m+xZ_h8fb#AiEo`re80(aAHlRT5Yg?MM<^bVL4|0)E={k<`%|v(CAaXZz?*Q2BihjDYgKdad29<>#La7_F_7R#XYZG%*zMNVgcj3>Hnup~3|X@e?Cch>Vp#akodMvqBCh74LWWi0~fSmM1hBis6a0{onb$QaaNb@n<5 zTq$8#!p5PV9@Q810D@a%j0({j{@MBBw9Uo){J95>5iK;Se|17>KkW86r9XW~JHGXS zAAV84`6X;+^lqHo!p&%qeT>dw`R>it&0l5e{>sOH?w4C2@Dp`?_OJh&zwr9eyZZ_+U{=j2QPMjJ?Rq@|=;Zc0T;{4Q} zZB7FvaORVPneNXINMsk(4d-mCw$Ati4U9^s*J0{AG)tVO(_~ZZV~O120c=+mNWlX^ z*tV#GfQ=-+=>#1XH(BC0-?utxA}sx@k(4CPIffBT5=qopPLOi>vpiA z?*GC$qkt+}Iw<0A4ny;Iov_A$=Bu8OpyGO}pLOElHpUqb zV^Dle;u^i89bqAT{x%6lk!V^{mtPp(_iqf6Z|oj;!MFW{KpVi#fh-uiyS(fKs=G(m zuV1}<@7*8#%onHE|H~&oc=@OP#&?RT{q*`BP@sUpADHXg-~O-9fAN>U_0H{wPaePb z=4}&Jlq20jJVvl5ylfEECw8;YHH1ZHPc^e|w%8!pt zYcQJDMt=OUtLCUzFsxQ`oDFt6dPrj%2tp*f{8OG^!05SO{S#-w_pBAFO(xJ< z!C6UiZCGe>smP9L%2a!AM)dYRzaW=XD7X-&v)pq!d%tHv0IO!2P%x}VzmgHWy}v}% z9R2DPq)ZHQP?{ju56&t*7=Dc+CD`+sA9fX5QcvFFSt~?axh}YNW|fUeXyjQ}O#}-1 zkuiA0yWTO`5k5Iw(V}r7*tJz~HwQR8C&&9N0bJSY`ynSAqcy$YNq6`F?@!)mAAYCUX)F_l%u9X~6(0J?PmL$ijl5|9RgKv6K(oehlm!38?n4G91 zxeohet6<3{!-w+?uZOPt8#F)KY4YFuis3ljfI5!=9?B$#3brdGWQV(AKZfh(7A(|G zohdn*vs9U`MtV-&ePltyy@JDA6wB0uKH(nng0l`9i2m#J9`SGB3|L> zl|(WTUAy;=VVyt6hGmCMY&G2xIkj1WOjSvl0_EA#1k5w-22T(mnQ2nqVgb&5M}Qs4 zvZxy_g*QERK~#P3;?uG*A#Z-`(fix`yJj)`SF7)f}M4~KPKxPF#)N6v=oJe4lBi#E?+a(y41*d_8-`Q&d!4BUGZlsSRNz{tz zh3V@1yUJv*zl2x|VbG!p(O{)d$WD$CDhl{qU)p)Xnbi=FTAecV`?En~r&MIW zHVFp*n0#h0jzmv8P|}H3rR#IYi0!B{Iy&2%-nl*O*#kk)yOXb>jgPJH&vA(airJ|g z#nS6UHRY_9`)v#^;1m7d6h%}lfb6#dQa4t+pC5s5 z)dT9eoyFU-(C+TFr8(qHpFOC4*Wrs40EN=@HzpMa%`eFgN2xd%Uu&~nR_RIf&X&Z7 zWQ0GGa_b`c9kAfyU60^-_v{^7YEC6}E7Y$3f`0<3WHOsv&w)@s{pi^2XrCOEsL1{_ zv6;PqEcqfSWE^f=Ig9ZEZuvm#pQ2$D+(GIcpmy6VK+tOzrhmyBg-tiy+Ws8e>Wf;* z30+E%ea*LO94O)0BgjqP)62%27I2_Z30M!k+fA_oQdqvAR8a5+a^8Q7-t1gSv4DZD z5PH;q3AO2M$+A^X7$zfVt$uu<@1x`76$E2TK7a%xS;lp^ro*G-Q^-Zf1!df8av5Mg zx#Lw&&X+KAXZ|}>SSxrQV`>SS1uMd@Ub`ZPvKxy#zBB?hRV6EMGZt!0Vac5E%!b-s z10g2`D8AjVxpvMa>B`-?nEynf~Q2gzt~-%FP~Guu^rQ% z!>fKbhQ!)rrro0an2m)k=F1m0hSmxsBCe$_(OsoH>ZgRhM5}g;$1)$x{@b5H6=Tsgr?BOnA47>1wGN^xUgPdGOdxZYk_0$ zNp^%A+l)Y)kfrg6(l`=!Y{_&wdmb`%`q(MTrvW4ys2L3rUf>&ozBcwPp_IMtnC`T^ zF*$uTA~GaWiiQ;Wi6y?_fca&2@f{SVh^&K(+_rwZX4GF`-*1tsYSy5UqYq{ zaXhTPK02oSw4Lg`BQ_CB_b`;sM1|eaugzm-8@rYMU4fJEbec_zx1rn41vxS55O%Fn z^ekI%%x?F;5|urS zK*w(QWNnC|L4f((Gfs^+sbcdwfYm*8F_B6RYP$x%YBs7*?<{L|w_~`Y729Z65cvZA z8Jfw}%npE7VocS>@ZS0CGb?Q5i2 z-r02{)61MSpEo|mKm&!veC=8VR+-0V@_xmjb;U{J&DU+%y?7&bPG(#v8!Y`PHHkNJ z$F8EvZc{6*U)ecxoN%6xi97^Fr*O^O1i>-0f%u3koJX@OLAOgC*v=e$g0Ors`r&1G z=C>U&lKJ2@lIm@cCZh?Kpxt5pXK---{PNQLN4S}Rk@x1%^CGKb>n|O;y|@wTyA1E> z1$XXaNoi<${fMh435YGrDB0k3C5dqU)W8zWUzfzK9kMH#c=iL%-aok49RhR5IS=== zrxVSY(A7QvWw&;5SJt{AGOzuT{ID5KVHC;7&x)O{5l=Qp<1sC9X}n`lA_u9lfMVu zc1-6t7l&K9Z~(nmcV#oWtLheSz*s!h!YEX_(p-pcj_>(P0M(Hh{Cpu)>)r2B0xZ8htqb|| zSEMt#lC9RZwunxPPDlbhpKs*IW&(&NXV>q4(3Jis?|OCp?r+^az5AcfukL>fNj|*0 zzy2Aj@HKYLQOhUI9gvStUEG3AM3H>-*0nV9;=j2~+#+{LNAgX=Q_qQoM z8ajkqnPvI_2=3!KVE`mM@8J=zz`6LEjfk-ue*@}Y<6U!GV`MB^j63GAzx;}00a0Auy%x;vu~V#n8EJyy146e@ic7bMxI}r{z}#6`Z-$rN~FzN#gvHL zTnYJ|UEE%N?cMX!=U-ek0WUb%b3J3NAXsv{)9YLp4f!bDqTCkXorchJ67S=X*F=?5C z?j36l{wBj5$;}JXtNyQ!rmMP%GV^N{FTW5#qgMeV-!-6qfnK!BS=&`}9CogCY3#h) zCd|s_&->f#obKi%QgyiYS52rZIg?vypAiV`F3+vram&~AJ{&6?UEtC{y7v2y=B>WNEO(~`Gl+|Ccrrh1tT15lf!WY^Mb4D zP%ojOZbZ)MnY=o(nbSgPlxt!F{hW&&hWO{=3DnOVek^~2Xsu)`=+Vkra^$(d64V6w zdWO+<(`l3g->SD{ehK+#xgklBoT!-5WF+~9Mp40I(yH(Av@5=E^oo8yk4Z>@SOt3F z8flNh(FAB5Hn9M;3A%S!Po0`@dYViFa(p%r!lK4K@-f`zEc+S{jhhdkrvkMP;)0fI zv1Z1m8J^ewpJ4axoNSdL5q zx{mIV&}?DBl8UY1&y6L+tf|Jpuv+=7N#;&#fbeWR5387;8LU83LE>X_P*3sEKY>cP zbo^4X*+jeKdSuNmp-B_BR$#C1Pguwn5EP&v`_Mx1btYiG=0z1OAHNz~k~u#$R*8L% z&L%lwBr+uOqa9_{)la3WS5Ux&Ku>a&OBQ)wsCMDld)wXIs!brf1ifTbScOT1KLx}$ zSte4hP4G*CfqCdc?^#rbEC}SR2L{Ijun8LVFL^C-_7d|r)x9gvc+y%> z7yI>sVc|09dIk_+4I~R>?~Xsv$!poPlSenCNCJ_p-d!Zj{Z%6wE-;ZDYiCI9mcc1* zoE&D)3$CQgik58e$j$qA>lZPO5li|PKqwGL-;S|+ws$(*3iifq$vW74b=G! zD&dCqdskC7;VD$Z14$2E(2wlZgZ)ws<#j(DzGT^xliuGZ=rw)I??A>wuhAI`?_Q}? z5WH3V$w3200l^Zub)+$@+xZm8Fu$eows9_eB~|ER$L$mVa$kHbTSHHkCJKI+c$uGu zMkOpue1Km2fLo!hg%_BVCco>Z%coOz^ z0_O#XLlCtgNP-%N8`nDav>;Ir(pyRCQ#*(`vu745-3d0a;p()oss#-=5&&)NvxQrZ zw}kKe`d4BPOnimMTGozYcycPb?C8J}Jxeq~rlj727-|Bb?UKVLdgTAmojTFtgJ-N> z$*EBnJ=#T|jERuagC#aMxlBJkbU%FQg=oH>KFFF|uySEkWcX?=l1niF#*A?E(X#uQ6k`A=&2}g zDDZ*&$~P|9!Y0+fHa`_DO-3a0W~TCEOX?MjuDR}(l-rIS9}_=xFMaHJCGf=9EAa&o zaroL~jy#g_m`8q+eNZDbaiv3mWShuE{eXk#>8;O$n;#fmc09BDB@>{qW6XVRx6Mv2 zFz(Z7of%8R%zT3^l_2fCkqDT)&OR|Xq?J%;3+N@=;3Y9mk89dJG3WN3DWAP#(?;d& zf{DC8WM($AaXPzR86<4Y9MmUTgB`2ja`N15i)87JWPBr(?}EHXa#DSjMq{?^%zSC@ zANASQI8p!&!4K5tJ|BcP2!9 z!UYJE&+J-u5#O}{A4ok{D^+R%i+kbX@(@nhiTs>=1P{;1ogKt?^k%f^{kAeI#!!#l z%4Y;LA0<1}iue-lhwVA+R!NU!FdZxCR7IEX>0S#i*yC6nANgg|mH2e_OpR=N$MZbIQshNNaJ$$o!=Q9Q7J#JR`N60F%?_r&KAT!aQyN#Un!x} zH;(J>;Z3gD;r}Dm5;Msdx>*Rng(~wCDo=;R1ENXCpPrulkkf`1EvV8y+QR?ulh~(F zZtM=q4~X#dvbRqzFK%u+_@9PD0`VR9H){)@^Yh+setm7nYyL5~`f_@KQMcD8*A}y! zQ*V1tB@2s=5EnLCGWEiHe+f7W-eG+-{C-m;qJ`h*B~z z!PpmduH{u9om>CUGu}8@3ynLtw#mWinfHN0g6N9B`YrL8f0W<|Y;ksOZoG!# z{6cb=TYhmzQs@Zm*t|l{O99{#<*3?;cC>8+@21iPdd{N>ol?-x#!Vir|3g ze4}ifM%#UBJ1!FRdO^}89sr?N!0yO!Lzab@=`Cl|;zO6-=J;pz^0D}HrKr+WmUjmCG+(9e7zf2IIf@|sOUC;Z96B@vI#?%w1?li8Ax+DeR| zSvneC3QOY7Y05Tq=GiMk@K_yb_S5exoIXFFtqVsRnWb5?xs5t+2-rL1lbyzW2~(gR zHQ9(hP(eiK%95kyhr9wuHpi#NEC0oOFx9KT7>29}JFZW~qAUQ;=FBchPAwkNd|OvR zm_DJOF<@g@C)6bHEo9vhn%h1eNH}3*B4CV*LjJdykq_LQsN>lMSC56HP)Xt<*67~2 zpYctsdmWX2o_%HFR{{(lPd;PV)j9iNb^J7!$iDDz&-l^Wvy(o-&{qCe4q+2NbMW3F zS|X4AHNQ;$lN(Sv(I7?p5GP9ZzES^uKhM}JU5Cf%>4&UDixjZ4@qIMWK9#Yxo1sf4 z6+P`W23`Yn@5ds+!+bSDpqA5c7T^s<(@H`(inWlm$-8j=<@hO^^PhLEx_bi|F znuFO(OKWl(B7ZhwGLdWmlV49-g5ky_pZxleAAt4U3clKD#C$2x%x~Rqj?{cBj(g4= z7`q5KM$fb}hU`@E;Hy9CYm(6kk^ZLg2_g^^fc?$pC!}FopFMGrk1BKXjj zIJ6#c^}UC~(dV}hMkMgEDE-degZdb1$U&U7sD;`HNaiJcKP7&IjB- z2hm0&<%<0n25p|WzWG$8e?ZK==Ii8B=WM*NukHHr)%_Q@Z=BjMLjOm9<+C^c)XB#; zCx2~y`suIVB?=sl|L+p8-%T+8!GHGOfAsE?3oCiwmxXX>wsn8@VOW+bfq%r3PHxVx zMZlh#Rghnz{SUQoe9y^F(!P4tiN|z}=#kYDTj?{oq{XK~lUP(dhz@Xdof)mPcrj*1zJ*{KIe`UlOzwFLj9aJ+mL7q*9MknPB?Y||L7A7Mf3y*p29t&iAdj+2xGFizQbMp* ztWf}tmC?Ur(pJA83WLSLp{F^<^;)$aGIH#^el*FeZ1wfQpqbg=Hg~gfqgQy&pj0H= z;>qzzTZoi1!*J9uU;CR`V${|rw^pUqRQj`HuRN;F%4hcCPcSp6V`u|=G!5VV4X1UW z?pHHYI7{aK#xhPA{taZn)$}if>%#B^!?lSw))~Z2h_Y(H6^PwK_(YT1s%*MN#ujAA z!KklFZgRI#MVUsC;+zBE7pKsC>cAo1bP4j34^AHVjjm=|Iixv|1+)mrg3zWR3TJV{ z9>gR-FN3+AWYL$gZ^w|QzC1MA0OC^5jc&U-8nhq~nyeooh&KzMsmp;$)^c2qolFT* z6Ir)%ej4l6j{+6d^8oZ5FB5-4nq%XR&P-k=n+-(jA4EFZ9!5E7=~dTTnGWapLxp!s zRZth~UC?JFTpMqlneh?r4+qCYt4T>P#`kEQoVt>`q2V(ux&xXI3ySsCPwn^DU^NK{$|h8QPJ@za zp7zec1GZv)#K*&~1o)x7cFm-%9Yf#Eh_lXTuu#0V$Qt*6Z)fs8`2|Pfs-U>ov)| zfS3Kee>Cq{J)VWtJCo<^bqT{@2c}GDYq^Q#ZAbwq(ZhjD|0srN4Pcz1vDRdl=%; zFI&1vLJCr!3+@#}%a>-4=_XqE9JYDGjbcIdTX{K3w9Z*?*I6>zLYny2N_Z2NB??=8 z7suK$Qo=dfO&Y+Dl~wIl2{^Hv#K}*m9KiSRX2_$Rk2o{_)J{4_>4Xp(AEpgU%N|@m5;?3>tX-DM=9-s9t!6wCV zIjxCa8&ETLy1*YTB-Fr2v;>|RPxNb%b5!A!DhCxj8s2OdTWh?9XGh|LR{P%FwLi(! z*@YX8`Tb|p&f0O5H>~VvQgTt}XkpZGX(>BzY?xi_IKbM8C&@-M5KLImHAwRZRI0n} zR*nKM6l&t3QR5FE1@MCBydsewCBoZJM;lAz>{#V?vbE_T+!7Z(HMWAFehJHDQs_=V zLf}_}lS;9ag6}@ZR|Jj0fRYP!_)Z!xArwEeUE6J>Y}YJ?mQ66y zohkc+tFR$!d{f_hTa%aQo$L;?;y6iZcD8arH->DN^-G<|%4EoP`7Ie>r1 z$B|aEqQYh=UlSWRp5BNQWdFM9X*>v4{3Szmv0%$&kSuKMYH?jrwiqTUbnqr27WC12 zGJ)U`K^uIvcZdpLpYO3EufQY+J$7(Xs@KfR3vLA<>%M!<=@7Gy}CzBwGWc zuEVc`hjC`!ZTFVQQw1b)R7k}R{;nLtoTtY1hN&9;<`p&ebg6)qIF3cWT2gg3|l}PtnJJx zTGF`Odn-eM{2XM8o%$eYoGz6BF7Y`3Skk(POtvcy;3McTif#vejPYocZEdiQOZ=Pk zxWo%X7YUXu%ieZ^&uos`$!Z>3r^1koLkBAU6gG6Ob)F@gMz7=}n+$>Dikv=e;W9)n zX;X>oFn}MCkr)p{t*@V{g2!a01x}q}qCXlZtl2`tuw8I1cGA}n_Bp-^+#8Rg;bGsl zZ%}r!ISL=qlV;!)0-bWS(6`d-bbV|rv5793EeP+vi!vEII*wLpi=C2JIP|MTc{AvO zyc*3XGsm zjPVxr)c-?9&~7+)%1G^(9k!&8X*zg<@ z`9s;4@W`()HbuZgU*XX1Tlkh|ITq`J2J;2a^ZUMv&ctf3B0{BT_v<{nc81zdsw0wK zkn5;dfkPQd_8Gf=#Id?*>*_JZzP~WA-}gdQiPfeCVnGWpB7J_{@^`jPqLn2AZ%`4t z?;qPOTJ{b?IeP~Cl>fHG+^NK8bV{DON^TyK9vyjw`rXr&ArzPG1Vy}z9GOYD?%@Nzx=t!r>}nm?M}(QdwqKI$A01Q zo8P?JaDQ_0sZ8jzoBKD9FHWC4x;TCP;`!;5XYbuVesO;K=$%J5pM3i1A0_?&L~>Oh zuWrwN?a}$o)uYFk{{nt7CD>pG`OP&S3H=$?kC?v zb`rK0iv)V{4)EBZC2c#o1{;!NVw4kNR?c{+njMOcyW4`6W- z1pXa6NsI}4w$O3b^Wj;M$Xq}8)yVw`%hY^DJ7=F0F2!fR48>a4UMizTeqr&%0&#Zu zwg}B4R{rpGlK<+vouMQm<s;fv#9cOsD8{Iy1*Eyc)Lyr59|X{s&l}^rJtCWFsJ` z&4cs5Q4A{XqnuW>28-$<%z<~9Y9xgZx9XyIG#CL!5WLuvEQHc))!&C}=-@$psX3TN zRg~JWvGS0E7wV->9_r+zV>TxFsBoQ7cQ`0L3=VKwTF2iu+1HwJ6R`CCC_KFX??P^e z30czHJxfU38V3A3MU%gPX9ohKTwwbWiIc;KIuaj{Lw5Ee;(C;wIfxP)>RHtq))Wgb zzxcdEX7g>fw7>T|sqKb+_Ye<2CIE;n1clSS1hJ5)&KV2{JkIkODBH~Za=+#FDPK3`TckO zh5zKQKmF+avuD@0HZ8e0^{20hr0oRrn7Vhvv%k1@s?FV-vkQ(4srCHIaWXAW?KO*Y zwhQ~&s&M(pyOS+oy#Io1c08I1GJ{_Lsdo$&MBUB@9(5|#`;U%bA=yl}chpU$Bzk2u zQX!JQcfD*vN9a>blNKwXQ)vO#kmr~d#7QSw{c12dwTm((?_Lu*NP;i966$ zr5sHLr^G!7Sk=1RZ?I=Y`j}od=zx1DWKKxB+dY0^1|j`RA!jk$eV{J|!7^5JV$<&e zAO(p9&3ebs0v5q{t7JzLI+vcZSP!`9s;9cpAf(tFkOGtq7G3qfvYOoSa|L-heyRwv z&3qKVL_D>t6HShG45k~jk6jTtP(T$B*r<{aAUoN9wVa|jUFZf5w+rsB`$40e&&gGEt>4k)py^xrY9MOmWDi=zd(`DWw{uCG z2K%1DJ{d$T$Q-cqz4LV&p!O`>bfKA~u_f+I&JKAwWXXiodr}MBdcJ-gUPQe#_pr*t z0!{SDsa8+_iv%4zEu&E*ZEb0(E>21hS*1USCs|O?dGy!(aIa*AIV>G>ofR4P+VQ4; z3vPs?t78{?k4(*OH@&z)6ZI5vKo+b4C)w<(pS!fx-@XE2k`o`^>g@v_p1q|>yeYU| z`y8!;-v!Zhuv&Pd&uoI(`k})`liE4nJ84Hc;>-U5GCAW9`Gx(cs~?0la{_ zZiC=|EkJ|}yW!X(+NPFRiD0Zd-tQFhZZ3Fg$E;(KR4YK5{fWl2SM^W9>}>aHUsuSn zhWzhHaqZV&a#8{Xel?0ebL1lI@vNYHcEs?It`{6+>$VH)I64&D1tVv((^ESRCqD({ za*_)Jb;Phac#1kc6exiPj@KkPsx4&}EDce3p*`I@7xT#1>3jBjPR>NV-E;InQX!5V z$hTq|-0ArX_FRg4m6oep6Q;!hri9jlwFx5a`{b94k zZ8jXh@9u8LGKM5{&?80N&P!Emhdc^QfR!!N2XKbLrIBxJ^b7 zz*jV6Te7iZ3EugR#${E~&v=Cd(~&L8fQLl*b`O%ve2&F>vf=Fp3wQSl;*Br$u`$?$ zpdop$Yr$)={)0z-5H zys**N5~D{Q1^7mGWS?v&bQ0c3z&ES6y~peBxp3z-NBn()+-m6H=?l50kNRg^Tf3Ey zEXQ`R0YZY&z0*#XpifAR^?G#B^hn^bn-WP2!w#skd!Ak(_ihgfi0*y5}=LiWm4wPrT}Xa!LI%ao*&BGJSGiMVKPsj5;qh-OB?BlZqN9tpJM-zB9U$FCDpq_jpcy=Hu_nzkD z7hevZ!wo1hvZfH(Bf3!FvK`X%xsjiYSiA)_cDdA&n0s_8=E%0_TXQ?dM(cIre)xv| zv?#)YJZWqVO8((TywBEkwa7^)&@VZT9=SF$Mahh>O5-y#z_jU+>>|1}ARe8}hyHd@4u zi7`80;6KW#2*9y$G`;oe8^Y3VEv7+3Vokx(r39vm5gBcWbysY zog7{JL1TY&6Ln%t7Ikk}m|SbN;V^w^O2;nnfe@C#vOeef+LpAT?|AHD2jHA_4EL!d zp`;t)C-8WtHRt*&iyqR`79A*w=en|q`v!H`&A<{%{Gc1cJMwJELSFznK*hgy;tH}D zK_Ob=7?_(k98wAQ=sv|?A2d-%I{58|!D$?{g*E)8AX+r4PUUMSC*sC>j`LmzOVO-F zFbf)JZe5Z>coNDc-9fMHxjtl7u+^_ zOWr`yG!}0Bj4yFI30d#wtHcXrkHr| z^l8YfoeMgL`gnk1%_CvtWS#4s4y0EXy)RF07Ve&DgYnj2_hiJmH#lL;$+kA#-poD- z*#w8?pl`@ePaOTYHN z(x;OXF#poW--gBM{a^mefAt3^Cx7hZ)AxP@DNjzm_VN$kfBNJ%PH(Q>JA3x@2v`1g z*e}jroj-l!OhniD$q)C4UcYOr_dk!KonlZRfc1HE_xSSikLb{|^OidB*{|Q6TsQ&z zf)y-b`XTWsZqaER`HPP9@6`dViO7zIU6PS~?t24^qZX}qARZKpOi_T;guFyL`Tn$@ zeo$Vun@6{hyQ4$-#GQyz&TsLE78aXdcC@J1xX@3!{grZ!$WDTqDKz&u`#bJ+N;dqO zwk_$qzSC>UYmpvbtJc6z1sPZUnosUi?VCfZSj?s4wCj{bFd?$v7F#+J+E75JJ956c znDMGani#>?jC3c)O+$i`-KX8%U}pVVK!{5SvR^+`X+g4B~w{>-0wcK7t>zlOmd z^2)z?^5o)Y1vw@1TY2Ju1QxOXB(GR6-!sy8SV6uI*|^)BrMMyg#RyR>XwwbE#bb2O zRudrK*rf>;E97el+2kS~Hc}nFj1L)6x8fw*&PR?>kno*pi^D@g$zX0VRNjp-Mpew! zq#6c8Wgpt@&c1@u5RhQa;ntg)TVwFl3fRd7$U~)ihdLyK;eb?Y363EE(H_kGJ^ES) zx<)ju)`EK#nyC7;zZ%eF9fJKzfHf-AV|V;sBUSDSr>5X}IK|lkj4WNLrhbJ>_4qn; zxt4QF^{$R7ZYas81>tQM>RWA9YqUE^7R*EMKw6_QSfA?00|Hg(>TB4mQ{P-o zgp7wC)l?&pL1oO)ISLE$(IB71ohmD7I0Gvfu~R+wmGd}+9-0ZYm_B-~(S99`?Ng7c z^J6m3S?kXFuNl3rMrDw-7-B`ljm$m8HVIYpFZj+E?$oScHmvXo(6vQmWE4@YNy2}V z(s~ZrT)QF9!fM0Q=2mDNJv3KGw}L8&nOs!@(7;`PJB9NzhtU6kUHYB_@t!|AzxcuR z)z!_}&68KpZ@z!~(2Oho zjaNnKO`IH+lG+Z?+RTt_QVc3;0el2L3JB!rqg_b0swoh|IYOvf-L-|z z{;KMEg=Qdp(UKbliy71!3bF22#!s~x%QEna#Dmf6C}CHbcJqH(xxK@}#8RCMol7Hg zrZUb4sd@%qjrj1;+}g@O*L2Ba_N?CxsCYLcs~?eb2@=1X_|?x!z{h8p4VMzE2I%o8 zn0^MX&xvB}si8zHnaLt{ze#+TKCezg76OLp>hz)Ddpt?P-ae1=Y;3jNUD*ZP@p|1W zI1}a>|15Jhx;n}Gm;tfi`9B!plOZ48L@w9@a1k)Hk?j}=fpEf9XXy#hcAcgMojFEvSMfzW#!lbFyPXR}`i>J8&$pqrK#JC`Joo zZwbB9dV9Ezfme{5^Dz8szR5&wnm?6D7#SM0RRTl%!B3yI;P?QKeulCt`%qtx3t;zp zpH@Vtn~+NjiJ%*RMh;~PR5C|Ly>_H*ca~zC!-Wi|Js8uu_>-R3Cq<6W;Kr|L6xZ33 zjl6v=2v9@eeYD5y=$oS}caObWkgkzHubNGpgh_^!})J4>Hx~c35U> zqE#`E3T+eRj#txwr_-%*qhwf?zSUzTmzog8hj#jmH(5-rHL;6;B{kxIo(&#vhaSf$ zqA6n+g}e2%_61EUvt;Xz41@4BmtDYD$)YeC7xQd#R^TCdW#_xU$do3MU3btc#zMTn zG`qCjttPGX+oaU*lu?_}1h0?Ma4pa$!DCXOrpG%iEV&U)deE$(;fb@sOSDfWqX=z%H`YjNVt{Gsb8` z@${zMO{@D3%Mz_~N_($-NGK~H4^RR_gAzll@3lJ=lbq?RE^U13ea842wjtVNj4V}W zW2DJMItT&2Z4PsV;&TzY!V^~Lcie4qQh*?s=y=3p@C8>hj`6o6x#3N{3d*-L%Fcmy zk<^zob^$r^syCstWDz;jqVANK>4Rm&lCptS0Ahmw?TniIXF~;u)4X~j@PZ~=1e4cRVprdE!RHc-?KTEo&R|mMp7MBW*t=VT){T#7OD2-Abv09Kl>h{jhjxuUYd8tvPCa+88C+BJ& z0jc_y(v>{bjqC`yggd>=f6FfgJ)z-$>Jc4k7XW`lDTN>cbh~$VAOXEP^St1c#6$A3 zcA{%RCN?2iSw9m5l<%@22VKZxa+#j(c+_+>d*Ap~uYjv9m`1;LR#Hxa6z{^X&)FH< z43efW&v)M94&7?US~h&NjKcZlARKLKBiJQOLmoW5V=jDd%pyW{xC98CLMV(<(iR^s z@$57{)etOuBXZt&X@}2o8pFGaqw&V!`WinT^l`RZ(kWY%2>V?Zmb9zY0?O(x0d6cj zWVrDwaf%u(cF3QDhctTgix5`9z39pQAB0MsT*+9;|4vEppp1j};~g^HqQb_t6joC{ z8N;;IvGo=-O-AdN>f+bOk>lB?XbC*}Q`P#4I`K9e4qE!MV)iB*}GY|6R~7v#xy3M`;Ua;37i%+;8f zV`0W@0~n2IlM8fw2SL;YXS=UgrSY?!#=yjybYo+bmEnyoEo7OGQ!g8%dY66UqCbnG zRw4RyuYgnbesd4xGKGxTimZI6#&k^m#@QCr@b^{cgVSSkzep ziVU%5tbKIqxrKggK0M$R-IAjum!P)0R{AL_oVFnjmhV=`CAjgoRMRcx{@jSl)nw_?QzVO3FwjUQ;blYMKLX*Cy zT(LgxDj($=*Q6S2XuBJpy4Ua&*~1i*&?H)H2WNORhG)MQphMc`9gYxPyAr$G*~}iR zr=1ePEhb3NBq1%LP#!+UbIsqM{ev0mbmjES5%@Qbg3YyT>*f8I9CC?La?ES?0?>Ry zNjiAK^#5p7iE z>X?$a1HEV{`+swHd1*@6`NNO(IwEm1t&EwfTsmr3&NMdCCObt3O*_)ajX94I$%&Vg(Il ziAn%NGMU(F44vmZB5|G0O9P1Ay}5L>bEemsir3C2PTsuWRnS%I(w$7zxmU>YXB)OK z(AEd16{Byopj)A;YfE0I5Zbl)An8wPF_fVyRm{L{7jdh^*aSV+fPo7g(H)|6rgNKh z&iHFwK#5y>YljJh87%MA&5h2kv9H?lmeRW~bm?WI6fyD0)cN-D*^4(XJ~cdEL-F** z?WJ95KvVHFYigK+(S$MfTlap0Jj{6ii5^MC$dZSMU4_j+!_&42fc z7hk{o^wZxsJ^KZ8e*NnHXYQUlUHs|U#k1S{tJe*~-;l}u?DQ3h`{4TV*&FxofB5R` zjkgm^v)#P8zxWod`uZDtn+c|U)Q?`@zj|~2(fd#S$i>Covs>;i`MDr@U`=3{1MiU~ zSMFS#Uf(o^GYh955IT#J$+}lnH@*`smc(LO(n~^(N2x6+gjjhXX!kL0l0#EkNK4ll*)4V}u`tb9#M-xs_sGXp-2;MKB->{uOZ-SnN{9|){^H+Z5#jk(++dTKD z{8KczJN+CvdN108J*NMB zi@8B(c*i8OLgwljFuQ(L)`mZZr3TAck!)OME%JBU1NRle%ErEa7(w4WKAwbJ2FQO# zP2KddV(kX+Ps2&zYJogvfl3R=Y)rr(792WbpzvAiV>WK&4+`inr;O6!#OR^k~ zfAfRO(|3OB?u*yYf9_ZQ%T5FP>Gh9@0x|XX-Sr>-7yrYzELt%IGefj~>KG->PI7-A zcYe)bKSR8|x34Z<6(~8mXw7sX+SbwgYtz(eZ^U})Me?ui&wqh%{<|df7wHFsl=K#y zPFAPavPCwA7vM7qqdh4@2ZBuNDOE~A(r2rhfK@en(1fnwM>9Xhk}?TAH$9^?K~IM= zss*hYSz75^2fSy)1k`bGzBD0oa}#ms%wTe(OOO?`Ir%w_c~?;8V2Y@jiWl6Pv0?TK zHtd*)_09K4&$L=&RW=nj}8P4y|=4c||#t1`(PyU)?M4nA13wF11TfaBu z8U3nRtybdu=u!cl+0tWIoDl>){F_0F)YYq6#$vzSYBDk>s7aJnmv-i%O`UaR`1EPy zG^ia70fh7J)!HUxjXf(=vaICF5DP#BqJa*D2(k|bSk+;a>wS~3_*icbI)z>^+!)>C zbx0S~?0AocCqb+wZQhovOjlLj;@rLCenE!FbF{VRaH(SvW`wJ9U)2w%>b-qdy#@m1 zMnlgV&lhZ3@=B}YIrez4hQO(B^|>LIQD^zJS=;WLswv=}@6pD`Ll@q*RbVHF)%WIZ z8@a~BRjW?be+OsIXcLCMPgvx@%4HLDL&W4+|8+}@~k-VFlS20Wq#)SBB zHMB?eaISkBOqJ?+bgBXU?24yWJ083}ZfWR&k+sf(Ot7m%?ejtKwTpCvq)6R(pvj>R z$_A<`E6ZU#a8^G@aT8{op6z8f@wj zzTnROOm4&OwO0L29-<9Bm%uV3Nlw@<^XCG7CCSwTwSbpEPB8rnkD&Vkz!G_Ri|*t& zHSl+ATQ)GcDvXi*BW=*;DCjm`vpYJ(f^6p$dcr67q+n*{YixQG3)jaINtIY*kR>nq zjT#NDCA{Z=^jx_dkRh~Ws$%2wLDK1Oz0b~tXZBS)_^KxP%l%Eh^Wc2+za3H%A#mxh z@I`IGurF`<6pgY$No2%7lFq>?35oGjw9-&jrl_ zhdO40bxc{bI%F>XWrNTb-`rg-xM|^q!g!snXf^7j;W=)zSK+a%_sqPtU-|%)<*?GARgyIw6m`W4@lmHrl5APBI$-Wc-?U;IoiZI#~Ip^5bLu( zYFGLA18+KIl7A#jvyq{iPAAVz3d19Pe!x8**RA>y^9!ynF_;Q8qX%<+kG>;%{DGNW zGly&=WFfW@wf0o02TQ<%8$s$;febrXvbm$rcoqEP8eMQ{Hah3M;7;Raix5ga+MW8A zhWQWpbp)&V3oX#8KgDzVATzivH`@V}?SDmReerM!@?4K#!6=?hP7eF*NeROO&I{@z zR9;*_!Q0zs0Qe3X>3;9EPIW#J zdn(YQH|RZtT2KI^x{!xO*76G_dQgq-54)0S32u|VEK?XmZ{oxjd3POcWAjRG>|J0; z!d437CT&TeKFtEM+wdz%Og>5!u`pZA*6uf8eG3savhNElfZtd>oGa}*mT(wr6%Bqe zfsbSg%^+5it&+!BuMPcG(yhj+^CqE6PM#-w>54Y83rcM#-sBXE_*u1hjJ^2)?WQAZ zlFbnWjAUmd(E_juO>$~Cy7zcylHv{I$SjjQ9sm*bmT&{QFAvF~c1b9TY;09FsxhQQ z?R=>gQ8gAsq3}(=9~NhAM|BI)dj8@(Cl^4El%Zbq#Pyo$-4YvY)AaT<$ea`lVN z0YASR*7M!9hkx}C)*!^g{_1ZdGT9b*tnBbgKW68HKaSC@P@WEE-#P}9C}~{7Et3sU z21pq@6WQLRJ2=UdenNFN@qj-WY$u;?U;+E76|$Y)%`tfxn>KzFp-*WFpyih|KJGbK z5*(AU%b-wOpM-EW~2o2B0y&&%*^SFVoDlIb&9 zjwawWKa8Iv^89vqy5eM~N3?TVpLcKkU2&R|Z{SgjTQ<%D1y6SJK_=Lu#uhy5SamvE z;kvJrjk&Cxk4x?!ys4ghcDY7Fde?jx5}J;F=}RpZ#IC=?5$_6uszPM!`u1US4n?!Y z&GkxdRs zS@R#;G&0`T@Fa+lGJH1%`_>NB@R3 zlIiXI(SrW2t}+PAq-@loao`*4Y)i%$~o`b!U8SG?C{#xKz zALAzz5k|)%5nstsXt9G>8X59~O3*&`Vo^S!#0T8DTv%~tRK}^t#+b8-$|R~QuDv#>VBVUC|*SGw!l^a&JPQX z%DqD3VMK@qsx@9&GKj%aq*#3W7H3c7Gbo}O8g3VW<>=r%w z?#a!s{?cz9GWizDcTP^e^PPVK&wqOTBv9bvk3T;9)stVk_~;M)llOLGp8V}^{qgbp zUwi-Yr$0+!-f4)T(XEZh|IE74$6KfG zG}PT$D#FkKWvRcQp2K{hVO_%nBhf54*C@ zF8G%730k~c7T%nSjc@Eez4uxme09p4(KOHH9cI}86dwtOayXk{wHPY?RHjeH!MNrx zzUBKF8#}eZu#vCfu^S0tCf69vr`mwq!#!2M$7RzdS+$?MxtS}>^T?i8G=Z|X%;SuA zZR!tMdT^^&9tMnc6OUTnl}}d7$6V#dx8b4Tn(k^|Q`HUW!!3N=d+Q4#kqc}$^H&?S z{HxIBTmJZ{h!2KdeI~<7N1H=+jQ&ulgo2?TC0qAn1R0q;F&_h`1&jH}(RhW7MM?xe zSbLy-=(zk^tQg?xSfCpU5v_|}@dCmZu;!;5^cshIUI%?H-qDs9^Ze1EJ{Nm~?0ji- zHmC(RY#wlhPd@J`xQ>UcG5>)+tqnmIndbNrG}TDiPU$e>-FZC)?_ za?U&+#(C(OXQB8Ez+}8Y+fFJ2a2#o^qd25!fRCR^$VST0WDrdedQ;@q(yNW zo?HlAy7~OYXO|aGK7IZ8gPTA6 z(Tkgtzw#||@$tcHm415t-c#Vmj^^)u)Bn#cUYF7#Xg3b+xG41M``aXLwK`V0zi$(| z7Zw8-!EN!GMSF+JTgBHDDzn3TfBNL=$=`Z?{^Eb6IKQOim*h6F^|KXQc5{%~?S5zh zYL0vtkhAgh(L|kMQ8`D-+KIBqt=Lk;l`&)lvN&3p4Q2vngHj_O;o%_=ONtagOL-}P zc|hf8Ob^{o(KATCG98S{41tCfT?^W%Xf#N9n)EeMgu`Kndolvmfh^5|Qa8i)sFyvf zF6tshhOSyQl9?+Y!2r$rmYis(LdTs}Xp+Cj;c3XkfKr&VY$(5J@ySSpU7lY8z@gDx{#U}wC*g8>Zxe!725{6hp$ zRpdlIV1?&vS|ic>0TE!UiZ97Z2Ku03fY-0J+qdNLkb!kWts#2=2uMTER(luBOlb;i zcCR8~GbD#{O|Iek*q5Q}gQ3J=G)x!Ma7z(S;clV`lKM&afs` z#(<`-1x;sRsq%m5qHfCd~%20p6R(_5!4eghYm= zGBd^l0szjEL$bKf@g-X(`As(3=`49Dwq=t5Ua$k%G9IwD#OdPel1cE|N7+dD4!VgZm^P#OYET)8996u zw`2BLnEq*Z`&uN$wnH`&gyRDbG&MI2OaP`0kpsO;QYe=k<^#1uHJjtV$r!$8ZeY|x z5(T5{b|R~q;TbPWU6N^~j>&0lH~#2HW2K32cjAoyuH>OBy?OARFaxn7`oV?x-GYMI zzhrEPt5dhDQ}TUM4XJdbv2gI$REM289uW>?!x70HpPJ0HGc{PrRIm=j4or{w^~vqf z@Hm%iNzv`X4t@LxdxgX@(2;Iyq2y|l;cP}-fMi@I@d>zI`Kfcd?nVjQbh&`Qx;sj( zKiM#2V%TM&U;_?}eO}_SB;Ci~+^>XEI}1c?mYnQy;+uG2bHnMR_H1_wX+f`(`M2Bcbv1$p;8-93`YXhVpq zW0)FEvdgZGjr{#+%^%Q2g6&T+4HT>0$V-=s9Z7t_H{FS<%_W+XG`CQ-WLzlD2z0bL z5Sf_icXg8CXp+yO4&u@045O0mh!L-{K&&8X{BMj|e@Nyb*IEs^^d6J-K!gs6<^&69 z^qPVA7wwxtH7iUj4FDj}m z7#kACpEiclS2Chl<3v_BCCz^gSCW?0H74f!;hk3y=ty?2SD7TN7E5G*Hh(Vp-Q0iu zM4wK`;lHG#cheKN{4mMDBl6x@*n+kD-_!**K%&{sT7>(osH7mX(c_#?*ZVhn)PR5M zEmKY1Eoy7w$@%>i$K<6tBkJw77mJ=-TUb7tZVNUzB?Jl2+d)et8d%BC&Hc?&9*l&= zxqX-o4zM(+b2?k_e&HBBvU2w5{L%}r+)6kTlm0HD8F3Dpd%q?9j%+s|WWwXI>k+T? z#*0Q#j66ld2p-cOw|kX{YZtV==dHmo-}b@@<+Vf3ydyQ7H+N1p z%)sozZ4|h@X?sa%dS59t5LG|qD6iYe6{ECjD}5Q&M77Iz45x4GNxl}E$kb{{?F7IW z29XOfs#Zc`#F?P$ZM)oeLP6cwo#TT#cj)d$d zcEmb{_|dDoFW(r>@BbKL{U3Q=Cx7YR`4@jTc72ZgKmGNSO96@8Y{3@Y{Pte{wZoMB z_FKQ>&vp)f{`%$fvu~ZhclYHpuX4QqL)qn%+ebGSx7Sb4KA`3$eovWh<+fk_^x31c zOS6}&%e_HN+wZd4-u!a*`0n#pufB19efB=Lf;|^ z9zFUQw)82>ogeD`x?XjEdhyg4;$$Z8+szYlx(FULykU*QBD|B^bod2Yqj|hxm=B*O zx6lbMIhJZQ*5`G(j0z2NjRTG4Ih^^K{28VhY`y|}o;SxwFc(&`VS9eZU@zXGC2Jjn z$Lc$AL>tGcL&44+VEt=X4L$(e=YSZGa)LIzc>u+R1AbIvlQM_fqh3VJ_v`Y(gTUpx z9P*@%x>6m_DxfqlU{e`Lm5+y+IhFf#&J>`mQEH91;X9$Ovx=Dd9bc-s{y~Q8> z9+kKkajs6+M+HE2FU;n@=DO8R9bMCiGODb7-WyEuYc%!T&>pV95ATCE^ERf%6V&5%wmoS-)^@-_e9E9Jx_Ek?Wde$&$nzQNtA z=hwI2|K`Q%tH1wO|M%y=e6l0Z*Xy7D`bSRz!uI>{YHyM2!drAw)6UH(9CG75xhIcr z&Muh4qr~I;>+@bgBwA(%uSvmHIm+R3d~fcYiNUN-gYHk>r%T7?Z$c}$SfZi;g4*=g z1o7NajrSi>@8_&%lStOE3A2(0;3+G0p+=7ipf2jwf<~4IRtD*;ry)Y}fnsgY?jD%* zv>_mvCYgtk0&j^Y-wSdJVCbPTC3DJ2HT{u!6*D(s*#oDIW^a{kT3}A5UOmcnXr(a^gH14TD!2yMECaZH>P63esy$cMgZ06+J z5h(3v$pX&69fOart-@`?wx1o0R!N)QD8I&0ffn0bOO5oN3(7g z*`yX{^-=v+FBRw)$k5k-)XN4_cpRNlKREz%i37KT?`{Q-KcP_L$w7a+4qmbBs5-|< zSIkW}G`5l$h6`>dCva4zBV*7KOd=e=2FK%6Bg~@5umT(Z)0cRtQQwpQWFcDlQ=cc( zJ=9My_rSeMr(1=GlG>FGPc*RBLudJ6ClXP$dtA{bD(u^6AK2Q+vh+7qPWIASWbqk| zqi^M0qf7OxliUThE+(hRSJimVm~SU?*}v=DKkk3uEH(x-$XJz+v}VjROZ$|O93 zF8h4&LE{iu05F-VznGezA~A3{CBQAB?NNjJoSR^0OL~V(L0LgT!E7V6y5W+sOvc_i z#K4ts%|=YS+@GC_24Mi)@!wzcjwZfC7c4eHkZTe@oHLZ`i2M2+deLN1IzqCVmo$mI z>PJ-c8I2Y|rPbmiFe^zA4Z+gcg6kn61%PCT=6;a%rXWS7j@{LuXUkv9lyxsZ1@X^z zv?N3deCX$Jex>aXm2xa#HYF#rBah>!s(9;nwz@Iktxl+a3?yjUD5C9ScPU(YUqr{M zkHE+nyn-0yOQ>YY^Sdvhlf)Y@whOhRSD_G+5>SrR)b#N$DiqiZ-1^xVP;VSlTTnH7 z15!EzR+sitvlh*4GNC5=u@!TVrx!_92*yM*H@YsF!+{*Gbz5==N^gV1c$mm!h}DY@ z=BQc+0)4VGj`S^xI6#sll9~_*$nzot7gO+m2r2gU+sp1Hil@n$!`)DZQV;{D%j4yZ1kNKxyIOZgR|^; zM>5;>NN6U@OW3x60FQfrq(zMZ*%4P{IU6THs)a4|f?#%wzC~{WqMu@eZY?R3o{?jh z@k0lAB_8&^?{vL@`RVy;%mo8Mtl0`_?(l|kH9ZUbd2Q^9xBxTY$iKn zY{+MjtOzbZj{#k~$Whggexh&5_SxTJ)9va}GTp%}0zeM< zS|mhI)NB@P{E*B}x6-A25qKo?2-ET2y0u+l+1TxDMP>4=RUChREM7w5c7ff00RNIr z`fdkr$-n%PCA9QMAwP}j*)G&xLVTmT1bT8^nf#k*(L}NSgj+{vw*bbY^k(v(Pf<)i z|CJ8hOGL%h@c=J(Je(uQ8~3SgHHFe2xR(6Y?)dL>-0OXzF|H=pkY8{zMm7dQmwjrd za4ZOyW2aC2&|jqMSn>RX63P0VFPfg;zY82TPGL*%21-x)L*w~&^Ln~qxOSFU3V|^w z@m4pTVzW#z+Cl6BCEMXdJh2|U^4Yz{x{b5j6qe*~5`BEttt}oLc{~ zEiJ)lqTPG4?IMUQYproeH~rF|1-98*f4;xmInmqOCS}X+cUx*^wCu6`4?@&suHq zREf2W-zyIbrsZ#VY;kP1%|eV+L+O~74)PZ=gJiC;Gu$--<<_lG6HwCZkGt=ZCp@@J3zZTv0&_Me?`UA%EF-rw|+qAR6UueA9pO5qn^Vpp(Y} zlOrq`j|fl`gvKL&RCFmZNSBY~A=@7p8Uso+7EoO88aI+PLC0h{yWR;1z5c;Z`o^}v z#R7??4C_!fx3C-2ZJg8}b@4knv+Gs=b3%d7v?frR^%E|~IF;1&eq%D=4t|Vck-F0k zTR;&Xmdvku!K=n5><8J6be=xOqj)5`5C3#_^Iaj zSpPcaJ(=^T#WFBMq(oVNI!&X~vZ7hzvV*}KXNR8k3w$z^uzDBvb_*w;;7%C#uJ`At z&DQK#I$+LU;pwld8IED!|Kv@xw*s7w)n=B;6mm%~<;h>O%f=}@RR*~|JiTGudKa~~ zkxltT{Y0uKBml!+67}49%wdL$wAYCa_+qrl{L*P@T<5d5x>QFmE(Ps^i?cfnnGi|J zMjut;R?=z0sVB0IWWu0|7_yuWw@hxzcy4l19JlBP8fGL33mV2K8f-as~%b{W&{ScZIjl~b>hBYX{Cj&)A@j3b@) zp!ZhbkvapJUL=m_k?#(t!(=2Hh6--U+4-e$(LS!c8Yo9=eb7lhHwLpb*;_pq1vS5v zmTh6(g%x;PAPFd4YT(y36p@_1fpv~i4a65v+R7I=5+IzV0K2bOD8)eGG@~m6?Y8f6 zivDD^4tkbUNO6+ACTue7jhMC<2Cw}eg zr{DYD-#-11{=%PoJ6{|wKmGMn3j9H$z<>Jh{i)_ozkAomAAk03yNLh9$)6a^U-i3B zfBWQDPrmuJcTXR`dgt-0i|g|b&yTmw{Pu>QvvW`1ureQ$?emj&-+S-miV^RJ>ELWww&Kq(ee|b4`|Ys)G5>t~wRf*x{N0aUoc*((eR2Bt zo;^Ez_QmyAuV1`i;t}id#pg_)9~+APFZS*w*48aM?D|^!z0c#; zy>;ul>`FP9#4(XeN`s1o2x$~8Bug~QJ!mFULPC&`5UpGqL;@N}SVY2fkmzxnNJxp0 zavDLRL6HV3LmpIY*?m>ae*geL07*naRIYOQ)V=4P*M6=CzyJ95sZ=7%N-XS@ll7gm z*IM8A&BqvHjydL-W6Uw3XcKj;{m#q*C-WqWp|13)R@D-W)t*i(mz4fog%g-J>VVghwI0I0_pQVcGnf3?4x5VSFdQQwo)#v>7EE`gM`b? z+5WzD1P>Q&cCKd8Gr5VW)n`XiwP4falF<5{f!elEHUI3_?43v^>-y>nx?o$W{4ustnRO z6RN{s{c?n*vmuMpl1uvLRQ1npDsUNOGO9IU*CA(a+6z#HG$5C|x^Qsm{qL?uhMoY> zX9j@gMLp@aeADeS05n}l$S2iw{00ed4|-FB$!8EICwo4Xre#!@tPjH{M4gZIE|ypyBXIK^5IhQ+CL*uJ-q+9|`$| zRAFj13SL<~s+_qRPrYBB$2~Zy7S8lx-P^{6xTo z-{7F^=7wF<2GbJKNFSdpgbJRjRu0%I4lG^GSA%Myv@i4fCb*N<1UdsyGw;a`-pL(} zhdjN@9u@^%wOuU+x49Osnn7}qo+e##f-G46QMnDe6+3LzJFhk{U^pAz$>31>XjU|s zbOYqju*B+J+M{-tbU^XhJBia>%2S`LZ-UXs5N@eVY4K>uy%Gi1*g3}83dzVcjI_9K!NW^Z1%1t?lz?;Si?`zy)3Vaahdvo=P^>nX9Ntt^19EuPhpqPaZZXi- zNA*>Ca;WM9iHF(7e74?DpjsF_*dBlt+@K-4GR?$aIiQE!fi~^85XDdBg^Duq{M^=d zo@zt&cpSW7UCa!lS1=&34p1}Ns&EwGlmo`OF{A|x$dQNkI@_kBCG~^?moF$M$nhwy zHBr@Tf@w=djv;fYz4i&4jJ0Vo5p9|=BQ``iBQs=FjlaIKAC*Sk^~+iUUKF?<4LlhD zcjF8KI|VA)Joz)^aONzAJg84QWWY>b6j?e(V1z=a8cKhhMLZ)%1A-06d4vq3ZY&W! z616!7z6_bWf&^F)uZp{o}D%X za?s!<rDNee>$b+ZI;SCO|kRq#84$ zYz9}!8C=0zeYHJcd`ek#Oq}Z;qTYj&b*_(iBN|E9WQ;=$2|KTl6Vv02?_;pU@|=Xm zo6;&;aT##k7PUM1<7>2v^u`N)Qn%nNsAA(!0|B_)rh3F~?Xid7SO%wnKq;EHzE>-f zi8C1}a&Qxzl-qrcz5e!TSWQoMP`iL1rIA_&xrT#>hve!T5USt^Bu~i5OPOp#Hp5a*y2dVYGpAw>lHl)~LzZJB z!BhTV@WYs+Hckt*rSc^oYSTImxN=-XnpkF@)^;s~NyZP?f+zXe1w)Nyi9H}YZOt7gV5$tU7Ue_x=D9zakv8ChZ8LqYNuUsP8CQpi3sOgkf-G|A1* z`^=f!6S{g;&&0Zls*l4dy~S4lcUJCZ(~?#5a2jUkdD5X^Hq(>*Bq@2 z92)L{9wR1;K+i`obD&bhA#jdHKr0$PCl?;@gpS;TF>*4DLqkIXB$&#XK9%E;3`8Gv zLfPaY`D*3?#%h)>Cata@fv%ET%&_oOg-Vm(g!&tORH}?=Pt`@YWLoKqiqL;;40hB` z9~{?}H&qxH>M8Qdm_s#~$drN-jROO7<7s4+sAe2}9>h^-@aZwydm%+|1n%g@9yNxA zWAm-}EXQf>q<>=sG{Z*eams4(4MCTTGkpbf<)fA6p6!sQ9$-d;>R!rG9Y=M#K6xTb zOh@9?DEc;xM>e&Pu>Mdp;Fba_Ln$Hcyg}p26~O%@PXP~}`cB2QHK8I(Jo;v`3?Abj z3%S)9Y( zID=5W^@Zeo_@!e*2vT}<)beliUyU<*HNCGn%bufk#`&Sa^h5GhS)WVSBB}b*=vwMU z+nq>+^~fYNKunTORQhCa48x)@dAIL4c$>NYfL6Pg8Iu}nSa#Ij=S59HH;i{ zEgt|*=ej3JlmPA=eqc4|oC>JTeb>x}Q~|OMEIjMDtX2^q zT2su%&L+C)s>almIb-;CcfUK~b1n`Wz>+&Ni-8)N>GmzW162#^J0oSdx;e2Vs)I`b zQSHLss!g1;JXcvKX3Q4Qi6ZR{E^r%8;>Tk$O$4}pR4wUls`96-j0MoNibt#aA~6&V zVj1!8&|t<>HN~Ix67|+{Ga8Rzg4s!t2Y83BC;CQ9mfAsdqNZZAK-{{U@3lE2}pD+|>xw5Vw$|acahT8P(-&gT7(EannoiW{0TmDV<&3 zm~B`#qBYu<$b745?NkULyHJb`p}EmGDa~K$ii@V~*hd9z_w8I}?mUa+VB1`ZTF|(! zexNmcm!D8Cs z-(7w0`Puf@?_S*f>?hCu$$s|GB8RUZ7YZyBgdZ1Z9^iO#i{T#GdB^0Zr3w0@p5U-S z8-XSC-d&xKdt=RHNcdSV$BVer9H7vOzA_0(7AS3)k zS4`g4K}+*6K}^KB_t(}*CCCtx44aPBEVeA(oA_`Z=>K&_PfA{KO)8TFc5l!Z2|O8^ z`4DP46@fXmE%h-d$VbXAD1}y&h;i6d@LX!n5IPeUX%(p;e|{ypnyd87#@|S z)fNN9z&Y85{^8=Ttt{GtQJyfUK(z;izi8X|+S8GkJ(Q}6XQDR4PsaWRjV>h+ZlzzY z=n-y&Q3ldr$?#S>SML<24m5&lqI--L(})!U9c{Q2R~}^WZ=q#!T?WiTNDIdd&#TMG(U7~@gOiMd78EruJI1&OOlMWj6El1VS4QyHcQ_0}Z5j})!y_y&(?>E^=M>GbmU5C@Xi#lxuFrJV9it?l zw-ORT^|NRxn>W(h%WJH;8%ve%f^&4lfl!LLh2l2 z@}QxsfUR~N!+M+EDNp(_EUSH_YsUMSDmmbRGNOC3LTc4!RE|r=lrl<{2S}a#^gl?Z zuWOG*fsH0$&hVOJ6X_#jypq$_Q|DGl6Z~Eqt0-+6PL?Uy2U$3*I0`Mtv8bj{sjbIA zIg3v?<(Go>bHmrPOz(U8An%Thfcv&Nxmf5lk=@a|t403$WOW{$`)wuP$kgQUH~^%n zIO9=8uD%cVl*~F=Pbwv+I~usNMKL_Ab<#s5sxwF`e|+7}6LUsKCALUoUTIkD#_7pv zm`6xi6!W%~%aBUpM0+&JX#8NrpZ4Ym*BRpUB91D5ikmiQFr@5GgF-$2gJB9W=ZPAM zsO{`VhUV=n^NNOj?XxhH_bItKBy$vaIu3i#N0Q>p3|ITqE_>~SVCMSO*V?S>aGA*7Qp zIihP$?J+RvyXg4f+yY+bdYW~zXDSfwL^ftko``478XW#=shL2A5q$}Plh9yMXIwyD z5+gt`xiuki&QPr;Z*m68N*zmOPH^U7b>V;L1R2j+1fM_C3&80)aX<;evA%y@PK9Vf2AA)go zJSZD;>Z6q&5iy0L>ReS=KeS@K@or^1C74Es+8a&ch3H#)AFVXc*$w>JzBqZ+me0UX z{!8J9_kJ|ij%-%MR2#gn0i#`F4mB1oN-~MMCw^!CBIS>!4YhD#-h*`27y@i#^jM1;03}W12m`d6EIbuLo7mN02rPo zKh@-S{c-5(NBD*qnDMEzm}`J(JLS}Z5_&zX5E&u3|!8zDyuo@>+YcpjiV#eymA>(fbJ5B5Z4%Jn}NPSPXXo6>EvCdJ^ zrBCout6wI{IqIpy7-ow>Jf-c@Yocv%UM%vaKHTE8c%U7XlslzMRJ-D34O@e^1B)!^ zwlk(3tzK0(;N!{oFMt|r(^*>t7%ekY^%gwo82ZyPKDP@%^%=`Lt|2^XaQ{b!Bvy@@ zyZx`}^V*k=6|O-OPmeUHXMtnC`V4!taHf{5SJRevMSv4$IZu~+x1_)*2 zvzeNYY-h*Sr@2ny)(o++l8Q0?D~fEydpgV2JIz?*POsjdh!Nd!!XMqqID->r)2Bm+ zC$7-Uc`mpB+KP(T@k&oa~{Fm7$|+q@+W8#&rY88ed4kcOF}^ijNKyyr-)Vxv&27oZ;1@FjVg zYGq1b62#K2av*3}7RpnkWYtD%=TKQl4?z^7uy~i3J(h)$K(jO^Adh|=hmamw)+Re;5NIz~MSj;6Q-` z1r8MWohZ=Y^CMd`m*lg*wfe@%H@@+F_57os|NO*?rYn(SCm#p{YdN>&O62{c{o9w9 zhT!8(8$=bqXpLB>ENpLYodAAzbY^Ez>YMqQ#Y2xDeQwlk-ov_R{(ZbPv9{H|>4|kr z*Oo5PZ+4D{T%ESkoOA8WM6LlZW%5Lw#+ErkB5NPJ3C+A{wNuAQv{A;QMB66XV$9vz zE+X`=2JY4R3-D?FY;Klww0Ss3aC3&4S2qta$~RY(u;J7&J7Z(t4Vd(;#;%5a1NO|P zQr0}n_Ax3>18wR~gL1`4-kc%AW|sglrG>8Nm?L`je*YG1&3PS>HVgM=ux;`{R};zH z9CGzEFA9AvozCJ)b4z=dSD&()i&eg#bA;uh5?1%@1RA zM=z5AbSFpG&DFFHy%6yGZMLX*?NxW{58YbsffsUo;&f@a3`qpyYQINl9JBy361Q25* z?O#Vrh_yOf-!OUJuNY@DeCUk&TseItsC1Pkq!}SQws37ur4#8KB)9$aZ3UTuO|R9* zn!`PoldOQk2&OvY2qyAoR$DZMwiT^ttsQuU*F=pVGp?vCyj$yqo%Jce$xbMo$mp zZ~c@)v}~=Hv9`L=$4aP4Vzt$xG=xKE<3*=n%9u7XL*n>O-E)-EEybXf;W->zMaSMz z6QD_ec;GjuIm~Cv%ZXTVc2U+4ltX_op<@hKMYY{H`&cNZ?}b$~h*{Vvf>yEG-IJ8K z`sBQo8NMx@Yr9}@ETkGfQ_rwlfT5*!#;atMzuGRXg-K?N_(gyx_X0gbcMcB-Q5FW^ zDKt3An1Ma8bDk;Y!2*L;egn6aX^iqB7rK`T%n@RgrktE@C7Gd>qQz3OqXaJ7f~K5s zC?tzmTaHr_tx^-gx1bx3shfhFcMpM=ef3yaA?hpcQx%wU_gsg4$M@B0H@) z(ui4_KF;%d9>OYHiJNie%E{@Zg9_PUQTf-xs}OwVymiMqF4`kYUx9bZy(L2FUo-*M>J{ zEX>-ad{!&#M&p4+mc|~*imYgFm67l?_W6~)JHD9qrihwUnC{e1qp4(ppQzL)^daas z5MFM3EyUurOJQLOB1MI}s*U3&3EBt> zW4w-zl=W3-vD%Ue9ByD!AEJj-Tv{X`Ldo%TWAu#}VFgAiPV7Vu?wuiOf+Rss1w@5K zY~rQ=*ry*O5B0qq;GH>2PjOrmigBirNy#zt77S0vwydGy9}yrFxalBUwpxRfKh?A# zpcSa;9I0CXSFWm**Z9#`P`#R``J$ie{iFI3)WFe8@_g+)$<8vybS5zMA$?=^M{zDu zveUFgC1kSq`i+?~ST8lTuf{`gqj5Z`jPx})>>dXN#2bs+F40#*QUYbhvznzOwOQi< zIlRvS)1(sl6X4Tl-#{w4_Xrl{z-wyJ4P*UyLkYthgJ-e|G8SNeZi;L7!3x?wnR0X5 zC|eh)0|0i>Mewi3tIyFYr)u)42_Sj0yV8ix-VJJc+7iXzVgUUTP1GK&)h~UK;mAXO zsl(K-hwK(B#3A#)Ey0S8jS}q{T$6MSGgfa-9(@maqfXZLnegi;CXPuS#i({q*5>4G zF-C3GzmXe_cVKFQ8yxs@Iby;%-nb1D72s%mzWSnC-vAWO;Au=-#+7z97_S8~Id3Ot zm965}#~)~B{pYB~8?Dw(#~I92887LhEqlkI)6|_EH2oqOpWL#5<*2jIGhP(!7@sI= z-$H_Pfs|5vX8Ih8fWox5d<%`hbVRNzz_S)jwGhd8Q@SXnMOqAz<5AS92CG>UZ1uPF z;%HYy-DSNxG3G(CvfixP{nJPb1v+307%T*cO*MpsilEPE0F~gry`6bx;frnG8iVDV zu?`g>BoB7j8~bLF4m3w63g0?mV{Buieuj+^$zIB7*Ok>%?cOq7SOwbM+?#>Q#8Y zuAE*lw0fscMv|5SBNzPJ9ie7&KAq%6dInIsQ@BUBbd%s{(N?_c*oN(eGAyV#W_U@~ zHJ>CWWeDkj2pAt@r&{Q<`V>2ayVrw`n(E5h0@W6V8Cgl+nK3lE6-A<{lIlb8m1k(I z2wURQ9R^%-E#0*h{zpfjqM!xBv+(5vk#JU?sU%lje&z{SF>WUlj#u9es{C~DgER5K zd2GOl;aW(;e(0tdprWP=G9Ut^t<%M+#E;FHcaN}U`kNNOhx7(}Xx;BN+f!vTF4ZiF z@kp~~K(fCpsiz%_&V}nR$V_MmzqX^b38MH_T}>iU40s1%XVjF%O_xWLfl6;%> zgW5)Yh&l81c%Ie3Tz!9?=NgkU4LJ4HTA}0ZUE>kb&u-8*`{HraasX#Bt*ktgMUWQW zJF1Zn4(N^BB}y|ZKokozATZL}pIDyrVn?Myfi1=S&|m|(Aw^;P{5NYnPdAdGff&U-NzrNhGM>v^3y`!7E+ZQ`0jU+C$LMr%ndv$+xwL5(+O!w&4vc;2&-LV1d z#p&hQ?e?Axd&ux)_4@W^bJ5nt(ZzMGjJvmw?~WZi_vF0~_n+Us*#5P@@C!?SS(5xy ze?EKmPo4CT@IZkB1r8KAP~dlB}!~UVm<1sYmO_r{c|KI=X)4Q*J*ycrFUY+0l`ug?BN5@}u_T$ZYs)0&v6?(hfoIKf{J0Hea zLuvnHaSw`^i7%-V-J;2-qVw}^i|B0#-ouXwrz>3=}A$AGnRsPWM_42+se6PU(*y8 z9Rq;Hz_&N+o4e;uQP>^7{}Zo{SJxIDu>E{y3z)mlcR%%WKlO4IkG;NGfA3Rk0$my! zMOM3?T0PzW18&=&{pr>2S6;kW|NOIOX@Q694>1KsiT-he|LXHsx9@%Q_%d0RKHM3( z7RnL}Z_P@wDRSaE8~0>;zCZPMZ>cDgC^f!?CpK3uj=}#9d)b{?Gs={AX-;p4+Rg`L zL}=k`dVL1%qGH>1d1l`xKZ}8;NqJ>74Q^thOV=5cJkCmjiUB^~ag(H(bXfUo3Ney! zF?e-n6llspL~utdh`{OJh$O%^R~tu1Qxm_{kTJnUfc3k|)yo-C;<;a5x%Yhh+QA$Q zuGxwpxkF}UqylzR_aBxfkt)4Q*d{|NG2=ilDqtKw>dc~$fox_;-h^5(&i^Hw`l~a1 zBm}}t2`j`!4kaQ(DcH&zgw;K;PJOCnC?0sq!zeRXU`@T6DBH3kq|uz-F3lp-(B~n8 z(xXw2)HlYwerMDwk89}ETaV#9uz`b=4ltC!DFbh>qYt*L$p;UuxO~^13JIVHqO7iF z(#wNxD&7^ZWFQIYror&3z8NU+#PCdQ6bbtuT_(5B9Q#1hJQ~I}7cZF+PJgk zZIe+e<9L9!9irRmqpC`+hywEFpqMTD&^?O8s|=A+_dnh$J)@RD zIS|#yGL{bEWgf$~0*katajf4KQOu#JKr(V#C8OX2o}OOGZ}kiUvRu*q7{TSCxG5t? z7RTyD{e@P_Rpz3op!Ku546{bM{>P_QLGItG&Kt$W^Q%XlOcvst`bWZ5egCJRZJ(t;tx&=Y~s*cmY6EVd}AiXZ@v;S%j;%E16O ztde7In=!Fgh}Id1Bl6oSDK9*;Ek?{3E&eLAcOh0pjJ}$oPd4of)B%L!P}CtuN31Vz z_^W67>XhaF4I}J0FI3vfQOz^P$hLO5pI$>*)gzo=JW*03Ya$77mL?jWGf7~*GptQM zhGKoMDq?SNHMv-eoXhzFei=Jjq^jH8#H${<@h{W#;tc~VG46A8#qOE?Bj_K9c% zEKX|#uWd0NMPs_7e!FYC=(lLhX~D z?Mh*<8nL0OaR`Y0&Y}gh*dJX2A%U6GsD_*Q5}rhfqM_(8p7ZNw(5`t&snW*F^tKj# z;8ncl*4!q`F-BNAA3LthO2P_q;RirEa|n&3_M!zE(d4CME&LD(TLd#2Cl8Xa@g`=C z!$+=j3VLKF-x$o1n5@W=5xy9GgKUhisgH!a3!QkneEnFMgr_eCtpjR8bwO*XLN z0OA&(#Cv4SL_H^|TJ0Sqyc_GbSAB}+O|lg?N`RL&HWsu_84#4j`ugnK1Cr}4HnHJ3*31Fv3>2LS*0K(F;sGA^ojD0<5Bw` zv%o|VEfG`K_bD=A1_)mq5uMwf0cPZkl0)5i-6Yhu)5l@g_wzh@#|`*m7BV*EWUv zErv}0OMhVzYO8B)ZE-_2)^Qi+gOM?KSS0z(@0J{dbzU21mT`pUQfi#5Ei%&}P!b%E zB;ajBZsiZkdhfhwJ5y|TZA0cp*FJysI@==9eI|w z@qh9FFVf;#`(UKkw}Gim2%)@1)m$7S$)ZozZ#m`?K*$

    sS^xK^Fqo)Bdd~jtMGb z`oCOo(?NS5uPFam9xSzVuIxxHv`ZFPBxSJ$NpNzm{2X%uiJlKcowlxW&+AKq0=W>fho{}Ohr6m**0D~CwUES zMjEn3U65!MR%^}T7X>RXwn2mwtAB1OH#b?;+Q(gODuz>$m~ ztwj_#NeEzQR)fvPq8XgUQ)#$E?&O2M%y$>KQ$=WT7S`}6t}kGAW2Gc%H6X4GZi5kpC=Rkr(^>kUiX`i8eS z`Nnv+`+Rk`y(=d6{%*@(db)w*+vD5Si`9qhgs#(;LAV(DfFVr!{BnPHd!1IadTc4( zod&@QidTyriSM-1w^Q~#4ZB73XJ;2v z?pZsdZSFEe0*c{dB;@Vxj{7r#UK#hd`%3{IUp_u>_ef%xOWp|HBF7sh;j^v1S>iFo zHNVhMrziLK8u<9+<{ar`SK2AHvC|;2&)9u*mgDu^aZ8|7kxv=XFg;Gyeu)VEX1hJ* z;0@(w5d5;*N+;d!e%%89WM2p9HW=|c>xsns=BcJ_V?(D_*rj=QNs7I?duvB)U2pqD z4AtrF^?Ad@3tPB+u)4X}?7w^Wa?nKHU6Ha-G`b`uOAZC*S_|`lIL1*H2%+UVq&V37@?F zhr4fj_3ZP%w|@T7NBeJ@ZFD{R)#vMPeCyedmb?1vhMm9a-TVIjGk^Vlw))1=H++BV z>y_u*-_P9qF>#)Mci+vgeC=laYqx)N{U`Reuhd$+givoGDP|Fw%h_4ta0ar>6a z@hH8S{Tno6Uz5yhrX0er;_$yW3Fs=n~CDn^_o; z-MyjgGz=R$o0I!NgQcUSwF@@jcjm05*qPf>3EP1T2!1ywr2x@<=rdGadSSMp9;Cbb zHMTDb8%=>KdJB%U=4G+_t|-%V<A4Cw%u4-V8U zdHn!C{o<`M>;mXi&lWT`tIS?^vcBHlZLjZlH*X(5xp;XaPWJZh?eWF6wPzo89q|=c{r=kfOIkT?czyfk`sS26$q;_Ly11m@-M=|L{=(7z%^Oo*I-NDkN1Myz ztNqQ*duQ@KxxZ6@gD-A&U%7jJzk2p;zkWuCJzW3NP$2I7vAh1`|LSi%e*eP{zPP%z zq>>W;3h!PXpP77H7JGGLR%u3hZcgm7@^XEDn^Cjh7Jja7Nd^<}lT%AkPEW3{Z-ph2 z0*}A=e0%rm&**x8MJIR2`8cX{RFinZV7h6B^oitYO7LK8OMYcB(VtBv2&u%`?iFEG z)ShV*BVz_b1&l?lUeV$%j<)c7&WF$DRid(F`)1cFoHE40gyoH0fFIo5P1< z4oQ=|j4o|$i0aFL624WDu{N)~yM*;ZgaGS8seaC^TN-k8X{*w^ilk{WJ~%6XqF1UH zdIlKxK~Q9B4v;zXEEvrU8IpUhcxkPmCY>2os!)z_9|BfKS1>Fff~9-JgG%uFIZ;WI zrbv~>0n4&L6IB_3rC(^iIIth`M(0^09Zt<82Y1zEAJeWGat8XoB^l_ZZsm2=ezI}W zjJIof;z3)1UKpVa+{(|XHf=vfPa zu04H*lYa6rfYhc7j;%h{dGOM*aKf~i(Kq;uY>Qvf8Y^VnwFO2_CTH(W^hDkSQ7oJu zDnzf@m@6|$J*Oxuk|9GQo<<-lcpI8MQo6;Ubrmc+g$l6P?&vgHmpd9I}RFd9aR`asqU^zV!e zC6#p)l7Tx}QXhkVk0)2@TEr2rB&Q|xonYF-?u8wOX%y& z$skRZeI4B@Xk;5cvWgCO6>af_^et8|&X@r96ICM|h>B_y@smR%razJyez(-y%EY34>mu{``D23i5a(ZA&A;U7phlujW zaSQh77M*6Gsm&J3gGO2%^EJwR5S&PKOOmlzB|a(Jhz8c$Prn+OrXCLTJts2@qcTPC z#LMiv?Bm+yf!^Z*^~xm@6wO+kG>!rtI)^to6qpq85k0z^XkP7jVbshibpvYi0>oyo zZL}~!;1DXB!|KG~%)uMW6*WYRP2TPj3ECmpWY_RTbPdND1E!zWe_{u?FtFuRNefrU z)TeHBrKGj#=v}VrrHhCE$8J3ARUJuWhVn+@(R<@`|+Wcra<6Q#|#^Rv#;;CQ8oaO=e9Pt)< z<

    vo%^d`;N4+@M-a{OX{Bc@vn|rjxUEN6;u$~J`gpHxkC7SZWf7-yYhNq?bNgiqOv|l|mL#jWP8PeMdoj z5XQ`LK0+%!uYLtV>Q>Im$P#zVAXz$e?|jE7bZ-uugQisW$2@w81mwuxe{oIY zQxq>eDW6n5um;m!`e!hqiF;Jy=EP!6A& z@yrZ^Y`Mv4rnbk1UHmG5@aWVI47U4>Pvci@D8c&lgpt{zPBkmU2$!`dA2nu7bkp5@~4}ncCqZHmjeWGB`wpdjL7FGQ&(J2&_|kfwTJS zs2X6b8$2U*CS3vtv|Fg(q!6b^y6dbHs}1kXz1j;jonATGKz*D?v&c&?>I|pjQ}yGO zTWFluf$)Xx!E-Akf2F~ZaK^uI9tO<;y1>!&qcW%C0+ocv9)sxT0>w4wJz~|lW%u2#U9+0gQpx9_6pt5#_KbT9d`x_Jh z0rq!gj46jm(1HRX!peB65Az+JVKNIAW`m9xUR)(HeOwejS*e})4et!-b|v7nhRvvU zXkvskE|dZY=ztCBg-QT7t5DGc<^accJXbleTFPh>}<{>yi-fpU(!1? z1SyHP8)>ye^gvi?H#vs!bfby$UsIf1fGkb8NB`>XG4@g?h6~5WSRAx*(gl(-u@Xg_ z{guRT?R#--@O^c3aekFuqr6vlZ#S!BL8|YrEAsUCdiUGzpS*dse)Hr#d-7i2|I%On zy+v`pEA|iId;J$a{#%cK;v=i}o_=w^`u=aN+8X$~Cr@|pU7oJ5zVq4o(PIY4-Q%M- zPww|W;rW|ag4NlAciEI(S8vax`QrZSk+fHL`&S}Z-;+i#)9UKAcgnqby}Vnkesc9L z-IaQN6u&2LPS^kCfAVJ^%;`V+=J5MKfdd5&6gW`eK!G0*3ebiAv9ar)gvv`ve&=id z&2OeY|6|wpZf?$>-@d>8Q^w5Se6zl|yEr@f0-f@P%E}UTyuN<>WlGe!^AMi0IS6sH zK$N1#V8RJGYHa$`2{r9kTcUPq`eaXDJDt+VN407;XAxkFx;DGZCd$o0t-v;Mr5Dkz zDdR2SdP>WqSJ|+{-qI=MR4ImsF$1zaw%pBZf$l^Xr-CuIhYbZX zBcu^lS};#ZGxM$xnlBY_-nO_5iTHx{C$E{9o|{nq)@FBm|An)&7cXrW`@}l3AKc#W z9{=>?&FXt9wAk+Rw=a**|HK#XPu{+@AJqrzlNTpPAAPXdeb0OQ#;$6+&;I8Bc>9gj zH~8>hufMbUW4m8m%~{YTI9vw`{Eif8j`L%8ZI53%f#<@8@&)eMMBSO;x~cxf4*K|H zx4B^h%*-MhH$zMZvvIQ!0tJBSYMi(ka;$4@Y3`bZX8*^Tt-kl^(%T7zCU|ny+ec6q zL1ybr9n;4M*TsR-Rs@8Bbh4;{g=r_Gem&c4k{LHTbH-hkCAOAKC5)O1W<1L1C`UGw zOk~;MMrO=bUXockvftY}U}THiaR3Gq2dwET2?R98tZ^RXaLpms3L38~QF;<UB< zi)FPvTSIx3E0LSvoBG`=BGHsM93v-!mK=;dMO8QX9x5**=Y!01=aQ1qRD{bo>xgQF zNn&jw2PTGu43c0C zFYm@#6hGwj9A`xBn1SblWmAH2Bx|>Rhe!2$n&G>zX$Le2Tswllw~-3X=40#{ZLh{~(v_Jek}|M15SD#NK%=v)%OTTO@u-4saMm? zK3($IMlpw|{^3>3Sd>`KIoa6Kq9NzL@3G#=EPJ&T5n2r~zq}Fzm){w)$Ic^v24*-% zL!c-F94x>gDo+B$INk4fvPAx?m-J9h&wNX)|8gc&Ph^ay(qyS>+d=J;J89BZ1iIze ztgoUFBf7LX>O^*OeEOl-4EH%|+nO+57Dbd(WtAf%#}1pLXhi(%zHKtIM;8s3*)2ZE zQ0{9SL6uJ);PE1e=Pbnxw>c3z3qmR0V@~O3F++9Z>v_(YT)zqbcs=Lznj;h+CUfw! zdPSL{A1;D4IMAn8(>&f3>0NuWUW1{w0?SqzW3c=TvLlJ*&gh>*w=N0hkrze%28sLv z03fXz4ve<*l#>&Z=zOY7s{!}FQPTqgMq?1HT_r6V6aQrv_832d5x%u;=O3aUxHy}W zVI0Xv$F?!S`@x|sWE7!mVFQyKUcxCwgl{=q(K#-Y!M*fFb>e`|xCA4L=x=qQbia&$ zps(9+ZHdWuprE#_LB64H5uvtHj;S{+de%!eQh7;OKG-}n9T!9ued8_sEfc(l$i8dm z_*EKGeWqT1mhJ$}9_4=5j2{u{aBUh8Z)c*8lQZEVPl@8LZmQ_Q%^tI`D*;M08lS zO{{j~JDbH2$YMs(P?3;AjOHAzr8q&!1$8b1G8-ke*U=@+IsS=c9O21T!m|GqDz-VA1tHcUoG1H4QhhFe zk+FK&*5WC7{Jh`ZzkGCd@~b#%Q~cQ3c`N~Iz@l!>#)#DklJd3Y!+NAm3m%o~@5XT` zkIv5T3h%mF-EDs3<@FWY!|F4J{R_^ERJ-H|*m;yL@qVZ8^#%?mc&Y;qCU4%lYoy7O(sdEfX7P75>q4J!b*=UvcYD8oN`RwZcs~4BY7xyb{FsQ9i=RqAyok>l6JuUIk+VIY)6Rk) zJ+Izl)X)++K67|!1HQ83V?Y;)%sI`tqhDZu3sc(tL0?4#r+Z~r$&qh&Te4c+V)QGbo1+DWr%X~xpkQ6$}44=tfI!oTXz(mIS3SLU)s*ilp zR}^-#yKioBV&O;JB>1i|tsxE_$$@x@@7!GuX8oZ-l8l6$en5tqO`SPuXJZ|_$Zq;f ztAA{9hWRNDQB-BQYE?%_klDqthN-UHIipG4Q*GXYPjt_BsQQG09Wr#QynQ-Ho>rCe z{QD=NaR}X8gu~hD1X6S#r9$P>t*yOpXD1Q{MNllMD;9U?#Gy!{3AC_u%zQ)X6WLkA zsx}>W)I-lTzfFAGtV)*#eUZ_PC@t%Nh>S@r7za^lj0xMgj+4KIV8$hI8IPUmmVqkV z1Y*w+v=^#4OBq^3EHz>h3yC^FVxVy2R5i39pD;+}(*!ML>8pV;Ig7mb1HvdTbs-F( z)8M_hx4NbA(?W$tiv%;q!AEK{#%j6tkw~DA7EF3j7+Rx(bu^a9a}Iuq37i%{OIi?j z6v}zqpn$)GEo*KqnkB$Gj-@+b`=|;7+#R8!G6;FF6Vl8^)WZgVpUtYdB6}`HB{dRx;`0;(wv9;;31uD01H~UY|R-1oFmi_FXSgn5P zFa1KY5tRSJUHiZO@xOgIXYF6OW<4Nupum9w2MQc0@cTi5(VTye1+V{6L~(QPxqj;7 zk8ghJ;rAbTX43U@-(CNMUq3%OxqiJq`RD^ngs)!TSQ_}j;^`@a=!b1bLbK*GrhA&snA4>ePXr$2m^$lpf~;B8uhi}4>@D|2lViKr zQ5`*}ZAkzdRaWU0rPA!bil&p=eUA#e+h5ZQ9k~LW?dpX|wMBZ@pTBwh zJ? zcsonW9ATTC_1WpAC9b>Ui_`r}=8B)SxzArA5q??+E@`vVc6Q1k)|rKD7h@gBX_%Fu z3P_(sfRv@rU_k_BC`nqFzmh&QXi130jgW)|Xkej*5CwW31B{TxfUt-Bb+L?mu zqqk&`$@vHxY0S9^rsSG5#LE=e881Jnen#g6jd}h+G***=EQ77PB2co@WCW3B;4giq zoWafW#8Put;1S*fry05mAB?^w@ltt=q^eVOuh1rt5`2vMq2RfXfw$lNg?o^jZ4dm_ z8EtbCHhEX(z%dk%COKTn1S(R6uES|;b>}I=*u0f}l8+TbGVsim0M3C>0Shn>G$DF> z>|sQW?7^P(LNbQdUM#R=hzGJu%{erRs;glYIrS@P1bI%C1=lFi+wLI{u8|VEL=!Of z$gkxS4wJG6%HaNBz)_<15n(kW4&#fL1B6tP=g2o`U@kvYR^1iy4)5rKt{L;HWa!`f z()F(P3TePCJXJvJR4^`)riBdm>@oP9DMr+^a&zPc zOLPqYd($mcmfoTJELj<@P1Q8FlI{G9JtdGNA=et|oOT7a|1%@(7>A3!cL zReku_U@gfxRw*)YO7oQ?dT1J6p6avFh(!jEsiQ3y(X{?OZKuc#{jL0PzE)>p>M!V0 z-zoYenSf7dHa4_Ch@rjw6a5I38eEaC<+Dh*w(l#U2(ygpz@&$0MbrTTrveHTg%#bB zDV~RaO+1YlE)gg?XQ9m@S-&YtD#KQOFRIS|C7kFQBTG2Gndca#I41NPctQ$DDK_;c zcrrU;OL$hb|C}S_jh8g3aknVf`G_jx{SagE62l!t{L_VkV?2rTMxz1C#sDvg#@?-Nlv1i6rSTv^uP}J6SPN;@?o_i zDmbdgY19gzBI~s$+OhacM*2#!{X#AU# zpx1AZbNEI37JbRF2H9#QOF$aIlLgu@Y2@>f2cmaT00&B+0~D_%my_k5XplH|;Ao-d zB%A)Gz~LdeGsMfe06B2fvB-*P8-N;1oCG2Aw`VfOzYNek@mbileQhBf9ia-MvnHJ} z0w1;$fx490;u%?nL{_xPxhybAmghLrJTdVQJ70i~-+13SiXc?91mqEn@k6xma25^7 z9I^?g_(h%^_Z*L_BfAY)Y|`QoNHC|zjxZi5Bnv(S(wGLXSG7z$_RwD=y9=E2i|DWA zlFQ^t^=pxr(R{+pS_=ySYM#}!DyiQ{A1zef51?QM5H0+w7oY+sTQoj_ss_j-7OD+dkomZQC|F zM#r}C`hNG`SNFd9s@|`?*50*i{n<75oO6sh22Dcc3Wk-xIHaSuw?avGSI_3gR%E8z z0qnnbR=2j8j=;OIs2*3o_WB%%ZGBtLwi`NT!>G+mj#{+7AZZPs&pIZqo&>!;S*1pS z8rE?1;jv|xol=#OTCA>BTCY8)Up$mHPc9+9HW-4+8it9k&g>B}Hsxp>8X6v-U) z-rg&-hWww?BgTE2Oci2I3;NsqIQIg#1@7bk)W1IO8b}nx-?)}go#aAa#rb$==6#Lo z82h+Ab?O;xf4yoZ%5Z>G`yc|PtMAV8Ree9?Nv#T#5*1FN^#4xXYnCUm{_$-&wNfeM zqxvfRl6pY3lHb8vP03PxXcN1mzz=dp8Gzj5&FNHp==w z%e9jrb$nd5NEE^oa75Mw(VEztBQzzooaxNbN)|cPKzHt1B88sbW8#YTwejxf0ZK8` zObp@UgzaS_A!~QE2S86SAW8X235H> zI@s3lV1>uD;$Iq?+T~Om*5*Pw?_x8R0()c6WSPzJq7OOR)xAD^jTv>s{=AFF&DcSq zYv954fD&>of~;ReR6J%~-R;}nJ@wWdsLZ+EaedeO!+^K#VI7q8l#{+?mt(5m+2HP6 z&DWkE(ePdS++Nh}t_2|2{sbMPxY#ahK#e9A@!qT0iwz$jZc}s+K)&I`BnZ9 z+7KTqQ2mQ!LgyiP>Qhst>o`HjQ307b(U}k<2W2xGZ3dRr#4>xpzwXfDj7_S1G}Bdj zE*1UwlSR_u57$i=@tkgsC};e!2h{47qaL3+{cXZczpsXttlZVlbH(jTL6Izb-&>i; zlVt6-|Hzhv;1DKFk5LN>{FZqIKd(L?i3MJSx4p;qavX!kI$6G=i8QJd|7e>1)?f-^ zSvUmzoDEheadH0vQ&BalcUb#yQv`Az>^w{6`UJdAB!0*URE5))0rbrYmLfteI;JQC z6=%{EhNg%c{>C5|A`zt@pWaUublEtKpeMxGQ5}j8i(g^s({#z0CjG=Prus*K=P!4MvT^Ppihmwa%I`h}+#mC(9Lewu~x1e1BN7S*ryI4 zibICpLewM5Q~lRV>4?LD;SfbGG>}LNv$YstZkPaLZ5_|4>&A#IjDn3)s(L)NWffj; z>SN^_neAk=y1Vr_db;jSXI#Umf*(hk{cKsqyUCSyR~{^=3wSuhc(Yay#g!`?j zsV}<@RbVe^XIi!JBYM>;PokALO9v?yH`O2C^|b1AKOEdem-wi1qD-A&_>M*bNlZSb<}` zXeibgcv1ryRjM&!b6Ej!p4lbBC52JUiQE`W=Tgpw#9F8u-{g7%ozW8#QASb&rLzm< zr#v&t>b*yE`)sxgA0K@Ow*#O^Lris7)5rU!&HRwcbC92lDuP{g5kyXO>0`8%(>y3~ zwd!jS(2O=D#D`*za$e*jBg3i{0Ca5#;kcDzHVLXq50QT<(!0R6g&a`GJ`LbMqt$8S zCvrbXMphh>wbk9!m}_Fm+)1D~}lrZ6MWm$ibyu;N=G-7@i!c~30tn#`-L%fw3S*jab@an0waNa z14Wa96icvI!IHIww_XN0goTehEE)xm76{G@AVff%?t`$bEAZgf4hugAje64}>vs9oGIR{w#>gU&lM}tFvdWW|IjdSMe9b1J1QF zy5|Xcqk^`=6g}o*Ar~L}f0k|*#}HfW2l%rkn0J7FAZvPsND{Cs{OZyGJ^nY0@K?yQW2#g_(8k)TmlS~%p2kV@C(cKzL4oJhR7Rx6n~?K^CQlFP zCuK7atUDe5f`BkMqmSCkTK2}K?G^VU*+Chg!Me(XEoE6Gzu_!`ExF?27kE_?!+E1D zc*nsz-zr1YY3c(NZo0X3U`PS?d;ie!b~BDVNMJlQ^}b*{-X`we`Ce-q|*# z+T}y9p_r^*S_F)$p4L^uvY5^ZufV^y&5U z`2?5QEp26c`=4vw58|&t=PuNho>?q3{deMzEW;vtbd_x%pZil8>*drly9d*!q7k=| zlC&#BAn{r0qlE8iZ{YN#-uKl~GdFsYSNF};1OcymBFNAQ@K%jH2E<<-J#DduCy>t^ zZ?LWj4&6fSt^BSORz4?krKj0&dRJ?OdfQ}@TP@h5uvTl6RI4#^V>S$vy3#nDE=^6h zugdG}%#f>U3*`bJLs@Y#qgXMM?w;Tr{;??)E#zdNb*`<+T+rW|y75}EWe)K~6T)to z%!a}uau$(PRn`(JDFcPGYRR9LBKBZE@tm^In0pK;S$}GmaNBV&LRy@8D;8+kvcEe- zQn4`}jApE9(YsxWH;re3{wYjLVUBw>yRiP%q z=oxW0b?j57Dq}mn&JVgKcaw~>GOJIZNA6E`H)x1%I;bBBDWZGaDr)=bqktH|9#(coIsK)|$jc*v78UlM1Fv6Zf)Q zn^v9af5m*{t~V&&-!H$0U1Wih*g?04uVXit3m>avbGp>4xh`@^lww&G+GR-8WO84U9xZ52;9&mopcA4UWbLRreNuiSI&b zgCd3#Xak_vuvRnpfNMyeUT!PO3}vB>0&9jn5|^&Ic)j=8I+l{X9AY7i(xF^kUIT>^ z;HD6JP+MDDe!qX8R%R!!BrWiDlsD=n!l%jX9-luPX!F@$xm~_toRq{iIfpQ5Hio}P$(!WoVk}}P zbo-RL?O62-9R#bY_k!x3Gn=6gc#8a)R5JStPm?>ue=weyIWn3tkz}q*2`M_;Azh5~ z*-rR#oKV+L%R#f5^PQCI;{nncwY-I|xUd?!k6dbZHzA~&EMaFpB5{pNoHXa7QRL|7 zp`?Ce(7tOb`tqx~4-y)-$ry=XVexIE#a}hi?_ME*jg@iA)l?I% z$~jtleO^fr$21%S|ReghT}&mm>i?ktswxyrve zx39rCjO?h_2CZD<#4Ku$0XD39jKm1AgDCHm&~sb1hWh)wvnEoD#v!dc8-+dA<6IQx z5R(feZ_ztkB#!TdNyL%jtL!WJwXv}i0@zwqrsuAy;Vzw+*!E7s@D8jBAqa1WnE-Oe{j_b7xEYK1nUHI_TZN)rsZI+FaI-!~C7z)^PpeUg! z0EndF;ySo800sq*k@y#=j;93Dg~>Ax!6yP6&?| zK^(4@3kln8?Gs#xH$12t&Y_G6VJZ;iFDRvP72=+gw(t7N-;xNU*$Y? z-*Va=ohfu-|AcH!gha^6x_=!-p54?ZXQ_S zRQ9zn1OH=H^lByHuxE}|4cz6f?yS6&n&#E}os&n*{D2(OU*q`!JJWkRQ11}t?SF`t zTIr1#Vy*2K#kh1s1K`zu0??;G#%@_g1{C?1x_eogxHk!lIpwrO-x)nAG`e|!>??7v z9jQ=kb@dt(sd&b5nXk<`xhxR9r~c{JZ=|+P&*^_(K-<}++EZ+b9{u;-rQN&3K)X}K zF_dFDhAU*IiRcqs_=wlHV1V&_)Nb=84M(Vi=u*xTVLj`JTdpDc0irheEU!%z))nyd zdYYUo;b8(BgUrHt&NAl+iwxMw{H|OY1f$@D4*^TE-gAH-5}$B!jrtZ*3VrhhjW{Jk zJi2!MUZhEHNh8Ph)cQ8mzno<4ce7lr9e4y@pP4^auQcxen->0=M{}L_ne}z>J~p?S zbT>k5XJ3tYS(47H{QMqhH4?z^El15(ef#BQ4Ac6K8~5$4Bg-{xV|w>sUpwlzZm*Y< z^KWlIUoTHbdl50Q{(+@FgTMU6qWAK6FaAphz+duN4IxeF5d$fso4~c?RXQAump^Oa zDC?AJ&Uy7;`zJ+^I=;Do>y+G1#+kTer`V6jMowg7! zuh;IM>kDY)*UQ((VFTpUVj|m|p0;jAwokroKkuh8zYlZY(j?>yRO0^tZ2qfr@L!9s z4ccC=MgyOJpu}o}xzzR!S`K4Dj}7`$iMbTDOM4oy&#+#9CaXmOZQ`W^U_R7V$Mg{) z=Dj`dMVtY~BQP;Pr|`6TuG?o7LH+^kO3RM6v&lF;Ox4+tea`9eeL1N!t9e?#dwWP~ zSZ~PUt6m3P%y@rRaD(Ax&GbG9e@{xV(fyBl-me<#dAIO6mmaG}?11=de*1HL>@THk z{+PGIhTE8q>u#_eI_A_Bj+C7;x*P-mHgj9?Xr47YX=28Nx>zGZH{{dF%jFFhFYD`j z>Y*&hcZ2DKNfo=>()|qj$2oBotR#AK!`POS29s5;+?kGqww1;%p!0N56<6GH0qj&= zRtnvA6jh$~Gad?0nUkIw$}~-7pp5ZWRi~)5=k#?p9#BcSd9jUvN0Z0#se+ky1@|hn zvFM6OFh|{7p=kPWQY4L)Jj+#P*qgt3k4~LS$_2*+z8I=ZeP=tcfzLy(I*aPZ9}Qiw zhpWB_?gP%W+?URyqAQjCLQ^jb@Xua};K)Cd?t)ujjTQtW<&(|dg)LOhtROQwkXz>g zLOv1hkH1bUmH#My)0Pbr{Pf^JnZ7iC02Hc;s6C0b8{Ldq#t-OxZ=QPKkCM@K3{_X# zdB^8o`j!q8InPA1WXIX?PMBVavSp5I%>46YOl}v3X;rcEhRFVxLh88f3xC}1C+}7- z&$NVo5197RxYb=tDlmJ~@=MZ0oa_iuhXL)p;m-Kj-?lkB z=A7;x_F6Qv6*tDQEfXxH?AuQp5aK8stqCD58_3_~#^iqV21;s?t@q}O)I&a-cqGT{ zf*rhaSYgJg9;xHh1EZHbOiw_JdnkxO00S(d;z#kfVcjyT!gSyVth~|gqy%I|Sjv>U zGl5%OUYVD1I|bg6^Xdq^M$fezpL9wRqVC{6zwVD#VfR}<_p7JP+DLt2c0C3cvbruo`v+Ui0OyX=`n84&(i(gryFV_Bo>JB|w{KJu$8C7fRo_TQ*f zkz+`{G!_1a;L56O=C$kiJvmq2KU5U0b{aUV)N&)vCu>zkM)<2v0sVytd@@LCPU&Tt zP_*+BU-R@k%edpV(%3gT`x)oR3WY&gkxZGB@k!QAoF44*?tnbW*ncWgn)R323-0IM zHhl8_kOdDuh~T|CQ1qFlMvldjH2!GWoXWrUr**o%hn+@*2-Nk3hXzFGC1kN&TLAmJ zl59o!vHf9(`J;o$(-^7Jos-8PKd|%0Ln5FN?iNJTyPBEyFbUHG6IzlC%z zw-t_cygfAqIP0$aW`EXbw^K9N;_3+34FgT+B-(XmG8Q;@IXVK-R09K+w?F#KXNYsL zqwfvIG~YB^I=r5UeV#ubM*Kb%iOGCJ>B8dvs|0yc2oQQY`ixt^HGG+V(cFGJeS|GY z(yaJB`f+=DIQ9emBdz0Xgn8NTy(_nygDpE92j6%4x4D~qT02qArH#F9hz5D%P~rp% z#ND`*XqUylD*;0IJ}!q}bN79R!~m0^0cmdN>W_gDTg11k?(r5&AeZF)k7KTrcsmtk zyO$JZMa$wN(ab6?!PUqMd((u}wZ}ZnV#~GrPUjQn1kWZK#-hn}{^})3;~=ldaOLR) zDx5FV@`9eCU!$k8P1${Or#B=ctK3@fBXmjSBdwWmI0AG=?GWT{c-Vd`m(b8f0USgKdJqkKDrFMn%1s{KBYjx zHQml`U#kmIpr>x9&X0^1p@z3*x9*OwS7NWaw}iX!FEgqG@F!wb1b#VVzxTYi=bjH; zArGgQ=f;aejs9Kk4Lp&T=?FeF-FAT^3EP?V=;|1#DHHQ2DrfzP0Cs9c7bd9u=+rv&db(Ffl&Fi|`1Z_eg2_F@KQ=CtIZuEpE7u z7Ee3qzGJH{+OQAp0>*es<;H)Yra_0POmN~Jjba4oMY}-HIIHdW<7qXNgt@VhL}UGh zVm3o5wAv-nE!Ue`;o7bmD>>YQ+c;>}|eE{XI#M-<3|t zW4EtVyymnIBZ33fNE9@Xl155)tMpbt3_v~%2JXiT6*Z{jTpyd(a zWs;$SK4-yk-*PKWzzsRv8^;;*zANOK+{tc)^ETNe}8F$)CQW5&@pKDXW-@tAqc zPmPnPWDM){{ynVAxaxPDloGt#Z5|_0PSp_X-weyB?cZZjX?IMH$7~r`$j9C7&c#SA zqAF{3NM#}u(j$SYeg5=LHW7kYW~oW?>^lXSNCND9j^+L!>DE_CTk|46U2^L+E80{R zY9%h>M)7Cp{jFuFrLkpDwgOd-(eD)p!HSacNzw@J44@N|w)f0dQdT^)E&u&$L2NMj zM(tFDO_q|Ldzw%fEzLuT<7F8vlL+P&i`!C##5*f_O7+{LyaZT2oCF=zHpu}f_ho+$ z2fQ!HkW*s4xu4W?4^X6qw2a+N*b%8>shlZ=6YEebTDCIRbQNN7?vGdjh6MN-Uo z5l_xrvd5Z)Q-5R{jRSa3KL0MIHxv1s^I0F?Vtze1imM`0!zgpDnaZId0KI;TYpbt{ z7ezKfbw;HPU2+QFZDEWkWM);OqM^oG^fGJ|p>wdipBXM2`*+pO-LX(;7MIrkx|`F! zqFEZsE3`M-o5$-IO5HYORa`sLCZH&l1Tv|iXl5Ax5Z_#j?#T9?(uvpHw4?YrmIk~q z#QxXQI?C_hf$Q&=!+>d!xEENyx>q_Cj!Tc}*r*UPp8sud1@Hm4#Th$0Q$!Qt+#WiC zOV}`U=I5a0ic$3iJu1=PjqGmNIK9_M2}38Ukydi_qTI$Edq@A$Mfc4moai5hWKZ`( zC;K-K)iJm^L2vK545;4Ub^sDLP$oD1SLt`Zj-wQUMb7n{jZeD5KX4uw7i00XfPcqs zelK>Vn@R74&tS@D4{A$-S&fHC!5BFBqeRMJcfOFo5+CPV;)DrZ&U2CHjV8kMIpx>+ zLKeGMA8(jB4p+|C&w?zTPJ!99eag(MH3p)NyU5T1lJTdX&d9$Z*$)cVey^96ZMWbb zm`S>J>8xKuH4|-;-1@A;cxgGiIlKA!Ir~_u#xx`9XWNTASFL=#_+8t7=v<+${3l)N z|771^99YkaUu$2lyDvkaImFyt{VLu51;L}Ms+?-OOM~+shnK~`zf&(wLnBv?5G^UL z2fU!)o4{s|E6XF2+;8!EQ)cF@Y)viD;{rd(`33&&*p$GSq-IA76-2lMOP6%hF-(b9 z*2@f7RIe8ctGTLwyD44Z?`?Bu{8_LE_|Y-bNPOU8Nj<24ssZg3tR&#Xom@_P?!DYL_)! zhulXUh%T@9_aB-)??+$v_1~OmAFnvgj7O3tNbt559IkP8hZzYWZw%?oFen!dHL=SDrM{T|-U zs+>fcwsqFY-X){69A~1UgH=(8cN8_vsnME|J8(WPjcX8loxHqsPIlkaTTce`s6?c! zN`)NiAFIbfuwD_Jx;IVBjML-_p%!2~0AjxjIUkL2poCwiaH#Cps;d?1)EHD0TF~WH zM&&{6r6bT$3lA`+Bg8!-a0Ny0ISEa#mi%Qq7jBWQORrc0>QxhZbfUL=)P3K5QE4Zg|Qld3jb^FE<(?7FG6Dtbia^9;>$~mrfSaso?dgCNkoJti+ zar@WYX3m%Dys16aUi!tO7W=6fg#`_xNw>AOFX1k!lZ>Qb5i4Q7KAYh-9WCFg4k&!sEubWV>l zv1u3O`8+zvcv*qG^Zt)>o0QKd&|uEkiV_QVIXU3T2O1>yM`-p*NqV)?GLeC;_t=6C zK&RH?5>eyS{So_6F2?-s!G?tIfl<-B1r6h}f*d&Ts)9@U(|XAaj+wV|AU~Sf242|f z%-1?ePrSu86%OFOg_zr94P{IM7NPTsheHEV)^hVu~tMd z#O?hYR3?cvdn%GGPSi>Rs(hl2@LgG^7VuPAt+;ZL7YL)fY%do!puLngw}w$HKKC-& zu1ieLAGbEhrP__?XE zF;fGmy?tUgU(omA(VgIzy0iU*PEB(jA5G|OEiW*&X}D75NJ<`;V`Spg`MHDi$!d!8 zyykVK`%N8k-OQX=9{j%#`>!+q>-LYiH}ABefE|An*P`U#z>>)DI6W)SKMvAEPC7|~$AKl( za>Y7uiERbiN6)gW%@}cs?SgSi7H#(SSfG7P^ud#y?vF(Q#mQKb2T8*f&Lxl^tyR=Uc!XSoJ53rGXt$RuVHgL2Cqz0bS+7UZv%Kh&X#7%urGQq;(xdP9?^zIm5m^h3 z41rZxfP%7z*+I@rRN9G6w?4oLpi4n~7tsabHO~+da|ixC20fo*mxITL3x;!iPs1m% zO^xc46UximBYZzFW;h`9?*5ibD1Y4({#fE+t?Xj zBE4}=%_-1H{Jv5_=pzz^rQbsdz7`#fXmf!P*)X&Klx5>m!GGXW4<@7u$pRC})%bib zol!C06-c*JAkmh~+Y>xZ4|IQqO8-(sFk&_0i*QhSFy0d|2Mg3=J#cazT$d;{xfFDZ zSjW3(zYym3j>%Z^~{`iquN88KX($f*|OXXYEx(Ebqh5BV| z(NfaD#Yf7XFq$oVlo7~&=t1`;$SD4V-GUJ{YP6TYTa`_kZa5_H99+7qxzjlMYU<1nfO20n0q;@$`Kig1WcOx=P`t z4dPPnpHx`i&m3jBawTU6bhCuF^w+Y@Mp~iGvq*YHby}96`2l@83Zg2JxVO(_CSZIL zrfK2K|LoC3k@)`E%a~YNKJo8DZAP^k@;!Cc@4&^WXnq_Q{k5G z2M6yE?ZwAXcNV~rQ`omQV>5cV=GL2iWM}`8gVSBgPX~e zk5I12CgU%uOub{1EsRTDr=+(`>Cd;)R6~VR=H0FYuPQWMU{9;8p5v3*s*-jRiZg68 zfP_RhUH{7!d z>;cLz3$bGxI@NGxq4I>Ckff7Ds?S`^9|z^*qGVYRxKfk)$U` z-8COge&nDXx**$Pe_A7ibco{Ktoyv%bC0If#%Ru~@R#e#$0TBy&3GQ$ZtU;7P%w5Y|YT{2w9n4aa z#qweKb`H5PbtvedCPa;ckO`OSij#pkcn4+yFcbh`u;JgW1caGzMK*cx?bY$JJ2w~< zhP)3HXxEz6G`YdY3gftD?hORD@sF6lhYu)6%VZ(nrGRA_QsuP>Ipg5J3P(9omXw0! zfT}4pLLY~{2CFAA6ht5|*E7a5%_HP6V2&@V!rV)}@kuKYthkh&@Mz$PyKUD&ls=0Y z-ai1E30(;++fnk<_oL;j^sa!T&npS6O2zx%O%Ozeq>80#kZ6DETm+HhrKss-i)L6%l7wV@XW> zMETv$ViIUViNfy?ekRaxS%8f=0<8-*6~nn%Jg zDmA3!3LGBSK&(Z?{LxIRzS-fUK**U=iV6Z*l#Q};*Qq#%S27P>QsY?u-I~(3dA`(rOWS7$0 zo{>pv62yMgJhLM23<}_Yz}{^mIUMT2&?XInHqcIqiGu%_a-I~Rr3pEvpQ`DIwgQ2e z$iRqgD`Q1%wO^u5RQ$bwRHiXnj4x%wCFML(Wi?=wak7c%Td~I`fMKaiJm_`M@M)on zX0mnyBwZm~J|+lccliin4h7GzEHjTVNnVetABSZ!=U4%+9}A|Sp_ZS?Y%d);D6AUH zcHzfeh-Q_h&oU}jS z(%qv*1}B>aoO)K^q(=*|^!43M0w<*n(?NF*JouZd;mTsuk`PUUC`(0>qrjZIOhSxn z&?Xd)K!ToM5v{5(q(wcF#PL1-%5e48#x_zkBdWV@5bZ3b7DY1i03i)w_=@lm)+Iu?O z^B#StVV$Pz|2G2tk6`mJ9{sOfM@=sc)#gWXF;B>DjD$|^`Yw;GPOP4G6I-p?{x=(H zF`vWlf6s!|748bg3q*9Dm`2pJ!RaX~iIdT=)kJ=pf8SGI8|Y<~Yzkn~sZm)0_z!gO z(!zVe?X&#ZCPhL+#lRieK}vvwdDuj2XEH(4H@O|xMT;Bs*R-3}H_|+z>k^Na5~7Ic zX*Hc97lAQCgxo7Ey4y!ej#6ZaY8hYe`w75=Rt$h(vT@Xf#>_T)-omS-f%KO!`2?z` z1{Jo&LL|j0rW^JuY9l2Aho9A940`dMGChm*ssm;A!6Cus+y7Qy?x6xtoXDW+%JGwf zvqJI)`e>M6m6@d&0E*NIaWp*CE4zCbduT>`U}t^5cPQ-j^9(OQwH)vp0mQ8E{fRIH zN>Q)atXwSaiAafBT|g`{S_CKr3A8*=I|lpREy6CB2euLv*P93dma=+{vcjl1Ah_Xq zdjY@WRoS`i7rBqLGwdm6uOZ_#rqXCt3cY!KWYx@KtQ!fA3lv6~5D&lPjF`yy-XMfl z0_+mbJ&7qxx8VwPBOKOB#~GNWKi`ONzHXqN1>82}En6Fn^F~9Z=!xF${&)tVsSF)0 z)sEb0c*xFTNu{j#xNvh|@x6tc(yaWA9{?s*MVqG>24--+KRNYGuOBNwadhl7QJj<- zbE7_4j5KaZd9?}IrvW}W>8%H3M29>NJDpZuwY4Z0KeiC{#IcX?`` z&_!{=&;S+GcuCJjx33%n&Q-@sxvV`vn0M->S#Uz6?bykhddr+io{%5PNz_m3 zEKe8Ft7VB(MFi?<0`W64ZVy#z`-s9Ls+V}Gxjfdu(^c8N2jDDw7~1YMzTB}jZ&$K| zS#h9jGzABI|AS&Xn2Hsxo{qxEv-lYHV>+&7=8E3-qJbu?gj?RtA8A;|6PN6kjkt~F z%CT5Cevluilca+RBR->|wk5>#7{^+f)0f(nN<1%}h|apzL>*QqTZW);W>eOT?e>lx z@0V(-@Zqwu1H$H}Wdmm;C91XWABtYl5CD_}M$;|JYHgdAkI&T!!cV)b|4e26SLpcP zfuy*XL&In-a6^*aw)m$R*MuDo>$Ki+Nt#uap6?z%g39vf5^tLhvF5HRfxBr9 z4oF5s6OlZpV@6pDi3f>3`hN1H32G(w#dSt-fIg%CfuVXHc`Y{BUlciqSl1r|FNDiP zqEm^6SV?j@n1<6%A_8#+Q3ppye?&={k`>jjM6aih*2rJlkHrQ~CpTEjG7Z(w(<=4h z5Lov70f+5SNM=CRA8IfNMP*a*2QN7cUkw~@v?w%KO4vJ(qS8YfgG?v6J{p{T57)`A zK;EBE88?xUO@$&Yb`2H-5^Fdn3T?Jp?w|fS7POc~I0i)2RiOLgCmdX7^0h@_mXcwyvY@4euDqkD1{)fM!VJ+;>F zZ*wVYV)YQZ8W+Vk4PAqOP{F{j}Bp*gv>xzLYN z2Cebc#tdGBxo#^&+4Uaa0{dnwa2s3m$jR+Nr zBT*QU6LMJ^)OO?akqxN&WhV??2gVrYYs70vtNLes>)Zd<0!aJJJ8<5eP#|7irRA~> zg6SlKg1rICF2@>_^A%2iSN3wv`zJ_|Tl4k!h}uRA+K4MI2uBsL<|Tj?)@NxE$! zy)(m=VqogQUX`!v-6)@9NaqFm6tC^pw-%>!_)RzX)J{W#T@>Kgn=RnPTpRP&Ba#s*m zynwPU%%l2bxJ2xXNlc)LyTtMkT$`3Fu)Mq=9>qh|8+iB)L`lJ?jL0aX>DaZz%$H=z z`;@wnBXB9G0#KGj{l3G4S4NOPFHdLb6T){SC*rD5sAO8v`4Y~a6R1SY(^w2dV+~+A zNk))Jm+sFP;9pFDgr`lbUbv9eeXQ`eaq-=RDi4(HLr(ey$?||KM^lyn$J-7EwgKfm zYnn-BOoq^t(kj20+c(V*dfvwsOQuu@o{;s`#3lg3!$l_tJS}*(XO}ZODrt9C{^m{9 zRP)Ys*JA7wci&fTSCIVQi=Y3UkDLo3M58P!cHq|l+>8Cb-S^un=}k5lc^4zp0NHYK zhWg2r!W$z&3h2xMLQ0J4;s0jZB_g_%_(2VQwc`OA{;Et$qr0%uuRo9dftEle6u5PN zoBg^-5qP{BF(!)2zi4|zmFuTGI7jeU7*44!1vCg61El-ZYTslT6iJnk`FD1p8{v2Q z<9kGN0-?u6c9FW~dM;s2%BEqtM+24z4@SQUb?iu7BPa{CXwd(Vv73B9w-APOfG^CW zfO2nwDLX>Gumlm?2k;Pm^5i=wcT~)Zm?;lNsR6_CJ+YH zmbOxoWaQ?w(e-l}}F(4eNEo8}o$@Xrxmu3s6G zujIth7E2B0fw7ga5lRkHa92wUs(?Do`#o>?Gud%iG{>JQaF4|J{=gVlMTZf=tQbBo ziRC*S(Ue$XpkynNI%y@4OmG(S#zNez|fC>y%$1o0elv!3`J%7vU6 z0g-MIqN(oOTO4^RJ_3YrMt3RxwTC5p#Y=~cF03MQ%+lD{O5_t6*C@yU68QIg zX(7lbndpfDI}eDZeN+%+C;UK!AbZmqBmS@$Cwr41%oFH!X=J8ldAM@vyosJ&y*bGcBu_W|GhE+ zH3n{TF`sk-tpf^7Hq#FsiRoo$2~-2Z0Vp#PFFQ+cjdt{mHeEwZ_Sv~jO|w-pRIS!! zk&?4(y#jgQVPTRwSdGh%re?)TD_p;fkNSnD4%dLCy-DnOu?VN4-nCthJGNyXvw}#X zChYTlkG$5II24rXugMOanx{?!mt$A?aXYRj?SG8c|NmUVpSD&PfrUjtpaq*=BN!E# zs7^Rm4+rMH(V&{Xtg_7pJ(m>Pf5V?Al@Uiega|4no+Oh;7F^3CD&U!B627YPz=8gG z6Jye0Ha3&r>6;i{9jrT?Td`AkNk6QFuoPC6CNYYW; zrG?Fh3PEG_)$d9om~8;AL9C^!@c&{8sP0ho5cX>dZ1fMgY=3 z1L!R(M)NP1Mm)~lkuJy~NussUB9m#LFW~eN`4lb3cHwD5Z~!!P6p*O+bvjPbvUm2= zI<0|qf;byS>5&kzb0`N=&*eM$B%~eUnScD-nX=&sDo;zUD>=BMaq=XzEE)^0;BXeE zzvGs>EIx>~_bZ7OloO9&Z)2^LWhDq}85^07fd43=FV9w|v4kMW(`!|$g$xEeSCFCM zT|=20=72t+Dqy+N35>CV>=TNfue^bGxWF>-wH+CO+TdM8Zj~5QlUx&>jBL&`cUr$L zlRrF7relGM_AcrW76=U6fF0MYcwn;+teqRIq8wxdXd1oCD-^@E_ULyl<${$iexG65 ztI+pY>Vy?><1M+Qdo|G#(QVJto4-CzzdZ>M@Gr=`m zRHs5fII{9eE*{*`^A5N@o!a#>UMNm-}-n+cAof#~*0LbxA)DzKb$N7FU7ryXxu_lA>~Vl^~py&yBgBN*|gVmp%1Nj%s_C5#utv(QE8e9?!j`P z6>kU66Sf3+r!35CHhpA2uQgHFX&)3eQ{Hf7AjyUHNXnZqto}$+W#GFkp_%hI9o&=` zr4*lCfk7iRS)Lwcf!*Eu4X94RJ#T79Fw>axrNr~;A9&Y}!Jn_Ab z*!Szx>PEkR0MGxxT>kI70LvP%pwk7nw^?-|0g8}Y4wANi3KC}iPm68NXXLvn>aXeG zZ-c}xK@TK_B;!VG*HWqK$ejqWo4ct&v4f4l@V)Lg&FaEZ^@+wBLH9+1jlo6IVl)gK zkaGRy*$jUW=)v_uo)@rWu^Z_E;aV}SNpCAwj73!S63Ijy;6nC_IN|{+WZ(T`qQolv zd))7#>NZea6j)G3Awo&vSS-+M2w4?}G({9T;_dE=%1e74GijgOcy zSS1@!Xf^AlZTmaEgIHxztUIO{K-hH4?hBDH!D+=-p6 zvPA}}?;wMB#eNNK2U8U3Toif0?t}m;X_TT@iyBck%H&}K#W9iz!lBgrvycB)o5dJ{ zVR81$^I~9V&PwLZh!7nJ1HR8DVnu$ORz^UGe2-9vY0JgN_@)IFPl?|E(sIH_ph`%# z$Y4Gyzjb|(5}22e%c~;6w}tZt74nF)vslU50mIuei9jYO3I!DA%C9Ia8rlbVgZ>N_ zBT~ZLtGlhK1RAFEB3h9bR+L&Ora{3IL?}_9893h)7BrME(pvUG37T|Sf6JzXSv>r^ zxL0HxsUxJY^$=RFKlmh5L$Sqzv1!VxU1lH!iXe3K2G(rQRFqIa?>92( zD_E6w;ki@e{ZZBwZAmkYLFl}B{iQAk2^CmZZ;VL}58;PG90c7M6>kUI!^tih2^qED z<6;sgt=YqcXmk`sN~&{G>ISczwxWDVH4ZtR$&jU3x`8BUqF{IN33n%#-;d#!l6*4v zX(N~QT`zh8vSIa!V$o8#Vr}0VRWQUQFf}Rk4~%|h*{QklT2~zh#%}?8t5$wCf!c4& z-_`73Ny^$!&Q~KR1pz86-2K%6nYqnR+?W_hf_yW z<2-EWr&Tov*v~1u1#K+vSO3)s{v!bC-BZrhySFvI0CcTr3w&QxJVD}@rX@de;7y_( zj5^5|{*^5zuVzsIac2qwVr^d};`bWh+WN=J>$cl9Xg}ruKa9PDcjf((Jsg`IJ007$ zlaB42sAJn!cWj#-+jhrhCpocg=goaC*6*D=Gk5-hv(Bn-Rqb8-Q^;1pH<^t9PRRw5 zYMzbrr;+z3@*&>Pz;q!-R#vv2R+iY_c93tSnPn3Iy>FhHn#ye@{`~jB`TvXGdk;u_ z#>}cl^bR#D6HGjaufOBQ4vK$$wbeB&vcv-^H?dafNs!7sXx!q|+zJL<<$!89Z0^ye zpOEW2&;s5BU4G6Oh4)i(*re!`S|j|=huwSZ)Ut{}7RmF~nb zlrjDU_4%Ia@HY6Z-dDIHZwqA%}KX_F~SL$)N> z<0llLj1n;mB?ZGIcPbcK%1D=U_4a%ZVDu0z{p#ARyC^mvtD;Va6XG9#NE`?|zm=Pd zZ$7OTp&E-fSrP{#{yE>C)m0Q>vJr$^5P!U@jCl^e=zvm9mWa$)zPJ<8?ttGz$(kdC ze5aDC4N}99Bok9p(kD?UgFDT6EQD=_U1;Ans~XoxNT-WgJlTqlZcXjroP|P~(~>B? zRiXObU;*x49>xexY$m`@vlq6RW=PyvMoUR`Yh%iQDF2n&Ey*tXuJkk}A?1+tY>(|RajtmLcRc8PlSGw$t;y*< z-&A|qlSDZCIthDNvVCcblBmae&nYNEmG%*v@CfusWSc#SO}0fUj9bh;Qj@P<#N<)1 z_$DQr<@iI6KxKKdz3i>rMQd?C7Xp%>#`zduU2NpuxET)WstVcy8&1)r#aT5;^srhq zzQFM*E*prm6i4wMSPc2w+Bc|vkSO6IDN>a%iEoCYD7z`gk@O^W^;N(HC?(F=lqEXh z=iFXKLup57t&j9dl#WjvW&+uQD9APs5qx?bD)H!S>C8Ar?2~Q5q}Yk(!$RCR;41A0y=jr{UXK^T*BzgA=^ko?y$>75r1(wZ(>uNE*v_vwdc-?A^q;82$|mntGY>NlR$Gwl@jp= z0sg7*6|t&sKP>^U)#t>=o6=dw2{250^I9RX>16C_SF4wA6xVb;kD8RUjC`%C%)S)l z+~ov%gCm3eUm{dC;7v5Z0?~23tvr|qGg<{io&9GYbvvS&EjlWXio9Md$f=MsT!d-h zT?L%r?|z6T4bU!2w4W%Tv197Cf5O4ML~%!F__FHCy zXqc#A5QY}~cET)NRtsp(TWi)PV;$=!i8gGXMlfgiT=lF<1^*ik2EHLA9##_WOCZ;B z&5bf$ZYs%Wpa>TY1DHIT8ph_W5vY0(8Xi@1;1MgVFJz$)Lu4TyHnh{i5m+V|hjbEl zbM6)yWd$n)uKz9<`uAaBygoGeY*?sLk=-a)B+Z{7!d$R=H1)-i5k~1Em6L~58k8uC z6ynzu2sAkUZNVy#Kz}0;M}PECz?SftF|%?0nKTL(3g#i*d_fyk9LN9zC0!!2b;KU} z8pJEw!af(dC~_<4o)(7gTw61kf+M1e%7&wQL`Ba{3(5*L!9XKd#$tq!_oh810%Spt zF3Dv@|L2+1(#OLw+_qb|TuO`5;KUeAO3BT%N!6@7`Cn;P-vyvh`u1sp<1yDTf6jRh z_V6ni)`f&9ksjuZmu8lIOsiv{=q`FVa{`W#2M$A5#8D37eh*ZIIzqwQDKoVOuZRWR zC99%-i;N6bC5KjAsM&M`H7FC#a<7I`Mm3J5m#k!@8o z;mJd2;Bq%Cf>S_nDVn~OBv8#!YATDLwbzqHOy(|OBuE7W{YmrO@jb6_DhG43+`Dyl zRL0wzcm=Z@ii)(=HqiD?_hfeKbIU7RP!PK!*mR)>*A(YEr@JyOlAXDA7D7Acu!TyR zELS3dhIdgp@$M52197*7U?_ksg~+RAHw$=|g>03m=Sf6K0dp8p8~ru0GLk-dOl6z) zeN{`YHyDKm!~~PM*sqL_q=p7=AlZ+)x`)e(x!rdt6P+TSs-yXtT#dk^uBF@}MV?nh z!oxa=hPssbN#O=uHwbP#zAkcMUS*CfvEkfLPAS*PVgo|MUhNyiE4q$njRY!?p8=s$e=DX7xf8K7nOw}!0*`9vD-C=I@E%jx53^tSmWGo^pw)lRIe@t< z=7m%0Ynd9#7g-F2YVXdDYk}arP{=h&T?o7?I`e@nlLamO@JGTV!dq%2uBlcJNkF51 zrmWZxNN1JsFYJv&3|x@E$dJUj%oyiZ3$OuNk|{h_G`TWsdS8klG7%KMaK~q0Gh|L~ z9uF!uhu7elv5T8+^0K?%#?(SpK@BW8N6ivD^$B4u9~+s+@_Eysi@`}@MZ7sMGr^pS zRt8&=iX0h@p%Kn93losk#(Njj8cNsj^nQzDzE{1kp4;KUHDaVOZ&~=yH!vGzj!%V zt2&9IAS-Jt*+o}LXr<<;b5cWVZ(QPu;?xx?5glsGr^vW00iIfZSi_Yb*t98JKjU1e)4zYA?bC6cI7ZS`PDO*AnIDAzPcud zxgqwYhxb9uBE$ca)?)z2*9j+UC0X@jz&bUJ^VH)lSd)UO=3w!+i(zseU=vF%ml^`R zbR_sYdJ^U-+LuIj1Z|UzDt8aO1S7<%-eQmeBVn-SX9S@Tb5!+KFcZ0166g>VS*<*E z;SPC1Bi#N6VmT&3CUZO^s7XVsVvDt3oE;pl%B>DgBHZv&4lu3-OR39cq@_K&vkk#L z{_e!gg_&UTMqt+>Mwd^*+Cr?;gM66W!P(p;BvNtqrP{uUS(EXSdmZj*Yex*0Pa>(P ziU=13k)QWAwG(=YL3KrB2GS9zm)IZLo_p56OE$HkV^0iWL;H_8r#qoa%3P`L|gh5B zo5eL5sD@wL!fGL_Y=eV5HF zdI}nf7%aWLw5-K4T?)0KKkcOafj60?c{8gBFUl}ASTqfbRjM+jG)Y%PR|7(ACbhs9 znhqu|T=rOL(2}G^15&F_n!~EVd&f%o+@-#F*a$j(ij1|wTld!Xa`d&mulVa8kXcv?y#EHa|w4e3JV7-AjTc>1{P!&MSaVE4{6%uVh@+4(q&Pe7TA zb@!!+n=WdR%9l{|!~lmy#@F+T=PvQ$5{+R-!ToH8No@pDG6`gdhClKey&5H|>#C*^ z5C4?a;rDiwAwPNG@k?p)i=BmduF0&O{t9IF5$VP<}V5E&RZJe1|0Q3+H)_ooq* z;FJW`HJ`M_sODzbV4`MTp6jdrC5 zs@$u(%fC^nLR-@b=+&fsq;8S&ad3_IWH^=$q9$bUkA8EcrY&Ty zZJ!Bt(H8E{BxMP6bOvu_gw(@OO~c3EAsu4_TN(kAs|2Z^r$8GovP<+O03FO!BRM9j z@h!#Q2yho@?dx+GIqp=^tde1%WM+2y0-hg{>(shiEI6Gv8oVufQcCL>7?7n$@D4pd z1o=U7g|2d{OsJmBSOovW#t{w%U^Pv1&T?@?<}7o`_ZAp9GfA?X`J)h>=c`-g0-e-| z_Qa;d9UxpXf)vapZ(=JpF=JJVMntm!BLQw8wjU;OvI5eSMA5cS%E_;eqx>9|<*Qzu zD4HqAG)+1hu{~{gL=#fY+-fE%!>H$sx%Q4+MsmK2GE#%m9JfMC8?ge6$ydor8v2nI zbPZNp!%4J9azQSZZKh$72a-*kWrc3YQ>Wl61u~cQv%rxrQB7#k$xz4ZyHF5}=*l=z zeE40bO6BE|vNCy_&oNWM9QPe}Uv%v=d5}a}(}F>kr@|=^{8Dvj@>GVt9V0g+Z1pzj zTQ~xq?d*7s=~JUydnC;3!%wsBXQC(zxG zF+k{LfoG&S?d?`Fi`hDqx#k61BdPE+AT=TbFhQrZ9d#nKW`=lcL!PZ2fi|R&Oi*0M>QIKPDWgC{S@V|o% zQQ@=NYQ&{rr&PgDAvAvdVxQ<>3!s5;GK**=G5us7a|B~ij!|65%W$($9prL>U)o(2 z-S_Aq(*k~IzGJQqTxSt87oiIiuWKhU+ehIFH%g_(mUVqN8clOZJ%U<3zzp_mhjGW@ zml8Suz;LQ<*d7hG9=zNhH!jr^mbTo5FbL{7_V1?3WAG8qgJh{)rDUqO1L3<}qf z)ost*-{H-jhg7j~Oh8OgtFTweNe=CaMEW;3U4INYY^I^)I5m|S1$sDU87UV_5lq}x zi_GLlI$~BQCZVy>pi?ZL{wnhNF)CM{I~8abX#1mFs+utq# zO~cS^tnT>wKsrf}EdH@$mnwttTb{`Q&m@=_9Fa8qnG<=zxp&_H0^dTbzd~xJzy3j& zBbVY5$k%T(hJ2NXvK}D0=!%0PtQ~WSRnm|FBZo&2XZX;RBsj2FI)TcqJWiN;kjtZY zw$GrRH=z=wo@^BIG+!U+HMo0@Mz=*+z{xG*RkLoiW**WIi^m ze;dd6-+|=Q^INuc9*9&cJtLrF+!m$0{)#AyUKPG4~`Nc{lhWc}!ueG9I zO27y<+2l?({*ZTfBlmY&kgz>$;V{2f5r#+4e>EJhhqy0&Pu?+*REk3K+slEjO zuZ+lWRIX5Q7@;X-$)pCKg{kJItl%nFj~oQSAp_Zld#P32*F4iU1b`w@IzXD0&Ms(o z*-Jl0Z>aHp82Rtgs8^3)L!~m2UWm!hbClmJb7WPEnORe~|}`2ESje*)TW7AFNmy)#}k)(cBwF&jtVK zQvc56FDIc2YAPuwtSTh>B(!CbY9qQ<3879QTQ?rw!xLP7J>4Hf>r`}FVlN5}$-88r z{(VJLa^JpG?qmF2h(3-s5yw<1dltgA>MZD9N~e+YdtuZpI6 zULHY5aBSa>Iom37ELDCqWqKtV&*#vXaTf+E`E>m?u`I(|a6i}&PnICKnV+hf#>qau z+z1v`RAP-FHMd`7ppzDM4w+Ta?x_4{3xD+V8TnR2dA|p6wy|U(n^1-;>eWa+ta^VTl$SAIXQ?d?^x*XMV$7 zH#mc{h-_bzlh_1XoKI2(*@ffWQ`9yUO_U!~^qL6Rhr;g&R-(?@ggUxk&mLKS#T56M;LMm` zYh+!!<=^}pF@C9SOI{L-|5QUT$!swwm2cULhQc^Zy@wq*<_pj?SLTUD!iw^o$P%0f zJHI{nCX%f+e+|uvgs2aE5q$Ra65M=VU8uyJRPuRi7;2{~$yjb*xxwPl%sy&v=-?&)aYHW1T^E=t z+%(PK1P7H7LXo7HU{o7WbKtw&za##j)leN$aZ(6g3NlXS{+=(W_oWFLDyIwl4OM_C zpD3Kb4e^T5hXxxouA*Cm<__;v35tdWsw6ywl!`8N)+53YCi>+)C5mKIaFC)BWDW@e zo-T&V3$&C>!bFR=QANF1Lbt)&G=Vg+A+rpLE_^}76;&?8s#t~7xpomf^mC+3c@z{Z zB!Z_!E0lXHc_&e-FKYyvCBhLkT3y6BY)vg!E>92Ctb3r5#szZvX^*_-biDW(11c}s z4EHS)T%8I1P~LRDzCzeLNqu(a8-penHQvbdt~}ey5Nz(5<$(4WOUrXG`FV?8s}kf- z0y@m}1G*4lSCe8C=0N4)nU{(6nU=~8L+HI3X%h+{=p76f z+u(?f$0TlpCxc>CK%f507?8iIbk%&g8&L1jvzV$jw(=jTPES`}k6D+`u!DoH9}#$8 zHN+P-rZQ&j)59|)jPDR>zp4 zT5N1>OaXZ6x+WZ0%39@(MorF!Nxfp8HXiiV>eU`vf?t1Xm9m~%K6l7%rUVM2A=#aXD6ZNZ}>+$nV9a!S-;-GGkpsww+QO=4x4c=%Ys`9==u)@~R zhtaSS?s~|90+UO0F?y?MOSM58oSDRs?`bx~AM{qU;bb)U_J9I;I@Su59s($8Tj`>$ zXm_PSBS;2Vq0`I}&#!AWnMJw@W%IdenZpAQ#nA+p(zViQ4ULQCUqBm;p~9GG(>cF6 zroI)h{Sm! zBXFZ1vbs*pP=8WVkiDCQs9cjLQen%@e&(q;KbEKj>A$>>E?NvJbu|JpbP$6E2u`cV zm1)hUU(P3Hq3mV|f1D1=-yLSlX9PH?B&Q%quOO;kO4-oXXM9hW*dNv+P|a zIdO}cvD?Wv{Dr-LQi@4?d)jsJ_u%AF)A)%r^q>9}gIeaOy55HN4^Z1opCue#WgD** zImqPOs?OEUGnCzhju~b_e5259&K&Pi7uI)BqYoW#8(~r(g(?f7qg8H% zx09oIHTp(srZyBH>#0i}Mqlc$25C{6f?2zVrJkXPs^{1jn7;MWA-%b`r~Rg`z@??M7xi44wgnJb5ih8?w6|CPfrnNhyD-X1gf(6 zlgfVG?VKJ(D za?g6@_BtT9+G@IaB>0Rqt>o*LWA~29D_MT$OJh%lobV*eJgfP_qiU_%p-QF~6~NMu z<5rU~E;&l%3H7qzs05;#(Vr08Q9QczmGy4gSPDPYyllHB-C&i`+EsusKh>eo!_z<; z`Yi%7ihXs4mV#TQ96D(<9I_Tt_GTyQ!Z{ynn_sVvEv9AFA^rmy{v2NpcvB4kRC99e zddUc2glvVR<}fLot^I5dQuPN8jcWnQ7ha*5Nr0Zc+i2FOUeIyY!>ZIZ8vbjgWfeun z|Dg&ch0~S)UL!-K4>#(}{7-6r?*f_ZcW}~=`Y z2fn+;*}{yvPfuo|iUpEFy(h#v>#>I5UqA5QQ~UrQ2~ZN?M7!-}(M|P+<4Fe&cz2qg z9FX&X(eG3hs$k->c8aY|ZQ$=>lK~%ORol_V!GMzY*X~P-kQT8Sx_mC%n}nL>?G`0N zco7y2D@5d6uk+CJ7tF|%oHJI)ViC|6a2p!c2DbnH5B#I>2(YN?c`fH8xPY7i)=_K@ z`l7#>WPAD!z$t0z$dImU7O${dly}&S858MGXq&a8SUIM{8w~!Va9Os)(CqS7!xyN3 zul8T*rq!~u?}!}*(e)Mg#JgJA(8YXr(}HP^AgI0$+N7&mF{Ia(+f{;8n8?<@k`>lHBmWHYZ*>(=uI@^*(i_bYPuKm%r8VwTvtG3ETEt-~`|I zr-B}X)t$Uej)kj*})VC>rmyW+N}b{$xF6~ekFvV2c72? z#)N;q8vZeaJ1qvAu?5(rWc=^yMvt@VX1toi6cN8w8d37c?#n_pi-pI|P*~y^j0S_w z_>@wMYYbffvDLo*lADeex<+E2z8pXsZ&Z{KtKqI3~K@G=Z6v>K{j zg|j^!w&`?V+xT6<>iFpu*C#A&6|b^?EBDYwkpL*|7JTFVmC+EoH?PMxZ`*A@7=GPt zUAZ>ASL>!y@JYs@iz$R<2LFQwnk@j?CfH~q-+A2GaQpV~*oZ@!{B7>0j$mCfAz6`O zT{_D?E>EK=Y>7$RM-(TKlWcG3r8)CsoIU|y1^v(E0Rii(xy{W8NCIcsX#K?AQ5VpD zIKjO$4n=M33w%=@4O!^E*cG9L8yc8f596I-;Vl(%!EK#8pe| z1%IsA!@6f|OYB}VoU+@Wt_toa(U*N7n~rSTb5e_#_|Z3e^IY%jx}Nq8_Q%tFI{^;~ zWEM1MnhJYH}Z=0qWBL;mL=c*y~~sam=At4#*}v8T-%x>V$1?lIA%B-Yf= zGbG|1V6D~UiuLv#Wg#MCyU{aA2P%4Ar7Y_68Ltmut)Tuhxf(2?x9pz?W*@QdcksjH zcYlq)>JW(|ee@wWZ##p^_}tbMB8Ifa9NpYYlo7!P9Ixgea`$3_Zfhhw$EG~v_!<1_ zd-KXd&vHSIMK5q3_6L9Uxd}_-GH^G5b6Cm!$=!mQ&Ix-EkX?MB|5z8YWY=jQ&nbPg z*&AkRmQ)C^Dtel>BU*PqDl%)o#7@vP4Z9bGMA$vwi}Kxx;&df&-wcpciZXukz!aR? zIknoOn?-}r1=#Q%0Y}{mJ?0SjF(s)4so&#{n-2^RkT8km=G)cQ` zolr}@>?5D*poMM`d3t)PSL-y}ZYHY88*X9zE3p1M1?D~x3|jYL zxz-TXZ#;&E@ve?z-X(+GzIjR&9Jmmg*(B@0jd zEU?SI$)I$u%=-RMv^fy`O~>}9aB90a<_77^tEF}Z(VTB`=ZVI ztR8xFXMX~oqvC-^7}Z5m>jaxZ=?(SpiLB>(2IR2S5Ji=mlISK1a9F*Ya_YC+5B@;! zwMX6m$Hb86LFLn%XJ1Oeyo4JyDz!0gP~0hUZ>fASL1kig4$Os)zY5I-xi2_y?ga0w zU1gwo19S1k>Ynw{@8Xsg2KyvQu4!|-M2kMFsj zgWn!beS}-6;cIWai{qg1ko6^Yh_7ik*Ke#F7M-&jWVB+>%V~aS^RbJS>qE=N^AW>L zvy~rXEeX+?y{JniXNxG0&!cSj0(Ga6JB!gH{Q{>caM-`IOec^UY(NCOTJl9K?V5x2<<`&Gg&931w9-fJRrRwv(!@5%Zu77%swjl)@--$hCAM&psU|{ z1zQtc=l`d?d+!8^)aIHS7O-LBivsBJA7dSh^fw;}37$Xy6-lwXWa??Mx^{^1l!R?x zy>74c(66KLouDtf|0U*{^NE=vDN4(G2^X6=#?qCi)8A zl>Y0Q{%M6b&wJX%M)R*PAvr&3t}J$19bM#yFZV_GY4O1LSoNf#T44J`Ptt8ThZT+d zZCBqN(o7Ek-uL-HJFn0C+J11d*BZ<3ltXiBJ47Fk!>q6Y-bj9@UC}vM;M|f%O&8cV zZ$~sc*^?T`l(~)24eE!1IR*V{r!Uv};t>>S5^W_iCP)7U(LEcvJ>eL%ea6w;#X|#2 zJbN}w9=9M}I;!q+?q>(Qiy#-xbeUwTs~d_6v;}|VWch%Nq#5C`tXGP~foEvqb77NY zgZ!-Tb$+T_EXfNr*H-mRN9&KF;ER_Y+wkg%TOIq;B9q-@RGmv63qzSKh9g~{V>sJm z_@@|5(KL{X9{yYo`Uqp!`bz+|gXTrYf7$grobKO{`$XxavPDfWy+Oxo{%1M6OAyoc zgOP_ya^r@>)wVct4=Ke9BxmvA(#CC1MrY3pO80~5s9JjoM~Jt4{BC)xMyJ7wObpA- zpX@K5j8aQN=X3K?&Fijz@({>6P&Lk!LH3pSsE!?%x23YK!_Y0-wOvgE`8Ia{@On1C z@y)!Hh%h9n2wICGw5?4}Ny_uz&3|~(TsQIk8=Exnq|GfdqslWl8}YW|&bUA_yXLnv ztW+;Q@d{4%*y0T?5AK4u$f1a0fywvz7(e+SgNro}{`+|RsTv%Eq$m`}aw|7^nThcBGg2WbVpeTuaD7oR3Pk z_=~fHi({J2@RZymsm;1=jSQ8&>LbFiJdOf@^Hp@Hpm2j9414O>UAP~p7?=&8yl&XfdcDyfih$-c=e96856HanbJ z(ZFZJ{t@M3PLy#O2#ZAbv0nyW;JM=$BJ50Pab;!OjxvU(+f3VTbr-s1&GB&+KR8@( zT4VE44#vBI_)`8wLAcZJDnfr8A0OYFyuO!l6ZD2MSms_!%&WPl5{g^`nu1L#4-|gZ zRJj;9HHGQ>yv#Y!HPHe5Ei_C~RwkH!;$3xxdsD_@&Lno5I1+C%AS5}!&I2&>7gOOZ zf8Nqex>={aaOoH_qo{QrWsXlC-Sp)eUQnoRue0b8H%v{_`T!9mvSP#4H^O||tSU5F z`uCi?QQni~w&B48!gia-uLmu(TsFA+cBVJfV74oMz|eDfuQ-omPqRlx42@W3$6Nnorebo=X$N7Zu0{# zR)7;&Wj2#If4Qs8fD`E^*%p+Ja)opg=;vnT{^pBYB&9N*hOaKhBf zFT8(kbom@l0#ermAM!9}bzV-DIlQ`jo);sP~y-XMCF)U-7;Gmq}q*=YGq|Wv_aD z*PDudT`lRSdQEWV#F>K7YFQ8P&G9nPkJ~fTeGNxDPdnA+ZMvW_Aby}W*MY(}O_<1d zGJfz0RkX%# zf6>7ET(I{Jt7pJ)ndisnE_EoTa@6B*^>aKefJN;Ltg{De?6udNjiRaa$OifJ#TICd z@SveC06%A1`4K}NdkOoGZMs{1i`z~Xtr>DUd7W(_)>M&b-ii1p7(C^O&5UXRC zn`qDOWf(bHrH@=jJ=o82h8cRE&(D^3D$ugC?dY{0a}x_zjTlW4J}xD>ZQT$?O<0u;w={R4VK zb8ZZtQG4#gIs~Z9y-sU~kxuENIl1-0XS>8(+s%rkK2Nq zQSG+{Uz9iYg7%Up1l@KQd&;t^OumIsjp7l^$q(i1=4#K=?d(64JU%gJ`du^v(}Ksh zOmOeDJQU@_YAmJ~YU;1;;SJF8K=;B+STco@nIDHS-lPUM;l~mU_GlTIw_s5S< zhz@y)3|`*z=?*Ynk=9+EenRvbBtkKI_tQopgGbSBt1r-Gxlm@y#vR53`0YOiKU2uEu{rSz z3Sk_^SO2Qg&gW$I^D@%Uk&8pfd&_?-K;{6T;zZkCLMDF#;Wn-bWX8t419KR`t^ItC zOG^YwYcgfY^!i<(Y4v=tjJ^CXN8#`Oq4Q=lK zBq_Vfu#Mkx_!784-(}iSH z+MQeEXS+PzxScP7tl8|9D2*Z)t4H_jdlMu^FCPwU2!%MBR?S3sm*~GYqEK_D+)ar?k5aTLa9; za>}3>5NSl*hBWqf6@cJKPj8AF>mQ%%YohndFlbKPC_m8su4p)Q3dh6Ik;si4;bG2; z1QE@m|H2Og-lRbD@!nW%S018$OK_jw8`7q#hxuQ!*5d*%tUe-cHzwVfQxJgU>6DrF zBF1jB4OV~YKg;Bho@3^{aT!=BcUN+otIa63?&@hM@{YStY_{p?{vW4ks1q0{qBlf)K_9Ov2tqf6y1cxSgGR%35%XA@ki@&{a_&(^l&uoi7L~*yoc()i0zOh<5 zjWV*J9^>nF^7`vCUa|_(>YEa~5m{VPY9SVPu5hTqF>PMrK;csaw>ZXt+15^_q&RMX z_3UUtIZ&z-nO$r5QRKwPJP}WRnI?GnZaQy8P{Fyi|F-0yP?Pmf_W!RgshTCK9^m~! zw1_SS?&b4Iwa=Lq^f|+TnzlFAi*=>?oK7>dRs+(S9^3N@;4hQ8)1arioej+)^Hh9X zlf;}~ma}g3=bly6t#E=4K;CR?-<9ieY0&ylY@V3R0P4>B&IPlYP&7yY&lUI2@MeC6 z{A`yZnc^u=O1FRH3G$hP=5+2%5jX4D4?UFb28*z&#>+)Nyf*H94kkLicPc6mmht{B zDFyhb2h?fnL-TqND=)vDafINSu0N83bZ$eu?5d}!WPS;rsej5acm*aDE!`HBEj~Be z2&(qrx2nt^3JrXOt*oWk@NP1tvw@=$)=MoinO}mgwS9D%&yZ9u+x$sT-K=Uq*ZvWz zFVv3)Y1h2I%$Q1RcCNg6f%u28{^8%v_CO`{xFh_&5vGZf9Cpa-o#MIljWX+YrnC$c zNDF1ZJE`cIPB;4Uz<=Q}^|Gm2WOwvev@ykfYHMpPTrmC3NlLF^_+|Bc2Q6vdNmN4B zVcbuE}$E=REnIS3CGuO^D{7gxB>b;=V@CGHNDA#g14$nZwh`qO~sh0Kde_Q zp)*;1mkr0o24V5da?zdQf4iMKqrfYetnvX#_rpx}+A!y8uu&1dNYuKM+;j%ipZR*( z{d*?W2VERm;8D(y_*h(OYw=FehA{6mE0b0rYz7ZkSafTStC{$4+5Sn{U_T!d_APkaG)JA#?705_J69%g5r|ZHt-;VtjS`Rkm^3t_wX- z4iIZ=W}vcA#$JiK_WUT$sPp*HuB6uP%&6|~PSJE04MwY80fPhb2qiyFKwM=S)2v;I zi~?5S=5}3UHB95bbB`EYdoBrVw!IiPnWo%7{n$Jhuhm$g{JX>aKk{ViIUE8qG7+6S zZ<~b=9h8GF@3RLD;A!#_2Dl}!u8m8)eQ;PRwKV(rO!m3uw;ZgKwg5cGVK#qrmEH_1 zDXkhde^jIrS%;!PV)crc0emrU@n;k_yWhM*LWZ|syXDzay>A2iy3eLu+>7ve5)hI9 z0}|!r;EF7}LtP6G&2AHNp{ko^ZZT&nCZ{vM#dhw1!`bHp)9z@tHo0g-rLN!~u{ft0 zAj9ARaGj8Ie2>)tzsL&fJj8kcymh{O%ss3Eb$!M-3D3^X z)@|JEw?Y_;Y=`4MIM@k2@E!s24XY+`J|@FKO=f;dJ&V8BCz1s|*}DGZYV*{ZZ|IN3 zen=Ju&L8a=U<&r!tk)ly?(gE6t;Umzyt!{g;GS49+y+Gd1;aj#xk}pud|=&6Bv|*a zBKLc#H{YJODIAG>mM0`7b~~RhvZemqF52^6(R2Fo5Vyj=WZi22zD4Q7S*F_6-*fr# z9osz*#5PU#OQBrVTordD9##yd)=SPco#2hXRz2ft3i0`?f(^Ihd!x=fd(4=Q=7&9G z!4+>KchNqQ z0#SJq1fFE24ww`Y;Hsg69lTA8wBI7J=DS^gTgU*s2E$+0jjp($S&u%|w)%ggNj_|}I=InH~bIaWhXWVOOeMmcpQ5H5O zt;wzO)^nqPYyosKlW6UPc(qA5wP{LQ}s5Gye*!dc6;3cQ9pWb5| z(xV|mlx|;HkOcpv>TJ00J)HXi$r*Lrmkvu6_SvfkDTjsK^C{?~x}N~aUK%+IUW?I* zZm;mx7XrWh1J>5f=XozWZeWDYZzPuNaOI>KltcpG&JGWbZbuD5phVg}#f1}p#qG|N zn;k9zbhne<#P$rIq_}Ge{67P^Lp%VY{bkSNTkL7i$BOz%PZFTSy?Y~UEuZ%=f!izh z$@YdQp0he1(MVFw7~}pjPDRp7KR*Cv?B9Fwip4-hsH>MAN@t=jXaEH>nmq?$5)WtR zv_J>V6U%Y2HD)4LPM`LT&&+&}42h)M72uHgIB3H4_{_SP^ir5&^K|@dQt!vU z@zgZ+_oDn$#H=xb>{jahxUtSYy7?(vYivkxc-xE~mvZWEf6ec|i1t%)O~!uTX}2mQ zK-RZcKDtk)gHG+xEJqM>TQCCr^t?+%WV6m0 zuJZ1BId6~2)0GLx_%L3q&>CjqQYIyM=Wxvf^EUXE5!ZF*AG#6qniz~t)!x{UE92LpBPWeSs54M06l+BV*r1{R)>p8G5}Tl{UL%aX9_Ol z;^CxT-r2B})t5aIbhog`B@A*h=#XiV@wG-D@gwwdLO(nr0QuuRUzGCyM!7HoZSR*P_*^>VP6$+sQSG->v$%2fyjGwC7{uGT*sf z_wB!f|2-k_u-NTAIrLX1l=&oG?K2w)ARU1yqsGc8C?+~h&PTHj#Zi&mE-`+Zjg|{q z-yNC3i5S6_2}jF`>q~Gbx$JWk-{+MMo^(sPo4^Uv`GwZ%Z~MEDfnFD#G5Nh&^Dhx6 ziyqLhXh=zz4$K`$Wqvp3hKy5Vokx<;SMUuUR&HUcvk zFM6sY6{UAe*^f+&DdI4|-mT6e-dmH_9-G|6>JZOx-{)|~r2b-gM9phq>nX>pVN8MM z;6V71A#)@wX#{0wcZb(vSd|Xuie+#)Jzg+TR3};TYP#g(GE|h1r~;tm>$PD3454}y z$ZUom4IX9(f8wBPCgU!4U_ z1W(&b3#kKX+q@1l4Z^gSB6I|F+SnFXh!sqHU*HsYEMuzD!+8`|uzG~8n9m2UJR`qU z^^=fxJ4s-VG>NZ115D&r=@}6Ucx+n~-pbYsfV>)Z{D$$ImA?gRFhilE+~AHp&bIc2 z&i7RA`OQ1Lt$`bPeDb&cEGTiu^J545{Z>`xyM{?7yEwK5hT&b{}~8l$Sl*w3@}o^#JN*ILd;`1O0;Z$J6fuiUdQ)fIjCj@KN%Ep_J7)+Km@ z*inUEa-^?@Hn@4dHCsNv`G3HUSvGn#|9qkG^;K-*bQ+o&bNRPX`?V9*ben^*)6;c3 zSe?`jW-4K4KFWYN^zZ1V0sCNu!4Z7H?G66Tn+xDWlCj;fEU+WU41NrHZi`v5HGk=Z z`&(DCUyXh`w1zN;@0vc6>KhRP2#LPVKDCPU{0JB`Ab_QXmryzt4p% zu!8TC9JWimHDMAM9`MHwO%Uj22`ZlW>-t5oDs|a4v4Z-l%l6BwV6e93vSu9$%IwL- z?oNr^Vvp^VQX8u)Uufnx4goUn3${s*T)oiU|HI0g>EwL0Wi<4`(b*iHS7!=GwaT_Z z!xB2|@i8|yw<_D`1vLh?i{|+Zhag97;p_pEB|RpTC>8;3RBKrO>-3;5*Ean>Ze2VB zFxRec7hX*sNu8!Mh|6Jq z=bgilXf$ZJmaAxvRH<0Pk`y;LsjT^0&*?Vl`fkj()>v*(ziFI>tXj-yC?Y4)`GE$U zLrV{5sc(9IPPvZ+rH;r*^rqP{w6_BrHE?d52`e7+ggBL(aOlsowb$JL(z5%qqSTFW)-r0_i^tI$ zC?n>zK4Y(8HiN#rbrfsyO`@l_Wy$tnjnF+?pI09`^gQABtugB_sjnKoTn=s2Poqj= z4>B5;hzI)#2@vNXaXdlsyqr?Lm;ZK-O1JUh*82{C#-0&ru%oRa*ML>85+{i~i)QZP zI@iT~uszw_dx+OhGv~EjM zIbjuKZW7F+C$8||ZAJR6euAeBzqPfPHwlEn3Y{7%{qgwvt^vUE0+F2Oeq{e#EM%af zx=}jJM`EuGc0ZGMCLvSzVN!s;Q~%y~jE*ahl{-TtB@za2d!l}u6!CI?=tJ0OMQBd- z@eyLZ(aLK0`gqaygJE(L-FWRyELh^=Qe~p9E4bty=G%Wg9|fo%;Ao&R1A8^Lxr7}>ZtFsqT?SID%W%kl7Vb*ap$+b4XDB2exyU@E#8gOaDUv*7v^@M8 z8h&C#saYa&$hb7Pa?M5W>=RdVP2@MeC%=`+@f zi37|`JArN1S8U0MgxgGsm@Y2&Tc+47$G)r@8>KlibA8yLfsSnjpywg|XI+p;{^oNS zujM``?59bLDy|P75}hx>pVRSuALRfCexgm;1bVDnNojj>nRym*nJuLx20Ov(O;kSV zw0;)v;U$Ad0mqL)A3Y6@WBQJhS$)rKN|tnm!%63f*2?S$DDm?#<4b)+MgW{6=fXPa z_>LXmY2LoG7MgBlEc0=7RtfZ@UL1Z7FTsp-39@P=I*2_ua`=QjlifjjR_w=A{`YSK z!`4UgQ5Or@f(lQPe?W*eMwfH$TEysVsSK`mhPrQ8BJ3X~V%tb*!_hEcAZ@;y?T6 zzv9E66w}{$EGe-@mns%#G%Mg@gj!}9ZgUH#F0>Vn;wB;rCs<^4X{E!{l^z@;?(wJG zKU*&x>G*cO63@3{ajE9bR0yvPrt(59vffI#fJZb^`MVPlbPJX6Nc@ken%#w-bf}KOlFz!zTHK zUxrh}gjQ)m<(W_i{Ex+f%PyjlqaF#W(x$$T&*CJlW~S9nZ}7F++*K$eH#WuJ3_1C< z#<*?bK45<#ZI92v+2N8 zYXzkN=H**NP!v<%w+3}Zcy)^VFB%7hr>wESxT8e5^@+viFXmq6kO7-Oq#4|-(M>lyv+ zLj6mIUz))ldqvu7Znd4zj_^)4Y=`5B#@vTQi1Y&t;7|eBMI^Z{AYw4NX~J3-}jU(4ZpIc-Yxd zsv$+r?Ff~YnA8Q9a7>Iet0!06Enb?M@WZ(ZsP_R9~!n?~#)x6_z?ue})|) zs&jgN3@NeDRG>(%o{_DIbpEcNf_su(a=sKw11{vDSq3RM%cjO*{4%xsDRoNmnpK=| zB*9VsOsiW1MuYpgCDu3pek@F6zukLE--o2!*#5==GZ>3rB=#t>iNutHzpBG-_ThFpU!It$26Nx4H&^1Kj;bnbzfvp` zoS*oOZx^2^+79L1g-$Z=1hDimB3I8-ed_r9cJ>o0Sc zl>uQkYvp76ihYHR@7Ny`Lt)gufQ*YCv_r>%`Ml!qkbYMqRQR>8c}Nvu{m-$epdf?Q z){vf?IqzQ%0nt*ez}Pph?vV!Fm73c)jf&btR7D(xi7u)pp9LD{%40s9*J+eyKqzNs zLo*jWBoRF;)#k>=egFv~!-y{Ma3`h7q_gHU^sA-Hp2)eDDWPMy^18?vML6N8(9U&L zgUthClNe5eTMuZNZS!kgr@*R8*lfk^o@6HE_xA$uYHq?bDA7Hj@sjLbGp| zJc>?3l^Ag9s2HO?uHK-2h}m%a81hM>id}l}<#pB&{s;=j!3tS&zFdfj;^gaE8fN4=<)M^(U$*4sc3L; zg}^r@77+BIOPZi(YR{~+v^3-LS3<*z&+o6U1^VNAuI{u3%l25Ql5sTJ?bDi@=E!g63bk)tdIR z+KPByXNEBF;t zK=E52zf9Y4Gz5HKypW+OoaYT9I}2?z{B*b#?bEfk<|Xv>K3MS)_JmDuk{D*oJ`zR2 z454}EQqnNAY+^l_bn||O;LH9*R;ERi84P+T@V(e3q|9W$uT*}PP49Z*@Fha!ZdruL zC1Tr3;H;MHV*%N*)Lwfx2jp~cJggIY$`?~e=f82GgNDbgMQ1xsq_KX(3e?mSa|w2v z{sVS}8^^@kII;)ArsWYx zUEzXWrl|9@_3_T7S0TXSi&ZxKPI`rlJnBA~lEoq*8z=?%zilYLUVX|1m`QhV#EA1|q&$X@1~ z3;NvQ7%O{J&Tvti!8WL8F9{^};&pz5Pq6)2vTjCF*JD!MC;yzJiuv)-UxmO=#FJ?D zaq6>A(tRUzuo~WdIFarR=XFvu-aE)Mx|XJ9x$B7Xj+sFsKhlqG00Fm&NhE^j*qqut zo5g52XjMeu>d4f|Ad>73aO&F>iJSh_Yvf1oH}fKowXh`#Wpj1r8DA>yT%f_GvP;Z+ z`y+yqEOSpwq6-n}CfqLCj8Sht7u8dngPBJe76 znY8Ozo2N;qSUYQYR5gd#hB|4l0u{(Sk7s}VCLUH=z9X>D$K$f>`#QKYr#^rZlfCR% z>CxLb_m17Q1~0$ez+uGq&%YHi>#0?VPX3}^jhQ0C#S&zOrfShH?{x9Hz*~PC^6{PL zawfJ2>H`r zsRci++X{6@%K_YqOf=N;tm+}V_%XmKGl+;3@o1|yB-Tdd6IZqPrq?453KUaJ0%-FkDTn1HGKJoDw!xFBUC zx7Y$})P=<5yTf7+D>Y1QqMNJLm;3m5NGvei*+>w+Ju4oz+4>^6~;b^?UoIPk+R zg&yf!HnlX{7zD6&hSE#`qt=Htlt~e<7fHqm6)DFZgT`m8N4UZHXUNj#W$AE!zHh(z zVirNRx-i2V@^I!5aJAgmmTTj!nP?UO*9;=b8mnT%*0)&!~P$*3{VeqE3~Qlas_-6YORmn#={#!R#LVmYP_9-A6wgy9DYBak`NsK!SD> zHjo}4S4aC7oLNdw7>Eb&Kb<^N+fL(JgVQBzeco9 z`L=56E|8$A0gEhKgNaJ@=|#ZJsHw}k>b-v^Z~bvWqp%U0+F+z|wO%P`FY)Mqj=x+6 z=0y0WF3TmkP`KJj#2&j?06|h$H0x$B1BtIIGp*n2Ue9^i$>sCC&_Us$1R~~{nVB6+ zOG{sfavXU=N9D9?jYj-F-;VfKU@>T`p)gCh2;(l)%bqhDwmzcXNoBf zJ;NEq5d5W9{@mF+>wM%rO@rN0$owksQ9BMH_;ZVb59hcslaYY(j=E)w>-rdNm+4LV zkm(PX+n0z%ez}1`EUbN(zvy1O$#8wqEbuUUf+R7ia^^I_Qw?u$3*S8+^-6s}YAnE^ zSA?u@rV}W;uKU}gT7tOo`g>h%b#?tZ{b2ps^!dH41xeQ< ztiY-qHN;s%V-@^-{kyqZ8%F;d8!qu_5NFM9%pqNo+Apk!u>a?cX!-^TDTKb^Bj_vx zxaHf0=owmaPIs9oTv=-yPM%S%R;#~B!0+{R4gW+L>%^tArV{m~+xVkFVZDeiL-KS@ z5VoAD8gc^@J6$f%V+xNa23&ulEg^R}60Rf=UY|8t6f#1G+cMChu!*J($&xh8&-2yz z)3`hZG(<37eoeT?bGICtza)`droy96UJC5Fg2|@!?ytPlw!k^uSboPRpB?}ouuQG(;26r=N5QoWV zLEp`zoq4bl(RQ6hc8;iIi7~Ila9gh%nThe@7ADo37-Jv_`P^I$k%o6{|Rj6bp$-!#5cv8`?HgO|V zkkKF}=uRn*ys-e1Mvl*Ma(*Z?QB+FQ-}+Am&Zy5{f+83S$@O%#ePsqwyQQ#ZipZE8 zIrSNe4sDIT)ulm2Nw>>PPcfMSc zUb2F?!v2=gv8;k5<~#m+BQ%aQ#0Qp3b;kSq7cURugZP&Qcl-xRkJ2V8PUPk9z#t6c zeEkc~N8}J2B+ca+Uy(&2YNap5m|BN@ANUoLN5lxXh@O2Izpua)!N+fR{Qk4GdjZvN zYzEkPn%nBa6F{5t`c106G%3wknQOd>x3d^LMfnU1iL-4Up`EST$&_uL=ChT7Y|f1gkGy&SnWxoR zku|dVTGwoEPb!V7zZy3ZBd%_-J*!1wqT1vMtpYCZ;WX5-H@a%A{TAmT!R} zq{^P+s+H0|Jw@!0ESyEg@Yis7B*oJ~|BurSN1_~Mnx;Kh5qLYlum*Lhx5wB0(Z`E5 z=4X!VqDYhHJqGZwAueiE_En@X`zZ(VXT3JXwQKOmw4 z9ma#;fibC@{xMO=xw9M*-m2A zml)95L3qRcfvCs!fj4O6ucWq90wuSKcC6_EqECg2+uX{z6&BQ$S$O1CqQq?fEpM$H zzoS)l>t>;sGqKC%O}(n6(3#R<)ZZx5�NWLT1TvYVh*1+h}K0p19iOLL;{g(;?Gu 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 z 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 diff --git a/_versions/2.7/guides/images/config-sources.png b/_versions/2.7/guides/images/config-sources.png deleted file mode 100644 index d69e91eba05cfba8843261d8496b4a02fbe1116c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35194 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 cn;{1*i}JPf^BL(4$T^g(l%iynxRL+=1Bw*UYD diff --git a/_versions/2.7/guides/images/dev-ui-embedded-file.png b/_versions/2.7/guides/images/dev-ui-embedded-file.png deleted file mode 100644 index 3a9db71c6c9e86ca736c56054dc9c0e3552344b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11979 zcmV;+E;P}JP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3*dc3e4jMgK7h4*?fFhJ$u3&%nd?J_t&wOi7tl zWs@R;8+cQgU!9*H(Hdp0CtX4}(9N|9pL3&8PSKeU0<=nf>{F zm%iTjfwv;B@$=vEb%G7v&wrdyzfQ3E=l5M*U)O107yA0(+XbWU9Qfnwxb}6S7(VaY z*Z*DrI&Y*Ort|f4S9l-i`T6Lt|4)@*?9BCIaN$IYp5IM(iJzard*S^q9AxjE7&E_9 zjK7YZ`~K%&f|t*)W9P@$5%JHVaK3yUQ2r95ulFtgI(9EYKaR-0{TcrJ!O8Zm2!4*; z-R<70)&WrX9i=D4ESO(TQOflsAj~mk)OfH zLrh_k0n0gTbC=viI-!OZbZ^e7_KpoXeBK6HNJNe$R#MaBAXzD8>Zhhg4UHUgayjRc zYi_ycQDR9Ymr`mGMvWS4s=1b0YpcDE7F%k$l~!A8y^S7v1j2GJy}I6d?_+S&!KDXh z4~`gPh8bs?d6rpcn|+Q&`K+|^Dyy!x`WidzxM}}gc6Gb$zQ?gcDV=okDW{%x`Wcs6 zyYZ%*Z@Klh+wb_EwXdxHIcxTp%>8}V>?>=^SbE3RKeEQ#wSK#V2~M(dM#e%iGG3Jd z3OXofzFA5^nN!Yu4}z*d)+{SI+mtafn2v>f?R)P2$lTxN&E@oOb^4fbKZWDwLKoA#Frp-p>n?RMq7zd0dGC|1PnlWu^=bNfZOdOxRjTXDDk6Y3Wd#+sq9m-W_De>e*)eH|N-nL!sYwrbs zu9Eg0mDnszV2@yJRfXd5ot;;`d1iupT2A5abX_^EoZx2z3w+wP2KVsL z0zs*V`)BYT!kFZ{oS7pRALO!G$$e*Vp^dywa+hj}e#FvNJIw1$l0zzQTQ!$?wq5Fm z%X{G*+c{HI}-^JtHxQL#ReAldIQu zE5ArSpme?Uctbm*HY#Q3 zt2$cI`lh+pnM0M_$c^7fuRh8wev=)zj6s;SEeNO~?%Bth97v5)8`n3N&))hOo9scq zoHvPgT3n+G-)9KNW)9b%O~5NfwBt}<`Zy<-cGRTN`MX1`bsbfBPl5nCBIO(F-SzO< z%=+V`T03Fuv)-~O|CTD)7e}MHxP}Ayo840F&STWEb-HU#J}Z+p15jx09m)=LTWe)S zDx22jLb(E3=MlD_uEZUBrXcR=w;hg%lR6tzUs4&I3p@g2yQLdji8fjyhRCyi617Gi z#wHq$UQGKs5mDyam&{^1| zxF6!de}U26Y?JA7Y3@v(t0r1Pxi4&0AVKDR0YU2m&nO>Qq&Glyqp<7Kn`Lb1w00T> zj1{&sq(;JHUL>pcdFSghqf!!gnQP3No#X?Z6b(4!GMC!~0#mcDw{oU#+a_@m|6K9~7@1)8Qr84~o(4c3+WLq)@}W<*m3c?bZEQkk7U%}s zajkx>xj-^NUohQv9hq2mG^*Q z3ZgI4WSdNq4Crbvk?xpnpEbKJl10;zpZ=N_Fcmh3Jc;)e@+tg*x*UPt>^G0O8jRg* zEs3!oxUr-_ZOv5l9wEK1@!sk4sNn-`OhOyy+MMki%Y@@>-wR`D37kmqNl|Y>jG<5p zO!?mKk0Su20z4*Exkmar(S;1F%>r36JgO>z^j0tVYY5!A5Gq8U>L7@tGT7N2vEE@o zh;xpdG^wH*XSQj#k+{lA0UC$gz(ByjsI@o*=2TmNJ;hje!)w5Q9g9LEwDdPsRj)yG zrNfY;Q=wzDH9-ia2jNj_);+qXa<(#lC}KyK)xBU#3_<3ftlYQP)rU3MwhsUTA_hY| zZ8E9oZQ@K+4RPO4AixG10{sOG315ZJHRv>=v{ECOA~!~xm=l!_jrd4wuW2FT0;$J% zRmX1ax~RIoM9=^Uz05FBECp!sIrpjN^{5?yYfe94x1z$B4XM?84UqI5=5pNN3O{E7 zst}OKh%OBzGJzhLNTnhH@pQIP8zHrjGHgOzZ(nUbZ|llx8GUh9+BE_D2^5Co50te# z-N6v!>HsS(nxyKPI~oiuLxsUP6g}^sNz+m_d)nzeF49hiR;p)(j59}sg@nkOkQMxh zwo9EJh){1q>1TL@7!jR~%kK9eZ2(4-G3e0Ou4F*kVMCo@0bK(i*rvkJk^KM)MS%yP zIM;+_!t9ejo#D@H%OC{c<`B$5$%nIwkwD_bZRpT4E+pQCu?d7K0r5d&&(0n?ww`ve6A{e}6G-L)Yz2`tWbj-M5v!gg-z!PL>0ZO>~pfUt%gj62!c3ueCGwFsk zV1ojY)k^Zvi~)2!AoSouY1AOqdPu~>p|*+UGCG@XKsK#QX-5hZMU^U+)+X43w&KQn zQEJfLF&8_^K>cQ9AltdXOr;XmhPYw?Pz+G3baAG?V%8lON`RW39ZqYNELLEIMyJKe z$Vz3Qv;rWsd=}^Vk*SJOnFvHhamBP@k~ArhnG@POqXhPbszaGhc=S(@@Mn z27(1L$Y_tuBna^_aXdA7`^S04@ua3J_BZuyvr@GsR9bqgy6& znC}5?1nVK}9vT;}hNFI$b6 zpiAfveF)Jax4}0GU~Ys2qziVY;1*~U5&C5aI?#mWXmv)*hbTMY2=21VW`ZWne`MgY zii{VA4sm>UKXu}cKrSxaI@zS9AYwdEJd&pb4K$(LsXl+@En!z&nv@(hDwBs2`+9Z$ zFK_5|dV~asv+wI}}DW>XW(P%XAlD0<&)q|Jt1p?`E z#;_LEs~h9M6U>1wvf}*X`xBWE3`H6DRTTer;Rt(P=;EIz8h%~LEO5zkh^jp4(}L;Q z8+Wu1F405;45Pt&zZJPn3CKGStAT2xf;?? z?vqmN&>_f^pe!836k~3oHzpaEZ)Ck7+EOx@#<q`CM=omLgA&2SXS~Qo?<>?MY5Au}&+1jv~gz=LSR#($FWga>pAdlMpRZ8U^1qRgho)4N^K(ypq?BfVyH_D z7$QmIj0ZN0D}V@k!%Z0!b@}MD}w>JQKy2%h(1s|ReUeF#LWR& z^~T16Yo!36NXy7(!JABjyliR+K~HBu#^h_G-6%~!9H~WQ!OaUzbhs5Q5)Mhn`zv;O zaZss$3se5$g3J^npb#sQg|j4`A=Xi}$b;6GOKlZQ19UtZxXKqEBH?zaPax2pG}mnb z;nXffKq{c1yM4RU})$p3+DzU}|fS*?zs5MWNcpJl2mzE9aKG17Yfh!_O z7)z61A>6$uTEus%MFJAKL03mDXKdskS?W+D#!ECq^D`vuO|->ukb5YhSdU z($b+Q&J8tM@#3&UWhjUX!NRQWqB@6Z^gQ#M71`7dBQ`HD5hSF$94C=k%YASibbu@m}qHfYk=8!z5 zvOEBA82umDi7q^I{{2e-FoH>jIB)_~Brmjz2tt%stM1_U(-R6u)?fZS&_o+nr<+XX zmgX!F5C4!kU-5C6b=XSFE@)lgN&7Ar z$_`P>QVm;!i|;5kjoQnQ1kMYP_>pa+7FNTN;!IY_$Zu3A1QW4|L{&=~ze{P(6?Zxk ztl5#2n~=?ca763%D*KOar(!Zbi`zPkNdt#DS4&(BVVlQ_BH=0ie%fNd+T$VDRfQK@ z{c1hq6&79)C?YfP}XtFL&v*ya&M2Y8dnD8wC_H0(!KxxSfhU z_k`Ui6H{^mt$_T87${SFYvC(RC>!8L5Fo{aCF^o{<9>o5C!Q!hW^;bss6Y0p`?*n3 z8i4*6Saj3^^ojgVSZh>Y1AFKFp*ANF4txDrEYtfQM%qTeoS$K0ODDP%i z_R^r2fs4U-Sm4?*25lkj*fFJ1&s9_J@AI?!ZgfS0a;z|g@uooHo1W6B9l}N}Z+T%Y59WqU z!yg39Y0W5=R=gI*&>jeZGY|Df&EWsEih$XmgB>34fjgA?Zc?;>fDb)rl(;}Ps0SNz z|E}^i2lwkqMD!p9y9Js7aGpcR2zqXGDmnp@*P8Z1uv6M&b#rxNr9wLlrDJZgU+pso zR4=85(j$E~Dmu7n%MLihr^u2mED3OdV8h}^UkaL3Tb?^_fY zdQR!ruMXbPQi^0MIb9OKlx3wCx<##@E&T4`k9;aWW5XFCz%n>Ca@R>DmRoz-D+rG} z`YxZOwen7`f%}-Xw1?GULf%Y%2cAL3)}!TK%s`W4k{#P|H(Yj4qA;l2ni;w`X=`*E zu#bmk3@F;Q@cyRFCSOpmsAZt^9NItAL2y|Ljsm;|Z;X`1bz_}Ttu4SGrq(L}< zCJf_frR`w4FiM7sL3X0pqpZ(zC>^cz;>d#*#!-=&ekvK0i+4C$8}eC?rA?fW8b6{E zn$|r@&ZzR#yC8<#Cd3#OSsAhS>SP@dO+oyD~BgcTKEiLqF zu#`|yY6nUItO0UBEBbtPuQgmf?og0cIG#b&g`R055U-=IVLr=RUe`|FQ$c~`GLWGs zanv{$sPL^|lkiB)jgq&G=bl;y!=#wQxum_c7ll~>#KT(J+Q#dk z1r66ipiyk7ZtZ`EY_zQdI8n&QFiVj0>nt$%R3eJClcTkyEtcMqxO{+m+xCeUnm~J; zanQuxQHsc@6|+{U>wD%aNGpV8DzBzT#ZsYK`h7Y?Ya4GzHPV78i^*6~;?u!Ysh^q< znhANZJQwK$R3VPqR*@y8RO(``lw}C?P9>o)mL9o{64m0e>jO~=r^uXY2fk`;1z7!r z86GZ4!CH@E0N9jc%6@3c2XTh2M6bqX%iXFSp4PQe4P68w{JBXD95N9|4U3D=ZDhwI zV=jz|{X=!hOCR}ZLOYQ)LHIHG;H( z@)jP~DWVrJEcw58imIF4XGKx;0?j<6AjC=p-PI=}v<=cGsfcL|0SU zsI()re~Sf4>A%{N$@iHSlwZ`tJ~3XvV()3%ZAWIMMV4`SG~r9PB|Xvr>7gr$%GATB zThFi5qM1mF8~rb=xR3lTpLn(#G;i3=_@iPXQowNxZnwPQZN||BI0prsZb|f zrH50VaM6ahm!GV()TVdp0aZ@as*;hxpfxy3**)WWKKch3dp)GhIR3Dhes%93Z>@z| zqCj|@wm~Vgqjmj1jrwz*F7VFd^$l9)?=x&YWVIjgK-$H1Ju=6Me~cQ|ZXZ)k)8_Q| z6aIJ@Op;4)GX0LHe=fR=Q(BkEpqj60W*Pbm#|QMktuJYiB|&jNr-=xT+i#HX%zua$ zJz;mwJCRo3;*7(yYaVQKSI;ywpiPV5Kr-|XNYm4GivIJrq5pp5pZmM__GbW+cKaj3 zjmiXOalX{@9!Ek`I|Y74pi|F8bdfj0cmc}fN0l8>2001a%(-8Bh!Hf(386 z7W7P!?r-oenpe(EPrm3eyJD!{)PfdTleL0a21lyHV9)(8w!!ae$&Q|fL~NqnJkCWA zN}=VCo?=R9FThR=3us3@d5XH`Z%Sey<08Ge2kH>#J9;X^;bf?n&=)GNbv+2hApi`(-%{>>z$@-E z1<heg9|~3Q0&&N|p0I&wkou zCu^_0&YN}C+1YQ7B!mzsQ1BOnN(q4ig}4e7D8#)!a35L1)Gs%4PTX8$E5!X1G2`vm zD|tj0JHHyo=LZBP>5o~GQ@`M$x*eHz#8c^GD*(;)G;YhwAZ6*hcw9CBv?1Yqzi1DZ zqTJ5O@sZ8x_XISqp{n$;67xW$*uon7lJfWT$QtliQnxsr_4G z{o!zri7daEQ#510wxgp2*lVNwf>AFJ9bSHomcw`0TV?W~-%mYg@WF zoth-(Jdq$w9X}DN9)DwB=6lJnVnqEYasN9TMQY|jG54`XqS`|P4y7Fx>)-7vqGKKvKjzB9bK*nM#?((Nu$K+LbG*2{_Hgm5LsTqo74@kS;kQ6b zOiX0x(4kj6KWNY(1`QhI_XA-m$|Wp1hTzapv<3rOgMo=3y@<(dV9XnX8U6Y{0ZRX$ z_y_=_-v88lJrfd&Hs>(OX%@8A8`7X=P+5&^BsxBZ>NV>T7p}s&c^32R1DQOj7kAW- zr9rdXi76|F+y|DhJhwBw+Zrw!mJCEh*C47+D~9!Nh6st{j)t++xpxTt?#?A8B@cm? z=*G7a8xc-StH79StXDcIg%A}RL#;Y@(Qo*}#O>R`ewV+o%lq!wJeNhTevBX8 zjyln|&~Nl$>TLa$?RM|;cW#-@5B32}dgDP7;u_Fl^c0?|wt`u!i>{un0*qTleX3Hc z3YU{N5Yhs;-7>f>7n;YG&*|j#w7*Bi*@J7yN%@tBI_k+ju!ge-*V6qyJv+Y}#;)(5 zxU!t=F_i@`n)tp~LmJ%o0<#a<=a3RYw{#LY9;Srb}7Hk2HUFQ3lGZbWeK{sn#)Tb)99F~}v zc!98ikQTt@mceBKmj&y&43dAIi=kRH9UpsvX1$)Id3= zQJ8hYirJ&MRk0K;1jnnSSd3%_p%QETMy91%Vl8_`_ za-=0B2|y-m)=Rv&>t6o7C!3<2olI&OKxUCt7Xur>*Z_v8>X;jjVneYVyWNi6?!akT z!LSI)>-;mLqA_Krl74=!o^(!TXs8(-f!Yv)LFAE}7Z`JW#jT<~9ha*ZaVwH(FVDD^ zbEipOyPU@V=tOw+NN^UFHU#@Wh^NtG8%XFqlG~aZ$XGgtJNtidrL9vt*>WU@5;=@U z3ANBzic2%&Wze-5KyPUd<6m1$a@rX(Qj$5AFYp{$%F^`v=+n`74c7pr*;RJhu{mX^ z;2Lb8W9wS?r>FgUUZ3(a`!ljRle&+jV}%GG^LMu%Oh4UxCQka9!x_if_~CfI%6o{x zT}(*Tnsaab4rYA#69+T0$jHpY;fKS%;#N_gETRe$x57)N9zjV?7Q5H3=8m=<2no?# zB(19ugpAt-Cua}g$chE*`dz~9f{6IbmzV@O+dkpRR<#K;$8z5n8ir4Kn%mW01~qo( zUyG-3%kQIU*RVDT_dU(56bHwaE#*{)K6ErybQTiP1OJyd;(uXKLL{cJTbX#c9`&O% z0rJ-q_}Hcgn7U{pv8#sDrhY8(O?xqZWf~q|^EbBR?S=1g%Z6uY-r!CK%?o4f!jI@3 zA%W&jMt?S*S}TWgcYJMb8L}K*(*z=Y9c{01b64Cab>$IPx?a1(<~)BJVG%}JbZLh% z%*=&UB}ssUw*E8hc&8CfpWlEgZz1Zm8EoHVrNx_P|6E5rNBLLV)@&bnm>&j&Q>kBC z-N><(FCeZB2_1)WaNT#T|8XsnN{ysaAxWwW2d~SRM{&E(zq+(Iy7>6dgPgjIrAOQF zZ0E2_C(ex=`|l3vM()SmI5vt_uWUe_I}cU*cWhi`rTu$nm7}7dY7-Y=?Tb+t{=ff2 zg|rI(BE(goph~SOC{UmfSAhbBxC#{FDo~&hSAhbBxB)`Ob}pNI*I#)Gg`C{EkJB!N zxHk_hKQOpnUuI_fdE1&~yA4MrPC=Yo!0=A5vZh#6DZj2aG=BvrZFw2&pEm)gr2qhJ zNEo*dd>ehW*s7KM(mtW{T^kvm^#gr%ieEQ9ad&+E94#K7iZ&z+fRdavlIKpK<%pS8 z%TbRDr>6=Au&Vl1l}m*`D!NSm_A%71ENt07;V3>w!O=Ao9h`^R1UoVA1TJKqS-KT9|K)+xK zNeZUN%zT7D!C|0+&5~bvt;4Ovn1cz@g;Tff6MVj_@Jbbi4`FA8{kqXY$f`hGU%IvP zxY`Ewg7gD4?ll6nAr_B46-}rCWBq%m*`h0r9(wYU_5@kUKl^v4coky@P9eMJx9mE+ zlld>U#C(3+mSsKT`oBT?gEQEDY#Z-2TFbMeW|1XKwCmKA)ZaFjl0X!&dHn&JbZSSK zw=G}6eVJF{!sW8CbVxXoPrD$T86+o#^X%G_WE@$^6YlSLf7_kBzwQtzYhEB^?ii+S zb|ReVB<(Ws^r|DIrmSOX%R@})J(A`5mr++0Md!DcvFB74$CnSo{nbdOZgo}IuYx6$ z7=NfU^G_6zdt^0J9;{X6E`}<_pFbkHbh%}W)vKd3=n2vZbRk-TO-2miVdxCna?R!T zpBEgP7qDD4h_@y@Kti2{+}pDQjnwD+dDI-}4}C+? zXf$ZFHFNBoa*8MD@uTsA|0 z!p^|`y3s<&DplhqCME(fbLPx|Nekfilxf$_muqe}hyJsLlgYc0J>`k&vb$L@uET`` z)o;rBa{bn`XR*|5M=dWq^-G0;tLSF_>O$!tt2>i#6{zALqG!SsR{UB(|7t7P7~6wa z8<>dsa65b6ltI!EUMC20DrUF*Cf)La%?Q;cg3T+AT3s5(yV-Ikuly<8x{n#7p5xtR z$z(e91iM_c9O_-z>Cdmw9#dIx{3TxM)sU%;hw#p)@AAkk`kVLSEHN<=r_*_XxPicR zUM&pdq^Gmvm(?`6zbhSwJPk;g>-7O3<)iv#@5n@b=Sa3KzVerG4AIdTPoLnF3mRTV z-t)r1CHvmvN5w?ct#Gh%bmQcstiaG9*5;ISY8Yd1Xpu4(Vkyrk) zcfqC?+IdcsmZ>H(D*TdDrnn&NT)Jm9?W>>T^RBn@6M(v6enFWKa`sIIVs;(WNVCI_;mDc7-in zo52jw&*Rmx^GQm}ChJrdg=M_(CkzA?b^AR+lXc@6wX6;U`!~Xyyh;^WhuXR%RxaL8 z#;JYmO|@RdZbeoGQrYs$e>j?cf-Rp;GbHuDfaEn$K^xVSy8`kv=B0| z1?(!0`J-+Z>1)S`Iiv0p>FdV{`_ca|Yaa{yu}_5TEEKyZR~Lt;-z^S)c&FGoDPHWJ zT-~QV%YpC3hz|8dxK1rJh6qu&#dG4vY*`2)i^83sieatl2(wlrbYXQx*J*pj`5(d& za*mk&aJVpapCPhjU)F6R`QwL0Lby%@h1M3`KRG1ae(YZQYdAs(Q8cTUFt(d6PI-h7 z!YbzXHHo&BdhIXq1w>e#CgdDXV$)B*A*nQ1 zh%URmQaPea1qyL1gsv}si>>IK&wfK#4P0eJl|(6VU4Jv;O4Ww3vS^sX)=OjZchQ_F zqDzIi3KUd%C>zNY{55Ob7H^+cqM$&@xC#^~#8sd`A+CbIRgHVIP58ZLv;6jdbNoII z6~u#)T*h*mF*%YK)dRgj-%hanTXr5 z#(vs#9z$HcR#!Aj>M9zBkYx+Mu6{^*1OIx?geKX_A?F`36r|^!7s48%gNg)Q_emn%nZW~A3N~z!#E?JE%@Y+IjYNAx<=pDD4 z<`E~9^KnILPE!aUj|``6CH*S-O;;+oJ!(8Me7$%FB^EoyB{qsnY`pt&FH}JW^ukIl zvguZHH;0R&DRSu*RtCge2~8#L|G6oND+|G6eeNmuyetHf&Bk1Kd~DThBtH^CL(LGz zbP1(>O*OVNRz6x@z?ytOtK->$VRWyqCOinvrdwE%rKa8O!PL{qr0gx^wbeGV0VEB5 z`_*7Xlp0TggZZoS`6g9H_Gce3#)LAiTPSTJRpe*8QKXjfFzo07?ZJW-i@{)8)qLaN%&eaX4K# z%l^JIrWbCZLI@uzBuK}IhfUPjlgFcrJ>1bDf>$~lNczD_u3AmQ8ZrxKonwhrP4Au& z42db>rCEh!>h+8tU}o?kJMZTJ2#)Q^XWR*yY6)g0_YNcNi#*o2eA_>#4d#VDMyl=2 zXUGCKp|PP%=w2pa@Yfe~jW#cb>|xbUdCWT}(WGrPUh86D`y5Lt`P?=pyr0K94+t61 z2N;W7g}8y03PLcr=iNSE;}HV4$9J)&jnmUnW#hGN4zfIuz0Jy_kLtKhW92tW30YX| zA-}}Kii0kOHt=vP&qEp6!lj;Gi4$>YBy5N_;zH71Rg}I#0ag$R58+O}xYLJ$CD$9keDa&wP3Md5{3x&7= z5VtJj&RMa`XU2VNR8QQp3gP3HBf3yEMw5=|FJHXHsY-TW^m44N4gp#Ty#$3qU~z&@ zq1lnmv~<`^4k}BZ8rTu*ky{<8iE6SeZa9$i0h?P@RY79 z4D4P$<3<=uLy_`94YI!&PBY+J@w-jT)lWT)eB~dB6PiS+33IRmpqtA^{nRAT>VM!vctG*v6FHk=tYe$(iArgbp&jVdC{K{O6mT|?%O zh%l?EW(=ZjJ2Sm?c790}e(gKcZLD$Yd9I_L#wHb!X7zjKh7egMJI6+*3-H(HxHg-TDTq7bv}Eal5`U*M2eURgd8c!A zmZ)U5tvkm{2LlX-!_Ly=5GFimWaGaJNeUo{QuE0fH`PY+N1`_KaG&1%xH<{D-HFxi z#Ab8y^5g9}F}>~;qRZ!kl9V;tDu|mf8EQ!Ji0aBe{aVX2wGe@ZZ-L>s-=QKLnV zFrt?rdV43&v)+H7_x-+qzJI>8?se8)=j{91`|NX{>t5$vkvdvxDMEg%l^(Q|+ z6DqwXyKRAaTNjkbS;!;JTVKE z*PBA^_mq`l)1P4G%|6|NgO3L>18@lE;lVG>FiQ^vMw6e&EREPbaSQ{q>bc`e@bPf$ptFjBR~#D=cm!#E5)lurc(S+b&2B0LF_GzfoHM&J?| z^!OoURq0gbS}Kpq^ts7h&?y>HIZcyV>_1{drMucSIfy>%VMjJMx$(HEvo2=b5@lxn zMf%*g(aH}rKEO6r^w9c(a@oCkYRJ@7uP%I|BY4y6`m*r7en$vCvlp!1*O#0ym~;oO zH?Vhpp0S{?&@v6wDd;OWK0cnBp5D25a~@+fO6O3F;*23dguxdDsEu;>~aj-(-a<~ zmoK}=^n$>ass8k%PcPV#lL7cHm3p)N-kb?hcY65pq(<>1w+08%z`(#)$MkT(2yHM1Wy4<@hvjPJ4m8yu7(OT&H04i!Y@%%SS2V zS~EL-FLPmZw#IeLJ?2pz zfx0cQCjXXN!ki`ytly?T#PSFHM@#iHR`i4ZxswM?C@M#_)ay+0872NQWP zTzy0HaJ@YwQbh?iiVOj6xhi{Q~RGMki~#dNTI5b_><#N$h*62tHwFA&h&@nBgb_xz@bGw)#hUn*(x74FMz{@I9LhJ@6dci;g>F_y6R6*&`m_$X@Q5UaR{(fLq_(?OuAG zeKF?^t`FE3zo&gERTk$T#Bj6!RMl+B|J@e!CnNvOC2>Q;#eRD?PaW!U?~p)i8!G#L z&X-17&T?I@=qBYPlH&KkMVOa_sj)xNa%bp>m8jT9=qjU6OT5v%4XY$2@bqS z$$f8eCCfa095(0IAj@;Sgk5Q?;0f9RR4Mup{WyC*R3FH7_t2(nX}&t|!}{i9GC+)_ zIh(G{C)llQb+#8Qj-AF|6_%ejtif4@Vy6QN%Z zeY8QeE@xqmz74*kuIo)VheOu6B*GF>A5jf-7O}bb%C9x*)>`iz_h^e zR~X=VpbJsy5w2r;p{I33woRh;XRJ@0DXF%yBkr5?CZ_pA=N+Y8w#68KZ*AA%$rzjZ zjq8?cdo60zpr5Zf@s6@}%-Uuo+xjEAo#`7$A|AFoTVK5-^<_ce~KT@N`ls# z^-Pp%cb~@Zn*U*>?;)}q!F6zA2R}I7 zw+^#B*2O#ng~VSG+9(ny5d1%C6xaH?u!_2g$wG|v;S>6VK0OWyt$Wle?R6_SCt6I7 zlCJ*E8fJ2XiGbTYx#h(EQs3Xgt}*F0PdL?SXjYn^J!eaDDC!uy3&-D4mF|B zGd0XHKY}-(3elxc6O}6;W3L{|5On1Q#uiXnNg0G@skcvQM!*;c)An9Rc_Bu2wO|<*$EA|1BLdSA&qC=n+l2Y1 zG34WY@&?rGZ=6h?8T_-E`^_Yo5RwvFz#Y-Opg8{o2ozEYN>=Zzbev9(bd$bk5L5d) zSmK*Lp@|h^vP~z3j}AwIpVauGGNal@`+)W;7@{SzBtDiC@KU?O_ha*- zPvXe>IpwqM&Hd{vQnQBFl@s4#7?*3^T_EeaII1h=_psp?OmRu?rQ&Mqyw*J@#%T$5 zoTPs3`KBgx;ugd#kzonT`xQ{&#eH-mv{ie}W^&X-XRh3XTHGznGzSsqM&Ja3| zgf>^|2~Cz))_#Ikxt4d+X)CyE zH(Vzq58N_ftVgKoW)`OPVgdv0_DZqilvp%5c(iv*^3?*y9i$9G8~qL=b^IV!&o7gy zGK3E4XMgFr@xn)mA`7;O=4&g3v*wRCy*Dx*g=;W~Xb;VwuolBUJ&R2!ljtq&V{huY z!|uS|QgayRkxkitof!F?Erg!RArDra_^2U!RRlP?ro-F_WqK)`Zgtd3UXGe}7eT@= z(x7^JLvZPpJ@Z3Wm!W*)p&jxG7{=}T!5)xxIt9G%ls2p26r1V(hEf4lH0$+Bj_(3C zX7XAs$5G_XPWXv|(W3>&F+!W%sUuVb!C3J~*G^o-H@jsK6hZkgN6yyr{Fn&g54n~y zCk@b&2(f8~wMX6vyb4UR13|b1$s$WL0w*p)i2ub6L1z54^y7TKJI?Bw(gx}_OX3u~ z5Ym?)*}iYwm3h^pz5%vA8zju3FoUBHy$;4oeeJ#$HuXjsV&n``D9w z8^(eQVKqaV*Sj@7tb)7@v5qY1QEalivMgBRGP8wja$qvgx3AXgXkK2mCb^A}>GDEs zY2V$i51x08GmcYfJA7(b&1yZPUt`|+_eTFRA^YI9r;^ExaCIs`MK@=IWQDO!Xk5nt zPg~Ob(N6(xor)mAVfN;I{hT3jV8x!-yFqp08T}6C6e{h4rCWmIh@vQfjHS~blo99? ziHu)HBoCmsKWf-aC8&5Kox#q^wwsQU<84MHpCl^{VR11F>ftBo20gXG5pxpAeW-cY z?Nq3w0Rh@)cUa6S#oi6t7qQBSjB$e<*;G#cd)Kb@!R3IK`8&sPP8|6niBL{?R6NCd z@Wx#(;Mi>)PzdGI|9vAOZY%8;oMS@fIs9oyb=3z_Ahdh!nt2*tlUl%n>c3m4Kz634 zVGyGb#~Cj)80IgUt^{u^3)&9gLel5t( zKY(I$$asqwpY3oqU|g_Louga&sY$MrIcRn5-aW7-{ z8?2oMg{a2e;IKlcvKZB1BtS(6u^x$O0PsK={kv;+MtIfQn%N%I22Dvx{7y%aFI$?Gde zKA^Kh*V`fLBwhHJ%L2=-`a~l!PTa7t9X-xU=81EEzxo!SCNQw1I`#3mAfM-V;X9I3 ztjQX^eabxz{5!`>ld#~!qNpRortVfn8@;LMqD-0vo{;umz{;RAXeV(J^dnCAXMm}i zaW(AiqHXL;PmRvRm(RuX`tm0mlzuSQxbxgfh4TI8_!jUo=XfvffoM)OjTvib(_bY=EO{&vTOR+;|4fz`Z--uj~Qw+g&Uncbtp!&_~N-(5NZ5Lu+u^TT|`=*L`N!i$tYxctWk+D#C8SA-u z$GLOg_YFE!pV1VD!%+TiZ8--JC4wBnb|u+4X6rIx5>!RknDT01V3T*vi+v)<;0uMiKCF=?mQU>H z`tp$xXn;PSZq-}0>3>A-pyBgO)yX8=Vhu2p5~;f<_OZn*>5zp&UI}(#nqq!-YRA7T zr>*fkXA`<|StzkAF4XKU#~7)#)_3=B)S9@R1d>;4;BO+%J4xb|$>SbEuEyZo4&mb; zTY^&y*pi0tNwIW(=g{jui=B$D+K*sGVzwyi@AjaI=&7(jMR%rXqJCfFcT;4Y`2D>q zZP6^!8A&D%WNbHrKI`#o2V5RZQSwngeC~m!p#wHX!SF|Arf&8u)fkBm$oc(jLDFkU z_V~}xzQ-THEFtPa|FOx*gC79o-5tr3G-zyWHPQOTMP;Q+lNdimxZJo9*qdt>?j?t5pm=1^Sb?S6%J8M*KUa%wK!D5+`*3NWdb=QFOJ}5$UyB_#a#7 zrP6CVZL4?x{Jl(|la>r7ow~lL0c=h%At(&jl0D7n6G>*Aj`Lvzk?cr2Is^yU=a`B= z@W9mX-7@}E?kjYF^-LsTdGHU6+W>a8Rz!)N?rhsDZ;^|Fw4UF=$G6?RdBC;@XlE1` z4*udfNN<1Helz#8F|Q7BVk{3z*}Lh!@|9B!JX(vHS~!;pi;G%hmi4%|xFWM5{h=Uw zS^i%qRiQuE;dLp6u)bZ}y*~JE-1^3rb6=1W=UmJ2mNn7n)DW(XZ?2PhSWfB^6C(4Di+I zT~O5S!3n@;ZKdeJc^STdVZPJy#^3Pv($5)xPVCKqV2Kkf^Y5XnUPY4~y-Nx^*)xb! zi*G!bMM_a^0RB#XLbhy}FHi8qSC`?DI4j@=shMjF77TXz9JLhm0biCAQfH%~uGc0I z^zyk{;nlFQz)6$=T{dxr+5HV#^d1BiNTr1TFtk=5UQW56)fD}Rar_A4&!AU{^UcT# z%3eC)gM4CiV$Os04SyR2?*op0agGQc=AY#)DVhsEZ!%F(%DK^?K2I14_6Mab%0%Rx zSf`GVkVHpED*EhgkNBayM4}=0o6?~7#Coo|uD>gS0)|$um0&VLSA#?j45W3QC#{GB z9XX$Svtm;zWSXBVEOCPwvl!EJYIo&>z%Ge*x=&>-E_wXJgSkbtgYr%Cecde@8-6 z%k}q<(3XG5qL+`a!UZ4ug_EjX;ICwq`a`xIjzeIZz(lCv5*VFp<`+G{oY}K9ivVSN z<6sZp?fQ@MO8704?GE{e=LE%olDxQGzxk)RQlT%}3neVUPYsJxOZ*o`b0ZUet32`rLkKzY#2^B zdPyuLlYvQiOT@$hRP5Ug{f~6>pULR|kN!_|{eM}Zr5c-MaXc@wn}K4LP?U9zi|Yw{Q6ZLMOmr6|JSOMK$Vo2 zH)^|b{}lqL0eHZRR1*|6fG|;mBXNL6|BC^Byfzs-JDVne#7hF*-L!vwsKEG}uXg)}|=J~br-f#CY#qbbnOl_V%UUZMs? za!QKjoG1wN*wV>~B2>{bTp*6}puot)q@&7iL=XZYox@Z#HAU-T_b)U}`q{++m}QTS zhricH*#l0Og#M~3bE4)ge)XLxP~sVWe2o3&Zc=IgbLu!|IaS&0-Z8y)rYjSB$)3CK zY{sUY^^VgeN3x9nY9VI3M1#Y_Rz5!T1@>UFDk6xCOw7!T@rsMw&yDdJd0?R#zgTIK za1!*hUJx#^qOy`;&OF#grgsHS0R+a;h0Wkl8H1L#wiKkKq+fS9@FGncqMz?VlOC>T zA!YoM&(hm_hRL<^{o2TykeHpNhsQ(hY}xMdLTw>@Am+gN2>a_k!9jj4NAJw6tmA=$ z?QP!GRbJ^p*|<cqDt!MnwI`Da`j@AQzC)^d)4HByg_;S*WV$RPL8(pBW3Ywi=k6(=zS_JC|(c_^JQv9xf z)<39fXy_M&5fxwCM!JsHe30(!Ghkz96paKE{N;kAfks?KU2LXK*2p}LJBA^7s(2*K? zq=SH=O9^7=RXTwX?%^#nckaF4%>C}%nM`KS?w;Le+q1v_b0Y8SYFvP@K|mnT1lS4K;3bG)^#JyPn|fNc0F_`FNyZzT0>%UpYY=@w1t z&Bo5{vq0kNObQF+>{TF7r0+BfDl_Cjurp4XLIVPMnCID$`z+yY$&rD3Ykbv#doU2F z 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 BM1ueT diff --git a/_versions/2.7/guides/images/dev-ui-keycloak-admin.png b/_versions/2.7/guides/images/dev-ui-keycloak-admin.png deleted file mode 100644 index 4df4dc195cd33c4d8c7558c35463cbf597d2e598..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2297 zcmVkIm<00004b3#c}2nYxW zdZgXgFbngSdJ^%m+i%CR5RCt{2 zn|oAMRUXGbfILKmK{P1gS!nKCPvrZ~$Uj!Sbn zsUU_)d-vIA?|t_9 z?%)3Xe&=9kFc=JIXs7`D|MdVgG@6PgRt?pliB&^2Xkyh+4VqXrRD&i~4b`BDRYNtj zvSnw73*h4);KvJavjY4*Avy@&eg@o~Z8;JRHDYJ0hXPAe;k^T()LS<%*cS_3JZ&)& z4YgtuH{k1BSooc(P}@4goPjXdAI@Ee(OaNOuYCTe>0q}IN-9jt&lH2#Qi$FPdK*25 z`{jy^<#2&@+Z~$(FKm3UbF1~>7boL7Q{1$3l5?eg@tp_j6JT`)v|9Aw=ie_j5$mD@ z=4GEm!e=AlyEnz69={A*k2k%|E9EdE9)f*f^H{LAv)*{s#=bnbeiyp8hlFg~^&8$5 z*1Tl9{+eB^1toCuYSZfO&1+h{+m$dfL9FwR3E*r~&%5QZDI10b!uSwKJf`ewH3v^V z0#p0jrZ2ETfK^ngTt06PoVW}*m*M9TBa4|hzrH3V{Vx)4_GlA+BhkgT%35XJO|k zseoOlVAHG6&kx=|0IB(6_3F;a+<(EAV^D2?7rV^m zJ0xS*Rmp-_HB!d2Is@kJfvUyQhW9dfcL-d#CG%gVgXg-y`d7fmO?mwHL$g~}ZwrGg z)4^vy!uR>LWskIJyuBH_;HQi5Z47j5YkqvexA50A5#x#3@YW!?QC}PtOB@vhn{!Oh zNzI3Aw;{H#+}Owj_|J9tX1rML{F@LNuk06}Ef!zX&mA(RLHbl^>jXnLz{Q${`bj#( z9fGA1aC|mw90NN~!MppFukr3Z7@Y_K?WC?Hp#mfw2bWeN{(yEO?)ZAH!16<|K2sK4 z)=UxP;)AAj9PJ_PJX|e@bMxTHba5}9S|H&>|#B8z3Fv-->u=}OHyUhpY9A#bTB_&s)IE@!GdRDQXdHPg6RX~`|?9l zXG$oXz9v@CNOCR=>?}Ut!CxWg5^NX)&v%s@yZ&W4R#ax*=h`FS<^&0^ivJw!16!iu zUNyvLNu4)(L*`5v*Gq1EM4)`%r*P8^2AG%(ckaRV@!;gp@SJSQlD1rG_Q=@2642hc zS6e3`Tg3ckUzw8`17LWdd0Y4Nuqa$a7vv4SyusN4ru7F0dw3xLI<%4bu|$s!(oZXU z*@;FxZaUWwL$iu??>TsROVjH1@`l%f8?KX(4If3o?lY1hs87x%sH_(Mtu90SA@4er zSHhsjWI~PBRd0apCn2_v{LUAkAKFnYpOI3X{0;xYbn7&3-%sg=Y$^$1Xml5!ondU9wSQD$)yz>oD9=fy0!0K*5V?vz}0=M1+-G^{`t_bgbAGJEzL((`|;Za+~KLiNz73*;I zwrpR-3fQA#1E~{%rFUNCU2L_z=oesE+{(j{-9V7kQn9L7^KV+Vs67=X^W*GcwFLeJD zCM8Qc=gVl*b0Y%9zl!Z^x_IpDVE07vqsJz}s6=rM_DoXtsRP=<{#d#8kk#7VXU-W29}R=fzk~j3;o>dxc4vi2^gS`z+|4lNR-=L}&rMVioT|xs zydN$Zk@+bwa2@N40LQYTxh2kVh?R(65&^Of_p8Z8g2 z23VauBzP*X6UjD*MSU0wOChTWrtT06rwLU(*z6U-mcmP$A+11CRjWp7?-i(t|2wg2 zs2A T@;6zF00000NkvXXu0mjfZ6jzT diff --git a/_versions/2.7/guides/images/dev-ui-keycloak-client-credentials-grant.png b/_versions/2.7/guides/images/dev-ui-keycloak-client-credentials-grant.png deleted file mode 100644 index 2995690b656265b48854ed852fc7f73fdf90c1cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13086 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 X>VIGoy);D+KMqsUypOr};MxBI`3xTZ diff --git a/_versions/2.7/guides/images/dev-ui-keycloak-decoded-tokens.png b/_versions/2.7/guides/images/dev-ui-keycloak-decoded-tokens.png deleted file mode 100644 index 0e6f8301cd6497226f2543aa3c2e2cf087750249..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243797 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

    #W0~>b}13ElM|%Lnr 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 z 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 p25WR3fsAxf8qEZO6RS^vKeutS}{%+r$ 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 CCaih@ diff --git a/_versions/2.7/guides/images/dev-ui-keycloak-login-error.png b/_versions/2.7/guides/images/dev-ui-keycloak-login-error.png deleted file mode 100644 index 6ce8fef088df8ae77887fb14e35e1fd948e4167a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10858 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 diff --git a/_versions/2.7/guides/images/dev-ui-keycloak-sign-in-to-service.png b/_versions/2.7/guides/images/dev-ui-keycloak-sign-in-to-service.png deleted file mode 100644 index 0b441489c0a14f0934584032f8854f57f312f9e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8209 zcmcI}cTiJZw|=bH5E~$%@G2kz0wM;KswiTlOAk#tgbpDQkYWK91f&Q^3(_H!mlD8) z5CQ2;APJBVBGOAhO6cVt@SWd$znMGVd~@gC^GD9k$;sYpt-bcMp0(C{ZB13y6Wk|2 zAP_6$@x!Me&|ynp9Chp{@M*1)bqBZ|_ELuE9Rscx$86pK-?`u_MsQs>J2=wP(-vg! z>gHlA=4I_^YwPOe;0B*RL{J2Q_%a|5@9RBJX3%_$^hrBS3tg6}I!D>hKR6|%t*v{h z^mfh-b{-7zR`1iY?rSp$o{kdiwrkA5Pf|~-I!{V#`vuhtXTV^cvoQ&W*)G|2&a*K_ zqwZfHaKKx1)i1$U%>4@Ixi+i=O`Tj~NHENv_`v1e`laUNpW&L&UvCcV4{w65oZ24* z9XPh98gQMuckIyq;29`qT9bpFU06oOkRz-i*LVLZNc;&eFYh9g`3a47%9_y7S4hX^ z=00wUQXL{`ic4fv# zjvRpzb9I8f^yiLSmlz#;_Gb-PEtQIEbusHt;M{-k4fN*bpI?stXOb&l{PX&uGj)Fk z7lY31Z5jylzdDsB(+u<*X(@dDDfCgCXU96zY~R>FFTKDkkOY2M@Xi&5ghP%UN@j_B zb(Nu}sZ*AAFId_QN*~*orSl5Eoa$z@E>X7ptL6PuZBao>e~Iy{b-X&rKG~O6qqe_C z#CvHLhrlOK=mASuTA!-}P24ZKivsOyBYx{;0P88*(^vmbIp(=K=K-t+lBS^3tx&9I zL|vICX5r>O-!@)2{yyXb{i_ojerKHOE&Ir3!XdZ%iU`@#FC4T@KvMVuMQTjtsSP_vWi_?T!amFy*xz7 zHADq?8wu|lBiAWJ>9XUnY8X4hSPd`l6v8li_*{-TJES2q=!vdyjnp;jxAlhBhxf6e zdv^jkiJ2u>6(j~fH;{qD!sjxbjy6puv5SJY#*<*gt|A(4Cja67#Lv#u+t&N`WsKvSC^G*ff3A&+5dZALJDIE@W|uh>C9N zdhdHl5Z3njF)we_(8k!a(rdKUv~%Z>dDYd`J&3WfF>a|jUPeDx@m;B$nKoNg-h<5* ztk<9dg|HhW&@wP!%n_!t#Cd}_`?(hk8!hC1LBoX7%8l*H2FURP&g4doB(TkIZ}vur z0zy5bX)sGINv2Qrq~Z@LEu}m`wRlI$vT=0gNK-GIIw|Q1cmI*jHsRD=#|FPDq?*zA z0do=t+w+m&;9yu!W{H5Xhha2tvM0=k$cYNfXB+ZU1(rWAM3;bI{RYjry*95OIRe%h zj0;CxAvx{(o2AG;g0(d9IWA@%_YK@RSZIX7lEMGzY`^B2dA4$}AUW9-zd$xEG{r#8 z&CRjZUP8=yBqoIQvIr6>1L+9~FM0BWQmArrf*QBHwP~S?v9vBwT%#*%pjN8Yuf?1= zaRQ8JXH5IsNhqMfiJN1p{r|Aq9ViR zuB_~n=o{-CF0=}>=yLaNtIz7!wkJN_U0hg*6Tr*b$N4g+a@a);MeQbkiqO#j5_hNz zOGxxZ#bzW*`-i;n_lMKc?nh_-;JC73HI)OSR)o83l~}v>tsP$lcGhHPC&1IoE9Uj< z*WA+14t;^eqQ28BI{bnV7iu|q>jY$~IT2j{;36c^ef17a(l=JR z(Y2?s-^iuE3ZkX3U9hv+NZp`sE?oc)SA&p1YeR!dw;8U#$jjYbJHAcMscQ(u*qG^; zY+a#;A3Q|Dw2eVA<9;T`$~;Lh=H!sZfdf12uz^qICTE8k&IjHJm?=5u7V$~zMaO>p znA?1s;d0=Ez}~*OyGtIu9q*^;XX`daAc_xdZO5YQ2bVhbclcfhN$nUvWNyxNy00>FgUR5B zP|AJ60RIlk?n=m7rKg~)t6u;o4(;N%nf9fiK>g)`1Bj*<)p&-v1(NZX21-&*MMXtK zOpK((W5xWn)TIYi-P=BC7pQH@c(puZpv=(aYWi$Md~ED>1^x`m>K(wmmxm{R8V&bx`mQF3{wf8X+@fa9~>R=$PVi3vl-NIG6iB0h1Y zu8h6Y$Jf`uL^X(jqNqO9qmGYg#pU`{Iw)-Y+^(<=RtYAVzb3>#P<;yTaW=5oMEnz< z(oS<>CEe`o;(Sd9RJ|tfhQrAun7-%Yl_N(}6UWXCe8Go?hU%Fc6vch{QlTVcC_~Mz z&|g?u(p`1!-ms)aLd(Yem{b0r0DKW~;Tb9_{B{1EzMh_qT!r&`Ja+)q;ZuCP=&jP% zr}-4q0kEh<*VoqG2i$76F301Ej!p^S&(DyvVG@Km0pqR&q7~*={n$LreoH(Ub4tNJ zmu1glRaIQvb%zhHISuwp`fhhrGDiui-4s5uV^c&5^eYV0s8wa?A%}p~(MALz3Vv|I z=eP>r$*87s+ZpLBUb*bznw>|l-_p{8`NR|_jDT~J$>foC*bZS0<$Ai1_n3fl`R@KH zE^fM3IC6i=B^tCNK|wVh<1Ea=!V-Q-(sZ38jMrxi!Wh^r+f$^E{=($YQC1!0Uqyti z&kt1)KLA(>)p|?>Kze%0K2>+*QMdpEhY-yB`)_SUMa91r!4qw*K4??Z0`fBXIsQ6PunR(9+$lvqVqI ziMQ+Q$!uY3eyW}J(=L9p267&}(ka(@w-az6X0d&03=W6eSgy%$McluyaeEh!yzM{k z9A0f*z%A{NR@-;Fho22ai5ZJlON1@dttU!u+S25INdx$m=Z(JEk+hjD`$%PHtZQTl zvU+{YA@mVV(!e}573=+73_Cyc{>dgoMq|5=Fg7}x`{i|UZ%YxF@)2q96X~-&)U~~x1W&B-RGd%DN24yhAH{C*dN66ANadcN>S%5gL3BE-gMuT0HUfLiMTfR zRL^E}Lwuh?J_9LVOiN8zT3l|ceK6hs@(&5xIeyGC$oCv7LBP#TBDkWe{2v~*#{hGM z7LMaC3@9pJi^=={9?P9a(l#=m!MjvP6#?-r*0omFmSI279Y&CPE< zAB~^?BA(i3_um>umOos~02uznNvUW1%KozY?SJXtWich}<%Fh9;X{N+wDEH8{66_L4C+`7^gD{Hmzw zdD@*Pj&bUOD0$f9aGCOpxfY(0*S~dW(YTSfZQ7NVsCVLbmtR2pDlb0s+it0KTPFCU zPKXk+Ni9*6yt2*8wc52M-8nW(*L0?wF5L8P^SOKo5l%phQ`4{0+5Jnsv3;j_g_okp_->Pq26#j zIoq{o2A@h|Z*$Wzu+$7zR1IlxfaSaoT^r>FSe+#bHkYb$V$mVfNrEA!CB){^)t{A9 zS(D#h=PXv`8-cw&{TGCroK7gR0P85B?&NA781}uhC?32S+ycXhNcy47BLWR^rK|cE zdwW~Vlvp<(dad3d4=RMYG+ov>4ON;wFQ#Gs#qiva;rU3A0*7~`uk_Rnq>#*I>6~dA z9yQrkPgje+x&?J?3F`A+nr?a0I^;HEPx`sOp$Il8`$g||v3vj)ei6HaXXq=?$FBH$ zJP)^P>MBF$u?1_?0F}-`Vtx4B(BMUPNNV`P;WMQG>~*n1$!bI~WH0*oBmW6~Fm` z%(8=nTgxu3vY*u!m-TY|n8`6Xz~B|qR9DlYuYMe&fKM8N!{gq@BuQsCOidLQPe0Ug z4W}kg&C)~4UdLQh9V|-V*d863&BEVh0Sg7BBJAd(1lDojAJ#fZw8==sqW6M9qTmC* z%WKLfS0&;F7?(?+(aTSl`4cIQ=~!{Rc`@?^R8ia%vH6_u0mgZ$H* zV-BpwlA6P;^|ytsG6klFP^sN>vxhdMZBu-2;EY*3PYZv?eIA;Z(j~Clz`iH4z-N$b zB82bhY(=SA*LV-GH#SR%{b8Z04o@Rms!+Y5b1T)3m$g*nb^ZuVLL?JLWn zNLQ;y)q?f9$=!AyJFM{4Hsa`Ei@XV} zyn{?*_?N!s+R?NHCB;0U%61+2$aMv;_3eolZ1vDn+5k-SoGdNBWs3*0o1;fpOPzF~ z=J_5jZr$YN!%S#En5)rUojr?SdcQ+4d7UGd=esq;SRBVYzjEUdp-RHl$~+K&H1F@)SJGKlnY^CSdW(yWsUswN^Dj zh!#9C7r7dcKiB5k!=IGxWMlNN0yobql?&hI-nF;gXoCtC}m)Vn9%8sxP@vu~?qllkb`#|Q?| z0$z}s)&g4*anbJg>878I+q`FNU)u_c{TNBIceKzfT^SRY>DG`MweckW{qex3h=qY# z_7lwG6--gcq1S%Gie8bYKkItiY8wV`9Cn(H8`wiK)%K=k-yUT~^I)M)p%rY)yr8tT zqg#KMy83l*S>jgt6KX>?<6}lkt#n(CQ^w;@vGLadJgKl1$ai|iLJg_v4$ml`e^}~b z*S&_Q$A~HD6bn=r$5vZlcGjfv(Z7pA-k7>@D%)PLbD~7Ze2T?eh&~MSY1ClcrBrKfnm5Gkd zjT)e(KP|vL`!v41UbgFb3yoULK-lyBAXMV>S(_@+Uy-_y9yPh49y2BRFAOdmygxZV zs|8&yA!MwO1dkIKyMRhuuof26b}ji@cM-GRX_!@DxHZLfCn=Dcm*LaI9?UrCAaHYfcJ7HOUVU#abLm zV>7?ZY&YEr29y;4ds#X5!jE%Y%h^8blCmw^o)iy6eKldx%I>$TzmuRoO)tn1b3V3u zQrFTrY9-}y1x{Spk3hMdTirGN-JVgnvehMYS_F5!uR=f=>k*5vnKf|q$*af~YNj@* zF}Ooo1Y)q#p~OZyqJKK#w^LTQ1^x zr%F3m6(9iJO}xY$8=fa(bXbn~+%9#(ZGM+P6bH5_Ts2hX1VA}gKdJQ%*x?HB4L4>h zIF{x6Y~*Bxt#MqBa=5EMKF(sPg530?fVEyxN0fdB?7om!F;6Fr%hBVV=;JmXsV`E( z1F;uDX)FDEY|`|{V9Ma=vs=Q&x9M|LS>LZh7U7E@UEf@fugW z1|FW8{qmu1_C(W?+KolHXYnF7t3?!C#BlEzyla?puzn2qon2UovQZw((JHcOtG6zA zWD&lStM4CeBi>oOvNhip7C=vy!RlnzXc!AYTCX>gfv61FNl(YPWXsf_-A@+o;RTP$ zXwg~45X@q(KGL6*`9Ujg1f9Cmyvr*id1DZV21 zLVrqS@*KUXq3n^%i6`itA%9IJ#qHI^uJO^InMgl^fDntSMwp-4+je0QF^N7Nd@8!M zs|+xU#0{|`cYIz1FO3y+hp<(PeM5)wI~weJ8+0Wg21WanbJm9;$C2}&= zW8R^TmV9;3WvMLY<~f0UUmJYDu#sOsO&u>s!_#l}6>Se(-KOSxzt#@l*s;WMDFwLJ z$Qm@9`@4)ZD#rpc-7<sxLKBhqP(p-vH*mzp^v&d7LKi(mFxgy9s; zE}IcM=WpSh(hpKZrk0}uPUatI_I@F$r3 zz(*au%FWz4J|9&Dw&kyl==ZqkFKL=^9OC!J1}Pv^wSXRZVkvd^+-zLou;|HeYJgI=i@4VPCk z6AJYN7pN!!&@#sOm6an)Ll35hCe@H10_^E+dmi>n!@UMu0U)Z`$yI_C?(ev=l5mbP zF7hMY#OURrA;D?-?1^wUIpsZZvMtp*W>=~>n0_SJy9QES*MJNo=@tGJF#{qLUNtLQ zD7&GX)ke6aahm&Fk0Dw&Fn_tl;JxuC{Kl>ftDN=gp+|E&iGb?0=J&Drj^(bbJn3$_ ztgz;sZileu;}KIkp)GFBPzG(zOPQTBa56vLA-`E;PkiHJ}Ew+LCXDo5<*E!IN`WH`+e}dE4nxUb4TELQV&vK`lD8O>O!6xbYr$ zt)Nw@H;Hlif*1Uc_#AGnU7pxU5tA0vsP6m0af5pfAK_>b{JN469UR>{@)i`*r%QbrRERkO$F6%+$~a z@(10or2MAz#v;C zw&<}^ep2yTNF;I6pq^+w(7`k^CKa8UPM7gj$f>aiFGB2I)N|`)q8w{?x|rlSmB2h! z&`*@p{JUxUVzPn$=M!yF0JPKVXfCP_9UqTiudO`+z&FpWjCYS5GfKKRqZ{WAOnX6O zG{RETgE!;Pe*5%SN}UU6X}?1p3rAYQN>_?g6NCwLG=I%)jp!|4*d?dc*Sa@;1^*;RSzM89&qQq?5*mhjpgDiafYz zVPRowYkT(lz62m*(4V$4&_5AXa4UrtlJmvIMMRzgW&Il*YANi;_Fwyr{5d>)1^DMz uEY`rchVoB?6g0uYv-HOq{;kEn?H(%6SJ^}cbX4w52T{>{Sfu>y)qepRruQBI diff --git a/_versions/2.7/guides/images/dev-ui-keycloak-sign-in-to-spa.png b/_versions/2.7/guides/images/dev-ui-keycloak-sign-in-to-spa.png deleted file mode 100644 index 1e31b0c1c8e9dd9149716dd0462ccb4eb76635fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6036 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 diff --git a/_versions/2.7/guides/images/dev-ui-keycloak-test-service-swaggerui-graphql.png b/_versions/2.7/guides/images/dev-ui-keycloak-test-service-swaggerui-graphql.png deleted file mode 100644 index f3f22ccd9a961f407a8605664b327f5fba3d36da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14654 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%0A8vJq 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

    Y{XwmV6Q4w-r93^ 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 TnDmk`^ebY24rbF}g-HJkrt)IH diff --git a/_versions/2.7/guides/images/dev-ui-oidc-card.png b/_versions/2.7/guides/images/dev-ui-oidc-card.png deleted file mode 100644 index b972a88330a7b68842de81a4284836e8bb8795dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13414 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 diff --git a/_versions/2.7/guides/images/dev-ui-oidc-devconsole-card.png b/_versions/2.7/guides/images/dev-ui-oidc-devconsole-card.png deleted file mode 100644 index 564bb911f440bdb98ca8b3c3d0c6691ea35c2e5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15469 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 diff --git a/_versions/2.7/guides/images/dev-ui-oidc-keycloak-card.png b/_versions/2.7/guides/images/dev-ui-oidc-keycloak-card.png deleted file mode 100644 index f88c3bbf8b0277985b37c8c466677cbd99e524fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15714 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 diff --git a/_versions/2.7/guides/images/getting-started-architecture.png b/_versions/2.7/guides/images/getting-started-architecture.png deleted file mode 100644 index 5ea746a1872a0d2af7d05946644ed826482e0339..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43653 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 A8vp0wSS^NQ)pKNQ1-9cXxN!+ur-T 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

    5#l*Mndsqc?`|W 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 ZI_pX~IkfyTit~&Y&g!4RBY*qje*sE-3g7?$ diff --git a/_versions/2.7/guides/images/health-ui-screenshot01.png b/_versions/2.7/guides/images/health-ui-screenshot01.png deleted file mode 100644 index 782c66f47baf8840d87f2a6050f7f8c9d58f9e16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28313 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

    4M!x)EDc&fM`evuuS7UPH*|;f<&A!P5uYXj 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 diff --git a/_versions/2.7/guides/images/http-blocking-sequence.png b/_versions/2.7/guides/images/http-blocking-sequence.png deleted file mode 100644 index 9556452764afa87d13a63dd0f5154e2b9facf905..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58135 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 diff --git a/_versions/2.7/guides/images/http-reactive-sequence.png b/_versions/2.7/guides/images/http-reactive-sequence.png deleted file mode 100644 index a2dfd5820d2ffc2bb7c75b12233a88ec1eea3a66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58230 zcmdpeg;$j87cSl13>^Xjl0!E`DJ@7CbV?&g$AG{H45`G>A)!bMC`dCj45A2<(%qf+ z!*kB>ockBtwXW-%HNp42vG=q0`@DPa*VlSF>cj*f0yH!<;`^nQU1mBH&Wd8Y>twe)(}jIg+*-&!P8uIP7czw+t_}; zlbPLI_|4!)&9K)=rb4FIkLmRp^CQEY=1;Z41mtAs|G!^QG7KFJM3Rak7I1x`D1m&d zLOpd52NNSOekjYPY)6ejoN`-~bQL-7&{*WY$Zb^b3l-D(S1LSetk3}orP(NPWz!O- zzQxp_CYnCTFQpRVUs%uZyK*0pAfCs4#{QC*g!{hgbtoR}uS?MfOY-2<8@60RoiA1B zSIgyTE}zApqd!huB|pmhe;?U6b#8kTzqOE-i3gF4Y9DSP)krx*`B5|nR; z``4w$3H7EE)8>Ga+taW_$)jfxd8F(!k=f5W2y}!MB`$AB!Is96g1MeV+10az9%VTK zBB8217hH#aB}E!iw*MKEDy1)|puppt*y~}BhM+3Qp4U-4MpaB?C;XeAHlI<0%E5BJ zInc7@th`E)bL-0#l99Sv`hR6Xr-xC1`t^qW-eZpYH51P=V=yvD7T}V_KE}SVeX0Ia zoYlvxV$;qCSc?aTvhc<9={HO;=i?}@EYZ)4WdPK8JTP2epXg3g0;q%LaVb*PeC$z^ z>R453dL3C*W-_3{)!&sTr%I3wZ<7Cey;_UJ+*g#Lqqo$``-2LXbK7O2&%h~AyhUn|Z6AckD!OIr zfZiz!+U#dTPO^fGQWof1&{VsI6O=}KkGUeL)=57kEWhFWXI!ip9gsP(aeg=_e10>K z_Wka;j>A2b(YFzjPfi?p22`qvK_crP$%q%DFQrEvC{`erN;UO3^WqNQbfC^tudv5v z@%E%43_q=*S9xoJS=yaWOr7cNdt~-prm40(2-WfzGK`dP=K2$%L#9`Dk}-CWCn7ug&me98G5&- z2_w3|oZnmPPLpKdhiWJgKXh|4)lmRi&ra@ z5!Ao){s+tG!fL4V=6VgYo!EjL7x>q?fAuhc8%h(9Y zRm<})WZpqSi(-mH9D}RL>?fOXzfvMFylF#}(Lpjp&uLLzwfh`LnBCo(uln{SdYR+@8{#5v{nrnM!?w^}al$T}h&dn2GyCp^ecN!pl_ zj96lF{&-v<+@;#BF;9qN(%8sBhwVQ@P;brNes?yn#Wcv|O=k5=6h)h7tYo?DK>f|J z1d&%V=gdA?I8jI+$YC?M@sJ;PfuyYRD={h%hID4Bl@vrgD9<6p4&S;aw3^-sqsQ)N zr2Ju$VAjyLS2=Y-D7wFq`I?jCc!lY#maEAh<;lZ;-p*Ub^zJ_%zLzZ5w4myOq%*^X zIVw%f`o6UaM0He!qep$R342~!Ft(c&Au&c8y}4C+4t5?{pcx+(RPb zmByxY+C{?Eys3;EY_Je zbC>GS1>~kGTYAt^Ow8Ol z8%W;$m8omZpb)X1n~nU;(_^Z$uByuWmC_FkGptH`t(8(0c~a9wz)?|O_Qg?W;y(*c z6IO8S;3$!tDB5&dtay=Pm#gn@J3A$CL{nU~3Cg$1SxB-*g7`fN*RgxLw_v2sYEj_5 z{TAY9W7<-7HJM^bO?OL*M+}VQTy&TIN03x3dhk(ip5c4E)E)`Iki{N09V0z#e*YYx zVs9wWgGUWvts0!I6FCK}X52=k+EI3j3v5Hb3iFsyk5@fl#S}hDOLUhqD`lh=qfd)7#H3A@zjMe2Y5S{*i0v5; zl}Zf5YKjA0e_!c+KXSWyEeo=byI|A!k8fc|VPaG$(IZq5JTu-8IDBO~GjNv`W24wW zy%`M@6oiS#sxa>f5_4L}JF=BLO7QE=n?)GO-uL5&t2D6TC4;|-=^uJ}7}~nV(~;gC zgeqpeKG(36jl%*}RZ!Vcm9-FUjA_k0N|1Q^LBgUV^X|KJ!@nPFO`w30u8q|SlhgTQ zgmiIju*ttkFD{Nz%{SrNzeeBtzFVrN%d#As9}ZH_^`4RJ%<256PvFrxT!7N@W}&el zpAM+(`@JNR$E|2gOBZa-N!@VU{WZA3I%!w=b;sJ4-jG_0$h0n`Bl9gkO)A>~+TmW9 zvLN!DJ9j%<+eGhUKd-%02;oTO!9#R2aUq@0V3FffNx<7T>KSiWmI8oVQ!3_3TR|Ae%?|al=X91xwV@_)8ti z!Ir`l%)6a)T_)yg~XhG_K*+{uJ{^g)Na(|KeJ&3d{FA0|(}# zppNbK&@sX!&c{S*x+eV;{3DG zwz)M2vr&zMA9&PAOpQvMxX2-#3P-yT8i+AOA*xO}6W!*?lzgh`PlVy|Z%Py~*~PG@ zxTI6BCqD~#GQdlY4r%v~bj z*w`30ggii=)RwD=emas(Cx$2zgO#vg?#74*N{#^>Dk0*^N1UI|sk zcF|fh<=+bKhU{;EL&|htAk#IFEfBE9htChm#=ci8Oo`i5(z8T4^c_RAR$`a0P~l{Q zY?BPws@V2gj^d>jy8>RW8zX`9!oIdoz^@l_1t9~Z2!1iU-$G7lXCd4?3fX^fQZA*n!8hytrNCkoTlB1f&< zISl?{R>VDomP}*MmIp)T9ucy?vi+q4%7IF%V;oP|LHR6TVntDujRBnIoO8sOLAQTy zR_NgjE@*4OoC)6B9UFQRES*vLl#ppIR z_q&L9mLVc2*^}XP=#i%>|Igr5Lh~boKTEm=8J>GeB1`93>j>)=u{3QoWExv{ty*6D zhc;WpMnWB?)kVhsneM_{oDI1%?~C>o!|JKjT&hlyrn)K<_m{~yiAQ0@!-N}8W3dn# zae{Q29*Zx>yVuCN+mE>vV>j5A6}sOB2GUmWt1meB3pD|ZdhR}h8Lr_;N#1e(&hpYI$^$# zPix5FcQ4vT`@6!fiao4RRO;A+*x?I=NVPK5rH72H>Tuw(4{7Jz=|nu1F%<75R3{{O5!UwwR>;S&;$I_mg87@GNA>D1!wd8GdX!D zkRv_I-Hu;luSJ4dl<9*TMh(A}c%*NME5??R4f2o9Vhb}zH3ah+M|Upu6r2^N+sNp9 zaEUZ%*U^KMX)Usj(uX$K&-ykvU8Z8Oi%dr^p7X!pN^%)F{dFouW8x|Ymd-f^HC4OR z1-z91$Y|D}D>S1Uwt!U{0NSQju76~4Q3UL2qxMy z6to|8;7K0}1jX3rZsc0CA&prZt)E(d|J5q8lRUV#=* zFO%GfJ4b6TSvj3je$(O!R6reS9l#E0NX0fu5Z@ElNZJxLQ)pD~ZLQXJ*m_ z)t1ChYqVj$LDb(SeCk5fROq=TNnap(=hlWe$HJ`_QVT6EvH3Q4;sWPacKfRKzp5|z z<8}tFGwE55r;j}$6n)^8wVcY8zVL+PUSvZ{@8A%Pb(KxnMb>7>WEAtB<^V%35Kv$y zHOdT)Bvszzn?3jw1T5jfxWO&(BU@jSSR&LHrf3YD3Y z?sB)z9POcr zo&2O9H&v{zRm72li8;*xk4bivH%RGtEgajg?ME(DP9i}cZYx7mr_a!{ke`(`nXY?- zW_H$WZ3+^IRy*V6;diK;xbCn_zmtZ%QnVgw*)ce{TF?^i-Zc#Vx*M@W9E_fhxyP^M zZbb7zwLrmpLg)nZ0%_{SKv~s#vc!RM$S~RM^9sIi5!B4`nME+nA4How_W&lkJe}T= znoCsQ(Nfi=XLwjRtM47Y#yI&F^&$NAAAbyOV{OGuy<#mUPx}!LAE!sG`0KqCiph*X z`dKWapP!n!uD0l9+sz%CjeYn&Uu zR^WO<*=+<0mv=#3Zi*3Yq~^`s6C{HshMkFRE;S#i^&|Gzoa2M8HamFx_X)A=A6E(1Wt}w&Gwk9xYm~}k& zflQf$vx^n+OH2-n%Ux0@@61;G!fM+8+Huu>@>@#J(*3EAQkm1NwX?O{_h-9leiAmb zFUr&fy5jDrbL33^o>lvuI^$pXF|wJ+`==XKZ&r|L_|Kddci4lYy^ilvCk=0nc-`QE zSduC@Z%tuU40@p#jw{7%m5?rdFAm%vFF~Cd{A(5lUlJw}nf!^a@tv zpBV?E$)QyZ4Wev#_&51M7r|O4P;zd4z|rwiQrv2-& zgNSHTljQ*-Z7gEkS(Z!IMrs5uHF7es^@Ln|nwHJUq|(>qlG4dJ2ItOuBEDU@fvxHO zx9od@iykc@?{bM0p6c>y)O;8;$u%8!rQCgBc7r{lq8ky7eStie6TaK^i$1!EPTZ;m zEAU>W($F_g1^19Ed)BNNFh?2W+NQti@t)g3JqlY7pioz(PLuN&u${(XK%hAANn5B_ zqwifB2k=CTg3^6h&~mc?O<+z%grp8)<$^6ZeePT^x1>ZJXJYH`@Z8>MNAr_9d&~5o z{NF?yCvP?ETRzJ*v*?DKVSd&Vx{jufi*gPV#^k#UYjvqskWl_(n5z=dUI!=(mhA3s zhlMy5^$J@!t`767xM&_Q`dSEdoVhDJMb3S%)oH~ieJ?E6BX&-G6^UlUT+6B1N zw7A_Q7K_<^0vSUnLTh;?wVI5*_VS3@#A1@l9wW>H+o%T`! z!qxXn0%SW!-&!Ks#=V$~O00yj)4@kmIbBvHB95U_aaJDEB5u$)exnlB9eb0NfZt!j z4ztVmgL+Q(JLEnJ#V+-%uy&rb@e!Wy;g-E%{6P5avos-l2qJ@DrKY{*UP}Eh_>wL} zOi$?CAa%<<;4uJnm-&B=T&PIih$HXRw(F`MvQ_oGwD+Xj=os+^XD*JVdk=C z{CiL%McLgwG>3%(lR2m`=3d9*JF@=D?OC?ts7Wi3JsrUUC+9Aj)`;^Zt`}`Br4>^& zuIBMwe&0EJdgiHQGHVhQoXt@=Js%{NDlgYir-r~Q0(%KwyU;5-4fAwV?f40s!jz_5 zN?v&2&Q2sj_kf_uWyYefPE<4IS9${EsLAiysZV;0{&xhB`a~}$9v|edXU;C7A(G6HbKE> zwL$aZ4#J-e7>QeC-LSJwpl6U-aIAb%XI0NJ5$4J^15mEA_$e9WVC z6_Mlda;OZ}8)dbE2=G-Za_fm1LZN-WFEJRUyat?O{|4c-- zYcL(1S#M{kc&`g#%#7zqB_-4PMFC1z5h@Om9hWA%=oC*?o(;_o^<{nMz~zUs3383v zke#~?dR5M$r+AwVyC$o>Ig+XoA%6%{48aQ|dV6M8IJBk(HixkQ{w^u3%R!Y&Z>b~Kt`Zb|r-FhK{$ zE=s<*BTioNgUp^|qB|fj8_A-d5VX8EKcM)|!(;|~Lij6I|6<2N){;tipp4B0Bt@V6 zha1SWu3Ox}(DAxRiBw5;$RlS2JSjLuyZp0vNfOp3xKcK}uo4Kf{w<$LeD_vF7K(UJ zUmI;kG25RKgyV7sC)=n0q_MNQ+9D%0l+_T7oWYXA6NdXUBS) zP*KI2noQse=isUxLnm{6(U!i*C0tYX&xXwqer1dnN$lzCf}f`18m?cFP3DD(Qky)2 zDOTVQK!}5T4uTq)c{6`Q9`<&Uul9D4-H@D~bP7HUT$(MqVpx(ab5Kn4xknXST-n~z ze?!8Blj8X1nqbc@)?A!20p9%mqmu3M>&#hehIYQ2?Fmw5K}i9IRI4`Tg_-A+jeb`` z`%*^Le&$LOZkAb-_1*6xOw7=-NSR0{Cgg+h>#i0(#Ch}2uU;C?1zXI{QkO7x?@O?{ z=4ky?25(h_nPf{-`(t-*xkaWa;Lgi)N*o*f32b00=Yl?NMsA`P?}qOb^enW!!F|Ns z8s3J-o8fY{#JzW}37ecJ zg6wu+e2^mv4&7(Xgf;{n-~0sP4d)OG0bU76p!uHMxpc|*`FpD<7qW}q7KQ73IDmNS zku6foBdxONE}^GB?JX0WhIG1Y&@*%10lcyoV{sub7Om`2Y164+z(rGLd2Ln!n+jbE zvG9P(*8NP?LVUhhRgF_3m71DEKDik6 z9p@3<`gOL0obcc2K(M!4i& zg1{WRP0Y2NI^52;v1`#SLe+9LgEkl%=D}{{Yaz!n4=u;EI(rKwqoQIDSeaM1l;nLY zZJq?dH}n&6pB-o6?wQ`oKsnUBL?H4M-Ninzc{Vi?=kt(Zt(!K-&9TG!<}4e0NgH*M z+eOy@tJ40SiTnWgqnh;O6FWYtCa%h0(ashL*AQ77z=Zssr%!V1Xu3eoe#-eSy%ZR( z7!CEvac`U*EXFopudF7vqMsB5>4F@Yi@B7=eJ_9Ec}yzwwR{_BW+aG_q%ckCPK}SC z#w(;g&M^vi_?l8hPA_$f}T!tnv2L^7vb!rxKb$lmu$#>-)Z4TO(x8sGN!V2gwG1TpX;$ z?DYv(Z+<=lUnnme3Bp{SrRpwfF?aVZ{Qee*2>Ogk$lr*LAl*wtzWfX?u`n+|mSCJ6 zwg->$AB=YfKTQ@iIQ7J#kQ86f4CFc?mr9np@Tas1?_Qw+=mclzU(3{+R-X}s+&Ify zx3fpSOHm}GcA3=tvFeGf;XlrSnAFkiV!znjTU=R$A~WX=&XIUg0fsgYX{2UuGm=&> zF=#Fd9lp=U8i9BCrj?whfnh#M@&@NLdvUgxmW`G-s(~j{fSht;-+r51P8ZCXLxkDu=)KIVbx&Ii3Jo=u7Pwm=0{ zrj_woT-La^w$E9Sk6{vG5aTG6@T`^d>FEGyB4}Za^^MU6|(O8 z5H|ig)f|uaV-sTd6xI83&W@$bitOz%FZXvx<~{&-PP7t1lbv5sy%eN?MMa)y><(Y<)z?= zR$l7B777vNPCMk#{(U~tD+5J#gWGXMZFvo25Os2wt`JXCz+9{z2!(`EgZ|Hf@ zg&n^6S}dZ&xyl9GzBr#eQRR(SpP_+S`#R=M#Rh^D7zKulUm&4N4z3Jr!HQrd0`d|= zjLeVovt&18jsss}ob*CNXl3OyAM2e;mDPL{q$xbH`BdR;yi(sQ_)2zc{1k)6L8N|# zQth`lcPEh5zZps&7Hk2Bx0!@eGw(>!q%3*Bk4#pA^n|!9Bf7~_f`roaD+jEpCUenq z3=(Lc-rJNo=*jHnoMZthZex}o9C0Vem0JnZ=Crp=G21^@UwKG!)gkO2Qp3c&L4AvN zp*gIlwGH^yxB|>&zG!7Y7Hc-42eVvm{8}(Y0rQH{>RFNKjYAKz%4DuB(Qa2cW4zxO zWN^Hfqq_bT%Wo4?0W8U&Xx)1%2xCE$O*4WJEqg3OU4D^LFppES>%GQ0J#p5ixG@T# zu+JrHLECp*PsXOs?v}n8s}R)K>3wd#(M$rb+4f-_nwjwBrg6CBVc@pRqo1z|UAVq$ zh#S#$!#j9ck_|Gy4MtzIUHR%*7LEN4b9b&JTz=-JZ)7cl>e%)o+ufx%EXEv%k74Z1O9ebRLjdR6WZ0;hXsmUyd1pbtDGTOT-Bv z?sN+LOItix$oxmaJ-gx1qV;&as=3m)!^(|pp!;JB5;HqWqIs2bpYDTQXd`ToS+~CO zbhwRyVVCYOg5dsou9NFPHiSuB%vIC996R&V-yQowQmXcos1JB=q@n5~O4r1@Zf!%~ zPYQ=KyS`w~n?_g^R<<9X@B57Ad>JpyPsKXLe)5M&h3m|yo!r@T7D>UZcv|^ z@zCR+G6?8zE_YgKMUGyEqJJ_nLhSg5M_lpb_?qD~P&9P2QRHY^Q)5eG#(Rt(|0@}I z3sF?7_B?*4CQ^$fZt)_JhUq4fAVjJ_K`uSE&pebF+Dz#2Rbr2Z>YCG#TK_fjgc7xY zB3Zq^`hdqF((eF&5?@{+;f&>#?}MD;0|hkf4U0$rSGtZ8BQ>9l#b(exQfKRa1oImy zLR;VWnZsg>jxXf1Ul$F^XRkfxSHPnVpcBox+o%2ubx4imOK8n_H7;&%Fd=VFs=O2B zyjv@$z0Y)p1yVD+=&ml)tQtD{Z*7=LZYtJH+JJSNCucY~R z3w5IC0>@aj?b7bs$lH@S?vD@MM1-}8I|!w>P@hY7s?TnQr5%g*;Mnt}BPSjpy%Stg z<7KUK8k$M|lT`}EJ4|Zb(9c$@re5#G{2e29<7)Hm(&Od94jGHx@Z2Wns96_vrvfWb z6+{x*m8elzHBI`JThBr|#Zkw!9)Esq>+z~48Jur$jiLwHQrTLq3lWSO$4yzN5v9+G zl&m>3D*v;s{3qw?uO3>Q=Qt!OQ(xlqh?FmgWXv}@-L4!zzs=eZ$PD3lqZ+Px z00wDO$P_wWA&Pm{(kZgxfm6l&g`m2)Aw8IIQBhoyq0eh5R6fPL8NVVrQ8Uy$r5W!Y z-Df}=a51sA_?2aVBH7i>ubUu=4$Qe;!m?A)W~TKi{^X%o|#>Su}?8(yHIEHK^BYb zsGh$;Z!w2w!qJEc7V^5b(vt9Q@dnlJot&8Pr2*BiEr6sMw*LnrMW9JEk1 zfxnATFx6W@_lJ0B5MQ#Lm-=}+(;-ABHvG9F?K%@N|E&==+& zc8F96>XcM{Wo+CErD*!WK43={sPjN81~IF4I|mtjnV1YdZPbI)a=GUv+FwO%rr9f!slCWF z`E=Rw1=54ezEbkT88r|8Or%O(S9Ahcp-v~K0+kw_EPso6p*`gTEgZcOg1k`}}J zphE`dn4M&E$p1=qp}`cA3`dTfjs&zyqHG|E;MEq=eEI;g{I-I`g-_A=tNyU!T1Nsd zrC3_X6IO)cjHw)x)f65OuD27WTd|7ZO7e5g=#OEm>%R`fvWg9FU`nxWw9d7ttfZa^sAvg!~-0^Q7}8{2!moigCs1 zPPzV~ZWtuiyl*Hr_$~{35x0U`;n0!sCPBC0_rg(Bz0%Vn{oIK{rAkYCoOE*sj8xVw z{Z*1xlT|#Ji~Ge+s598I?bwAQr3EdB<_k+czGW6}E^iO=lgXSj?Zr^Ke%CJfDXBB! zB5Vih2X*DF8o25RlAseNhhJmQ2TU~6Hhj%d>Y8`9@vQSAti?Y^2NVA5$*}Nt!QeqQ zg*j5iOut3GL3#yu#~I1w9?#75CPu43YAdE-$r@QW<3{CE6pzIZl*;aRDTM*S(CDr` zU@fy%IJI=OW}|Ts_((s;cY&0z-fDp?)azw}A zwmkD+oz1(0V#rO-`;0Q-;k9E8FG^H{7sokrxrLr8J*7KHZ1tRE9U`NS5ly_`(Q|BO zq?ZtME~e7)T)WMm-<&vNP%=Bt>lnU7Xs?`DNXL$`VkramoFY968ee`}(jiEDSzXPP zzqUAv^OT3Tp~YCKtm6c2mK$8QiAg-~mfK#U)IQ7V#F}dDhu?X^IBDTOe!$?Tnh=Qvo z&^-d;0nYx9@lkNOvz^<)Idubg`!W>8zUX3(lZ^Bni8qH4fa5YpuECw7{mwC>F<{?r zr3epV3I}#a>9ej*AP`!qmZT<1m-)Na&#g-YC>>P<1zEcBMw=?MQXiU!CPeY{&U%7Vm zzvoIVTzmPOUTpCU3sNg=S&C}~}8Kv1pmBSG8!KZ59RcCw4^ z7Fw1Om%0sd+H?EyBC3nOnm^II)-S7JIkrPQf?hgRIok_YAon%%ghpk=%(o4EAN`M! zz2QNh(QhO^S9yJ`JH0Li<)V5Ay>J@-u&BjI%w&&kDzQo8B<{o6Dae%hX>kE+5{Ilo z)rzyiw^021(%M5-@}v`|lr(9>FQdDB5_>&YX!#0d|55F2x){o~OA3Y@c)JNA3hvr4 zA(Rm#Gz+aLyAphRiG*`HGI%=!HZj%m+2} z;xeE|x@-TI=CEP}ak_J_j}&gbIyK4Oo_|1BSzT}hEGUhKKl~gR1?+H(<~(PI0=|8zp%u9!-c`Fca7!m8OnR3{~YVK z8$C0u>#*&8kowGNJA+w%m_+3z*11}9Yt(MvfX^0-D!a;ps8M{S4|C7pNvYGj_c=K{>-xpJ44^b-({lJ&lS*C7zaQ z2lypWx%!a58-roN+Ixo31DRxdI-Y&N3Y4v~kDi_juRewS)G1=k-d`S=-(gi_QsL-z zxuTeNbOxCqklH8**xnA1#@N(??a{2VcDi^h@2jKib6J#SU4~3=3m*UVn74ayHt4(Y z6tQHm9XL`K0`>*RfnR~08gu6y*PMVnrAD}VK|O8t*6v%;H2faqV}28$*iD_X_ncc< zTs{=rHU8{AtS!CQ95SX=Ey&+dH?C0BLi2xjfQdfDjD_INo_7T-!dWn|x85%AEBR#r3mzYrqt&qROcF-=lsK1EW0 zBD$(^Tk50t8_Ty<|1Z$K5kMbe&L++x8bNJ^XNPWw)hX(?ZLq9BnwmW@JJb71(%`W_ z6`Qj6Twz?F>V@g49r({q*$@x@L?Hf$`~Sxu6s0Ipf|G9!W(;O;DP=AmddN`#L+pas zym6JmPm(RvpH z5Jp87ydI5Xbi|)co}wuQ%r@C}!p-|JFgP3h9*vaEa{9EmEccmeoaYvg4fudg-s!Z4 zoKI`AU!=j`u^+tov&9Nx&F#K9M1L&xXs_Dt^+H;IoPy7U^laLjJ?%bt`cnKgmmiBjs|$KW?D$%oj1bmcn!=mlzCM;Tq18`C;%;< z-&g#paZG7(*Es%*I7OYc?cI|nLBK(kRZ*yogLbzYk+$()4JU`j+9;r>czMSc%QfP> z^f&lv_zvjM5DglM61K6{&RcsxbvvtIKxLcUijQcazd7dKvDanAY8ZPiQR01lgDo*p z$Q!Z>$^%ji?qq;sN!B}>w1*{nEw{tO1%ZH5E0(9kuUGY-1!PT2Z}kdPABiMg*_-s; zD{PmJ>P8oP^^WhO6&@#_9VbY`4e!;CkL>;j33y4_pP5Gj19WqE`@~dm|8dWG34=$U z3yh5#Ns>COgul-Tl?F`ZHuyRP{N@`YCt&UFK88`L5|4)f|ZYBV$l+l@W zh`FD?O#b6lYi0I6Ueka644nJ|ro9R8*j2^ zw__G17kvvEx$6P}qP;?RWrR+(J;U6Q)W&~m)eqAE!N%*C=H5#AjU;q62cnhYJN!cq z7>EcU3ezGPo$3FT4w3bs_w1jUgiT?jP zqM^ro`>d@lk&yy>@KaG{Jx~jO8rZpd!EqN!Sc?ZW`}Q^&3t5Z3$v9Ukv{i6EytqYna5zrhn`>lVWu}bnLjVddNwiSiYF3*y@w2LX;ej{v6h0@R!07 zfWj*hOT+#^R2-ULlk_E^vDPQspBuv#P(t;<%d{_i7*UkF$x#(8l_~y~_X#3kt7U;ab|bAJM`2!NNx^7@juRBU7z(!-UX-Fj|9s53vczIJgvM=K9t%DE@E_YG@_ z-DcQx7xCu~Unal)vZhvCuNiz(8qTgK0Q|k*R`=**PH*!ggL}Z7qgiuDC#kC##PG;@ zYysK4Yx2PgmG~Xb`1+<>W0oa>Y*{3_Va0RLYRkQCpKCSRrl_|V; z+YklN(1TwY*w!A5qk0M7Kd(Pm`{Vj^G4L1d?!Z6av2w_K>->)-y)*%7JyGEWbfTRr zU+W{0ok*ZVbJSsv3@AD{CV;>dmJO#|j><0Qm7&WmVww zd#3U(66W<6I{&(}@Q;7eL&uW!@$2L{4Bf{Qx^=0m*?{g&V*9E)@mKCS;cYay4fIud z-JT{g1QhAx-Z-=0$NW`|8(1GqfF5yUHr?wt(j$KZ6be`~^sKP*S@g_y6uecFnQ;xR zE;Ogfp(3mR#&Bdx1)s(GM{>UOH8B5WzywH&fVCC(jrx^yzBSDPGK1@8%}1~_H1Rne zfIx@}0Be{c>5&~f%T+;CBI!{%>KGscc#Ar2>cbDJbB>Tc%@yWf@1{R1iUVvCup|Dn zXWv&yB4?|vVm_pvd{%t~_%xmXjN8??n>9b1&#~JleV|Y^&lu?03K)6J$lcMV5(bw( zFUj?nRL~DboE+6-s)c-}Se{s!5fXxJ%HJ14`QPC*<^oTklfwWvPOn;&IVzV-w9&jh zPEwE$CZ|isvfyHXF9_Zf@t311!DGBVSL+3=xMc%A$|BAt;}hDJYq#f2fg3%GKg;>J zF0LM#mM$iA?OQ{?ZO(EhoO0;d7>q4qrpiSG z@SAmwVvOW;WEj)3G$odb;`wTTneZk7DvsDPn$mmWGM*4PJGI{kJQ)h=(5t!Km@6?%MHn4T&O`e55d>v zrHp`N6SV-qh8+ig|CAWGIs6BQN{}CVK)X2MiiZ_5U?Sx5_aeZfoZYJICWwwvY4ua$ zcyE7rL@oalR>re&%h*1)K11PO7H_)Y3R+`ZMvDlvN2%r^18 zw}4Avy|qn07L_Z0c3mgq9x^eaTQg)O^Y))4z3D2;TTQCFrTH!|MJK6P6av#IyYx|fzaLdX4%jyl541#-{`_qQdRG}zCHIg1+RZxY z@|mx!Wk(I!Am4=mSwu!Fe)mq|nx{bIt*6#;0E6?q9h__G;b%x*{Po%kr}x0Xggo(8 zo^eZgzCL*|n)uKE1>mp<2#FlHo1@k6L3J=q)x%?(amgtg6W+gv$V`s%PLgXcRQ_9g z=x&&D=fxN=^CJP)tj2mS-5dFEgoi-ucaW#6rHOqhnPFO^j+eE z-0>aPix0DtLJvPXOaWa+0g{!?R5vY`;+hBDmxEOEpA<{~LkyRcf$=;&esg{oLkYw9 zqXv#KX1}F^3vJI>KHg!N;&+X2*l;XOn|jZqBw7Y}+1EE&}v3rhgga zEhPm!jxV4Q%wfZOk1-6KvdZ?}%5BFCwoTN}U zP^@SI@%!5)^}(%twgbTH#xD86GtNBSje)k^*YRdvJFCwI`=@-5=#l*bB4++|Zc|l4 zabl|vh?YenrTU&PTv)?*zSDO3$JD@MW zV<)=NgxG7$aFh4o9Dd9d$dgPTkfs8SAw^`zzn$<#7$qzdAZI^)Dch4W@+YOz*9%>ti^?LLpanH*R zx{@Z9_BAttzR$EF&mr2QNjR-^Qn&|(CmN*(}_u0aS*P=zVD3L?ETHy z_-MD+eiKKdz!AFr)bc5+4TsrP!$%eIx^(q&VwS_`qb5V~tozC2jUv>y(S+4|(0*mU zhU@&?g5q2Zz7@@B~l{GGK3y0C(3D>Q>AgEGv)N*8@wOfMbQS{wK;lBQOC)Q zdpyXLI2rI@M@ncBJdH zEm65o6Ln3>a(e0H&u-b`8SiP+-8fN?lM|wDpQ3^p-^}gu zu1{};>2!w7+70{*+*2jZ2C3di5mZd@XUi?p)qmp1ke@?-cv;)9T^=6%gT!aHh*(s> zY-E#rKI5rGjgd<8%VfNQ~k4qd*q=r7r-u-?)`NMN9@2%AV=y+k;#$apd z)8rz{eEzOsk?xYEyQI5iC6(^(lW?qnJUVr>Hdx2oxf_6nuN}-{M^9yl@$(wp-c4Wk4{t~HJGLL8uoC_wtX|XI^UL(I?sM=!^)5!DV?Rq) zy+v(7M4s0*17?sz&*z=J({8ccUVf6E|Lu>By4w2L?xj5&e*xVz%5JOtH0oS$#o)M; z5!T*oy`AxmGtNqw7x!z5f6gw`eE)`!Ddi?xz{>9sVkK5V{8oTlD-KWAVr7hjuMraC zHnxTE)+71g^4gl#Dw*AIRi@8FC-dNuPHvf8WyR8Z-6I@@A+PyV#?J~8m(D$t&_HWH z&L8E9@{pUd&S|W(e*fD(bVI z{%-5a^x)!&T(0J_Uf3LXA{o38c}mY6h_XrZve;JLnbmB^{@(w0RUo$oyFSWvtwmlN z0kwrk)a#ef@`_Jq@uI_1Kzi$nz3pA~cfLKrX0h6`KOotoA4|0_-lbz@l7l6MB0T1f zo>*2C)(}~W;PyU75v7jti|Or)^nBYvZ_V`0*v(__Z|L*GJ_@5cTfc>>``!1p5C7;+ zL|H2E&;0S`0xlij#{cQpS~2Rfyt`s)RxtFPK$`d9ZwvHw>m_fb@ATU1ifex6u;Oq* zGo}U<%TfKM-Wic^9Ql(5Tl#a{jR!I5R-Dh*hBN+d_JKF{0`;$-OK&1e%{`8CS_w*x zowoSE-mFUF#~VpPoT9bJUb7vaZ7@>Vp$VX<( zhoPp)ioU(0)pI5^n=`ESsH+|~EC?)@TDe=oZ?Qpyz6;OPtJ6%Ms(>;)NWV$gzt|GA zJnl7e$rk9E^cui0AYi3lAxd+(To`;R+phh3Zo-5e6BSRB+cnzIFM6ddp8D)^6>OuN zzWf$*+&(8*)luj8J6#D2b}yVV8EGF6^Pq;`IFKV=S7Ab7p!l2m)V!{D;I4v#+&Gl8 z#6;mM#G8!wZC-`9E!n7GSX7W}wL$Np%V-b@^4f0%tC{fN(;I^z0UgI4rX&237 z-!TDb!$CeIp9D$VRy~v)_w4<$XC_S)X39@apKQ!Ia|#u#TvvvVSC5OlM326gsmION z&0j2Uq%B=Mh}$G*gsvVno(&F%9@fDKQ7U2x2{ym~-@-Wu41t@PPl*J+FeO4#T*pHd`Qm zdXrA?gcTld(7{2Gl+}cY3guk*S8Gw05$$F^a?)q2YSex-tLK)0wb|oAQ)lN=9?F-K zU8AJInYPb8(r-`0pybT4g-FIa%h$kM8`ei60Cl9P>i)XelUCaq#qofrwd zUb97NEaWlTZ5sVbnCs~eY8+63D9{mGW=Q%li&+v;JUD}ns5=lZLi5Yl-iio&g_+H5 z@_NhrZ0m_WRPB@r#Z^;&jBwOfH>5Zt6pA<-E)7tSfg{CH%OjD4J4vO%hw&fOY}$mk z06x>ggO!7lNyet&R@SE&R{QZmX5;atsl44WV&g-h7EOhK9%mBaLo&f6rmJdYP|@H;qm?V%UzV%t2R9W%CN>u-ybsZ=6{|52SkX)&F-iei}g?R>7{ zGe=(a`8cabw2F`4Zsg5fo>2M$@a%W&FO4|2`o&KRv^*D8St0Xu>?;brILduknUVQQ zU@nS;W^F=WtO9S2{qSf$|7^$xm(>$N>vjXJIZ>BIW$(%Rb+H9s=iRPlqxSZL1xvb! zqcN3>V;dw(^lA3qcg2RErYtK=!I=jc&G^jIjAoNCQFLLx^*_|)3vy!!UUp4M1UyZkB_ zghpii!|bS*0Pm{r*xklcWb~KjhImKtn^I#g%kcf>JhVB*x5O>j0~V@ShaI(a0>x0* zR#N?qxEZF9%a%Oc-AM!Fnkz1``x}YTx(8lqBpye>sFC(upYQW7JQPbkhZh(aZ>@Gz z_%lCfVJ!ER853PKP_XmxE@C~^kKH$7JJ={zay8!^3V(99WI}i>%V)N-)i+m9NGEp6 z?WidC)E~K55anXtY{%z`*N?!fch0;AWVHkl*RVn!EwA$_z6ie{V|18(SyJ3!gf0h> zR#QA@U@DV)zq>oXl?-cVH=IqWSfbyChHsD-$T#6hLTrtinYL{ z@wUdhl2ujZUee3p6&v1ptUjboEaE|jF^f7I0Y^^Sa2Cdk3eH3Kw_d+Anney3mf|d@ znbK|(qsunjp^_Oo$ftVY7Zp|EJpJUn7flMRB3$NrUYWO2D{fn}K$RGq!}BLDKKzal z)N6ljVG>4V0^@ab06c^$}sREAA8T(tm5iK)l7?i)C zF(pbms;uchJ?%>EOmFIlXeWr8<>oKM19e;N$Oy(aN}t_AfWM#|BgU({*VscA`Q;3a z{lsa*X?q{AH*VRK;OWBhW@&en_|GN}+3>kTx@sRUv8#!@4wi?Hk)ZW;&B8-;-GM$k z=>vNpH3>Aj`dHgB}N zgPcJQ6oxU@X4v-W{@0j}$0lzl#ICbKvP;Gm6NU%AYju}<);aNS%huSFKeUdR&+RpY$KtF3n*4-n0~x2OA^29Dl!u)VCL9^T({ z$?Efe*QCFiyuz))=j$gzxmW5#ABo^talJ2}gW+CM8#uw#0?A{KO;y4LzDsWnAor#A zy+0!aNYKyl`}SEz3E#Uau7q5DNeU6vj)>yRdXdt?Kw?E28C1__GMm+PaD)@V%WK2_O`4ucr?99 zFsJbf#TaLzwO8(IO9{UQ<*c77gm2m-a=9~Wg}hL&R$OwPAt}R!ECrM1@Z86J6HHy^ z+}6@Zer+b=acFs^;rb=e?$S#7g~y4ZeWYb}`#k-Kc5=MQpiMvIrDw7=Q-HMDs;+y= zzW*nwN7ttw&)<7vE9r)uo>%@?lakQb0pjU4hwN~+SKu-8;#|;WrMtC`xh!^0*>cbo zvG>Xr+<-%mCrJnkVdv=CyZY)E{kUe!{m-J0WKJlh?ArrYo6CbM@d(RA_qF|Gqb%dS z%@MSTS|J?FEm3F!3Y%YyJG3w6pzX*+V_Sw`^q?_{j)ytg6Cs0^M-AbxJ_Oi;#=Dds z?Nc4ss_5=o@S8*)IPfQP5&u*4} z#jR0(5Nt@{(NOTX;2K--&6@$aWYk+(5vB=;$Q*I8#t&fVot9>1_D;j+ZF znscqU&0frYT_SEW`OatA)39>6dEzllu@t({I&#o~&i~zQcle9cPfvM>S8`n0pM}&t z7l**dYkNQYJ@ghLB7vSO9&?v$MyHaVd6X3##L@+!sWIKb z6;_dTM&t`j3zl1`TY7OI0nbdrW>ThIVi%vI-krnuj+z05oLv66Eci1Qx;}Z~vUB(1 zXpjrwo-Y$AOB9u@Xl5y2=N}53$jEsu!`-|oIiH4Tzdd=9(q}byY(;t^@zB}EKzK_G zXV=>Dgv1jn2JM^QZ|rh8?!ok9V8pZHu0kE)p?eh;?_8^PIvN`9lbkKx{xkk59he&# zLs-r!O|gH?&ro`Z$MrClxmOEknws?WKvc7nv?>r;%Vi4e1NA=rQ#o8&RZiR(_zEQ# zxt(LPu;t33M7 ztESF5voNUiDWC;FbP|?Zofy zj6@7dwxY+=+UNf$&~lr1F`0s0rFI}o*LURmzsYTWLn0x6(BR4R_8&q+2HS`GL`pBR zi~Xbc2Xot5D_?IIJ3MrgA51d{v*&7PUJ8U3FZ^ur)y*?T-M0lcGm1}>xU8>ZI&3+j zgf4_vF!?AFFn{)nX{I~$^N6@5U=FQ5d}~+9yJ7|~4U3e=wG++6w{xDf;P#f;dKu1D z>ycjR&-pnV{ygk-Xn(q>eQwvoDjHkzA?9)VX?@y4wcMUtd3Ztb>9(Z^EgB^7=CZW$ zs4x1k!4pXMkLG#X|{-^?`Nq*(<$EK4xKCS`_mG+gfI0NYFLSu; zP*jUXahC*@HnzhT*~2RJ|FKtPp`sktFf5%e0y=rnj&65Gx_YZ{iz52hRXFh8I`v`( zy)$(V(VJ#hbpFc9CtiR8+qs`7!L=JJlyPzUi_Bw(nxNcELIsJwvoyrOA;@v~t+J3u374W|&!N3UD`s(%IHoL2Y>BemFjjKVD#a*rB8)OSZ5% zlwYFqhGMCfHcHkq!C3AMXBZ|IamBRE2P|M{$s7nnfXwicCN_0&cCO5kl04tn+r4tn z#%WKC*|)q7Ja&%Oa{6CgnA|Ym_Y_8Xzf5~S6?gy=aDMiNMLsObtfBN7Hx!*+ImZ>a z!5O*oDA_nco;G>B!+(>&zzF{3q|cr+hn-3VR^9VWWtNW(X+>k(r1d3-e3jd09F#g` zmxtxPdT4Ll_1Xz;zx;)f{faQ=pySTC=B{i*u9bts_8Q->={2CTx!M73T$J)=6zZ4I z=kzWI9N|wHHZxiui(fs!k*(ds)W^HURnWT8YO7|EJCRqf1pyFbf3b#1d( zH~GG%muEZZdo^2)Iw)@uB?7!u(jb$5^N8Zas_*|pRwHSgbw7tI*}>pHn8FC84O>LR zj1+6RYg(|Jzi8a)Z~1ZIf_HN+v1fzI@}P_BAlh|rFP`M4-d zQMg@fbYU@bCjUGCB^)ay(3ey8tehfzug5yx)Z1N)}Z4J&*5I=L>=A9G)Dt;@5qvYOZ8=J(Id zzb9CdpQ+A|R1Np9?lno>oK7KQldUZAvpBpZ|9a?(eB+Ge&e;?|$Ps}VMM`>oNA^Yf z)8-o!y1sQ;rc>4q-Lqn6dpQ{2#YB}yJPe@P?TA(mBZz;w+2sshEgYQSDfw$Z-=DfQ z|AT1bn$McjtvhU3eXb_SCVjY5FuRkuw8E64zT({NFu|AnuvA}0(dKANi7*Gl{_xF>i*e_}ZZQ{yXi@2K!wDBsx8=_R>R=0Rq5mVX zsWwE0C&{uFQT|U~7m5SnvxQk+;wxdM9C17pSBZ)^r&6~Fgg`d#8b28aqk4I@7#^E52*D0QlS zya5bHekh`u{>BPWee&p9mn;rLG%M|)N9hY3a<3Dx=Ckp1`!x^iHQ={5ol+P#nBbk98*_JPp@WOmWUU3=&nS>Fr zWWIYL%>$7~R2TQTI~xufY-uRL8d2AhtN%wbet2_DHjLX)&!+*)OYiY?>I$sB9PKAxFnhSEK5-`TaBG(OxttMJ+1+{{HVq0-&)Ti3`rRHctgo3l zwr@;2bz=`9MU>#eLP!1?z4hi;$cvHi7401#A!+ef@tf1f?1={V*vv~q4#J6kb+1)# zxpE!DU09;WV1pm~h{bl6zpx~1U)1F+`L8Nb^Kv9on`%RGSBB$By6W)06(`@$vJkEA zi<+%0i+XsyuEVFudjGEdUA@IXNqIK%E#LYBRLlI_PH`8nLvoob2EBbmr0oJFucY@n z*zm61USOf?Y&p=wS8pAzVn01Llg~PE$B1G(HpF=2f;>nl?d)axP|^RNmL5Y4=GOVv z?|vLgo7V!v!e5>Dq{^>nZy-&tP_Q(S4_!{sT zDju-guxp_GuVwOoEt~&jgUw0`HN3TkZ=BcUv&(4z8aS6a+nmfvH2j04(CYn*yZMuP zfOzMWO~TJ#3{S|V%A{A-qXR5Cc1}*~jT6TrVD)u!dZFX-_1{J-#ZFx_;D%kpX=Lu6 zn+c}5tZk3?d%pyXrd_g%&P0aCFOzsOZqgf{-YaErMERZKWxue?Xv0vI8kmzHr|zFO zLkGP=v#Pj_9A#YZA4@5&vmu%+$++MC#U>v(6#Ku>43T}qi_+>QD|43BShu?UM-JI~ z**+70AW>>mL@OyAQv2=X6|Ul5GTcR}*39MqsoD&OZ$=U`VnRl}swr zgnbk2s%CeD#Uv1Tc#pEVsG!i98hEbOS_; zL+z7?kvjQsC4T#?r*6{!t&&<-f=I5M+n*S+wR7}sDH!QgWn@eouUY(kZJ&eKX#Fgi zzK^Ua(k0n^db6%vT;Jy|Iprg!RD$o720X-%gSPUG#OB>m(s%;Q>KD<=`9@6)@c}M+ zwxiJ7E61Q24aKG9JPo_JdJM1$c^(6!48K@4yt(2*L&uImMd$@N z0YM48FXn$XcnsPlD#-C0g`X^clGx&iE0^uX=_yuC^5~iQs=F1=Z~G?ge-y# zI6EiCZ8g4FSgwYN%2K#zX0Yo&&l6!cF>uN6iJ96;9B0bx5?dB)w>#FKX+U*4D#GT# z*XP#S=g~30RqmQ?3vic=R}mN>IIc?LOkrNrfr8;D({!kFT7Ctjc29oma42+ zip7?*)ofZZs|-*2D;2)k`Hkg}*VCrL8_bybIj&rk(>8terP``;idnco#dWK(6v^;O z)%@leyXfdQ>oRD;Dq^@wk)da}y5_R>tFb*uyWOYTsiCZTgm-qH&*YB)S@fSW-Tl>< z<`VA#y6jr)o<}{a-Kq3Bqm@%oekx%t%>@d> zFR2FZrhQAYLRS6d)MBx1CfVh4pbQnovU&Vt^Y;-ggBj<}txHg6(@nSED+L|HT*cD2 zJ7pnP_qf$*K}@p?oD-o4(p`%1(-U12Cp1nhr+HHWL81?o3BGZ%?R(pb?A9A`BFpxJ z%W!;8UknL--jmEv_{wWLu1wXLdsV-cpzLj=^HWTvBR~obPPPJtT6{9j*?NbJt4rz| zKDvNaT#P}Bzv*$Cym|2$_0#ZBLC``uti2ge$ROw1URwq}X0wD3#xcM6CWGI}V!SGQCuE7V@s1t#I9enWM1t z=KNKflXddbA_Kffc)fz`SIf8@oQrbzez(p@VsYWEA1EC`89M#sgkjq3f25~XwHH_ zB~g}iwsAQsgV{BZrYztiTw~lH+lSzSbT`tzJL#Cma4oqe&Mi#sl?hN4Fi~fWG2KO3 z1~tv@Lp9&sj8;ypQ!FnFTE(6;Ow=^+jCk*zFgak^@}qlXzHy=_XqFKWOa-c)n~}Kv zm};BjGeTfEsdN*)nH*J}dCloMjTVuuN`4a2(T>evi2h_+!AqFb zY}uK=Bn12MFK}4II*%IF^~0`97BdrZZB>i7bljuDfoYN>cJ)D@vvkR&WpNM&0P8Wa zC{Q)hi^nF`)c<$P$?6f&vNGjS&`x*hqoReZsF2I>ujSd#e28n4l2i9SE&NxYM`}TS zOwICOAO$)*tv_YUua>WQ2}JHpXXILsYeBN#XFRmDDtsB3e&5z85wBa%SO(n{XLwWD= zK0&pftJN%d9GMdCY(^YIUrUu_GCxhb)mh-jM6DxpPWz$S_A<*I^fhHw6YXc%%9t8M9lGv8e zt^kW=j)?{0-+@$3B3k!Hnr7UB?L9}QnV$E^gMZwQmLUWF<~}i0zU!s2BDio~FU62_ zIlKIQox9+eh#}2<-(kJvu=FHvQxNcg4S|NvZ$zW4)J>!JuGGDZF^8(6O=`G`Gmksz z;DdAjSVRj6vUNTOO290VhYY#wh^qi?@wpghIK+SDEX-A-nmJW9QW;qQ@uC?EXX>-CUeqPFoNhUsBHmUKUzNuY!v6Y zEhnjp@H#|TA9<2F2{?wI)j7(({B#a$qMFdMm`3xmA(he=2^Ve32RB7VH_)!9>^Hf$ z2+wVP<{(YJ2Zo8tuE z*V~a)(r4sN9+Pl9_JTR7Fm`yTB)D@iQDFtn7^nbrll;$+%-epA;7+t5z;5Q2n0Kkk zJ=-m;47ooS^L3V)R*q_AK6n{8#r*>_$pFwB9#b?FDd0Fq zDLyq#L+<*T5be@@2 zO-U`A)twnPz!}`3jRlg6tqt2}SvF@P0&RS0K8oQP4GnL6lSHlwPMn)l3Y|BL?aAfL z@}M_!DVj)yWDLL0Wn)A`=!Ha@fI@eiTSs%`Lixkcv0x>RA#ma1NV;0-<#%~S{-IT0 z2w`wwD0{F;gTpm);XcvVTj8mum#e)G2R}70*f6br zH}ok!ujmzORYH>EjxdbGKH|DlN&Jwn7_smgcJ-4OY>?y2_egO}P~cWQ!qL~2)ys%~ zIIkH;q(+8M?>RX#Kk!?{nCik8M>MLT-J{r*(TdL&@-#f{+<0_qV3q3%il+;MtvZ1P zEbD!+{dEc|IJRXaq>w`zy)|a@$0Vc*ALakR6RwwkKiS_$<=VqRvmGzkCLx^()zBkU zHx%H}&m5X!I34Aw5+RKr_=J<7*%g9&YA|F6yFez)dnMZRr*h8&>@59E0+a=xqxyBq zlw4;)O#z4lOSKmULUc$xeD*=1my{}ErpgLbL&l$wSirFYH z3g*7EVU{{-vGC#(I$e5ZZV7$mfd$UIukg6Z*%}`~Kqe0)g@WI9OgGEe2nS6RL;?EW zh-`pF^R*eN%kBgnv4bY;Pf0+6#B+Bmd(U7wEUn#s+Szc_Pi#QnHd4Q8^Wvg?YNp)& z@A4Cxzcn0nUJLPCe>?>1aq}V+;^$w`1AYE}OQ5S!2~gotqQHX%?cfh)umMxyicJnc zB$FT}kDT)1(sC;`W}qsUPsU1xrP-||G<=O7u`}ZraSpPJ41s{qO@DVa$}jYMwP>PN zCT<17Y20chh_54Kf?a*}mD*g7{%mg6FfM{=VVNVxv2_i=#$-^wYbZJu6=ku%*X9Kw|f!;a*aVE5AO?Os?IQ z6=c5iMuFmQXlBJ79)GPVVOXmQ5!z3OPw-&A>&0(HHX1qs-nCHF&*%32O`D)P-A!p~ zI)2Jk|LZYzWeTa{&3`4nXRgc27`fGd&V8==!nvi4aIwZV3%Ium6W@BZzzJfVBA z?((H?e_(#I6gR5l<)hYqoAhu1t%VZ`@#I&ImI}NrCx1)7?R@q%?htMMF8q;evN)`e zLugaYDQ%lct8IyErmC`N?6p>Glt0Dl!h{(jy@F{%Cs5JHiNUGTfilIDz*mvRR|u*2 zDUgY7+oC4kagx69>vQ7n$5DW|lW2q z4ggP*r6%tcvZOooqTEWu^vjWaVe7BhT>{l03TMf>+o^tdh{q}#ELy=FbO+3-B7tGh z%B?EVm{k4-!{l=GI@-m2=16zo z1dI3n4t~?g`;zj)iMZ?*pQEKVH?veR=RW?J=el4scB~bEioNOvW1dy4eyA~Xm|n!1P8A?II|zeq6AM2&dQYUAhp@NXaSeA zJ=xR^JspnuV+7R1a`MD7R>p2kHTq-dox-*H5>fvG;2I~V%ZbZZn%Rqq&6}Nlk`szI zJ(1Lj&_)a^L%T-A)1p!?pFJao71?Hr4)c)Ys-v|@;p7>zU}zAJETp>jS%F;?OMiSQ zJ9(Kh60?1Rxm*V+47W3%fT3@ZX{j4)^3fOL9H0`rTb&0veaOd2ruSHt`uO(hCaIwp zGRc*Q!m%VDJ}7?-;=&=<^xzELUOcFJkAg*4*fTeU*Fhj6Qk#X z6|NACiG(2I6IF@y#c3hMaQ-%-2RC=X3GNl+jZBY(saFur)WmY@(3z(R0D?-I1?oMs zS6 z(ISy1UC&+GgXwU`2E7Z>R@uez*F%BKoTbZVo?2tiRMvJ9>|C@78TEy){iiz|fCqd- zrsF2~c|ce!;9MNuGw79I!y#SS>z1=uJy-}b0P4#AlI;Yi3{Mck>-ic)k(XxxcfDg+^!W)B;>t|J z{B9mTIBDbzKnd{ON|xY0UrO%g6v0R`26!7n0k3fH(T)M1QS&(d4X(BWzEQ$B9iB~t zn+P_(Ky#`^C!tR=on|JFif4*S?brEdpOq=iHA<$M%o7~`-iSo3-^-q$XBoNBMExCw zlO{kMSK3HrZ(WHDC}4avCVQd+xws40AmybcE=#~(xWWeEHXx>>s0_Ktn;RLj1xF6T zmDs=sqEsSxp^?F7p%Ivqe^j8B`yi9RG*ZeH^e36N^{aIw$~tC^BSw9|wVn}bqWBiW zhG1TzAs7J_Y#D?#M3l6k*}0p1V!djkxv02r%_s4SXn2V%bD=UMufUCS`&1P1fzg9iIH1Ux5psd8xkANV2QYb zzx;U>wT9XVJAZ68WT@7oH*yj-*T#%t@IS*0ER6RHSadjdU3Z5C{m$ zxDJHFBj}W}>*f(h0WR;)gG7!+&eRQidyrO8->hfa8h2tIL3WS42O74D&|8 zO6ubY?scC&mhNcM5wLKi}<=fU|DEL+t@keml( z&vbczq@=NX`IoGT;6NP?`U*@(%EGKMqD1~2uv^D5&!)dcgzkIZ=1fNMC<#tGUlG?@?c2oGAUY4$7wG#>&3;h*4Yg5%(> z3UyY|C)4BSwAmkBSL^7prb|(VKhWq!<04_j!Yap&CyQY3sJH*3g4G7EMuNoU;(LuN z(JXv#tnMU{R~P$zIAu5j{RlX5gwF(A*Ho7oui6{@RGiV3{v$-m1Y86zq6tR5pjcG{ zCBzqe6J1_3x#+SrSjVr9-_Z%s#(zoNJzpq=_kCXA>%iLJO4Y{P(KmFASY3OCJ!EJ) z_qYldc8(of1?%^9Nu6VV0(b6|h-XJFIge= zxkD55)2#wtPz8w&hIy8W*dKjYRlfDqKcNeH7t4Kmo&YfzeB4^j zIe6`*lZ9=(|K&FX3lrAy((^@KsrLkduZXb-OrHah-T8b^7G~uph_8Z3&xODfkH!eg z!H_O69O6{H5ND3%8&7xk^EXWb@YP7jmrbK-yQ-BxCt}W+hpHTq^H8?=Inh4t_3`_o zrK42B18NoFhuxTV+M&PX7q zvzJO8_F)g>>gAU|)7690A8%Q*lQTFuO)y3=#vWh==%jZP0n*=K_^V#RsK6naIuvU# zpi1YFSn2*92!0zt;B5+hL>#~$zzS0%gt##wA&|yF=3PZR7La-?8Hi+SdEXJ0l-4Jz zo{u3>Ao3H+{ie^^M%ERNmhcrtSdN7|`an(m`^2y3gMCISO>!y+sPz@k85^PI4iEvS z;KvR6@GP5Gp}L~#e3v@H_EFwN8(!sHZFBb?q>g>H|?@cg=*Lgr7VT6s~koFNEGlCA9icSFKMt$Z!QUUgd^#wwI0Z{PA z>NTQZNQ|uNM|inHs^?0|U-4(=M!|_i$X}t?!75@{o4T>1Jkce7@MwI#fHQ!vU8O!U z#8Y8HBq~QPns@KhBVXdJBpW?TmvhBtv-*(%Tc{2_En%62@aML z(op-O1H}NYP&RbC%gxKs;UpcCFh4%`La>uYXuw|zDei$aBq*^)5EeL3OLgE0(pvyQ zfHndFN6?!WguK#Nib@VR0xE*obpQo&2|R(Q=otyP_kTZL0eA;)G#(y9IlVGK5lEASQtTZX2mJNjvG{Yrev? z&v@xt37p4#FeQbpnDcw-Ls78VJq~z2a;0905ngt;m-S8vOm?An;d`4pGWKzK{wQ1> zc>B2XLh zXLzQf144|BI0B&~Fb{Yhe(4#+=FI8L21)`V-z${f-)nC?!kwt*0rE`#l0kSCx)ED& zP-4vyiF2LSp;*$4?cl@RCsqjWC@rSS@o#_#Y;aq)cp&&Jr=waPOe#u_T}n`TFAryQ z6X&)MDIA&@$lIHhHh|!^av~yl z&DDo$9&-RAM>j+}C4~;g7yXBYVZ1?L;KFIelE@({jD3B>^uol?M1?)!KrCy3NQTgX z^+x8x2j(;tY6}-WFK{(DC{lD^URWK_va!Hh2|jh`w^AkoIKU$pd}lqJU$0?f>5eu!hxvc0I6wsmR6OIx=j(+z!TekJ@+CG$MO=XR+Q7KR1t{ zvriN(p@ot5fr218>$4E#GyTt%uxD!QGf z{10c5%M6zCzUi>=?&wEDkmgPd70;_=Mv{lJ_u|KLWtqorI-~w;q1We zaK6m#B->0{?=i_RICJOWqDwgo=UwSR)RL;w!85Z5@U(3t13Q)wLO5x>Fih#0U=lI! z>!s%od6{d+s#83orjGqiw^rkNFK$(h)17Ih&c@%a>RZQGrh=o*<&9>J*uY+oI(Rz49j02?uIoPMu~0u zx^Ch;&c^_(ft}UZezK5xQa`k)$S#tBKTTaZWUdrq8APG|cLX=ag5H>rwrdL{Wab7A zc&5K?(PB~_^=2(aUR+o;SzS7?#BktoB>x;OEE{T}>i)^h)Z`=ZBLNeiE|pP1Snw8b zlA$aXON0^kEwf861c$pu9G6(*#O6&G&M^k0shY+WuAI9;S5H#EBZd9{Tg!h&qf!Nf zBy(NSTfup&eO z_~hS4rhPWe(?LqkXZ(ztoZs=W2v#P$|KsnzqM`nuNxGYwSfxFyt)5iwXU}J+u+GZK zb%q9S4#7UP>8)9;_@CVp^!%$L=#rfKKSW@;{O`murYCD1xXfwI;7D5^9%{KuK#%m z3W7=A^d!cFeGtdlDYCqmFN^KO*YQ?J7ypkUP1uk%QaMnxzdfJpxsPYXT*|C%meg8Y^V z-GQ9HYlT6&FyJH*qs22IST4=|u4%8m*R4eCVUy6A>&-ILuP5?zI!<$xUmRgH)gbzJ zu7rn7VQ84{xcj2>;crp{yp|t9V{O_2+oFx<|W1r2AjJg&zm2;l}nFFFn>e^XYHnC ziWpFkmWq}$H^RtA_@-Qg zPoq6YU@N{$Djou-^>?;Dh8UJfG0$oJ(OAPc=nL{G^tq@jPDEJkc3b=;aI?EAQ5HZ+ zEJ(H=fOQTI38tHzRg3h-Pe&U)_H~ZDdqv)*gtq|ajbs>sq6Ka9A+#Tz-o>31F%@lC zXx~tPx6T>z5>-vqskmQrLg_}@@$(jx5LQZu=ylk`1V_3M@3CMJuI??4b{%0#^bG<+ z#$?ca;E+z;ze>||7?h#d#`QMH-f|3>J%ngE(~UtEamzA<8ajhTC{;l95hVyjX zz`mZq72|4(-d)pImtW`-=@W{>uUILKs*Q%>qr(BQlSmJ|jy!EkXw1POLV*!X3E- zA#UH{qldo2p$*w?yu$AsAAyE5yy@gmldpeD{8Nf70jwQaaX6-S`#^OdO?<>HSe+*IHEQ%wI%&=H?5LqJxOPutgoBf# zVI~6(L<&St04ca4SmI$@<%1tk_Q0Wo$Qy6NTMDfih=bCt75Zov~;NI0`r())$$$xQfwEEW;$4~yVhs!^tL_xbfOHcRQ=<4g4kv;zXZ3|Db9(Mss?7ljLjE?LIfB80fty;IvVr07r6*kM6* zIL{d8EU+aun#zEiw|PRHG={d-IsBITFz;3CQ;(i?QjlJW+f%&kI_C#zoNuHqPL+3QD0LcQ?LF;i6B}80%P$;%Bym5$yTEW769Lxd2Yy@;|5VBh z$|z?x2)ka+1m{Fy&=aMF3=b9TR;DUy3R-9ylA%f8Xl4Y6vBluC}ir8b~__4rg0w?fmY0_!~N=(9$wA&9eBFq0XB9niS z%BYQ%HFuhf@lZ&hE!{oD68uNS#`h;6^Dsv4_Lr|M@t~T70n(svXXo9Lx4G1*Mk-;kG(rzv z25Zi}?EJ?ARq_XY)Pu;J%}VV$4=ANCz-Pi2_28scPQn#U(Y(}kiaFe%<@$r@q6kD} zD63G;{ZrwtCmuQKW|Jy6j|c_CDWLF+jRBJ8vuk$jYc6)FyW(fgd%H)gB_2^XkmQKF=Fn&)kS4k z{sq&4qX1hX1*()@0f?XiVEh0)0Fz~|>EfBf5rpWRM&)AYc!lM{E(0nP&6wvd;!QR3?GDfI$6+_P&6ASe|<6YR5xa&0LH*)4IMZF=$UhF z$di~^TbbSdTW<`V%3(ee=w3G3P$dW=U|%I>LMy}@%&4s^Eb+kOltEf%Rj;YYN7Ek9 zNFYGxnB#^51^DH%SF`sCjOd!#oS$~VE@-a{XTK4GN)1!o{F1U3lTGlLK;7_O!49#Io;_&+jD5+_OEM754ZE(&?lr;n&Xgb~}?kDHEQ z>7bWh>Y!=x;P_}V0RYUv+9J$6%?`~3O^T1LsaaT#Y^3nDr^j34@7 zAi9Jk0MT^qsUH6`X{$@5mN5J-{Gq@q&#Mr+I$l+#USO{RYI-8{-&VG=ls6cDN)#+A7@H~O2S>0qYNbIcEet2Fvk zH2>L3#`~iE0|cWVS!TdgWT1$|VmXVn83Gvyf9R4Vg8vRJEr>Bk*JXyoPf;J?8Dg2i zIwqaC*T$3~Sl}$X)Ytu&V&oLjenv{@q9+Z2G#=2eMx|_HGf!#qtPyKUE82G~|Cj9fe=9{p-S~4o| zU2=P~+93Ueh?W&Z16hbrhsjpF7?h-)(k-o6`g4n1;|dxWLww0F2Cpx0j7bvKZt2Fd)f`6ZgU*zq3Q?djeMo zM0UcSA?Bh=h3$$OT+x+LNZ5ku+~|)894Rg|=_2xymeF%@M!liCS>14M{%LLnbk2@q zs#3f;q^r`CwFfP`Jb0j=Oz4!9A_-{HBS;C`%VM(Q+!(wU_3b*YHxTTeuYNoeU6~FL zne7Nrz{lwb{&nm@qwyyOoa06Y3Y_`V%dsCr9wXwumvFuxgt%m>-XMEhSybs)nS|pxJuvR04d$`4NwBEAga5smydH2ZHV1dcQ%FQKV1e z_cH7NH)u^TM1zl$+&^W5-J(mr6db~jI+}ly_hJNXY5N?fA+Jw&asxq4nxerqNS@ul zz5QV4GNkgXUf?2yGM3tG`!r0jC8mP-LF2(az(!ASjFAEV-VcVIV6(*K-BN;YcQiPw zN|Ex-FRK3+olun(vFuPfU+d!ZiIY(%6?_jy9S-W5P_C9BmHxe|c+gK+6!r{hx7cda*@8{LLT-2gX0Z?SlTARKo=F( z$Wi^^sNja+Q?TdBo;)$l7zycv(>3Y9aeiDOE1Mb&;M97pBE+Wze@vkk*n8gMy4PBNBcg6%OjCE3L$7Rgvdo&?V>3aB17hz@@Rh71_?ydEfWqAw*%_WXAoV zJK_-p5JIQuNNfQSCI64JlZF!dA(ah&uf>6VU~-oh!rWx{_9oMN^-yVZ-nnXyOjwL( z+{G78w^#);s@BD(#%yY043+qH1?8(n1~dAvZwFe{CNrSeMM_lvdh3OQ@>}zY)D^rW z-^LFw9V)NCx6Y=w#aPs0^$XSE3(`0+)+D$@_Gr7eX!QSk2bD+!yE5K;m#T*r74FzY z1a1cLpj((g7-1c~I?#tc_rWm4pDu+6XbJ~?W)KbZ38E#`bV>WqowiT^TbCwY>^DA> z`Hpd4{!%vn*(1_>MV1-C|7k7A)n)THNwA1M9aQ!5M{4)Jl8JwF3N3it5N`a}wU@$v z3bQk){qN3-0tFQs{ID3NR34qy&@`7T-g3YG_6wr{QQeLyeeLFJkHXezF5d$aHfmzm zzN{LEIqB_{(kSR~>U6QJYIjier`1q712t(efhTkdJCj`9rbo6erDvpvDbPUr+Y$l= zD_(W|SKBm-zf1m$rJE<3A5F7gGg^^2uJHt_c!TTg-p14Lu(==2Uk zSHJ+?_*`bK`3g zGAR#-Nn>#gPzRh5%%J)k`?lGiKJbLgo2*Zs&4f0t+4cmG zD7Gsip5aZN1`$UTVWF@J`$uC7mNR$gfP6BGlL-P&Hcu@A)U}EF~4f z#dz;UhPcv&GHQh5`seS4=VK2`AHnLnd{goBI=SMfDqZhu&_l1!shhB&{@{oZAE0%< zxo>GoG3uxI7ktg$JStAiW0^rlpm-xi9u>pE(SYKMZlSHNL}+j1Z$fs6&rCixEHt=g zvRuC&^ctB*S@tF{+^PQ68Rja+Z<;*6Rsh(-+^1`VV_ZR{WA86{y@53nYQBya>f0<#8W2G!SXKKn<|eWMh^+K4I$#}jD`sKJ(sesulEC2<~!9a)j#}6 z9vrOu<$xFL$HB0aSO|P$0(fG@Lkl*KkXeDGOl+DwBO)Ocf*r$5>~~^hX$q{7!AV5C z`l;(3q|QW0rKB&WCMzr~>|aLzQ3?os^^6(8w$4KhA_cwa=cvT-|D#U(dv|5-d3RWLcEG7s zc)HU0muR=(iwLJ?(+&1P3}{wOeWM}{P5=Ui!4k!8i>C2U%!E~k%iU!^o7o*U6AiLP zk?s(EJ03PC0=z{4Pj7`F2MbCfx{nO|1~R1lGsHKS)|M8Nw`a@$)GoVyBAa6H;*^_q z)984T*F_8f4uk6I#zHXQFXI;(vcj9D>9rvelJx>yoDg=qpfwX|WNYYQsfT!|8dMEw zzy;Ozym-3{-@w)TT@WppuiI_EzgHD(#3P3NT$3S(rOP)KmLdcS_~e|MePNx7#Xp!> zRO=R>Es_#gdGZCmgF#F?2^w^(6?c@XZLA`u5;H!38X?8%$ub+)kJH0f5jJ2up$Nba z@TtrFz)sdUKS&1zp>MJRq2Ugd^L=S=Xll_{zzh&E z%;3UcDFBSkgYr9Ugg){)(5E9~?%?oQVRKsN+gM4tIkI~9%^nrRkWfKdmuEr@*>h%t zJ%oIfrv8y6#NO**zrpWUXw7!gZ8>1Jv)sE3h~&l-bThovkk~-D8Meb`!Fr~2!b4eU zLCK3>2ZtcLi-K`2P&UyfyFuEyCn0N5G#Te4puN!1hHJyy8SmxTLCd4w_ZA3*5Us;3%R4{FK&>g15&*pUX!Cql_ag(lFc-_W{cy=`gxIV)I&JMT44=VrR-OjY<_{SyO0Xt*!>Q8j2U zk}T>Q6P!d)E^ExOPj0!HE>1cn%S zrsJ6?=n!g;G5E&3S0WGcnY5PZna&BqiEbt-`&-C;q8f@C#WIi@fH7b&cS0?qof#AE z3zj3kJ6@0Ps&D6~)Jj+fYA6pF`Pe+OSoVs@eC2dBYW8*q(wt4T3UU?l32k#ewh_j9 zI%!S>a5mo`;5SPL-WIffxNH^uL!NnVxOv0zTVj!tK8G}0Ujb*}kpsqH7&`X~e}+jV zsai0?d|h{|@%DVfiIMGqSU^HBNus;Lw0EG0?X<&t=PwdJb%#&=l@ELo)HhdntVI`&S~TAlC;D~ApuYi2!GO58}PMDNj* zwIgCuztN@^B!EX0lq2S0g@bWyF+YFGBNGTZGK0kdronAp)~C(nccl_=SHK~Jve(;i z)=Lb$$eY8!U0vTc8V`QZ3ehgmoK#N@eiAoJbpNIIK!VoUMh1ruwgi);xFiOf|Gr8f zu?3}aUng`8K|^J;4~D3s^MNzcvTYJ(miQoum?vT-v<$|PgMD)(9X)`InrIoY$XJ#5 zUV~gGA(JJ6=n3^4IpE&e#<;7PqXkMx7u132L}}I1?vjEFX05<^SPK!@&%bgoM!KT-b8>wTBJ3R zB|fG2k*05RDoz`lVAzEL*h66K)`LaDbHZ2zQ{;oip6HeAUa*5sXz=EJ{6 z`j{36vArTOpz=BHT_^?-xthnjE~mKNrj`^5Ga)lKz41ON`UU3KE5 z0Y}Pjh%BfwfM38GAji>zevnz3SjIO#mdNQ`a0OR-5oQaMTx9Sz&{dP^`$+Y_vyKZm zdUK{5G4-tZkan#Wh2Q>Zg}+tg?aI7HB_^V0zjYfk`O2aEYx0}^H6c>fJQsZU0c2f{fR()J_wxO52ZcH0k>L*xN={T;4dPkK?@YkQC(b;aE*H>SstJn0=v6Xp2-0 z4&jA`*{;cDq-RIp`ax}KupUS^&XRo9FHlm!Lu_B};T#^se+b7;5&D3yXTnjKe+Yx6 zUHb&(j1vPcN{+p^p}{kwdIJwUbUt`RNGQ^$kHH*jpqqigssoAGvDlO#Ziz{{5d@TH zQ;qS2FK~7`nrp{{m!$&KvT|O17d>MsyA13z|q{kU9b+GXZkMvV=%%j8b zsT*di#_DsPqTAM6PcaLJi;VO>3!k1A{x*HGQA(b&nRLK@o~yTWCTBbd1FJ?7!6S+I zVrdyb90f-BfHokf0nkc#@-Q|RX!P^SM=aIfLojY^@bb)sA@E6kB^^-!+zz}O zz83Mm-Uy_(4IZuj3OA9r{%Q`>fEc}xBa<`iyRIl=B5-Znmd$4;oCUvp&`j=;6lf~V z06XVoYNEqh3oqs}nuq{F>Gizj_&F^ zj-XegUzaGUY@J-;$@yp+_k4Y42pmPxbKz6MkdFqCU|a_EmD+?*#Qf=bJ2(UoIVTVB z@P~Fc<>u_lWk`B30zy1q!>|~8lx>6if#*F8sB;and`|S#_IH-e37DFEXL0iAstC}F zidaX9cmLv=9hh{%M3su84~mY+nQ4E*8BPyQb<0G?KO~6N454G4iS{WLr-$b@Y1vv# z5N_gZ>8zK&v{9pHvc}d*#~au|>l90DHZRa>T5<4B-!KufR`iJ4St*b3+o4&%!=MV(xvv23&y)A+ZFe+_?q~J#HWoK-O-sgGI{b3_Bu=l8%1*H^&@8J+-@{ zelUo+< z&s_L3`_EtYoK&gT);a?0Bnc99Lga#xDHEsidPOO7lyVRD%W&Hzk3l7d`UR80%BnPj zxv$I70rN%bjyhDE3C|bio>YN8?_3y5xhXJ{3QIN!#g=IjbL6tOlA`Vk$o6I#7s&N? z1;!@*tt@w+znp?TIf7Na{%j5S!gYiui6}op6TBnz3gm!0fYE@*L1O{mg*QR;VVA)v`*WQx5t}Owf0>$qZ zFUB7hI_LsPz8Rr}$*ranU=ZVI8=q6@Q4ZSSvNW=v9%=enomQjhh5MSm%4%9?c88K% zVIhwDf(z_K*G2Xz%^v$N@%PCO!YR(VWh(4TRE`3z{!TCz<3ednnUVN!;GA`)juX+5 zUuv2x?Kp^j{Ba%fO@9n0Y_ZQ)HILbsRG?BTw&#y+nvu3$kHMYB1;*u7<>QgI(kWK5 zePhkxSuf<{Gc&oub+)NAv*m8hEo7_S-8WGxP*u2Bb*#pEQl(qbtg|{}Y=<^~9bLG z-(2m`Ag}^J6Jlx%!--*J&PmssubPGjK72;fj+W2QvFgu%@l+U|M(6O@G@jeV3{(&i zhUspuu_ndUmPdD$6^_=?Ww)g`NEkQd9AylJFJ766mgGYiSiD5;Fb%V{oMh)#>^7;J*X2;7d zY<|uz^915@_43j|pP#4HLHTq^X5!9nxy)@N+Sx9yj~PA0`X}x%JJo!ms>1^3RBY)v zUzNvsj#me|vs6>tR?gX1UkwX}_96OPgsgD8p`BvUdC_4UnvpUnRFoR@-IL0o*1zZ+ z7v$cTSGjpw5#YF#|J{zOExs*>TQM-7LLU^?AiN7_Jrg)V$A5k%=Mr}W*t{RVH51dl zi#qPQ?F4sHyrVwC2JNFS9}GTW6n*JH$P>wexCwJ0MIC$1hM0gd>y;PD&%u1Jc_Y$^ zRR0_%ZQh1H14J%k2Zse$KhlteqdJ0kvUhC}7#t4-1$%ZcYT%G86T3Q>kXLy{b_Hqd z(SC}tWpt*dVQ9$yinQdZwCmJ7uqbtrI=U=NwMVpciYJ zk|KzR?1ewY??$bklsB*vW>6;3gM`{cj>~)+$}*wn5EVhU@{4;$xKD?{686);qX+i` z(h3Zj_&dum8?M(W2N4=d0*aO|34`-SZ;}b8D7RH@z^fL_mrj_Con08f=^sTRLOJoZ zQxE(CG^WTSLBBMbhZgn*{lH&4(7Xs=vvW&T`~otF`n}naZbT~j4}+w6x6jThZS=7Q zY&ULisTNt4R<$JC?Jq(Zdw#kL+}R}F09bo#c55D!fY;cm!25%$HRZLZz31ItcEh>N z4a=UEj`!S^rKo{-;$oPKm|JM_1V?4lFcgp#myF^`Je~jxN-jEh&1liO?T=NKtF~eZ z*(0WmLtr5X{XKryPD`G6CE>nY@`I9SmQeJkM4+IHw zsgBdCn|iCtu`h+ke6$_rj^=bRs7d=$mShQ~=NBtyOvAfLourfst-?qISV&YC6gE z7L9ukr?oqk@yPSx)TrdAh2=jHCtK&2H;q*_+3ny4WeN{CPkDDm+PA|&5wgy9zE#}m z*n*0kYJ5W6Vs;;{p(Rm?BaVn66`{B*o@lzTBCK3IvyM$g&pb+4c2Wx9r&zjZA7vMoZ@U2g8h4;gW{?YERL%$DAE{nxU1c9P&`tgi^f7;MwAr{le_U; zdvk4D1o`eaid($f1?duX;oB1geUi6*JNIKiw7eh3&(33;^Q5OMS#FK%4a2`aARnSq zew}LeAOv9eB#>l3@Eh}=Y?U~id20_b6fprjZ1|PV9Wz#`XUt_A=KbQ%6hl5eOFYj; z%k4$quufd+ox0@aqaXBWPDo*zHs(4-1OIxqBbFdJEWqe(HFblpoK~HE`1StG`%1Ec z$NTQZ?dvssN8r;(=dKd8PIwj*NRewo3HPog>p`XZ;1vg40&ACQX~W)lkjAXpsGj$s z{l3{jLPPBo3cK|7I~v&?$10VeBx}SQ72R7?+Py0y%_l(4Vyt0{64^r|wt6eA(?O_v zSkRX)iJNJU50L`t} zX?HFhdvQ{pE+OX`*epORUtjZib#*4)u63=anyriI0LjbiOInqhsY>7lO<*f{o+{aHbgm4(uTh%E=ORjS9VO%}XH)XQ&7 zeL|X)A*_j7PwcnvN^WsK(@cANCuX<|T4+{rd#a5pnr`5jbob(ZYIt@E{|H&vyd3jg zxNiT0!K ztke9FL8agmX{7=id=f&zhXQDf3<4l50-=NyYZzf+JG-IAvxFN`2G2AP1*l!EfWgkn5||?CX08=STV1W>%`Ia*#!;3p%RZd1Y`ssmEpcbI3!3DER3id#8M&DJLU8qtgpcv9U$g4bbx~gXFC|vsSQ)F8ba6eDhOSmJl8m9B0+6;VHgu;o`}9bTZ(@)c)5jUC~Egl8qHTUQ&>ihRLXa;$&G z-ru0G1PkW0Avv#Cd+beTnIsqCXiuZ8n9Ua7p}~sL)?PLTgRvnB9b0;_z+1Mn7XBsv z>2m3n7SP6mXv@hJ40A^CE{Y$a**o0#i7(2cAsInKo3(45_NX=5$n zYfdn+^stF;?yT41gc-taFOD3;aOqAR#LZ^Spz^PzI=cf*_4z7K%bnuJjWDCNt?o9} zN&Uprb2YIL<&2JbjMVuFALp&ixA?Jo->>>*s&m5=%P%vgOMnD05jX8VqyBrm z=J*aW4`J(#<%UPBE4KRin=z}NvkuuU7MJY$3n_5F#@ZCuuMiaO1CWQ*nT8GsDiv+Y zpW)$*p4;Nf!gdX(uNRe$wrD{kc`^@xj&2NwFH+{?v0XqRsn%u0r0&P3PkK zpiD53dyE0JdHc5B&rcchl3teSwe)}R5b*ulQ?x^$^$z3i-sP=&S>mo(WIJ>2wAv43 zul5|SehjrgYq>ssc=Z*;U)8CQ#N&vrt`Q~v5WGI*NN#)qsG4FjJ}I4SEmg> zEtcRVuNGoedb?jFJfbIP>=S2|3L!aGyr5{&@Sr*tCHP~Qel{K2A#x9O{2i?wY}*!)s>Zjocxx|`p%xfO+< z*dhT71Wxs``3ctOS??mYreyFhYr3x(Lt&;9lCRREwmA~s-r2;+aaXIxoKOWyG3wS; z%PGFEm(E%RyHwrX20Ej$<%Y8Ud>)>ezwKeeq|7NGOBiOT$~C@J)Tus85&m^HmCu4n z|4(JA*`Q$@7w+qVX5`W{hLe~8Q_=C?Vbse)BIZJD6qDnAONg$QS+N!4`4&KMow%RL zM@6&0>IYRwt!(=H7D+%WcR1!;S%>tnIeV?Mq&hGzI&33MdKFg<>Lks(0C5lb?n{bE z^a0$q<~%e2cL~n#O}iAs>eS9w_2}^wd+VvR{xXR~ecI!vJKR(nz!X103ZZ=bMY;DsfA@1zO2YIt#$(ZNfz7CsCr6@bpS#!8JfZa%-Cxwg z0!;IsmJ?m;7QbEaB^po=%Qs)ByP!mUz+M2HY^CeHcWJM`?Z^ry`%Nd`UDjQih9}cK6>#~ zvbT-xTE1nIuZ`Vuz7dI)W`<39Fm=qE#8;QnKl1j{{z$v!yYia1^VY0t&BN?-0VA3U zaosIW-W?EGK2*Bty6_rQtC>*y`p#Ea(rikb#~0nH6M9|oS$p|;eQ7M*h<&cUWqkKQ zom0Bee2k&I8Wj^e(bv&M+}Py#baXD9=HK$@RA9KK#)iOyOPyZ#ZTFN)l?^iqq<$a| z3Pxq5P=4L($E@LYBiPKpXt+J`@0q>IzY!ZMC2pA3ceA9oMV2@aR#@9;T&}-zaM_I~mP8Gubt_*e92l&8oWQ?!@+Bv%lxsShduo6rzR8 zdqky%?@o(oidBTLBs$L-6n4Xl;xfqPxXU6nma^A;UTB=iN`@m6LnRikBo7*U*Di5h z&21RqYt_AV)nd>yxuZda!UD;aWQYP*$6(`1SPB;wt?|dRA_LCLZp8jzhPC0YUc5GV zm>C=Zt5pM)Y;7N|hCS_u>5na4KR6>3;nAdg{-!qI|eEq7HP?up;5QAS5q-u~r$4=}F- zgv*S{e)4ahXHo2qnCEddj#g(Q#9WIX>@f>!Ad{wzWb-Ahw@8>VVHq!6Oy_Pm=8?3& zd5~Z2Kj;kK5Bb*c7I(jyMxcUD>0k>J9e7!U=bBrl_Rj$={#ePuNwJM&D=TcQVLsH4 z{sm)f7iOZmIN$2FHo^U^7Te_#?uAWDF7kB~f+DRC=12c-h8($z24?=l$zJ!U#Iv#2 zTCQj0J%1#FW|IBux9z(uX+zNXqkI{UNGlTEdt6B65g#0QA|^i)db}4ZeEG#~-^sFv zA4y}V|L#5rP@%=~7Tk{|&0P)rdUMvl;k~Ie_ECpirT3lBdbZ-_Uwaw*A1=AX3_b)e zPcrAr1gAMBKSYws=W(1}cTJp_Et4UEH+zeQki5+Z^_#II<43IBlKN|5PQLPvrmUYvg_en^IFy8{f_pRbBdS z+e===;VyTgZxW(Mk4pH#g7M~IW>h{nFq}55Su9N2ms|#yTwY9d?=Qad z9Y(_pCnmK^BgATj{LYAXz#RH6D&!K5(;2_^RTBFt>bdw$J85(y!KK2; z?sap_%3Jy|J^&gz->DGWpn1sKe{E|eEyhDK>SuMdS3-HRtfsEi^2!*|XLxn4h1wDZ zGiG{Z%@_surBWY%Oe=*3Ww$&g6G4(rWkAxDS6~J~+qLKV`B|dQ0sfZlKWz<73g9%6 zDTP&*86lYo*e@nC)!VmcBz{iowPGAS{FltUGh!z8Bh!Y2h?K z1EJ;4{ohcU#;JtTTJ6iyUsEhamKSlm#HyS!GOShz3C%BbhVfOYv7*k9n5_&d$cpVd zW2dVI;vn9=YAbHY3-EH*z8bvGN-f5%&h5rD8O;~!HI^-<%W#$)Yts{!{b}SM>#tzB z-RwnEd9TNTetYi`!4VdVww}$ba)vQPvH*q~m1NV5~y;QpdYdjJc zYe6x8LZxeC(PJx`{D$kcF}ii-f*xyS9t4(>4Cay>T89>74jR@96E2md6_;t5V*?EO z(xfwHIkT9}F;(Z9JA=v2%Im5IEj-n>@2|^RLxSw2)$YCh6c3+q5i$-^>id7H>L3=B zJ`r8`QQh1?H#dFtbzf2$CeATI*f<}B(qOhcuAA*R`z|>Do8@Q^M}KwBD$TG!uejH) z8XU1woK;o7^=WnWa>5QuLi_5{NIiQa2FpP+OkCy^=Zn&_FBK|vUnHr_>3+i3i zV{aNC5?&18b6u5cpi61;GI|h{-Zz%9I1}2+$CcO4@ht^IZpVa{HYh^$F&Cf?J!?px zBbXcx5DxZOw`GABGiK-eh?_+_4=(Lt9@c<|i}i+RjJpdHA~`tzp>7Zzyg*pGMYNDF>T89rCcI{9`O#g$8S7b<%PwI~ zaTuJ_)%%C`f0#oB4k5WJKFja7VUnIco3&4hJ8Gx=u!v}$d=eAI8Fa;D{XKb3YI_-Z zM!VyadQx)*=XD9T%L@L3nikyde0?FbVZBer?Bq{6L*3KW)2~Uhg~^9ng~vT`AsJNFvV`df3kRn(zVuXFddi6!RO`7#v%t5^#=1M%;Ftx?!BAge@gb{ z|1I5QwEW#4hS(LL;TB#`vr00Cg4`c*5B?e})Ea|0KqL?w9wNc+kOSi~G?=wZiU=eBxpxL?Gm`IGR1r_*fm`+I^2=`zn6*nC zbvI~&LVg9`NJqZ4Ez~AYZXy15$tvDvh#q;Zy{bof8JrVxU~}dUa-~BktpDa7#ea@G z0Ef4pE7c8R}KBAU+OCwOZ z+Wroi1po#{<|->8s<8t*VCUiW_l82$(11?ZBIDsz)yuRsk9q0uxB5mO2d!pzHU-p? z`M-!lBs8kTL#)gW{54W2xs$=r&N!!O8=udg>-_6Dys>vv+V0cc&Z#A|K9or*1F;Wi z@_hOn1tW>ic;yl{m&DHm3;B{Ynqm{0CT?HyNTIsT-c6{!s!?EP2i#z6l0zi#di z>OFWWftrhV$pR+R^Pjbx#xs>m0VURxx?fcb_u5X=P#EMd^4P-w*tX7VXMZv(aM&*#)^cxZOTdn_RhLq|b=A6&L!E zCC=`&s+fG47LA$;_W~MVH#{m)R=@y-A<=WDp@i%ZBs0elaMTn}@3RfuR3-P`2?~KE zUk^QAQaD|ju`i=bVW0|gqTUbilNNVV7h0}z6Yx(r86WNndNW_dbdBHNxI52QWox(s z*0{}m-83AZ*SEBaTQ#0SC8H(#BOK3wTfKSFE9s)bteP+QKOueYfN0ICc$IGADW+_ z`CfJMUy6OEu#_FSa&c+EBPKCYCwrmym+jl76dYdf+Hh<2$qB-en*&TUMGI3>FYAM;zS(1^IwH^fo;gJ1Rj>M=c(@2Oj6)5*TT z=(Bp@z;7~Aay@$B!zm^1nlbnA#lkTsyT7Fm1qN=PHdYJ_yp3c>1+496eE0h-x8F*%%r<@+ zFTkF!X0k?1sO@CUaz=aWtnC0)E|)4xW=T$xeUI*m=&@I!mpeb)CiITfl+++3Ok+*5s;pY#%LV{<a} zP~uz3UKQ_;tSQ7_eZ#RN)nCgmR~I}^V~Vd*u8Y-aQ@)N2yzzfU@3cwnDDrE1QB&($6@~ z-&CUWssw{%X#R#zc+Lwqa-7Uc5;1Rxh80rojNhgg@U}$CP&0$21ho>hvt$2yNf$Pn zb7kcEJ6^;rRk{}Z!ba=q=DrP8#t*be<-L1VC>WwfZ@LSyk|YT*lv7%fGK3otGV0u) zm7`I*Hau_TC6OJax4qOMnZX0x%}XQ6k1|)$R!#Q5E;+9F5}*WuK`@c4q@j-TBWX!Z z4}Vxo&iaWiEKC+;NhC*5q3n{ACnT|D|J6ntzMcGSyQi)6x!hr~Q~glb7Rw@plOD`m z%JY&3L!k@&a+pcIOYC8^NZ01ZYf^qwDS4mc7pb7&A8)Iw{+M2D%RfyA&VcE~c4U>S zvtX-5JSKR%J~dKeq-R6^ZL(aNUoTDW-w7-kL(?+%_UK;*Y!0fbr+v?Gtexh*Z0>f; zSiz&9PUK<0lqYEM4~~A1C?mBmAH{g?9GT-ysADVtWkrc1_2+B3jkEJwDyosL5DT@# zRK%|aGFxj+3R}3Om1`uwuNwPO_8!*aak3{K?!E`35Pmji zd=Un`Wl$agESLe-TR!q-hUO8A6KB|enr}DFglVZ=He6U#e@12zXqUe?Nhpq#y|%wA z>TF+bQ^iIo3M3s%vn3@SuiE(0g98e`-ESu@b~iicUM_07A_8DAGDS?kA1uhY#lRH4 zQMzfP#jGa?R?tdF*!XKLtbg7lt_9v=cWNsK-U)RuIf#cvhxx0xndyE2y2PaxhA!lI zaDy9(qdrTRPO*K(%Z)k>>X{6gdo&!vB@zo?R^RK3v8&3U4BH*oO&p7fqa?9%8ze6h zx<_7<%4K*H%1o4(i<2SzaYijm$(fB>g|aDAev7{a5wc~F1^WflLIBljg;g93 z++Qh=MXcTkF9J$IL-}D=?N`KeB58kAU1T5@r<8J+>j4oxS?a^4S{;3$wCfOlvR_gT z;#xeOU1gnMM(+4Db3_-VxDO-tDSoO^$G!cfqAK-%um=L$Qo%}*5-x7Cv*6{TrN*4p zCznO5dP%Um<`$jkTsfUj9i1h%1%{K+lE{?oU$&nN^MgigzxIQ5BWQKw-4pATW^$7t z)8LKRdi;GK?u|L5Ig5wf%JL1fOPRB{iUZGMx`c11wa^9Kh7_&{5*~us@OT1*RLR*M z-tLNV+pH0*K~NHM^A z$XV5{v_2{shp5_ItqsU=F_h zTNLTkf!3zesm6Rq!?V&7L7OCMr(GTpO5K*w7>xXD$xzl|SX=l4ZWrk{H^B|~`ET=% z0ahN<*8xwEoP1t$#5fzO`0*E!@SL!52^wt0sIc)^r>V(kgqn)xy~>?GcoMR{MK~ag z2+n5KtEgCgiy=zsy(rC@h(n%c;(X+`i4_%@4v+FYM*Sk!_bY`PxjrgF&c)L!u?_T|a#kY554$QpQ^4qp6c)ab3dw!%C(c?+PaFmeUcHbeJO;j?96cO zE#ulF;!1WjC0jBwD|@A6T-T1w>t@G2-(p$PEX>LupA&*uvT7y0kz#v@_2GT0Wn(D|>bI}5Lx z0|a1ek`zO9lu(BZR7vQ|GN<`A4Rz9ksg^I>@8`mBGS0I7+yQc)mOfd=A{Q3^;k(N} z3cit&It-Jp|5}#f`7x%kzZv%8^ZU&i5pd-FSkvlDd*J{#{t$-;Z_aOFd z>cMTj{rV3}LM{8L65g)Gw+k>McJ;hY{s&dpAvh<3+ z#B{EZy@ni`4A@VxXyMQP+g>wc2+p0h*`;T_79o9{J_-97FPF9|Rcb~`ZNF8xjo>6* z^rbgi&o;Z@;XfTOtfop?Bz{Q~+5i1jp{sU%JuA@8u}WGUPC*G>yMX=8U9Pg%nsWuZT)dm(6r{i{+{5Ye?=3?3IK6%9e6g zXq7%I9TM5O8>ry7Y;(hDDoiTSebIJuM@C%IZ#_8wMOkiu*x@;x*nAW_cli#f0u{qm zEDLF3!F4sC^_Z*+a}(eny&dSifnUb($RL^m3|iWp+J@R5A&4Yg{xovrl0{;vM)?hH z!_t&Yq?u2|V)z~bH@4ikqg>=4u$kAgFM319=k@P~j8nKJXBPvmv#LA&>S{@M;6UT9I+qG#pW(()l%Z=-+j;=W=x-Z-Dc-|7aB5gXyprxF@>@ z8NSBlsZTDfFE@hVJwKzz1u3ur0zH0muDQyJx788X z^7uQ`{Y>_kMDkvceD2$}?wCC9`lr-=g+s%y9+zU7e#@tWF)G%C^D#Wr-U_mN7SFKb znYta2&Cw!Lx38yqU^ueYIhG;4x_$7@=VJ2PFC!HRbM^)6Max1eIpqT>SD4aJv+JYz z#6U0Ee3(9ev3hpb1qkNJ6&DC4)Dkvp%vJS$oH{c@v(&z;QQ;bN7;#LGwpxyq0{GJwn-@6>{zV`!-8N}SP<%fVb&j}UpLe5CNGI1s$@f7J-pQ}`05Qhb)7>KCyg#Fy!Lb}QdB~Hz$Ax%(t--&t{DN_rjd2VZ?@s<#J8NlwdUWnHhl`x1DgEdxy0$h z87h#*=?52(rPAM2j`2{zi=$DTG;Ms4F8}xG3xWbao%Sb2Y^Y3q zYoLYOtKAu5ydQraeDJt5PAlD*TZGR)eygu>l`|#gZD7R=>regNBn#!S(ehtcf7{f1 zynkIQzre3-3WFjIw>Gh=KcyT|X3SWReq}_za$#^29~FF@x2HvJg@FS}+zZ#@rsxva zDZE9j@tAs#@tyE_*Ry%*$4*vHR29MYK*Hxaul)t0`a_%&I`%CuHSgTk3Eue~;gMg` z@BOR^t6$|s&Yu^PS=&y{A*Iz%oyw5Q&ZKH5=0E(for3D$Ml&RAEI$fMWs0^GTOA@#GmBuF3>kUS`ySC7)5=3mc_#(z1dLsL&7k^hbkKoWEQJ{9%|driO_|%>7aclkgc`~DdsIFu@@nxuA}h4mq$755@qPrUH)W4 zh21dGAwtU4`A4P!Gg8{W4wDb$**cAn928q{rz!^}SfLx^cS7jd37K}k}4eP#5u$|Q=*mOFE~~9v}+1$d^v7rt2L9*E9l{M@BybceslrR^we

    9bNg_SBvRR-I6>t{&5J2uxoMD3yl(SY%aCEFM>D@V|~NCEP-~UT4i`qk`mQMq&h59s&|10Y?^f zzOm(#Oa2^X?#0fUJV{`%31qD|F3XmuYVY>7kZ~Wn0vrLWgaF-`DO}hg;#@Gx&BMvP zK@o1BiJ3(_1WhuK1@tOXh}?m-UdLV@TbeMYhr&vXLrp#@L#Glcz<-VYdYL72~cD14^$F)2bTyp*?p6g5n)AbrMvcB5?0EX%3GE9KAy3DBfwo z7xP$hTqy}!X~1e!=M>Jibd1fjlk5keSRA02=ea8)ukZzA}i*|`IbswprOizH> z#l{goj#dJp(9+3Yh2PJ97@IssPICFMcp`mBQeH>5zJ@>B zX<;Be7Hn{QtWVkQCn1lYN3od0sjWB-M8LHKlgf2uKiZn;@Rb&`6eBuYERv?e za|l`XWuQvf9O7IUioyCa6uFqf)x&G%9*^bjEVc*-{^?-=2i;7e(G?`4{c4>xpRdwS z9Q$jfV>)kTg-zg(OND{fp7f$c!3`|bp@t8hw)`Okh7X`5)cxSjdb{?cFs0ld!cOb{ zOSkb>ExJ(1Gr~<{Pms&aQc=YZJm;cBCtf9Ikl8mV2w1Na#aw%%n!r?b;xo78BhukP zJ$^vl+JT(=F)uCXs?+$Zcsqn8%K=?~;@n?R4CSFI?*yH$i59k=j*s2@h45|4%zC}Nu9D9966P?J>mV^V zpcM=olw9$9GVxpw$WS?i0dESex$fqls%&$1BGsLsJI1zgc_s^$63Ds?JCwE!)|5v0 zNeHjfZ98q)$7eoOsE_q5z8+a)+9MR z!qG`>yxbz}$hI=_qP<&gIxk*Q(6~**y2~O^Zq*8U#-ii=&La&VCzHu*dmS899rd$7 zT8m=3KzV3ZL-#DaU!|NLsY4zrgBm0N$_ov1VTLa$=EF>eo!L2telgx4hYpz>RDc}( z*~?I>6WwI@ z>Y7fm;C$Q|1BXag28->T_NJ$hcgH(t<26}8R-&L3pbS0iKAD10S6vC0jz{+#?+L5uu_+Z8-J!ARH4pEQJ^aBKS5|=yLotI5Z;&B?Oif+(vk(cD|hATRFv2W8bvLdoh6Bmh#XXrX-;38>xsf zm@UH_%b>&9JaPes2Lu&+`#HVGwbg3z7DX-v*C5PZSF|Xqs>}|7zF8m^11CC4e*&YqlG+rmiz0*#z)KD& z58cP)YojBDVU>XMD-37Al#@;M>12J#NlEKJPA~-Jix8Zk`gbLmXX#PsbTq@jO(U61hY@td`)DKKHhtRr$bNN}s)Ehaf1aZTfP&TGX{?9L zBwK_X98YVRXGly?*1GaOvt|F2z#oB{K>e6++MD367iG3eB{%az>BOJ8 z?h=_K(6>EJ?#+=eTOuu=?J&>$N!xm<0560W>bgmhPI&x77;a?zizM8+kJ^^edJ{%2 z$K)`M0;ciZVha8r&VL#pCliv#wFPpaH}-V+pO=`)Xb5T^2X03tP&Wq5y30tu2ze)V zG-U#k=`qfgERcs4WSTpI+{^vlTc!Y7ONQ4FRz%f57|>MG4(C>$#-3t?W@=bkxjVBo zgWD&R+0mF-Yo&4rkB7@QmM4-gz>Yw^3uxlNrsKrCR$6{*p}_jv*}qRD&_J|orO%r* zBK>L)?fDI^R&RMQgAUtJtzk4Q_gFI6&TpTj>jGGoqd&cef7jOY6cavKw1 zwjpyIJ^(PNT6%g~qNPyuFnU_~C~aOJUmem5G4hSk1{QMxBxt{?8M=NG_fSNxT)HxC z{#S=k6g5rlO|!9?(@AQR4q0xNp9~l*=%G|>>fvO#(WvyOGQ3b*o4j9b_jX&E7$?~; z{U8e%JyL%($`fH(Za8rHjbXA*|VuoPc_+`>4~7|L>RM_9^AytQx) zKcANx{Rd?^VEJd6ko@m5Q}K%v>N)q1+>Jdd=AHwlNws?hgC3^dTz}~(r3|*X8GrZ& zFBsl&$WzeKRdxBxT?#5u@U%+YQPC&*yNu#o?xn5NP_{>8!v2w44g-WcX0eYb$qh6z zQE?!-B%e2Y23S4%{}#dbGz>5QEXL(W63=~zzG=vRJ7G=c+4p+~PvUM%1;C9yjI;j< zTxvil_1j&tnWFa$*YPH9tuS}1SbF&q>Kg$;(w98xCZ)*n`ia5JuDaOR>sU+FU>yYR zNaij%?u*IUp@5-tZdJiyrp&^b_K#F~0HxIT)MQaUd-le|nZ4}X%#jIXmc66W=czJq z6%Sk@?ax?Dlj*8;T}tN(>8Fp~_&@)ptV3qQ!HKYsbOTp7?5 diff --git a/_versions/2.7/guides/images/kafka-guide-architecture.png b/_versions/2.7/guides/images/kafka-guide-architecture.png deleted file mode 100644 index 00306650f9722f732f2adc044b6d8ba1f15e8d01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94163 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%0A3wE1?~lV)WxuC%xkM-bEO0{fLgiJPkS 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


    {j?GqwdJmcSScZr03f9k2;))~v8*8c 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%0A@ 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≈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 diff --git a/_versions/2.7/guides/images/kafka-one-app-two-consumers.png b/_versions/2.7/guides/images/kafka-one-app-two-consumers.png deleted file mode 100644 index a25aab0eda5c2eb529d3cfaca4d5d227c690c4a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190660 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

    lUkEAfYLMPf@(zzd5ugN%+^ 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

    PPdR?W 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 z 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 diff --git a/_versions/2.7/guides/images/kafka-streams-guide-architecture.png b/_versions/2.7/guides/images/kafka-streams-guide-architecture.png deleted file mode 100644 index 7377f80576e3b10dc5947a2898495e72f9d4c6e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177911 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 diff --git a/_versions/2.7/guides/images/kafka-two-app-one-consumer-group.png b/_versions/2.7/guides/images/kafka-two-app-one-consumer-group.png deleted file mode 100644 index 8962c698960984c8866b8465c970facc4f75b058..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214043 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

    CU8fhM;7C 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

    DQ2Ij#~(sUnCCq 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 o7^z4R|u3I;mw7ALCzZa`$^~a z0oyJn<@1_Sjn}uG+~$*ckxS!Ze9ehd8;7VKab12{s&-L&>+){C$0h;xw`C(=|FLFZ zf|D%GT-a|6VMovzP-y3m9|Kn(6w1DH7E0=suo0Xzmc>7;`*40C7uu%{^rYUa)4(Wh zYg0Iy+pd1O>%g+U%DoiJ=x3YhSAeQT6qiaSA~r5$Tdh0k@;5Hevc!s-YH%s->%`Xd zI@kCXYrX{)hp+WR>6^?2mWo|}XMrhu*AIv+ENH(NRhRp(NyMP7Rc`f@cqSbfUgSPT zf1F{C+Vk=iHZ}n5YL*^VD~L=qBt7nzejG<|pMK%*uFOK=Cs_m!T5{ZyS*#I>(6xmU zU+50Ql5mtNl}d?=;B-$5a7d3@3Z${WluVss6EayNyM`2p+av)ai+nqn;(9cJ_X-vD zuT6&4Hg2UH(QU><&BuH_IB-ng_$^oMp>3$%^NbA#%YV`-G3^LRhZ*SiCJ$+tX!j`f z4F&l zSaw%*nzrHWV!g=GX@AsyGsWBx^zY^WX|K_-eX;jobDX*V0yBO^0?1NyQvyA=Pf%>8&z`;aNpIPb~EDs=7k(F#UV zhDB?_f4^uytK5^^%zh|;O^e>CFk~#__)uCcHT_;aj?b)WgHRYtgb#~l_vGw?{k-^> zaEd*&rZPnD@>x^6|CG)kgBBztxV{eip+lC;6NNx$$P z-ujKb81!Hb-o5B0zbXJL00#6POp}T_6NOxoPKrpY_`y0D1n!Eh?p?mLm@XyGlgypY zV6JnWEYi3HU(~5Lq_4zk63Miq#gcT?&|`^eg4fKejDBk!*T(Z{u;hlGYZf(%84@D8 z?w3T6jyAWC71ruWabpmQfIllK-#=ZOTa{PF&}FSX5a@(ChtJzj4F%*^DL)dZD8d4=}6Af(7vO_z@GkXcUEX_c*dq!+wJN{A9iB(!I6m(z&fB&D#*#;VT z-FvnvHiC9!K?)gKe)(~L-||n)5&!*t&P+^!U|BEKu&-|ZgPTjpWNoTJF_Z9p)SG3@ zaGnqUJ9}QRR44or%>h+%Oy^7ASp}eD%%X0a^LMrvE^>>PB1gG&M6X@QKU?Id_j#eZ z-m=B^e`nQ>dd6PMHMy&o4UP$u@sKDy^6{|MI;%~PBcQ!J0W zj)q08Ei}hUL6sXbf8DdyaMT47)V0cZAG$qL8lN&U2Ut*k`n$QSPAD%6A=)nsGmxk# zZFaafef*K8%E!NbR~XMxwbnW%Uw$P(YSq76Lp7&A9cCo_+t=C(s^dDs;7N)jzMM5E z7;Nz<)8OBq$}Bx3_mwYh{n`CXOhNJ+@kdd$NraEYy)(xO@28tZTn8+=4ALuhu|6kIJj{#niCzfeQZtUYbmhVjDI+m-doAqKwU!WbB zG`z?pnY5LaO`##4vCPb#{neLfI%rXBfUY_zrnPa;;&3psKBN}Vx_JGTZ}U~v5bOX} zCC(S16ZEN!0)h$gF5nm-oPq_Eovt)vjh?j@Cn=O3jKK(x8yw3rOC`4=2psDK%1Zah^SzGX_MJK23}dheVx%Fm}Y#bTu-LvU+mJIh;r-><3H zViR$eQSV8+6B&O}n;RWnqbK|Q?f-9LVP*mQ>dy1S3E}VI&*6KpH`(}xaq>dIEbtX) zy=-6*dciHR88Wi&kfKc98BEr1|GNMblu|>)F_7PHY5qIv7i4^XjKmDpe;2#*XW0`YZ2t~1B z&vzkC%Bh>bs-cHBtEKhdPk z;Z???2U^)!Is-%I2}?euBeh;`*Q;r$`&6GQ>Xzmn$REf6%P&ZY(3H9Xs8f0?MHSbW z#T{v(ZA-JOO)`>Q5xguh{XvM{_-;QSutu{=nbX(0v$UQN z?f{G)pav(@1)S|KH;WjzIrv8q*%9lUkR=3Q%Rx;jVby zXXN1V>)4;aMMP9RL;NE67X1y~-qMbUj`*de*w307=xc{v71R^2_A`nESF_*So=zKh-wG=e*A%@UItaziwB` z^u@f8w8aXJ6j2sn=KL?RY|%=y>jpROS4_mHKEdDfR;2eee%VrHz~07YCP*UdOs|vc zJgb3WWaA@BD@=juIQ2L%{W1^WkNdfbg#9Vu zzgGie5xv?u7d$2_cg%>X;W+Mc>ZXR1w9bW#mXB6H#G@;?)4nPA6@5=bUNS@p=||s} z?_Szrl72_IQgQU4d#xl!qsCw$5IsSo74dj{rHo*T?lZ4io+0*o_Tkt~R$ZS+^yUS= zRhD|p`x_P}FuvzU6;?lN<*n1(Bpqb|%(r5)Ya}>fZ4G}jGQ6kQTYd$zt#(~+2cW4} z>`SSI5EZ69FImvXi@Vv|lb4~|ilOm-cV^g1r#SI?4f82s#3up8lyTUQW;8r%B<-1r zqV{Hkoi?)2_nixQe8tJX6K6O&%mKy;^9WSqgei_)YP|))@pjfE%8Yp zdkS48Za;T^$bw6d>E{3#*e z_68D=d-m#ug^!s`89I+L$yVH=kl{^P2g)@_W|5mX5 z7hk^n$cakE!gQyuHImEG!^^e=$)Dkb+x;#6clF`=seaI+dGc}pdO4?m^Y#Nv%G!-3 zw1%7cm&vnIz$Q}D9THyjV=VUdZ+!sQJ3?3w6xkujJS7;UrBNY}@1#F~HKd8eiJGro zFe%dbew?Z|qJ&mJ(A2-gd3Tp7nrga(Bqa3)L;kIE%nHO}oOi57q|HHBe!*{gxxIAC zlj>m<5NRMawPp#|^-iC6I{h4{aPSCdO=~j7<=`kA`8-Tl$O&QEyNJwW`P)!?vCy^U zuTxg};z~S1%Qc zq3)qFIapl$&?R?EdbHH8Enq|u{REOnr9*!NW_WROq~%FE(!Q#mOjx@yGo#c&!~wWi z9nn-!F}>2WY787utU-6`MLB>AW#|96$1j1u$o0N;F+P^NQ4D6pyzel+jC9-Im0PfH zKb%tK( z(vb8?+YppO#Cd_HQ&DFoKQ8&IOQFnOm7;XUt`(R(ZLRke;kr-TfbsegCCHpD_L!(w0T8z;pQEWfI)ndb->kr#U< zu|igfcKGg(#sf1k#6lE^WzC!eC;yv2-KBRKa`mR+rY}PY^=S0L`zskTQOsLIg}}kf z&ofS}&8}EIvI|!(BXlHwUaw6{f?NOiQ#y%qSA|dg4EM(3UQwPJ%4BFxe99E`*k5?Z zD1|mhU6*jacUT_Bn7>!)mcoR4JY841=)yb?LoM*u39Q`7e>!(7uF9&tBS zY!@$U0;8;I-yO8zw3_C>8SE0E#3nk>m66*?q)7?a|Jjp#N zQgPm)oYvuuLqWUPP(F3li&Nx=0F0+{8=f9WGmbz-j*=txqWGK-5*kuPyX?4C=vp(J zC${fn6#8o2+ma0EM!7X4y?yv$9;%T^$w0qNNNVXAlns`j0-&T{MI2FqEKZ=g-65=59gr zMSAVGP@6tiEHl>Zs)x-2OR4u41J48CQ8rduF4FUvR6;>2Qb#2VK>|VW6sou{%nKWjf@X=CDvz=PH z8NhrZT39G5$FIBCu|5tWO}X_(GXFu;iH@7J|HBPp z(F0Pbx8rP0Zt#&nM1*(@b;>0^0H}vH3*!JdMzj7XrOv&h-WDSEl;pvKH=#fdPFsV5 za#k88vQQg2!aPGJv)fTy(JP}DzGi(|LVJGJ0oZf$saaNn?@4p&Y)iu0rSRfY8UmT1 zD)1tC~6Omsz zgVZ(F#@&ZG(eUxmKHVH7R82?HEx$`X-IQ4o2!ZWgr{^oWm!*HrkW^rjXTxC>xakqH zb_khE{Q|XxFQFbFU8Ld7_Wyv1QjavF=w|5{9~1$7Mej(3MsVIJV@Sz|W^YM7)!M|< zzn`I6JH5jj>wjd9STVK@E?;Y8HyQUOZA_s+3IZ$HlC$3kaSlnzCRxmn>I102>3CNS z!^FQg!D4{sm+@Zsvsf6-*L^q5&?}L3JYXo$77!U0fc7zo8sd%8^e925jqE6>x0kLb z4zAPInwc337=f56wGtB%w<%o~DJgV;|8%6Y#(hAi#L^vT+tyxb2MPY5?2oq|@DI`y zw|UGZ(G2@B0L>-gb}ZnC-hGe>{0wUe{VKzSfO~L;ZnVsQONOKjdRC3}*BP`+(w=YF z3hbG3)zQA)Q2Z_i#%a|y^aS)riMz+=2DD7#tb9#(aw%NMES7GK!wde# z-81buw^?QU*KQTQ0ISosw4N(6WTcsA7^o!!zDg(d68UG2bx>Iq2rQFvnRvdgsHE}5 z%o{4v>cEf_ChRs}$SAr~&7A?IvoQScF0)X;**p0Fk*)>1k0v9pPP zh1Jt^g9dK`t#dcR4n;Hzxq2>$3)@F?9311PS}QtgO@pzNsE!-F<<;b9BQIH}8lPjKP+BqC#}Wf_Q0Lf++v>erd_#!Foal>+l)rQYY{#K~7JRopTWjxoe7{0nf1jljEppRL zC3t&vO7Y&%V~0=Ud_=|cKG*pY&A4Jh8OQQXsW~pg-C@a>m#kG|ta|yJTFd1z5W+hz zfMAU+?t{kuCK1tqXKVAbv7SlPen&iC3N`o0ExVY+L1BX9s3H@R%eUAgHuo=`YB3o& zwuI|?HV-5NNoRb@n*GZDEMb_jN6{7_OQMRn7z6ORvElw} z4PkeI3}-}j7e}ziisTBbhL<0X-4%_xB7ukZl2O;EQ|UMh$3HDEewU79W8R%#XL}m= z@wSb+(4VT$P#Nl|AX8ECm%!FIWBp$H9AEQf(Fpd95aJ_*z;|e34Y?<828s@N6s!vn zzutQ5X+pMGXzGB#Cd2%lg(3{L#65;UySDjYEih5I6ih-I-3fU75=!RS0&az~gt=Kf zmjb&3FHku_%b=&hGLj7=K~m(`SjVrB?q42yE0QoTR1FQ}YbH{D8pU&s3Ue9tNIe+} z;GECJjK`h1bAg|U2QO&OU9Rru^D26&oZ6c)#)CX_LbjCo%SSVj@+-}L$?WeghMLSe z7wqX^q;v)^kPhf?sV_-dYya=!rdhn0EZnpWo1IVaO3HB@TgQ)8!>?saMQg(SRy$=b zO$V@NZ<%CxGxf}?0n*{^Mw|^3_dBdC!D$X0*3Xtcf_4}EIo$?alO(^!1~l+rf{D32 z&PCUGe)PR?kad8J@M>Sk3I}LVaNScPUs};j2Hk?TqmuA~PF?uHrd`!U|Tci3saQBM-{a zKZzvGc$N2dW|cDpmuXy}8(n}S)Dh)7Qo_8=WL$Bn`g0*v0vpwR=U||aOh({m*|$UY z-L(0OhMod!x*GX&ZKBorO68yxlT105!ujHf!ilHlBMeNyWVi0KzBu~rx|@Z3YQ{jl zFeyp1v(*}1W!bk8D2sowb-bU3sOHEWN4Q!34h(*0?WPN*edYcfH)vn|Y66>3e*J-c z?F#bQnu{jG7blofl@D%)M+kHAGsAeN{AjO5h%D6rTIo!Kbq+?O4L}pMQ-*U>>3j-S zX5^^t>5B=`F5YlKfCV68?X$YeaWfz{o?f9qY(?kq7MZ&?n((5~w>%^%*@x^{2TH^^ znFro0SAXVHYV-Y;z?6NZjh2)CXV?XU6t>tLog|-EHl9N+qjJF!@tzW4c%1`1tt9Ul zHmY{|U{%m++toWG05LcvK?4 zb^s-xMW4jUH43xOxJ%?5y1V@U$JSp)wb?dpz$g$1 zF2!9+afjkgaVQ?#DelERL5dYAPVpAk;_mLnDemrt;;=(|Ki|9e`t}e0u(Fctnsekh zXO5Yn$WkSH-3oVx`W08bF-sA_N*U(!#J71Kecne>^=E$<0yWEkqdVQKH9D#YLmA(| z^H`~@@ya`FrY1*MW2p%_6$%3b^u4sKMSqLy$QuCF=~<7s@Op(n>~EsgD;+crlZRxd z00xT&b9<7f=+!EWcla-+Xl~iT`Z3&Y9H)5}?Xf0@IWvhEU=ItrUn5L*g1t)wN zVPZCsWY`LyeG*;yEKi(&+2Cw_v@^lSsg7SAZ3xUYB=+<>BLD{&Pip2M6Yof-p+XB6HJW#p4Wlk*_ml~YaAbX+ydJH(A`hK3e66?k9x zHU32x@T#l$l|_Jw*b^2@9dg@7Y~a-{3~REqh}*=a3Gc$aWu)QURe8s%rEewe7DLiO z-?(rTZ(xvX?(@3`ZcT74AmjwFn`4ibeV#w+VNh{O5v?3P$V}Bg1eO1tB%FW$ErLO9 zsjfmEP^ksKM zf&9}?|PK&nOTW3?KoQfK4+$0{GB1;5&YU4sSz_U7ZrV2+X;l= z)ukKk71>tr-;h-Z1lILa(rb*s^Dr5Ujej5A?hpmnSJkeL*tzmJNqpW!DdNyyHqEzr z*4#8pZ<$;DV@0^W#OeJE>K^qZ$Ygf?Ija*MnZ%hwR`ogQ#bgSsnXdUBZo$}1+L!9a zEM%iM1J?|?{^Sn`x|t`HVAh-4d*h7m+y3hN1e`eN32kjmb-aQZ|AG%thV?y4-?yQR ze=m`f2WpV|9khgu6n%~2dE(rrImo8%qBunF-Co3LSZv|O8Hrgmq111QNG&=`p#BTE z?a7dQ&a@U|*p}i4Ud8VBd1SvO`k_C}bgj>~ScEp|!`(h_-(8OJ^G**wAP5R1=1_=Q z$gnGFo$lxXtz5^Fg1+Q|XFJ4}X5%0B)&x;a6rdIBmWIT~ z8ckFa;w(00wYeU3dL`*$MQF3caR)A+IPXjN^05NW`4^T)U+*lu{@~@?$VucD_f9x$ zF>FF4=}s39M=2wzJ2GQE==g{L1{nqA&~crgZ^;z`_PkpI3bWPUOxYJ@LdN~J*je1` zckY+vqvEUa8PHrxLynTOCN+Ztj{<6ZW7B>HwoJVL`Gf(FJnKO9w3J867DX*A8%eYN zJH5|Q&;~Z5#~x<mDNOzZa+rIrELs|I1-U%p(1b{FDJtBw)m`5rADu@zz< zi7QjHCUTZ`c#TuVY}>w%{8(B4>!#2C+=CO#uoX##78dv9nCz9){YR8n6PT>uDGw zy>Q^6sn$p|mACw_vSaVg;WWV;7*f+rU=LKQ7}^quxEL2JKyge-YGHK)X_fy@Z1b9; z%|>Xsc43}IWQora+U8lP4d~Gzm1OAND0A~1;@gW|Xz#Xq&C|5*>`J*v2PHzJ>73C4 zV>=rHp851kJOB@KwL;6!2oDvnyeG6mPyc|bsd>AM_L%0X6G`d%A%4}Ag3`8bkvpM{ zp+MYHv7?f<8>g+o@G25$XxVZP#=lS7IV{gJ&jdfGBeIYl;8$ZRPIzyB^is-Sr2lXN zpTejIANs9$6=j)cX)ckuU*z=KL%-XL>BA8;C%4n3XVSC0Pe=WlLeQfy<&-NcCfml6 z=nK?HOnXl-)e%}YKTslh3+(3{>TOWub}7w4GAck6k-PQqJqL`qeO?Tf2y=LlDo&`> zu=>DJaE8Y4e)YvX_@sK~@(JaV?e*S22|7`!{QF(-gG86{D@|Z5i_X5a6Mo;5gItoK zlg4Mx`DLb5Ap8T{g)+dKd{2~XdvoO zMi*eA2$xNN9(e9HVLKV#a#yWTo8os2c&0W(a@={uYQrQvm$rI4VsOI>NnWXmx=UXc z0-gEi%!b#_`IH2a*N&u?T`LoI5t~LOc80xSM0WUy{Kc=3%Er3S=B&Ni^#+~q`r~Zd zi17Gv)S=x_2VQ#}Y*rMJg!cvK4+GCSv*RQT5{APOu=!a`=fe57+8p=bJeIK6lzcz#gb;#)4Yr4 zg0pomnX_P@$dw(A8Mt=pOb+WW?Yu@AZkvU=Z+U6oXDyzO1nSr?I30|lZ;@Ve9((Jl z>QF!xes35ifAYQYfY`!Zz;U5`#o;3?+koS7VxR?Vpey@U&qiO-p{Fw)c>vH>5_SdhSqEljTJ3 ztnim?p3Cz%t?JBe+r4t^+g8*m1t?gfYscYXmCXHIhh=i7GJS^6JR724T1DK8NsRe3 zltOP3v(E;u;Ml9yiruANXd){zuL_TXCQ5lmTJ+nb<=S&f;hQLEH(&fCd&WwzG z#KPyD48Cjo)$SgKKQY3##dQV{NbDYBB&fThSM}X1an1rK{mWAWrZK{+gD&|N!^-6gB`7obtW z#W;^hPVQ{uyR|Ux1S?efov|y@aUAEle3#b`Z&)ic!H{bnuFAvU+CeOWXj=| z2%)T6C{V#=XA;U<=%h*}UD(jCgo&5JuD}^0@R6)LulcVTg1OW);W80DRnLKEtY=jJ z5hS2>>d_8E?RzFjUPnDxzgNRQUsIx+bq-R_I$Nn7-dgO`N=C8xQWc zH-ARlr2;EQ@0lLd4lq$EhdUuPN`G+>9k=`#|Ki)Dr$m!{FG%Yh(oN*Z2c|$B6EK!$ z?yztDc$j`uz#8RmR`XpvC^9um@*Bz@7l0yF;nAxRRXSX_7TjU#soTxyzdd&j|Mva- z?MNA-4rAVX1Q6O)cYjS9k+-z#00``vp2OO0G)t(9nf-PA)d0;UDl2D~@N2KZ1v>MIL#Uae+w5MkC}QVLX%jbx3|{TI zi>6ZXuO2p>9$=1_&Is$UTCoRJkng+iKX}O2Y^kiW5a@qQKp8kNAt01HBSg>d3A1RV zFld&2TqtI^#)(LOA{fsm4Zaj_x5GTIwtW;XIVjTR?=MQyfv&kE-scSwjecMS-`SN0 zDMu&%*)STX_&x%B;DLpx8lG|FM*8AOQ&(7k%R|T07)|=@J!!K=T<$xcDZr}~>Btq1 zT4NTixGI_>B2L@_UW12WaOagBhK8BQj&^wnq>JcB_1oJ28}cb;&(V>p z&I^bEWQ~~ZRpgxTLe61&qvMRk+ONrzs$iWc3yGE9>8fmZ--m4*^ToKcmn7DbJvf1e z=I1kpa&$C6cCNTRs;C>t*(*_j6d_Ct_fY0;+K8ug=c(+PshEB8=2|^08z2<+=v{r( zzyr3iaD z3!6~wbB(_7KZ~_g{Eo;@{hFCQM?PInZko=J zx>9mij^2D8g8dlNlZ72XUB2op#+;9Tf*{Lw3a(M!?791f)h zh)EIh`Q9~#uh@PTdAD~I&%|nGY3*SCZwB%Uwp=hara*Jy>G-94JC9T7OZ5Y0Z>Yee z(oKdWY79}j{#Qr;hoTLEEMc5fdJ9$Mia)7}xR+ zV?Xxopn?4?tL3A(78|M(pI_m5x@;kVc?Im&OxD`LtMs&S<6Mw-IQgDW(B=rG06+ug z8R|^&hN_biz`q1eXY$Pu9l!^!8FmrQ5jxyG62_MYPzLq%e#!`Zvl%cSC0->8{e+IY zf=%bXXU3{M-uqn#8qQ64tmLuw{q%%+rgv_{rlK)%h;xl$YM1s06M|!P!k3Xrp#{@1wPTDE zY%@C2-3Y*pnKrjK^b*W|RX@Z)_*C6!)^|1_(!+yPl2eVY&Cx-b zC!yYJ4p%F%*SRP$tb?yo@iqs;mBbZ2k$!ZexLk`7*gkBc@hnZ&Vzx4`f$?{zH=>vcN>*1Fn;zR7lUm2LJ25&}91?dfqnTOg?NF^MrJKvFD z^vrzZSyRb*_;0Y!<`bL4=J z8Hq!wel8FL@FpZ8tVo+RAK!n3$oB2;1010EOn9$)K2zz}l%;O30v(oR!YTEfZg(^J zpP%wQ8)K*jW5q8>+gWlIyZ%;%HK+mhR6z%lOBf6#zkV=z?zrX-n&JJTfCBq4((jG+ z25np#$1C{|a!ht)N@R^Z2pEGjTMq!7>*}w0<%mjOGKjUBfs(^#WpLi|zVN5+g4_1y z$?^%c!ebJk(v8+)+C4#U@0d6CH5~5tI}7pV*4Zgr^oVS^uP6YwahNurvh2j34cY4xwC86qSsUdDqT>{C&g45YBFRxzc>}; zlA;+>52%G;^Z}ce(O?qG(bH+*XWvZ9;N8I%QL>?^^&QP|^Z3mpvQN6}zND+^CyzHY ze-Cq-44`Kk^#m`34qeBkCi{qN4BMhzPRxO4#-Ub8tN+pd?S^LnBW)hfYux^pOrf^L z38BZI`N(A4D@Q$MdK_wowx~M#s2gPeo0gybm2hu>Jw?%+=qt$M%l$w=_$MUT8S4!V z(D+40&X5I}7*ht8LU0c%3WeLyFHHi&RGhrt4QUdKSFGp<@qy$$1Mng3*%!Lus`IFV zW}Q2ZC41hvmPH@Ygow`5?)RR#P%Ub2QHzDgDQ3Iqn2xF^bYf2T%Kq5D-h@uCjDlU# zuB0Z%xrdI#1w~e_%`>VG;U3O%z2lzS&PK-o?Z8iG!Bk#(Uc)0c*6!%UK|fwMlv+|}v~Ln0PJH(oxhMS1 zU#@nS7&oV}i3-;{pgY2byR6RWr+$;IJ3*!I`mac%mMovHL{RzZe|aOq`sbrIgAWiw z1yJo%&67T$_RN0B@zZ)Ih~hIpFOKMc1l!joFRFHWktIIeD|M+@{*K!TIwzsyc-!QP ziPba|{l5_fk{#egD~ezT_vmbyAAUHDsMvFwHQe-U zK1EN!V_uJ(9Y^Erkd8XrZqkWSmhz+&0WZ1WlKIT*|HRVNQIc!oPfGstA_2$8Q?*GvVIb%C5l+eZA@IpR@SbCzKx?Y2a)v& z%Hqs-C5NKNRl9T#4G|R-M#kszn+*2|)XYuB1e-4y{b0o-sO{L zJw;iy^IAT^%5$;|`c+5(ehw!j8)4`yqqFKOowEF3jdFD5vu5H+QF%O%8#4`QKr|+F z==-Thc2hr23nz?Y`C)X_s60rH@y)~`9+hzY>#>jj=mN!25O`qEX(8pNhc0JfcAuFA zLx0SebK}$;bf`VSpW}R^@-m~`AvhgNIn&+YH*ug}2MyiMy&6*uY<70I>?H>vppK;d z7;ZU&YT`Yzh`x!DrgUxCyvcn?&%fdRNf68OtlEv#+iDAD9d_FSkJ$>slia3j1tRE- zwTgqhy?d(kfP{n4g1(LUKXOQAqTSbL!dN<5?>-oyLEKJqiINppH|G^(@R}Va4gcok z!U*SIJ?bN#3E0?R_+9w8U>L(5i-E>vdvCn$c-k(TiIdi&iZ~E=J5y3ns1mCfpVn<~ zjpq0X$*=o4;IWwF`e% zpHEc_YzI343>tRQSTy~$Jz?IxRG|lq>FrMH5o{BL8QfjwLFm;pBPi(VDBIbDy5Som zLS-@bYXC6qy<)GXQNz|(onzSdO!%)02t7!YDo;>}BqOh>mBV8%B0{Ufi$HXyTIn1_ zFAS$?L4fc0e%hyV`q_9Di;ez#TE5EZtrVQB;M2ar2DLsxt@ka0-2IWZ(58)q_CamO53nlkPD%JBhG zOaWl329?iVkbO|pBRa%g*fVUi$YfSijd5$`T#eP_FUMqPP)z1i$f$T~Mvi_&7h#7gvP`u|e~yGjVb%SIdCnG3)Je%C z0g&nl18+7lWlk(c3r_s(KDvmbA-%zoC5*q%G9uG}*&&`aaWne>7g{tIx^_oqmkrWHU?55xL;{Y?bTL9V0#LJWFrW-6Hx8RgaU_+D}{e1CV|B- zDfR*GbwprnutM}D-0P1>>$0-$mUqu>ndQq13+4Nb9v0WFTZ`UThHhl5m#!YIMJIh3 zXzTAZ4h6rRr3Vk91d!?HfeemOKoo9g-FveKoHOKvAM-2mexrG>6WNg~UAnM59>PId zwMP$Xb-|y-g)hsdcRPkt$cGzryFcqa2Z{F&iPCnNsMLZ2yL{1LwZ^K9c;L=cnQaoE z7VhZXp-PZ~g?3XWG!$CFe}#8>8jYl?<)f}g(K5C}Ry2a4{j&y;zbd%q8M$b-9A!&} z3RmjechH7ZeUhe>N1A@0)g^Z!y`+4XmN)iIlphtpW}u~Y_RG*8s2JJ%(9WE*EMY^F zf5r6DUwf_Xa1PgtS6Vla?x28H%1@h+K5wXuS<87vYN)0t>-TPPBTZV*5e*b9M^`p) z8=WtcFt{Xk%35E8$vY4w|DLfGEr9>+tiiX=Ozbx2?G1xhLi^M2ouoI3!YymYW~_H4 zig>bzqVBh_Gm40UY4OSq=`=6jE1(yrbrJojTsMUc<6r$HqD6+Y7OWt z$kJ{)3uZbi1dp>CIxRUc8Iq+$TmC*aq{mh2Ll}cgZ_g^u<1bBJfN3w@m;e+lT8^f! zV){DHii<83B?*}8y=bfonqBn7$B_LzF*SBKnjv2Rl&F0YSd?O8S{z7`w48;+ zH=5Zck^q^GWTtfr(ehdnmtoOyGd{NUcJ*YvCppjP0C^-)70fe8amaWY32D!*OO5CE z_q95N)9=uQ8){ekd+ZD)>=_&SDea&{UE3{r6`-Rw;g zzok7Vf69e}kh>!ryzF%s%ah}`R<-at!Ctune;R_3jV-|zNL%#aM%iH84Jak65#-5H8pg2IzXU;UAKjw3o%&B5gX)jd| z^4rCJ6pU>lEM@h%2ga<*JnCd)?g8y2j3{EK)Cyn!^^(&g;85Z_uv$N5L${1u)e?N1 zcexVFBz`dRn5<__z0!v=IvR>Zw|zX~JG(8HPi5bZ?lFY>-if*Cj7UEQw0vwMFsq0x zTGBg+>boOa`(8E+!<01@PT^YJP&V-{L%6UCcifH>*S9HBO?#gRAvCeEY%=U#kLk#D zz^|;Oga_|=t(u^&s==|JvW~bS_r)}gfPaLx_((;hQOERZGd)J-{RrjBzFTySbK5HVWT~uT9YTTbP%&Oz{AG(iAJD7*m+neP` z&AemI{BkDdn4W-@>_gOkVURXv*>)mQ9~(pKauaF8vSGHVhSSLWz@L2_T=M>v#_&dC zaVy_>vQONRnmHg{yD~6tb0<8W08QlSra^~B(c0|CTg6(@Fb}h?U02N3F>I0~rW-I@ z=VH9i5X)-uw#3Pe`f?gw8nm(tyV&Px5`tgxXbSJ)u91HiRs9mEA|aHg1;l^`As-@@V}yf%B0PH8K0v9B-CK4)+>LX+k|!}s)p(s6gRGpq&SO|0>~;GvR)6F%XwzN!RWK9*UP2iuE7 zTctd%s3{ZtaFdQmJBtGucUr?>uaN`>nQVQdRP%nRN`$e;ll0_S_X{%5PmFLbZg`rA z4W7TgP4Vlylv(EbS8+=K+>>HDD7tJM4j#Ot&XF zM?}{K&UO{W%4&ZxT`&aSeC-4k5r6e~DSG8qfn)pWgPU6XG9XC9iLkuMqFdA539oa$ ze&h0DSci+}q0VLCq58MOS@k^usb~%y4a*&aLVYmAf}_LuAPbypd|;ZuPuzf-;-u#3 z2I@=|Lf+h&;f7?}&=4%>>-JbNZ&qsWEOf#D`R2$Ew&qodcFn=+yl^q&*^99gQIiPA z49UJ(UtJgVHk=Dp_&nY6Bi;{;~_^+rbi8`5%<$dWTo5Kp+H1;iqUe~;m7orzP9x|+OOi^uCYc%kwun2s7{u)l0$#H>iL?b5f9kM#heXU)qP96e zgknVzL7;+{PX5`=P`{DW&VV`Su)fhk$DgM7w#lSg%GZ$bPgJ^2!Pb8p!F01AG;l2lkG-UDWTKXFetHFS~~f670;kzX$uoTKy9^pFHyOV z4Zy|z7N}m&!Xeq_dVmJ)B?~s_jpoj4_|O-xLe{1-)SJiU@TcOhA=a3S;^8^^h z1O+FN*>X~WpMVdLNQiD8Q!&`uqbzao4<1K$!>+V^@_6=Z6d63)7|BMVKP22Yx-0p% zQlB(Hvm{jsnwKA&#>zA@H?2TA!O>T6{9?J$Xlq+IYeId9g&U$qn<}{TwsFjLZMBl< z4`Mp`wALHddqW2W-r~3ehpe_icLWFhiE^v0_BEVw<6UJ5z~A=s2T8t1odjCCTEfFI zyOi$2UU5yqknjGm-i(el6fHsc+cla36;IMdmXP&R zhW^$$BBZ1yHiJhslGxpx7~u|~|DcftyAzOj-(LD%*+L)QSo&ppEn@z9(zBnM!$IVg z*C!iiMvzmWkpGO&t7{#7!Pubyp9}T5nPZ~jyqimT{>2#r;drhRINwp-+K9+#sT;3) zHeHTI&PzNa(xh|!`ZcQgy>*F!?wCPx0a;hrF=M>;QEJN0_xHDS37s?|2Y(Qk7*Mqk zrnpL$YU_st$@CaKzN-V()QJkN+lFJVNS2ePUq)&`V;MUS+EV-4lydeqSGbPLj$=59 zlIW)*(IDzWx+^5ud8LHguFr!c{+_Kt0j>{mA#@KS)+FaIOY|1mJNg6lVG~gDpRk_B z>qf(fmnPiO-F|i*wm4=jnS?M#$5onW=*cX>85WWn8!%bav}{v6FTV42ttQw5REc5! zME{3}R2+f$IbC+GOo?~WoM0CMCG!SH;@#XaT*n4_d1;0?%`q`o1#gPFH>A`Z2c6SW zKIquxlD+*&OxL~g+%=%te6-A+-$l%Tf_X|*SAw9tuwOFGAWusSQa9|3Zr17L3}j6{ zBFm6!>9f!A9<=;`G2#XdJvzn1>3qZYH$*j4HpZ>Lzo7!6j42&@Z`X|brWP5WI^r&@ zhd%%x1uBN7)4mQgC9~f=!M8Wy5NfxqHH4~eUGk3cAL<-n@tD^^^@HsU>A`$ZSlXb-< z-}-8jJ+Y%j>OCO_NigEnT)JpPeF@c}2)KXkDO>$lP}8BXZe`!ci4N6&-;_(8YYx(f zY|78u*!_|!6hXX%6`_O!?!fd~7IKadO()~DyyjRVdrsLBDEV|)&YgWgcUfgQ$Mk-36o#o0IjB_QVxj_AzKMsDZk0HHuEz@&sQ8+gPwM~u&2ed;@=8g@U}xmJ z&KdTBgK|{`a4kjWIw|=@f^F?gN7P28!Ql+R$3jdwDjXu5SAwgx+ctTX01@5M+i&=G zU6I=Kw28bUYBS@-dyf@B+M(du6@*+kC$(*Y^6WcSiV-#sNYIX>G#R zE_2QpsY|IVKKJ~)0bYZFyA6*6Z1QRd8!wGxnkH*+T;H^~4NX!3^+e6i-&=7xTzfdD z1)#X-kzxm3G#GOv^nKMFF>36<o28w&PI~EI z&P*Afln5=Xi)FY(4j8VaQjtZ6HCXB_Cm?wWe6M(!cD9UuO-p8YaqASYGUX3Qw6Mnp z!pLH_=wy>v>8Ublr>dbi^cPm<2Euw8^(L-}5vEH)o(f~fjbj$Xj&0E%e&+w7!wde- z!U|mrdx>Rrp`CQkaDe8vLuGhVe?xa7n0J>K5p|G7o?w&gr;i{tn6WX`^<{%Dnxt2b zS}o(6YV7J!e3f8aemm3

    mUb`2gDFMC_Nlkp$Wi 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 z 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 -D+ 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�ZH78wEjGZY@#1 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 z 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�qS8|v{~?L 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 P@DHo5bK>doOTPaBkI_2M diff --git a/_versions/2.7/guides/images/kogito-DMN-guide-screenshot-scesim.png b/_versions/2.7/guides/images/kogito-DMN-guide-screenshot-scesim.png deleted file mode 100644 index 09c0be64d75f612ed9b69dd8dc9d74ecf14a8e67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220658 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�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 z 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 diff --git a/_versions/2.7/guides/images/kogito-guide-screenshot.png b/_versions/2.7/guides/images/kogito-guide-screenshot.png deleted file mode 100644 index 6bb8487fe162335952b477bbf979c834e779a3df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13867 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 JD&`9+X^H^%`3s%ewF(48XR#bmT+dN(SH6@zc`f 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 S+{3~_aPl%L(p8cs!T%5bP}Bne diff --git a/_versions/2.7/guides/images/native-reference-multi-flamegraph-joined-threads.svg b/_versions/2.7/guides/images/native-reference-multi-flamegraph-joined-threads.svg deleted file mode 100644 index 3a810e745b6..00000000000 --- a/_versions/2.7/guides/images/native-reference-multi-flamegraph-joined-threads.svg +++ /dev/null @@ -1,7176 +0,0 @@ - - - - - - - - - - - - - - -Flame Graph - -Reset Zoom -Search -ic - - - -__hrtimer_run_queues (3 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (11 samples, 0.04%) - - - -enqueue_task (20 samples, 0.07%) - - - -fput_many (4 samples, 0.01%) - - - -skb_network_protocol (16 samples, 0.05%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (15 samples, 0.05%) - - - -skb_release_data (3 samples, 0.01%) - - - -bpf_lsm_xfrm_decode_session (14 samples, 0.05%) - - - -__pthread_mutex_cond_lock (26 samples, 0.09%) - - - -try_to_wake_up (12 samples, 0.04%) - - - -netdev_core_pick_tx (11 samples, 0.04%) - - - -check_stack_object (6 samples, 0.02%) - - - -__x86_indirect_thunk_rax (10 samples, 0.03%) - - - -fib_table_lookup (3 samples, 0.01%) - - - -acpi_idle_do_entry (1,165 samples, 3.98%) -acpi.. - - -raw_icmp_error (4 samples, 0.01%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (8 samples, 0.03%) - - - -skb_put (6 samples, 0.02%) - - - -_raw_spin_lock_irqsave (3 samples, 0.01%) - - - -ntloop-thread (5 samples, 0.02%) - - - -siphash_3u32 (5 samples, 0.02%) - - - -cpuidle_enter_state (68 samples, 0.23%) - - - -do_csum (11 samples, 0.04%) - - - -JNIFunctions_ExceptionCheck_c3880ec5388acdaaf0a33f93c718f75d394cf800 (3 samples, 0.01%) - - - -mark_wake_futex (4 samples, 0.01%) - - - -skb_release_data (12 samples, 0.04%) - - - -copy_user_generic_string (6 samples, 0.02%) - - - -ThreadLocalHandles_ensureCapacity_22e5abcd3c07151c01ffcc4e0e4a54317d42c2a8 (12 samples, 0.04%) - - - -__update_load_avg_se (37 samples, 0.13%) - - - -selinux_sk_getsecid (3 samples, 0.01%) - - - -blk_mq_sched_dispatch_requests (3 samples, 0.01%) - - - -[perf] (4 samples, 0.01%) - - - -secondary_startup_64_no_verify (1,047 samples, 3.58%) -sec.. - - -update_rq_clock (5 samples, 0.02%) - - - -futex_wake (11 samples, 0.04%) - - - -futex_wait_queue_me (18 samples, 0.06%) - - - -sockfd_lookup_light (8 samples, 0.03%) - - - -udp_send_skb (5 samples, 0.02%) - - - -ReentrantLock_lock_c898d1de8855d56ce6120446f90aa9e4e86ede9f (3,064 samples, 10.48%) -ReentrantLock_l.. - - -_raw_spin_lock (10 samples, 0.03%) - - - -end_repeat_nmi (3 samples, 0.01%) - - - -__switch_to (27 samples, 0.09%) - - - -update_load_avg (7 samples, 0.02%) - - - -__softirqentry_text_start (14 samples, 0.05%) - - - -mark_wake_futex (3 samples, 0.01%) - - - -select_task_rq_fair (6 samples, 0.02%) - - - -native_write_msr (3 samples, 0.01%) - - - -timekeeping_max_deferment (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (27 samples, 0.09%) - - - -__softirqentry_text_start (4 samples, 0.01%) - - - -OSCommittedMemoryProvider_allocate_f8d80d596cf0c26612afa4c08c54998e761aa867 (6 samples, 0.02%) - - - -available_idle_cpu (3 samples, 0.01%) - - - -__update_load_avg_se (16 samples, 0.05%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (4 samples, 0.01%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (12 samples, 0.04%) - - - -__switch_to_asm (30 samples, 0.10%) - - - -hrtimer_get_next_event (3 samples, 0.01%) - - - -ThreadLocalHandles_popFramesIncluding_a2f2b35267b27849afd06acabb6c2e3bc3b22169 (29 samples, 0.10%) - - - -Pthread_pthread_cond_broadcast_eebf0c33ba863f59f420d2e79631b37822b99e02 (433 samples, 1.48%) - - - -ip_route_output_flow (3 samples, 0.01%) - - - -selinux_ipv4_output (40 samples, 0.14%) - - - -icmp_unreach (3 samples, 0.01%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (17 samples, 0.06%) - - - -VMOperationControl_guaranteeOkayToBlock_6c18be2cba7df7cda24be664a42b08f35232e6be (6 samples, 0.02%) - - - -ReentrantLock_lock_c898d1de8855d56ce6120446f90aa9e4e86ede9f (7 samples, 0.02%) - - - -enqueue_task (4 samples, 0.01%) - - - -copy_user_generic_string (5 samples, 0.02%) - - - -do_syscall_64 (19 samples, 0.06%) - - - -sock_sendmsg (12 samples, 0.04%) - - - -avc_has_perm (3 samples, 0.01%) - - - -ip_finish_output (16 samples, 0.05%) - - - -decode_session4 (5 samples, 0.02%) - - - -perf_event_for_each_child (15 samples, 0.05%) - - - -__ip_finish_output (4 samples, 0.01%) - - - -irqtime_account_irq (34 samples, 0.12%) - - - -JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b (11 samples, 0.04%) - - - -check_preempt_curr (4 samples, 0.01%) - - - -native_sched_clock (3 samples, 0.01%) - - - -__rdgsbase_inactive (10 samples, 0.03%) - - - -__x86_indirect_thunk_rax (4 samples, 0.01%) - - - -flush_smp_call_function_queue (6 samples, 0.02%) - - - -siphash_3u32 (3 samples, 0.01%) - - - -__ip_append_data (4 samples, 0.01%) - - - -sock_alloc_send_pskb (33 samples, 0.11%) - - - -sched_ttwu_pending (6 samples, 0.02%) - - - -__update_load_avg_cfs_rq (36 samples, 0.12%) - - - -raw_spin_rq_lock_nested (26 samples, 0.09%) - - - -[perf] (7 samples, 0.02%) - - - -__switch_to (9 samples, 0.03%) - - - -ip_rcv (4 samples, 0.01%) - - - -native_write_msr (136 samples, 0.47%) - - - -__x64_sys_futex (3 samples, 0.01%) - - - -__update_idle_core (8 samples, 0.03%) - - - -ip_local_deliver_finish (4 samples, 0.01%) - - - -__ip_select_ident (31 samples, 0.11%) - - - -update_rq_clock (8 samples, 0.03%) - - - -dst_release (18 samples, 0.06%) - - - -__udp4_lib_rcv (438 samples, 1.50%) - - - -__sys_sendto (12 samples, 0.04%) - - - -alloc_skb_with_frags (44 samples, 0.15%) - - - -flush_smp_call_function_queue (23 samples, 0.08%) - - - -dst_release (4 samples, 0.01%) - - - -LockSupport_park_ad3b0439cc81f3747a99376fb5cad89af288f997 (2,747 samples, 9.40%) -LockSupport_p.. - - -__kmalloc_node_track_caller (88 samples, 0.30%) - - - -__do_set_cpus_allowed (6 samples, 0.02%) - - - -rb_insert_color (4 samples, 0.01%) - - - -__switch_to (26 samples, 0.09%) - - - -dst_release (3 samples, 0.01%) - - - -do_syscall_64 (4 samples, 0.01%) - - - -cpuidle_enter (27 samples, 0.09%) - - - -tick_sched_timer (12 samples, 0.04%) - - - -ip_finish_output2 (763 samples, 2.61%) -ip.. - - -do_epoll_pwait.part.0 (3 samples, 0.01%) - - - -migrate_disable (4 samples, 0.01%) - - - -schedule_idle (38 samples, 0.13%) - - - -update_rq_clock (5 samples, 0.02%) - - - -__vm_munmap (4 samples, 0.01%) - - - -__napi_poll (650 samples, 2.22%) -_.. - - -icmp_rcv (5 samples, 0.02%) - - - -tick_nohz_idle_exit (4 samples, 0.01%) - - - -copy_user_generic_string (21 samples, 0.07%) - - - -irq_enter_rcu (39 samples, 0.13%) - - - -memcg_slab_post_alloc_hook (33 samples, 0.11%) - - - -ip_append_data (75 samples, 0.26%) - - - -AbstractQueuedSynchronizer_release_a6f0f81643a4166b53eeaa75bf587c535be7bad9 (1,589 samples, 5.43%) -Abstrac.. - - -poll_idle (58 samples, 0.20%) - - - -update_curr (7 samples, 0.02%) - - - -Thread_start0_1ac299bac29d78e193ed792d1de667f50cd6b267 (4 samples, 0.01%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (12 samples, 0.04%) - - - -psi_group_change (4 samples, 0.01%) - - - -dev_hard_start_xmit (46 samples, 0.16%) - - - -flush_smp_call_function_from_idle (4 samples, 0.01%) - - - -_start (12 samples, 0.04%) - - - -psi_task_change (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (5 samples, 0.02%) - - - -check_preempt_curr (4 samples, 0.01%) - - - -avc_lookup (12 samples, 0.04%) - - - -skb_clone_tx_timestamp (5 samples, 0.02%) - - - -ip_finish_output (4 samples, 0.01%) - - - -ip_finish_output2 (3 samples, 0.01%) - - - -update_load_avg (63 samples, 0.22%) - - - -udp_err (7 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.02%) - - - -__wrgsbase_inactive (9 samples, 0.03%) - - - -ctx_sched_in (9 samples, 0.03%) - - - -_copy_from_user (11 samples, 0.04%) - - - -do_idle (2,908 samples, 9.95%) -do_idle - - -acpi_processor_ffh_cstate_enter (24 samples, 0.08%) - - - -nohz_run_idle_balance (5 samples, 0.02%) - - - -mark_wake_futex (4 samples, 0.01%) - - - -__condvar_dec_grefs (264 samples, 0.90%) - - - -Unsafe_park_8e78b5f196bf0524b1490ff9abb68dc337e02cca (2,721 samples, 9.31%) -Unsafe_park_8.. - - -ip_finish_output2 (120 samples, 0.41%) - - - -cpuacct_charge (6 samples, 0.02%) - - - -newidle_balance (3 samples, 0.01%) - - - -all (29,238 samples, 100%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (5 samples, 0.02%) - - - -__x86_indirect_thunk_rax (4 samples, 0.01%) - - - -__x86_indirect_thunk_rax (3 samples, 0.01%) - - - -psi_group_change (42 samples, 0.14%) - - - -kmem_cache_alloc_node (3 samples, 0.01%) - - - -poll_idle (316 samples, 1.08%) - - - -raw_spin_rq_lock_nested (3 samples, 0.01%) - - - -psi_task_switch (7 samples, 0.02%) - - - -raw_local_deliver (7 samples, 0.02%) - - - -raw_spin_rq_unlock (11 samples, 0.04%) - - - -update_load_avg (146 samples, 0.50%) - - - -__get_user_nocheck_4 (12 samples, 0.04%) - - - -psi_group_change (5 samples, 0.02%) - - - -selinux_ip_postroute (3 samples, 0.01%) - - - -__ip_append_data (133 samples, 0.45%) - - - -do_softirq (710 samples, 2.43%) -do.. - - -__update_load_avg_se (3 samples, 0.01%) - - - -__irq_exit_rcu (4 samples, 0.01%) - - - -_raw_spin_lock_irqsave (11 samples, 0.04%) - - - -__libc_sendto (13 samples, 0.04%) - - - -__skb_checksum_complete (4 samples, 0.01%) - - - -__wrgsbase_inactive (11 samples, 0.04%) - - - -__switch_to_asm (3 samples, 0.01%) - - - -__switch_to_asm (3 samples, 0.01%) - - - -psi_group_change (4 samples, 0.01%) - - - -psi_task_change (5 samples, 0.02%) - - - -wake_up_q (3 samples, 0.01%) - - - -__softirqentry_text_start (6 samples, 0.02%) - - - -ip_local_deliver_finish (11 samples, 0.04%) - - - -ip_protocol_deliver_rcu (3 samples, 0.01%) - - - -kmalloc_slab (18 samples, 0.06%) - - - -__get_user_nocheck_4 (3 samples, 0.01%) - - - -sock_sendmsg (9 samples, 0.03%) - - - -__pthread_create_2_1 (4 samples, 0.01%) - - - -acpi_idle_do_entry (27 samples, 0.09%) - - - -__get_user_nocheck_4 (5 samples, 0.02%) - - - -try_to_wake_up (10 samples, 0.03%) - - - -native_sched_clock (3 samples, 0.01%) - - - -finish_task_switch.isra.0 (3 samples, 0.01%) - - - -DeploymentManager_deployVerticle_8f348e5595b996709d456a4d080275d9279aea32 (4 samples, 0.01%) - - - -menu_select (17 samples, 0.06%) - - - -skb_release_head_state (5 samples, 0.02%) - - - -do_futex (17 samples, 0.06%) - - - -syscall_exit_to_user_mode_prepare (6 samples, 0.02%) - - - -___pthread_cond_broadcast (429 samples, 1.47%) - - - -psi_group_change (22 samples, 0.08%) - - - -ApplicationLifecycleManager_run_dbf144db2a98237beac0f2d82fb961c3bd6ed251 (11 samples, 0.04%) - - - -syscall_return_via_sysret (4 samples, 0.01%) - - - -native_sched_clock (7 samples, 0.02%) - - - -___pthread_mutex_lock (8 samples, 0.03%) - - - -update_load_avg (21 samples, 0.07%) - - - -kmem_cache_free (3 samples, 0.01%) - - - -cpuacct_charge (3 samples, 0.01%) - - - -update_load_avg (5 samples, 0.02%) - - - -__schedule (9 samples, 0.03%) - - - -__xfrm_decode_session (6 samples, 0.02%) - - - -select_task_rq_fair (3 samples, 0.01%) - - - -ip_setup_cork (3 samples, 0.01%) - - - -JNIObjectHandles_popLocalFramesIncluding_33a493f8782cc84a75a079908d7e5b418b3738fc (3 samples, 0.01%) - - - -psi_group_change (24 samples, 0.08%) - - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (11 samples, 0.04%) - - - -__udp4_lib_rcv (3 samples, 0.01%) - - - -tick_sched_handle (3 samples, 0.01%) - - - -__skb_checksum (4 samples, 0.01%) - - - -dev_hard_start_xmit (8 samples, 0.03%) - - - -VertxImpl_constructor_775d041b08f67497d294acf44ec22a5d77cc1fc8 (5 samples, 0.02%) - - - -udp_rcv (4 samples, 0.01%) - - - -__common_interrupt (7 samples, 0.02%) - - - -skb_release_head_state (4 samples, 0.01%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (12,437 samples, 42.54%) -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f83.. - - -acpi_processor_ffh_cstate_enter (69 samples, 0.24%) - - - -__libc_start_call_main (12 samples, 0.04%) - - - -selinux_ip_postroute_compat (6 samples, 0.02%) - - - -icmp_rcv (6 samples, 0.02%) - - - -sysvec_apic_timer_interrupt (122 samples, 0.42%) - - - -enqueue_task (17 samples, 0.06%) - - - -selinux_xfrm_postroute_last (5 samples, 0.02%) - - - -cgroup_rstat_updated (4 samples, 0.01%) - - - -ip_setup_cork (5 samples, 0.02%) - - - -select_task_rq_fair (7 samples, 0.02%) - - - -native_sched_clock (4 samples, 0.01%) - - - -ip_rcv (29 samples, 0.10%) - - - -_copy_from_user (34 samples, 0.12%) - - - -__ip_local_out (26 samples, 0.09%) - - - -cpuidle_enter_state (1,009 samples, 3.45%) -cpu.. - - -__x86_indirect_thunk_rax (22 samples, 0.08%) - - - -__x64_sys_sched_setaffinity (11 samples, 0.04%) - - - -__ip_make_skb (45 samples, 0.15%) - - - -dequeue_entity (10 samples, 0.03%) - - - -ktime_get (6 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (8 samples, 0.03%) - - - -netif_skb_features (24 samples, 0.08%) - - - -ip_local_deliver (3 samples, 0.01%) - - - -pick_next_task_fair (7 samples, 0.02%) - - - -__check_object_size (9 samples, 0.03%) - - - -__netif_receive_skb_one_core (7 samples, 0.02%) - - - -native_sched_clock (11 samples, 0.04%) - - - -__clone3 (4 samples, 0.01%) - - - -hrtimer_wakeup (12 samples, 0.04%) - - - -ktime_get (11 samples, 0.04%) - - - -do_csum (3 samples, 0.01%) - - - -PosixVirtualMemoryProvider_reserve_b6c76ffcfaac89204e3ddd5f1a5cd110a1860862 (5 samples, 0.02%) - - - -__update_load_avg_cfs_rq (3 samples, 0.01%) - - - -psi_group_change (282 samples, 0.96%) - - - -update_rq_clock (5 samples, 0.02%) - - - -selinux_ip_postroute_compat (5 samples, 0.02%) - - - -psi_task_change (3 samples, 0.01%) - - - -kfree (5 samples, 0.02%) - - - -__ip_select_ident (30 samples, 0.10%) - - - -try_to_wake_up (8 samples, 0.03%) - - - -PosixParkEvent_condWait_48f9d4da7d07c2044e85cec5495ae177057e5073 (2,645 samples, 9.05%) -PosixParkEven.. - - -AbstractQueuedSynchronizer_shouldParkAfterFailedAcquire_afac5da03eda0b8f7c056a512c05f34b22f4a8c2 (9 samples, 0.03%) - - - -skb_csum_hwoffload_help (4 samples, 0.01%) - - - -ReentrantLock$Sync_nonfairTryAcquire_0a9290a8427787ed8158d141c47a3ec430d345c2 (4 samples, 0.01%) - - - -kmem_cache_free (12 samples, 0.04%) - - - -do_idle (11 samples, 0.04%) - - - -__icmp_send (104 samples, 0.36%) - - - -skb_release_head_state (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (5 samples, 0.02%) - - - -hrtimer_get_next_event (6 samples, 0.02%) - - - -flush_smp_call_function_from_idle (4 samples, 0.01%) - - - -__hrtimer_run_queues (35 samples, 0.12%) - - - -enqueue_to_backlog (3 samples, 0.01%) - - - -futex_wait (4 samples, 0.01%) - - - -__update_load_avg_se (4 samples, 0.01%) - - - -syscall_exit_to_user_mode_prepare (6 samples, 0.02%) - - - -update_min_vruntime (10 samples, 0.03%) - - - -__udp4_lib_err (6 samples, 0.02%) - - - -__GI___pthread_disable_asynccancel (13 samples, 0.04%) - - - -Application_start_9a0b63742d6e66c1b5dc0121670fdf46106d2d88 (11 samples, 0.04%) - - - -do_syscall_64 (5 samples, 0.02%) - - - -ReentrantLock$NonfairSync_tryAcquire_0c5b5d7ba39229cb63cc2549c6b5028de3f821c1 (5 samples, 0.02%) - - - -fib_table_lookup (5 samples, 0.02%) - - - -native_sched_clock (3 samples, 0.01%) - - - -SingleThreadEventExecutor_execute_b9fc33f6cf952ec696d6a219f6499740711801a6 (4 samples, 0.01%) - - - -csum_partial_copy_nocheck (3 samples, 0.01%) - - - -copy_user_generic_string (9 samples, 0.03%) - - - -merge_sched_in (8 samples, 0.03%) - - - -__ip_append_data (66 samples, 0.23%) - - - -acpi_processor_ffh_cstate_enter (12 samples, 0.04%) - - - -common_interrupt (8 samples, 0.03%) - - - -decode_session4 (45 samples, 0.15%) - - - -acpi_processor_ffh_cstate_enter (4 samples, 0.01%) - - - -__skb_checksum_complete (31 samples, 0.11%) - - - -__kmalloc_node_track_caller (8 samples, 0.03%) - - - -EventLoopContext_runOnContext_1032f3075a9010887ecdd3fdc7989166bf814f22 (4 samples, 0.01%) - - - -net_rx_action (3 samples, 0.01%) - - - -check_preempt_curr (3 samples, 0.01%) - - - -perf_ibs_handle_irq (4 samples, 0.01%) - - - -[perf] (302 samples, 1.03%) - - - -__x64_sys_sendto (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (20 samples, 0.07%) - - - -perf_ioctl (30 samples, 0.10%) - - - -skb_release_data (6 samples, 0.02%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (4 samples, 0.01%) - - - -__udp4_lib_rcv (5 samples, 0.02%) - - - -netlbl_enabled (4 samples, 0.01%) - - - -update_cfs_group (13 samples, 0.04%) - - - -loopback_xmit (3 samples, 0.01%) - - - -irqtime_account_irq (13 samples, 0.04%) - - - -ThreadPerTaskExecutor_execute_9afc5d4473f674f08e02dd448b4e6a6247aa748d (4 samples, 0.01%) - - - -icmp_push_reply (21 samples, 0.07%) - - - -psi_group_change (7 samples, 0.02%) - - - -ktime_get (4 samples, 0.01%) - - - -alloc_skb_with_frags (37 samples, 0.13%) - - - -ip_finish_output2 (3 samples, 0.01%) - - - -sched_clock_cpu (3 samples, 0.01%) - - - -select_task_rq_fair (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (7 samples, 0.02%) - - - -try_to_wake_up (4 samples, 0.01%) - - - -SingleThreadEventExecutor_startThread_01a2f6913975a9e3a694adc6e29d550c50d76f00 (4 samples, 0.01%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (8 samples, 0.03%) - - - -move_addr_to_kernel.part.0 (39 samples, 0.13%) - - - -futex_wait_queue_me (8 samples, 0.03%) - - - -cpuidle_reflect (4 samples, 0.01%) - - - -do_futex (4 samples, 0.01%) - - - -__switch_to (16 samples, 0.05%) - - - -ip_rcv (11 samples, 0.04%) - - - -do_idle (1,721 samples, 5.89%) -do_idle - - -sched_setaffinity (11 samples, 0.04%) - - - -native_sched_clock (12 samples, 0.04%) - - - -___pthread_cond_broadcast (30 samples, 0.10%) - - - -wake_q_add_safe (3 samples, 0.01%) - - - -_raw_spin_lock_irqsave (4 samples, 0.01%) - - - -__ip_select_ident (14 samples, 0.05%) - - - -kfree (8 samples, 0.03%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.02%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (4 samples, 0.01%) - - - -MultiThreadedMonitorSupport_monitorExit_f765f7445e650efe1207579ef06c6f8ac708d1b5 (36 samples, 0.12%) - - - -selinux_ip_postroute_compat (3 samples, 0.01%) - - - -__ip_append_data (9 samples, 0.03%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitorFromObject_922cf11599fedc7c0bfa829f3c2f09fcdebe2077 (7 samples, 0.02%) - - - -native_sched_clock (162 samples, 0.55%) - - - -PosixJavaThreads_beforeThreadRun_74270183030d3cf183dcaf07b8ca65494761107e (8 samples, 0.03%) - - - -acpi_processor_ffh_cstate_enter (18 samples, 0.06%) - - - -__get_user_nocheck_4 (10 samples, 0.03%) - - - -acpi_processor_ffh_cstate_enter (68 samples, 0.23%) - - - -kmem_cache_free (7 samples, 0.02%) - - - -menu_select (36 samples, 0.12%) - - - -nv04_timer_intr (3 samples, 0.01%) - - - -do_csum (19 samples, 0.06%) - - - -kmem_cache_alloc_node (8 samples, 0.03%) - - - -entry_SYSCALL_64_after_hwframe (3 samples, 0.01%) - - - -do_idle (27 samples, 0.09%) - - - -skb_release_head_state (7 samples, 0.02%) - - - -_raw_spin_trylock (6 samples, 0.02%) - - - -cpuidle_enter_state (62 samples, 0.21%) - - - -__udp4_lib_lookup (11 samples, 0.04%) - - - -acpi_idle_enter (4 samples, 0.01%) - - - -_copy_from_iter (25 samples, 0.09%) - - - -__kmalloc_node (3 samples, 0.01%) - - - -ReentrantLock$Sync_tryRelease_a66c341958d8201110d2de33406f88fc73bac424 (281 samples, 0.96%) - - - -copy_user_generic_string (3 samples, 0.01%) - - - -sched_clock_cpu (14 samples, 0.05%) - - - -native_sched_clock (18 samples, 0.06%) - - - -__x86_indirect_thunk_rax (40 samples, 0.14%) - - - -__entry_text_start (10 samples, 0.03%) - - - -futex_wait_queue_me (77 samples, 0.26%) - - - -raw_spin_rq_lock_nested (5 samples, 0.02%) - - - -__alloc_skb (122 samples, 0.42%) - - - -tcache_init.part.0 (3 samples, 0.01%) - - - -put_prev_task_fair (4 samples, 0.01%) - - - -fib_table_lookup (11 samples, 0.04%) - - - -__switch_to (20 samples, 0.07%) - - - -kfree (5 samples, 0.02%) - - - -tick_nohz_next_event (4 samples, 0.01%) - - - -acpi_idle_do_entry (764 samples, 2.61%) -ac.. - - -__schedule (3 samples, 0.01%) - - - -native_sched_clock (14 samples, 0.05%) - - - -__calc_delta (12 samples, 0.04%) - - - -ThreadExecutorMap$1_execute_82a130cdd46546392da3ffac84de8c998f29d43c (4 samples, 0.01%) - - - -__x86_indirect_thunk_rax (4 samples, 0.01%) - - - -native_sched_clock (12 samples, 0.04%) - - - -scheduler_tick (3 samples, 0.01%) - - - -native_write_msr (3 samples, 0.01%) - - - -getInetAddress_family (99 samples, 0.34%) - - - -rcu_eqs_enter.constprop.0 (3 samples, 0.01%) - - - -ip_protocol_deliver_rcu (12 samples, 0.04%) - - - -update_cfs_group (20 samples, 0.07%) - - - -acpi_processor_ffh_cstate_enter (62 samples, 0.21%) - - - -entry_SYSCALL_64_after_hwframe (3 samples, 0.01%) - - - -do_syscall_64 (10 samples, 0.03%) - - - -schedule_idle (105 samples, 0.36%) - - - -dequeue_task_fair (15 samples, 0.05%) - - - -do_syscall_64 (4 samples, 0.01%) - - - -do_syscall_64 (4 samples, 0.01%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (12,437 samples, 42.54%) -Thread_run_857ee078f8137062fcf27275732adf5c4870652a - - -entry_SYSCALL_64_after_hwframe (4 samples, 0.01%) - - - -wake_q_add_safe (4 samples, 0.01%) - - - -selinux_ip_postroute_compat (3 samples, 0.01%) - - - -NioEventLoop_constructor_49df0e0d6cddf8f78e642a99ad82de56c1f0a39b (5 samples, 0.02%) - - - -mark_wake_futex (8 samples, 0.03%) - - - -VertxHttpProcessor$openSocket1866188241_deploy_7b07d97e327c2c1535eef8489b04526037b1f0ff (4 samples, 0.01%) - - - -__ip_make_skb (5 samples, 0.02%) - - - -secondary_startup_64_no_verify (1,793 samples, 6.13%) -secondar.. - - -tick_irq_enter (16 samples, 0.05%) - - - -udp4_hwcsum (13 samples, 0.04%) - - - -cpuidle_enter_state (1,444 samples, 4.94%) -cpuidl.. - - -ip_push_pending_frames (164 samples, 0.56%) - - - -acpi_processor_ffh_cstate_enter (26 samples, 0.09%) - - - -__x86_indirect_thunk_rax (5 samples, 0.02%) - - - -sockfd_lookup_light (4 samples, 0.01%) - - - -syscall_enter_from_user_mode (8 samples, 0.03%) - - - -syscall_exit_to_user_mode_prepare (3 samples, 0.01%) - - - -rcu_all_qs (9 samples, 0.03%) - - - -__udp4_lib_err (7 samples, 0.02%) - - - -irq_work_needs_cpu (3 samples, 0.01%) - - - -loopback_xmit (39 samples, 0.13%) - - - -enqueue_entity (97 samples, 0.33%) - - - -sched_clock_cpu (13 samples, 0.04%) - - - -loopback_xmit (23 samples, 0.08%) - - - -rb_next (3 samples, 0.01%) - - - -psi_task_change (4 samples, 0.01%) - - - -kmem_cache_free (21 samples, 0.07%) - - - -selinux_ipv4_postroute (7 samples, 0.02%) - - - -xfrm_lookup_with_ifid (94 samples, 0.32%) - - - -enqueue_to_backlog (5 samples, 0.02%) - - - -__netif_receive_skb_core.constprop.0 (62 samples, 0.21%) - - - -__dev_queue_xmit (8 samples, 0.03%) - - - -__switch_to_asm (43 samples, 0.15%) - - - -process_backlog (6 samples, 0.02%) - - - -perf_event_update_userpage (3 samples, 0.01%) - - - -__list_add_valid (5 samples, 0.02%) - - - -check_preempt_curr (6 samples, 0.02%) - - - -enqueue_to_backlog (3 samples, 0.01%) - - - -schedule (3 samples, 0.01%) - - - -__kmalloc_node_track_caller (3 samples, 0.01%) - - - -process_backlog (3 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (6 samples, 0.02%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (12,428 samples, 42.51%) -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 - - -Pthread_pthread_mutex_unlock_4817c536fb459a4a32739c23b0ed198cc1fb485f (420 samples, 1.44%) - - - -__wrgsbase_inactive (11 samples, 0.04%) - - - -__kmalloc_node_track_caller (3 samples, 0.01%) - - - -futex_wait (90 samples, 0.31%) - - - -__get_user_nocheck_4 (11 samples, 0.04%) - - - -cpuidle_enter_state (3 samples, 0.01%) - - - -save_fpregs_to_fpstate (17 samples, 0.06%) - - - -select_task_rq_fair (4 samples, 0.01%) - - - -sched_clock_cpu (13 samples, 0.04%) - - - -get_futex_key (13 samples, 0.04%) - - - -icmp_route_lookup.constprop.0 (119 samples, 0.41%) - - - -worker_thread (4 samples, 0.01%) - - - -kfree (5 samples, 0.02%) - - - -ip_rcv_core (13 samples, 0.04%) - - - -_raw_spin_lock_irqsave (7 samples, 0.02%) - - - -update_load_avg (5 samples, 0.02%) - - - -__sys_sendto (1,038 samples, 3.55%) -__s.. - - -dequeue_entity (12 samples, 0.04%) - - - -event_function (14 samples, 0.05%) - - - -switch_fpu_return (4 samples, 0.01%) - - - -plist_del (7 samples, 0.02%) - - - -tick_nohz_next_event (6 samples, 0.02%) - - - -select_task_rq_fair (7 samples, 0.02%) - - - -security_skb_classify_flow (6 samples, 0.02%) - - - -ReentrantLock$Sync_tryRelease_a66c341958d8201110d2de33406f88fc73bac424 (6 samples, 0.02%) - - - -ip_route_output_flow (6 samples, 0.02%) - - - -down_write_killable (4 samples, 0.01%) - - - -VertxImpl_deployVerticle_097940d891a15e3dd0d5dcf2f21cd8dece35a792 (4 samples, 0.01%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (3 samples, 0.01%) - - - -do_syscall_64 (3 samples, 0.01%) - - - -save_fpregs_to_fpstate (68 samples, 0.23%) - - - -ip_route_output_key_hash_rcu (5 samples, 0.02%) - - - -___pthread_mutex_lock (204 samples, 0.70%) - - - -AbstractQueuedSynchronizer_acquire_d7c03c3cee25dd5a735b5a4334799f668f70ef36 (3,064 samples, 10.48%) -AbstractQueuedS.. - - -VertxHttpProcessor$openSocket1866188241_deploy_0_f62af8cc66423d57d1e40c5a1ec11136d1b717ee (4 samples, 0.01%) - - - -ttwu_queue_wakelist (3 samples, 0.01%) - - - -__check_object_size (34 samples, 0.12%) - - - -acpi_processor_ffh_cstate_enter (13 samples, 0.04%) - - - -nvme_queue_rq (3 samples, 0.01%) - - - -__icmp_send (397 samples, 1.36%) - - - -futex_wake (9 samples, 0.03%) - - - -save_fpregs_to_fpstate (36 samples, 0.12%) - - - -wake_q_add_safe (6 samples, 0.02%) - - - -ip_local_deliver_finish (580 samples, 1.98%) -i.. - - -sysvec_apic_timer_interrupt (4 samples, 0.01%) - - - -psi_flags_change (3 samples, 0.01%) - - - -__condvar_confirm_wakeup (14 samples, 0.05%) - - - -ttwu_do_activate (16 samples, 0.05%) - - - -sock_alloc_send_skb (3 samples, 0.01%) - - - -IsolateEnterStub_JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b_a61fe6c26e84dd4037e4629852b5488bfcc16e7e (12 samples, 0.04%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (7,142 samples, 24.43%) -Java_sun_nio_ch_DatagramChannelImpl_se.. - - -native_sched_clock (29 samples, 0.10%) - - - -ip_rcv_finish_core.constprop.0 (3 samples, 0.01%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (92 samples, 0.31%) - - - -__ip_make_skb (4 samples, 0.01%) - - - -Arrays_copyOfRange_289badfd980998aad0ada38eb3a926841af70498 (8 samples, 0.03%) - - - -process_backlog (50 samples, 0.17%) - - - -enqueue_entity (8 samples, 0.03%) - - - -cpu_startup_entry (2,919 samples, 9.98%) -cpu_startup_en.. - - -curl (3,986 samples, 13.63%) -curl - - -selinux_socket_sendmsg (41 samples, 0.14%) - - - -start_kernel (27 samples, 0.09%) - - - -process_backlog (632 samples, 2.16%) -p.. - - -fib_table_lookup (22 samples, 0.08%) - - - -csum_partial_copy_generic (5 samples, 0.02%) - - - -__x86_indirect_thunk_rax (6 samples, 0.02%) - - - -mark_wake_futex (4 samples, 0.01%) - - - -__x86_indirect_thunk_rax (3 samples, 0.01%) - - - -validate_xmit_xfrm (3 samples, 0.01%) - - - -selinux_parse_skb.constprop.0 (32 samples, 0.11%) - - - -pick_next_entity (9 samples, 0.03%) - - - -_raw_spin_lock (6 samples, 0.02%) - - - -psi_group_change (182 samples, 0.62%) - - - -acpi_processor_ffh_cstate_enter (3 samples, 0.01%) - - - -__schedule (90 samples, 0.31%) - - - -tick_nohz_idle_stop_tick (3 samples, 0.01%) - - - -native_write_msr (4 samples, 0.01%) - - - -__wrgsbase_inactive (4 samples, 0.01%) - - - -rcu_eqs_exit.constprop.0 (3 samples, 0.01%) - - - -available_idle_cpu (3 samples, 0.01%) - - - -ip_rcv_core (41 samples, 0.14%) - - - -get_next_timer_interrupt (6 samples, 0.02%) - - - -security_task_setscheduler (3 samples, 0.01%) - - - -avc_has_perm (18 samples, 0.06%) - - - -update_load_avg (8 samples, 0.03%) - - - -native_write_msr (12 samples, 0.04%) - - - -selinux_sk_getsecid (19 samples, 0.06%) - - - -tick_nohz_next_event (8 samples, 0.03%) - - - -ip_route_output_key_hash_rcu (5 samples, 0.02%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (8 samples, 0.03%) - - - -acpi_processor_ffh_cstate_enter (9 samples, 0.03%) - - - -__skb_checksum (10 samples, 0.03%) - - - -clear_buddies (3 samples, 0.01%) - - - -is_cpu_allowed (14 samples, 0.05%) - - - -__ip_append_data (3 samples, 0.01%) - - - -JNIGeneratedMethodSupport_unboxHandle_4bc785faa30981ed3ca002aef8d600c83e6f66e4 (13 samples, 0.04%) - - - -psi_group_change (3 samples, 0.01%) - - - -do_futex (6 samples, 0.02%) - - - -udp_sendmsg (7 samples, 0.02%) - - - -do_futex (35 samples, 0.12%) - - - -slab_free_freelist_hook.constprop.0 (23 samples, 0.08%) - - - -JNIGeneratedMethodSupport_getFieldOffsetFromId_5041c78d77a7b3d62103393b72fc35d80d2cc709 (6 samples, 0.02%) - - - -ret_from_fork (7 samples, 0.02%) - - - -select_task_rq_fair (9 samples, 0.03%) - - - -udp4_lib_lookup2 (3 samples, 0.01%) - - - -menu_reflect (15 samples, 0.05%) - - - -switch_mm_irqs_off (18 samples, 0.06%) - - - -futex_wait (7 samples, 0.02%) - - - -schedule (6 samples, 0.02%) - - - -JNIObjectHandles_popLocalFramesIncluding_33a493f8782cc84a75a079908d7e5b418b3738fc (3 samples, 0.01%) - - - -__schedule (3 samples, 0.01%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (12,437 samples, 42.54%) -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63.. - - -poll_idle (6 samples, 0.02%) - - - -asm_common_interrupt (6 samples, 0.02%) - - - -__ip_dev_find (15 samples, 0.05%) - - - -menu_select (36 samples, 0.12%) - - - -EPollSelectorImpl_constructor_e766728b6679c7c5e8eabbee0cfd0f70e475eb9e (3 samples, 0.01%) - - - -PosixJavaThreads_doStartThread_d86493a94746fb837887c6a0e52e99e18ac5be71 (4 samples, 0.01%) - - - -native_sched_clock (70 samples, 0.24%) - - - -DatagramChannelImpl_beginWrite_e0b047bda5d2ef03b38b2294da1d52e27566ee32 (103 samples, 0.35%) - - - -copy_user_generic_string (19 samples, 0.06%) - - - -csum_block_add_ext (4 samples, 0.01%) - - - -slab_free_freelist_hook.constprop.0 (12 samples, 0.04%) - - - -ktime_get (5 samples, 0.02%) - - - -ktime_get (12 samples, 0.04%) - - - -__schedule (7 samples, 0.02%) - - - -__GI___pthread_cond_wait (3 samples, 0.01%) - - - -__check_heap_object (22 samples, 0.08%) - - - -icmp_unreach (4 samples, 0.01%) - - - -security_socket_sendmsg (9 samples, 0.03%) - - - -__kmalloc_node_track_caller (6 samples, 0.02%) - - - -ip_rcv_core (15 samples, 0.05%) - - - -VertxHttpProcessor$preinitializeRouter1141331088_deploy_0_04f518fcb19517993a4ab43510a8b1bf5082b981 (5 samples, 0.02%) - - - -VertxCoreRecorder$VertxSupplier_get_ad6de8dda214b81feb5c157bb64f41c2109a30fb (5 samples, 0.02%) - - - -switch_mm_irqs_off (3 samples, 0.01%) - - - -schedule_idle (3 samples, 0.01%) - - - -acpi_idle_do_entry (67 samples, 0.23%) - - - -entry_SYSCALL_64_after_hwframe (43 samples, 0.15%) - - - -enqueue_entity (11 samples, 0.04%) - - - -security_xfrm_decode_session (14 samples, 0.05%) - - - -_raw_spin_lock_irqsave (21 samples, 0.07%) - - - -update_cfs_group (14 samples, 0.05%) - - - -ipv4_mtu (44 samples, 0.15%) - - - -enqueue_task_fair (12 samples, 0.04%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (7,580 samples, 25.93%) -DatagramChannelImpl_send_a43258374f29d362.. - - -select_task_rq_fair (4 samples, 0.01%) - - - -loopback_xmit (17 samples, 0.06%) - - - -bpf_lsm_socket_sendmsg (16 samples, 0.05%) - - - -_raw_spin_unlock_irqrestore (4 samples, 0.01%) - - - -VertxImpl_deployVerticle_b3ce74c752ac28ceba0a6a5f10e8c73f24f312fb (4 samples, 0.01%) - - - -plist_del (4 samples, 0.01%) - - - -__udp4_lib_lookup (35 samples, 0.12%) - - - -mark_wake_futex (5 samples, 0.02%) - - - -new_heap (3 samples, 0.01%) - - - -set_next_entity (9 samples, 0.03%) - - - -NioEventLoop_openSelector_807d094eb73208664264916255f5760d290089d2 (5 samples, 0.02%) - - - -dequeue_task_fair (11 samples, 0.04%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (11 samples, 0.04%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (8 samples, 0.03%) - - - -mark_wake_futex (3 samples, 0.01%) - - - -MultiThreadedMonitorSupport_slowPathMonitorExit_183871de385508d0f6b4f0881e8e0c44628018b3 (59 samples, 0.20%) - - - -psi_flags_change (3 samples, 0.01%) - - - -__x64_sys_sendto (1,039 samples, 3.55%) -__x.. - - -_raw_spin_lock_irqsave (15 samples, 0.05%) - - - -ip_options_build (3 samples, 0.01%) - - - -psi_group_change (10 samples, 0.03%) - - - -update_rq_clock (23 samples, 0.08%) - - - -nvkm_timer_alarm_trigger (4 samples, 0.01%) - - - -security_xfrm_decode_session (8 samples, 0.03%) - - - -udp_sendmsg (962 samples, 3.29%) -udp.. - - -hrtimer_interrupt (3 samples, 0.01%) - - - -__cond_resched (3 samples, 0.01%) - - - -psi_task_switch (5 samples, 0.02%) - - - -__switch_to_asm (7 samples, 0.02%) - - - -rcu_eqs_enter.constprop.0 (4 samples, 0.01%) - - - -__switch_to (7 samples, 0.02%) - - - -[unknown] (62 samples, 0.21%) - - - -select_task_rq_fair (44 samples, 0.15%) - - - -select_task_rq_fair (3 samples, 0.01%) - - - -sched_clock_cpu (3 samples, 0.01%) - - - -put_prev_task_idle (8 samples, 0.03%) - - - -csum_partial (28 samples, 0.10%) - - - -do_idle (1,035 samples, 3.54%) -do_.. - - -_raw_read_lock (3 samples, 0.01%) - - - -Inet4Address_isLinkLocalAddress_ce47843b990249e34a84313af9f6958152044ee1 (3 samples, 0.01%) - - - -ktime_get (23 samples, 0.08%) - - - -select_task_rq_fair (7 samples, 0.02%) - - - -rcu_dynticks_inc (5 samples, 0.02%) - - - -syscall_exit_to_user_mode (13 samples, 0.04%) - - - -_raw_spin_lock_irqsave (4 samples, 0.01%) - - - -__schedule (169 samples, 0.58%) - - - -tick_nohz_get_sleep_length (5 samples, 0.02%) - - - -__update_load_avg_se (32 samples, 0.11%) - - - -native_sched_clock (8 samples, 0.03%) - - - -skb_set_owner_w (29 samples, 0.10%) - - - -__common_interrupt (3 samples, 0.01%) - - - -__x64_sys_futex (29 samples, 0.10%) - - - -kmem_cache_free (9 samples, 0.03%) - - - -_raw_spin_lock_irqsave (21 samples, 0.07%) - - - -__raise_softirq_irqoff (14 samples, 0.05%) - - - -try_to_wake_up (3 samples, 0.01%) - - - -sched_clock_cpu (3 samples, 0.01%) - - - -sched_clock_cpu (18 samples, 0.06%) - - - -sched_ttwu_pending (82 samples, 0.28%) - - - -perf_event_update_userpage (3 samples, 0.01%) - - - -update_rq_clock (9 samples, 0.03%) - - - -schedule (68 samples, 0.23%) - - - -validate_xmit_skb (57 samples, 0.19%) - - - -rcu_idle_exit (8 samples, 0.03%) - - - -move_addr_to_kernel.part.0 (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (5 samples, 0.02%) - - - -futex_wait (3 samples, 0.01%) - - - -__calloc (3 samples, 0.01%) - - - -siphash_3u32 (9 samples, 0.03%) - - - -__rdgsbase_inactive (15 samples, 0.05%) - - - -skb_release_data (7 samples, 0.02%) - - - -ip_output (44 samples, 0.15%) - - - -dequeue_task_fair (9 samples, 0.03%) - - - -MultiThreadedMonitorSupport_slowPathMonitorEnter_5c2ec80c70301e1f54c9deef94b70b719d5a10f5 (39 samples, 0.13%) - - - -__softirqentry_text_start (4 samples, 0.01%) - - - -pick_next_task_fair (29 samples, 0.10%) - - - -native_sched_clock (6 samples, 0.02%) - - - -__alloc_skb (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (4 samples, 0.01%) - - - -JNIObjectHandles_getObject_3a8ad95345633a155810448c9f6c1b478270ddcf (6 samples, 0.02%) - - - -sched_clock_cpu (12 samples, 0.04%) - - - -__set_cpus_allowed_ptr_locked (10 samples, 0.03%) - - - -JavaThreads_ensureUnsafeParkEvent_77b8c19cff94e6325a0dc99352d8624db969530b (4 samples, 0.01%) - - - -common_interrupt (6 samples, 0.02%) - - - -psi_task_switch (7 samples, 0.02%) - - - -psi_group_change (9 samples, 0.03%) - - - -cpu_startup_entry (68 samples, 0.23%) - - - -_copy_from_iter (3 samples, 0.01%) - - - -inet_lookup_ifaddr_rcu (3 samples, 0.01%) - - - -rcu_read_unlock_strict (5 samples, 0.02%) - - - -can_stop_idle_tick (5 samples, 0.02%) - - - -timerqueue_iterate_next (3 samples, 0.01%) - - - -cpuidle_enter (1,456 samples, 4.98%) -cpuidl.. - - -icmp_rcv (4 samples, 0.01%) - - - -__x86_indirect_thunk_rax (10 samples, 0.03%) - - - -mark_wake_futex (3 samples, 0.01%) - - - -syscall_return_via_sysret (70 samples, 0.24%) - - - -eth_type_trans (5 samples, 0.02%) - - - -JNIGeneratedMethodSupport_unboxHandle_4bc785faa30981ed3ca002aef8d600c83e6f66e4 (9 samples, 0.03%) - - - -cpuidle_enter_state (11 samples, 0.04%) - - - -psi_task_change (50 samples, 0.17%) - - - -__x86_indirect_thunk_rax (4 samples, 0.01%) - - - -nr_iowait_cpu (9 samples, 0.03%) - - - -udp_send_skb (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (10 samples, 0.03%) - - - -dev_hard_start_xmit (29 samples, 0.10%) - - - -__get_user_nocheck_4 (293 samples, 1.00%) - - - -mark_wake_futex (31 samples, 0.11%) - - - -entry_SYSCALL_64_after_hwframe (8 samples, 0.03%) - - - -copy_user_generic_string (16 samples, 0.05%) - - - -irq_enter_rcu (16 samples, 0.05%) - - - -sysvec_apic_timer_interrupt (135 samples, 0.46%) - - - -sched_clock_cpu (8 samples, 0.03%) - - - -AbstractQueuedSynchronizer_unparkSuccessor_851859a085ed0112a4406e9c9b4d253092c06d1d (1,054 samples, 3.60%) -Abst.. - - -syscall_exit_to_user_mode (18 samples, 0.06%) - - - -finish_task_switch.isra.0 (5 samples, 0.02%) - - - -dst_release (5 samples, 0.02%) - - - -__x64_sys_futex (19 samples, 0.06%) - - - -__handle_irq_event_percpu (6 samples, 0.02%) - - - -__cgroup_bpf_run_filter_skb (3 samples, 0.01%) - - - -event_sched_in.part.0 (4 samples, 0.01%) - - - -dequeue_task_fair (15 samples, 0.05%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.02%) - - - -flush_smp_call_function_queue (3 samples, 0.01%) - - - -raw_spin_rq_lock_nested (14 samples, 0.05%) - - - -fib_table_lookup (235 samples, 0.80%) - - - -csum_partial_copy_generic (5 samples, 0.02%) - - - -pick_next_task_fair (22 samples, 0.08%) - - - -__list_add_valid (3 samples, 0.01%) - - - -fib_table_lookup (3 samples, 0.01%) - - - -kmem_cache_free (3 samples, 0.01%) - - - -ip_append_data (3 samples, 0.01%) - - - -set_next_entity (5 samples, 0.02%) - - - -__get_user_nocheck_4 (8 samples, 0.03%) - - - -VertxHttpProcessor$preinitializeRouter1141331088_deploy_3b2f5507ea83b0332da36f2bdf7801b77279fa8e (5 samples, 0.02%) - - - -reweight_entity (13 samples, 0.04%) - - - -get_next_timer_interrupt (13 samples, 0.04%) - - - -JavaThreads_ensureUnsafeParkEvent_77b8c19cff94e6325a0dc99352d8624db969530b (283 samples, 0.97%) - - - -acpi_processor_ffh_cstate_enter (4 samples, 0.01%) - - - -ip_route_output_key_hash_rcu (134 samples, 0.46%) - - - -__smp_call_single_queue (4 samples, 0.01%) - - - -udp_err (6 samples, 0.02%) - - - -select_task_rq_fair (4 samples, 0.01%) - - - -nr_iowait_cpu (3 samples, 0.01%) - - - -StackOverflowCheckImpl_makeYellowZoneAvailable_096a6b7f9daf5fe9be382b399b6cbe747c1658f9 (13 samples, 0.04%) - - - -kfree_skbmem (3 samples, 0.01%) - - - -slab_free_freelist_hook.constprop.0 (8 samples, 0.03%) - - - -rcu_dynticks_eqs_exit (3 samples, 0.01%) - - - -__GI___write (4 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (4 samples, 0.01%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (14 samples, 0.05%) - - - -__GI___munmap (5 samples, 0.02%) - - - -ThreadLocalHandles_popFramesIncluding_a2f2b35267b27849afd06acabb6c2e3bc3b22169 (8 samples, 0.03%) - - - -do_futex (3 samples, 0.01%) - - - -NioEventLoopGroup_constructor_71faef2cba720dff3a733ae1aacd91e752ffea5a (5 samples, 0.02%) - - - -dequeue_entity (18 samples, 0.06%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (11 samples, 0.04%) - - - -kfree_skb (4 samples, 0.01%) - - - -nf_hook_slow (36 samples, 0.12%) - - - -__update_load_avg_se (23 samples, 0.08%) - - - -kmem_cache_free (11 samples, 0.04%) - - - -xfs_file_buffered_write (3 samples, 0.01%) - - - -cpu_startup_entry (27 samples, 0.09%) - - - -hrtimer_next_event_without (7 samples, 0.02%) - - - -__skb_checksum_complete (3 samples, 0.01%) - - - -__calc_delta (30 samples, 0.10%) - - - -icmp_rcv (5 samples, 0.02%) - - - -nvkm_mc_intr (3 samples, 0.01%) - - - -flush_smp_call_function_from_idle (6 samples, 0.02%) - - - -__x64_sys_futex (3 samples, 0.01%) - - - -select_task_rq_fair (7 samples, 0.02%) - - - -__udp4_lib_err (4 samples, 0.01%) - - - -nf_hook_slow (14 samples, 0.05%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitorFromObject_922cf11599fedc7c0bfa829f3c2f09fcdebe2077 (14 samples, 0.05%) - - - -cpu_startup_entry (22 samples, 0.08%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (18 samples, 0.06%) - - - -native_write_msr (5 samples, 0.02%) - - - -start_thread (4 samples, 0.01%) - - - -irq_work_needs_cpu (4 samples, 0.01%) - - - -__icmp_send (4 samples, 0.01%) - - - -update_irq_load_avg (3 samples, 0.01%) - - - -hrtimer_next_event_without (7 samples, 0.02%) - - - -futex_wait (5 samples, 0.02%) - - - -tick_nohz_idle_enter (4 samples, 0.01%) - - - -net_rx_action (9 samples, 0.03%) - - - -MultithreadEventExecutorGroup_constructor_30993b7c05e555e173884314126cb8ebf8f0a765 (5 samples, 0.02%) - - - -__alloc_skb (12 samples, 0.04%) - - - -poll_idle (114 samples, 0.39%) - - - -ktime_get_update_offsets_now (62 samples, 0.21%) - - - -security_sk_classify_flow (9 samples, 0.03%) - - - -ip_protocol_deliver_rcu (574 samples, 1.96%) -i.. - - -__get_user_nocheck_4 (20 samples, 0.07%) - - - -rcu_needs_cpu (4 samples, 0.01%) - - - -avc_has_perm (5 samples, 0.02%) - - - -cpuidle_enter_state (27 samples, 0.09%) - - - -do_syscall_64 (6 samples, 0.02%) - - - -start_kernel (11 samples, 0.04%) - - - -sock_wfree (19 samples, 0.06%) - - - -__netif_receive_skb_one_core (610 samples, 2.09%) -_.. - - -rcu_eqs_exit.constprop.0 (5 samples, 0.02%) - - - -try_to_wake_up (3 samples, 0.01%) - - - -do_futex (12 samples, 0.04%) - - - -build_cr3 (4 samples, 0.01%) - - - -selinux_ip_postroute (60 samples, 0.21%) - - - -selinux_ip_postroute (7 samples, 0.02%) - - - -__sched_setaffinity (10 samples, 0.03%) - - - -sched_clock_cpu (11 samples, 0.04%) - - - -mark_wake_futex (3 samples, 0.01%) - - - -kfree (4 samples, 0.01%) - - - -rb_next (5 samples, 0.02%) - - - -ip_route_output_key_hash (44 samples, 0.15%) - - - -ip_append_data (26 samples, 0.09%) - - - -syscall_return_via_sysret (6 samples, 0.02%) - - - -__build_skb_around (13 samples, 0.04%) - - - -syscall_enter_from_user_mode (7 samples, 0.02%) - - - -tick_nohz_get_sleep_length (14 samples, 0.05%) - - - -__schedule (104 samples, 0.36%) - - - -ip_output (22 samples, 0.08%) - - - -select_task_rq_fair (3 samples, 0.01%) - - - -rcu_all_qs (5 samples, 0.02%) - - - -ip_send_check (9 samples, 0.03%) - - - -hash_futex (3 samples, 0.01%) - - - -__rdgsbase_inactive (6 samples, 0.02%) - - - -nvkm_pci_intr (3 samples, 0.01%) - - - -arena_get2.part.0 (3 samples, 0.01%) - - - -native_sched_clock (4 samples, 0.01%) - - - -ip_push_pending_frames (4 samples, 0.01%) - - - -ttwu_do_wakeup (4 samples, 0.01%) - - - -cpuidle_enter (2,368 samples, 8.10%) -cpuidle_enter - - -NioEventLoopGroup_constructor_194be6972b9ebc23f435c4e558bfcee11ed151b1 (5 samples, 0.02%) - - - -sock_def_write_space (10 samples, 0.03%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (19 samples, 0.06%) - - - -siphash_3u32 (75 samples, 0.26%) - - - -rb_insert_color (5 samples, 0.02%) - - - -cpuidle_enter (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (9 samples, 0.03%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (20 samples, 0.07%) - - - -enqueue_to_backlog (4 samples, 0.01%) - - - -enqueue_task_fair (14 samples, 0.05%) - - - -tick_nohz_idle_enter (11 samples, 0.04%) - - - -entry_SYSCALL_64_after_hwframe (7 samples, 0.02%) - - - -ip_generic_getfrag (32 samples, 0.11%) - - - -mark_wake_futex (6 samples, 0.02%) - - - -__kmalloc_node_track_caller (3 samples, 0.01%) - - - -StackOverflowCheckImpl_makeYellowZoneAvailable_096a6b7f9daf5fe9be382b399b6cbe747c1658f9 (8 samples, 0.03%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (172 samples, 0.59%) - - - -psi_group_change (43 samples, 0.15%) - - - -vfs_write (3 samples, 0.01%) - - - -__schedule (40 samples, 0.14%) - - - -ip_finish_output2 (4 samples, 0.01%) - - - -__sysvec_apic_timer_interrupt (95 samples, 0.32%) - - - -finish_task_switch.isra.0 (5 samples, 0.02%) - - - -select_task_rq_fair (5 samples, 0.02%) - - - -syscall_return_via_sysret (15 samples, 0.05%) - - - -kfree (39 samples, 0.13%) - - - -VertxHttpRecorder_initializeRouter_931d9cc504c3f3ebb7166418f3971225ab19f602 (5 samples, 0.02%) - - - -pm_qos_read_value (3 samples, 0.01%) - - - -dequeue_task (4 samples, 0.01%) - - - -sock_setsockopt (3 samples, 0.01%) - - - -update_sd_lb_stats.constprop.0 (4 samples, 0.01%) - - - -__x86_indirect_thunk_rax (12 samples, 0.04%) - - - -ip_route_output_key_hash (4 samples, 0.01%) - - - -selinux_ip_postroute_compat (10 samples, 0.03%) - - - -__x86_indirect_thunk_rax (5 samples, 0.02%) - - - -ip_push_pending_frames (12 samples, 0.04%) - - - -selinux_ip_postroute (12 samples, 0.04%) - - - -iterate_groups (11 samples, 0.04%) - - - -__schedule (3 samples, 0.01%) - - - -skb_free_head (6 samples, 0.02%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (7 samples, 0.02%) - - - -pick_next_task_fair (3 samples, 0.01%) - - - -__x86_indirect_thunk_rax (4 samples, 0.01%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (4 samples, 0.01%) - - - -dequeue_task (4 samples, 0.01%) - - - -__wrgsbase_inactive (6 samples, 0.02%) - - - -reweight_entity (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (11 samples, 0.04%) - - - -select_task_rq_fair (8 samples, 0.03%) - - - -exit_to_user_mode_prepare (5 samples, 0.02%) - - - -siphash_3u32 (4 samples, 0.01%) - - - -__x86_indirect_thunk_rax (3 samples, 0.01%) - - - -consume_skb (3 samples, 0.01%) - - - -ThreadLocalHandles_ensureCapacity_22e5abcd3c07151c01ffcc4e0e4a54317d42c2a8 (4 samples, 0.01%) - - - -exit_to_user_mode_prepare (8 samples, 0.03%) - - - -acpi_processor_ffh_cstate_enter (7 samples, 0.02%) - - - -tick_nohz_next_event (9 samples, 0.03%) - - - -available_idle_cpu (4 samples, 0.01%) - - - -__GI___pthread_cond_wait (2,166 samples, 7.41%) -__GI___pth.. - - -security_sk_classify_flow (7 samples, 0.02%) - - - -udp4_lib_lookup2 (4 samples, 0.01%) - - - -Unsafe_unpark_d7094c561c57e072c1b45b47117ccd4b31ac594f (1,003 samples, 3.43%) -Uns.. - - -kthread (7 samples, 0.02%) - - - -icmp_unreach (17 samples, 0.06%) - - - -pick_next_entity (15 samples, 0.05%) - - - -_raw_spin_lock (3 samples, 0.01%) - - - -do_syscall_64 (1,047 samples, 3.58%) -do_.. - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (17 samples, 0.06%) - - - -cpuidle_enter_state (124 samples, 0.42%) - - - -acpi_processor_ffh_cstate_enter (3 samples, 0.01%) - - - -StackOverflowCheckImpl_protectYellowZone_c940e860df16ce6529c43e09187ac7003f0ff4ce (6 samples, 0.02%) - - - -cpu_startup_entry (11 samples, 0.04%) - - - -select_task_rq_fair (9 samples, 0.03%) - - - -schedule_idle (8 samples, 0.03%) - - - -__x64_sys_epoll_pwait (3 samples, 0.01%) - - - -__update_load_avg_cfs_rq (3 samples, 0.01%) - - - -poll_idle (3 samples, 0.01%) - - - -ktime_get_update_offsets_now (49 samples, 0.17%) - - - -__schedule (3 samples, 0.01%) - - - -__schedule (58 samples, 0.20%) - - - -xfrm_lookup (11 samples, 0.04%) - - - -save_fpregs_to_fpstate (34 samples, 0.12%) - - - -__GI___pthread_disable_asynccancel (5 samples, 0.02%) - - - -__get_user_nocheck_4 (11 samples, 0.04%) - - - -mark_wake_futex (7 samples, 0.02%) - - - -acpi_idle_enter (1,470 samples, 5.03%) -acpi_i.. - - -__x86_indirect_thunk_rax (9 samples, 0.03%) - - - -try_to_wake_up (25 samples, 0.09%) - - - -sock_sendmsg (3 samples, 0.01%) - - - -icmp_unreach (5 samples, 0.02%) - - - -__ip_options_echo (11 samples, 0.04%) - - - -ip_send_skb (834 samples, 2.85%) -ip.. - - -__icmp_send (3 samples, 0.01%) - - - -native_sched_clock (6 samples, 0.02%) - - - -psi_group_change (9 samples, 0.03%) - - - -kworker/dying (7,085 samples, 24.23%) -kworker/dying - - -__GI___mprotect (3 samples, 0.01%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (7,545 samples, 25.81%) -DatagramChannelImpl_sendFromNativeBuffer_.. - - -__libc_sendto (8 samples, 0.03%) - - - -psi_task_change (8 samples, 0.03%) - - - -visit_groups_merge.constprop.0.isra.0 (9 samples, 0.03%) - - - -flush_smp_call_function_queue (76 samples, 0.26%) - - - -VertxHttpRecorder_startServer_c11f0a68def0b12024624749d87e838bcfaba8d2 (4 samples, 0.01%) - - - -smp_call_function_single (14 samples, 0.05%) - - - -fib_table_lookup (14 samples, 0.05%) - - - -sched_clock_cpu (4 samples, 0.01%) - - - -VertxBuilder_vertx_96fbf1a3cb1f742947b0ca876c6065e325fb888f (5 samples, 0.02%) - - - -__softirqentry_text_start (703 samples, 2.40%) -__.. - - -psi_task_switch (30 samples, 0.10%) - - - -psi_task_change (4 samples, 0.01%) - - - -syscall_return_via_sysret (108 samples, 0.37%) - - - -_perf_ioctl (17 samples, 0.06%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (5 samples, 0.02%) - - - -nf_hook_slow (12 samples, 0.04%) - - - -__x64_sys_munmap (4 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.02%) - - - -acpi_idle_do_entry (11 samples, 0.04%) - - - -native_sched_clock (6 samples, 0.02%) - - - -handle_irq_event (6 samples, 0.02%) - - - -__hrtimer_run_queues (27 samples, 0.09%) - - - -reweight_entity (45 samples, 0.15%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (7,484 samples, 25.60%) -DatagramChannelImpl_send0_d05a7d3bffd13f.. - - -perf (324 samples, 1.11%) - - - -xfsaild (3 samples, 0.01%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (92 samples, 0.31%) - - - -nf_hook_slow (9 samples, 0.03%) - - - -sched_clock_cpu (3 samples, 0.01%) - - - -enqueue_entity (171 samples, 0.58%) - - - -_raw_spin_lock_irqsave (8 samples, 0.03%) - - - -__entry_text_start (141 samples, 0.48%) - - - -ip_protocol_deliver_rcu (10 samples, 0.03%) - - - -plist_add (7 samples, 0.02%) - - - -read_tsc (17 samples, 0.06%) - - - -psi_group_change (12 samples, 0.04%) - - - -hrtimer_interrupt (3 samples, 0.01%) - - - -VertxCoreRecorder$VertxSupplier_get_9cc8afdf967b204fbc01652d0c347eb980314ecb (5 samples, 0.02%) - - - -__dev_queue_xmit (5 samples, 0.02%) - - - -kfree (8 samples, 0.03%) - - - -enqueue_task_fair (5 samples, 0.02%) - - - -__blk_mq_run_hw_queue (3 samples, 0.01%) - - - -ip_finish_output2 (51 samples, 0.17%) - - - -security_socket_sendmsg (12 samples, 0.04%) - - - -do_syscall_64 (96 samples, 0.33%) - - - -poll_idle (429 samples, 1.47%) - - - -acpi_idle_enter (67 samples, 0.23%) - - - -nvkm_timer_alarm_trigger (3 samples, 0.01%) - - - -VertxHttpRecorder_doServerStart_5a2b82f625f728fe2208f2246f8f2a6468c96864 (4 samples, 0.01%) - - - -decode_session4 (3 samples, 0.01%) - - - -JNIObjectHandles_getObject_3a8ad95345633a155810448c9f6c1b478270ddcf (9 samples, 0.03%) - - - -native_sched_clock (5 samples, 0.02%) - - - -syscall_exit_to_user_mode (10 samples, 0.03%) - - - -__calc_delta (4 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (4 samples, 0.01%) - - - -Transport_eventLoopGroup_5e4430940b5fba54d415e1d3ec4ee2566b75c5f9 (5 samples, 0.02%) - - - -irq_enter_rcu (23 samples, 0.08%) - - - -__rdgsbase_inactive (3 samples, 0.01%) - - - -psi_task_change (4 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (18 samples, 0.06%) - - - -hash_futex (12 samples, 0.04%) - - - -VertxCoreRecorder_initialize_48e4f58a461abde1ae74d26423a5a8ada77d2a60 (5 samples, 0.02%) - - - -_raw_spin_lock_irqsave (5 samples, 0.02%) - - - -JavaThreads_startThread_4a48623aeb6d5a9f3cf7f8dabdba7ffbb99828ba (4 samples, 0.01%) - - - -ttwu_queue_wakelist (17 samples, 0.06%) - - - -mark_wake_futex (10 samples, 0.03%) - - - -process_backlog (6 samples, 0.02%) - - - -select_task_rq_fair (6 samples, 0.02%) - - - -kmem_cache_free (3 samples, 0.01%) - - - -ip_finish_output (3 samples, 0.01%) - - - -icmp_rcv (17 samples, 0.06%) - - - -ip_setup_cork (4 samples, 0.01%) - - - -native_sched_clock (3 samples, 0.01%) - - - -tick_sched_timer (9 samples, 0.03%) - - - -sysvec_apic_timer_interrupt (260 samples, 0.89%) - - - -icmp_glue_bits (9 samples, 0.03%) - - - -__libc_sendto (8 samples, 0.03%) - - - -raw_spin_rq_lock_nested (5 samples, 0.02%) - - - -ip_route_output_key_hash (8 samples, 0.03%) - - - -JNIGeneratedMethodSupport_getFieldOffsetFromId_5041c78d77a7b3d62103393b72fc35d80d2cc709 (4 samples, 0.01%) - - - -__dev_queue_xmit (89 samples, 0.30%) - - - -ThreadPoolExecutor$Worker_run_f861978740f7fe309db28b47935f0d22284f1441 (12,437 samples, 42.54%) -ThreadPoolExecutor$Worker_run_f861978740f7fe309db28b47935f0d22284f1441 - - -reweight_entity (28 samples, 0.10%) - - - -rwsem_down_write_slowpath (4 samples, 0.01%) - - - -skb_free_head (5 samples, 0.02%) - - - -__ip_append_data (67 samples, 0.23%) - - - -ttwu_do_activate (5 samples, 0.02%) - - - -acpi_idle_enter (11 samples, 0.04%) - - - -acpi_processor_ffh_cstate_enter (5 samples, 0.02%) - - - -nvkm_timer_alarm_trigger (3 samples, 0.01%) - - - -sock_sendmsg (977 samples, 3.34%) -soc.. - - -consume_skb (16 samples, 0.05%) - - - -enqueue_task (5 samples, 0.02%) - - - -fib_table_lookup (7 samples, 0.02%) - - - -enqueue_to_backlog (3 samples, 0.01%) - - - -cpuidle_not_available (3 samples, 0.01%) - - - -tick_irq_enter (22 samples, 0.08%) - - - -handle_edge_irq (3 samples, 0.01%) - - - -hash_futex (3 samples, 0.01%) - - - -__schedule (51 samples, 0.17%) - - - -enqueue_to_backlog (60 samples, 0.21%) - - - -__libc_sendto (5 samples, 0.02%) - - - -__get_user_nocheck_4 (8 samples, 0.03%) - - - -__x86_indirect_thunk_rax (96 samples, 0.33%) - - - -hrtimer_next_event_without (6 samples, 0.02%) - - - -try_to_wake_up (14 samples, 0.05%) - - - -_raw_spin_lock_irqsave (28 samples, 0.10%) - - - -acpi_processor_ffh_cstate_enter (162 samples, 0.55%) - - - -__wrgsbase_inactive (12 samples, 0.04%) - - - -acpi_idle_enter (4 samples, 0.01%) - - - -__dev_queue_xmit (9 samples, 0.03%) - - - -copy_user_generic_string (7 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (132 samples, 0.45%) - - - -ThreadLocalHandles_ensureCapacity_22e5abcd3c07151c01ffcc4e0e4a54317d42c2a8 (34 samples, 0.12%) - - - -raw_local_deliver (13 samples, 0.04%) - - - -ip_skb_dst_mtu (35 samples, 0.12%) - - - -get_futex_key (4 samples, 0.01%) - - - -icmp_route_lookup.constprop.0 (66 samples, 0.23%) - - - -udp4_lib_lookup2 (18 samples, 0.06%) - - - -futex_wait (3 samples, 0.01%) - - - -perf_event_idx_default (5 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (22 samples, 0.08%) - - - -__netif_receive_skb_core.constprop.0 (3 samples, 0.01%) - - - -sched_clock_cpu (77 samples, 0.26%) - - - -__switch_to_asm (3 samples, 0.01%) - - - -mark_wake_futex (12 samples, 0.04%) - - - -Buffer_position_542e9d12d78d28ae335243c3729c7f4a18caa5f2 (8 samples, 0.03%) - - - -pick_next_task_fair (16 samples, 0.05%) - - - -getInetAddress_addr (12 samples, 0.04%) - - - -__local_bh_enable_ip (714 samples, 2.44%) -__.. - - -__x86_indirect_thunk_rax (7 samples, 0.02%) - - - -icmpv4_xrlim_allow (20 samples, 0.07%) - - - -__sysvec_apic_timer_interrupt (92 samples, 0.31%) - - - -iterate_groups (4 samples, 0.01%) - - - -HeapChunkProvider_produceAlignedChunk_151eeb69b2ff04e5a10d422de20e777d95b68672 (8 samples, 0.03%) - - - -update_rq_clock (11 samples, 0.04%) - - - -select_task_rq_fair (4 samples, 0.01%) - - - -__x86_indirect_thunk_rax (8 samples, 0.03%) - - - -update_load_avg (4 samples, 0.01%) - - - -psi_group_change (42 samples, 0.14%) - - - -MultithreadEventExecutorGroup_constructor_23099da2a05a0695e33fca7210ac631de273f329 (5 samples, 0.02%) - - - -__udp4_lib_lookup (4 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (49 samples, 0.17%) - - - -entry_SYSCALL_64_after_hwframe (10 samples, 0.03%) - - - -__futex_abstimed_wait_common (5 samples, 0.02%) - - - -CEntryPointSnippets_attachThread_299a3505abe96864afd07f8f20f652a19cd12ea9 (6 samples, 0.02%) - - - -timerqueue_del (7 samples, 0.02%) - - - -sched_ttwu_pending (7 samples, 0.02%) - - - -queue_core_balance (7 samples, 0.02%) - - - -__ip_make_skb (168 samples, 0.57%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (13 samples, 0.04%) - - - -selinux_xfrm_decode_session (5 samples, 0.02%) - - - -do_syscall_64 (19 samples, 0.06%) - - - -__netif_receive_skb_core.constprop.0 (27 samples, 0.09%) - - - -__x86_indirect_thunk_rax (20 samples, 0.07%) - - - -update_load_avg (27 samples, 0.09%) - - - -dev_queue_xmit (11 samples, 0.04%) - - - -__x64_sys_futex (17 samples, 0.06%) - - - -tick_nohz_get_sleep_length (17 samples, 0.06%) - - - -menu_reflect (3 samples, 0.01%) - - - -__x64_sys_sendto (3 samples, 0.01%) - - - -mark_wake_futex (32 samples, 0.11%) - - - -__rdgsbase_inactive (6 samples, 0.02%) - - - -slab_free_freelist_hook.constprop.0 (12 samples, 0.04%) - - - -__schedule (68 samples, 0.23%) - - - -__update_load_avg_cfs_rq (70 samples, 0.24%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (33 samples, 0.11%) - - - -__alloc_skb (3 samples, 0.01%) - - - -tick_nohz_idle_enter (20 samples, 0.07%) - - - -net_rx_action (42 samples, 0.14%) - - - -native_sched_clock (8 samples, 0.03%) - - - -sched_idle_set_state (3 samples, 0.01%) - - - -syscall_return_via_sysret (3 samples, 0.01%) - - - -newidle_balance (12 samples, 0.04%) - - - -__ip_local_out (15 samples, 0.05%) - - - -enqueue_task_fair (10 samples, 0.03%) - - - -syscall_enter_from_user_mode (13 samples, 0.04%) - - - -String_substring_4989a637ecbe1eecc1c126665598175df66fa98b (8 samples, 0.03%) - - - -IsolateEnterStub_JNIFunctions_ExceptionCheck_c3880ec5388acdaaf0a33f93c718f75d394cf800_56464c7018196a101b3a4a0b8a60eff8ca309807 (103 samples, 0.35%) - - - -cpu_startup_entry (1,723 samples, 5.89%) -cpu_sta.. - - -__x86_indirect_thunk_rax (4 samples, 0.01%) - - - -update_rq_clock (148 samples, 0.51%) - - - -CEntryPointSnippets_attachUnattachedThread_624b0c1d4e08bdf4608c1290142e118ef51d6192 (3 samples, 0.01%) - - - -syscall_return_via_sysret (6 samples, 0.02%) - - - -send_call_function_single_ipi (4 samples, 0.01%) - - - -pick_next_task_fair (9 samples, 0.03%) - - - -__build_skb_around (8 samples, 0.03%) - - - -__x86_indirect_thunk_rax (3 samples, 0.01%) - - - -sched_clock_cpu (29 samples, 0.10%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (17 samples, 0.06%) - - - -do_syscall_64 (17 samples, 0.06%) - - - -icmp_glue_bits (29 samples, 0.10%) - - - -tick_nohz_get_sleep_length (5 samples, 0.02%) - - - -native_sched_clock (14 samples, 0.05%) - - - -do_csum (3 samples, 0.01%) - - - -select_task_rq_fair (4 samples, 0.01%) - - - -__update_load_avg_cfs_rq (22 samples, 0.08%) - - - -__skb_checksum (29 samples, 0.10%) - - - -selinux_ip_postroute_compat (68 samples, 0.23%) - - - -__local_bh_enable_ip (4 samples, 0.01%) - - - -rb_erase (4 samples, 0.01%) - - - -handle_edge_irq (7 samples, 0.02%) - - - -iterate_groups (10 samples, 0.03%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (47 samples, 0.16%) - - - -JNIObjectHandles_pushLocalFrame_72b60bb5d6b4f261f0f202d949a56da9c54ff0c0 (33 samples, 0.11%) - - - -acpi_processor_ffh_cstate_enter (5 samples, 0.02%) - - - -find_exception (8 samples, 0.03%) - - - -NioEventLoopGroup_newChild_18cd34fd0de866436bd03197e567ec292a38961b (5 samples, 0.02%) - - - -net_rx_action (655 samples, 2.24%) -n.. - - -tick_nohz_idle_retain_tick (3 samples, 0.01%) - - - -__ip_finish_output (47 samples, 0.16%) - - - -tick_sched_timer (3 samples, 0.01%) - - - -do_futex (3 samples, 0.01%) - - - -_raw_spin_lock (8 samples, 0.03%) - - - -__softirqentry_text_start (4 samples, 0.01%) - - - -udp_rcv (16 samples, 0.05%) - - - -SingleThreadEventExecutor_doStartThread_f74c626e81f588e0747a3e04c8bdb98bee0cbdb6 (4 samples, 0.01%) - - - -csum_partial_copy_generic (8 samples, 0.03%) - - - -__inet_dev_addr_type (19 samples, 0.06%) - - - -udp_sendmsg (5 samples, 0.02%) - - - -acpi_idle_do_entry (858 samples, 2.93%) -ac.. - - -mark_wake_futex (7 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (4 samples, 0.01%) - - - -fib_table_lookup (3 samples, 0.01%) - - - -kfree (5 samples, 0.02%) - - - -is_cpu_allowed (3 samples, 0.01%) - - - -ip_generic_getfrag (47 samples, 0.16%) - - - -debugging-nativ (37 samples, 0.13%) - - - -__ip_finish_output (4 samples, 0.01%) - - - -rcu_dynticks_inc (5 samples, 0.02%) - - - -hash_futex (12 samples, 0.04%) - - - -acpi_idle_do_entry (3 samples, 0.01%) - - - -asm_sysvec_apic_timer_interrupt (4 samples, 0.01%) - - - -ip_options_build (10 samples, 0.03%) - - - -do_syscall_64 (25 samples, 0.09%) - - - -select_task_rq_fair (42 samples, 0.14%) - - - -ttwu_queue_wakelist (7 samples, 0.02%) - - - -process_backlog (7 samples, 0.02%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (19 samples, 0.06%) - - - -put_prev_task_idle (3 samples, 0.01%) - - - -dequeue_entity (4 samples, 0.01%) - - - -__skb_checksum_complete (3 samples, 0.01%) - - - -tick_irq_enter (39 samples, 0.13%) - - - -JNIGeneratedMethodSupport_unboxHandle_4bc785faa30981ed3ca002aef8d600c83e6f66e4 (7 samples, 0.02%) - - - -cpuidle_enter (1,010 samples, 3.45%) -cpu.. - - -__x86_indirect_thunk_rax (14 samples, 0.05%) - - - -udp4_lib_lookup2 (6 samples, 0.02%) - - - -event_function_call (15 samples, 0.05%) - - - -can_stop_idle_tick (5 samples, 0.02%) - - - -should_failslab (9 samples, 0.03%) - - - -update_curr (14 samples, 0.05%) - - - -SingleThreadEventExecutor_execute_ae2480551d18263655f927040d2e4463ae8e5bf2 (4 samples, 0.01%) - - - -icmp_unreach (6 samples, 0.02%) - - - -futex_wait_queue_me (3 samples, 0.01%) - - - -JNIObjectHandles_getObject_3a8ad95345633a155810448c9f6c1b478270ddcf (5 samples, 0.02%) - - - -validate_xmit_xfrm (29 samples, 0.10%) - - - -rcu_idle_exit (5 samples, 0.02%) - - - -check_preempt_curr (3 samples, 0.01%) - - - -ParkEvent_initializeOnce_68f5df089169fde77d25ea87d820b2e9cca25332 (3 samples, 0.01%) - - - -__x86_indirect_thunk_rax (14 samples, 0.05%) - - - -do_epoll_wait (3 samples, 0.01%) - - - -netif_rx (13 samples, 0.04%) - - - -enqueue_hrtimer (3 samples, 0.01%) - - - -menu_select (4 samples, 0.01%) - - - -__ip_make_skb (37 samples, 0.13%) - - - -udp_err (4 samples, 0.01%) - - - -sched_clock_cpu (24 samples, 0.08%) - - - -hrtimer_interrupt (79 samples, 0.27%) - - - -kfence_ksize (16 samples, 0.05%) - - - -slab_free_freelist_hook.constprop.0 (3 samples, 0.01%) - - - -sched_clock_cpu (4 samples, 0.01%) - - - -tick_do_update_jiffies64 (3 samples, 0.01%) - - - -irqtime_account_irq (20 samples, 0.07%) - - - -fib_lookup_good_nhc (27 samples, 0.09%) - - - -ip_skb_dst_mtu (3 samples, 0.01%) - - - -ip_output (14 samples, 0.05%) - - - -cpuidle_enter (5 samples, 0.02%) - - - -acpi_idle_enter (943 samples, 3.23%) -acp.. - - -VMError_guarantee_18caf46ef6d672f2c7aab3ad271ff5117b823ec1 (6 samples, 0.02%) - - - -schedule_idle (179 samples, 0.61%) - - - -futex_wait_queue_me (14 samples, 0.05%) - - - -fdval (5 samples, 0.02%) - - - -ThreadLocalAllocation_slowPathNewArrayWithoutAllocating_8145f66af737ef111395a70e26cdbc5d55538ef0 (8 samples, 0.03%) - - - -JNIObjectHandles_getObject_3a8ad95345633a155810448c9f6c1b478270ddcf (7 samples, 0.02%) - - - -ip_route_output_flow (27 samples, 0.09%) - - - -syscall_exit_to_user_mode (3 samples, 0.01%) - - - -sched_clock (4 samples, 0.01%) - - - -icmp_glue_bits (4 samples, 0.01%) - - - -acpi_idle_enter (871 samples, 2.98%) -ac.. - - -sched_ttwu_pending (28 samples, 0.10%) - - - -dequeue_task (6 samples, 0.02%) - - - -__alloc_skb (42 samples, 0.14%) - - - -netif_rx (13 samples, 0.04%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (6 samples, 0.02%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (45 samples, 0.15%) - - - -ApplicationImpl_doStart_e1afde9430e67b7c57499ed67ff5f64600d056ec (11 samples, 0.04%) - - - -ThreadPoolExecutor_runWorker_d6102a49f44caa9353f47edf6df17054308b7151 (12,437 samples, 42.54%) -ThreadPoolExecutor_runWorker_d6102a49f44caa9353f47edf6df17054308b7151 - - -clear_buddies (4 samples, 0.01%) - - - -ttwu_do_activate (3 samples, 0.01%) - - - -__GI___pthread_disable_asynccancel (17 samples, 0.06%) - - - -tick_nohz_next_event (5 samples, 0.02%) - - - -sysvec_apic_timer_interrupt (3 samples, 0.01%) - - - -enqueue_task (16 samples, 0.05%) - - - -mark_wake_futex (4 samples, 0.01%) - - - -psi_task_switch (54 samples, 0.18%) - - - -ThreadLocalHandles_ensureCapacity_22e5abcd3c07151c01ffcc4e0e4a54317d42c2a8 (4 samples, 0.01%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (3 samples, 0.01%) - - - -ktime_get (6 samples, 0.02%) - - - -__x64_sys_futex (93 samples, 0.32%) - - - -tick_nohz_idle_enter (5 samples, 0.02%) - - - -net_rx_action (3 samples, 0.01%) - - - -selinux_socket_sendmsg (4 samples, 0.01%) - - - -ip_rcv (9 samples, 0.03%) - - - -syscall_return_via_sysret (13 samples, 0.04%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitor_2ecf5995a7a109dacede518d33424ec5ebddfde6 (23 samples, 0.08%) - - - -rb_next (3 samples, 0.01%) - - - -cpu_startup_entry (8 samples, 0.03%) - - - -read_tsc (28 samples, 0.10%) - - - -rcu_note_context_switch (4 samples, 0.01%) - - - -fib_table_lookup (4 samples, 0.01%) - - - -do_csum (5 samples, 0.02%) - - - -selinux_ip_postroute_compat (11 samples, 0.04%) - - - -do_syscall_64 (4 samples, 0.01%) - - - -NET_InetAddressToSockaddr (421 samples, 1.44%) - - - -skb_release_head_state (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (23 samples, 0.08%) - - - -kfree (5 samples, 0.02%) - - - -put_prev_entity (3 samples, 0.01%) - - - -update_load_avg (6 samples, 0.02%) - - - -native_sched_clock (5 samples, 0.02%) - - - -ip_route_output_key_hash_rcu (56 samples, 0.19%) - - - -_raw_spin_unlock_irqrestore (6 samples, 0.02%) - - - -__ip_append_data (6 samples, 0.02%) - - - -ip_local_deliver (4 samples, 0.01%) - - - -__x86_indirect_thunk_rax (162 samples, 0.55%) - - - -irq_work_needs_cpu (7 samples, 0.02%) - - - -futex_wait_setup (5 samples, 0.02%) - - - -mark_wake_futex (4 samples, 0.01%) - - - -ksys_write (3 samples, 0.01%) - - - -syscall_enter_from_user_mode (20 samples, 0.07%) - - - -irqtime_account_irq (24 samples, 0.08%) - - - -poll_idle (513 samples, 1.75%) - - - -llist_add_batch (5 samples, 0.02%) - - - -rcu_read_unlock_strict (3 samples, 0.01%) - - - -make (4 samples, 0.01%) - - - -reweight_entity (107 samples, 0.37%) - - - -copy_user_generic_string (3 samples, 0.01%) - - - -__udp4_lib_lookup (5 samples, 0.02%) - - - -select_task_rq_fair (4 samples, 0.01%) - - - -__x86_indirect_thunk_rax (4 samples, 0.01%) - - - -dequeue_entity (26 samples, 0.09%) - - - -__wrgsbase_inactive (20 samples, 0.07%) - - - -rcu_read_unlock_strict (12 samples, 0.04%) - - - -psi_group_change (4 samples, 0.01%) - - - -exit_to_user_mode_prepare (7 samples, 0.02%) - - - -tick_nohz_idle_exit (3 samples, 0.01%) - - - -slab_free_freelist_hook.constprop.0 (13 samples, 0.04%) - - - -set_next_entity (22 samples, 0.08%) - - - -__update_load_avg_se (4 samples, 0.01%) - - - -mark_wake_futex (5 samples, 0.02%) - - - -cpuidle_enter_state (2,328 samples, 7.96%) -cpuidle_ent.. - - -schedule (9 samples, 0.03%) - - - -__switch_to (57 samples, 0.19%) - - - -syscall_exit_to_user_mode (3 samples, 0.01%) - - - -asm_sysvec_apic_timer_interrupt (125 samples, 0.43%) - - - -import_single_range (3 samples, 0.01%) - - - -hrtimer_interrupt (87 samples, 0.30%) - - - -__x64_sys_futex (4 samples, 0.01%) - - - -__x64_sys_sendto (10 samples, 0.03%) - - - -swapper (1,428 samples, 4.88%) -swapper - - -flush_smp_call_function_queue (5 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (4 samples, 0.01%) - - - -update_rq_clock (74 samples, 0.25%) - - - -security_perf_event_write (8 samples, 0.03%) - - - -ip_make_skb (104 samples, 0.36%) - - - -__GI___pthread_mutex_unlock_usercnt (420 samples, 1.44%) - - - -read_tsc (9 samples, 0.03%) - - - -thread (16,358 samples, 55.95%) -thread - - -poll_idle (257 samples, 0.88%) - - - -icmp_rcv (8 samples, 0.03%) - - - -ecutor-thread (5 samples, 0.02%) - - - -__hrtimer_next_event_base (11 samples, 0.04%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (29 samples, 0.10%) - - - -__switch_to_asm (3 samples, 0.01%) - - - -iterate_groups (4 samples, 0.01%) - - - -ttwu_do_wakeup (9 samples, 0.03%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (12,437 samples, 42.54%) -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55.. - - -icmp_rcv (84 samples, 0.29%) - - - -try_to_wake_up (3 samples, 0.01%) - - - -psi_task_switch (29 samples, 0.10%) - - - -remote_function (14 samples, 0.05%) - - - -update_curr (7 samples, 0.02%) - - - -JavaThreads_park_9cfef0c461baa0314aafe1415754561e32f1e386 (2,694 samples, 9.21%) -JavaThreads_p.. - - -kmem_cache_free (5 samples, 0.02%) - - - -bpf_lsm_sk_getsecid (8 samples, 0.03%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (45 samples, 0.15%) - - - -__x86_indirect_thunk_rax (3 samples, 0.01%) - - - -native_sched_clock (59 samples, 0.20%) - - - -menu_select (35 samples, 0.12%) - - - -__x86_indirect_thunk_rax (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (5 samples, 0.02%) - - - -select_task_rq_fair (4 samples, 0.01%) - - - -do_futex (10 samples, 0.03%) - - - -plist_del (3 samples, 0.01%) - - - -ksize (37 samples, 0.13%) - - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (1,601 samples, 5.48%) -Reentra.. - - -__entry_text_start (68 samples, 0.23%) - - - -pick_next_task_fair (12 samples, 0.04%) - - - -__ip_append_data (3 samples, 0.01%) - - - -futex_wait (38 samples, 0.13%) - - - -Thread_start_d043f016dd75eb113f895de55f2e129bad1ee51a (4 samples, 0.01%) - - - -tick_nohz_idle_retain_tick (3 samples, 0.01%) - - - -update_load_avg (7 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (3 samples, 0.01%) - - - -__udp4_lib_err (3 samples, 0.01%) - - - -__sys_sendto (4 samples, 0.01%) - - - -__udp4_lib_rcv (82 samples, 0.28%) - - - -iterate_groups (4 samples, 0.01%) - - - -sched_clock_cpu (4 samples, 0.01%) - - - -skb_release_data (16 samples, 0.05%) - - - -mark_wake_futex (11 samples, 0.04%) - - - -xfrm_lookup_route (10 samples, 0.03%) - - - -sock_alloc_send_pskb (13 samples, 0.04%) - - - -_copy_from_iter (38 samples, 0.13%) - - - -pick_next_task_fair (11 samples, 0.04%) - - - -MultiThreadedMonitorSupport_monitorEnter_a853e48d8499fe94e7e0723447fc9d2060965e91 (20 samples, 0.07%) - - - -__x86_indirect_thunk_rax (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (620 samples, 2.12%) -a.. - - -__switch_to_asm (51 samples, 0.17%) - - - -tick_nohz_get_sleep_length (14 samples, 0.05%) - - - -tick_nohz_idle_exit (9 samples, 0.03%) - - - -selinux_socket_sendmsg (3 samples, 0.01%) - - - -__x86_indirect_thunk_rax (15 samples, 0.05%) - - - -process_one_work (3 samples, 0.01%) - - - -consume_skb (5 samples, 0.02%) - - - -security_skb_classify_flow (8 samples, 0.03%) - - - -sock_wfree (5 samples, 0.02%) - - - -ip_send_skb (5 samples, 0.02%) - - - -dev_queue_xmit (3 samples, 0.01%) - - - -schedule (19 samples, 0.06%) - - - -ip_route_output_key_hash (61 samples, 0.21%) - - - -selinux_xfrm_skb_sid_ingress (6 samples, 0.02%) - - - -MultiThreadedMonitorSupport_maybeAdjustNewParkStatus_7f6c07fb0d959156fc8d4805a5a893a4708324d5 (8 samples, 0.03%) - - - -sock_alloc_send_pskb (45 samples, 0.15%) - - - -__clone3 (18 samples, 0.06%) - - - -do_csum (9 samples, 0.03%) - - - -__netif_receive_skb_core.constprop.0 (16 samples, 0.05%) - - - -do_idle (35 samples, 0.12%) - - - -__cgroup_bpf_run_filter_skb (58 samples, 0.20%) - - - -udp_send_skb (4 samples, 0.01%) - - - -__local_bh_enable_ip (3 samples, 0.01%) - - - -update_rq_clock (3 samples, 0.01%) - - - -irqtime_account_irq (3 samples, 0.01%) - - - -udp_err (4 samples, 0.01%) - - - -native_write_msr (4 samples, 0.01%) - - - -ip_rcv_finish_core.constprop.0 (24 samples, 0.08%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (109 samples, 0.37%) - - - -nf_hook_slow (18 samples, 0.06%) - - - -AbstractQueuedSynchronizer_parkAndCheckInterrupt_5f77ccdb5d848784815a610576e6a7d474e2c6b6 (2,824 samples, 9.66%) -AbstractQueued.. - - -acpi_processor_ffh_cstate_enter (16 samples, 0.05%) - - - -process_backlog (10 samples, 0.03%) - - - -validate_xmit_skb (3 samples, 0.01%) - - - -try_to_wake_up (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (143 samples, 0.49%) - - - -kfree (18 samples, 0.06%) - - - -update_rq_clock (5 samples, 0.02%) - - - -ttwu_do_wakeup (14 samples, 0.05%) - - - -udp_send_skb (841 samples, 2.88%) -ud.. - - -__libc_sendto (6,628 samples, 22.67%) -__libc_sendto - - -JNIGeneratedMethodSupport_unboxHandle_4bc785faa30981ed3ca002aef8d600c83e6f66e4 (12 samples, 0.04%) - - - -reweight_entity (3 samples, 0.01%) - - - -select_task_rq_fair (3 samples, 0.01%) - - - -native_sched_clock (10 samples, 0.03%) - - - -__list_add_valid (5 samples, 0.02%) - - - -select_task_rq_fair (33 samples, 0.11%) - - - -native_sched_clock (5 samples, 0.02%) - - - -netif_rx_internal (7 samples, 0.02%) - - - -__alloc_skb (3 samples, 0.01%) - - - -acpi_idle_enter (27 samples, 0.09%) - - - -__sysvec_apic_timer_interrupt (3 samples, 0.01%) - - - -psi_group_change (123 samples, 0.42%) - - - -__get_user_nocheck_4 (10 samples, 0.03%) - - - -__udp4_lib_lookup (6 samples, 0.02%) - - - -rb_next (7 samples, 0.02%) - - - -__udp4_lib_lookup (8 samples, 0.03%) - - - -_raw_spin_lock_irqsave (6 samples, 0.02%) - - - -mark_wake_futex (12 samples, 0.04%) - - - -iomap_file_buffered_write (3 samples, 0.01%) - - - -raw_spin_rq_unlock (3 samples, 0.01%) - - - -cpuidle_enter (11 samples, 0.04%) - - - -tick_sched_handle (4 samples, 0.01%) - - - -FutureTask_run_8b0bdf0834cb555c1e2aa8896a714d79bab78517 (12,435 samples, 42.53%) -FutureTask_run_8b0bdf0834cb555c1e2aa8896a714d79bab78517 - - -wake_up_q (56 samples, 0.19%) - - - -VMThreads_findIsolateThreadForCurrentOSThread_92ae819b2eb5871e48575e78c4c13a4549a980b0 (3 samples, 0.01%) - - - -dev_hard_start_xmit (31 samples, 0.11%) - - - -slab_free_freelist_hook.constprop.0 (3 samples, 0.01%) - - - -irqtime_account_irq (4 samples, 0.01%) - - - -getInetAddress_addr (95 samples, 0.32%) - - - -__udp4_lib_err (4 samples, 0.01%) - - - -ctx_resched (9 samples, 0.03%) - - - -put_prev_task_fair (7 samples, 0.02%) - - - -selinux_ip_postroute (4 samples, 0.01%) - - - -kmem_cache_alloc_node (78 samples, 0.27%) - - - -tick_nohz_stop_tick (3 samples, 0.01%) - - - -ip_skb_dst_mtu (3 samples, 0.01%) - - - -bpf_lsm_xfrm_decode_session (4 samples, 0.01%) - - - -sched_ttwu_pending (4 samples, 0.01%) - - - -__x64_sys_futex (5 samples, 0.02%) - - - -__ksize (25 samples, 0.09%) - - - -__hrtimer_run_queues (16 samples, 0.05%) - - - -JavaThreads_unpark_2ea667c9c895f0321a5b2853fc974fe6018f8b6f (974 samples, 3.33%) -Jav.. - - -__rdgsbase_inactive (4 samples, 0.01%) - - - -ip_setup_cork (67 samples, 0.23%) - - - -psi_task_switch (3 samples, 0.01%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitor_2ecf5995a7a109dacede518d33424ec5ebddfde6 (12 samples, 0.04%) - - - -__ip_dev_find (27 samples, 0.09%) - - - -switch_fpu_return (4 samples, 0.01%) - - - -netif_rx_internal (13 samples, 0.04%) - - - -read_tsc (3 samples, 0.01%) - - - -ip_finish_output (5 samples, 0.02%) - - - -__GI___sched_setaffinity_new (67 samples, 0.23%) - - - -__GI___ioctl_time64 (220 samples, 0.75%) - - - -sock_sendmsg (4 samples, 0.01%) - - - -nohz_run_idle_balance (6 samples, 0.02%) - - - -__GI___pthread_mutex_unlock_usercnt (18 samples, 0.06%) - - - -entry_SYSCALL_64_after_hwframe (43 samples, 0.15%) - - - -send_call_function_single_ipi (31 samples, 0.11%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (6 samples, 0.02%) - - - -ip_send_skb (4 samples, 0.01%) - - - -select_task_rq_fair (9 samples, 0.03%) - - - -MulticastResource$$Lambda$2a51773ff173f1368fed8feb76f72e8954bae8ff_call_62c3c97a19c862d1b88b34ebccea6e8fb847006c (12,435 samples, 42.53%) -MulticastResource$$Lambda$2a51773ff173f1368fed8feb76f72e8954bae8ff_c.. - - -ttwu_do_wakeup (4 samples, 0.01%) - - - -update_rq_clock (9 samples, 0.03%) - - - -psi_group_change (9 samples, 0.03%) - - - -pick_next_task_idle (6 samples, 0.02%) - - - -schedule_idle (10 samples, 0.03%) - - - -__x86_indirect_thunk_rax (3 samples, 0.01%) - - - -icmp_socket_deliver (4 samples, 0.01%) - - - -ktime_get (9 samples, 0.03%) - - - -__x86_indirect_thunk_rax (4 samples, 0.01%) - - - -ttwu_do_activate (23 samples, 0.08%) - - - -ktime_get_update_offsets_now (144 samples, 0.49%) - - - -AbstractQueuedSynchronizer_acquireQueued_5fdba57beb8676d17b9542ff03179d64f478f5cf (3,058 samples, 10.46%) -AbstractQueuedS.. - - -__check_object_size (3 samples, 0.01%) - - - -sched_clock_cpu (5 samples, 0.02%) - - - -asm_common_interrupt (8 samples, 0.03%) - - - -clear_buddies (3 samples, 0.01%) - - - -do_futex (93 samples, 0.32%) - - - -do_idle (68 samples, 0.23%) - - - -copy_user_generic_string (161 samples, 0.55%) - - - -getInetAddress_family (29 samples, 0.10%) - - - -blk_mq_dispatch_rq_list (3 samples, 0.01%) - - - -copy_user_generic_string (3 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (127 samples, 0.43%) - - - -netif_rx_internal (12 samples, 0.04%) - - - -VertxImpl_deployVerticle_fcea789add9d3b31e6ff08796618671d34deb721 (4 samples, 0.01%) - - - -hrtimer_next_event_without (6 samples, 0.02%) - - - -DeploymentManager_doDeploy_28a24e5825cfa179a86ccb09c95909cc881c7940 (4 samples, 0.01%) - - - -__ip_local_out (32 samples, 0.11%) - - - -ttwu_do_wakeup (6 samples, 0.02%) - - - -__GI___lll_lock_wake (78 samples, 0.27%) - - - -raw_spin_rq_lock_nested (17 samples, 0.06%) - - - -update_rq_clock (6 samples, 0.02%) - - - -[perf] (319 samples, 1.09%) - - - -hrtimer_get_next_event (4 samples, 0.01%) - - - -select_task_rq_fair (47 samples, 0.16%) - - - -ip_idents_reserve (16 samples, 0.05%) - - - -ip_local_deliver (9 samples, 0.03%) - - - -do_syscall_64 (3 samples, 0.01%) - - - -ip_setup_cork (4 samples, 0.01%) - - - -native_write_msr (6 samples, 0.02%) - - - -ThreadLocalAllocation_slowPathNewArray_846db6d88ea2f5c90935fae3e872715327297019 (8 samples, 0.03%) - - - -map_id_range_down (5 samples, 0.02%) - - - -net_rx_action (5 samples, 0.02%) - - - -fput_many (3 samples, 0.01%) - - - -put_prev_entity (8 samples, 0.03%) - - - -DeploymentManager_doDeploy_13ca90eebffa21856f602fd4ed6b030ab866132b (4 samples, 0.01%) - - - -sched_clock_cpu (5 samples, 0.02%) - - - -__rdgsbase_inactive (8 samples, 0.03%) - - - -menu_select (11 samples, 0.04%) - - - -try_to_wake_up (5 samples, 0.02%) - - - -update_curr (3 samples, 0.01%) - - - -update_load_avg (3 samples, 0.01%) - - - -__udp4_lib_lookup (4 samples, 0.01%) - - - -hrtimer_interrupt (172 samples, 0.59%) - - - -MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18bad517d67eae4d88 (12,434 samples, 42.53%) -MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18ba.. - - -sched_clock_cpu (5 samples, 0.02%) - - - -schedule (3 samples, 0.01%) - - - -sched_clock_cpu (3 samples, 0.01%) - - - -__libc_sendto (13 samples, 0.04%) - - - -plist_del (4 samples, 0.01%) - - - -__futex_abstimed_wait_common (1,751 samples, 5.99%) -__futex.. - - -slab_free_freelist_hook.constprop.0 (3 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (3 samples, 0.01%) - - - -perf_ibs_nmi_handler (4 samples, 0.01%) - - - -__GI___lll_lock_wake (411 samples, 1.41%) - - - -futex_wake (17 samples, 0.06%) - - - -_raw_spin_lock_irqsave (10 samples, 0.03%) - - - -asm_sysvec_apic_timer_interrupt (3 samples, 0.01%) - - - -__inet_dev_addr_type (38 samples, 0.13%) - - - -flush_smp_call_function_from_idle (274 samples, 0.94%) - - - -kmem_cache_alloc_trace (25 samples, 0.09%) - - - -newidle_balance (12 samples, 0.04%) - - - -syscall_enter_from_user_mode (4 samples, 0.01%) - - - -sched_clock (3 samples, 0.01%) - - - -generic_exec_single (14 samples, 0.05%) - - - -newidle_balance (16 samples, 0.05%) - - - -ip_make_skb (13 samples, 0.04%) - - - -futex_wait (4 samples, 0.01%) - - - -futex_wake (3 samples, 0.01%) - - - -__skb_checksum (3 samples, 0.01%) - - - -finish_task_switch.isra.0 (20 samples, 0.07%) - - - -udp_sendmsg (122 samples, 0.42%) - - - -psi_group_change (16 samples, 0.05%) - - - -kfree (11 samples, 0.04%) - - - -futex_wait (4 samples, 0.01%) - - - -__schedule (31 samples, 0.11%) - - - -__netif_receive_skb_one_core (7 samples, 0.02%) - - - -enqueue_task_fair (10 samples, 0.03%) - - - -ip_rcv_finish_core.constprop.0 (10 samples, 0.03%) - - - -native_write_msr (8 samples, 0.03%) - - - -select_task_rq_fair (37 samples, 0.13%) - - - -enqueue_entity (14 samples, 0.05%) - - - -__clone3 (12,437 samples, 42.54%) -__clone3 - - -psi_task_switch (14 samples, 0.05%) - - - -__fget_files (14 samples, 0.05%) - - - -flush_smp_call_function_from_idle (110 samples, 0.38%) - - - -__rdgsbase_inactive (3 samples, 0.01%) - - - -flush_smp_call_function_from_idle (9 samples, 0.03%) - - - -ip_protocol_deliver_rcu (11 samples, 0.04%) - - - -do_syscall_64 (3 samples, 0.01%) - - - -__GI___pthread_cond_wait (3 samples, 0.01%) - - - -start_thread (14 samples, 0.05%) - - - -tick_nohz_idle_retain_tick (4 samples, 0.01%) - - - -update_load_avg (3 samples, 0.01%) - - - -__update_load_avg_se (4 samples, 0.01%) - - - -enqueue_entity (9 samples, 0.03%) - - - -csum_partial_copy_generic (92 samples, 0.31%) - - - -alloc_skb_with_frags (12 samples, 0.04%) - - - -__pthread_cleanup_pop (8 samples, 0.03%) - - - -set_next_entity (6 samples, 0.02%) - - - -menu_select (68 samples, 0.23%) - - - -dequeue_task_fair (4 samples, 0.01%) - - - -__sysvec_apic_timer_interrupt (190 samples, 0.65%) - - - -asm_sysvec_apic_timer_interrupt (135 samples, 0.46%) - - - -AbstractQueuedSynchronizer_acquire_d7c03c3cee25dd5a735b5a4334799f668f70ef36 (6 samples, 0.02%) - - - -udp_send_skb (16 samples, 0.05%) - - - -__x86_indirect_thunk_rax (5 samples, 0.02%) - - - -ip_skb_dst_mtu (6 samples, 0.02%) - - - -ip_route_output_key_hash_rcu (5 samples, 0.02%) - - - -futex_wait_setup (6 samples, 0.02%) - - - -copy_user_generic_string (3 samples, 0.01%) - - - -__x86_indirect_thunk_rax (6 samples, 0.02%) - - - -__check_object_size (4 samples, 0.01%) - - - -new_sync_write (3 samples, 0.01%) - - - -kmem_cache_alloc_node (3 samples, 0.01%) - - - -skb_release_data (12 samples, 0.04%) - - - -update_load_avg (11 samples, 0.04%) - - - -native_write_msr (3 samples, 0.01%) - - - -raw_spin_rq_lock_nested (57 samples, 0.19%) - - - -icmp_rcv (4 samples, 0.01%) - - - -skb_release_data (4 samples, 0.01%) - - - -pick_next_entity (4 samples, 0.01%) - - - -psi_group_change (3 samples, 0.01%) - - - -AbstractQueuedSynchronizer_release_a6f0f81643a4166b53eeaa75bf587c535be7bad9 (6 samples, 0.02%) - - - -entry_SYSCALL_64_after_hwframe (3 samples, 0.01%) - - - -cpu_startup_entry (1,036 samples, 3.54%) -cpu.. - - -__skb_checksum_complete (4 samples, 0.01%) - - - -__dev_queue_xmit (46 samples, 0.16%) - - - -psi_task_switch (67 samples, 0.23%) - - - -__hrtimer_next_event_base (20 samples, 0.07%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (678 samples, 2.32%) -P.. - - -mark_wake_futex (5 samples, 0.02%) - - - -psi_task_change (89 samples, 0.30%) - - - -rb_erase (3 samples, 0.01%) - - - -netif_rx (4 samples, 0.01%) - - - -try_to_wake_up (3 samples, 0.01%) - - - -enqueue_task (14 samples, 0.05%) - - - -acpi_processor_ffh_cstate_enter (13 samples, 0.04%) - - - -__dev_queue_xmit (43 samples, 0.15%) - - - -__rdgsbase_inactive (5 samples, 0.02%) - - - -start_thread (12,437 samples, 42.54%) -start_thread - - -netif_rx (3 samples, 0.01%) - - - -asm_sysvec_apic_timer_interrupt (260 samples, 0.89%) - - - -__dev_queue_xmit (3 samples, 0.01%) - - - -secondary_startup_64_no_verify (2,948 samples, 10.08%) -secondary_star.. - - -handle_irq_event (3 samples, 0.01%) - - - -copy_user_generic_string (5 samples, 0.02%) - - - -do_softirq (23 samples, 0.08%) - - - -enqueue_entity (116 samples, 0.40%) - - - -acpi_processor_ffh_cstate_enter (4 samples, 0.01%) - - - -__entry_text_start (167 samples, 0.57%) - - - -update_process_times (3 samples, 0.01%) - - - -__wrgsbase_inactive (3 samples, 0.01%) - - - -__blk_mq_sched_dispatch_requests (3 samples, 0.01%) - - - -enqueue_entity (6 samples, 0.02%) - - - -do_softirq (3 samples, 0.01%) - - - -ip_local_deliver_finish (6 samples, 0.02%) - - - -set_next_entity (4 samples, 0.01%) - - - -raw_spin_rq_lock_nested (5 samples, 0.02%) - - - -select_task_rq_fair (4 samples, 0.01%) - - - -start_kernel (68 samples, 0.23%) - - - -__switch_to_asm (3 samples, 0.01%) - - - -update_load_avg (8 samples, 0.03%) - - - -__x64_sys_ioctl (40 samples, 0.14%) - - - -__x86_indirect_thunk_rax (40 samples, 0.14%) - - - -__schedule (3 samples, 0.01%) - - - -__update_load_avg_cfs_rq (17 samples, 0.06%) - - - -set_next_task_idle (3 samples, 0.01%) - - - -select_task_rq_fair (4 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (1,138 samples, 3.89%) -entr.. - - -dev_get_by_index_rcu (6 samples, 0.02%) - - - -ip_finish_output2 (3 samples, 0.01%) - - - -skb_copy_and_csum_bits (13 samples, 0.04%) - - - -__x64_sys_futex (4 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (5 samples, 0.02%) - - - -raw_spin_rq_lock_nested (10 samples, 0.03%) - - - -kmem_cache_free (30 samples, 0.10%) - - - -Quarkus_run_264e1542aba49a980676e2116b6211b2dc545762 (11 samples, 0.04%) - - - -tick_sched_handle (7 samples, 0.02%) - - - -tick_nohz_next_event (5 samples, 0.02%) - - - -kfree_skb (26 samples, 0.09%) - - - -PosixJavaThreads_setNativeName_ad1428f6ffd25a626f703670d3ed7e20656291a9 (8 samples, 0.03%) - - - -__virt_addr_valid (10 samples, 0.03%) - - - -enqueue_entity (3 samples, 0.01%) - - - -__ip_make_skb (3 samples, 0.01%) - - - -wake_up_q (15 samples, 0.05%) - - - -rb_erase (7 samples, 0.02%) - - - -VMOperationControl_guaranteeOkayToBlock_6c18be2cba7df7cda24be664a42b08f35232e6be (5 samples, 0.02%) - - - -ParkEvent_initializeOnce_68f5df089169fde77d25ea87d820b2e9cca25332 (196 samples, 0.67%) - - - -tick_sched_do_timer (6 samples, 0.02%) - - - -do_syscall_64 (11 samples, 0.04%) - - - -tick_sched_timer (19 samples, 0.06%) - - - -do_syscall_64 (43 samples, 0.15%) - - - -__switch_to_asm (4 samples, 0.01%) - - - -native_sched_clock (3 samples, 0.01%) - - - -do_idle (82 samples, 0.28%) - - - -cpuidle_enter (68 samples, 0.23%) - - - -__libc_start_main_alias_2 (12 samples, 0.04%) - - - -copy_user_generic_string (4 samples, 0.01%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (13 samples, 0.04%) - - - -__local_bh_enable_ip (5 samples, 0.02%) - - - -__dev_queue_xmit (5 samples, 0.02%) - - - -skb_release_data (4 samples, 0.01%) - - - -StackOverflowCheckImpl_protectYellowZone_c940e860df16ce6529c43e09187ac7003f0ff4ce (3 samples, 0.01%) - - - -finish_task_switch.isra.0 (15 samples, 0.05%) - - - -validate_xmit_skb (5 samples, 0.02%) - - - -tick_nohz_idle_stop_tick (3 samples, 0.01%) - - - -__sysvec_apic_timer_interrupt (3 samples, 0.01%) - - - -enqueue_task_fair (6 samples, 0.02%) - - - -icmp_push_reply (80 samples, 0.27%) - - - -__xfrm_decode_session (4 samples, 0.01%) - - - -pick_next_entity (3 samples, 0.01%) - - - -do_futex (3 samples, 0.01%) - - - -update_curr (12 samples, 0.04%) - - - -[perf] (317 samples, 1.08%) - - - -acpi_processor_ffh_cstate_enter (1,057 samples, 3.62%) -acpi.. - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (210 samples, 0.72%) - - - -finish_task_switch.isra.0 (10 samples, 0.03%) - - - -sched_clock_cpu (20 samples, 0.07%) - - - -__dev_queue_xmit (5 samples, 0.02%) - - - -migrate_enable (7 samples, 0.02%) - - - -psi_group_change (6 samples, 0.02%) - - - -reweight_entity (4 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (5 samples, 0.02%) - - - -selinux_xfrm_decode_session (16 samples, 0.05%) - - - -__switch_to (7 samples, 0.02%) - - - -ThreadLocalHandles_pushFrame_c070e6fc2960d253faa099aad7972764e55d4ca2 (24 samples, 0.08%) - - - -tick_nohz_idle_exit (3 samples, 0.01%) - - - -JNIObjectHandles_popLocalFramesIncluding_33a493f8782cc84a75a079908d7e5b418b3738fc (31 samples, 0.11%) - - - - diff --git a/_versions/2.7/guides/images/native-reference-multi-flamegraph-separate-threads.svg b/_versions/2.7/guides/images/native-reference-multi-flamegraph-separate-threads.svg deleted file mode 100644 index a60cf2a4825..00000000000 --- a/_versions/2.7/guides/images/native-reference-multi-flamegraph-separate-threads.svg +++ /dev/null @@ -1,12096 +0,0 @@ - - - - - - - - - - - - - - -Flame Graph - -Reset Zoom -Search -ic - - - -_copy_from_iter (7 samples, 0.01%) - - - -futex_wait (14 samples, 0.03%) - - - -futex_wait (8 samples, 0.02%) - - - -ip_finish_output2 (19 samples, 0.04%) - - - -perf_event_for_each_child (18 samples, 0.03%) - - - -ThreadPoolExecutor$Worker_run_f861978740f7fe309db28b47935f0d22284f1441 (1,823 samples, 3.52%) -Thr.. - - -decode_session4 (8 samples, 0.02%) - - - -LockSupport_park_ad3b0439cc81f3747a99376fb5cad89af288f997 (530 samples, 1.02%) - - - -_copy_from_iter (6 samples, 0.01%) - - - -getInetAddress_family (15 samples, 0.03%) - - - -___pthread_cond_broadcast (5 samples, 0.01%) - - - -native_sched_clock (8 samples, 0.02%) - - - -decode_session4 (17 samples, 0.03%) - - - -__x86_indirect_thunk_rax (13 samples, 0.03%) - - - -CEntryPointSnippets_attachThread_299a3505abe96864afd07f8f20f652a19cd12ea9 (8 samples, 0.02%) - - - -__dev_queue_xmit (8 samples, 0.02%) - - - -ip_output (6 samples, 0.01%) - - - -AbstractQueuedSynchronizer_acquire_d7c03c3cee25dd5a735b5a4334799f668f70ef36 (597 samples, 1.15%) - - - -ip_setup_cork (26 samples, 0.05%) - - - -net_rx_action (13 samples, 0.03%) - - - -mark_wake_futex (5 samples, 0.01%) - - - -ttwu_do_wakeup (7 samples, 0.01%) - - - -__irq_exit_rcu (6 samples, 0.01%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (8 samples, 0.02%) - - - -__GI___pthread_cond_wait (420 samples, 0.81%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (101 samples, 0.19%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (5 samples, 0.01%) - - - -select_task_rq_fair (5 samples, 0.01%) - - - -psi_group_change (26 samples, 0.05%) - - - -__x86_indirect_thunk_rax (7 samples, 0.01%) - - - -_raw_spin_lock_irqsave (5 samples, 0.01%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (74 samples, 0.14%) - - - -__sys_sendto (147 samples, 0.28%) - - - -selinux_parse_skb.constprop.0 (10 samples, 0.02%) - - - -[unknown] (6 samples, 0.01%) - - - -psi_group_change (5 samples, 0.01%) - - - -JNIObjectHandles_popLocalFramesIncluding_33a493f8782cc84a75a079908d7e5b418b3738fc (5 samples, 0.01%) - - - -validate_xmit_skb (12 samples, 0.02%) - - - -poll_idle (11 samples, 0.02%) - - - -futex_wait (14 samples, 0.03%) - - - -acpi_processor_ffh_cstate_enter (66 samples, 0.13%) - - - -DatagramChannelImpl_beginWrite_e0b047bda5d2ef03b38b2294da1d52e27566ee32 (6 samples, 0.01%) - - - -ip_append_data (7 samples, 0.01%) - - - -__calc_delta (96 samples, 0.19%) - - - -loopback_xmit (8 samples, 0.02%) - - - -MultiThreadedMonitorSupport_monitorEnter_a853e48d8499fe94e7e0723447fc9d2060965e91 (22 samples, 0.04%) - - - -hash_futex (5 samples, 0.01%) - - - -asm_sysvec_apic_timer_interrupt (5 samples, 0.01%) - - - -syscall_return_via_sysret (8 samples, 0.02%) - - - -syscall_return_via_sysret (22 samples, 0.04%) - - - -__schedule (11 samples, 0.02%) - - - -MultiThreadedMonitorSupport_slowPathMonitorExit_183871de385508d0f6b4f0881e8e0c44628018b3 (52 samples, 0.10%) - - - -__entry_text_start (5 samples, 0.01%) - - - -__futex_abstimed_wait_common (5 samples, 0.01%) - - - -worker_thread (18 samples, 0.03%) - - - -tick_nohz_idle_retain_tick (6 samples, 0.01%) - - - -process_backlog (7 samples, 0.01%) - - - -__icmp_send (61 samples, 0.12%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (8 samples, 0.02%) - - - -siphash_3u32 (14 samples, 0.03%) - - - -__kmalloc_node_track_caller (8 samples, 0.02%) - - - -__inet_dev_addr_type (7 samples, 0.01%) - - - -Pthread_pthread_mutex_unlock_4817c536fb459a4a32739c23b0ed198cc1fb485f (89 samples, 0.17%) - - - -check_preempt_curr (10 samples, 0.02%) - - - -enqueue_task_fair (42 samples, 0.08%) - - - -__update_load_avg_cfs_rq (11 samples, 0.02%) - - - -ip_generic_getfrag (5 samples, 0.01%) - - - -__GI___pthread_cond_wait (423 samples, 0.82%) - - - -plist_add (5 samples, 0.01%) - - - -ip_finish_output2 (250 samples, 0.48%) - - - -ApplicationLifecycleManager_run_dbf144db2a98237beac0f2d82fb961c3bd6ed251 (9 samples, 0.02%) - - - -do_futex (6 samples, 0.01%) - - - -do_epoll_wait (10 samples, 0.02%) - - - -udp_sendmsg (16 samples, 0.03%) - - - -raw_spin_rq_lock_nested (19 samples, 0.04%) - - - -selinux_parse_skb.constprop.0 (8 samples, 0.02%) - - - -udp_err (6 samples, 0.01%) - - - -selinux_ip_postroute_compat (20 samples, 0.04%) - - - -__libc_sendto (810 samples, 1.56%) - - - -ReentrantLock$Sync_tryRelease_a66c341958d8201110d2de33406f88fc73bac424 (28 samples, 0.05%) - - - -ipv4_mtu (14 samples, 0.03%) - - - -dequeue_entity (8 samples, 0.02%) - - - -__get_user_nocheck_4 (75 samples, 0.14%) - - - -irqtime_account_irq (9 samples, 0.02%) - - - -udp_sendmsg (21 samples, 0.04%) - - - -select_task_rq_fair (5 samples, 0.01%) - - - -try_to_wake_up (5 samples, 0.01%) - - - -psi_group_change (11 samples, 0.02%) - - - -__x86_indirect_thunk_rax (11 samples, 0.02%) - - - -update_load_avg (10 samples, 0.02%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (5 samples, 0.01%) - - - -MultiThreadedMonitorSupport_slowPathMonitorExit_183871de385508d0f6b4f0881e8e0c44628018b3 (5 samples, 0.01%) - - - -__ip_dev_find (6 samples, 0.01%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (46 samples, 0.09%) - - - -ThreadLocalHandles_ensureCapacity_22e5abcd3c07151c01ffcc4e0e4a54317d42c2a8 (7 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (39 samples, 0.08%) - - - -__alloc_skb (40 samples, 0.08%) - - - -enqueue_to_backlog (8 samples, 0.02%) - - - -DatagramChannelImpl_beginWrite_e0b047bda5d2ef03b38b2294da1d52e27566ee32 (7 samples, 0.01%) - - - -JNIObjectHandles_popLocalFramesIncluding_33a493f8782cc84a75a079908d7e5b418b3738fc (9 samples, 0.02%) - - - -__dev_queue_xmit (12 samples, 0.02%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (13 samples, 0.03%) - - - -syscall_return_via_sysret (6 samples, 0.01%) - - - -native_write_msr (7 samples, 0.01%) - - - -_copy_from_iter (8 samples, 0.02%) - - - -MultiThreadedMonitorSupport_monitorEnter_a853e48d8499fe94e7e0723447fc9d2060965e91 (7 samples, 0.01%) - - - -JavaThreads_ensureUnsafeParkEvent_77b8c19cff94e6325a0dc99352d8624db969530b (60 samples, 0.12%) - - - -__udp4_lib_rcv (74 samples, 0.14%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (7 samples, 0.01%) - - - -__dev_queue_xmit (6 samples, 0.01%) - - - -sched_clock_cpu (33 samples, 0.06%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (1,934 samples, 3.73%) -Java.. - - -__check_object_size (7 samples, 0.01%) - - - -__GI___pthread_cond_wait (417 samples, 0.80%) - - - -common_interrupt (5 samples, 0.01%) - - - -fib_lookup_good_nhc (7 samples, 0.01%) - - - -MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18bad517d67eae4d88 (2,573 samples, 4.97%) -Multic.. - - -ip_protocol_deliver_rcu (176 samples, 0.34%) - - - -try_to_wake_up (6 samples, 0.01%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (6 samples, 0.01%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (24 samples, 0.05%) - - - -Pthread_pthread_cond_broadcast_eebf0c33ba863f59f420d2e79631b37822b99e02 (48 samples, 0.09%) - - - -icmp_push_reply (5 samples, 0.01%) - - - -__udp4_lib_rcv (15 samples, 0.03%) - - - -__x64_sys_futex (10 samples, 0.02%) - - - -sysvec_apic_timer_interrupt (6 samples, 0.01%) - - - -__writeback_inodes_wb (7 samples, 0.01%) - - - -fib_table_lookup (5 samples, 0.01%) - - - -ip_route_output_key_hash (6 samples, 0.01%) - - - -net_rx_action (78 samples, 0.15%) - - - -AbstractQueuedSynchronizer_unparkSuccessor_851859a085ed0112a4406e9c9b4d253092c06d1d (184 samples, 0.36%) - - - -ThreadPoolExecutor_runWorker_d6102a49f44caa9353f47edf6df17054308b7151 (1,934 samples, 3.73%) -Thre.. - - -siphash_3u32 (18 samples, 0.03%) - - - -__schedule (8 samples, 0.02%) - - - -move_addr_to_kernel.part.0 (6 samples, 0.01%) - - - -__icmp_send (10 samples, 0.02%) - - - -dev_hard_start_xmit (6 samples, 0.01%) - - - -finish_task_switch.isra.0 (59 samples, 0.11%) - - - -menu_select (6 samples, 0.01%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (2,319 samples, 4.48%) -JavaT.. - - -xfs_vm_writepages (7 samples, 0.01%) - - - -sock_sendmsg (158 samples, 0.30%) - - - -__x86_indirect_thunk_rax (6 samples, 0.01%) - - - -xfrm_lookup_with_ifid (13 samples, 0.03%) - - - -ip_protocol_deliver_rcu (96 samples, 0.19%) - - - -nf_hook_slow (5 samples, 0.01%) - - - -syscall_enter_from_user_mode (7 samples, 0.01%) - - - -FutureTask_run_8b0bdf0834cb555c1e2aa8896a714d79bab78517 (2,539 samples, 4.90%) -Future.. - - -mark_wake_futex (5 samples, 0.01%) - - - -___pthread_cond_broadcast (48 samples, 0.09%) - - - -ip_make_skb (8 samples, 0.02%) - - - -do_syscall_64 (171 samples, 0.33%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (2,339 samples, 4.51%) -Datag.. - - -select_task_rq_fair (14 samples, 0.03%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (17 samples, 0.03%) - - - -sock_alloc_send_pskb (8 samples, 0.02%) - - - -__dev_queue_xmit (16 samples, 0.03%) - - - -nvme_queue_rq (7 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (186 samples, 0.36%) - - - -_raw_spin_unlock_irqrestore (8 samples, 0.02%) - - - -JavaThreads_ensureUnsafeParkEvent_77b8c19cff94e6325a0dc99352d8624db969530b (21 samples, 0.04%) - - - -futex_wait_queue_me (20 samples, 0.04%) - - - -__udp4_lib_lookup (5 samples, 0.01%) - - - -icmp_rcv (18 samples, 0.03%) - - - -ip_output (5 samples, 0.01%) - - - -schedule (12 samples, 0.02%) - - - -sched_clock_cpu (45 samples, 0.09%) - - - -__udp4_lib_rcv (80 samples, 0.15%) - - - -raw_spin_rq_lock_nested (30 samples, 0.06%) - - - -psi_task_switch (69 samples, 0.13%) - - - -pick_next_task_fair (5 samples, 0.01%) - - - -__writeback_single_inode (7 samples, 0.01%) - - - -JNIObjectHandles_getObject_3a8ad95345633a155810448c9f6c1b478270ddcf (7 samples, 0.01%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (1,606 samples, 3.10%) -Dat.. - - -try_to_wake_up (8 samples, 0.02%) - - - -[unknown] (9 samples, 0.02%) - - - -enqueue_to_backlog (18 samples, 0.03%) - - - -psi_group_change (26 samples, 0.05%) - - - -sock_wfree (10 samples, 0.02%) - - - -__GI___lll_lock_wake (74 samples, 0.14%) - - - -icmp_route_lookup.constprop.0 (12 samples, 0.02%) - - - -native_sched_clock (9 samples, 0.02%) - - - -ip_local_deliver_finish (97 samples, 0.19%) - - - -__ip_append_data (18 samples, 0.03%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitor_2ecf5995a7a109dacede518d33424ec5ebddfde6 (15 samples, 0.03%) - - - -__entry_text_start (28 samples, 0.05%) - - - -__update_load_avg_se (9 samples, 0.02%) - - - -rcu_eqs_exit.constprop.0 (9 samples, 0.02%) - - - -process_backlog (107 samples, 0.21%) - - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (242 samples, 0.47%) - - - -put_prev_task_fair (26 samples, 0.05%) - - - -selinux_ip_postroute_compat (14 samples, 0.03%) - - - -NET_InetAddressToSockaddr (40 samples, 0.08%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitorFromObject_922cf11599fedc7c0bfa829f3c2f09fcdebe2077 (5 samples, 0.01%) - - - -psi_flags_change (20 samples, 0.04%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (2,276 samples, 4.39%) -JavaT.. - - -net_rx_action (10 samples, 0.02%) - - - -ip_finish_output2 (21 samples, 0.04%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (2,167 samples, 4.18%) -Data.. - - -siphash_3u32 (5 samples, 0.01%) - - - -load_balance (9 samples, 0.02%) - - - -__ip_make_skb (30 samples, 0.06%) - - - -update_sd_lb_stats.constprop.0 (8 samples, 0.02%) - - - -ip_skb_dst_mtu (10 samples, 0.02%) - - - -__x64_sys_futex (6 samples, 0.01%) - - - -__entry_text_start (43 samples, 0.08%) - - - -__dev_queue_xmit (7 samples, 0.01%) - - - -ThreadPoolExecutor_runWorker_d6102a49f44caa9353f47edf6df17054308b7151 (3,469 samples, 6.70%) -ThreadPoo.. - - -tick_nohz_get_next_hrtimer (7 samples, 0.01%) - - - -MultiThreadedMonitorSupport_slowPathMonitorEnter_5c2ec80c70301e1f54c9deef94b70b719d5a10f5 (34 samples, 0.07%) - - - -syscall_return_via_sysret (31 samples, 0.06%) - - - -__x64_sys_futex (8 samples, 0.02%) - - - -__ip_select_ident (5 samples, 0.01%) - - - -select_task_rq_fair (5 samples, 0.01%) - - - -kmem_cache_alloc_node (12 samples, 0.02%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (1,102 samples, 2.13%) -D.. - - -do_syscall_64 (8 samples, 0.02%) - - - -MultiThreadedMonitorSupport_slowPathMonitorEnter_5c2ec80c70301e1f54c9deef94b70b719d5a10f5 (12 samples, 0.02%) - - - -FutureTask_run_8b0bdf0834cb555c1e2aa8896a714d79bab78517 (2,573 samples, 4.97%) -Future.. - - -make (5 samples, 0.01%) - - - -PosixParkEvent_condWait_48f9d4da7d07c2044e85cec5495ae177057e5073 (853 samples, 1.65%) - - - -ip_finish_output2 (90 samples, 0.17%) - - - -NET_InetAddressToSockaddr (68 samples, 0.13%) - - - -udp_sendmsg (135 samples, 0.26%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (21 samples, 0.04%) - - - -udp_sendmsg (33 samples, 0.06%) - - - -ParkEvent_initializeOnce_68f5df089169fde77d25ea87d820b2e9cca25332 (41 samples, 0.08%) - - - -start_thread (2,319 samples, 4.48%) -start.. - - -scheduler_tick (7 samples, 0.01%) - - - -ip_skb_dst_mtu (5 samples, 0.01%) - - - -__entry_text_start (23 samples, 0.04%) - - - -update_load_avg (5 samples, 0.01%) - - - -do_syscall_64 (14 samples, 0.03%) - - - -pick_next_task_idle (14 samples, 0.03%) - - - -ReentrantLock$Sync_tryRelease_a66c341958d8201110d2de33406f88fc73bac424 (6 samples, 0.01%) - - - -net_rx_action (9 samples, 0.02%) - - - -irqtime_account_irq (6 samples, 0.01%) - - - -sock_sendmsg (146 samples, 0.28%) - - - -udp_sendmsg (21 samples, 0.04%) - - - -icmp_route_lookup.constprop.0 (15 samples, 0.03%) - - - -memcg_slab_post_alloc_hook (9 samples, 0.02%) - - - -__entry_text_start (10 samples, 0.02%) - - - -__schedule (15 samples, 0.03%) - - - -ThreadPoolExecutor_runWorker_d6102a49f44caa9353f47edf6df17054308b7151 (2,319 samples, 4.48%) -Threa.. - - -JNIObjectHandles_pushLocalFrame_72b60bb5d6b4f261f0f202d949a56da9c54ff0c0 (11 samples, 0.02%) - - - -alloc_skb_with_frags (7 samples, 0.01%) - - - -ip_protocol_deliver_rcu (80 samples, 0.15%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (3,469 samples, 6.70%) -JavaThrea.. - - -ttwu_do_wakeup (21 samples, 0.04%) - - - -__update_load_avg_se (6 samples, 0.01%) - - - -loopback_xmit (10 samples, 0.02%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (6 samples, 0.01%) - - - -nohz_run_idle_balance (8 samples, 0.02%) - - - -switch_mm_irqs_off (6 samples, 0.01%) - - - -psi_task_change (32 samples, 0.06%) - - - -arena_get2.part.0 (7 samples, 0.01%) - - - -__clone3 (1,823 samples, 3.52%) -__c.. - - -__switch_to_asm (11 samples, 0.02%) - - - -DatagramChannelImpl_beginWrite_e0b047bda5d2ef03b38b2294da1d52e27566ee32 (10 samples, 0.02%) - - - -AbstractQueuedSynchronizer_release_a6f0f81643a4166b53eeaa75bf587c535be7bad9 (193 samples, 0.37%) - - - -JNIObjectHandles_popLocalFramesIncluding_33a493f8782cc84a75a079908d7e5b418b3738fc (9 samples, 0.02%) - - - -JavaThreads_unpark_2ea667c9c895f0321a5b2853fc974fe6018f8b6f (169 samples, 0.33%) - - - -__softirqentry_text_start (73 samples, 0.14%) - - - -__GI___pthread_cond_wait (481 samples, 0.93%) - - - -__libc_sendto (1,135 samples, 2.19%) -_.. - - -try_to_wake_up (6 samples, 0.01%) - - - -__sys_sendto (159 samples, 0.31%) - - - -ip_local_deliver_finish (187 samples, 0.36%) - - - -do_syscall_64 (8 samples, 0.02%) - - - -__netif_receive_skb_core.constprop.0 (13 samples, 0.03%) - - - -siphash_3u32 (8 samples, 0.02%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (1,092 samples, 2.11%) -D.. - - -psi_group_change (6 samples, 0.01%) - - - -ReentrantLock$Sync_tryRelease_a66c341958d8201110d2de33406f88fc73bac424 (5 samples, 0.01%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (5 samples, 0.01%) - - - -getInetAddress_addr (11 samples, 0.02%) - - - -alloc_skb_with_frags (6 samples, 0.01%) - - - -writeback_sb_inodes (7 samples, 0.01%) - - - -MultiThreadedMonitorSupport_monitorExit_f765f7445e650efe1207579ef06c6f8ac708d1b5 (22 samples, 0.04%) - - - -psi_group_change (7 samples, 0.01%) - - - -___pthread_cond_broadcast (51 samples, 0.10%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (30 samples, 0.06%) - - - -__schedule (6 samples, 0.01%) - - - -___pthread_cond_broadcast (7 samples, 0.01%) - - - -__dev_queue_xmit (9 samples, 0.02%) - - - -dev_hard_start_xmit (9 samples, 0.02%) - - - -__GI___pthread_mutex_unlock_usercnt (89 samples, 0.17%) - - - -cpuidle_enter_state (17 samples, 0.03%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (26 samples, 0.05%) - - - -__rdgsbase_inactive (21 samples, 0.04%) - - - -sched_ttwu_pending (21 samples, 0.04%) - - - -selinux_parse_skb.constprop.0 (7 samples, 0.01%) - - - -pick_next_task_fair (14 samples, 0.03%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (23 samples, 0.04%) - - - -newidle_balance (71 samples, 0.14%) - - - -icmp_unreach (11 samples, 0.02%) - - - -alloc_skb_with_frags (11 samples, 0.02%) - - - -syscall_return_via_sysret (32 samples, 0.06%) - - - -__fget_files (5 samples, 0.01%) - - - -secondary_startup_64_no_verify (8,424 samples, 16.26%) -secondary_startup_64_no_v.. - - -do_csum (5 samples, 0.01%) - - - -__netif_receive_skb_one_core (96 samples, 0.19%) - - - -ip_route_output_key_hash (14 samples, 0.03%) - - - -syscall_return_via_sysret (13 samples, 0.03%) - - - -sched_clock_cpu (6 samples, 0.01%) - - - -ipv4_mtu (6 samples, 0.01%) - - - -futex_wake (5 samples, 0.01%) - - - -psi_task_switch (157 samples, 0.30%) - - - -icmp_glue_bits (5 samples, 0.01%) - - - -__udp4_lib_lookup (12 samples, 0.02%) - - - -IsolateEnterStub_JNIFunctions_ExceptionCheck_c3880ec5388acdaaf0a33f93c718f75d394cf800_56464c7018196a101b3a4a0b8a60eff8ca309807 (9 samples, 0.02%) - - - -__dev_queue_xmit (12 samples, 0.02%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (11 samples, 0.02%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (163 samples, 0.31%) - - - -__local_bh_enable_ip (120 samples, 0.23%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (3,469 samples, 6.70%) -PosixJava.. - - -JavaThreads_unpark_2ea667c9c895f0321a5b2853fc974fe6018f8b6f (159 samples, 0.31%) - - - -__schedule (266 samples, 0.51%) - - - -__x64_sys_futex (5 samples, 0.01%) - - - -net_rx_action (109 samples, 0.21%) - - - -entry_SYSCALL_64_after_hwframe (49 samples, 0.09%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (2,539 samples, 4.90%) -Datagr.. - - -__GI___pthread_cond_wait (392 samples, 0.76%) - - - -sched_clock_cpu (7 samples, 0.01%) - - - -__ip_append_data (13 samples, 0.03%) - - - -AbstractQueuedSynchronizer_release_a6f0f81643a4166b53eeaa75bf587c535be7bad9 (325 samples, 0.63%) - - - -decode_session4 (8 samples, 0.02%) - - - -__pthread_mutex_cond_lock (5 samples, 0.01%) - - - -process_backlog (108 samples, 0.21%) - - - -ip_generic_getfrag (16 samples, 0.03%) - - - -__kmalloc_node_track_caller (12 samples, 0.02%) - - - -__entry_text_start (26 samples, 0.05%) - - - -migrate_enable (5 samples, 0.01%) - - - -__GI___pthread_cond_wait (7 samples, 0.01%) - - - -__ip_append_data (27 samples, 0.05%) - - - -futex_wait (9 samples, 0.02%) - - - -bpf_lsm_xfrm_decode_session (6 samples, 0.01%) - - - -__switch_to (17 samples, 0.03%) - - - -net_rx_action (14 samples, 0.03%) - - - -__switch_to_asm (14 samples, 0.03%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (1,238 samples, 2.39%) -J.. - - -__x64_sys_futex (16 samples, 0.03%) - - - -__x64_sys_futex (12 samples, 0.02%) - - - -udp_sendmsg (6 samples, 0.01%) - - - -___pthread_cond_broadcast (58 samples, 0.11%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (7 samples, 0.01%) - - - -__GI___lll_lock_wake (9 samples, 0.02%) - - - -kmem_cache_free (5 samples, 0.01%) - - - -psi_group_change (32 samples, 0.06%) - - - -tick_nohz_get_sleep_length (26 samples, 0.05%) - - - -__udp4_lib_lookup (5 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (5 samples, 0.01%) - - - -ThreadPoolExecutor_runWorker_d6102a49f44caa9353f47edf6df17054308b7151 (2,575 samples, 4.97%) -Thread.. - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (10 samples, 0.02%) - - - -sched_clock_cpu (59 samples, 0.11%) - - - -__dev_queue_xmit (8 samples, 0.02%) - - - -__GI___pthread_cond_wait (461 samples, 0.89%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (26 samples, 0.05%) - - - -ip_setup_cork (11 samples, 0.02%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (1,312 samples, 2.53%) -Da.. - - -icmp_route_lookup.constprop.0 (8 samples, 0.02%) - - - -start_thread (2,575 samples, 4.97%) -start_.. - - -acpi_processor_ffh_cstate_enter (9 samples, 0.02%) - - - -do_csum (7 samples, 0.01%) - - - -do_syscall_64 (6 samples, 0.01%) - - - -do_csum (7 samples, 0.01%) - - - -__common_interrupt (5 samples, 0.01%) - - - -FutureTask_run_8b0bdf0834cb555c1e2aa8896a714d79bab78517 (2,319 samples, 4.48%) -Futur.. - - -do_softirq (5 samples, 0.01%) - - - -do_idle (8,276 samples, 15.97%) -do_idle - - -__ksize (9 samples, 0.02%) - - - -clear_buddies (9 samples, 0.02%) - - - -update_load_avg (5 samples, 0.01%) - - - -_raw_spin_lock_irqsave (7 samples, 0.01%) - - - -visit_groups_merge.constprop.0.isra.0 (11 samples, 0.02%) - - - -JavaThreads_ensureUnsafeParkEvent_77b8c19cff94e6325a0dc99352d8624db969530b (41 samples, 0.08%) - - - -__cgroup_bpf_run_filter_skb (13 samples, 0.03%) - - - -udp_send_skb (5 samples, 0.01%) - - - -JNIObjectHandles_pushLocalFrame_72b60bb5d6b4f261f0f202d949a56da9c54ff0c0 (32 samples, 0.06%) - - - -do_syscall_64 (16 samples, 0.03%) - - - -enqueue_entity (11 samples, 0.02%) - - - -do_futex (15 samples, 0.03%) - - - -local_touch_nmi (5 samples, 0.01%) - - - -__libc_sendto (5 samples, 0.01%) - - - -dev_hard_start_xmit (5 samples, 0.01%) - - - -udp_sendmsg (16 samples, 0.03%) - - - -ip_route_output_key_hash_rcu (8 samples, 0.02%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (12 samples, 0.02%) - - - -do_syscall_64 (32 samples, 0.06%) - - - -futex_wake (8 samples, 0.02%) - - - -select_task_rq_fair (11 samples, 0.02%) - - - -native_write_msr (5 samples, 0.01%) - - - -__x64_sys_futex (6 samples, 0.01%) - - - -__switch_to_asm (10 samples, 0.02%) - - - -ip_route_output_flow (6 samples, 0.01%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (1,946 samples, 3.76%) -Posi.. - - -Pthread_pthread_mutex_unlock_4817c536fb459a4a32739c23b0ed198cc1fb485f (90 samples, 0.17%) - - - -__x64_sys_sendto (165 samples, 0.32%) - - - -_copy_from_iter (9 samples, 0.02%) - - - -fib_table_lookup (5 samples, 0.01%) - - - -alloc_skb_with_frags (5 samples, 0.01%) - - - -tcache_init.part.0 (7 samples, 0.01%) - - - -psi_group_change (12 samples, 0.02%) - - - -PosixParkEvent_condWait_48f9d4da7d07c2044e85cec5495ae177057e5073 (520 samples, 1.00%) - - - -_raw_spin_lock_irqsave (5 samples, 0.01%) - - - -reweight_entity (5 samples, 0.01%) - - - -merge_sched_in (9 samples, 0.02%) - - - -entry_SYSCALL_64_after_hwframe (23 samples, 0.04%) - - - -nohz_run_idle_balance (26 samples, 0.05%) - - - -select_task_rq_fair (12 samples, 0.02%) - - - -psi_group_change (12 samples, 0.02%) - - - -process_backlog (101 samples, 0.19%) - - - -select_task_rq_fair (18 samples, 0.03%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (1,342 samples, 2.59%) -Da.. - - -ip_make_skb (6 samples, 0.01%) - - - -bpf_lsm_socket_sendmsg (6 samples, 0.01%) - - - -copy_user_generic_string (33 samples, 0.06%) - - - -icmp_push_reply (9 samples, 0.02%) - - - -process_backlog (7 samples, 0.01%) - - - -JavaThreads_unpark_2ea667c9c895f0321a5b2853fc974fe6018f8b6f (191 samples, 0.37%) - - - -cpuidle_enter_state (6,144 samples, 11.86%) -cpuidle_enter_state - - -icmp_glue_bits (5 samples, 0.01%) - - - -tick_nohz_idle_got_tick (6 samples, 0.01%) - - - -psi_task_change (7 samples, 0.01%) - - - -__local_bh_enable_ip (232 samples, 0.45%) - - - -entry_SYSCALL_64_after_hwframe (180 samples, 0.35%) - - - -FutureTask_run_8b0bdf0834cb555c1e2aa8896a714d79bab78517 (1,934 samples, 3.73%) -Futu.. - - -alloc_skb_with_frags (9 samples, 0.02%) - - - -try_to_wake_up (5 samples, 0.01%) - - - -__add_to_page_cache_locked (7 samples, 0.01%) - - - -AbstractQueuedSynchronizer_unparkSuccessor_851859a085ed0112a4406e9c9b4d253092c06d1d (144 samples, 0.28%) - - - -JavaThreads_park_9cfef0c461baa0314aafe1415754561e32f1e386 (588 samples, 1.13%) - - - -enqueue_to_backlog (10 samples, 0.02%) - - - -JavaThreads_unpark_2ea667c9c895f0321a5b2853fc974fe6018f8b6f (186 samples, 0.36%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitorFromObject_922cf11599fedc7c0bfa829f3c2f09fcdebe2077 (8 samples, 0.02%) - - - -cpuidle_enter (6,225 samples, 12.01%) -cpuidle_enter - - -__x64_sys_futex (16 samples, 0.03%) - - - -__futex_abstimed_wait_common (296 samples, 0.57%) - - - -getInetAddress_family (33 samples, 0.06%) - - - -ip_output (5 samples, 0.01%) - - - -do_syscall_64 (6 samples, 0.01%) - - - -select_task_rq_fair (31 samples, 0.06%) - - - -__entry_text_start (7 samples, 0.01%) - - - -psi_group_change (11 samples, 0.02%) - - - -ip_local_deliver (5 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.01%) - - - -wake_up_q (20 samples, 0.04%) - - - -tick_nohz_next_event (27 samples, 0.05%) - - - -__clone3 (3,469 samples, 6.70%) -__clone3 - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (1,579 samples, 3.05%) -Dat.. - - -update_rq_clock (18 samples, 0.03%) - - - -do_idle (266 samples, 0.51%) - - - -do_futex (6 samples, 0.01%) - - - -__schedule (18 samples, 0.03%) - - - -Pthread_pthread_cond_broadcast_eebf0c33ba863f59f420d2e79631b37822b99e02 (54 samples, 0.10%) - - - -__update_load_avg_se (5 samples, 0.01%) - - - -alloc_skb_with_frags (6 samples, 0.01%) - - - -dev_hard_start_xmit (11 samples, 0.02%) - - - -__schedule (7 samples, 0.01%) - - - -schedule_idle (71 samples, 0.14%) - - - -__local_bh_enable_ip (122 samples, 0.24%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (1,823 samples, 3.52%) -Dat.. - - -getInetAddress_family (5 samples, 0.01%) - - - -kmem_cache_free (6 samples, 0.01%) - - - -icmp_route_lookup.constprop.0 (22 samples, 0.04%) - - - -select_task_rq_fair (37 samples, 0.07%) - - - -validate_xmit_skb (6 samples, 0.01%) - - - -syscall_enter_from_user_mode (5 samples, 0.01%) - - - -ip_finish_output2 (18 samples, 0.03%) - - - -get_next_timer_interrupt (52 samples, 0.10%) - - - -get_futex_key (8 samples, 0.02%) - - - -native_sched_clock (6 samples, 0.01%) - - - -__entry_text_start (41 samples, 0.08%) - - - -icmp_push_reply (5 samples, 0.01%) - - - -PosixParkEvent_condWait_48f9d4da7d07c2044e85cec5495ae177057e5073 (492 samples, 0.95%) - - - -___pthread_mutex_lock (40 samples, 0.08%) - - - -__GI___pthread_mutex_unlock_usercnt (164 samples, 0.32%) - - - -do_syscall_64 (5 samples, 0.01%) - - - -__get_user_nocheck_4 (6 samples, 0.01%) - - - -Pthread_pthread_mutex_unlock_4817c536fb459a4a32739c23b0ed198cc1fb485f (78 samples, 0.15%) - - - -__entry_text_start (17 samples, 0.03%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (11 samples, 0.02%) - - - -nf_hook_slow (6 samples, 0.01%) - - - -menu_select (95 samples, 0.18%) - - - -_raw_spin_lock_irqsave (5 samples, 0.01%) - - - -__ip_append_data (28 samples, 0.05%) - - - -hrtimer_next_event_without (14 samples, 0.03%) - - - -kmem_cache_alloc_node (12 samples, 0.02%) - - - -__GI___lll_lock_wake (59 samples, 0.11%) - - - -udp_send_skb (268 samples, 0.52%) - - - -__get_user_nocheck_4 (44 samples, 0.08%) - - - -psi_group_change (40 samples, 0.08%) - - - -enqueue_to_backlog (8 samples, 0.02%) - - - -update_load_avg (14 samples, 0.03%) - - - -__blk_mq_sched_dispatch_requests (7 samples, 0.01%) - - - -getInetAddress_addr (10 samples, 0.02%) - - - -ret_from_fork (22 samples, 0.04%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (22 samples, 0.04%) - - - -native_sched_clock (11 samples, 0.02%) - - - -do_futex (31 samples, 0.06%) - - - -native_sched_clock (5 samples, 0.01%) - - - -__ip_append_data (5 samples, 0.01%) - - - -enqueue_entity (17 samples, 0.03%) - - - -entry_SYSCALL_64_after_hwframe (19 samples, 0.04%) - - - -__GI___pthread_mutex_unlock_usercnt (89 samples, 0.17%) - - - -ParkEvent_initializeOnce_68f5df089169fde77d25ea87d820b2e9cca25332 (18 samples, 0.03%) - - - -switch_mm_irqs_off (6 samples, 0.01%) - - - -fib_table_lookup (45 samples, 0.09%) - - - -kfree (11 samples, 0.02%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (36 samples, 0.07%) - - - -getInetAddress_family (13 samples, 0.03%) - - - -ip_send_check (5 samples, 0.01%) - - - -[unknown] (21 samples, 0.04%) - - - -dev_hard_start_xmit (6 samples, 0.01%) - - - -AbstractQueuedSynchronizer_acquireQueued_5fdba57beb8676d17b9542ff03179d64f478f5cf (553 samples, 1.07%) - - - -do_softirq (122 samples, 0.24%) - - - -menu_reflect (21 samples, 0.04%) - - - -__entry_text_start (21 samples, 0.04%) - - - -DatagramChannelImpl_beginWrite_e0b047bda5d2ef03b38b2294da1d52e27566ee32 (56 samples, 0.11%) - - - -_raw_spin_lock_irqsave (8 samples, 0.02%) - - - -__libc_sendto (1,068 samples, 2.06%) -_.. - - -_raw_spin_lock_irqsave (10 samples, 0.02%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (5 samples, 0.01%) - - - -__icmp_send (21 samples, 0.04%) - - - -___pthread_cond_broadcast (78 samples, 0.15%) - - - -JavaThreads_unpark_2ea667c9c895f0321a5b2853fc974fe6018f8b6f (131 samples, 0.25%) - - - -__GI___pthread_mutex_unlock_usercnt (6 samples, 0.01%) - - - -sched_clock_cpu (6 samples, 0.01%) - - - -xfs_file_buffered_write (31 samples, 0.06%) - - - -selinux_socket_sendmsg (7 samples, 0.01%) - - - -siphash_3u32 (5 samples, 0.01%) - - - -select_task_rq_fair (6 samples, 0.01%) - - - -iterate_groups (5 samples, 0.01%) - - - -ip_route_output_key_hash (15 samples, 0.03%) - - - -fib_table_lookup (45 samples, 0.09%) - - - -queue_core_balance (12 samples, 0.02%) - - - -slab_free_freelist_hook.constprop.0 (8 samples, 0.02%) - - - -ip_finish_output2 (20 samples, 0.04%) - - - -__libc_sendto (2,045 samples, 3.95%) -__li.. - - -FutureTask_run_8b0bdf0834cb555c1e2aa8896a714d79bab78517 (1,946 samples, 3.76%) -Futu.. - - -udp_err (5 samples, 0.01%) - - - -__clone3 (2,319 samples, 4.48%) -__clo.. - - -ip_idents_reserve (5 samples, 0.01%) - - - -fib_lookup_good_nhc (5 samples, 0.01%) - - - -csum_partial_copy_generic (13 samples, 0.03%) - - - -update_cfs_group (76 samples, 0.15%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (2,276 samples, 4.39%) -Posix.. - - -fib_lookup_good_nhc (10 samples, 0.02%) - - - -pagecache_get_page (12 samples, 0.02%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (1,236 samples, 2.39%) -J.. - - -__condvar_dec_grefs (49 samples, 0.09%) - - - -csum_partial (9 samples, 0.02%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (6 samples, 0.01%) - - - -syscall_return_via_sysret (18 samples, 0.03%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (2,539 samples, 4.90%) -Isolat.. - - -__alloc_skb (30 samples, 0.06%) - - - -cpuidle_enter (21 samples, 0.04%) - - - -ip_finish_output2 (126 samples, 0.24%) - - - -raw_spin_rq_lock_nested (23 samples, 0.04%) - - - -__switch_to_asm (5 samples, 0.01%) - - - -udp_sendmsg (112 samples, 0.22%) - - - -enqueue_entity (57 samples, 0.11%) - - - -Unsafe_unpark_d7094c561c57e072c1b45b47117ccd4b31ac594f (134 samples, 0.26%) - - - -do_softirq (74 samples, 0.14%) - - - -do_syscall_64 (16 samples, 0.03%) - - - -selinux_socket_sendmsg (7 samples, 0.01%) - - - -__ksize (8 samples, 0.02%) - - - -Pthread_pthread_mutex_unlock_4817c536fb459a4a32739c23b0ed198cc1fb485f (167 samples, 0.32%) - - - -selinux_ipv4_output (8 samples, 0.02%) - - - -dequeue_entity (84 samples, 0.16%) - - - -ip_make_skb (28 samples, 0.05%) - - - -cpuidle_enter_state (461 samples, 0.89%) - - - -AbstractQueuedSynchronizer_parkAndCheckInterrupt_5f77ccdb5d848784815a610576e6a7d474e2c6b6 (558 samples, 1.08%) - - - -__ksize (7 samples, 0.01%) - - - -__libc_sendto (1,102 samples, 2.13%) -_.. - - -skb_set_owner_w (6 samples, 0.01%) - - - -sched_clock_cpu (22 samples, 0.04%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (11 samples, 0.02%) - - - -__inet_dev_addr_type (7 samples, 0.01%) - - - -__ip_append_data (8 samples, 0.02%) - - - -ip_make_skb (5 samples, 0.01%) - - - -migrate_enable (5 samples, 0.01%) - - - -ip_skb_dst_mtu (5 samples, 0.01%) - - - -Application_start_9a0b63742d6e66c1b5dc0121670fdf46106d2d88 (9 samples, 0.02%) - - - -MulticastResource$$Lambda$2a51773ff173f1368fed8feb76f72e8954bae8ff_call_62c3c97a19c862d1b88b34ebccea6e8fb847006c (2,539 samples, 4.90%) -Multic.. - - -__rdgsbase_inactive (6 samples, 0.01%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (71 samples, 0.14%) - - - -do_futex (16 samples, 0.03%) - - - -ThreadLocalHandles_pushFrame_c070e6fc2960d253faa099aad7972764e55d4ca2 (12 samples, 0.02%) - - - -__cgroup_bpf_run_filter_skb (18 samples, 0.03%) - - - -poll_idle (10 samples, 0.02%) - - - -__switch_to (6 samples, 0.01%) - - - -LockSupport_park_ad3b0439cc81f3747a99376fb5cad89af288f997 (532 samples, 1.03%) - - - -__ip_append_data (22 samples, 0.04%) - - - -getInetAddress_addr (5 samples, 0.01%) - - - -mark_wake_futex (6 samples, 0.01%) - - - -__futex_abstimed_wait_common (358 samples, 0.69%) - - - -icmp_push_reply (7 samples, 0.01%) - - - -MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18bad517d67eae4d88 (1,946 samples, 3.76%) -Mult.. - - -nf_hook_slow (5 samples, 0.01%) - - - -__netif_receive_skb_core.constprop.0 (9 samples, 0.02%) - - - -futex_wait_queue_me (5 samples, 0.01%) - - - -ParkEvent_initializeOnce_68f5df089169fde77d25ea87d820b2e9cca25332 (31 samples, 0.06%) - - - -select_task_rq_fair (6 samples, 0.01%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (33 samples, 0.06%) - - - -__ip_make_skb (8 samples, 0.02%) - - - -icmp_rcv (11 samples, 0.02%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (10 samples, 0.02%) - - - -__ip_append_data (5 samples, 0.01%) - - - -getInetAddress_family (33 samples, 0.06%) - - - -nf_hook_slow (5 samples, 0.01%) - - - -select_task_rq_fair (10 samples, 0.02%) - - - -iomap_write_begin (14 samples, 0.03%) - - - -syscall_return_via_sysret (17 samples, 0.03%) - - - -dev_hard_start_xmit (5 samples, 0.01%) - - - -timekeeping_max_deferment (6 samples, 0.01%) - - - -sock_sendmsg (105 samples, 0.20%) - - - -cpuidle_not_available (5 samples, 0.01%) - - - -timerqueue_iterate_next (6 samples, 0.01%) - - - -MulticastResource$$Lambda$2a51773ff173f1368fed8feb76f72e8954bae8ff_call_62c3c97a19c862d1b88b34ebccea6e8fb847006c (1,934 samples, 3.73%) -Mult.. - - -AbstractQueuedSynchronizer_release_a6f0f81643a4166b53eeaa75bf587c535be7bad9 (232 samples, 0.45%) - - - -udp_send_skb (6 samples, 0.01%) - - - -security_skb_classify_flow (6 samples, 0.01%) - - - -csum_partial_copy_generic (12 samples, 0.02%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (55 samples, 0.11%) - - - -syscall_return_via_sysret (5 samples, 0.01%) - - - -poll_idle (1,397 samples, 2.70%) -po.. - - -__dev_queue_xmit (35 samples, 0.07%) - - - -icmp_push_reply (8 samples, 0.02%) - - - -kfree (5 samples, 0.01%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (11 samples, 0.02%) - - - -__udp4_lib_lookup (9 samples, 0.02%) - - - -__entry_text_start (20 samples, 0.04%) - - - -__wrgsbase_inactive (5 samples, 0.01%) - - - -select_task_rq_fair (5 samples, 0.01%) - - - -try_to_wake_up (5 samples, 0.01%) - - - -__icmp_send (40 samples, 0.08%) - - - -process_backlog (7 samples, 0.01%) - - - -__netif_receive_skb_core.constprop.0 (5 samples, 0.01%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (2,319 samples, 4.48%) -Posix.. - - -psi_group_change (46 samples, 0.09%) - - - -new_heap (7 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.01%) - - - -ip_output (7 samples, 0.01%) - - - -bpf_lsm_socket_sendmsg (7 samples, 0.01%) - - - -update_load_avg (15 samples, 0.03%) - - - -__ip_append_data (28 samples, 0.05%) - - - -slab_free_freelist_hook.constprop.0 (6 samples, 0.01%) - - - -schedule (9 samples, 0.02%) - - - -___pthread_cond_broadcast (11 samples, 0.02%) - - - -raw_spin_rq_lock_nested (15 samples, 0.03%) - - - -entry_SYSCALL_64_after_hwframe (133 samples, 0.26%) - - - -dev_hard_start_xmit (10 samples, 0.02%) - - - -__dev_queue_xmit (7 samples, 0.01%) - - - -start_thread (1,823 samples, 3.52%) -sta.. - - -ParkEvent_initializeOnce_68f5df089169fde77d25ea87d820b2e9cca25332 (56 samples, 0.11%) - - - -wake_up_q (8 samples, 0.02%) - - - -__fget_files (5 samples, 0.01%) - - - -__GI___pthread_disable_asynccancel (5 samples, 0.01%) - - - -__ip_make_skb (12 samples, 0.02%) - - - -__skb_checksum (16 samples, 0.03%) - - - -do_futex (6 samples, 0.01%) - - - -__netif_receive_skb_one_core (104 samples, 0.20%) - - - -syscall_return_via_sysret (10 samples, 0.02%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (54 samples, 0.10%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (1,493 samples, 2.88%) -Ja.. - - -__dev_queue_xmit (8 samples, 0.02%) - - - -should_failslab (6 samples, 0.01%) - - - -update_cfs_group (5 samples, 0.01%) - - - -__dev_queue_xmit (5 samples, 0.01%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (6 samples, 0.01%) - - - -AbstractQueuedSynchronizer_acquireQueued_5fdba57beb8676d17b9542ff03179d64f478f5cf (394 samples, 0.76%) - - - -Unsafe_park_8e78b5f196bf0524b1490ff9abb68dc337e02cca (358 samples, 0.69%) - - - -futex_wake (5 samples, 0.01%) - - - -NET_InetAddressToSockaddr (103 samples, 0.20%) - - - -event_function_call (18 samples, 0.03%) - - - -Pthread_pthread_cond_broadcast_eebf0c33ba863f59f420d2e79631b37822b99e02 (49 samples, 0.09%) - - - -dequeue_task_fair (5 samples, 0.01%) - - - -ttwu_do_wakeup (34 samples, 0.07%) - - - -move_addr_to_kernel.part.0 (7 samples, 0.01%) - - - -rcu_dynticks_inc (7 samples, 0.01%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (20 samples, 0.04%) - - - -AbstractQueuedSynchronizer_parkAndCheckInterrupt_5f77ccdb5d848784815a610576e6a7d474e2c6b6 (447 samples, 0.86%) - - - -MulticastResource$$Lambda$2a51773ff173f1368fed8feb76f72e8954bae8ff_call_62c3c97a19c862d1b88b34ebccea6e8fb847006c (2,276 samples, 4.39%) -Multi.. - - -flush_smp_call_function_from_idle (1,226 samples, 2.37%) -f.. - - -schedule (7 samples, 0.01%) - - - -pick_next_task_fair (17 samples, 0.03%) - - - -JNIGeneratedMethodSupport_unboxHandle_4bc785faa30981ed3ca002aef8d600c83e6f66e4 (7 samples, 0.01%) - - - -update_load_avg (12 samples, 0.02%) - - - -ip_make_skb (19 samples, 0.04%) - - - -__icmp_send (69 samples, 0.13%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (8 samples, 0.02%) - - - -__skb_checksum (10 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (5 samples, 0.01%) - - - -select_task_rq_fair (36 samples, 0.07%) - - - -ReentrantLock_lock_c898d1de8855d56ce6120446f90aa9e4e86ede9f (624 samples, 1.20%) - - - -udp_sendmsg (20 samples, 0.04%) - - - -tick_nohz_next_event (22 samples, 0.04%) - - - -__GI___pthread_cond_wait (660 samples, 1.27%) - - - -__x64_sys_sendto (147 samples, 0.28%) - - - -ip_push_pending_frames (29 samples, 0.06%) - - - -__ip_make_skb (8 samples, 0.02%) - - - -ip_send_skb (100 samples, 0.19%) - - - -sched_clock_cpu (19 samples, 0.04%) - - - -do_futex (5 samples, 0.01%) - - - -process_one_work (18 samples, 0.03%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (3,469 samples, 6.70%) -IsolateEn.. - - -_copy_from_iter (5 samples, 0.01%) - - - -select_task_rq_fair (16 samples, 0.03%) - - - -sched_clock_cpu (13 samples, 0.03%) - - - -acpi_idle_do_entry (6 samples, 0.01%) - - - -rb_next (10 samples, 0.02%) - - - -select_task_rq_fair (11 samples, 0.02%) - - - -tick_irq_enter (9 samples, 0.02%) - - - -avc_has_perm (5 samples, 0.01%) - - - -MulticastResource$$Lambda$2a51773ff173f1368fed8feb76f72e8954bae8ff_call_62c3c97a19c862d1b88b34ebccea6e8fb847006c (2,573 samples, 4.97%) -Multic.. - - -__entry_text_start (26 samples, 0.05%) - - - -skb_set_owner_w (6 samples, 0.01%) - - - -do_futex (15 samples, 0.03%) - - - -do_syscall_64 (15 samples, 0.03%) - - - -copy_user_generic_string (6 samples, 0.01%) - - - -syscall_return_via_sysret (22 samples, 0.04%) - - - -ttwu_queue_wakelist (8 samples, 0.02%) - - - -Pthread_pthread_cond_broadcast_eebf0c33ba863f59f420d2e79631b37822b99e02 (96 samples, 0.19%) - - - -memcg_slab_post_alloc_hook (11 samples, 0.02%) - - - -MulticastResource$$Lambda$2a51773ff173f1368fed8feb76f72e8954bae8ff_call_62c3c97a19c862d1b88b34ebccea6e8fb847006c (1,823 samples, 3.52%) -Mul.. - - -check_stack_object (5 samples, 0.01%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (11 samples, 0.02%) - - - -put_prev_entity (20 samples, 0.04%) - - - -validate_xmit_xfrm (6 samples, 0.01%) - - - -__x64_sys_sendto (171 samples, 0.33%) - - - -finish_task_switch.isra.0 (5 samples, 0.01%) - - - -__x86_indirect_thunk_rax (5 samples, 0.01%) - - - -memcg_slab_post_alloc_hook (12 samples, 0.02%) - - - -mark_wake_futex (5 samples, 0.01%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (5 samples, 0.01%) - - - -ip_route_output_key_hash (13 samples, 0.03%) - - - -MulticastResource$$Lambda$2a51773ff173f1368fed8feb76f72e8954bae8ff_call_62c3c97a19c862d1b88b34ebccea6e8fb847006c (2,194 samples, 4.23%) -Multi.. - - -ReentrantLock$Sync_tryRelease_a66c341958d8201110d2de33406f88fc73bac424 (15 samples, 0.03%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (2,194 samples, 4.23%) -JavaT.. - - -do_softirq (6 samples, 0.01%) - - - -_raw_spin_lock (16 samples, 0.03%) - - - -__kmalloc_node_track_caller (23 samples, 0.04%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (7 samples, 0.01%) - - - -do_futex (9 samples, 0.02%) - - - -ip_local_deliver_finish (100 samples, 0.19%) - - - -__futex_abstimed_wait_common (7 samples, 0.01%) - - - -copy_user_generic_string (29 samples, 0.06%) - - - -__softirqentry_text_start (9 samples, 0.02%) - - - -__x86_indirect_thunk_rax (41 samples, 0.08%) - - - -kfree (11 samples, 0.02%) - - - -kmem_cache_alloc_trace (10 samples, 0.02%) - - - -update_load_avg (5 samples, 0.01%) - - - -decode_session4 (7 samples, 0.01%) - - - -syscall_return_via_sysret (13 samples, 0.03%) - - - -sock_sendmsg (154 samples, 0.30%) - - - -__icmp_send (38 samples, 0.07%) - - - -select_task_rq_fair (24 samples, 0.05%) - - - -udp_sendmsg (17 samples, 0.03%) - - - -sched_clock_cpu (17 samples, 0.03%) - - - -__ip_make_skb (34 samples, 0.07%) - - - -raw_spin_rq_lock_nested (20 samples, 0.04%) - - - -StackOverflowCheckImpl_makeYellowZoneAvailable_096a6b7f9daf5fe9be382b399b6cbe747c1658f9 (21 samples, 0.04%) - - - -__softirqentry_text_start (117 samples, 0.23%) - - - -__ip_make_skb (16 samples, 0.03%) - - - -__ip_make_skb (9 samples, 0.02%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (6 samples, 0.01%) - - - -ip_protocol_deliver_rcu (100 samples, 0.19%) - - - -icmp_route_lookup.constprop.0 (38 samples, 0.07%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (1,946 samples, 3.76%) -Thre.. - - -__schedule (7 samples, 0.01%) - - - -kfree (6 samples, 0.01%) - - - -ThreadLocalHandles_ensureCapacity_22e5abcd3c07151c01ffcc4e0e4a54317d42c2a8 (13 samples, 0.03%) - - - -ThreadPoolExecutor_runWorker_d6102a49f44caa9353f47edf6df17054308b7151 (2,539 samples, 4.90%) -Thread.. - - -__do_set_cpus_allowed (7 samples, 0.01%) - - - -ip_protocol_deliver_rcu (87 samples, 0.17%) - - - -select_task_rq_fair (11 samples, 0.02%) - - - -security_perf_event_write (14 samples, 0.03%) - - - -cpu_startup_entry (485 samples, 0.94%) - - - -try_to_wake_up (13 samples, 0.03%) - - - -ip_append_data (5 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (9 samples, 0.02%) - - - -do_csum (5 samples, 0.01%) - - - -xfrm_lookup_with_ifid (20 samples, 0.04%) - - - -dev_hard_start_xmit (5 samples, 0.01%) - - - -getInetAddress_family (35 samples, 0.07%) - - - -rcu_dynticks_eqs_exit (6 samples, 0.01%) - - - -ReentrantLock$Sync_tryRelease_a66c341958d8201110d2de33406f88fc73bac424 (10 samples, 0.02%) - - - -ip_finish_output2 (11 samples, 0.02%) - - - -AbstractQueuedSynchronizer_parkAndCheckInterrupt_5f77ccdb5d848784815a610576e6a7d474e2c6b6 (496 samples, 0.96%) - - - -try_to_wake_up (5 samples, 0.01%) - - - -__set_cpus_allowed_ptr_locked (17 samples, 0.03%) - - - -__netif_receive_skb_core.constprop.0 (6 samples, 0.01%) - - - -ip_generic_getfrag (13 samples, 0.03%) - - - -udp_send_skb (144 samples, 0.28%) - - - -event_function (16 samples, 0.03%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (24 samples, 0.05%) - - - -AbstractQueuedSynchronizer_acquireQueued_5fdba57beb8676d17b9542ff03179d64f478f5cf (555 samples, 1.07%) - - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (344 samples, 0.66%) - - - -do_syscall_64 (7 samples, 0.01%) - - - -asm_sysvec_apic_timer_interrupt (6 samples, 0.01%) - - - -AbstractQueuedSynchronizer_parkAndCheckInterrupt_5f77ccdb5d848784815a610576e6a7d474e2c6b6 (894 samples, 1.73%) - - - -ctx_sched_in (11 samples, 0.02%) - - - -__local_bh_enable_ip (117 samples, 0.23%) - - - -do_syscall_64 (5 samples, 0.01%) - - - -ip_route_output_key_hash (8 samples, 0.02%) - - - -__ip_make_skb (5 samples, 0.01%) - - - -start_thread (2,194 samples, 4.23%) -start.. - - -LockSupport_park_ad3b0439cc81f3747a99376fb5cad89af288f997 (359 samples, 0.69%) - - - -ThreadPoolExecutor$Worker_run_f861978740f7fe309db28b47935f0d22284f1441 (1,946 samples, 3.76%) -Thre.. - - -psi_group_change (19 samples, 0.04%) - - - -__schedule (8 samples, 0.02%) - - - -ip_finish_output2 (10 samples, 0.02%) - - - -dev_hard_start_xmit (5 samples, 0.01%) - - - -fib_table_lookup (34 samples, 0.07%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (42 samples, 0.08%) - - - -__entry_text_start (35 samples, 0.07%) - - - -kmem_cache_free (7 samples, 0.01%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (2,318 samples, 4.47%) -Datag.. - - -mark_wake_futex (5 samples, 0.01%) - - - -__x86_indirect_thunk_rax (26 samples, 0.05%) - - - -psi_group_change (7 samples, 0.01%) - - - -MulticastResource$$Lambda$2a51773ff173f1368fed8feb76f72e8954bae8ff_call_62c3c97a19c862d1b88b34ebccea6e8fb847006c (2,319 samples, 4.48%) -Multi.. - - -__entry_text_start (9 samples, 0.02%) - - - -asm_sysvec_apic_timer_interrupt (1,063 samples, 2.05%) -a.. - - -dev_hard_start_xmit (13 samples, 0.03%) - - - -kmem_cache_free (5 samples, 0.01%) - - - -[unknown] (19 samples, 0.04%) - - - -psi_group_change (5 samples, 0.01%) - - - -schedule (12 samples, 0.02%) - - - -ip_skb_dst_mtu (8 samples, 0.02%) - - - -do_softirq (7 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (43 samples, 0.08%) - - - -kfree_skb (7 samples, 0.01%) - - - -ip_route_output_flow (5 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (22 samples, 0.04%) - - - -reweight_entity (27 samples, 0.05%) - - - -__schedule (5 samples, 0.01%) - - - -__get_user_nocheck_4 (35 samples, 0.07%) - - - -enter_lazy_tlb (6 samples, 0.01%) - - - -try_to_wake_up (7 samples, 0.01%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (1,934 samples, 3.73%) -Data.. - - -__dev_queue_xmit (15 samples, 0.03%) - - - -futex_wait (6 samples, 0.01%) - - - -slab_free_freelist_hook.constprop.0 (5 samples, 0.01%) - - - -native_sched_clock (5 samples, 0.01%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (1,197 samples, 2.31%) -J.. - - -udp_sendmsg (17 samples, 0.03%) - - - -fib_table_lookup (34 samples, 0.07%) - - - -set_next_entity (9 samples, 0.02%) - - - -JNIObjectHandles_pushLocalFrame_72b60bb5d6b4f261f0f202d949a56da9c54ff0c0 (12 samples, 0.02%) - - - -[perf] (82 samples, 0.16%) - - - -psi_group_change (6 samples, 0.01%) - - - -__napi_poll (111 samples, 0.21%) - - - -rcu_read_unlock_strict (6 samples, 0.01%) - - - -ip_route_output_key_hash (10 samples, 0.02%) - - - -_raw_spin_lock_irqsave (5 samples, 0.01%) - - - -mark_wake_futex (15 samples, 0.03%) - - - -udp_sendmsg (187 samples, 0.36%) - - - -DatagramChannelImpl_ensureOpen_7bc4a5fa5a7f6ec97a0d5cbcaa3165bbb4e730b5 (6 samples, 0.01%) - - - -psi_group_change (43 samples, 0.08%) - - - -dev_hard_start_xmit (6 samples, 0.01%) - - - -xfrm_lookup_with_ifid (9 samples, 0.02%) - - - -fib_lookup_good_nhc (7 samples, 0.01%) - - - -__update_idle_core (18 samples, 0.03%) - - - -__x86_indirect_thunk_rax (16 samples, 0.03%) - - - -update_rq_clock (28 samples, 0.05%) - - - -update_load_avg (7 samples, 0.01%) - - - -MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18bad517d67eae4d88 (2,539 samples, 4.90%) -Multic.. - - -MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18bad517d67eae4d88 (2,194 samples, 4.23%) -Multi.. - - -ApplicationImpl_doStart_e1afde9430e67b7c57499ed67ff5f64600d056ec (9 samples, 0.02%) - - - -do_softirq (6 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (6 samples, 0.01%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (6 samples, 0.01%) - - - -selinux_ipv4_output (6 samples, 0.01%) - - - -schedule_idle (504 samples, 0.97%) - - - -futex_wait_queue_me (12 samples, 0.02%) - - - -kmem_cache_alloc_node (13 samples, 0.03%) - - - -sched_clock_cpu (6 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (26 samples, 0.05%) - - - -MulticastResource$$Lambda$2a51773ff173f1368fed8feb76f72e8954bae8ff_call_62c3c97a19c862d1b88b34ebccea6e8fb847006c (1,946 samples, 3.76%) -Mult.. - - -set_next_task_idle (23 samples, 0.04%) - - - -slab_free_freelist_hook.constprop.0 (5 samples, 0.01%) - - - -StackOverflowCheckImpl_protectYellowZone_c940e860df16ce6529c43e09187ac7003f0ff4ce (9 samples, 0.02%) - - - -__udp4_lib_lookup (5 samples, 0.01%) - - - -pick_next_task_fair (5 samples, 0.01%) - - - -ip_local_deliver_finish (103 samples, 0.20%) - - - -ThreadLocalHandles_popFramesIncluding_a2f2b35267b27849afd06acabb6c2e3bc3b22169 (7 samples, 0.01%) - - - -futex_wait (9 samples, 0.02%) - - - -tick_sched_timer (22 samples, 0.04%) - - - -__napi_poll (95 samples, 0.18%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (10 samples, 0.02%) - - - -Unsafe_park_8e78b5f196bf0524b1490ff9abb68dc337e02cca (527 samples, 1.02%) - - - -__cgroup_bpf_run_filter_skb (10 samples, 0.02%) - - - -ttwu_queue_wakelist (6 samples, 0.01%) - - - -net_rx_action (67 samples, 0.13%) - - - -Unsafe_park_8e78b5f196bf0524b1490ff9abb68dc337e02cca (572 samples, 1.10%) - - - -___pthread_mutex_lock (17 samples, 0.03%) - - - -select_task_rq_fair (5 samples, 0.01%) - - - -fib_lookup_good_nhc (9 samples, 0.02%) - - - -__icmp_send (18 samples, 0.03%) - - - -__futex_abstimed_wait_common (218 samples, 0.42%) - - - -handle_edge_irq (5 samples, 0.01%) - - - -__GI___sched_setaffinity_new (79 samples, 0.15%) - - - -__condvar_dec_grefs (50 samples, 0.10%) - - - -ip_output (6 samples, 0.01%) - - - -ip_route_output_key_hash_rcu (32 samples, 0.06%) - - - -selinux_ip_postroute (11 samples, 0.02%) - - - -psi_group_change (5 samples, 0.01%) - - - -update_min_vruntime (6 samples, 0.01%) - - - -__ip_make_skb (37 samples, 0.07%) - - - -get_futex_key (5 samples, 0.01%) - - - -ip_append_data (8 samples, 0.02%) - - - -process_backlog (65 samples, 0.13%) - - - -pick_next_entity (5 samples, 0.01%) - - - -MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18bad517d67eae4d88 (1,934 samples, 3.73%) -Mult.. - - -ThreadPoolExecutor$Worker_run_f861978740f7fe309db28b47935f0d22284f1441 (2,319 samples, 4.48%) -Threa.. - - -cpu_startup_entry (57 samples, 0.11%) - - - -__udp4_lib_rcv (13 samples, 0.03%) - - - -dev_hard_start_xmit (11 samples, 0.02%) - - - -ip_generic_getfrag (5 samples, 0.01%) - - - -update_load_avg (18 samples, 0.03%) - - - -__kmalloc_node_track_caller (23 samples, 0.04%) - - - -selinux_ip_postroute_compat (9 samples, 0.02%) - - - -thread-5 (2,951 samples, 5.70%) -thread-5 - - -___pthread_mutex_lock (59 samples, 0.11%) - - - -__netif_receive_skb_core.constprop.0 (5 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (15 samples, 0.03%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (10 samples, 0.02%) - - - -ip_protocol_deliver_rcu (57 samples, 0.11%) - - - -kmem_cache_alloc_trace (5 samples, 0.01%) - - - -ip_push_pending_frames (23 samples, 0.04%) - - - -__update_load_avg_cfs_rq (6 samples, 0.01%) - - - -do_syscall_64 (131 samples, 0.25%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (11 samples, 0.02%) - - - -__netif_receive_skb_core.constprop.0 (5 samples, 0.01%) - - - -ip_append_data (28 samples, 0.05%) - - - -ip_route_output_key_hash (14 samples, 0.03%) - - - -__x64_sys_futex (14 samples, 0.03%) - - - -copy_user_generic_string (9 samples, 0.02%) - - - -loopback_xmit (8 samples, 0.02%) - - - -copy_user_generic_string (25 samples, 0.05%) - - - -copy_user_generic_string (33 samples, 0.06%) - - - -ThreadLocalHandles_ensureCapacity_22e5abcd3c07151c01ffcc4e0e4a54317d42c2a8 (14 samples, 0.03%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (54 samples, 0.10%) - - - -ip_setup_cork (9 samples, 0.02%) - - - -getInetAddress_addr (5 samples, 0.01%) - - - -AbstractQueuedSynchronizer_release_a6f0f81643a4166b53eeaa75bf587c535be7bad9 (246 samples, 0.47%) - - - -Unsafe_unpark_d7094c561c57e072c1b45b47117ccd4b31ac594f (190 samples, 0.37%) - - - -icmp_unreach (5 samples, 0.01%) - - - -do_syscall_64 (11 samples, 0.02%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (1,934 samples, 3.73%) -Isol.. - - -thread-1 (2,029 samples, 3.92%) -thre.. - - -icmp_glue_bits (5 samples, 0.01%) - - - -ktime_get_update_offsets_now (729 samples, 1.41%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (2,319 samples, 4.48%) -Threa.. - - -timekeeping_max_deferment (18 samples, 0.03%) - - - -ip_setup_cork (20 samples, 0.04%) - - - -flush_smp_call_function_from_idle (20 samples, 0.04%) - - - -__ip_finish_output (8 samples, 0.02%) - - - -getInetAddress_family (27 samples, 0.05%) - - - -sched_clock_cpu (5 samples, 0.01%) - - - -ttwu_queue_wakelist (5 samples, 0.01%) - - - -kfence_ksize (8 samples, 0.02%) - - - -fib_table_lookup (85 samples, 0.16%) - - - -__napi_poll (111 samples, 0.21%) - - - -__netif_receive_skb_core.constprop.0 (7 samples, 0.01%) - - - -__inet_dev_addr_type (6 samples, 0.01%) - - - -native_sched_clock (7 samples, 0.01%) - - - -consume_skb (5 samples, 0.01%) - - - -tick_irq_enter (102 samples, 0.20%) - - - -__ip_append_data (44 samples, 0.08%) - - - -schedule (5 samples, 0.01%) - - - -__GI___pthread_cond_wait (395 samples, 0.76%) - - - -acpi_idle_enter (92 samples, 0.18%) - - - -PosixParkEvent_condWait_48f9d4da7d07c2044e85cec5495ae177057e5073 (348 samples, 0.67%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (22 samples, 0.04%) - - - -hash_futex (5 samples, 0.01%) - - - -csum_partial_copy_generic (18 samples, 0.03%) - - - -__get_user_nocheck_4 (64 samples, 0.12%) - - - -curl (19,198 samples, 37.05%) -curl - - -ipv4_mtu (5 samples, 0.01%) - - - -NET_InetAddressToSockaddr (91 samples, 0.18%) - - - -__skb_checksum (9 samples, 0.02%) - - - -Unsafe_park_8e78b5f196bf0524b1490ff9abb68dc337e02cca (438 samples, 0.85%) - - - -__update_load_avg_cfs_rq (9 samples, 0.02%) - - - -__ip_append_data (13 samples, 0.03%) - - - -__icmp_send (77 samples, 0.15%) - - - -__sys_sendto (171 samples, 0.33%) - - - -futex_wait (21 samples, 0.04%) - - - -netif_skb_features (5 samples, 0.01%) - - - -do_syscall_64 (342 samples, 0.66%) - - - -ip_rcv_core (7 samples, 0.01%) - - - -__ip_dev_find (5 samples, 0.01%) - - - -_copy_from_user (7 samples, 0.01%) - - - -PosixParkEvent_condWait_48f9d4da7d07c2044e85cec5495ae177057e5073 (518 samples, 1.00%) - - - -__GI___lll_lock_wake (16 samples, 0.03%) - - - -__x86_indirect_thunk_rax (6 samples, 0.01%) - - - -JNIGeneratedMethodSupport_unboxHandle_4bc785faa30981ed3ca002aef8d600c83e6f66e4 (8 samples, 0.02%) - - - -icmp_unreach (8 samples, 0.02%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (8 samples, 0.02%) - - - -ipv4_mtu (7 samples, 0.01%) - - - -wake_up_q (7 samples, 0.01%) - - - -select_task_rq_fair (19 samples, 0.04%) - - - -do_csum (5 samples, 0.01%) - - - -__softirqentry_text_start (120 samples, 0.23%) - - - -__list_add_valid (5 samples, 0.01%) - - - -__schedule (7 samples, 0.01%) - - - -ipv4_mtu (7 samples, 0.01%) - - - -rb_next (5 samples, 0.01%) - - - -validate_xmit_skb (11 samples, 0.02%) - - - -rcu_dynticks_inc (15 samples, 0.03%) - - - -___pthread_cond_broadcast (48 samples, 0.09%) - - - -icmp_route_lookup.constprop.0 (22 samples, 0.04%) - - - -__ip_select_ident (5 samples, 0.01%) - - - -udp_send_skb (136 samples, 0.26%) - - - -VMOperationControl_guaranteeOkayToBlock_6c18be2cba7df7cda24be664a42b08f35232e6be (7 samples, 0.01%) - - - -tick_nohz_idle_exit (30 samples, 0.06%) - - - -Unsafe_unpark_d7094c561c57e072c1b45b47117ccd4b31ac594f (101 samples, 0.19%) - - - -__softirqentry_text_start (81 samples, 0.16%) - - - -__entry_text_start (13 samples, 0.03%) - - - -icmp_route_lookup.constprop.0 (12 samples, 0.02%) - - - -__icmp_send (5 samples, 0.01%) - - - -StackOverflowCheckImpl_makeYellowZoneAvailable_096a6b7f9daf5fe9be382b399b6cbe747c1658f9 (15 samples, 0.03%) - - - -ip_route_output_flow (6 samples, 0.01%) - - - -ThreadLocalHandles_popFramesIncluding_a2f2b35267b27849afd06acabb6c2e3bc3b22169 (8 samples, 0.02%) - - - -ip_finish_output2 (115 samples, 0.22%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (1,946 samples, 3.76%) -Isol.. - - -selinux_ipv4_output (10 samples, 0.02%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (5 samples, 0.01%) - - - -__x64_sys_futex (6 samples, 0.01%) - - - -[unknown] (20 samples, 0.04%) - - - -ktime_get (21 samples, 0.04%) - - - -loopback_xmit (5 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (17 samples, 0.03%) - - - -ip_finish_output2 (131 samples, 0.25%) - - - -perf_ioctl (35 samples, 0.07%) - - - -__alloc_skb (18 samples, 0.03%) - - - -sched_clock_cpu (39 samples, 0.08%) - - - -__x64_sys_sendto (156 samples, 0.30%) - - - -JNIObjectHandles_popLocalFramesIncluding_33a493f8782cc84a75a079908d7e5b418b3738fc (8 samples, 0.02%) - - - -AbstractQueuedSynchronizer_parkAndCheckInterrupt_5f77ccdb5d848784815a610576e6a7d474e2c6b6 (541 samples, 1.04%) - - - -do_idle (484 samples, 0.93%) - - - -__schedule (12 samples, 0.02%) - - - -syscall_return_via_sysret (7 samples, 0.01%) - - - -decode_session4 (10 samples, 0.02%) - - - -AbstractQueuedSynchronizer_release_a6f0f81643a4166b53eeaa75bf587c535be7bad9 (181 samples, 0.35%) - - - -fib_table_lookup (29 samples, 0.06%) - - - -Unsafe_park_8e78b5f196bf0524b1490ff9abb68dc337e02cca (536 samples, 1.03%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (5 samples, 0.01%) - - - -mark_wake_futex (6 samples, 0.01%) - - - -__netif_receive_skb_one_core (73 samples, 0.14%) - - - -grab_cache_page_write_begin (13 samples, 0.03%) - - - -udp_sendmsg (7 samples, 0.01%) - - - -__dev_queue_xmit (19 samples, 0.04%) - - - -security_socket_sendmsg (5 samples, 0.01%) - - - -__ip_append_data (11 samples, 0.02%) - - - -decode_session4 (11 samples, 0.02%) - - - -__alloc_skb (5 samples, 0.01%) - - - -_raw_spin_lock_irqsave (13 samples, 0.03%) - - - -__netif_receive_skb_core.constprop.0 (10 samples, 0.02%) - - - -__kmalloc_node_track_caller (23 samples, 0.04%) - - - -___pthread_mutex_lock (22 samples, 0.04%) - - - -__alloc_skb (22 samples, 0.04%) - - - -validate_xmit_skb (12 samples, 0.02%) - - - -thread-9 (3,395 samples, 6.55%) -thread-9 - - -__napi_poll (102 samples, 0.20%) - - - -__icmp_send (23 samples, 0.04%) - - - -__hrtimer_run_queues (11 samples, 0.02%) - - - -__GI___lll_lock_wake (22 samples, 0.04%) - - - -__update_load_avg_se (8 samples, 0.02%) - - - -__x86_indirect_thunk_rax (6 samples, 0.01%) - - - -__futex_abstimed_wait_common (254 samples, 0.49%) - - - -__schedule (8 samples, 0.02%) - - - -process_backlog (108 samples, 0.21%) - - - -selinux_ipv4_output (8 samples, 0.02%) - - - -Unsafe_unpark_d7094c561c57e072c1b45b47117ccd4b31ac594f (195 samples, 0.38%) - - - -siphash_3u32 (23 samples, 0.04%) - - - -FutureTask_run_8b0bdf0834cb555c1e2aa8896a714d79bab78517 (1,823 samples, 3.52%) -Fut.. - - -ip_route_output_key_hash_rcu (20 samples, 0.04%) - - - -AbstractQueuedSynchronizer_acquireQueued_5fdba57beb8676d17b9542ff03179d64f478f5cf (595 samples, 1.15%) - - - -switch_mm_irqs_off (12 samples, 0.02%) - - - -__alloc_skb (5 samples, 0.01%) - - - -ip_route_output_key_hash_rcu (23 samples, 0.04%) - - - -copy_user_generic_string (45 samples, 0.09%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (12 samples, 0.02%) - - - -tsc_verify_tsc_adjust (6 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (6 samples, 0.01%) - - - -__wrgsbase_inactive (8 samples, 0.02%) - - - -futex_wait_queue_me (13 samples, 0.03%) - - - -__x64_sys_futex (31 samples, 0.06%) - - - -selinux_ip_postroute (6 samples, 0.01%) - - - -update_rq_clock (7 samples, 0.01%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (5 samples, 0.01%) - - - -mark_wake_futex (6 samples, 0.01%) - - - -select_task_rq_fair (5 samples, 0.01%) - - - -icmp_push_reply (5 samples, 0.01%) - - - -syscall_enter_from_user_mode (5 samples, 0.01%) - - - -kmem_cache_alloc_trace (6 samples, 0.01%) - - - -ip_finish_output (7 samples, 0.01%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (1,276 samples, 2.46%) -Da.. - - -__GI___lll_lock_wake (82 samples, 0.16%) - - - -native_sched_clock (6 samples, 0.01%) - - - -__update_load_avg_se (7 samples, 0.01%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (1,264 samples, 2.44%) -Da.. - - -__x86_indirect_thunk_rax (5 samples, 0.01%) - - - -__icmp_send (48 samples, 0.09%) - - - -update_curr (69 samples, 0.13%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (3,468 samples, 6.69%) -DatagramC.. - - -enqueue_to_backlog (10 samples, 0.02%) - - - -selinux_socket_sendmsg (6 samples, 0.01%) - - - -JNIObjectHandles_popLocalFramesIncluding_33a493f8782cc84a75a079908d7e5b418b3738fc (7 samples, 0.01%) - - - -__virt_addr_valid (5 samples, 0.01%) - - - -process_backlog (6 samples, 0.01%) - - - -__ip_finish_output (14 samples, 0.03%) - - - -__kmalloc_node_track_caller (24 samples, 0.05%) - - - -__dev_queue_xmit (8 samples, 0.02%) - - - -[perf] (377 samples, 0.73%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (20 samples, 0.04%) - - - -dev_hard_start_xmit (5 samples, 0.01%) - - - -sock_alloc_send_pskb (10 samples, 0.02%) - - - -kmem_cache_free (8 samples, 0.02%) - - - -futex_wait (16 samples, 0.03%) - - - -ReentrantLock_lock_c898d1de8855d56ce6120446f90aa9e4e86ede9f (590 samples, 1.14%) - - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (230 samples, 0.44%) - - - -__udp4_lib_rcv (80 samples, 0.15%) - - - -psi_group_change (9 samples, 0.02%) - - - -update_rq_clock (17 samples, 0.03%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (14 samples, 0.03%) - - - -__x86_indirect_thunk_rax (6 samples, 0.01%) - - - -process_backlog (94 samples, 0.18%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (1,946 samples, 3.76%) -Java.. - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (6 samples, 0.01%) - - - -Pthread_pthread_cond_broadcast_eebf0c33ba863f59f420d2e79631b37822b99e02 (54 samples, 0.10%) - - - -__x64_sys_futex (5 samples, 0.01%) - - - -LockSupport_park_ad3b0439cc81f3747a99376fb5cad89af288f997 (599 samples, 1.16%) - - - -getInetAddress_family (5 samples, 0.01%) - - - -__switch_to_asm (14 samples, 0.03%) - - - -native_sched_clock (6 samples, 0.01%) - - - -ttwu_queue_wakelist (8 samples, 0.02%) - - - -flush_smp_call_function_queue (5 samples, 0.01%) - - - -_copy_from_iter (10 samples, 0.02%) - - - -JNIObjectHandles_pushLocalFrame_72b60bb5d6b4f261f0f202d949a56da9c54ff0c0 (15 samples, 0.03%) - - - -__pthread_mutex_cond_lock (6 samples, 0.01%) - - - -update_rq_clock (51 samples, 0.10%) - - - -__napi_poll (205 samples, 0.40%) - - - -ip_route_output_key_hash (7 samples, 0.01%) - - - -__libc_sendto (1,133 samples, 2.19%) -_.. - - -enqueue_entity (9 samples, 0.02%) - - - -futex_wait_queue_me (12 samples, 0.02%) - - - -hrtimer_next_event_without (30 samples, 0.06%) - - - -do_softirq (122 samples, 0.24%) - - - -__switch_to_asm (18 samples, 0.03%) - - - -entry_SYSCALL_64_after_hwframe (5 samples, 0.01%) - - - -select_task_rq_fair (10 samples, 0.02%) - - - -__netif_receive_skb_one_core (193 samples, 0.37%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (1,109 samples, 2.14%) -D.. - - -sched_clock (8 samples, 0.02%) - - - -sock_sendmsg (330 samples, 0.64%) - - - -udp_send_skb (130 samples, 0.25%) - - - -ThreadLocalHandles_popFramesIncluding_a2f2b35267b27849afd06acabb6c2e3bc3b22169 (6 samples, 0.01%) - - - -__pthread_mutex_cond_lock (5 samples, 0.01%) - - - -__schedule (9 samples, 0.02%) - - - -do_syscall_64 (5 samples, 0.01%) - - - -__ip_local_out (8 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.01%) - - - -__softirqentry_text_start (110 samples, 0.21%) - - - -futex_wait (6 samples, 0.01%) - - - -save_fpregs_to_fpstate (6 samples, 0.01%) - - - -__ip_select_ident (10 samples, 0.02%) - - - -wake_up_q (15 samples, 0.03%) - - - -finish_task_switch.isra.0 (5 samples, 0.01%) - - - -MultiThreadedMonitorSupport_monitorExit_f765f7445e650efe1207579ef06c6f8ac708d1b5 (19 samples, 0.04%) - - - -dequeue_task (13 samples, 0.03%) - - - -_raw_spin_lock (5 samples, 0.01%) - - - -do_syscall_64 (159 samples, 0.31%) - - - -ReentrantLock_lock_c898d1de8855d56ce6120446f90aa9e4e86ede9f (954 samples, 1.84%) -R.. - - -sched_clock_cpu (19 samples, 0.04%) - - - -mark_wake_futex (7 samples, 0.01%) - - - -psi_group_change (57 samples, 0.11%) - - - -Unsafe_unpark_d7094c561c57e072c1b45b47117ccd4b31ac594f (162 samples, 0.31%) - - - -enqueue_task_fair (9 samples, 0.02%) - - - -timerqueue_iterate_next (8 samples, 0.02%) - - - -NET_InetAddressToSockaddr (102 samples, 0.20%) - - - -kthread (22 samples, 0.04%) - - - -selinux_ip_postroute_compat (10 samples, 0.02%) - - - -ip_route_output_key_hash_rcu (12 samples, 0.02%) - - - -Unsafe_park_8e78b5f196bf0524b1490ff9abb68dc337e02cca (493 samples, 0.95%) - - - -fib_table_lookup (39 samples, 0.08%) - - - -kthread (5 samples, 0.01%) - - - -ip_route_output_key_hash (18 samples, 0.03%) - - - -IsolateEnterStub_JNIFunctions_ExceptionCheck_c3880ec5388acdaaf0a33f93c718f75d394cf800_56464c7018196a101b3a4a0b8a60eff8ca309807 (5 samples, 0.01%) - - - -ip_finish_output2 (17 samples, 0.03%) - - - -JNIObjectHandles_pushLocalFrame_72b60bb5d6b4f261f0f202d949a56da9c54ff0c0 (15 samples, 0.03%) - - - -xfrm_lookup_route (5 samples, 0.01%) - - - -ThreadLocalHandles_pushFrame_c070e6fc2960d253faa099aad7972764e55d4ca2 (10 samples, 0.02%) - - - -sched_clock_cpu (6 samples, 0.01%) - - - -__cgroup_bpf_run_filter_skb (17 samples, 0.03%) - - - -__libc_sendto (1,190 samples, 2.30%) -_.. - - -__napi_poll (78 samples, 0.15%) - - - -__get_user_nocheck_4 (47 samples, 0.09%) - - - -__GI___lll_lock_wake (75 samples, 0.14%) - - - -__ip_finish_output (6 samples, 0.01%) - - - -ReentrantLock_lock_c898d1de8855d56ce6120446f90aa9e4e86ede9f (597 samples, 1.15%) - - - -__schedule (14 samples, 0.03%) - - - -__x64_sys_futex (19 samples, 0.04%) - - - -__GI___pthread_disable_asynccancel (11 samples, 0.02%) - - - -do_syscall_64 (6 samples, 0.01%) - - - -__entry_text_start (22 samples, 0.04%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (1,211 samples, 2.34%) -J.. - - -IsolateEnterStub_JNIFunctions_ExceptionCheck_c3880ec5388acdaaf0a33f93c718f75d394cf800_56464c7018196a101b3a4a0b8a60eff8ca309807 (35 samples, 0.07%) - - - -ip_protocol_deliver_rcu (66 samples, 0.13%) - - - -copy_user_generic_string (16 samples, 0.03%) - - - -cpu_startup_entry (94 samples, 0.18%) - - - -JNIObjectHandles_pushLocalFrame_72b60bb5d6b4f261f0f202d949a56da9c54ff0c0 (10 samples, 0.02%) - - - -update_min_vruntime (5 samples, 0.01%) - - - -psi_task_change (18 samples, 0.03%) - - - -AbstractQueuedSynchronizer_release_a6f0f81643a4166b53eeaa75bf587c535be7bad9 (259 samples, 0.50%) - - - -___pthread_cond_broadcast (68 samples, 0.13%) - - - -wake_up_q (6 samples, 0.01%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitorFromObject_922cf11599fedc7c0bfa829f3c2f09fcdebe2077 (7 samples, 0.01%) - - - -process_backlog (11 samples, 0.02%) - - - -ip_send_skb (264 samples, 0.51%) - - - -thread-10 (3,094 samples, 5.97%) -thread-10 - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (5 samples, 0.01%) - - - -icmp_glue_bits (6 samples, 0.01%) - - - -ip_send_skb (126 samples, 0.24%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (1,823 samples, 3.52%) -Pos.. - - -_copy_from_user (5 samples, 0.01%) - - - -__cgroup_bpf_run_filter_skb (21 samples, 0.04%) - - - -kmem_cache_alloc_trace (7 samples, 0.01%) - - - -__ip_make_skb (25 samples, 0.05%) - - - -do_futex (7 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (9 samples, 0.02%) - - - -ip_rcv (5 samples, 0.01%) - - - -ip_route_output_flow (7 samples, 0.01%) - - - -AbstractQueuedSynchronizer_acquire_d7c03c3cee25dd5a735b5a4334799f668f70ef36 (563 samples, 1.09%) - - - -psi_group_change (32 samples, 0.06%) - - - -icmp_route_lookup.constprop.0 (5 samples, 0.01%) - - - -__GI___pthread_mutex_unlock_usercnt (75 samples, 0.14%) - - - -entry_SYSCALL_64_after_hwframe (9 samples, 0.02%) - - - -submit_bio_noacct (6 samples, 0.01%) - - - -AbstractQueuedSynchronizer_acquire_d7c03c3cee25dd5a735b5a4334799f668f70ef36 (672 samples, 1.30%) - - - -process_backlog (10 samples, 0.02%) - - - -csum_partial_copy_generic (19 samples, 0.04%) - - - -native_sched_clock (6 samples, 0.01%) - - - -__entry_text_start (11 samples, 0.02%) - - - -icmp_push_reply (8 samples, 0.02%) - - - -getInetAddress_family (9 samples, 0.02%) - - - -native_sched_clock (5 samples, 0.01%) - - - -ip_finish_output2 (125 samples, 0.24%) - - - -_copy_from_user (9 samples, 0.02%) - - - -ip_finish_output2 (118 samples, 0.23%) - - - -__ip_local_out (12 samples, 0.02%) - - - -NET_InetAddressToSockaddr (124 samples, 0.24%) - - - -__ip_local_out (6 samples, 0.01%) - - - -nf_hook_slow (6 samples, 0.01%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (3,469 samples, 6.70%) -Thread_ru.. - - -icmp_rcv (11 samples, 0.02%) - - - -__entry_text_start (28 samples, 0.05%) - - - -do_softirq (83 samples, 0.16%) - - - -kfree (6 samples, 0.01%) - - - -irq_enter_rcu (9 samples, 0.02%) - - - -pick_next_task_fair (16 samples, 0.03%) - - - -__ip_make_skb (9 samples, 0.02%) - - - -ThreadLocalHandles_popFramesIncluding_a2f2b35267b27849afd06acabb6c2e3bc3b22169 (5 samples, 0.01%) - - - -kfree (5 samples, 0.01%) - - - -sock_sendmsg (168 samples, 0.32%) - - - -[unknown] (24 samples, 0.05%) - - - -__netif_receive_skb_core.constprop.0 (18 samples, 0.03%) - - - -__netif_receive_skb_core.constprop.0 (6 samples, 0.01%) - - - -icmp_glue_bits (8 samples, 0.02%) - - - -udp_send_skb (151 samples, 0.29%) - - - -pick_next_task_fair (6 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (5 samples, 0.01%) - - - -ThreadPoolExecutor$Worker_run_f861978740f7fe309db28b47935f0d22284f1441 (2,539 samples, 4.90%) -Thread.. - - -__get_user_nocheck_4 (5 samples, 0.01%) - - - -native_sched_clock (493 samples, 0.95%) - - - -__schedule (7 samples, 0.01%) - - - -__ip_select_ident (6 samples, 0.01%) - - - -enqueue_entity (659 samples, 1.27%) - - - -icmp_route_lookup.constprop.0 (9 samples, 0.02%) - - - -xfrm_lookup_with_ifid (34 samples, 0.07%) - - - -__pthread_mutex_cond_lock (6 samples, 0.01%) - - - -raw_spin_rq_lock_nested (32 samples, 0.06%) - - - -psi_group_change (56 samples, 0.11%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (26 samples, 0.05%) - - - -dequeue_task (5 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (373 samples, 0.72%) - - - -kmem_cache_free (5 samples, 0.01%) - - - -cpuidle_enter (5 samples, 0.01%) - - - -__blk_mq_run_hw_queue (7 samples, 0.01%) - - - -dequeue_task_fair (5 samples, 0.01%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (2,575 samples, 4.97%) -PosixJ.. - - -update_load_avg (461 samples, 0.89%) - - - -NET_InetAddressToSockaddr (35 samples, 0.07%) - - - -__check_object_size (8 samples, 0.02%) - - - -nr_iowait_cpu (26 samples, 0.05%) - - - -do_syscall_64 (43 samples, 0.08%) - - - -ip_local_deliver_finish (97 samples, 0.19%) - - - -__ip_append_data (21 samples, 0.04%) - - - -__ip_select_ident (6 samples, 0.01%) - - - -__libc_sendto (6 samples, 0.01%) - - - -do_futex (16 samples, 0.03%) - - - -__dev_queue_xmit (11 samples, 0.02%) - - - -irqtime_account_irq (7 samples, 0.01%) - - - -__schedule (10 samples, 0.02%) - - - -__icmp_send (17 samples, 0.03%) - - - -icmp_route_lookup.constprop.0 (19 samples, 0.04%) - - - -__calloc (7 samples, 0.01%) - - - -enqueue_to_backlog (7 samples, 0.01%) - - - -Pthread_pthread_cond_broadcast_eebf0c33ba863f59f420d2e79631b37822b99e02 (70 samples, 0.14%) - - - -ip_rcv_core (6 samples, 0.01%) - - - -__switch_to_asm (9 samples, 0.02%) - - - -native_write_msr (5 samples, 0.01%) - - - -update_load_avg (7 samples, 0.01%) - - - -new_sync_write (31 samples, 0.06%) - - - -copy_user_generic_string (5 samples, 0.01%) - - - -ip_rcv_core (6 samples, 0.01%) - - - -sockfd_lookup_light (5 samples, 0.01%) - - - -icmp_rcv (33 samples, 0.06%) - - - -__GI___lll_lock_wake (74 samples, 0.14%) - - - -irqtime_account_irq (14 samples, 0.03%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (2,575 samples, 4.97%) -Isolat.. - - -read_tsc (100 samples, 0.19%) - - - -JavaThreads_unpark_2ea667c9c895f0321a5b2853fc974fe6018f8b6f (210 samples, 0.41%) - - - -selinux_ip_postroute (17 samples, 0.03%) - - - -_copy_from_user (5 samples, 0.01%) - - - -copy_user_generic_string (8 samples, 0.02%) - - - -__ip_select_ident (8 samples, 0.02%) - - - -udp_send_skb (95 samples, 0.18%) - - - -syscall_return_via_sysret (9 samples, 0.02%) - - - -__ksize (7 samples, 0.01%) - - - -sched_clock_cpu (24 samples, 0.05%) - - - -selinux_socket_sendmsg (11 samples, 0.02%) - - - -ip_route_output_key_hash (12 samples, 0.02%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (1,359 samples, 2.62%) -Da.. - - -__wrgsbase_inactive (9 samples, 0.02%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (6 samples, 0.01%) - - - -__dev_queue_xmit (30 samples, 0.06%) - - - -ip_output (5 samples, 0.01%) - - - -csum_partial_copy_generic (25 samples, 0.05%) - - - -__condvar_dec_grefs (44 samples, 0.08%) - - - -validate_xmit_skb (13 samples, 0.03%) - - - -entry_SYSCALL_64_after_hwframe (7 samples, 0.01%) - - - -skb_network_protocol (6 samples, 0.01%) - - - -udp_sendmsg (325 samples, 0.63%) - - - -native_sched_clock (7 samples, 0.01%) - - - -perf (418 samples, 0.81%) - - - -MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18bad517d67eae4d88 (1,823 samples, 3.52%) -Mul.. - - -native_write_msr (128 samples, 0.25%) - - - -__GI___lll_lock_wake (83 samples, 0.16%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitor_2ecf5995a7a109dacede518d33424ec5ebddfde6 (15 samples, 0.03%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (5 samples, 0.01%) - - - -nf_hook_slow (6 samples, 0.01%) - - - -select_task_rq_fair (6 samples, 0.01%) - - - -ipv4_mtu (6 samples, 0.01%) - - - -pick_next_task_fair (17 samples, 0.03%) - - - -ip_skb_dst_mtu (5 samples, 0.01%) - - - -swapper (892 samples, 1.72%) - - - -__ip_local_out (6 samples, 0.01%) - - - -do_csum (5 samples, 0.01%) - - - -__switch_to (5 samples, 0.01%) - - - -psi_group_change (5 samples, 0.01%) - - - -__cgroup_bpf_run_filter_skb (6 samples, 0.01%) - - - -__entry_text_start (6 samples, 0.01%) - - - -___pthread_cond_broadcast (85 samples, 0.16%) - - - -process_backlog (106 samples, 0.20%) - - - -__entry_text_start (24 samples, 0.05%) - - - -__udp4_lib_rcv (67 samples, 0.13%) - - - -__netif_receive_skb_core.constprop.0 (16 samples, 0.03%) - - - -Pthread_pthread_cond_broadcast_eebf0c33ba863f59f420d2e79631b37822b99e02 (47 samples, 0.09%) - - - -try_to_wake_up (5 samples, 0.01%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (11 samples, 0.02%) - - - -ip_route_output_key_hash_rcu (15 samples, 0.03%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (13 samples, 0.03%) - - - -net_rx_action (9 samples, 0.02%) - - - -__local_bh_enable_ip (85 samples, 0.16%) - - - -nf_hook_slow (7 samples, 0.01%) - - - -sched_ttwu_pending (19 samples, 0.04%) - - - -selinux_socket_sendmsg (6 samples, 0.01%) - - - -icmp_rcv (5 samples, 0.01%) - - - -__netif_receive_skb_core.constprop.0 (6 samples, 0.01%) - - - -kfree (8 samples, 0.02%) - - - -sched_ttwu_pending (176 samples, 0.34%) - - - -futex_wait (6 samples, 0.01%) - - - -MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18bad517d67eae4d88 (2,167 samples, 4.18%) -Mult.. - - -icmp_route_lookup.constprop.0 (29 samples, 0.06%) - - - -tick_nohz_get_next_hrtimer (5 samples, 0.01%) - - - -__condvar_dec_grefs (60 samples, 0.12%) - - - -native_sched_clock (22 samples, 0.04%) - - - -__switch_to (9 samples, 0.02%) - - - -sock_sendmsg (136 samples, 0.26%) - - - -__schedule (13 samples, 0.03%) - - - -icmp_rcv (14 samples, 0.03%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (5 samples, 0.01%) - - - -ThreadLocalHandles_popFramesIncluding_a2f2b35267b27849afd06acabb6c2e3bc3b22169 (6 samples, 0.01%) - - - -__GI___pthread_mutex_unlock_usercnt (77 samples, 0.15%) - - - -sock_alloc_send_pskb (6 samples, 0.01%) - - - -start_thread (2,539 samples, 4.90%) -start_.. - - -try_to_wake_up (6 samples, 0.01%) - - - -__x86_indirect_thunk_rax (5 samples, 0.01%) - - - -__udp4_lib_rcv (81 samples, 0.16%) - - - -native_sched_clock (6 samples, 0.01%) - - - -__rdgsbase_inactive (7 samples, 0.01%) - - - -AbstractQueuedSynchronizer_parkAndCheckInterrupt_5f77ccdb5d848784815a610576e6a7d474e2c6b6 (583 samples, 1.13%) - - - -select_task_rq_fair (7 samples, 0.01%) - - - -psi_group_change (6 samples, 0.01%) - - - -getInetAddress_family (27 samples, 0.05%) - - - -__ip_local_out (10 samples, 0.02%) - - - -update_load_avg (19 samples, 0.04%) - - - -__schedule (11 samples, 0.02%) - - - -__softirqentry_text_start (107 samples, 0.21%) - - - -__ip_append_data (8 samples, 0.02%) - - - -sched_clock_cpu (48 samples, 0.09%) - - - -select_task_rq_fair (10 samples, 0.02%) - - - -NET_InetAddressToSockaddr (90 samples, 0.17%) - - - -enqueue_to_backlog (7 samples, 0.01%) - - - -__ip_make_skb (46 samples, 0.09%) - - - -__napi_poll (66 samples, 0.13%) - - - -nf_hook_slow (7 samples, 0.01%) - - - -__x64_sys_futex (5 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (728 samples, 1.41%) - - - -futex_wait (9 samples, 0.02%) - - - -net_rx_action (14 samples, 0.03%) - - - -__schedule (8 samples, 0.02%) - - - -MulticastResource$$Lambda$2a51773ff173f1368fed8feb76f72e8954bae8ff_call_62c3c97a19c862d1b88b34ebccea6e8fb847006c (2,167 samples, 4.18%) -Mult.. - - -native_sched_clock (6 samples, 0.01%) - - - -selinux_ip_postroute (18 samples, 0.03%) - - - -__ip_finish_output (12 samples, 0.02%) - - - -do_futex (9 samples, 0.02%) - - - -AbstractQueuedSynchronizer_unparkSuccessor_851859a085ed0112a4406e9c9b4d253092c06d1d (146 samples, 0.28%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (2,167 samples, 4.18%) -Thre.. - - -JavaThreads_park_9cfef0c461baa0314aafe1415754561e32f1e386 (490 samples, 0.95%) - - - -[unknown] (13 samples, 0.03%) - - - -ip_route_output_key_hash_rcu (30 samples, 0.06%) - - - -__entry_text_start (25 samples, 0.05%) - - - -__netif_receive_skb_one_core (63 samples, 0.12%) - - - -update_min_vruntime (29 samples, 0.06%) - - - -sock_sendmsg (113 samples, 0.22%) - - - -futex_wait_queue_me (5 samples, 0.01%) - - - -native_sched_clock (8 samples, 0.02%) - - - -__x64_sys_sendto (340 samples, 0.66%) - - - -JNIObjectHandles_pushLocalFrame_72b60bb5d6b4f261f0f202d949a56da9c54ff0c0 (14 samples, 0.03%) - - - -set_next_entity (8 samples, 0.02%) - - - -AbstractQueuedSynchronizer_unparkSuccessor_851859a085ed0112a4406e9c9b4d253092c06d1d (218 samples, 0.42%) - - - -icmp_route_lookup.constprop.0 (16 samples, 0.03%) - - - -DatagramChannelImpl_endWrite_1d7ec518ca03a11f522bf4fee613d13027dc03bc (6 samples, 0.01%) - - - -icmp_rcv (11 samples, 0.02%) - - - -hrtimer_interrupt (49 samples, 0.09%) - - - -net_rx_action (104 samples, 0.20%) - - - -do_syscall_64 (22 samples, 0.04%) - - - -select_task_rq_fair (11 samples, 0.02%) - - - -loopback_xmit (5 samples, 0.01%) - - - -ReentrantLock$Sync_tryRelease_a66c341958d8201110d2de33406f88fc73bac424 (15 samples, 0.03%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (67 samples, 0.13%) - - - -save_fpregs_to_fpstate (59 samples, 0.11%) - - - -ip_finish_output2 (23 samples, 0.04%) - - - -__GI___write (81 samples, 0.16%) - - - -wake_up_q (8 samples, 0.02%) - - - -rcu_all_qs (5 samples, 0.01%) - - - -JavaThreads_park_9cfef0c461baa0314aafe1415754561e32f1e386 (433 samples, 0.84%) - - - -__udp4_lib_rcv (40 samples, 0.08%) - - - -all (51,814 samples, 100%) - - - -__softirqentry_text_start (122 samples, 0.24%) - - - -ktime_get (81 samples, 0.16%) - - - -start_kernel (94 samples, 0.18%) - - - -__x64_sys_futex (8 samples, 0.02%) - - - -cpuidle_enter (464 samples, 0.90%) - - - -ip_push_pending_frames (58 samples, 0.11%) - - - -pick_next_task_fair (5 samples, 0.01%) - - - -__GI___lll_lock_wake (36 samples, 0.07%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (6 samples, 0.01%) - - - -__schedule (12 samples, 0.02%) - - - -DatagramChannelImpl_ensureOpen_7bc4a5fa5a7f6ec97a0d5cbcaa3165bbb4e730b5 (9 samples, 0.02%) - - - -Pthread_pthread_mutex_unlock_4817c536fb459a4a32739c23b0ed198cc1fb485f (85 samples, 0.16%) - - - -debugging-nativ (33 samples, 0.06%) - - - -validate_xmit_skb (6 samples, 0.01%) - - - -__rdgsbase_inactive (5 samples, 0.01%) - - - -pick_next_task_fair (21 samples, 0.04%) - - - -ip_make_skb (13 samples, 0.03%) - - - -futex_wait_queue_me (11 samples, 0.02%) - - - -ip_route_output_key_hash (12 samples, 0.02%) - - - -tick_nohz_tick_stopped (13 samples, 0.03%) - - - -udp_send_skb (6 samples, 0.01%) - - - -kmem_cache_free (6 samples, 0.01%) - - - -ip_route_output_key_hash (11 samples, 0.02%) - - - -__wrgsbase_inactive (7 samples, 0.01%) - - - -sock_sendmsg (163 samples, 0.31%) - - - -do_idle (5 samples, 0.01%) - - - -__inet_dev_addr_type (12 samples, 0.02%) - - - -_raw_spin_lock_irqsave (7 samples, 0.01%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (2,276 samples, 4.39%) -Threa.. - - -__condvar_dec_grefs (64 samples, 0.12%) - - - -JavaThreads_park_9cfef0c461baa0314aafe1415754561e32f1e386 (530 samples, 1.02%) - - - -__run_timers.part.0 (6 samples, 0.01%) - - - -__cgroup_bpf_run_filter_skb (10 samples, 0.02%) - - - -___pthread_mutex_lock (67 samples, 0.13%) - - - -Unsafe_unpark_d7094c561c57e072c1b45b47117ccd4b31ac594f (217 samples, 0.42%) - - - -__x86_indirect_thunk_rax (7 samples, 0.01%) - - - -icmpv4_xrlim_allow (7 samples, 0.01%) - - - -icmp_push_reply (5 samples, 0.01%) - - - -psi_group_change (8 samples, 0.02%) - - - -selinux_ipv4_output (5 samples, 0.01%) - - - -secondary_startup_64_no_verify (490 samples, 0.95%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (2,276 samples, 4.39%) -Datag.. - - -selinux_ip_postroute_compat (11 samples, 0.02%) - - - -wake_up_q (13 samples, 0.03%) - - - -JavaThreads_park_9cfef0c461baa0314aafe1415754561e32f1e386 (354 samples, 0.68%) - - - -selinux_parse_skb.constprop.0 (8 samples, 0.02%) - - - -avc_lookup (6 samples, 0.01%) - - - -__icmp_send (17 samples, 0.03%) - - - -__ip_finish_output (5 samples, 0.01%) - - - -AbstractQueuedSynchronizer_acquireQueued_5fdba57beb8676d17b9542ff03179d64f478f5cf (624 samples, 1.20%) - - - -siphash_3u32 (8 samples, 0.02%) - - - -select_task_rq_fair (9 samples, 0.02%) - - - -skb_set_owner_w (7 samples, 0.01%) - - - -security_socket_sendmsg (5 samples, 0.01%) - - - -PosixParkEvent_condWait_48f9d4da7d07c2044e85cec5495ae177057e5073 (485 samples, 0.94%) - - - -__ip_local_out (10 samples, 0.02%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (2,319 samples, 4.48%) -Isola.. - - -AbstractQueuedSynchronizer_parkAndCheckInterrupt_5f77ccdb5d848784815a610576e6a7d474e2c6b6 (552 samples, 1.07%) - - - -syscall_return_via_sysret (12 samples, 0.02%) - - - -ip_skb_dst_mtu (5 samples, 0.01%) - - - -syscall_return_via_sysret (24 samples, 0.05%) - - - -move_addr_to_kernel.part.0 (5 samples, 0.01%) - - - -icmp_push_reply (5 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (5 samples, 0.01%) - - - -__list_del_entry_valid (7 samples, 0.01%) - - - -irqtime_account_irq (5 samples, 0.01%) - - - -JNIObjectHandles_getObject_3a8ad95345633a155810448c9f6c1b478270ddcf (6 samples, 0.01%) - - - -__wrgsbase_inactive (20 samples, 0.04%) - - - -dev_hard_start_xmit (6 samples, 0.01%) - - - -_copy_from_iter (7 samples, 0.01%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (2,194 samples, 4.23%) -Isola.. - - -__get_user_nocheck_4 (6 samples, 0.01%) - - - -Quarkus_run_264e1542aba49a980676e2116b6211b2dc545762 (9 samples, 0.02%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (14 samples, 0.03%) - - - -selinux_parse_skb.constprop.0 (5 samples, 0.01%) - - - -[unknown] (15 samples, 0.03%) - - - -sg_init_table (5 samples, 0.01%) - - - -kmem_cache_alloc_trace (6 samples, 0.01%) - - - -udp_sendmsg (144 samples, 0.28%) - - - -ip_route_output_key_hash (16 samples, 0.03%) - - - -skb_release_data (5 samples, 0.01%) - - - -csum_partial (14 samples, 0.03%) - - - -__softirqentry_text_start (6 samples, 0.01%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (1,038 samples, 2.00%) -J.. - - -__ip_make_skb (41 samples, 0.08%) - - - -IsolateEnterStub_JNIFunctions_ExceptionCheck_c3880ec5388acdaaf0a33f93c718f75d394cf800_56464c7018196a101b3a4a0b8a60eff8ca309807 (11 samples, 0.02%) - - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (271 samples, 0.52%) - - - -cgroup_rstat_updated (26 samples, 0.05%) - - - -__ip_dev_find (5 samples, 0.01%) - - - -udp_send_skb (145 samples, 0.28%) - - - -JavaThreads_park_9cfef0c461baa0314aafe1415754561e32f1e386 (569 samples, 1.10%) - - - -___pthread_cond_broadcast (45 samples, 0.09%) - - - -__ip_select_ident (11 samples, 0.02%) - - - -sched_clock_cpu (25 samples, 0.05%) - - - -dst_release (5 samples, 0.01%) - - - -__napi_poll (108 samples, 0.21%) - - - -__check_object_size (9 samples, 0.02%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (2,296 samples, 4.43%) -Datag.. - - -kmem_cache_alloc_node (14 samples, 0.03%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (1,299 samples, 2.51%) -Da.. - - -ip_generic_getfrag (8 samples, 0.02%) - - - -__x64_sys_ioctl (41 samples, 0.08%) - - - -copy_user_generic_string (5 samples, 0.01%) - - - -ReentrantLock_lock_c898d1de8855d56ce6120446f90aa9e4e86ede9f (556 samples, 1.07%) - - - -native_sched_clock (52 samples, 0.10%) - - - -__switch_to_asm (151 samples, 0.29%) - - - -exit_to_user_mode_prepare (5 samples, 0.01%) - - - -acpi_idle_do_entry (5 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (201 samples, 0.39%) - - - -skb_set_owner_w (6 samples, 0.01%) - - - -select_task_rq_fair (11 samples, 0.02%) - - - -ip_push_pending_frames (21 samples, 0.04%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (12 samples, 0.02%) - - - -ip_generic_getfrag (37 samples, 0.07%) - - - -udp_sendmsg (161 samples, 0.31%) - - - -ThreadLocalHandles_pushFrame_c070e6fc2960d253faa099aad7972764e55d4ca2 (25 samples, 0.05%) - - - -__kmalloc_node_track_caller (20 samples, 0.04%) - - - -__schedule (465 samples, 0.90%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (40 samples, 0.08%) - - - -__futex_abstimed_wait_common (326 samples, 0.63%) - - - -__wrgsbase_inactive (11 samples, 0.02%) - - - -ip_route_output_key_hash_rcu (35 samples, 0.07%) - - - -__check_object_size (8 samples, 0.02%) - - - -__schedule (13 samples, 0.03%) - - - -copy_user_generic_string (45 samples, 0.09%) - - - -ktime_get (6 samples, 0.01%) - - - -kmem_cache_alloc_node (14 samples, 0.03%) - - - -PosixParkEvent_condWait_48f9d4da7d07c2044e85cec5495ae177057e5073 (576 samples, 1.11%) - - - -copy_user_generic_string (7 samples, 0.01%) - - - -__udp4_lib_rcv (17 samples, 0.03%) - - - -ip_skb_dst_mtu (7 samples, 0.01%) - - - -__check_object_size (6 samples, 0.01%) - - - -sched_clock_cpu (31 samples, 0.06%) - - - -psi_group_change (5 samples, 0.01%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitorFromObject_922cf11599fedc7c0bfa829f3c2f09fcdebe2077 (12 samples, 0.02%) - - - -__ip_select_ident (7 samples, 0.01%) - - - -ip_finish_output2 (8 samples, 0.02%) - - - -psi_task_switch (6 samples, 0.01%) - - - -do_softirq (231 samples, 0.45%) - - - -__clone3 (2,167 samples, 4.18%) -__cl.. - - -do_softirq (119 samples, 0.23%) - - - -psi_group_change (84 samples, 0.16%) - - - -ip_finish_output2 (133 samples, 0.26%) - - - -__udp4_lib_rcv (17 samples, 0.03%) - - - -LockSupport_park_ad3b0439cc81f3747a99376fb5cad89af288f997 (495 samples, 0.96%) - - - -do_syscall_64 (159 samples, 0.31%) - - - -ip_append_data (10 samples, 0.02%) - - - -net_rx_action (5 samples, 0.01%) - - - -__x64_sys_futex (7 samples, 0.01%) - - - -wake_up_q (10 samples, 0.02%) - - - -ip_rcv (5 samples, 0.01%) - - - -Pthread_pthread_cond_broadcast_eebf0c33ba863f59f420d2e79631b37822b99e02 (89 samples, 0.17%) - - - -ip_protocol_deliver_rcu (93 samples, 0.18%) - - - -__hrtimer_next_event_base (43 samples, 0.08%) - - - -__x64_sys_futex (15 samples, 0.03%) - - - -__schedule (11 samples, 0.02%) - - - -sched_clock_cpu (7 samples, 0.01%) - - - -ip_rcv_core (9 samples, 0.02%) - - - -ip_rcv_core (6 samples, 0.01%) - - - -__netif_receive_skb_core.constprop.0 (6 samples, 0.01%) - - - -AbstractQueuedSynchronizer_parkAndCheckInterrupt_5f77ccdb5d848784815a610576e6a7d474e2c6b6 (547 samples, 1.06%) - - - -IsolateEnterStub_JNIFunctions_ExceptionCheck_c3880ec5388acdaaf0a33f93c718f75d394cf800_56464c7018196a101b3a4a0b8a60eff8ca309807 (7 samples, 0.01%) - - - -__dev_queue_xmit (7 samples, 0.01%) - - - -ip_append_data (5 samples, 0.01%) - - - -__update_load_avg_cfs_rq (210 samples, 0.41%) - - - -select_task_rq_fair (5 samples, 0.01%) - - - -kmem_cache_alloc_trace (5 samples, 0.01%) - - - -thread-6 (2,969 samples, 5.73%) -thread-6 - - -ttwu_queue_wakelist (5 samples, 0.01%) - - - -MultiThreadedMonitorSupport_slowPathMonitorExit_183871de385508d0f6b4f0881e8e0c44628018b3 (36 samples, 0.07%) - - - -ip_push_pending_frames (32 samples, 0.06%) - - - -__ip_dev_find (8 samples, 0.02%) - - - -do_syscall_64 (172 samples, 0.33%) - - - -event_sched_in.part.0 (6 samples, 0.01%) - - - -update_load_avg (16 samples, 0.03%) - - - -tick_nohz_idle_exit (10 samples, 0.02%) - - - -ip_finish_output2 (83 samples, 0.16%) - - - -kmem_cache_alloc_trace (6 samples, 0.01%) - - - -irq_enter_rcu (102 samples, 0.20%) - - - -JavaThreads_ensureUnsafeParkEvent_77b8c19cff94e6325a0dc99352d8624db969530b (22 samples, 0.04%) - - - -futex_wait (7 samples, 0.01%) - - - -ReentrantLock_lock_c898d1de8855d56ce6120446f90aa9e4e86ede9f (482 samples, 0.93%) - - - -__schedule (9 samples, 0.02%) - - - -__dev_queue_xmit (13 samples, 0.03%) - - - -syscall_enter_from_user_mode (5 samples, 0.01%) - - - -ip_push_pending_frames (31 samples, 0.06%) - - - -ksize (8 samples, 0.02%) - - - -do_syscall_64 (116 samples, 0.22%) - - - -cpu_startup_entry (8,313 samples, 16.04%) -cpu_startup_entry - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (1,239 samples, 2.39%) -D.. - - -ThreadPoolExecutor$Worker_run_f861978740f7fe309db28b47935f0d22284f1441 (2,167 samples, 4.18%) -Thre.. - - -entry_SYSCALL_64_after_hwframe (6 samples, 0.01%) - - - -syscall_enter_from_user_mode (5 samples, 0.01%) - - - -ip_route_output_key_hash (11 samples, 0.02%) - - - -AbstractQueuedSynchronizer_release_a6f0f81643a4166b53eeaa75bf587c535be7bad9 (5 samples, 0.01%) - - - -__ip_local_out (12 samples, 0.02%) - - - -__x64_sys_futex (9 samples, 0.02%) - - - -__netif_receive_skb_core.constprop.0 (11 samples, 0.02%) - - - -ip_route_output_flow (7 samples, 0.01%) - - - -ttwu_do_wakeup (6 samples, 0.01%) - - - -selinux_parse_skb.constprop.0 (5 samples, 0.01%) - - - -do_futex (10 samples, 0.02%) - - - -ThreadPoolExecutor_runWorker_d6102a49f44caa9353f47edf6df17054308b7151 (1,823 samples, 3.52%) -Thr.. - - -__clone3 (2,194 samples, 4.23%) -__clo.. - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (7 samples, 0.01%) - - - -dev_hard_start_xmit (6 samples, 0.01%) - - - -ThreadLocalHandles_pushFrame_c070e6fc2960d253faa099aad7972764e55d4ca2 (10 samples, 0.02%) - - - -entry_SYSCALL_64_after_hwframe (6 samples, 0.01%) - - - -hrtimer_get_next_event (27 samples, 0.05%) - - - -ip_local_deliver_finish (82 samples, 0.16%) - - - -__switch_to_asm (11 samples, 0.02%) - - - -ip_route_output_key_hash_rcu (34 samples, 0.07%) - - - -__alloc_skb (9 samples, 0.02%) - - - -getInetAddress_family (13 samples, 0.03%) - - - -__GI___munmap (5 samples, 0.01%) - - - -nf_hook_slow (15 samples, 0.03%) - - - -process_backlog (8 samples, 0.02%) - - - -selinux_socket_sendmsg (10 samples, 0.02%) - - - -__local_bh_enable_ip (110 samples, 0.21%) - - - -move_addr_to_kernel.part.0 (10 samples, 0.02%) - - - -IsolateEnterStub_JNIFunctions_ExceptionCheck_c3880ec5388acdaaf0a33f93c718f75d394cf800_56464c7018196a101b3a4a0b8a60eff8ca309807 (25 samples, 0.05%) - - - -syscall_enter_from_user_mode (5 samples, 0.01%) - - - -avc_has_perm (6 samples, 0.01%) - - - -ip_push_pending_frames (30 samples, 0.06%) - - - -native_sched_clock (5 samples, 0.01%) - - - -dequeue_entity (6 samples, 0.01%) - - - -acpi_idle_enter (3,050 samples, 5.89%) -acpi_id.. - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (1,330 samples, 2.57%) -Da.. - - -kfence_ksize (6 samples, 0.01%) - - - -select_task_rq_fair (10 samples, 0.02%) - - - -ThreadPoolExecutor_runWorker_d6102a49f44caa9353f47edf6df17054308b7151 (2,276 samples, 4.39%) -Threa.. - - -__dev_queue_xmit (15 samples, 0.03%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (8 samples, 0.02%) - - - -__futex_abstimed_wait_common (564 samples, 1.09%) - - - -selinux_xfrm_skb_sid_ingress (6 samples, 0.01%) - - - -ip_idents_reserve (6 samples, 0.01%) - - - -loopback_xmit (7 samples, 0.01%) - - - -mark_wake_futex (5 samples, 0.01%) - - - -_copy_from_iter (28 samples, 0.05%) - - - -MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18bad517d67eae4d88 (2,276 samples, 4.39%) -Multi.. - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (9 samples, 0.02%) - - - -__GI___pthread_mutex_unlock_usercnt (83 samples, 0.16%) - - - -sock_wfree (5 samples, 0.01%) - - - -do_futex (12 samples, 0.02%) - - - -__inet_dev_addr_type (7 samples, 0.01%) - - - -FutureTask_run_8b0bdf0834cb555c1e2aa8896a714d79bab78517 (2,167 samples, 4.18%) -Futu.. - - -select_task_rq_fair (7 samples, 0.01%) - - - -__sys_sendto (165 samples, 0.32%) - - - -schedule (15 samples, 0.03%) - - - -__x64_sys_futex (8 samples, 0.02%) - - - -__wrgsbase_inactive (7 samples, 0.01%) - - - -__schedule (12 samples, 0.02%) - - - -__get_user_nocheck_4 (64 samples, 0.12%) - - - -acpi_processor_ffh_cstate_enter (21 samples, 0.04%) - - - -dst_release (7 samples, 0.01%) - - - -ip_send_skb (144 samples, 0.28%) - - - -__alloc_skb (33 samples, 0.06%) - - - -__udp4_lib_lookup (6 samples, 0.01%) - - - -validate_xmit_skb (13 samples, 0.03%) - - - -wake_up_q (15 samples, 0.03%) - - - -copy_user_generic_string (34 samples, 0.07%) - - - -memcg_slab_post_alloc_hook (8 samples, 0.02%) - - - -ip_protocol_deliver_rcu (98 samples, 0.19%) - - - -reweight_entity (32 samples, 0.06%) - - - -selinux_ip_postroute (8 samples, 0.02%) - - - -skb_release_data (9 samples, 0.02%) - - - -irqtime_account_irq (7 samples, 0.01%) - - - -find_exception (5 samples, 0.01%) - - - -icmp_push_reply (8 samples, 0.02%) - - - -copy_page_from_iter_atomic (11 samples, 0.02%) - - - -schedule (18 samples, 0.03%) - - - -__get_user_nocheck_4 (118 samples, 0.23%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (5 samples, 0.01%) - - - -iomap_do_writepage (6 samples, 0.01%) - - - -__schedule (18 samples, 0.03%) - - - -dev_hard_start_xmit (8 samples, 0.02%) - - - -mark_wake_futex (6 samples, 0.01%) - - - -__clone3 (2,575 samples, 4.97%) -__clone3 - - -native_write_msr (8 samples, 0.02%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (7 samples, 0.01%) - - - -futex_wait_queue_me (8 samples, 0.02%) - - - -__x64_sys_futex (7 samples, 0.01%) - - - -poll_idle (398 samples, 0.77%) - - - -[perf] (87 samples, 0.17%) - - - -IsolateEnterStub_JNIFunctions_ExceptionCheck_c3880ec5388acdaaf0a33f93c718f75d394cf800_56464c7018196a101b3a4a0b8a60eff8ca309807 (20 samples, 0.04%) - - - -selinux_socket_sendmsg (9 samples, 0.02%) - - - -copy_user_generic_string (28 samples, 0.05%) - - - -ipv4_mtu (10 samples, 0.02%) - - - -set_next_entity (5 samples, 0.01%) - - - -AbstractQueuedSynchronizer_unparkSuccessor_851859a085ed0112a4406e9c9b4d253092c06d1d (172 samples, 0.33%) - - - -do_syscall_64 (5 samples, 0.01%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (1,252 samples, 2.42%) -Da.. - - -__libc_start_call_main (9 samples, 0.02%) - - - -ParkEvent_initializeOnce_68f5df089169fde77d25ea87d820b2e9cca25332 (46 samples, 0.09%) - - - -ip_send_skb (136 samples, 0.26%) - - - -JNIObjectHandles_pushLocalFrame_72b60bb5d6b4f261f0f202d949a56da9c54ff0c0 (25 samples, 0.05%) - - - -ip_output (5 samples, 0.01%) - - - -JNIGeneratedMethodSupport_unboxHandle_4bc785faa30981ed3ca002aef8d600c83e6f66e4 (7 samples, 0.01%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (2,167 samples, 4.18%) -Isol.. - - -__alloc_skb (24 samples, 0.05%) - - - -selinux_sk_getsecid (6 samples, 0.01%) - - - -psi_group_change (6 samples, 0.01%) - - - -__check_heap_object (10 samples, 0.02%) - - - -__x86_indirect_thunk_rax (24 samples, 0.05%) - - - -__get_user_nocheck_4 (79 samples, 0.15%) - - - -__netif_receive_skb_one_core (99 samples, 0.19%) - - - -Pthread_pthread_mutex_unlock_4817c536fb459a4a32739c23b0ed198cc1fb485f (76 samples, 0.15%) - - - -do_syscall_64 (149 samples, 0.29%) - - - -icmp_rcv (22 samples, 0.04%) - - - -ip_generic_getfrag (6 samples, 0.01%) - - - -syscall_enter_from_user_mode (6 samples, 0.01%) - - - -___pthread_cond_broadcast (19 samples, 0.04%) - - - -ttwu_do_wakeup (5 samples, 0.01%) - - - -__softirqentry_text_start (8 samples, 0.02%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (31 samples, 0.06%) - - - -ip_append_data (13 samples, 0.03%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (2,194 samples, 4.23%) -Datag.. - - -psi_task_change (257 samples, 0.50%) - - - -reweight_entity (13 samples, 0.03%) - - - -___pthread_cond_broadcast (94 samples, 0.18%) - - - -ReentrantLock_lock_c898d1de8855d56ce6120446f90aa9e4e86ede9f (673 samples, 1.30%) - - - -ip_output (8 samples, 0.02%) - - - -ttwu_do_wakeup (7 samples, 0.01%) - - - -psi_group_change (5 samples, 0.01%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (5 samples, 0.01%) - - - -__ip_append_data (8 samples, 0.02%) - - - -JNIGeneratedMethodSupport_getFieldOffsetFromId_5041c78d77a7b3d62103393b72fc35d80d2cc709 (5 samples, 0.01%) - - - -ThreadLocalHandles_ensureCapacity_22e5abcd3c07151c01ffcc4e0e4a54317d42c2a8 (7 samples, 0.01%) - - - -__switch_to (18 samples, 0.03%) - - - -__x64_sys_futex (16 samples, 0.03%) - - - -do_futex (5 samples, 0.01%) - - - -bpf_lsm_xfrm_decode_session (5 samples, 0.01%) - - - -ip_send_skb (144 samples, 0.28%) - - - -thread-7 (4,524 samples, 8.73%) -thread-7 - - -ip_generic_getfrag (17 samples, 0.03%) - - - -dev_hard_start_xmit (6 samples, 0.01%) - - - -__udp4_lib_rcv (60 samples, 0.12%) - - - -__ip_append_data (17 samples, 0.03%) - - - -cpuidle_governor_latency_req (9 samples, 0.02%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (7 samples, 0.01%) - - - -__x86_indirect_thunk_rax (7 samples, 0.01%) - - - -__libc_start_main_alias_2 (9 samples, 0.02%) - - - -ReentrantLock_lock_c898d1de8855d56ce6120446f90aa9e4e86ede9f (7 samples, 0.01%) - - - -sock_wfree (7 samples, 0.01%) - - - -__get_user_nocheck_4 (6 samples, 0.01%) - - - -select_task_rq_fair (17 samples, 0.03%) - - - -__GI___pthread_cond_wait (341 samples, 0.66%) - - - -ip_route_output_key_hash (13 samples, 0.03%) - - - -sched_setaffinity (20 samples, 0.04%) - - - -reweight_entity (152 samples, 0.29%) - - - -__sysvec_apic_timer_interrupt (823 samples, 1.59%) - - - -sysvec_apic_timer_interrupt (5 samples, 0.01%) - - - -ip_setup_cork (14 samples, 0.03%) - - - -selinux_ip_postroute_compat (14 samples, 0.03%) - - - -__softirqentry_text_start (115 samples, 0.22%) - - - -getInetAddress_family (15 samples, 0.03%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (1,293 samples, 2.50%) -Da.. - - -__entry_text_start (13 samples, 0.03%) - - - -do_futex (14 samples, 0.03%) - - - -flush_smp_call_function_queue (21 samples, 0.04%) - - - -kfree (6 samples, 0.01%) - - - -__libc_sendto (5 samples, 0.01%) - - - -__get_user_nocheck_4 (62 samples, 0.12%) - - - -entry_SYSCALL_64_after_hwframe (204 samples, 0.39%) - - - -icmp_route_lookup.constprop.0 (10 samples, 0.02%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (5 samples, 0.01%) - - - -select_task_rq_fair (10 samples, 0.02%) - - - -kmem_cache_free (7 samples, 0.01%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (1,594 samples, 3.08%) -Dat.. - - -copy_user_generic_string (6 samples, 0.01%) - - - -__x64_sys_futex (10 samples, 0.02%) - - - -ThreadLocalHandles_popFramesIncluding_a2f2b35267b27849afd06acabb6c2e3bc3b22169 (7 samples, 0.01%) - - - -JavaThreads_unpark_2ea667c9c895f0321a5b2853fc974fe6018f8b6f (122 samples, 0.24%) - - - -copy_user_generic_string (18 samples, 0.03%) - - - -__clone3 (1,934 samples, 3.73%) -__cl.. - - -acpi_idle_do_entry (2,420 samples, 4.67%) -acpi_.. - - -ip_setup_cork (7 samples, 0.01%) - - - -read_tsc (19 samples, 0.04%) - - - -__GI___pthread_mutex_unlock_usercnt (77 samples, 0.15%) - - - -selinux_ip_postroute_compat (10 samples, 0.02%) - - - -ip_route_output_key_hash_rcu (16 samples, 0.03%) - - - -__x86_indirect_thunk_rax (36 samples, 0.07%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (5 samples, 0.01%) - - - -LockSupport_park_ad3b0439cc81f3747a99376fb5cad89af288f997 (443 samples, 0.85%) - - - -csum_partial_copy_generic (22 samples, 0.04%) - - - -kfree (5 samples, 0.01%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (27 samples, 0.05%) - - - -ip_route_output_key_hash (15 samples, 0.03%) - - - -ip_finish_output2 (16 samples, 0.03%) - - - -__netif_receive_skb_core.constprop.0 (5 samples, 0.01%) - - - -__futex_abstimed_wait_common (409 samples, 0.79%) - - - -udp_sendmsg (105 samples, 0.20%) - - - -sysvec_apic_timer_interrupt (1,062 samples, 2.05%) -s.. - - -DatagramChannelImpl_beginWrite_e0b047bda5d2ef03b38b2294da1d52e27566ee32 (7 samples, 0.01%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (1,934 samples, 3.73%) -Thre.. - - -do_syscall_64 (183 samples, 0.35%) - - - -__skb_checksum_complete (17 samples, 0.03%) - - - -AbstractQueuedSynchronizer_unparkSuccessor_851859a085ed0112a4406e9c9b4d253092c06d1d (190 samples, 0.37%) - - - -dev_hard_start_xmit (11 samples, 0.02%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitor_2ecf5995a7a109dacede518d33424ec5ebddfde6 (13 samples, 0.03%) - - - -sysvec_apic_timer_interrupt (82 samples, 0.16%) - - - -ip_rcv_core (8 samples, 0.02%) - - - -futex_wait (29 samples, 0.06%) - - - -consume_skb (5 samples, 0.01%) - - - -AbstractQueuedSynchronizer_release_a6f0f81643a4166b53eeaa75bf587c535be7bad9 (219 samples, 0.42%) - - - -ipv4_mtu (11 samples, 0.02%) - - - -AbstractQueuedSynchronizer_release_a6f0f81643a4166b53eeaa75bf587c535be7bad9 (281 samples, 0.54%) - - - -JNIObjectHandles_popLocalFramesIncluding_33a493f8782cc84a75a079908d7e5b418b3738fc (5 samples, 0.01%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (8 samples, 0.02%) - - - -__switch_to_asm (7 samples, 0.01%) - - - -ip_push_pending_frames (17 samples, 0.03%) - - - -syscall_return_via_sysret (15 samples, 0.03%) - - - -ip_append_data (5 samples, 0.01%) - - - -do_syscall_64 (7 samples, 0.01%) - - - -fib_table_lookup (6 samples, 0.01%) - - - -psi_task_switch (7 samples, 0.01%) - - - -native_write_msr (13 samples, 0.03%) - - - -ip_setup_cork (13 samples, 0.03%) - - - -AbstractQueuedSynchronizer_parkAndCheckInterrupt_5f77ccdb5d848784815a610576e6a7d474e2c6b6 (600 samples, 1.16%) - - - -LockSupport_park_ad3b0439cc81f3747a99376fb5cad89af288f997 (545 samples, 1.05%) - - - -udp_sendmsg (163 samples, 0.31%) - - - -entry_SYSCALL_64_after_hwframe (23 samples, 0.04%) - - - -__ip_make_skb (9 samples, 0.02%) - - - -__x64_sys_sched_setaffinity (22 samples, 0.04%) - - - -validate_xmit_skb (25 samples, 0.05%) - - - -validate_xmit_skb (6 samples, 0.01%) - - - -udp_sendmsg (152 samples, 0.29%) - - - -__inet_dev_addr_type (10 samples, 0.02%) - - - -__ip_local_out (7 samples, 0.01%) - - - -__virt_addr_valid (5 samples, 0.01%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (930 samples, 1.79%) - - - -thread-1 (634 samples, 1.22%) - - - -select_task_rq_fair (22 samples, 0.04%) - - - -__ip_local_out (15 samples, 0.03%) - - - -__local_bh_enable_ip (5 samples, 0.01%) - - - -menu_select (73 samples, 0.14%) - - - -do_softirq (108 samples, 0.21%) - - - -dev_hard_start_xmit (5 samples, 0.01%) - - - -syscall_return_via_sysret (10 samples, 0.02%) - - - -__pthread_mutex_cond_lock (6 samples, 0.01%) - - - -check_stack_object (6 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (36 samples, 0.07%) - - - -sched_clock_cpu (6 samples, 0.01%) - - - -getInetAddress_addr (24 samples, 0.05%) - - - -entry_SYSCALL_64_after_hwframe (11 samples, 0.02%) - - - -asm_sysvec_apic_timer_interrupt (82 samples, 0.16%) - - - -acpi_processor_ffh_cstate_enter (1,246 samples, 2.40%) -ac.. - - -reweight_entity (11 samples, 0.02%) - - - -ip_rcv (6 samples, 0.01%) - - - -fib_table_lookup (7 samples, 0.01%) - - - -select_task_rq_fair (9 samples, 0.02%) - - - -__softirqentry_text_start (5 samples, 0.01%) - - - -__x86_indirect_thunk_rax (288 samples, 0.56%) - - - -pick_next_task_fair (6 samples, 0.01%) - - - -icmp_route_lookup.constprop.0 (9 samples, 0.02%) - - - -__udp4_lib_err (5 samples, 0.01%) - - - -ip_generic_getfrag (6 samples, 0.01%) - - - -icmp_route_lookup.constprop.0 (30 samples, 0.06%) - - - -udp_sendmsg (14 samples, 0.03%) - - - -__condvar_dec_grefs (49 samples, 0.09%) - - - -ThreadPoolExecutor$Worker_run_f861978740f7fe309db28b47935f0d22284f1441 (3,469 samples, 6.70%) -ThreadPoo.. - - -ip_finish_output2 (5 samples, 0.01%) - - - -update_process_times (7 samples, 0.01%) - - - -do_syscall_64 (9 samples, 0.02%) - - - -__udp4_lib_rcv (11 samples, 0.02%) - - - -__sys_sendto (340 samples, 0.66%) - - - -wake_q_add_safe (8 samples, 0.02%) - - - -read_tsc (6 samples, 0.01%) - - - -enqueue_entity (15 samples, 0.03%) - - - -__switch_to (9 samples, 0.02%) - - - -JavaThreads_ensureUnsafeParkEvent_77b8c19cff94e6325a0dc99352d8624db969530b (82 samples, 0.16%) - - - -schedule (5 samples, 0.01%) - - - -icmp_route_lookup.constprop.0 (7 samples, 0.01%) - - - -__clone3 (2,539 samples, 4.90%) -__clone3 - - -__ip_make_skb (7 samples, 0.01%) - - - -__udp4_lib_lookup (6 samples, 0.01%) - - - -decode_session4 (7 samples, 0.01%) - - - -sched_ttwu_pending (43 samples, 0.08%) - - - -ktime_get (16 samples, 0.03%) - - - -_raw_spin_lock_irqsave (13 samples, 0.03%) - - - -available_idle_cpu (6 samples, 0.01%) - - - -getInetAddress_family (7 samples, 0.01%) - - - -hrtimer_wakeup (8 samples, 0.02%) - - - -native_sched_clock (11 samples, 0.02%) - - - -iterate_groups (6 samples, 0.01%) - - - -ip_route_output_key_hash_rcu (53 samples, 0.10%) - - - -futex_wait (17 samples, 0.03%) - - - -ip_generic_getfrag (6 samples, 0.01%) - - - -poll_idle (1,864 samples, 3.60%) -pol.. - - -schedule (9 samples, 0.02%) - - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (297 samples, 0.57%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (1,323 samples, 2.55%) -Da.. - - -__ip_append_data (7 samples, 0.01%) - - - -__ip_dev_find (5 samples, 0.01%) - - - -fib_table_lookup (43 samples, 0.08%) - - - -enqueue_task (111 samples, 0.21%) - - - -__softirqentry_text_start (7 samples, 0.01%) - - - -fib_table_lookup (5 samples, 0.01%) - - - -sched_clock_cpu (19 samples, 0.04%) - - - -loopback_xmit (8 samples, 0.02%) - - - -do_syscall_64 (196 samples, 0.38%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (5 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (44 samples, 0.08%) - - - -Pthread_pthread_mutex_unlock_4817c536fb459a4a32739c23b0ed198cc1fb485f (86 samples, 0.17%) - - - -__icmp_send (73 samples, 0.14%) - - - -nr_iowait_cpu (12 samples, 0.02%) - - - -__ip_local_out (6 samples, 0.01%) - - - -AbstractQueuedSynchronizer_acquireQueued_5fdba57beb8676d17b9542ff03179d64f478f5cf (563 samples, 1.09%) - - - -net_rx_action (211 samples, 0.41%) - - - -acpi_processor_ffh_cstate_enter (7 samples, 0.01%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (889 samples, 1.72%) - - - -syscall_enter_from_user_mode (5 samples, 0.01%) - - - -_perf_ioctl (21 samples, 0.04%) - - - -__GI___lll_lock_wake (156 samples, 0.30%) - - - -copy_user_generic_string (30 samples, 0.06%) - - - -switch_mm_irqs_off (5 samples, 0.01%) - - - -__dev_queue_xmit (9 samples, 0.02%) - - - -ctx_resched (11 samples, 0.02%) - - - -__switch_to_asm (10 samples, 0.02%) - - - -alloc_skb_with_frags (8 samples, 0.02%) - - - -tick_sched_timer (7 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (6 samples, 0.01%) - - - -__rdgsbase_inactive (5 samples, 0.01%) - - - -ip_finish_output2 (6 samples, 0.01%) - - - -_copy_from_user (5 samples, 0.01%) - - - -fib_lookup_good_nhc (9 samples, 0.02%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (21 samples, 0.04%) - - - -futex_wake (16 samples, 0.03%) - - - -update_load_avg (8 samples, 0.02%) - - - -Pthread_pthread_cond_broadcast_eebf0c33ba863f59f420d2e79631b37822b99e02 (65 samples, 0.13%) - - - -net_rx_action (11 samples, 0.02%) - - - -ip_rcv_core (5 samples, 0.01%) - - - -__icmp_send (55 samples, 0.11%) - - - -entry_SYSCALL_64_after_hwframe (8 samples, 0.02%) - - - -try_to_wake_up (6 samples, 0.01%) - - - -ip_send_skb (95 samples, 0.18%) - - - -__dev_queue_xmit (18 samples, 0.03%) - - - -flush_smp_call_function_from_idle (5 samples, 0.01%) - - - -__wrgsbase_inactive (13 samples, 0.03%) - - - -__hrtimer_run_queues (38 samples, 0.07%) - - - -try_to_wake_up (5 samples, 0.01%) - - - -try_to_wake_up (15 samples, 0.03%) - - - -irq_work_needs_cpu (22 samples, 0.04%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (8 samples, 0.02%) - - - -select_task_rq_fair (5 samples, 0.01%) - - - -enqueue_task_fair (57 samples, 0.11%) - - - -entry_SYSCALL_64_after_hwframe (17 samples, 0.03%) - - - -sock_sendmsg (187 samples, 0.36%) - - - -__x86_indirect_thunk_rax (27 samples, 0.05%) - - - -selinux_xfrm_decode_session (6 samples, 0.01%) - - - -ip_make_skb (11 samples, 0.02%) - - - -start_thread (3,469 samples, 6.70%) -start_thr.. - - -__fget_files (5 samples, 0.01%) - - - -FutureTask_run_8b0bdf0834cb555c1e2aa8896a714d79bab78517 (2,276 samples, 4.39%) -Futur.. - - -__sys_sendto (179 samples, 0.35%) - - - -__submit_bio (6 samples, 0.01%) - - - -MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18bad517d67eae4d88 (3,469 samples, 6.70%) -Multicast.. - - -iomap_writepages (7 samples, 0.01%) - - - -tick_nohz_idle_retain_tick (8 samples, 0.02%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (1,330 samples, 2.57%) -Da.. - - -alloc_skb_with_frags (11 samples, 0.02%) - - - -dequeue_task_fair (6 samples, 0.01%) - - - -move_addr_to_kernel.part.0 (5 samples, 0.01%) - - - -remote_function (17 samples, 0.03%) - - - -kmem_cache_alloc_node (9 samples, 0.02%) - - - -loopback_xmit (8 samples, 0.02%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (7 samples, 0.01%) - - - -ret_from_fork (5 samples, 0.01%) - - - -kmem_cache_free (7 samples, 0.01%) - - - -__sysvec_apic_timer_interrupt (54 samples, 0.10%) - - - -icmp_rcv (11 samples, 0.02%) - - - -set_next_entity (9 samples, 0.02%) - - - -enqueue_entity (12 samples, 0.02%) - - - -ip_setup_cork (10 samples, 0.02%) - - - -__x86_indirect_thunk_rax (7 samples, 0.01%) - - - -udp_sendmsg (157 samples, 0.30%) - - - -kmalloc_slab (6 samples, 0.01%) - - - -__irq_exit_rcu (8 samples, 0.02%) - - - -ip_skb_dst_mtu (5 samples, 0.01%) - - - -ThreadPoolExecutor$Worker_run_f861978740f7fe309db28b47935f0d22284f1441 (1,934 samples, 3.73%) -Thre.. - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (5 samples, 0.01%) - - - -__GI___pthread_mutex_unlock_usercnt (60 samples, 0.12%) - - - -__x86_indirect_thunk_rax (10 samples, 0.02%) - - - -__schedule (5 samples, 0.01%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (2,539 samples, 4.90%) -Thread.. - - -syscall_return_via_sysret (5 samples, 0.01%) - - - -ip_finish_output2 (9 samples, 0.02%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (93 samples, 0.18%) - - - -thread-2 (3,528 samples, 6.81%) -thread-2 - - -acpi_processor_ffh_cstate_enter (15 samples, 0.03%) - - - -syscall_return_via_sysret (6 samples, 0.01%) - - - -AbstractQueuedSynchronizer_release_a6f0f81643a4166b53eeaa75bf587c535be7bad9 (189 samples, 0.36%) - - - -kmem_cache_free (10 samples, 0.02%) - - - -__x86_indirect_thunk_rax (9 samples, 0.02%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (32 samples, 0.06%) - - - -kfree (7 samples, 0.01%) - - - -__udp4_lib_rcv (13 samples, 0.03%) - - - -mark_wake_futex (5 samples, 0.01%) - - - -__softirqentry_text_start (6 samples, 0.01%) - - - -__icmp_send (75 samples, 0.14%) - - - -__ip_select_ident (5 samples, 0.01%) - - - -ip_local_deliver_finish (58 samples, 0.11%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (10 samples, 0.02%) - - - -entry_SYSCALL_64_after_hwframe (6 samples, 0.01%) - - - -psi_group_change (9 samples, 0.02%) - - - -mark_wake_futex (5 samples, 0.01%) - - - -process_backlog (5 samples, 0.01%) - - - -futex_wait (15 samples, 0.03%) - - - -MultiThreadedMonitorSupport_slowPathMonitorEnter_5c2ec80c70301e1f54c9deef94b70b719d5a10f5 (30 samples, 0.06%) - - - -udp4_lib_lookup2 (8 samples, 0.02%) - - - -ip_send_skb (155 samples, 0.30%) - - - -rcu_eqs_enter.constprop.0 (7 samples, 0.01%) - - - -xfrm_lookup_with_ifid (10 samples, 0.02%) - - - -selinux_socket_sendmsg (6 samples, 0.01%) - - - -__dev_queue_xmit (8 samples, 0.02%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (949 samples, 1.83%) -D.. - - -icmp_rcv (12 samples, 0.02%) - - - -cpuacct_charge (15 samples, 0.03%) - - - -process_backlog (201 samples, 0.39%) - - - -__libc_sendto (1,147 samples, 2.21%) -_.. - - -__dev_queue_xmit (8 samples, 0.02%) - - - -selinux_ip_postroute (16 samples, 0.03%) - - - -__netif_receive_skb_one_core (102 samples, 0.20%) - - - -tick_check_broadcast_expired (6 samples, 0.01%) - - - -ip_push_pending_frames (27 samples, 0.05%) - - - -hash_futex (6 samples, 0.01%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (12 samples, 0.02%) - - - -asm_common_interrupt (5 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (17 samples, 0.03%) - - - -psi_task_change (10 samples, 0.02%) - - - -JavaThreads_unpark_2ea667c9c895f0321a5b2853fc974fe6018f8b6f (166 samples, 0.32%) - - - -futex_wait_queue_me (28 samples, 0.05%) - - - -sock_alloc_send_pskb (7 samples, 0.01%) - - - -affine_move_task (6 samples, 0.01%) - - - -__ip_append_data (39 samples, 0.08%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (1,934 samples, 3.73%) -Posi.. - - -raw_spin_rq_lock_nested (9 samples, 0.02%) - - - -__GI___lll_lock_wake (88 samples, 0.17%) - - - -__udp4_lib_rcv (15 samples, 0.03%) - - - -schedule (10 samples, 0.02%) - - - -__wrgsbase_inactive (78 samples, 0.15%) - - - -do_futex (7 samples, 0.01%) - - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (419 samples, 0.81%) - - - -JavaThreads_park_9cfef0c461baa0314aafe1415754561e32f1e386 (496 samples, 0.96%) - - - -fib_table_lookup (46 samples, 0.09%) - - - -___pthread_mutex_lock (34 samples, 0.07%) - - - -do_syscall_64 (17 samples, 0.03%) - - - -native_load_tls (5 samples, 0.01%) - - - -hrtimer_interrupt (776 samples, 1.50%) - - - -syscall_enter_from_user_mode (9 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.01%) - - - -udp_sendmsg (7 samples, 0.01%) - - - -dequeue_task_fair (7 samples, 0.01%) - - - -Pthread_pthread_mutex_unlock_4817c536fb459a4a32739c23b0ed198cc1fb485f (60 samples, 0.12%) - - - -Pthread_pthread_mutex_unlock_4817c536fb459a4a32739c23b0ed198cc1fb485f (79 samples, 0.15%) - - - -__entry_text_start (27 samples, 0.05%) - - - -__futex_abstimed_wait_common (316 samples, 0.61%) - - - -xfrm_lookup_with_ifid (16 samples, 0.03%) - - - -security_skb_classify_flow (6 samples, 0.01%) - - - -JavaThreads_ensureUnsafeParkEvent_77b8c19cff94e6325a0dc99352d8624db969530b (23 samples, 0.04%) - - - -dequeue_entity (5 samples, 0.01%) - - - -__sched_setaffinity (18 samples, 0.03%) - - - -PosixParkEvent_condWait_48f9d4da7d07c2044e85cec5495ae177057e5073 (514 samples, 0.99%) - - - -acpi_processor_ffh_cstate_enter (8 samples, 0.02%) - - - -process_backlog (7 samples, 0.01%) - - - -_raw_spin_lock_irqsave (5 samples, 0.01%) - - - -__local_bh_enable_ip (109 samples, 0.21%) - - - -JNIGeneratedMethodSupport_unboxHandle_4bc785faa30981ed3ca002aef8d600c83e6f66e4 (6 samples, 0.01%) - - - -psi_group_change (6 samples, 0.01%) - - - -validate_xmit_xfrm (7 samples, 0.01%) - - - -__alloc_skb (9 samples, 0.02%) - - - -sock_wfree (8 samples, 0.02%) - - - -ip_finish_output2 (5 samples, 0.01%) - - - -thread-3 (2,628 samples, 5.07%) -thread-3 - - -__rdgsbase_inactive (60 samples, 0.12%) - - - -wake_up_q (6 samples, 0.01%) - - - -__schedule (8 samples, 0.02%) - - - -ip_send_skb (150 samples, 0.29%) - - - -__wrgsbase_inactive (8 samples, 0.02%) - - - -__ip_local_out (6 samples, 0.01%) - - - -irqtime_account_irq (6 samples, 0.01%) - - - -__update_load_avg_se (6 samples, 0.01%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (1,352 samples, 2.61%) -Da.. - - -_raw_spin_lock_irqsave (9 samples, 0.02%) - - - -__x86_indirect_thunk_rax (13 samples, 0.03%) - - - -sched_idle_set_state (8 samples, 0.02%) - - - -tick_nohz_idle_enter (14 samples, 0.03%) - - - -ParkEvent_initializeOnce_68f5df089169fde77d25ea87d820b2e9cca25332 (27 samples, 0.05%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (5 samples, 0.01%) - - - -ThreadPoolExecutor$Worker_run_f861978740f7fe309db28b47935f0d22284f1441 (2,194 samples, 4.23%) -Threa.. - - -__GI___lll_lock_wake (25 samples, 0.05%) - - - -ksys_write (32 samples, 0.06%) - - - -pick_next_task_fair (11 samples, 0.02%) - - - -sched_clock_cpu (5 samples, 0.01%) - - - -psi_group_change (7 samples, 0.01%) - - - -__schedule (24 samples, 0.05%) - - - -native_sched_clock (9 samples, 0.02%) - - - -kmem_cache_free (5 samples, 0.01%) - - - -psi_group_change (41 samples, 0.08%) - - - -fib_table_lookup (9 samples, 0.02%) - - - -schedule_hrtimeout_range_clock (10 samples, 0.02%) - - - -__netif_receive_skb_core.constprop.0 (8 samples, 0.02%) - - - -do_softirq (110 samples, 0.21%) - - - -__dev_queue_xmit (5 samples, 0.01%) - - - -__ip_append_data (21 samples, 0.04%) - - - -icmp_push_reply (13 samples, 0.03%) - - - -iterate_groups (21 samples, 0.04%) - - - -NET_InetAddressToSockaddr (68 samples, 0.13%) - - - -ttwu_do_activate (6 samples, 0.01%) - - - -__GI___pthread_mutex_unlock_usercnt (83 samples, 0.16%) - - - -thread-8 (2,485 samples, 4.80%) -threa.. - - -finish_task_switch.isra.0 (5 samples, 0.01%) - - - -__libc_sendto (5 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (70 samples, 0.14%) - - - -cpuidle_enter (94 samples, 0.18%) - - - -enqueue_task (7 samples, 0.01%) - - - -ip_append_data (9 samples, 0.02%) - - - -__icmp_send (62 samples, 0.12%) - - - -wake_up_q (7 samples, 0.01%) - - - -__update_load_avg_cfs_rq (15 samples, 0.03%) - - - -__alloc_skb (20 samples, 0.04%) - - - -___pthread_mutex_lock (5 samples, 0.01%) - - - -__clone3 (14 samples, 0.03%) - - - -__update_load_avg_se (161 samples, 0.31%) - - - -do_futex (19 samples, 0.04%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (12 samples, 0.02%) - - - -process_backlog (5 samples, 0.01%) - - - -___pthread_mutex_lock (34 samples, 0.07%) - - - -futex_wait (6 samples, 0.01%) - - - -Unsafe_park_8e78b5f196bf0524b1490ff9abb68dc337e02cca (500 samples, 0.96%) - - - -blk_mq_dispatch_rq_list (7 samples, 0.01%) - - - -start_thread (2,276 samples, 4.39%) -start.. - - -ip_append_data (11 samples, 0.02%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (9 samples, 0.02%) - - - -thread-4 (3,014 samples, 5.82%) -thread-4 - - -validate_xmit_xfrm (6 samples, 0.01%) - - - -__icmp_send (128 samples, 0.25%) - - - -AbstractQueuedSynchronizer_acquire_d7c03c3cee25dd5a735b5a4334799f668f70ef36 (624 samples, 1.20%) - - - -__x86_indirect_thunk_rax (29 samples, 0.06%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitor_2ecf5995a7a109dacede518d33424ec5ebddfde6 (15 samples, 0.03%) - - - -IsolateEnterStub_JNIFunctions_ExceptionCheck_c3880ec5388acdaaf0a33f93c718f75d394cf800_56464c7018196a101b3a4a0b8a60eff8ca309807 (10 samples, 0.02%) - - - -net_rx_action (109 samples, 0.21%) - - - -__alloc_skb (20 samples, 0.04%) - - - -select_task_rq_fair (8 samples, 0.02%) - - - -entry_SYSCALL_64_after_hwframe (6 samples, 0.01%) - - - -memcg_slab_post_alloc_hook (5 samples, 0.01%) - - - -__clone3 (1,946 samples, 3.76%) -__cl.. - - -validate_xmit_skb (15 samples, 0.03%) - - - -do_syscall_64 (7 samples, 0.01%) - - - -AbstractQueuedSynchronizer_unparkSuccessor_851859a085ed0112a4406e9c9b4d253092c06d1d (241 samples, 0.47%) - - - -tick_nohz_get_sleep_length (63 samples, 0.12%) - - - -__inet_dev_addr_type (8 samples, 0.02%) - - - -___pthread_mutex_lock (21 samples, 0.04%) - - - -entry_SYSCALL_64_after_hwframe (218 samples, 0.42%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (2,573 samples, 4.97%) -Datagr.. - - -ThreadPoolExecutor_runWorker_d6102a49f44caa9353f47edf6df17054308b7151 (2,194 samples, 4.23%) -Threa.. - - -__ip_make_skb (29 samples, 0.06%) - - - -AbstractQueuedSynchronizer_unparkSuccessor_851859a085ed0112a4406e9c9b4d253092c06d1d (210 samples, 0.41%) - - - -kmem_cache_alloc_node (15 samples, 0.03%) - - - -do_syscall_64 (6 samples, 0.01%) - - - -dev_hard_start_xmit (19 samples, 0.04%) - - - -__sys_sendto (194 samples, 0.37%) - - - -icmp_push_reply (12 samples, 0.02%) - - - -__netif_receive_skb_one_core (100 samples, 0.19%) - - - -select_task_rq_fair (13 samples, 0.03%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (5 samples, 0.01%) - - - -kmem_cache_alloc_node (13 samples, 0.03%) - - - -__futex_abstimed_wait_common (339 samples, 0.65%) - - - -__entry_text_start (33 samples, 0.06%) - - - -__GI___pthread_cond_wait (281 samples, 0.54%) - - - -ip_route_output_key_hash (9 samples, 0.02%) - - - -ipv4_mtu (10 samples, 0.02%) - - - -process_backlog (106 samples, 0.20%) - - - -ip_output (5 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (59 samples, 0.11%) - - - -JavaThreads_unpark_2ea667c9c895f0321a5b2853fc974fe6018f8b6f (97 samples, 0.19%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (27 samples, 0.05%) - - - -Pthread_pthread_mutex_unlock_4817c536fb459a4a32739c23b0ed198cc1fb485f (76 samples, 0.15%) - - - -sock_alloc_send_pskb (11 samples, 0.02%) - - - -ip_send_skb (139 samples, 0.27%) - - - -do_syscall_64 (20 samples, 0.04%) - - - -wake_up_q (20 samples, 0.04%) - - - -__icmp_send (13 samples, 0.03%) - - - -slab_free_freelist_hook.constprop.0 (5 samples, 0.01%) - - - -sock_alloc_send_pskb (5 samples, 0.01%) - - - -native_sched_clock (36 samples, 0.07%) - - - -entry_SYSCALL_64_after_hwframe (22 samples, 0.04%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (7 samples, 0.01%) - - - -selinux_ipv4_output (14 samples, 0.03%) - - - -__GI___pthread_mutex_unlock_usercnt (76 samples, 0.15%) - - - -JavaThreads_unpark_2ea667c9c895f0321a5b2853fc974fe6018f8b6f (119 samples, 0.23%) - - - -___pthread_cond_broadcast (7 samples, 0.01%) - - - -netdev_core_pick_tx (5 samples, 0.01%) - - - -select_task_rq_fair (6 samples, 0.01%) - - - -csum_partial_copy_generic (18 samples, 0.03%) - - - -LockSupport_park_ad3b0439cc81f3747a99376fb5cad89af288f997 (577 samples, 1.11%) - - - -AbstractQueuedSynchronizer_acquire_d7c03c3cee25dd5a735b5a4334799f668f70ef36 (555 samples, 1.07%) - - - -__x86_indirect_thunk_rax (26 samples, 0.05%) - - - -netdev_core_pick_tx (11 samples, 0.02%) - - - -ip_local_deliver_finish (69 samples, 0.13%) - - - -psi_task_switch (7 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.01%) - - - -__update_load_avg_se (6 samples, 0.01%) - - - -skb_free_head (8 samples, 0.02%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (77 samples, 0.15%) - - - -__condvar_dec_grefs (33 samples, 0.06%) - - - -native_sched_clock (22 samples, 0.04%) - - - -entry_SYSCALL_64_after_hwframe (9 samples, 0.02%) - - - -loopback_xmit (12 samples, 0.02%) - - - -rcu_needs_cpu (5 samples, 0.01%) - - - -Pthread_pthread_cond_broadcast_eebf0c33ba863f59f420d2e79631b37822b99e02 (78 samples, 0.15%) - - - -__libc_sendto (964 samples, 1.86%) -_.. - - -tick_nohz_get_sleep_length (10 samples, 0.02%) - - - -tick_nohz_idle_enter (49 samples, 0.09%) - - - -nf_hook_slow (6 samples, 0.01%) - - - -getInetAddress_family (6 samples, 0.01%) - - - -Unsafe_unpark_d7094c561c57e072c1b45b47117ccd4b31ac594f (175 samples, 0.34%) - - - -ktime_get_update_offsets_now (38 samples, 0.07%) - - - -getInetAddress_family (57 samples, 0.11%) - - - -getInetAddress_addr (34 samples, 0.07%) - - - -kmem_cache_alloc_node (12 samples, 0.02%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (2,167 samples, 4.18%) -Java.. - - -entry_SYSCALL_64_after_hwframe (181 samples, 0.35%) - - - -siphash_3u32 (18 samples, 0.03%) - - - -entry_SYSCALL_64_after_hwframe (26 samples, 0.05%) - - - -netif_rx (5 samples, 0.01%) - - - -ip_setup_cork (9 samples, 0.02%) - - - -kmem_cache_alloc_trace (5 samples, 0.01%) - - - -decode_session4 (10 samples, 0.02%) - - - -__ip_append_data (43 samples, 0.08%) - - - -icmp_push_reply (13 samples, 0.03%) - - - -kmem_cache_alloc_node (6 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (5 samples, 0.01%) - - - -__ip_make_skb (9 samples, 0.02%) - - - -process_backlog (6 samples, 0.01%) - - - -FutureTask_run_8b0bdf0834cb555c1e2aa8896a714d79bab78517 (2,194 samples, 4.23%) -Futur.. - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (1,290 samples, 2.49%) -Da.. - - -sched_clock_cpu (28 samples, 0.05%) - - - -DatagramChannelImpl_beginWrite_e0b047bda5d2ef03b38b2294da1d52e27566ee32 (103 samples, 0.20%) - - - -__x64_sys_futex (9 samples, 0.02%) - - - -__switch_to_asm (8 samples, 0.02%) - - - -udp_send_skb (142 samples, 0.27%) - - - -ip_append_data (17 samples, 0.03%) - - - -__ip_make_skb (28 samples, 0.05%) - - - -__ip_dev_find (5 samples, 0.01%) - - - -kmem_cache_free (5 samples, 0.01%) - - - -do_futex (7 samples, 0.01%) - - - -MultiThreadedMonitorSupport_monitorExit_f765f7445e650efe1207579ef06c6f8ac708d1b5 (11 samples, 0.02%) - - - -ip_finish_output2 (10 samples, 0.02%) - - - -psi_task_switch (11 samples, 0.02%) - - - -ip_skb_dst_mtu (11 samples, 0.02%) - - - -sched_clock_cpu (6 samples, 0.01%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (10 samples, 0.02%) - - - -__napi_poll (109 samples, 0.21%) - - - -rcu_idle_exit (28 samples, 0.05%) - - - -futex_wait (11 samples, 0.02%) - - - -__netif_receive_skb_core.constprop.0 (5 samples, 0.01%) - - - -JavaThreads_ensureUnsafeParkEvent_77b8c19cff94e6325a0dc99352d8624db969530b (56 samples, 0.11%) - - - -rb_erase (5 samples, 0.01%) - - - -ThreadLocalHandles_ensureCapacity_22e5abcd3c07151c01ffcc4e0e4a54317d42c2a8 (6 samples, 0.01%) - - - -enqueue_to_backlog (10 samples, 0.02%) - - - -__libc_sendto (1,374 samples, 2.65%) -__.. - - -IsolateEnterStub_JNIFunctions_ExceptionCheck_c3880ec5388acdaaf0a33f93c718f75d394cf800_56464c7018196a101b3a4a0b8a60eff8ca309807 (12 samples, 0.02%) - - - -__cgroup_bpf_run_filter_skb (10 samples, 0.02%) - - - -psi_task_change (9 samples, 0.02%) - - - -__dev_queue_xmit (9 samples, 0.02%) - - - -AbstractQueuedSynchronizer_unparkSuccessor_851859a085ed0112a4406e9c9b4d253092c06d1d (150 samples, 0.29%) - - - -AbstractQueuedSynchronizer_acquire_d7c03c3cee25dd5a735b5a4334799f668f70ef36 (396 samples, 0.76%) - - - -__update_load_avg_cfs_rq (5 samples, 0.01%) - - - -CEntryPointSnippets_attachUnattachedThread_624b0c1d4e08bdf4608c1290142e118ef51d6192 (8 samples, 0.02%) - - - -PosixParkEvent_condWait_48f9d4da7d07c2044e85cec5495ae177057e5073 (430 samples, 0.83%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (1,275 samples, 2.46%) -Da.. - - -selinux_ip_postroute (9 samples, 0.02%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (5 samples, 0.01%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (1,823 samples, 3.52%) -Jav.. - - -schedule (12 samples, 0.02%) - - - -psi_group_change (8 samples, 0.02%) - - - -Inet4Address_isLinkLocalAddress_ce47843b990249e34a84313af9f6958152044ee1 (5 samples, 0.01%) - - - -set_next_entity (8 samples, 0.02%) - - - -ip_append_data (17 samples, 0.03%) - - - -ip_local_deliver_finish (96 samples, 0.19%) - - - -process_backlog (74 samples, 0.14%) - - - -entry_SYSCALL_64_after_hwframe (167 samples, 0.32%) - - - -acpi_idle_enter (5 samples, 0.01%) - - - -ip_protocol_deliver_rcu (97 samples, 0.19%) - - - -ip_route_output_key_hash_rcu (6 samples, 0.01%) - - - -__schedule (14 samples, 0.03%) - - - -do_futex (12 samples, 0.02%) - - - -csum_partial_copy_generic (25 samples, 0.05%) - - - -ThreadLocalHandles_pushFrame_c070e6fc2960d253faa099aad7972764e55d4ca2 (18 samples, 0.03%) - - - -__x64_sys_epoll_pwait (10 samples, 0.02%) - - - -Buffer_position_542e9d12d78d28ae335243c3729c7f4a18caa5f2 (6 samples, 0.01%) - - - -__pthread_cleanup_pop (6 samples, 0.01%) - - - -wb_writeback (7 samples, 0.01%) - - - -selinux_ip_postroute_compat (10 samples, 0.02%) - - - -selinux_ip_postroute_compat (11 samples, 0.02%) - - - -__icmp_send (12 samples, 0.02%) - - - -memcg_slab_post_alloc_hook (8 samples, 0.02%) - - - -JavaThreads_park_9cfef0c461baa0314aafe1415754561e32f1e386 (520 samples, 1.00%) - - - -__alloc_skb (42 samples, 0.08%) - - - -selinux_ip_postroute (9 samples, 0.02%) - - - -udp_send_skb (100 samples, 0.19%) - - - -ThreadLocalHandles_popFramesIncluding_a2f2b35267b27849afd06acabb6c2e3bc3b22169 (5 samples, 0.01%) - - - -futex_wait_setup (7 samples, 0.01%) - - - -psi_group_change (5 samples, 0.01%) - - - -___pthread_cond_broadcast (8 samples, 0.02%) - - - -alloc_skb_with_frags (8 samples, 0.02%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (5 samples, 0.01%) - - - -fib_table_lookup (5 samples, 0.01%) - - - -update_rq_clock (401 samples, 0.77%) - - - -__schedule (14 samples, 0.03%) - - - -native_sched_clock (5 samples, 0.01%) - - - -DatagramChannelImpl_send_6bb2ce127b1f52f0bf68e97a6085aa686e4b83f4 (1,946 samples, 3.76%) -Data.. - - -cpuidle_enter_state (94 samples, 0.18%) - - - -schedule (12 samples, 0.02%) - - - -JavaThreads_park_9cfef0c461baa0314aafe1415754561e32f1e386 (865 samples, 1.67%) - - - -dequeue_entity (6 samples, 0.01%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (5 samples, 0.01%) - - - -psi_group_change (6 samples, 0.01%) - - - -__GI___lll_lock_wake (87 samples, 0.17%) - - - -ThreadLocalHandles_pushFrame_c070e6fc2960d253faa099aad7972764e55d4ca2 (9 samples, 0.02%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (21 samples, 0.04%) - - - -__libc_sendto (5 samples, 0.01%) - - - -getInetAddress_family (6 samples, 0.01%) - - - -move_addr_to_kernel.part.0 (5 samples, 0.01%) - - - -ip_protocol_deliver_rcu (10 samples, 0.02%) - - - -___pthread_mutex_lock (20 samples, 0.04%) - - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (311 samples, 0.60%) - - - -__get_user_nocheck_4 (5 samples, 0.01%) - - - -syscall_enter_from_user_mode (6 samples, 0.01%) - - - -_start (10 samples, 0.02%) - - - -IsolateEnterStub_JNIFunctions_ExceptionCheck_c3880ec5388acdaaf0a33f93c718f75d394cf800_56464c7018196a101b3a4a0b8a60eff8ca309807 (25 samples, 0.05%) - - - -__GI___ioctl_time64 (198 samples, 0.38%) - - - -loopback_xmit (7 samples, 0.01%) - - - -do_csum (12 samples, 0.02%) - - - -JNIObjectHandles_popLocalFramesIncluding_33a493f8782cc84a75a079908d7e5b418b3738fc (6 samples, 0.01%) - - - -__switch_to (5 samples, 0.01%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (2,276 samples, 4.39%) -Isola.. - - -__local_bh_enable_ip (122 samples, 0.24%) - - - -__ip_local_out (5 samples, 0.01%) - - - -__ip_make_skb (25 samples, 0.05%) - - - -__entry_text_start (37 samples, 0.07%) - - - -__condvar_dec_grefs (52 samples, 0.10%) - - - -__entry_text_start (11 samples, 0.02%) - - - -__entry_text_start (24 samples, 0.05%) - - - -__futex_abstimed_wait_common (322 samples, 0.62%) - - - -__x86_indirect_thunk_rax (20 samples, 0.04%) - - - -__GI___lll_lock_wake (16 samples, 0.03%) - - - -futex_wait (11 samples, 0.02%) - - - -futex_wait_queue_me (6 samples, 0.01%) - - - -ip_route_output_key_hash_rcu (23 samples, 0.04%) - - - -entry_SYSCALL_64_after_hwframe (22 samples, 0.04%) - - - -futex_wait_setup (5 samples, 0.01%) - - - -icmp_push_reply (28 samples, 0.05%) - - - -__ip_finish_output (8 samples, 0.02%) - - - -siphash_3u32 (9 samples, 0.02%) - - - -ParkEvent_initializeOnce_68f5df089169fde77d25ea87d820b2e9cca25332 (45 samples, 0.09%) - - - -icmp_glue_bits (9 samples, 0.02%) - - - -__x86_indirect_thunk_rax (12 samples, 0.02%) - - - -psi_group_change (6 samples, 0.01%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (5 samples, 0.01%) - - - -do_syscall_64 (14 samples, 0.03%) - - - -__libc_sendto (5 samples, 0.01%) - - - -syscall_enter_from_user_mode (6 samples, 0.01%) - - - -pick_next_task_fair (7 samples, 0.01%) - - - -raw_spin_rq_lock_nested (15 samples, 0.03%) - - - -__udp4_lib_rcv (18 samples, 0.03%) - - - -net_rx_action (112 samples, 0.22%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (51 samples, 0.10%) - - - -schedule (6 samples, 0.01%) - - - -sock_alloc_send_pskb (5 samples, 0.01%) - - - -pick_next_entity (5 samples, 0.01%) - - - -rcu_eqs_enter.constprop.0 (6 samples, 0.01%) - - - -__netif_receive_skb_core.constprop.0 (11 samples, 0.02%) - - - -select_task_rq_fair (9 samples, 0.02%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (1,823 samples, 3.52%) -Thr.. - - -raw_spin_rq_lock_nested (16 samples, 0.03%) - - - -ip_route_output_key_hash_rcu (10 samples, 0.02%) - - - -ip_make_skb (5 samples, 0.01%) - - - -cpu_startup_entry (5 samples, 0.01%) - - - -icmp_route_lookup.constprop.0 (17 samples, 0.03%) - - - -__local_bh_enable_ip (116 samples, 0.22%) - - - -loopback_xmit (6 samples, 0.01%) - - - -fib_lookup_good_nhc (6 samples, 0.01%) - - - -csum_partial_copy_generic (26 samples, 0.05%) - - - -write_cache_pages (7 samples, 0.01%) - - - -ip_setup_cork (6 samples, 0.01%) - - - -__update_load_avg_cfs_rq (7 samples, 0.01%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (20 samples, 0.04%) - - - -smp_call_function_single (17 samples, 0.03%) - - - -acpi_idle_do_entry (92 samples, 0.18%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (17 samples, 0.03%) - - - -__x64_sys_futex (14 samples, 0.03%) - - - -__ip_local_out (6 samples, 0.01%) - - - -raw_local_deliver (6 samples, 0.01%) - - - -ip_rcv (9 samples, 0.02%) - - - -sched_clock_cpu (11 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.01%) - - - -ip_finish_output2 (134 samples, 0.26%) - - - -alloc_skb_with_frags (10 samples, 0.02%) - - - -migrate_enable (7 samples, 0.01%) - - - -idle_cpu (6 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (47 samples, 0.09%) - - - -entry_SYSCALL_64_after_hwframe (11 samples, 0.02%) - - - -__ip_local_out (8 samples, 0.02%) - - - -PosixParkEvent_condWait_48f9d4da7d07c2044e85cec5495ae177057e5073 (558 samples, 1.08%) - - - -netif_skb_features (5 samples, 0.01%) - - - -ReentrantLock$Sync_tryRelease_a66c341958d8201110d2de33406f88fc73bac424 (28 samples, 0.05%) - - - -entry_SYSCALL_64_after_hwframe (27 samples, 0.05%) - - - -[perf] (394 samples, 0.76%) - - - -selinux_ipv4_output (11 samples, 0.02%) - - - -selinux_socket_sendmsg (9 samples, 0.02%) - - - -__napi_poll (107 samples, 0.21%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (11 samples, 0.02%) - - - -__ip_select_ident (7 samples, 0.01%) - - - -__local_bh_enable_ip (75 samples, 0.14%) - - - -memcg_slab_post_alloc_hook (9 samples, 0.02%) - - - -__entry_text_start (32 samples, 0.06%) - - - -ThreadPoolExecutor$Worker_run_f861978740f7fe309db28b47935f0d22284f1441 (2,575 samples, 4.97%) -Thread.. - - -__icmp_send (18 samples, 0.03%) - - - -irqtime_account_irq (59 samples, 0.11%) - - - -mark_wake_futex (5 samples, 0.01%) - - - -schedule (27 samples, 0.05%) - - - -irqtime_account_irq (8 samples, 0.02%) - - - -queue_core_balance (7 samples, 0.01%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (17 samples, 0.03%) - - - -DatagramChannelImpl_beginWrite_e0b047bda5d2ef03b38b2294da1d52e27566ee32 (6 samples, 0.01%) - - - -do_idle (94 samples, 0.18%) - - - -select_task_rq_fair (9 samples, 0.02%) - - - -rb_insert_color (15 samples, 0.03%) - - - -update_load_avg (8 samples, 0.02%) - - - -ThreadLocalHandles_ensureCapacity_22e5abcd3c07151c01ffcc4e0e4a54317d42c2a8 (7 samples, 0.01%) - - - -psi_task_change (6 samples, 0.01%) - - - -JNIObjectHandles_popLocalFramesIncluding_33a493f8782cc84a75a079908d7e5b418b3738fc (6 samples, 0.01%) - - - -getInetAddress_family (27 samples, 0.05%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (2,539 samples, 4.90%) -PosixJ.. - - -MultiThreadedMonitorSupport_slowPathMonitorExit_183871de385508d0f6b4f0881e8e0c44628018b3 (18 samples, 0.03%) - - - -Unsafe_park_8e78b5f196bf0524b1490ff9abb68dc337e02cca (593 samples, 1.14%) - - - -_raw_spin_lock_irqsave (11 samples, 0.02%) - - - -icmp_route_lookup.constprop.0 (16 samples, 0.03%) - - - -select_task_rq_fair (11 samples, 0.02%) - - - -ThreadPoolExecutor_runWorker_d6102a49f44caa9353f47edf6df17054308b7151 (1,946 samples, 3.76%) -Thre.. - - -net_rx_action (97 samples, 0.19%) - - - -net_rx_action (12 samples, 0.02%) - - - -check_preempt_curr (15 samples, 0.03%) - - - -raw_spin_rq_lock_nested (11 samples, 0.02%) - - - -sched_clock_cpu (13 samples, 0.03%) - - - -__x64_sys_futex (6 samples, 0.01%) - - - -native_sched_clock (20 samples, 0.04%) - - - -__entry_text_start (10 samples, 0.02%) - - - -ip_push_pending_frames (7 samples, 0.01%) - - - -call_timer_fn (6 samples, 0.01%) - - - -ip_skb_dst_mtu (6 samples, 0.01%) - - - -__schedule (10 samples, 0.02%) - - - -start_kernel (5 samples, 0.01%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (1,339 samples, 2.58%) -Da.. - - -__x64_sys_futex (5 samples, 0.01%) - - - -native_sched_clock (5 samples, 0.01%) - - - -mark_wake_futex (5 samples, 0.01%) - - - -select_task_rq_fair (10 samples, 0.02%) - - - -get_cpu_device (8 samples, 0.02%) - - - -blk_mq_sched_dispatch_requests (7 samples, 0.01%) - - - -menu_select (191 samples, 0.37%) - - - -dev_hard_start_xmit (9 samples, 0.02%) - - - -__schedule (9 samples, 0.02%) - - - -iomap_file_buffered_write (29 samples, 0.06%) - - - -__x64_sys_futex (22 samples, 0.04%) - - - -Unsafe_park_8e78b5f196bf0524b1490ff9abb68dc337e02cca (522 samples, 1.01%) - - - -acpi_processor_ffh_cstate_enter (633 samples, 1.22%) - - - -ip_route_output_key_hash_rcu (13 samples, 0.03%) - - - -Unsafe_unpark_d7094c561c57e072c1b45b47117ccd4b31ac594f (125 samples, 0.24%) - - - -icmp_push_reply (17 samples, 0.03%) - - - -udp_err (7 samples, 0.01%) - - - -schedule (6 samples, 0.01%) - - - -futex_wake (7 samples, 0.01%) - - - -psi_group_change (12 samples, 0.02%) - - - -__udp4_lib_rcv (52 samples, 0.10%) - - - -__netif_receive_skb_one_core (105 samples, 0.20%) - - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (284 samples, 0.55%) - - - -JavaThreads_ensureUnsafeParkEvent_77b8c19cff94e6325a0dc99352d8624db969530b (67 samples, 0.13%) - - - -__switch_to (7 samples, 0.01%) - - - -do_futex (5 samples, 0.01%) - - - -sock_alloc_send_pskb (6 samples, 0.01%) - - - -ip_route_output_key_hash_rcu (7 samples, 0.01%) - - - -mark_wake_futex (12 samples, 0.02%) - - - -native_sched_clock (8 samples, 0.02%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitor_2ecf5995a7a109dacede518d33424ec5ebddfde6 (8 samples, 0.02%) - - - -select_task_rq_fair (6 samples, 0.01%) - - - -ttwu_queue_wakelist (7 samples, 0.01%) - - - -__x64_sys_sendto (159 samples, 0.31%) - - - -ip_setup_cork (11 samples, 0.02%) - - - -__alloc_skb (5 samples, 0.01%) - - - -_copy_from_iter (15 samples, 0.03%) - - - -__netif_receive_skb_core.constprop.0 (9 samples, 0.02%) - - - -sock_wfree (14 samples, 0.03%) - - - -acpi_processor_ffh_cstate_enter (299 samples, 0.58%) - - - -fib_table_lookup (40 samples, 0.08%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (67 samples, 0.13%) - - - -rcu_read_unlock_strict (9 samples, 0.02%) - - - -ThreadLocalHandles_create_e73ceb82cc40aa1b541873d16f11c8b5b16f2175 (20 samples, 0.04%) - - - -psi_group_change (796 samples, 1.54%) - - - -sched_clock_cpu (9 samples, 0.02%) - - - -udp_sendmsg (10 samples, 0.02%) - - - -psi_group_change (6 samples, 0.01%) - - - -[unknown] (13 samples, 0.03%) - - - -__x64_sys_sendto (180 samples, 0.35%) - - - -loopback_xmit (23 samples, 0.04%) - - - -__libc_sendto (8 samples, 0.02%) - - - -__x86_indirect_thunk_rax (5 samples, 0.01%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (15 samples, 0.03%) - - - -psi_task_switch (5 samples, 0.01%) - - - -___pthread_cond_broadcast (52 samples, 0.10%) - - - -ip_route_output_key_hash_rcu (6 samples, 0.01%) - - - -__x86_indirect_thunk_rax (8 samples, 0.02%) - - - -ip_rcv_finish_core.constprop.0 (10 samples, 0.02%) - - - -start_thread (1,946 samples, 3.76%) -star.. - - -ParkEvent_initializeOnce_68f5df089169fde77d25ea87d820b2e9cca25332 (23 samples, 0.04%) - - - -ip_route_output_key_hash (8 samples, 0.02%) - - - -__ip_finish_output (10 samples, 0.02%) - - - -syscall_return_via_sysret (5 samples, 0.01%) - - - -mark_wake_futex (5 samples, 0.01%) - - - -__condvar_dec_grefs (92 samples, 0.18%) - - - -psi_group_change (16 samples, 0.03%) - - - -xfrm_lookup_with_ifid (17 samples, 0.03%) - - - -selinux_ip_postroute_compat (10 samples, 0.02%) - - - -syscall_return_via_sysret (17 samples, 0.03%) - - - -sock_alloc_send_pskb (5 samples, 0.01%) - - - -JavaThreads_park_9cfef0c461baa0314aafe1415754561e32f1e386 (527 samples, 1.02%) - - - -__sys_sendto (129 samples, 0.25%) - - - -FutureTask_run_8b0bdf0834cb555c1e2aa8896a714d79bab78517 (3,469 samples, 6.70%) -FutureTas.. - - -acpi_idle_do_entry (371 samples, 0.72%) - - - -__GI___pthread_mutex_unlock_usercnt (6 samples, 0.01%) - - - -__softirqentry_text_start (6 samples, 0.01%) - - - -can_stop_idle_tick (24 samples, 0.05%) - - - -__cgroup_bpf_run_filter_skb (11 samples, 0.02%) - - - -__kmalloc_node_track_caller (9 samples, 0.02%) - - - -plist_del (6 samples, 0.01%) - - - -enqueue_to_backlog (9 samples, 0.02%) - - - -DatagramChannelImpl_beginWrite_e0b047bda5d2ef03b38b2294da1d52e27566ee32 (57 samples, 0.11%) - - - -Unsafe_unpark_d7094c561c57e072c1b45b47117ccd4b31ac594f (125 samples, 0.24%) - - - -psi_group_change (12 samples, 0.02%) - - - -syscall_enter_from_user_mode (5 samples, 0.01%) - - - -do_futex (14 samples, 0.03%) - - - -__ip_append_data (10 samples, 0.02%) - - - -AbstractQueuedSynchronizer_unparkSuccessor_851859a085ed0112a4406e9c9b4d253092c06d1d (129 samples, 0.25%) - - - -rb_erase (5 samples, 0.01%) - - - -sock_alloc_send_pskb (8 samples, 0.02%) - - - -switch_mm_irqs_off (7 samples, 0.01%) - - - -do_futex (6 samples, 0.01%) - - - -[perf] (412 samples, 0.80%) - - - -entry_SYSCALL_64_after_hwframe (171 samples, 0.33%) - - - -enqueue_task (82 samples, 0.16%) - - - -__libc_poll (16 samples, 0.03%) - - - -__netif_receive_skb_core.constprop.0 (7 samples, 0.01%) - - - -__condvar_confirm_wakeup (6 samples, 0.01%) - - - -schedule (6 samples, 0.01%) - - - -start_thread (1,934 samples, 3.73%) -star.. - - -raw_spin_rq_lock_nested (7 samples, 0.01%) - - - -__x64_sys_sendto (129 samples, 0.25%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (22 samples, 0.04%) - - - -__entry_text_start (18 samples, 0.03%) - - - -__GI___lll_lock_wake (9 samples, 0.02%) - - - -set_next_entity (34 samples, 0.07%) - - - -reweight_entity (18 samples, 0.03%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (128 samples, 0.25%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (23 samples, 0.04%) - - - -kfree (8 samples, 0.02%) - - - -__ksize (6 samples, 0.01%) - - - -ParkEvent_initializeOnce_68f5df089169fde77d25ea87d820b2e9cca25332 (20 samples, 0.04%) - - - -__softirqentry_text_start (5 samples, 0.01%) - - - -reweight_entity (26 samples, 0.05%) - - - -__get_user_nocheck_4 (65 samples, 0.13%) - - - -getInetAddress_addr (31 samples, 0.06%) - - - -do_syscall_64 (32 samples, 0.06%) - - - -LockSupport_park_ad3b0439cc81f3747a99376fb5cad89af288f997 (504 samples, 0.97%) - - - -select_task_rq_fair (7 samples, 0.01%) - - - -sock_def_write_space (6 samples, 0.01%) - - - -AbstractQueuedSynchronizer_acquireQueued_5fdba57beb8676d17b9542ff03179d64f478f5cf (482 samples, 0.93%) - - - -reweight_entity (7 samples, 0.01%) - - - -ThreadLocalHandles_ensureCapacity_22e5abcd3c07151c01ffcc4e0e4a54317d42c2a8 (6 samples, 0.01%) - - - -do_syscall_64 (23 samples, 0.04%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (50 samples, 0.10%) - - - -tick_nohz_next_event (28 samples, 0.05%) - - - -JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b (9 samples, 0.02%) - - - -select_task_rq_fair (12 samples, 0.02%) - - - -syscall_return_via_sysret (7 samples, 0.01%) - - - -ip_finish_output2 (10 samples, 0.02%) - - - -mark_wake_futex (7 samples, 0.01%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (1,245 samples, 2.40%) -Da.. - - -icmp_rcv (5 samples, 0.01%) - - - -sock_wfree (6 samples, 0.01%) - - - -Unsafe_unpark_d7094c561c57e072c1b45b47117ccd4b31ac594f (168 samples, 0.32%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (207 samples, 0.40%) - - - -dequeue_task_fair (41 samples, 0.08%) - - - -get_futex_key (8 samples, 0.02%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (2,194 samples, 4.23%) -Threa.. - - -syscall_enter_from_user_mode (12 samples, 0.02%) - - - -update_load_avg (5 samples, 0.01%) - - - -copy_user_generic_string (35 samples, 0.07%) - - - -wb_workfn (7 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (38 samples, 0.07%) - - - -entry_SYSCALL_64_after_hwframe (19 samples, 0.04%) - - - -__ip_make_skb (8 samples, 0.02%) - - - -ThreadLocalHandles_ensureCapacity_22e5abcd3c07151c01ffcc4e0e4a54317d42c2a8 (14 samples, 0.03%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (11 samples, 0.02%) - - - -__GI___pthread_cond_wait (6 samples, 0.01%) - - - -__ip_append_data (37 samples, 0.07%) - - - -__udp4_lib_rcv (136 samples, 0.26%) - - - -__netif_receive_skb_one_core (86 samples, 0.17%) - - - -psi_task_switch (8 samples, 0.02%) - - - -loopback_xmit (11 samples, 0.02%) - - - -xfrm_lookup_with_ifid (16 samples, 0.03%) - - - -ip_finish_output2 (24 samples, 0.05%) - - - -dev_hard_start_xmit (6 samples, 0.01%) - - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (263 samples, 0.51%) - - - -futex_wake (6 samples, 0.01%) - - - -ip_local_deliver_finish (5 samples, 0.01%) - - - -native_sched_clock (10 samples, 0.02%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (940 samples, 1.81%) -D.. - - -ip_route_output_key_hash_rcu (29 samples, 0.06%) - - - -fib_lookup_good_nhc (6 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (11 samples, 0.02%) - - - -do_syscall_64 (9 samples, 0.02%) - - - -do_softirq (117 samples, 0.23%) - - - -irqtime_account_irq (5 samples, 0.01%) - - - -syscall_exit_to_user_mode (6 samples, 0.01%) - - - -sched_clock_cpu (7 samples, 0.01%) - - - -__clone3 (2,276 samples, 4.39%) -__clo.. - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (8 samples, 0.02%) - - - -do_writepages (7 samples, 0.01%) - - - -__udp4_lib_rcv (25 samples, 0.05%) - - - -__x64_sys_sendto (195 samples, 0.38%) - - - -__skb_checksum_complete (10 samples, 0.02%) - - - -kmem_cache_free (5 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (45 samples, 0.09%) - - - -_raw_spin_lock_irqsave (5 samples, 0.01%) - - - -ip_make_skb (55 samples, 0.11%) - - - -ip_push_pending_frames (38 samples, 0.07%) - - - -ThreadLocalHandles_popFramesIncluding_a2f2b35267b27849afd06acabb6c2e3bc3b22169 (5 samples, 0.01%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (22 samples, 0.04%) - - - -icmp_route_lookup.constprop.0 (14 samples, 0.03%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (33 samples, 0.06%) - - - -__dev_queue_xmit (15 samples, 0.03%) - - - -syscall_return_via_sysret (7 samples, 0.01%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (5 samples, 0.01%) - - - -___pthread_cond_broadcast (5 samples, 0.01%) - - - -cpuidle_reflect (8 samples, 0.02%) - - - -add_to_page_cache_lru (10 samples, 0.02%) - - - -__ip_select_ident (8 samples, 0.02%) - - - -__ip_local_out (10 samples, 0.02%) - - - -select_task_rq_fair (7 samples, 0.01%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (47 samples, 0.09%) - - - -_raw_spin_lock_irqsave (5 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (32 samples, 0.06%) - - - -do_csum (6 samples, 0.01%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (6 samples, 0.01%) - - - -icmp_route_lookup.constprop.0 (24 samples, 0.05%) - - - -__entry_text_start (33 samples, 0.06%) - - - -update_rq_clock (32 samples, 0.06%) - - - -cpuidle_governor_latency_req (5 samples, 0.01%) - - - -futex_wait (15 samples, 0.03%) - - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (9 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (5 samples, 0.01%) - - - -__ip_make_skb (49 samples, 0.09%) - - - -AbstractQueuedSynchronizer_acquireQueued_5fdba57beb8676d17b9542ff03179d64f478f5cf (664 samples, 1.28%) - - - -siphash_3u32 (11 samples, 0.02%) - - - -alloc_skb_with_frags (6 samples, 0.01%) - - - -ip_rcv_finish_core.constprop.0 (7 samples, 0.01%) - - - -ttwu_do_activate (94 samples, 0.18%) - - - -selinux_ipv4_output (6 samples, 0.01%) - - - -raw_spin_rq_lock_nested (6 samples, 0.01%) - - - -__dev_queue_xmit (5 samples, 0.01%) - - - -sock_def_write_space (5 samples, 0.01%) - - - -__softirqentry_text_start (119 samples, 0.23%) - - - -enqueue_to_backlog (24 samples, 0.05%) - - - -AbstractQueuedSynchronizer_acquireQueued_5fdba57beb8676d17b9542ff03179d64f478f5cf (589 samples, 1.14%) - - - -kfree (6 samples, 0.01%) - - - -psi_group_change (6 samples, 0.01%) - - - -__condvar_dec_grefs (42 samples, 0.08%) - - - -skb_release_data (5 samples, 0.01%) - - - -__x64_sys_futex (15 samples, 0.03%) - - - -__update_load_avg_cfs_rq (9 samples, 0.02%) - - - -update_load_avg (9 samples, 0.02%) - - - -skb_copy_and_csum_bits (7 samples, 0.01%) - - - -__udp4_lib_rcv (13 samples, 0.03%) - - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (212 samples, 0.41%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitor_2ecf5995a7a109dacede518d33424ec5ebddfde6 (5 samples, 0.01%) - - - -enqueue_entity (54 samples, 0.10%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (94 samples, 0.18%) - - - -xfrm_lookup_with_ifid (18 samples, 0.03%) - - - -IsolateEnterStub_JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b_a61fe6c26e84dd4037e4629852b5488bfcc16e7e (9 samples, 0.02%) - - - -fib_table_lookup (6 samples, 0.01%) - - - -loopback_xmit (5 samples, 0.01%) - - - -JNIFunctions_GetIntField_cc20eaa35b54deb80db2eb05b754b96465828e2c (58 samples, 0.11%) - - - -ttwu_queue_wakelist (5 samples, 0.01%) - - - -reweight_entity (43 samples, 0.08%) - - - -generic_exec_single (17 samples, 0.03%) - - - -[unknown] (24 samples, 0.05%) - - - -ip_idents_reserve (5 samples, 0.01%) - - - -__check_object_size (5 samples, 0.01%) - - - -native_write_msr (6 samples, 0.01%) - - - -__x64_sys_sendto (114 samples, 0.22%) - - - -wake_up_q (5 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (208 samples, 0.40%) - - - -__x86_indirect_thunk_rax (5 samples, 0.01%) - - - -__cgroup_bpf_run_filter_skb (9 samples, 0.02%) - - - -csum_partial_copy_generic (15 samples, 0.03%) - - - -__x86_indirect_thunk_rax (5 samples, 0.01%) - - - -do_syscall_64 (5 samples, 0.01%) - - - -ReentrantLock_lock_c898d1de8855d56ce6120446f90aa9e4e86ede9f (562 samples, 1.08%) - - - -ip_route_output_key_hash_rcu (9 samples, 0.02%) - - - -irqtime_account_irq (9 samples, 0.02%) - - - -MulticastResource$$Lambda$2a51773ff173f1368fed8feb76f72e8954bae8ff_call_62c3c97a19c862d1b88b34ebccea6e8fb847006c (3,469 samples, 6.70%) -Multicast.. - - -__ip_finish_output (10 samples, 0.02%) - - - -MultiThreadedMonitorSupport_slowPathMonitorExit_183871de385508d0f6b4f0881e8e0c44628018b3 (7 samples, 0.01%) - - - -run_timer_softirq (7 samples, 0.01%) - - - -selinux_ip_postroute (13 samples, 0.03%) - - - -net_rx_action (6 samples, 0.01%) - - - -DatagramChannelImpl_send_a43258374f29d362070cc463bb9c00cfc7759f9e (1,346 samples, 2.60%) -Da.. - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (1,823 samples, 3.52%) -Iso.. - - -__update_load_avg_cfs_rq (5 samples, 0.01%) - - - -select_task_rq_fair (8 samples, 0.02%) - - - -switch_mm_irqs_off (6 samples, 0.01%) - - - -start_thread (2,167 samples, 4.18%) -star.. - - -__kmalloc_node_track_caller (12 samples, 0.02%) - - - -__switch_to (13 samples, 0.03%) - - - -save_fpregs_to_fpstate (178 samples, 0.34%) - - - -JavaThreads_ensureUnsafeParkEvent_77b8c19cff94e6325a0dc99352d8624db969530b (95 samples, 0.18%) - - - -syscall_return_via_sysret (13 samples, 0.03%) - - - -futex_wait_queue_me (13 samples, 0.03%) - - - -__schedule (20 samples, 0.04%) - - - -__x86_indirect_thunk_rax (44 samples, 0.08%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (2,539 samples, 4.90%) -JavaTh.. - - -siphash_3u32 (8 samples, 0.02%) - - - -select_task_rq_fair (15 samples, 0.03%) - - - -ThreadLocalHandles_pushFrame_c070e6fc2960d253faa099aad7972764e55d4ca2 (9 samples, 0.02%) - - - -Unsafe_park_8e78b5f196bf0524b1490ff9abb68dc337e02cca (871 samples, 1.68%) - - - -__get_user_nocheck_4 (53 samples, 0.10%) - - - -do_syscall_64 (18 samples, 0.03%) - - - -cpuidle_enter_state (5 samples, 0.01%) - - - -ReentrantLock$Sync_tryRelease_a66c341958d8201110d2de33406f88fc73bac424 (34 samples, 0.07%) - - - -syscall_return_via_sysret (5 samples, 0.01%) - - - -ip_generic_getfrag (7 samples, 0.01%) - - - -skb_set_owner_w (5 samples, 0.01%) - - - -sock_def_write_space (5 samples, 0.01%) - - - -process_backlog (11 samples, 0.02%) - - - -psi_group_change (43 samples, 0.08%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (1,180 samples, 2.28%) -J.. - - -loopback_xmit (5 samples, 0.01%) - - - -icmp_rcv (12 samples, 0.02%) - - - -__x86_indirect_thunk_rax (30 samples, 0.06%) - - - -__sys_sendto (156 samples, 0.30%) - - - -AbstractQueuedSynchronizer_release_a6f0f81643a4166b53eeaa75bf587c535be7bad9 (209 samples, 0.40%) - - - -do_epoll_pwait.part.0 (10 samples, 0.02%) - - - -__switch_to_asm (15 samples, 0.03%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (2,575 samples, 4.97%) -Thread.. - - -cpuidle_enter_state (295 samples, 0.57%) - - - -do_futex (8 samples, 0.02%) - - - -__softirqentry_text_start (6 samples, 0.01%) - - - -AbstractQueuedSynchronizer_acquire_d7c03c3cee25dd5a735b5a4334799f668f70ef36 (589 samples, 1.14%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (2,167 samples, 4.18%) -Posi.. - - -ThreadPoolExecutor_runWorker_d6102a49f44caa9353f47edf6df17054308b7151 (2,167 samples, 4.18%) -Thre.. - - -ReentrantLock_lock_c898d1de8855d56ce6120446f90aa9e4e86ede9f (563 samples, 1.09%) - - - -kfree (16 samples, 0.03%) - - - -ip_finish_output2 (38 samples, 0.07%) - - - -acpi_idle_enter (375 samples, 0.72%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitorFromObject_922cf11599fedc7c0bfa829f3c2f09fcdebe2077 (9 samples, 0.02%) - - - -DatagramChannelImpl_send0_d05a7d3bffd13f93567ba253ded1608e364b9beb (5 samples, 0.01%) - - - -finish_task_switch.isra.0 (9 samples, 0.02%) - - - -__udp4_lib_rcv (67 samples, 0.13%) - - - -udp4_lib_lookup2 (5 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (81 samples, 0.16%) - - - -__ip_append_data (15 samples, 0.03%) - - - -slab_free_freelist_hook.constprop.0 (9 samples, 0.02%) - - - -ip_local_deliver_finish (88 samples, 0.17%) - - - -reweight_entity (40 samples, 0.08%) - - - -AbstractQueuedSynchronizer_acquireQueued_5fdba57beb8676d17b9542ff03179d64f478f5cf (954 samples, 1.84%) -A.. - - -update_load_avg (5 samples, 0.01%) - - - -siphash_3u32 (23 samples, 0.04%) - - - -DatagramChannelImpl_sendFromNativeBuffer_bc12ee464c05741dc5b1fe45dfbf70e5fe3085b7 (2,319 samples, 4.48%) -Datag.. - - -__x86_indirect_thunk_rax (7 samples, 0.01%) - - - -JNIObjectHandles_createLocal_d841b948c1d20e64912c894e72fb1e4feeb98975 (20 samples, 0.04%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (2,168 samples, 4.18%) -Java.. - - -__softirqentry_text_start (9 samples, 0.02%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (34 samples, 0.07%) - - - -JNIFunctions_GetObjectField_b896a889ade18324cbc5d5d90b52cdc5d4886f72 (27 samples, 0.05%) - - - -ReentrantLock_lock_c898d1de8855d56ce6120446f90aa9e4e86ede9f (396 samples, 0.76%) - - - -flush_smp_call_function_queue (644 samples, 1.24%) - - - -ip_route_output_key_hash (12 samples, 0.02%) - - - -do_softirq (116 samples, 0.22%) - - - -ip_finish_output2 (5 samples, 0.01%) - - - -__ip_make_skb (12 samples, 0.02%) - - - -__hrtimer_next_event_base (5 samples, 0.01%) - - - -__ip_finish_output (7 samples, 0.01%) - - - -__softirqentry_text_start (231 samples, 0.45%) - - - -PosixParkEvent_unpark_ffa65ac66d3e43a0f362cb01e11f41ef58ea7eaf (6 samples, 0.01%) - - - -__GI___lll_lock_wake (76 samples, 0.15%) - - - -getInetAddress_addr (10 samples, 0.02%) - - - -futex_wait_queue_me (12 samples, 0.02%) - - - -AbstractQueuedSynchronizer_parkAndCheckInterrupt_5f77ccdb5d848784815a610576e6a7d474e2c6b6 (362 samples, 0.70%) - - - -select_task_rq_fair (6 samples, 0.01%) - - - -__netif_receive_skb_core.constprop.0 (6 samples, 0.01%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (2,575 samples, 4.97%) -JavaTh.. - - -schedule (8 samples, 0.02%) - - - -do_futex (9 samples, 0.02%) - - - -net_rx_action (109 samples, 0.21%) - - - -JNIObjectHandles_pushLocalFrame_72b60bb5d6b4f261f0f202d949a56da9c54ff0c0 (14 samples, 0.03%) - - - -icmp_push_reply (8 samples, 0.02%) - - - -__kmalloc_node_track_caller (29 samples, 0.06%) - - - -__x64_sys_sendto (5 samples, 0.01%) - - - -AbstractQueuedSynchronizer_acquire_d7c03c3cee25dd5a735b5a4334799f668f70ef36 (562 samples, 1.08%) - - - -hash_futex (7 samples, 0.01%) - - - -ThreadLocalHandles_pushFrame_c070e6fc2960d253faa099aad7972764e55d4ca2 (7 samples, 0.01%) - - - -__x64_sys_futex (11 samples, 0.02%) - - - -start_thread (12 samples, 0.02%) - - - -_raw_spin_lock_irqsave (62 samples, 0.12%) - - - -do_futex (21 samples, 0.04%) - - - -MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18bad517d67eae4d88 (2,319 samples, 4.48%) -Multi.. - - -__netif_receive_skb_core.constprop.0 (8 samples, 0.02%) - - - -ttwu_do_wakeup (5 samples, 0.01%) - - - -AbstractQueuedSynchronizer_acquire_d7c03c3cee25dd5a735b5a4334799f668f70ef36 (954 samples, 1.84%) -A.. - - -set_next_entity (6 samples, 0.01%) - - - -raw_spin_rq_lock_nested (39 samples, 0.08%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (2,194 samples, 4.23%) -Posix.. - - -nf_hook_slow (6 samples, 0.01%) - - - -__alloc_skb (26 samples, 0.05%) - - - -LockSupport_park_ad3b0439cc81f3747a99376fb5cad89af288f997 (886 samples, 1.71%) - - - -kfence_ksize (7 samples, 0.01%) - - - -ThreadPoolExecutor$Worker_run_f861978740f7fe309db28b47935f0d22284f1441 (2,276 samples, 4.39%) -Threa.. - - -JNIGeneratedMethodSupport_boxObjectInLocalHandle_b4008a17d25bb266b616277a16d8ca1073257780 (10 samples, 0.02%) - - - -MultiThreadedMonitorSupport_monitorEnter_a853e48d8499fe94e7e0723447fc9d2060965e91 (17 samples, 0.03%) - - - -NET_InetAddressToSockaddr (87 samples, 0.17%) - - - -ip_rcv (5 samples, 0.01%) - - - -udp_send_skb (157 samples, 0.30%) - - - -siphash_3u32 (5 samples, 0.01%) - - - -ip_rcv (5 samples, 0.01%) - - - -select_task_rq_fair (11 samples, 0.02%) - - - -psi_group_change (7 samples, 0.01%) - - - -psi_group_change (63 samples, 0.12%) - - - -__switch_to (177 samples, 0.34%) - - - -selinux_socket_sendmsg (10 samples, 0.02%) - - - -xfrm_lookup_with_ifid (11 samples, 0.02%) - - - -loopback_xmit (5 samples, 0.01%) - - - -ThreadLocalHandles_popFramesIncluding_a2f2b35267b27849afd06acabb6c2e3bc3b22169 (5 samples, 0.01%) - - - -do_syscall_64 (17 samples, 0.03%) - - - -net_rx_action (113 samples, 0.22%) - - - -native_sched_clock (5 samples, 0.01%) - - - -sched_clock_cpu (6 samples, 0.01%) - - - -Java_sun_nio_ch_DatagramChannelImpl_send0 (1,254 samples, 2.42%) -Ja.. - - -pick_next_task_fair (66 samples, 0.13%) - - - -AbstractQueuedSynchronizer_acquire_d7c03c3cee25dd5a735b5a4334799f668f70ef36 (482 samples, 0.93%) - - - -tick_sched_handle (13 samples, 0.03%) - - - -vfs_write (31 samples, 0.06%) - - - -__sys_sendto (114 samples, 0.22%) - - - - diff --git a/_versions/2.7/guides/images/native-reference-neo4j-db-info.png b/_versions/2.7/guides/images/native-reference-neo4j-db-info.png deleted file mode 100644 index 8099b9c1aac9eed9edc74102dd2d1196fb90aaac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31746 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 - - - - - - - - - - - - - -Flame Graph - -Reset Zoom -Search -ic - - - -__schedule (1 samples, 0.01%) - - - -update_load_avg (2 samples, 0.02%) - - - -dl_main (1 samples, 0.01%) - - - -[debugging-native-1.0.0-SNAPSHOT-runner] (2 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (60 samples, 0.70%) - - - -sugov_update_single_freq (3 samples, 0.04%) - - - -cpufreq_this_cpu_can_update (1 samples, 0.01%) - - - -tick_nohz_restart_sched_tick (3 samples, 0.04%) - - - -find_busiest_group (1 samples, 0.01%) - - - -native_write_msr (4 samples, 0.05%) - - - -perf_event_idx_default (1 samples, 0.01%) - - - -security_task_setscheduler (5 samples, 0.06%) - - - -blk_mq_insert_requests (1 samples, 0.01%) - - - -exc_page_fault (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -__do_set_cpus_allowed (6 samples, 0.07%) - - - -schedule_timeout (1 samples, 0.01%) - - - -clear_page_rep (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (195 samples, 2.28%) -a.. - - -update_process_times (3 samples, 0.04%) - - - -security_perf_event_write (8 samples, 0.09%) - - - -rb_next (1 samples, 0.01%) - - - -nf_hook_slow (1 samples, 0.01%) - - - -i2c_outb.isra.0 (1 samples, 0.01%) - - - -update_process_times (1 samples, 0.01%) - - - -irqentry_enter (1 samples, 0.01%) - - - -dequeue_entity (2 samples, 0.02%) - - - -__handle_mm_fault (1 samples, 0.01%) - - - -[unknown] (51 samples, 0.60%) - - - -do_idle (1 samples, 0.01%) - - - -[unknown] (54 samples, 0.63%) - - - -[libcrypto.so.1.1.1l] (2 samples, 0.02%) - - - -__do_sys_clone3 (1 samples, 0.01%) - - - -enqueue_task_fair (2 samples, 0.02%) - - - -tcp_write_xmit (2 samples, 0.02%) - - - -alloc_pages_vma (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -rwsem_down_write_slowpath (1 samples, 0.01%) - - - -smpboot_thread_fn (1 samples, 0.01%) - - - -epoll_ctl (1 samples, 0.01%) - - - -__update_load_avg_cfs_rq (1 samples, 0.01%) - - - -__netif_receive_skb_list_core (1 samples, 0.01%) - - - -[perf] (1 samples, 0.01%) - - - -ecutor-thread-0 (6,716 samples, 78.52%) -ecutor-thread-0 - - -__wait_for_common (1 samples, 0.01%) - - - -hrtick_update (1 samples, 0.01%) - - - -del_timer_sync (1 samples, 0.01%) - - - -__mod_timer (1 samples, 0.01%) - - - -drm_helper_probe_detect_ctx (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -psi_task_switch (1 samples, 0.01%) - - - -__munmap (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (3 samples, 0.04%) - - - -cpu_startup_entry (5 samples, 0.06%) - - - -native_apic_mem_write (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (2 samples, 0.02%) - - - -xfsaild (3 samples, 0.04%) - - - -set_next_task_fair (1 samples, 0.01%) - - - -clear_buddies (1 samples, 0.01%) - - - -__fget_light (1 samples, 0.01%) - - - -native_sched_clock (1 samples, 0.01%) - - - -__fdget (1 samples, 0.01%) - - - -__x64_sys_munmap (1 samples, 0.01%) - - - -pte_pfn (1 samples, 0.01%) - - - -perf_ibs_handle_irq (1 samples, 0.01%) - - - -find_idlest_group (1 samples, 0.01%) - - - -[debugging-native-1.0.0-SNAPSHOT-runner] (6,705 samples, 78.39%) -[debugging-native-1.0.0-SNAPSHOT-runner] - - -flush_smp_call_function_queue (2 samples, 0.02%) - - - -native_irq_return_iret (1 samples, 0.01%) - - - -schedule (2 samples, 0.02%) - - - -do_idle (1 samples, 0.01%) - - - -ktime_get (9 samples, 0.11%) - - - -pfn_pte (1 samples, 0.01%) - - - -enqueue_task_fair (1 samples, 0.01%) - - - -[unknown] (1 samples, 0.01%) - - - -irq_work_needs_cpu (1 samples, 0.01%) - - - -quiet_vmstat (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -sched_setaffinity@@GLIBC_2.3.4 (2 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (42 samples, 0.49%) - - - -do_idle (559 samples, 6.54%) -do_idle - - -calc_load_nohz_stop (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -load_balance (1 samples, 0.01%) - - - -__irq_exit_rcu (2 samples, 0.02%) - - - -rcu_gp_kthread (1 samples, 0.01%) - - - -tick_nohz_idle_exit (1 samples, 0.01%) - - - -nft_immediate_eval (1 samples, 0.01%) - - - -tick_sched_handle (1 samples, 0.01%) - - - -native_apic_mem_write (1 samples, 0.01%) - - - -post_alloc_hook (1 samples, 0.01%) - - - -__switch_to (1 samples, 0.01%) - - - -tick_sched_handle (1 samples, 0.01%) - - - -__hrtimer_run_queues (1 samples, 0.01%) - - - -flush_smp_call_function_from_idle (3 samples, 0.04%) - - - -copy_process (1 samples, 0.01%) - - - -asm_exc_page_fault (2 samples, 0.02%) - - - -update_irq_load_avg (1 samples, 0.01%) - - - -tick_nohz_get_sleep_length (3 samples, 0.04%) - - - -pick_next_task_fair (1 samples, 0.01%) - - - -all (8,553 samples, 100%) - - - -perf_event_idx_default (1 samples, 0.01%) - - - -perf_event_idx_default (1 samples, 0.01%) - - - -acpi_idle_do_entry (1 samples, 0.01%) - - - -get_next_timer_interrupt (1 samples, 0.01%) - - - -get_page_from_freelist (1 samples, 0.01%) - - - -rcu_nmi_exit (1 samples, 0.01%) - - - -tick_nohz_get_sleep_length (1 samples, 0.01%) - - - -[unknown] (1 samples, 0.01%) - - - -copy_user_generic_string (1 samples, 0.01%) - - - -__softirqentry_text_start (1 samples, 0.01%) - - - -affine_move_task (2 samples, 0.02%) - - - -nvkm_fantog_update (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -bprm_execve (1 samples, 0.01%) - - - -__x64_sys_ioctl (46 samples, 0.54%) - - - -[unknown] (18 samples, 0.21%) - - - -update_min_vruntime (2 samples, 0.02%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -psi_group_change (1 samples, 0.01%) - - - -sched_clock (1 samples, 0.01%) - - - -dl_main (2 samples, 0.02%) - - - -add_timer_on (1 samples, 0.01%) - - - -acpi_idle_enter (5 samples, 0.06%) - - - -acpi_idle_do_entry (1 samples, 0.01%) - - - -psi_task_switch (2 samples, 0.02%) - - - -event_sched_in.part.0 (3 samples, 0.04%) - - - -__softirqentry_text_start (2 samples, 0.02%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -ip_local_out (1 samples, 0.01%) - - - -dup_mm (1 samples, 0.01%) - - - -rcu_gp_kthread (2 samples, 0.02%) - - - -irqtime_account_process_tick (1 samples, 0.01%) - - - -acpi_idle_enter (292 samples, 3.41%) -acp.. - - -schedule_hrtimeout_range_clock (1 samples, 0.01%) - - - -ip_rcv (1 samples, 0.01%) - - - -tloop-thread-42 (1 samples, 0.01%) - - - -sched_clock (1 samples, 0.01%) - - - -[debugging-native-1.0.0-SNAPSHOT-runner] (1 samples, 0.01%) - - - -quiet_vmstat (1 samples, 0.01%) - - - -start_kernel (1 samples, 0.01%) - - - -__schedule (1 samples, 0.01%) - - - -__sched_setaffinity (12 samples, 0.14%) - - - -ktime_get (2 samples, 0.02%) - - - -native_write_cr2 (1 samples, 0.01%) - - - -load_balance (1 samples, 0.01%) - - - -nv04_timer_read (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -[unknown] (1 samples, 0.01%) - - - -anon_vma_clone (1 samples, 0.01%) - - - -unmap_page_range (1 samples, 0.01%) - - - -[unknown] (55 samples, 0.64%) - - - -[unknown] (25 samples, 0.29%) - - - -nohz_run_idle_balance (1 samples, 0.01%) - - - -perf_event_task_tick (1 samples, 0.01%) - - - -get_user_cpu_mask (1 samples, 0.01%) - - - -new_heap (1 samples, 0.01%) - - - -rcu_core (1 samples, 0.01%) - - - -__x64_sys_fcntl (1 samples, 0.01%) - - - -wp_page_copy (1 samples, 0.01%) - - - -rcu_irq_exit (1 samples, 0.01%) - - - -enqueue_task (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -migration_cpu_stop (1 samples, 0.01%) - - - -irqtime_account_irq (2 samples, 0.02%) - - - -entry_SYSCALL_64_after_hwframe (47 samples, 0.55%) - - - -[unknown] (4 samples, 0.05%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -collect_percpu_times (1 samples, 0.01%) - - - -task_work_run (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (4 samples, 0.05%) - - - -delayed_work_timer_fn (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -set_next_entity (1 samples, 0.01%) - - - -acpi_idle_do_entry (348 samples, 4.07%) -acpi.. - - -kernel_init_free_pages.part.0 (1 samples, 0.01%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -IsolateEnterStub__VmLocatorSymbol__vmLocatorSymbol__bec84cad1f8708102cd8814ef3e496531bf6ff5b__bbf2dbb2d6a07a8e1dae8a3072b01ad86ecc1a50 (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -hrtimer_start_range_ns (2 samples, 0.02%) - - - -__schedule (3 samples, 0.04%) - - - -balance_fair (1 samples, 0.01%) - - - -find_busiest_group (1 samples, 0.01%) - - - -__sysvec_apic_timer_interrupt (32 samples, 0.37%) - - - -set_next_entity (1 samples, 0.01%) - - - -tty_write (1 samples, 0.01%) - - - -rb_erase (1 samples, 0.01%) - - - -native_write_msr (134 samples, 1.57%) - - - -rcu_read_unlock_strict (1 samples, 0.01%) - - - -need_update (1 samples, 0.01%) - - - -dequeue_task_fair (2 samples, 0.02%) - - - -rcu_note_context_switch (1 samples, 0.01%) - - - -update_process_times (1 samples, 0.01%) - - - -hrtimer_interrupt (1 samples, 0.01%) - - - -[unknown] (2 samples, 0.02%) - - - -__schedule (1 samples, 0.01%) - - - -acpi_idle_do_entry (5 samples, 0.06%) - - - -enqueue_task (2 samples, 0.02%) - - - -__vm_munmap (1 samples, 0.01%) - - - -do_user_addr_fault (1 samples, 0.01%) - - - -security_file_ioctl (4 samples, 0.05%) - - - -mem_cgroup_disabled (1 samples, 0.01%) - - - -rwsem_down_write_slowpath (2 samples, 0.02%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -core_sys_select (1 samples, 0.01%) - - - -clear_page_rep (1 samples, 0.01%) - - - -rcu_sched_clock_irq (1 samples, 0.01%) - - - -dequeue_entity (1 samples, 0.01%) - - - -__tcp_push_pending_frames (2 samples, 0.02%) - - - -do_syscall_64 (3 samples, 0.04%) - - - -iterate_groups (1 samples, 0.01%) - - - -__irq_exit_rcu (5 samples, 0.06%) - - - -kernel_clone (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -native_sched_clock (1 samples, 0.01%) - - - -cpu_stop_queue_work (1 samples, 0.01%) - - - -IsolateEnterStub__VmLocatorSymbol__vmLocatorSymbol__bec84cad1f8708102cd8814ef3e496531bf6ff5b__bbf2dbb2d6a07a8e1dae8a3072b01ad86ecc1a50 (9 samples, 0.11%) - - - -__entry_text_start (1 samples, 0.01%) - - - -epoll_wait (1 samples, 0.01%) - - - -get_next_timer_interrupt (1 samples, 0.01%) - - - -smpboot_thread_fn (2 samples, 0.02%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -do_mprotect_pkey (2 samples, 0.02%) - - - -hrtimer_wakeup (3 samples, 0.04%) - - - -sched_clock_cpu (1 samples, 0.01%) - - - -[unknown] (1 samples, 0.01%) - - - -[unknown] (1 samples, 0.01%) - - - -rcu_segcblist_ready_cbs (1 samples, 0.01%) - - - -__rdgsbase_inactive (1 samples, 0.01%) - - - -perf_ibs_nmi_handler (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (4 samples, 0.05%) - - - -rcu_gp_fqs_loop (2 samples, 0.02%) - - - -cpu_startup_entry (559 samples, 6.54%) -cpu_star.. - - -_find_next_bit (1 samples, 0.01%) - - - -do_futex (1 samples, 0.01%) - - - -native_sched_clock (1 samples, 0.01%) - - - -__hrtimer_next_event_base (1 samples, 0.01%) - - - -sched_setaffinity@@GLIBC_2.3.4 (68 samples, 0.80%) - - - -perf_sample_event_took (3 samples, 0.04%) - - - -select_task_rq_fair (3 samples, 0.04%) - - - -call_timer_fn (1 samples, 0.01%) - - - -rcu_core (1 samples, 0.01%) - - - -__schedule (1 samples, 0.01%) - - - -get_user_cpu_mask (2 samples, 0.02%) - - - -sched_clock_cpu (1 samples, 0.01%) - - - -__x64_sys_futex (1 samples, 0.01%) - - - -bpf_lsm_task_setscheduler (1 samples, 0.01%) - - - -update_curr (2 samples, 0.02%) - - - -[unknown] (33 samples, 0.39%) - - - -schedule_hrtimeout_range_clock (3 samples, 0.04%) - - - -sched_ttwu_pending (1 samples, 0.01%) - - - -hrtimer_next_event_without (2 samples, 0.02%) - - - -iterate_groups (1 samples, 0.01%) - - - -__schedule (3 samples, 0.04%) - - - -strcmp (1 samples, 0.01%) - - - -schedule_idle (3 samples, 0.04%) - - - -schedule_hrtimeout_range_clock (1 samples, 0.01%) - - - -[unknown] (1 samples, 0.01%) - - - -try_to_wake_up (1 samples, 0.01%) - - - -__x64_sys_sched_setaffinity (21 samples, 0.25%) - - - -asm_common_interrupt (1 samples, 0.01%) - - - -affine_move_task (2 samples, 0.02%) - - - -nvkm_timer_alarm_trigger (1 samples, 0.01%) - - - -__vmalloc_node_range (1 samples, 0.01%) - - - -dl_task_check_affinity (1 samples, 0.01%) - - - -[unknown] (23 samples, 0.27%) - - - -flush_tlb_func (1 samples, 0.01%) - - - -ctx_sched_in (9 samples, 0.11%) - - - -entry_SYSCALL_64_after_hwframe (3 samples, 0.04%) - - - -alloc_cpumask_var_node (1 samples, 0.01%) - - - -syscall_enter_from_user_mode (1 samples, 0.01%) - - - -[unknown] (44 samples, 0.51%) - - - -update_curr (1 samples, 0.01%) - - - -update_rq_clock (1 samples, 0.01%) - - - -__run_timers.part.0 (1 samples, 0.01%) - - - -sched_clock_cpu (1 samples, 0.01%) - - - -exc_nmi (1 samples, 0.01%) - - - -__update_load_avg_cfs_rq (1 samples, 0.01%) - - - -iommu_pgsize.isra.0 (1 samples, 0.01%) - - - -update_curr (1 samples, 0.01%) - - - -[unknown] (6 samples, 0.07%) - - - -__schedule (3 samples, 0.04%) - - - -handle_mm_fault (1 samples, 0.01%) - - - -__switch_to_asm (4 samples, 0.05%) - - - -try_to_wake_up (1 samples, 0.01%) - - - -native_sched_clock (10 samples, 0.12%) - - - -__update_load_avg_se (2 samples, 0.02%) - - - -tick_nohz_idle_stop_tick (1 samples, 0.01%) - - - -clear_page_rep (1 samples, 0.01%) - - - -native_write_msr (4 samples, 0.05%) - - - -__handle_mm_fault (1 samples, 0.01%) - - - -tick_nohz_next_event (2 samples, 0.02%) - - - -__bitmap_equal (1 samples, 0.01%) - - - -bpf_inode_storage_free (1 samples, 0.01%) - - - -merge_sched_in (5 samples, 0.06%) - - - -__GI___pthread_enable_asynccancel (1 samples, 0.01%) - - - -native_write_cr2 (1 samples, 0.01%) - - - -_dl_show_auxv (2 samples, 0.02%) - - - -IsolateEnterStub__VmLocatorSymbol__vmLocatorSymbol__bec84cad1f8708102cd8814ef3e496531bf6ff5b__bbf2dbb2d6a07a8e1dae8a3072b01ad86ecc1a50 (2 samples, 0.02%) - - - -irqtime_account_irq (1 samples, 0.01%) - - - -IsolateEnterStub__VmLocatorSymbol__vmLocatorSymbol__bec84cad1f8708102cd8814ef3e496531bf6ff5b__bbf2dbb2d6a07a8e1dae8a3072b01ad86ecc1a50 (1 samples, 0.01%) - - - -_start (1 samples, 0.01%) - - - -xfs_trans_ail_cursor_init (1 samples, 0.01%) - - - -__handle_mm_fault (1 samples, 0.01%) - - - -native_write_msr (10 samples, 0.12%) - - - -rcu_note_context_switch (1 samples, 0.01%) - - - -nv04_timer_intr (1 samples, 0.01%) - - - -tick_irq_enter (14 samples, 0.16%) - - - -hrtimer_wakeup (1 samples, 0.01%) - - - -update_rq_clock (3 samples, 0.04%) - - - -asm_common_interrupt (1 samples, 0.01%) - - - -[unknown] (61 samples, 0.71%) - - - -__update_load_avg_cfs_rq (1 samples, 0.01%) - - - -psi_group_change (4 samples, 0.05%) - - - -menu_select (1 samples, 0.01%) - - - -newidle_balance (1 samples, 0.01%) - - - -do_execveat_common.isra.0 (1 samples, 0.01%) - - - -sched_clock (1 samples, 0.01%) - - - -newidle_balance (1 samples, 0.01%) - - - -ktime_get (42 samples, 0.49%) - - - -psi_task_change (1 samples, 0.01%) - - - -xfsaild (2 samples, 0.02%) - - - -igb_poll (1 samples, 0.01%) - - - -down_write_killable (1 samples, 0.01%) - - - -ktime_get_update_offsets_now (20 samples, 0.23%) - - - -tick_sched_do_timer (2 samples, 0.02%) - - - -ctx_resched (9 samples, 0.11%) - - - -__check_object_size (1 samples, 0.01%) - - - -exc_page_fault (1 samples, 0.01%) - - - -process_timeout (1 samples, 0.01%) - - - -native_sched_clock (1 samples, 0.01%) - - - -do_select (1 samples, 0.01%) - - - -__schedule (1 samples, 0.01%) - - - -__sysvec_apic_timer_interrupt (87 samples, 1.02%) - - - -perf-exec (1 samples, 0.01%) - - - -cpumask_next_and (1 samples, 0.01%) - - - -native_write_cr2 (1 samples, 0.01%) - - - -tick_sched_handle (4 samples, 0.05%) - - - -do_select (1 samples, 0.01%) - - - -common_interrupt (1 samples, 0.01%) - - - -vm_mmap_pgoff (1 samples, 0.01%) - - - -update_min_vruntime (1 samples, 0.01%) - - - -__mem_cgroup_charge (1 samples, 0.01%) - - - -syscall_exit_to_user_mode (1 samples, 0.01%) - - - -native_irq_return_iret (1 samples, 0.01%) - - - -__cgroup_account_cputime (1 samples, 0.01%) - - - -[perf] (302 samples, 3.53%) -[pe.. - - -cpumask_any_and_distribute (3 samples, 0.04%) - - - -update_load_avg (1 samples, 0.01%) - - - -cpumask_next (1 samples, 0.01%) - - - -sched_clock_cpu (60 samples, 0.70%) - - - -ttwu_do_activate (2 samples, 0.02%) - - - -hrtimer_wakeup (2 samples, 0.02%) - - - -__list_del_entry_valid (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (3 samples, 0.04%) - - - -__sysvec_apic_timer_interrupt (1 samples, 0.01%) - - - -__mod_timer (1 samples, 0.01%) - - - -__libc_start_call_main (302 samples, 3.53%) -__l.. - - -irq_enter_rcu (43 samples, 0.50%) - - - -native_sched_clock (3 samples, 0.04%) - - - -__schedule (2 samples, 0.02%) - - - -set_normalized_timespec64 (1 samples, 0.01%) - - - -native_write_msr (1 samples, 0.01%) - - - -lock_page_memcg (1 samples, 0.01%) - - - -exit_mmap (1 samples, 0.01%) - - - -__ip_queue_xmit (1 samples, 0.01%) - - - -update_sd_lb_stats.constprop.0 (1 samples, 0.01%) - - - -__list_add_valid (1 samples, 0.01%) - - - -do_idle (5 samples, 0.06%) - - - -nmi_handle (1 samples, 0.01%) - - - -update_load_avg (1 samples, 0.01%) - - - -_raw_spin_unlock_irqrestore (1 samples, 0.01%) - - - -net_rx_action (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -[unknown] (1 samples, 0.01%) - - - -__schedule (1 samples, 0.01%) - - - -menu_select (6 samples, 0.07%) - - - -iterate_groups (1 samples, 0.01%) - - - -__update_load_avg_se (1 samples, 0.01%) - - - -cpu_stop_queue_work (1 samples, 0.01%) - - - -do_syscall_64 (21 samples, 0.25%) - - - -pick_next_task_idle (1 samples, 0.01%) - - - -__alloc_pages (1 samples, 0.01%) - - - -IsolateEnterStub__VmLocatorSymbol__vmLocatorSymbol__bec84cad1f8708102cd8814ef3e496531bf6ff5b__bbf2dbb2d6a07a8e1dae8a3072b01ad86ecc1a50 (2 samples, 0.02%) - - - -native_write_cr2 (2 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (19 samples, 0.22%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -add_mm_counter_fast (1 samples, 0.01%) - - - -do_syscall_64 (3 samples, 0.04%) - - - -acpi_idle_enter (2 samples, 0.02%) - - - -__mmap (1 samples, 0.01%) - - - -perf_event_for_each_child (17 samples, 0.20%) - - - -sugov_iowait_boost (1 samples, 0.01%) - - - -arch_scale_freq_tick (1 samples, 0.01%) - - - -dcb_table (1 samples, 0.01%) - - - -[unknown] (2 samples, 0.02%) - - - -perf_sample_event_took (1 samples, 0.01%) - - - -update_load_avg (1 samples, 0.01%) - - - -alloc_cpumask_var_node (1 samples, 0.01%) - - - -__list_add_valid (1 samples, 0.01%) - - - -update_curr (1 samples, 0.01%) - - - -__fget_files (1 samples, 0.01%) - - - -sched_setaffinity (18 samples, 0.21%) - - - -exit_to_user_mode_prepare (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (3 samples, 0.04%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -do_epoll_wait (1 samples, 0.01%) - - - -[unknown] (3 samples, 0.04%) - - - -update_blocked_averages (1 samples, 0.01%) - - - -sched_clock_cpu (3 samples, 0.04%) - - - -[unknown] (6 samples, 0.07%) - - - -clear_buddies (1 samples, 0.01%) - - - -perf_sample_event_took (1 samples, 0.01%) - - - -pick_next_entity (1 samples, 0.01%) - - - -__schedule (1 samples, 0.01%) - - - -cpuidle_enter (1 samples, 0.01%) - - - -perf_event_update_userpage (1 samples, 0.01%) - - - -[unknown] (2 samples, 0.02%) - - - -[perf] (302 samples, 3.53%) -[pe.. - - -__x64_sys_mprotect (2 samples, 0.02%) - - - -native_write_msr (6 samples, 0.07%) - - - -event_function_call (17 samples, 0.20%) - - - -ntloop-thread-3 (3 samples, 0.04%) - - - -cpuidle_enter (1 samples, 0.01%) - - - -acpi_idle_enter (1 samples, 0.01%) - - - -_dl_relocate_object (1 samples, 0.01%) - - - -ttwu_do_wakeup (1 samples, 0.01%) - - - -native_write_msr (3 samples, 0.04%) - - - -rcu_gp_kthread (1 samples, 0.01%) - - - -update_irq_load_avg (1 samples, 0.01%) - - - -asm_exc_page_fault (1 samples, 0.01%) - - - -__switch_to (1 samples, 0.01%) - - - -tick_sched_handle (2 samples, 0.02%) - - - -kthread (3 samples, 0.04%) - - - -timerqueue_del (1 samples, 0.01%) - - - -cpuidle_enter_state (551 samples, 6.44%) -cpuidle_.. - - -__common_interrupt (1 samples, 0.01%) - - - -__do_set_cpus_allowed (1 samples, 0.01%) - - - -nmi_handle (1 samples, 0.01%) - - - -lock_timer_base (1 samples, 0.01%) - - - -event_function (12 samples, 0.14%) - - - -enqueue_task_fair (1 samples, 0.01%) - - - -ttwu_do_activate (2 samples, 0.02%) - - - -end_repeat_nmi (1 samples, 0.01%) - - - -__fput (1 samples, 0.01%) - - - -__tcp_transmit_skb (2 samples, 0.02%) - - - -napi_complete_done (1 samples, 0.01%) - - - -next_zone (1 samples, 0.01%) - - - -menu_select (4 samples, 0.05%) - - - -__rb_insert_augmented (1 samples, 0.01%) - - - -avc_has_perm (2 samples, 0.02%) - - - -__set_cpus_allowed_ptr_locked (2 samples, 0.02%) - - - -acpi_idle_do_entry (292 samples, 3.41%) -acp.. - - -[perf] (302 samples, 3.53%) -[pe.. - - -perf_event_task_tick (1 samples, 0.01%) - - - -cpumask_any_and_distribute (1 samples, 0.01%) - - - -__schedule (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -irqtime_account_irq (60 samples, 0.70%) - - - -__mod_lruvec_page_state (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (9 samples, 0.11%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -dequeue_task_fair (1 samples, 0.01%) - - - -try_address (1 samples, 0.01%) - - - -futex_wait_queue_me (1 samples, 0.01%) - - - -nf_conntrack_tcp_packet (1 samples, 0.01%) - - - -reweight_entity (1 samples, 0.01%) - - - -tick_sched_timer (1 samples, 0.01%) - - - -[perf] (302 samples, 3.53%) -[pe.. - - -get_cpu_device (1 samples, 0.01%) - - - -timerqueue_add (3 samples, 0.04%) - - - -native_sched_clock (1 samples, 0.01%) - - - -ntloop-thread-4 (1 samples, 0.01%) - - - -__list_add_valid (1 samples, 0.01%) - - - -tick_do_update_jiffies64 (1 samples, 0.01%) - - - -cpumask_next_wrap (1 samples, 0.01%) - - - -reweight_entity (4 samples, 0.05%) - - - -[unknown] (27 samples, 0.32%) - - - -begin_new_exec (1 samples, 0.01%) - - - -task_tick_fair (1 samples, 0.01%) - - - -irqentry_enter (3 samples, 0.04%) - - - -run_timer_softirq (1 samples, 0.01%) - - - -run_posix_cpu_timers (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (37 samples, 0.43%) - - - -__irq_exit_rcu (1 samples, 0.01%) - - - -rcu_note_context_switch (1 samples, 0.01%) - - - -delay_halt (1 samples, 0.01%) - - - -native_write_msr (6 samples, 0.07%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -asm_sysvec_apic_timer_interrupt (1 samples, 0.01%) - - - -sock_sendmsg (2 samples, 0.02%) - - - -__rdgsbase_inactive (1 samples, 0.01%) - - - -__GI___ioctl_time64 (209 samples, 2.44%) -__.. - - -[unknown] (3 samples, 0.04%) - - - -update_process_times (1 samples, 0.01%) - - - -swapper (564 samples, 6.59%) -swapper - - -schedule (1 samples, 0.01%) - - - -_int_malloc (1 samples, 0.01%) - - - -irq_enter_rcu (15 samples, 0.18%) - - - -tick_sched_timer (8 samples, 0.09%) - - - -__next_timer_interrupt (1 samples, 0.01%) - - - -__next_timer_interrupt (1 samples, 0.01%) - - - -psi_avgs_work (1 samples, 0.01%) - - - -sysvec_apic_timer_interrupt (1 samples, 0.01%) - - - -__cond_resched (1 samples, 0.01%) - - - -IsolateEnterStub__VmLocatorSymbol__vmLocatorSymbol__bec84cad1f8708102cd8814ef3e496531bf6ff5b__bbf2dbb2d6a07a8e1dae8a3072b01ad86ecc1a50 (5 samples, 0.06%) - - - -acpi_processor_ffh_cstate_enter (2 samples, 0.02%) - - - -bit_xfer (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.07%) - - - -set_cpus_allowed_common (1 samples, 0.01%) - - - -try_charge_memcg (1 samples, 0.01%) - - - -__update_load_avg_cfs_rq (1 samples, 0.01%) - - - -update_curr (1 samples, 0.01%) - - - -perf_sample_event_took (1 samples, 0.01%) - - - -[unknown] (8 samples, 0.09%) - - - -update_load_avg (1 samples, 0.01%) - - - -perf (306 samples, 3.58%) -perf - - -on_each_cpu_cond_mask (1 samples, 0.01%) - - - -load_balance (1 samples, 0.01%) - - - -__hrtimer_run_queues (41 samples, 0.48%) - - - -cpu_latency_qos_limit (1 samples, 0.01%) - - - -hrtimer_interrupt (81 samples, 0.95%) - - - -SIGINT_handler (2 samples, 0.02%) - - - -dequeue_entity (1 samples, 0.01%) - - - -irqentry_exit_to_user_mode (1 samples, 0.01%) - - - -update_dl_rq_load_avg (1 samples, 0.01%) - - - -update_load_avg (1 samples, 0.01%) - - - -ktime_get (1 samples, 0.01%) - - - -cpumask_next_and (1 samples, 0.01%) - - - -__schedule (1 samples, 0.01%) - - - -native_read_msr (1 samples, 0.01%) - - - -dequeue_entity (2 samples, 0.02%) - - - -IsolateEnterStub__VmLocatorSymbol__vmLocatorSymbol__bec84cad1f8708102cd8814ef3e496531bf6ff5b__bbf2dbb2d6a07a8e1dae8a3072b01ad86ecc1a50 (1 samples, 0.01%) - - - -tick_nohz_tick_stopped (1 samples, 0.01%) - - - -__schedule (1 samples, 0.01%) - - - -default_send_IPI_single_phys (1 samples, 0.01%) - - - -mem_cgroup_charge_statistics.constprop.0 (1 samples, 0.01%) - - - -do_user_addr_fault (1 samples, 0.01%) - - - -[unknown] (2 samples, 0.02%) - - - -schedule (1 samples, 0.01%) - - - -new_sync_write (2 samples, 0.02%) - - - -native_write_msr (3 samples, 0.04%) - - - -[unknown] (10 samples, 0.12%) - - - -sysvec_apic_timer_interrupt (60 samples, 0.70%) - - - -update_rq_clock (1 samples, 0.01%) - - - -update_load_avg (4 samples, 0.05%) - - - -is_cpu_allowed (1 samples, 0.01%) - - - -task_tick_idle (1 samples, 0.01%) - - - -native_write_msr (1 samples, 0.01%) - - - -__run_timers.part.0 (2 samples, 0.02%) - - - -scheduler_tick (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -schedule (1 samples, 0.01%) - - - -__netif_receive_skb_core.constprop.0 (1 samples, 0.01%) - - - -menu_select (2 samples, 0.02%) - - - -sysvec_apic_timer_interrupt (196 samples, 2.29%) -s.. - - -__wrgsbase_inactive (1 samples, 0.01%) - - - -set_next_entity (1 samples, 0.01%) - - - -asm_sysvec_apic_timer_interrupt (1 samples, 0.01%) - - - -native_write_msr (2 samples, 0.02%) - - - -[unknown] (9 samples, 0.11%) - - - -asm_exc_page_fault (1 samples, 0.01%) - - - -xfsaild (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (3 samples, 0.04%) - - - -tick_nohz_stop_tick (1 samples, 0.01%) - - - -poll_idle (6 samples, 0.07%) - - - -hrtimer_forward (2 samples, 0.02%) - - - -handle_mm_fault (1 samples, 0.01%) - - - -__rdgsbase_inactive (1 samples, 0.01%) - - - -__ip_local_out (1 samples, 0.01%) - - - -schedule (1 samples, 0.01%) - - - -[debugging-native-1.0.0-SNAPSHOT-runner] (1 samples, 0.01%) - - - -cpuidle_not_available (1 samples, 0.01%) - - - -update_load_avg (1 samples, 0.01%) - - - -_raw_spin_lock_irqsave (1 samples, 0.01%) - - - -__raw_callee_save___native_queued_spin_unlock (1 samples, 0.01%) - - - -__x64_sys_execve (1 samples, 0.01%) - - - -rcu_nmi_exit (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (2 samples, 0.02%) - - - -__GI___execve (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -__switch_to_asm (1 samples, 0.01%) - - - -enqueue_entity (1 samples, 0.01%) - - - -sched_clock_cpu (1 samples, 0.01%) - - - -__raw_callee_save___native_queued_spin_unlock (2 samples, 0.02%) - - - -[unknown] (2 samples, 0.02%) - - - -cpu_startup_entry (1 samples, 0.01%) - - - -pick_next_entity (1 samples, 0.01%) - - - -igb_rd32 (1 samples, 0.01%) - - - -balance_stop (1 samples, 0.01%) - - - -get_obj_cgroup_from_current (1 samples, 0.01%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -cpuidle_enter_state (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -run_timer_softirq (1 samples, 0.01%) - - - -force_qs_rnp (2 samples, 0.02%) - - - -_dl_sysdep_start (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (5 samples, 0.06%) - - - -ntloop-thread-0 (1 samples, 0.01%) - - - -__do_sys_clone (1 samples, 0.01%) - - - -start_kernel (5 samples, 0.06%) - - - -cpuidle_enter_state (5 samples, 0.06%) - - - -psi_group_change (5 samples, 0.06%) - - - -IsolateEnterStub__VmLocatorSymbol__vmLocatorSymbol__bec84cad1f8708102cd8814ef3e496531bf6ff5b__bbf2dbb2d6a07a8e1dae8a3072b01ad86ecc1a50 (3 samples, 0.04%) - - - -arch_perf_update_userpage (1 samples, 0.01%) - - - -process_one_work (2 samples, 0.02%) - - - -__switch_to (1 samples, 0.01%) - - - -readBytes (1 samples, 0.01%) - - - -calc_timer_values (1 samples, 0.01%) - - - -raw_spin_rq_lock_nested (1 samples, 0.01%) - - - -__lll_lock_wait_private (1 samples, 0.01%) - - - -secondary_startup_64_no_verify (565 samples, 6.61%) -secondary.. - - -schedule (1 samples, 0.01%) - - - -native_write_msr (3 samples, 0.04%) - - - -enqueue_task (2 samples, 0.02%) - - - -rwsem_spin_on_owner (1 samples, 0.01%) - - - -IsolateEnterStub__VmLocatorSymbol__vmLocatorSymbol__bec84cad1f8708102cd8814ef3e496531bf6ff5b__bbf2dbb2d6a07a8e1dae8a3072b01ad86ecc1a50 (1 samples, 0.01%) - - - -run_timer_softirq (2 samples, 0.02%) - - - -rcu_read_unlock_strict (1 samples, 0.01%) - - - -perf_event_idx_default (1 samples, 0.01%) - - - -rb_next (1 samples, 0.01%) - - - -tick_sched_timer (1 samples, 0.01%) - - - -osq_lock (2 samples, 0.02%) - - - -post_alloc_hook (1 samples, 0.01%) - - - -tick_sched_handle (1 samples, 0.01%) - - - -dl_task_check_affinity (1 samples, 0.01%) - - - -schedule (3 samples, 0.04%) - - - -ktime_get (1 samples, 0.01%) - - - -tick_sched_timer (2 samples, 0.02%) - - - -arch_perf_update_userpage (2 samples, 0.02%) - - - -secondary_startup_64_no_verify (381 samples, 4.45%) -secon.. - - -ktime_get_ts64 (2 samples, 0.02%) - - - -__schedule (1 samples, 0.01%) - - - -i2c_transfer (1 samples, 0.01%) - - - -wake_up_q (1 samples, 0.01%) - - - -kthread (7 samples, 0.08%) - - - -raw_spin_rq_lock_nested (1 samples, 0.01%) - - - -nvkm_timer_alarm (1 samples, 0.01%) - - - -load_elf_binary (1 samples, 0.01%) - - - -__handle_irq_event_percpu (1 samples, 0.01%) - - - -cpufreq_this_cpu_can_update (1 samples, 0.01%) - - - -set_next_entity (1 samples, 0.01%) - - - -cpu_startup_entry (380 samples, 4.44%) -cpu_s.. - - -futex_wake (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -memset (1 samples, 0.01%) - - - -acpi_idle_enter (1 samples, 0.01%) - - - -__napi_poll (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -do_user_addr_fault (1 samples, 0.01%) - - - -is_cpu_allowed (1 samples, 0.01%) - - - -dequeue_entity (2 samples, 0.02%) - - - -_raw_spin_lock_irqsave (1 samples, 0.01%) - - - -native_apic_mem_write (1 samples, 0.01%) - - - -debugging-nativ (28 samples, 0.33%) - - - -__softirqentry_text_start (8 samples, 0.09%) - - - -__hrtimer_run_queues (11 samples, 0.13%) - - - -clone3 (5 samples, 0.06%) - - - -tick_nohz_idle_exit (3 samples, 0.04%) - - - -pick_next_task_fair (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (2 samples, 0.02%) - - - -acpi_processor_ffh_cstate_enter (38 samples, 0.44%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -handle_irq_event (1 samples, 0.01%) - - - -_nohz_idle_balance.constprop.0.isra.0 (2 samples, 0.02%) - - - -entry_SYSCALL_64_after_hwframe (2 samples, 0.02%) - - - -do_syscall_64 (2 samples, 0.02%) - - - -newidle_balance (1 samples, 0.01%) - - - -__x64_sys_pselect6 (1 samples, 0.01%) - - - -rcu_nmi_exit (1 samples, 0.01%) - - - -_copy_to_iter (1 samples, 0.01%) - - - -enqueue_entity (1 samples, 0.01%) - - - -__hrtimer_run_queues (1 samples, 0.01%) - - - -__update_load_avg_se (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (2 samples, 0.02%) - - - -enqueue_task (2 samples, 0.02%) - - - -try_to_wake_up (3 samples, 0.04%) - - - -__mprotect (3 samples, 0.04%) - - - -smp_call_function_single (12 samples, 0.14%) - - - -cpuidle_enter (552 samples, 6.45%) -cpuidle_.. - - -acpi_processor_ffh_cstate_enter (2 samples, 0.02%) - - - -tick_nohz_next_event (1 samples, 0.01%) - - - -__set_cpus_allowed_ptr_locked (12 samples, 0.14%) - - - -__softirqentry_text_start (4 samples, 0.05%) - - - -anon_vma_fork (1 samples, 0.01%) - - - -native_write_msr (2 samples, 0.02%) - - - -cpuidle_enter_state (4 samples, 0.05%) - - - -ttwu_do_activate (1 samples, 0.01%) - - - -avc_lookup (2 samples, 0.02%) - - - -timerqueue_add (1 samples, 0.01%) - - - -call_timer_fn (1 samples, 0.01%) - - - -rmqueue_bulk (1 samples, 0.01%) - - - -get_page_from_freelist (1 samples, 0.01%) - - - -_find_next_bit (1 samples, 0.01%) - - - -cpuidle_enter (5 samples, 0.06%) - - - -check_preempt_curr (1 samples, 0.01%) - - - -ktime_get_update_offsets_now (40 samples, 0.47%) - - - -acpi_processor_ffh_cstate_enter (8 samples, 0.09%) - - - -rwsem_down_write_slowpath (1 samples, 0.01%) - - - -__calc_delta (1 samples, 0.01%) - - - -tick_nohz_idle_stop_tick (1 samples, 0.01%) - - - -visit_groups_merge.constprop.0.isra.0 (9 samples, 0.11%) - - - -read_tsc (1 samples, 0.01%) - - - -psi_task_switch (2 samples, 0.02%) - - - -pick_next_task_fair (1 samples, 0.01%) - - - -nmi_handle (2 samples, 0.02%) - - - -down_write_killable (2 samples, 0.02%) - - - -menu_reflect (1 samples, 0.01%) - - - -__check_object_size (1 samples, 0.01%) - - - -syscall_enter_from_user_mode (1 samples, 0.01%) - - - -insert_vmap_area.constprop.0 (1 samples, 0.01%) - - - -nmi_handle (5 samples, 0.06%) - - - -[unknown] (25 samples, 0.29%) - - - -dequeue_task_fair (2 samples, 0.02%) - - - -[unknown] (10 samples, 0.12%) - - - -acpi_processor_ffh_cstate_enter (4 samples, 0.05%) - - - -__mmput (1 samples, 0.01%) - - - -_perf_ioctl (21 samples, 0.25%) - - - -remote_function (12 samples, 0.14%) - - - -cpuidle_enter_state (361 samples, 4.22%) -cpuid.. - - -irqtime_account_irq (3 samples, 0.04%) - - - -native_write_msr (10 samples, 0.12%) - - - -perf_ioctl (30 samples, 0.35%) - - - -_raw_spin_unlock_irqrestore (1 samples, 0.01%) - - - -netif_receive_skb_list_internal (1 samples, 0.01%) - - - -check_preempt_curr (1 samples, 0.01%) - - - -[[vdso]] (1 samples, 0.01%) - - - -kernel_init_free_pages.part.0 (1 samples, 0.01%) - - - -try_to_wake_up (1 samples, 0.01%) - - - -common_interrupt (1 samples, 0.01%) - - - -__fcntl64_nocancel_adjusted (1 samples, 0.01%) - - - -native_write_msr (1 samples, 0.01%) - - - -do_syscall_64 (47 samples, 0.55%) - - - -__hrtimer_run_queues (1 samples, 0.01%) - - - -smp_call_function_many_cond (1 samples, 0.01%) - - - -woken_wake_function (1 samples, 0.01%) - - - -down_write_killable (1 samples, 0.01%) - - - -_dl_relocate_object (2 samples, 0.02%) - - - -[unknown] (45 samples, 0.53%) - - - -clockevents_program_event (1 samples, 0.01%) - - - -[perf] (9 samples, 0.11%) - - - -ceptor-thread-0 (1 samples, 0.01%) - - - -__sysvec_apic_timer_interrupt (1 samples, 0.01%) - - - -kernel_clone (1 samples, 0.01%) - - - -__i2c_transfer (1 samples, 0.01%) - - - -native_write_msr (1 samples, 0.01%) - - - -tick_nohz_idle_exit (1 samples, 0.01%) - - - -acpi_idle_enter (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -sched_clock_cpu (1 samples, 0.01%) - - - -schedule_idle (2 samples, 0.02%) - - - -tick_nohz_idle_enter (1 samples, 0.01%) - - - -__update_load_avg_cfs_rq (1 samples, 0.01%) - - - -do_idle (1 samples, 0.01%) - - - -acpi_idle_enter (353 samples, 4.13%) -acpi.. - - -ttwu_do_wakeup (1 samples, 0.01%) - - - -[unknown] (24 samples, 0.28%) - - - -menu_select (1 samples, 0.01%) - - - -nouveau_connector_detect (1 samples, 0.01%) - - - -hrtimer_interrupt (32 samples, 0.37%) - - - -sched_clock_cpu (1 samples, 0.01%) - - - -nf_hook_slow (1 samples, 0.01%) - - - -asm_sysvec_apic_timer_interrupt (197 samples, 2.30%) -a.. - - -raw_spin_rq_unlock (2 samples, 0.02%) - - - -perf_event_idx_default (1 samples, 0.01%) - - - -memchr_inv (1 samples, 0.01%) - - - -tcp_sendmsg_locked (2 samples, 0.02%) - - - -__cond_resched (1 samples, 0.01%) - - - -tick_sched_timer (1 samples, 0.01%) - - - -delay_halt (1 samples, 0.01%) - - - -iterate_groups (4 samples, 0.05%) - - - -native_read_msr (1 samples, 0.01%) - - - -__smp_call_single_queue (1 samples, 0.01%) - - - -tick_do_update_jiffies64 (2 samples, 0.02%) - - - -ret_from_fork (3 samples, 0.04%) - - - -native_write_msr (1 samples, 0.01%) - - - -__alloc_pages (1 samples, 0.01%) - - - -native_write_cr2 (1 samples, 0.01%) - - - -ret_from_fork (7 samples, 0.08%) - - - -clone3 (1 samples, 0.01%) - - - -asm_sysvec_apic_timer_interrupt (1 samples, 0.01%) - - - -output_poll_execute (1 samples, 0.01%) - - - -vfs_write (2 samples, 0.02%) - - - -default_do_nmi (2 samples, 0.02%) - - - -[unknown] (7 samples, 0.08%) - - - -[perf] (2 samples, 0.02%) - - - -enqueue_entity (5 samples, 0.06%) - - - -tloop-thread-58 (1 samples, 0.01%) - - - -rebalance_domains (1 samples, 0.01%) - - - -menu_select (4 samples, 0.05%) - - - -curl (928 samples, 10.85%) -curl - - -scheduler_tick (1 samples, 0.01%) - - - -do_epoll_wait (1 samples, 0.01%) - - - -handle_mm_fault (1 samples, 0.01%) - - - -native_write_cr2 (1 samples, 0.01%) - - - -sysvec_apic_timer_interrupt (1 samples, 0.01%) - - - -native_write_cr2 (1 samples, 0.01%) - - - -scheduler_tick (2 samples, 0.02%) - - - -tick_sched_handle (1 samples, 0.01%) - - - -update_curr (1 samples, 0.01%) - - - -perf_ibs_handle_irq (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -[unknown] (1 samples, 0.01%) - - - -vma_interval_tree_insert_after (1 samples, 0.01%) - - - -strchr (1 samples, 0.01%) - - - -[unknown] (78 samples, 0.91%) - - - -__x64_sys_epoll_pwait (3 samples, 0.04%) - - - -igb_rd32 (1 samples, 0.01%) - - - -unmap_vmas (1 samples, 0.01%) - - - -cap_safe_nice (1 samples, 0.01%) - - - -do_epoll_wait (3 samples, 0.04%) - - - -ptep_clear_flush (1 samples, 0.01%) - - - -hrtimer_interrupt (1 samples, 0.01%) - - - -try_to_wake_up (2 samples, 0.02%) - - - -__next_timer_interrupt (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -cpu_startup_entry (1 samples, 0.01%) - - - -[unknown] (9 samples, 0.11%) - - - -psi_group_change (1 samples, 0.01%) - - - -worker_thread (2 samples, 0.02%) - - - -cpu_stopper_thread (1 samples, 0.01%) - - - -_copy_from_user (1 samples, 0.01%) - - - -get_page_from_freelist (1 samples, 0.01%) - - - -pick_next_entity (1 samples, 0.01%) - - - -tick_irq_enter (43 samples, 0.50%) - - - -nvkm_pci_intr (1 samples, 0.01%) - - - -calc_load_nohz_start (1 samples, 0.01%) - - - -default_do_nmi (1 samples, 0.01%) - - - -tcp_sendmsg (2 samples, 0.02%) - - - -hrtimer_start_range_ns (1 samples, 0.01%) - - - -update_sd_lb_stats.constprop.0 (3 samples, 0.04%) - - - -exc_page_fault (2 samples, 0.02%) - - - -__run_timers.part.0 (1 samples, 0.01%) - - - -handle_edge_irq (1 samples, 0.01%) - - - -do_epoll_pwait.part.0 (3 samples, 0.04%) - - - -__hrtimer_init (1 samples, 0.01%) - - - -ksys_write (2 samples, 0.02%) - - - -read (1 samples, 0.01%) - - - -psi_task_change (1 samples, 0.01%) - - - -perf_sample_event_took (1 samples, 0.01%) - - - -unmap_page_range (1 samples, 0.01%) - - - -do_user_addr_fault (2 samples, 0.02%) - - - -pick_next_task_idle (1 samples, 0.01%) - - - -__list_add_valid (1 samples, 0.01%) - - - -nvkm_mc_intr (1 samples, 0.01%) - - - -copy_process (1 samples, 0.01%) - - - -acpi_cpufreq_fast_switch (2 samples, 0.02%) - - - -dequeue_entity (2 samples, 0.02%) - - - -IsolateEnterStub__VmLocatorSymbol__vmLocatorSymbol__bec84cad1f8708102cd8814ef3e496531bf6ff5b__bbf2dbb2d6a07a8e1dae8a3072b01ad86ecc1a50 (1 samples, 0.01%) - - - -try_to_wake_up (1 samples, 0.01%) - - - -tick_nohz_stop_tick (1 samples, 0.01%) - - - -rebalance_domains (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (39 samples, 0.46%) - - - -do_pselect.constprop.0 (1 samples, 0.01%) - - - -cpuidle_enter (363 samples, 4.24%) -cpuid.. - - -[unknown] (53 samples, 0.62%) - - - -native_write_cr2 (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -enqueue_entity (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (21 samples, 0.25%) - - - -schedule_timeout (1 samples, 0.01%) - - - -sock_write_iter (2 samples, 0.02%) - - - -update_sd_lb_stats.constprop.0 (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -native_write_msr (5 samples, 0.06%) - - - -pick_next_task_fair (2 samples, 0.02%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -__vm_munmap (1 samples, 0.01%) - - - -tick_irq_enter (1 samples, 0.01%) - - - -kthread_is_per_cpu (1 samples, 0.01%) - - - -enqueue_entity (1 samples, 0.01%) - - - -try_to_wake_up (1 samples, 0.01%) - - - -flush_tlb_mm_range (1 samples, 0.01%) - - - -schedule_timeout (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -[unknown] (48 samples, 0.56%) - - - -IsolateEnterStub__VmLocatorSymbol__vmLocatorSymbol__bec84cad1f8708102cd8814ef3e496531bf6ff5b__bbf2dbb2d6a07a8e1dae8a3072b01ad86ecc1a50 (3 samples, 0.04%) - - - -tick_nohz_get_sleep_length (4 samples, 0.05%) - - - -nf_nat_inet_fn (1 samples, 0.01%) - - - -syscall_exit_to_user_mode (1 samples, 0.01%) - - - -futex_wait (1 samples, 0.01%) - - - -generic_exec_single (12 samples, 0.14%) - - - -asm_sysvec_apic_timer_interrupt (60 samples, 0.70%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -dyntick_save_progress_counter (2 samples, 0.02%) - - - -load_balance (2 samples, 0.02%) - - - -load_balance (1 samples, 0.01%) - - - -do_idle (380 samples, 4.44%) -do_idle - - - diff --git a/_versions/2.7/guides/images/native-reference-perf-flamegraph-symbols.svg b/_versions/2.7/guides/images/native-reference-perf-flamegraph-symbols.svg deleted file mode 100644 index 144dde2ea8e..00000000000 --- a/_versions/2.7/guides/images/native-reference-perf-flamegraph-symbols.svg +++ /dev/null @@ -1,4480 +0,0 @@ - - - - - - - - - - - - - - -Flame Graph - -Reset Zoom -Search -ic - - - -CLDRLocaleProviderAdapter_createLanguageTagSet_2405faf7aaba60dc13ae0a6f77133bb8c94147ed (1 samples, 0.01%) - - - -start_thread (1 samples, 0.01%) - - - -dequeue_entity (1 samples, 0.01%) - - - -enqueue_task_fair (2 samples, 0.03%) - - - -_find_next_bit (1 samples, 0.01%) - - - -run_timer_softirq (1 samples, 0.01%) - - - -Formatter_constructor_cca37bc44efd32578a070431aaecf8882def4adf (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -CgroupUtil_readStringValue_dec6c248a490a1cedf44ed3e120fda1a7ae3324b (1 samples, 0.01%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (2 samples, 0.03%) - - - -ResourceMethodInvoker$$Lambda$c45b2e67cba16984bafd1ca1519e47abdb6d0bda_get_ea5d553494144ab585002e79f36dbdb5df5ecd90 (5,203 samples, 75.65%) -ResourceMethodInvoker$$Lambda$c45b2e67cba16984bafd1ca1519e47abdb6d0bda_get_ea5d553494144ab585002e79f36dbdb5df5ecd90 - - -FastThreadLocalRunnable_run_0329ad2c5210a091812879bcecd155c58e561e60 (2 samples, 0.03%) - - - -EPollSelectorImpl_doSelect_dfc51bd26126a68b9bd5d631ba6e80694002b398 (1 samples, 0.01%) - - - -StringLatin1_charAt_63e028c5b786b8663c4a4aea1cc147a8c4714d9d (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -timerqueue_add (1 samples, 0.01%) - - - -tick_sched_handle (3 samples, 0.04%) - - - -calc_timer_values (1 samples, 0.01%) - - - -drm_helper_probe_detect_ctx (1 samples, 0.01%) - - - -i2c_outb.isra.0 (1 samples, 0.01%) - - - -update_load_avg (1 samples, 0.01%) - - - -rwsem_down_write_slowpath (1 samples, 0.01%) - - - -try_to_wake_up (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (2 samples, 0.03%) - - - -JNILibraryInitializer_checkSupportedJNIVersion_92c1d36d15bed05912bd8d68b590f53461afdf45 (1 samples, 0.01%) - - - -rwsem_down_write_slowpath (2 samples, 0.03%) - - - -acpi_idle_enter (237 samples, 3.45%) -acp.. - - -do_syscall_64 (2 samples, 0.03%) - - - -__schedule (1 samples, 0.01%) - - - -do_syscall_64 (3 samples, 0.04%) - - - -acpi_processor_ffh_cstate_enter (28 samples, 0.41%) - - - -__hrtimer_next_event_base (2 samples, 0.03%) - - - -EPollSelectorImpl_doSelect_dfc51bd26126a68b9bd5d631ba6e80694002b398 (1 samples, 0.01%) - - - -AbstractStringBuilder_append_a8c950f4c131c6b18791121d2ff67fda7a026847 (1 samples, 0.01%) - - - -VertxHttpProcessor$openSocket1866188241_deploy_7b07d97e327c2c1535eef8489b04526037b1f0ff (3 samples, 0.04%) - - - -clockevents_program_event (1 samples, 0.01%) - - - -Bundles_loadBundleOf_c6c5a682b8cfe9174b654518e632d111c3b02c3e (1 samples, 0.01%) - - - -sched_clock_cpu (1 samples, 0.01%) - - - -Containers_activeProcessorCount_d7ffa066c4f063b2364eb7928d07f9e8b72660b1 (1 samples, 0.01%) - - - -gf100_mc_intr_stat (1 samples, 0.01%) - - - -JRELocaleProviderAdapter_getLanguageTagSet_4670b60ce66b61e1197493704df0da44d70d1268 (1 samples, 0.01%) - - - -VertxRequestHandler_dispatch_bd261203f0cde3a342597088250e7d5f6615c2be (5,203 samples, 75.65%) -VertxRequestHandler_dispatch_bd261203f0cde3a342597088250e7d5f6615c2be - - -sysvec_apic_timer_interrupt (3 samples, 0.04%) - - - -iterate_groups (1 samples, 0.01%) - - - -start_thread (1 samples, 0.01%) - - - -__list_add_valid (1 samples, 0.01%) - - - -psi_flags_change (1 samples, 0.01%) - - - -__x86_indirect_thunk_rbx (1 samples, 0.01%) - - - -policy_node (1 samples, 0.01%) - - - -syscall_exit_to_user_mode (1 samples, 0.01%) - - - -VertxImpl_deployVerticle_fcea789add9d3b31e6ff08796618671d34deb721 (3 samples, 0.04%) - - - -SingleThreadEventExecutor$4_run_1b47df7867e302a2fb7f28d7657a73e92f89d91f (1 samples, 0.01%) - - - -tsc_verify_tsc_adjust (1 samples, 0.01%) - - - -rcu_eqs_enter.constprop.0 (1 samples, 0.01%) - - - -FileInputStream_constructor_c26cfb3083610a614cb5843727b1293a2e050fbe (1 samples, 0.01%) - - - -CEntryPointSnippets_attachThread_299a3505abe96864afd07f8f20f652a19cd12ea9 (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -rwsem_down_write_slowpath (2 samples, 0.03%) - - - -LocaleData_getBundle_d06337d44e4c294d19ccaa63f7314a4ece51ab1e (1 samples, 0.01%) - - - -tick_sched_timer (2 samples, 0.03%) - - - -[perf] (20 samples, 0.29%) - - - -FastThreadLocalRunnable_run_0329ad2c5210a091812879bcecd155c58e561e60 (1 samples, 0.01%) - - - -__vm_munmap (4 samples, 0.06%) - - - -acpi_idle_enter (2 samples, 0.03%) - - - -acpi_idle_do_entry (289 samples, 4.20%) -acpi_.. - - -hrtimer_wakeup (1 samples, 0.01%) - - - -VertxImpl_constructor_775d041b08f67497d294acf44ec22a5d77cc1fc8 (6 samples, 0.09%) - - - -quiet_vmstat (1 samples, 0.01%) - - - -rcu_dynticks_inc (1 samples, 0.01%) - - - -__napi_poll (1 samples, 0.01%) - - - -__clone3 (1 samples, 0.01%) - - - -native_sched_clock (1 samples, 0.01%) - - - -select_task_rq_fair (1 samples, 0.01%) - - - -FastThreadLocalRunnable_run_0329ad2c5210a091812879bcecd155c58e561e60 (5,203 samples, 75.65%) -FastThreadLocalRunnable_run_0329ad2c5210a091812879bcecd155c58e561e60 - - -perf_event_task_tick (2 samples, 0.03%) - - - -can_stop_idle_tick (1 samples, 0.01%) - - - -tick_nohz_next_event (1 samples, 0.01%) - - - -IOUtil_drain_5295fea17a082bdfb391eb548081d1088626b45e (1 samples, 0.01%) - - - -enqueue_hrtimer (1 samples, 0.01%) - - - -NioEventLoop_run_be89580b4d16514bef6e948913d2ed21c5e4f679 (1 samples, 0.01%) - - - -native_write_msr (1 samples, 0.01%) - - - -__x64_sys_ioctl (51 samples, 0.74%) - - - -MultithreadEventExecutorGroup_constructor_23099da2a05a0695e33fca7210ac631de273f329 (5 samples, 0.07%) - - - -__entry_text_start (1 samples, 0.01%) - - - -nvkm_timer_alarm_trigger (1 samples, 0.01%) - - - -ThreadExecutorMap$2_run_66c8943ee6536a10df07f979fb6cd278adcf96bc (1 samples, 0.01%) - - - -_dl_start (1 samples, 0.01%) - - - -calc_timer_values (1 samples, 0.01%) - - - -__x64_sys_epoll_pwait (1 samples, 0.01%) - - - -ThreadLocalAllocation_allocateSmallArrayInNewTlab_2321f6d4fc1c4b9e10bb4e93d869d18b5d8c2e80 (2 samples, 0.03%) - - - -cpuidle_not_available (1 samples, 0.01%) - - - -__netif_receive_skb_core.constprop.0 (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -nf_hook_slow (1 samples, 0.01%) - - - -rcu_segcblist_ready_cbs (1 samples, 0.01%) - - - -cpu_startup_entry (3 samples, 0.04%) - - - -timekeeping_advance (1 samples, 0.01%) - - - -asm_common_interrupt (1 samples, 0.01%) - - - -try_to_wake_up (2 samples, 0.03%) - - - -psi_avgs_work (1 samples, 0.01%) - - - -__GI___mprotect (1 samples, 0.01%) - - - -__clone3 (1 samples, 0.01%) - - - -update_rq_clock (1 samples, 0.01%) - - - -sched_setaffinity (1 samples, 0.01%) - - - -__sched_setaffinity (19 samples, 0.28%) - - - -NioEventLoopGroup_constructor_71faef2cba720dff3a733ae1aacd91e752ffea5a (5 samples, 0.07%) - - - -__bitmap_and (1 samples, 0.01%) - - - -__cond_resched (2 samples, 0.03%) - - - -cpu_startup_entry (339 samples, 4.93%) -cpu_st.. - - -SingleThreadEventExecutor$4_run_1b47df7867e302a2fb7f28d7657a73e92f89d91f (1 samples, 0.01%) - - - -native_sched_clock (1 samples, 0.01%) - - - -perf_event_update_userpage (1 samples, 0.01%) - - - -perf_event_idx_default (2 samples, 0.03%) - - - -do_mprotect_pkey (2 samples, 0.03%) - - - -InternalThreadLocalMap_fastGet_b7e03d839ad6d18244b435086c3ab2d54326c976 (1 samples, 0.01%) - - - -Object_hashCode_3de91324fba0d30c45e0d29ba844909fb20c8ef3 (1 samples, 0.01%) - - - -MultithreadEventExecutorGroup_constructor_30993b7c05e555e173884314126cb8ebf8f0a765 (5 samples, 0.07%) - - - -_nohz_idle_balance.constprop.0.isra.0 (1 samples, 0.01%) - - - -init_conntrack.constprop.0 (1 samples, 0.01%) - - - -__GI___munmap (1 samples, 0.01%) - - - -DecimalFormatSymbols_initialize_3f00aa0c337680c52282acc76815fb318fec691e (1 samples, 0.01%) - - - -__vm_munmap (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -menu_select (2 samples, 0.03%) - - - -do_idle (3 samples, 0.04%) - - - -entry_SYSCALL_64_after_hwframe (21 samples, 0.31%) - - - -native_sched_clock (1 samples, 0.01%) - - - -__x64_sys_mprotect (2 samples, 0.03%) - - - -ReentrantLock_unlock_86cdca028e9dd52644b7822ba738ec004cf0c360 (1 samples, 0.01%) - - - -acpi_idle_do_entry (3 samples, 0.04%) - - - -osq_lock (1 samples, 0.01%) - - - -idle_cpu (2 samples, 0.03%) - - - -xfsaild (1 samples, 0.01%) - - - -SelectorImpl_lockAndDoSelect_de3ba179520b17b51a73f959a29e5a68bde086ce (1 samples, 0.01%) - - - -update_curr (1 samples, 0.01%) - - - -rwsem_down_read_slowpath (1 samples, 0.01%) - - - -tick_nohz_idle_exit (1 samples, 0.01%) - - - -selinux_task_setscheduler (3 samples, 0.04%) - - - -free_unref_page_commit.constprop.0 (1 samples, 0.01%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (1 samples, 0.01%) - - - -sched_clock (2 samples, 0.03%) - - - -AbstractEventExecutor_safeExecute_48c5811cdd8968be97028bc79c80e772e065c655 (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (55 samples, 0.80%) - - - -rcu_note_context_switch (2 samples, 0.03%) - - - -tick_nohz_stop_tick (2 samples, 0.03%) - - - -entry_SYSCALL_64_after_hwframe (6 samples, 0.09%) - - - -__entry_text_start (1 samples, 0.01%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (2 samples, 0.03%) - - - -SmallRyeContextManager_constructor_110d63603f1eb31c28770237cae6de36db3d8bbb (1 samples, 0.01%) - - - -__handle_irq_event_percpu (1 samples, 0.01%) - - - -ClassInitializationInfo_initialize_2fab2a9469a0ef812c52b0ce6061de6c2c8b76f9 (1 samples, 0.01%) - - - -__clone3 (21 samples, 0.31%) - - - -tick_nohz_idle_exit (5 samples, 0.07%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (1 samples, 0.01%) - - - -net_rx_action (1 samples, 0.01%) - - - -nmi_restore (1 samples, 0.01%) - - - -perf_ioctl (42 samples, 0.61%) - - - -Util_jdk_internal_misc_Signal$DispatchThread_run_eeebea10b374a7031abb3bd32119e4d5872bb7de (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -start_thread (5,203 samples, 75.65%) -start_thread - - -__irq_exit_rcu (1 samples, 0.01%) - - - -ret_from_fork (2 samples, 0.03%) - - - -Composition_onSuccess_5ef14c9950c1a03bd26172ee39e0892d5d2b83df (1 samples, 0.01%) - - - -save_fpregs_to_fpstate (1 samples, 0.01%) - - - -kmem_cache_alloc_trace (1 samples, 0.01%) - - - -FutureBase_lambda$emitSuccess$0_a532cf7d5071724a34a836ef9024aeb54f27cd14 (1 samples, 0.01%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (9 samples, 0.13%) - - - -pick_next_task_fair (1 samples, 0.01%) - - - -__update_load_avg_se (2 samples, 0.03%) - - - -__irq_exit_rcu (1 samples, 0.01%) - - - -AbstractStringBuilder_append_5488923cc849183f0525c23695d6326c7735ac5a (1 samples, 0.01%) - - - -asm_common_interrupt (2 samples, 0.03%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (1 samples, 0.01%) - - - -dequeue_task_fair (9 samples, 0.13%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -native_write_msr (13 samples, 0.19%) - - - -UnmanagedMemoryUtil_copyForward_82a74c216e7c9d84efc44e8a2463bf268babab5e (1 samples, 0.01%) - - - -native_sched_clock (2 samples, 0.03%) - - - -save_fpregs_to_fpstate (1 samples, 0.01%) - - - -perf_event_idx_default (1 samples, 0.01%) - - - -update_irq_load_avg (1 samples, 0.01%) - - - -poll_freewait (1 samples, 0.01%) - - - -iov_iter_fault_in_readable (1 samples, 0.01%) - - - -VertxHttpProcessor$openSocket1866188241_deploy_0_f62af8cc66423d57d1e40c5a1ec11136d1b717ee (3 samples, 0.04%) - - - -rcu_idle_enter (1 samples, 0.01%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (5,203 samples, 75.65%) -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 - - -alloc_cpumask_var_node (1 samples, 0.01%) - - - -VertxHttpRecorder_startServer_c11f0a68def0b12024624749d87e838bcfaba8d2 (3 samples, 0.04%) - - - -exc_nmi (2 samples, 0.03%) - - - -hrtimer_wakeup (1 samples, 0.01%) - - - -__GI___fcntl (1 samples, 0.01%) - - - -native_write_msr (2 samples, 0.03%) - - - -entry_SYSCALL_64_after_hwframe (2 samples, 0.03%) - - - -tloop-thread-59 (1 samples, 0.01%) - - - -rcu_read_unlock_strict (1 samples, 0.01%) - - - -collect_percpu_times (1 samples, 0.01%) - - - -GlobalEventExecutor_constructor_da0f4ea3ecb399e737bba37496ce8621738c3421 (1 samples, 0.01%) - - - -native_write_msr (1 samples, 0.01%) - - - -DecimalFormatSymbols_getInstance_8e8551d477fcd2628da25215aa60c28b1dda9ca8 (1 samples, 0.01%) - - - -try_charge_memcg (1 samples, 0.01%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -_dl_lookup_symbol_x (1 samples, 0.01%) - - - -asm_sysvec_apic_timer_interrupt (81 samples, 1.18%) - - - -SingleThreadEventExecutor$4_run_1b47df7867e302a2fb7f28d7657a73e92f89d91f (1 samples, 0.01%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (1 samples, 0.01%) - - - -Formatter_getZero_8b61958139301e105c9e63b49cb2c92f943ddad5 (1 samples, 0.01%) - - - -_raw_spin_lock_irqsave (1 samples, 0.01%) - - - -switch_mm_irqs_off (1 samples, 0.01%) - - - -Java_sun_nio_ch_EPoll_ctl (1 samples, 0.01%) - - - -AbstractStringBuilder_append_3f1d6796b1056fe35061fd00638930def6b1d957 (1 samples, 0.01%) - - - -CgroupUtil_lambda$readStringValue$0_a6d235bf5481a269733b731f50da0a272e1e2ada (1 samples, 0.01%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -__calc_delta (1 samples, 0.01%) - - - -avc_has_perm (1 samples, 0.01%) - - - -NioEventLoopGroup_constructor_194be6972b9ebc23f435c4e558bfcee11ed151b1 (5 samples, 0.07%) - - - -osq_lock (1 samples, 0.01%) - - - -FileInputStream_constructor_aac741e2ef07c171301eb35c0deea3293fe4d747 (1 samples, 0.01%) - - - -tick_nohz_stop_tick (1 samples, 0.01%) - - - -end_repeat_nmi (1 samples, 0.01%) - - - -cpuidle_enter_state (3 samples, 0.04%) - - - -NioEventLoop_select_4400f85956c925748c40da4a81f574a360b028e5 (1 samples, 0.01%) - - - -epoll_wait (1 samples, 0.01%) - - - -__softirqentry_text_start (1 samples, 0.01%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (1 samples, 0.01%) - - - -_perf_ioctl (32 samples, 0.47%) - - - -sysvec_apic_timer_interrupt (81 samples, 1.18%) - - - -ThreadPerTaskExecutor_execute_9afc5d4473f674f08e02dd448b4e6a6247aa748d (3 samples, 0.04%) - - - -SingleThreadEventExecutor_doStartThread_f74c626e81f588e0747a3e04c8bdb98bee0cbdb6 (3 samples, 0.04%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (1 samples, 0.01%) - - - -__clone3 (1 samples, 0.01%) - - - -Java_sun_nio_ch_IOUtil_makePipe (1 samples, 0.01%) - - - -common_interrupt (1 samples, 0.01%) - - - -__calc_delta (1 samples, 0.01%) - - - -iomap_file_buffered_write (6 samples, 0.09%) - - - -__x86_indirect_thunk_rbp (1 samples, 0.01%) - - - -__clone3 (2 samples, 0.03%) - - - -AbstractStringBuilder_delete_58681f709e2653ae2d27c3a178d8de9a64d94ff7 (5,202 samples, 75.63%) -AbstractStringBuilder_delete_58681f709e2653ae2d27c3a178d8de9a64d94ff7 - - -sugov_update_single_freq (1 samples, 0.01%) - - - -__bitmap_equal (1 samples, 0.01%) - - - -perf_event_update_userpage (1 samples, 0.01%) - - - -__GI___sched_setaffinity_new (66 samples, 0.96%) - - - -__x86_indirect_thunk_r14 (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -page_memcg (1 samples, 0.01%) - - - -perf_ibs_handle_irq (1 samples, 0.01%) - - - -EPollSelectorImpl_processEvents_987d82f8c09d324f18009971cc77f5c9751c5856 (1 samples, 0.01%) - - - -poll_idle (1 samples, 0.01%) - - - -nouveau_connector_detect (1 samples, 0.01%) - - - -timer_clear_idle (1 samples, 0.01%) - - - -ApplicationImpl_doStart_e1afde9430e67b7c57499ed67ff5f64600d056ec (10 samples, 0.15%) - - - -_raw_spin_unlock_irqrestore (1 samples, 0.01%) - - - -do_syscall_64 (2 samples, 0.03%) - - - -update_min_vruntime (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.09%) - - - -ThreadExecutorMap$2_run_66c8943ee6536a10df07f979fb6cd278adcf96bc (1 samples, 0.01%) - - - -__sysvec_apic_timer_interrupt (38 samples, 0.55%) - - - -HttpServerImpl_listen_924344dca4d1462c93ec93b2d8a5621ac5568922 (2 samples, 0.03%) - - - -schedule_idle (1 samples, 0.01%) - - - -ktime_get_ts64 (1 samples, 0.01%) - - - -acpi_idle_enter (299 samples, 4.35%) -acpi_.. - - -rb_next (1 samples, 0.01%) - - - -dequeue_task_fair (1 samples, 0.01%) - - - -perf_event_idx_default (4 samples, 0.06%) - - - -ktime_get_update_offsets_now (28 samples, 0.41%) - - - -ktime_get (44 samples, 0.64%) - - - -psi_task_switch (1 samples, 0.01%) - - - -MultiThreadedMonitorSupport_monitorEnter_a853e48d8499fe94e7e0723447fc9d2060965e91 (1 samples, 0.01%) - - - -SynchronousDispatcher_preprocess_8f9789eb05b0c2ed2bfb4a45ed81798e9f4e1c2b (5,203 samples, 75.65%) -SynchronousDispatcher_preprocess_8f9789eb05b0c2ed2bfb4a45ed81798e9f4e1c2b - - -native_queued_spin_lock_slowpath (1 samples, 0.01%) - - - -__virt_addr_valid (1 samples, 0.01%) - - - -__GI_epoll_ctl (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -do_mprotect_pkey (1 samples, 0.01%) - - - -__GI___mmap64 (4 samples, 0.06%) - - - -StackOverflowCheckImpl_initialize_aaf8521db46ac9287b8d5950d505eca786aadb91 (1 samples, 0.01%) - - - -IsolateEnterStub_JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b_a61fe6c26e84dd4037e4629852b5488bfcc16e7e (10 samples, 0.15%) - - - -do_idle (339 samples, 4.93%) -do_idle - - -PooledByteBufAllocator_constructor_3f22fd13fc11f1a9f2781e94e3855aa075af6d9f (2 samples, 0.03%) - - - -poll_idle (1 samples, 0.01%) - - - -Collections_addAll_df242f0b9a5d57257a9c98d0d21d96ea04c162c3 (1 samples, 0.01%) - - - -memcg_slab_post_alloc_hook (1 samples, 0.01%) - - - -schedule (1 samples, 0.01%) - - - -rebalance_domains (2 samples, 0.03%) - - - -new_sync_write (6 samples, 0.09%) - - - -NioEventLoop_run_be89580b4d16514bef6e948913d2ed21c5e4f679 (2 samples, 0.03%) - - - -down_write_killable (2 samples, 0.03%) - - - -JavaThreads_startThread_4a48623aeb6d5a9f3cf7f8dabdba7ffbb99828ba (3 samples, 0.04%) - - - -Integer_getChars_2437c44e6023372be22fabd9686065302ca92d3e (2 samples, 0.03%) - - - -menu_select (3 samples, 0.04%) - - - -do_idle (3 samples, 0.04%) - - - -sysvec_apic_timer_interrupt (148 samples, 2.15%) -s.. - - -perf_event_for_each_child (26 samples, 0.38%) - - - -update_min_vruntime (1 samples, 0.01%) - - - -ConfigValueConfigSourceWrapper_getConfigValue_22547015811a89d3a8167bb59da895feec96784a (1 samples, 0.01%) - - - -NioEventLoopGroup_newChild_18cd34fd0de866436bd03197e567ec292a38961b (3 samples, 0.04%) - - - -ThreadLocalAllocation_slowPathNewArray_846db6d88ea2f5c90935fae3e872715327297019 (9 samples, 0.13%) - - - -HashMap_put_984cd2450422ab28c8fd057c8fadb18b9b383f84 (1 samples, 0.01%) - - - -raw_spin_rq_unlock (1 samples, 0.01%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (1 samples, 0.01%) - - - -down_write_killable (2 samples, 0.03%) - - - -output_poll_execute (1 samples, 0.01%) - - - -perf_event_update_userpage (2 samples, 0.03%) - - - -__x86_indirect_thunk_rax (3 samples, 0.04%) - - - -dequeue_entity (1 samples, 0.01%) - - - -flush_memcg_stats_dwork (1 samples, 0.01%) - - - -secondary_startup_64_no_verify (343 samples, 4.99%) -second.. - - -SmallRyeContextManager$Builder_build_989ade227f951d5ccbc6f57df6cbe552605870a2 (1 samples, 0.01%) - - - -down_write_killable (3 samples, 0.04%) - - - -__clone3 (1 samples, 0.01%) - - - -raw_spin_rq_unlock (3 samples, 0.04%) - - - -UnmanagedMemoryUtil_copyForward_82a74c216e7c9d84efc44e8a2463bf268babab5e (1 samples, 0.01%) - - - -PosixVirtualMemoryProvider_reserve_b6c76ffcfaac89204e3ddd5f1a5cd110a1860862 (3 samples, 0.04%) - - - -__schedule (1 samples, 0.01%) - - - -ret_from_fork (3 samples, 0.04%) - - - -__check_heap_object (1 samples, 0.01%) - - - -__hrtimer_run_queues (8 samples, 0.12%) - - - -xfs_inode_item_format (1 samples, 0.01%) - - - -tick_nohz_stop_tick (1 samples, 0.01%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (1 samples, 0.01%) - - - -native_write_msr (8 samples, 0.12%) - - - -find_busiest_group (1 samples, 0.01%) - - - -perf_event_update_userpage (1 samples, 0.01%) - - - -update_load_avg (2 samples, 0.03%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -SingleThreadEventExecutor_execute_b9fc33f6cf952ec696d6a219f6499740711801a6 (3 samples, 0.04%) - - - -__pthread_getattr_np (1 samples, 0.01%) - - - -VertxCoreRecorder$VertxSupplier_get_ad6de8dda214b81feb5c157bb64f41c2109a30fb (6 samples, 0.09%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (2 samples, 0.03%) - - - -tick_irq_enter (1 samples, 0.01%) - - - -vfs_read (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (2 samples, 0.03%) - - - -update_load_avg (1 samples, 0.01%) - - - -JavaMemoryUtil_copyPrimitiveArrayForward_04558096db261373c167eb1c8cc366001be76728 (5,202 samples, 75.63%) -JavaMemoryUtil_copyPrimitiveArrayForward_04558096db261373c167eb1c8cc366001be76728 - - -PreMatchContainerRequestContext_filter_ed53506a3bc6ae4769c8d7447ae589c1c45bb04a (5,203 samples, 75.65%) -PreMatchContainerRequestContext_filter_ed53506a3bc6ae4769c8d7447ae589c1c45bb04a - - -hrtimer_init_sleeper (1 samples, 0.01%) - - - -_find_next_bit (1 samples, 0.01%) - - - -flush_smp_call_function_queue (6 samples, 0.09%) - - - -do_sys_poll (1 samples, 0.01%) - - - -rb_erase (1 samples, 0.01%) - - - -VMError_guarantee_18caf46ef6d672f2c7aab3ad271ff5117b823ec1 (1 samples, 0.01%) - - - -EPollSelectorImpl_clearInterrupt_0b170fb8e31667827cb531f61c571c3a58fa5c9c (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -[perf] (333 samples, 4.84%) -[perf] - - -asm_sysvec_apic_timer_interrupt (3 samples, 0.04%) - - - -tloop-thread-79 (1 samples, 0.01%) - - - -generic_exec_single (24 samples, 0.35%) - - - -__hrtimer_next_event_base (1 samples, 0.01%) - - - -do_epoll_pwait.part.0 (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (3 samples, 0.04%) - - - -vm_mmap_pgoff (1 samples, 0.01%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (1 samples, 0.01%) - - - -FastThreadLocal_set_fff7f7440bd45eebb04f4f5e75aa2e886029c385 (1 samples, 0.01%) - - - -DefaultValues_constructor_42b1c927d5d211da15badbbf7e2cd36a524c60c5 (1 samples, 0.01%) - - - -HeapChunkProvider_produceAlignedChunk_151eeb69b2ff04e5a10d422de20e777d95b68672 (7 samples, 0.10%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (9 samples, 0.13%) - - - -Application_start_9a0b63742d6e66c1b5dc0121670fdf46106d2d88 (10 samples, 0.15%) - - - -acpi_processor_ffh_cstate_enter (3 samples, 0.04%) - - - -task_tick_fair (2 samples, 0.03%) - - - -acpi_processor_ffh_cstate_enter (44 samples, 0.64%) - - - -dl_task_check_affinity (1 samples, 0.01%) - - - -__remove_hrtimer (1 samples, 0.01%) - - - -ThreadExecutorMap$2_run_66c8943ee6536a10df07f979fb6cd278adcf96bc (1 samples, 0.01%) - - - -ResourceMethodInvoker_invoke_ecd15bd481d6b9ac845055c3b0868ec2d9d5db8b (5,203 samples, 75.65%) -ResourceMethodInvoker_invoke_ecd15bd481d6b9ac845055c3b0868ec2d9d5db8b - - -__hrtimer_run_queues (3 samples, 0.04%) - - - -String_format_b37619acc0ead67a05e6961119f206850dc1edf9 (1 samples, 0.01%) - - - -Signal_dispatch_bcb0c1d8f443286c2e23cb169addad8f98e40c4f (1 samples, 0.01%) - - - -kthread (3 samples, 0.04%) - - - -VertxHttpProcessor$preinitializeRouter1141331088_deploy_0_04f518fcb19517993a4ab43510a8b1bf5082b981 (6 samples, 0.09%) - - - -SingleThreadEventExecutor_runAllTasks_1c632c8f112449f5c5cb92250f70fa224c43b8f9 (2 samples, 0.03%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -SmallRyeContextPropagationRecorder_configureRuntime_91af04ddc20f1337d1ec47d12d569da95f388696 (1 samples, 0.01%) - - - -affine_move_task (1 samples, 0.01%) - - - -perf_ibs_stop (1 samples, 0.01%) - - - -NioEventLoop_run_be89580b4d16514bef6e948913d2ed21c5e4f679 (1 samples, 0.01%) - - - -EnhancedQueueExecutor$ThreadBody_run_e70256a0a4fe9f6a77701bda112aef0436551de9 (5,203 samples, 75.65%) -EnhancedQueueExecutor$ThreadBody_run_e70256a0a4fe9f6a77701bda112aef0436551de9 - - -update_cfs_group (1 samples, 0.01%) - - - -read_tsc (1 samples, 0.01%) - - - -sched_clock_cpu (9 samples, 0.13%) - - - -StringBuilderResource_appendDelete_9e06d4817d0208a0cce97ebcc0952534cac45a19 (5,203 samples, 75.65%) -StringBuilderResource_appendDelete_9e06d4817d0208a0cce97ebcc0952534cac45a19 - - -cpumask_any_and_distribute (1 samples, 0.01%) - - - -EPoll_wait_924e0155f5e5b0f5871656887c69c84c66dabd03 (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (1 samples, 0.01%) - - - -TCPServerBase_listen_0178883c054d7a1089dfb36af5cd1df5c11faa01 (2 samples, 0.03%) - - - -run_posix_cpu_timers (1 samples, 0.01%) - - - -tick_nohz_idle_got_tick (1 samples, 0.01%) - - - -arena_get2.part.0 (8 samples, 0.12%) - - - -FutureBase$$Lambda$1a242d9af289ab51236f34d2b5ce865d7385ac85_run_44090d6353a0b2a719d01b3b7549c66faeec19ac (1 samples, 0.01%) - - - -RequestDispatcher_service_21e693aae924b24e39e78ee32740e878fcf31c62 (5,203 samples, 75.65%) -RequestDispatcher_service_21e693aae924b24e39e78ee32740e878fcf31c62 - - -CgroupUtil$$Lambda$017b0cd0360754c055090b7d9521ad624f6920d8_run_77af995cd5a939af9f290a79416bc56d932802be (1 samples, 0.01%) - - - -native_sched_clock (2 samples, 0.03%) - - - -menu_reflect (1 samples, 0.01%) - - - -NioEventLoop_constructor_49df0e0d6cddf8f78e642a99ad82de56c1f0a39b (3 samples, 0.04%) - - - -security_task_setscheduler (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (4 samples, 0.06%) - - - -AbstractScheduledEventExecutor_scheduledTaskQueue_0845941b70faa6fbebbf559e17b92044930f7689 (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -LinuxStackOverflowSupport_getStackInformation_668d550a017f138111a811aa1691a8cdc4c01e07 (1 samples, 0.01%) - - - -PooledByteBufAllocator_<clinit>_21f234826cd9f3a4b36f743cf0eab78640b3f2fc (2 samples, 0.03%) - - - -perf (344 samples, 5.00%) -perf - - -vm_mmap_pgoff (2 samples, 0.03%) - - - -__GI___write (20 samples, 0.29%) - - - -i2c_transfer (1 samples, 0.01%) - - - -update_min_vruntime (1 samples, 0.01%) - - - -schedule (1 samples, 0.01%) - - - -start_kernel (3 samples, 0.04%) - - - -DeploymentManager_lambda$doDeploy$5_c3cad315748fdf4e2680e0fb8aa9d13885437e92 (2 samples, 0.03%) - - - -mod_objcg_state (1 samples, 0.01%) - - - -_perf_event_enable (1 samples, 0.01%) - - - -[perf] (311 samples, 4.52%) -[perf] - - -poll_freewait (1 samples, 0.01%) - - - -process_one_work (1 samples, 0.01%) - - - -__fcntl64_nocancel_adjusted (1 samples, 0.01%) - - - -set_cpus_allowed_common (2 samples, 0.03%) - - - -enqueue_task_fair (1 samples, 0.01%) - - - -cpuidle_enter (3 samples, 0.04%) - - - -worker_thread (2 samples, 0.03%) - - - -calc_timer_values (1 samples, 0.01%) - - - -hrtimer_forward (1 samples, 0.01%) - - - -enqueue_entity (1 samples, 0.01%) - - - -LocaleData$1_run_8e15394bebe96a4c95d0706e2864c07442a8d06d (1 samples, 0.01%) - - - -dequeue_task_fair (1 samples, 0.01%) - - - -VertxHttpRecorder$WebDeploymentVerticle_setupTcpHttpServer_9628d2555bc571703a294132046d9520baa719ce (2 samples, 0.03%) - - - -lapic_next_event (1 samples, 0.01%) - - - -Java_sun_nio_ch_IOUtil_write1 (1 samples, 0.01%) - - - -d_alloc_pseudo (1 samples, 0.01%) - - - -hrtimer_interrupt (37 samples, 0.54%) - - - -update_curr (5 samples, 0.07%) - - - -SIGINT_handler (1 samples, 0.01%) - - - -smpboot_thread_fn (1 samples, 0.01%) - - - -__common_interrupt (1 samples, 0.01%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -QuarkusExecutorFactory_createExecutor_9729cf50c2d628de11b3a8042829183a7e7bf123 (1 samples, 0.01%) - - - -__x64_sys_munmap (4 samples, 0.06%) - - - -SynchronousDispatcher$$Lambda$272cbc239fe16868b5b9c4d18a415e65ad284626_get_066209accc18eab354e52a2a1e440e3711935b5b (5,203 samples, 75.65%) -SynchronousDispatcher$$Lambda$272cbc239fe16868b5b9c4d18a415e65ad284626_get_066209accc18eab354e52a2a1e440e3711935b5b - - -rwsem_down_write_slowpath (3 samples, 0.04%) - - - -DeploymentManager$$Lambda$2780e112bbbc503323919310b7eba5d4bd5972e7_handle_46ed4864dbed50147dc1770382bbc2cd6058e622 (2 samples, 0.03%) - - - -igb_poll (1 samples, 0.01%) - - - -NioEventLoop_run_be89580b4d16514bef6e948913d2ed21c5e4f679 (1 samples, 0.01%) - - - -VMThreads_findIsolateThreadForCurrentOSThread_92ae819b2eb5871e48575e78c4c13a4549a980b0 (1 samples, 0.01%) - - - -__sysvec_apic_timer_interrupt (90 samples, 1.31%) - - - -Runtime_availableProcessors_8c88a5035e0f76404bd388d31bc8ea17e15f987b (1 samples, 0.01%) - - - -set_next_task_idle (1 samples, 0.01%) - - - -[unknown] (1 samples, 0.01%) - - - -__GI___mmap64 (2 samples, 0.03%) - - - -GlobalEventExecutor_<clinit>_50a03cee518d54ec869344f03e9a33d49338fe89 (1 samples, 0.01%) - - - -perf_event_task_tick (1 samples, 0.01%) - - - -schedule_hrtimeout_range_clock (1 samples, 0.01%) - - - -__GI___mmap64 (3 samples, 0.04%) - - - -sched_clock_idle_wakeup_event (1 samples, 0.01%) - - - -__netif_receive_skb_list_core (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -native_sched_clock (1 samples, 0.01%) - - - -nvkm_mc_intr (1 samples, 0.01%) - - - -__mod_lruvec_state (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -blk_finish_plug (1 samples, 0.01%) - - - -VMThreads_findIsolateThreadForCurrentOSThread_92ae819b2eb5871e48575e78c4c13a4549a980b0 (1 samples, 0.01%) - - - -select_task_rq_fair (2 samples, 0.03%) - - - -acpi_processor_ffh_cstate_enter (5 samples, 0.07%) - - - -update_sd_lb_stats.constprop.0 (1 samples, 0.01%) - - - -calc_wheel_index (1 samples, 0.01%) - - - -enqueue_task (1 samples, 0.01%) - - - -__remove_hrtimer (1 samples, 0.01%) - - - -cpuidle_enter_state (3 samples, 0.04%) - - - -cgroup_rstat_flush_irqsafe (1 samples, 0.01%) - - - -__x64_sys_mprotect (1 samples, 0.01%) - - - -hrtimer_interrupt (1 samples, 0.01%) - - - -native_sched_clock (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (96 samples, 1.40%) - - - -arch_perf_update_userpage (3 samples, 0.04%) - - - -_dl_sysdep_start (1 samples, 0.01%) - - - -nohz_run_idle_balance (1 samples, 0.01%) - - - -down_write_killable (1 samples, 0.01%) - - - -netif_receive_skb_list_internal (1 samples, 0.01%) - - - -lock_page_memcg (1 samples, 0.01%) - - - -VertxBuilder_vertx_96fbf1a3cb1f742947b0ca876c6065e325fb888f (6 samples, 0.09%) - - - -native_write_msr (3 samples, 0.04%) - - - -native_write_msr (3 samples, 0.04%) - - - -__mod_memcg_state.part.0 (1 samples, 0.01%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (1 samples, 0.01%) - - - -SubstrateArraycopySnippets_doArraycopy_f84b22127218a3e56e291fab3a848f043b4ef61f (1 samples, 0.01%) - - - -SubstrateAllocationSnippets_newMultiArrayRecursion_1d8dcff1021ab9ecc1a1f2b483cd1dd7943ba1e3 (1 samples, 0.01%) - - - -osq_lock (2 samples, 0.03%) - - - -down_write_killable (1 samples, 0.01%) - - - -update_load_avg (1 samples, 0.01%) - - - -MultiThreadedMonitorSupport_getOrCreateMonitor_2ecf5995a7a109dacede518d33424ec5ebddfde6 (1 samples, 0.01%) - - - -__irq_exit_rcu (1 samples, 0.01%) - - - -SmallRyeContextPropagationProcessor$build1300494616_deploy_0_5b2b050e73892cbed63182af376589f0f9196595 (1 samples, 0.01%) - - - -__clone3 (1 samples, 0.01%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (19 samples, 0.28%) - - - -do_user_addr_fault (1 samples, 0.01%) - - - -__GI___mmap64 (1 samples, 0.01%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (2 samples, 0.03%) - - - -get_cpu_device (1 samples, 0.01%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (1 samples, 0.01%) - - - -menu_select (1 samples, 0.01%) - - - -mntput_no_expire (1 samples, 0.01%) - - - -native_write_msr (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -FileCleanable_register_ce5f929418f49c4036e4eca128104b8ed5fca8cd (1 samples, 0.01%) - - - -AccessController_doPrivileged_de67c881e9b98da6843ef32b423a3d8bdbb4a36a (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -MethodInjectorImpl_invoke_9ffe1d0d644afc798fca21f38b93f6001d9d69e0 (5,203 samples, 75.65%) -MethodInjectorImpl_invoke_9ffe1d0d644afc798fca21f38b93f6001d9d69e0 - - -[unknown] (3 samples, 0.04%) - - - -menu_select (4 samples, 0.06%) - - - -JavaMemoryUtil_copyPrimitiveArrayForward_ba0fe8da18fa7f513fc003ad474ddce7ea34ac68 (5,201 samples, 75.62%) -JavaMemoryUtil_copyPrimitiveArrayForward_ba0fe8da18fa7f513fc003ad474ddce7ea34ac68 - - -ttwu_do_wakeup (1 samples, 0.01%) - - - -MultiThreadedMonitorSupport_slowPathMonitorEnter_5c2ec80c70301e1f54c9deef94b70b719d5a10f5 (1 samples, 0.01%) - - - -native_irq_return_iret (1 samples, 0.01%) - - - -__x64_sys_poll (1 samples, 0.01%) - - - -ClassInitializationInfo_invokeClassInitializer_bbe695b1135def8c02910dab61e8f305ee37d4f1 (1 samples, 0.01%) - - - -ClassInitializationInfo_invokeClassInitializer_bbe695b1135def8c02910dab61e8f305ee37d4f1 (2 samples, 0.03%) - - - -visit_groups_merge.constprop.0.isra.0 (22 samples, 0.32%) - - - -Java_sun_nio_ch_IOUtil_drain (1 samples, 0.01%) - - - -VertxImpl$$Lambda$144505bd7a76b7cf49821bf3a069bb5516927110_apply_dfd21eab8e62e3425360c396d40782792788ec7c (1 samples, 0.01%) - - - -dequeue_task_fair (1 samples, 0.01%) - - - -__calloc (8 samples, 0.12%) - - - -schedule (1 samples, 0.01%) - - - -_find_next_bit (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (4 samples, 0.06%) - - - -__x86_indirect_thunk_rax (5 samples, 0.07%) - - - -SingleThreadEventExecutor$4_run_1b47df7867e302a2fb7f28d7657a73e92f89d91f (2 samples, 0.03%) - - - -rmqueue_bulk (1 samples, 0.01%) - - - -rebalance_domains (1 samples, 0.01%) - - - -native_sched_clock (2 samples, 0.03%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -SelectedSelectionKeySetSelector_wakeup_52b1bd6d8d8b91dedd71e801800a82502a555a7b (1 samples, 0.01%) - - - -hrtimer_cancel (1 samples, 0.01%) - - - -__wake_up_common_lock (1 samples, 0.01%) - - - -iterate_groups (1 samples, 0.01%) - - - -OSCommittedMemoryProvider_allocate_f8d80d596cf0c26612afa4c08c54998e761aa867 (7 samples, 0.10%) - - - -tloop-thread-85 (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -ThreadExecutorMap$1_execute_82a130cdd46546392da3ffac84de8c998f29d43c (3 samples, 0.04%) - - - -EnhancedQueueExecutor$Task_run_0698ada71c4e28a891fbc5cecfd8587d41514d90 (5,203 samples, 75.65%) -EnhancedQueueExecutor$Task_run_0698ada71c4e28a891fbc5cecfd8587d41514d90 - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (1 samples, 0.01%) - - - -LocaleData_getNumberFormatData_5b41facb88b603faae6feca879d2b4e048f3c22d (1 samples, 0.01%) - - - -irq_work_needs_cpu (1 samples, 0.01%) - - - -ktime_get (3 samples, 0.04%) - - - -hrtimer_next_event_without (2 samples, 0.03%) - - - -ip_rcv (1 samples, 0.01%) - - - -tick_nohz_idle_stop_tick (1 samples, 0.01%) - - - -do_syscall_64 (53 samples, 0.77%) - - - -PropertyNamesConfigSourceInterceptor_getValue_11640ac94f79b85a3285676ef33b9850d23385d8 (1 samples, 0.01%) - - - -SingleThreadEventExecutor_execute_b9fc33f6cf952ec696d6a219f6499740711801a6 (1 samples, 0.01%) - - - -Arrays_fill_13b665e637ab47c98d30a62411fcb48b3b1b705a (1 samples, 0.01%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (1 samples, 0.01%) - - - -do_idle (467 samples, 6.79%) -do_idle - - -put_prev_task_idle (1 samples, 0.01%) - - - -sched_ttwu_pending (1 samples, 0.01%) - - - -PosixJavaThreads_beforeThreadRun_74270183030d3cf183dcaf07b8ca65494761107e (9 samples, 0.13%) - - - -gnal_Dispatcher (2 samples, 0.03%) - - - -remote_function (24 samples, 0.35%) - - - -CLDRBaseLocaleDataMetaInfo_availableLanguageTags_53777e47b8f22f7f901d1815d54498c12bf7d1e3 (1 samples, 0.01%) - - - -VertxImpl_deployVerticle_b3ce74c752ac28ceba0a6a5f10e8c73f24f312fb (3 samples, 0.04%) - - - -__mod_timer (1 samples, 0.01%) - - - -sched_clock (1 samples, 0.01%) - - - -__pagevec_lru_add (1 samples, 0.01%) - - - -__x64_sys_sched_setaffinity (21 samples, 0.31%) - - - -ResourceMethodInvoker_invoke_f84ce6055610e611d4f1d369a7f33e56653908f3 (5,203 samples, 75.65%) -ResourceMethodInvoker_invoke_f84ce6055610e611d4f1d369a7f33e56653908f3 - - -EPoll_create_37b4f4fe7f9b3384198247adf49e3aee215750e1 (1 samples, 0.01%) - - - -hrtimer_get_next_event (1 samples, 0.01%) - - - -__switch_to_asm (1 samples, 0.01%) - - - -__bitmap_and (1 samples, 0.01%) - - - -sync_regs (1 samples, 0.01%) - - - -calc_timer_values (1 samples, 0.01%) - - - -bpf_lsm_task_setscheduler (1 samples, 0.01%) - - - -selinux_task_alloc (1 samples, 0.01%) - - - -vfs_write (6 samples, 0.09%) - - - -tick_nohz_idle_stop_tick (3 samples, 0.04%) - - - -URI_decode_c22e283d746085135a26df47165adfd68a6e8305 (1 samples, 0.01%) - - - -EventLoopContext_runOnContext_1032f3075a9010887ecdd3fdc7989166bf814f22 (1 samples, 0.01%) - - - -__do_set_cpus_allowed (1 samples, 0.01%) - - - -memset (1 samples, 0.01%) - - - -SmallRyeConfig_convertValue_a70b0d2cf8164b0930913b203315dde297130e7b (1 samples, 0.01%) - - - -handle_edge_irq (1 samples, 0.01%) - - - -cpuidle_not_available (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.09%) - - - -SingleThreadEventExecutor_execute_ae2480551d18263655f927040d2e4463ae8e5bf2 (1 samples, 0.01%) - - - -ctx_sched_in (22 samples, 0.32%) - - - -blk_finish_plug (1 samples, 0.01%) - - - -__softirqentry_text_start (1 samples, 0.01%) - - - -__remove_hrtimer (2 samples, 0.03%) - - - -error_return (1 samples, 0.01%) - - - -poll_idle (2 samples, 0.03%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -native_write_msr (15 samples, 0.22%) - - - -cpuidle_enter (324 samples, 4.71%) -cpuid.. - - -tick_sched_timer (3 samples, 0.04%) - - - -__i2c_transfer (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (150 samples, 2.18%) -a.. - - -hrtimer_start_range_ns (1 samples, 0.01%) - - - -__GI___ioctl_time64 (216 samples, 3.14%) -__G.. - - -__update_load_avg_se (1 samples, 0.01%) - - - -native_irq_return_iret (1 samples, 0.01%) - - - -rwsem_down_write_slowpath (1 samples, 0.01%) - - - -hrtimer_start_range_ns (1 samples, 0.01%) - - - -acpi_idle_do_entry (3 samples, 0.04%) - - - -ClassInitializationInfo_initialize_2fab2a9469a0ef812c52b0ce6061de6c2c8b76f9 (2 samples, 0.03%) - - - -osq_lock (1 samples, 0.01%) - - - -do_idle (3 samples, 0.04%) - - - -run_posix_cpu_timers (1 samples, 0.01%) - - - -copy_page_from_iter_atomic (5 samples, 0.07%) - - - -_start (11 samples, 0.16%) - - - -SelectorImpl_lockAndDoSelect_de3ba179520b17b51a73f959a29e5a68bde086ce (1 samples, 0.01%) - - - -get_page_from_freelist (2 samples, 0.03%) - - - -update_load_avg (3 samples, 0.04%) - - - -exc_nmi (1 samples, 0.01%) - - - -debugging-nativ (37 samples, 0.54%) - - - -cpuidle_enter_state (3 samples, 0.04%) - - - -__GI___munmap (4 samples, 0.06%) - - - -ctx_resched (22 samples, 0.32%) - - - -osq_lock (2 samples, 0.03%) - - - -ntloop-thread-0 (2 samples, 0.03%) - - - -hrtimer_update_next_event (1 samples, 0.01%) - - - -get_next_timer_interrupt (1 samples, 0.01%) - - - -lock_timer_base (1 samples, 0.01%) - - - -do_syscall_64 (2 samples, 0.03%) - - - -SingleThreadEventExecutor_runAllTasks_1c632c8f112449f5c5cb92250f70fa224c43b8f9 (1 samples, 0.01%) - - - -StringBuilder_append_db52bb298168a322e24553389a431b3f7fd8e0c3 (1 samples, 0.01%) - - - -asm_sysvec_apic_timer_interrupt (148 samples, 2.15%) -a.. - - -__libc_start_main_alias_2 (10 samples, 0.15%) - - - -entry_SYSCALL_64_after_hwframe (2 samples, 0.03%) - - - -EPollSelectorImpl_constructor_e766728b6679c7c5e8eabbee0cfd0f70e475eb9e (3 samples, 0.04%) - - - -PhantomCleanable_constructor_2881dfb6976c1ed7306dc290bd9a7132483514bf (1 samples, 0.01%) - - - -psi_task_change (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (2 samples, 0.03%) - - - -tick_sched_handle (2 samples, 0.03%) - - - -arch_perf_update_userpage (1 samples, 0.01%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (1 samples, 0.01%) - - - -tick_nohz_get_sleep_length (1 samples, 0.01%) - - - -MethodInjectorImpl_invoke_74c27acf691aefde36ad9817da5ab80c3377da1d (5,203 samples, 75.65%) -MethodInjectorImpl_invoke_74c27acf691aefde36ad9817da5ab80c3377da1d - - -rebalance_domains (1 samples, 0.01%) - - - -PreMatchContainerRequestContext_filter_ed53506a3bc6ae4769c8d7447ae589c1c45bb04a (5,203 samples, 75.65%) -PreMatchContainerRequestContext_filter_ed53506a3bc6ae4769c8d7447ae589c1c45bb04a - - -cpuacct_charge (1 samples, 0.01%) - - - -memcpy (1 samples, 0.01%) - - - -nf_conntrack_in (1 samples, 0.01%) - - - -__schedule (1 samples, 0.01%) - - - -native_write_msr (1 samples, 0.01%) - - - -SubstrateArraycopySnippets_doArraycopy_f84b22127218a3e56e291fab3a848f043b4ef61f (5,202 samples, 75.63%) -SubstrateArraycopySnippets_doArraycopy_f84b22127218a3e56e291fab3a848f043b4ef61f - - -rcu_read_unlock_strict (1 samples, 0.01%) - - - -enqueue_entity (2 samples, 0.03%) - - - -__softirqentry_text_start (1 samples, 0.01%) - - - -copy_user_generic_string (1 samples, 0.01%) - - - -xas_start (1 samples, 0.01%) - - - -call_timer_fn (1 samples, 0.01%) - - - -VertxCoreRecorder_initialize_48e4f58a461abde1ae74d26423a5a8ada77d2a60 (6 samples, 0.09%) - - - -cpuidle_enter_state (450 samples, 6.54%) -cpuidle_.. - - -do_epoll_wait (1 samples, 0.01%) - - - -update_cfs_group (1 samples, 0.01%) - - - -FastThreadLocalRunnable_run_0329ad2c5210a091812879bcecd155c58e561e60 (1 samples, 0.01%) - - - -tick_irq_enter (47 samples, 0.68%) - - - -merge_sched_in (19 samples, 0.28%) - - - -[perf] (22 samples, 0.32%) - - - -ResourceMethodInvoker_invokeOnTarget_47ca204c53713a8cd4cff7cac75a351bb4d92af5 (5,203 samples, 75.65%) -ResourceMethodInvoker_invokeOnTarget_47ca204c53713a8cd4cff7cac75a351bb4d92af5 - - -InternalThreadLocalMap_get_8aaa7993dfe4d91d62c868b238677da6d66029dd (1 samples, 0.01%) - - - -update_irq_load_avg (2 samples, 0.03%) - - - -CgroupV1Subsystem_getCpuPeriod_c0303a48586f37f048320620b4a5027248c6fb81 (1 samples, 0.01%) - - - -hrtimer_interrupt (3 samples, 0.04%) - - - -tcache_init.part.0 (8 samples, 0.12%) - - - -xas_clear_mark (1 samples, 0.01%) - - - -Java_sun_nio_ch_EPoll_create (1 samples, 0.01%) - - - -need_update (1 samples, 0.01%) - - - -do_syscall_64 (2 samples, 0.03%) - - - -entry_SYSCALL_64_after_hwframe (3 samples, 0.04%) - - - -common_interrupt (2 samples, 0.03%) - - - -native_write_msr (1 samples, 0.01%) - - - -add_wait_queue (1 samples, 0.01%) - - - -JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b (10 samples, 0.15%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -hrtimer_interrupt (84 samples, 1.22%) - - - -psi_task_switch (1 samples, 0.01%) - - - -update_process_times (3 samples, 0.04%) - - - -avc_has_perm (1 samples, 0.01%) - - - -do_epoll_pwait.part.0 (1 samples, 0.01%) - - - -acpi_idle_enter (1 samples, 0.01%) - - - -update_rq_clock (1 samples, 0.01%) - - - -PosixVirtualMemoryProvider_commit_9aa7fc44c70177db46488e00268c856970d185aa (4 samples, 0.06%) - - - -__pthread_create_2_1 (3 samples, 0.04%) - - - -acpi_processor_ffh_cstate_enter (2 samples, 0.03%) - - - -psi_flags_change (1 samples, 0.01%) - - - -native_write_msr (1 samples, 0.01%) - - - -update_process_times (3 samples, 0.04%) - - - -HttpServerImpl_listen_1d9a00c8033b9574391a09fa7bd965d1ff7f1675 (2 samples, 0.03%) - - - -VertxCoreRecorder$VertxSupplier_get_9cc8afdf967b204fbc01652d0c347eb980314ecb (6 samples, 0.09%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -SelectedSelectionKeySetSelector_select_0dd4cc46be64c59a9a64598697cdd4d2344029ac (1 samples, 0.01%) - - - -osq_lock (2 samples, 0.03%) - - - -exit_to_user_mode_prepare (1 samples, 0.01%) - - - -Quarkus_run_264e1542aba49a980676e2116b6211b2dc545762 (10 samples, 0.15%) - - - -QuarkusExecutorFactory_internalCreateExecutor_9c9dcce3d0067ecc0c5456ebb7da7fb6ee10ec18 (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (2 samples, 0.03%) - - - -Transport_eventLoopGroup_5e4430940b5fba54d415e1d3ec4ee2566b75c5f9 (5 samples, 0.07%) - - - -__do_set_cpus_allowed (14 samples, 0.20%) - - - -security_task_setscheduler (1 samples, 0.01%) - - - -do_sys_poll (1 samples, 0.01%) - - - -asm_exc_page_fault (1 samples, 0.01%) - - - -tick_nohz_get_sleep_length (2 samples, 0.03%) - - - -update_blocked_averages (1 samples, 0.01%) - - - -__GI___mprotect (2 samples, 0.03%) - - - -__update_load_avg_se (1 samples, 0.01%) - - - -copy_user_generic_string (3 samples, 0.04%) - - - -PosixJavaThreads_setNativeName_ad1428f6ffd25a626f703670d3ed7e20656291a9 (9 samples, 0.13%) - - - -_int_free (1 samples, 0.01%) - - - -rwsem_down_write_slowpath (1 samples, 0.01%) - - - -IOUtil_makePipe_1c2001cec6f124c4ca7bd816aab8f0e7a06feade (1 samples, 0.01%) - - - -SynchronousDispatcher_invoke_c9d1d8ee1c37ef2a9a17e6dfcd577a37872bc8da (5,203 samples, 75.65%) -SynchronousDispatcher_invoke_c9d1d8ee1c37ef2a9a17e6dfcd577a37872bc8da - - -new_heap (8 samples, 0.12%) - - - -rcu_all_qs (1 samples, 0.01%) - - - -psi_group_change (4 samples, 0.06%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (1 samples, 0.01%) - - - -update_process_times (2 samples, 0.03%) - - - -IOUtil_write1_b4df3417b58d9bd7a7f70b15a57a972103a6d232 (1 samples, 0.01%) - - - -EventLoopContext_runOnContext_1032f3075a9010887ecdd3fdc7989166bf814f22 (3 samples, 0.04%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -bit_xfer (1 samples, 0.01%) - - - -task_rq_lock (1 samples, 0.01%) - - - -NioEventLoop_wakeup_5a85e416da3120654b2b48474568109b100d0b0d (1 samples, 0.01%) - - - -VertxCoreRecorder$13_runWith_b1a36ffea772fafde91c7c3d55f75803c719117b (5,203 samples, 75.65%) -VertxCoreRecorder$13_runWith_b1a36ffea772fafde91c7c3d55f75803c719117b - - -__sysvec_apic_timer_interrupt (3 samples, 0.04%) - - - -ApplicationLifecycleManager_run_dbf144db2a98237beac0f2d82fb961c3bd6ed251 (10 samples, 0.15%) - - - -Thread_start_d043f016dd75eb113f895de55f2e129bad1ee51a (3 samples, 0.04%) - - - -cpumask_next_and (3 samples, 0.04%) - - - -PoolArena_constructor_036fbd96da5ca1cc5502d05f6478a3da24cb1397 (1 samples, 0.01%) - - - -sched_setaffinity (20 samples, 0.29%) - - - -update_sd_lb_stats.constprop.0 (1 samples, 0.01%) - - - -ktime_get (35 samples, 0.51%) - - - -rb_next (2 samples, 0.03%) - - - -ThreadExecutorMap$2_run_66c8943ee6536a10df07f979fb6cd278adcf96bc (1 samples, 0.01%) - - - -update_load_avg (2 samples, 0.03%) - - - -entry_SYSCALL_64_after_hwframe (2 samples, 0.03%) - - - -__fput (1 samples, 0.01%) - - - -cpuidle_governor_latency_req (2 samples, 0.03%) - - - -exc_page_fault (1 samples, 0.01%) - - - -start_thread (1 samples, 0.01%) - - - -update_cfs_group (1 samples, 0.01%) - - - -perf_event_task_tick (1 samples, 0.01%) - - - -SingleThreadEventExecutor_execute_ae2480551d18263655f927040d2e4463ae8e5bf2 (3 samples, 0.04%) - - - -__hrtimer_run_queues (1 samples, 0.01%) - - - -dl_main (1 samples, 0.01%) - - - -irq_enter_rcu (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (6 samples, 0.09%) - - - -schedule_timeout (1 samples, 0.01%) - - - -entry_SYSCALL_64_after_hwframe (1 samples, 0.01%) - - - -Arrays_copyOfRange_289badfd980998aad0ada38eb3a926841af70498 (9 samples, 0.13%) - - - -__softirqentry_text_start (8 samples, 0.12%) - - - -ReflectionAccessorHolder_StringBuilderResource_appendDelete_9e06d4817d0208a0cce97ebcc0952534cac45a19_e22addf7d3eaa3ad14013ce01941dc25beba7621 (5,203 samples, 75.65%) -ReflectionAccessorHolder_StringBuilderResource_appendDelete_9e06d4817d0208a0cce97ebcc0952534cac45a19_e22addf7d3eaa3ad14013ce.. - - -__hrtimer_run_queues (1 samples, 0.01%) - - - -native_write_msr (3 samples, 0.04%) - - - -iterate_groups (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -ntloop-thread-3 (4 samples, 0.06%) - - - -timerqueue_del (1 samples, 0.01%) - - - -flush_smp_call_function_queue (1 samples, 0.01%) - - - -curl (735 samples, 10.69%) -curl - - -NioEventLoop_openSelector_807d094eb73208664264916255f5760d290089d2 (3 samples, 0.04%) - - - -ksys_write (6 samples, 0.09%) - - - -acpi_processor_ffh_cstate_enter (1 samples, 0.01%) - - - -__x64_sys_futex (1 samples, 0.01%) - - - -vm_mmap_pgoff (3 samples, 0.04%) - - - -irqtime_account_irq (9 samples, 0.13%) - - - -cgroup_rstat_flush_locked (1 samples, 0.01%) - - - -process_one_work (2 samples, 0.03%) - - - -event_function_call (25 samples, 0.36%) - - - -__x64_sys_epoll_pwait (1 samples, 0.01%) - - - -[perf] (339 samples, 4.93%) -[perf] - - -try_address (1 samples, 0.01%) - - - -native_write_msr (2 samples, 0.03%) - - - -hrtimer_wakeup (3 samples, 0.04%) - - - -down_write_killable (4 samples, 0.06%) - - - -AbstractEventExecutor_safeExecute_48c5811cdd8968be97028bc79c80e772e065c655 (2 samples, 0.03%) - - - -native_write_msr (4 samples, 0.06%) - - - -ecutor-thread-0 (5,216 samples, 75.84%) -ecutor-thread-0 - - -DeploymentManager_undeployVerticle_5e04a8063ba42e96b3f16e0af48675ef9b145663 (1 samples, 0.01%) - - - -rcu_eqs_enter.constprop.0 (1 samples, 0.01%) - - - -__libc_read (1 samples, 0.01%) - - - -Java_sun_nio_ch_EPoll_wait (1 samples, 0.01%) - - - -__clone3 (5,203 samples, 75.65%) -__clone3 - - -__schedule (1 samples, 0.01%) - - - -VertxHttpRecorder_initializeRouter_931d9cc504c3f3ebb7166418f3971225ab19f602 (6 samples, 0.09%) - - - -acpi_idle_enter (3 samples, 0.04%) - - - -xas_store (1 samples, 0.01%) - - - -__set_cpus_allowed_ptr_locked (18 samples, 0.26%) - - - -down_write_killable (1 samples, 0.01%) - - - -__irq_exit_rcu (1 samples, 0.01%) - - - -clear_page_rep (1 samples, 0.01%) - - - -cpu_startup_entry (1 samples, 0.01%) - - - -delay_halt_mwaitx (1 samples, 0.01%) - - - -SmallRyeConfig_getValue_8293bc0c8705cebeb27682ba16a380395008ac29 (1 samples, 0.01%) - - - -__GI_epoll_create (1 samples, 0.01%) - - - -do_epoll_wait (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -__fget_files (1 samples, 0.01%) - - - -dequeue_entity (1 samples, 0.01%) - - - -__libc_poll (6 samples, 0.09%) - - - -PosixJavaThreads_doStartThread_d86493a94746fb837887c6a0e52e99e18ac5be71 (3 samples, 0.04%) - - - -Thread_start0_1ac299bac29d78e193ed792d1de667f50cd6b267 (3 samples, 0.04%) - - - -check_preempt_curr (1 samples, 0.01%) - - - -XSDHandler_constructTrees_5d3ee891fa68030d979d946c947545099ec42a58 (1 samples, 0.01%) - - - -event_sched_in.part.0 (16 samples, 0.23%) - - - -tick_nohz_get_sleep_length (1 samples, 0.01%) - - - -handle_irq_event (1 samples, 0.01%) - - - -perf_event_task_tick (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (3 samples, 0.04%) - - - -update_rq_clock (1 samples, 0.01%) - - - -VertxHttpRecorder_doServerStart_5a2b82f625f728fe2208f2246f8f2a6468c96864 (3 samples, 0.04%) - - - -String_substring_4989a637ecbe1eecc1c126665598175df66fa98b (9 samples, 0.13%) - - - -cpu_startup_entry (467 samples, 6.79%) -cpu_start.. - - -__switch_to_asm (1 samples, 0.01%) - - - -perf_event_update_userpage (1 samples, 0.01%) - - - -plist_del (1 samples, 0.01%) - - - -native_sched_clock (1 samples, 0.01%) - - - -VertxRequestHandler$1_run_82649d241f3fbd149391419a554fb48815fc884d (5,203 samples, 75.65%) -VertxRequestHandler$1_run_82649d241f3fbd149391419a554fb48815fc884d - - -worker_thread (1 samples, 0.01%) - - - -DeploymentManager$DeploymentImpl_doUndeploy_03ad08e24f30484bbac04c9df2d4cef9bc41a85f (1 samples, 0.01%) - - - -flush_smp_call_function_from_idle (7 samples, 0.10%) - - - -flush_smp_call_function_from_idle (1 samples, 0.01%) - - - -do_syscall_64 (21 samples, 0.31%) - - - -acpi_idle_enter (3 samples, 0.04%) - - - -memcpy (1 samples, 0.01%) - - - -event_function (24 samples, 0.35%) - - - -CgroupMetrics_getCpuPeriod_0cc3d66ece40322a6e334cb3cd4e0b8eae5cc0da (1 samples, 0.01%) - - - -start_thread (1 samples, 0.01%) - - - -SubstrateMethodAccessor_invoke_721942f755bcea8bf67383875944771c7b6282c3 (5,203 samples, 75.65%) -SubstrateMethodAccessor_invoke_721942f755bcea8bf67383875944771c7b6282c3 - - -__run_timers.part.0 (1 samples, 0.01%) - - - -irq_enter_rcu (39 samples, 0.57%) - - - -dequeue_entity (9 samples, 0.13%) - - - -finish_task_switch.isra.0 (1 samples, 0.01%) - - - -put_prev_task_idle (1 samples, 0.01%) - - - -scheduler_tick (2 samples, 0.03%) - - - -native_write_msr (2 samples, 0.03%) - - - -__get_user_nocheck_1 (1 samples, 0.01%) - - - -__sysvec_apic_timer_interrupt (1 samples, 0.01%) - - - -ThreadLocalAllocation_slowPathNewArrayWithoutAllocating_8145f66af737ef111395a70e26cdbc5d55538ef0 (9 samples, 0.13%) - - - -cpu_startup_entry (3 samples, 0.04%) - - - -tick_sched_handle (4 samples, 0.06%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (1 samples, 0.01%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (1 samples, 0.01%) - - - -PhantomCleanable_insert_51a20e127a067fecfaf11d3f622f543857def998 (1 samples, 0.01%) - - - -osq_lock (4 samples, 0.06%) - - - -native_write_msr (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (1 samples, 0.01%) - - - -native_write_msr (1 samples, 0.01%) - - - -idle_cpu (1 samples, 0.01%) - - - -swapper (530 samples, 7.71%) -swapper - - -tick_nohz_account_idle_time (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (76 samples, 1.10%) - - - -load_balance (1 samples, 0.01%) - - - -start_thread (1 samples, 0.01%) - - - -native_sched_clock (3 samples, 0.04%) - - - -UnmanagedMemoryUtil_copyLongsForward_786a2262c2ed5c6469526ec7d53d0364ced07432 (2 samples, 0.03%) - - - -update_dl_rq_load_avg (1 samples, 0.01%) - - - -DefaultValues_resolveConfiguration_f0a242c6a7c5d49cff87123cfbc9651ddafdd4b4 (1 samples, 0.01%) - - - -SingleThreadEventExecutor_startThread_01a2f6913975a9e3a694adc6e29d550c50d76f00 (3 samples, 0.04%) - - - -tick_sched_timer (4 samples, 0.06%) - - - -__handle_mm_fault (1 samples, 0.01%) - - - -ContainerInfo_getCpuPeriod_413395ab3902d7d2a968b2c76f9dd7840bf27d79 (1 samples, 0.01%) - - - -perf_ibs_nmi_handler (3 samples, 0.04%) - - - -set_next_task_fair (1 samples, 0.01%) - - - -__GI___write (1 samples, 0.01%) - - - -ThreadExecutorMap$2_run_66c8943ee6536a10df07f979fb6cd278adcf96bc (2 samples, 0.03%) - - - -acpi_processor_ffh_cstate_enter (4 samples, 0.06%) - - - -task_work_run (1 samples, 0.01%) - - - -SmallRyeContextPropagationProcessor$build1300494616_deploy_975072a94a108e9e09ace7b000247786a639ea70 (1 samples, 0.01%) - - - -xfs_file_buffered_write (6 samples, 0.09%) - - - -__x64_sys_fcntl (1 samples, 0.01%) - - - -__x64_sys_munmap (1 samples, 0.01%) - - - -NioEventLoop_select_4400f85956c925748c40da4a81f574a360b028e5 (1 samples, 0.01%) - - - -pm_qos_read_value (1 samples, 0.01%) - - - -do_syscall_64 (6 samples, 0.09%) - - - -DeploymentManager_doDeploy_28a24e5825cfa179a86ccb09c95909cc881c7940 (3 samples, 0.04%) - - - -timekeeping_max_deferment (1 samples, 0.01%) - - - -VertxHttpRecorder$WebDeploymentVerticle_start_01a41ea9c67d11e527dffa634dae100703480447 (2 samples, 0.03%) - - - -xa_get_order (1 samples, 0.01%) - - - -__x64_sys_sched_setaffinity (1 samples, 0.01%) - - - -Thread_run_857ee078f8137062fcf27275732adf5c4870652a (5,203 samples, 75.65%) -Thread_run_857ee078f8137062fcf27275732adf5c4870652a - - -_dl_relocate_object (1 samples, 0.01%) - - - -down_write_killable (2 samples, 0.03%) - - - -cpuidle_enter (3 samples, 0.04%) - - - -set_next_entity (1 samples, 0.01%) - - - -UnmanagedMemoryUtil_copyForward_82a74c216e7c9d84efc44e8a2463bf268babab5e (5,201 samples, 75.62%) -UnmanagedMemoryUtil_copyForward_82a74c216e7c9d84efc44e8a2463bf268babab5e - - -HttpServerImpl_listen_d9b91b05e4c62ba86d1c6c677d62e3d6683eb08b (2 samples, 0.03%) - - - -CEntryPointSnippets_attachThread_299a3505abe96864afd07f8f20f652a19cd12ea9 (10 samples, 0.15%) - - - -JavaThreads_threadStartRoutine_241bd8ce6d5858d439c83fac40308278d1b55d23 (1 samples, 0.01%) - - - -ttwu_do_activate (1 samples, 0.01%) - - - -ResourceMethodInvoker_invokeOnTargetAfterFilter_f8e7d17d95cee5c81b2a53648b8587f246621679 (5,203 samples, 75.65%) -ResourceMethodInvoker_invokeOnTargetAfterFilter_f8e7d17d95cee5c81b2a53648b8587f246621679 - - -FastThreadLocalRunnable_run_0329ad2c5210a091812879bcecd155c58e561e60 (1 samples, 0.01%) - - - -ceptor-thread-0 (2 samples, 0.03%) - - - -perf_event_idx_default (2 samples, 0.03%) - - - -tick_nohz_idle_exit (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (9 samples, 0.13%) - - - -start_kernel (3 samples, 0.04%) - - - -__libc_start_call_main (10 samples, 0.15%) - - - -do_epoll_wait (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (2 samples, 0.03%) - - - -UnmanagedMemoryUtil_copyLongsForward_786a2262c2ed5c6469526ec7d53d0364ced07432 (5,199 samples, 75.59%) -UnmanagedMemoryUtil_copyLongsForward_786a2262c2ed5c6469526ec7d53d0364ced07432 - - -cpuidle_enter (451 samples, 6.56%) -cpuidle_.. - - -generic_exec_single (1 samples, 0.01%) - - - -SynchronousDispatcher_lambda$invoke$4_292ae2c7bda6c46223dc07ac42c6c722c5ee3821 (5,203 samples, 75.65%) -SynchronousDispatcher_lambda$invoke$4_292ae2c7bda6c46223dc07ac42c6c722c5ee3821 - - -native_write_msr (1 samples, 0.01%) - - - -acpi_idle_do_entry (229 samples, 3.33%) -acp.. - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (5,203 samples, 75.65%) -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b0.. - - -tick_nohz_restart_sched_tick (2 samples, 0.03%) - - - -AbstractStringBuilder_appendChars_2c5b6248de521275addc6b02411944dfdb2eb638 (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (5 samples, 0.07%) - - - -pmd_page_vaddr (1 samples, 0.01%) - - - -__hrtimer_run_queues (3 samples, 0.04%) - - - -__remove_hrtimer (1 samples, 0.01%) - - - -acpi_processor_ffh_cstate_enter (35 samples, 0.51%) - - - -_nohz_idle_balance.constprop.0.isra.0 (1 samples, 0.01%) - - - -EventLoopContext$$Lambda$f3e5438d051bbe4aa3e7be27f77209dc22fa157e_run_644dc9664c2a1b8c119ae5c8de1bfaba1798b10e (2 samples, 0.03%) - - - -avc_lookup (2 samples, 0.03%) - - - -copy_user_generic_string (2 samples, 0.03%) - - - -AbstractContext_dispatch_2e4239181cf36b3eb1bade1eb323527ec6d95b1b (2 samples, 0.03%) - - - -_find_first_bit (1 samples, 0.01%) - - - -delay_halt (1 samples, 0.01%) - - - -__siphash_unaligned (1 samples, 0.01%) - - - -EPoll_ctl_1d02ecee3b525bd75189428624a6563bac3c277f (1 samples, 0.01%) - - - -secondary_startup_64_no_verify (470 samples, 6.83%) -secondary.. - - -tloop-thread-24 (1 samples, 0.01%) - - - -cpuacct_charge (1 samples, 0.01%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (1 samples, 0.01%) - - - -DeploymentManager_doDeploy_13ca90eebffa21856f602fd4ed6b030ab866132b (3 samples, 0.04%) - - - -SmallRyeConfig_getValue_9cb077a2a71dbfc081933ac8549b7809e12df99d (1 samples, 0.01%) - - - -tloop-thread-22 (1 samples, 0.01%) - - - -nvkm_pci_intr (1 samples, 0.01%) - - - -native_write_msr (2 samples, 0.03%) - - - -SelectedSelectionKeySetSelector_select_0dd4cc46be64c59a9a64598697cdd4d2344029ac (1 samples, 0.01%) - - - -newidle_balance (2 samples, 0.03%) - - - -rwsem_down_write_slowpath (2 samples, 0.03%) - - - -entry_SYSCALL_64_after_hwframe (2 samples, 0.03%) - - - -native_sched_clock (14 samples, 0.20%) - - - -smp_call_function_single (24 samples, 0.35%) - - - -FastThreadLocalRunnable_run_0329ad2c5210a091812879bcecd155c58e561e60 (1 samples, 0.01%) - - - -AccessController_doPrivileged_1204b570263dd604d978d266842152e03e560bf6 (1 samples, 0.01%) - - - -cpu_stopper_thread (1 samples, 0.01%) - - - -native_sched_clock (3 samples, 0.04%) - - - -SynchronousDispatcher$$Lambda$bef98628cf19febb23e9f92d674cba0b8f49861c_run_3911c7b0df1a844b46578aac989128fdd5044146 (5,203 samples, 75.65%) -SynchronousDispatcher$$Lambda$bef98628cf19febb23e9f92d674cba0b8f49861c_run_3911c7b0df1a844b46578aac989128fdd5044146 - - -irq_enter_rcu (47 samples, 0.68%) - - - -cpumask_any_and_distribute (1 samples, 0.01%) - - - -__x64_sys_epoll_pwait (1 samples, 0.01%) - - - -try_to_wake_up (3 samples, 0.04%) - - - -start_thread (1 samples, 0.01%) - - - -perf_ibs_add (1 samples, 0.01%) - - - -__kmalloc_node (3 samples, 0.04%) - - - -recalc_sigpending (1 samples, 0.01%) - - - -ThreadLocalResettingRunnable_run_641d43699f043a15f616f6dd9ba26aa5bb47fbee (5,203 samples, 75.65%) -ThreadLocalResettingRunnable_run_641d43699f043a15f616f6dd9ba26aa5bb47fbee - - -start_thread (2 samples, 0.03%) - - - -psi_group_change (2 samples, 0.03%) - - - -perf_event_task_tick (1 samples, 0.01%) - - - -cpuidle_enter_state (322 samples, 4.68%) -cpuid.. - - -CEntryPointSnippets_attachUnattachedThread_624b0c1d4e08bdf4608c1290142e118ef51d6192 (9 samples, 0.13%) - - - -native_sched_clock (1 samples, 0.01%) - - - -migration_cpu_stop (1 samples, 0.01%) - - - -DecimalFormatSymbolsProviderImpl_getInstance_a2690df278c5ae3df6a6a2a4a77431600042118d (1 samples, 0.01%) - - - -__x86_indirect_thunk_rax (2 samples, 0.03%) - - - -__softirqentry_text_start (1 samples, 0.01%) - - - -vm_mmap_pgoff (2 samples, 0.03%) - - - -start_thread (19 samples, 0.28%) - - - -kthread (2 samples, 0.03%) - - - -scheduler_tick (2 samples, 0.03%) - - - -smp_call_function_single (1 samples, 0.01%) - - - -update_curr (2 samples, 0.03%) - - - -napi_complete_done (1 samples, 0.01%) - - - -__calc_delta (1 samples, 0.01%) - - - -LocaleResources_getDecimalFormatSymbolsData_6faae73db25a10202a4794930b5ec003c7c99c4d (1 samples, 0.01%) - - - -__switch_to (1 samples, 0.01%) - - - -security_perf_event_write (8 samples, 0.12%) - - - -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df (5,203 samples, 75.65%) -PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df - - -__check_heap_object (2 samples, 0.03%) - - - -sched_clock_cpu (1 samples, 0.01%) - - - -IsolateEnterStub_PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df_06195ea7c1ac11d884862c6f069b026336aa4f8c (1 samples, 0.01%) - - - -schedule_idle (1 samples, 0.01%) - - - -VertxImpl_deployVerticle_097940d891a15e3dd0d5dcf2f21cd8dece35a792 (3 samples, 0.04%) - - - -ResourceMethodInvoker_internalInvokeOnTarget_c52c4bab981a348ac4ad27959ef4742d24301ea6 (5,203 samples, 75.65%) -ResourceMethodInvoker_internalInvokeOnTarget_c52c4bab981a348ac4ad27959ef4742d24301ea6 - - -EPollSelectorImpl_wakeup_327e69d296e955a09d20815a6ed65a8d67d804a2 (1 samples, 0.01%) - - - -tick_irq_enter (39 samples, 0.57%) - - - -syscall_exit_to_user_mode_prepare (1 samples, 0.01%) - - - -_raw_spin_lock_irqsave (1 samples, 0.01%) - - - -ktime_get_update_offsets_now (76 samples, 1.10%) - - - -native_flush_tlb_one_user (1 samples, 0.01%) - - - -HashMap_get_c388f6d0f496b3066f48fc407ce8ad7e5dd04bb4 (1 samples, 0.01%) - - - -all (6,878 samples, 100%) - - - -__clone3 (1 samples, 0.01%) - - - -enqueue_entity (2 samples, 0.03%) - - - -HashSet_add_9f7cdf8ef4a7e8a4b5ed241c402a396637e23061 (1 samples, 0.01%) - - - -put_prev_task_fair (1 samples, 0.01%) - - - -do_syscall_64 (4 samples, 0.06%) - - - -__update_load_avg_se (2 samples, 0.03%) - - - -do_syscall_64 (1 samples, 0.01%) - - - -native_irq_return_iret (1 samples, 0.01%) - - - -native_write_msr (122 samples, 1.77%) - - - -ktime_get (1 samples, 0.01%) - - - -copy_user_generic_string (1 samples, 0.01%) - - - -scheduler_tick (3 samples, 0.04%) - - - -__set_cpus_allowed_ptr_locked (1 samples, 0.01%) - - - -LocaleData$LocaleDataStrategy_getCandidateLocales_9d9372c32a6b0009ac1058db02fd8b20801d7828 (1 samples, 0.01%) - - - -rwsem_down_write_slowpath (4 samples, 0.06%) - - - -native_write_msr (6 samples, 0.09%) - - - -schedule_hrtimeout_range_clock (1 samples, 0.01%) - - - -mem_cgroup_css_rstat_flush (1 samples, 0.01%) - - - -rcu_qs (1 samples, 0.01%) - - - -SynchronousDispatcher_invoke_6745ac651a4034966b2c69c97c2869d138e12805 (5,203 samples, 75.65%) -SynchronousDispatcher_invoke_6745ac651a4034966b2c69c97c2869d138e12805 - - -__fget_files (1 samples, 0.01%) - - - -DeploymentManager_deployVerticle_8f348e5595b996709d456a4d080275d9279aea32 (3 samples, 0.04%) - - - -asm_exc_page_fault (1 samples, 0.01%) - - - -StackTraceUtils_shouldShowFrame_cb6da1fc802f24b87b5d448e0188bf5ca30f61ad (1 samples, 0.01%) - - - -JavaMemoryUtil_copyPrimitiveArrayForward_ba0fe8da18fa7f513fc003ad474ddce7ea34ac68 (1 samples, 0.01%) - - - -[unknown] (3 samples, 0.04%) - - - -VertxHttpProcessor$preinitializeRouter1141331088_deploy_3b2f5507ea83b0332da36f2bdf7801b77279fa8e (6 samples, 0.09%) - - - -CgroupSubsystemController_getLongValue_62ae0dd03d9b16d1d7e184c9055ad8616b64c029 (1 samples, 0.01%) - - - - diff --git a/_versions/2.7/guides/images/openapi-swaggerui-guide-screenshot01.png b/_versions/2.7/guides/images/openapi-swaggerui-guide-screenshot01.png deleted file mode 100644 index 1b590c7e847f8d111b36622e293b5c4360cbd27b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67946 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 diff --git a/_versions/2.7/guides/images/openapi-swaggerui-guide-screenshot02.png b/_versions/2.7/guides/images/openapi-swaggerui-guide-screenshot02.png deleted file mode 100644 index 17558cb0f98bb03c3b0707a9d8e681cd1017b71d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78515 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

    ?3P}5d=poy*U zQ=}MH^=pLboB8X1&Qu-wbU5Il7Z>HcIS(b3TI1Y1O1!byUB95K6?qlLt<%T15Ey!g|5#_uG{2dS&zwNt^JoWqx0I2N0DM!XO zisuQptdKkAvr@Qk?r~jb%kVeYEYM6Y1!>QJDo7Fc)v)tK*GVk^{U919rd%EJDChB(t z2He>;Bn%zCgR>7oeM*v&NC815-u0(i?S&qY>PuZaT0?pHyu~=^gWt1bkEqwT=;4x` z^^xiu=Vy`J;=CEJsfx z_+vztEc&dO^GEH?>}+RA#mqHvkvDK$kZcirkT~C=2)naQ`GDT_^wZExoR-!oyvodF zmqPdQl^aB((pyIj*-#ahtD|N0yZN_ThII!t-p<&n$P3;MFq8HuG>xwkLcC3Tp%gg2 zx*Bc7Z#gH{1Rkg$k=Eu|ZEY0y-rwea{!|NegWbMNlTY3@QD{Z6pzcby2CjH3`(TG0 zVBKoZ>G|y$Xn-}C5)#eRcqiU1IR#ZEP+w)m`FU%zkSrWo>)6r|K`k=ShwA>Sf)iRr zDZh76P(bu*^p>{O$2_ZF1wzk~0-gokQ)&&!P2)h6oR%<0^(5?&l$Y?Bs^d07OO=So z1b!(HG4a;e5UQeIKBaGWv?7B8z)52bS>^uSvCm&{*;lVK!o_NxH&wBB$?`P|6L1Ar z7srHDBDsw_-lOf;F=$bcl_eX;Z-^x#IgJ*mnn``mEH{{4z#MBil%%RM??I0ws5y?C zB&sFl1}-gC!nSFG1ppCw#o@6`GC?m$Or&HiWMbQICUN-|X@4ek2ENxZ&|&5TuiIh2 z_q#0}^3QugFOeA zNC*gckCN*ypuxoj6YdMEjAhfj#X;r8x7bIo+Ev>w6n!ih$w+vA#;AjVpnb}Pf;m`q zt}_k8?EdPfjwAN0(YU3R-x}^`OiPn5UNMogMhu%lP-;H@X|1i<(&{#Su!6?ZK+9=j zWCCDGH^psHE(Sin8Oi|`#sf>QCb`YVpNbcDpOyT4Krrk7$QJV+CHWOo5`Wv($Du?W zXbAo|UX}Szx!3AD%s*-#`$6I=Y=^b-`CX1lN?oUvjT5ZE{;g!aW*iEm9Fl zu~at)HI$W29~b|z>mzV+$$oq>h?lPZO0&e$q9Z`zT?gT*KpBlR2#3aUEZ0ic_;b#Tq-f^ z=B@f7K367Ho+H97&C@iye~g4T!9O6=?>7WIZBlG+L=D>mgWCev3Fsq@2N`)%S4?a! zLYb{r8?Y@lXv){o0a|p_MzNkr@2Sph`qLUbTF8t@$~QzI-^K?OW##(Xk_^a|#ZL@< z^g#U1dp&t=^R@xSKgk~A@=xww@y*(j`HwH1(j7)XmuVoxPXSSaXXN5T1}}l8H+b{V zSD4*Zl7~N$Yz$VI+Sj{sPX4JDBnoQE0m5Xku?1Xa30s`PN2F8{od@?wzv&_ zmGZ98I0y{8mvMpbBd#&<%N=sLiQUZ6z}K$pgZtdyBU(eoAGVP|xvbp`Kr3hVi93SU zIT&1~862fDn$1?35MW6>vnz~nNj~@*bxRH(ZSn60$`;|x)syNKHClmD>HWvW{n0n2 zyUub-?y%RqVVllsX2~?!=*i>BL%Be=)lHaB)~S0zdB~)5B6f6r5re*d4)EfwOwE+$ zDXXv@FEYTJ|5Z{#<@FACEEwYceIodzlyD)lhtS^h|ztn+Z$7d>d|x_xC^3CTsl$BB%Pwhf-x!;JzayG@D- zAJlMpt)$PnbcIXN93RIqRrx2KH?2kW7^OCPvsm>pZf<5htztH;M;&|`+JlP*(pwqc zABYjPU~9EljU9DVV}?SZ>jZP6&F?VZxBL8myV-8t8n~nO+F3~cKMZLGGq4EwQ~tk& zj{aXa9Dn0WWoi~|8zg^C+&APW4+uxuYhyWoo7sOX0$gA#y97DtZv#1a?u~wr2NzxX zjEes)S-2!M4dEOWKZ%{~dBlKouS=<@Geyf~sYcRb+x|W>5c2ZAQ;j}bY>ye2L{Qzm zNQlN;L_>q&&rA=$vf3ggpZ_3_PwmYkBj3O(&lD9D9x?8by&t0kW~nmDshTSm#^>e9 zKuP{*jS7}h=D5=6nt0W`pIv5`!TUP6Y6aKjvdRq8c({2hx%kJ8{xbU(tIFM64?k67 z)WpPu@fPH<83m}XhE{eI0&yABbgEet3Hsa2>iiX_cvz(d!~jMs`<B& zGBwrqk>K`R##^n`|0&wloaeP!_VJbOpbb0Z2|YOv^D4EXg{0aB^XF5< z&6hGvb9$ks;M$4m75djihz1_7v!qi-A^X3*cChDIxq#Rw&M>-7a1);GFRu^vN#YJt z_R57#R&Sx}Csz&!FyzTQGj2PXU*|~*D&5vAyQ&l{z`)2OS8p+Q_bY>tV5Gp3ankUD zr2!c_`x<56bMyYp^J;ee-AY!pixT2W#FvPs4whKuJBP^DgiidTi@ysUl`#V_2#b*fp=$q=2ix1%9dkB;@=pO;nJ`0FE-hRX zr;w2NxZCj>oiQF~PNitZ?9o{b5IMZJtV6h~0dMY{5m z3!|oS;jTTky;?t8@6^29&^ViWYtp?)6yMO|Uz@jO*Os3@r&~gUsCv61D=$O+ii-fc z-#`96frw;B53}ay zV8%v1=gX79N_;p=83kU;5f|TM#A&@(Vi;__V5JJkF$QF}t2fUd zHOJ1PgB4&fpV>lq_m2JSMs|1|+1}*)uo!w|VG^m8Pa*)^m6aBm$g!1wGcLNZ#J4)>**kOzX-Uo&A@C{^V4PC!+&Wa(J7eIbzcS2!=T&q zAs1^wR-x^DsP3c@p9}+gY?dit^ey;O+ZwJCA6TF7uUKCQctA{$Otn|rSQKZpi=DHu zKOHTa(Pc0J?QN{dN_GR~VaW}s*0K5wjfm)w7do{r&gcxys2>M@FhN(eHit zxvggYO4#*t51fxjvq;~)v29k53eovX_M%Hmo({CaU)JdRW~mJ#Z#W${@ut3oXJC`!#u+E@&OMKxZ$b11e;iDA zgMH^8Zljl=%ylp^n1<<^Wj@;YS10t>vGRqSWNX_>01S`oW)Rua!@eVK&9%|;Mh#0> z_$1D7AiBp~z4(IzF#S^KZqC>=uXS8P!UtHoAtE3iLUr95+d^H~tteD#-s^L%UBkJO zDENinoB5B}RWIw}*D|3scG=48thKKPZ$vctwk|e(FHfni&2GMzEj8o&yX?%vvMn(^ zA)+lQ2RL-7NZ?29_M2>%X`fr{K_V`L4f{iEh?!5?YfEdbE-BMxEr?cH(C{U#()DHj z29dr{Em^G5L~VVJ)DIo0Xr1u|0u8)aR>6G{E3+Rd`IU*mm4JNiX2CxkI$(Flo{n4e zCRF}aAAcu5yrRL2n(-Ie18n}z5 zEwb5}{-Vv-l(w=ZdjV>UA^v;YblibMDuf+X~9<;f3=T_ zTRQ0ER+NoF?+N~YD!^SZ!QZR@D?)49sWU!5t=70P=cv3d@@Is9HTL`{-@96;YLFqy zXhf{zuEyB^isR=h&J{ubKTq9CWqoAd_e!E@{J&cmqW_h9%nADys_&sxN4wZZ4L&3mM<=)&;l)%Ehs?}DV4_Gj%6I#Nj{V6tMT5fM>&+S z0bWel|8-y-^m8CN{Qh&&IW%%3Im|!&4@ceS|EW$L{I7t0(+|i0ZOj$Y!dH=tp)Hxs zq{EmF?4$oGcto+D1nw&}v7Fi`H~+Me z2NeI4vS#^B(1_*1ZC~Lf**}ZjubbO+Z4_ouB~=eG#?Y?P+mGD?2zN6Z$6&zKp>#s+ z81kEq+fEX%tEB`Sm{1cIo#1i{B|-#isNm&1p%!JnjT)rUd0p>rfKJ4;k52i;`%6V< zx^=Ys_Mh56*98oBJ>N-G{HZM=Dt+K6(P@z0v-wT$;Kn|8T!Z`Qeu`LqY(#Sgk4IN> zP;1YNbf3BK{cEyl163V{_$la}Ft4rnoaX7$GT-8UZSOfDo2}1VrkE%jkmq6GaTr=p zuQwZg(ljdL!Z0Ru=4LWSS_M9}XDF84ZAtODX*;BnZe=dEGb%TkzBs=kYibuYYn5OZ zALL%gSdi@GFG>27^a&_P`_A3i4!)EsAN8o~DjRP&pHgNlqRGBAqZW!^yI7ebS!wht zztC3w_?W-c<odb&Pc0(L=Q3DM9C&U@=o3VF37t5g9-P|+o>n^g> zuY&BZXJ2oxVZ-Y&1mWo((*oD19Xp{14_LoZ1)a=6?Sa^wXK#g6pZ|kToDcwXVf^>s zA>lil^>h`t{@JW2dK&p7*(MPk{wKCp%>><>``6 z@ic>kQ^!3v?8i;lj1Zy*yHUh(A!D$TwmgJ%qO_XPg3)v$+dg^YtgYByFgResZg(=J z7`%=kv*>blnQT3^5FsPHOm$~FuHTMrPNJeD!z~VGNFG272R4zKE7w+i0PM||iovB`ZsqF1L;N54*-bhxv^DetmiG&jg)FUqa0Mm73o=lASL{*c*zrX- zLXNZ3J9xb%5(mMZ#MlY~jL5N4o`C^}zJ_yWGPO&~2>bSB^kscf^@OT7f9O0xc;>x9 zae#yMgw&H;hUD$Pc3`Yc3zTBY>01>aefV~()NtQkI~GrmH0FxAsTk=c@ksEMy>T=z zWsEF=S)`Tny$OLc#1ekP&e?{T>dWeVSFgz9WO8lMFw9sk6>caVZG`k!RZ5h3c;Bt< zYs1`HLcxnN3YU61foQvd?9o~FtJQsX5YM6EHkOc_Y2K#yf+Gy>kKXm=Z^mDSJMF(3 z@z@2drEOoib@s9$C49K3jJ1w$jPDzHC4PpqTDfZ|!ZYcZlO`B70(`O;;Nb~#m3 z5GzSYbaQj_yZ+7}s2vtD@~>IZl@<;L?Bt!iNS$2AvHa`kr3KyN=j&#@GM4VQ&7~!h%I_ibR?0 zRR|m$Cgm)rt(`d#?`VyABVDEZ`#h(hjN75FwY7o5N!d1GNb!s(K~3-OuUtEy&nFxw z_3i5vGy{N1uXxa3b+68U6QOwX%JY~v(JqjyqB_rVOwpn`XEJzUU9)^viFDxw=pRhb zFfej=$(kQ-y>Xsj`GG~f=XyA3I2sxhRIbP4(NKJ*PcIx-kmsH7#sU+k+jXTSB_&1W zG3{?@rut_*$VJPx{?|^Z>Y$=Ea33I zD>pm*`kl8@1-x!cM+%g>;p0^sI=Iu&4b#QJ$P!)Cst=uI4Ac9~M?zasPEKt-f!yDC zIiJmXkCTk5k``;gyRTnOV*XqvdP#fmBBI8B?em{_A0E1uO_b|woZ4gWwa4*DdI~M= zFDN(CL#P3fgwfQr91uLQP@is^;S#Zu&rVXr^;ex;Ri%_+A7q$S=uuxUt1e5Zu2wJ- zu8vSM?FP6xJD&+9-HX*rUV0fQY-M7)?bYQhTlSQMYG#DU9S`oQD@D=GEF>zoU!J4I)kCKhX5S=>QUp*G0h0 z#X__5cYKrO<;uzXLgY8yH)!$Wmzi)ZdLRA=Ti{qByEK!26VjUmYs!QjLZwzo>q?U+ zTX;L^sSMEKij+(V7$@LhBw&q3(x*YI3x`9dm<@q4u5fI?lsuIgqSkHg6C7yCd)NIS zv@I;{j*-iW1l~lC@3ddv>73CrMg^8g(E4_w1?PP94k?om3bcEq5a(225sz%&+Z{kY_koR@4}t5p-- zVMAk=@;$f|;RviNmkS_swuzG5XyD@?RoP;3HZtB8S2}+eHsuS@cL<>s2{|@^Z;a zu{$!*&A&q)vnj^ixKhC0MU(_TD;ejbNDJtft2~%LQia4lSCER~hW34DQF?ykmEAC)Yatt(fuqqE6}rr*2b_<4`PhP7 z1GnuTV5u=MGI*q&yTv?MBPE97;j8TyUXjTyc3iiUYpXe6I2+}$aSt|o)~Fs6QP=d) zM~Ftfe1v)8;jVvKW?ZhB@B(C`0d_4XVN-~1vtD{}z7OBtp6Ddv1q)BJ?HQ1k&cnY3TY>(lY-MuMU+k91;p^T-RAIE2{cRt1P4Mrk)&< zh^%^((^$(IzIHb5bkiV|9k|f)g>VwDw6ydy;l@wXnM3-gD%DO-(gqQr-Geq<*tyb+ z7%+k}uSK73NguSYxz&@1%0~&cKPGo-$euKzXeWcE1BGucLo_KL z)SgB;oC`RU4J*z@j?J8~C&m&9-OXfn*fDcZhG^{O1$~jw=&Wwe@Hpl`G~@xQi_MBm z&wM$wz84iIs&nyz+k-5n7%tsnqp*8oS}}m9S>c6AZSyZ(mur7ihF-W(|3qbIU6^Kd z7?At1k?+C`i1PaN$t zq(Z&2`Sx)123R#zk&!$Qf67?>y0c8fOxEJ!qBc1xK9r+|-tde|l>WW!7FuuCr2nzy z&$!BQL;n$5ka-XG7neXs$IC?;_kF1_N{V9J1ScdY{jPQPoG7-ezv4c`{irxL<{ zTzKZQVCWymGg-PbJ|f`&76DD`=2zZ*nj1F#Ic*}8x_pd@Ve`Fq)I7t5&AE=c7fabF z)#MPFlqYOvaL^$mzAEcBS2STQo}F`zjtnlIJ;aVsv4$qI-dc{%F~f)`SyxTL!8`{C z+J?+B?P2_{D*!?HWPw^(Ss34U8nROem*)@m*c@Kiwen9+sW8+nu9H}9?A}yGG2M>J z=0m`wl{nS;0O8xkt&;SRjJ=kGl{;5&;m76PWD`dk#Oa)R@%fL~^{VZu)0j7;YYj&; zz6s!Y!Ws)}uCFD`Ysa;8BH9-4@df5OG!AzrIi}wkZdXqK8f8zqJJvJNnCryC7zj_R z7dbeYd>-4<4yL-0&T4Qx<;zXpEK4lu`r%ooH4${+Wig`{4a_U z$;G=aw}*@J(*#a__VDN6>b&?LciMJE!Yq*Xmn1|w%*!v6hV4Bgij1OesB%E5%Y+j) zF*DEnDw{8M44=zUd~YSS#6KXwNctwR_vKC`lAv6V!&C=`qrH|XaMdYH4@Kl`#FQ+V z4Exyk&2|@zb;5t8f^>WL^Q7!nyaBC5vDeXpEmL7hke_y7k=o!Nr!jSyI*F%sFCLcI z^2H+IX0IaG8E=i)QaROY8ig?jB{OqnaYJ0~A~82vi90TQkN&*iVF7m_zRJk1(JeIO z6Iuxh=(M<1Cb{;*7nndC*rnB9b3Xj=0#`%oh8mpATl+Z-!I$@W^fp2-de=%`-(rNR zq*XXN98mOgd58R2OWWPb_hs} zfz?PcGi4fhAUn{Yu{0Q-QN!3tBy&t?x&z8}!Ub1kGZ9`9glO;y%03|`8B&4cp7^k*F z-Y7n*aZ&R$XyAs1W(>_

    X6S5DAiS)9Lx%WeC0 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 XDC1>{^4E=2mLUxFO@FNgJ$(Kj4X4H5 diff --git a/_versions/2.7/guides/images/optaplanner-time-table-app-screenshot.png b/_versions/2.7/guides/images/optaplanner-time-table-app-screenshot.png deleted file mode 100644 index 8cd7af89288c714124abed25b322a32d859d93a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50289 zcmb501yEdFx278if#AU*xVyV1Xt3Z;aA=(1Zoz`PL*wq+xVyV+aCf)q@Be4++&g!w zrlyK&>YP5h&)$2j^}KJN5QQI-$O!ld00014>bsZ{008X@06>A^p&@IEayw!m|6m+M zq*UPH;a9fgHzA8?j^Y}Q%C@GCE(Z1{0A({LM@JKTqu-OC000tzl-M^F*X5Hn7Y$5x z9JtMm(K{2(5;E0LvOfsFf4AM+Fib5PMpO?Fd7M)wnuWLBuX~)6k@W>-LFYJPV>gU@ z`g}!0PBoj9zi5q;?;c-YYI2wuPj7Ppp0fx{_@jxylV-xn$bE$;4N%CT3_ug1nL>xG z3qWTig)D?5LN=g92=LL%Ju<*KqpjbSN#)5@*bf1FZ0 zoGMDoA9}4gIE(Xpd04z?KQy0l)9_n1`FY>V z>%QQKx~=EU&f$Wdll;9B%#-89Tg$>@^@85U>oC1eTfjytU+tlwB?Vj>4Em9s1;(UpzFOkuxEcT6G)E`Q`m?K3bh1jM_ zrr8n1=dS13zs0@Ws`FH{sKiFUlS73$T5pv)rzZYuoBw>@cl4Xqy9P{L`QI@_;IqZF zFNTv_&deHbj7K7VuC2i19<}4xIKm)_41#0LtV1=KQ`k+O9%5z&qS9FnW_uMyN8+7F zz?b4a&H&Rx?5h9X-Q=sHGM%X zgeZiT?F}(TW1b_k;7Trj{T*PanAOP$QQMPyV&wsj!fDdyTvfWc{jg@;N@780&%n@x zmAYeGJUrMe%P3tz_uJPx^_5!Nj#7`Mop?-uOyaAM_jLTpuEQSV&E4(98$Ua{!%nhZ z+beWxy%omg4Y{`fm&Hlr6&C$1G0)CZM4G5Ko|Gg5>5lf{6cq)fe0r1q-%(f$(@|mj zE7@SKv1`UXt?A3%(uM7UiEW;<_x95Kv2^Zv?W&?>*Dooz{PI|Fnvvy;9q)Z1?Je5K z9ekEb`CZOefAt#Ol?%q;krBV}TZmN>dl2y3*^j>jX4-1E+@GzuY;G>Hl5^sZHHO3? zUL>48*W6#O1(YP;UL>dNG;CUhc&p#tRE566-ovURD^;koU&@8c^{3Ek zfwp?@zoI}RDIWbQ#yOl8+qJO(0a-7;r)2^d+Yc;dA`|_QoXD+qE8C(g5x`e<$@zZ6_44Fg*1EaY7 zA?U0*i^B0_ryY%YTp*X~BW?xsh%Ev(+llO&Ca$mTc z9e0OA$b-APdw`>$Ql)%uD+Sx9cqyggI+u<&I@PB$LTv}I)9w-H{dB(f!A+ZVf{<-j zPFWcPfG(j#edEo~&n1n+hQs9!DMMG-^yFa%I00q0oHwv8t)?7MM}zUI&Ppj zKT&CTH-aD0pXJfzU@EuK^4@tz*kYkliBCWf`#Kw_lA!(C5VSCACL~?dN-^t_vcxS-d=H)%WFA?g3^hmGfcANe-D{Mz*NBbtawl{(<1 zv3%pZ8vKIj=H7ZNl?~!`aF4eC@*ucz{=wE-;FH{j!JW>UE=Yi#fD&?%)qe1wI1c&=bf7l!)^>GN>uk zvABYV8btOBV3GL27gnySSP;cUeDbT~eb@N8oezum9rJ@lnv?;VNYc+md?bJX>V4n$ z;Ze7{D|P~(aJ$0Kn86tGoA>;~%;HgkgVQjbsr(muAxdGBW`ffkfGTbzlccOsLrDBQ zp~u_PlSt{KspSE(MHCJdb)aA+X20=?QNj35*gGzN8gNs&xPlz(i)tFT0D*Ol`2$RF3A1e=tfW zpTm5IJtaV}*{OJE-{a)rQ@L7;^V-KCgPV_{8X7#lk*6zdwTzMbctKryNjR+ffCpD~ zv$-5Mb8hgQha;BqqHkyK8LUoA7id(Yqj<)z*ZBgt)AFv_3yeo8c>eDP<=qigt>Tfp9} zOMZB2zRWC$1KfMvXlo~VfhP_eP5C?drEoAc6cc*`ErZ-mtAx6 zc-_x?n$}s846ig9nnOudt9OZ*ZUa^R5Ib*m!qnY#Mw2%#5j#uQt%j$u0`zk`bM>lj z_!4z`o}3TrQDstl2C(89Cd`@%HaXv=0`^fkGTG;fHH!2q#>tXhY!UDLSrmP98ygza&XKXS@}dUIM9)yId`Gpy?J13GduCLGL~Nn;KP zY%mg?t!~0ZUf$j|2~+Otziu930U{DCd;P0bJJf(sDMk!VT4HU=HeF%;i>hWPi`U7+ z=kW}_aS&MlHr46y@DLKUU;yL;uy7m9KbtY%)gwnA&-G4o6=(ps;Szx7yAzt-y~Nm9 z3j+htyKg|fldKhkZ~UwZV18Z=kf&ts9E=4Ra2SvW;j>wZMcMqs=eGEDe3!-?U&9>_ zMri^&H)7yw)JoiT*#2O^PD@Kuy}7J7*j}shZYyRt#f#`KPn$m%c73?or62Lub9)?~ zi#T3rwOxRJ^ynWZ;&W!}IRrIg25!q&m2j3B9~}9Q-LEtH9OB&&95w12p*cz%gf9~Q zcCRSf{;j4BAYmYqk5gQyqNay&P4L^~IpFOr&8ErH_Ir5YbbKMhLSD#CWKV70E`<3$ z+?(ieuopK$2R6K5fOVP&_>TV>zGF$ym!!7ph?4x&h!J-5qY=v=Ajy*q)j5^Ev@x~B z53G7}{7`e#`1!RUw_yJDc56LfzlOm#nN{IW_I&n$t}KuLqnyGF9(5+k&oFEgl2La1 z6muykqx=S%mY5|Y;p{u{_jtrSz^N8zxvF4RUD`<0 zPre{Q*H(x3&p`&VSX7y}Xo7?e^^a5Q9lDitky)%Ij+X0}RXS&c67 zbWdt8uWIAS0pVYn;<=nlu#(Z9Oqtnq*^pMo>o2SK_n}s$;m@?1IRVsxYi|WU-(h2; z$`ig*D3#9D?vLxW|BZqq9RxhCgX`-*vK3THwI~mCFUEg*?2YL?yrQld8tKg!={g-Z z5K2Z7W^y?=2WhP}D*CUY@BxH3LZSWicT46Vhe0aRwVXSu2RNTDwV01Iw5FA+ac*92 zQ?EFm2sl1`rxeypk-fX8gA@_kOi8GO0xZuMN;c=h9-=0Kg0fhl)+;U&0$$BPy>XJM z41O1S_2KvF_@~<=kf4vjdzWZ%6cPQlu2#OZ?R<^3vC3>?b*>lvQ(htPk9f}gsg?}} zB?Xmkqie`ClA8lX!PcUYiZfuqNS%f+Uh*dn!Q%?2*ivzz$rXy(x54(d54?{g_gX~T zz-P{sINsERu2bA9B)&vQ{7sJ%3w!x!i6o)o(B1Z}ksBWD-5-nnM@qC)nxbf`h$FSx zA1>e|Z6dFd&0a!N+-ltBN+4W-0{R1TFJyCmG@SS5cfXJ#-}@1|+{ z{}Ekimn^U~zU~s~W4XH0xvPu}Xv(kq2rqPa?F02vcXN_oN@*49=GI6o?4V159!bnv zWE(Y}=5jW7c-=In>K^2NTmjS8>@955OA?~tdG~kj&mb^GQ*&Dqg^2T^@H(k7zgTF& z>kL$)dm|+5JeW|-%)Y(hM#pow)#~B%qg>$R$Fu*+mltQ+vwtGGytp2UoOf%-A+ZPk zyEnE3~0nQ4epv_Lq@ivBWxBz+3tw@6UA!vN2yL< zu$grK>eTFH(kHSb%@i&~oh~<|aJsx@lMhgZe>qm2cX&%*!lH}+!s-0-h=_wTo~ArC zz<(aLxU$5k$stTb<9boGC6~tWRPCV-pq9@N^4u|7Hxza}n|*6(aM)+W3=yj}l^p{M zW$-yyH8hl{m7cvmlaj^I&>fX`{Zdw*3B2B4ZT2dBj`A8#Vuss%yvF&MTOF_cCi;po z5K*qisXrZWu2t^5)yj*Fy(b!sB;ax8Ig@CuLN_;hs0{FQT}b7!Nl!_sx1X~ZX4)BB z3@1Qd{dG?Xuxbtas9Hm7AgoXdSq(1Ht&^N?s>)r zu1-i5p)Jg$#@UdiYP8B7*XNLz!}m$e_Y&lp*%E zj#R}PIDKi<_J@QALG@ygIo-dKT-hW^-&$M6$-VUD?ittqgEk+Da+DOX6K2=Cs+};LK+ATh>34A*R%ps5 zc#j7yatLU!Gc^rU`z3oC;pBlRzwFm8@19O?%o%)?WCx6bd3LJ-g_L||L>#+aX5iM=(h=j4OH8^jQz`FS^{r)@+e(z+@BZ(?>3xd zu`H(oV$c*NtVIYPeWrJt#093Hi_A`M1q8V?)1Ek0k|6-{opoxj16yI50Ip?Ehx2;( zGSiV)U}D>iPRsV&#U>e+7$~^kSIe^M9F8aTHIttG5J_UzHwANMf?PRjDMHBRmK?R3 z9MY&Sg?#W~FLqzzaV4mkMM4|Kv8oy&NhiJW+`2b$2SLwrgE%7r^YmsdfoRFwdo2Ti zpOUWJSM~!C(aP%nz1Tk*MN#Ct0r*s?VU5{y?yc*Kuq#g2uXqm0;eg6~w%6CGci|WG z=0M4}g<>zvRA45AnLdX9o1^M+O{FFeBL0IOXGF?gp6GRG=%nCDcWSA%fRe!?icZ}7 z+(|v^Rddm=lZ7n(W_m{{_|0@ zzNSp0hQa|nr4|J7?!5a|@KOB-@r^h8^dH1GTTJFZc<{eB{?9y^^xvCG*9Bl=ou>`N z?{VjAC}7ec00M46Bs+0-1cltVUDx`_o)h%?xG@TyH8&xNhTjw)oO8dP^NI*%tm}V> ze&^k-+~qZa@B5u|Q7+-K|N+W&S&cx71EVIThtDf^7E8JzLE?w4z-@o ziqc?X2IfTC#7QD#LU^cdyFKT#t#V+FX~fa>{&?(=F>HHwLaEw>UgJYyd)q)bevBQ-}cB-@_{`pNGfCyQgaYzP~aO zq?DBPGWQ_0MC_g*q)^wVoBM=PR}e9;C$4z*0fiR+De1Wa4JL%Q?eXNMC^cD5=;n68 zlRS72=F!f8!~__(b={A4La>ID*zqGA_L*1PTspqfSgkbN7H#z?DJj8}EF4XqwLt3F z5b?j>ULNPG_4`ZL`$iHG2lKn-7|OpcUJK>PeGYD38wmNCb((cLY%)-1srmT!E~bo{ zP&E@XxLvsVaq zoD1gHm9Xpzowl?rMa{AS{HHqINs5Wr`mQUV zDUn#IF|@+0-??c}Z#ieRP*E#uNfSfO@ClA2l?C+oH6J-3Rf zse4{#Pj{lBeLmr^z7W!_TA`G?64fRsD5%9{D^dN>t?2slAa(h-ucns4*H8F;wgy%_ zJIkZ)EMI0UjUA)&pnCgwwqmZ#+z1g7(NabxuzSZr-R^qcnw7QspF2T8xvMRZ&*1mT zrW5q)pB+NLh@)4pq@5-KU?;;$OmF$ z`FZ1bE)d?YC)gp~Yh};02$T&a6 znXHj(nVsbT6#mF8R;|pI&!@}nkDM{%5SWk$@vW^eXQj*M`}qf(n3%N9MJ&2xskH@R z(W$+;O-A?j_V!3dX7IT2aWJ&1uH41{{LYl3qL%AkpC5+P?tbgO_(!p6D5WowYj-Dq+~3?RPcKD6aDCK0Qn?-d3l@HFIWQKJia;% zkfn9_rPFEXvAuy4!#d%eo-ajQ5@ z#OQnw<%I6-4U*fn;CTA<9_W>-SK@E#E%o)eot5Fm{~YAk(Mk7kJVtlrK3KfO!1D5p zm)?B|44VM)3%k6DSkluA3vWQG?2TqG;A_8}Hu${J@zG*i0{MNH{(QxybGqAb=Ba+^ zT_;_}+x2D~@cD=UhaZ~4$IxFs5_$B;8h<)Z^O>aDjG``2b?Rq~bAJ|WFo)LSlC z>*Gq;vIGPMf-P4h3=G+x7Cxz#K0p}P>PV>-goT~p@H#z(E6}8~dWC9GgocHs3EKLJ zF;rKvsF%)xKt%ECgB!^BlRgveuZY-;=Cf5@sjBn^KQejE4ldZv@)us3rd6^J77Eo3 zm8Pe6=>ws^RT8({AKn^COCJfhn=08~1X5fUO;=YuL9=BermS~x_0FUZrN$Q#+Cg@iL( zE`&@k1d0Dku?k`T)-x5k{%x-}#c^X}W79J;4u}iIKV>Qx-M}%~<-^;dv1<1*ew(dzrHE&xJ1(+>Y`(tT>(MObvK+ zP6+Q}SM2QbJ1oc3FH}Sk@mF|0+9U3bLr>P(ZI6zYK|<@ybF!zkn8>#~>c@MpZXe|! z1qK>~4GT;&1PPJ1(tEig5sdPGR$;u?WhjYEaVuB1B~ z?5`_hF2$1nWFwvu|B-e;@~eMkF#kod{`a?61|k;FN(TpQe=$VvOsIsmBHS$^pu6D3 z>@DvNv6e&R%7iWY0?LZ~6=%p*7H-pnQZI$ktEZJr=a!pg8)EqsEisF?!}cFtu%`mB zcIa`u+(Jm$mq%5)*^ufb{5D;M7=K#E^YhIUJSoz@5j}a;Z8fM2v2pO-WnL0+(2Xl< zxal`#%;E>)$Z32Fg|^mWFj@ND#}=+cI#tl;eG9BAit~V=;ik z2}SF<#_S(dW95fYg#>&!*wTw&&8V^J+S7`N>Bppn2=Z%=+vWeu3-E7oewP19p(DgI z8@K9Q_z|JVtNpX%94o2#*$z{^$^(+VI2GETE5^<*POZ8bcDAsUQrUY?vZH}NUeoWA z;mZQbC^n$of8=sem3vPK&7sMSi3@5$Qrw)2$CQNB4(1VP{SSs}7TFhgU#)K+Z=9Bm zsA@d)5@AUU^Y_S}+kbczl|%9&cv@pZEw!>iuPilS$+W7+-3iQO`>Ttza(+mNz`k4v2BDGOT5JH~636MN&;J51$Ks?3@w zr6}lq%Z;g6sh>0(7L()m9mGKlX@luRrt=muY~(K;y}lSV(>@rmr1aSgG9ii4-Cg+s zL$)yVdp`~7FublxBThCIhjkSfSMt);mm&$5g~QwvTY9IaSgA+6xg-dgk~>r zfD=`VC2_1h8CEgLSSp5XA+7#>Ph5=t{lSy@`7Z}jA+TeK2JN3zTENe@x_YoMch-4& zmy45tX-)pS?A)UE2$eH4(2^FW>h$E=dLM)r;h8Jl04Ab(ovsM)C{#VuLUa};m~L=n zWFI<*Ba7VdHs5hwK&R?iPO@`RfS$x_3~V6=p?LNI*6^EO6gqa)R~WwC|E|<&N_}P_ z>3nyvWxdMdU{{MXWiJN6p*d+i-870NQB{@Z+`jUPk{I%k zzngWOJZgpr#nm&F-k;?rYF{2LoHR|D+Kh2jFZ4BY^w$@wQS5^<63mn|7y46cGB}!% z_U55Y!Xl)~qEXkZuKva*bBi3Bl}##_JF@Af8h_mEoxtX#Dz1=KURIxKYow^YouL-S zj<+bbvo3?pQe_=@PUY4CStx}w8!D3MVKw81VtR3R$0Z`)tqGSGh%qewVngVB%v$*J zLt^ZB-$CD94kS5C@6=Ae?iuZPw_aMlT|$(hSsET^|EQNc6Juv#$v*T}%qih?rPKVb zsAE5`-f}Lj+_!=%Cwz~s2OE0w;^YPw+-E$H-%GagwqnBzqW=6uI+H}G>XsGHjoFb{L zJVE;skZxh#<1)+^huefj>?NgD(_Zjh!Vls-%G*q+V@=tZ;6F!qa2t22GexkwBZdyz zawYmIQqsRc4$RVEK-Zw{du%u51zt-D4xct%7>>mhs+q=SLI85H64-89M?}QY3FjzVdKsQx z*yE8L^c#$|8i6mimNeBIY6l>5J$n3I5?CpiFBdr z-yb_$HGb4PO^kmBtT)u?GBBt9>-uP2CCK0TcFWJD^U1PP$lej7wAE@en<&dbwsze7 zeVLLVQ}gS0ufEr!*+8AKKDbqEDh+ zLzX{OQUBu}ttt%O|cc|Gc0R z?;L1r{}L@{{{!`WJtfl?BUi^ZCG6y_S|e1*`J3_Ab;^>Y{=m7M0~Y39I1hX^?}s%w3Shf&IKHT&g-{~-dQzM0x)Dtt*Ud`9 z7Rfn111s5@M_Vgcf0@Y8;k=#n)QIo@xN4>1eeEAbMMlIqq>U6l*+sS+#CA*J!e=j> z;MYpC_@j%4cj0GXfX`YWCev<}_}baJkJJMos}8WY{?>jDdomaaBIkF<-pzRVO82S; zp>$wVEwHKHnZnaoy8M4)v?p&9uUg^4vD4FtI+L*bP48NpBSg;^H;mDs=ms|HL(GnY z`}dzWrtXebHXyuV@z2x}D!=2=-%}hGgR5EjMGLDF8QTtDW#G8?td@Hl#5Z?1XE}E~ z-L_u~aVX^#6d>aYFl4!(s%CRPpBQ@c$%}ABjkNjujj+)gt%LdxNYXMq^=>dQoAw_C#Utnh2lTwS*;(~ zrvCgme+T0=fASthEL`nYIuG&fE&5z+u0A5Bf-MB^7B0`@A(&3d7=sZIWB`5s(T*S~ zHTCX6su!nyYTHjV7?oI%%j$q6LW13T&k6u3{otE%1iXgDEa^)R*@63vo^Rdx5orxK zFV!ujr6Ug^%53cHbE-?|$Flu-AOVD6KEjF5m zf%Sa5^otbRj@Ey!w79%xJJNDzfA3`(9ZLg4-JGt~dVq;*YHH5b5Z^Awbvx{8oljG( zwd!xK%Uy4uBH&PoE(JDPfKi`2kPI~MUIJwRACX`4B`ezj-e(KI>!5lFyra`?P5w?X z3~qQ|Y)wfy>XD4veN6(zd^=Z!P~sr;a_bOuN-L|g59@7&xEk&0NgCXg>9#?vbXRXD>=41GC_Fy97%q$f;sN}R1D2T`J=*3GiL~ON8 zbtQK|J{*sez&A;K>FlSEzNQ*kOuW5AhJaH)1e87BpEAY`p`&9!C8wmAbbP<-xt}_` zH8(Fgp_PIJ*xmp!?G<#uS#W@mH+q+yj)(}fFGL-MIP++pO)>}wSDX(Vg((~%;11Ha ziPP@S?{5^Q(~B|%-s~t%AK$3oYkpnZ;ppXi9>h(8WTtAt!OErHsYS}M(Q@w=C8A!~ zclF?KzGu^;!w0mjc4sx(n8$Y&?zi@f7meL1&>l5hsxUwG+rWZ+gdwwB!Kc@uq`N5` z(MPqLCa>ooCnHI>NApd;4%q-1KU@xn=Q5w}Y}V_f;v|rx2!-v=y8BY+N}+u z8#o`ClvRil6-P&+6MA((WgJeMWvjxD+a!UE`|pSm=rNTol89M`;^!-VF61DIC$*bL zdh50nT{`~y9V)C4G3c)(`fecL8}wJ2QK^f<3DEI!uDZ0e^sBp5O_Ivhb$xB^T9w^3 zWVRbi;wD18C-{XjSg<8puda3E{`Es56?UR$EtgOw}U{R5B;Y7Tn zz12(!?0_99Y4-g5JV1p`RZC0juC$FeLdd-iqV3CRHv|R*?ar^NWPg_#SxQf+$MV$+ zLJ_jN*@Qd>WQknJcyl{;roK3XOhh0e6MRlHh^HMBKDQNHTVc=*k5;NrL3dULcAV_M%5uIq3)tUmrdALe^7=^DruEk9ElaEBx$%wgDLtUfu@KlH`9H6bCGaCFe!YkaX zgY_xDwH22dZTFg&(={SQp4f?%83vGobw0x#$9A&(FZiW03p zpL>uOM9>Dc=qmT71`!M9jyUln3cj`R0q%$e>b&-C0FW?4 z%xSthwN2e%vteLhbGCDEalia#v?5IrTLU7h>4>M@wlO3tyg#6x{1P5xhi6^NZ}nJD zhpY2R%8|(cJuVuSgjCgml&4+Py0DdYY1=&CnJY&ecec+5@Eo$?-04aI88*-=e)@|&!-l!!U)WSf)uY;3*(@)ezh&P0Acy( zc|(KQ>k>0R8FFj?Kyv~AMt=1CHpN$I0117Fo15~qO5it2z#p7^KH zpW$7{veGKk^BK7axC!1q8J`H5cS>dIY$}+f^QUKWW!DK5S>w&#$n!DW2;)})pD){ zwyHKhJSU4Wn-0)}LLw9x9B6rg2w3FgxqIUv(gf+A?rv`DrG7h|>jJrEr^8l@+vTt% zCV2wx1_)STGg%!7C-6Rb7=pyNl$nBLx;FzA=h31qXXl1%Y=#mo$}GwI3djOPLF02f z8a=GtFOW}BY4_v>KvWB1yDLmz1JREO%=?^Pd+87jsSj~qiXygS;cjEG#bbYMg}dgR zaIqzAJu7qXP{s+C8*yVg5gAfs3)ux9%g0T_j5VI44Nn19|&n#y1L}*|Jx{CIRPvYG?3qS8X zT5wV-nVlBz-yls~Dgr6E+WF+zEVoi8dQmi`%A`JRZ}>b!qtkM@Z~|EHqf-XytRjkI zMD~NUny_qVzr_uQ#_OCoUCwMzhhfOsz8C0=J2pm7oRzi|fBpXb0HRsm6Y|sn_Zz13 zSK9+||MbQByrnQq9GjUIt&ZNyb7S$ia#B%|I_Q6K0T`*lfh!LcmU=7}&s|pL>@{2j z?AMBXTd5DQx0x%5wrnjQ&!T(A;6l_)r(vLYv^1$Hghq5=I02|l{lqSzSCg? zTnRFC`=!i*l!%_OhAj3Idd1XbEfXxGU6#!1M3KK}vvJp^uDfdMY+0~rV}75U>%@_N zz++xA)O80)!--C2QtdVy??#AQ#DCSC9;^!QPV}f!R;%%g#JWCYg*K7ORh$4)wcQ%1 z7yvQX<2Y)1dvG`#IIKR>N1jfz(h9O{MQBae*Hf{A?`pNeAD2RofE4qq6WbGgpNV zUyd+*kLjZqHZC@qrZX9imis{;Li~B6n|V&k*WLt+a@sv{43xNu$TLY91OuYi!RM(f zfy{h%6dilu3#x8D!2vM-{1*01a^$*Iu}3Gh?B+`rmqP(X5-L6))5(E%-H!GR3t!t~ zqYSdAj6&jThfD+}(W%j)!cR%fL{I*MGr_!rYeyxJo<`L2mZkodsZ|?i%CeuQ@;{jV zzx}e0_DPA|5t7v$@tj(`_klAzlwjb)q{l#Eu7~ZCaFzYoCwuOUjkhOQa;op7pA5Q7 z*&QmxwvjwH?c?HL#wH@vO7v<0vBZc(XE9LlOEezNT1r)ELc(e(M55GuklzeOL*MSl z6f#lDI?I&^)#MJ;F&Y4JbW4?|Z)e%wabgN7xN&G6I`;J3y?+ebnZ0ZYSKAM5A+6R79Xz}ocA;WSeTWf>(IC@3Q%Ju`ntE7aNs zH*ksQEZF+UGPEQCib;v<<_3lGIZ;RMPnLyRFMMRu6IC`ovZGN!`Dm(CQ5^gcV)i}# zMkPpB+#w6gQ7mhiJn7=gcNM_lF;q$tV`+p8NDB?(9|=675Ll<@Hp_P80=N>Axx4F> z$N^iu2N^W)#{^+wGvUuFSfKO|4Ird(HaXebG$5t8jrGy5>a06HxJ6Eh2$7Sv%o;00 zzET#neO|8C3l}C!h{VSU(-|F@HAhtf6se+FP_^DRdWcortVi#eYZmCKwXbK{L`X6; zX#D99HK7KN9{(pFCK2MM!4%3rk(FQd9LxW>+^a|~{%OJ2D>r~p1ZMx}1Sf@p|}zzOPSSauRx7Blc@c; ze5vr9LEZIUkz1o|xMi}rtYRuOJ{_d_hK9Nn-*po9}MV;%^zeFH2ym!rIattUtKyz+BR8 zIc`YSx8*npVw!5I;PNbdsT8xs{DXU3^D+Aqv7JurXYxs4l{<1AE|Yyxg$ZnUF$_?5 z7(nvY{yno#fS(#xf0mS7S6}yPWGtDK#sd`z72y6kKw_RQg!>PkKfFk4y+1^M3ykaP zlt0^}OhVv|wB_AWvU4!UU6(yzHoi__Q|M%C!dPW@8-HP|26XO5KVZR;w^we@GITP% zG=;*s2JOE$FZlbK0C0KRjR*^wkkg^^Ob?7>EB{9RU2^ikW&X>9$^J-ZqfB1=m%}_9 zFM7=fqAwDPe~`lVNPUQ(3<4VmNV@AUCkC1#`(mwh9L zMwL=LVv{dpx16w5Hh%Z9h<9#;VGEw?+=WG|?n!us$#`0HQyccdhb+v7Ew0w(TAgPWu z=Fi4aR724bi;3u9LbPkh_f1u$M>g8h_DZ?$Dq8y~3(^|HI?~C2BF**(|NRoswGA6m zD(vE8e9Z%XDw&Xf+ojI*kR;=yMdWR)6KC;fs>0yZPraV`*?0g38N6=rV9%J)?AG0v zoc0zGC=>*b+|5%J?HbV8IC@_xKbaa**!0t=tDhI=&uQ|hl^-A+iT7X9N#nhye(otTMr^I;xDVjQKmo|-zvUTykf;)H#ojzfW?cR!wp~0fw%otS zltzj<7V9aIVwCd}6;I)PtaE0Dwyqae!H%Pg4gq9Ir7*xbko(H{QLVjRH61-5uD0#R z1zIOHgQx$bZ^kgx}4LV zym{XfL1u>7+~ky7%j2+{-#7d$OT+-l7Og zHzYau`x}~MHm>oJjka(Qe}cWI`pjiZYUC`69`!=M7Ua(YP6>DF{sLl%_%EhPnyJ_v z-{+ONs~urB`^?2WfmfdVO$8&R9Lk+il6sny#EN_!?J8m&6+Eq!gq496a&^d?1pfVA zfQo~>i}@lRX;jz*6HdBu)kAqX#ooztGpViIk?-H(my%L0{_G>o;=?+Sq5avJ&ks{I zW9F)UE5gF41rfS(y-FQn!Bpm&zC?+Y)y3CXXfM#JDN$QQbRVC01j~P06(BqRYtR4f8-+B$e?AO?ASuKH;fP)fBKG1E zR&vswFfZan2>6rGO!unY99|vIr(lW6=PqYucq1+6&N5+H%qhej6f+nvq!tMyhQ8v{ zf&j5wAY=&lxcA}t8=Hy*Nf;x*Pmt1&>C+c2PFNDwOJrYPO~I2AX(WeeBxcV)tnx(4 zOU-=QG*>s>>d*=Np^|qIqAZ-lpxsG4t@%CSH_t7(MQHc;G{{&u!Re_9Z&Jz|^L+YT zs!$r!?V`nMs*uR|Fca)Mh0k6@h(Hb+$zyn?{PY27!UXcrAh+8dDPKMNAplcq^f}7r zBeVsv$U4%e)_46aL^7Fa)qwy^PU-%Jj5!2eBU1goM{Jf~sj@=Ww$r|jLXoLqo+CW{ zLCUgFr60(>_$Tr+_I5VLA zZapBHh#IsXCy+1UA3rUbHI?n`m3>&wbx0f(J#fsPxMVJ+#BmNJ_zbACeb1OyF*hWe z@RlCeVnMrLnO^brOmnT$kAL6OhcfE-H|bQ&q1>oQJ9cydAB}*q=5Z;8emF; zD6Z#g!-Y3)F$nJN5+JyS1b26L8v+E^5F~hTcXxLU1b26r!QJ)j-~Xv|KD=)gQ$-E4 zYuLTJd#zsg)ps{<+`-!}V0SHcNUSz&zWmgjL6X{zJ3Gr2{L#_=OmflXbFvOEGx`!3 z81NpS?elF>8@TCEquEt40Cfij8JE>`A=~O@&|jz_-{h4E`|p6>atB!a7c&D6T*C1A z`kM`zraaY`ooH?6qG|%#&$eg&K87+uRekoQ$ zNb*8C-`?mMY?K7aneD$||HMS+O!wP{_Rf>$7*mk}WyxdD1ioTDy3e||Y}1KxZ>BJ0 z>N5UOl_1N@%$np~n44L`KK#~%33J!cD-Y*3H^9C7fpP!i1I|w~lx7^yoxz#qAQ+gJ zE46#E-`~P)?a_gVE$PKjOb0b)EFiI&*6@h*FtF#F{rSVf(8qElvk+04?&SO&?|ROt zj%%X9RbxvZh-`%Xr$+8z@h6p1cT*l;hKA{ygr2@00{Z*@ZMOQ{v_@run#E)CNIPd| z$9RC-gUV}m@?TAh&Yr=5D9+cYY`=|_Lllw>4ilk}R+H}+ILLWC@~awUQzmC?74f%% zj4owVjjcLpnFA_C!>N{^Mz1mK4o_v~fQx~!) z^V*HRv!t+vkT@PrEo84HCekP_Ho88KZRy<{*ti`QY99ugiI3&NRWdObZ!!ouPz!kU z{3@8#=3>qJ6@bA+m%L1XoKuebMvJ&JM;Y-p&<@e&$tQN2gaS({Dyd&uR@2EykfJvP zn`cvMw$B{ES27%i4?W}96*S=M+KygJU7(j5UzTpb7 zh>{G25`2NCDJsc@pdSl1BQ0&VH|J4dVd3xW-%_VU`y9fgxiPDUH-hYIk#8kCeWyQk zxsedBq_wfvc$}JyuC}n>+T0DC?j%9bgy{KFY>GWNsHURRZ8blS$x>(Oq$MFZuGAmR zB#&GReTB@Id;Mr+BhwO@+WylX0>`I)CSqt(&onB#2@5*^`B zH9M1A5{@v!!cL+1!0&swb%b)>v4cUwd=M8j3a7kQ`Ok4x4fVgQOE)6Ct;>ctWA*%p zbIunI{#`uuV8W%gQB4PnIL{1-6e+CRU;OzHEYYXI41DwdEtksi(kA+GO72KQN!3=J zp0=sBK5}U>bi*yXc2cduJ#KN8sr_ZKb5>8rzG%g4i>Q0zU0JIY$@?QZkHe{pP|Mvg z8|iPA<748!K8&~)ibKcK?=snMst$|<8{f}-znRkwW%|-qXh;%Fn@r2yy_?aBAsUP= z_|?YMHBpA%l;<5l8~r8{x$oEZ#=lGcIa2kM1f-maYF+_`1V!MFz6}NPs;DXndh2ph zSM)=pwt@}XnJNFuK0D4qOHYp}Czm-sK#5@`{C;5+uKCL55RMn(DgUbRX*?S{PuA|? zUu6D)4&>~$yt#bRXuU^{QuJf574x|Zg9p{<l7GJpO;dixJsgGgr7w!{+aOy58HFm`I6m~^4aJVg-mqeY1G)L|G1=!_|s z6Ku!!`Cv~~=P@w!eb!M@w(#n3#86v@qv5mn)j!Nnw9YH-Qq$}f^PkomdA)N)fb$rj ziBz0%_A7vncrM?&D;s{6ckXErZhmp$DfgQlg*1{@bmHQ+JW}8KsS|OfoT|;;_x@V* zA1~8V=g=OCuTI@*rokD_HkF=J9r@QR((o;3i+Y$@LXOK3G+}9cS*CKFi@*T-S?bG| z%IQjKZx0x~Dh1JtJkT0Z*URSKSE;SjORQw`Eug(4TJs_7TR37o^W4JOJ>&lX|5ceX zcr9dHcH)8xyqje(nHLY6I7UIiY!{rfJt649nkmiTdcN0AhiQie?zWc(KSIN#v0Yh* z;hdAn?;Vu*9ud2{T-c1le%9kvEok~4>c2>Rh+q?eLDc$z2KgYxI+(r0X_#x(B{9Q+ zme79qEbLQA;6KS1S&eIv@^_)~Z-3>CS&gP`P$Z$8{MZ{5l#_`zJ_-Z)H_GbK7W=o^ zr2Yy+j%aDQAhHY}=r6?XQNFeRXCnvpYnOid>x1o4U1cThCrZ!9QQd~w%bEo}FIz*C zAIpVRk!I#lKv+}rKDHnoLb76i@ljb?N}2$Bm;2-wRmKmQy~Q^5j$=M&UhMKGCsmyS z$co4HQjN>n$WfH(f_DduR%3wms_rE zHaE}w^Lf$hsng+{-SXAqQ^JVZr61QCtnaJWnWCQeUysxFw3L+FP3a0w##Zyw7ZPus z^WiYdzkh9a+xXWkKAY*bKaIW$;&M2+s+c_D=((%feOh*P!NQ8G+2!}SS-x-Xe|~CB z(5}01a~Ryx_qsd=1t)MS+JbXj zQRJ*3+VOf@g5nt~<*7;eRDP-t$gr?aL_-WE#py``T>NbLE*)P8I3b9>A8F(f0{wl? zCi>3PT5k8IUS&2l0g17GLQV&pA39LGgx7VA39Fj6yUCJc-XAt|Sz8PhOrLPy9Ov+P zH*PBf64GPHZ&23iJnU9hBMAktF_z6X@A|~T3GENA@L~o)VXMd6>mdx6^D4^TST0R4 zXKLU3&R*0&qHzUsI#csFYMW9Z>&5n&GSLjzk2Hda4+d~F8%w>pilL67V?93#7dmP= z^-<8%)4RoEuVGGzi<3|OUC|!zdXsAGrs{OP=JPV@_%t`v4(E$t$2hs~w8r?XlQYYWnktkLn;Lzw z&_^Pd^03`}O>lXMhWMVa(F-aE%-4BD>M)H-zIpca>QYBM{5-4Fe>BGqEtU0!P2nmd0$L;((>{Udt85r#ofMKZB)Ba5EXd(aHt-}S&D1h z_{9*=xc?nhXFva;FiE3Evdu)ZM;3dOrGC`Cjn+^@Es}NN)Jqf6z~xQ(>Nxyif{y}X zp?0)h8YRC&m6r&4JRWgx+naWyKwQ+aCo+~#<#yZrH*nV&QP-wa;`AznL?cTm1a3C# z3B?}Fom^4(h9TlItIepeb9L2_l?`8k$TxqtUrwCR<#kEsa16{5_SESc6Vi-!;(7cx zpbTVA9rlG0YielxV7;F#U-1ZhgRg)y1moM{!0~4bmK^rCx_){>oD)x}*AFoL4-AD4sd znhk%n?<}|eMPjeHN~QU%jL*9Tem_98>_8C7u&_En+@F4{B<|2AcFr$!!+_qi9$-BbTipywJ!Cr1CpGY!^+TZy0_>dS6~xILt!( zbldWLN?f+NC|sgKdk$~!LC@Zpnsb!F9>#~Atih)rKML_$(ZNw3dv;SbZ@7akVcK4d zG_yi|+4`)QG|+@F_cHUuI#XD&4UigV9FOB*19yjbQ$=y{9P)TETnnQWb$Bz&i%Gp( zLrhC+pX{_PHr>*p_sT-r>hi4RKBKNr9?}8n$jc0C7Vv{ zFD#&i1PP|IZ=WygzU~1Aecs0muMA0_8w_UsvgO-L0AJNZD@0H|_>tBpGsHk!E$7qp zJAa@jBi`r1tLKm;_FYP}$9C+7;mL&aXZ&zXQBjw@bq#WZM2IfmYrFeM{W0IF+bLYz zUj-Zvf^1rPPHOj|*<-vUO$ML)I%YvoBZfi+t?L%o2Z` zk8Esg>J|5nm+@sp#>W4Q&Qt8#*gdD`Df%MH?hjAX1)8PvqQU90<8=cgVvCttKl$>h z6^p^=dAo)MCi81h;V8;Ea5lrW_HuQ}VpPRVP2CI`ilGhzIo*L#iKOe{t3$7|KkEkO zGzDvF75BSKr%c$=4duGPdPUu#_p>brU^Cz7HtNU%S**T>>U%pmJ6zmeK7)N=tQiY6 zV8hV1N8LX#P$Cb5|I0GsY_IB$1A2F2U%a%dUq9a{?<2+{`8(h$PG?lH{<*M(H>WQ_ z+n5>+bJaw4)n~X{HT`c>;2*$%-Cm7|#gU3=Vy^D3Wy2YVTdKIW)zcV;6WQrvVCmpy zt*K|r#PFZj;OYC;BK&Bsr4on6bD>a=k&o16H7y9r^BRRH^ENtS5vETPGx2dR!ksTU zy`0{DPa*_Btm?co$)r5qp^Ccesp0dT;D273^E}tu5*5o%3~wvFExB~ch~)%oMNf%VzCSEmGJ4uK+ptH zHoorduh%vT3>1>IPfaHUedm#an+FGzdE%#NILvHsVq#*@fM19=NWL50L3->slmAe* z`oi&^C!*!?0^MGH?BF^t9W$Q3< zhHj39&Q|$CDL{w?&H8bc0FBdj)&0eD(wxMHGGS%0kWqGOsQsn75ZuL_;p65!%dXq< z1JPHv<<@4Q`7N;9aiJ7c*pFb>nm1$Bp?wpl@Zacf!#jL=xjfqc7~w-O_Z&|1dr3L1 z+oP_aHHQ}Xjz%5MK}bQ(^G<`nWf#YK7#@bHltguu*P`a2ab2)>`PU~Ehltj5u07fo zBxOJ$siy^ghByNYFID=JrdyKZd$MQVi3lTzZGVUivnMi>3xy`1-NZRLO=Il@_G_$f zF0#3g)FwRhPwx7#WD)mzj`}ukGA&pDJ*z9kD&?C<6`@^?y|hnp@^xdVf`$jJ1EIdA z?QL7Ie|6l9b54?7qC00n=kD>qn*%y?p1ZrHkW-%uXG&ZNxrX8NP4W+a%12d9IXtdv zSt%7HfC{eaK8*0M?n6p!j2mR+5nC+KB{MmDMBgrqmPqrVq}>f{!GYv8>y|929El76 ze7oDPt)D?bkCAIWOO@XX{O^v!F#EPl^}Y68KYUp4u=KJ$bM<;*h(LODwzX>nHzfve z_&mP_z)jMvyKj+kce`)bp3k0L4&(3cTKTb_ z_rY{Ac13f;^|SBLI1#s&kxWYTTx_~D;g;LoJa{9|a91PX_XR|01G z)y?e7VN4F>v`aJwCzLo4Qe#M>8k5mTq~L^Q1q-ZX|4?RCtfxJr0N_(KqRBRF72jKJ ziiJRY@(z>YP1E?rP=J>*gdll*D<6#Wc8KS~sHELBzG3hA?#3qC4&!QE|%6-Qea z&fFLAHG!ZX<)gI)1RUOK8w@qeUB3cSZYKz}ie`BRbmf z#j(b0_ydA$OadDdJ2j6fRD0N~*c% zI4J=YQ+o&*CP3@?J35rH@0>|AOfi-Z$B;}I*)z4 zIqOj-IFCW0`}#?v4UPEMo4Mj>2kmda73@q(W^PLAlML;@>8FJAISihi;9#L;I1Vw@ zdNfbLxewwZzATo4D@bs%(@CTI=?f3w&=gnqmQUEDlaVKdE!Ilk&LdL+xn{}TegSkz z@n;NCd{j9v=iM_ow)k^bVI+ueWLIRAVE8qcTL*`9=7k?B_QkZ|;Z`xCF<}5ymdS+- z8zOC=;UyWJO}qLpry&P&pXFY@$r9UfT$B_f=0h-*uT+_o!0B9XpZ3uy`_{`~^r7!$ z>Zh~)w<#Is4V1n@Ht1qtHLlw%su9&b@>2v>ivR=vS(WI4$Qi%?O*f~gEG5Sj8>GZct}dY%`OX0>m#v>JlSwV4O?ON`mMFWhm6qASZPiw23 zf2WXJKoqeB_@k$oVxZWgX$N77^_B*iqD&bcv>djF&tu}U6aP9J&RPRcI&N%5B|R1m z1U}=nwg4cn-z6LhY95A}qM#!30a5F!l2*>BfvGTUEwS$MF(J{%XSvZiUQxRXMp%}5v>O^pvxYr0E!(Q4_sKFQenR8M-%5XzHSD}^DX`u)ri4Vd0`q~=&% z3M59=f6`c>7OwPg>dbaKxm;s_^DX7KmVN7uV?*vb!)o<2j6=sBW9iV;@FIV)+-lXb zegzpH@Z8#amM(2ZJvln%Olfj%-}I|F>IvtJ2|WEQ`++x8a7|bf|8a~48#oKgtj$|K zi~Q#^`iZxWS~_OIeyAt7#Ab)Cv3V9}s^=%ok`4J? z#0Qiyy-yIm{l}TH8OelUELEG=^lGjQ7by43@z`KwDjVVhyOx(N@+(AjW>$bVB52~* z&J;~E{|Be*rJGr=&B3-6#vZJ$>qjrZKp1-QVU2I_yRU%OG^}K5{|lO^k?J#3e=oh> zrjkc(Xqqp_*I`QPLL?&2L>QnZo}@+Q^AX%ck$(B0c7soF-lL;mpLeSjJ#b3vFllGx zL_D@&aKtw7Prs+B@3>j%Qnrg6Y(vW8Z1s`f{Ow@)iTKnzzIKGVNw;8L(oq0R~RuW$Bmx zPguZo;qjr*)${(x3>I}24jt>4$Gp(pCcEdEj*YInciGQA2qwGpHk=x_zt&bcULGU% zLZxh$Zue28Y+7E=d~EBr4TFh*h;+_;6AjMiqXx@>(@1aB3W^?aapSi zm$xuvMoLdOb4r(=Hw&(616@&ndPF( zd@`?XOi}oIG>RounDu$Q?tAH7MR_O;=*nomtHCG6dDxo4DE%Y6I9k%G;0I*KvU;92 zCEO^H?>QU=j>(-?VnxE31BxLG>#I2unkM1<@RDbIFlR09ApsO>>*@QV!vfpH4H+7c zaKdi?HztEq+~1$5^zJ<JwAX53aZ?K&&6c3RdC7zq; zGkbqS(2C5`k=nm7vxPYPWAYy4o~aEU1-%B%s5W;62hxN)ksk4**{qSqOpTncBh)Yl z-k&PE2Wj_qa9t^!g%_~hEW%`xPLy9!2VnS-{%qT*>%}mSMi%CMAlCakdzguty+`` zRs_HEG=hmxucxjU0Jpn*syX#?T(#$;B3)jJUQ}W(q|tQ`esnBW-2KA)hz^XO+wZPJ zXN3xqkx?Ipao9E=&)R0SsHW21ekbq_#He&mo6nDmwTq~+7VWipf6GckOQz@Ypx}C- zSkPpL{eCsa(J5chd+H;Q-39A^z4`yL0RJ+))$eyAxstzo45a9x3DRzH3wFwrV(2+t zMGzHx-ls*wiC@E#;o&jUGgiGlp%6;2A?D|qTZ(yig98X>K&nAyhjr=#1y=06(mzp2 z;!>%PC_ErQW09WiyA}KZQ?i7s(RC!S_tUXt!2_~1kikSmZ0OH+F-%{wGVGH4vQE`s zx=durq!=Z_2XJ4@pt~2r2s>7Xj~6_wsS_FBq$5q2nVmLC>OU!*U%{IQYWaE~Rhnj+ACP%Q>OST} zI;GI^uJPGJhH;2g}sRa77rrR+f&oAYgD_6^8_^z6M=p+5UF*S(JG+syt67Pv>3I6-E!=r^{w@m z9tCoi1o6(nBO}Gt|0N77KHNXT{{R2I|G0{u*#BQzLH4E=d}G{eN+Ov*O)lu#54>Up zu}LRFKnuK`!hJAD0ssDgHwQMv|IgL`mz0c$PiP<@XDz8IxB(uWDml&OT@lI_?>?jMj}gQeNhc#I+C&|c}rhf1QAu& z&(64}RI^0zJWhGejgkWL64!a&x-O;9d9O5>3Qe!@uv`gz3shcRj)7GVIG|hMmUi%h zFd?mx=5>=y*9m3JUg~!CXBC|1l1s;FT+QJjlpINLAB)g&Z4G7YtFHb{@5ndh?X+49 zL@obuT`|d(onsO>fS7wVccK8oiJn_4`^tAf!DeK6hnty*RL;35>M!)r-?*H*+)P!b z-Qb+serk%mAz%I~qMJ;xdWlX`Aq*7K54Kji#ElrC9&iKiC#WIRU^mWc2`8nSh?9gD zrT;1JFB@~}YBqZYPS4wMx>Mg;SP!$fEgkUYI-(E&AzBTyP5iF|I!|*AZ8BM>~ zRnWt}trJtD?DZ_j1jb(bm0$Yi+AfNG-PN1b`0~jp*vBQx9MhbAf2w}*GXlKm1ggGf zf2P^Yxqyq{et%Ssll(`F&C_e*&?&iisLm0eSFp;?t_HcwHTv&dL?<`fpI1{wL34OB zSPtr^H_yZ_mRPWWnC(oDSBLsGwKC>076#6Q2P_39jPUM&ttL&wIpG|Awzb<$z|C{U zpF*8?FBkDH7CMT9=f4F%Y6Up8S3b@Sc6|>0!l2k(f6BK|Ba8H_+355_-ER|74aZC? zocFZe-cW#;3_Lfc7>!-&ec6mE7M~kJZ$u)MYV+|uL{H&qy)*FzFkn4!X7;LIE0xca zYKWhZab?96*(0tdC@G6es$E_>pVmsJ4#hp5c4Gz-9U}qXarQ~A^i9_pr6>^wPm3t2 zj4I_l?33kZQ@3eX>2tRf-VVsG)S2A2vx0Gf<)XvTi^_?>FkMdFV7gcCFMs58)75)M zw##@O6^&|&;RAG>ua)oHR*el8>BiRgnrRQ$iSTh!KVbsJp=|PYPrTW;cUhP5NG|x! zM`KiGZOPEaEgvr##o^8c{hRcM_WJ6xr_l@`llEBUVL}#VOAnvhoNny0xtP3f)`nU@ z6zyT`X}G`^y8T>IhV8XxDIM5xl_S4&m%Ab~#~HsexNs~$tUrA@;3CB~wwt~N)zFJ| zriWZP{@V3K0QQ5p0O3RDl~ARKx%OoDt|Ha%AH^3u7G>shM3GmH*Na)ocx&MSU#M$3 z7B`Y4tUI?J#-mdn)hIyv9j#8y1Z=CeHdg2d>scl8fILRc?HL$ALd>LWF!!Ha?ciF` z;U)Z+YBO8g!tzma%c@2ve&CN3iRmz=QXwT?RUUbdR{AhE0zIz`1TsZAP%daXbn2DK zaaf$D9WX7h@^r536dBas$bb6;lTj&`{)GtWEU*ZZf7Ha>E9)g#} zUA?x2q{bLV%*OP(Y1mP?I=cD=7%w05Z_R~sN~A(0`lKDbX`BhbT~k&)FifyX@^c^PC-qb`u7_+ zKywMbH}zNGux_d<%XgG0|2M@;uy!*sT@UP}OqcM0VhMaYbOfQ`%2FGzse#hu1I4YC zn1I%TYJp9jh<(K^Z7jX);$U+@TZT6Y@B=G=X3pzfXG(2c-2HwYo;hJfHDSqjYg^Vr zyebva(za2xYzMe?*=DPn@5@NPu^$Dq><_A2M{Pf9DY5?-2v=+=Wu z?Twu|ZFyIOF#KEiB9kKN(4z-7$&_|Vj(JGoc!4eJ4l(wlbJ0q@!e7k;_OPUoQ3VXH zXlzveE-G(b?$FglM}>^$9y)Ka%c97$vrkDXgARm%0wo?Xx_8Cx9?|6a(l5X;@75c`l!Uojy(LHcwtdWDcbw3R5>eO())Iv?|ru*6f!UrRsmz$&@xuC{8qc z-7a4u0o)bq^UbbnY{@7-{|x|hk=svd`i68Zv{x2L5y98&F3Fb>=Y-OzJHmgy{bESL zg$k#0q@a$S5n4}SCo_|fTKp{Hp7_)Lt0oCq><#ABG6V*n-(r0~rf)P|(EjEsc#0Mf0i9YXH(2Cha?2c*1!tqjj-`mw1c@4kv?9BDesM+J@x=OPy zFlO(yyZ8pc&KYPsm3Q)tSA8QE?EOhn%Xft1Ga(f0>Ls1xzqmMp2>p>=8 zTG4`(-j!}}tDS5T;jRdg){{t1l(!qQel^#be+Hi*SuE|+b<*|%H9mmR+y1B3eCEV1 z1Ilyu?s&faloB{Yjj;SEboEc4NzrKr#eL}DOXcKqq4}t0 zu<7DIetgJj93Xt+4qckiUqvEhK!fl!xR!gkBnD0SMEb<5;q|uF9T%@=m0$E<6gAXV zxUG?>HM+0myw9d%F#x;f;9G!uwtXk2sI8#A;=A>A1_S;yR!f3_&`};%goi(*x97Qp zr$xZ3GnU#qUtK(~F!$BV(K&qe;e2;EP`Wm*CqrQB?iLXQiauEBX@rhy#h5d-kzPbV zBr~i>p^wrfZ`78YYU05YDkiPEk63QFF5fF@{&Ds^E&v0F>G8fe7pf_J)6mNM18QAa zQE#ii0bgGxypk`bnATF1jVl+Am#t(K~UhnvW@oDkXouU{e341S(-SlU3P^hPSM-?NG{V=1C2X5u`t$g&H`HLm;((?7<(V`VQ~sn5$pW627^6g+Jv*-+CUXsmB&Ci?L{U#RUA?L`3X)+p3>&jwoxd zu7v`3>^1wTca_uy-t4y+au(7wQy3tVCdf|Dxe<_{=fv-2@|0UR@6WaB{>XWwrJ_QJ zl~M`PGD{k_Af0nETT`)BHDab+d$&?9@F0_Xp#p)ds_K8`KB-~pIG6!X+A_>>K3zD} zXmlURXnTB%&u=sR)92mlbc14i+QoD&6xueqw@R?s?A13OW!!vw^4c?5K_m?_GX#QG zI+23U30@6Py+mq#uQ4onZ-`hOx^nyGZ09Q>-GL}E#3Ug86M%+OK^F+FJbDnd08(V~ z^CO;!t!XP+F*EFmT63S!p6a8P9R?p=)drKTT_){%Tc3@49ZP6=)4o*UU5Bl<78PITk#Gq0-2uTYbd5>z`)@&E4hrJw{E~oZ;CAp|TR)3HGUUx|@EEI4&-(@W{DKoEY-vInKepaKo||W=tEtU;_4=F& z+$%|`*mRwLEKrf!dFXi2`1Be#pNI<>;O;s&%elGrP#E{|vp-u#N&Gmv3r;Co1@Vn~ zn!selh_=5@NzOXYs?~~g=t+^$1bbVQq7fn;d6X0QW}jG z=l8j25j!&+91QA=P@b2d3~xkVmzUf2)y&uJoZGtO#rwZ3dNOjd@;;|&4f!(Zjc!Br zU0vBA(sZ=Y@E!oQP|}2<7MDY%hFj(|UfYGna@}v=R-!L1Py<9@0D91+l)j{xoV*JJ zNF@G4d~Cp0nq7K*yiZVNFA!qF4rQQcfDtZI;Z?KeZ~KWim0zxP9}^?x)YjJ0+$@vC zKe4nFnoaBD)6w?$ZrJUmhj^u>xA&X6iVEPXR78p_lJy7teO2a~(<|h?f3k1WUMbmO zKE!C_Xm-$Nl|3P~LffcppzHxE&{AGIaWQ*9c)gHO66vkyXr$R)SKe37Fq8UvykQfN zTJy+!^0-Bfc4$2)SNd$T1RXnivN{P6DB+%6wWyjby-X2It-ij*(-ul;e=R_m=}EAA zJWkVi)HLrRmtsWu$*cD$`;{kXRTSXRrC(9vk<`rwYa( z1Ma^J?<&bs>TTL$qnlqlg`OX8%0qX6^)1Ka5pBXTzQ78iDaZ%mA7SD9xCF}T>-$CW zhzJPYRab}e^SBWuEy{!TT(ZxNw*jF89ycd&z9%cqy?stU7~i12v1zREIbE6R-pa$t zsPISzQK6#}7Cle5m*TZo&*|<3RE|8JlNWTZ>mG>; z!KbAb+m`SUl4rs(M{`b}7$++a2`Kt2a}o2%yD);~_EUI(c7Wf*eM|k>j4{jNuWf5v zKa4zg{m4t?hm4JK>$o()gk2AA6n>q7Ky?uZsw)`giFtp5NXu^jtSZFO!Yf#*|e!EI>8TCu%+eGT1kqI4@k!WLT(XtmZ5bx zv)p=YCM2JBNGe#0Sd3%KG?c@)it?T?6kwHdNe9H5;R8!`CpqEp;z$4m@}|$OAHZae zV>9z-cLAh9;^LVK6 z%x|9W7SB5bH#9t)&UbRG1sz&{>~|)IebhdX$|u%?65*44Sc%NF2*Lgay1+;Ca1ggj zJEXQ+b%?kj^dWy!lGRKfvEi<|x%3*+Uuk)o$*u)agIM>?;ds*^Z;#u%#j)u3PcT5j z*wO0c^H4n}vn_&By$_kfWTf-c>8r*!Z|- zkTzR!+l@Viw_u#@LHQT)8Fg|3TXYb{@t|q1~dw?9^|9`{vOJh zEaumc71EG|P@d%^O?XMET~bZkB(CdQpygtAZJOF7M$8(BK{s8HFy$=}rs;v3z*$|1 z4pxn%U$ke=_v2r6`yf+lnDvKz3nMH?cWW83Ch3>RHg<({a6n9bGxwHEM!{MIgHCkR zyzQjlLlh^Cd{T^gPKs*6ZtW>o(F^4m@`$^Ws$pQL{PzNT7Aq;oF`MVn0^8Q+&vS)E z2fQzJgRQY$(_4VTAJ6$H_PdLH-7hF#r%jurIhltUXh`^FVxooUvjuRke;FA@z-IPsfxov8XFf!%rg^HtM_Uw{`?K)nT1FTv~t!C^*5jErEd)*)?M*N)sfYF>0V@fYh2l$ zuaf=a5+xk^Q+oAP{2_P*wu%s#&TGoj6;u995luhhF01KW-Brc`V^EVw?+~M1Cp#Xy zQ_K(R8Zo6F=kJV%0EjsSeA{0%I(Wr)uVwJQ8$Dk?`za8C%ZCnva@TXC3($59Ft{5h3vUnSsWBf- z5~wL>Z*!gK0-4v@wugVQ;Iy1{E8z_^7Ga_@4miSWhQSu zVSfiMN0S?I2|jv_h+7kmtxXG5^S?(H`2F)nY8wt{$_nOs1H-}2n{IixG%t6i`JX0-QIE*`=?#2 zDeRiwgT?Z)f2tW(Uoqxe3=^iyS#t7-;lC&unJb@s$x{FP=d*QTZte-8x%tRqU`pOU zW_ZaYGFcs|Cyg{)>CDhq1+M+@ z>f-3-eNuW%SoKuZ4<>c;#7TilXKl@!0JIjL@FT7s1zl>j#=F{Z3Q2mfwicjm9aFDG zsjBc94iE|MGE!KQL5wR9qKMt5Avupcc?%?0>jVU4G&5E(J6I1o5Qv=z6^bu?F5ky% zaOEsPh(XQ7CbAg%Myz-+B?JugQ;6|_Ov^udsROkHuloAa5|*rOJwRA8Z6v@v*H*kT z&_QYQTXbw4{ZOLEH>^jK?udla6^h{|#{oojIQ2a51y80WY@jxbT;0WTE{>y}T<9sNBHS+>-hy zzsosu*ndHt?S9_b#^T=G!P0myi|Fy6x&=Zr|0m7;r(XRhWhK8e=KymSO|T|2(xk8X z6$_Z>5bbTH01WyUt(n`0nn-8Ned-D5s}>1VqY~V~;&a_`*W$+p&km1;P_UT#xsU%HNmj&#gA5Uui(6L zoD6H)XPMvH?QDx~$NCA9RlN?wKZeKVykO-(8_aIUK8JYMYCL;kl8zK*?onk2-BrN) z5*=++6BGQA)n7nZM+!Z4k(r^2o9l1+2%@a1p4IU9{z9+^k@R4746M-ujIX$Y%I56p z+r@*coD_`|&HV{{V9+s!h32FhzYe{v_fhPoa7hl#_#Btw;d~uSKIAlKANtRM$zbww zPeJjgw%e)G0wT={=0UbY4!ta*97O)VjyjX&aXUOXrsaB^H88-D+U312!)Mcb_%C8$ zhg^0*JS&~i`+@J8u2P?^^3tkm$0CRX#A<8g1mjnUhkmdkUfando}DyFhn8}DP@}?tJs!uYK3PPi$Fo3nwyAlS~UO8pwRI8E!OT?zLMgz$zzvAP*1`Jhf zjb){`?XsK=#S+C~1RUz~q#Grg`pOAUan z*<#?56i27PRoS9d71>>e>{hadaq0nJX^zb*Z**;zSe^H*W+od^v zlwq@^2S~T>%xK0s+ouGN*u1^LCUY)n(j+QLZT3}pVDnz#b`l)Bv@ylsnfZBsJgk=Y zpM*H=35pa4?DZw`jK(^P3T!Nmyi^IDOtF-fN+&R@CFB48UlySL!I9Z|_B?fkl_wk2 zdlDV*q%yB5B$HL{VVT&l(hbAoT1SQ*)lzu%_lU**P%=5??dSmpB?I-=q0_-aFhC{e ztj6C$t+hTW(w{7K#i>b)GG9ancLyzU$)&3ncG|C3%fra#1l!yZHBQG}L(F1{y`5vS zAX$>yBMY{Wc0*ttXMy5+oVU*bXYEsnnT}VtMbyT<+G8>4h1GR#>A!rA&Wj*L-jq@!%KidRDuD=;#^D7HA^j`c z^iPj+)@21Z`@Q82jHn?S3)OP^5r*riX51~~d0S8dA3MryZ)W8K6BoTJl42dzL#3mY zSlS`v$R3QvjQtBglLOEQ*NRecn&E=0jv5#KLpg2ES8Ruqj1DU-X||d7Yz+!`b&$23 z{JV=df8(b(PAV9Ho6~uo(fpJY__S~J?XCO#$j*1uvihg3Tn)Dwb4tr~jZBEp_~!Wk zW(v#H3L~{_$wvl;cM{6oX4GP6u54&7g2`wDIaFZB zz@@UZ8~vDlX;p7I6CxnCW6j*wzre(AJ(aF+Iu-Z1gtyARHXX~6-*k%>WB&1inBR~5 zGA0rbb{iEfilL#v{0Ki#RZmb#9$jRirJx&&0D#()ZVXZ$Iai)j3j~JM%krm!wkAB` z;VzC|tV8sc##dQ4SxHWy@u7Z1ZW-K?Qr^7XDPK|JZ0!gxq_t>~j}Z9#@E8tj^3RWm zcA3D%HaG`j)J4qcYUwLK2++k2c8P)3H)ot?B%eMZ*;U3f+T;q_5&+^-I_3M3sBPI- zMJc6mN${dmsCKiZ*o^^8pL-6b)}qLZ1s8q6l*GrC!@9db*LX>y(0 z32`|KJ#aF+pHLSL2!`V!kY>R;A=M*3~@mXM{G^kFUeUma6E!!F1(eSZ$r=}Vj)%C=JmBX5$G}Py5Rl_5xlLr z<8m9k{|zPd$A2MSMpeYgDWIVIll8fZ7{cRkj718D-2Vec{zsVnk78|3aV0)nKbfJL z`^S*IRAhTHYen!Mpl}m_)VNTF7*^-PFkG!>9Aq%2tvfcS3t`>+G|Rb=Ko+Wqv*(01 z_5alNR$+BK`_^vb8r*_I2<{qOf`;Jk?wa5(f#B}$?jD?=!QDN$I|M(S|61#O`|Q0h zzMI1{ub8u8c2`$*RlVakhUTW%->HL|dZo_8-XL2^pDORaWhRs}M}Zd^o-0^Q^@aug z^%v^S;tCNNeRh0zgdgK<+7gUfV4JCXBXIuQdDZ{(rE*$#*ZpvUB0)jRzoj1kiz?>- zGjFghk9qu;{^cKK%s=vwe;@Nd&htNNU1C>uRS5SD<FQFLAIKe&&Iyy*otbFe#d|?n4U5-&Q1-CGP#}e{K6rTK9tRK7FDMbXj_(bVu^SuRW?~RD-)>T?IMl$_8Y*B+y-KIZcPBYFIVu`@n(4ezp+aG7z8s$*e z`HR!}CHq@E>5BL&aZMn6Da8pgD#jZP zxj0%6NfQkv3^{I)0G>#(25)n>`>l)CB_BA=GuiR=7v#~x5-UqDaZRT!vlGbdp)$#D|OoHSq(BmUmwGYuA zS-G9l_0G2;AbHye3C=_(ymryWRrYGc_7>)dEP!gfKP>}*{@hoI&Kex5x*qd}qhJ9$c0(dlex!E?yuoA0G_p zvUg#bzKbxx{0zFzVY^)<8m~oN^xC4)RDS#&LQ-zZ|GI!0Tht^8=^-D~*$8xHH;EZy zPulrWd%{Bjv(0TYfyr%}E6;A57iZ;5wTb6j1tN^C4<%189a)$(Dte<4i|4W~Ilh|B zbZ`JlI-OQCo!MYG3c>ox*j2QWrMY8YT#3r#Skg;J_EqDZd%y#2M+YlUhK`}V3L;nA z>PfYeSie53`ds6gC-0>FSP6@IrUBQNvgvs*ho8&%zh11nVuI-8TUL+#f;1UUZ zTe_GWGCbfbK*VQkSomXVd;h%=9Vs{zuX_D=ClIi3HG*Sh(yk&wBYi3?+ATUlmYg(k zo~aOTw?BG*iE`syn9@(?2xN^^XTB#Ge`cE1szI`flGwzjn3KX zUGj{f{SwE^_hmTzleQ;<_ky0AJH!A<82qIs-|n>7rmLCo=3EFlsy zJ2sl_^Ry=kwMLV3VQ7TD$^Gs{k!zm2ft==Z`3cMB;OhE&P|#q$V&WFyOFnoWd|vpW zLcaHPx%KRvIu!KYIBT>T)Nv=n7D0rTBu!wtEDDKCxRm5Q!r9qiPtWMd+Ue-=X)7BS@7CFYeH4;M%dbzg zrG>o4+#Mo5M+di+32DzOJ4ovx99qq*MO9uMvE@U*R%qs9woy&iYz9gCoY4v)f;9HvouC=@0p3YvO+r{to#SUq9CJf;%4PML< zMLjm$Wi(J$XvLc;kqq?lGNx2Cy;wYnRPGirEDCmFV{Vk#e>KiWes4xi|If9Pkl7S@ z5LLv9*uYmmqFphm-R>p7JtpBSi8WsfVjSI|yL6rJS5}vM=oLw8#)w~glW!>v^o6LV zMz1+Z$<_i?o!Q<~EzfcKNu97d_h(PYy2A67lt_M97WCDo zv#!&6dH(5Il=J{@l{{)`ilT;j+Un_(mkpi8P1%d?>pW8=w-_uO&Fn836o8P)G2`iO z2zARJfA;ZIWTWykw4@oQa(| zTVZZL-IrU+^=B{o2!{2lkUTsXi!Pu0_Gled38?7TAsE0|ojYn&hj&dGFe7 z{GP^7MGMJ(^dbTQYaZ_>XkmSBVo|Ua97NIK{c~tydt1pJ^#*nB!C`eIyi| z|H)Ogz-*}MABfovrJ^TiE))AE=dE77^1j?yi&7nPBc4&VSQPT`1<-T`x_8`~1y%e>If4J0*~WAH6tU(;I8pl z1`i8{csKK`G{&1}4Xgk(OV`u9Sa#3e;_Qj@`8C(+ms+{bJ%5p&BF{e;J`0uxo3r2> zIv%$#K~8&PuRN@!mih7#;=JD7`N5nu&u}Qs$tfxhEW&8JBYJ3<>p4nEX3i&TMsnIU zmQL2okr^#~b+27NJr;4suReZn{{SAA8j>ZO^>(FvM@IU^Lry*Mc_Xg`-NrDB;OS{+ zxVdRrbaa8+>9A=0mW0{m#UBLGV~>_U>z?5}uP`P%O z8c~0y>>4yXpI-+0q_mFtb+!(VNT$K+o7Yp`JZ$*y}pK{nP#oK-h5-=*T~Q*ufBcS zf^#RmuA$y!f9;vpzFCX$F&iU^P7EA;5jJFDG%DG2 zXkRJ2HUZ}mI@3CC8k+ktz1y%whfmVdWu5N;yof?n!4w=Ee8mh_)2E}4K~X<;G6`Sz zM9n47!+L`Fxw2mm*g{ONRtI>vQo@&APD}5>Y~}O61|?L~6Aur6*e`Dd+zzh?r;D^C z#3dgp=gc(0!2lD^d2qXV9-Cv5G)uUDw+ zmK>Uokb7epax!wSyJgMbH?RFNok*vK=zez$1`ZPg3$1pYiY3QO1r9fJye`Lo?)=(g z(9vgUWMyUjARtyf?m*LzC-5@}06Ka_f24OHg;a?$K0e0N=D@VK&gJrQ+*YZ? zi#Jhaw=U4$WV_sP*7dVe&I#6+>>DgBEObB+7ZW2RXt47X7~iy>zR;ng1)j|#YWR5DcTFFU-M;I)Oq!D7^zG^LdXZYxp*jlS?cLF|QlRJkusQ!;nyTYw z42-SV+A;)RW$UTu4}YSgH{A5Rh)77N;8oQ4J?`>SPu4)M`}KA+CcyFJQn|J9; zVNTfPa-V^^~!z+a9?Y9wG973|Yl_;s7+lXPz&szCUZ7j6hfivvR9 zevF(mH@b-<^fN*C+>99*sDMAI>=W6+ufW>V$+d>u1d3g4RWiB{Pssv2%vPJMn z|9TG6<65itC{5Yxjs5IBFpzkd?Cz{nF=RUlqpL<;kN-;xggY43)N|CFoez`BDaia6Eg|eE0C(z}3Pv3Z&YP!fhOCOp`9a@yMJQvAo z<31dJUdG{+b|OU`HbU3(j;7$<9>r%3$Hc9`YtNHbq%!Xx_a<7msZd-kh`MdLNEa2B zePmMI(;Bo-R$YlOM@+JB@o}(0c?0oSEzLOB9!!mh9Z}uJwb`&zAw3W8>v(v(StW$8 zrV-K0PKedcE^a5^#qV;=Z)SvNPq%)E8Q9|}%6m{YpTh@@bE!*Zj^=K$5PBSsCrNn?Oz(S)uu|9E|%N z6S~HAavV6H{~l2`SKhvpS#O7%m5|VWJMIKdBZEUCV~5WKBnp*j-`K5v_SR8XFaGuo zGHUYG*DUaoFGozzbipuC673$L%?ikAr3HM28Ma?~n%pbrNb3>8Y!u$TrzNRneP!IT zPcTI|&7lCQO@9{R60J&kTsxssa+j&6Fu8K%eP>cLM-;o$ujP}NNC;+tWA*BYx2O!> zMU-6aPuN530fkU)RQ#PWSMWLbo*LDJKKH2x`f!~bBu!9|kwwJ>9=uqIDG=G8jkrBK z9QTzVxDGq+Tl59t9t$@1@2A*OurC^l_6M0b4`sCX;KvW+f0)|F$mrA}-H2IE_wM=Q zwyo_N<_OH_Apma!Tjcdj-f`V8S)3$&j*OG~br;0tq9SzxEgZGr#YGeZ&E@p?~v+4C$^HR`9Vg72b(Spdr4zXh}oyn|&?f!XB50Bg0TqW%2d@qQY_eBo0 zAOjy1znDSQyRN6Ubyeo7kLHhJy-u?;9-OJ5GdV^krdQ*o>n`9`49O?{Qvohx{@Xyore8Upqs!YZT~) zsA3_3D6}bM8s@K>Xkh#HCNvh~Qq*6IOM8!@&lTc|v`hl}%1G%d<@cwZbVEeCNq{ep zgrk+FlV_p{f=uhwp|rml_1lHSMy9zoT(2EulC>aJ_h>#U&70g2n5o9Yx=7)w=zMNNT2}cZwG^1hU!xz%dy6y!M(e?cle7H!CRBS^&%L#NQ zl6t6p={4wMkqxj7jI)}at2?jWYnz6C-a>GKOt{s*+t*lDT#Kg>Vr<+(kbPA z)Ol>U>Z^m|cXzT?^t;+)db*!~a5~~TU8`v@eO>$h2}_K?Lyj$68V{eOprQ3BAM$`# z-6m$jwharo{oGW)FZU=h%`3p#MA$`9S^GxUb?eip!*4yK&wSF%kpQqn*S(RoV=H5) zGs$idAgIe3wFqJunlufiKr}&dOSX`*pfugZ>|YB#sdQwwCLz?J!*D6OFVf!nkql27 zOMIJQH% zb?a^DH+_foKQo?lMYJ74k*{7P^;kixNlMS84=pZn3(QS=F5B8a%J01mv1Dey@e-sf zXK$7`1g%CP`7Cxg-1Q<<@gpeUoSNYwhS%Oz(rZoVVnbw8#LZ*DcT~^-_6Vd=o>mbg zbR{WqZ(G$%Lh&wIJr@l7s{2BHU6)?iDms)mxG&acHO41O@v@oFw;2PdLlHWc;&q|l zlMQ`^9%se?>H~A9!m{ze-fxde36aewaSmSqsxzdur8i-O`5H!ci9horn8YY#w)>Q*TpjjV#6)kF>q-rxs{yetOc4_B7}w@aQ+j(?_V8#um{a$@PC{ZXj5-WIpN9*2 zYf8_@ZEDCjr^F*g89<%$DC(eKKa+ap7!w`N9&n_QLI<)fMO!#2pY!YpugWzfHG6I! zL{z<+T`WE;?}l;4{cw(VyT;)bo2QMLqW}5qE?3;uc>R+*F})|<&T46tSf(!UPZA9v zzXyN%Gk%uhk~5k&=C;dDuVzd1U|mmxXa!y&pxP`mn01tv{o3w`?W?o@XOS^{0$~LT z;7<#UKR$Q=?921bZ)`7D{faf8VV6Bctk3&CTbXIOznZr+nf}lj^>t`B2jDME+V!$U zMBqeHAUs~zZ~B!6YSrqcdemxJjRSIlLw=dh567yn7-h9;*r>gqa323q&YUUR>0v``kLW z0ZC$4!0fu7OOFu-ze2SO@ZX9z!P3v-O*X5(Ri#lYJr*0c0c|%iz&93Iz#`%eAWL6s zdTdN`yvr%eszYN`` zEF0M~xKxC;B9+0vC5#sJs!u1modJbVmO~pr^=dFI@GAr?iq2m~j+@CrUc}7_?V$g{ zrrha>%oKmG!sjoObW}0Oosbm{ziwaNmHCxihyO<$2~hvWC99dTqJFCOt6k<||6&p5 zhd7OnmtWWsleglp(E=9&vsrP8MH%g!ZvaggZaq3KA3+xP?eu_tT@+kK3so<|*X7fd zdOn-xxd&yd@w@Nrn9yH->fy@i(AymsFej@6%o@#Ab0)^P_>!^7A4orRG(YBz_#nZh zDPgw>)t@&uTo@oV%&c=Ok_M};HO>jR2KjMl1{{(#Q7X?t$fEV;BBj?Le<;J_@V8h> zv0Y1p0K#Mm+vMk5B9E_!G zYU~e~tLSia)oJVmb#s|;z%u<9H8X^dJ_)GLDyqrU+R`PM5rgEYhpQD8YIdLDtdw|D zulPuGG^h*o+As`AaB66;Eh}tgRie0?Y2V`zynY?;U)A)uv)h9M@ZYsQefx1nDax=2 zra0_*)==6EO_+B2Om&zVrlIXcWV!re;H+t@K7RglGtEobD(_se;z`<^U%c`(Uv#og zi059>4eEn#cQ}ybEAI1Gn=qH@|Ikev?+}~Nq%+0VUpGdCvlim8I7 zl6-oPD1z2I+w&QPm_oaaC68BZ_4kx`EFd2vh$H_WEkK615rjA*5S`SOp=}+8*Bfwa z{D}!sKMHGp3q}|M2!^c3mjnalK|c~zxPM9Ed9>Y+O<&tq51$EBMx|* z<7MapW0DQ+v}i>b;pndQizenkx_HtTt2{d(JWh*sO`j67e>o?8cf^uwwp`i z{;(XI)un*ZUH7(x4kuMW47Uj3NIZ?OU2q;@{IjQsqlP1|fct*mg*RV2O4Xx8oPBrQmxFrgy7#$9^nk>(!FX^DpP z8;=&!U_V_HMX3r+yLD%8Hr0GWIhq7kZ*9{6Qnv>*VdslS6-kic}>{i z^_S}xRY<9BGo}V*NfL_#ifw5xW$kPvyR4G4W0n5ySg+Ky3uP~njbr}em*(|FkJHJL zow>P>Z%f{#{8;MO=xyA}e?vJy8_Dists%d9r0zkheyDYEraKU&f1CMwJWs^^E)&Hu zo^9A!uW{iA7i_>>-qXBBFwxtuu>fxK1l!2vDoa5+&WZ3{f;yB=s{y*%*-v~1kvECo zcxw#&0~7s+!uB6>>dCw~=8IS@I~+sDOI-AR_DDSpwJ9kgEdEk?S(IitoF6MQ{vBrX zd6sGYAb()`4M?%&auc5^7#^jVNe&BzGoIj_y1ADX+5<9jKs$kdxh(vfCxh(qjUTl> zF`quy#GHO{9o_xkC~4^DxWE%=_^%g7fuSCC{|bb4qsnzjIbbh-c(7*HM+bf)bAuA9WGwq2kTb{PlCi#W1EVor(48q&uuCFpBrm=g@>CGzoao1l z`>Mmd6JLb$VaSFr({EdE_)tcicl<4)Asu@e3v97}3k&5w{Ju5gg237x&!hdmtY?Hk zA4mmr%OhT#qktX(+sdGf#)w7JyaSo8&l0i}v17O2XO*mj8q&*6`c%Mx0q5eMxb_vo zuc5l|vVImyT?WDwcMcRA+zjeB>BYy-pXAa56ZxOT+}?cA3U<3W59q8HJKXkY1x+F- z-o^3UH@aFN?P7yRSpF)fjA;r*O#1FHAO)0=W|ZpTM^I+yHW~C#0(h*((Vt4b+RHDj zD@HRy%afnG;_(F-lDLfrh9EVyg)HgfG;X&hPR90+~|1{(%AhV}@N7W?@_FB1)BatQ~}9 zTs5L4eqR%jlp5W7p_3hk@CfAGX`0mx8&ELNM88;-ZXG~s1ct;;cC(QcdNX{!J+w&D zSNfWxY(&XVbYElBaEj8szKG}%!PyzBn^H_WHxoCsN}RLzEENe$0ZPmtkMT^e$EslZ4Y*|O#iN0qcd5Bp^Sqc8a+G<$5O zCaWBnIC4l?Npao9)Nmz%1!ylt;kXR9HQkDu3J}7qTVlUYWEUy&%z2l1E@*|{G-*#V zOUspFAm!t;Apn?5M{kFDG$BXBx&f@dX(lfO$vv4QlFB%*PZ&)%h%^JE2EONX4g z@}+N7<_qGjrchf{>G$>eCw|{L2Bm6gxQS!$*=c;pcf3@>mS7sJ8^ZH&H}pG>xJ|Wt zNP_5^Qy!pd#QHmO5{FKh?XPSRnqfnbI*{NlJ&S*nS)rRM5{#c@WiAm*iDfUfn|#{e zf1|)8iT8G~o{ixP#r2!tgSZ1r^Nu?`oxP7AF6unW_!FL9=!5Q>T7BxLZF~yb9#(Y? zC=uR33tz*ty~iH1;j6!G@VaztZvB?sfJPCFg`jCQ>r`SCE!7W5p;fe1ynoOfwL?+d z)Q-76Rtfn;=`C2zK2moGTc-Epr&b@GiD7tF^NbLGO@Z$rmNk#~n;>b@onz@;DtqEl zDX*ISi1lA z6|~6M((ih)zG|4x%u%~kk~k5eF9sR@VaY+NB`3mW zMB5x+#EW7V7|A~zXSdFHvKF`Zuz-Lc-|{}F26+#Dq$B6Jl7fKZAatpLGe zhOw2sx&C>c;sgl5JT&;aM(lBsF+sZJ+go5LLRpCm1^9H0^${^r(OV@qZcc=8UyagC zG%+Z^b5VzjEZETR``b0~yRYR9-IqsA~&s`JD{}?1wN|Ab(BhB_Fly9wp z1$!<|pk~6f61ua6=u2(_Wxk6}EM^6&QCH}gFit2Iswua%oC6y4x$|!c(Sv1J zRVNXYuXUr`+oeshUm$jIHIE?l<)wS3lw|GfF5+1Y3G}Qm)wFUFQLc>7+7d!eILhKO z)>gKqVnx9_%+A4xhz|CXJ_CgVYJxT>8QlH&?XUB^;eSwv+veUGL_<0@N z>5D$PnQxYb$~a2`wr)=yjSU{9olRHmjc_wL5budQ=Ikh?Gd#~)l2w#kPmA_bY5MSU z?&t}he-ML2AKmiL|3cXZ+T2~I)ZSEEBErml4QeS@(MoPCCD~Q^79=y^1oQ{7HasAP`SYj= zIK7%>y1O7a+5b`{AwJN_b`SM945kx^iVw)8z1;gO9L|=B#Y|p2q7Xiz9(g}L%MoR{ zx0rqc$$2ADE4^+@xoIvb{JQ6>QBo0DpZd7c@eFqyV)d#$f0Lry{wQ#FxB2d_mLYRb zqMhgV^Bf3yUYrWRuw5EoXc_O%x7ge-Yj|@(xU@~pP& zWNg9SSeB2^P^){p0T_D$RGTc{p76S~U)@rK^|3n4rF-1_Zw*9+g@u&db9o=*@ri@= z-3W;FIXPrJ8H{Xnyeu>t`FW{XoT8Y%lmxBjORQRDbp$h5rp?(K&sJ`h&wL<# z%a7B4?SrZAC~9_IpjH9Q%&?troa@E?i_^bIg?v`MX-t%_73G&sH z^=;GHiprIo9rFfDD4K|ze74Q@$;ru1LUOz(B~6LSFb;;)Y+ZQPc)HWeQ{Z@^*Gi?$ z)6BSOIqOkD+yX2V581+=86Mnb^Un|oQGoj#dMt7vu+S5iu9^w&r_hr>g03=_zR z>#ENW*;ZRl1YOYp6ygW15@qMZg%0gf-$uPTza#nJ_$M%ahD(8|(u-(OVsJnx&l z-DNJ_0_9rD%4u_EV-&g!w1;4H$Y$OEXoyos#Q!pGwbjqJ+^SYZyy|kY<^WQ6S)wJV zE?;jisHf+iZV_o|Y3@jA8EGG{r-eU1)Du3Ly!vtSl#U*QWx6r;m!AzW0KD*iZ?8w| z)sA-z{96<2L9K$T4Lo2SOI4NJC_lQ`m;MnAFe3vI0RcyB(y&IoVlH{V7a#%#I36yLF>>~2F0fM<@9yG#zxSHGEN!{D zCAuXd{*di6YSNJ@=+aj@t0eH`I*=IQPrbxtK!OqQBk1LGWF*Lq3#QOPx>(4bb{EzX zHK--a*Z|wBkV@C|CgP-D8YJ$!S-%;rjUPvo*6*kPjoZ(;odDmJPc4D-{Hxd6CHYV~ z)>+O~(10-39?@56#`r$CId?3MiewGLEL}&79`%m*HT-1d0?w^ zOv5s%ARrK-TCSaukTG54QpI~5GH5LONubqge2r1=jvX(elR>Z9du#X5g=ug1blHa# zEW~bp@q!TsyMdF73mlLkTQqA4(X~2S;l3G`k^(|lod#1I5bfGn@$Kw{B{8<9ry&7^ z14_yj9`U{T+u&<=wA-EUDqK@X*R|o->ZnZFG=%TpQhP40`PO-JmH!+1e&qfC3w>Y4 zWD!^NhKW77H-p)_3_Ft%`ty=8_;SkACyV~uXfMyonJSj z9RF>B)$SmqZCM{V2;`-jtFF#Ck|aReG4^ZtU7tHCe5W!UDBaUQj? zHA-u*gu|#)L>bkx-sUqUrkDbHh329X1@d&I&C0`@H2+j~Spkim+MttB+Y& zVhxeu3w16&O_e%xFBfJ`o{H31RZ%3Z2Gckm{NUrM!^@pXw`F8_nhoqLM7N@paf}c5 zU>Njz#-;F`SquMag|wmKWlSCzmG?M$9Ui76n4zFqI5yr12~=n{)N?U`N0;ZKuGK^*psl)bxCsytfKhJ#Im+Op`Qxmf8dkcWrKUD@Qu(J@t}8^sXGEChTx zkT~1-_hpyzsyvtnHTs4;$zD__Pq7ccHPh)&W4Fj`I&=>d<9OojGp3XgZ2N-`YMFG% zdW<0U^NDCee(Kod^7z`OUR)5=G|6=} zc!&m@nP|PG+ptrS+#}e09Xz)UhdHEhsGei9vjux~&(l*=Z@<^TiFuqff`cc8ThVGB zb*awsher|_g%@w{h_-g{6KWM2bnxAE?H=vyzXSD>o}9t9krTWxHVHeguAV?GYHPB( zTZ@mM0sk2_(OH#>>cRd8yW4V58rG4{cD5+cF46XZ@b8n%V|>jEI3LrB(`>N5=qqn_ zZ+}^?+LJDrA_D{V_UG?F+Z|K9-8u`B^(|G-O1&h{-TY^};r<&}-xn_IX2U$ycsU9f zfS4@5L{Wb`pA;BJ4570D*MH^*5tcIlA@ZM?x{Gm+ulm<>a*yANK>QaVZ%dZ{5WDgA z6KrF_NthdSoXMhyD~aZT@MXIBY#1x9j6_= zgH+ZK%?b+*MB+B(^ITim#?P2D98yxyp>rIXd8J0QA zwFod)uBE7 z5VXnbdKK()UsSPBX1>Rh0Du#0gY)sPO@&P_U*_}CUtAaYOv|8vd}~t~Y>_9tl2M9E zVq15UZ{$X(R+Rw@N$+#1K`(swd!~Co?#6R7i&t|^uN1+D3a5#v&;qXrqeeP-f9BFa zus?moovpwL3t}nh+9Y%<@$>9xKnJ`*0h?oWO(56fjlrHRSz$#<E3CQcs5Ey1zI55jkN$1x<*a@PXNSDe-s+>4UT&oR~5R-5V=(;lU^GDXN} zP&L0+{fhja@K-F9@1Qt6e*xk}wUjya#DpIsAy6EV|A`V(NTh?l?lZ^H}V)~o+Ic{R%K?ek zRBw-|<<^Gv0zs;!($^wdN{ zNr{U?T*`ZR$n9`=K-l*9!C|JzW99eL=-Q__VRCxjEm5W4NpRW_*&f9Q2WV`Wr2FVS z_vQ-E4xN7i`Y(;%iZhKC*_gFTjX&tj#evcie}4T$wnFEWt-em7Q*oQEP=Bo6%WFsq zOnA3T{FMl^=*H!z!i^n7TI5ly4;Rr^K4kGG-7rR@Ok;1jA+Zry!r08FkUnH~YT$-q zC?R#I8Slk@Nt@Cfq@87D&_x}VNeD)k_UyeCk67J2UvT-B8u zJt*Q>?=1=k69MO22w*}h_$-p=?=ID?@Vu2KBEVR7U}J#-obPE2yi3|fb#`F8YsImk z8FBtwOA*9q1J`=z5Z0x}-=5fAXf|!f zV*=W<)9y&RZWEZ$9$@wLFJ&66jJ?*+F@?4jrKP)Bn_9O;5TvAu0_^LBOqj7gW*XA7 zu6;0roe2ZbuI^TWE1tqRe?S}-CTJ_BOR0f$n z8SIH4?`ADxmC<^)1Q!r7-1daJEzv-K3nYoorUX338clBPm^>Q@NcVrf6#V$7*Ms~%Rri#4e!h& zcp&Eb3$9`W6+O7+Uh0FzXna?~+I$u9CFAo>Zg<6@c~UE2=U0sWd3wz8Y7H4scl^B( zSli)XT%=3@=Dhop z+v5d>R}DNc=wnZuvwbCv<+b-I>RI1tG|GV3^`oV)Q5fX7_h7Ej!l#5KB{Er}T0S_i znoEM6IH!}%gyf~E`0DLMz*gqanfrlr^qEpVx#*SI3- zKWx3Czt|kMp=((*3rqw_y~&lWDn^X^zhdiGoN>uDK~TUN?2=Wk$3))C?^4dBW6Yrt z`Zx7mM<)HqSwpN;Maj}prf{$gtn_k@5BjZU0Z|P#Wf7%bb|fceIW*ntfm~X4Z3-6T z8kz7{+d#Hbw3|cd){W5c6c+mKAT7mjKl*zPBAeP6oXin=6GJF^EU7;qE@ZTAfN0%r zZCW$aV+S~ZPFj0*Du+1A!SoL^?V^A_Hx(<^xlIZ`1q9E}K-lyuVh{TaP8jl&sZiwl`$h#{5zTz>;hd8QOVxubF&sL^u53Y=Nh1znf%|i1< zN`P;oRzU=Nd_2_-=h`i``yO!z#d=l&;2Xf#oP|kcCK`*j$jh0_J1B-gqpdm(L`O4q z9^6voiB474G)q@&h=+-3YGU=-Gc6y`vFf4?UvKYxg$26#Yz7>5OcSdwnD3&cZMm-& zqPogFx2zdizjGV=9EjoxL2SDE@+XYGtz%`LIn%{ER_^fC_}SuBjFpuUvO2-o^)2NF*QZ z`J@XBIyl54Z7o?sWS7u2ZMJ z17!gr@PjWwcE~0{qFXFRzVSycJWaF3rUbLcIRBFC&m0%FI1zGN8K>$C(b1I4!#t(N z(;fe&fNDq~f?aC388J>+cz6mn{Amp?hVZ((8J7OPXR^zS_l;`&TftV82oGHm?4d z>Zhmcbqh>dE6f)1NwHtonEd}l-MQa|u$WPas}B+IPCdlZQ#TZr2dO!>^H~)5@Cl~h*q0^zez5UL)y%H zR$NKVMez60W>@!!a6`_#D$MD}hZnf>o~FL|)fs{){)Sk5cP`({wKD~AUT7rZ;b?t) z((s?C1!BYOzCtiyKxCf`-1!DKxBps8|0jXrzgC_9>)jmQ);@=SOm4bC6$ALe|B>zR dZ`Hx$`%0rNQudcR*LBR|3BJZF^&KL diff --git a/_versions/2.7/guides/images/optaplanner-time-table-class-diagram-annotated.png b/_versions/2.7/guides/images/optaplanner-time-table-class-diagram-annotated.png deleted file mode 100644 index c52029e195839d878a43e4fcf02c0ca16166e59f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73695 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

    s`AwN2TFI0gi1HgG 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 diff --git a/_versions/2.7/guides/images/optaplanner-time-table-class-diagram-pure.png b/_versions/2.7/guides/images/optaplanner-time-table-class-diagram-pure.png deleted file mode 100644 index 26be4604e4498f349abf1b28067453c845da0bf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45167 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 Tytw^I+@}6aL*1n5%Xj<_U~iTh diff --git a/_versions/2.7/guides/images/optaplanner-time-table-class-diagram.svg b/_versions/2.7/guides/images/optaplanner-time-table-class-diagram.svg deleted file mode 100644 index 07482243f22..00000000000 --- a/_versions/2.7/guides/images/optaplanner-time-table-class-diagram.svg +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - www.optaplanner.org - - - - - - www.optaplanner.org - - - en - - - - - - - - @PlanningEntity @PlanningVariable - @PlanningVariable The timeslot and room fields arenormally null before solvingand non-null after solving - - - Lesson - subject : Stringteacher : StringstudentGroup : String - - - 0..1 * timeslot - - - 0..1 * room - - Time table class diagram -   - Timeslot - dayOfWeek : DayOfWeekstartTime : LocalTimeendTime : LocalTime - Room - name : String - diff --git a/_versions/2.7/guides/images/proactor-pattern.png b/_versions/2.7/guides/images/proactor-pattern.png deleted file mode 100644 index 2218c588da3860d18645b6587dfdc6343f20ec56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139220 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®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 WexlR3xbD`+op$yWc+m diff --git a/_versions/2.7/guides/images/quarkus-reactive-core.png b/_versions/2.7/guides/images/quarkus-reactive-core.png deleted file mode 100644 index 59dcae49af055dc988fdf8eccbf23bd2745ab77d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216724 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

    ar#y`og)`LD$x?f57@q{M0V#* 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νY!!TMP$QX_PI*?HUG2 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�z$X(PX9+dh&UsI4?s_s8 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

    CeWfgdUDK~&MU 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 L@9iPlOJ@BG@|php diff --git a/_versions/2.7/guides/images/quarkus-vertx-guide-architecture.png b/_versions/2.7/guides/images/quarkus-vertx-guide-architecture.png deleted file mode 100644 index b752e089161c1dff29f1bf574edfc0f6fd2e65c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190445 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%0A4<~@%*q{82ZreT}_JX{r2Epm0D^fv# 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 G_x}Nf>gpN* diff --git a/_versions/2.7/guides/images/rabbitmq-guide-architecture.png b/_versions/2.7/guides/images/rabbitmq-guide-architecture.png deleted file mode 100644 index ea6682da1b6810447c31bb273678e13893741719..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101788 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%0AA-7mN%lGRtK(%ck@kLNu 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%0Do|Ew^MH;P` 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�heJmpP&T3V!|K2b!%kHr@!P;?)eXQ;J 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

    C3RBPYT6|n2wAzs3{+KP` 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 O00K`}KbLh*2~7Z4l%k*j diff --git a/_versions/2.7/guides/images/rabbitmq-qs-app-screenshot.png b/_versions/2.7/guides/images/rabbitmq-qs-app-screenshot.png deleted file mode 100644 index 864b952a78289cc84ea0de601497ee04e751253a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77603 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%0DiXR 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 CQF9>x diff --git a/_versions/2.7/guides/images/rabbitmq-qs-architecture.png b/_versions/2.7/guides/images/rabbitmq-qs-architecture.png deleted file mode 100644 index a6bad5bfbe508c6c94379085116088509d7d2e0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177889 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
  • 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%0AKK5h4=Z3GC23cQgnN`7_!Y z=9VqH3_!1s62EuDfx|6rn?DstbSZ+pffzx3gA~dP=u9E^H0dDs4rKpvRE3E86XWjN z)UZYvfnj(;+6_W$d$CT*;!vs^_1ocPXlxHPYmZ9M#HS%Zb-=h!ZwbEqj4hsdZ!%qR zh=tt3QK*FO0)fKD&nQPsLWw-aZy$cHazTrRNU^LfEge2u4?&z(K{E!~#9D>E z7#-B~ucbr?;$;y(9=>OIKs)NS?*)&?9|KMz#*7Fs-U76!@kkuJ2e(29s)8gu^gS&t zcb}gg^kAmAb9#QQZA<;SZ-y0w{-Jtr!DmEvTXEjBtVYKB*)!T>BQ2TrQ&0U4NWx<> zQP1Y@HbHg&Rm3EO3tcLFt z)pMyN@GPo5^}esXe)JKwg;@t|lWcW0i_W3rq?rf~><&}p1mp4Rg#<2%h!oZQLV;^7 zFm;Mwr?KAn&?sk96%`+S{L$JW^B2cVF^My6=odz&Yo z--v_n$0_DL(9j$OVkE{pB_=P%+AA8{r^fC79!K8XMw!H{Pb?4cWZ<|?F0zW=X18Kd z=ResF}lTyb(M!uGE@!tU0jv&^|)C(dDT4P&B-rV^Wt zZia;L3vF3`B{Oj6Is(VNY+p(6qIQ`CslK-D0}1aJB$hE5h&|Wrnq@ zmt~v^i7?}^#L=OoeH~_QB_Y$rEy<2+tzU#IIQZhassCpaoHE zUUBYOb{B-Y7X&K)Y&3=Q;5w`oQv07t%slE*2?ZDxzDv?m%0`01f*#(V_z{TEXu9bCqQR%a%$?{Vdf#+dIzcPCf~B>(=9!|$j@R09 z_Tpd@Wd5iB4-Vey1&6PAp^$>F2~8V+gkYZ5v2GMss5AOapn+ zPo^^>(S>Dk|FVw>nlTXn6=XcfH+9ism`1=P`cyej29KdqJwlN$jM4Q_qiT8dtr^^!)TPnx-~cCd8y#{!D4}CV=+I z3AX7YE-qf40Y^u^eF)wkl4ktiNHjFwFzX>BC&P<^O~U3#VQ3l_C=`~^>ul!LJOziD zYAXG6ILqO)R-84&MChBJeSR0Qq04Bcb1-s1YAk{%{2y9G4~>sQ0ByK1&7+GII29$p z#-C>b7lcX!kOy5TuW+dqh4?+&Bw}kk}xf)k%b8j+s8I)m?M5 zwKm@Wz{Q+OQrgAEdE-CiuKxJ|=`iZP(=m>7@xaf-N@+L{zxXQ7+qCZ}j1xZ|R!!ST z5G2u{=-hBi6GswiroP@}h2DZ8!AcO;@?+;SK%ivO3b{YXqvrrxuQ-!^`P(3~Ff~4_U!lx>7i9>PtmJJkJNdt36n@v`e zQ*smR`82-Bt22v8UZk*pYlyXin9;(feSN6^YHWz(z0;f)IiY8A`Avr4P@;9^(wA} zGNc`wzWEoM$5@y1W>htn^v{3DxZAbdynPiYJVt!d{rTfA(?%~}y4HkVL|59_*aKel z3c{*8oM51OlbaG(gj3VDn6=@vwRdD(?dx}c#aVv@iLcoN$hDN?d}OU-Jvo@_42eob zu<>n79yj9uB2=V1UjXlG_SO133r!gmGQE;7F~aZ^>e{e+qu-DSybW{z<~FsVpXS6* z>8}(gdFc@5{Wd^UQy<4#a%39UaBs z?TZTpYHHb!lORB1LqTCy$2TAAD>N6`Fh!8)F?x$FVq*N1TL4UDUt$hm9Z&?SLF(kD z=%f6E0jya>G3K(F=!`HVAil#Gglsjv+eWf6pG@K-oJQghyZ}}dE)9(ha{^CT(v#EM zVmgYu`}_O5%+;bmog(5sTVAfGvxbpx*^@1bL=V}(4NPfv0n=;GH}z=~tzM+iy#l0H zTmWvg%oU(}tM|gY-^7_-Z;2*AZ7x`r)uYPH7vw;%-*Cd0SLv0rm+^awx39Z>5B zT&=P7wHAsH*mNmw1D+mq*oS|rW_`+SV zcUhhs_5#pI;2tC@<(QX7iz2h2-{t|uZCB3ADWMQ{6idv%^7IJ_y$2an-@ZzFQOl=6 zwKul3FJe{muka#ls^Nou1F-eo_~e3Y#_G*C<0=cn31rh#bRLfKGb6Z%Sm2d;E5j?l zV>oPiyl`|yA~qb3Bw+`&e8to0*{a<%Q_j2}Wwh8!Cb$Gy|2iXrkT5gj^ElMNa(@1G znJ`~++ru!DSW^viuZ)ac-z|_zbN^fMC9~PHYS&EbXB(2lA+3Et*AaB-Z_7-Fa5}hB3AM=ift;{tXq|r|8JhbEeyuucv)lZlmfHj;AedW3M^O*ATsL zTm$AFokcdlk7kN*ShNUhv!81&e@2!4`VayCLS{kq1_AWK6Q#S^={^^plDu~A_QqV; zk4vbl2gp549{Lv~f7NRSbrdA^Os1P1eFsB+C$mC#=+^$uJ_P&Sq(wnJlDAyaLhq-! zt)cc}ko9b5?W<^^`N6`8jt*%+LBelhqIgQ|Nwh@bp8gO{;`SFjm~NMwR^ekeitx~!>3Pxu>1}z)igSuKy9WJMjO+|tbpn+ z-N7a`4#BGkBluB#HQ5cRD19XLAE=?lm!?q#UF`(Bp6X&>@{5Y)5)_6fJ+H35hpoQ` zG+(*-zz$J8V$63VN!yG?lY!s2^}McUuwv+fG@$lLJy@il0)L#BAQ8_5wY3Q&Fq7w| z!3~E-&!T6e!-;$A>iqYR0duOm6zdvwKRJK2z--ua@#j#TG?f@8yW;a*BU;P0Ks`u_ zhsYVFpap)Gb~88r(0TRjqpYn7`PO!@N)hY|S#Wutk8G zdb(A{A))nSIN|y$NwuPVGEG0xdZZ~*TmobriksieTNq`|MRRk%IJ!~W6P_brB%`{XpE@3&JK*OL|J z9`Wtr`Qh1tXvC&u(bD_6-;RZ7B-&9g_;4|&B)l!@lL&V>id0MCUQbvLJ`*@^hmjY{ zlCR&oow05rIg<=My+UdK`tqvHUnCh9{P1)u(%X)_7N~YNwvKe6@-XuIeXQqWTB1^4(hZbkv;Th3!gNKv|p}PzNmiw zrAK}{5gc&8+HH-}+V0Tj>8++T{6dWPo6FH1|FY)!@?z}yRtF)Y;XSMoe%9%Y1Biy| zl0U82qPW`-4m>?Qg;e@H%yJu7GbL+k5ja(-z&I%^5hNr9vB z)!_{PzJ~NyaairlA0~t40mkC53Ox~8%i_0E1Z5033zpwy=X1KD-*ZyHNEr%qkRI|2-RAJ#; z+;9w%?sU5sk0p(X+tdB^Ph&Bb=A(CRul%_%Ot*R><4TWq-4rT8-vd zoYK8|mV=&{$8~mpUqYNT9myuoxYvbu^PTkj=TpBOCDBAV*Y@?7zvD%r#}qBS;+J2j z`RVhid{`m>hSn{+6kxqjE1^VH10Hxyrx_f>?BH_*R3Mv3|IvXWzuQ;o0604SwIaQQ z4Cpu0&#<~VFu-b8MM&psV`BFMFn!4K8N1l+KYc*-BPkmy6uYD@&bf_eR*{_%xd^n^Vu!)?d24?)j;UF3TA)t7&*M;qhE z#;Mp#w#UBXUfz$%W$Q0zXV6(jNo$>2|DCVP`xXhFlK<6ib zfoj@B%NjbN4nl4%D@=8+QdA{t9rT;FGRr;M2A;(u zrX7Cv)^HZ(J(YNWroMTHL|EQrsaMB1C1w3R3#C7e&Iea!&*V0mf4V#gDV$s(DaqLr zf4jF^J0H{5(sD2kv2T)Anq#~2mF3% ze}zR&fGe7rij!}5S_-vCzZdoau78!*6+9KC42Iv-j_M3s1uXHiED;jF8hx#*U8)`T z`;vPMr!&Uzr%i5F>1~h<@=xE3KEvLIZduqFoK5Q;NI`+Ad5?Uz%!Yr2X2YPAR2A(X zXRgcc^iEtK`q}5+f|5(@Xm#X+YfG}*Zrjda;^eJbQGoyCRHF{yEAPRO)f>LQyTfUV z1b-i0!1vLAd?a=O$ga1Ro_Ls-^6aV_+P&gGtZije?<|hm{^3I&=D?butDV#Dw~hiM z^?)0XTjE7Jc+Ow})_!O_mQBij;cqiM&21isz4mSvMe*E!72a&X*>$1mLFX?&YTEM2 zOi4ZPzw6O#5R~GjTJ0KKy;UZ%z{j0pk%;=a=P#(UbtbGQb|=l3O8vDmn*%8-=*5)# z^K*0sZOH)DEOZ_ONJef!94;~F*x(owj1^PO21h&dh0(Sp1tKP7pEHZXr^?7Qkt!Nf z{!{lD`11$oE%@$?tUDF{Iswy@@gE`G{aOVETnY{Ng;;!0*8)c?|5IOx65fM4m<+@# za4h8kyLIgaM$tA?=2rp}0>=kc2%N$JVYEzNtv_MN?wN|N*P@lPr$Q-_+5liQZ}Io2?2VHQ6CG5Q zPGI4hq>g#5_++t(I4DgfK_M*TZbr1;k`YK@!ZDD#mk1nxs|`Q5wl6P9E=^~a}2Mkkc2D#FZi3^OWl;%0FG|ie`G!zCohTfo?fe_xYRxA z^HyM4=>W}Z-0wS25d=}cfz<6b`!ai=fhATQFQ0M{qI|6<_TE@jK(FF#fd<8sZ8ru) zW-0HIOaL82X4wTvx7I3Q3)+c*9I?m<;~!Tgn3u^PK>62-jI0{iz>3GhBPVS@>HNGQ z#}GI%4%ffLTu=C_jL=9=EuB_tK{1 zVSHhAq7t>@9)HC9!WcR4DXm6Y<00 z@|Q9i+3sP;l%_~x9dZF3^Ae#ezs;Y&p?Iu9$8c%_r!ks+kw-Qu=jgO=)^m;Z=)JfY z`~}FZfQE6*=R24qe*~^ZlRB?_OvhS&7{$ZJ2-L`+_l#^dUtFl@s4ACVS+7I13aB;> zkbE(}yFJFnI@P+h7Sk1JncC~05_!%qSoRt_ak3Ql_*+4Kc@(A~XdFsz?fFfR#S z1anE6jsCrIQ|7a@D3+&*6!LkFgXYQx@~Zxv-4OJq^+61Gb+Kpu|6#6!*U2HN3v?~| zP*{ED*;q1%I)eZi^ETdVLTP$>x>XYFulN{_EXYUJBzvcBIBWyW~sjOkst0FDf zX=-Y$!hg&0s;vCO8vj36=6BY1Ip2f?IJP3OFePG87W~%z1%Q`YHr&TqIz#cSJl5wz zPfy5+`IX4dkOt=8NN;9*5#CKbTWp%3q~)}A)Z(L#WXFv14xbRsm-bLDjaNaUMZ%!n z;}B^b(FSDnFVBEstGsgPe591>|Mmh{WT>mP28@%2oR@NgDOj^7F#XAO+*VvnU=LKg z=gJqSL5k0u6dvUKJFi(27#hjAcLJ1~=@|SruqocbqeX=R7!TKk4)Z~F8P&#@YG3j_ z*?^UqT|ZZ!1P^BPlQ#~3HF1Vhb}&S&V(AKufV4Y@s$Y_9K$eq`gFjM7&jh(;0& z$p1oEes1hat;|yH*XPp;rH@{qtA!M3P%OfQ(=YQzQCz^sy1aKu+kkdypzRi*l0~!{ z%r}h_-p!vplior1kca$>t^Hw<{9%jz}Wog#o7bL zs0FjxL5AiCoyqUMlmk5%e%n(EC?W50g-L*rttvkZn4@y4dLcg6)z*3X51@_a0PC(^ z!!~KzVu|_r`Cl`sl_qPndEasFhx)H&4ZapFk)YoeS`-s@BJ*$k`22y{Ibf_v&pyT9 z6L>SoG+Xa)N@M{r@1mn$C83U(B>Ixbxj6U{R7qP)MNf=2Oia85i8tbaKh1n|PyA-1D~6!ni<>cx zY5;+6uhpnnnz^$NYaWnb1w(&sivfwmUsmykisvW8_DZQ1c~OKzTJ6q4=zl8h36SFS zSVS}Nb`dVakA=^^*5}GPa-1BjodwKL z_WyM)>@c5=_Wmtl`nWA{E7}`RK0KCe3njWsj@U=@HGC}xv zL|B87xL=+Re%7zH@BS5HeSXt)S&xc}t5Byex!8YQ2KC%e>A#c*kDB4?MneiJtvmRy zO&AE^OSiZ%rJ8Kv%YhQQWPA}Q4ykgXF@T9zSBHs-t%c5uBNWms&;9k` zB^+fxr{R_YJ@4?AZ(eHE-z!%PAfbb$+V?iYR_GRe0Q)!=PGFgYgrndCZmomayJ=BN zV1Lz5i2L*t(;XJ@fS-QfRhnsuzGUp2%7gx`R+w1mL}?&3wtXAiccQ$a)k2)f`lz_P zb#?(I#j`JxR4(#z=4;G_xhpYDb1&lnses2{&-ZkdjR7)YdFF$y@hiTrZX$0e;Z*kb zlt_p0*g411R!dUVKabjldeL9wQtE;mj#`9Q$#nJ^UtRCEhS8Et^cmvqV>fyu+$69y z&~FxA0<0t8y(oR)82ImpEP;NhYtL%*OVD7Evr7(EIi4NO-3MqGfyeuw1j0>XL>To5 znp|D;rEm}24p0GL+z*q(%}0myU+&7{4jzB&+AZ3Wsqv#8&R18Z_Ai67UC`=8t#}rD z8BeR7fvf!pMsEQN3hE5U!v1uo^74U%t{r-OvjF&6sYYtMtUNIr%DUWUV-UiZCaYt3 zVAl%HZH@My19_}@4}ZVOtc7hr#{1ye|65BJFoi4by8UZcdy@DHrjHe(N(h}7wT0bW zcE}n4#jC4_x-Dkqx`_gUSsR3k1)J70Ms{6l+&SQsmWV5Eu{j)lJ0ifYk4LWe%_4E4O zqw->1MmUms>iiw;qrkac=N#ngc*Hr)v)|?mSv%OTgSS2P0M%&p*c+#UEs|sS*9d3M zriJip)%Wv@Z@zC6Z0Xuwgve_fCaDt)s~E^%c~^*DPM-TElG$i!jLNnWaau;^xwh0< zz3+3+r`1UnvftJcuFiS*DPKZL;fF-Yt841@__YEcy7M?Ddi;QZfDj$_#0=YS%KXw~ zWv`#vTwY&~@9OM*zy98WRzMaCMFY0@{|5OW5jAI)1qneZKJ$;oG~fW3SZ^vJGEBFN z-JURcTHAQQEG6YWZ0{}8;DW|&jCJ&3%Avp-odZYszAj~mKIY*QijR-a7zb~q6MW6cLp1hV zZEB!Wq2CdituG=9r>!HEQY|@WM;aUuT zue?L8DtBvUY`|6j4%H<@)Cxn?gYriM(1pk|QrLm82Z$g(6GkQK@?6wJ4`>9gK zbkIL_|EL<+d6ckf@NUt2$<`_Ww-!eAPVfhL_Y3W_t2br~ow=^-T;&tTquk@z*~_b! z(7CYo=W4G>iLoWv@R^!Z+gs+2zOPiL8Tg!vB1t|{Gx1>ATgR~Q)KpMa7@V?C>x z2hu8b#gKOI$0^SaD++9?NJUw8gxsAUk*YoQ#N)o2)HTQFUSS#svHAD_yt+K}<^ z??wKhLIkY7068MLTQRZbS8n#msqzP`U!V^arh9&@TU0;&1ve%Pa|Qn1+W*4%sS#R} zhn7i((dxf^eZ@d=je4if8hXtjohN03$IG&hlh(XQ^}7^ywP_7Z(dwMxaL-8k7^EfrLU0bbTEM^(1VkUm0r4Pel)926H z<^zKAkpw6aCsAoV=IPMB;a|5gb^sAE7Lkd2v9D~2w%!5tX| zE`48|PD@NB-P}$;t1V_)7 zbuTQMTL|YaNeJM0v^hGN1%XFF7}qOV+GY;j&Fh|K0>)4U74RPJu3L`ZSGl`o^LSMj zdcAv;z0=J49BCz@$N6`3W9@@~C=jIOuFAG#u$peyZzYDcUoiE(GE$hseJ`VCnsf_^eQ|@KE>a&Agd271T`HY+qqlb-6#vLDEENT^ zuAxsCbRUZ@v zq%p%F3M+sbBetaNm&KY-ZI2(_IyNB;%m6}>F*%_lvw+65V63Db0<|(-o5WH03d*xM zEOE^+h5J??A7=wYRM^u=vT@b!QkDqvBf%l*%d8xNONvI@kxUA&_}lw7TWijCsHmW9m+#*e z#J&TY#hU#rFiXoBLwi@${*rh_n-{n3GOwKXYZ}zi;LG*b6~Vk?kOtS3E!R_98U7^Q z*1MuS0UWtd)*!#u5%e?2K%J%r+mvw^&RF~DSm@%J!u2yuQ*;{5ADe^Y|4 zjrQC(H(YmQfV%nNX}cSw!gsbj(?Jj}JW-Z$t)op?R85hR0Lavby$bH@+$&=;7)SJH_aV^>OTqTO?g`f0t*h?mB$ z9DHjBN&V8k-D&)xOi7C8cnZ6+@SI7p>mz^&(`3N9D# zlQ&taf$-XZIprG`CUU=t6gLXm4p)odvdYj}(Zrm8)i@%=ZuEXXT)I)yY~uDW1yWCh zoUJ%tW~P;-HG<$*=EiME6Uc4eP|mQ%@B!2hg`I& ztzD_prQ7qIDfU8UTgT0`5w3WU)W@00W6D@ zlr-8&8S3Ah0(8@3f5%yKu`A$42Qc6G&|BL?g<686=sFqHV4#oit5b#>R`{q5Rv`UO z8=-}Tz|AD@n?6+lSSRsVyt%$k5{DGe17^Ds6}CjaN#cugVi>c>*7|3OTHhP_YoyH` z)GWS2P0dPultt06g}X&4k|KL6|BBPXN*p*@hxwoDV6u^vTUk%vmXgKaT>`za9o*}; zj2@&;&$ry(Vi7*K7ts5h!GLNHp%&1f8kp6zO%C)?O5oE$I-p-S;^joG?IKQ&0OMfE zu6>2%_Yv**o9N{b<&R;qmJXjA(I*@}J1?Ucgq?a^DRxmMwEkg4Y~R}9MGQZ5uNBR! z5+;&QJ45LlZepg|$#GTAJ z?8Q~ia`2ZUZNfKHs}jPi1>xmf#k;&Ts@=!)4poO^jjTP@vhEeh(O_Ud&?LP z)~V`)gLPq-x+dep+W&{BvwmyBf5ZJY7>FZ9Mu&hP-Hm_}N~1KRyBnn$($dmh(%lV{ z?(SB)yX)-pJ=eL;Px}Yn+wSMSpXYTWA4fqI80}@h1BIdywepapD|Gra*}VwoKsb_@ zA}+ZkUDQwG=!Y6o#85)IQpZ7hdYS@@P*-8B2U5oN!TQYE>~>!TddI$Zh7Z@{33BRv zd83xT>R`CO;4Vz46W7wdz>lz^_%D3lX1z4-rw6JI@5teIhjrR2LRU=N8WP+ z96$!IpGg^pq8&BuCOMJnFiVHd`yqEO8lZD-;=ShHo;%H9rb4Zt1gn5`twuZ`QScul zkAKth<(gd%V(`W zJydP_>jO*F^hUIusiC!Mq{d91!kPT-*lo#K%w-hoiMk1&FG$gcSk1FA!y~@|vKppww`ME_v$%a7EBvOVOA=+mu*84+Vkm z&XeXObn@bP=5Lbwioq2AeIR55x>L!k z)ahAS0_j}}IC``kGoFFI*{_hLh6GCIms@Y$B`;NTadEUBxlphJg3%3PNSAlWgi ziq4hORwi)rooM5A%`W|Q#=#FP4G0nB#&*CeB*LZCrpV0qP~{S+0s%{zpkNT@;7D-= zi$dZCe-@9GXE%?DO0@@Q6)u7Fe(%`jC}x-vwx&Lkxs$pRGTN)zN<9(Yy>x~!HWDwJ zecXKBIXrf~EeXhIvi_atJMEzMr$v{dGl!}R`VNM_48X<`=2d4;64_{+FI(wpTj~%c zSrkVqJ)qf*d3%E8!Pi^u3j&kuz&-DF`@aV!}fC z_tKf54->p#K#4N-@_?Wq88k)!FOeh(GEjnO#Iaco1HqhDBlM2+Th0}NScyzAI$Ss}L zbsZi4_=sls`h|l3sj#xVm{C)?W?lpg(7u2_$D&}t?mNpdKv)+NQ?^d9#;mWs)@)4^ zXJc$fE*^O2e89*QrTd5$`b|T7(qikH<8ZugVAAwM`zTlXX&C<_Y0gmwCzasb($WJ0 z38=dUR18Y~?D?Gk;&L%$lR>Q#19>KZ6=2MqamE>uFx+ccNL!xY;4G6*Nm>?0#vg18 zKq56iY*7B+mpcTyUag>c&Tcvc<3q(E~yX<8gEb~)@4)%PJB5=k)lSC*Sh zKR80Buii>axOaGmF^Pg5j>_^Q*TFv+eM#jJwRgzD0(Zx0?Zy4+oA?#FfzlMq@xGyr ze&_{&yLAdLqshTnDm?b|w0qBqrq@+u%B?zsDaZ!nO146e8fwI4VZ;+S)-dniu_y7a z@-@vcExH?LEN3_0q`i}y;$H0nlr z;Q9uzHOpJPIny4V8Hs2*F1M>6|X@ROW%nyeuago+^3nyBM#l&XHU*djm$dSXo{^BY5d zIy)R>RGT4YT_|QACmr9BoWa0KNXkff<2-_*!t`F*P<7BG_%6!C2iQ(QRhihUb%853 z`-cUJkDxAKIq~we9wL4nC4aAF?jYw~%uv1_ZD&!2d;7;WJ3`o|)W1x)=5Gf?2G|ULaV!dZz z0aTc9kylre8iWkIvt25wh+B@8%8;AyU;TLa=D-A6*cJX09XGx6sP|SLr&`H)lxJ3( z3!ZWQvd}*7e_bXe8v0%Pkv#mD7G;zGayBshN4u4O!aHpO3iZCk83z;(i&VJpq4nZ7 zwL1f*|NgG|J)mnLN9|NI0)Hmc9sK_YF`0*%8`m?;*HXfA|`>S9Z{@}Kgy8f;J^={ zA^^`U$v$#R$IC4);rO)(jWo37Q67Ij zQOZa1&@Npy`3rIUQf!`2o(ksb!sG5Xa!@>gaeyilO zDE3GV+@;6l3tSzjq#n0KZ$CRAR4~&q&znvQEU#XiR2vwBoT7=o{kcQxRefrA6w zNC-apx_o=&QosWf z<2Sr!IQdbF@R)t1{hb9i{@0?wAfiW+w7@$ano!Sf3T0BhXa@r`3yoil`n#tADV zBdl{VYF?RJ0j%=gfoj38NmpmXU0bq7@LOB+L~g?sFk0yJ%08&MI1|;?QA`;^`d6Fp z7N+NSFDez|?b*ERrh75qmX(Q%>LvEwYdz|<#Z{jo$nZ!7XQq~xK8wBrbSsiwx5W8* zdEF-`u#lSDTHJCl?-^BeEbbaLWwnU_iO7P&4|%zH?`Uq$MaEZ;e*T7Qe3yeOY zgw?N8!g_rUcD_uq0k_dyDM_7b$$x8;-%qIPJ(6d$a?F{KqFfn4fHUmtX8|?oAkiBjtDI(;0)!z;yS(|pUb>`Y){?Q=0B5R$@ zgEc)+wXJbbIM3lyu;Z>UsuXe&nlf&y1Py(yZ6m@@wCnwBF&Ct6*htT2@_z}SAyCf` z_1&B@aM!|$yB^Tjf>%!*k~1sZHsK)hov7hF&D-$7m!NQH zjm6G#c3VbPiW+`9_mRJ%xP6`eYf!2)r%2RKtVmvd0o%JaruHuuY)7Y18ok~McJk0} zWmlEr@5>*t*myN=W{b_nf}R;fJME!x9VQ@3{C&hfmooK&?tRz*%ZBEa){s-=7o1~> z%l<6r^H{K&L98>fqzU)zUFj@qEI3omEo)Wsb&KmnzfZU{p~gsx+TK?eckiSLXPSxw zW2(|=`kH6B+e z0jTchn-aV>G1JDnF@T;}&4Z949@axH?N0;d6U{Pll}Latu=Hk%eXV3f*0+JN_)ew% z-vV;x%ln?(fN=1uQf57IVmZ-b)K@RD67l0p;3p<>JE=L=IGJSaAu zd0x;GhQbakIBLLkYss2;-|#`J1kg-o zp%=nx87kNB#A=})++rTPt|sW@)px%>VeKaiHxhjj?MCG@_(wE;G0YxTp!iLB8T1c@ zu1?Ima^w@gE_u*Efz8}L+3(}(;4ORVltaB{_shyqwzh_t0J=}R?QcJw+{2Q5AYlY( zMz#G~MBV}wfOwKwX)?K;Tj3~*k4;WBoECwg|7J;~Y2XiClUJpn#l<0wgD4{WkKO+W zFC8S#xpm?X1sg4YiVPXiakC+aok9fUpG&+srg+*qE`9&?4{P0L0%rSJuHj4x6#PnD zMU||9D%FFV*bHsmS@jsA>pe}a=DH}e3iOmz4oz}DPO=(-TKI+wrnVKZe==-*&x_A@ zKmOy-4;D16_M8>R4&flB5pfJtsthbQdBE~b(y6LT!vcv~*_h&>iK)M9{ZcjHqh{XVwC#=i z)2P+hO~x_jtxBJ|YZU1}Tagxut!lZ!Hr+(g?8CTPF-^$QZ8}dY+k=K#zWu>@nddtQ`1Yp zZ@K-Y2E@FxS1a4e>+fU>^?enlOlvAmqCF=v&cEL34f_H5rt-7VjN_ZJd?yXA-xwOF zcroOh45%Whj7)WvVw*vfo@4!>u`}u!c=b*0xA@w6A!3Bhx{O~P7&8(CC}ycFjO;*O z^DrxE!oQO;oBOtgv&V0){DxVZUwydEjLWBj0k?-sOARG^fk*1qb|@vs`Ipz1rKoe> zQFl%Dg=hFp0xwQlL!NBhG4JYCSTk2NIng;V^>~E*53&M^7w>>ozF37%9Q~UQ!{4k} z*ki!SX{R0b!dR;je=SbEjYlMwWru#Zrb9kvnA6^JFFSoZPA}w4`EN_4LW~8m-4@_F zj=}qWDp%y5Cg|1KOAc@^qX>a&z&>`!xQ>O%>r_?LwDEd>!bqNBtvRTMGt$TKOZ13% z4WMOyE5`ph`EjXBvt!s4_kf>|cw}}fSL`F5TgupM z=CR~#4p%>Ezb9JJnP_U^+N)s?ir!0;ST^z0@|>T8X`ciNU-vWA+wmU~NF;Y+WSs=~ zw+D)l>fq|F_}_h#VNV#al3DIU&E!d!>3#gDmKwjlBn0NdbSig?^4QvW+f4p^rF>O~ z@!wx7WD#^qgFpZG3*e6yhaeMP+}YX6&lKAxhCsDC<+lWjoT1|&%=g1`oW9MWnA_31 z6Sn{6$I##@fi0v#Jf)|FKp(I$1U0@mlFZr~?`_zxa$(=G2aci&qUnHF)f#IRDw{;g z)t?+Fr&UqrN}Yj~hTM=;f@00gY6DV~jhC^ii;Of>4H#nTBGuFN8~}^kTIiytoN?nu z)FAG3>DfoCO}>zD)c+m4y+pjVe4y!7&KtW=tE7nLf)PqNSeGJd>J z7Y@^MlwiB<6s=+x9oL%*gX+dok4kLmzvg(r%-a6I|-PfGGvVK z1)B$h4x;W~U^pvj5t)fG4)EB}g;cG1mt%|VQs;3dI|0;G*n51m%dqBcoGM9*tjs)A?TvmH^%SZf+5O(zO%|ABs$LHDn})U$!8^sny(oRm3P;5*Z=< zhFIbPq-Pav-2JsMq@>wu_Haw2-X5ptYUsZev)7QDC!iEFy4z^mwA`g4gA%JRlW4kz z+v*wL33L0dMB^*o!x@OgNtslL26GBm40vwq78tr1h>DB4tpQCFxTn5l|^31AJ#P$1X_p)F=4 z-m2B=erfCla)SXZ;yzJgAy^XL^hjb{qP1m#-_6cW3mCrLpC_#GYH41KCC>NRgFJFF z<4iMM(}7wAbia3>ZQg`lbD?9CX`oY4>}yp13o4#1A>Q-2`HKSIqhVGnRItrkK`m4G z#iZ~5y+q4oZnpu=;5MmbQWoY2p^gq8iWik$_~Nq%oC3BES2F4WghXnw;HzPZ)^T{Q zI_NvBV=M5*3q=!PgI6OdF$tM7@XG7K`kn`{Q`7Oc=bX@Hc|l&e7ubId)TYcD?W~xf zKUplzz)V&!Zp$0dL>lJ3&^|MRKnEFmLkg=j5#^&9LpZ|eH1lC7d!z6Y*qw0nW0 z-!}idj}K!(?CT?h+iJ#KM2dIZ`8NLv7v!&L!~l5VH@KrhUX=0Nh?|l)wXg8N-M5kB zO)@fzoHHOUSmw~wsF;c4;@P+b~676?)v;zgNrk*(FwsS}J}H~j8|nUYHMBK z?5wSBXGmGCAqHIwGcIItYY(*Pzvs|de6^D-sF~E698j5x9J|bSNEuC8GoRRgl?nSI z>$O@j16mAMP?v_UylWW41okQoS=dX#C#W4&o~%}tYOKQ5HD@caI&?s5k+&3vh%6X- zv9XHoZpmARcIjoqA>XL)9{qjf?4Gd8+D`ilMTl+*1z-5LKV$y@0dHhP8YEI z^z`)lUWyr}Ma73X>29UPF zDiHvX#_D5K(kx@|qUQC3iCOqA4iFZ*5+iD%`qm~)?CN4p3YQfb5<_-ly4Ctw|Cr^> z7lh%FR=(4Q%vQb<2^D~2;k6rnz&BkNT+tb%t>GvPn(e-TQnA8eUP#hG+rTH@UR#7w zafUHI6{4=uHQ&j&f2QV($gYzxO6Uj}#Zw8cf@8lh6 zV0d0n;WR$t7U+tLgQ^Wa+*?|?I&<63Ev&B-TNC8i2_zm;Ans8&y{!L%ESn7-Aol8_ zE~yLOhZkzMTsI-wy$*)@h{3PebS-nMoek{sAzl$dKSS11XE@ZPTJI>ps8pnoatG?-wTYM6{U>2p; zRL{h&dl@ZOpOuNH^PSN3!MeQj67NA0V1wS@Mr{(b7Y&BmO8Ru8vr|W|PkAY}wC8zl z`^7f@9rWuTLE&|Q%J&UNAq1heD6Uw>*6E+sTVhxmXju?HyqT+xrcqe!wg4IK4>zX~ zdcr4gAWSkSR?#f6TP(Yq_%}jBfif>F-LLs4^&Dh}S;++ipJp$^2z43$7)Tf4fz?S3 zh1;C<%Tu!u6aI&U*1#{#LM$!Wy~=s%h_*iIqQex9(lCzR)4`Hy1zlYpv&R# z&j+DSz_z7$sPIeAl?I0#Hv#*dv8=9>ISn#3cYGVV)8Y4=oZQ?W^s3=^0h@=1m2u?c zM=Px!X-I=iE}oC~m6Z-edw>^|>7n`V{OSJ4srz6nv8(F{U2HYPDn93d*NcUP*8TB$gF%+R#`bEpg~My1BL*mQg=n z-j|$ss@~a77~3Mg^AK=L?rgz)9LL;*8qP=wy1c(*xoCz|`qe4Eft=LA)?cz7DE%Ay za4wDCa%f-JWsFKly#dfy?9UhySq6v`+43|0F#9i_$fSlePz);f5V@!;E_u2@9i~#W z8dZV^VA3}f1J|h|<(aVYtEj!a34)0nf1GTOF$d?YmqRL@!A~z2t&kUkZyZ`nk0O4n zGYvo_w}*H5zHlrpjun{G(JZp@j63+eOgl38EuCoXL+{SIdC5KFE7B^LW4ON>q3e4U z*PoH`JLO?cVi~3IV_7k7`L4OXf>L=S+`qkr>3lMsQg-7un_oTST{g<3rk8gFqRtXI zTC#_NTQm%UgV;hVM-KlHNUe1{_}OiG*1dDLOGl@sh-TPJ z{_$ICYxaeM+sZfj=K-Cd5-{3+67`shNZ$K8L7dAi&0UZtSc8cbE}+DTb;80&ai-2< zS~E9mNLNh0DJy^bHSI3CD-2q!xmJZR*u{feiy3UAK4nj<`_39_Fv&B*)i0q1k&;+g zOt8zMXGfvziZfM(vd??k64`Yr%tn^)Iy#ygahjgp`&jVo5G!%7UihK1P?dwOH(Z%JA*Q5WcgI ze*u^`A2gQIuy!wqm@oO6_xJ(awC5a?>W6HZI^LZYl**(Iv%us@#mF=KDN#9(cB+-p zHcQ#_pOzym1tZ9+=Oh@Fz|mh2;`&u3?S3r>?=)5pt#;s0ND|J8q$ry zsR~#lG4uP?=8Z!Bi4`ES%dKw$T7@sDp2+SToWJJ^rL8;C)Lc_vKnfz1sm1Q6cM_@1 zG~47J-ASK_F9gh~S~|H!D!|TcZ}F&}ztk+b<*iTASKPfnQrjR4rGpFhwnyq}=N(@D z4#6saVtLW{|2M|Guyfg7a*6@+>^R!i|K(9lC1cnL#~Z0?3J3QcIgx5I2h-H1A@ih2 z7Tj|;g>I?PioawBaM*`PMXs%iAeN>s<_f261wJ9}sR08WrPZk#>{)zrcpHTXr!d0c zyR|Dn>vsx6LCEhOtYEk{JsO-5pdn}ao_!+*`R0CfTSGNUJb`m!#eqpSOM$Tm`P>{e zn-CbFPCNK>ZTs8++S&~C&uZZOKca;x2Hsk@6L1g>(GwRe<_P8FcBm}teq{&1Ezf5& zd|#~F$cYCpZJ3*5{j8Cui%X>nvWWoK2nXz)DTtKfLXy7Z>26xQ}#$ z9~-%DbcIO1+^5v3cUT|DfB(3vf8#1BrvJ-GX7alqEB=*Z@~!J>QrjT)rQBp8P?N)N|X6Yo>g@>BZ6S{4I7|dV}^Ud$u@aGB0dX ziB8EXFUP?*pzWRS1;q+1rNIaO(|AapcbU!E+xV8UCp^ zGCa@f4NR*L0ZI;C`YE;jtT|DanN~2c6v&(Xi$n!r&%Ua<@G)UH3;PM{?`Wo17B{Ij zQZ*XAX-!I>6rL201y*(jabV~-ds_$hQY#E!{3@2o_P{>g$O;*~Aoh+Ush-w=Fk?Yp zYxpO9V9wdz;deReRd0!R4mYXjKlWy zK0RX)R6l54Xk%w~Y51@r7fI2_xbM6#(9H$Ly>#p*a1sW!5f(mjtK2t<3TS<DDnEL6`O=zA~xPwkJTGPB)lf{ExtaMJOvd zSIt&rN6wzKbKAVn%VOv-D^4LCxC;JX$v5TVso(E9e1=vn>| z_ZknE~vi; z1rW>{MoUR6>!AujVxeNCys>m}n61JFJ6i_kE2Q}qBgt#UI zzhPBtg!;)vjmm_(&CLkRjiUVy%+fhWpy1R{ELEG`zCeD9zoGOoW~I+pA3`>&l1@x{2F z@q;6tA>@+=FFpBSV&_C6OYhPcr!4-gyG68LUS4s>ejgLG# z-^cYMo*g?zKRlD_U{;AtNs}K-O@Zd#JD2>EfUL;>+ksQTPyguXGIZzA)9;idnF=V~ zG_(H!H+|;mZ%NqIbaCN92W%hk+lV8%64n3Pfn#swIHolzrFH^XP7?sYjEvS07EK6u zUF{}NtQR0#-B8{K{70wHM~`|}rdi!XNlfwWB$TCMs^M;o?@7wlwJ$sXp>f5P>6q+= ziaIzQ3_oxfa0m1-(wt}_s>IBEdmT{>wY>rQ+o;Zv*Ji75hti;EjYUvB3a<9yPYl*C z@0|zWTc9x2{JB}Ji*e?M0$xB-3ZQgRgX$}w4*F~AV=%}!>thOW<(@&b#H5|JS7Os& zjg%)Rr97NLEf|&t4su;>6}2}Dqd|7nvQm98`sir069uJsZWJG0DzlRUd^AW(ImCr< zb*K=c2<3Sqwj2_d1&5@pQ?{t~PZHAp#L1w9?F+jd>U@fvd8yrdT<6AHtXEM?4zN@; z@Wz>kA!;HN;ru1G&v>2=F=<{$P8qOvhjpp%*GJ2pi*+{m@wQjhVs#vTkJVz#N(r_O z^e=OWSwT?l@IUqZ0Wl&EfI|x;+)H?ETz6 zjh+3-ft+_rz>JlEmRBpcH>#kDP(M{Q*JQ`P>JvBv!AZG6YuyC#8CD$fs5R7Qr;SIh z&;ij5!Dp;i>}k^7T?y-h+gNn-hf6N!HOsS_u{>`(@<0lC7lMeB3JR6x!k#VZU0LVGFiqJUHR*+k-AhXAGl$9SaJj$B0r(}7wXZ9ZjLMv-kmr>en-YCyJEJqT_u} z1owHKFO%w~(-Wr*byJ?IMdd8%(NC-%bns`N1|SigHJ?@|;H!I-3dQg5QhL>0MKAlM z{9-9ZJa6nDPe(?+iS0u)>>cpE%W8LW5f<&|a~v!9q|a+*$g<-Q{~&T5-Pb4B2&W!L zf%yDCJw`_Ejj6^Nb;em^VmigZCQ@MK=2zOq>FLdb#d<|nY0N(CM4P%hd0KZoDpl<= zZP!zPj_Ps#@_0@VHWs${tZwbMLpXyrtv+fF{Ohk}E4{w> z3Me~tY?~m=qPV_;bNx0p^tr7ubfr(k>Zn<@B}kjav;5zLS@{})ikDE){gh9po%l1J zj`f60&@&iob>s5K8p*}s&h}UUts%zJ&o;|I1#%k2N4;SG(C?Gw^f`*+IaR+ zxYxCNNMH7Ah-{jWu|YanIe)elohhK7?UaG=Wa;9GJh}@WWxxh^I$4F&*_GOAJioxhVK3pc3TaAY>?J4IBk2 zxm;nKkSEw#*Wtr^UsX14>KerYR3&to6JRut86kRbTMqS%IIUrWzTGhu8p>Pa5xJ)F(E@9 zl7|_k(T3S|p+NtN19%MID}o=H`2YvqaMn&bE1Dt?R-3PH0nej)ZH}92i2cxbHsp!e zis5fcA#XAfizR6%GC^IATyX63+Wjh@O_@gH#P7;>CP1={Hohs~AXLM7eAWH5TZC2X z0XT5H*gV?;z(s+H)z$eHC}_;~ybnp-a&)PRU(booN?%#2-T9lhpyew_uWx8(U}$tU z!Jnyu(aXj2reFzK=Q`pG{&$MXgb;LTSs8Gx({XvA<8^aV_8 z612kW_P2%$gG-5L(pO+63w@1ryCL%DzNrtPJ7rOQ%h&#&zh2HQ!uPUn_;x%8(F9Mh zxEnt0ez?Ke5mdoh?WWDhtF{_&*6{Q5k<<%#;&ms|c|l$AxIirE=-*C(=O)Tv?xPR93fVrMlut{ygy!xg}U}+b82~cr{!%|Oi$=ve7 z+28K=C>`#-xi%)4{L4pBc-L> zV?{ZNT8#zaeZ{-H$*C#sU2Ms^I3m&_@(#cebCIPr2_dOYnb@l{90k2;`a*=Wr;QK_ zS@9iHV8b4$>s$9wk5u{qLO(qEi1NLAjbEE<(!xS~$<|GGLP2-WG!U5uKoFqR7Ej^m zqU&W;dUv8Wwe5x{FCT(g8B&rV212oNLSw=e`EtvT?`g6YD}{1`5O{G1N516 z@PE96KYCA;sneZlI1;kX;=7&cl-A~1wyb=AvUYaA8jYV!HV?izfMgq7;-_NExS)VcFwXE)i$VQR_V{@ zpFbQvYhKhwU)W!`NgN@wu4TSbm0?ialjjG&9`rVf*%(fwGSRgS{wv`^=rE=8;%maO z;)@qmhX0)a`hvA}dCn26*HYC#S`}HcnM97EjA_63K4hibX&o< z3Kt>rdsU3#N$w?F6f|``cAPyOuf_O4(&Uo-v--D>cXCTWVu|AKi^alGnCVU?8Z<*p zFQkn;961mQno&ooKi<3~5fQz9)_q6IHoG7c7yH&J*6NC|iw3g-nNBdlDEchE^q7Y196 zX?Q19m!#7kyNX?*%^|&MgT{QrJhyihxC&>|>=N%g8Q6A1;H(+gF0?FR=eWo)SR@ZI;dGYWb$BAWH1r!Bz7`u_dRz zynO7SDM(02=#zS>R<0R-AW{OdKSTQ*PEXlo2#DebU~uAmOH|1hFXLHtZK-<}#~!|a z`+Kz(?kw-LD8`*Ik*ajQS0UGn&?RM+xT*a7Fd7`x+Zg$3m5?E4r#$3tJWCT$xRg+Fi=g2Te;evQXK?SwJ11VO#xfy*FJFI9z-goh^ zd4U$R29#IrBrd5D1Hzi{+rqZNF?)lrbif0ZEOr%p{M-K2BGjLD$d2zXcJjy|K?9q&A|6Q{cf@y?UTe};2~3T)zj+|8VT(2OJGb`z zLCVw>s!*{T!s_CbH9E&6(V7AQ8XbfD?COTZx&e zndwrK(@y@(Vkl_qy}7V$;+&V)nF~EY%{(Rs{r5ELS3Z&3Cf)jPrKgjgFUG!M0%qX- z@LJy&+63Y-Tai70F<4_zk5|qR<=|x(K|}Fj<%ojW3(=Wg1Np(Uzz11~wwiXCK%Mpc zKW-GQ*~$VV7LiOCux7SY@A%@^>f)r4#uQ*QW=#N49Rnpz9We$(fU8gzCTSk50L-B} zS9&_4c4ON0LcDoCJxsfa0&98Y?N5mR9)h-@o_%t{C}g z@ig%6E)j9S3P93n4HL|eg{RnAjtq{NQneAXw#qe8xkQ_w6%+MyN4OCgctgZ_4bIi2 zc2AU|Y$lp{&G}$m-qBk-w@Iku9NkG0ZkS))w2aaF-dh+u_%IaAnxf}$yXn%S_f7a| z<4<%n53;)MlQdz<2`VEl%rp^ov~vG|5BpHRTPyP?v@gHc==3AYllV|EU0p6c(Yi_l zv}Cmdgi~-ts+L!aNTC++ktAzQamaDX>07-<#5%hGYXTHI@>0qQ$!|X5%o{ZE-`l z8zEZ#<&LNcyA>a+r}dcX!Qq14GM5oLrf5v@K5n`P!kVh1kYtt?HdRLcuP2jK!X$3E zRK>7UJ~9pC9dG@NwS|?hB=SM!;q&L0ZoR3X>*=>@_3UP$^+8EHn#?})h*R{Ez1<*I z&X7EMZw}B!4?rFrybV?{NXd?P7Rz`qu472FA|n3uab%+NI&wTevpqF8N044OQsn0o z3nMH8Yg~YUe9V9G7M`&84}4!X#1w@ zu883_!gH=0rjC$z%=M{ybM=;s)+p^3i-I^@tec7L@c8C>@8}Eh0(SD&*DYw%wZwgc z7{c_y%s&qAlqg+VNW~pUwE<9e+e6>1tqFpiEC*W@Gm|mV1n;>jNGAx{%*e8qHxDknx?UX%6XIsqL|~W64e{?r zZ(Qig1OWqBP9*H}%p>pMu=}6k%m8&0)sX|)ro?`b9T;k5@Y#0}>A+zp5Tl6^BFn^B z#ad#3wDHf@zCEBJ&ESbC`aU^_!aL?^j_eu`-SIsQV1%CiBb!$Uap#zGc*f-!|o@lNlbGTQ59>Gd{*ZO-z02H;LZ_16>sUYt?_R9zy~(a1FGgwe_yTee1S-Y^<%jjuDPH;o4!{!sqOkK^t`NBJj|@swFT4C-$lflz=& z5B->R`(&&X5ysjcCnXO3-Y1T;TE0ecwuha{y(V0SX?eC~tm1{eYatOk=dGFDuLR$W zkY=$4)e$XG(^m0KRA4+$Gmdqc{CbM2*f)(7np6Aqj=$&>UuX!=uHDQpvQ&pyp0D5h zx{NAiig|oB@q{}qek@1ZKLX0rV;6r*`R2HjYlAJmhArB%0-16*WI=`X;J;`vtN9S=(~gli3x6v7O4-f6) zCQwIvuis8-(GB4v)nE-iKQ`vui4HOSY8R>5=1k7E31C-xY0a?S8FUOI%OY3d<#iRg z&=p_`+2p*2$Yl>L2XX77S=EbUPa5&?1UMj+=Q@QowezvXG+@4UpoGPE7A{uSjTP}V zYs@Vtk~Ixm0a{R0ck;}SP*5gm$RI%=67d?34m1ZJvHD5t;Jjc_BIY9s{L_l2Ru9kt zj)QC{Jx@MN+J+J>u*Y?$LtR^;SC@hEDXD6E=9ad+h$g@?Gr*qEBnS+eOrJp2oduW| zV*yWS*ef?Jtj;9~3Cumhj6D3qXu@4wuBUl%Y0!D-wvX1?}LwO6@0Oo;^Xd<3=x3N7d0#iig{ziLSL{g z4yd8b?L~j0bfIwDz;lu_OdVWV%{^vh#yR~lK4(hRZL)gWnEA^8c|vUz=D z=XR@}jJ$e#Uj@QI_e(;fO;Td^JJnr_qYVSKn8tY5`sy^+fC8>3(I*_YOrZZle8jbFLUV-rp{`H80`x z(4>^5PjBZh7>7T zd)D^>3!PRqYxx~8fnLdAy zbuSY?7VE?j&6X1B(|fPfrWZDHTYh&dprU`{e0FTym)89i4@=ip3S9F@c_HIWhlh9; zRQcv@p7*1AgJX{S2oE(~lvU-5w_|a_rfq)P4 zRDQRJx0hSCst>}Gsrz$V16c9bES^t`+2?>4C#Eppx1^1VSK5pszbQoQ5asUxKr^L% zO~SbZ8$!L3rD+{N6z74{dG}VHGbulb?$+=%L<79Tb6)}a4GdOQxLuGzB}s9g`{}@v zS4-4ms59syg=m@)u~dF_Go&^LZ#~Grs!{qaq2Gkit}F*9qGv;`0Hfe2GeA&nIe_a@ zGW25+w(r6jIfzOpvz5%`Zoag>u+*lcw6qieSQ+Yc7HGrV)0fPj>uvb@<#{T77v~b< zs=oM@34AnxUk$NF&|d9iu@?MH*=kr8|Yu2+|D#qmk~8 z-@eZ|&v}0T!gingzCN$(9f)Culqv3U*OE4wgX$zxUG|FhftS0nG<_eHw2Xv4559N~sDf->o*ZZ)%5Hln#&)(BkirUM2tFi@o6((28tubhc zSAH$#T_PTDRdTIvG}geuq#T|F&BKr%>AJKVi`Bx{q}9)|W-&fbT&gy7k%D4Is-l{l2zI$%tEm(((^89?}VLZH@RP4%xg~FDzC&2RkSLu#&vOFWFAiok35sFao@0MD)i)El?V_{6%g??2aju)k)<@ zRT9l*WjcK@ul4Wb0j-kdxRq$3{K*&x|2={9O2)ufKQWtw+<)=T!YyC0!IhjZXrplI z9Ayh?GQxx9E*b)VDB)q2xZij)VBY$z8A}(04JlOb$`JpLAPxhs;FF1Bxv&xJhwc@6 z;Xn(>_E=9WO2*l&El|gswN|(1k<&gTzObG7i#zwp_i$7<*eczetO>232CMXJf`FgY z$ADW#4^a*3*}R(Zm*>nSFNGTO{33Nl-ave~jCJ|CbB3xyx=?DntRXJz zIi=RS*R=p7^R>BXk%E40nANP_I%1hHfT`;;waJd+qiV76;JASpv)d%c3Z=ss0=$ zO9i$lO8f@--cSnxVZ=;GuzLgs^Qs6moZF%>%ct(;h zgTxGA-YC%04tE!sO}0;bBxa^#>xb+wqRlPgG2Um7=jF-&qa<@NJJ{kh$PQ`!5=(o% z$!%~vd{BE_v|_|^?O9)c7(r@if{Q)pu-j9QMdtSB+`uu0o{Ps%LfP$iUV(gk`MbHd zh!)-5n#=?(y85&=H_H4ve5k!ewY+=4aMhrJI`3ewN9x1B+8}w!#x>W3hq)G4z(vOG z?Q2diC*ua?tAj1#z(BP|KgV5WzpQAj3N68bXMS~mT8BZbR z-(*Ws_D}B#K5yrm^}c7=V>uV}c-gQ{z40U}8p5UZOyQjVTdZ41?gKPii@VVZv}IXnVWa(%o7i3-}=L>vI&w} zSopb=>p01MDR?L{mk1`qyVJWXm4KVj-+~7T)-fzT`OqTnvEgR|PNKVWLTF!JX-Lv{ zO!cX~dLZ>to6nahk?(&Y)I5R9qSjH@RCJpsSu)CIeyj3#E+QagRFtdN_l*h6cczjr z=@e0H7F%jG&xWVKnJcw3v{5~QNs%t@RYaUPZbZyYCLCvY_L)(hV*av1xB9ht`=B$` z&&7}RFcQvBao_cdcnQ>p`8k9x=&i8k12|>eTjqt!n_vI@sKTB6v&-ZV3v-%Sgy$Kw zEB_=z#+@%7*zIO7{8|{t#9o{{d6)@(eTGi$>gy9O11d)+s2?V&Mko5HWkmV2*`E$G z6lOztP`h=*A2X7!Ba35$f4{4sFR&mR+Bc6`KrR%7&xyPf7l<{6V3xlOh1rVzdE?m? z@P0rgpCX@nM?3^zG{4dPl(~QF|2j5Tj8gYk!~3K z_}r0G^Nv{IE_la%jM(zDThW>B)U=K@iwt{3(U9QSkSXwooM6d~#CgGvaXzRq6c~Xa zv5E1LDFJ%^*elMbJ)YKu~^77lUoXQGiQxa4Hu zm9AJfgz?ApS`gK#S8)Gj$S@IT0!ODuFK1Fvc6i>yrlSjZg9Gf4nl#ywkTp^2ib6>Gj1;c|M`i}TZS@!qM_T< zzv*6!jNp)31ge(`wVKlBn6Nj}z14ZJ%WS8-bSG{v&NQ(r9f3bvjwZ0Z$?YSp17_4R zGV;j>RD5NF?RKO&J=&VKfAHqzozPZkA7WctP_^%3!x=R7*RmYC}+OBWRevng#}2`d>u`%*e)b#DGK zT*iDDHGEN=NeVunZM)0N^C7%v2Z6%7PZ=3Z-Fiq?mAjsxF_`0xgjk760&;PKN^h{u z!=J>SbCdp6&4-`BP_A&+oI-Jo0@-Wd0oHEV-r7 zP_#wM%9%jxpuqgaQsm*1w^sAoy4o{|GRgQ6bfdkzYoa=;^|Xx_oQZB89SKgd;Nn4y8Xa1FRe?DX z&2bYsv^*)P$&b+AkHIohSE`enOIL;D2~;Xk-=B zuN#W#;UMs#^fx>?o%2|(#{P}$`Q1m^eCa^lVsn#9JW_^xU8YCtp6(>ThwmBcGMhSz z3Q0iCNdeX|-0;UWVMPyv0Y zbHf!>k-4%@f3_^xKY!Z*$-o-I889pa<18l73*X}I;9lD~aed{zNSjO%pU^V06lPa3 zG+>a03SDdiEQ{>q56J0_O)3_!8rcaAT)TTP?x(fk)nua}@A_mcrqNusN*-9NJk_Y^ z2-aQV*mo+r227VFEZ7nspLiAxHTg3eXSmsg#zBeXg*2?;Z-kA8Y{V}KVUvTstNkJ#ju)kEX*{uEA)B>@GmtoiGWXRm6yrIesR>cQRtJ}W3Q-RWxPJ= z`r-_TcFq?+qT*wy{b7e1ZO+Vq&4jCO*S=l}K4KHRA6EX9L~MN<^xD#_dFtbbhYRv= zE81~j0VhZzrZ2X-_MoE=Yo93n1S?LGG#e(~KWI7a%u!aJ*UyXHHm zJ*SJ2K3%q|pYVF=T2eYU!wF}@K%6h;!vo|zSZ(rXNa0E3*7KZs$GAX5;1ecR0PZx} zkF0j?EPP2C{?7H%D?q zAA)ILeAr%YnC>qFQz+{|> z!8rT%`P>cA@X~5kx{i$QTi!#@LXZ|q1u}}^gwF2+A&cWtY>#K~y$92Qd(R3SM`dED z@K?z#(~aZ#Pzhk`D(_XkG)<@C4KVL}-lN6a8~9F zPXg<$3xqSb1trY~rLqd1MHIGoruk{6z3Y-2!G!Q!@oxhN-(BBpWUMSKWE|MoihvMz z7uBCXD*>DvkN+Z$oCNgJB03?bL2uI;79c zGB!rSmjNd$1*DGsl|)xXYy=h)!%^G-*Dqp~!aoyrkzgR4yN>R=YS3M-%KL_DN!!MH zES~;8eLb%I>pJPu{)hEJizl5~(*>f^TRi=o`)`{sx{IHQiN`r1z=HsyR}uF6SI`xA z(8=@5=4f+=3D=pbN`!g!0I(4cCMhbkMR0x<8{>E%5*tymp3J>RzaZguT_w_&d|j)Z zsd8N{)Ih}ktwlg#>||g%8dx_U`h~KQNmTm=Cv|xD+@@X)-!^Lq1$!*n;Vx*`^nIKVY8ej@ z!Nr$ie22{JdE)=lz)SR`&D8$!nwh~?S^&qS5}$9*j;f^D^!>7OXkS-|xB~LKbYa~z zX{hOqoG_n?updk-@uT4Qg}W4Q4}Ij{e$UErAv4f z{K$euCF}wPnu`Q3Ei`}(>Jy^|!oG>);# zOI|OI=X);^P@Vp`yKk$Fc#MrlyFIN}6pEzaDNC;8*EFau`qBLr4eQk%7A)B=7$?2v zwL#d~eAaZKy_D^k)$yC?at`A;kV_FLWpiC0*#vjJkfp2D09c2NJb*HQjlF-ggQqbN z)dYm%%X5FTz~|K8pL~vw_5UrhrL7Fvw#G*=CApE9&25RR*Q*ymQ@`RUKyw|SH9h!S zO*@HjE8g1piQswI-B3}CtM}_COQ~`V(}d*q9pNqpgC8^@Pc^^xISkT-fWJNe@cfA7 zMlaFvgka5{#Nequ1q|LUL|x{UlP**_V{+3ksAUO{zfSK#Ri$h$2i+ZLQsR4ep|W{L z^1(P=KRmJ3mi<(PtR$fpRd3&B91(Jr{_g1&#pg;*0*|hYJ>BRaiXug?|IL6fJ^ySkxEnXlRp58L^WA zbIoIter@}ZUPqTs1GqJ#b7R-iRH5m+G-QIv2?JW|Pj4`SUy{pyZc1W<3Hi< zpdP|KDSMAZk8|^MJF71jaRxnLx`?N$q!9vnTM+^0Fd4u-6*G_Cd4Cdcea@U3f}{RR zhh+UYXqB3GP_lfgWUtOEl$d~hMwZLKt11#v z40z!`20Si(Ri7sgc9!kF!<;wcjSA)tJoL5x^!u`Cr}p&;u&X0dZg1kkPw_|A?Kf$y z)WX^(*T=d#JRuYT-e7z_w!ufZM6mo!=Jg`&vyppd%m$bmpwCJ^K$?=2(yf4=j&fxvUo9gf4GJ$qbJ*-$SEqH>1sZ^tzf^W+ z159@L;T5nsQL=uJ16a=A1`FbdW@#WO<`sS?4Jyd z)5v~v?iU>Ag<+bzJ*)8>&d`{sWi&UBvI!pO%>#u0 zG79$P3u+|4j2V24rE?Xdh!eaBi|8*hW>1DVUlPx2ydCp#r}oQzK1+7aUNV7p^AcDj zyE&oWWgbotxwad2d(QTr?iN$y_vlB;Gad76&Yd@Tbv9M$;nO93mD*eLAX#*K48Wpd zuK>lT?uwsY$v=3Xh&)GxhE9I|G)jj1_Uzu3bRD)<3zVIv_=Dc{wp%y`);Bp5YjWV4;Q!s;{_m8-_ z#Y&cluwh4O_yNZGM|H!i*8kYDiwN+Wl4*0&fDOy)6>2!Va4Y^=*rpfWDN_o4{F4UD~ke+v_fES%uk#bSZ@FE&`17ZPt0lGNP z^94A#DJo;quuD`@TK+exWFO!p0vP>AgXTOs1Y)}a=_dBNBz09Y0V`%LTqr?12AB#o z{m`EXz?LXJTHB<~1^a$u3p&Hz81=msC9?h56%A+`6Zn1FJJD~7l=r748g;DMRGxoSMcJ0%R zA~_RN>!_MgI~=%#ULq<>H|qtY$K&=cNK*Tl=(cgDqw{|q%ycEz6d)#ld8nSF2NmEu{oKnA+`B*v*Yga%n&~;tz z<+%{Xf%=^3*GJXkpRL4J$e@k;oRv#6)sY~6u|A*GHGsDvtl~QaM~q_Ms^*#k4A#f% z_&$y1%@$Bh?gkh{4a!Z}kCkdH$poW4cux(A>%*rF(g#(4ZM;zvUiMo@%eGnSQ0rDQL7esWKSCGgow zPqbnUWNURag7N+<+~I)wzyt8c9)Bu};FUa*{35cP(U)+oop0JJ-VIExN8NVjcEf#* zTWl|XIoe!JiBqzhhm?P=bCzF|itfpIdw=+DL8_`8vI*J8?@)$>wX zzFbbL2Y^?8!0aX_SAo74;!tDAzXgql%gp^&K8;i;mdiSl5gV62e|>&Z z;y_Lld`a|#VYey32~UKXusw)>9tw!Oouls?%RQyGDjBlk41!>l;U|Pnnw{!L)$bks zZLY1#D<}}lQ4VT7o2yo8O`z?-BJ}iS`&<$=PZehBxEwApHPeSK9GlERr0NYC?NEqQ?CYHqE%?AdIyWO{XE46 zrg7|CeS&44>z8lnJRQv$qx#&_T!5%R*BL5nI#4s%0#Y)=YfF1Gk&?5QK}2UP-vak( z=6Pmd@W%~!d0i_+cQbN#bTyr`pxl@IZDM2f$biE$*v5q?duPXoiW^hg^G98s1NGrQ45H_@9IqgwtgN#oTENlLfB6X+ts z@@kv`k3}~3Ueved0(znWz^=xxU6YPppHHMFEx%M$@5JZbH$F>=+?0wAz`z6S2X(Ey zDLAzy5}?8D3krUHJ!}J^NTFev%}tCTR$4V#p|i&eIo1_bn7yog^X%duN`OyH^qKQe zzF(b&PqS}ZhItcVF@W*Y23WBn5~mfLc>e=;pVh^S4@&zYuLakErmZ+NduYSaorGXn z8&$s{!1>8VGj4*uerMbeZ#Ca&19u;RL(81oIFtj63hkNj(qf`Xu!_+=7Ik<=nN0xM z*&Mnmw!P+?Sb3$gY|G62&_snkg-l}M>ho-3Aav{_aH77c7cUwP6U}n&{;q2x%VHT` zg)whBK1*ZT{PX!U#*Ly?+^$BsH4T8lRZEEt;6l6?zABN^O;R65cbURoFKVrjl^ql@ zklH5AFlS;+867DlC*jlPlM{Nx5iv^6-VgA9e^VSfn@+QP{z} zC{#G5@>Fi~mFL`aB7c33VxntE}F*D4v&1F+8KkR%1B# zLfK@8yva2O!$0OYse4m3I@LJ`*RxA5;m<#yzADSWFUbVm^LPd;W;VO5lRi%yknVSm zE>}N1_l5jyY*Lf&-7tt3}d|KJFn)qn$RX$e$w}Ds^4M-K|wrnuSel|$;O2};*!fB)@ol0veY2a&w1ts zI*x^NqGCObkx+oR=mQggX}DsMZCJ<<14)fRCxIU3hgr6UIWaztisE&~xOc!Tnf?wI z@f}fz<_ae};*MnuL>hr0dZ{!uA&H$M&~U+EfF;laZH!G=$yM4)dNv;`U|S0y%n_g< zAtVm31J#GtZQz-3^}oM8G2mo0)M20@HJ-r++_S(uX;mcAA-?>GBT2(>+^!0zpwk#; z?fOAwNxwSI>j|TJwtt~FW$eU5&VQ@ulLLplq7_YqH7g$sTb(}q!%1L;bKX&UNWq6& z@I|VEgLR|FFKu6vPg~yN#7a!rXAmKr7LM}c+gPy5+!iZxoD)r@4l;$Fk3j`eFDe4T z<;lPNFT-m9*D-g$GyU2g?k*!Dm?ctzYO90U;r`ow@syQ)p3yMX!Tbcwf3ss5g7%?;-RgA+*%;Q@wBi!~x^doS`*Tq%5+pwMB*AJYBZ}@M{IMl7#tM--n z64O(YWF+Gr=|xYraz^#o9&k1K3!UZ9)=6XRf@2=>ThKT^UUBx ze8!W2AUraS4p%ZsWP5ueYKhc-fl#dXZ9X^~3=tpZrNVt|6zzATyVTjaDA~S>vn=$i zG9*7h1V>Nq5E)o~pTWr<4m}($OyrA3ChKJ-X7|pi?w|b;=zQ`!6(r&ZEXH(Ok55O$ zJw67JeEGeJej0XMNx1Dz&g@Ko+2_h?{&|#SVuobR0LQi9V2Atp#8WY0ql(Vf#39|^ z)Yw^w69-d!eAAW9VqJUjf<~2}*eweMfT%%(!VFlseiC-iuRR3e(q0_M@wfg%<82fG zB`o`sO#sLOL84sLI`u;juFxiEB;1aX5P;%h;xj~ur~?UN=Aw7xo0yWs zHGIY~y1fjnW69B~WhujNjB5#Ql<@MB!=#-9G=bWr)Ae`dMbWA)T_J~7cj%EH&efp} zhp$UGsAjLd01og|wgvfLQ9yUv4^1wsAt)W0jm_EC@IkBhfj-#Wmjv>vVd0RZR6BWV zIHz*d20txD$YBmql=Afw?Jcda3ms1zICU1yq%;bjmdkOan(?}cC`=uykt0;VRp$4SjNRvLbFeU1lo{wcT)CT>EQO13++{k_Io7TR& z7LEo+1gx|NS}uJ;P|@}lML)lU?y?eh*pa{1!mPf5?z-X<9gR}F8uV>MxE#S2rY1zt z%Ql<7YAOASeI9NAYz#lOnNOya+v5#@fVmcS==~mvOBz-C3leU;a>?oJZ`BG$rIWpL zJ0exBG+jHd3PM}BWq-Z;8$%<_Kd*`unsPn;wqvn2H)H-Jbn7-{{&v^53~J@B{W;=6 zbH_RFRqoJu`Obq)yNb--pz-J1*&WNB=^Zu??%U_LSo+%=jDmw;%Me$9SCPO1LD!Nx zDTDb@Z}&j4yWXf1cLvKiXdGl+4H!L)T!vBZeA?jPOl&Ox=YvPgLe#3BMIFdVA%jF1#sGqDThSXa&Lfhv#ioVp!>+yXTOUbif_VGNeu9%Z$ndRJ~~|4;1yX|E<+M0I@R^| z=4C+mF)8H4Z`@3Zh9LU#SAy55eKo7@t019qaYw@Dn66ft9)Tj`Xi+uD{@Oz4pNZH&o}= ztOCkF11-nqC0PN8O>;FCX~WAOt1*_66QLQS4_|9(=0|F(huNFhcQ}#$L^*Svw4UWz z@vm|a!f~79DNO$yZJk%7)4u~p8>vxV>5Yf0mEaevo0PMa#{FKblC_zNl@*7FT3Gu40s_%L@Vx|aS5kmREFhZqZ!IzU}uO=ak0 z-!S_CX9+jb(I|ZebS$4pgXeiCKep@vJYsJ6xE@#J8z3FbGG~6dnYLB?Xrhxg&BYS) zmDYFT^C9(OBX^fiD)6gw&q%BBRm<$nUv~%fJ8XtCeREmcHn1F7!mfXIX_nf{iMLCP z;SjQy7_`JlO73>UANGZ=F-DD<{Y7!I%HGQV4BzOX9I!WWpZN#o``o;<@*G@eg@~ro zqv5rFTx-$)PBOBUZgjV(IC%#76{RkXM)*IYP8h4>;re>{YBlem@=wl`-Uuvq(bTv0 zAH~eX_389;O+rj1cevFWu-xg7-sj^V`<6;f`uD!aCpnXW$Uu~bL7~yF3ivQj87T8; zcG5=qH(iPZdW7>LwDQx!_-x3SZE-Xi$Snw-l03$jA9)n1Q<>#Xp-oW(rS{lobE3$n zD1Gt8fH3&}rwR`GMhS)MZMPGSCSJ%?1O89`&%>urc{R2BATlw|11>m$j5z|9x`7+ig(;a%oFqKDWH%Rm%MVpIAL zReWeoAUMA`FrStqbut7X4I;uR6$3PDxPZ5NB|EGdc^C2l-!f>1mW?d#PNDYVXN*YuTAkF_b*52Z{z zTeHY~CPzp6R*QcVMU=m{-5p--s+lGw3(Jw!zPVpCfq1~*qCMxmQ*m`VSitpE70lLZ z`ei1Xi618(iGzB@D=XwJrXP zvMqW&jXJ<_k$0@QayfkW-hhpUUf-la4?b>b&IOGGwm^Kg*#FF1#mp_+gf!a#rB3b| zZD;_=q8DE0{x)w42XS+v0?5@e8UJARErFXl>LN)EINtY?QWQm18m{`lN#`_PRwJkj zQE!6YBl?46%cz2ig{Q-toXi(f4MA=<`X2tA*(+tE@>te6Fd^bcf!jCr4+hc+q80`Iy-xeE5II;c8L|xc!Ax=&ezWw<$Q>k>+6-b zO%oLfQoL+L*5V%FRzcB8$*wFBte2UGprqXO7oA>?OlYk!LN_&traz7kc6$jj{_55g zb1OVs^$$Oim}hB3Ja!^tQ#d*;e)$6j?*Mgo4n{T>_r#noG#u(Qj-Hn9oY2i_HJ=ka z130c|MAY&eP)_&;d`;IyqDN4-TCTt9Z-^Z)u=#2ea%LA&&Aj{vpBEpYnn?t$W%(!5 z;mUV8Kn&Y+Ff6JrMja{p5VzXyxxS#Em{iMSLw<+)QkNY1NWEHk1(Rd~j>QxCZE%6= zbIO;~&r(``Fj-0tOkqDZVcWc`Kt4g8Lu*P0r{5J7u~p5lRE3TH`uLc}^}yu!q1=9N zemQE;BnX}4{K4{^O@O=o`8DrU+rXRBu zFqU753?lpxW5vLDzg?@~wCC%h$i?-Ei;jD4pJ^Mf#H48=%!-%}=s=DvFFBpvX&v|1 z$dL;Dx1bRCq6OO%_jY|}B~K$;1rpvW&9Es5nj0-%vYxLdi=UwsOIYLAi*&Mmtg*ZT zoYUwFJ1@TsU~fE{Z++FYkk(-$y`X2H&I2fCWaMff^jit>#|3K1zC6JKl;dt#Dy3pr z)eL-f1?mYlQRF#b99tm-_bp!l=EC6B2V8{%GXiJ2+VDAZY&XbOm!IkYKaR~JT2s6A z@2&^}Dp5Ku?uh@*0`RNLiGXZRCR!GBch8>A83N%;=#wJJg5{$-VSuw4;E)Jfz&~vw zn0<)7VZzrf*MLr6z4_2l_#+vyDLpuV z>6+4=^WM398(>co;Hp~q*ha7g*$VH?;Y8~E6=n0o(TlRJO@5h2qG7`D)w5_N!$M4Jbl}S*u`r=il7qNc86^On>2QemU&+UC-|= z3#Lfw{n*p6Dp>zp2X?}Q;nOph6 zvZ#11e0$_3_7QoJwC_)R>%yfbxg&DZG1j<23^Dzj^#pksjX0NLc*HrEcl&qH>>}wC z9Ub`SB*`0@BLO)k!LUIn1T;VFrw7bX$J`j4=n;Oh1dQ+jwqf4hS7Dg=w96f+j4FAc zRpMl4sflhQkdNT%;XB^q z$p&!YS|vQ|D<7ekjzvSIug0$&yd$Zab_306Axt}$5K}K#SSKzpFxy%C1$wv>ULh7wYJRA*xTwUe*1=bc|_Yg9qCvxmLfBA$~rg4 zu3e$*;mHuIZxVn7Ya(c*;u#II$M3Yew@fw3O`Yi+G(s1l?d9g4T_ehlWiqY^_W zrHB7r=t~96Nx+wG2Ze%;k5^>~KP>JXq6cr0kj)kK(*(EqVLdH{la{ur`z$v&E+!mn z1`$ASPwMSaq#KodM*8`!Ftb~S+6fi;5XqAqM0p%EZOZjGg^f(89Z+aEO|02jo%!?k zn2kSr)n57z)dba~lMHpiav=Vu`DdFDTRlK(a+1+nlGa!4^b%+v!#ZHUGYN8+w2_#5>S3CpV2zjch>j|G^;^ard-VqlE4Mh5okcCL zBlAT~ATt}KAD=I+78&%?& zqZkzVt;T&hVGF3*AN9Xr$a*d@|NjR=Pq-3sa<*w;^!sb67pMTj8;ZD3sRkPP;9_SW zR8kq}hG|N91v)?ca)7IeQXlS%!;F>_-}jMC0E#=4BSuMJ#(G0s?^sIMVC-{jXa;>Q z7}_~O7#e+blW+OEyAq}(K=4xkPdF9A=t-7Ntt8K(Wz(azWh&`?j>Xl8jbo$bmyf4T;?NE1^(Sp&i!{2yF}16wp(At&G#dt=4jsMC7wT}>t3uT_eh;H{LbwN- zqERGLms;`9|Lydudqc`;^srpT?|+kdE!H$D1TKDc0tW2Wv{}~fy^L5HdvWUUhCG!8 z+flctMR%{NcXEF()HEApa`$&2ks(?x2Ab9k##qqJLT!^YRlAO{O1(281XQOiN<{do ztewuS?Sx++S6JusKIe3Kv<`Sh@LD-f<_{4kAt%ow=O>U!s{X^D z`Fbi~O}}E=KFC3=QN`f8_*%dHZn?WaAH(S@zX9y>SS=Sn#iF9FKx_>6liMHI@egwxGMH!`q73`xsUYf?WR*rB`OWtypJ$+JI|tiPU8dCiz{x< zEL9;jHT(L4O@9dYBP_GZB5XOt^tJ0@WhOtB?Un+ucC46-x#YXdKHWNEl#rkcB_c|5 z4;gfau;ERytT^u>r@J*Wa*fDJ#PRD>fDgf^C);dS1L4OG@oQvQQDyMMo(^Z0)RW!4 z{K~*zZ}P_i&)|2Ky!|zRyIAAXFX~U*l2^^|Qv{XwVT!Y(^~w&Ndm0N=s6yu4%Kh%D zLB}MH-QHMIOqf2>=b^)F{GR#kBY%(ZX) z(CUrpb%XlC2GMc)98`b6noLEz)Ec+q!k?F>tYZvnf73$O0#P&a+)V!QXOB6@he4zh zl+=Jm%J#3tbMGf=h1pa4_6!4X#I@jqn{pe3LyHnAx*tvJ7$2OyNb;c_<#^V}-w4Y< zv{$U{CnQx@>~KW$^ZmfD_k#UKO>n5ABF2e4cmGlv@ROPX)5IWpQ7$adL~8QuE{l^) z{(qbzYZ}C{={6%i`5WP_$KR%UBKGb2n zvaH=4>(w9AITbAKSl_JbH3=@Tv}I>kU$P768zA4nzWkB&n>y*BB&j`K!1E;ovMf6m z%R}5~(w&udD9ami>=xT-u>HVu0&t%PY0XV_1HMNAH4T80SNN+^>BRQ*-(D_IA@n-+ zrCp-(C0%bZF^QJ~(wu03+d*A55sN@mJ;1YUFn(^`gBx4WVR5?!aCOh#}Iq_or5fELW~WfK+a6nZx{6i>xcVy+Nd4 zKMt;2&L7YmXaE>pEQxBi03ksuEjl9Dy0rT;B6o#}_Tzv{HKTl%la zehP)EP&-hj&9=QK{M%^Er9MBZT`XitbnhC~OI`h$`|UQt)fM-m|EWde<%jcp(gRaQ zh<^=f_5MfHFdhhLnqnbkF-A|hh}P6mw&H@ozv1VQA$t=3`=4DjbP+GI*u)vmzI_9j zoT=ImMA;PdQW8iii%Om6)!pY2yoi^A6;M*`#X_$`^i1GD2g|<^qLanPrYB5qLepoc zhU8JF!LS5s6WSBW&(J>TQRB=GX(ZVOn1_L&Bdne&^6bQY=%jWlR?@AHVvhH88O>xj zaGk+fB?76ft^Eg(19*x#x>s)kZQV1oSA!nOb|tL=L_XeeL^#<0BRemk&oS#NGF~ z@uC)d9gREapHc^Q?JWRtLx((CIGipuM&tLN9vc{VeLGi^`-?h`ityJjYLNT8g$`@A zmPAq0_srL^ToT(qOF=_7rN$3-wzP2$+e4t=jep&g{-x-&<$HjFXPUHGso^n!vmN(J z1NKs`9nW-;e1+TN^5nBE`|5w~NS6|AGC%cIle&xRO)aSL7y%5S4S`OpO?)%pJaAEE z{)ZOx@rn@N1Ku6X2b|m%sgyq#>|7m&9kWH1K?nA~9|P}Re`wJSkv9IUwLFj7bwzS zrU@#qIkC&rC99}OQwp1nW}|u`_dhti0DP}I#`@2LYrXo_^!kTA)vU7Oe zph4doPp$u+&669x?FG`V+2Mr#?V~Im4vM zvQtx9yZgDyHXc4MG9zP?Tux3-e!?U7SCJ(<{DkMiqY5vb#oov!9ndmmD;(g0h2-Ml z$fTr8)u~lsbRf`JQa$}<1|0Olk&Zjm4}~OwZJnK)2+uP)Vfzd*Q(B^-dw5HkSTsZL zyi8?*PT$CN8-rRU8aS*__s(WbEx4Nh6-~{z6Z#Je?ScL*jA`X+4j~SUI{^k&fBhti zFPbm%95Of@92uLq2eNpp!6U=+AponWM`Gx4Ll!EN=~W;XCtRe$KN)!IhMP+NrtTGd zji=GHHL5{B6(Dl(g3K@>Ic9WQxYTBw*D$VbjhKqfABA=L^i2e8?YP$6vWHUCgj82v z_ECrTlUTD@Ggv4X@%LiR3h(tO)FJk(5G;veG$$9_r;4qJWMf@QCkFVpLNwtg9G_W_ zu@l9_^aB%hUh#JaZD!NO8zUT?PXC>SUESOqpra<^3JtF!9`Q%f{*Q|PZBg8(LEQyt zwgyFk(c}*7qh~E>K~4hi_Q=$}et`=R_S4|~ditYvr`(o68Oi4WklUuq2j+%>v z382R{-)`Fg0db0*{JCqsHtJ=kYgMooRD2=*xp2^z4oqaL@95YV#yy{Rmr3M~cos-` zT>?!38vgbfi`I$xw>4+cs!-$OeA4t3gb_xVsL?c-DN=g>!^L? z7bd=8-&uwK{OM*Y!YsSrp!a2nxncBIOE&Hg4IF^|s_(==;|I@Hg$?hccCqWFnMA<{ z)FY3+eg!l_`-lmfZ@^No)NL1s_wyB8t+n3Ln#k`3-_EFHf++7!hqxd&fQfEB24T*E zyXS|m%QW+bJCg_88cL7j@yx~Hn=RZY!WLMLa3Jkk3k$Ynk9&oIh3;a|5pL)XSH_Pg zm-O8|AqNFg|fZG5>;Jlzj9XrwZeMr7Q z52&Es>FrPIES)4?PO4yCD!-ZV*w*-84_1#QbVv4*$+mXQjGQU`vhmpbW#eoURap(NAF)o3( zb+B&ETyA^Ge3Kxl_@AuLX8Y43f0@nj>m!wnZ{IP5QOr_rqD+bZ0+UceHwsM+5}W$LO26Py|R&Y6&f!m3h3&FYks_W z*#H{o1N%A}6Ze}s1yI~iOI;8_^`38#;Ns`<9DKQOFtD(Pn4t~D-}DxjA?qmattREj zCquU`HC$ik5H;YQ|39L>I;`pU4R;%i8Y!}Yq@tk2KtMWGKw3p|#ApOYN#|%0DJcPI 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,e%vF6AfCnb8}ugo|`ct1RHI_t8Ri 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∓5$Ff(xPS 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 _7~7;ZMlbW>8l&{lr^Dej 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 diff --git a/_versions/2.7/guides/images/reactive-guide-code.png b/_versions/2.7/guides/images/reactive-guide-code.png deleted file mode 100644 index 84fb2bbe61d6f6e41b04f12a641146e5195ead6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352108 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

    a(Lh#^^J`hJebs>p8s2$KM(v8rNL@ zG*dW@^+dT}xNC;=C`@p zLBx%_(JmkQ#YZ!xZoKSi9gn`Z6nadQcN8XWL^NGYpi`j&5|=Dd-((XhomyYHWx@T-DBoW)Xag&aCouJeAkZ9sMg zVz>6A#DcO>^aFiX&7%C8x#MeO{uQsAfzt=Cz=W&#N|4_?F^ z9Cb5g%HJM9({M@QkartrEKVNmc?I|mpE&gLey=GSb!fo;aJb-dz|0qbV<3{q`!q!C zm21Iq;=wbCsjZcmpsfON)MwSY6>n7owfNU=V#da=8HPfGCJ&Jjw-3ODO1)Las)&dA>l=?B7YCQz|QRU zV~g5XZQ>9Ne4oR8;QlPAeR1Mp5`w+jT32^xKE(7b-&q z`kiBbvS)meTf-QEkFL9`L+I!EnI_g$cZ}aq6UM*8)0Z;)vbLsy31E}6;=Fxs=YDud)iGJ2u5Q)dROB#o@g?H)whyopS&4kn88>fkw z%B5mpQeWj{W82Q(Odk#6P1IxsvAwG>u}lstkNWxt9t#crW;m*a!7%lTwy?7EE&m0H zXvh!UFu2Yz_r0Tj=@jJp#<&+eu+(jtc5gJ{RiCy?fS{>A6d9ZQA-0p@UCbP2cx?zz zm=~%=DkJV`%NH0{Cqpxf^?MQjWmC)i>vY3EY$PgHyzdP?8>>FK{A_9Lp3@{`J}pmx z+#mfhQeD<`dghsIBQ?9EuEHr)g{oxVr$PGHQFEYQCHsEtquR~nXG&r+ZeI6@oUt+; zHE)cchBU;QL3s*WMt1uy?p#3-RYF^h=1?T2&@k5KyZx(p*z)Kh{QdY*|JY9bZb?+D z@RY^fZ@R#Q@k4Euzrfo|M6>^91>+v|3M)qUo!XJ<)P6kFb9_0fGPuEU`z4PNIW zbjR8Y(_WM<=4*1+qiXwCh<3b}$mwzg`TRn^4UaZE3@_q`?XY`uz-RfG*tZ&h+*9$a za^>^l1Co}4BaL%Zn*daJTkMrI>F-3d`(GNST>)Q3+V;xcbG|T|q8|F#*sd;brbiyHgV*<#G$pHCmr=i+x*PR| zh$!?{gsvny2rTQ!oe*`(G-aSU(67K*h z(J15SV8(^=#Pd#kVe~K4eAywDx;+AdcU5*;r4ymgqWz9KZBjIuuU?KN-x~s`H9U>x zsDJWS^8rQ_$>t}Z_*qNJ`xhRfc z3M?<>#tD?u^52BW=>4qbh(57oKG!q=fcoJN$o+ez$- zADB2qh#lC8EiC^~z|z9~4bNu!+3Yogw$Oz42Mb^pdWhYAxT3oHQDD+qw-OUGOP3nBddu7;LXr{yF5I^;jJo32^Qx==18_i( zzj&d6WVBH)VtF5RsO{V^Z=;rySGs`PuVh zbewd#c!E)~nnw&^?aQOJh}GqeANk24-+I5K1-sY2@h5f1-ebI&-Sn=}ebZ0;j8C|Y zL(M`|myg!Zb>IGT?{pVGwpr$9+_@W$g<9vl6|27Ejc+-7CSSi?0+A2Ui)gsxZY>Y1 zm&ZVRl*Z{Uz2IRj{^~YPFdDC7c7`6QJM{RY0lu-wx0W^bm44K2**i5)Zqwa#+)?+2 z?|Am9HyMFeBt)X0vLBOIaefit%(NhwGV9; zpJ5V`iHEtD`hG+>2^PImRGDr%ETCYYA*4W`BgSzQYO#kL zR0=-(NJ2nc>l)v>S$wdtxf*Yd0sUWXhL1ul8LkBIkF$A~>2GAAU!A+w>>9mktEsF1 zgI0~U zclX~S&ES)k1tCImRNPx_M(2++}qv@VYBhvE&=P|OZ8i3 zufO(JnQrg%NN@v_R(Dn)wONoc(*VapZNnInv&uekJKS`qP)3S=Xvx=Xw`GP9d)^Ep zO)-7FwZxR6*3n|wX`BU5upN~_8#yu(_w_bCj`{iN5I(sezIYZI2=sf5r*F-ea_D0N z|F~O}YXoBfa!nb&ti~4)&EN0>2q`hkHU@FvpfDpc4ofWMFX9bNZHOW?T41|}46&-O z{}FBc$ng0Jlb+>NuZ8QJo(G*<_-zNhjC12phd?!-{1ka$mtU6Ywm}aT>4wsUM)bA; z;m*dUJm@}mI(2!t7L0!E^v|52rmdaUfybBKE^pJ9br1(%4LsnPY%J3CGw)iSnm2Je zp_LZ=&fvs%7PMI9^h6P9V2=cqy!BUP28o~8z4P=K-RZ~T#~15PzL)C`Hx@&97G5u! z-Sd|J%ZfcIRutRwNY%yV^g#Gp$`o&%B)rM>y29OZY*!U9J-LX}_U8q|tF=(~v_JTG z#r0vQ57FCP$?s?V{{L~n@zMnTg3Vi8yZC3mqVZ1o?^OJ9YP3G9OJ& zDjA=i0U|I+Rmjg6lcMp))h@A<(}}ezmgaZO0^=9yB?|f3wGi{a*%#}#>4h7aaa*5w z;Q@;Al6qOcZ@ z>8r{IYH_%6N$)tlkrMrDA95FKxZw2#^cMTvKb|+ocBx>KSUaa%xr`Je#$p_I3x4)( zkC9Iqr+u!ccRLh}Tv5K}FMsFhdtUroyx7Q3i(mM4UvPT17BcyHZU4M@tB$`5#krdE zqB(u6c7N83zHr*_0a>|6-ZyZo-!c;;Eq~aR;&Bf58t;7{JHyxa5^nYREMJSA>n!>V zpgd86S)Gt}dwE}zC%DLNBU=4xWlQwH(-|gOU$tqC)%`}GmZz3kY1g;+xjFJLxDNvS zdh?cu56W1D=SoKDbBxY%*#}GM#EP%Puxd^HZHuwZMcwr}AlkpnE^NVfz2iLZKQU0k z4qFUauWa%xI^z2cTA<@jIPQw#4Qwpf{U`l$fWk$39M$K8KBW2SD}Siu4!mBZBks;C z&_`o#FiAO)2;mo5E}=dyB(ZD!}(FVopA;my{01OMYNs0R&TkkIoHR>mY{|f zUtlAP3q2O}_wZ{!UnWaWvXrB^!pVNmw+97kdyFkOtJ00O1z_Dv${4s%oZE%(1>};& zXCON-dx%!+dgVLqB6zy0(->WIe03YWORmqnMZzO7PNm2uqYoqa)1T2@cqo1HqiO^eu;*1opP zthaKLe%=~6^)VU$CvNhVg@f(*og+=k)SooBY78coc`|!9-a3!3$LfYK%IKQYz0V^r z7XVjzaEAO@j9UQDLn+u_?Kbn}29vSc-l8vl>=;++>_p$I?#RP+C<>f;zsNztmTpb-Ng`;Z4XewBIq42qceUE=7zx#-pg)NRv_iK>2ra*v#-#&1`imYj7 zUcVbQ%06)QF)!TsU~6KuP0t(2jTc*#nZ9nJyO~SUM0fuOD60`)1DlZD5zYRHjW~HC zFJs(RU5u{|EWAriJajHfpj}%31PzPWBi9ngi1=n%>m>e2lHqN^Roj=b#I@y*o&?Du z!=1Oy4~~;!Wb-m#%*D;3@%iMu27&w0}u=_CY4@_7g(*x13(_{crRl9nw7K?s+f!JEy1UnQavATD(g?qon*7dJf#S zWRizgNnZqVx1kIzPT@y#6Z^^aqGW-INQ)dyow|5-L>epPJ5a0XO{scr+zX!hzmDt^ z0}GFohifkO;%;M_Q9Jx;xOV$Y4x2|s^vGsr??w1xq;Eib@_8Qz^uHIR5LnV;d3@s@ z2*#5W?`P>Q$QS6Dh|Z@Zcu~tc^->86$6r6!FJDSb-t8_0g%~H42efF&0$Pgm)SU}8 z^7=9A@CmVhueX!7kH>16Q$DVx>qJod|8}8}EQddl`YyalQT+8YUugUs_R=v0pF8w= z{OPA8e%j=L1-kG4hG(2U<|7_neEs~JyCzleXev(;!B?V`?M(dXgxph8+Etg&llj;*}QS9PH@C4t&Bl67Z`GpV~{WLB6CZ{ou z{Ruwe&Q;m7tTD_H7u3onGB#RP&8+|cKmbWZK~%7wE5NaW>dtxm@I`@XX4y{O95rJz zN8L~wXUC8FgW7iv9+dK;)Sfk|$AW&_z-wRlZG}y{`Qr{-eccS}C zfNG}r$nUx2^%QJ4kCk%)jG)uR0=q;)=JD&KR?BrOQ zf^G>Yl*H`3h=8xiqwjxZ7~F}VW2~+*+uni851Q1NtNj%WK3|#{#I0B4SO3cAz0UN1 z5g_JO(7lCUy!I)nkA}~cW4>%rP-`99XY(jPaO^L4K;^aoq%%MBy#w9E1?N&(ZLKnU zyXNh}i{~L?>pYT1Y{mH3)YQ$}Qt4gtZI$#fa@p`Ide+|KXYNX@#%5JOcApc^A=!q< z%{A7S?xl#@O(bY<&p@lS%WY$Gfl+q%K4F|G!iG>UR-xxl5Ccs7$XeK8&zMkmZwRld ze%_izeAFj5z#Qr*Qt?Jw)h1`Ra31!=Q5%6JbJ(&>(@O`Lar`WRTs!ci42v%_apN=i zD?xIRmoe;VqP{w z(gGdIlMYadU67d`WPEz;$3CLjj|n%TD1F-(<2}8!7xv`iw@cMoc`rrup*`}$9tPCLHg+CWFC9SUSM<|gkv4@pD|?|P zj0ZM9yW}UGJnwMK{nDoIlivzh*!R}LBBCrVzL}qKSFwn6eL<$0x79);<}Z29x5<~E zb)SR2UuMv{sfm0oHDikGFH^;?ENPz1yW$?MyX5XU{pAlLYzHEnI#1M#F?xZH=j%Q1n_r`!qUI;N90~v8@8=~P!1VmzkNd_z$#IOOVC$r3 z_1$&)-aGEn&y_#o^u=1Bd*Ua2oZtBRvgdy3>39F3KU>F1&J@g1itS;zN~amuxp;1W zkRCdo@YV0&CEv$|&mDm`szuc2LG+ZC%P`mR-Z;f?m+&VZTXpU((IpW-GcGy)mpn~` z3$4ZR0||Ujj#^GLj@S=mCy7~kB-9vF(k(7*iZpO#v}s{sclm5I5j!)#Xjli+94HhK zyx5c`$uij&LS=#cA?-bOxzZ|i3;%y)=TY@|%*>FJ;VJ{80@n{Y7AGVqLkf{mpdNGd znFePtdy#6Ja||HT#|pqbPEE5vm3L$t(sK)i;?X=TjENY??+eyVUU`@&@U42aC9gj+Mx$6$PJEk=SkN=~5p*FLvpe8mssx(=@`I0o^MqwTFUVk7ds zZ=2MPumdWAj-lmRuj$=i>zk47>=SytPGl2Lj087HYH=Pz2Ugf~d^UpDbP{fKjZ(t{)z}1fg5S@&O8vtd>>{5n0HJHI4`gyM{Mq@0ZLYn04vuTS5zO={ z9_W0h6CR)4v4p=lwy61j0o^x?SRhhUlxV zaV{+S2H@gAxQ^SOtKv8&d<~{+(X1nB|1l93G;JI!T+dj7zVxh9pXH4s5lbPN(lxPB z1Ug9(sl9C%4?O#*wTb&X?D7=|3U7~>7xs-`An-@e_!U0ieZ3Y_F=Wx1@yenlS7;55 zPkM%^T!5*~17c@L016T2Vuvk?2xLPSU=~wipo~}-j0f~WfnOajFW?QOU-appQ1*nO zL9%T-n*gxE_S3r4rAuDG(DtD|pfBhDl@?O+M$woO@X@BAyP9OW(&ptik)1GyDsTS$pRnMdAk>>>l zU7T|UYT5ejt&us1rIh3U`Vm^|BGhk}n|l-}j#JlU4YhyPCrRfWlp8(iLFG zOwFQj|J0Q^ceIeR-mPUI?QYWxM7nT?7yfQf9^pC;2hq~0*D+q7PiJ}0QsT`>kC^q7 z$h-B^+)AxOd+h)45gXv>yc~lzDb} zDL3Od4#nrfI_dUZiEy6#O}E#}9fG$$x6iTaeB#qe1FOzL<@6aAGAYn!!NDylO56s{vu$u)vU)|*xBwnJPTVt)X+0OZX_NU&K);?$4@)^;eAExOz3YO}% z%{gH42if)fH+Z5C{W@>pOUt4+ee0NRqy`r&tNylae%b7NgofOCVNP86+1TANtFfjU1KI z4OW=+-B~&|^2df7R9wXfi33c9JmGJAHfgh)vCi2*O#9N5#7oTCoPX)(VcLvX^$}to)_78se&#Rk?YU8 z9((f3=XG9`#mlnp^Gg`GyN-=78|(a#A@`}BL*|m~Qr7HryK4(vv+MkB@_wdsj)-+! z*lw9S_}_ErTvLj1-B$X`F*J>~Xl#8PGX83F?q^Z6ws{P;d}{PLH>_E?Ixf4g-Qh?1 zXVl#sn)9oybSz7KqjTyAzn!t)b!;KGFPCiC4JnwvQv!~0DcIuLi-Y!7dCZgX`68V9 zs>XnF{Su$^ou=pPI*<3~cMt|j`#hWzqJ8beb{16g-*X~YO~h1(gYXoieB_JT{pbPWEsCogZTRc9V((>FUbj0t=_enw#~=6F z@v~Z*OmuCwQ)AJ%zg{)ADf?KvA3w^+IuAC_x(q!3y{%X^wuK*@xsN=ClLk0FOvV)> zDN7v#I{%`eZJpOm)68=m;csPD`I~EFKijkuACCLO#bb7<`ZKwc0L^8K>pc5-9|A47 z)LWe`PIB5)Z&BJd7kFar{N?(y^SI7|v?DvAI5%TUTn`rs_4yA>jP%Ds&qbYWa&EOw^!!=DwOPyK+)^xs&n1w4JV1YWdwp=pf^9-M%7B4}G_4%h!HnqgEKp8yem~*e_*@8wM^4XF)`CNUdw)M)-jiGcv z^R}q=@tDC3!+BQ*V!d=0Jo}?D=W`&R1l1W>H9CiuwrT@>9te7 zI8fgoG8oWCu*U_1+JwbhRC(yI6vy_GZ@-2=PI@sqvV^(;9GZ^M21=YR4xM)}M_8qdwccUI3G zg9e(h&dDSbjER1`-W1v|*ZAyD`k#$^w-y+GQFrX+>)|c>nc#mo-Jv(hQh5FuKP#me zOCZnriccR4WVh?>ve@H`+rR(S|7baOU;J5*-yD#S*0c1U@`R5cd>Wa&eXC8i;edh)3s-mk=uf(Ro9^m* z%99@BHeSz64%V7Jh%OWFhoxN1nJ1ifjg~Mn6 z@uyr89du?ZW44YP%=(->z3A({Pz#X1W%?+2g>g`zh7*bI&$=(hA}6|YI{EoFh_?Q1 zE)W(O@t6;dW#9eT!1JwG0MN#VOl?}~usk}w4f~?4ZFD*p#=wsLHEoqWZy%)OkQCn= zvujz|_!4{orjH#HJ~bU0?VjJ)9mgQ<%Rpm1#yqdj9-TM2Xz}@zb0~d;MDt>u`N(AJ zqjuJKr_4(QJ8R*T>Ca!rYT^1bW+x24kCStx6?L}bH@=3(vBcK>DH*yK_$(j`a?XB~ z(2-BAZ&#g< zxK3usPR3<9Csfu}`?OI%`h(V9E`2%d37cBk9rHVLp7_@77^SH*Q%%{|OoSlfC?7lI zG=*b_O%$%1biLTyEo$pR@nDXKEcbfM@f7@Zt`+!|l|TL@(UIBuI^ zITq~29^zsjUs1Q;To=*tX6i+~l`&LA?5uV( zgfrvhnqwnd9ix1%5Zl;5yb0gWti10DJ+Jz+$H!*pin=`Z0^JqniE(}oYu;(%J6h%J z=yMCG>-eiV&t>MbwxhD=ul>DF_nD{J=D^aL$0NriztDk(EN7vEBA5DngFG8@QA z>u-qabS%z9^^e+_LpkD(_%}-n9-o5!hTwheo$T%FlR$ zm9k_p#F@Ws!us7omh+Q+ZogNAM%vaJ7tAW>%Af11qr4vJ*ligb*JqrotIua8V@0r+ z@H%YjKCYWK^nl>=5ki$A(*)I7T43H>*fba3^MKaP)(N9_pBwW`I*_~cB%lwdJ!#fL|Ly5{-}3#ZXaCX9@H5=FGw!y>ad(mKuKLM$)C2C(yTxy5eY2kH zgznes!Rar1-j{e`T$+@Y&JUl@GAy3Hk!8Y&Fdtq;{Nga!CB|NLM1p zWGn`eZ_3MG^AFGN%nB!d<9qwxbmv^1XMMx>o_^#NUuW_Qp846Qr+?ljdH(P+78Vrm zdFwm0aP}6zy_a~g`**+fSw3Da#oSqCk?t`c_YqzY`jPK?u7CE7&h!83?XtHXF@20b zaQd^~_-egX`6D&{zwz`}{?r$qo~~T+b5i1e_y_;j_LHBezw-8f;P!skac)jbdm;5@ zv0TWxrbX`7+hO@BFMfZ@@BX;c(ku-YtQ@g zafjif^k&*VKbfiBJmzLTJO3@S)*PRoqqpPo>^bflWDZi8haXz`eYF-q$sfn2OHIbB zaFLriXFQ{tedW6G79i_z-5?rc$G9x)6~yf$-aO}=iBAIf`qw@l;Y{IfZGvdxL45(u zVXqj>HGhnsV<=%8$-c0|>(1M`)}UPQVDQfyXkam#v5|4>QMeux-x}fE0+S$71qy3Xl&0~JFiyc2h0UsVegC%8dsh@rgFo#<<4HIoZDBBqysMlC#!d7d*GAZihKkIDoUP2Al4(V{!=E({1Z>eZ z$**zAGh6W-9h1cv0^|RJ=VP<`T?2g+1#4H8)n3ctD`zf;hkGz&-?f`+cL(0C1XBY1 zFTsu)QAi^n>caz$R8VMlF};lyKLfOMoKrM%d^TrdfWo*IvMT)YHxuf{FNM8+<4_mE zAf3&ZF~%jb0o!y6Yo(=aZ!0E_f%Y3)>TC$WZ|8gJrG~jBpnpX{pJKf6q{joz@?!)$n@So~b1G z4qIuJr^W!Maf2v||Lfu!JIoDaw6XTm%#PEuN$BCJu@n}})YXogz#@`Z!Cg!HyrD@qKGnFb%%$z`MRLTp zL~l>pf?X_nt2M3bbGkVC-x#j7BVKfTxkY2-o$-`FD-__G|D4N^k)*4%Q3CHFb4nmE z|Eke{b+us}s4dnaYk5`y`7~Ou%Iu?Pi)Xjr`D3TgebzT?p(bzW4BjpJa?K(J1Drwb z$-v;;@uNR=de#fR(_fO2XK@Aj{sR2sZ-1@$-<7Z(AOnuw6tBXoPZA(23&zC;}I zm%Bi?6XaRn@I79<1D{1NbUFvG_}g!Q?9x8Pucj_cnu?S7I2hUV-=)83{mI1^3n$DS z<`9c6Fa8^UFT&dUF9PE)7a{X=R^;rX^m>5~`lo#PUp~F--M{KNH9)Fyw-$Kt16!Hf zVLbP*exKjSc{HN-moo`l#emj23wQyf2bX|gqi1G^MdafFURQPo58Gzp8V@PZ*bT!Y7p95h)xcam;hIE+_b_T5Ww7 zfbET0jB@Mk?20q|z)t09&{qDgjjVlL?6)7=TEI7mD-#mkeiqKZp6==T3z+X4nDKAz za;c?bhS-<FN9qaPnbVzp&R?_TuIx>)*QBDs<{(^S<-hX9MAtrB4gC1UDNPmt-0PVk;zUZW`cDU7VWKhum!ZQTG9TMziTJxu;un9mpmDeb2*Zn&hZ+QnhF1;^=$P z%-oG{?*+`6Ds#zsP(GL&d323`9P#QnqDJMR6$>k6D9r5)w zzTBty`WHHV_bu}^a~5C70bx`u@?+i=oiWtDUES23H+-KltRkzA=W(x+nfv%6RDd6J zNgjJ<_zua6t;gXqbVszSHO%nQuAXYkVBv7JbcUpKtn{ zLd`Dm6fD^@Q45L>Brup zpLOc)uRK3OL=_-@KtBO}vtByz3;#C{o`1kUE&R&Qe}eh1(%osVd(&H;la?nx&;Ihy z@Xua(HrsQ*^#`oSPv<`2kNmmQQ}i=Zo~hU6b^7TjiIAYNyYA<~RBobRSheH~j_8!?)|j8N}9Nos&QP((e)KEvJ9_FaEW8 zoM?D<;Y+^j_0F?B!9gja%d-GK?JHk;`sn&uweht3Y5C*@A;ovE;(C%65xE14x9WOK zboc3(Bm6-I?~EpT40MqWXmq z&Y67W&7zP0ysuBZzy0CPCCBkSZ~2)V#|~ibSh#8|=Fz@zcU<$^)?Q}qbG&@n*MIBj z(ZBP*KRsG^)KSPcV}x%XDBmd@PZTU-_h0_Pzde1M3sc+Zz$Fn8_|2AlslqIj^GG1)+# zbuyJCT?(ULlG{E)mr5kz@&Rr?Xp7u)8=gHIFlF>$+>xam9oOMp-ZKV0CYPn)aFKC? zMUeR3uA{fcwM7xvV^HyJndup?Fd7uhBU#Z9*&ZKTN#}XdPGoI=F|flQDENC>tiJSe z?hZg?Wkm$qc`M>TD=RxpvHLn=i?eg8yKPH-n(f}qd+=AQj1c}HOTPFA-xsmwHHwJ) zBB$D~l@;4Y5&2kuOHGu};#;@yCVs8>w6|ls=kEFfiBA>V>NEz#UGd_>ieaH5&@L}M zsOhhe2u6YO#H~K-UJItV~N$$lhZhs@;q!`GWTMa1(iVu&zRwD z5GuyVu2u?1e0brbnK|J(=cI_kf4*6%Z)r7c4{5dCLC7l>d?ABIzLGNw;IDE#D>1{?WA`}2V^aTX&r3z zW3%&6b?IrT)AqGDTynsd`{c2xq%}05VtP}+60xengOqt}4on5xy0&K@g5;ky@5iZZ zZfpUgIbmA`M*i5CDz*`4xyZ6T%ZddV6VwzhZefECLMm=A1m`2H5=ji1j|k#R#-zkH zRlyEg&l?E#&b9{ou#xXlunNtA#@B<<7#JDL7;tJ)SGVob-TOC`mj*bi-_07X3nb_L za2gYxw$(bvb!!MmI+f9k7Ybsp%J-|ecBf3+X0_Yr>Ml8(ad(WC z*}Fg=SG7%zMmw%OZjL2j_GgbvPDbu$E+(QBY_n4X05lO@l{acvF_AJM5jQ@d-P& zR6eK8p5p@|>js=QOw%rU2&kxU9~UBvT~_rjV(in6AU3UMhIR%|MLs$vOBWB(wJav5 zPvmAN?=j(gjzZ;b6>%FS@jc$f#D@mnU4nJ_$4A{Pk;Db$Y7X)6y!EAC7G_b)holHPvG!r3Q2^)H&9XZO{l zlH4Ry3*nnvoH{hU&;zhA*ARkfhH-jliWI$qtQuT@-V2Kli7Y(m zjdKVZFb6k-X3YG#I&jVp5eh|r(e8*_GaP^wKkKoTi`-%xdJ+M4wEp=Iztq^=Y4=jy zsTm(ks-5&UMQ>EqPd)kBB;~*T{ZHR;*N!!1#}|0~C0=c4{4Ivq{47MrT;n4ibDfg| z#V)4lJ!7H&0^m82_jz82R`f-dCOJhO6)bSP`6TRJgnN9`yL#XA#`!%E9sGrNGx&?z zl}+MdqfDEft**nL`=)n2IctkN^}Mm~h%1Ryt?99Y%qC)dnG!)@rWcmv-e-k55X-`s z&35X@fE+`1M>R<#z4wH-mUHwes|bFmWEO!WzIqhTIo=RA^Ud#i0N`8>xiM~%EY zG#qEx?=jj75LQ)Ww;_Z-PiK*6dyRAE^p4QS>mGfIZLLDzVz-|aG2(p^pCD(g;b#&s zRJPb>Y9_QUoiWdx9ei2+?RMAJaL(J!)<+H6Dj8|^Yw3|~Sw@OBp0jnUku-yrpx|=e z+-H$_hA-_8{NUC&uOQO)G2132nYgEKOdkH(A64xgmMNCh^@Z==5;oU{IO@B-uqB?) z?*pf_xNzqS1%DOii!PgFMu^rOJ=;3l$shb(rPg-KcP`AsH|ZReL@CYz2s*1;+>;W97rEvQjKFF8P11yXFTj z{k5zmi*z2t$n|r6(c{j!QQD6>FDD=TQAOD3 z`!h_n+T1DUvEaMn07(AP%XMPLr z|0E*a_=l`YVXx;0)c5BT)2vV!$k4aVVpJ8n?9j)47d4@^o6Vyiu_^0*=~})pkYG%? zei-Xt%0F~#OE}M@E6*ATrUMt9+{}{BYQ&2)66lFHWv^=CP}?YH%1)Agm2P zeaUD3Ui0z&t^FoX0f5ot>>8SmePZc8NGXZ6eLYuwwq1{9H0d}3)jD-sL zCEd2nv!-};vS}%c7VeNMgY+#=gY(u(kD~YZjoc6zJZM49JX60gEV4adwkL-nN4(j< z0FGIxx43Y`8g5vLsf~$trRO=zlP;WGRbr-Sres&sVenhdl8g(a*Byz7h+JtQX;*_5WYrKVr1886Tz->_?2N z^e#?wPYMweLxPC^Q?_;XHPS(ztx)!om#F7*P)42wo(n(KOH70Bf!CS&z*T7T=mfK4 ztlD;_t%lgtOMdpACR2NA_vi5jrLz-kd8ME@{TjXvs>4NK<8J1VWY$=~Y&F`kKz&Sw zGs{lK&b5bA>Z;bv|5Z|39#%IoRlifbjv@H`Bj%`bp;h?^E0W!XW7<1YeYIu`FDxz$@onlC~%m#kGvmALfCn-H`)tJMzj zjqJ<1A*Lsbdpi&~$mOc32eHS0%pZy6TGgV)KnC{+CHT`Gkj09u_t{OIXxTOx%%$2a z$z1V#No`-$G_L4e-|+vTqNOksgVU5q(?cr-8GKmJ$L>QHbHE{viRmzu@W(Y73d)_f zp=X~hYF>_y^kHGwkbH>(51Rhb>pxI8niphB&hY|+?}6LwJ*SIdd~q8aL0ECkR@K9i z@&)dQ3F(x;Azyt62G9I#de^X~bW^vr$Jiu+*+8s78gq)a{`vdUWSgJkE=RCo9_(&2 z*qQ(MzL+ayjRs%hD=?2*#d$f_iP9}+tOsWJEbJ0stcle`<=x}ee*q=T(OR0UvgAsEKZXj(6 znWDBHKJH8V3mtm|X}vUuo$z9pHa8*-AEaTOG6;Q*zw>4t%^Un_`CB1wiVa8Iit5Ml zf;3SBQpW6zB)DK|L$HcHKAgLcaUeO=M*t%9Po~gp941}gaV3=@?}Rp>vEY)x)YEzh zvBO(zd4mRbX|WhYJRHDzGZq2mxf0SrP56npKvngL`StpF>u2aEt1Qrc|2ICvKPTm9 ze(-slCvQ{j*uG5;jNl(B@*h1`&K4D*V_mjK{F^iw#!(Z+VD*xvk~WSC>gT~6Gd z!)*thrNHxF&==ZlKE(0IL2Qzd6u&LFVlZ{G?3-ofB!^voHrATFRZwx@zT> z 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 b#_0Ek(W`UM>85m?LBWSYa^6<3m38_r?oO;i diff --git a/_versions/2.7/guides/images/reactive-thread.png b/_versions/2.7/guides/images/reactive-thread.png deleted file mode 100644 index f8fd7616195b34d707172cdc985260fe393cb603..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339050 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�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

    vKqMO3 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 >6W>;$8K z7jLe)C4=dt$u@NW*n>_YI;HBWG4cQp4eps2umiq!8M~`lqw26v4bYIt@jmK~s*&Rg zk=e1+Z-XQ+zE!~SQya&2#&sSpYfP@qD^z{+G}8;wo4p_(N2J`L{(J#d{T2Mb0Ye^U z#ps!GrHvA;Y`DHB5NXNl+VP9P+7B=Lfko>Cdf@ms9}sg)Dfzdr0ti3=@Tfn^TRkSv zc^E7RG#G*$4$`izSK&>SixA=xnK=-|Y`m5eZGFvVGjzJfkShoD3d#?F;rlE3c)7et zSb2ntGE3Qq6PHwXjq%}Aaw60=uL@`#RCZw`ZwnYo2{WR-Qx~a>riYk)RwtXE*=_01 zvE`rBX8#PiA20nwec?XbOr!lX%#f1|Qa(fEiX%(*yPeO@SQVg<0w4oEu<`jLl(s^N z`asjgCT~b>KDxZTw0zDWC&J5cjolXJ9xRLPgg~4MRksZEHL_eF*V{i-I zdC=Q3`fR>K1Ms1^h0DS055186OiDY;lRB7S@aF^@ExEHIlM6LwioX%X-F(jZUU=_$ zo(I!(X1#UZI&F{SmEeAMXIfW)pAm70-#QOkT3I!*?9ekvk;KA;h2`o&LZSC%iLBQC_N(`IL`^_tS*x_{QmQBX)d;pK-rZQ3h=4z#d(L3+cVI zg+<2;*#0GP#4SYTgvmeS7L8FGCm6jN0o=*wqKb0O_aQU@+@mhK6O?oN?c3Zzp4~H? zr5i(ejNq)(cn$dI%P~Y9l5~&R3khNfz@~Tq_~MBRd<V)IAR!3japn)vrmXE3(Y2fFW3Kp*zAIexm%yr$+JDIiau%r0s3bhiz{==oCV}WQ`ft4jzAl4DU>plT4R+$o7eK>HJ%bLE)iR9OB^Z`2)SaVQCrYHW z(OSrZjAZ%tOzp7tOlxWf@wRD?kdW#J8ZUvDe*;8leG;{Oa%#VGTh(nDWk!_RWW=jJgOM@{f#a_y!zT zI+C9GHZFYOr!iMqjLSR|VXV`sm|T2BVx2Y5g|Cie0T%J>?$$`1kL6j8)De$H*l=9J z>O(+0B1Ld^!VaV63fRqxBTqCWyDQui)6(Br?;kRByVLrNQc+y3nUb)Cl+}5(#w$MX zr)bI$+2!I-r(FJ&M;-~NWC)tBBQkguswe>Vb=j6g*IFwr_pN)E({GqEiQqKnKY~ zN##!7lHD|Nf{yDU2>sCN9yD{T5qJB-4`~>$(a*jXI9|^dC0R`N?bg!2szaJS^$S+8 zv+2hVSR2O0Lk7DEk8bfrk{qKnX={aH_2@2xh<)E3IxLN?l-n`=20QOXjd2>;>Y<#% z`!t1zm1Jt>Sr=pXAF{Eewp!htVjfW6+mbTlQbwfVK4#wK0Y;Kn63#5K) z41a;jyd`z3fxnL$V60~+4X1{ z*w&fuFGv}NYtY+5d>UU52+!yLX{bK~r?OGmN!CjbV#KFDdaz1*B{Z57$+)CB zVHci(*@-1U1?L(H$A!WV_;MNaONRx$q=|B%JPyV6gkz@DaGfUIMbG+;c!rzto(8t? z8#+q%IAo*tiEp8t%{(CZG=jRZ1TbkdvxqmV4Unqlcsp2XAvWu|18v<2Wz-;K`)#Oo6PF= z1f#^8s^RZeB{Z7($b<VnAbpM-+@jcG7)wLL=A8bBHgfsP}y3SA-jP zcB$*j^Rq`k{lW3Yxr=(*Ms@`H0ITw%&aUH@J_}$mQiaVrdTXsmHxffPTdGlxv7@e+ zSJ?Iq54TzXRv%ii)gSNbYvD7P%-mu?S!i1xS}4HBK%hSckMt+fm#)S>kEUXb&oLYB zF0=1p(dC0VKRAlPP#%{5+;n5WO022SUVn+I@iq!^2kce@5V$Fqp<}(i*qop9I{C?6 zO5+V|1oWuuw-`2m1%b!zWX@-e5Uuv-NL0W%3mkorx9q+ixwq~Y09OfCfSXkg9SPvt zHSk88P@oInim37(k*Q1i)ivpY;O4qF!4E^YKpIX08XjH!YTSO6?p7nwW6USo%$dje zhM^y~J$i_Uo@xFnWXT61E-?QXY91AU@q5L`ZgZ4}XR5jbebko-=UFc7X4HtP;gN?0 zK1}fgyB?W9042Dy+4&==)H~h^L2is`F-EczIAXI4^5_968t15Y#g7#0s{oEC8n?)1 zGR4s>wq<0_E9&+yzW%Ph>s)j4%sH?=mC1N%3Uys20TQQ*v-9=q#4+|BdyYCE-ecSq z_xR{LKxp*S@Zq_^zXpGf5n7$Y^)c#l=e%!gV)zelb;<*i%^e41tY6CXkaW+Zeg|eU zSGhhcLLc_4IBSLywOIJ@(`FMZN@-x+#LyXk)j>@+)sZVO(v_E*LJ0nNNW|ZY2LN|C zW#}asby_AeiRCqQ7g6#NPv^htO*x+C)RxZs(8J;_Ph!)bRlBGMFSg-in#?-ax`$m{ zgK+H@uXz(e=is3$Eq`+9`HU4h5xJSl(tIe;I>_>ieolooe z;J55Dmb;SFU%{6=rc~bhUa9l7Fikh#xO~jodgsG3q+D@Ex=pgUVIk$nQWhIW38+O`~dBMRvK0(X2x3{Rv_9sX{exlZr zj*M9M&CjGam8|f5qk#OQ8+c^GH7@8yZ;#8x~ILqCZ!c981&+mO~8`=N$we8Wwnah}x|ZSi+~^{_$(Re9~E zUN7`)zN3mp4MlG^Kdm1`Xm&fY7<-3uy~8mn9%VzD%ABczZ}NV@lGk6C^G))4p|o#} z;V)F3x5REW@b^yx=jZ1+Gn~Pb3HLIAx}Yiy{{Wj1x{6 z99uJwaID=98P5?aNP)jL%An}r_E`qU7VK#>4h^1%;zGwsj5>-E;u+*?+8n(&aby6E z<5s>XizxLdo{+wl+Y@r3nw~}s)17)4>tw9bdZGbv+;-9eMJHN&uHm1SX8eBI9M&Jb zMYhUG)7)cqh0cC@<85gIkx90YPJp%;Gwe3D;JhLgf2Zq{(^oEDdEM9KkF)=47xqR% zi0Puq#r$JS1|}{J4!Mr)j2TX;=AQN(<5a~TZN5@Oj$MfODzEiJr!jKWo3%y?(|BDK zm^zYT@X3}gC-Ck-(>4DJRsEXd+TZdCH~SlJ+*29F0mix((4tXS7gNZY$-0S6f1=ZE zV-agWe?JfVw4Rnu{0`_G zm}Q*fo40Y+FA!#J7RKdS!j={=cbeFgMLbvb#flpuD`mNuRLIf)?Xpt6O5|gCd*&f zUaAOj>QveH%ed3`?^gS4b<7(N?wB_#>>>_D+ko0uAI4~?wE{#OL4k#NVq(=unPzO8 z6jFvdJ$^@Q1-`EZ32HOYF{;}Ku z>kd=c2<}<(`0G4#>y>BsYmkSx=M4k0!f>qfgW8+5yM-?p(`_@!6BZ@TIClrPXPjr3 zKOYA5W0vW69>C9?|Li(H`Z)-`CH4!5`r$K=MbRMboDA?(437q(Ut4?pgL(E_IO@P- z5~$Ui4`KX@Er*Q#1uMb)GU`8bXyo&(b>A?kHdPM|+y-uDZJYiOfrkwkyMW^#ikUkC!M|bh$kk|n2b_7) z1!kldjuexY{8mUlFUe6@o6Dcy-CTYL;e6o#O+-L{*?sRi=V|VMh-PSU3xbkKojQ=5!vxk#Wy=f7)8O`I_Htl%O(qW^N_$}!paE#Hjo-otHY* zS+45oP~1#Mf5S*4PMQbwU3o5$=?b(Ng!h7MOzBAVn&t;IFE7qF>&t526aEc)t)u6U zAA79)=gYm64&n2ql3QtSHE^qePoe?74dTvlCy39QBz_W-*Ma53IxJ4sCqH6T_;-u~ zE(E@nF~VIhzQ&cwk;BG;0qYQlz-5p*l={izt`2SoWI?tJYhxh17S3}-smX>^%Z0vP z^^kG0VtPX2z?q4q6a7p^=LxI3D|Ak6GQ{F{(n+9q4lqH@Zaa;Pm7C=r14~31?Kg8c%E=PGY28`<#A|!2q1$_HjGh_m*MiImbb(Isp)j?=e{V<750cnOdE`KmY|b=*L;Z(kqZtp0R$dH$oLlRN)qYevFmab$O*dh+ff(hED4_ zeLeK||cgv11+ zOtw?|$ogno%1No5KLnPy3Nf&Fq?mGRT+Q(wifA5kwz50Kp%J653124Hd<^M4 zbf8Sg7tx$YpFReE$_G|K^s2nWb^T7g>`3l~i-<@((x7W~tF-j*%r~&;lsFUaO?!{o z(rYHy9IJDjbExfqo@O&qR$plA$o6^m$ z^1ch-`Vg-D6ORS`S!oLpovg7LE`D<@8Nk94b zjAFlmjqBI=#x=Wj98@z1mLS)a=g=T_W$+sL>3D;U*Y{^-`3g)e9+p9Prq^_?;EV)i znA0Lt>)r{$;?H!U3dS=tvk1iKvg4TWWYXgaE7;i2&6d&)%8S{DZP(*nRnV}$jj!;7clHFE1heoixjUslhe`=)j;o}1roVuG(r#FqhBY!%C#x0Cm@HdY1a2i`9r)B7lCBrV}grh$DfB_lu@x~Z- zj3X+p=@YRNH~1MB5HI{(pruVMz?DAQnQ4k$aw&(p#H)uF z+g*{;aA%}4+9v$@@h!{L#hN=kF&w%h((T#NFVQ#Y5O#fWardJieDBWrqem$CYw+ck zJh~ec0JAb&_ca~%-hJM-e-pvFq9)3TS7+3QdPPb)Fa>MV44m~WObtOx;{g~gM%98r zc)IP%X8qL2NPi$=L@{3?$Y_+!2xdIuV_PwX)8@*MC$MxluU6x(#=02l+$HFlt4i`U zXtE1eCY}qQJIT=3t1JERc09#=y#CGg$r-zWFWn)oq1g0-yTL1}q1VJ9etP;Vu=7cr zb&s9Pao)B?H#fJpSE*T;z*3Op(I}0&WIFVcd2B6`RjHd_irF;m$lvOi zeDUB!NABUJ;mb2_-8ugO!fSNH zUm)@u4@fdWGu>BCWWWank1b<&Y*Jq~UqlM$d>VR>dDQp;t>*#xvQLzT$1!*;jSmXU zBSvzM@5qq|cM%!X=mMtfu9p_P6aZX{P_KcyConG71>KaE2u_#>(}R=otaJR0Swi|# zUi}YY0)xoS-O#}?R-HH3M<>4qQy30;cUe{*O6Tq0g?Rc{0?nX!v5dIuy~2ky<4n_` z*@96CX~ahIGwiS3?Cb#pWT@=1++KF}>TDi1`+y zf&DwiX*S((EFl@T@8N-1K0XY1`Um^4;?vok+FVEN%CN-RN5Nu*GqxsV3?jjsMoM6M zYXebJ4E9fyMfLYt6OtiB9`*Z>3=7-I6SXD0)yFouCEKPwi|(N`w6ZB2};ezHT*VBty3O5ZE>WQUeP}4r!VHLaHf~)pK{o$XD0Q6{nj_j`Qns49xs^o zjgzDExOKN0xYfX|20pb0j_Gn=8wT+)(fQQ0u7#Mf(GMbBJoCT^9Q&l5*G=j0 zk6k!#{4kn31enmfFrEei2a?*AR=gZaop$IPVD<;KgM&_>x0geM(|+7O-7WU6Z{~N1 zMyEHuzDvbi^dOonk9;S0l|>+!y!g7g2rh!mb0#P*Tv}JII6NP7EVA=@s0$|_c;K?b z*Rpo9)6T^uhK3Y^i@v`Fp9P(->SlnHmR})9MqzZBF}Yw>xJb`cdCDJ{q!6ZzOmSz| zh6f&Xc3new2Szkq(+52H6PI7>t^i3KVk~%tedW5v6H}sFkfs|xBvex6VeJA~;~TF` z^HCp?JfHZbv=IelM#Ka)uS<^#zLQ}kZ3P6}%X8cezYjXnu7K?GY3*xJXeZJ(RIyEH zKfZAe-&6mC;>DkI__cS*bCp%4S~pqfvzS`Pz)BFOF-0TCIuCUyx17<+4JIjJj1`&` zwv^=LcEyg79j(e1_}J zpu>@23E(NrmTjBTG`w$NVmKCPB>OO{A>*Chks6c z)d1!(200hhOz*hv>*xMRnC^oFHp_cxp-~z&z4GpAweSkxs#2=MlLrR&=MuC|7FG!L zg|wMZKuwF0(eZ;iuQ2F6E;la=WW{?O#}c|hD$}&4H)7Ky%WvKC;2hNJS+5D6i{a1+0F)r?OXSey$>TLw_m>&hw zxEDZ5@-1k>J8!5sA9FXm^1lY)E0i1cJ-aPEzQhM~pvK^?>>3J*0E34a%15~KVgB8@ zsbSE5toplZH_qRbQ@-pF$1DFlAV@psEw;1`>lOz1)lZ!tnNtsV=djwd2o9kdheMR>}RfA7ZB*cE^Q+_y>%PDefW zzLjK$fACD3U597hvtQVWUMHpA(JuISW**oQpSqm~SpDHnj~2mTzWQxwSQq}5A9LyT z+hj+YzP-wLam?E`YulJ_i{ZM9)sIUBDgqU8^H*L9J;AI^yIAwV+X&@xY-DmxpUw2V z+JFiERLW2cH*5Te#cTiILtsCk`9+{!r`VtHgw!$6_9x;Q*ViE$OQe0bREi?LCdd66 z4um+^QTMW0iE!a24JyQU_dS470F&}k7dy1GS>K13wwagW zD0kN}myaI#qUGnyy)-3#zSMFn?X3oGHE7-7>9qZyC!0X` z0P`$?#o5O@1b-b`hw!dL`w-s2xXc062n#Mh4n?M=A02U36E#nC@yukO-9xo_V{$nb znLV}ANa&7${D_P;r4JJ8 z`8&k=P~5(J*MZr`nZwP$;|yzbvHs}q^u7x>`wh>o<>~vJhJT`&@KqF;jeYruT8!r!B@7SR@bcAAb|G?iH=jF~ltTXcHAFSO^0R<5ewm3Q zRLd)D{D47Y@h`F(r=b}78h7F4?zd7^hYj~?U#@jLr~7V z%npBzM#uC*?rxkZ4+b}LBQx%(I=%nnKl_iX^N0TvGW{`f_z<^cem3I+S`0$PbB&Rt zp+*^YP)K!SJxU#-F14=GM(xXWh2S+cuG>=X)-fKO#t(#Yho*RkowdVXT@B^c>cC4;*=dFAs=@odn^lv z%OGet^LPvUCU%zlVMdN9@GNO|msRW0@R4{tebGKrnwp(7h^IJT-4 zOv1n-bHQ4s`GBYr>3~*S>dAgZUPVJX!x7msSbH>#gR_ML!E~?Ko>%VZ_DCHfvfJA_ zrxA@eLUMG0JFhW>=j{XLvynk!))(hQ?Cd;x1!2@Hpq>-r7==gxAL(0hq(^r9xC_xvFF(OHO3FmX~6+Bzw5Wwf-yoVk z-SuwXqOh&7=_cPku`l(Fj?xd~AO2`V%Aec?dl%J_Ol5QDXFsi!hg2(`{hbfgl*2w> zoowsF>^~&jRXrVo+KtK{Jzz@k0rRTwv!;HB`4o%k7;~9SWua06I$G%V$2wz|fz-q?VVMVP z2i19Co&6!orQ^hFziIn)lHN#D`i#@b&x(`IA~y&<{28~z4-eAkuNHF^SrbPMLc+7~ zamN#L8>TwIVvHa`JOMOxw=6(JyfRLxV}qELj^A^=82B}lTUEJcqDu;?t)9I;R%NN)ZEIDQK{Sd2dub}(Z!h$U^Jd$C`dm-9EHD*(OL%9Wnag4 zM;%8uXt-ig7Go<=7@UAq)NI-hYcL>eTc-Iy2fyiKXDJ;%LG@F#BO?CL z<+^o6`|06rN_-_KUU{j9TG-Yi-#i;*Sp_g~;#m^uS6m1qTc?^}!~+8XiKpG=akn+dlg&)b*fWW3M88V)0!j^{*Z=_>c`@n`ePdGAYWNf%R z{K0TxJrX>W7>MSVU{!o4K>!nSus4D$SH;xRlNAKj;!I8M7b{urjh+mGE>BXG$>3`*gNmI)8qikH5m(u{u@?h?iQTz!&XzJJ2^30|x-Yy9}H%gDD8$-A*5UATh|K*#HpAJ7?- z4+0V?QR(;_4DfAT^D?H>p9VX@2(shm2?hP9lb_i>&D~|M@X~9@KG+ zPg+@yQK7ywHuwNAeL9;Ds@=Si+Phs}5FH0i^&)ZFdBmxN8^2y$JVfj#9NX+V^qA*? z|2O&g_VFEFLOl0{kCdzVuhyt+AW)F$AMx8Ea)V&iCt-R1t5cvhdd$r@_ z5x)tJ8J2OUndiuuyNHb+BF!a%7j{ufi9x*?(7O!p4*%z{tUQL+uH4VTyH0ZSBH*OY zeY_zn0+^K_S2k$9IS8Mtp;v2 zaI1k&rGW2M-ul!3Wp(%czvKnGdmn%F?yueb@azBh zFCIVm@^3Nk_}|X&f8p!vvsZoxvD``JPM`?K#X-YK0WnLbU4r+p7;TIJDE{fv1NRga z?|%G#SfFL#j1&iW4x;m5a%f=QkJ}FqGL>TjJM>J<;%_InLLr}tTbId!k;V(|WO72A z^V6u6?=1~p#|GWWoNej!+OT0n`JyUD7@TNh#c}^;i_R*vbl#U*hr#%!B{Yusttco*LK2VvW#u!mg7FYQTQ z;tk_Y^ind1U5w?X%Tt3GH=KRT!Y?ruTYPO4RVu>NcMSwbkL=FmE4LK82X%z#5PBi< z!aep`mlr3$c;{FDi;L4&cz~+`lMjZij{iX!e`36Aog!~%GLl#xifH^SngMh$#yFD6 zXTdd8>Bu^6qV$0e+MpHP5^da4rY_LkfoBZ^p5v;jJ!oL_ZGlnW+8`5pgGA!W09u9{ z>EbLZdBs?vp`G&0u_wyp1E+`ZuuZ|!5AtS5EWtt~tS>^AOyw0IE^;n7BB?-rJ9=#B z7k^Jh!f<(dau-!`zVxvlSoA24=o~-)Tel71>$0vf#f1kv9Gd;VkzW_Bwj$s;fk4#CPhyK|4 z8GUFxH;?p_*;y}-cN7_qyS3d3egSE<}BdoBw1L~hc?|qc?O=RRq7;~F3$xKr(vt!+fk8*wj zmwKaqwD4n;_Lhe`pMb_^2Bn>@UZsFXJyosb`mi&;)4l8VVLN`LjbLHf1}qnFLW-~+ z`Yx+ciZlsnE5%AOal+{lS3S>s0#Ir3N_=+3eTlKk?v&LG-*k)gjYGKb2WLU=Kh+X}PeSQyCDTDaheJn_?LJ?tL^ z+eUZtD2*F&aJ*bUIsagDe(?hysJ#jMe?@!yI)-qCpl7nYBfEl@AAnSR`v8Aw19@QO zJm^o!84o=-zf9gRjC&ktc3gi9()(nQkMnXo)=`Y+w0*u0f!^%Kbv8=>6H1qBWY`rz zpgzGxx?SX=Nh@?=(ysDoqGJjm8SATlr=JrrLJcJSqy3v?xt0_8lgl~N3ZoDk8fnVm zM_=g6OC-q!LAgGk-!A<@@RQ$QX6B0D(4!(eUx4C;)Q(H686dRYoLqkV@t<5ie)w(j zasRqBKDpFaFdXM^cZOe4%WcH125vR*|7#6gUS7HY?qgD3R-Y>$zRbP(ub3zQ_Prl{ z=R-!3U)+2DFCIPk>pwhu^v*9It&dNB^ZedBubtm}`@{9wz0JkFH}7Ab+xj{yx5yL#CP z%j1B17N33ahTWmN2Xr-USEgO?7HW6$F;sz0w$RPHVv6PhmtlGEVX`q&7j)rzO0wWI zI0TnC^ydVn*y4}z27tg8f~iT5t~H|RM%sXn4wQrFnve-%Y0vqbGDmVP;-ytIOC~4d zIOuf##R|6x{c`=`(dntL4nIEo+4ugB)y4Tg2filu!N19iaxAhe9wMDsDu3w)&jBa= zv(gWsEXU^u5`< zbdx+hx4qXT-#12$xoXY5);{}?XK#_}U3;%Nt4576YSgIvm^Eu|*NaT8@Xx0mFF(P@JPcw zkVKrhLM7K+BOcIIx=3cenjPM~^YQoo=%@4fFOstLhw_XMN-8HoMGI$Oha2KUco3{d zS?BHZf-3Uf5b>vR98}@B>=TKPa2g^)4@Oc?LjR#hckEgA-$$*Kxpgug3i+BlJ7%pH zGZyVpKdmq7o-zt~z==BUQ9|xo(>SZKkaXp(F&zU(mM`)nOY9KW021xVdeB^xJ99KZ zD|Y8S>jzQLl4dI5a-=)?T>{8+6-?8o_s{O%|1LIP`v47+>Ju@dt!#72a!|g6D|3xi zX~j{u#7$qEVWh-|zSfR0?$+f^I6pAwF&%#V&>e)c*r^4Mt=)Q|ape#JzDmpWqnWl> zF%qjL)aePQKT;xIc7<%n-t+=s}Ac^c}E0Iz|8n~MhqO+I3;>c9IOkY-3F2nE&2G$eH0!Ll*T!tS(!WqRFwxhf}4?UDB zBl~I%;iS()*~#nzE&Ra+3iA3qDsHKRY7Hohm#n1kT-M?+1<_HIYBA8 z#bkExY&Lrh-7s!?Jcos-{z8Ub36)%RFPuIsy+5uEoV6NQw6%&bG7<8cH2FYVi1k-k zGt>_itgzA4CV_^_ZIE4BaTDK|ZGS?xuRZQ|Owz)$P=dXe-Wd-<%>jm}o=70|ByO~! z8b_iX38l`D=zX{oM%7_Hqi(>ntU?akiM(JN6{ylPkt=m1w49&ZI-1Up{fIHU+}Gcv z)#{JRMB>U~d*7C6Iy{)Wm)Z{Fb~*8xW)Akoj7NXnM!6>Z)t zEkmYXGHhdACRBnclWE3%AcXG#u;S{X`ZkP`gVV>5+==)*Nb?3i`>HeEM*9|U#`hTi zM$8+J=X+B|AHeY4VV@6wv77_;jl0pnjRtNs@M$&RUZsJke9w88p{yqlU*6)`; zf&=X7O349v8}C^L*k{4LoQ6{t2jG729n;oeyg&UePfi+&LCtFzpL0@@Q$wTWReY;H zCI5{i;TxDG(~M2pu{=eY{9GtH?O?Klc%6hw6U+)fIlI74$TnQv2r&;{;iVxbDuFZ_ z+DL=fYp1i14;GL9!*q43F>)k0kSlN@4t&iLe$F@L>H<6^HbvzSZI>%}-FM+sJ_@Jq zg}aOY7^iSQ?Y;QzN=u#n4o=xdm^$m?(lS?fu>f=N8kNf9PAu~` z`Tdw^UoXdi7rT6UP^iIywRO}7>ck4;phm!aeH;T|7{h(lmt7re4MsjNQAQ2Yq(9Z* zNI2%_r0p(C4NWd4LL6XmmZru+>oxo}aIlNdo#N5Ih^Rr*kGf*)n1<2CMI-!OaOzA- zLwOig49lE_6R#$>3Y6%PuEMYjkp}?0*3ZvzK!dnCQ7-kSlSlatMq)oVnd7Zdep6w5x2L+~3868RkpZt@J7kvryk|yI)ey(`4oHhxm^K?ven((*laU|+A{g1n}C+~xP9~=$l?i$xvivB6QREy_oTN<7lE(CZSv!Qh$ z+7LW6O8AjU+noj)9v-oym~tUKY==>)Y&-5oq)i3q*vU@zz9DxxfgdYnVB~|hN!IK4 z;cdbi`=%J%+%PizHI9G#BT_kFFXjIQf6ov9o0zN5z<-D|)-xW+Ox{PX zH?r6jwB-YD=MV>M2wRyNC5$BDz<>80rg$^T@nd&AOGz>x z=cRHkXl|s zNH*{aL%8~=ep6g<>}s5+*-ll?&idE*KL6YF;DENWezIIHet?kg(?|XWZA2Mc`9xNG zU1VO@tJ^f;RyWK-7_s@7ZoK95LO9lRb||cYM|#<`#i&?;W&aRts98#c<1+Az1fUbX#~GJ>Y`#%Ob{aZdvh$3xt#pci zd=RvyX?h)9OHV#ZHFhbF_?fP4CSi|h9zGm&{;jj_m>C61Mw|Q^RnGosNC;%VJRPYQ zTv$UG@Pb&ZEhBMdp4ir>ODnETH`$QCNUw#1W0z-T&GFbbw9LaH72ueOk`F)lR5;{} z&f9{R!t-^})npxW++RF;#IyM?n6q=gaW@*c(ZG!cK9vR>Oy~%|#7~3GRrk5OWIP~k zC+8VQ|35!FW5-8UwmN<5tU~+Y5~38pmfVR=4Z2xYCNrIiJ8ol#tp-~Rr897Yk38WMlX~kLG*RXn z8aZM@p70A;9Oq)$=e$qDd1}Nup;HGMHT*$>qBOLy zjciB??Mm)Qzg{gD{2ol^7}hLLWKLDY0zCz>wein<%8aTr9bW4PD3MQY?i^M<*{87P z#moGQyT)vH1M*`h9XPCkIogA#2rP;zMqZUhT^P?%yhh3xEaNEdsy8WAjR%&8I3z^` zh=GVN9 zXUmEx`6NBCgo-D=lRY&g-w;7qIAtY@M3Po)^R8B+AWh$(9atqBaY?^@1px-9q+-7; zNx76FLye6e4OONMThh`M# ziQ@yE^tJQpS18=S!vvchs*F?XHDe!`9_s=hP|mE)c*e8Dq!nhOmd~cIDn3asgT^>B+4x9mdYPskT3*w5Qd;*`99`!4>>MXB zBTYBOkS7OMN=e$dl2EMOqEA(x6LZMjdgFYyj%|{^Nkz7aBM`JUm(~78=6crF|_u?l|Mo z>$X88;szshVlp-%*ZOF7%6ilfa2sv|9Udo7K<4X}yU6*@2|K}=UL0%a4j6_CjTNi) z;nCV-R+fi%))>gwi{sni-dU}V?kpEa?k>MGUmo6`#!)N>j9&-XGBmEZn>_B!%{({S z4~a9k3EP@>599qgF>#IOz*YIFyFxk~54UF+Ysh32jd_lNKiQnSikE|KM)m%4$PG|D z_r;r@uIYOp+Ee3;@M(M^twO%w-s|`Rv~y9J9}9>d|K(DyHjxS=hkgw^Kc23Z|BgEI z_Igekdt&D`IVZu?u1BQUj7YJd^COT>RxRyT(W1fBBvARfjO`UxoTugGGJJ~1Wz+2i zD%u{l%fC;KXGqhw=|q`{t#1HuCM@^*xMe#+Bo=G0foFsF-vx~i>OAX_39M~_x-nzI zn)+8(C&cdV@dHsBYhCcN=!;#oECSqJ9)?A6Vanoe&5lZE&G9kIl@r}qI1w!$ILD%z zkKV>^HW!eVt#dth!DxU2RaU^W#hWK^pi5H`3n?)3s0;2IZvKcE=$fYnpQszq4`KCYSfjM{Mx9!3;Z9vN&OguGA7~6yZ_=<0 zu7aq5$e(#s^)B+LpK+8*8GfJ%M0txR4$j{8|LR0GwDx7HS) zkfe)VACR$Idu3j;;e;y85H1KpINLO#Rz7Mk;#oL*G(s46;w=xg^D=R~Rj|T%DgN|{ z+5yjn^G84qq2jFPDH9sZm&r3sLsWC{QViMec3>oqZARggL1!8;3^|?9XlNyimQFlS zvtDqVxEGinK?P7*7lO;?|VVy6~A z()3|T_VkPkVvwL|nz#xT;@brna2%WB;fl6=ab6%9j55>r(C&-yd6m-hErt8QIk(t{ zE>n-i;Rv5N63z#^InJbH@_4!uju>T)~= zEXUcLa}A*Mpy?c|*^QIy5b{W_$#yhLV5vFVorZGf5su@k21I>TXYpsfsaoY7{`>;Z zJIsT3=`~`!I3JX&?W=c58)-#4tvm*lq#A--o+>+mW4c1Th#s6!hW8D9 zz9_qMG9Su#AQbc7Hs0hLdgMIR0kGo-(N#Ix1|#F*;o{+=_vf?O6FSOYLY3~=wVe}d z2h&un5SC531}0vhg-t)W{xAyAx7T>aNzpU6@jPhiNtQJaLOFiQI)TS31TmyTe!B#Q zgm%C(P6@+hy~3My&QfXI(@T)FQczN~p9#81d%Nt-HslrG&<1Sbma7=}RgVonV6E>L zB?JhxxKw(<+Bj2C9=babq8gEz76Jm3*w7KNA+Q<~zjzt5&zVlc3l&+d$~75GjlX~g zQ~Fy0QRL(Y80BZTpoG!0M!pHhgMMUZ>~sxaHsbtuKU{1Fo;_gZiRjD}Ea?|!yb%w+ z$JO!nsn1?{4!`7{IxQKm?oKs``Sk+3&~>Hx+;U^bdgE?1aHD}64SXsM(9gPq#A5+i z;B|w-r{Z>1L^)PDIT%YAgJmX*iHl>lmZy`0Qw-)g#y}7lE=(Py7;5++_`xy8@Y{#( z6kpGe7M%HtLHuNf5u7-8k7G!87kPv=p64%NC(DRGx;+CI!}&=V)`??mbk6GlPC_xL zrobt;vZpP>=*URi$&vRiBimYx!7+D?#K;Sxto_V$tE2}Czp z=+Op$enQ~Pw>uMB98or}b!Dysh@z5sv2@LnKn_UA)@`Dfz<#x9bEMyfl8r3~N z+{ZgE#+=#jDf1xO6PH}$y19s}jygBAHRZ~QcJ8Pn7*!pbFvM28W%4#$6j%e5##QCC zEaYAFAFupEKN|Dcc@^b$k-XA;W)~SmXNWUDy8q)J&mTYd5qWqEarkkje7-4A^$QV^ zF=Uq#@v1KiNet@=U8@7K5_uA4u*wtv9+&(qT~Y~t`0(V|*Z4(UQn#>Gba63G&Sr1e zxA8O11aTpd^6P{L0B`0)+DIr7xPlvbvyN)iu=K!MRCCM z)+B4og9#(Bk2&UB4tf3xZeUe5heUb&QF5+L!P?p)zMVCzL!g0vG>O4Dq?PX!%lA!mKOY zQrnSkyp@G7UGi;2(6s&?{;l$HS0jkM`&&`$_yh zr1Fg)-@K^r6exLgMwU_510rcX4IKQ*ef3j&a+>iGNqXMxzrvFgv3J{UPwr74S|kZI zjG?|pCGKduczN%arN$0Yr$5a+FizkcrvwD+UasUFvRaQ*cVL2xtP0mv{Fb%k7?j8i zV&zqO(+-5jIc@+FrcB0%j)tsnP)$|c`D@A|;6@iyag271;K|||;<4!;J6n9fNi zH#@_xLD@G++-TrN1D_)eFj#+uKKSPuVVv-Mv0V&qZP;{B+3h&V^o-v}?0Mpsldw_V z9TOPs4l#;jIA8OD&Lz9fmj}0I>@Hui%bX8+-aX>zl|y!qpK>1gf-}pHmh)Q&&}eLD zpUBYyBf968vqK%jI>z?!Ylzp_jv-y%B;-$*5}St@$Q#&6htoz~frE~ z?)>P_{`dLn>_5gn3b#TkrqBECY;}Fctm>!em!mRFaE4Jp!^8StliGj8Ph+6vo0F=E z=VEFkj~%qmoJMsTNV;*I7-wc2UvzaZ{HNg+{=R$h8OIk~{*^|-dffAIIn5Tg>7+*w ze=Gy=K^u#7dE~B~T%1)pz@sxUZ0mCZE6gRUsi!LDxx1LioXDpZu`%B_7{+sXC|6=+9*lGWnR#sMo`wS~ zvexj2_TZ~8(m__9;2Fpn5pl>P-WJ$ErQb&stnLGw<|(==3;Al`c2Q6Zc5#%=`i`Hm zDUKR}r5_jafrD>L#8Cqrc@u3~9M3>jwfmADi}F0eq{SlWkTy_PG%A2Jpzk!C@v@|T(^*-{zO3TWD7iP+cpYvip|8!NE7t&&Q;!5dJ3<0E-HR=GgrqMfg)vu6|R~N&eXMBee^#JlPqy${Q^gfk(jK-H*(12K%qR%H; zD_N#3iReDa3TK}q0qF!EAKb@7lSfdTQha>$R1tXaFymVhe5-jmX8n0*ACbEqa8K zJQ4;2f9tpQCzbg-AHSX3)PuP06^}ZyAvwnazyK>gb(bvpWC^z57Od)BG3jZgCrng6 zq_GS%WI6B4Qc}XfssDkz_;C;K5J6agzk(&d43Fc4+GiAeNG(0VORw?vTaMe=hs4`l z@lkK1?E|d8rez;t+QR;VIQxNrfd7$w0~L!0RV5l&SMBKI&K}(VaJe}1?EE>6l4Cu? z$jkAG7)96Xx9si7pn2>at%mP0!~?x4eIN7l>Et!qg{bxix8fk7cvB$sq%qb0y|tlW zWg{lZm>Z#G%Fy5WJ|@!@ZhVsF&Fi2rlC~`mIK)9C!M6O_;9FX92#vQ4!mT9{F+*Ww zw6XBSffV;lPuc9VGVRPmj*r5nt-Kj%2}om>yvCapQM4!RN_& z--7pfrg6jTMgun*_-m>Gx?x`Fp1f*zY=`@^=|=gEAS=wXC;VdlFpq5>IoSC@BZ4kb z1jJ(T$hU_%mW3VVJp4U4a$@%ggZSyB#seZY?O+2L|^c(e?D2f*NiLH-mTC+t?nFy}bsnCfKL2hjk&>S!T?NNI9fX?3Bi*78L#{3 zd-&LI68q9D+&;cw`$RMEoS7EWpP3(Dn*PiA^6?)~zRSsK@tB#8I|F)+?c?;B;3h$h zdVIKE{y7EqCKfg76h?vRvdcSLByBERui^}k# zxV=nwMD%=2b1YXMF5Dj0`(1Xq^0Xw&zFye?sy~Fd8(WkXKw?#U{;W z$92Z$wfGf&lXn2iV+b_Dc*??}|Tdz}nN#q$F z20ks+9rx~^tCSn;gxsVZax@bhaY+65jl6ygXLUU1)bhwKE=XPBX_)Y zhXEvZiaBXmu)6kfS@j9LuI8MA9pSO-48y5AOT+M^5n!fa$Q8H`ek>E?kVjVG(4}ny zS30bF0EbKA4*)y?qYm2+og0`PuJU6SV|H5yzoHh5@c6 zVQ@}#OCe;c_FZ^t7FHprN0xxK)fU7z{Uuj+fAe8hB~v6ZgJ8->_`=xl5U)%e034Bl zCOs)w52bY8mu_QpGD3!tFEG{F2?|sXx0wpE8)L->GkFNZ8)zW8!%^e0$M%E{xqHmb z#*vRrp!w2}ugoi-o+!HcCe{b`c=;i|(-iX+a-QcBsL%64555(OF<0L= zH!{l?NmX&78kJ)?LF3Q%z}-As-2)D2r>lOl@d+Gx_u=wan#E|0m+^6p{#jq*B#f&H zx4(|MSA6RpSdF=`KHR|3CuDo4A_44achrVqPGdf;pW@i|q_u5O38JrY%%&{V)o`qq z54hb8dl#|!aQ*aG!FMwVZ{*CJ-+Cw|O#qS|DTDjm9c_bI|Km?S{^582>?^E#dYcIYxwlnXFNY%=i!=@Fry6A0)vewMQnvk%zJ;PkE1Br6n9c zL@C#Kynv9j@stf$<#Qu}Jd`s(d>Zo^0E}N?DQw_!;Xwz|TTiOZ2hX^q-oz|t$Km<# zez(E#V7@$i@`Ohryv3SXEW|6ko3AsD&Ar(feuYZDVSS^48x4HUH1NB>`@6T!&d%7$ z6C5vN(C+C3c(hvCpF? z>*>L}&@WcUx9_bEZoSBdMIT~#KfwThmmTU;jOd(=&Nq@~^CkEU+sB7-bPMOGlMW&| z-s%mx^<==wDd*S?5l(tF`jRCOoaiyJQB*EY*or&{^yE{M04Vv}Xt1ArfH}CFPz=Fy zo{FytP9gM@mz?-0Q%cmwi9ZhSgB5S@G3z1Ekq_6!^B*2OzW?X5M-RW^3zIOl96>B4 z^u*84j{=v}79Oa?P8ke)?)Z)~JlSQyPTCc4wVaD|g(2SaTtlvi0ao{Yg6)f!iE+9< zqdlzriIvx$u7_Xb@A;4M#%UOS7W{quq)Cjl&jcefUof!Nm*Zl4FIO^gDt84(2%?1g_DvyMTo3jfcg~pDyt5 z%0=fj`{dvkFJbth(#ZFQY2aSPg(MJx{kcny$XaupL_BbD1A#U1A#oUJ*SrCuf!wM( zxy_Y297X~9dh>jyjh8Q?4nBG;k6B$EVaGXqNfc3~HnjH^| zaR_gIJZD;YJc20t5yxP{lHg6aOYh5&=n7ND0hyZqNv^>+y5ROzmu|XT+DR(EqDd1 zJr}DB8p5DC^Q`+YaH7K?GH+?{OucImSBF>c5Sg=Z?#9jqkM_y&;G(osUs*=wSI*wA zBCOA-Z~zM<5aXD4f^jK?QeK6P*L7iaH3Z93bcsD&3mj-(8lakbl=}!KPJjyEfYqQ} z!>^#oR+T72=Kcy-C_}m;M_`}|59#NQ^lX!f;ng3y+sdmrl!-f~b;PYX8YLbcy2&Hf zCC&|e8_e;XzJn%LqDXSZj{3Zq%?=ii{``CIE&lQPpU;=8zmEva!KXanV<$JBCQcQ= zAQ3&Oa~Tc$zl_xOi5kI~4+M?7-0dp~`STL4%N^co#}&Klo_#~3j`A<8WE#cTK;mXv z*-sQ^2r&dMmu{h#?3;8dUFt%pC-0S)x|2$hrSata~*6L)n$ni4zx*(Edzzq#1 za?|4`jlkZzl)f&)*&U~BCOqU1FK;8p*a0jQz+D|1qI@%7TggYD=ihL^_pMUCGs8zL z-RMF6p<^A!obybcJH-6O&hV3ylNh(3dkR;`aNkqTD@^i+^^FE@H1O9!13UrbEXuX7 zZt-R88@F2n3`@Fpi%~8i1FV912ZOhp7%rLYXk*?U+xdb}8#BcgVYWHfku}+pk9e{d z!Nm^8sBrYk$vs}LW!2=v@Uv4UkL$;aTVI+0e~fYb3A@bK{FWHLPtT6;-eHIN0Y>r1 zgdYPx;3$_{tJx9ZBaQI)Rvf*@raz49hjGR^#&U+`M12KY6AT-!(jC$v6A@6ln}L#& zB1(57-3`*sq`O-hl!gHUqg%ShfKk%15##W^*LBYM6HnZUB!G#Fr<_g_Tag8+32u#< zQ`((btb9yUA7H&fiYB_gj&)fC4g3z5AfTuLrnRfVw#!!(GT_W&634vD8FlA0dU za;KJ?;6g~XCWp#PaBuMj?Yvz*>r%I-Ux;MSmpl@^UHSaRD`08b*6UO?J>VR7QeyD- zt?YB5y&jQxwdM}jVRj!h&JSM7XJ?wU7*T-lCq%Md;zTQLDO~5gq$P5tQXlwS-=fzN3 z@d7J%miz~+1*PS0bO|@qe69K%iB{XIGyIG0-7YIb0!zVtkk7c4n`2v$UoI7)7L<^XNA1~+gsPx1kV~L?P9bGAqMq&`Y-ziS8 z>DeHH)s+)a+H zXQw(6hZ^}QMv=dkwjb9=D+s4jWA4R`wziMrfU1c$Rai+JZT{Lv>xpM_SgPSb=8I?j zOco{F-F$Pl?msjlnuu_T6E|56%7SI2Lxm|-8O7=Xk=P7 z{t;%gdB=nCi9)&`e>yrAs&AS?r@Lrc!BJA;n&X80Ci!?=aOKwHif5>tizNU$K%+vu zKHObixcZG9_KGEJQX)J()_V0W;yJwKDIYnZc=LXFuW5n0PjY!smHv22M-;yJNXW>% zEOLJzS^FAXX}|U7(s7>jL;4%Z{fJ?=n@URtrJ`!D#PM;AS{I2B^Wyw+)}Qs^b-nYV zPIj^At0@RM`B?MmFNnsQyxJSD%ffY|S|X<(?{)r=T1nCx3|vXDHHN-#!5v1=Vf*u; z?hZ?%q@OHkDseqTAuO@yl0Cbfv(*7D)Vunf!1q~#qLUKir-D^nBIKLfk+rSOJsXeH zzSyebrTgR^*9Y9nJI+w^70Xc>yy+JFyV&ZBPQwveZUXqMLgiP$f!qoxt%g?GBbvZ!? zE9_SIOwEG&gkzU`r&u@UWQI3aTAqI3J+slQo|Hk}s-)QhayY4JMAX%Cm}ZZDz_oMh z$n{w(S&q6glkRS*Op9h#Eg4?HET6E#G67*@JMKAU1>S@fVRQnBG<2 zfA4Sro#9dA8RTfyz?`q z^>Oj`tJ|%;>#fbBZt?fG;RDvnJMZS^u_@hXr~TuXh;teg2?J<$UOz9dT@?(RaB#=z zYg@$7A!(0s!X(4|avDOz<^Mp{#%pwzUIy2ehy%=$J3=M?tz7NslfY+kxoUZyy`ws@% zhPN#n;X}K$+R3MD+r5uyu+Vy_4!q{-I`i5##DOkCQf#R06r$MI@FF!uWC!AhNp$R~ zbP?JV$eIPzOddGxZQD2Ex&`W*H*)}Rv)Ma%`GYO)E@TGl!JZ&T&Ys> zCgaX{Q%K28s0aQq{_1^3JY_gj@`6Ah?3PhTGwyHeU1{j!wIvk?Z%C;bLA!wAiU41- zNrGEuBzfAxEzCThf%SEc7I#t6JCTy%(d)M=@TKzeFGS0p!A!@i0|W|OLRb+gl|0cC z{p9Y>zLD632vu%^RYWmMCZHhId$Z-4@HSOaBaG%0&nmDHg-eQVosgAxDu?Q9)71CO zOpbeRlN$PLutA1aecl=DM-t-mM)v4jh#?f@L^G8hR%lR+vuk@l{-U3r#20`+%)d^# z`7b$TtTC9mtQb_Sf7{J)zf5n06ZCPIN}Y+9mR=AZyq3-V|%Ewl1Dm=HCzO^+jPXNhD&37{d)Qel;2q2Zn7#ZLzb|{|t6kNCMH>ddCR>o)=`=8tA zlw1zZd1CgF*C;~ETVLHlmwchl;YXp!(ekft_U7n-jNP}tC;$^B;gRQZk=K4`XdLc0`4wcjxM){~aGTsU3-y zrnrscdp|0WT{|4EVqSbk7znGv^S}^ZH0s}?3;r%o1O#o|z8j@p6QqficwKkB-Rp9D zJ==JPum+UC5P(Q0Hoir+s2O|14#%FIG+p}=%iOIE)THlDHOg&WGY+~Nc}wb=zP*+y zxcJ*k8Zu^BvQfyEm{un;AuuCWXbA{|Kz@KTo}#nTM6d$CC%Sx4!@eEd@*0pLUKEKp+^49v z07NP$gwP#7P)K!Cfddd7TYf&H#@&6z|3?Ygxm9dvQmL~rss!~4^!cGYR4_{Brt*ZYp$NQ0n6`#1Ud^R7K$G5`{vzF{Y3Mtj6FO~B`}R|;!HVQ*3H2(tfV zrzd{dc42LoL-1xKa)b8JSjZpHEyddhrZ!1tmsp z8xq!w(*>?ZwlkF~*v}aN~)k_Rl z^vg~c*b%zaFpR9EJmcdNi~5?!u=6+c%z(go&S#W3kPu2+fTUNXZ|jpsk6VkLbe?=~ z->{+|iV^lL#2bP13{<2e_w#8;{y|A^Ghdr{7`ebNN299+5qqGvC)D*V?8rOXh;(cN*;cx z1-5VT?&df6bP+i26z>f}4V_)s9)R8VC3frRHK)~0bE!7?g2#R>>avlW@I$ob=Tt27 z><4e0*7}?9L1~xqdV$whE`ePNoHZM0Tn)m3x^Gu&*Iif;=a-k$_o>?c>?tkw<&QDz z*DWMlc0;B2rH?74zvCTx(d0^X9__W~8Eta6tPP&hG=|LPDjg`(3FGhP8YHq&NC`-h zU|IPJHg`_c$sCVb@hRH?-a?l$@ylY&Dgv&bk^aR%%a?Q)ME#yiy>%dz3d*HD`&WCM zlnh>B6K5NLkl=1*=#J}eBMyI&2ZA^$vY)V2fUDtC;Zr$9pY@hkP5#)ulxjU@h{qOZXDd5IGwOGptW^lfLj+l5ZKFaIgG$AG82}gd5=glDwZk&?>=8Y{m z0HsF3>nYvfXULSM)Ys^adV8Q&r>E!1$Tv@LC#plkvQS6SzDB*1;YV@i`oPjx17e>2_ zQ!??`>naBC>|L}UWS`(7F-trwB48xvrL0sN^2kkkQ4eF&0BNI4gkn}OS9)FXzX<3{ zqup(WFF?{&C>A!@YmWyh9EcBXFX>pEetqBm$*sp0 zx#}}ol_2619}1%&@Y_IR1LBj}14Im;ERBtTU?8>jnPu3#j`YJ^TtQ}uqEJ+-BdO

    h3%5FV=Ep#;Q0&0y8(YWf8^E!rzQfQ=LVhiK7~eY z3{nRY<2okZZuEFpL5GFy{XZ!Nl1MgwPid=F_la!URn5Y#|B zx3Ry}rHoXx?fiR4-kTv;HPJAePdj(q*SL1T z>e0bqTtNL8aS_95>-NCgNa_{Q7myi2=Jiix*raBi3YvNEIh^jK9Ensb2j}6sqfmcJR3T3CT7K9GZT8ga=qBzuKeS5zOsEz5%)^br4c8mwCw9 zrYs0knf|^Y6e_A4Jljruc`?d*h>YWZf^}HkFF2wzU#^sX8#l1@fq{Zx;nq36%O`jW zaqGqclGQg-_<_TkUbdq_r0QoQ6h_k&{_cPS8BqDgs)q4ivf25_#KDx|r6qt=xnW8@ zhIatbWpy_(Cd3169kQY8#zb7rcF>@<2?j61_WZJ8*^*+uB;ix`TZ=St_I>*mS5TVXm35=E2xE~N~kh>$$K*TWKo^g!uRTMdCWl9 z0Ge)k=I*%9tvNLOGUcU8E(;?)fr#-^ySa~^W#{MzHcPa*)r+*X=)7Dvr4m(Wrgy~> zvo10xuts{g_h-W02#)Lsj>zKnjy_8vaA3EbaYrrMZo9qw6TDI)d1up8{0WYkZg0k* zVNDa6Z^Cho-hVr1_ZXLt;}K5~^)(bnrZmCmU9dJ^!}0?xd}a;ISqcr>~x7DAn-*G>

    0#^Yhd>th@S;SmY!I$i9w&-I#hvxjX#&^hdvb5;PmP~Pbg(I8BeT2zUer zb$C-$!!_$;k2i13$iI0Khs7O{tU}2Peu6mk%86HsqShizah@|a-@3bN04IyG-~UJp z3^&xdWn41QgSQ{|sHWHM;_cHOV_#RZ>; zE%ku5j;VGF$#d4@zv4;R3_OU{_6yo1A72qbdyW|fv3Y#v-?x1~J+8Q0A5(buPm(G4 z`@IKUtdf_=%Ij6#>Ztcj6ASL*jCd zp6WkYP^*8J&TMT36WPgc;^XLaeRV)N9^ODIK???gOS?P-p&7AAMIhQevV98|8I3RiBA36NNuq`Uob{M>%C;LVf~h-iwAcg z#l{8AopN`cXPl;~GnT-9j1bJ+t966+$zVuKb~GE`#9%{mBMz7+1lRSVOG#zXbd)U7 z0Ix(?R!T)Wr`zY>CS1dOjOV#U4fDl29u5v6UdE_pe2J=^UI1U+f^nI{0PojyN~SxS zWjnFu5WHdR;sYz~$3{?_L!*I2vA`=(x0D?;>fkiC7Oqj>u5DnqfSKSoKvRKGYUz{g z<;pmd%x93gx0=+(sm4nDIs)E-^7$^Omx(E%_LpoLdb!)>^n+MpVq4`5cJ}FC4}X%> zishHr&WirJgDmss8o)By={P4WYPwm6aqe+vbR>L5QmHTtZ~ga^rB6RYf6CS$27Etk za}YkZmPZ$CobR&i%>TA!jgt@^WIy8Ow$77jV#cS!IzwjahiP& zFddy?RVx?hTRt#h;M~5?b`#a2N8nQ%E3fh+_UO{ItH&Xx=TkAcdGU^n)pM!mk4#b+ z?IOq*tzHQ{C3WeM5LW7n6BB3n&iWtb2#*AlOh7Vav)w$5dQAJNvkxu?7AkiAO!~PQ z6W8e5XMjOJ0#6U%8B8x={X8>4T8y4h{qG%{F#6~Vfz>Uhb)awpdlo|wRW*p4fmst! z4hEh42^UV_Mpzy*uXO*4h0Jc@Pu_8@DwSLOJHwx!jepppGE(mt-IysNoy$I&<0E+5ZCq|wmsb8Cdb5+xmhkLc5^$?Ln|vyZHg)g+I8sSi&)HeXO!W*CWinx z!*pokGeMaWkvz7E*1qk4AQ%|YHoTRnKzk-MoQ1MGZy^Z@OsK*aIKfLRlCx3n>566g zn57In5cQ!{C8qk_x5M2zxVx%)&tOdtRN%oX_*cZ3o;Z-VLA_Rg#%zr!9360+58h-l zy7amH69O}>o?C!#ZK^T+tYz7d#qzwUU2Uk~C7>a3{HH+$Lyq*QPuD2|cM$SbB#ZvRP!(2Pt8RTR7gn zj^|Q zys{Z`EmTq!gdOZZ*h!m9j4s!-dM0ZOP4zi)AEBnn7GH->>=JGKIPKMwFu?X1Tq$aJ zDMU#$XC%dk-{AM<^h-=5*i~3k+!tC3Tk3s+{zGOqilYN4Xw+==>5WBTGHV)@OyyKD zNgf-;uWikykJ{vn^3=qwawL)_JWJVi!XW|_fqMQ>pCDRCz{Xvy!tj@y5aR>21#>SJ zJJ?!9TvD_We1*gQL#bl)=Tz-^z0i~e>+$_Wy5*UiepQV_Teywi!Lb&P)`nNNPlS^;OoxPOMJX5JpF@Y%RG z)x~Y1986Re>Ca^9dHFqc^ky2TBT~?@mWShAQHOY>uoxG&9GJRVPG9|@k}^v&6uw;- zZZWi|1Z`|&c6jkyjk~0gl4e3I!i5BseX&=ipDD!(^fk|DQm)+KWF7nNWBZG+h* zzMtH0&hE}K#_RU$*3x%cd8L)mKVjkl#O-P35^ZJ`xa!oB<1g6_6G(fCr6MvA-{w%Z-Gjw6dF z?Qc1s*)b?}8y04Cpl54@=Yu_CU3hZQ8G2PJUAD1*_*q~@F)h@0a#=c4VaYE?aW}qu zE@luS@Gn3^qP35W6t!kKTI`G$5YkfYT zYD(f_b8;R7xOeP#YXFLS^QHeSLPJbuE(0zi@e0T~$-Hx-Nk=|4EgxiM7{5GUAMo89 z6m$C86zq6u9=Hp6d3PPeK~K$pu_y~~O(Iht-_kAWqFQ7-UN-3LIos=1w}ve40O|rU zpNo8sI??O*%JjFnjGOrt7%5cam?sHX;+7C!^U%yW!3Wl0yj^7LVcyL=lU443mw#H< zlpPWX;dVMc{TJGuoBjH$6M-Mzs5*s%VEMvdY6eKjB1SC)DSI`yu>eM0{ms80&Nop1 zIr)x)ec=BGyaWI9Fu+RNNO61z_wsInw8g zAm7Zb$lX$*fGMLH#Sp4!AZh5Ot!kp6+~;AI2_U#vqa9fQ|ebO6~#Q1OKvo?l)GWhpZV#nckD$h5|tQD_pTn6*(`~ zLG0XH0U2A#%_Nk@zJcPEt+O)MiI@-hm~-!yb`C0_wtOvoc2uX+Pe)y|bI==;s^#XS z=$~oFeL&vzFry)0;Vu@=wV2_UUOhvxddIb}8T|81k14PAbZw_*_8ChYA_`5okITa0 zlFL7Q`-9MYO@sHe$XmC4b^xEEQMUWDaQt10z2m-8ZUzcWiG`t<(r~zhQlZiC!w+tZ zCq)rrZ+d(FpE?WiMgT}yFEBYZ4kBM7B2J}YB{SW2b9Sp)*Wc2r6Lr<-B@}%2T9tD+ z6z-?*?|0q+R^Mp-QCK<+d6!<=Ir$IY=f zq9v0!)a8Zt%ua)XJ7tW8}hVL&FOqVQnem zox6W;qW-+=4gW@xGS?6-kiBp*HGNEmS8>AQ>s+5*{ZTSuiA}gKp_f~I(L3Pobc(!+ zr8CEjV-b%kHlq3AxlQ`37;gZ1xs||ye64`Ea%C_C}bSxM&dUfaZmJFoWAoaJwPio5s3n;S7_(?*x z8Bp4^{VabT`ZX~5fUWM=aO6qQX)-K*19A2T;17RftbD|v@kSqd_n92mr;xsC;s#|@ zYfpuXyQ-du>2u!NI8b@b~!V{>kbessy zjmq(w2r~%!m62&};96Fu;CII&I(vkS+~DS$?CBrK>7z*z2P5lQA+8K-StbNt!lDXI z^ylv^fT=0!L2caPg54LCF zaKlw4r~m1t4W@$^`hYC!r>7n}o0@}mUONX=Ylu@R6Xyl z7cX}hyK8xEJ4PbwZ72l2F%IJ1g1h(lXeFWzB%I<1(3zs^Moihy>DNQmjUMK?)fs}0 z8qC#o2Amy5aDy6IzTAg-}GSi7M*A) z!7!Tyw(0Rz(MZ>mzwF59`IJ8um2SSdmX|kZxAI3v6RswG9T@DhLlw7l*=G&P_diA5 z_*f!|v}AyJyOB7&t19zPa;{!2*Ubq{P|+t`y*jBL{M%bh4x7u3LOcqE-H?YokAwxbm6!Hsb1DmUnzDK;5#m>D}?4jZTtBfpY) zHk~N-u+#hzkM@SsK-1w8-T3m0h(~(;R_MnLYB2sf%pfu-onGRoVA)#A6!#7wzc&@{ zs(+m#F4#X(@cMk>O%zt*o5DDIweA3(1ML@5QK3K*OMLF+k00)=|O%Q42BLJ=MQ>@A%Rhfs9cjlNrsM=AC%jS)6NcB~3KSeV5M{3~$#r zW<1b9UhFL1dMrs%3Wi4D$+7fY*feE5mV933q1zGpNx)}LNwFQhoPTj^ZN$d+yTV42 zIvnfPgy&LY^P?L~$T~9?k29$L`-$Fvp{)ta`rJEmE|TkuP8}<7&q2Y<@>1{OVk}5_= z8M@w&-n$kcmWEKOT#xNGJs(xwL}Q3e7i6(7C=?J}3=Lego8DKD@CAX~XSSnJ!~d#s z6i_oMFwMoJ^Qh>lwIyE8m9)gO(Il8w^{t!+z--d}mk7i1jyA zA4N+sq4xZ<_)qz6CaSohK-4JSQ-hEG_Y3({?5SHQhu6nDa@!-<%FhcXbP{*|Z{q8Q z<=txJ6kd}pjRKU0{_cxZvg4ccod1T0b|kZc9$AE@!3x&rvwUUh`(9AY10%I-ZJ_zcLDMH5{=pw z{-I?LZGzd`v$52M?z!Qum1GYZCu#ayr@~V~r@r40mVK`cYnW8KFUFpWNT?c0Ac@!z zQC8QgFFgKTr4K=RIg>Z!d89m%PbRN9*bH8M;~qA1lAR$=a& zy(^F#SBlO^LfP>q?s4Arj0IpGp;|QGS^*2m{M#3SK0;N5Jou;-d`nVs2V3@r710AK zX?Dy@37PVcV1|_EdJqLYxv5Qu(4>Y(mQk>&gkd&+!*@ZXtWE7HpH1iImLYivp|xl0 zSA(8fSV&mOaBoMaA%q1B&QGwJvIsFoEL;_P8S9>MFm8<~j;( zfx$HJR`a`wi^H?Qz$X;ZBgmo}Q z0L+t0)D6KZ)z%AcDuqrQ;=IOoB-mbKEFuQO;mx~tKdonX&d*#MJH?H;!2|jq9v|ET zPl*!`_4|EL$hudWRbS(=ksy(?EI{svc0~@8**uO%RFmG;F{=7~(#`nP(3@@$e{g6KA?%I*9=?Bu zek9B|&+y(eUHk!gkbJdu)O%omh6X*b7Q@osHJpTB%yxL4=$(L{WW7&op1qMS_sav9hs6-<^oY}s9(^4pZY%xBcHpyE>vEfBE`DgX|+qZF`u?K z)kz3NE%Y3;&lW1#=^U%RhQCmckTe1aN8EJAE+CBVeZAGS?;+kV)x0~LhZZCK)^j&} z0;x4sLgijY*iF3LLSYb5H^NNuFI2o5Bi^g)rKA0J9}#fH)v@~Q)3!GgHDLiv3^fMm^JLMnkh&1mg_$jbHN25yzq_+|rd4(l3*;!-o%yJ0I}EXr;-YFA3##7)f>AqIiTjtUTq_Dnn6>I*SYZz?;F|O zhFbJEsH_1&=ff5aC0unu373M^$lO?Njg5)DZ<#^^>?r)So$dkHpL}~pd)7Az17f^L z4G~$7GX`WcNO;ods%)@Xd8740t;^m$YsZzrPFS}6rSDq&J$*s?$0|sr|5ZIFub$zd z=@u~FkqTVIzMN;>JLvwucZbTTmw>7oK`R{L;WDkn5p;mS+PxY1GSzl6_{*~*ll2VP!u%=p#(bkgd+4FO(=^-p% z<>sl7U=Hl+n6?OUGL>pf(vo)H9RE^ z_X};<#&m>E>sn)v%M5>+KW5Z!9U7fcq^TqCL>``e$~S8e@AE^$QpRfMfl8yKTh;u% z6~WoxfCYb92VZosIV+^1I#42?Lu&IzC^b29OonE&i_f||P)Jfl#P9wX1k`EO^b$jI z`&JC2KSn0nOtUFVj_K}0Q!{+f5N6B`7Mq9ki-Er* zAmPRm7cbAiEZkpnPI%RhIbjkJV{Il^nq`|hKPA6}Bi0C=XOFo#l4DiM!3(OJ5#4yI zuHgJ*s&X($A3U1hY8Aiegeb+;XE4vl|Q zuSWS42jdG&?aB%Y;*Dh-9hI0iZ^@ruTjWh$HRG202WQS~0P`eJ1KL{U#EYeYJ=lfa zVFNohZ8>X(CciKS*#l=GI*d}#)h+$eOygD%4V9f4OUkl|>j&(PoaeNI#{6v=j8=9} zHOkNJhWHhszfl{)vm8MFaJNM|r4 zZ1EZIQW!Fcf6Mx9o*XIIK< z(^r7J!+Y9A}MoRh)O)7r03_2-b5azNX>_Z%hMrF#+Lmd#>#>VH)+6g5#8SS+J7A=O$!LvY&go z(C%Z6V0Dkk!#quhL>VH$MIW6Wlk$Ivu<*`9r4M4)3Ib8N2I~Mq!uk=oxP4k{# z|DgUSXhP8qmhwbVRR>0Z0TL4D>;GU*Q^Pe!THBphho%<`eU1-REb}Jvh}7aOR_|}0 zAz$Db&LfP_)}f8QjcXlzYhDb_<%rS%Fie`ij5isPuGl81un+z6gxGaU6h}9ADjZ+$ zzaL?DCeR4{cJmaiL{~@yC+GYC;e`t5Nc1 z2&1lp;lN*t8dS*s!j+HW5b7|a*F||b&!L|xsz+BpAVL>$V7#iYkUu86Y?+($S-?h zglH3Lgu4w*f_4;2MT{Z|m3dL$c=9`CbKF_h7^KUoQ?*|gZBV?^Xp`%9n+;c5+W(d} zqi}qa+Ww zE(QMD=brc~L8P!t{YA>m3dFnL{6IJ0jZQkh(Dw$}spWr;sehB7F3vv1xOtC=(&p!1=Z}e6#Z0& zmE5b~Y#wRpL`O5$k5cII(fnrE8XS2UudsPsb{INlGQL>0ZTO>qDPvDK&gQ+X?4J%-Fm{4HTF8Xq+gYysdoE3sRCube?EYi1Ib!UxvUH5B2sFT3U z?8hrmgM2{l?{(rIdBt&aG%T669JNz4zK2w*sfTVne*w3m`PeQyO$($HS5C50W$$$H zjBYBN^nDf5xD4E3m-yu%fOkmF**mZ1L*7W`u;C22H}O~Ki#Pe0;dp|%lf=Z18>U|S zm+afU;cbJ*pik%MY%6v)NM2nx)+OAT0G!p_uQ{9v4Q~iy5?z#+U7J2}z3s3jZ+1s< zSj^~f1&B)GKX|~j7?d4nxpn^5wbL!!`58PZ*YkqNH3TO}HA)RP@wD41Y7vGveJ>#n z!zSTp;4WL~+Nx_Fl5*!>)~Kiw*8yh@6=f9lCpVl))GE$x>1~H|}c~+F({M4O)Qb1~2DyYm-GyN{6 z{Og35cc|bkI{e#9$9kN;L4K!s^S{)VrtbKxLC<$(%$V+}n*TL!EInWOZuZTvv*=%s zg6Oz)k2wiE7~8hSr#L1t4VO8ib2CffK(u_Jb^MP7y8^v_=ydkZu=|$2E^XgKl%P2m zB>Aja3rEu9{_5>JA-w749!$a8LRDY}JJy%B4`r(4om?lMPofy^TlNQCo{W+mm0O6Z zW+(B%9J3KGE0zxgk<=XmAdg}C*wOfBqc)s?;ziLVkqVd;LG!z)WxtGU!H zL4V$pIZc?KhLb2#;TtSH6*=<|!p$V%>9wp~sKKUdRX?5vjFhV$@}P5wnf^ zmAe~3N_Bi+r*o-ZeoW$KT0I*@+wl*_uC*D2|FMmAG)IEW{=rx!BO2caBl{wwfbK0T z@m{o>SpFa^&k0&e9$YPa)IvDvEZmT${*#;eOTu%?BQs2z?gBeKLGAaE68p+a93o4^ z#3cS#Mq}O?&JmNM%&}8EDJBRacw{vL3H%RDLewYuZX2agI#VIOO- z%{D9wpiQ(Svy6)_NkFb7m+jqGX!}u(j$~BCqQ&Z-XC#S*_OTEea z&}^K?DvO&)i)|0Sn{SFKXce)pU0@R*uRxOKt1n+-kDlONp?{t>aa1uIy-wL|GUj@P zgp{tm?BWo4`<#0jGQ#E)tjRWdUz|84O64&NG`gyU)>re#uX5 z?-T8p2}hd~adb~0GQ6NJ>-PHNsApS>njD{*NFjkPZKd?OCewA_*{Yloe+Zx1I-rtX zz(UQ1kD|6M!|y!_dqb^$7ZfZNyx3-nDlk%u`C>n9KEkKT`{2QSm>jdQn1#NoX_#%e1a;Zyil-6!<) z>_U;*<<`7GUAHkD_IA)Jb_ao4u?LXLcVhJ7ShltILw(F7jn_zf@O%2?zXrI^tZS*0 zgWAN>2Xw@xERg^DjJjn%d@qbvj92ASQ7aS`;_BngjPs&(V#42eACIBJT3)AuIyH}< z;9n>d4Yj6?QVspcjt_X@H8atfvh?eNi!hhw#~Qv1mIUhWrij-@YFy_i1E# zY<6e@sg!3IO&=JjxfB61ur>&{^cFAiRwbEN_~@$)5_nb3vAqjxb%fiQyD0{SvTiCX zbHXoyJRCcvVN53r{*SO_#6llNVfav~YhGuYnR`kdvG^RfchUK1xKVw_?da|4-h485 z7i!+$<Oen=rrqD|#^RR-W^;_Ah^~T+fscpOurCh1qRCy?YcnUs?GE zoLjeK??FQXO`qnA!6amFJ=#sfAJj2wZ2M(Zu9MACh3uE=!!%n(4x={ppBR2gk+MR; z4yJ`p-$|k4DCZlO)8c8~nW?$3l@_mwmh#2@Z;ynT<6N}wh7i>&8ii+f>dQbLLLYi; zi$f6-CmDe+vp=G5Bfa8YE;Oe}_le$pn8tDo`FpuQy2D)Z(I;z@aRoW*Lw}VkkZ5`z zt~qDk3ROkn+uax%$r)28jP?zl#?*=b5=@Iwk?ck_eH`q^BoE5`Hff-grbJi|Z)s-jzTuN%EW|O{ssXx%G>7uK>(Onuy3Z z!F(LX*m z$)l!GM;qk$R2bfJa!;>NYQh1E%TvEY${5Hd|38P23OzWsG(M_u~r>ZIc|hu`Th8l-6Km&yn~1CH-aIfC=*x*~PD)OPLaaNV`js1H`@q_HeUHI6RY zLE?Um?N`Ys=RBsv$A6YKEdMNur)*2fux`9L+hBA8f4Aq_t1wO^>_4P5VTO7K3ldQo zt#Rx9`f9M|msJglnzHy5i^<-JN2S(#C!YF@Me@yqc~(GYqo5EL5XV)6GnV9StHK3d zt|f-FU6%*vp-h>#rFJ|t8F`OD4Ak8-mH1`lVIp=`b&Mrb+gB)z#W+_PtO4;N0R|`Bz`J8z+B-9{|HIW=g~hQ(+oFv_ z(BKx_-GUPuC%C)2yK56HxVtqD!QG+J;O-V&1Hm0~SZnQbzq9W{zgGWMHEY@!bIi@L zTJ#1*)t++>x910(7Yc*thd;r1Q|*ShHB-7XK7oX<>D5zXTcsK+{O@_fnf0`_0_lh1 z8uVSBE>lLwHJOL~1T(VsB(7ieqv7Bo2_``~dVJRzrGj71vczk-!at#rorXZcm-LfA zEv22bu+gy;V>HBcYyew_aU6 zaW!tIECz#km3@=W*`C(;dHM8*h=TFxFm#UBRdH{Dcbl-A&4tz18@7s;?+cAN;}gh@ z(LNR_J75IU6?8U#TGPOO?kat~c>FTC8u>&_m=`0~BF0k?V_yi1;RMbnzy!i2Vo*}C zr^g>3k0PvF z+VrwdFnsHY_jB}fsSYtdAycZ17=E7cl4-4tl0;L@n$fG$ z$og|SM>2NzPLp)(u{~h+K(c#pJvsmUbz0T(MlKK-tkSGaAClp~M^lHKA+2A--pT;k7U=Fx*gsN_)auEA;oSs03B+!IMz z3dl(EIZYV4PV5Ets+w8B3{n+{ud?5+oFl^*B#_zC8kx$Y%tJ{i zWLIeSwwi{ZQaSBxxLGu&wInj&RY^Sf=ee4XYtrLJ5rFq~GXyY~$@D7SH5xy;Vsxzh z=z;I92v?bEvSDWnAhIgPBgbTeLH-6YEQqajX5AW0Ri8CW#B!n&!v0W)L_R@M5u#|4 zf*Xj5GHj312r*HG{Eks<5Xl!aT@kDmLcCSeiBM%K;MG?MC(N8%&;yVs4%}YUF8-oZ z%*im5-8t6l_JVtD&&(tRnxvC&&Aqg;I_pwVoVqfFq~2Kt6`!*-P212ns)=8PJFYfe z^L#8ttVE4Gl_^@CGf<#9e!)n~D^YLlLNl$lts!-H3RIQ^eRu9{5QuF(pd3vZ!V|Lg zHjunWJNq{A^DiIPG#&V7C71Obyys_12VHSU~6JYv%9N9Q^1AN~Dm$l5&u(-ac zr4xIc?UB)ZjdG=s*3#Jg%o4?-KPA(Dd{^}EPj(^cU`B!HX*!o=C*STu?8)WD?NiQb z)eTq9gJ%J%drJ#_GW!0vyg^yTi9XIB`6{TE}r{$URy=K^WzUtm?03-L$vwI4*V~t#L)iRN+KF`GnIG>j|J9k2bH>2r1Sp zqHm5`+8uV0I(pcu1U1*7QBJxl(Zo!{dnWrr4;Q zIao2M2~>BP}Q#cY?OnZ<}qNoxq`-kHrNEr>FLJLwS$hQ4OyNGDdJ zq+=yt6-+o+j5isXr#^G<5`&uDwmOFFTWlhAoVic%WsDVkMeFImDYUpHVi7T%jx5ba zTU2um)&5?C&rTZ4gMUFkdmyTFu~wfJUH_Rb^T1tQPyRdBZJM`N5zH6LZoaW43(JBh zKl37uoHfi`7M1rY#wniQ zhZ)0J1h0)KSF5I$cEIXE3+O?23BMYnAO%c)LxTI3C&!Mrgd&nO)XM3qUnX(GY~C1e zt7uCdXG%{pVaHr#g7-WTY9LB{)dY(E{A0!gO(L;gXJGhCorZ!h7B>N% z-PR*OE*#2{wcyhxIv>c(A%5_HZKLx?jWV^oo)#~Dy-5Y_vl+pBrpGc_HNPpd$d7{6 zM76kylm7+422Iw~Zq^$*^k8J_QIcMPnoc}mY`U&weYbP5&D#B(FgNuy>yF~jP}Xo+{qWq(brwAIPNO{&(9Y>Elf33Th3TeP5^!N4*~?0{^jY^%a{ zTTN@Ca`#Awh}-25SNti{sBj5!-e)@7ii%!G=4-Pf^`y?+npt?TT9tSjH-yAADw$_W z=Y_h)d`7Pi81UCQKD_Jyu-#Sp)h0n+)a^S-9Nd*>58B(bqhAc)ONlFzIycv+W7vclI@2xGMsr}a2jH@04fBY$tb%-!sdSsynCc>N~-+JIl!1oLO z*ddF7;7ZxJ=^_Pxf7M^a4{tU39%%Bh9pK5ZNhTY0pKQb_-DghXS=G?nt>Q}Cyz`&6n*pvzaPza@nr2QEsZT?0_lUYte~#3pwITZ}U1xs=9A1(0zL zHHf{R_uCD*Z0U()&WD|ph;kk}rN2GK9^W=t!QQfRn@rc_s}xtsca{6fOl}lQrm%EX z{Z+*2>_(Y6voDf|Z%4=i*d%UWQ0xyt>Z|g?GgK|CY)7UrMm%X*MyqThU4Y-HpR8W( zc1;^hT8nEG^$f#%oK$3;XqKq#BFIq$;EEZ4l`W)~%wPOaF8t92?=$`q1l!@iZwd{! zk))%Rl|ipoQsUB-aopK=os@<)kt4*z?|GnRe7*x`x92#pKGt3`Mn1>gJD*SOP%2za z(4AAA+Oj}hi%Na5G8J%#J+U~o{&`7nuE%z%+JE20n@4At5(V6E74~N+E$sUjB2I8N zZ(iDd_{FVu>d~I<_^cx9@rCS9Z_iMk=uJu=)pl2;)_1Q$L>W{pl^uF%oiCwnjodbd z%DfRqBlRv)2&bqrtWzKyopY6#3f0KdmZ}|19G~z0eL&i%1tOu_HXN74jQy9r-r~`% z`{cl=P{M(nei2^BXoOIqBG-%ExI%j`z>SBCJpYd%4T~G zi(^c@i*i}jPl_=!%_?z}&wpaaIYIduD}`XmQxG!c4~)sX>;DmXm4>_33?ELZ38gc^ zsOw^knJkzdk`uS}o*pic<`mK&!vD^~Qc>2H&dG!bk?Je*V~8`NGhLEiVw#NoOY_ki z=`>w)oLX*n`mrqb+{Gn8T4sb55DKhzr6 zU`$et`zZK*tEMRC3DYEY$b?2BFURz+THZv~T_v}}gAPldU8MD0T>dhN%J(a#%+tBjz;g3#ZE9cZ~I!H+y27f(l}3wdnJB0_=`HVf?`Fo`d`??1#Tf!2z`kTaCI| zR91spKzj&2{L@zH^{yQ%tTR@k#}Rb;)+OB#GOB2dw@(X=pPdz%ez5cyK86>NFnfk! zb`yT44%xj{q@cTO1eEFAQT)gV*1ZopN9QXx zzLVQ8MrBg9Yi^^fGJranWk}sg8B(*atm$bO`#6D4BG{Ss)IHD|_>G&&P>e^3c-S@= zm)XPqj`m>3$6o!Vb7;3v--cItvB)gG#HhGk#B+1*g1EA>S6?g9XY*`o+Su?%q7E=;=Rla=tb_ zw%PaxeEC(TcD2y9BI)kqlluSwJ|YtR$sPuJa;zrVtm?qu7RP632nM|HQv3=~AWQtG z+JR8l8e>9oTN_1k6#^!F9D82x^5;qw|FGglm9V2JeE|)%(jdPR7520}xXc^SpBrM7 zXHm(1{z?gvAItWWPxgvB8C<=TO8xIzTbM^QLE{Vz?+f()I0SCnpVQuN zFi0sTf|*gShZWS+@*Pc0O>^`EQ)`1eMlToYM^(~5o*VJ<2Ow*2Z_@*VE!s>U9 z8`2S_$^M*c+-POdJ4|O72(FoT^AB?57h+kF!F%s<8L$-H@3gc~>z8y*9k(8(MwWUP z_cPi%`uZO?-;Z)mH(h@?Q+{>)qU%-zP+is^Cg!k%$o-p1UZSGM)*}4N1!t z*~pTLINd(nUI3bqsc|f?ip+r&O5kGYQ;whrujr!l6q5`FNEWGIl)r?xsr~fe0Vl}e z*p>A!|25|KRDCJSkfe_*>SCI2xu`5&OO6(qIAqIdQR9s=Y?sTPI+8U3FSt*$k|2ow zC_W~H)3I%Um=6)D(qJN_Y|mb>lGx)M(s~?VBf5XYMYIZ*(Q^o5o2DAv3k~8+!JcDn zoF1~ZP4hyIn$4gkjG^hQ!p6H%W z{x^+-=^xb%1cW5q19NZLtGh|-iW7&EEST;COZsu?Q=rhI5b*8@k(8Zk#=-787w%o)P4U7wB0Tnos{3@I>pO`ZZ>xvC;Fzs+ zoIl<}Fm+f`DJZX|wPYq{KSJ_0e5cFUUG+T6+bZm#hs;kEI{GhzcMM7k_JH|~aLFeWdaEU2PYy!KHU}m%fun@a{Z^~|Was=m07EK4g&AX&@{5M`( z0j7{`S_M!e&>m=G?aCU0g9i~pudS*DIP{?wtAq29w|KTcd|0}^R_@Y?vDqO95wH4G zS(w&DM2tEk6NS>$TX2fHF3v5%tHU+4CeAdwy?0l}#tvdUkbVmy`R!4X&X|RN<$7PO zis1at-2z@&IXG0SRcXNa#qGF$c%Q_)=D?ID0XakM^pEb+HZVRBFmq+fozkMZ&TJho zq<4-p9R%t@zgJNpS))=Jqo~-s`cJP+W^Zzf?v;yIZC3+cYPr0haP22Njj!96pQEUA z7X#Rxm}@h6L2bpEX&kLz=H@ zTA)sQ*fLD!zOrAqTOc9mW!Pl#`%4pHiBi~jCk*RzoN0Yk)*C~0=DMEAKHL$cki`Oj z{~QQsx9>ref9hh>)HJt$w_jmXCLrzd>j9bAcb)KY7kuVbt8_PV+3--~#j-j>^H%1f z{W4qT=dsMD@oOx6urG`t1ov*9nxbGfv*C@IX)-107=?6rJOV3i6kS3h+z1Etnt`Q! zRZ~d(zUL@(mRbIl-QDx)6OYz?%B3wd2fKNnApkz5JiCY-OLPZsj_TITC+7+C zflwDl(kQR7O*Lcu0|(}A0M~P#$c(N^`zLbZ)${{!V?60gd|rv;!RM@!FRoo~NK92j zRz*=iIB6O=lk{NB*UaI3IG8oh)SOu*{ftc!SpS5HZe>k|7?D{;pZZ`~u&|uT3*0z- zAW_vb{{*fS*<;A`f@yr-CcjpH5*~VGOa4iPXFU zA=dHJginj;E0O|*nB3FYlnJ>lT!8PRTTZ#)LfU$%Gj&1IZ=42UXT9KWEXAu9m2OaN zYdGBT*g8Q$CHh3BV$oXcLgnlbYpB<+e5R=bbK5}7SyA12y`Z8WhF1$ov=_R&M8dZ5 zIwhz62@va}nX5@;H))yC0Ea#u!e<2`9HZ#bpoUjV&@03i=Mli;{W z*%S-g`gQZ{3i*87TWnCPXej6Pq2gbE<0V&;^4#36Ozyu}(1AG6-X60C%?aK_<(h(xtO*IJnO}czt3-wS7acTPk ziC}OJdvHofq@#UX1Ct?Wp9epClaJ1&^q4iPvMV$h3ybzw zwsIZkD_(D9aB5TljgqoN7abqG^vlHupgQ3~Wao5+hZ#YufK~Pf`7aPpK))#@n;r!f znI*xRDJfJOnf*L0S^i%B{PF-Y6frqy?Uwq~5~RN`bwhscnHmaBk+D1q%57 zUasQ=?LN-T%=FFAs|A>uQNB*Vu{-h@4{8(Ni6=h0d0!Tno0Bb+0mu*XQ+{N}$Yrfh zm%KE*karc zEoMV*^%Cg_vmxCca>soP?&#~IXt`r{a7`?yC!kTPqR!Yt<*D((GNU`qLO9gxF}b@A zPg@T<_yzMG67$_Qnj>eX{_@J;{hbH9|X&P+;E^C6;jJ?oqY8h~mgU(Uil@ zgVX6QFdf?r_Lh+4$E%)ywVqEe54yJ;M(Hxh--FC%&A^>ozcVS;@VOeYzCBB9VPLm+ zn5?FUL#e0VTMz#Z`h6uMpn0EiE~PKg+sCgex|&(vR$-&wHm>tKbm9BC7pB?s<5!yn z8gxUsy^Ic5Cnvu%!05GMpB-qNLNKo}#@Vf{hyCxAe_NYW*#*A+rmQ2pl_4P~dp;Fv zWIwV=(>cqG*359Z-D+rkP@r!>W@;ymb~`bbM}A64UVMYwT7(VE%m>=COjInvsEInD zVv7}>W#w)RcgMR#G7ZaDi_w;WXyJTP!G60V?bi}}+g)sVf&+y|j^A&w7d$5teu?xxG&`pSJ2RF*BRd`9Y3cLxoSg$8lFleM#f->++l3D%DqrhakZ` zg8?8X!Rh(Q?aI!@QEo3|-lhJ+^_-y*`u)^n=cx=}-L{Rx*Xj>RE-D(XB~x1T=PyHu zv{%-{MTp^Xrx{xuAyRDJXscXCocUkOV3zt?3p|4$?)p3{Kf_kJ&Ld8Qg|8BVB3A}+ zgN|;}%>0DvKWwjfG1HGMwj;J3U=KKx#@B@FxoD<-R??=xY8m1}Z3AkBYvT6iwc*CR z3a(MPN`l^o3?s@OxGKH!uN`c;csa=;f0@GH9j=h6!z7>^g8KWAd3GyPp`WX9Odv`!kd3%kFyW(|C9 zyX$p+zJ=)i#&kl`Q^2%Z_dd*#J^xamZUA6oRcA=SWR@jx0)f{3@G` zXQx1;i6TfV-;H*voN1kqG-PapszBK?6+aLzkuCoNHuauS(HZF3xtxIeE$YR=JLtUW2i4K)q5sb$S` zV&(n$uCGibyW<8Ex6t+0MHnJx+{nw*l!a6I`x^_cVoP-mTbxF!b~0(Y*Ub#&;T;LT z3Ni8d6kZhG^?tW&o6cFCpW!cL2;$vry7vI+j)-tOl)?h)Dl>Sx!76wE8f8(VmNPb> ziyMQAz5LQNiQo~@d+5#kjmadVKN}6~6ddeuW@0_r|6>iv45d3P3y7+{ZhhW%`B~Sh zqVn*5ve*Ma!OzZx)*lEy)YHo>1AVxJ&WH)P;P}+$ zA?@E$p}2Mz$c;I^30);{A;Jj`knsQrt1!G^MMqN;;~Z7Uq%}Dsl+m>o_D)qM`HNxX9{d?zM@Uji6+5Sv;mi( zC!6NAe3Agd@F(jzF`_^pH21Qm+^<4QeqS+!(k`&}z6QUN_57rJC`y@FdHRjPH3iD! z9vb+IvboE3fq~;pR`EG?@79%&qt$U?ZS-b2qGt*(lClytj+^%(*w-o>y?`arS6JLt zde^ij!#^b<4mck<#xPWX;n+-)cY-&;%twp?K^hY^aK1I zkFK->VgTu+u?7-~_|N8@N21j^Z80PT!DqvRVITS)eHfZPc?G?A?yts&$n8T(xfX_d}Ye zJ<%l9C5Fq2HG1Ktrr&EC$O>7bF#5FXbF96QI@x<+@4eDF^Par`d62;B)gs!$@|pbY zx(;o{A-Ig0lBWMx3&8vD@85Q$&7;o*F}mjO=PvF`Du83x-6v@yX(77|!q zuS{rNe)2%BYKylU%hoMIN zmXCNAM5LLJIVgIK+e-$m1FmB|0Q|T)=A(y3oS5`}k_iG(TK1lXw(=ks^rGOx7Wl@}QQIrIbqasYZ8x4*^7}B8#gIZgRaND%6ry3@sDnkKk%Jg*Kdv2^ zq@&(+j*ga&yf8}^A}dKQIT0V*#GFpd#uo{vrF+in){Z9j0NRW3FFJmD2k8Bnm3`AA zyXExN_r7T7z2g|4x$nG0h?t4Ct>l#UI7wFZRAJ^l?d4YVWwiWfb;N{& zEM1Im=3cvSS#bT6lJtdE^JyitUm|MM!Ah@tMAHn=0g`D{ryMH{rQIPY-wu*-1!C~o z@v8#pghq79$R$3H{f13rB)Hur?+G0~l4G$+s#mKL;uXiQ8K7)_?uufP%Sr!=N>6g! z%{yXW*tE`>Z(L~$hMLSzS2mcsOat%Bf{(oSgoANi-@Yvx)A2e>v-22}hUXi6O=?Zm zVBdTa$Spm|=n(e(i&Nvb(DvrVG^8d7pK|y4 zE0LccT<=2#LX5oLMx-En^muyY$Ke=e+Zf(t(>dvqrjuDUc<_Xwn0C;9a|EQYY-SVa zUfo=2mj&q`Y-R+=3~Bih`(z>!r_VY9S8dCSrAmnq5XOKip2Dt@MM~kuU=t zHw)7V$_vJaszhy3LQ-pnzB|g>?AWB&x?P%HixI)g!CB>Tqm%6iu4|-d`onGVHKr8M z1@2b-IoXXL@=OZWM;X~1msp_*E|#_MK&B-!OP)1P+WlntW_~4gO>a-88KkN9bsGo*vjJ3LUwgEZjwSwab& zXLUHe{ZW(hzCXG(!o>T5$NFaaYqLu#s<5LQH}mHY)ww|QdUjos4Ob$%k=^kerB4G) zz%CDNLl(nc^UM;*1<`V@bVl4*@z7ayGEy9`^L$F*_^jW9lfbJuw^PJ3p-8^tXX~Ud zEorHw9wkJj7$2`21qlOZgl8rT-ELC+zJTac*B!tgA+#bg^}h^!5$W}$bkWImbF?YN zUK=i25yvSma=i`QQoQE4gVbinmttVG;;g&E&|a~qOdz%6C&yzFRaN_i@=O4Ae3UJ0 z4q7^pjE4){#;If#7A82jxoF}(B>VaoKz*Yu9&?Vg*A$f-`G~806=$O~g4{$h$&t9Eie-Q0m$Da<@k$2f}Sll5- zW#fmGTyj{adIdKTpyxPCs{$2b1Zyq|>lPtKvCKb@r3J7r8>0gL- zr0#p+QGM4zEL71G7DWXOrAJ&1N?1{Id87^8{v=jMsMf}F`{2rcMlvT<9V384J}wl& zs_hcUwLDx9CxZnrSh}|G_k(}btTpG6Ew^-bJswL6Xb+R*%QA=w%XO}58qn}4bPTe{ zblW&23iUqrIAgrI{q!3C_x@0ETtQAy>q~1zO^*g~c5b%c(aDnkoIK^y#zkiz@ULog z&%)^VZ>;5vT*kXw!z{+Mo6rFabeuaLo4IwFb7hO1+Q!SRB_P89w@b0~lGRBJ7KFK%_} z4-FlWK*mFs*V`ie_n|`DdhUt&b6r69izM#Gg`l{SW(w#&f-&_#zDZ4jph?gkbZdo` zCo)xd4gQDd1CVq#^cK*XrDUcSDpa!NM7aaj3#-V^Z)$671+}U}{ZHAzXBg-8^PEsU z>ck>nir+sgK-IcNrL?{Jj+oP~#W6r*`nB1n4d%6a^i8Y(;4F2j_@2juEQIjzaJX;i z9G|B5w7Q|T<$mKVDFU9zocF&bjU9;-1r&``w>3_r&}`{(`5ZU)6wK{9oB&Jgi*pNuq|rITHd8L7PT}xWdq){$9lVg*hU|M}l=GgK+_SU^#~r zL~S**1Sf7KLIl%B{5U9LoU|;L1C`B!8y|+D|{L%tVnHyNf%U=Yuu+V_Sl%s(6EbD*m%9-?9 z=!=dAk5FUM4=fR;u}N7;N*RgRy>Tq-wEQD`Rou-8cr(}az)vuSp%ETL>%DC}#kR(Q zw7%Z>lOm47f-dRGlE%pq<$5B!5g%}(zw4W>aKu&vEncThS!hI`=j6_i+`@C9!rQrB zplw@elHs*zRCWGXMwrs_dE$cqU~6Wx;$NqyS;_q%k+JRHf!$6MLzhNVgqev^{N@6E zHRrj?5aT}~KXb(c%0^98N`tZ-kj@X9u0sOX`Y)7mZL#ftSW-i)>W%9#>fYjzTa6c^ z6o+X;dzbVOo&v;ELbMh{qG z(tU1@KAg^ENltnvrxPgE{q1f%GF*#7l#{xkUCjF&uW*jEN!f|FV1E_4G7`#o;6tMx z4;BVs!owc`IivUy%@qmfAtvQ*{hPKVvUOlI4W(#+l8~iyW*YP$8AW7rA0?U3D+Bcr zW1Ds$8P}=-GyQW3*dakn+@`}00`*|>@MygnPU7qqtOXQ{kEzqMC#GCeyjTHMM|oYi ze>FhB7$ZjK0DoVooGCLPvL08HB5W{MQU^`((poS3c>4s9?%xA?=DurW@ku9DN%$@L zp%8?+I6FBd*ERLEawyTI!6W;>c6<=)*W|FMH#U=YOR1|ut2!^&bN6}jbGN~)delo` zkEn@$lBDJVnyFgj=0;~Qj3*6iaN8_V%UKK_q{cVq3R~SS*F$~P<+^b7JgO^hGgGDJ z(xZ^26ym-mhklC!7-r5%QgRemRO)L)B@qZGF06+62qOkG3HVeANrd|N zYCuICa3X7wgP2)x2)y7k6%rUeje^*m2NP?}LJrT!t2vOV|9l-QLyCE|gr<2Ix8lq? z{dA?a7s{N&K?r|qWtgPkUDyo1x$w3iaM!L|4ZoynN^Dr#EzxniK?6`% z{Um{aV8F69T?G7;4a6u&$cVttFqqbam021J-Js&g3U*;(-u;pi58-AF1dZF5QxE;0O`TJ4hG;V>x^`4>wdH8aWSn~dzH1$i!`TT9F$0)#L zr=oI?|F3cqV@%(Jc)-O-Luf*P(?EaY8Fr#yq(KVC3G#}mH@@066VIF~KKd85)wVzu z%?AeVuWl1X{&C)Dauw2|?Pz^))W&<3m`Endg1CuDauf@Je2k?%@JdmWE^^)n1zg*Wo4R3;4WdRHDx@WgA#*pBbpj?MD_`y0wx*!5`{M0FTgChSPV6XKUXPA8W$WyLH68oWK^yDSyOPOj#|00yK~Nra+?wa zaX+DaP;8f@2J1%q%4gYo25EPOdY){I;N7puQ22cRzo8Lw@RbajYfAWGD>(Fjz#5Vy zCOD95Hz5liFKqI}n+X(1FB6Wx%oPAx2f6Ib0`ZhsIu6L0l-41x25KewXfZ3ow6Q5%* zwaQY^xpuCH(&-C+#CgP#PDKKYj{(K?IB9h9`9WRm7bMp;rlS&sld1MpKLFT-tz8sz zJX@|esLTq8MAz4<*a&Q_$sdYcgaO_?mugvCKNT%BAi7YC`K39;f|{n^v}VbxmX*t< z=7?_`uBq#x?5lK~bjXyVCxf$Hw5W|K8ru*94}31Fc#7)u#Tav4B%-@bB8veb=%`nb z#o!6F5g88fj7%zqsWyS%s3b`1C;eX8jOa@;nHsA@jLA3sDn&L7gt|sv5UnBY^n$h= z<#^!=KZxM_T*K}zXG5vNS=FSRe*Vts*}RF;)A6I;ai1U5OhIiQT<#En9bsLE$8#o> zz~NiDO0`FGdW8Y(BXOm8F^rpA{G|1@m% zEWIuuZp#4Vq_y=5CsJE`H>RbD*TJp9E|QBz?y#uuYe}8GwTUR!huw;m6Md8bMqza_ ziR$@Qtwd5UCK^SVs&G8R*2(PMv9(l3ba7ps?~82^)GugE0~&M~+VQ8m!)*{pGnqxdor?L>$`2;% z%ft|Ev&#`OLgG#^tP2rPp&RN@t`FL16B;Z=`a5&XEz0haz|hYhmp;pAdkHgqag+Lr zgVqZ>`7{+z^}+DpEc3rcz8*9(rgRBDGEx?HJ)d0kC+?uu!D~We$IC0inDfw7h7r&R z7>V%#!)Yop1;+G1sc40i5x*44spTuKa(>tgkG&VWBf!Wsc%AzrZ0HXz4Ehqx=&Z)X z-e2UR4aCzFqW45(`k?lp8z(X`YH{(@#zu8Xj{_*-1#E_oW@z-r>KL>-F!ly%pm$yM zZ#L;T-y`V2vtOx3lnnO<6ur3!`0Nl*8P*LfYp$XR?PIU7&^!F zcw_VmAq@0s7}8d}vYOyxyYBk&QIec>a?#`d4w4cC;m0R_Z`l&yhq{y)I)KTU;qR3{fx8q}+BO`ausS*jYqldnuOUf-u@H`8fL?bor; zmMC}-vDnRWJ(yB^RxEc&VDrPR6@G%Mh!A#7PM7#7$jq5s@js`es|Y;{`b>S3F9{iw3NTxSY{$7(>lMQzzU3N?juzJ%VUoe6TSJ_IbOf*y@_&=a`DbAt{- z%ookItfyhm+%7Scs`tg8XqhuG6vI;v{z20J!Ib{JT?kqlkYiu_1EK+gu&fMp#@cK~ zUQ@B&=1eZYmhvRx>I%2ye)FF$i!R9%MzBpjH5 zebYlfL{zsZERy+ruvHE^bUdRxf*-g4IdT+ZTrK1ZQYus_j|H{&zhBJ%9Q+?1;`_0H zNK{4-ux|(uhk)#UPDSO{W|)CbD8C?CLlrJazuk~(8F{0(PaMV9o>7lvh)qF)wTWMr zPHva-_}x!fHB}bJ?Al?kmbu~-^1f6V<^}^P&!YqpY{fylGsDBuBu0X>Q288l9N%}T z8RFN`;NaLuDg33oXOHElsd!wOXH{tBGmj2j<3elYIyoHapl!P{%si$8w7kEk&-2ks?E>Fk_+{DkQ9%l{t7^K4a}E^RFIU09R?#Qjqg zhna~K)TzXfV)kntbPdZy3NOx6OPo8)z|+7q4a>=VWj-Xa{~JM{^wK4<#8-Xw;Atfv zJTJ@Uk&M(U5zx{pF_8QJSjm46`+tlk$etz0?2{k--v^KL$oC^Xo_Me6LuZjeHTpTi zvaN?7+#TNi`4xx{y83HM_Tm8IbU zJ<$G*z_u9;13o32PV_rhw9Xi_c$D7J6)aLVaE3aZRY=olgW4@R{Y3Ck+ApKpxqNDm zt~k8$|J2?8>!?O+GDcyk!UOyd$ZO3ATGinr zGAbl2S`PKP6#egS4n<6;y}jK}U*kR& z`tRqq#5H#6?y>FY@8%5=lv8HB!=5+HX=Cs|{$shpGES~WTGdY}JgEKxA4nwhz6}8Z z#E^$uJSVz5tBy-3OKE5QRSzO?I97j)1+xn!z2wW+nHAjgmUBn=|1xaXKh%ah>wZ@5-skZP}o% zmBi$A*@9^1U%vLh`20eXwI2EsQ`66SU#*NYX3udDo@t*^;JXD;RNd)FUo za8iz=qN47@Kejb{O_{igzK12SC(=0kq+jmmBi2IRJLO5ZtkbTe#lmqNBgZZcpQ!go z6m%O8bi0|(Un&&6z!E=`g$CRYTlSk9$kvuN$h#aX zgV}x7T(}FCHHDFWJdIT1aR9Ee#R@w?;p%E#W|XN0zSQI2AhD(jJ$pXSE5IXQ3snEe ziNN8#^FWV1VkOsQqEqYyFcme+2YtIF2MH#;AjKY^L zaGAx7@#A+7LA!gf1Xa;Np|uNsYd+%4P}7G6G1lF*$Kb5o&n#NnYxxqz1ZHPu@C~u- zJSrU~h=m96j~)i{4a|M9P$?qlsPZJ5d%dic1t-A*W{}apJQ#@po|c!jBBu1sfBMDe zfn0)?Jh~B_gq3Q*}5k_W5)d+jBUrIt)?)qdaNp-H<b%rtffzElF`V`xt-t8rjR>d%eeLSn)?hhRl9c*s5kJ@^B!+$Cz;0I;!z#-rw@79)WHZF4OXi=<2ZjoO*z9O# zb##wk{ze^)#}CfBALfkjrbG>?c-E3-u{a<8Oo&te3Go-mcc5a~@81FD*-bQfa!aK9 z7YSI8SHp0bdx7QkL`m-oF)Tk9lbz?~uE4Wy|K~|IcSU_(y1 zZnbUQ+1W??ZH4`;7tFVyJZsCoUw&8I^W_Hr;53kZN~jF}Vdy?;s3FT|dA;^zBG_6& zLK2T___V32Z6S9gw-lf|lJ2%XGHr%&wDFhpwGPL;jM>xT?74p;XIc%cRu}=|WTu4I zxb;q6|6kk1P|~);T;JSH`otAMGrLmh>E~_CWgpDx-n5z`Z9`ZpUty~$%@0tkc2YzN zmW{@Nl9|l}Q|86KneSP{bTaVmXuDtdXTz1NELpqnfu&_&28=>?YGPMG?aTzvFTImL ze^{Y+@Z(Vd@AP$Vq*}@AFwEwe;$8z-EuIN?8d;7uiZkayLJFrU;2QjT0l6pUI9MnR~5Y zNya0&aO0ptj!0i)#Z8Bwc(i0rr?0W0D>v0o;+tv*7+v|kB_Fo6=6AwklUoZXl~R>e zU{A-KD%HAY$4YnfHPW%A!qmG@c(#V zXwe>iSInTT!}O?t4DaKO0pWr6KYyG#1xi}n#F0h*eN|}jkltW~|3lMPhPBl-U55}P z#oeV8EADQE;##1%7I$~Q(c%<$hf-XMySux)yE|X#^M3#GBUf_v*?VTzteG`CQ+Igp z4e8Uo3$razub@aBOUJJ4{wZJogviNF)o@b*KmAW$+|@5k8OP}3I3!7e45j#3Ma%DAis)q9!f)&fB3`dVcJxxzkk>Ry`weF6*`PAXJfMc|a{4!a$wY12tq| z*k<#)ts^hOv*~pWKT@R#4{~N{nvJUwW7HP7;pDTrvFh=S2Y60U2}0fWirY7@CT5>O~~i)uZ9u=6$ZSvey|r4BNu$I*%{ zK`v!6pU*<@)m}@!P5~|`^?R*|L#!QUIvS zJoNAtJPjSEWeKhsxCV}S7vz;(A}JMEKkF5H->IMRBizmRxlIJ>aH<5sh|;K!8?MV`nc@anTMoVb zx&zBsat)d6a^?C7=FmfpW6K7MluxyIu5EAnVCwF#E`iwgUf^x*w&=tm;`U#rs}O0u zJqduq6SlI?+K|Il_|El*M_s>H{%6A=qiSt_ZZ9njxPy zLCTO_gi2L4h5^oT{Kw|W9fbZ_lsQl%mi(Y7n31;75mK@-al#9ci=DxNZiQSX#(Pes z4QO4Q0xf@6F#`)03x1vhjf(JnE_5&Tq{g^xy2w7oUX@(f?e!ZB6%)KyPyJOtfttYR zwpCi5OMj%^+Ra&Sjt#=6B{?%mw@uV2hf;EPIej@m9w zi^p@{o!KFIRu>cV_7ivLx|MW3veIq|#W2A;XKx33Ub z8C-6csVrA~6BM?|QUKEDCb#)Fgq69Csv&33t6LE&`HbfkBb;VWgs(PkLz>4f$Meht zCNQ0F=P!rF<&jK87+^!33I=AV3~?Dk`eETIPrsAFSdz>C#`0M4MW2)|qA4}J5n3mcnm-KJv4pZ_v!jxbvNQT-xTh{&1Glm}!u-6duBHt%ZknYKr-L*7X3ZA! z!u{^H3HBKtQLV46Vuj3VSjTbK)5rhr9eG&or2b3~u)*M>BKGx>Rw5MmkSgDRij6WL z(HbvlifL2uIW5lSQPMj_j8As;C)~h)xzEDnSRW45jT8;(zZkyPtvw^3{!s9L1%;dm z+UkKVB>Wa%N~!&nsN@eHw7yS)g08+Rlz{;M0C7DZxvjlrN$vq_>z|>Mg{C@D)JgQV zZXB@|?+7v`FVt$8_YBall*&)eVIaDUn@UhtB3}~CJCw-M}(6Ow5p=M(wR`VdN+ ze$zpoYOZEq%p_W*Dp_8Uk!0k>8lPtJ_a>mKm%i%fEB=+E^ZPF1O9Kej=PIS%V6Q=K zFtg=)fGJ@gB|_+YxxY_jpU&V<>WzPjrDZ0kx7IMIwJ zZkrE)ZG-=)NPIn@F1wMERFej(0%68!5z_&eA)*aEvCn+57SIQu4InEinG5y?ZipnY z08d0sT7_KiQ;Y@9aJ@QA^#_NvBB5^c5EM95uO-zEa#*vpjn-|9L>|c7lCdv)#MuVq zosa3$Wc3>sRgH(FLJEqO#zExVro0l_0is1YRI2E$ccfVG!mLFR5G_U=N4fA4TIYKCf> zTjg*f{JB6m$;0GnYkTt};)TOKMmU9osr%UG7|UGdj`V!;HiCAj&Z-=S_rL#~jTHg| zo{OQv+K2(iM|d2WrIgOZ0&{iHhy_tokx|U`-f<}cqwOA8Ru4@S7FKNDya@2B+$yi- zC(6W_8;XT|@-AR4WAu=5_(YETRQChUu|IN7(=JtEtzHx_c;d*!o-gzF_qx}eLuSrt zphHu4xxHN6pP;Je8x*~CU9@z(u`NR=x+ z0U53_(ro%mtW^)ChJzhjcfwwmjT?+J>R&eYCT=T7TarObCC)1244Fb(|4aRqPytl) z%Zq=q&A$}wO~n?_yb*u!i(#yfEPgq7Iw_lY9_)fr3`VQW?DGjq_ujMW1@wImaj9J) zcT|gj5ml~-z=oX7$4TxhOO5%K_k+as?N)vpi4_EGm;lNzS%%SD!??V9PD>wp3Eo>N9pimD z1{%4oYQE!g@+8YCK0=MAjk{J(8>fyIqnfsQj1ece=u@AnG(on9K^km|LUSwk0a%7~+}j2}LViUDwZdYT!>9kTI!_Y(L+l`+@Mi1i zu_y{6!^`^JX5Rf_Kd!O#R#%M&|6#vC~s@>+$=U4o`w)(n@ zCdpNj#XTu&zKyB0%}*B7sIIHN3i;>Jgm7}>RAjG{;WlRxNZFg6@VK_gN3=Uqgy=OSz(c!PmiK|6NFXz`E z@mA~F`gsM%8OV;~g#3Koo^e{w=Q6z?56IeG(Mp}6=aZ!|E4f#Jja{ut9Gtmao?!qw zSpZ*NWqnmMYGQc}s%pb6+hzw_#05r#cep5UOxj%O*DM=a{YNT^*M}E*MSp?W%ADbM5ww_G8sM(lB7vAG1#@<#K(t!H{g>rpYo->G$)@3I<_^gIYGMp&udV%b` zfrSj$I@moN!MRE;)Q#-*UFUIKwFhc2x5Qspgt&GMn#pQ$8&O`=6~2N26560P4r~Ey z@rikGLd|i&W!WdbZ4nEhde2EvcyWnma_P4endUsdOKkW1+N)~k;*!Ci@|Or3>$Lm< zJ4)XTQ+~x!H1bh-Y^+$mCNLY2BAq!?o!D9qq&~#mHalwRJqoZ1?lirZ*_{(W_y19I zveF}3nH4gxL(&)y6{nn2EUiR0ETZ9}%CU55y%zEc>^s%<>^oM$4OkX#GA8bO?4VKP z;O=rEDpu#+x~b17wi<6<4`1#q>8McFhkqDm{ z-9VE+$m=WZM*cC5{d7bsw8ZxT4iG=yxh69q-0}CTs zGvb`-Ge~GflhvMYfWlT?0#J>R>$P(!cojl;T+|iOt9vo*X^?We-r*m7|F~)9N+&Fd zi%z+_yI0QVa+dc%H5ahxB6T0qTt%;p z9;)sSW6)_%k|*i^0La9tXV4YmMUWz@H4pwn!$5E*H5FBF*;+@~jlUVLo`AA$kj1g3 zfuT@HKp|uTy)nR%$(CGP$z&vw((Ynb0w?Q~k8p1N-?e12qej-Z6o9MWg}KNSEWceo ztu@Ckbh_v8{&C0k09t2q6TkZ`K=(BOJsa)Co0|RY+y>g2PxIQCSyL6L+$Re%h(n4>w;Y*br772FW9k1tZid zv&EQW1o!Qv*lI)etR9Ib82CqI*>jbV{T`ermN{x^UT7A#TJtx3{Erro7jcT)A!}x{ z?YiOkItLT4r0TqBGAsN(cE6S5J=QJ;upY+s>alc~)g+m!6xoWXjZ(>p8VY{7Hghs$ zPE1_9`25cgj`CjKhS6pTE3KzQW|@`JbPyYac7ynK%L))~zl}k=cA~}xeOIck(A5*h zZ>*J`gCChZ%*=Mi?D0hWuIJ8TS8t2ZQESJr0mXdA`l|sen{w%y=}9S%UBriW=!xxe zaYBL!$se&l3ijTQ6QDAD{yGtMPdl!O!RWBHwN=OzZ%-9d{!;rwAKxC)vD*l;4ixkV?7OM0cl$s#r#IHDQJ{ zKb>t2V#Xd)dJQgTyt= zps>=?x9|_<_vYBD?-cqRO0ceqttpDR;crrKc4o^^uU(7AZgWmeI+1TgMh)lfr6%TBvEM!V%d=g^W8VRzcZf&(*H0W`+xM zU?GfzrkdHgBIGM_(sdQ>7PIOJg^o}Q!#E)0x%uXDTEu92rqvZAQYcybe;Ap74oc|H zTX*Vl@NAAo%f4$gjQ1M&-fM4rc$jKpoTmx9xyN7hnZEf#paY?>xDjgPo@`gvI$wg5 zJqUeQzebNYZJ||ct1Wxuu_f6pV;_CK<9|fDXiv`ZK8Zvl9`fc<(cG|b8v*b78^3IL zQCy}W)>ZLAjq?5d&&o=RpHBgd6qqQDpji!I^VwR*(`!V_xzWu%$-DxGl3}xlU{BKv zR`Sl_4QDpdDM4Ryr}|y@Gkx8%A|Q`JZxfQ$Kmd^9@8xq4{hlx?)XSeASDhcEl#}* zw?u%~=P$_zc)OO^y>*V4sct#nyno@`CzDK~>(CI~7kF7~L$6+>=y}dD-R$ju$_TBE zL$Wi;LfYx!1qVNBY;LO)NfKyW#(l|LTGF>7A6g6~Sxm7m{0o-> zi>(xFDy(K1tGayV_2QdB1Z0bBT9rEjIafM7=Nbp0qNPP-m_PgJFv!I2gVORmp zbjn?}nFd1ht|}2BAsb2Kp)BW$a?@5MZ}+>Ud`BPeI{O#X^}y%7T=5wbjCJlhm{H6K z_qdEHQJ23Sxk#@Mb}sh=GkWeFvYs-hC$Ql6{<_ATg|@;hS_`=%V|-piEVm?0>uer) zQ(`=^$4_iWj%^22527FXvhvLh0XzH&E9fgE9HJLa)?DyR%CL>lJAZ$q>yD&7HWU4_sTqj2CukVQB;CkkB?i&}ZkO zkK}Cdc|YdUoHIoT>yz4s&(XqE;hWp>bW!F=j!DTY(_N={zlWPj>ty=}o#CK;6F`|a zb}1+Hj=vb+6$4R$#yF$hI+`0%0nPY|_lGOiEG@IRn4rd;&%-ajJ*8Fk^M7VOpJTM_ z$H~X0@JZmbK*9B+z9q4kYYOV~z(E05v4j2QezJ zAR8p)lZi{=)?t$^@2Zy3ne%<+-fUfGLQc*oaVtTZadqhP6s=XcO01FOn^FD4qA=4bnX>blKfbU=p@4!;C+CxHR>1@+=XrdyG0|qJ ztFT3uO_uy3#vugXpaIqZ*MB^z2|StUuL$(j@H@{`(<)@l0&n*b=!l%DHOF!8(<$gQ zCuVUTBnjYqFZI%tQ)W8qjUM_(FF&s-qy&9=$zmVZxc;ckX76Y7tByKjT+OZb$IgLcbK0tKSsV>T88?n75N_DL%4Ib%2ITH$rX{v{Ue*ZW5ChUh+Zc(xH0W4t1yU}x zk{E%{^>u!btiS`pdgh!;Oiy!GX`5=5GFfMi%6XXu$^tc1;p$%n@f>wxMZb~=!u@`m zEa8)P03R!Z^_HF;qizj@Ft&$X_-P|F zq2x~`6Couf2!+mpzW(4re5TN{2eVFpP+($wYpa)ny(9~l^hiO*$$>HHr*VSR?6Q_A zcX>V=16WM{w4+$G=YW?4oi0|i?mp_6+&$=eAX7`(tTBZnQC_PnEGIzrCmvS zMU=&|F+OAbK%OO{wlpK|z3%ngg04@NwKLGdg*%`0cCzJX(N8H-6p_c-Y z{2D;j?9J#1Rp_~Ftlx8)%9;K4fR!U@5u0(W>-_Q7cBU1*I2N;EF7R6j&mY#C+TB9& zE6Q4_>AD9GrS>s79v#)uew8-@1#|tyvpBuM@(3a%hfM3=o<&~n?R%wLwSryOV@6dW zZRd552M)23d;`UJ!R3#+^`;}L+Mz?LO}`vzWAi>s+BHNI_wl@8G1A6jS}~ejAf}8G zDse-eA&OjEJejJh8gOnE8^Cr1XGlZgE9YD6J$Z_i#65H~rSCea7(WjETiO}p_-|(s zUzmtZO&&o#wR@mlwk+911l1a$J~a3zdUGz%vL=jitGT!JX^-?Yv)@3R;HGqv-Ngsb85<{3ELG(P6?q;yC>UmO zKT%@dKGyWSV(VhmBiVsby{Y20XG(=-?UPQtIT6a=CL-kA2tT+|)E;N(*~b+5wae^# z?CgZva$KeGuSF$bkL9XUJo#QI5@>qE#+P5bcBnpliOP z$RZN}dv)E+8p%tx+sAwze9VB{$(Ys%YJs%#AsJH81Ki2k{jBo? zGySIHs=1!00mYd|HUiH;2@9d(%j~*}L&aoFD;`Tg`5;`zhoipgi@(0pf^v^l>5m+2 ze9y46I&a-x<|pgk-*`d5r4AoH6QomijNO6C%C)@VI_Kh$=W4?FC)hZylr4O|nbQL4 zJ}l&5r`p0`;Is_{5Tlt=>da%*);Qu#T&1xep~Dlo!iT8b-(PHnO-=%wc<%`TJE=CU z>L$7&frH|GT)|}9R&fQ@G%o)#jb@O$`+=orb+cGv`)FeOL`=*}!-l@!a_!L=xd=W& z<`0#7oHVV=SB$+e!3I1ZFKm$TQ*+k(x_dK zp%5*6=liaR?ht!RwGy}Q@1wAX=R#K(N4_Ks;;A^Fe4mFY$xwn{#Iy6VBNy9Q*Vcau^Zk3(*C(_}i*{_%(-QCKFHi9EkW1z2#0q5hR)2(C5g%S2kW8Jk78p794)Q{DOAlX=BWPv3K1To4oh) z{lBWnv+lTS*#z6WAF+mLa6H0Mp;na zP-)&{gXzKNljc^sDc{OFVU~if*XoL7es-4aL<{Vkq1_E~QyyFE!?&EEvPH!P!p#*JO_XLt1Vd^^@9Fsowcl{hmGf~(-2&v7)EYqJAXj8c0)d{v;^LDZ zloBjScVYr79)0%av^ZgH?Rh29--CG8maM7R!$zkdd#(=TGhp1%dE+XMJq^w*&5Gqq zG{WW$t_uC3aBZmK{;RfJI>Y3h)Q2#NKVpxxE$#W+3!^cp{{Jk1Guaj_b(x;~^PZlf zJU0ByF&R}AOznx!V^f@}z~R^oW6QF#3M`NI3Ztj`T>m$m`d7xnNJba3AFECn!Pc#b z&x%y|kkU#$s5S$X)YKC4u<2E7g?ASJlBBIZnqmc8dNy~l`Y?>{bk@^7^aiYHa|82? z{jak~Qw0ba4!0n^h2#LX3orLN2+D(9omWwqn41}__V7Ay4GUno;LyTd{>0vL;jT(@K{)9BZ$Mut z!NI4iC5%ffK_x(HGJ)!i)+qu}>ZEDCv8(uor8O)ivb8~YOUDx8(1}pS@=Wd2e@Pn?Jhj%x#T%R6$^;pxdNONP; zpVtZn;QU%khR`!4RK+@!CbYFYF(_qa)%|77DL*3TY~v^|^F(SZ`JXk$0LG52!av%a z6@B@3%{xBgm}^A*sB-z#G?8~TnkncLQ(aR91w~cS@mo~49V*z2ss;s6a zsVxWTH`Rco)>0gM-md(Ked`a|6ZfKk+Q_R)okKhP_ucjXJTco}Tu`&bL@U`Cmpk@VG0YFs2K5XP9|;pBxMMCbe0c!)*D6D55E#S_GpA1)izH z-dvyqP>d!@$dOn-j~yvTUaVipxjkr%K!wP4F6225x3z?gc$)>4586e&a8SaFx$E0+ zZc9RG6LE?)sD5f?aW~1y8%K~XeD7K3kOl^JE*L5EM-JqzZSr3nwri%o0W9vGj)r=1#)!!Uh(MEyH{-=qF=UJD)gJ-ILDlqP2jkFpT(;k zaPmi4%75*;h@&ETi%@^|M2)!e50mov?>!+jB1ipR%%&RkKyF(b3Un?5SQYyJ>ynmhsOP)Jj2wh`ObqmS$-^0!d%V zarvyGN8O|fx`$)vEH7Ny+&N}&iiRXkrTm@4G_-ZaJhOVLu)z$9qXr$m{K6_aH6`i& z%JThM!>=;7!<#y&fTO8kFZ1$0J|_ zu0Q+Bo&C+u_B~)+5BT7seT1Wn62_q=6*61E+g>ngZc~WT=HwXuy#emKvTleE) zY~N;0>M4wx;%p)Hv(*(ForHVNsJx&sG@>Pk{-yf5mKeMn$i{LmXJFn zenE1VwWu7<^1KNa1EAV1EbVM=^J{9sz=#84zC}sRZXO$q= z!WR?aF|9Jb>+nm@w@e2I2b;pA1dnY&XDg%Ji!SY}C6?r_7r4{ryBdl*u?eokh0NKnQSS&tQwT`Wx_L6dhkk}^ z7RVaVEyvLcevt|>d5DVvQ#J4Kj#hFD@Cy16Yz-N#NOe8)s(ZZJbK?JBkW8hAxDC#y z53VneYE`@t_$1SX`SZbm7-4LxV8_?4y2-pjsni~Q`LQ1=x8*zuQ8{;44cd2O$2{1# zh>7j9vH#MYo33D8$)SW&_CZ#vtjGAIPmg*YW6oRS?QY*Z+*yf5@3b2o&Axp4om@#h zZa2}D3~0js_Rq}6;{XVcZ_wkH9w}gcSl3z$nm$#Pwzai2ACbBrK}b=1=T5?^vFayAl^0K9t^(s38IcCJ zdv{R~Y_sW@0%;Ls@EeH-j6KrVWEINFwIUN**wClyx5+ME++L%a@HHg!tl~o22Tt_v zsL@GZUF)i3_%KIsq8lFgcnGAQd=%^8J9VZ zGaGrAYvQ%a?Jp>Y-e);7fl13mhR0ksme#1T*Em^NCNGKu8I1Uc-jOgInCWb3idJ*D zhz{8GnRf`H=WM(ff4~83vY0iH^);P<59=e=Vpnhhvu^@7&5Z;R|9V#-@AsEbAIzmO zd;gIWB$lZ#`n7o6Mdpm$>QgG0p9B)bChLmC3I(&FX*C#hI?(6yF3DK433NcoXKK13 z=}b~oIFXYAvbAWu0``vaHU4Uqo=5%gxY%)CR}W^W47qPaR=2YkXtM;grjw*>AP3bU z^lT-zfbvFqjW1&Xur?=+ALBoM*2$TQ&^WpAh2i-+OvtB$+NtjC^izIRz8!;DcbEnt zdU8Pwyt=7)uLyWJ|q;hiiXa$49l1>Eo7l*v{O-{-#_!y zE&IG~!eg?t-^3W|{>@?6tEOmY<({!1sAB8-o^UtD>w4O@{1e3q^I>zJig)MkSJ?xt zL%+eez|2pbn~In_;@Mzr&H&!{JIDW>qKx-b#GilE{4U<{gXnTwyu7?fOuk=zZ&6-@ zl!#L#r{r&hn=m6NRZ{L9^NQ!RX`6Fx`3!g^*W3M|yShX~NH)FO%o7KeU3=GQo zeO^85L?Z3y!=E4Jnl~=U$4*+(FFj-#+3=Br?r7)=o9M{(oa3$@>aHxyyPx|5HA-*) z8f}KB3WGy+5u2{_tfr zFm4ugePvHRJjy4JeZ~Ny&-v`vs+fHa)n28UIOXoKdw7!x?DodksgfloM}+#GAz!gX zw&T?@JK`{~m3VUa@LYCGDDMQ;NVX@lN9n(jf{$V)7E?dUL@A!(|^s~ z-(WQvm7yay40a9KV{yp&T?4uLBSWxwYUxldaXwJn~H}9Ph@9@ zOWsyX(8J|f>G0iaGXekEPu-1{tN0aDzOi?k^8r_IFS6o}Qjr*>YjkHHpOK#($UTIs z_OvP7=RXy z{2Ft3YRnl(o_BKUarKs75j#A(>R__l;%2kg^0Fc?=e!H)XyCOmK276x2$uaN^ch~y zcj7<4UN$~I9I6!djRO8)f}>nJ|7$plUfkZt$H&;179ILuL+Pc9rlfv@A4y5_Tk!f8 zMwy%F9JsupIH_V*Bio;f;T8|YuMb8zJlYFd$uf-$T>)6C;;c}73JFIhmVGQ`MK*hv z4=3xGY8)qleQ3zNNE?p0d!+=g0@mY5s@#zac#&xa78cy!2W@{C&9$qyC{BxAq`CO=)xSyKhi0f%}$qa}xZwmYu851=1+xMazclrlU3+7mh=} z9q9|8|278JN4{dtjaP44e~LUyM8l$rJg<{6+8|w-&AW4?e#@$}dlD?op5y0M4 z!#9o2B`@>sx;Sz2?#y$O1eHXt-+gRsgoO)R`xik|smZUe=@WN&3HCQ!W6J?&8bta7 zA{gLk05~oXkiKEmF)SvLHk||@HLIV50qZbhnT|(Z8?FaKJMOio#TwBbXr7?NjSQdH zWW=4wU&$`y&Qug4TH54u#u{bSoxW6%2a*c`cSwayT)C;MkLJoI!ngin)mM_PBTrHG4Oc$|85=8%2K0>T@j_1GhIULr@#sLpvA zPUMI#^}_{i#&vma!!2BHZ7Al2d@M)y{3_|<$t9PY8090W$A-RdYWBbvd9v2K;;gk) zVBFZ`a^nMt3=F}dD08Zo0s(*(8HDP z`%J9Yrnv-bN4|lNcBZjiEYs_2>naWKPqB^QMwxml$v4jO14(2Vg3c2rAGt>vyAVDP9kd> zM255|wE~`nyeb7$zo5p&#U`c@@Jk2@?3c4ai{*4y69H8P=>*}3h={dXq{Vf3E{vXw z;GZCxUqVO)VhtZg{aw-M$~@S2x7R-X$sLmK9Wb_1$}?nXSoV5-)*pgLP%V`FqR!LR z1(?+N3tD%aXHime;4jm!?Cq-0(q5ZcX=#(;*Z2QK(kZ$^Z=T`#N<4$jw9ciHj<=7J zz5%84sWOx##>)EMNW1f9d%=h{2!^jcZr_%DgY$bFv}7xe|5`W?(T78l;4>8o67y-f zaUsY;(1Bd9tr+<~(!>pU(3kG5&Dby7vE9n6W`2IYlKYQn;g=*l&<%W-zKNQdI}>tJ z(m|j;x548Xk`U~UP6|106n<*{Z;H+VPO$)RH`%)0V2}k<^!&#XOu~)w+nYNd;{z>g z{bYm1i?2R(uq?G-mJmWv?=6PSlhZ+y!a@QGZqSj{jD3gEM;TBiU6^qPQQwi1-xUww z=LKb2IJjP!;kLJEW6pyOwQo;;{e(PSvg5yt-GTMqrGC6`O%>TOI^uV}q?;#qu1k_R z`_o&4Lz+ii9v(vlZML@3Pv2rsUB`@_f<2}elNrIlBhixW%v#U;@ynKqF_kN>Q3zS} z{R9p19*HEX=tDuVI+2Nm)|+?1qS^b>u>AOQmBTNxoLX&th+Z0&AL>cIqB(T_wbkaz zzhluvnA*%uVa)1SvCH_jW{erkwb)7=bMS;S`$0Me0P)oupnXKfG$QF=?GkAHo3J}k zF$I>kD}^|8TKDSBVmNN?m?pVQA>7ChRAxr&Y+P6zPUrdYxfviup)9n%g;K839PyI& zgYdOyOs-CO#+o;Fc6QyWgpoZPKkf9}Ze?s_8%^*3y$*ArEqU!U*C=#-P>(&?*8S^e z;`0muS4^1&*RAp%kj52d!hx|5@Dh_U=S20J1AkCBtEk8fy$mOYkcWHjFHhIRhBsHV zb(It0$0gm0g-`R3kFc=F!n}`ZU6Bs>goff`zr)la@dKR;g9}qJp+;m@Z%@u^U3`x_?VI>f+IfBB)FI-;u2qWoiqznMw03@eRbgkgua_?BRL!EATSCTsJZUi0yy2$7DzWq4 zkVmTkF(_qlqqdHr2u+^EPCt?9+BTmAu07Ah4B@hD8h0Ne20M%#k}@kNSBeI8shH4+ z5P_9x{eEIlm8r#!tOjpsu6BmR+42u{p?UK~o>h}!2^Hk8P4yer{@wOj`$1s*Uzdc#loXPL7)lv-(@ zrq8iOefM`NHEj;Zuxb$R;tTpf4)MKy>uTYkL0N!9RBfY`)#XO+Sn%Hnf;$W5%!559 zz_&eIq~cG*kyQ7(9V2e335lfHJZFTmva?%XkuCcRm^lhi z`UW<*ZW%(qQTm^m9oMpL%6<-j`xcY?n4l6fR5WT!xaAl`n>Li+%P!)D(7pzj)@Sn7 zO|!hZa8L62boD9`iOyz{*=({AO8fY`R$WG~KQVuMr`;h_<~co4EL9)3@sB%y7|4PJ zD5HmV` zy7&A#tJFRY$>EPF+y#vxm@$O;M7y7p+UKb$HrRYPq+0Xc1TwIt$8=Ox9UbeHBiHWY zZA0F4Ea3ZOFa+2<#_}X%Rc8MM<7h-EnMBp#O7-8lyqROcyWm^+zK4e|={`hzg^VAW z461Y!r&);4`9p+?L~L6W`|`Nv!h0Hab($kClk*mh_}}d<3vFGtLM+G~T>=c{CLGx@ zu*NKOPokMPzjwjuUzf7t|M6lrbDkkkV6X1QwNnAG6ZyQgD^!=-l z0FM`UnI>HKd;zyD;V}*8IrE^ax`i#;YM&Z{16r_62ceVu zZk?mv5D(4C%{m###*&HJrLFl|Ov&i7cZhPg-f)Wk*I-cg$#$FJt0UpZIiXVOGLx-y zjzMLfZg$~+#wrSd!+8=_#OTyeP>3Lbv*}p@-#=YBt&it}H;IkL!(8Q{6?heO|GD|; z&kD8<&L4NPJwK_19KAau*LnwZ!ihUQz$)h7DBS)xEE~P!*N=+REVZ8dUBsqqx6ExQ z>v6RERtVF@5C=;Y32n(6RBKMUzOFw<5mFP&S&&09cOnd0x~;eKq0#WmZm{LE3Eq;6 zDsxCXNWa=!B19LV?Z!V;O5flj5fyMjDozUh3eWZ6Iq%slz2xW5Tg6IfGcPOtab^Q1 zc%kvW)GE3kcHK&tYXJF+_Mz78J(Bgp>a4S*@JS^;Bv3;`yk^WQU|2kam{Yk8w^0!9 zdPte8oG>c>(I_+kXIqvw%_6eH3BhL=jF_^H+J>@MM>Nd+n*s`*)Nd1fPFe37RN@Dc z5(aRd_5C0v{q|*+nlPMVcdNiFa}w>ID3s+Ws{tH|9hCgub+IGK5)&e_nz;>aaJj0OVeLaCz1 zioZ?04%*3v@XLnA=~fvIh}OdvS*_#R1Y$he`e;frZfQAS{ih&TGZW?=?!O!sWqxWt zBu?<|crc|%FGqZ`kt!f=NXQe28}N+Dd6uY$s+ZXbn1IM&29QH^o;06TKG1BCUOx4i z4|u*_LwdbOzn!o}3k|}r_xkj4X$!w*cA+tpM~j6n|5UsS0AuuarT)#NxA9?cNguJU z{`g}88?S5?b>T2C0^;I)zXs@r8qi+SuGykO?ss7#CFy#RXI=_Es+(c{5Nv8`a^LKB zHQjG}a0F=u`81-gJ?varA_p+Y&2>EL!+vfh^WvM*Md|gMEmAz!lpe-oIB|Azdci=x zFMoPsvRtt9hK8FN?YdTeU!5$V&ol1AXbqxkG{Kt0Ex3)X6SS_57bTIaSct8l_ex!G z8mpNJyjuE@)OpU3JUE^Z#qkdg20(JFKm`LlbZR0$x}152uX%@f`m*Z)&6+X3Bj1sS+G;wT7d)y201DL1{;|q^lBB* z1rLXz8ohBSa|85Qx-*6Z(=F=j%0Dg@q$B2g#OL-A>x3Bd!I2x4n>AnyXtxZcA&i=> zlq*mf6#ti&x=4%pAjnL|BiAFzXVK|hb}nLu@k8O%b9p11!z3nsc6vxhqYw}V10I4G z?vEMjoj>n$9l|*zrm!ZDoPT?;3N`;EtnayZXcB^o(&Q3%aY3IZ!Ut3^{s@I0^6qog z>XVW|Qc_vOk>>GfZaFet{jvY&2lI+-5K<7;_ z;%X>%%{xq36RI1eT%2?^ez%`WceLu(f7=$}kgO_y>e@)#V73U9H-JGm{ffCjZ#%yb zRh&(5dj~0mohh2;rMJ=4cx3r_%~u_*vdiFn^K*#7CqmvMPv1b}P9RM^@j!XqB^$#z zrH$*WAAh9$qOGl+GqEwr(VMu|cXI*O6%3-=T%0)OU|R;}Ka#pgK$Srb%2zUgyz6gP z!nL0?huQRzXMN*%7ED;g72d3h!C}Lo;QKn;vW6}dq)|>t0u6ldU_x+E}q=Gp;Yjyj|#o^oHHcLaVSAL z0A|-p4PU6@IRkVa7vzhHAePh*FFj`eAGweaYiU@ck=P4+Q0l3+byt+v$(4V zdwoHb&^#Bv#BFncAWM##EF>>K7KZEl)~nX;^mO5S$i&sTvlUMv`FG(su@sAUG`6P| z>etxbjF}>;c6Yz+5pq_gBD_o*m)%TnP!QF6))KRQruH4NmeO4hb1SJmp0pU>@*>Fi z1bXTcW;vNFBeOclr&07cPL#0(%r43gme!I z2uO_}-JOCWB`w`09nvW=bc1yB-ox|ze|WvP{2-Sz=RUFa+H387?kb!lK%O8~LhA9_ z*N8M5atlvqLVdl`^d4m{&8%QSdvY~0r_A$3?rnHs=f*1^AM|YT9TXE=>WhB#q+is< z>0kv@S0I1zcHMV&as&``!zafv}5>GbN6`j z!!P|JUW(}f!@H|hj#ZD>IU8*>6EMPB(T!+@HkUV;1EEVslG;B!&Nig-lq6eFnwk_J zx-L&Zrw?e=#x9HX2PSZQlea_CD8OtmfFOV5JC)eb&$g=VkP}^FgY!3R1$#L(Tc44L{@r#@}QxA?K#X`%lbo8{6?qN zxNGklUC&PSHp8nXHH&dH;h$#drZbHW{K6dr))i@Rz+9I7hAYp4;~hvumg^fQe54q% z_}M6W9wt0bHikHAs4p?%ymA8i#sn38yc&({tI&`kbfmZ>LLIH56NS>0R5Q z*Fax9bFJr9{5@9w>~uL!neExT3<%k{)4~^tXr}*S4jc@92~5Z=xv{nfZp0_+Wyz$o zMm~>T!z4UgujVedIt#T&%jg#nl3Pu(hGIrhO0On%JUaZ{_398M-(m&<{q zz*&331VPd=R3{UTP`8c}2cv9pzC$|0!?2Tu+_>GnHRdsH1t>&J?=q}7-?X|K`}7E5 ztcu;G!6D?6(^FyQkr&BbAnPklWu%L@-+%=4AXFv@%K|KWi`K)>5v}w-&_)+5Kh8S#R09#jnC~rhoO)69>;Fx^f-nvvfZ7=0v`* z1l5)SnNUxu&8_4jBo3WAU1g9g%4Sy=dRH!Iw7I*}|D1Bz1oWtB2LJ%Do;@g_fCLsc zFjQ|dU6p$|WeBS~$W;4yp+=g)aQq~rn!RxpwtBC^j^(uX0K5U0dgM{F*aAcUC2r}6 z)|Y0y2n(Y-W9uPjvJ-_wC3{=}n}#h-;^W0OG^EvL4()b0-!0KJ3R=c4vSmy?{n2pk z@4Hj8pUJJutyfJu*nfo7;M5y0>!e@SCHU_K33ZaJu0mze1z#FeZK>UMp9KqrEdLIe zs>uEO0vcixE@otFk222Yjc2~t>F8+#1P89CZPF!)gGuXiS3W*{i}V}sTaAowju?%W zqJHzKd{euIGZq3IiUxK{2yEl#n;_95DiE$yf?r~v)t?@u9^b+G16dEEy|!T$E4YHQ z*ap8izR!%#F8am?ZOU~6GK7wsL}(*%`qx*0I0UI_&MMkm+TzkbiTXoR)U?AyyaXdb z%}WJ@xRI)= zYCKm>rEqq|gXQzA@6>MwGhcng^+k!+6Zl3zt(92suABzwX)OV0791x0-?EZBxLbqL zU}ykerbniDHRVE9>T-2;viXObm_vhA+xYupPt^*frzE6eEg7MFAynE>@Lp8C(qFps zRPdN=Hf~wCalBhbyyHR#(r?)xL#zP)>H@b^nEk3I8cmY*)3FwG+Pe=Wzmdsmh_8lTwlWmsXLDZXCG&J=7}}GHUn{o3467oH!5gLn-I{va*wY*3 zs|DQJwttuXWY%91r-mMA-?TvXwe1;e2gN21KaWWIKw*!k!G$jWX_4(9={z~IvLFE- zW%yS*OR^&G`?7%~Rjks+R>jO8Y8#yL5`k_F&j8cfjOxyWah7A34mK)5^HRa=NZ3Cm z)Z%Ggi^%*N`tO~sww2>@2p1wz4gheadGkHzF8maT%Su>CX$yK;I2FOzc2}L*1Be3N zirc3vz)Lq9{oB;ur=;CmtW3DSng@~7d#fNtRZ2U&gm%X2>C{ze8yXe~_dx~ufexlQ zg=|91-ryRp%+A>ubH=oqg!z%Nv0ubHOTWkDmf{$d56Wlg)0c}iGT|r@*wKUBqY+V0 z0qF;2m?YlrDc(n?3f08V74u>?MNEa~RbEGJ=Ts4I*UeMyKHs%%Y-}*`qu>C8@5ETH zBNJEI)?W73inD*7*W!)uD86lP*Go6dPQH8(?V(jd5a$>P)Ti0JO`ktfHGVY)K|hx* zYM4AQWEeEgdW9mZavCo!k_i&|Rjj|LEFriPTNvBGg7W>ftr(X9RGp^@P6pOL~7>R$QZ+cLvY}^o_w(-f4@lq5(s?PJ5$T z0VkiqEF|O}edc0fl}|Cid&(AlB|g<$Z8Eo;Rln8CiYwBpmG3*7t@Wku=6(=TcJN6@yhFeObXm*Kl4Y(svi!!al2fcu@7^ zl&*-U-(C(XR!x^`ho8e$zoWFwjTdQP=J)Dw-`23{VdwvJ;2F%i+2W>-QYMIMsaE6{ z^6TpFA$r9Kh(SDVabO_Dyuo`$0okys(WRv_;ZE*94#Bz9e2HNamwc=r@K3qu`!?41 zMIw48JdfbmOX7X!4sPE#)veLc+=Bz0gs<0pPBvOG&LNcJ50thqlmSViO#@UH?LhsL ztOd>5t&grVx7vu~0)=A0BkGk1{Jy5j5UD2Xc#Io^PN}3zZJVE z5>j1CHa2WedoDFd7+QkP1Q|Af{&dt(==zedy|?cJiaK=Uu5sL>Cbikw+c7{T$g|Go zIFods-7m++)Om#rmXQ&PF2d`GTMh{R$oa0=t1`FL-1NoON6eS|h_fL93Pms+f{0=Z zzNazKDD4EkSZKJ`@H|q#mwj%3_R_dl2YN@X`}paY96BYp?xPG=kA5@<7aWoEJtD0; zC`HN^hr+yJb!}C5iDcfMb;d5@*v!JCT|_?y%tIB|xlnfEN(vj@GE<2}V$x+S1YkGLJUA^7BQv z8<$lc)L35e$_;WwdSlyafvi6d#O`hfX7>8ef%wJ{VMX#H$mrmGQ8Nbpu%?_f#Msf= z!h^s_-&N;nukh@iF)_#|oP<;D)O;KebEhaHXC1Vuy$QvRG4uzTPL~$pfF$jsx}WEtDpUGd0JFp*9n^ zS*#wzv;}I&FofkXd3zOi*5wib@VpB*M*Dc8cnPAX5;{j4Gfj#+ObrKj9{@lrn#1B< zBd~26(RmizwyNs2qolMvZdToCb|UaQVb z_#C=@{63!A+o_X*uar-jijy4Tiz5-#xL+BFI>*OW_LGv?EjcCo87cywuqYH&Yg9WV zRw)10IlV9eGI(;^^!R~o!P6~@8aQ3cweZ-d(0yGVm|{Fr33ksHv0N!JKiSY)yx^8ibmsq}`ImU@yi$8|TP%OV-S|YWtB7`nDmbjC0tKF*WeU;h| z8NPkm&%vE2--x?t^!JZNP85*aWrCqg9_S2v>_)37qd#g3#FHDJ`1GajbZs-H+uB_I zd`ujXFm;|F3wOS-RIkV?r157-cf*$zrTi$!+!q;CqD?9x5>TjF(*e{gdCE>rxf>Y{ zyBLq4iH!WY*~*C?jx=OG0f6ZxGgAIe!_^&Umac+NQY7d6kz#rGTUUvQpGLt>1^nODsYx9@ub;EkK?>f8bo3*o`Vf6z7l-&8|>UIKcV+7mGHM?)jiKp*?U2|eh z1{fEBCPk|OkR$Vnh|*6tfFcT%Kv(P01;s?SGLE6WpoQ(wYoIW%3G7(aA1p9>r}uAR z2QRtFR*Um7sF@C?016tatf|ptWRS9OE9XXQgVH?Y)Y;m*&a>DmAK2qGKHz2itOn@l z_iB6%Hy(=Bi`BpPFYgy|ujC%u+8Pj1ZeY?r!-S)zs+wn*^ONBo-=o;|6Vpc1uJC~G zl{{#jVI;P%c)6z5Bsl%~jXY1YTKz#iG%zdTbp$ON^BE4dcYbM&`-i_GCGfN7C}qrz zfDzGSxM>3H;Y$R$w=6w+JrS3iMJJmkAa>jB8L26{6ZH)S9t1O~e{CWtO%zqb8m~wMp>jH4!ndj%{HdZfe(rU_( z_YXmer_!ali%dY3Lr!K}u!1Sgg$cbEUeL+F9i;UZeKVO~_2$RMDxU44GoleafE|CuCtphIHWl9#Siyr%*pYhoWDf4IdoDkFN9vgotcrt7EpG2^U!_~As~k40FpwvWh-Jb%3p6A_?jS(U ziZZ~Z&^}paY1XY|&K4Bzgcn2cb8DqQXO&?g;PR~2sI4J!(=2jo35hF*-#^3prlJdP zsHWK3BB|&F`5}n#8%PinEl@NHFW={PS&1e`90)x__%#W^j)hVZmh6uEtH{s9W@Ig=c( zh8K85W9`(3HOgLpNheR$P6`Fis4#Mlv_zP>2-nk9m{u#T)rTNu3&=PNz5mwf$MQaB zoAgLeAEDP_XowOPm=1NLA@AdrL+dyZLmurOz}N{f>Te@=nOP^Bg2yV-A|LB)6kY)6KHgwGQ}zoenQ~ghjym$|aB-vi?PX-j71J5n6?&i3VyfO5i+^3rF> z$eY4yM%BdpGOd)AqVbM@Qdf6RLv>YtQch{>1HMDu_}J>7^k-tZR(J)OLLOJcYpen5h zvGn86*959q_)lJn9%0I_im=jhFD?!r!na=?cLYjht1o*q?`f^IX?GCxwoM)hnL-dQ zZ0$|{d^07jp+Ojv(EM>#!)O6o)wRdw&Swh({GAl4raNEn%TTu*Xdmj`O z!_G4-BS0NEH!=|=Q)KeC*fs|aK$zrVY?Tfyd3?te85Hk7UlC9{9bSIZOpn`B+G z`#anou*pGdO6f;nRi6+v`75Pd$IR;d6p7)X&BMv-U~;kl<4H76V2l_TH}OdX=87&s zpy2|h*yJkt1L^+SMGD6m`uc-vbm^xw6)jLx!i?G2 zu>%x5#t4!OE&X!IaQCLR9)B{=;0`F4G_qi;KVR>}8a^~mF^a_8rC9-mQov%5A*6z; zeS-6Ri~opnPV=2Dq);tnrq=<|Vd;DHAbTIzdQDNGJ_tw)G4Bx}L^FxQm&?36qLBF0 z3e(?=rXR1_@NP%4gwiq*aG-)lJxmcU*|w=eTxyt90JWvQvl+XFN&0L_`vQhgqPoOq z0jQdv-aKJ#X_R)Z4YU9N-4Ge1X__b0Cj#yNkr%;~Ry;wUu@q1|AKO*gFl~}Zl z9^>|_Jsxd-Xu<=Q*I9sf9__LiY6+Wyb-7vcy-l zk5$zRk+zx~GDAB!KU!ZyB008p4(?ylbu69j)~g_5y%`ufJd5d^RczHCoF06;($ezF z2Qm)S0R4#?s5_9|LQ!)W(B{Z`I6LO&05(txhDD|R6-{Xp)!z1Y>Nhgw>>gG*)!1$! zJKN`MUy;Oyy{(T#4jrGV-5UbcZU11Q=z)F!0zRQ%hIqNwt$OE{E9r;*f8^YfVPtXa zJyOOpC){59M#h#{5bp$<1Lew)TaxrW$q3hEdxw}yKq}tMV4dsk4B&Tzw#c$8v!0=3 zE-dtHzWunWBKANJ*g*4?q%&07KN5JqS0~K(G$>{>fYX3NUg+LI?whZFk{!dIZKGWC zsPAGKYnF{WOhn^?QrL2_T4VE74Z}l*9LAr#*faYd1JcA??%aL9a5IuXy_x0q%D`aa za3iH(Jhx0|&`<&qp7A*Sty@}s=k2lPZggQQqu`4<`qo*NqcZ}5Hp}$> zc-B#!J20`y5!vaxaShq4>E+ubUBjWW+N9Q34zXY@_3V~Bxs4~zd~VP1MoHG#$F)-W zpA|``bG8-MmlaZ}#Pdx5$ak6`h$+;n5pb+dAL`d(olbW^9Of8_XCP8#4jX63=CMAj zR_np6Au5!+cscS!#COLKf+Dch`=U$*<7h_~7k!uOD$GqncQATXEpfHcGrolM?QdbI zTTz!26OxvI?dmMNJ@YC*bVoGGzaV!K#MEI!hTxsCY8hP!xI9VtFrV=S>rc|DXn|E2L_^QCy!ok-c>cgvzJjSo_J&TkowI8dHZE4!t zHJ+b?ZZ!B{Nl8i7bMtctu&1}gkQ{>?9TvfOHI7<(3b?rJJ&eUNB^a?i03>{%$eo3@ z)Prh%`9idJu@JK9=%d9cOELY)uAZB{uR5(n=Xw}O6FNrA>4#bWT+jPEZM3!d|C6r2 z_cki^1!Y!RHAgLV?&h&~9oCaA)y#A}CSZVTLfDp|;!HQPYNqXriCtJ!C^Y!L-;7Bi z@MjP6JVyiI2@)II)%^UNs~s=OeC3oHyl#?9BfT{b%(#FOcO7E>t11cP~uey1~yFVhe z1mH0{VQemaXN3@lLEZmD zQ1o?{L>H*Hrn;IEhPAIh^Ldia`OB{Ry3qx>N6FQ2uVqRsVkV_9mivx%p<+@a3rFB} zQTj{xAe?eKL-Wo5-39PH2tZ>(WEo%TuxM!dNy7mSSH#*p6-UNDyzh8)DhynKNEz_j z)!I+}`0LA0#7?WsybM{fUUk82OKs+| zBQr`yr)k~aJv5;nE-2I-;HF0SKEG*A!@b-2uy}MKpF0t06k8|~T5s^rJGZxTUy7hM z3RuXHLWr}6fjiobB`!(VfTMAJ{uo&3AMtaSiE7gyy5zGL=+Zj2aGm>P*3G(9z)PafXR!E1$JV}o+&4(7-rpV~b$NdOHqu`_EeWemYaKw>x+JBT+E&=#{ z`mn4>5(U$sH@FuCyj(}(glb2WTqY|624aZSRiMEH@kjBZo;;aO-RY>`BF+f*Ld+_# z?#f8o3Kaf}WG4Gb73dVkS0OAndz*@);#kr2a$8+f{$PaoOW+JGvsycf&ED12wu)^Fx-7gCvY+G zsQbo9V1vT(N#Dn_iVyS7dP{dcd)zJnO;AM81O}g)xA@3^LyT96e$$AfTTiS51R96= zvJg<|1jG~1pB!;Mj!p(i`^R3S;a{Ty`pO%` z=PS^|?u`zpZk@Pw1enwk-~C2Bq=XUZ%G)@T7$4?fBI$G4`3Ozh2zKmsj{1o(7HLDG z2|fPv5_UaS&P^m7Dr_}Xtp5g^J! z7RTo2Z(`r&q=B{Mk(P$GWqxm*_0^xKiZ$?b(jt)e_Zn)o4FHW4O!TM z?@}H}u1=2fKkv8RHn12%zyOy5(r8W(?O4}sfBx!UF6-fp`aoGg`_>1q(URcqva2?C zXRnINw1~b#KzAWi%#fJrHg&#IMccQ>;if$ti?&KN=* z0pQFFAP=&N;Fe|jy`F!P-X>PL)yZ?P8 ze!Bne;*Z33Ple`gJ4*!L1=Lia6sJkYLjQ43#z^oJ7Id24H_ipMr@B`>a&wwy@R3Vd zCY;o0VMcn|=Lt0(pIjr^iMArhmVUWmM~BtPM>MB%yry-Any^3vBs4vluhcI8$))6N zj+9{J0)T-9JixKgoyA?>045ChNr;j#G@OSQ_`J^jB6L}B82KOcJbT(}RVi=3@PTsE zZb(iPQwM}BnC_#opT9~fj#jdf5A^={gP(yeYq|$Kl#k!Wli_7BZjZ;NKKW0*Vnj&o zp>4km5UWH3sDsNEJmMoYPc-2xT!uep3xTIq0PgmF$`sL4;gdbq$cRP4p<{CMre8x9 zR7mIV*=Z6G@Uv%v_4fQDtYzwdwBQL1*XtJnCy{`V4)p&3-!GSh0Jwpy5@TVR9*K>Crp*0o zp(BX{o|zh4@IRwto6#S?dbMhCUEFt7nit?*i89NWC6y^mHoAyO1jhKAHs;SJwcNc} zwTdIV_>aO4Kw?zLHUj?~B3lGQv-}-!W=VKZk8yf^V1=-&oYVN0k0I2u6@ShOvB6EZphh6JMy6^0--TK+Vm~ z)RsmUF4c6?qR#|Q=Jo7o5uczyqYtX?d!u_k*PYWvN%Kn5Jt(A;d{xLk4Ru#K<^$~? zy$@pwhy(@rNmU^xAqHx8{1*@Rw(G;Qf&b1HBcVD}J7L^-a8`~};Qm}8`!mLJ`|!#B z{yvtAs3Gl)W79&FD*9<=>R?B9F1%M`L{KzAWi6Cl{mLQ>KnVx1RQ zk3kb~XBIxbYj}qF26)%)5W~`r>7$}SK(ApteB?soM!Ck?3y%?2;NIqC@g|p{*!6y$ zPa5}988IP~iW1*D)N36KsL^ixemyE&3aqfXxjA#*sGLZ~hsp8rld=T&%mq4_6sAZ% zkt@WxE(quvpn-uf+Gsi2gDX{KxoZ|b0PN~GN&Jy8L}0*_J_Kc9E19q%v$_;7fkFxO zjX!VbTM`k}Va%^ISCp#}Ig$u|0n70sd*<|}aG~!;lI~rQMj{0IAE^@bXg)o*l&&XN zFZh7~qEQGwVv4`_?{RT2nb?2V`bg%GRxS1&6VMo1zGV$BbQ{OE70@7_6_fGri%;JU zoRiCa-@Ls8ukC*}ry0V(vMG`Q?!`6(CZ)g#gi9wcKGAT9jh#_8i-0QyPGl9oQz8|= z3A?>-yXUX4NbYBCa^k>jDM*VJTA6UDf#cZd1cSNW7O(qK{>;btwb^ zXASlqzktvBa-ZOvNVK=E^zdg2JRyQ(tllM>8qc?k)H$8VutFNp<+(=Qlj{>s=k20wghQ-O%cGCMs0e=2MXA^^dgd!&al6{I8 z9R19@)YbWfdz|%Jnw6>2V`Q4sQYI@XJC zf5iy;d9Z+S_CMxIL=c?eiH0vM!g62i|BFYYw=AU*R}rj-4Z37FKwHTA)2&XXraVWq zTX+VWY`|kvvNuRnR6RQ;<6{tGhO=Ey6y*zNZQjRSJBz84#w&s+#nXC$jZ$bkaz}97 z(!Qa4X1b2lTjZPT?1{6)L!wB7i|pc^KE|x7^hoDavw@mR3hasX&Y@01I{BsDgM%rm zVcY?ARA8KTfT9p}B3&Zr(K{J=h@>*PHv#yA`1qR%LiGn6Rw&hvXE#g2nyC_hda~7? z5gtL69#CRd2#vi>TKP_vg-VRDUecN5rb#P0}NXSA2u~L zRl==XC!9=+c1~jY!C~C#^~lt(A_gumjOCd{GQ%R@<>z<}r7$1UQ+#+*lmH0O7MNF_ zyBFCu{zLK@io$#vp&gKVto^6}d;?R+=l$eo?wQ4zUazpCe;lHQFeq^gJ2^ggdzHf_ zbH?CaKeuxztti9)TwxoJ|L--Z>6Crzf0}E=MR)%6z-gU zqu^bzrMiR0Qp-)29bey*ssM0$a@H@#I;T27bovp45DxDz>lWP&rnyX}8G#~c;21r| zK~A99QQ}UI#Azn~?EL&aMatqr&sRoy3A~A3tI1uH_d}Jy0fLQ6A&ox~3*Rl;SG843 zn&%M zp{U5)Ht*=a+1E-IVF;ObzKl#d|2Ao&PcX1I9AZeVd2oFm~UJWh7kLM=)ZOax5eR3>3DZ!LZQgbXh<-Xg2moTZ%3_4r%q2U?zz4*nQ&n&ao^ z`Y}T^i1d_|b_8&4!5b=X|BPksS`Ve2nS^H|<~xC~?Vk@r)ZtL#!O%el_bPFh96zQG z5wbVKo9}!iFUYI!!(Nm^G%GY!5m-@yx%T$LSovF`Fq8V?+`IfodP2xdL(rU1UhapU7%1Oy z-99^hfzg6Wl=kCrrRw63rzpzq3uy*}#iZ_z85Dgpu5rR!BI_nda!%fRo`kKdGHJCh zz2~;uvZNOGzc|=YP6^vN=Gkx^>;0*bL(_@BwV~mA;kR_Ky`U1j-9%v+pU+>yQ)lsC*cqU zE&PQG1O;bHMk!%R&)X;{E1mY&JvJ;_Tay`4`8o?n|64g?I>h=f4Ufl&O9B65`?@>E zkhUFNZfx^VDo=7liXrV5FGh+2&QjxQkVNxo6al0OsYn!-^7c_j?WKR^j1E0$u}n@VEZM5quE{9Je8P zsJIB_tq&10>L4uX*rZ~C2W|nzI)wEvhyUErypU2+%vkP8#SSYayOyU}!H9|%klIM6 zkwmxGqg;)Vq&Vyevc#V0vVAeSRl^Xa=Q#h$0Ttab`1x_js$YcUp>AS2{9^QyH%9&D z6~V72{ym<=uw>l!4nzD@XIFFu`X4E$)X&6_>9ni4fG3N12}8?BQLl7s?^_?PnY9I0 zRe>EQ_c!oCW0#WZvuI%SN=qRCJ}^6mm|93Dw_i(>>cC^n3nhRaUwxYBH~Ki9lthf# z{h!103lXO4&fQM(C9#~Ru@!$g%1astP~eSHj2w2j(^wENC=vFY>hv~f@{k|zf!|W( zyOSS_a;$gqxfOs zGOpMHLN}YGMm^+}HFzd}U5)Q~S&nPL-g`*fzQmz}IIZgpG@3a!>f+Az2ckd`^`GQQ zb%$_(IFf;sqn&$3sgE|_6Y>F@JSWosIT|6 zPbDkRz5;w8qRXQi(rNkgi60?)3531$bMceWF>NjfR8PYJ{E=|;Gxrc|d{tYq1o6+k zt`sXILih}U;f3sO33HB^+9PUlm5}{NP8iDTS)oB{)VW`;n#=mB*KGHy+K6XGksM zl#b^C`#rE0X)6aKYL3|L}Eco z3BC^>N?@7G_8?eY`Qh7Zinl>xywwJSI0l&H&jo`kDD5+mEv%NRI%KV+GcF)yS1NI8t5+fS3?)^aEx-v){{1A$-9asw)ZN=qg^vpiW=vy9l z3|W8cvwPolbN8af(oBaVsN;gcWd2^(Q-kJi2J_wf_oB#mO!%`cB{Y>ZalilhJd?>- z*QPl}>v)h*xzRlzphu)LfIea4+_=6r#yjboYMY z)jxyH@kc2KHbK~C1UCT`UVA&r-=;@%2M11MBwRpx!r&haynY;34)(=XP7xavP+cv* z)d3bcMuHRu^x%n4%#3jPpG1w~q2A#ZtnQb4**q#K?=W?=EG|ovBCCZux@fPId*@;X zXk94bEOA!?7UudG4E3-%bRN!Zyi#9$9n-fn>H=G`XXFZz@8WF^xa8}!TtlvvrKgh0 zLZ15U9KT+TgG5Df8Ss$JPWh2JtXtVo%;cCPO99Dg&_U5pO0!sWp7tNIJ?JMcnLx=) zAciX+KR?ie>WoSDGz088NHkmkrKe<5q&Wjq%p1WWEtVpejT6qOuM|MJ3^7CfA3qHC zxe0!5f2Q|tSe^a9Et~={L?fg0tg&D1l61q+#~g}92&Uu`G!QQxx)B*~!4`W$YcJ^w zPDNp5C<&CZW&KCaeeoC9P*O@=&c4H{X7$^gA-eSO*+`!*@;6!Vj?63-aUAAdotI( zdR<2smGdwP(;J*_e zb0}qnE!Z>Wja;wlIB>gW7G;}Sdt=nNn*2P(f`YM6VZAZx(fcKY?6XX& zY4Y^RTUw}Xt0|EDAg7C6kO!%toHwhT#9QQIt|t%OtrY`1E7(--g+EB|&sa+6CP zmZ8|=yga5}HazEC3?T|-t7UXyus_)iw4gFxA0tQyuI$SJ_Z?*z?N68GaQ7=~RVr ze`*BYWk(UbYIeR+zVOt5fcNo?5`fvd$XfD$Mb0UnI;{DD=+57bHLx^Q=YFo!uJw4W z+S#$a*uT6)^zUNOf7mc_tE=3zZ~fgdQJKW@p~sS!Xwt{ik{c4vi!#!rSJ{=aUzX56 znPeLYkzJ=7ha^hVysr#*xi4oJ{WmWWxWC_7Jo@bB#q1WgZW|yY+S2%k#5;2PbbL!{ z8Po?}?72<+3c=A>nU<#}ZXu*(%ZD7_JNynzHhC~3tU!=A_h0sb(l;}6i%Xk(7wEiV zHXoRHH8LTe0JWuAOEeSyg!CuCWaH>#R7-!xP4Z##4`6bq5KC5|gOR;E;~?dnRC$qQ z5H{b~5keB0;L}euF(*33>bP4LXJs)g1Y|2S1aH~{1!H+QuM-H_`KM|R*jvKBZ@pmSl?sRT44oMhGVmz&cnd{>PTv=4?Z0+xNT(j zeY8*h>y#h_YDNwX_@Nr9-r@$2&1eXfEO8k-d0S59E+NFk<$ZtCOdcO4x8St>J=7q`;5rH7{x6d_S@nYqS^p6!;TTsa#Fk$Gb*n|dgsz=emIO#{?39uuxO zdjDYP!-Spm5BmQr`y!;*NY_)%EmHVipt@ZunLB9KjAvmfokuOfi~_kbR50iSPR16; zXNBMY@@X9LUA~9)>M*|#I1^i2kc_nnPp6@ltg7O~))GkJ2$0ICH&fhbNn#aOVI{pg zwbf?YQi*cle9@8>Uk{@5t3GAHrhXo={?5k6E7cB3nHflEd)-w6!Q)XHBDk|ybRVjM zbMF$ck8l2aPGoPs%C0^uKg(SMjx2FZcd?OQl0c1?7SPLkDMvQFKs`=F_9-O&@FPCa zy>(8k5+P|W*bcaeaga~RX!t0Q-u4SnAMG}n#{Z&!#=`@30&(E{Q`;)7_%j5f#)D3V z`$Z0I0w0yS&k~G~&X2qfEL5ac2UHW`DCedj5OY=Sw;|@zr%PWH>I)QSQpBQI#*=#g z&d@35az1AxL_hFE^U*ldXZbDUtR%$Zj7zFAI#?OAxh)~~@KXi;E78PEPe65DOD!mf z14mntS}@26W!5w0Y_<1pd&C*fv&ZzJXboA8%Xai%yEmeSk`x(qN%QA$WDi_o3+X@T zl0R#*4^KiA;sMEauki36=u^k@K;bl0eWrshJ;3refs>bB_OLTiG0jRtRYfiBp-J|qKiL;WQ*Hev zF~Y55wYM}$cd_fow2I?RYdo?Fi@L+DEU|0(S4924Sm_#!uoF4RCf{o=;2cYbuwH9l z-=c@G_hsz9BIOZ5%N!&d22!dR9uO(?Fci6VyM1-+>x$yGRIi}+l%qRPU_nC%i`v*2 ziaC>De?{fqyf8WGR*#4pazZe{s{M~fA07WMv?w8MCXrPC@_^Kq{;xtSjwZ(4`m(fN zE{*PjLvqoCQ&CoE^r8_MnDibKlnY~;!jkmF4_aP2qrY*81Lp#IzH_gZOm*t0% zQKju%Txx+ul-4NjNO+DndDlUqb4SNJXUn6qb9{*uwDAY2e_j5Bu-Dx`ggOVhjyz6( zlF-G@<}F23j0f}w6Rk3Z8BfeVcNn{W0U)aZ3KkFlKo)J|C#8EJ$zx%MMb*?en|(F) zobOCoMuMUrUzK(CdIm-Y7BIjjfHF9K{?>|fo~#GVJx_b8=ZdD!o|X%B{d2EJD|m%2`7f|0c`!5I`C*mIOU#9oBN_8_Gt{63%XXa*QEE*V#Fi7=(QXFcq=& z@qwBq$D0*aBA%dE+f( zh#YB&ALB4Di8pw8IlYh^FOCEM3_^;E|5zQ_?xuAh`CkgD2?DO)Rfn6+n?UbVsf$US zKUGIii!ZKWJ+WFBMzHZ`GDxfG6M1FdtdpO6)l$38@v+|T{c;o!R^Tg5B5sF*W%35N za_PS{&6#?D8pdg(rLSp>(*jXLXBIJkVKI=t#coxR%P1ZzO}48zqO~Z_C%wJlxDS&y z%zHIUMi*t=N6y$BrNR`vzcbQm4jj=rYe_3W&I8}zyxw5#jf^?5=t{PrR@BK&>Tf?n z;iHN$AV8mCk151YefpM4_+?;3u&V@vu;F?0245?<##!RCBE{Cd&%vyC$L9&=8ynS- ziB|gGRe#n5`B6InOw#ZIRqs1Ga=z1W6lT7EH9mR9nt`boYd|E(letCjKPatNI<#Y1&MRUCl?kfBqjUzEjJuxa%$=tXxYQsw@{jw+)KXpkT126I*7Prfj5MF(XyH?(WI|^5` z!U=4@NZiYtBKCp%F$do}(3+v)YysL<7umrdYHR(Bje7;}T(U>bM(2-bb1*WxcyNu1 zd;I7_#M=d&0V|u3h2-?r4=!FB%wAi)V03R>Axl`G0CKD2*a)VS4wxQJjA46UG-Lbd z!ajPjT=>1uU2Qe5a`KzS`o`P47L|Ut62f1Mt`Yh;Ds?PN^;R&^yPAACWfMTZCJvEd zn0(2w!4q2z ztr^_rK~4W27Z?UU8XZ)1G0L*ozJBL@d5HcW^&P-GHP>uhk{t2KxjyeYW~+PD{D5eQ zAXo?(I||0Zz=}MoCvkJc_MFhj&u>7&8d?lHECUMD(6-OFS2)B%Kd|==+7ZJ z{DAIP1({OCy}$W(_)CXwJm_}x-9`H1@BUK!GO^I&bLLrj%{&qoercC}<-i7#`h!FB zjCG;jCg!z2v|oHNJ|*m*>z?qv5%|*U3`2+>gJ1+I`|Cn{Lp?FqMb5paBgm{1>aiRU zEn7mMvrC(eNsr7qKBC#4lDY$-lsWjqTAGC_gT@)ytBQSa<0PX|_t8EBcH83*gUT}6 z#HOkwZPZdX-7d*ytBl#7K##NQ2j3~J)r+#e z)!P(kXNTt5&nP-|n6aIRFd1Z!#(#*EQ0k^QIUEM2neqR(KL7nq3x00eibhA!XdS#3 zX`U3V*WWa!E@6SYi5l~YR+A#hkS?pqiIZT8&}B_1p-b@|SLS=JA4s1}OThr=OX(Mn zs5gZs8w{-!zbJnzUzpNvg%IVJa)qazOUk*FVg+2#61w)ksl< zeO(pY=J@pgn0xP_rn_!!Sc>!_y?5zN5a|$_prRBDMUdVULg)~BFMa0HM6m`#jHiX1@2F_up^kH%x|Pl3muiu4}Ko_S!TbFLVe;mqc}X ze$3e3xq6Rddi9BbM%u#J@5-^TE9G&=<8c-zCAJLSmh0(d__%A{t23_;zR>=BKEyn3 zCJ}$(*&oh|X*jS&%8U6$d?=H<`!!6>30cT~)0BW^f35zy2{(~)b7Rl#Fx8T~>F%dv z%ijYXpMHeXKJodZYf=bVm$;?3@@6hhp;@5hHLjkcWU7ubIWPB8| zUYBCgEuS^4OU39cOUF1IHJaP*R=05Q(~A*K?fu(136-3V#kOyjownE=9*cCG^@fGP z$PfQW>O`#$Z%>%qbx;YNA!K9lal)Ua(!YAf@@MUB!&1XEm-vCkzm;kpKok7=4^IE{ z6n>`g^AEfvHHH@KgP12H6he+X-W|Oncp<+CAraN~CHloLYt0Du+$G#n&}$|An-)hU z>?xK)^?xEc|9-UONfq^Ou@}%~JbGQ8-|!!AoKpUYf;qlOFd)aMgfnWmq#2wBa)nr^ zkiNJf{KLslX%v?z;kto%^xxR}=YY+wBU#rzmbgJEa9HjL`7Z=>}Jo0?}L zdjS4D690N35#KSo_M9+P8-Q4AigcCp=p*yOzdIoRO!xowFQLg^SA#kI0um}wPvop% zkUv4$|M^J?CO+i9LC&~(b~MXpaItD?47u{ZG>PyQp;ex1<)|M(E1Sp`QJrI=k(bl0 zn_~alkEBIjQ>JzBjSPV%q=Tfz|2g9J-qg;2$`k__o6Z^CUa!TaX6%oJ$p1&HOn6A! zUXH9K9O!sPc~JaGLHUyi^*=pPpM`EPSWP_kx9X++e|+?R`ilR*{XgoS@WSI4uxSus zeQau6NJ;usU_|qIkB{gwuwO0h$iP0nfzY*mIHotpCebTqkZ=+ssdM=lA8mz!ywg0LZ!&)?~3N%ywlO|n1%Mj1Oe>DJ_{t_LbJ{WqedxPITru|!hcSY*m^U3;{fA`~h z+Ccx;|HzU{Y>{qc(A)fjdcSVlJ@6RSO)JBxVEZ_?*X1Fxioh-`7IQtR)1s4_viCN{{gHcD4;9 zGNM+>rMyKzGKw=&uH2X)^w75mC0<~Mpa)32ZxcJVNa760V=XcseyvWljUl8|>;LtO zCX{VzE1`5JRnd2@pLnP3Xou5*uL;_kPpt=$E9xhZ5I@o;ozy8`02yk&`0AtG z@WfoeJ7{0m`1f4t*%cF2oZ-*brEsJ7ZqGN+U%fu949(mvd`OWS1tEiFLH(0-=u}4m zR^nV%ec@RzhA$kQBQ$LKfR2xbD7^r(uARaJLuF)CX7?YOxPo1-{}j7bv;Ko{0O}ix zN{*Ho6?>7B_Cx@By?rEvzeH89F|P6k@VcEqjfzJJ>Q`-+{D;mSdW}zkvO6hNdxRFv z1MVKC;8nz5uY57!UCpTyy}PC?ZGCd&c&jn1HI!5mbgsq_Tybn$RBLyyEiY0^DUuM+DFKOU6BQ>_g(T)WiFXv}&yXdH=eIvbuAq)bsImdAa$jFlZ) zs#!j`@?pEwB#SnSo|!BHwB(nZ(F5kK(4A~&DP>$0CgLLkr#YNH$Xgn^`IHsc6@QO8 zB`M(nj9%k+d)mhjyH4wz;cIs>8V^~wG3kN@RRMw8fgYH9a1pw!FZ_&mN1rcVi7J;O zy?5(S%Tm>r=v6c1W=LTOn^rir<%iv>IwuCwZw1MbuwsIJ z|Df1R@<4XXUE<>1dfz3J3NodcU!Jwgflfa4-wMs$3;2}Z?Ks)JNhnW#%)r`$`f$19 zhJP^N-lP&2SC9;CsU^>h$Yv0`&1}Qk5OGCrD`7mVVK~l*aUonrbjz<%7>235HoiCT zeDP=Nj=t^=p@|)Cc5KjBSbh(=9>2|y@6T(Dqi?VnMLHgJO+R^fcN=qW#%fcN^08Rd zhcVC&@z$l}kH!1f)2Y@Y0|Hw+mgOXsOC8 zbcS|yjXzC$e|p)4PRPGk-%eHe2H#}j^UD%4-t`0%UKw90u|hDrj?yup1G=w84&;G=O4d9Dmz&xV+Xz zC$f`B?Ahnphn{11n3RoAD)U%s9jydy+aDSfjh}w~(Do;-i_{i)M($^z^ZLI0)J~(o zxWL5`tKGSMf2n|XhH^}+I8!V<+wrm2E$pCNJE@OJiqAy_q30yO9r@|C&-UeIx=w8c z&;s7CH<_lxcjhpcArc1|9jE+LcYdr|MnCV#$l!z9w?2NTVE`vaG{+2eVa(G+C?2U3 zHw%WOl~#!Ed7FXR{eXoRn3~bY;RLo>am`<4?Ul1r-L`!>{oII}jfuTJf$^BZ=WTdS zLPC}k*{jH!n{tPK5mBv(Lbgia0{~rof%Y;|XZv?+n^X^0p?@GvnTXFysNEdKEww|N z^tz|>jG{+UatlRk$@1`yMDN>Y(b4Mq^1V;q-c+KM(mzESALX5e)5RR)syAJmN?Yj# z=>b#^o+IE-QC|)bKcU&djAbu~m*)0lOfK3lE7vPm`(BYoJ$IY9y(LkSize(Pp0g?OcA$*>RZjJ74T z=A54S{_F`W*27|eOQkCez`T|7E&sJ$`;peOKUh$HfO3kq7<|ft^R@IYZIk23cniV9 z91pB{&wQSKWAAu-i!o{=edu5|MeQPa0wLC~z%X0JQ`%*j8*M-O>!aLO3Kc5;?NPn0 zsL}5-Z937b>ls%v5BZ^ArBnEH&Va!~d1D5&65@w%&j+>m;GN&4UtOpEJ#`0#zsu)@ zGUR{P2zU^&qA6}v_+;kj=68V9liAu^9wg<297%nxeD)k8yK0EywK?Q##%l(v>WRM_ zSry;T@T{y#IDcyU!tec%OCEJq?(p__YvNf3T48BO(zsDJ%FRFL0NbaZ>8C0GZZO$b zN-B(qBigw%o`v%(VON~yZNaSrB}4=$OchJUCw8Zxo%$VFx^_!;OlM~kH4vBe^N32ZjPh9zlNaK2Q5gA@VJsb&;;a1lvAN(&_Y`$>jb948zH zC5*_Ms$OQIxor~y6yrQd)A#J;?yk>}F*c&)MbiF-0U+YL3S}Pnw}OgVef6EFl9XDs z9wpn4&|fUAKRd?JcsdVnl$jJ++L?%K{IY-zU)ROpPSI7ytngHt&hMV}%rjKbR2t_q z|Nb3M=T8uySJNxssE&Lo{g~c_Cw-rjihicTM+GndHBI2cZ2)vV(aPUj1Aq}LjX{~_ zW4lTt_-WMq3svaZY_BsT`ypx1Z=h<@JYap`n$~O5WwM?FwG8vEXd}bw`C5x(p&rGu z5Z)tYrK=9-Fzr#y&q3*hUlJ zt$KsSU?G@U$=ik5#@l+_>^)uu7~MG$3lQ=b;}KpGnTPa!;Q3SC#HlK8 z237HPa@lsAIa2S|rzeG*(LpC35g^6KCWOnZNE_asiZXOOl@Lv~fK$?@~=Z(r6)XxnD{d7D=C*9wC@AaOes};5{()eXN z`>-aLhHEVK3x6Coq`Q$viPbdq>t)2XCY3X?<&3m@#yAHO59{j4`J-9Mm7}3OS%^c^ ziA*0ygu)=-Rq^XoCS+TTzpl4;I*ccm@%Mj6h_(DOE!|S4JyM~Sav~H)xBK`(CGM5F z+dM_x)sMWd|C0j(uWyZy1?_&zKI|6qyT`pagRovt6Sr6@5i;#CE1jAmPc!BXV#^88 zz4{M8t=M1C3z$~lA_#@5-iz-9HFq3jJnHSUeJ-NMrF8o4eU@{}H?r90DnyH%XBwx| z=Rx4fI;p%Ev$HLHcCVc5kKtLJ{9DURAqa%oDD8!+v!&qYn7iNJ&QN3>R)hG;KIS?e z-TVPI! z!L3+DCqJhVau0sNwOV{i+N-<6rSxVpxL7#ENcW$|j0Y^g;To_Dx6JOmZJ|oTao_pV zsQxD}6^@taP18@Q7vV$Q@t1LTK6X{cpXH;szL4d#=P%Tqk*zd}x5Ea~Uff$sq4cbd zIG3%N$^^%(2n@mb>2+6iTQ2%(j|ud1&3pOw11q5qfBA=}c44L;msnl#HA3n7pj@g) z_e1gG-DU0-x!0(cxuBVcoE9m53Z=X0sMK8C8Qwfxh?*a#y}W2pBu+JNrMxK&Kinw<+)B z${D6V8wiE{%)WHp(dbwagBTK>lWrn8~A~6`WAU5qf_L) z;f+pxVxqdcBCglvm7k@{wMFWUnlf^1nPJ}zxt zZU(CokKG}zzCPM;D}?hz=4Ugb;vRT_h`YV--P4-e>5^>xN>!rB)sNlbTJ^8P7&S3< zHw^j;)jfrf7mUuLI<2=W3WP4v{n;dZ#t?lMYuA>Mq{sPlL@@|a4__ixVP|=D4(-^t zEq>gCQ{KcYCkKA1JLY#>cWM{)_LlNPt2J{PO;c@4h3kuSK~7!^#f5=3iW%KAWuZFy z_ZJafUK);_T6FSPFj z2jxBftsLSVIMc9lSo;zz$uG9UjgCqD*Z#MSHqT7EACtD=vWGQ}CGv`Mwi?41*X!RkXULHrI5)|M45b@K~M zPKF*mxCijItQL$33OV)^o^Z`rw8UwTS)tea4WnAC)XY*#SMmzSGW>TBRup#eXxTYT zW?#JqIQOc>ViE=kqz@rE0mNO9z1Uc|cr|9xk8>z<-B|gh=HeP5sy^Z&?9X|(2|O92g}QhC107A2$v2vH+Wf92_J`pJY)rY?qM-Tbi&>MbhT}l# zL0!B+n1X1e5O+aNQ*zS3Y5^<^_2x?ZoMmgBl#iV=1*G6^xs}~C+PQz+Gi@juY6(w7 z+?bKcSj3Hat_OK{zQ`7n0cC{7Ynum9S>otS=n&+(t>__2A~q3KQ~lyc>ZAEadKbfE zb+NGD>Tc^6A#$2z_#I}7T`7dcCBXH#@})dThk2?q>bxaMbyfc&e5|>MPuHnvu#x6c}oRW$JpFIjtv$m4kdCkUFV!;@ zv2AQTPtdH^sb?+F7hPZN+S78&O1r(zn|5nTJi|VsN15uWY`g0M*K#VNtdaLrgSwUU zyQrUO+43x@;%&2+dv8#RpckXhk}QHA&>DRmPLQ!VqZZzLcb<>-^>hMALZ?eAvvE)p z5GriWE&;}CtA_yME9s`x^0p-_%O*=(DTIy zJ^Y298<@%puRw*H6u)f#W zT#jWiqz@IlA2IH=CWT^wnO=4(l$`tMqr6uy3LOq39fKv^h>ttz*v@P}ZXsrlK8^AYI3b_}c3$%@#p8!S$mW{qcbqZ#r&zXpiMr&=~ zK|CVQCyuWlMNkCza-b^aFT|EH7S;wWBfe)QYgA)bi(IwP*qU=9EQWBWQZ=kyC#E3# zf@!5$cbXUAer(q~Ic_|03!=9sI*t0<}k zwr%dKE#Lt&L$V#)TY&j7>PleEQOY;VObfb}sgkgV$;-`3!%Lz`%IsXJuJp$z<0WZ&luKtiIH|Mm8wFT$)kdw5=U)}#h+_Q z)xnkcPwZ9QWgX@KKNQ)_$XUt)vtj|Fe)%8C`Zq!8y?oV1IT-0{wHKv@))WJbnv0k0 z>w6L6ix!Hy$cUC>h;ffO=;(V=09{pM7Zu*y>%^nD-6V zP&c~sDp1DDd4NXjzJ`=^9ioQktQDHP>|Hc^?^mjCVq->Cq%Q9Qg8H$RfuvU^X|gii-AQ1pkR4KBT-16i;vDq~n_CwE##^UBoY^*)PkL5TyDrSff{|U#YCk56`;G6ulUibbx~J&s79pmn z8P_+5-Wm`?*P^(C9lJ(l*v-zBKX9EI7{`t|SaNT{Fi#Qrv7tz~OpMQ>{Br3}a=Ut| zuV$7cbmgZY-FJ;*JTu=|xfFSk)pg4h%ufqy;I)ISmZM@;#K97Nm$5wPFj~&_lyNmC zO>ad2+_4}iM9+gAm_4u?;-=)^qN&5Nqh_h2*h&I8>Aj#REz>AOuASTt6!1E^^D){QKzSm%zE)qUH?YprLbBek2E|+L{O!g@T%ogTtFf2+ z5RmP%MtV*ATy3KzwLrH~qP~^T<__^8!utmRq;r$W19|Vbe)O==Y|x2)X7wXtLumgY z$>D;P;c4;sXzWu7Hzuq64P%us+7xr~T0ZN!6M2TAoBbFrbF+)slxyyUx(=9I*^G4G zV}N&d6#K0CYo@q?sK^WEQ!cmNSL0mieAFj4G_QblP^Fi7?g*DZ3S)N${=MMMfZ+D% z52K1G>YZw^4>?VASS~UH{f&K4#WXo=2`D4qS0I<`6uyAiNole8{8wYVJZT&{LQ*Jb zq6qKT_27|5vo(vD(8*h`9L$xgFiQ>QvZy6AJHKH|oFlT@^$*RQ$rjp#}omPHXA#*zDQnFi9=5v?#Hq>2mwHnB<#z~x9TzaI>a>VwV zlWN_qo{~GmJ3nq;+Gt#S;N ziY|6emY9F2C_sl~pt}QnZi2`C zIwmst9InZZJ!8ACJomcBl}AlD^u@^Pt&QFTX6!yM`)>HIch{xxatJ{qgfPTT0YJIG zd#w~e^LlFJY?WF8woD5uIL!$)7yO(4#Qm2Oje06({TVTK3y1b2vFKjNxoN)@?O?B| z)f9a?X27BUD|8MucN2nrFX!T#VpBB|@&!lIoZB=RuOr81G zQ=UN|o0a78ZGc>M@1%1JZ;>X{VkW9x2}+M!c>F6w`LOoF_7is+N`f^<*ulAl%cY0w zrOfcItqi-$?}D3W{}KZg;foyaTRszT=R0&*plm`0M%I#w@D+D2a4bUUV4{!oU7~zH zZ{<;&<(^vSqV|mEv!|!f+#xysBJ#>2VB+tReiCIYN8-24=0*ryk{~48s~N7$X+7l9 zA5d-B6BJDGSzDZ~Mx8ZuS4`Z%gZG2{Rl`i?dUg1s3kDki8XNG!(45Tgw!bmO>K7k0aOcMSb65s3C5J}`x{FIqA zIJd>y#9?Kse|KH{baE?zGNLZ$)(elV*!hg~2QO~AdneU`Hk7jl#-3jQR`plsO;UmV z=;D&V`)PUNsf7v?3_o${FeOgayULx%+?=QErIYV|s?OkIL+cS-684>C^S zw-LXf?Fo^a;LL^y>CH#U#tlcnRK3|yfg)ogXUXETzce7r zC-EON0J;1x8aNJ1Jp0XqS9TZKY`J=P_O8*!W3K+0NcY&;1>#O`KmOr|<=c;)X5WpK z4K|nMS8_v^2SL~0i09fO&;wyIdaIOtGp$z|F3JlEa#*1O+ye>c2`c_A@hz5x;(JT0 zOFsGP#3Woh`2LNNx96s%qvk%u&#xxeVZvJ)!xw4=YSrmYDNd`T2^5FO!dv?FE$O49g|7EDSVlk`$b4X23^MUG3qAj zw({@p1DKB++-~bz9CRry+9c=S-dgGL#-_84YxJE=Q8uGf^5$2pCPUqO-DAK7+OAPg z#gmJGN=QscG)6}vU^O*nltx-2#(wRWQi*$@tNr`So=#6^1wos6TgSEe6Jeyco3QOQHMP5)4wp3WKhPKp z`_(siJ}>V;dpkii^ml~k4SDgMZtIlYnNac*YEFDmHil1hw|2)DfoT;r{_K_8yfrhZ zCQ>N{AbSPFm?DpA$jI;}`m>Iv0pbVDYf)oih1^Ohv28RXFZY8ot)`hc^65901PSt6 zb39uKqU3;b7xiz4%p2c1uG56TOOjrNK!=>z-}6P%wv8{eI!K}1uAXofGS!tk#nLW!gX_TPBMwJXVU4} zjD3CX@Y6HJm9Y!}V$Yt((dVr0B}T6(j31^dJLsb`O<$;Z;ZiR~SWSAr-x9*9m~WAc zFph=*5`r(-Tvduayt=A4(Q^-`%ti%FYbpE`i9p(sO4U070gb2S$X zZ)zl#G~&i0;fjmqYR3rMRKguw)5_lxRl|&%9@zM9 zHoeUhmF?<)-V}g~f5@eVLN&Kh?-sj@&1&w>_k|8=n4M^nUZu(lRVnuw(^?G6Ljf2+agE=ZPkBNu^CE((Iz_+BAPZI zKq50}j9-3DJGVR7o90z+lZA$ged7x!3~)4NSe()pI-k;0!TpPgZjB|(%rUmU6Fpw9HN{VrOC)fo}og!~L+#aY-|2;jc-sY4oTwXh8 zT$gJynIfkK!z+ewm$JuRv+69~Y(fDTJzmbC3`9c*j?9T11SCy!TiV$Io!0$yu&d5~zFzk-SJ%KS#>5H}fU0>h zJbKGW%_GDlYW-w#)fECjUl0#&D6oQv2k)*tu1%lTWW;C1%wK-mTl9QKleaow0ZtEL zo9N>^YPxZY^u1_fC;xG5Cd__S9i}LW@ki6HBQWRpHmTW+A0}%Lu_dDU5wU3IQg@M1 z*?`Sd9p0T=wyMqmy?oJRft#MP9-wUw1F)pXS&-}(bA*cEnDhnQWWwL;moGXi>C@ z?T3fR>Xr@Z26jK^P9u-(#5bERuhuQp>~T&`88a<67P$}}|FDM*fEuG+Zin1U6wfvA z4z`JLTse<*x@WfRB)RB$dJ?d&Oau{ zk)V59aBP}XQ6JYeB5qW@vFZ6GP?*s|&>M0-l4PG63shDzC~nD0P@ulPZq@(1S;><7 zV{me4Hd|SyoJ%Xw^L8JVYe!KAxi(opChv(EN<(4(LDV>BxnT;F^pf3XT1xoJ1G18Y z>cHV`KP&g0;ZN7XLvyL>G;p|`k5d7kC@9#PlmaLKJWY-L)T17O_DByBVF9gIN!OH2>Um}(aj^9eS8LDIY zPrstVSjH{JMb0`}jIJDDyo&^hQeG{uoiB$}jyUAnoMl^d=ZD!$apQtC zy?L9QC}G=Y_aR~5@?e#gjz`&f7Q9+ESzn`XPy4pd6Ls(kZS%doO6D9>w4l>-Y%4+;7+!Q&v}%)J2KhkLGbpoGv-zem|uueDuh156E~lI4Y9Hsf!Kr_OPwq6~Kdv3bfGZu%<_gRDB|d z9Sow+vYRQqKq%rJAta3ySY(=U8YH*2-W+{>%ak1-yX6&e|D+@c=Q2D>?oxEFyppVF zSw}+U7y@ek@h1wm$9-^m%YclXHzd3*C|n?wUZ8ZK?1KcXDW|G3rMpOwVJ(!nu{e2= zjHPraAbjdq_iGBTXqEyi`;gw0Be?M~sckr7^!*~=OESA|E3uU&6QMY!k!x1DF1^av zG`XdEj{@*vnX?v;fIxC9$*?qUj)}>Qt^F;1<3WeDhGz;pr0l_AszM*4Gnh0DosYk| z|FB7FW3^m!cPdcvZiFR)wpqZ+hc{u_{(Bco1N3RnXM>r+*4G+OtOR9+Q?_)=4j1(V z49N&lIzm6Q9vN|n4j^+Z*;bCvudFC$xzrywjEgub)4dlqEKbA3zEavOCCs>qdv0EQse=r^32=mqe5bqs;gW!u*m{^%MnE zvkI8w%UO(QNAJ7DYb3Kq@=~pk#QPU*2^t8Pq{63#13PjeHLPxs$smKn7OZyiKe9Rk zd6a@iO_A{ksOH?|T_-efJ8u_#XjT2O>YO=d%t+E=E~-z%^GiZu?pGy{?}gA0q==E4 zqPt&L_TJ?nXU_S5uOh3$S!M8EyEiin_K~eo;3J}~j#z0x%%iSa8n&s2z}PcwqpK;h znXunF5a2sYZYDnB2ZtMdxppN6C!%BDjOW^J!i;;TNgo#Q*miE+SW}qZwv7-1h9In| zAMjZ5mI8FZbV2fz?~cCNY;p*uQirB0A01$Fo%G8@#|3@mC!kC_d^;+tV7SWR@~du( z2RHjRTRfLE38kjlI? zw6@y(qDT7ub;s+qhQJTs+a#ZtjgRox_$_fa7iu|jAD;^>@{P_;ndCRtY=vo|NZKbl z7;mG}1Q2Rh2Je!f+SE8-#AQ@pdz33fD74*qAtpvXSo`cn$Ss8BG%-j1c~rUpKESMN zlkXEwD>G_`-><~h5mqlT!d&k4$W?3P^JE}^exw;*D)Ls~ zNZQmO>+#<(^BaHlr_Z2D#1t5#T;4Yn!&YAt&#R(rFJr4mZ0I;@K?s?3(1zibuf6gF zPw78wq#mZe$hAH_Gf{i5>*9tZTR@Z8K7on8c4p%A{=uZ{pquPrl&|oN(5ay^yAQE& zA`VT7LD3uRB7EB2ay7r}#nf0;xd$B$knJ&8`#n;^eqP_9S7)oNf^cdPKNO<~I|$%b zyaq1MrdsQUcV&LGp`zHjpoX*@VXxm3ol}G}tn6s%h6o(?E!KB>8n_|f=G_NG{-G%M zW#_wJEHX84cxrx95rHr|@J)8*AqSKic}(hqN4RYh;1kGA^xo;Oq$xAI>c^ztAstm~ zwXJu(FAJ-Lis+P*J3Pw}YA{6^gdHCuFSAT&Vkm0Oh2s!du-i_5(p`8oLMyZ8z2wC? z5fT#}W8QoPrj2oOOBDaelpe_J2Ut5CgBKM^$v$Y!yP<4K4k*OMdR{$TatWc=#>LG* z;RZHYnVq}Nq;}|2DzLduV0;zv3V%wnmGzkw)px)FpUDQ>(WB(nb4JaKw025A-?dH? zBa4SH59Yy{+u=!CBpJ#pPDKpzd=e^br*fHxmt-&EV3M9{9tAIG^TPT#Hqi%+uq;bo zUGR1f6sbrMEbs=U!bzo6t9oSDepNboooeJCqxd*0kG^o`sI7{X*Ob~lTWZlZ;%OE= zqx17XS9Bu4fJLsEWpK{xf872dtXSe?N-)i9yXW^y4kGNn60~6!SDae_2FqU|LoPi{ zzx}!8I~sdf>*%-~ZkEy_s{VGD+JEoq*V>Yq8NxY9Wt(LUk%{a#ypDMxM?(&8-P%l! zC~L5%0s8T{0m_03yp_Jc#7l}@-##_o))6$}?hrAUfF(ABIT+|&VO(_SIfg6D=h?3t zfO>A1K z`6G<|Oxu>a;zL`){v`E>j6F_?QYY86LJ_PNQ*}8?8E$R2@j^4FT z1bZk*HezIOBaM1wlB5As4yt9!Z-E{~5&$*3Of4%2jy7e>2Ad3DV^QNswOeUZ|d2sS#tU_GT&sKWV_jxA2ay8|Y}qMvN1?NVRd=NgH2O#F6H zGm=yzdZr#k#ku+LcMzNdtWK^`pu%`Gyjt7Nwtf<)jua}1D*5=2aG9tr)6ryeJgoOZ zX)@}jA4(`#o0n%M-#3G5$GgJWI4W`zY20%-WhNPv1)ZOWFV*G9&6 zrYr>To@n$1A|-e`FcdjlZl+T+) zEg^yyzqhFp;GD+-qG-qEo-UmR8c%4jVO4fhfg97SOZMxPQSVF?Yl(n2WazZWbRN|a zQN2jIv_vGFR^4jjbBws6VEle0joP76+x@rsU>5Z!YrPRhBko5RmM452puCEgk`{gF zp#&0}_Hc89mi?9Aj~g*l1jl&0J||Zd!zYm*_M%aM`Is zDevhhD-EOgbS!k~>z$k=iFuG;&35lYI*k*8_|}|(;CY~pz78ur8OhR}B9a#@{}xnErxdh1{WdT9P<8avuv{{BfZs8%W?c1;RC0Jwgpn`d1%V3o;(p75r} zT0}5#5DRI3ZDu-UKX5B!k$D~ab}5sZymmMy&vdN1kicxSTvovJU5#re+K9&bLYr14 z)st#cnBG$|UA4<4gln&!x_1Cz)0*n=^mGa_=F$F_*t+0Qo+56(-ao{a^fBQIW+Ypy z75&f#^(oJeuw{M9>?U@L4&9*OP89KecW&ia{Oibp?%ME}V3)7_ zk@WXG&iVq(gaI%3=RH-3=_Kp9yIGvg6u; zVw-o|)@<|3Xw_K{Vt^LO;vCiQtX4O_@MGlG1jqUXsk1fvt`pG7N1nsO{Q(##weW;{ zg|=7GQS2dZwq}-fU3wQ4d#0|!MRt1zOctP9JXj?cetU*$d&EVVmUBtaRh?4uCk(Or z?D)?DNHaDQRBaU1*9M-Y?+))Y(a!nwfhkOQqr1?lK)AlpD`c%<3|=U17NIx&*u+>w zVEpviA7wMOCj`+rw~ZU6IE>BcA269UYKdsUtSxI`CVXQYUF)|4&yZjBT?%knf1T!* z^IR(fCoXE%xSn74X|DrUkCWp{Ti`Q-PAsXqe8U))w=m)D-j#K~rB_DQhBsNNe9+q^ zW!?wq%#&)Cy%m3@W#0`Q9d#Hre>X{0rLc)#d*m>cU?um&iM8I9mUzRJk49&8(8ROF|+9xN=&v(u_aftX_FGY4#`v57$c2ikVQusj;yH9fpAUx&t=G?2J$KmoJOO z_XEE8t#MuRNeVn;b05 z1@Y&StdPRhE`hw{4N6){k*sfS*|A3)&#E@T@50o_Dhq8+viji}Z8sKrR2sZ`f>l)N zj2GcrHgklU88I7EAa8}7#g}fFhi;R_?sMdxzVhBQegST#mVEIbZQ!$jOL2r(B+R$^ znez?eONtkG)}w;k)3sxZCNj`nPCQR0W}Vb6-Q7iDGsvc7S&ljONN4aitxQ#q{57>y zotRe-8k1g)9K~~lS72<%1aXC*m<~OX&(y)>WQwaH+@;fLjY57>3T==|>37&I5i3k} zdbV(-L+#b*x>}#h4lxTGLs#L=mbi#~QSlRMDvuDj09-~&Dp`Gp`)iwh0X3K9L&8Oo z?5*McOAUV&VgS`2g?L9)pt}ED1QJHS=_FmYXLGiX==2DgGEPjuaX^fNJVU8yPs%f= z(nZ@1Tn0uZ5Eb-^!%6&zFiH7A^GHpn@0L+0=8$)6gMOPGFxU)yD|;s+?&_qWzGW8yh{GzaTW54vek-_~xF^5%ztr(6KA)V=%Bo`2mhb7~V~ zB0Fi?pSseF*xNKqewDjrR?D87n2qbuD6-O4@y4DWT*HDj5%NdE!lH#8GrpJLweqpn zqBD;L|E=l0@TK|WOQsX?@}GZj#tZlfa{CGP#L^jFExADhDL`4`w4wDO#oJA3mm(8= z4>vSnjO8IT03}hyLfXEb4G_PAFjrw=7NQ_7tSl8BgTOg%(nqe|t>?fJ4FJcKp}~zO zD)Q>3x{ezj$@KP91Lan|no+mYN4$SHk2Qz*G5`EfIIH6tqxh7psH?unJ_YW(?k@&! zKxvsLOiF&~+Iu2~;mFo)60=J73dI?VIeuqR<@?I}eBy2188~9$Tcj+%6tT3#lRs%2 zAl?oY@>4NCs>}j8KAoKyPueY#LnlusO?qKhNJR2ILS&NL{a?1iV;mWCTWxo#qj{3P z5kmfnPBG;QxlTF#5K^%#IOLHM+vJHh>?%Z`3a`$tn)gUt)C%dqPR?~mfvR!_AYAgt z;z@G!@71&S$zj>yGo-J0Ze01n><-E7w6qy92?GPGoaW`z3Zb z->wnjVmTuYI{LE$WI0&t_dLPz=w>&m)pKk;Y_dy@#Rk+@4?>55lHln zD(jPhOCsW0%v@G0h37wvIde?v?5m|=$@LD58#hVKM$%ngZF%{jr3m3dlTSDW$rUiG zqXMsSRuYgk4%%r9M_$~l;bMFe@M=%;rvHSVh*zd9G`zbc<55YTKf$R##$Jj1r zx6iz?m-YzRx8}8jl7^AVt-gxNs*v>3t=oAApyjy_430;^wjax>lFf$CkG0Z$+gjw@ zl%KE*vGs1eG2?ZWUG@A1Z3&k&CRL5ULJmiElp>WZRLN3Q1&M_j5%fUt)Z(CUUt!7j z)GOql2;#%HI;*A81lBqBR8-&m*YwfJuB7~KIKcE$vLBe$u3&%ikGy#O{%DVqx+$`V~){kB~Pk~!sRYDp3g(rP``LGp-U zh}qj27_m!!hRYaAHeI7=7isQ&&F9tAH`CY}pBSPRJ{QCZktR_jM*i31M-|0aEVQ?9 z!(->CIL~8%ULh?-ib2Za4E65};I&4bO&a2aBCbP19b}~+-y-`Pb=DbVR7+R`y8N$| zX4pkgeC^j!MmMo?;uE&`>T3$6D4Q49ehN{Y{;c=`THMq2PZaw2g(b1{m(*Z*&c1cR zqXp;jRQu)zdv@9NR=2^Hc|w=3SrMF}sQSr+lUGEV9-;KXp(HWO=UKQ;d{IWxBZ69J zvd9-zH#UyJ&ML`jbw|sy4T$QTm?YpD!9|Dt{K~K5u|(q4Hz(lrit=r)p8&hG*f8NF#Iq?ubbiyX|u?uxqco#bRN9Z(#W7H3>ot$m_0 zf<9Ny#2t_n-PGAgf4AT#nCUn|h%*LhBy71C&T1v+KDv?d?~zN?!ZR$`!RYR&1XTv| z&xMmR*HV1V>iFq~w27I+IGGC)J2P02(auvIj`k|=+(gV#@X+P)&R8uL^RUS;DYk4G z+IL@#e(J=)zAwG~t!?~8`4#BVX$u=T%)P=f43W@Vq|DlU&b;|eET`d0Env_QAS1z& zZdT7O>aH1%4gH_?zB{Uk?rRr9=)EJo2tj(2DiA;{ARR%FDk2DC z=)HxiQWX&CK~z9QK%|q<1)@MyI?}5Y>5x$GAnNP)es_KM{(0|OKUV%2GMSlk_SyT{ z=j^keJ-PMqPPA4Y#}QJmZsuA@6kKNAX5z$c#zDvUe!$%y*A*DUHHTmx?vpVw_Y&0e zq2mz%<_GDk_+Ake>56+dpF2~p@V)?uPPLbv%LbXC~adc7)ngd{W6iy z>L!Ob_KNGBXju|mm!HjdIz<*ZUW9`Gd}`r%4L`c8a^&S_ZyN2TvvXg$hya6}^C*?h z%^cCQ2Q}PzC&2Wf z3ScpH>9JM`;ngU2btB=wekTFiGpmluHP-y+yVILsg2AuUI{c2mb%{M1C(cnAE-89+ z<9A~bF{BF)leO51qNRUd2L+9(mQ=)y+lG(<{@7jW9PMw7p@DnzB61>~^YdQb(EO|4 zCjtP9I>cYhvMo~*<{+<&Ovj*JGyHRz6bbM!G~$iyA5r}}Ks1AcV+P+bHK{^zKQJnc zKf=}N|G7-$q-!FILjQbqdJZneQ!2cdW=_#SZolb8O6+Cyr&}H;-BR2geC_b>Zs|X3 z{8V~C!YckCBY5s4%5?oeZ4?X;GbvwyY;|j@F;rVcjws)h5i|k|9-dsSHE#2 zg`-68UXOe9+xh)5oznwjI8+t&o)l%)5BmfEH=N7Ik zxaHGx0|F5jp)6 zd`7@lS-TRJ-XR_96J)s-U zsX!2vAODcAz~qbR$RCkj7jTsh+x)Q0#Tyc^FpQaJ&tOZ00MaR-!tWX?@(^J-6)iM_ z{swscSiG0*EOTca8)^?H3QbJbg&vc<_MCCjKQSl8^hSyWju6iKK?{|bKEziIeqPL5 za1^&Is&OjryU)d7n(U?ixgq@mV*qAm!7>go9FIQUX+yHqZM-~ZTnac2`fD2;^6?B* zhoeG|XpKkMg$RXCI-bHWLC(uYg``VorCy)s&xXf`>QVwuK#6ujP8I2G0@v zPmW6yfm``cH)>;=4A|Q)zBl!NrThflAIs75f zhhG4-dryw9(y`vXzMV;R&*`3O6Y7XMhCs{AyO59gL$ToW0d z|D5_k_i3t0a-*7{LP3nO4rW$A;q}<=u2{kyYd5Y_FC751hm!d7C(>Fyg#QC8_3yI z3FPZVHmWZ?Kyr?0jMX!)BIcGERiR{hKd}#iB&i1`38CD}n>y#jLiL<$Wk~iDG{P-2 zHT#r<#QGHcmTewXn;3~W~m*s)%RH_R1D|F6Mn|Rdf*I=N#izQk?E655l!M*v` z_`u7fn|j5*mt`DEu=s|)r)syNX`>wRaa=2gnDD@|DU#eX90qR>whdSZp`>WxV>EyW z7Aci+-mGx%!^`?g6VQmBIQiL;Nx+hb;JXHQ1K+-^RG?BMt3BtbDLBp&NV7Pkr;a)# zj_7#u0BTQi4SIIx+pOP6gA}b04Xt28qlqKhiu#-Ci+Y+xr>h=2wWXa`e>tKrV5W<- zA<_4Elar7&2+f%Ui47upHYT^HaU@$|Czc>S(OHp4@_tD*Y)WmS_3J*xq+IM-UJL~& zKhJPA(~h&j#gi|YoGJ)m!UVmv$aYoR+-@ZXs!8%GUcTNVTlGAI7JmP%D~sZaCH=^I ze2T82kqPc|7k|1OcsE3X&T@;0zR2?=r2%;Hb66#E^M}q%fa>R#`iGAbj%XQdt^jMZ zh7b2kqP?+~^)KK#$d{Fi2ih6%g1WdHdkFTqbB-VQQM~U6+i9?ID3SZIiU$}cBk9^? zyiYf$S(^=G5=k<2!u|cECB1eE#=9t;C2hfDpnGWB>#a%FBPY|J01}Qj{$wKpwgMQN z8Cbq-bB5@)yFm-tW_)Pyu#s!rc?^o=y(HW$YtTV$EFtUQwS89>$wJFT)H_W?6&UN+ zSanPlxsgA1#D*rMnNue0dQxc65z_emp$~_@H<}&}7;w%ct|Mped#e2njUg@4k!X5c zG5Su3X}GSD1YU4JIIPof$!y@3(#*BlkTa4ocXYWWs!z+T*fCBjn6Q= z78xV-9eKRZYq|XU-LSSkVQr;&F5cC5>>E_?F;U5_l`r^@6uHLPR7aXhPlW0=dm50xS zn(=~0FWCrt%6|))PHt$o^ztLa{~#H?GV+?UdTL1#B>lX-N3BJHHD8=J2WA1Ng9*sF z#TF!^l2h+;^i;X0$$y4Wen>H=Apg0*-nE3<8YtIPAms?bwScd;j;k=fYBGb-GD~p| zVxH~f3r+2>s#@+-Il}BYjMvWg_H(UVEeccNtfo@SHnhFRA zSQ|V=_+&}0$|<0PnDBwfiO0O!G~q-qj&Xx4{Ltr~ro#Sv>Lc0NW~rVfHbmgkQ&k=x zm1G#}rh_~>*&g#O4wfT`cXXDBxv*HL{@64*AO`KhmlG80vRT>buj{DXESJzJSrS)W zzwqt*r;ErXMv|@k_*GHD14lzy4OHZzkK-pn=Y5{RVY{AZyWwM$hb-x{*6)`u7vytj zdhB>#aC&5R>MWjsO)eXcHNwO9G=WQQOu4JDqh^SVlTO@0UY4 z-K!j!J8&vzmfNIS^jdih1+!{|!XQVS>58Vuk?)3Bza~3~OYpuDF!+7i>nA6a%qKl2%{fZG8Hy*ly9U|<)E zxNqL#3no|jSaM~^qW}hTES}eRke^aGw_N<9r1Es;r1+>&WT6XOAm>~CHqZZc_tw)! zgYQiq(@Kmca&jL>3t3D`i>35Hz6ye6Fs_Sr9t%eN;`u?5#(P(!ih%wzbM~(d1gP5-Y-ym zIDipl7E_!@@8vP+%Pphb!Ruvpd$a|8dyq>qKCIs(b77N0rh}`@0H(YZz~oQrsaN2G zOUn4U-RS8QHUl>yae*5moOZrFUcfsFNkhD-W+1#y1)^Ix{XQSio1{eb&XK~_HFtNvObePMXeBuzI@#zx>Y+o&4T z2O?GG;?a~Q1Z4Iw(~i>FboB__Tj8!ZYR}K!Gw6Fv?03$}0#AiaQMi|0?9CWyg;&%e zwSl*wC*eXEMjDYTqN@r;?S4>r*T55q=xW;^9Jqh{lVUu!h`E{DFHo_jrIMonq&@wc zVZ5V3u?t1AOxLfMD&V7YFf~6Z#>tk5GV8IOywYPvPlAO^j4my#o8iX7W|2|+yI-qQ zeKNQ;B4v%o$%qQXKdNKn;u!+!&1UmHzBKsh2IMt!=3Y)g`P(}+Ith;&9-U&MU1s0` z6Ph$@mVT#v%y*14cpc=wR`z|RblTJ+KzIoe2Fa~F^36#S(iJNoyQjY15Sau}AKf@g z>>5@ZM8B{B!01$9V~B?*lyUWZUslz$I#BR?VMjlZRdpzE0E;{#LvQ*EISw_;-EhgY=1B;uz#Sa0 z5_LTx*LOT@J{mWuOq~8i*bnSW&MQ{RI$r~rv1`vZH{)|gO@iZN6LNEr@P35D@j{2d zVAT7LmK7zsqus6E)stEl3bfV>)AGq4>`wMNw=Yn>W;ooJj({LM@u<=`p|jRga)P7s_EoRzv_Wl6eV%bjXDMI z;f&jSN~YL3Nrkxz+SE)_S6 z%cnHngOawWxNz#i@`zo^CHfszwW0q)mws7v4}8kdsa{op_>X`GaZ*gv;{3)6&jZY)srAh9>1SHvGTm_WQtf_|;m z;dkhsok>w8pyYZXt6Z5DSM)=Re&YG)tbTwl!;oqNw5K`|DU?hOms5-Bb#~E>uuhv2 zjk5ks--!33kksu#Mp6YXD-?I)M{G>B6`6v);eB_f*vzDDR+$_{SHL4K4F+GUeB>V= zpVa&qmpwL#-|g!Ww`n6R7CD!}!z{&OI$%LD_pZxx}29 z4&Ru`=OIlP-PGi_M1@DsLZDVT7WF%ezU(;ZS!@7#yLGd}hX}5Q$4{raCA(`$8_eIy zg_jL*&AHq_JSUevNcA`X3X*8?qU0Xyq2lPo(gUcKR__@TFcw}0)>-T%k*6^&%n`WS zcZ=H5iF*eRy;m6`*B7ox`huwJg0)I?HlZcKo=<^t^bM3?FM7FSf=y}~5h&cc*H;@t zuqbF$jd8X+aMr^M@kWP<5+D7aeTtz1O*;SW$BN=iovtD$r7|SR%zNCPQ*)^h;rL`1 zi=%^k)N#cRm2=0oqn5u!Cav_gBywmaT%zj>JW9V{L#PV8N^qF;z+JtExx zF`eh`G#~EP1G8?2sm!cX4)*1a!#7Z{AnQw3jP`=SPWbR4ubo0XM={r~0*V#fm1Jf! zffIk``pMrG(Gh-lv0}Vqhx17Kl8Syet3w%G_oPace~|w}qWI*lHLKQ%HlKR>o3MBN zI`2JPVM4{vN`RHJ5;xi9Q%@H}`Y8sZFt|Z zwxE6mm*$#lQ5M*0;>9+W`MBsVQhB&Ds20s}5+S0{F@>jR15KHcuI==iJH0K5Ecy2^W-)dk(Xb7_LlKtTY> zw70IORPTbGy6Tjt+{}FE6GWVpC-~7ikRcLZK7ACu@-o2aZe-wjhZ2Ck zFZgRMu4BU!p^DE+L=Mb%zg}7y)zlm(2YqZ#wdSapC)~|}`~P+f){cpMWs`koG6}F_ zSKFsC@bPH>B=XyG*X7en*MlQ3?DWlrMAX}2L~8IN`^A@!Iqd6Aie2I72U`o}aAhbv zI@Fu!_JfNHGWx=*moFU<(J>>H6*Ma^__0PSwxQ9cuY>KYz+oK!iwWl8S` z)Q{K*B#oI2Dh+be3ohUjc8T8Kc=hn8K0fdviA+W#tt0mmE1CT&5Y(@xBVEz<3om*R>m*E&3$lH9ZPmbEAD7y&E(8K}^;(-nU|{e;nmY3@#o z%oTxe1D_%z)cpb)Do@*+3zH8#51+hS&`~z|+3O2VOzY(A2BYi<;y!mhw;Kj8x zes1Llb_G>}th=_9%Y&pw1^cqeelcH~j?M3ZM-o+7$>{I)^U{v%qU(O(=K2fub?;xW ztuIm2xZsAiOM}$QwW+M{Jc#f}qiBd`F>H^aR*^63qT84}U;56jwbloSRIY{Rj;+rU zq}G#4T{9PJ=MKXTMy?c@bEbh7h(J}4?gm%RS6?8LRS?hG`=KvXWFzpH&*Fx@XBmBD zcAP{+tfniVEVg!rW7}^kTu(L+^yIbLv879%etp4@gvcr`fh<{Y;YyVM!ph!T6eqm8je zfV|1h{E1>EZp}8@^f(P!_?{QV&fJi`z_ousC<9xjqW=?=#$&b^gZqaQ&8>G~TymfM z;9sNnRQ3wKmk75 z4BQ_z>Y*QS$S^v;9Vq{var}aM`4d@Q3HCDo`M&C~plZQMRl)X<*y(mTyCR{3{`B^T zewP_Y{MRXtjggug?YUO*ZMP-|V|MWX_ixeezo#*-i=}?4mayg#EY<7m&}Wl;WnS$F z;L0!6HLnYwa^-J}E}+6Tbc&5A_X~;F0&$3}lcl7J|0By&G&Kb8KxM}C6e8d(VStn%Il9P$Yg2XdG#3B>m`dG+>@G3(w#daTqH zlU#D~=7*~+oL9B3E(oGeCXXCbNK0uayc{f`b&*?hLW{w7UjK2VvRE@}0_%}E#+*)< zJpzNe)a4mcF?NJ>JWO5pfO|sWSY0jbO`?kB&0<@zD>rfHrRx2C-^6ryOKcqA-Zj55 zAasT-W0}0NEl3DT;u7bPy~Y9>;zu=){d{!4Ws>{0gNM>KNVGJ@HTG0ChH*zo;;Dg5 z<;~KfpHXxm;JZQUYU744LqSu&<&nIaZk-~cnAzyM)uW_}JwH)jQg#B=FYu&c>b`gJ z8%&+#gi*!x;@4mJOqH_@@xalRSW{N41rtoc9{ znGF?5#$K}h!*Tj15y8OT6UDkgd+PkS ziNX;v|G`|>y7Tq*+K0YF1DZg z1*M_ox5*iXy{kj~pBfoIWhE|)58_q2KZd_OJSAst_=TB}T0^-ZvE5%8VBHT?c1;5% z8xC*J+X;&MtE^IvV0Pt4KgbRf?WdPlHK`ds_~o3{LJ3}*=B`gP-dBy=h#bjNdi1Un zT+N;4U!Dr%oxSQ5R(U6$j~Th**LfJ}eqeq*P=7I3tziwZ-|{D2|yM;O}iPX3%i1_@go<5|OC;{^Po2^OCD@I@(h3or{;` zFHa@sMEW®g^^Zf@SMWuG5mAJ2CWG&jrK3k*Tn=o_{C@Nl$Y__9K_H*m{4?km*@ zr!nG5g-uJg$v|PK_Zt_-8pfp5puO&1|y5unTu{3iL z1hQ-rw_M-lmzcJFXO1!6D2>8pQ=6A>iDz0^aJ*NsuQY_>p7L0WQ$b$Jt15vh>&g_h zLKoT&9#;l5aw*>LxMTggn-ATD9C^LRTrWr-iy7HOo^AIrPY#*E9{I#u3&*VbOxcfz zSVxeWy)_qvU#MoNyJxm z$TA;McP^NYg}?khxx`Vf6eDBB!`3w<>?y(U=+|}_-9j`57vQ_z*fBC^lNC<$kOT}e zz15;*`bcEijcz?`x`$XQDEHj=@Gv<<<*32AXtJ67u`6?+@1daeEHK;1_}Gtsu(;Om zO$^C+{l-DV#iM^?aaFOA+6jlfA-HAfM`m?R!6XNL2}*vIHh&DL5)u&57dfyQfN@<` z-xJ%oAwUa%O()L|kKF8grDuBHv8~S#Bz(3z?a=+X7SeZ3;oxcKx+UcE+@%w6n|s!A zv(esqUXZ2Ny|jGb>@Kbp^|-mst0aqSR;C$7av^(-a@)ma@dm$b$g?u?xdR++kyAT#(FxV-XjhxYhmQtR z&azc{i8BV4lU#^;w1R6c@n%YMJ@~Y4Z#ke|e%p^>Shl7i=&2F;N8dO%y7{)iz^3YV zD5k}}4D>$D%6iklmxta8etURMhu`IVn%nQFE?~=10kO7DpAY5j9DHymz{_SgIDgik zX({6H9gCvQu~H0mDDZC08%Ut=r^8Xz<)aTL;JaZdY}+*b-K`o$_xT(N?HcJ?ZXY=i z;IX&*9336Jf?hEOS$x{=PNO};F?X|W6>^~4vqr9&FOLfR9%`2)gq8r$O4e3H*$_AO z1C&{o{KxN9gf?%*aUG28V55ATG8q=9)+hams@!^}zq!u2KGz;yt2PrKSp&+s zP*d{O5R7E6EIy7KU5<&3rVq{)>tDKR2D}5>WlW&Mmzecd<##(lVE~7-3LMyGs=}8a zal0JX^ekEMg0Azs(tV|m!(xuxhW zL&s&d%H#CO8&1UqyjzL;<sd^*Tneb;tmy&t)P9!lkPndU0m~ss zwPzR9RWyoOS+9}lD73?$X_K`L;AyY?B%*6U4S%(lvTJkK9~%s!JS05_SzY1v=KZ8{ zEowM2*ZX_I)bce@y-5ug%PwQ#V1<@rPmTCFS>6>~>&^-aVE28yLKGx!dwExGmC<@@319aUd*mMBUb%>r+d1$p+|^%o3G9wu{>XZe zIW>RXLbVE_o)Gqf7|FSa#MlHitBilxxh)|Tu9NAm7NECaqAz}bSOq+bW88OBg53vH zG&QT*mugLPJ}Wm+LIp_0ZF{5Nt-KTMPpzYV+^taqv4B#`x+#+4GN5wNoD@icbj3S) z`u$|U{v=~>->Xx<(@r<>b;VZ#6T8y>nTXivNjG09sCFhxn*G3`)0M$LnB7+_Y4*W8 zFFI6aqp<-Iw;(JxDJUz?rtxD__jF$aBE&#ij3Qv=Krlb-j6wI(w@pgFn;DAoH78Xa z{=xViE-v@^Y~(o2Ml{> zWh|@8LRhRiNGq1{x zMM3yNd4s0bg>K0addHkqY;!A@6A(8PcM;G4xErI(_qv8MbZ%^)Zf|-r!bd-kJSPY> zU(QxTvVU`J(*9Bdo`Vk5Z{E6iDU~>P`7mPq`?`ek>0S=sr83lb8Gg<}T zB$vw#O?pquFzE_Pp^xeveOT;1Yb7--dVd|?s* zYklXQ!&9*442N$wNcR**&O#K|rH(9}V!z+b&rWfE!`G8Z{`u+3%`>_h1|O#H1TCvT zR!_*971JtQoHy24UX9V9{e{aZq5^n)rRvV?1&ut;JnRjp*ZpSbu1Y3yS@)p)Ha^2? zF@bUlZNX_|^M{_pK5fUFIuD@NYKO->};?RP)qSVuP|B7+iVUEN7ke4lI?P<+9~uXD4moFZu9rUH zDdmHx$WKU~5dXLxL-D#^Y#Q*U|Q=gxV*RDOW< zkB{HFJ{EQOZ{+T&>I<{H;%9Xujq;3=dQB-Oms}5%z{}2Z$8)V5hGH~ZqN1Sly>Vb) zm>FlS+!onF5ythX@5u&)Nj4lvY2XA|(1eht`*g3D!*lAkJ4{?3EzM(*=;nY1%d=MH z`1n1sirw&F(m1~tl?u9b_-MJZ7&NQIj55!4$Yy6w`xnmCiE@7QMntSUag6H6@Q^D# z8aOT@q3n)}2kimN!ZPOhI~5Atl)4F0B!H~;{QHF) zY_D`u3JvyY^#NOdWR~*F*4f~im`S_bDs`@ftH%*Qp|hUc!0^PF$8@w0NDnxb#%$cj zIr*r#eZo0-iyHP8;9V752*xbs=4ce_I33>|^p|2u%kB~G7^g=+e9kNv#2L16 z@a|}yPh1;qgOvi6x~;QU)746QGA>Z)TQMKt(q1C=HIUH)xtzLA%BQTvf5`SIqZ6{d zIe#EGLpw)hrxq_LPM~o!&hE@u3)XAb71fut@iKHe_l*%R2+1Qs((Ry;6B^~Q?sacd zZ4rhj(g+Z?0N)w4fZnXFN=carp&2F-VF}=i%xPk09tF*|I0vhgi^e|`P;XbS8I%WT zW0ULbltJWZe>2tg^S{{;>RcLV&C#PK1a!}CaBVY4YKwnC2~(8Irmk#8kv4f@TBFhb zD}vHcPdT3ZP&!#THiO-;@nn_tQetc-yWxz~m3y)}g1 z&Po90Sofd#8251R1_WXOgDQL{3-|vhG&XND{>yW$Xw+Zw-w@y~eknHW4!mePnOgtN z>W7YxNq3|#oWUQgt`FiA7ayN<`_g_j0g@>*u(6X|8~`x?c7?>wtwuYxe`r0l)N-=! z@}$NW8)K*u_n)`R-1X@#2OM_xMKG(5jjXY}L!R(TA?)glO}WA!cZ};Kge;$*Va!m( zxuyeDiEF_ypPC1XC;Y3=79E?M`Z?2sOr29P6w8+%N8TKE&8>O-MI_2CHmFouI$507 zweIs5X2x#fSy0Vi8Qy?c$Y`s{OxDBHKCf&}ntnv=@Z@LNk!udJ=5b{CD&X(wW=*<+ zwqF@J7>qT=!>Eg&K7iB1A7X4qGLm6y6cMj(69C@xxV)5ldp!>E55Y}02Jb##U43<3 zf1JX2tR*D>#~o(abZd7scvH5{wr|`ETs_!EtX*LhlhZt}A~+7x83pw=CzsWUzt>pEa_{MwnRa;U( z39sXHqY@WLMTk-$bH_tlK{PI<*Ov7q2&;ZANh;fVnzAD8d_AKRAxA#UCcH^{J~%L^3!mJ6Y&}zb;|_-Fo1uwG>D?yV-p-t z{!#2o`^;;zOGQ`cwHPr^V`EsEoFUd^?XEt`C!1_7_ zd|g#z;;U*HZ$t#e^n0KCnm z>*K1ThSL}UFUAdAUEP&)mn>$2hhyOD*O!UeBtazT9Qr_lT0&#qpA(h8bL{nbKtO6O zqaq8L=FbrQ$@8Cpu^}YQAm2>RM+Y9c2UqLlb4K*k`F}m(ud5k(B{<6*H%xK~p6ma? zAEC<=ycch`Yy0gVgoyveRr<|&cyy9k`?>?J&+_MnK!P_VZvb_A6_z7)oOoYBXoQdO zG&laQhgn`ZNjN8`uB|ET{B9O9l1E_(14eEma$u5_A@fA}%K0Wn?svg}clBP!Q zE<~V@W6qpRiTS^j9FT(l&&O4PXT^UD8$${9)`TE6UFSv#vr5>w3ljeH{P(E61#cxF zhPOM;-TyiJIe~|Fq@QAmRKq@yPvzJgLkq@;i2o)K{)%j*oumh+B*fqP!>=h|goK{RL+xrMwsz&*q_e+5l9C=Ac&NhD@6Zp z^j~8GoLc$G2N+F2OfmnDM3n!_+hsvd28}-c`QCqh%)c9vcp_~f=EoF&`uCrM|486J z68Mh<{v(0^UnMYc42z}$;{ktQ+)ZkCp4*L~_yj~0ED|>Vy94+>^oNaU0GtL(cXG*9 MP2G!c)osH57Y7_+-T(jq diff --git a/_versions/2.7/guides/images/registry-nexus-repository.png b/_versions/2.7/guides/images/registry-nexus-repository.png deleted file mode 100644 index b7fb7695f605fc460891401928b1a1c676fa1df8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62195 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 kPLte7AT(R9g166q@I=TK`!6Vyn{RB+ml8 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

    b1$ZzGGD5Sn`LV!zbsSUR7aL3HXLihvuT;p1 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 pJT#OTyjWemX`w*r3ez}5KB$bU&;S-QzdS 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�+?VuUjJ+z5ApsJTocmeM*{{4WY1zYdiQ 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�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 C5kyA- diff --git a/_versions/2.7/guides/images/stork-getting-started-architecture.png b/_versions/2.7/guides/images/stork-getting-started-architecture.png deleted file mode 100644 index a73610ccf7108ecaccd8798b993a18f4799d6846..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153819 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%0DVdMXgs;dl$vfH{t4?Q5=ASECmASgL> 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

    -e4PDPD#-|4-J3BDf{uSTv zps}s1mvKuj$l$&w!1AlSKC9Yfi8^QBncjKE*fWKI2aTk;3zGcP&a%1BAZCZ~e&^As zsHkcu>;TESEj{5C@+XEmKFCLJV%Cg;Pf1Uz53;h(G`|Mcinx^UWf`}0_xzZ9)Ohhv zsigBlF~9*NIIB9?<*(^xC?98B|I~w6`}FF04p0}pzWpc%Y$*nXrH-z&!}f`>N7By+ zC^qMi&p(s?r@%Uk0)0r&ly3FlTSg8Sl-}ut6vw3zDjdcI-UuYk%@&p z@jO`6Ju4N@ADjm<1&!JOcyzC?)DRw|*s)X&z5UL4hy`*2x}EUIe-`oQH448EDOP7F zZhY}%?>fir#42Y6elh3;y!59#?F&Fm{~G>ip2SpX_VJH&*nZjLasNvU2#ZKhug7+{__&^K#tkD!Ew-f&t(K?itT#8) zQ6Kp?e*N#64Q{%9HVW>fR|NK#81x4ye5=WVTxD_??4N9)te|~ZJ>j6fZuU8 zo#2g>#N!({Y8FnOM54>kvJ$n<6aIB6igx`v;Ov}!$F!;OA(g@ZJOuxqX!7$h<_pz3 zjx3>5UI(nPlmKN8V~R{S~t*#t3^=LHQd2K4Ugc-=zsrnu-hM`z#I()M;& zCu0&GylpZ^E9^0QZvu^+`ilPFVrDAzEF3g?#5WrZ{Flpq?s2|-Vc)IlAVo zCA}x#U8=911|VdhzimJN#}%Um7u^6&gAQde_%=B?*|Z17nFEOVUhK_{T=h*3zPpAa zJ_Q3r<^upXJ|(YjdJO@(m0vFNzR2G#ssAbIZta0XHjzoirk^hhllV+qfd{%f8l9<^ zuu(SIDUTZgs0}=LT2eN5i20~x?)XOqtXX{mabeGmA&BJWN3T#E-5}yJ2@7;NG}V`i zsrESgrf2YCr_b+W|&vvHl*~4jwhOO%)o@^Wi6`CT) zdJ0E>?O~#%*fsZ{U%39#MWM->eY>B_htUr{nth+sDiMoss)1iiK852f+}Ut4Gd(@m zqy+u==aMM0Fa?=r@|(-BZCrWAuj>yd0`YSv>9G}VipiD1cUQI2CSM7a01iDQ-}nGf z%;pg9oLfOiCx$l^TlNiEu*+##`Co&q|L&z5xF4LmiA0E-F|S-1KIVU^d9F!>B|emM zFCZ{?^6@;)pE{5+Hd@N{?;mL?DJgtrAgWBaJ^E28z}JFu%aZj(U24nVm)*Hy_LErn zs0|^I^v1b{93*zFkb!2#u>vYz{x6WuU0}-9&pAM#>c2$u`Uh@HAy54;wvRKWeK}Vq zu9_Tm$&3fmKsfzS$anlLp8W=oKOdVa%~W88L`iIylNtQ<1=mSOKCF`^jjko{?|JdR zt;t_CJVN^Y5J5CKT`qaTHT)60>j4953c0OBavlPEe~p5I;xI75H!#DR(f!phX<_;aI?Zx$T|j`0g74ACnZ&kLhV^tHm)JWc^A`sy&*n z-&55)F3)uZ{pAnOg}iNuBZS9!qW^AKXv7PwDb}dNx19=9!Hf1ftkBed-4L*mrv$G7h~gEnzmfXrwT+i3QX~`=I7QuDNM?i z|41!c7|^qs;-t6ciyzzoVl z7a4bh{tAX;MG$bWiQv+qEG%j{Y&ir;QY8N)Mu-i-2K!f*1zBGrwqg1WGZ9dc;2W)ptQzZS+XceDHy-bj0YlP%<$ zNmGr1@xMr2LkPaQ1Pg8)k{pLK*_ZnElxP-&aae_UUI=S_o~-?}aB!mx#CAfM)~kD$ z^VsM_M^?@VcZJ^9hW#Dr4FdwO$>$9vvF>mXT%siO?>jL3h`C5T`CG8t>9V5U?t292 z1Su_x+-HW*U-f4^Frz&QX_?`$iikLTjq5Nwe*V_nPm@kbl6Z34mpb=BMtRks!httA zDpLG(JCS^2uKVzhGJ8)8bM~I8nf~nwU4GIr9{@<+d=o3lPlYys%m$+Jjqcm>)Q!$sa zTW(t1m}TRQq!ZX*_JQ}d6BRhlHCnwn~E?NKW zjKrgBIESNT9Qpk|SBtmmjrj=FV`b_ciD$_T-RjBUS`k1+T<8}C=pjGJI#1!1a16-e z3iD@QlP);fMUpzF5+6x#qN({PDVWf)2Yl3n>L}XF_h&O?Xp@GT|G$i?5i1Z%DvwAh zP-hR_2IV(Sq)>&msmxp$^k=YtGM~HsG!Z85u;hktd$;XoNCPi*+pe8JYFuKn$hX=qP?Ha-Ix*UPO4DS4Ett<1nk61~GPA$Z6dCQmJ}9;haa*S6t-KylwBe zMa+$cl33M!$M`6I7v*&lDOmi#;tBUpLj2E|{{aN`(oAWaj`wzhw=WHRX2cwfw(bqx z0jdi$Ou)P5H?B{ZY|n(-7&Wb{D8mIF!v#&8Kms+ zVK=9PC$D2IP9{EScw~I(2p+m}6+uu4y{GM}OlrY({XsNCCgNK$HgWZeU2#%yeDp#T ziKC623@ANCZ>+LZbwHibC6Yj=rWKSsfj>wZDI%)#gmpvz@Fnp5fykR~4q*1TRBR=I zZe3+wCmtvZ0feI9KSD|wel98eZwO)5$_(kRRBFZ6geiJDzHI5wpTJt9;SFyyNU3f! z*tr|%t*%55))>$)sp95&#S8RpVY{Ir*tDDvp=>NAFCq!>TP|F&;<+^mBYu2h@;erf z`z}qa=qR78Sg1$Z@5*<3syS84M}JGM-7=b&IF|Ebt3miRyTW!yB8rjXEhKiJdEVP1 z2aoZgFS~`y28Rf!vCGVySp|>gU$U*bIujsgrjNB^p3Br$@Vpb zFopaJ9yzx3a+KmRUx98xbmGy16Wc1o2N}a-k<8oCRFK*t{6g^3)DQ#$;O6bqM4pV4ftOAo@jLv&IhPCKWfKPd_!L(?4 z;ZG~le~uUm+Sh|aq?HICl3i0Wf3Sm`kknT`Vv6sEn#s>6Bk6?t-+7UVJdPZjL&J-c zO)Usi+70Mp+af8kZiB_C$jqJaDWnc2^^Y`-vLeS)GQdNe@!!9s*TkUPUK67wEHMqP zgdhbY!J9?ZLyR#HQx)FAU0mBuY@Wk!)kr&XXnfrf=Rpu8uzZTb?ozh&395$5Rq2FF z%1@sy=S!(;>(4;ST6JRgSdrg5M4KGWq_!QbDHl9swPhsqFd8hL8U^-Kk#|TFf!sxM zjNBH9fZ7hjj|=bd`Lw!(+Z*a67NM$cfp231U^voJL9E$-E2)FN%%#l^!i$CI7-# zHX7|Ew*~lV<`Me0DxTsrmQNV^O4}3T8_B#Kux~Y3J{+75gf?!I(PQT)9dYkpl1G+Q zuckM$M`VVhEkC_VzQEKXJz5}#uK}g~avf3SPe^Wn)GJvZaATu!Ia&%AOM)2)LNN$a zAO)sbZ>w18oB%IU*c(#D`E1ND-D!_{q;xHoU6mcbV|b}4fEGjN@ie$L8`N>$%9p16 z_yaC*(amAvtk;WV%Ko^r0gb-O6M$#(tHJeZSat0vfT0Xew_1d*KwN~$KqZxC15xwU+6NU>pBx|MZfk=F;xhFep3Hd z?duXe{I!k;H{@bT-Ah_2pnM8*@QV#;u^Y1k>1Gz?l^8dDAmE|(?oxSe;TQgf2oedkcW%V1D_YCa`I@av8~CipU;7IkLon=HGU6 z1++Gn?p4}H7NM|Qpnz;A9F|7T7%E(Vm0+b*OC3PJd7e67sd^*{^l-!F zAT{0bU)-xzM1Yb$Q^)qN=#6S=d6vgR51X;HujJgMgyN5BkE1^z0*MY@YYDEX+&t1E z?KfqrZjYRFx%F`;d5Woxpe|ued+Y&(1GbDW5w1AjYqg&ID0S(v3o!doa$n8T6w^p> z)4=(NLW^|%C0;TTn@+~CJ_|6ORv3cr(j#pHuq&935WtRli?M1D@E4!zv(Z z1-8|8ZM@`}mDec49%Or25^{TGXscbB^2gzHN2>0Z7E}8kSo%`+?`ezw2BN?!6p*50 zX`s=HG^5byvyEq&0$kG{!o;|)y#|gsPPp&-O2C_1TIJaFzfJ3=SP~Q6x4aLz>3?uI zHhpp{vv`QOr^TwT`cu}JWuLStssA|u7fU>1F^2v?YE*USeLu!yx;LINhAPV|$a?^h zVgBn5x)WB78BF94WW!j07^8M^u#=gjgOr+6uA8k}>>;zmmM6b8oeImy#L(CgFh-oK z@-kAzM8;EkvK)_$u}Z1{luyo3KJHXa&VhRgm$5^q^n)F>bw0tR5W7AYOh3PzW)o|Oz)voPOpWHEH!%hdTry^ zaJZUS2I6wl-!Z&bk^4bjOpb<=Yry8jP1A2d=zqs}%|!z~j=o~sMl)h+&L(r&w=W?8 z4UNr}uofm{AYr=hrO!$G%J&60IhVG#3^f{zPn_LM&!A_~B|1V%KMom|XOKD2Sy}kJ zYLPdafQQn=W~oG?Gh6ZbFsAtgMvC&k=(ykjR#8&I#wx2X^8v=zlH-^Y>mfNT&TN5#*7yc|lpJ6;8XYqxDC4nArV znD*5;8^6A4dv}_x3kUB4)wR32TjBpTfcp<>*I)o+PLxrv<7*^*XJWCE?%6vY@3l3% zm}DImvChPruw7B|Ho245vN>Le&> z4;;fNPdp#d%zM%M7cJ2zV`h@;+>Vl`^*cIQ)o3h_@m6AMv>fJ26ZI4{EhI%i_uM@K zVg#k%_MBRR3m40exncY|A&s9B+nzc)>=Sk@C4DmWuymi~YoP7`H<& zO7a&{=60d4iavs8_6|KI(w;ZXWocFMWG`!C%qJz;<|t)?_m#UBbFl zrSThcE%_iri}Jg6k&?zu)DHR4*FBr z3kn9!41qhj0>pej4>UMbcAud9d7%3Df8rv?@?&mpCtqvQz>)8MB+~qzQe>of<5pddKI+ z#f7`w@g7c1pR2_B!|+dt?!NX3;!>A0&aYohk0`HFm6@|yb(Gf48`2=ztkYEPFP1p| zlFy}UJN2D%>@b)4`GRohk=F!g&e>Bp=X_OX?XS^W-e)gMHb7bmBn~+7tI}R5Oe)7# z#`odj{iyj$0qX+Vv4t^YNnzPW6Rooq8JP6sP^NeNHQEwi^DOb@Tdn=9I9{kalr69A zaCOGLLH#RQgFAz_DA#tpbZH}c$x-Aa-_06Yu?hJhY%p&9POamNpfA+^B;yZFb1B0F zu>zlTZE+8$>@HEM^${Pox?uEuG2{kqjV28gBVQpdbF>r(8yrh{-P9e!Z#m{9^6E|g zXMu!b!_I(@{br95Z{0-8w9(Q>C~PTLr=Fdr;wEc(+RFdB2tg*G`V`z|E*!-!o zf{TqSnVt~QN0%9waYJlZ3y@Kn0JU~TFlRdf@sK8ovvQ{zQlr@VbjoA34ninrIun}Z z_GBK%kCf1l=vw=iWXTRi8gafrvZ5EK$@T}4IDf1=bS~LoM7}Wio-*ebviS~}>;io` z$l8kAj)+r8q>ZZY?Owr`%rAqsY#w5ba3S9+9 zfZj&F?o3R%IC=0~Gz(isdIAYa^_ZNQM7pInBHfHv4Hi6X1DZ?S3=PydeO#*sUl=fGnnvHV<7NAZuEIk&<5s;Myy5(e0Y$_tk!4;ozoLcjF1y=%vD zJP^XYFrEH8*4CnN&GbLT52&spG?<43YD?ubFa>3&S9H3sNt5vHBEm+AY9i$5*WyUg zRKtbbv0bs-OWO~8^)C;mQR5STPG&DOnoQ;SI%=h!v}+m|uV_7GmQof@yg1Ux+|U!M z;L&)}JG8P&8X;K@s=B}i5uhchXTJ;KBAO9JX?_C#kR@)I=pYTKVCN~*@xnho!x1qZ16yj}3t z4o9urI1iqoN;|(~k|B$1oYBgzcWC|aHWbO^lafh)^QEIBL|MztbebaIjeG+OuP*n_ zt_^sh@#_cr1!(ynWr8Rj8p)=9opnRa8So^f-xMWXv|hxMyuRE<^~l~D$~DuaBCCyC zr{VC~K_^qm9Mg|On|68^Qo;KK@E18heiPx$aQ!d8`}+sV^vocpSBiE@7l)O(gKQoR zhKh7IS>mTLclNMeoq+N+6d&VXR@SHu68nj*M;_MsUB0tglm_Jlxtz|d7(IX&u=}H8 zetw?5h09hMv{5^A){l-9MRB)M?)U#ZhSXSWb1&lVQ0yJ&*-2Fq)$bF#V* z#D7ZJ@)p&WuTlF1#o;skTzQ&K7|tYBzIi-=yb6CIvABI$q-D4~Mw@aznR>T1$+s|& zi~OLSGrt`yUj&(5)j8E#`t^51KZ+$WvnK&BpbIe(A}b$SWK81ZGk!ZzGu7K8%Fqxi zm}o?MBUrD4YOU8N0n0rpFFMM+fIU)0(j!QRfRzLx1Ho;v{r38X&d^E%2oT6~4o_wS z7`tFO-CW#{h)SfaCW|Zka>YK0U_d?FcBgIr0$;gpB(tR(QiR52l#IL-a|p)fyr(mY zIRB<)wrcisn-13Q^P zC>~2|GTb``)r@p#>W~xRESnSKP9-{6DrHwYK*3~&9qeo%D& zcaJ}+EXR*NSJK36jRhsMqQls-(>5KF`oq0#k%9{cfKh!G0L^+39!&C6Y#uwFCqXye zCH;Y;1K-^h{@v3=&s0Y#LBMgn7iiwmrS|X3RTXy<%fE*zSdwrW(*Ki9jVM&ITPBm$o>qZ(Y2*iJTuRI8?x^VDIMzksZGK)hEf z`i8+8c}RJk>U@8@_^C1EPhq+%!_N3`^({(WCvS#QCithp*rRZ4YRQj)SJBaH+GP!I zyEC&oWg%we?Ur)8KDGRipz1634}Tq7JwG;q=C;sSRb~ zBZ~cA0Z~|oFWKu6X88UVKdXul#knFbXT4wlmvjAd85XDm8|=eT6Eo-(*9GTPvWObR z544Sbm8Ur;P=gu;mvu6kYcNQ_H`n(gPWFcrbFeijuB$_CVGJiybp)5+cKyi1t?sCV ztX+Pt7$J0?=X^K&1$f^F#Ex(m2DH=uUmfN@k`m%T{X>)Ny|njn8z7Lo8FC$tT=VV# zbdPxD39*A*q@Vdsh&>=3 z&@IUE-YK=wyMUqliM^LJE|#3Dg)vV`$f-&`LtVbVX(WEkMl!U7TNIRksh0gTB+iF@M3>>L1cl<&M7Qn` z+&gl$2p5;qQ?b&EUt2TAf2t$fhNq~xI2-sKdyZ&9xg6}XYm5|-vAH; zxk(<8nrF%(jdWDLge{cSE^bBz=%aiazU#OCvjDSj7XHn9Ggm!H%s{F&cUk!L9FTvL zPV>lNzRzF5Ib67(3#EMttd#Cl_qCgbRkvTHgRbF>LAQS7AnBA-0i)~LklX0{wvKJz zu{bG@H*)x>_GG1gO>!i_8YF^l;UoR9=EbkEj>XgNmL~fRZe{NK=xck%_RThg?WA?hhKIt_ECQ2Xo;~S~;5Sdv4M^4Pq%x}K94~rd z#A^U1=Cu=v<*oi=hSN8hL?EG%k7JE*H}nVNFO=@8-ogCoU6-@{_QLAfu3E-5B^|pA z%2(`y?w^p4lEqMC+SxnyN8Rq$!76Z&+8;`tLQ}$uoJYHx2X!1d07qz`-`RHi$}A>F3C3^6el64IJ6eX*8aRa>!OGgf$z>J zglcl;etTVwg~cLe-2||ZT-hLfP(z2J1Pjw znuF^}0gd~DNSn`#z#a22^6CyuIlf!3D;YV17g(E4MTkw*kkerl_Fe58+g+l?LedMf zkN+`2{8tQdO5cP@q|J2szxd7mJm*~xve<~6(P>BfxHpLx$Y1NGMBDhI6$s3V0>Mq; zKcs|MaF`{@{a&MnO(V{hY9sG)To6!R(=GS^bWGxt^R&|yMA+pTAv_8sPgBoMI|^65 z9S3qXbrjwg?*DS*M@LFE5LNX={m0$xe{n4LlqFXmNi8_PcO7~)lbz`7?jHI_Qh}9o zdsC4@Kxse&8z=>ALO0%ki8iAy}8~}4@9hPoDbU2E|WSFtip|Vp?I*!b26mXhdSw7pg#hrar)?&bee)}!{i6wJB-gWt1Z7}Z1#WpBE6m71!6IXD=9A_^MK zgRR86Xj4Yr{?4F1@V)(Yx}sxO?RVi=yev}QCdR_FoEQkYX}`qZVzvkRWJK37fs8&&)Tgg&W7SF_UNK-)x~Xp zi4+)ZhROt`0XW>*Sw3xwMU5$GJte*TEojfCw{n3+g3reY+jo<#e*VvYE7$I2dh zFz;an!Mx?=`@(V0RP%*S0mv~UwW!;c9#QwryQtgpOcyqQTIZ=zNW!``BL3d7qE1cA zDmVeK6bnv(<-Mv^{v*gxe!cg1DI7(_Sz&&fO1=2@%O#E2hTF$7omNMfBI>wq=d?G; z=KHXYmY?=L+dkh(3yIp}di}a8+i`ugd5W=Q=g%F~=wi5Nqt-9ozmWQ`MX}uOElFXc z-!7pXZFmEZOiR6r!nXh_QXa>9$P8uxad6kQRqa*=qrPVWE6Gc_D|bD+ga5(mlENs> zBSF>0ZJcS7(<(5)ndsZq8Iy!QWSIo6zsqwF$op>@@UOFp&m2FTIMV-2wE1wI{IMU0 zkVpk`eO)9=R}59%p0RP!W`tbxZO}4$?4C?A05_B~yYZa}1a-ER8#7%6Hwwep^yRoPt5+gD#!zkXj2`kxoT zz005Z^3fEKln8Mf=02|0J*Cev6b_QgTgTmCCq{(;SwjN@|IP|HKvvoh*HO4KSzwg? zNeJP`=%fW%{_7pdMGc)y^L=#$9^9$KBTT;*muGd4-B1EfEY@(=DZD5+qOybzweBtbO2q%VZOPKv8rAiy2TC9 zExy!SmcoG(ot<*K+TBsmf0N0oH7=d>9?L-t+YrFIqrz6kM_b7mP}4y>s1%5-+6 zy1IJ)8?J6V^BZYxe5#ybyc;wc=w2#I0v0b=n)9^YyQxX_W5EQ#5x0-(E$Mnac2M9y zwL}}T!lCyI&Np+bjEw)8I;N-$qf7;`(fprnL#FO=2>vpVuNhZCXXB()9!1nGnX}xr z$Ic-K-Z+j)hlQJC>Lu(%N5B#Dyd9-(s6ZRrGY@kM!0A~rCbGL-K z<{f75ee~6tXZ7{k?9V=qsO=IYM3+o@jMa7XNg%Uvu)t!dEz^hB#$Om+2pS+`Ke zhjHy^?B_7VQ{Yri60A)e4n;-$ls|n3g+Y%keC6-kBWkC^S3ZEkE#*3%d1U#PAHRtUuE9vQ^U0Dj=Gvt3y-S| zz80e`^&sq^?SvhnsmhmfOuiD&Fooi$(JdDX9{FA!`41o2D+387M5SUxF93O7lRV7c zk+89rje36)WNPHJ0Me(~gAWIB$C0+GJBJjBqy@t(u(QuNHge47RJpSUb|R_+dwx%G zD@h%)s3WU!s$HMVIz1j&Kn@{OJY$JIqUE|S;@F4&1DE$em`{e|UUu1RaHzremdLgJ zE*?^(U#EL$lfMa(1sT?3p z*}moExZ6a6quCMc#b=BJwh}?Ciuo)+@Yq=*@?PX6c7RNt6ArxGlcXb9=&}|LJkr5w zQ)#L!Oa+s*LRN|I2o&BYGAHWQeC*$e7!B4WIF9SIeSlQ|OuxoA*jpCfXo?B8O0x&Q zdHhGyYS+&b{LdG>!9XX8_8ahb-mrFhak+P_`7jSb?kcqVMLA9QbsGnkdtpgs#y!&* zpM=(k_t%n!>HKeM35=;eeCRP+)4UFQT*q`>*MIwLLjd0*^<5Yr8V~JkH4ud`%`Tnn zpUjVHY|3_1K=E*!K>-n;=JB>Eo-RfBx*~2F;wMewCyGB{1E1+MbaC{xkKDV5&+Q_R zF1%jBXsS0rFi;|li$Sf!EWlrHs+aN1issGIZ@vQTa3+S%XMoJeLGZT3n}jP8g#cG3 zq||(kc~5Ezukn051hy2eVR?@O3UdP z34>-YO~hCY7JS|flOk9uq=s4Eepw!N5)@c3El+8&)|?^RDJyn!6#B@|k&=hz8puIG zMX*M_w`nsaAZn2myc2Jo;}<3;8_vsTBqV#SdiO$~OR)&0V6}=0@GoFlL9m*(!h=7f z(vyG~wZLBcFo5aI>5SwepD|+hNs&M6_k8|!;xxa6qk=6zDy)Nr-aNmh$Rmu%+-sC*n@b1%m^bOQRDk!7P{+;ZV z!Z*ziw$5oypCO9RH9vQnzZy>;G_uxq{b0I~IU@Y51UPG{Y{#g89jyzuF(&&|7!da6c9Fk!LH* z(LA4bD}{aNzo}G(&ZI3{N}B>Qv=00En8lxj7&khbM%AzAw2vg({r9XHS+A8!B1!{WI3j}j@J{9LFn^S5W{_An_xsuU-FO2IM7w5;+ zPnoz)(DZGv1-ui;xbyRUm@@|2$H=}^RFw2rlyNHT>Ihk85M`b#Z!WwtzlK`()k{kV zlex4T;ysrTNNXyp)zJI=4db^+2_#O|!Pr{$J)@z~XEq_sMq>2+>`ziCU%zZZLc*Jq zj0NI5jJogk?h&T$?&kt2c{64{+;x2}r2Q%bS z!s%Rrr!egvhHMvitgoRI*Ut$8>0<)?WvM%e8Lcldj&<51N@!67KOz2`1p-=by7#dE)NG@KLxdU>nG%ti3cfWM@SiebJAkL7ngb2I2qrE;oV$z2=RZ zBSyDIB-Rp_o111}vLB_Ui)$4}WrRIOcn@v1sAt1!#mg`1Zqs=7p5o}+Y$X__NJCkT z2P@j&U_w$kM>U=hzvsxiYEtqX?y@9dv%Iwn9DH`rFsDo!aWGVpJB8+QUj1_c^5s*K zF*6mOR&2Ljlu<)*gTC@RI--c@1@$LTE0y+mqig%w($2uZw|;rYfv+A(I_AK#P8};L zoQ~xSH6poYGsqHSB){A}!fYf*lhCE^|73)-N;dc7bXo@;?T!@l%#HUTvK4$22IyU!9U4lnK3c>fez<0kMdZ#!<&sZaf40eSZdOliD}sO0v^N5s=ndc@7V-^Yo+=Xr(wkpOVI;t^!INc4jr3@sPM5_;~t!jZByp% zj@Cv2$<{OVyz3NIyiJBPpJU;nw%=F?dg4;j?1s;v<(cJlKVvHfTK(*5-_A%5pA+{t z83Fy;1VORHmV}+45`QVRlNI_mH$7uFO)F2ld-$eB~EvOv9xh0CX2cn@_FYt#7Y zos+2_syjWxA(Z<_`y)JJP(pu=JFtGGS#tP;@TPI2{8xu^YB{w5)E4eda5aG*l7M_sM6bqMAc#9?-3AIF4S4GO&D&u@ygFNqEYP!W_ZH$aOdMAr&N(H%4qlyBY zRpsTXNwRk)ujqg1YHL4E_e0=7Br&ssc4{QE%1NxxssjT2)yxS%j6oleco?1N6XLi} z{XnSE#Gd}b`74$XQ^~-ZaH)8|yN;IDt&Wh(=bZx<=p6+|nL*h^Rif%$hx_4shxl_j zm2yw|ag4kE*wDYXXk?zA0&>QyKwjrF%3gDj=N$ zC8WD!lyoB?qNIeRfYLCeL%JkKH>25DzTEF~=XL$A{Q=wAiSIe*bJ)CFb`CgFT}K@E zd_Dk0fkuBBv29$7+a+DA5tQsZRj`A?0HgV@Gm|Q9>5gxe$C&!+Wf<}q<-}6tB$FrJ z$w@Ppx3gaB)MtZ2B(IK; zP{%7j`@hZ+@8+`xT+=+>c%mm{OXk3#V=RkPvhqi>+D)~d_}Px{h+Sh;{wb{2WyEJ~ z!y1Xt(+^zV$`4 zoYZ?1y=?GW{&z=)1VJ?oIGOTCx7+8gIS~L-Of)>Zo*rs#HVo;OmpG{R2tcP6vQ95% z*Ok0&YI4AtQabJ~iPI<0)BW(pP_U+Ak*s2X^5gSV^@{Vq9~?l!P>o(0pO>hSmoc~- zZhtWlYT}AvzUj$g-Sk`4)wro4uENP}cSGgPryce3+4aBOQEO(3a*Q}6W)Nbs@k{kf zlmB1#wBke&H5+}UxxI<*Xf}+8yXXvvC19oY`8zdcBEV4a`Mv4NKfuFi&Iy>mOZjh) zLLT`hPQ?@f-uTG@3RbbN=cxT#=i!ZYtvb4D8gbtMv9YOpmoi;)INe$sDo);oNy%#z z8sI3lIaG2rih7G&u9CMgG`QO^Sg&eoD5g~(yN!T{TSh;`MhLwwW1!Wu*0T40EpbO` zaxsm|3XDyr94)5W_A|BX(d~G zp*ZdC$P8k^SIX1O&>7wask08zvZt(A#JuHxOLDO@E!6o}7{e|f2}Gh3kob#xS3}Sz00^TB#)`47pE)-#UK$)7*jB=R<_Qk zm@M>UZB0$*SIKs5F{&HJRbbQ67Q2;hKR83J$5OpWf=e&B&$pbx%;JA~NJR#mI2Pwu z=kjaeo14)ERe$$x1yuUwF0gI-Ert5bHK z$oP~LSY`xe1k~bfXn+>+^e4snOssW(ULbj4mIm^>xdh(zc_@Zan!;((VHcrDWBf|D*WY1;56ZZzmk(OV<7s)7D4eS1M0wThKkJzt#c5!ym2_?-T|J-0 zCRgf;wQM#xt~K^yw#2o4pc^xLt%#|}=_!taUxKq8T0%Iow11j$KH;2*gKi@1%Dbei zC)F3bKa9xQd6Q563I9vO5t;9(g~k6a>g|TtG@{!)K61tF{X;}*vV=18tjQJMG#Yqw zRO}|?R2m)r^t8+=zoH{X;`i_0)Aw|<5`=%wb=tjpWdfaC!P$Ne9WQQuPl7DdYNxDe z-N??w0-#IOc*)r;=Ghlg(2;t%v`x{8w^RI@UFV7)M!@H~*5)G*eC};JCc>Kg|1{7# zA4Yb_-e8&Dph1XuA>Grg+B@`@*5V%~?~RQ5FxmU5tq66;Oxs3_u6E*}$-okkOOZ?A zUMPv;jzy^Eci@hBUF^V@=|w>tYR}yaTNQ~*?%m}iu@dO^rs0G5E{B~k^Gj#?NEuNo z6MX92c$82IIsVt-vwD*z!Jfs}Y@<9|qJ1hK-g9EP;oL|;9=Lr>`peD>uFbc{OR;+D z9lzOnakLu&?!wxgZ{p>vEFGGz1~_9_qNu%!pjV*m;15!zb+st)vp4yS%E+ z3(fEWLkhelzvlc=*(ZZDgE9i1w>=Lg3o`6R$usGd*rSx0B!Pz@RyX?0WG}z|$(u^?K+Y}5i6|L_Rz-*2 z_#b1DaxIu+vXWJckilb+cm=j3e?PTcin7Dt=t-pxEkV1qxre=n1|5?{UbPf zoNG?4E~aYAlr2h81JNziK}$8%QNPw+`<^Xhx=Bgy0(i7jS5uH)RIo#)8MajC9IU=C z$nY{E=juIOPiiGclSTZI@W+sN#rR)!-vOFOUu{!0?tjj(nh-Rpr%uZYuRqFe$jvIZT`3V`jZ+@SS1!u z`@$#A%6OK}Xng-O%C<|$W%Y~6g0&nXVY0v=^k#lnzur2Ut6$UMe5sQB1;Y=948}hU z4U9nyBr{Y-V;A<1sk|85a)y~We{gmYhsZMCfA#&A{lJ*eu7^;b!uY%P-!Isi$y+Cg zh){`9f^}e(yV6W`Jfi{)b)yVFW}1Js8!h-Bj6rPG)xRI8mITkozU+-eRj1hA0*Q#K zM9dNOw*=9#Thc!fi}ltKumpu;if();k^)pX17T+7MTqd~vL)0-YS$C!D#GSbtt z`=!g%WMxYCj_+EO&VLKe!#HENxsH%(-27BB3~Z^lj81bk%8Qim(%^mlhv}_IuCH-P zhTP%I0H?hTQ1TL1`-MVFdHEi5PUFP&~GMxT#21K1mZ>ZfcLWgn0wmX{QI5YRFW`0+xr+!t z1o(-TO}H>NQAg&%S^dr;^&^Dq5?rumS|}Tb!;uQEOFTXc?S~hy1781{1UaY2N~vL@ zf#`Hxm8}-$jl|U?*G1Ep+V2A{wUG&|^?~%YR+=y#Hc@3BrLqD%n~uOA$l*}eWJT*}z*@|_QdRz*p$wEbFtbw5q++k1W7|X4&TniMz%P(lj!*dvi^c=14AfrcNEE*=NRF{B1U& zgQbh|Tb%ouw4Pm10;qMYdSt=;e~GD{1jghuoGf&DrA{DR-8!PsbLH6>3g< z?h1IAklPVVXa=XdLxN`u*X(Mj$sGInJ=tPJaVUhAJq|jMiP~(94qO-VJ$SU~NFt`n ztEc>A8LbRKr}Wd;t7>h#Cr6BY z(_Nojf1O4$ht&4Ul7^85Gqv-_0QW@|@h~o}7#!GMps^*@ZjN_7yV_YV$fHm>%;7!N zR@|xP4c!V&ctO4lck7GWQ)s19@g%4Z^jQAU{8c>t?2U?MxvnNC0z-l(N3d4q&fSLQ z^eX9nqp?1*5av2F^d{H5S;_j2G)Y`)1`C>mDHE>YQ`~Ia_>G*F0-k>WeXtN{euTLv z*~oMrF4+H<0c@mDx32Kp3iS{WPIz9t;yX*!;qV29IZg6bn6$6?3)SLG{RL5MtBbTP zW;$kk$N*8;YVK*4Xda+n$=BV^jM)?gW_ax0=ie`~uzsIz-X$c5IY~v0-U#ufUO_iykt$ zVH?W1a&}_-%A{u@3E3r0&)8YX&XNSwo8a;sDlw`nxO40`+B??aZah;b#T9P8Z`@!` zUcB5`ak{DcqcvoE)fLP$1?=!jIZ_>ujF}>;{)b8XsgUG9O7B@aZ{)(ytCt3l$9Ya8 znSl>D9fBL@fNeBoLTU%*&!&<+>#e)|qfv+FUDS$TgDHqQ`OU_8{9ZS%E!IZ-QB9@s zbkiI5kG}z^fXj5K*xwyke^>tT)o@3Icn+@)Jo|CHcw%x4{(+jp{KA6LAy-4&BQDMp zRM#75gXgCw%IyCkVM71duI9IRQ>OC0;lBxCFAW()Pld@R1cH8YK&8He=wJ-Z_=E!GxA$(NK|ixUfc$nVX#@_rbvZ zakBeK7nhaRd9_ETFXC;o zPZzCjrS@)&zlYBp2w z8Jj2GrHRQcg4~4v>g<;U$g8Z6mYN*&?2S%x(a1jJ=fF%Zl^sx5b1-)oQ(6M2i!l(0 zGsPbEjjYJ`%WK9FhUpop45!n(Mdt{q7_tT-6wM6SR5dWgSLS@i3r0F~6R!)>< zJQ;K*wNrMY6zlnQv1tMwc}{o4+EndRuiWRE=F+k@6tEy@*H+Ojs7#5}RJY&xCJ&pBdKU;)z|Z?RM>(;tUId|EF~{{zeP3hWn&Ffw0b6A)?@KT2*Z!tJ}1<*aLc;OgcVayn2_>CKW+6V zdT}g8ucH?bXhH*Xqky?~L%)ggfm1BbUq-{5=v#H$50~*u5b{k2cR4Zsmr(*;k)HEJ z!UfQG*Cf|k_iND#)6LvS(46#LS@G&^ujOr!x>Dz-Z{b5ToW*Ey(y*rqhGxYR zz9D{XZXmjf>tZX?iVN~qf$kcOZ%_YE(#}J0Wb${qC$9MIHEA4f?+A0QX4w)e;kM?( z=_E_tls2Z9AN(y#lrF^a40#F6n$XKbK>QyQS>TVpQkJv{3skR=7(e5P%MT=&#+y3N z$(Mwv^!pCaoeziaG|tS);60e8z{j0?U(QHxLg=8NRKTvx2Nb&!<|~|J^JBXu z?R_ZcDV^x4`EE()*9--XXiu|RiI>C`yxH$Z)eqhAVK3toOOhFiiQpIgE1_p8~ z#Z$(PkUYp`y2PuFNe_S(jlr_F|lRDJ9%O4cAxgK%xjvk0o+d@ zJd__oZ7S&!A)C?aSP-Q3*z+lY2h)x_!J<}42kk;KCXH(^mv-eeZbsB7_oZ)}CuQdv!$@%z>bs!6rd^#8EWNSt!b!KAfhJ zQL42*5I2FG)HfJT>r7-A;0gRh?!D5j%jAh>A<*A;j z6TLB8=6T2p5%_4jE4R`WlXX!Nh{1P0eP7A{N&n@|GQ<~blsXfKiE$~0;Bu6aIT>bd zsk3|>(|U>3$$srqTl~LD4<4$|dz0VZ`OX&X<`_1jln~ooB@ubvKWjJ7+ls{ZV8Py$DV7){ji?Rji z>wStnP5@t<@l(uN%GHCtjY7OTv8RL<6lNU64ZxccA04LXFz3W1q2l>~)k&gmLIg_G zp$0ixKu#jyA?1eHohDynvAkC1i(Vf!jzU*iZX1ZT=8SZ-R>@7a-?Je5L|3f7DmZrf z5E;ON2Q%f4G8@!R7nuwlsqH>=#D=nnN=w{+;!*)Bqz|X-bLZEUXnE1=v-c5=AcsU6 zHCm0_2M5059}xW-Z7?dC9seD`9AywA%tp!Fj(6E4BeCJA9$R1X^Qq@rm3Pb2hTz)B z*6-O=xlv`{Upn|(>3o)#AIfqMj(hL-z#6Qs)3fcUc0xRIjsc802WiX_dvrOjK-?dU z=V;CYUxR^9G1rRL|Vfgc-@sidCB*3(Xn%QUK*JG6$hjg&lzU&AW$^I}L?1Re7gw{zd za4d!*>=8oW5M~74=B>OuWb@+-eiSSs|Bx-=G85(&r~nndrt_5()L+5Iuvg%C^9R$6 zf(W2&2h5d6htZ;%MsZJNDZ0q+0qvyM$b+mWV&34lIMofHxK};&{*)#ArIRIG<8~;C zDIdM;Fb0I2p&LRHVPbgmasQ#mey-)dN6GK0{~59Mm&Ch)x&!T>Z8QA-a0{GM7(JQU z`0DW9kuj;^K%tLsFqYeq8_bO@fM;3v{U9CG#Po-vxJN{&90+eQ=ZYDQRvyD0D5WdQ z*_Hy&0i=cHFEOt#Vb}q@*lZR9@rUfWj$+MDiPC8UV%T=86n zSnU>dS?*?sw0;;>i5*GK`faa@o*^Y<7VZ7FEQaQ<@gY;ZTa=|1DBk3*js0M`-x&4* z_S2PafBW+(?bpJozcd8xPeVH6USn#hRD9$|y6xfTo9L?QYOy%ZFs4QwT1DGnnZ^2- z@e4V0kCux%9y{@Nm)RVOJvLpGg6FP$F%GYrp7!Tee}we@XVstF9v|2VTMtRw&buSV zL{iBr0Xnw!_gbxp7pLNc-PtyY^r(BtL)wXsab#u$tBmFx>x7hXt#8Y7K(t~d61njG zR*d2xK}Jb)N$*_Y0_NfW>m!k&S1iHHIrf{k)WhejM?rog5;O8w%J(NCk9c)*&ii~G zkeiwhT!7kPr}TYYz}G0tuy3kD60L>YKyKe!HKl?fy)@{LUqT5EC%oKknb&8!@T#*; z4fLM?qV4rKLUkN#vBh)P_Cd!~g+BFF{`B+#x1l&;tu`pyIysygP1DYVCaHoXL#Iuq ztEYjby$Fi~6TJa6!x}#Q2m=>;LaG`h>XQ3f;;PC59CCB~z_2%|+3yT<3a_62Q5g?c zI#{pV(Yk)}iLnj)wQw0Ga1ENmpDxw!0vZ(@F-I8}3F(b=A81cON_9(u31O;tX}uf; zl`d7tU|%kIX)mu;g6pn>po5U9>M8Xpq3OcXXnjoImFz&PJr^dzt0kT z9;(|66fK26%^L6EO<8gPdb}>5p+}lPH?8f<`9*u%nd6MrV(kg0{(Q%a2WI=f|auJnGrV1Z&c4R(TI9a z^{i_o_0{qh~t>(feF_VT*4Fm{#LygHvv^k)Ov)Zj&8#O|#{jOMW zq2p&nW>WV^;AOcS`Nf{N2HSv1F^B(j)V}3vK#@zqaC}BBPC?Ju2d-&m!uc-;8B^8} zK&L#d3Lzyx^;9ee6OTG3C+Lo+x{2+~iH$aWSyHK&jEd-%&JNY-v|Ru?am`d1%u#Y; z@i{x6ttQYD-nGHOMaLx6nJw8Hf>Sv=G}-KxGY#W3!Sr0ypY^{390nrai~(3qDH9$g zcRada@ulQmEj+jWr4xNiS@dOmEw?$`Y$r^Do14at>rNBLZw7PqgfiYDsw2L!un+uc z9#@Pvq4ZvtJw#Auc~%=(SmawZy!(h?{7FLbv;>kk;}82Kdc4@w;XGfJu!=1Gp{Z5H zPK7Aty8c*IRrNsl!eb-+cB|WYSBnvb)1U{$%3fAIUj^IosGdmvAV zF2Wn;pSn0$oUYcNuYk0~F#gEJMbY13d4m~PGzJp^#oWV-->(f(9O^5H#E9T)w#wnI z(J*>6RWP04w9nNWLy3#DV#*>xT`dY`oH_nO5B(dXFn1ww#pj0p=^VW5*^jm~Z|AkM z%aosAvu7Tl(QbyH730?VXo*ru%gd%SXG>W&;I>9svu-txB>9YWU@hTPa*(}!f}&8@mPQqD zZG#1T&s1s4(S=bQ=oFBDRKtWw$-=n99oF7cLum)wR@o-oR=-e)2CUxOyhNHWMcYjV%LLX{}L23H-L?~=6FUZ zZ()<_l9vRm@_!~-I(jd2>X6Q zdcyioJ2)LIY4KX$RJZxf9F53(cjo&cU-tA$4)yO4-p0q8@KGCELY-o%Cln=r+BxFY zGBp-f=taPevC0Y_>xvZr-aj`35ySL9k$Jjv3cll-kLaY7XQ{2Ilkn6$p!}``dbM0! zX{^t>_$$<+$=y2Mg8Q=GxlE!COQzKAinB;ZA*p-3lCzK4|mVcecT3MLS!; z2-BKlA3EH&jqt57<0=8=XSw>CemDw;fw*&S&IZtcOnA%vn$zu5RB52Kc|Oizq1wj% zWo?TD)#G3&nyMg0ehV`ojO|^B;Y|}i%DbHzhdMsRA>bhv(-I37JBbUYLU*PKFfT*@ zi1Db>Rzc3`5565(JrU#8{RN2@`h$1$k+B#Xv&Em~DYoi&Fgfj_zcv)2p8-sOwrIGe z6TG`8Ul?=6f5lQ5v7j-5o5+Anhkx_Z1IOKh;q-#jjmUg`^m;ZFq2Yzf!Rva&u0H>; zrXFg0t!LP)vy%I0)c7u#&nT|I$a*zA1ozEx(=UF^`)NpNm4W?}Q}1h<>#+mFYj?wo z%;QL6<+37w^{SZ5~G{$pYj@_zN*|I z7qC`J{_K&JV&cVdt&0_O25o6C#Sc5vUZ=fZ`F%Z@ME~hoE9C=;=1?OWqMmSavtZ8_R^pEf?yT3*9n?y)eoSJiWz zcsur)RF72a;vU%m!WxPKJdRW~F!TO5s$C1kAexVlIML$%!;t8UCQGXlH!pnjc4st` z`h#O$NvbvOJY$4L9*3)XrgC4+0dIOGOMK?2-mcG-PXbn^>0-N08V9c{huHwf*X!L= z*{s%r?@J$LsY4?9OrlZ6mK{U^@-I#DZ{KU788Uolgq(S(Bj4wB#pg55bUn%Bh-vI( zG>Jw?rGwh8^i+H_Z;!<)Yidxk;p2M%U5p7_a-~|V8(!jowdNNOrV`kWc#O|3I7Ajp zVU%M$u#()ZU7?OSh$M~yg55LPuT38Mt^sg_kHI9^1gBoze@O+@h7uTc`V7VGLP0Ax z^h&$;M`TT~`3T4*5xPxHopZkBBhH?9efE((l~0ThYoAC)BBpT@EsUo6roaY%%tU;x zfFwXzUsoTHRqn)RZbNk~(eAw5{WR8z>p1D1=jISwZZJS?QWZI z3{L42ilx#@Q9)r@)M&1^zJGlb@QC9SO56O)^KI^+dF7i+Mv_~ioo8ArJ%O|{2b9QJ z@}Pe*Vq2ZTT`sK~47uQ3-pdg2bwyhff6r9gi36v~Lqe?&VU`Zlb#+IKJXX-KQrn8; zCBmn5v`dh0UiC+MLEO9MxJA*#Hy?4C*?b2hl!q!B%9pEZiN4Ik-g@RG@L0`@8r5y- z#I={3jmdd>rjCUjJ~8q8gZrH)EjD+wso)l7Xw^T`Q|v~@J$T>o@pB=InE9d0-Pc|x zf=`nvR2$gPxiS2k`+-M>#+R=B`-n|dUg#v9ZT40qV?o6*+W7_GTE31l)|GyWw9X~x zRkZzhPnwDt!=bY-jT#5xA8vGYw)ATZ{hLb}y=M38<(OYiyMM$-sc-}HB*ixBinHaxnP1$D$rf*tmrZ8*Yo_jvm1$n&}+qO2E&qoDf$DCDZPa;_|5uJq`M05 z<`;4jnvdBg+@MN+CN_?1lb3_ILHtF|Ao<#(!;kM?yDQ1yo@vpHt|=v0eQp)h77S|M zX|+vQi5Me;u*Ha~-iT(!bQ2>Rvl?A}mx^5}{u>fHN_{_fOz!jQ!ENI`&vOItfXQA* z2&bgHyo4Xj-D@r=_D-}B{P1lJFUFjHBLye9O=CvM)?o=7fIYgbcd+!8v_rcOwvLS; zkG1dTlwN4rs9O#^dv7^!#AA8=kniL5oeIU_uYPO$-+FvP1f73W`=rKENG?v0U*YSmZN{2d8>nnO&x~o}yVBM$EZE;a$~cCcEB%;Iy#?afZ3SU=7-nW9G%1D3nm) z5q-mAF6s3Pb?UIPj7?jS(+9j1+o#AvNmm9v`?nNdbHG^US;5nBUEz{e@XDjmIVp}vaW z0uJ-6KF+oaMAb|3v86?@hp%yjnZNyfESFIY4N3+L6wM=9AYRRW- zF0CpH{^SSdr0%udNi3f2$%S&t6{_aW(m-n;+Ptc9I2_v}!d)X8**!2gXqm=+B4!Gr z;z;GcM7-YDU#pMUeS+ey;+bx!B)%S++O4!E$5_Rza9AbPsq=QOqB{0Yl?~0M9(%L` zgMrUA4vZElX^p~0uO3_n`|28=W(!|{bnc5T-`@s;`lcnYgk?SwzY%~ID7}q$Xt51& zpU#!Ou=Hf$FNkbC$~t<|MF8v*{{LSuK4AMj)Gp zF@vALf!s_xsr>+OPKNrhlboo6~-gKLFQ`WooB#qMjynqS&UjGG2*xl%bG=d z{dxOTnd5VlE@SAe(u8X{)@M``D;K5oa2{SD_h&L>Gpsal2iZ6IS?4L?W3z|qbNLr{ z#kTP}&)R+9)Q3K|v`a%u8UJh=>!V*=GOkao_fNu2 z8zZw*$nE3%4g1C^xs5mvA^_+1g;1c|9%?ezhtOVbCY=4j+o2zJ8%EKLaY}3^&9!aG zyz8LNd-p{E<7%i(kR6;YLH}Nb>|wY0c$y7Te`k{Cs_8dPo|C9J1v7lh7xt&zLl6&1 zP3Ei|hqV49-3*@fD`H z6+mAKhPEb&c?ST!9kAOw-IHEaE!4S`i6Wa%5+aD>|KID;Ctf`rEoutz;g9(oms1Z3 z8}e`&vJBGN)m8@8dF82)Zj*=eOe+<>i!8l>?laszGvai0YUx#4+Z$KHxd0lNHP+*T z_ubc>r#tw~Z~IJ4oqcZtK17fOiL4Yqt+1KghH*XUzKR(NJMiieAYOZtwsszrkzd{e z@o7yJMGBWr_b^jE{j8p$%nlYhOux43heya=wZhj~CHKC4Jx@ha`Nyf-FUw)Hy;MZVKKu{!5{C|0d#| zmNAtc#H0!$Uuk*I(8I{p=pI2Fg5Q`HCb=8_4?*=#hid~I{K@}aF0!6&ceNogmFn8) z&miK2mbN7fNf%#dD2D$H2e5I09PDm~QJ(>Y6KVK)Hk!hRw2h@OoC zY6P#HCf}{6ZENd$$ld1dd$(0o`yrDRsZei#hG$$Y7{Q|bwqhp7s%qEOCwKWjL6ny? zJK4i@mn#{0aOLf>kp#bRkmbiv+{>e#cB;!b{tgX^kokn_rev@7LYbH$NL7S%L5 z9Z-Ih`z!y;IXmlYtEZGM=QQ`227Zt74vYuOnzsdFy?nD{ZO3XeypXRIk4W81Z-AR9yAAaeV0lpy6Q2EbSkkEsBj|+N&^Y_s^ z3;Cz7tl4&jHe2Ymd#ru}oJmm+M>kt&2IR^JLEdhMjq73nTYZ?;m6p0Jm;*efwY3AX zl~V10JKBvr&0$G`w9(DdpgcRQL;^M9FrkM!j0IozZ5rR#eY^pM<5@iw6Hq}MTnuyGVjL(DF0>wApa}`>84YR7 z2|+vUtx=@S|A4#wjflBcw)u+7@_0tppPkfZ*FCWev4I!CjB~fyrj`15iNarf&h9nz zC3+?)_vf#|>O$#2FiB-)nI_Klef54|)Tv@%@~a`o zBoZun)a*qN(t@d&)bk8Xnd_#aL|P5pUR5&fKBE@iUcBwtOZ~SUc4H=wH|8T6k9G4m ztS>sZ>&+#1OYkQXUxQ#7^Li1b!w|J{y#dB_9Z-@93r=`6irJ3Eshk^__DVlgKpep6 zT1plqaLJhAp@EUQG)b@5+#6OfK!rC_zT!!T7>BbcfNc$?8teQH;%H)+D>EcNMr1cm)Pzrg5cb*U66gvc6-~gE};CKl!YOQ-K~orlAw$|vFzuMAnFB?}hp;nZ6nf|Op5ID*|EpMhOnZ#U$R-zd%MD2gdZayrEZ&A>`8cRfeC z$yWxbuvc8G5r6V=r*Ao?d_ak1Xlo04>+jPtEXY?f(`}3oaJwNG+bBSfBUiXAW??99 zMUDJAZGaUGw8h$m#-68bPW4aH%}_CY=6m1aeziCL&7l019MOs?@gU=QxTM|%Uh}DF zO~DD6V{!5Jjy66;SfM)ik}NY1=uB6zogwfKtT%4aP}Yi-z06G)_?e#$iGGEvga0QW z0{~oeRG^z+XYUW_1e;>mj4wy_z z&vVx-pWYNpm*D{>bhdl}#fVTm^a_^o_x}(348I$u8k$5ag{Xvkqn}7cO_mX=)T=^P3 zrVSL|<*4hXzq)pO|CkLBtEO?&r%Rgp*FZzB#{|T$>Bg3WT@@2XZG~S=#1z|zRaH=* zg6(s80p5|j%0A4g`h}|3PYw*I=G;XAw@Gle=el@DWTfE>o08GwQ1uL53iVPPP}&8n z_QfG?x)vKD@%PXB&nR%7HM>vz7YpEocBKM0G8V6SBy8U*!atDWO@5kmv%dv=PI-({ zwF?_cUY*kyvf(!?f;f3N7V7-93?NT=;|YF@P{qeVYDGVQ(*Cj8oL^inuz>!GUR0u% zv|RXna5RAp9!xwIO{pQ#o$c>Xg!FTizB>5IOpg1N#uL9EYsvne<6mjkLXBC|!#E>O z#nNkTo*oeSJcueT9@;(hRl@NN8=iClX&8V~4MP(uU2e03X}mul1RWR-CoIfk__{5g z4rQ4;{DX0x>!5rvmcbFFJtFFg1iksDJ@SkI?4m6uCX0*7FO2>>?HszqnwcrPmCHm+ zft$;vt6p9NOzdR7%cEJ@3n1yfPW_O-NTKeoj*+~i81@P~X`kc(M56&5aiD$Ha8{5* z5ZdSUg;eMQ^KeH7rHsZVWnzfKEpJ`gn)=N2D5Y5S0DaKTC?HY25SBiOVC$rs{8!($ z-Jw(Y^8fw%|MBTb5NYrAVoAaDC1;7!9`0j-c79_WxfX&sC^0XLP~;MwPtmOi5M0y#?dc<2Ur{EDj`I&PqNcnkqegMSjhtzjGuP>4K)EEKm5 zbf)kVE$xl%hY3$WJMf2UCjV~36}Y8^e~NauepQXoijm03!_+r=)x)EF3YDzK?oUCp zr)}Sw#tC#g?pD49bQdgMATWNbj>2`8YmE=b?rJ2Xo;IYw<(qxdKR!p-S2Wv$5Rkb2 zZI>nYRq3&R${3tBI^ZKnsriYtt62COhJIN5*&6n1hYctATs8Z@lNF5(V!Wh1&UZ>R zIK_;+UBrE>bo6kmk8-Daf9E;WeeWs)D~KISTFdjpa8=JQpW-NX(gTDpd`j8uDL%^p zEq)zPPc{MpL!DXtJxnUoDaXt=5cI3Q8#b7MH+QrLCsKvZVbeQwac!jOSrCd zWB-}QHF z`>-ZpV3(nJXFS9)+8*Q7eb?tj@x}sgaoVN_IeQg3IT_BWO(b8N+)5<{4Z3*P8cg3w3f&xR5JuGxe#xc3(!CtfNd4od0xLIKE*tB|LNzk|eBXst!d zI}C|(vn`zC&=*k^s8ML|^^SRBmiTG6`CfpZUs&M&#J96PFYILE{qQ1N=-?B(&)aig zYs>P}3$6$;Dws9vsZuZhW!1ZytO{b;5Ay_j6a1tc*3Vqgh<<+K; zkc+W*Ej&Dz&z>1|!QO6NmSzv^6J8q=M&P1vD}Da+5ABIZB54Hu_A2J?$@Sg#le`$A zur{g%RihZuBKB%Mo2z{~CENpd$WlTOrcW3Si4#GgUTR?CFi$pQj0qO8kWb?vq@9k4 zJjGCJY8`@Z_xkb1b4BeV0Zg9Ro8mVaZ!RV|;hl_K`0p+zkr#>&x-F=2PM=Y649Fpl zMwcGqlb2WT|Kpq76nA`V)1jzcj~k5l6UgJe7lu$AOL6}B!7wf;_f^z;;S`ejeS31; z^{mOi-Iwy1heJ8VG<~Ufow%s@B#I4BA?pm$I#*1ONxbB`u>aU#AKR5Sf+LXM3Zu>4 zqstBf6zT}5om?5vgVVTD+dP%LPceq?hd!%YLa8TNKu@_Tp)oM@-w0dEUz?w?FVb}FiChLf=s z1diJeW8?o)pF=pW)afQ8_gBOD!j04XyA;gAf|{?;$I6hf=CGREG$Rahb^Fd*qVjlK zEI0GN>d6RV)|4I!c;tM{pKHlEpJCfT^3C_`DsojmrR$wBQQx=~*`4++QH1d~ImSZh zKq;*y?Jd@$Z?TR3b0TLyuZK1f0D`D|p1q$ut#?Q|EbB!@Pesw5t^&)01AV=*jNo;$ zk4lnsMXIEMspnUi&K#e+CaP`Lj0$*#e#AP-3FQC)sokeSvN)xHbH%($hu1vT?wWr( ztq`$Z^8TsFCsl$A*Y)SW`W|}yP*JX)44d=X;;<)24f(?rWf^TqdTe~sf_`@cd#`Mo z`~AQEcIe2@XA~5ef{%0D0k??6dKA$?o@*c?4b%@= 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%0A6~5$ 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 ZX%9k4{Qx;nz5n^3+cyohD>NZd{|D9PsulnM diff --git a/_versions/2.7/guides/images/stork-process.png b/_versions/2.7/guides/images/stork-process.png deleted file mode 100644 index c9c80abb3bb8c2c9b8c05c1c23f137e9bd735c83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357793 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

    %xmTD74@%v{p8W0$eFZtAKZ-Mw? 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 z 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�RO;&)O;TX`nPf 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 z zNJ*9&t`t~*6vzjE{q?N&s8XO(pi-bxpi*FI3UvO*`U-pH#y!tmU+hO7dBhH8!MUK~NgDwwvzI$JA9eiKC*v1Vn$d@yAGi9V>-@(iiT$Jog@B(7I@zV{J{TOv-m9@zs2f&1oI ztQ`dw{exM%W^2ur0+j-l0+j-l0vmz?@jsaYR|?tL^YW(oOlyRIj1CE4o&R2$_WSR@ ze=2Xw-@A8jl!4jq?AR6py>$=On{8HDDNreJbt%v)2Yjv@v-q(rcJ90Hz8i1AA;{l^ z5bqrWS|X_w@FLV{-WT3M;#X0;FG4FGcl^(g7RNt`&r$Bb2=rd!cn0_p(GRHa1n(xz w`4@F6E$y>MSthlbTD0PtSt(E{ux=>uKWq`ePtc^c!~g&Q07*qoM6N<$f>C!USO5S3 diff --git a/_versions/2.7/guides/images/validation-guide-architecture.png b/_versions/2.7/guides/images/validation-guide-architecture.png deleted file mode 100644 index 8bd4b4876b19da17cdfbb06f640ae8757e731015..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46031 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ⅇqS76>IG$3Y`RD6XSK0+`bFL5~LBe++OXBo8 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 ZhB#>$ar)}l^DZI)Brf;4TueXU{{e4h^-TZ( diff --git a/_versions/2.7/guides/images/websocket-guide-architecture.png b/_versions/2.7/guides/images/websocket-guide-architecture.png deleted file mode 100644 index f306cf161d5fb9f1fbc02f41839280b3aad71f5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48157 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

    P4^Fid{ZWZjWOO5e;?ea}p{hEKtcG#z* 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 diff --git a/_versions/2.7/guides/includes/devtools/build-native-container-parameters.adoc b/_versions/2.7/guides/includes/devtools/build-native-container-parameters.adoc deleted file mode 100644 index 1885434a18a..00000000000 --- a/_versions/2.7/guides/includes/devtools/build-native-container-parameters.adoc +++ /dev/null @@ -1,21 +0,0 @@ -[source, bash, subs=attributes+, role="primary asciidoc-tabs-sync-cli"] -.CLI ----- -quarkus build --native -Dquarkus.native.container-build=true {build-additional-parameters} ----- -ifndef::devtools-no-maven[] -ifdef::devtools-wrapped[+] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-maven"] -.Maven ----- -./mvnw package -Dnative -Dquarkus.native.container-build=true {build-additional-parameters} ----- -endif::[] -ifndef::devtools-no-gradle[] -ifdef::devtools-wrapped[+] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-gradle"] -.Gradle ----- -./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true {build-additional-parameters} ----- -endif::[] \ No newline at end of file diff --git a/_versions/2.7/guides/includes/devtools/build-native-container.adoc b/_versions/2.7/guides/includes/devtools/build-native-container.adoc deleted file mode 100644 index f382e8f9362..00000000000 --- a/_versions/2.7/guides/includes/devtools/build-native-container.adoc +++ /dev/null @@ -1,36 +0,0 @@ -[source, bash, subs=attributes+, role="primary asciidoc-tabs-sync-cli"] -.CLI ----- -ifdef::build-additional-parameters[] -quarkus build --native -Dquarkus.native.container-build=true {build-additional-parameters} -endif::[] -ifndef::build-additional-parameters[] -quarkus build --native -Dquarkus.native.container-build=true -endif::[] ----- -ifndef::devtools-no-maven[] -ifdef::devtools-wrapped[+] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-maven"] -.Maven ----- -ifdef::build-additional-parameters[] -./mvnw package -Dnative -Dquarkus.native.container-build=true {build-additional-parameters} -endif::[] -ifndef::build-additional-parameters[] -./mvnw package -Dnative -Dquarkus.native.container-build=true -endif::[] ----- -endif::[] -ifndef::devtools-no-gradle[] -ifdef::devtools-wrapped[+] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-gradle"] -.Gradle ----- -ifdef::build-additional-parameters[] -./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true {build-additional-parameters} -endif::[] -ifndef::build-additional-parameters[] -./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true -endif::[] ----- -endif::[] \ No newline at end of file diff --git a/_versions/2.7/guides/includes/devtools/build-native.adoc b/_versions/2.7/guides/includes/devtools/build-native.adoc deleted file mode 100644 index dff6362c2ab..00000000000 --- a/_versions/2.7/guides/includes/devtools/build-native.adoc +++ /dev/null @@ -1,36 +0,0 @@ -[source, bash, subs=attributes+, role="primary asciidoc-tabs-sync-cli"] -.CLI ----- -ifdef::build-additional-parameters[] -quarkus build --native {build-additional-parameters} -endif::[] -ifndef::build-additional-parameters[] -quarkus build --native -endif::[] ----- -ifndef::devtools-no-maven[] -ifdef::devtools-wrapped[+] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-maven"] -.Maven ----- -ifdef::build-additional-parameters[] -./mvnw package -Dnative {build-additional-parameters} -endif::[] -ifndef::build-additional-parameters[] -./mvnw package -Dnative -endif::[] ----- -endif::[] -ifndef::devtools-no-gradle[] -ifdef::devtools-wrapped[+] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-gradle"] -.Gradle ----- -ifdef::build-additional-parameters[] -./gradlew build -Dquarkus.package.type=native {build-additional-parameters} -endif::[] -ifndef::build-additional-parameters[] -./gradlew build -Dquarkus.package.type=native -endif::[] ----- -endif::[] \ No newline at end of file diff --git a/_versions/2.7/guides/includes/devtools/build.adoc b/_versions/2.7/guides/includes/devtools/build.adoc deleted file mode 100644 index 86e82319783..00000000000 --- a/_versions/2.7/guides/includes/devtools/build.adoc +++ /dev/null @@ -1,36 +0,0 @@ -[source, bash, subs=attributes+, role="primary asciidoc-tabs-sync-cli"] -.CLI ----- -ifdef::build-additional-parameters[] -quarkus build {build-additional-parameters} -endif::[] -ifndef::build-additional-parameters[] -quarkus build -endif::[] ----- -ifndef::devtools-no-maven[] -ifdef::devtools-wrapped[+] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-maven"] -.Maven ----- -ifdef::build-additional-parameters[] -./mvnw clean package {build-additional-parameters} -endif::[] -ifndef::build-additional-parameters[] -./mvnw clean package -endif::[] ----- -endif::[] -ifndef::devtools-no-gradle[] -ifdef::devtools-wrapped[+] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-gradle"] -.Gradle ----- -ifdef::build-additional-parameters[] -./gradlew build {build-additional-parameters} -endif::[] -ifndef::build-additional-parameters[] -./gradlew build -endif::[] ----- -endif::[] \ No newline at end of file diff --git a/_versions/2.7/guides/includes/devtools/create-app.adoc b/_versions/2.7/guides/includes/devtools/create-app.adoc deleted file mode 100644 index 78c434112a5..00000000000 --- a/_versions/2.7/guides/includes/devtools/create-app.adoc +++ /dev/null @@ -1,105 +0,0 @@ -[role="primary asciidoc-tabs-sync-cli"] -.CLI -**** -[source,bash,subs=attributes+] ----- -ifdef::create-app-group-id[] -ifdef::create-app-extensions[] -quarkus create app {create-app-group-id}:{create-app-artifact-id} \ -endif::[] -ifndef::create-app-extensions[] -ifndef::create-app-code[] -quarkus create app {create-app-group-id}:{create-app-artifact-id} \ -endif::[] -ifdef::create-app-code[] -quarkus create app {create-app-group-id}:{create-app-artifact-id} -endif::[] -endif::[] -endif::[] -ifndef::create-app-group-id[] -ifdef::create-app-extensions[] -quarkus create app org.acme:{create-app-artifact-id} \ -endif::[] -ifndef::create-app-extensions[] -ifndef::create-app-code[] -quarkus create app org.acme:{create-app-artifact-id} \ -endif::[] -ifdef::create-app-code[] -quarkus create app org.acme:{create-app-artifact-id} -endif::[] -endif::[] -endif::[] -ifdef::create-app-extensions[] -ifndef::create-app-code[] - --extension={create-app-extensions} \ -endif::[] -ifdef::create-app-code[] - --extension={create-app-extensions} -endif::[] -endif::[] -ifndef::create-app-code[] - --no-code -endif::[] -ifdef::create-app-post-command[] -ifeval::["{create-app-post-command}" != ""] -{create-app-post-command} -endif::[] -endif::[] -ifndef::create-app-post-command[] -cd {create-app-artifact-id} -endif::[] ----- - -ifndef::devtools-no-gradle[] -To create a Gradle project, add the `--gradle` or `--gradle-kotlin-dsl` option. -endif::[] - -_For more information about how to install the Quarkus CLI and use it, please refer to xref:cli-tooling.adoc[the Quarkus CLI guide]._ -**** - -[role="secondary asciidoc-tabs-sync-maven"] -.Maven -**** -[source,bash,subs=attributes+] ----- -mvn io.quarkus.platform:quarkus-maven-plugin:{quarkus-version}:create \ -ifdef::create-app-group-id[] - -DprojectGroupId={create-app-group-id} \ -endif::[] -ifndef::create-app-group-id[] - -DprojectGroupId=org.acme \ -endif::[] -ifdef::create-app-extensions[] - -DprojectArtifactId={create-app-artifact-id} \ -endif::[] -ifndef::create-app-extensions[] -ifndef::create-app-code[] - -DprojectArtifactId={create-app-artifact-id} \ -endif::[] -ifdef::create-app-code[] - -DprojectArtifactId={create-app-artifact-id} -endif::[] -endif::[] -ifdef::create-app-extensions[] -ifndef::create-app-code[] - -Dextensions="{create-app-extensions}" \ -endif::[] -ifdef::create-app-code[] - -Dextensions="{create-app-extensions}" -endif::[] -endif::[] -ifndef::create-app-code[] - -DnoCode -endif::[] -ifdef::create-app-post-command[] -{create-app-post-command} -endif::[] -ifndef::create-app-post-command[] -cd {create-app-artifact-id} -endif::[] ----- - -ifndef::devtools-no-gradle[] -To create a Gradle project, add the `-DbuildTool=gradle` or `-DbuildTool=gradle-kotlin-dsl` option. -endif::[] -**** diff --git a/_versions/2.7/guides/includes/devtools/create-cli.adoc b/_versions/2.7/guides/includes/devtools/create-cli.adoc deleted file mode 100644 index 06fb5e672a5..00000000000 --- a/_versions/2.7/guides/includes/devtools/create-cli.adoc +++ /dev/null @@ -1,89 +0,0 @@ -[role="primary asciidoc-tabs-sync-cli"] -.CLI -**** -[source,bash,subs=attributes+] ----- -ifdef::create-cli-group-id[] -ifdef::create-cli-extensions[] -quarkus create cli {create-cli-group-id}:{create-cli-artifact-id} \ -endif::[] -ifndef::create-cli-extensions[] -ifndef::create-cli-code[] -quarkus create cli {create-cli-group-id}:{create-cli-artifact-id} \ -endif::[] -ifdef::create-cli-code[] -quarkus create cli {create-cli-group-id}:{create-cli-artifact-id} -endif::[] -endif::[] -endif::[] -ifndef::create-cli-group-id[] -ifdef::create-cli-extensions[] -quarkus create cli org.acme:{create-cli-artifact-id} \ -endif::[] -ifndef::create-cli-extensions[] -ifndef::create-cli-code[] -quarkus create cli org.acme:{create-cli-artifact-id} \ -endif::[] -ifdef::create-cli-code[] -quarkus create cli org.acme:{create-cli-artifact-id} -endif::[] -endif::[] -endif::[] -ifdef::create-cli-extensions[] -ifndef::create-cli-code[] - --extension={create-cli-extensions} \ -endif::[] -ifdef::create-cli-code[] - --extension={create-cli-extensions} -endif::[] -endif::[] -ifndef::create-cli-code[] - --no-code -endif::[] -ifdef::create-cli-post-command[] -ifeval::["{create-cli-post-command}" != ""] -{create-cli-post-command} -endif::[] -endif::[] -ifndef::create-cli-post-command[] -cd {create-cli-artifact-id} -endif::[] ----- - -To create a Gradle project, add the `--gradle` or `--gradle-kotlin-dsl` option. - -_For more information about how to install the Quarkus CLI and use it, please refer to xref:cli-tooling.adoc[the Quarkus CLI guide]._ -**** - -[role="secondary asciidoc-tabs-sync-maven"] -.Maven -**** -[source,bash,subs=attributes+] ----- -mvn io.quarkus.platform:quarkus-maven-plugin:{quarkus-version}:create \ -ifdef::create-cli-group-id[] - -DprojectGroupId={create-cli-group-id} \ -endif::[] -ifndef::create-cli-group-id[] - -DprojectGroupId=org.acme \ -endif::[] - -DprojectArtifactId={create-cli-artifact-id} \ -ifndef::create-cli-code[] - -DnoCode \ -endif::[] -ifdef::create-cli-extensions[] - -Dextensions="picocli,{create-cli-extensions}" -endif::[] -ifndef::create-cli-extensions[] - -Dextensions="picocli" -endif::[] -ifdef::create-cli-post-command[] -{create-cli-post-command} -endif::[] -ifndef::create-cli-post-command[] -cd {create-cli-artifact-id} -endif::[] ----- - -To create a Gradle project, add the `-DbuildTool=gradle` or `-DbuildTool=gradle-kotlin-dsl` option. -**** diff --git a/_versions/2.7/guides/includes/devtools/dev-parameters.adoc b/_versions/2.7/guides/includes/devtools/dev-parameters.adoc deleted file mode 100644 index 4773ee969f5..00000000000 --- a/_versions/2.7/guides/includes/devtools/dev-parameters.adoc +++ /dev/null @@ -1,21 +0,0 @@ -[source, bash, subs=attributes+, role="primary asciidoc-tabs-sync-cli"] -.CLI ----- -quarkus dev {dev-additional-parameters} ----- -ifndef::devtools-no-maven[] -ifdef::devtools-wrapped[+] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-maven"] -.Maven ----- -./mvnw quarkus:dev {dev-additional-parameters} ----- -endif::[] -ifndef::devtools-no-gradle[] -ifdef::devtools-wrapped[+] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-gradle"] -.Gradle ----- -./gradlew --console=plain quarkusDev {dev-additional-parameters} ----- -endif::[] \ No newline at end of file diff --git a/_versions/2.7/guides/includes/devtools/dev.adoc b/_versions/2.7/guides/includes/devtools/dev.adoc deleted file mode 100644 index 86bbddb4894..00000000000 --- a/_versions/2.7/guides/includes/devtools/dev.adoc +++ /dev/null @@ -1,36 +0,0 @@ -[source, bash, subs=attributes+, role="primary asciidoc-tabs-sync-cli"] -.CLI ----- -ifdef::dev-additional-parameters[] -quarkus dev {dev-additional-parameters} -endif::[] -ifndef::dev-additional-parameters[] -quarkus dev -endif::[] ----- -ifdef::devtools-wrapped[+] -ifndef::devtools-no-maven[] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-maven"] -.Maven ----- -ifdef::dev-additional-parameters[] -./mvnw quarkus:dev {dev-additional-parameters} -endif::[] -ifndef::dev-additional-parameters[] -./mvnw quarkus:dev -endif::[] ----- -endif::[] -ifdef::devtools-wrapped[+] -ifndef::devtools-no-gradle[] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-gradle"] -.Gradle ----- -ifdef::dev-additional-parameters[] -./gradlew --console=plain quarkusDev {dev-additional-parameters} -endif::[] -ifndef::dev-additional-parameters[] -./gradlew --console=plain quarkusDev -endif::[] ----- -endif::[] \ No newline at end of file diff --git a/_versions/2.7/guides/includes/devtools/extension-add.adoc b/_versions/2.7/guides/includes/devtools/extension-add.adoc deleted file mode 100644 index 159865c95d8..00000000000 --- a/_versions/2.7/guides/includes/devtools/extension-add.adoc +++ /dev/null @@ -1,21 +0,0 @@ -[source,bash,subs=attributes+,role="primary asciidoc-tabs-sync-cli"] -.CLI ----- -quarkus extension add '{add-extension-extensions}' ----- -ifndef::devtools-no-maven[] -ifdef::devtools-wrapped[+] -[source,bash,subs=attributes+,role="secondary asciidoc-tabs-sync-maven"] -.Maven ----- -./mvnw quarkus:add-extension -Dextensions="{add-extension-extensions}" ----- -endif::[] -ifndef::devtools-no-gradle[] -ifdef::devtools-wrapped[+] -[source,bash,subs=attributes+,role="secondary asciidoc-tabs-sync-gradle"] -.Gradle ----- -./gradlew addExtension --extensions="{add-extension-extensions}" ----- -endif::[] \ No newline at end of file diff --git a/_versions/2.7/guides/includes/devtools/extension-list.adoc b/_versions/2.7/guides/includes/devtools/extension-list.adoc deleted file mode 100644 index 525271a8fc7..00000000000 --- a/_versions/2.7/guides/includes/devtools/extension-list.adoc +++ /dev/null @@ -1,21 +0,0 @@ -[source, bash, subs=attributes+, role="primary asciidoc-tabs-sync-cli"] -.CLI ----- -quarkus extension ----- -ifndef::devtools-no-maven[] -ifdef::devtools-wrapped[+] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-maven"] -.Maven ----- -./mvnw quarkus:list-extensions ----- -endif::[] -ifndef::devtools-no-gradle[] -ifdef::devtools-wrapped[+] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-gradle"] -.Gradle ----- -./gradlew listExtensions ----- -endif::[] \ No newline at end of file diff --git a/_versions/2.7/guides/includes/devtools/prerequisites.adoc b/_versions/2.7/guides/includes/devtools/prerequisites.adoc deleted file mode 100644 index c64c71b5f95..00000000000 --- a/_versions/2.7/guides/includes/devtools/prerequisites.adoc +++ /dev/null @@ -1,31 +0,0 @@ -To complete this guide, you need: - -ifdef::prerequisites-time[] -* Roughly {prerequisites-time} -endif::[] -ifndef::prerequisites-time[] -* Roughly 15 minutes -endif::[] -* An IDE -ifdef::prerequisites-ide[{prerequisites-ide}] -* JDK 11+ installed with `JAVA_HOME` configured appropriately -ifndef::prerequisites-no-maven[] -* Apache Maven {maven-version} -endif::[] -ifdef::prerequisites-docker[] -* A working container runtime (Docker or Podman) -endif::[] -ifdef::prerequisites-docker-compose[] -* Docker and Docker Compose -endif::[] -ifndef::prerequisites-no-cli[] -* Optionally the xref:cli-tooling.adoc[Quarkus CLI] if you want to use it -endif::[] -ifndef::prerequisites-no-graalvm[] -ifndef::prerequisites-graalvm-mandatory[] -* Optionally Mandrel or GraalVM installed and xref:building-native-image.adoc#configuring-graalvm[configured appropriately] if you want to build a native executable (or Docker if you use a native container build) -endif::[] -ifdef::prerequisites-graalvm-mandatory[] -* Mandrel or GraalVM installed and xref:building-native-image.adoc#configuring-graalvm[configured appropriately] -endif::[] -endif::[] \ No newline at end of file diff --git a/_versions/2.7/guides/includes/devtools/test.adoc b/_versions/2.7/guides/includes/devtools/test.adoc deleted file mode 100644 index c690c4a946e..00000000000 --- a/_versions/2.7/guides/includes/devtools/test.adoc +++ /dev/null @@ -1,15 +0,0 @@ -ifndef::devtools-no-maven[] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-maven"] -.Maven ----- -./mvnw test ----- -endif::[] -ifdef::devtools-wrapped[+] -ifndef::devtools-no-gradle[] -[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-gradle"] -.Gradle ----- -./gradlew test ----- -endif::[] \ No newline at end of file diff --git a/_versions/2.7/guides/infinispan-client.adoc b/_versions/2.7/guides/infinispan-client.adoc deleted file mode 100644 index ca618d29860..00000000000 --- a/_versions/2.7/guides/infinispan-client.adoc +++ /dev/null @@ -1,549 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Infinispan Client - -include::./attributes.adoc[] - -Infinispan is a distributed, in-memory key/value store that provides Quarkus applications with a highly configurable -and independently scalable data layer. -This extension gives you client functionality that connects applications running on Quarkus with remote Infinispan clusters. - -To find out more about Infinispan, visit the https://infinispan.org/documentation[Infinispan documentation]. - -== Solution - -We recommend that you complete each step in the following sections to create the application. -However, you can proceed directly to the completed solution as follows: - -Clone the Git repository: `git clone {quickstarts-clone-url}` or download an {quickstarts-archive-url}[archive]. -Locate the solution in the `infinispan-client-quickstart` {quickstarts-tree-url}/infinispan-client-quickstart[directory]. - -== Adding the Infinispan client extension - -Run the following command in the base directory of your Quarkus project to add the `infinispan-client` extension: - -:add-extension-extensions: infinispan-client -include::includes/devtools/extension-add.adoc[] - -This command adds the following dependency to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-infinispan-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-infinispan-client") ----- - -== Configuring the Infinispan client - -Open the `application.properties` file in the `src/main/resources` directory with any text editor. - -Note that Infinispan documentation refers to a `hotrod-client.properties` file. -You can configure the Infinispan client with either properties file but `application.properties` always takes -priority over `hotrod-client.properties`. - -Additionally, you cannot update configuration properties at runtime. -If you modify `application.properties` or `hotrod-client.properties`, you must rebuild the application before those changes take effect. - -== Connecting to Infinispan clusters - -Add the following properties to connect to Infinispan Server: - -[source,properties] ----- -# Infinispan Server address -quarkus.infinispan-client.server-list=localhost:11222 - -# Authentication -quarkus.infinispan-client.auth-username=admin -quarkus.infinispan-client.auth-password=password - -# Infinispan client intelligence -# Use BASIC as a Docker for Mac workaround -quarkus.infinispan-client.client-intelligence=BASIC ----- - -.Running Infinispan Server - -To use the Infinispan client extension, you need at least one running instance of Infinispan Server. - -Check out our 5 minute https://infinispan.org/get-started/[Getting stated with Infinispan] tutorial to run Infinispan Server locally. - -Infinispan Server also enables authentication and security authorization by default so you need to create a user with permissions. - -* If you run the Infinispan Server image, pass the `USER="admin"` and `PASS="password"` parameters. -* If you run the bare metal distribution, use the Command Line Interface (CLI) as follows: -+ -[source,bash] ----- -$ ./bin/cli.sh user create admin -p password ----- - -=== Authentication mechanisms - -You can use the following authentication mechanisms with the Infinispan client: - -* DIGEST-MD5 -* PLAIN (recommended only in combination with TLS encryption) -* EXTERNAL - -Other authentication mechanisms, such as SCRAM and GSSAPI, are not yet verified with the Infinispan client. - -You can find more information on configuring authentication in https://infinispan.org/docs/stable/titles/hotrod_java/hotrod_java.html#hotrod_endpoint_auth-hotrod-client-configuration[Hot Rod Endpoint Authentication Mechanisms]. - -[NOTE] -==== -You must configure authentication in the `hotrod-client.properties` file if you use Dependency Injection. -==== - -== Serialization (Key Value types support) - -By default the client will support keys and values of the following types: byte[], -primitive wrappers (eg. Integer, Long, Double etc.), String, Date and Instant. User types require -some additional steps that are detailed here. Let's say we have the following user classes: - -.Author.java -[source,java] ----- -public class Author { - private final String name; - private final String surname; - - public Author(String name, String surname) { - this.name = Objects.requireNonNull(name); - this.surname = Objects.requireNonNull(surname); - } - // Getter/Setter/equals/hashCode/toString omitted -} ----- - -.Book.java -[source,java] ----- -public class Book { - private final String title; - private final String description; - private final int publicationYear; - private final Set authors; - private final BigDecimal price; - - public Book(String title, String description, int publicationYear, Set authors, BigDecimal price) { - this.title = Objects.requireNonNull(title); - this.description = Objects.requireNonNull(description); - this.publicationYear = publicationYear; - this.authors = Objects.requireNonNull(authors); - this.price = price; - } - // Getter/Setter/equals/hashCode/toString omitted -} ----- - -Serialization of user types uses a library based on protobuf, -called https://github.com/infinispan/protostream[Protostream]. - -[TIP] -==== -Infinispan caches can store keys and values in different encodings, but recommend using https://developers.google.com/protocol-buffers[Protocol Buffers (Protobuf)]. - -For more information see our https://infinispan.org/docs/stable/titles/encoding/encoding.html[Cache Encoding and Marshalling] guide. -==== - - -=== Annotation based Serialization - -This can be done automatically by adding protostream annotations to your user classes. -In addition, a single Initializer annotated interface is required which controls how -the supporting classes are generated. - -Here is an example of how the preceding classes should be changed: - -.Author.java -[source,java] ----- - @ProtoFactory - public Author(String name, String surname) { - this.name = Objects.requireNonNull(name); - this.surname = Objects.requireNonNull(surname); - } - - @ProtoField(number = 1) - public String getName() { - return name; - } - - @ProtoField(number = 2) - public String getSurname() { - return surname; - } ----- - -.Book.java -[source,java] ----- - @ProtoFactory - public Book(String title, String description, int publicationYear, Set authors) { - this.title = Objects.requireNonNull(title); - this.description = Objects.requireNonNull(description); - this.publicationYear = publicationYear; - this.authors = Objects.requireNonNull(authors); - } - - @ProtoField(number = 1) - public String getTitle() { - return title; - } - - @ProtoField(number = 2) - public String getDescription() { - return description; - } - - @ProtoField(number = 3, defaultValue = "-1") - public int getPublicationYear() { - return publicationYear; - } - - @ProtoField(number = 4) - public Set getAuthors() { - return authors; - } ----- - -If your classes have only mutable fields, then the `ProtoFactory` annotation -is not required, assuming your class has a no arg constructor. - -Then all that is required is a very simple `GeneratedSchema` interface with an annotation -on it to specify configuration settings - -.BooksSchema.java -[source,java] ----- -import org.infinispan.protostream.GeneratedSchema; -import org.infinispan.protostream.annotations.AutoProtoSchemaBuilder; -import org.infinispan.protostream.types.java.math.BigDecimalAdapter; - -@AutoProtoSchemaBuilder(includeClasses = { Book.class, Author.class, BigDecimalAdapter.class }, schemaPackageName = "book_sample") -interface BookStoreSchema extends GeneratedSchema { -} ----- - -[TIP] -Protostream provides default Protobuf mappers for commonly used types as `BigDecimal`, included in the `org.infinispan.protostream.types` package. - -So in this case we will automatically generate the marshaller and schemas for the included classes and -place them in the schema package automatically. The package does not have to be provided, but if you use Infinispan query capabilities, you must know the generated package. - -NOTE: In Quarkus the `schemaFileName` and `schemaFilePath` attributes should NOT be set on the `AutoProtoSchemaBuilder` annotation. Setting either attributes causes native runtime errors. - -=== Custom serialization - -The previous method is suggested for any case when the user can annotate their classes. -Unfortunately the user may not be able to annotate all classes they will put in the -cache. In this case you must define your schema and create your own Marshaller(s) -yourself. - -Protobuf schema:: You can supply a protobuf schema through either one of two ways. -. Proto File - + -You can put the `.proto` file in the `META-INF` directory of the project. These files will -automatically be picked up at initialization time. -+ -.library.proto ----- -package book_sample; - -message Book { - required string title = 1; - required string description = 2; - required int32 publicationYear = 3; // no native Date type available in Protobuf - repeated Author authors = 4; - requited double price = 5; // no native BigDecimal type available in Protobuf -} - -message Author { - required string name = 1; - required string surname = 2; -} ----- -. In Code - + -Or you can define the proto schema directly in user code by defining a produced bean of type -`org.infinispan.protostream.FileDescriptorSource`. -+ -[source,java] ----- - @Produces - FileDescriptorSource bookProtoDefinition() { - return FileDescriptorSource.fromString("library.proto", "package book_sample;\n" + - "\n" + - "message Book {\n" + - " required string title = 1;\n" + - " required string description = 2;\n" + - " required int32 publicationYear = 3; // no native Date type available in Protobuf\n" + - "\n" + - " repeated Author authors = 4;\n" + - "\n" + - " required double price = 5; // no native BigDecimal type available in Protobuf\n" + - "}\n" + - "\n" + - "message Author {\n" + - " required string name = 1;\n" + - " required string surname = 2;\n" + - "}"); - } ----- -User Marshaller:: -The last thing to do is to provide a `org.infinispan.protostream.MessageMarshaller` implementation -for each user class defined in the proto schema. This class is then provided via `@Produces` in a similar -fashion to the code based proto schema definition above. -+ -Here is the Marshaller class for our Author & Book classes. -+ -NOTE: The type name must match the `.` exactly! -+ -.AuthorMarshaller.java -[source,java] ----- -public class AuthorMarshaller implements MessageMarshaller { - - @Override - public String getTypeName() { - return "book_sample.Author"; - } - - @Override - public Class getJavaClass() { - return Author.class; - } - - @Override - public void writeTo(ProtoStreamWriter writer, Author author) throws IOException { - writer.writeString("name", author.getName()); - writer.writeString("surname", author.getSurname()); - } - - @Override - public Author readFrom(ProtoStreamReader reader) throws IOException { - String name = reader.readString("name"); - String surname = reader.readString("surname"); - return new Author(name, surname); - } -} ----- -+ -.BookMarshaller.java -[source,java] ----- -public class BookMarshaller implements MessageMarshaller { - - @Override - public String getTypeName() { - return "book_sample.Book"; - } - - @Override - public Class getJavaClass() { - return Book.class; - } - - @Override - public void writeTo(ProtoStreamWriter writer, Book book) throws IOException { - writer.writeString("title", book.getTitle()); - writer.writeString("description", book.getDescription()); - writer.writeInt("publicationYear", book.getPublicationYear()); - writer.writeCollection("authors", book.getAuthors(), Author.class); - writer.writeDouble("price", book.getPrice().doubleValue()); - } - - @Override - public Book readFrom(ProtoStreamReader reader) throws IOException { - String title = reader.readString("title"); - String description = reader.readString("description"); - int publicationYear = reader.readInt("publicationYear"); - Set authors = reader.readCollection("authors", new HashSet<>(), Author.class); - BigDecimal price = BigDecimal.valueOf(reader.readDouble("price")); - return new Book(title, description, publicationYear, authors, price); - } -} ----- -+ -And you pass the marshaller by defining the following: -+ -[source,java] ----- - @Produces - MessageMarshaller authorMarshaller() { - return new AuthorMarshaller(); - } - - @Produces - MessageMarshaller bookMarshaller() { - return new BookMarshaller(); - } ----- -NOTE: The above produced Marshaller method MUST return `MessageMarshaller` without types or else it will not be found. - -== Dependency Injection - -As you saw above we support the user injecting Marshaller configuration. You can do the inverse with -the Infinispan client extension providing injection for `RemoteCacheManager` and `RemoteCache` objects. -There is one global `RemoteCacheManager` that takes all of the configuration -parameters setup in the above sections. - -It is very simple to inject these components. All you need to do is to add the Inject annotation to -the field, constructor or method. In the below code we utilize field and constructor injection. - -.SomeClass.java -[source,java] ----- - @Inject SomeClass(RemoteCacheManager remoteCacheManager) { - this.remoteCacheManager = remoteCacheManager; - } - - @Inject @Remote("myCache") - RemoteCache cache; - - RemoteCacheManager remoteCacheManager; ----- - -If you notice the `RemoteCache` declaration has an additional optional annotation named `Remote`. -This is a qualifier annotation allowing you to specify which named cache that will be injected. This -annotation is not required and if it is not supplied, the default cache will be injected. - -NOTE: Other types may be supported for injection, please see other sections for more information - -=== Registering Protobuf Schemas with Infinispan Server -You need to register the generated Protobuf schemas with Infinispan Server to perform queries or convert from -`Protobuf` to other media types such as `JSON`. - -[TIP] -You can check the schemas that exist under the `Schemas` tab by logging into -Infinispan Console at `http://localhost:11222` - -By default Protobuf schemas generated this way will be registered by this extension when the client first connects. -However, it might be required to handle the registration manually as a schema may evolve over time when used in -production, so you can disable this from occurring by configuring the -`quarkus.infinispan-client.use-schema-registration` to `false`. - -To configure the schema manually -please use https://infinispan.org/docs/infinispan-operator/master/operator.html[Infinispan Operator] -for Kubernetes deployments, Infinispan Console, -https://infinispan.org/docs/stable/titles/rest/rest.html#rest_v2_protobuf_schemas[REST API] or the -https://infinispan.org/docs/stable/titles/encoding/encoding.html#registering-sci-remote-caches_marshalling[Hot Rod Java Client]. - - -== Querying - -The Infinispan client supports both indexed and non-indexed querying as long as the -`ProtoStreamMarshaller` is configured above. This allows the user to query based on the -properties of the proto schema. - -Query builds upon the proto definitions you can configure when setting up the `ProtoStreamMarshaller`. -Either method of Serialization above will automatically register the schema with the server at -startup, meaning that you will automatically gain the ability to query objects stored in the -remote Infinispan Server. - -You can read more about https://infinispan.org/docs/stable/titles/developing/developing.html#creating_ickle_queries-querying[querying] in the Infinispan documentation. - -You can use either the Query DSL or the Ickle Query language with the Quarkus Infinispan client -extension. - -== Counters - -Infinispan also has a notion of counters and the Quarkus Infinispan client supports them out of -the box. - -The Quarkus Infinispan client extension allows for Dependency Injection -of the `CounterManager` directly. All you need to do is annotate your field, constructor or method -and you get it with no fuss. You can then use counters as you would normally. - -[source,java] ----- -@Inject -CounterManager counterManager; ----- - -You can read more about https://infinispan.org/docs/stable/titles/developing/developing.html#clustered_counters[clustered counters] in the Infinispan documentation. - -== Near Caching - -Near caching is disabled by default, but you can enable it by setting the profile config property -`quarkus.infinispan-client.near-cache-max-entries` to a value greater than 0. You can also configure -a regular expression so that only a subset of caches have near caching applied through the -`quarkus.infinispan-client.near-cache-name-pattern` attribute. - -== Encryption - -Encryption at this point requires additional steps to get working. - -The first step is to configure the `hotrod-client.properties` file to point to your truststore -and/or keystore. This is further detailed https://infinispan.org/docs/stable/titles/hotrod_java/hotrod_java.html#hotrod_encryption[here]. - -The Infinispan Client extension enables SSL/TLS by default. You can read more about this -at xref:native-and-ssl.adoc[Using SSL With Native Executables]. - -== Additional Features - -The Infinispan Client has additional features that were not mentioned here. This means this -feature was not tested in a Quarkus environment and they may or may not work. Please let us -know if you need these added! - -[[dev-services]] -== Dev Services for Infinispan - -When you use the infinispan-client extension in dev mode or in test, Quarkus automatically starts an Infinispan server and configure your application. - -=== Enabling / Disabling Dev Services for Infinispan - -Dev Services for Infinispan is automatically enabled unless: - -- `quarkus.infinispan-client.devservices.enabled` is set to `false` -- the `quarkus.infinispan-client.server-list` is configured - -Dev Services for Infinispan relies on Docker to start the broker. -If your environment does not support Docker, you will need to start the broker manually, or connect to an already running broker. -You can configure the broker address using `quarkus.infinispan-client.server-list`. - -== Shared server - -Quarkus will share the Infinispan broker if you have multiple applications running in dev mode. -Dev Services for Infinispan implements a _service discovery_ mechanism for your multiple Quarkus applications running in _dev_ mode to share a single broker. - -NOTE: Dev Services for Infinispan starts the container with the `quarkus-dev-service-infinispan` label which is used to identify the container. - -If you need multiple (shared) Infinispan server, you can configure the `quarkus.infinispan-client.devservices.service-name` attribute and indicate the server name. -It looks for a container with the same value, or starts a new one if none can be found. -The default service name is `infinispan`. - -Sharing is enabled by default in dev mode, but disabled in test mode. -You can disable the sharing with `quarkus.infinispan-client.devservices.shared=false`. - -== Setting the port - -By default, Dev Services for Infinispan picks a random port and configures the application. -You can set the port by configuring the `quarkus.infinispan-client.devservices.port` property. - -== Testing helpers - -To start a Infinispan Server for your unit tests, Quarkus provides one `QuarkusTestResourceLifecycleManager` that relies on link:https://infinispan.org/docs/stable/titles/hotrod_java/hotrod_java.html#junit-testing[Infinispan Server Test Container]. - -- `io.quarkus.test.infinispan.client.InfinispanTestResource` will start a single instance on port 11222 with user 'admin' and password 'password'. - -To use them, you need to add the `io.quarkus:quarkus-test-infinispan-client` dependency to your pom.xml. - -For more information about the usage of a `QuarkusTestResourceLifecycleManager` please read xref:getting-started-testing.adoc#quarkus-test-resource[Quarkus test resource]. - -== Configuration Reference - -include::{generated-dir}/config/quarkus-infinispan-client.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/javascript/asciidoc-tabs.js b/_versions/2.7/guides/javascript/asciidoc-tabs.js deleted file mode 100644 index ce75a82927d..00000000000 --- a/_versions/2.7/guides/javascript/asciidoc-tabs.js +++ /dev/null @@ -1,86 +0,0 @@ -// code originally coming from: -// https://github.com/bmuschko/asciidocj-tabbed-code-extension -// adapted to work with jQuery - -$(document).ready(function() { - function addBlockSwitches() { - $('.listingblock.primary, .sidebarblock.primary').each(function() { - var primary = $(this); - createSwitchItem(primary, createBlockSwitch(primary)).item.addClass("selected"); - if (primary.children('.title').length) { - primary.children('.title').remove(); - } else { - primary.children('.content').first().children('.title').remove(); - } - getAllSyncClasses(primary).forEach(className => primary.removeClass(className)); - }); - - $('.listingblock.secondary, .sidebarblock.secondary').each(function(idx, node) { - var secondary = $(node); - var primary = findPrimary(secondary); - var switchItem = createSwitchItem(secondary, primary.children('.asciidoc-tabs-switch')); - switchItem.content.addClass('asciidoc-tabs-hidden'); - findPrimary(secondary).append(switchItem.content); - secondary.remove(); - }); - } - - function createBlockSwitch(primary) { - var blockSwitch = $('

    '); - primary.prepend(blockSwitch); - return blockSwitch; - } - - function findPrimary(secondary) { - return secondary.prev('.primary'); - } - - function getSyncClasses(element) { - return element.attr('class').replaceAll(/\s+/g, ' ').split(' ').filter(className => className.startsWith('asciidoc-tabs-sync')); - } - - function getTargetSyncClasses(element) { - return element.attr('class').replaceAll(/\s+/g, ' ').split(' ').filter(className => className.startsWith('asciidoc-tabs-target-sync')); - } - - function getAllSyncClasses(element) { - return element.attr('class').replaceAll(/\s+/g, ' ').split(' ').filter(className => className.startsWith('asciidoc-tabs-sync') || className.startsWith('asciidoc-tabs-target-sync')); - } - - function triggerSyncEvent(element) { - var syncClasses = getSyncClasses(element); - if (syncClasses.length > 0) { - $('.asciidoc-tabs-switch--item.' + syncClasses[0] + ':not(.selected)').not(element).click(); - $('.asciidoc-tabs-switch--item.' + syncClasses[0].replace('asciidoc-tabs-sync', 'asciidoc-tabs-target-sync') + ':not(.selected)').not(element).click(); - } - var targetSyncClasses = getTargetSyncClasses(element); - for (const targetSyncClass of targetSyncClasses) { - $('.asciidoc-tabs-switch--item.' + targetSyncClass + ':not(.selected)').not(element).click(); - } - } - - function createSwitchItem(block, blockSwitch) { - var blockName; - if (block.children('.title').length) { - blockName = block.children('.title').text(); - } else { - blockName = block.children('.content').first().children('.title').text(); - block.children('.content').first().children('.title').remove(); - } - var allSyncClasses = getAllSyncClasses(block); - var content = block.children('.content').first().append(block.next('.colist')); - var item = $('
    ' + blockName + '
    '); - item.on('click', '', content, function(e) { - $(this).addClass('selected'); - $(this).siblings().removeClass('selected'); - e.data.siblings('.content').addClass('asciidoc-tabs-hidden'); - e.data.removeClass('asciidoc-tabs-hidden'); - - triggerSyncEvent($(this)); - }); - blockSwitch.append(item); - return {'item': item, 'content': content}; - } - - addBlockSwitches(); -}); diff --git a/_versions/2.7/guides/javascript/config.js b/_versions/2.7/guides/javascript/config.js deleted file mode 100644 index 22e453b5b85..00000000000 --- a/_versions/2.7/guides/javascript/config.js +++ /dev/null @@ -1,314 +0,0 @@ -jQuery(function(){ -/* - * SEARCH - */ -var inputs = {}; -var tables = document.querySelectorAll("table.configuration-reference"); -var typingTimer; - -if(tables){ - var idx = 0; - for (var table of tables) { - var caption = table.previousElementSibling; - if (table.classList.contains('searchable')) { // activate search engine only when needed - var input = document.createElement("input"); - input.setAttribute("type", "search"); - input.setAttribute("placeholder", "FILTER CONFIGURATION"); - input.id = "config-search-"+(idx++); - caption.children.item(0).appendChild(input); - input.addEventListener("keyup", initiateSearch); - input.addEventListener("input", initiateSearch); - var descriptions = table.querySelectorAll(".description"); - if(descriptions){ - var heights = new Array(descriptions.length); - var h = 0; - for (description of descriptions){ - heights[h++] = description.offsetHeight; - } - var shadowTable = table.cloneNode(true); - var shadowDescriptions = shadowTable.querySelectorAll(".description"); - h = 0; - for (shadowDescription of shadowDescriptions){ - makeCollapsible(shadowDescription, heights[h++]); - } - table.parentNode.replaceChild(shadowTable, table); - table = shadowTable; - } - inputs[input.id] = {"table": table}; - } - - var rowIdx = 0; - for (var row of table.querySelectorAll("table.configuration-reference > tbody > tr")) { - var heads = row.querySelectorAll("table.configuration-reference > tbody > tr > th"); - if(!heads || heads.length == 0){ - // mark even rows - if(++rowIdx % 2){ - row.classList.add("odd"); - }else{ - row.classList.remove("odd"); - } - }else{ - // reset count at each section - rowIdx = 0; - } - } - } -} - -function initiateSearch(event){ - // only start searching after the user stopped typing for 300ms, since we can't abort - // running tasks, we don't want to search three times for "foo" (one letter at a time) - if(typingTimer) - clearTimeout(typingTimer); - typingTimer = setTimeout(() => search(event.target), 300) -} - -function highlight(element, text){ - var iter = document.createNodeIterator(element, NodeFilter.SHOW_TEXT, null); - - while (n = iter.nextNode()){ - var parent = n.parentNode; - var elementText = n.nodeValue; - if(elementText == undefined) - continue; - var elementTextLC = elementText.toLowerCase(); - var index = elementTextLC.indexOf(text); - if(index != -1 - && acceptTextForSearch(n)){ - var start = 0; - var fragment = document.createDocumentFragment() - // we use the DOM here to avoid < and such being parsed as elements by jQuery when replacing content - do{ - // text before - fragment.appendChild(document.createTextNode(elementText.substring(start, index))); - // highlighted text - start = index + text.length; - var hlText = document.createTextNode(elementText.substring(index, start)); - var hl = document.createElement("span"); - hl.appendChild(hlText); - hl.setAttribute("class", "configuration-highlight"); - fragment.appendChild(hl); - }while((index = elementTextLC.indexOf(text, start)) != -1); - // text after - n.nodeValue = elementText.substring(start); - // replace - parent.insertBefore(fragment, n); - } - } - iter.detach(); -} - -function clearHighlights(table){ - for (var span of table.querySelectorAll("span.configuration-highlight")) { - var parent = span.parentNode; - var prev = span.previousSibling; - var next = span.nextSibling; - var target; - if(prev && prev.nodeType == Node.TEXT_NODE){ - target = prev; - } - var text = span.childNodes.item(0).nodeValue; - if(next && next.nodeType == Node.TEXT_NODE){ - text += next.nodeValue; - parent.removeChild(next); - } - if(target){ - target.nodeValue += text; - }else{ - target = document.createTextNode(text); - parent.insertBefore(target, span); - } - parent.removeChild(span); - } -} - -function findText(row, search){ - var iter = document.createNodeIterator(row, NodeFilter.SHOW_TEXT, null); - - while (n = iter.nextNode()){ - var elementText = n.nodeValue; - if(elementText == undefined) - continue; - if(elementText.toLowerCase().indexOf(search) != -1 - // check that it's not decoration - && acceptTextForSearch(n)){ - iter.detach(); - return true; - } - } - iter.detach(); - return false; -} - -function acceptTextForSearch(n){ - var classes = n.parentNode.classList; - return !classes.contains("link-collapsible") - && !classes.contains("description-label"); -} - -function getShadowTable(input){ - if(!inputs[input.id].shadowTable){ - inputs[input.id].shadowTable = inputs[input.id].table.cloneNode(true); - reinstallClickHandlers(inputs[input.id].shadowTable); - } - return inputs[input.id].shadowTable; -} - -function reinstallClickHandlers(table){ - var descriptions = table.querySelectorAll(".description"); - if(descriptions){ - for (descDiv of descriptions){ - if(!descDiv.classList.contains("description-collapsed")) - continue; - var content = descDiv.parentNode; - var td = getAncestor(descDiv, "td"); - var row = td.parentNode; - var decoration = content.lastElementChild; - var iconDecoration = decoration.children.item(0); - var collapsibleSpan = decoration.children.item(1); - var collapsibleHandler = makeCollapsibleHandler(descDiv, td, row, - collapsibleSpan, - iconDecoration); - - row.addEventListener("click", collapsibleHandler); - } - } -} - -function swapShadowTable(input){ - var currentTable = inputs[input.id].table; - var shadowTable = inputs[input.id].shadowTable; - currentTable.parentNode.replaceChild(shadowTable, currentTable); - inputs[input.id].table = shadowTable; - inputs[input.id].shadowTable = currentTable; -} - -function search(input){ - var search = input.value.trim().toLowerCase(); - var lastSearch = inputs[input.id].lastSearch; - if(search == lastSearch) - return; - // work on shadow table - var table = getShadowTable(input); - - applySearch(table, search, true); - - inputs[input.id].lastSearch = search; - // swap tables - swapShadowTable(input); -} - -function applySearch(table, search, autoExpand){ - // clear highlights - clearHighlights(table); - var lastSectionHeader = null; - var idx = 0; - for (var row of table.querySelectorAll("table.configuration-reference > tbody > tr")) { - var heads = row.querySelectorAll("table.configuration-reference > tbody > tr > th"); - if(!heads || heads.length == 0){ - // mark even rows - if(++idx % 2){ - row.classList.add("odd"); - }else{ - row.classList.remove("odd"); - } - }else{ - // reset count at each section - idx = 0; - } - if(!search){ - row.style.removeProperty("display"); - // recollapse when searching is over - if(autoExpand - && row.classList.contains("row-collapsible") - && !row.classList.contains("row-collapsed")) - row.click(); - }else{ - if(heads && heads.length > 0){ - // keep the column header with no highlight, but start hidden - lastSectionHeader = row; - row.style.display = "none"; - }else if(findText(row, search)){ - row.style.removeProperty("display"); - // expand if shown - if(autoExpand && row.classList.contains("row-collapsed")) - row.click(); - highlight(row, search); - if(lastSectionHeader){ - lastSectionHeader.style.removeProperty("display"); - // avoid showing it more than once - lastSectionHeader = null; - } - }else{ - row.style.display = "none"; - } - } - } -} - -function getAncestor(element, name){ - for ( ; element && element !== document; element = element.parentNode ) { - if ( element.localName == name ) - return element; - } - return null; -} - -/* - * COLLAPSIBLE DESCRIPTION - */ -function makeCollapsible(descDiv, descHeightLong){ - if (descHeightLong > 25) { - var td = getAncestor(descDiv, "td"); - var row = td.parentNode; - var iconDecoration = document.createElement("i"); - descDiv.classList.add('description-collapsed'); - iconDecoration.classList.add('fa', 'fa-chevron-down'); - - var descDecoration = document.createElement("div"); - descDecoration.classList.add('description-decoration'); - descDecoration.appendChild(iconDecoration); - - var collapsibleSpan = document.createElement("span"); - collapsibleSpan.appendChild(document.createTextNode("Show more")); - descDecoration.appendChild(collapsibleSpan); - - var collapsibleHandler = makeCollapsibleHandler(descDiv, td, row, - collapsibleSpan, - iconDecoration); - - var parent = descDiv.parentNode; - - parent.appendChild(descDecoration); - row.classList.add("row-collapsible", "row-collapsed"); - row.addEventListener("click", collapsibleHandler); - } - -}; - -function makeCollapsibleHandler(descDiv, td, row, - collapsibleSpan, - iconDecoration) { - - return function(event) { - var target = event.target; - if( (target.localName == 'a' || getAncestor(target, "a"))) { - return; - } - - var isCollapsed = descDiv.classList.contains('description-collapsed'); - if( isCollapsed ) { - collapsibleSpan.childNodes.item(0).nodeValue = 'Show less'; - iconDecoration.classList.replace('fa-chevron-down', 'fa-chevron-up'); - } - else { - collapsibleSpan.childNodes.item(0).nodeValue = 'Show more'; - iconDecoration.classList.replace('fa-chevron-up', 'fa-chevron-down'); - } - descDiv.classList.toggle('description-collapsed'); - descDiv.classList.toggle('description-expanded'); - row.classList.toggle('row-collapsed'); - }; -} - -}); diff --git a/_versions/2.7/guides/jms.adoc b/_versions/2.7/guides/jms.adoc deleted file mode 100644 index b25a8e65f45..00000000000 --- a/_versions/2.7/guides/jms.adoc +++ /dev/null @@ -1,391 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using JMS -include::./attributes.adoc[] -:extension-status: preview - - -This guide demonstrates how your Quarkus application can use JMS messaging via the -Apache Qpid JMS AMQP client, or alternatively the Apache ActiveMQ Artemis JMS client. - -include::./status-include.adoc[] - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* A running Artemis server, or Docker to start one - -== Architecture - -In this guide, we are going to generate (random) prices in one component. -These prices are written to a queue (`prices`) using a JMS client. -Another component reads from the `prices` queue and stores the latest price. -The data can be fetched from a browser using a fetch button from a JAX-RS resource. - - -The guide can be used either via the Apache Qpid JMS AMQP client as detailed immediately below, or -alternatively with the Apache ActiveMQ Artemis JMS client given some different configuration -as <>. - -[#qpid-jms-amqp] -== Qpid JMS - AMQP - -In the detailed steps below we will use the https://qpid.apache.org/components/jms/[Apache Qpid JMS] -client via the https://github.com/amqphub/quarkus-qpid-jms/[Quarkus Qpid JMS extension]. Qpid JMS -uses the AMQP 1.0 ISO standard as its wire protocol, allowing it to be used with a variety of -AMQP 1.0 servers and services such as ActiveMQ Artemis, ActiveMQ 5, Qpid Broker-J, Qpid Dispatch router, -Azure Service Bus, and more. - -=== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone https://github.com/amqphub/quarkus-qpid-jms-quickstart.git`, -or download an https://github.com/amqphub/quarkus-qpid-jms-quickstart/archive/main.zip[archive]. - -=== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: jms-quickstart -:create-app-extensions: resteasy,qpid-jms -include::includes/devtools/create-app.adoc[] - -This command generates a new project importing the quarkus-qpid-jms extension: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.amqphub.quarkus - quarkus-qpid-jms - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.amqphub.quarkus:quarkus-qpid-jms") ----- - -[#starting-the-broker] -=== Starting the broker - -Then, we need an AMQP broker. In this case we will use an Apache ActiveMQ Artemis server. -You can follow the instructions from the https://activemq.apache.org/components/artemis/[Apache Artemis web site] or start a broker via docker using the https://artemiscloud.io/[ArtemisCloud] container image: - -[source,bash] ----- -docker run -it --rm -p 8161:8161 -p 61616:61616 -p 5672:5672 -e AMQ_USER=quarkus -e AMQ_PASSWORD=quarkus quay.io/artemiscloud/activemq-artemis-broker:0.1.4 ----- - -=== The price producer - -Create the `src/main/java/org/acme/jms/PriceProducer.java` file, with the following content: - -[source, java] ----- -package org.acme.jms; - -import java.util.Random; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.event.Observes; -import javax.inject.Inject; -import javax.jms.ConnectionFactory; -import javax.jms.JMSContext; - -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; - -/** - * A bean producing random prices every 5 seconds and sending them to the prices JMS queue. - */ -@ApplicationScoped -public class PriceProducer implements Runnable { - - @Inject - ConnectionFactory connectionFactory; - - private final Random random = new Random(); - private final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); - - void onStart(@Observes StartupEvent ev) { - scheduler.scheduleWithFixedDelay(this, 0L, 5L, TimeUnit.SECONDS); - } - - void onStop(@Observes ShutdownEvent ev) { - scheduler.shutdown(); - } - - @Override - public void run() { - try (JMSContext context = connectionFactory.createContext(JMSContext.AUTO_ACKNOWLEDGE)) { - context.createProducer().send(context.createQueue("prices"), Integer.toString(random.nextInt(100))); - } - } -} ----- - -=== The price consumer - -The price consumer reads the prices from JMS, and stores the last one. -Create the `src/main/java/org/acme/jms/PriceConsumer.java` file with the following content: - -[source, java] ----- -package org.acme.jms; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.event.Observes; -import javax.inject.Inject; -import javax.jms.ConnectionFactory; -import javax.jms.JMSConsumer; -import javax.jms.JMSContext; -import javax.jms.JMSException; -import javax.jms.Message; - -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; - -/** - * A bean consuming prices from the JMS queue. - */ -@ApplicationScoped -public class PriceConsumer implements Runnable { - - @Inject - ConnectionFactory connectionFactory; - - private final ExecutorService scheduler = Executors.newSingleThreadExecutor(); - - private volatile String lastPrice; - - public String getLastPrice() { - return lastPrice; - } - - void onStart(@Observes StartupEvent ev) { - scheduler.submit(this); - } - - void onStop(@Observes ShutdownEvent ev) { - scheduler.shutdown(); - } - - @Override - public void run() { - try (JMSContext context = connectionFactory.createContext(JMSContext.AUTO_ACKNOWLEDGE)) { - JMSConsumer consumer = context.createConsumer(context.createQueue("prices")); - while (true) { - Message message = consumer.receive(); - if (message == null) return; - lastPrice = message.getBody(String.class); - } - } catch (JMSException e) { - throw new RuntimeException(e); - } - } -} ----- - -=== The price resource - -Finally, let's create a simple JAX-RS resource to show the last price. -Create the `src/main/java/org/acme/jms/PriceResource.java` file with the following content: - -[source, java] ----- -package org.acme.jms; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -/** - * A simple resource showing the last price. - */ -@Path("/prices") -public class PriceResource { - - @Inject - PriceConsumer consumer; - - @GET - @Path("last") - @Produces(MediaType.TEXT_PLAIN) - public String last() { - return consumer.getLastPrice(); - } -} ----- - -=== The HTML page - -Final touch, the HTML page reading the converted prices using SSE. - -Create the `src/main/resources/META-INF/resources/prices.html` file, with the following content: - -[source, html] ----- - - - - - Prices - - - - - -
    - -

    Last price

    -
    -

    The last price is N/A €.

    -
    -
    - - - ----- - -Nothing spectacular here. On each fetch, it updates the page. - -=== Configure the Qpid JMS properties - -We need to configure the Qpid JMS properties used by the extension when -injecting the ConnectionFactory. - -This is done in the `src/main/resources/application.properties` file. - -[source,properties] ----- -# Configures the Qpid JMS properties. -quarkus.qpid-jms.url=amqp://localhost:5672 -quarkus.qpid-jms.username=quarkus -quarkus.qpid-jms.password=quarkus ----- - -More detail about the configuration are available in the https://github.com/amqphub/quarkus-qpid-jms#configuration[Quarkus Qpid JMS] documentation. - -[#get-it-running] -=== Get it running - -If you followed the instructions, you should have the Artemis server running. -Then, you just need to run the application using: - -include::includes/devtools/dev.adoc[] - -Open `http://localhost:8080/prices.html` in your browser. - -=== Running Native - -You can build the native executable with: - -include::includes/devtools/build-native.adoc[] - -Or, if you don't have GraalVM installed, you can instead use Docker to build the native executable using: - -include::includes/devtools/build-native-container.adoc[] - -and then run with: - -[source,bash] ----- -./target/jms-quickstart-1.0.0-SNAPSHOT-runner ----- - -Open `http://localhost:8080/prices.html` in your browser. - -''' - - -[#artemis-jms] -== Artemis JMS - -The above steps detailed using the Qpid JMS AMQP client, however the guide can also be used -with the Artemis JMS client. Many of the individual steps are exactly as previously -<>. The individual component code is the same. -The only differences are in the dependency for the initial project creation, and the -configuration properties used. These changes are detailed below and should be substituted -for the equivalent step during the sequence above. - -=== Solution - -You can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The Artemis JMS solution is located in the `jms-quickstart` {quickstarts-tree-url}/jms-quickstart[directory]. - -=== Creating the Maven Project - -Create a new project with the following command: - -:create-app-artifact-id: jms-quickstart -:create-app-extensions: resteasy,artemis-jms -include::includes/devtools/create-app.adoc[] - -This creates a new project importing the quarkus-artemis-jms extension: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-artemis-jms - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-artemis-jms") ----- - -With the project created, you can resume from <> in the detailed steps above -and proceed until configuring the `application.properties` file, when you should use the Artemis -configuration below instead. - -=== Configure the Artemis properties - -We need to configure the Artemis connection properties. -This is done in the `src/main/resources/application.properties` file. - -[source,properties] ----- -# Configures the Artemis properties. -quarkus.artemis.url=tcp://localhost:61616 -quarkus.artemis.username=quarkus -quarkus.artemis.password=quarkus ----- - -With the Artemis properties configured, you can resume the steps above from <>. - -=== Configuration Reference - -To know more about how to configure the Artemis JMS client, have a look at https://quarkiverse.github.io/quarkiverse-docs/quarkus-artemis/dev/index.html[the documentation of the extension]. - diff --git a/_versions/2.7/guides/jreleaser.adoc b/_versions/2.7/guides/jreleaser.adoc deleted file mode 100644 index bc93ce6095c..00000000000 --- a/_versions/2.7/guides/jreleaser.adoc +++ /dev/null @@ -1,824 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Packaging And Releasing With JReleaser - -include::./attributes.adoc[] -:jreleaser-version: 0.9.1 - -:numbered: -:sectnums: -:sectnumlevels: 4 - - -This guide covers packaging and releasing CLI applications using the link:https://jreleaser.org[JReleaser] tool. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* a GitHub account and a GitHub Personal Access token - -== Bootstrapping the project - -First, we need a project that defines a CLI application. We recommend using the xref:picocli.adoc[PicoCLI] extension. -This can be done using the following command: - -:create-cli-artifact-id: app -:create-cli-code: -include::includes/devtools/create-cli.adoc[] - -This command initializes the file structure and the minimum set of required files in the project: - -[source] ----- -. -├── README.md -├── mvnw -├── mvnw.cmd -├── pom.xml -└── src - └── main - ├── docker - │ ├── Dockerfile.jvm - │ ├── Dockerfile.legacy-jar - │ └── Dockerfile.native - ├── java - │ └── org - │ └── acme - │ └── GreetingCommand.java - └── resources - └── application.properties ----- - -It will also configure the picocli extension in the `pom.xml`: - -[source,xml] ----- - - io.quarkus - quarkus-picocli - ----- - -== Preparing the project for GitHub releases - -The project must be hosted at a GitHub repository before we continue. This task can be completed by logging into your -GitHub account, creating a new repository, and adding the newly created sources to said repository. Choose the `main` -branch as default to take advantage of conventions and thus configure less in your `pom.xml`. - -You also need a GitHub Personal Access token to be able to post a release to the repository you just created. Follow -the official documentation for -link:https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token[creating a personal access token]. -Store the newly created token at a safe place for future reference. Next, you have the choice of configuring the token -as an environment variable named `JRELEASER_GITHUB_TOKEN` so that the tool can read it. Alternatively you may store -the token at a secure location of your choosing, using a `.yml`, `.toml`, `.json`, or `.properties` file. The default -location is `~/.jreleaser/config[format]`. For example, using the `.yml` format this file could look like: - -[source,yaml] -.~/.jreleaser/config.yml ----- -JRELEASER_GITHUB_TOKEN: ----- - -Alright. Add all sources and create a first commit. You can choose your own conventions for commit messages however you -can get more bang for your buck when using JReleaser if you follow the -link:https://www.conventionalcommits.org/en/v1.0.0/[Conventional Commits] specification. Make your first commit with the -following message "build: Add initial sources". - -== Packaging as a Native Image distribution - -Quarkus already knows how to create a native executable using GraalVM Native Image. The default setup will create a -single executable file following a naming convention. However the JReleaser tool expects a distribution that is, a -conventional file structure packaged as a Zip or Tar file. The file structure must follow this layout: - -[source] ----- -. -├── LICENSE -├── README -└── bin - └── executable ----- - -This structure lets you add all kinds of supporting files required by the executable, such as configuration files, -shell completion scripts, man pages, license, readme, and more. - -== Creating the distribution - -We can leverage the link:http://maven.apache.org/plugins/maven-assembly-plugin/[maven-assembly-plugin] to create such -a distribution. We'll also make use of the link:https://github.com/trustin/os-maven-plugin[os-maven-plugin] to properly -identify the platform on which this executable can run, adding said platform to the distribution's filename. - -First, let's add the os-maven-plugin to the `pom.xml`. This plugin works as a Maven extension and as such must be added -to the `` section of the file: - -[source,xml] ----- - - - - kr.motd.maven - os-maven-plugin - 1.7.0 - - - ----- - -Next, native executables on Linux and macOS platforms typically do not have a file extension but Windows executables do, -we need to take care of this when renaming the generated executable. We can also place the generated distributions into -their own directory to avoid cluttering the `target` directory. Thus, let's add a couple of properties to the existing -`` section in the `pom.xml`: - -[source,xml] ----- - -${project.build.directory}/distributions ----- - -Now we configure the maven-assembly-plugin to create a Zip and a Tar file containing the executable and any supporting files -it may need to perform its job. Take special note on the name of the distribution, this is where we make use of the platform -properties detected by the os-maven-plugin. This plugin is configured in its own profile with the `single` goal bound to -the `package` phase. It's done this way to avoid rebuilding the distribution every single time the build is invoked, as we -only needed when we're ready for a release. - -[source,xml] ----- - - dist - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.3.0 - - false - false - ${project.artifactId}-${project.version}-${os.detected.classifier} - ${distribution.directory} - ${project.build.directory}/assembly/work - - src/main/assembly/assembly.xml - - - - - make-distribution - package - - single - - - - - - - - - dist-windows - - - windows - - - - .exe - - ----- - -Note that two profiles are configured. The `dist` profile configures the assembly plugin, and it's configured in such a way that -it must be activated explicitly by passing `-Pdist` as a command flag. On the other hand the `dist-windows` profile becomes -active automatically when the build is run on a Windows platform. This second profile takes care of setting the value for the -`executable-suffix` property which is required by the assembly descriptor, as shown next: - -[source,xml,subs=macros+] -.src/main/assembly/assembly.xml ----- - - dist - - tar.gz - zip - dir - - - - ${project.build.directory}/${project.artifactId}-${project.version}-runner${executable-suffix} - ./bin - ${project.artifactId}${executable-suffix} - - - ----- - -These are the files created by the assembly plugin when invoking `./mvnw -Pdist package` on macOS: - -[source] ----- -$ tree target/distributions/ -target/distributions/ -├── app-1.0.0-SNAPSHOT-osx-x86_64 -│ └── app-1.0.0-SNAPSHOT-osx-x86_64 -│ └── bin -│ └── app -├── app-1.0.0-SNAPSHOT-osx-x86_64.tar.gz -└── app-1.0.0-SNAPSHOT-osx-x86_64.zip ----- - -Feel free to update the assembly descriptor to include additional files such as LICENSE, readme, or anything else needed by -the consumers of the executable. Make another commit right here with "build: Configure distribution assembly". - -We're ready to go to the next phase: configuring the release. - -== Adding JReleaser - -The JReleaser tool can be invoked in many ways: as a CLI tool, as a Docker image, or as a Maven plugin. The last option is very -convenient given that we are already working with Maven. Let's add yet another profile that contains the release configuration -as once again we don't require this behavior to be active all the time only when we're ready to post a release: - -[source,xml,subs=attributes+] ----- - - release - - - - org.jreleaser - jreleaser-maven-plugin - {jreleaser-version} - - - - ----- - -There are a few goals we can invoke at this point, we can for example ask JReleaser to print out its current configuration by -invoking the `./mvnw -Prelease jreleaser:config` command. The tool will output everything that it knows about the project. We -can also generate the changelog by invoking `./mvnw -Prelease jreleaser:changelog`. A file containing the changelog will be -placed at `target/jreleaser/release/CHANGELOG.md` which at this point should look like this: - -[source,markdown] -.target/jreleaser/release/CHANGELOG.md ----- -## Changelog - -8ef3307 build: Configure distribution assembly -5215200 build: Add initial sources ----- - -Not very exicting. But we can change this by instructing JReleaser to format the changelog according to our own conventions. You -can manually specify patterns to categorize commits however if you chose to follow Conventional Commits we can instruct JReleaser -to do the same. Add the following to the JReleaser plugin configuration section: - -[source,xml] ----- - - - - - - ALWAYS - conventional-commits - - - - - ----- - -Run the previous Maven command once again and inspect the generated changelog, it should now look like this: - -[source,markdown] -.target/jreleaser/release/CHANGELOG.md ----- -## Changelog - -## 🛠 Build -- 8ef3307 Configure distribution assembly (Andres Almiray) -- 5215200 Add initial sources (Andres Almiray) - - -## Contributors -We'd like to thank the following people for their contributions: -Andres Almiray ----- - -There are more formatting options you may apply but for now these will suffice. Let's make yet another commit right now, with -"build: Configure JReleaser plugin" as a commit message. If you want you can generate the changelog once again and see this -latest commit added to the file. - -== Adding distributions to the release - -We've reached the point where we can configure the binary distributions. If you run the `./mvnw -Prelease jreleaser:config` -command you'll notice there's no mention of any distribution files that we configured in previous steps. This is because -the tool has no implicit knowledge of them, we must tell JReleaser which files we'd like to release. This decouples creation -of distributions from release assets as you might like to add or remove files at your leisure. For this particular case we'll -configure Zip files for both macOS and Windows, and a Tar file for Linux. These files must be added to the JReleaser plugin -configuration section, like so: - -[source,xml] ----- - - - - - - ALWAYS - conventional-commits - - - - - - NATIVE_IMAGE - - - ${distribution.directory}/{{distributionName}}-{{projectVersion}}-linux-x86_64.tar.gz - linux-x86_64 - - - ${distribution.directory}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip - windows-x86_64 - - - ${distribution.directory}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip - osx-x86_64 - - - - - - ----- - -We can appreciate a distribution named `app` (same as the project's artifactId for convenience) with 3 configured artifacts. -Note the use of Maven properties and Mustache templates to define the paths. You may use explicit values if you want or rely -on properties to parameterize the configuration. Maven properties resolve eagerly during build validation while Mustache -templates resolve lazily during the execution of the JReleaser plugin goals. Each artifact must define a `platform` -property that uniquely identifies them. If we run the `./mvnw -Prelease jreleaser:config` we'll quickly get an error as now -that there's a configured distribution the plugin expects more metadata to be provided by the project: - -[source] ----- -[WARNING] [validation] project.copyright must not be blank since 0.4.0. This warning will become an error in a future release. -[ERROR] == JReleaser == -[ERROR] project.description must not be blank -[ERROR] project.website must not be blank -[ERROR] project.docsUrl must not be blank -[ERROR] project.license must not be blank -[ERROR] project.authors must not be blank ----- - -This metadata can be provided in two ways: either as part of the JReleaser plugin's configuration or using standard -POM elements. If you choose the former option then the plugin's configuration may look like this: - -[source,xml,subs=macros+] ----- - - - - app -- Sample Quarkus CLI application - pass:[https://github.com/aalmiray/app] - pass:[https://github.com/aalmiray/app] - APACHE-2.0 - Andres Almiray - 2021 Kordamp - - ----- - -If you choose to use standard POM elements then your `pom.xml` must contain these entries at the very least, of course -adapting values to your own: - -[source,xml,subs=macros+] ----- - app - app -- Sample Quarkus CLI application - 2021 - pass:[https://github.com/aalmiray/app] - - - aalmiray - Andres Almiray - - - - - Apache-2.0 - pass:[http://www.apache.org/licenses/LICENSE-2.0.txt] - repo - - ----- - -Yet, we're not still out of the woods as invoking the `./mvnw -Prelease jreleaser:config` once more will still result in -another error, this time the failure relates to missing artifacts. This is because we did not assemble all required -artifacts, yet the plugin expects them to be readily available. Here you have the choice to build the required artifacts -on other nodes then copy them to their expected locations -- a task that can be performed running a GitHub Actions -workflow on multiple nodes. Or you can instruct JReleaser to ignore some artifacts and select only those that match your -current platform. Previously we showed how the distribution would look like when created on macOS, assuming we're still on -that platform we have the correct artifact. - -We can instruct JReleaser to select only artifacts that match macOS at this point by invoking the `jreleaser:config` goal -with an additional flag: `./mvnw -Prelease jreleaser:config -Djreleaser.select.current.platform`. This time the command -will succeed and print out the model. Note that only the path for the macOS artifact has been fully resolved, leaving the -other 2 paths untouched. - -Let's make one more commit here with "build: Configure distribution artifacts" as message. We can create a release right -now, by invoking a different goal: `./mvnw -Prelease jreleaser:release -Djreleaser.select.current.platform`. This will -create a Git release at the chosen repository, which includes tagging the repository, uploading the changelog, all -distribution artifacts and their checksum as release assets. - -But before we do that let's add one additional feature, let's create a Homebrew formula that will make it easy for macOS -users to consume the binary distribution, shall we? - -== Configuring Homebrew as a packager - -link:https://brew.sh/[Homebrew] is a popular choice among macOS users to install and manage binaries. Homebrew packages -are at their core a Ruby file (known as a formula) that's executed on the target environment to install or upgrade a -particular binary. JReleaser can create formulae from binary distributions such as the one we already have configured. - -For this to work we simply have to enable Homebrew in the JReleaser plugin configuration like so: - -[source,xml] ----- - - - NATIVE_IMAGE - - ALWAYS - - - - ${distribution.directory}/{{distributionName}}-{{projectVersion}}-linux-x86_64.tar.gz - linux-x86_64 - - - ${distribution.directory}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip - windows-x86_64 - - - ${distribution.directory}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip - osx-x86_64 - - - - ----- - -One last thing, it's a good practice to publish Homebrew formulae for non-snapshot releases thus change the project's version -from `1.0.0-SNAPSHOT` to say `1.0.0.Alpha1` or go directly with `1.0.0` as you feel like doing. One last commit and we're done, -say "feat: Add Homebrew packager configuration" as commit message. Alright, we're finally ready, let's post a release! - -== Creating a release - -It's been quite the whirlwind tour of adding configuration to the `pom.xml` but that's just for getting the project ready for -its first release; subsequent release require less tampering with configuration. We can create a git release and the -Homebrew formula with the `jreleaser:full-release` goal but if you still have some doubts on how things may play out then -you can invoke the goal in dry-run mode that is, let JReleaser perform all local operations as needed without affecting -remote resources such as Git repositories. This is how it would look like: - -[source,subs=attributes+] ----- -# because we changed the project's version -./mvnw -Pnative,dist package -./mvnw -Prelease jreleaser:full-release -Djreleaser.select.current.platform -Djreleaser.dryrun - -[INFO] --- jreleaser-maven-plugin:{jreleaser-version}:full-release (default-cli) @ app --- -[INFO] JReleaser {jreleaser-version} -[INFO] - basedir set to /tmp/app -[WARNING] Platform selection is in effect -[WARNING] Artifacts will be filtered by platform matching: [osx-x86_64] -[INFO] Loading variables from /Users/aalmiray/.jreleaser/config.toml -[INFO] Validating configuration -[INFO] Project version set to 1.0.0.Alpha1 -[INFO] Release is not snapshot -[INFO] Timestamp is 2021-12-16T13:31:12.163687+01:00 -[INFO] HEAD is at a21f3f2 -[INFO] Platform is osx-x86_64 -[INFO] dryrun set to true -[INFO] Generating changelog: target/jreleaser/release/CHANGELOG.md -[INFO] Calculating checksums -[INFO] [checksum] target/distributions/app-1.0.0.Alpha1-osx-x86_64.zip.sha256 -[INFO] Signing files -[INFO] Signing is not enabled. Skipping -[INFO] Uploading is not enabled. Skipping -[INFO] Releasing to https://github.com/aalmiray/app -[INFO] - uploading app-1.0.0.Alpha1-osx-x86_64.zip -[INFO] - uploading checksums_sha256.txt -[INFO] Preparing distributions -[INFO] - Preparing app distribution -[INFO] [brew] preparing app distribution -[INFO] Packaging distributions -[INFO] - Packaging app distribution -[INFO] [brew] packaging app distribution -[INFO] Publishing distributions -[INFO] - Publishing app distribution -[INFO] [brew] publishing app distribution -[INFO] [brew] setting up repository aalmiray/homebrew-tap -[INFO] Announcing release -[INFO] Announcing is not enabled. Skipping -[INFO] Writing output properties to target/jreleaser/output.properties -[INFO] JReleaser succeeded after 1.335 s ----- - -JReleaser will perform the following tasks for us: - -* Generate a changelog based on all commits from the last tag (if any) to the latest commit. -* Calculate SHA256 (default) checksums for all input files. -* Sign all files with GPG. In our case we did not configure this step thus it's skipped. -* Upload assets to JFrog Artifactory or AWS S3. We also skip this step as it's not configured. -* Create a Git release at the chosen repository, tagging it. -* Upload all assets, including checksums. -* Create a Homebrew formula, publishing to pass:[https://gitcom.com/aamiray/homebrew-tap]. - -Of course no remote repository was affected as we can appreciate the `-Djreleaser.dryrun` property was in effect. If you're -so inclined inspect the contents of `target/jreleaser/package/app/brew/Formula/app.rb` which defines the Homebrew formula -to be published. It should look something like this: - -[source,ruby,subs=macros+] -.app.rb ----- -class App < Formula - desc "app -- Sample Quarkus CLI application" - homepage "pass:[https://github.com/aalmiray/app]" - url "pass:[https://github.com/aalmiray/app/releases/download/v1.0.0.Alpha1/app-1.0.0.Alpha1-osx-x86_64.zip]" - version "1.0.0.Alpha1" - sha256 "a7e8df6eef3c4c5df7357e678b3c4bc6945b926cec4178a0239660de5dba0fc4" - license "Apache-2.0" - - - def install - libexec.install Dir["*"] - bin.install_symlink "#{libexec}/bin/app" - end - - test do - output = shell_output("#{bin}/app --version") - assert_match "1.0.0.Alpha1", output - end -end ----- - -When ready, create a release for real this time by simply removing the `-Djreleaser.dryrun` flag from the command line, then -browse to your repository and look at the freshly created release. - -== Further reading - -* link:https://jreleaser.org/guide/latest/index.html[JReleaser] documentation. - -== Reference - -As a reference, these are the full contents of the `pom.xml`: - -[source,xml,subs=attributes+,macros+] ----- - - - 4.0.0 - org.acme - app - 1.0.0.Alpha1 - app - app -- Sample Quarkus CLI application - 2021 - https://github.com/aalmiray/app - - - aalmiray - Andres Almiray - - - - - Apache-2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - ${project.build.directory}/distributions - 3.8.1 - true - 11 - 11 - UTF-8 - UTF-8 - quarkus-bom - io.quarkus.platform - {quarkus-version} - 3.0.0-M5 - false - - - - - ${quarkus.platform.group-id} - ${quarkus.platform.artifact-id} - ${quarkus.platform.version} - pom - import - - - - - - io.quarkus - quarkus-picocli - - - io.quarkus - quarkus-arc - - - io.quarkus - quarkus-junit5 - test - - - - - - kr.motd.maven - os-maven-plugin - 1.7.0 - - - - - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus.platform.version} - true - - - - build - generate-code - generate-code-tests - - - - - - maven-compiler-plugin - ${compiler-plugin.version} - - ${maven.compiler.parameters} - - - - maven-surefire-plugin - ${surefire-plugin.version} - - - org.jboss.logmanager.LogManager - ${maven.home} - - - - - - - - native - - - native - - - - - - maven-failsafe-plugin - ${surefire-plugin.version} - - - - integration-test - verify - - - - ${project.build.directory}/${project.build.finalName}-runner - org.jboss.logmanager.LogManager - ${maven.home} - - - - - - - - - native - - - - dist - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.3.0 - - false - false - ${project.artifactId}-${project.version}-${os.detected.classifier} - ${distribution.directory} - ${project.build.directory}/assembly/work - - src/main/assembly/assembly.xml - - - - - make-distribution - package - - single - - - - - - - - - dist-windows - - - windows - - - - .exe - - - - release - - - - org.jreleaser - jreleaser-maven-plugin - {jreleaser-version} - - - - - - - ALWAYS - conventional-commits - - - - - - NATIVE_IMAGE - - ALWAYS - - - - ${distribution.directory}/{{distributionName}}-{{projectVersion}}-linux-x86_64.tar.gz - linux-x86_64 - - - ${distribution.directory}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip - windows-x86_64 - - - ${distribution.directory}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip - osx-x86_64 - - - - - - - - - - - - ----- diff --git a/_versions/2.7/guides/kafka-dev-services.adoc b/_versions/2.7/guides/kafka-dev-services.adoc deleted file mode 100644 index 8704c7744fe..00000000000 --- a/_versions/2.7/guides/kafka-dev-services.adoc +++ /dev/null @@ -1,89 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Dev Services for Kafka - -include::./attributes.adoc[] - -If any Kafka-related extension is present (e.g. `quarkus-smallrye-reactive-messaging-kafka`), Dev Services for Kafka automatically starts a Kafka broker in dev mode and when running tests. -So, you don't have to start a broker manually. -The application is configured automatically. - -IMPORTANT: Because starting a Kafka broker can be long, Dev Services for Kafka uses https://vectorized.io/redpanda[Redpanda], a Kafka compatible broker which starts in ~1 second. - -== Enabling / Disabling Dev Services for Kafka - -Dev Services for Kafka is automatically enabled unless: - -- `quarkus.kafka.devservices.enabled` is set to `false` -- the `kafka.bootstrap.servers` is configured -- all the Reactive Messaging Kafka channels have the `bootstrap.servers` attribute set - -Dev Services for Kafka relies on Docker to start the broker. -If your environment does not support Docker, you will need to start the broker manually, or connect to an already running broker. -You can configure the broker address using `kafka.bootstrap.servers`. - -== Shared broker - -Most of the time you need to share the broker between applications. -Dev Services for Kafka implements a _service discovery_ mechanism for your multiple Quarkus applications running in _dev_ mode to share a single broker. - -NOTE: Dev Services for Kafka starts the container with the `quarkus-dev-service-kafka` label which is used to identify the container. - -If you need multiple (shared) brokers, you can configure the `quarkus.kafka.devservices.service-name` attribute and indicate the broker name. -It looks for a container with the same value, or starts a new one if none can be found. -The default service name is `kafka`. - -Sharing is enabled by default in dev mode, but disabled in test mode. -You can disable the sharing with `quarkus.kafka.devservices.shared=false`. - -== Setting the port - -By default, Dev Services for Kafka picks a random port and configures the application. -You can set the port by configuring the `quarkus.kafka.devservices.port` property. - -Note that the Kafka advertised address is automatically configured with the chosen port. - -== Configuring the image - -Dev Services for Kafka uses: `vectorized/redpanda` images. -You can select any version from https://hub.docker.com/r/vectorized/redpanda: - -[source, properties] ----- -quarkus.kafka.devservices.image-name=vectorized/redpanda:latest ----- - -IMPORTANT: Dev Services for Kafka only support Redpanda. - -== Configuring Kafka topics - -You can configure the Dev Services for Kafka to create topics once the broker is started. -Topics are created with given number of partitions and 1 replica. - -The following example creates a topic named `test` with 3 partitions, and a second topic named `messages` with 2 partitions. - -[source, properties] ----- -quarkus.kafka.devservices.topic-partitions.test=3 -quarkus.kafka.devservices.topic-partitions.messages=2 ----- - -If a topic already exists with the given name, the creation is skipped, -without trying to re-partition the existing topic to a different number of partitions. - -You can configure timeout for Kafka admin client calls used in topic creation using `quarkus.kafka.devservices.topic-partitions-timeout`, it defaults to 2 seconds. - -== Enabling transactions - -By default, the Red Panda broker does not act as a transaction coordinator. -To enable transactions, set: - -[source, properties] ----- -quarkus.kafka.devservices.redpanda.transaction-enabled=true ----- - -NOTE: It also enables producer idempotence support. \ No newline at end of file diff --git a/_versions/2.7/guides/kafka-reactive-getting-started.adoc b/_versions/2.7/guides/kafka-reactive-getting-started.adoc deleted file mode 100644 index 422e610fc4b..00000000000 --- a/_versions/2.7/guides/kafka-reactive-getting-started.adoc +++ /dev/null @@ -1,509 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Getting Started to SmallRye Reactive Messaging with Apache Kafka - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can utilize SmallRye Reactive Messaging to interact with Apache Kafka. - -== Prerequisites - -:prerequisites-docker-compose: -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this guide, we are going to develop two applications communicating with Kafka. -The first application sends a _quote request_ to Kafka and consumes Kafka messages from the _quote_ topic. -The second application receives the _quote request_ and sends a _quote_ back. - -image::kafka-qs-architecture.png[alt=Architecture, align=center] - -The first application, the _producer_, will let the user request some quotes over a HTTP endpoint. -For each quote request a random identifier is generated and returned to the user, to mark the quote request as _pending_. -At the same time, the generated request id is sent over a Kafka topic `quote-requests`. - -image::kafka-qs-app-screenshot.png[alt=Producer App UI, align=center] - -The second application, the _processor_, will read from the `quote-requests` topic, put a random price to the quote, and send it to a Kafka topic named `quotes`. - -Lastly, the _producer_ will read the quotes and send them to the browser using server-sent events. -The user will therefore see the quote price updated from _pending_ to the received price in real-time. - -== Solution - -We recommend that you follow the instructions in the next sections and create applications step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `kafka-quickstart` {quickstarts-tree-url}/kafka-quickstart[directory]. - -== Creating the Maven Project - -First, we need to create two projects: the _producer_ and the _processor_. - -To create the _producer_ project, in a terminal run: - -:create-app-artifact-id: kafka-quickstart-producer -:create-app-extensions: resteasy-reactive-jackson,smallrye-reactive-messaging-kafka -:create-app-post-command: -include::includes/devtools/create-app.adoc[] - -This command creates the project structure and selects two Quarkus extensions we will be using: - -1. RESTEasy Reactive and its Jackson support (to handle JSON) to serve the HTTP endpoint. -2. The Kafka connector for Reactive Messaging - -To create the _processor_ project, from the same directory, run: - -:create-app-artifact-id: kafka-quickstart-processor -:create-app-extensions: smallrye-reactive-messaging-kafka -:create-app-post-command: -include::includes/devtools/create-app.adoc[] - -At that point, you should have the following structure: - -[source, text] ----- -. -├── kafka-quickstart-processor -│ ├── README.md -│ ├── mvnw -│ ├── mvnw.cmd -│ ├── pom.xml -│ └── src -│ └── main -│ ├── docker -│ ├── java -│ └── resources -│ └── application.properties -└── kafka-quickstart-producer - ├── README.md - ├── mvnw - ├── mvnw.cmd - ├── pom.xml - └── src - └── main - ├── docker - ├── java - └── resources - └── application.properties ----- - -Open the two projects in your favorite IDE. - -[TIP] -.Dev Services -==== -No need to start a Kafka broker when using the dev mode or for tests. -Quarkus starts a broker for you automatically. -See xref:kafka-dev-services.adoc[Dev Services for Kafka] for details. -==== - -== The Quote object - -The `Quote` class will be used in both _producer_ and _processor_ projects. -For the sake of simplicity, we will duplicate the class. -In both projects, create the `src/main/java/org/acme/kafka/model/Quote.java` file, with the following content: - -[source,java] ----- -package org.acme.kafka.model; - -public class Quote { - - public String id; - public int price; - - /** - * Default constructor required for Jackson serializer - */ - public Quote() { } - - public Quote(String id, int price) { - this.id = id; - this.price = price; - } - - @Override - public String toString() { - return "Quote{" + - "id='" + id + '\'' + - ", price=" + price + - '}'; - } -} ----- - -JSON representation of `Quote` objects will be used in messages sent to the Kafka topic -and also in the server-sent events sent to web browsers. - -Quarkus has built-in capabilities to deal with JSON Kafka messages. -In a following section, we will create serializer/deserializer classes for Jackson. - -== Sending quote request - -Inside the _producer_ project, create the `src/main/java/org/acme/kafka/producer/QuotesResource.java` file and add the following content: - -[source,java] ----- -package org.acme.kafka.producer; - -import java.util.UUID; - -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.acme.kafka.model.Quote; -import org.eclipse.microprofile.reactive.messaging.Channel; -import org.eclipse.microprofile.reactive.messaging.Emitter; - -@Path("/quotes") -public class QuotesResource { - - @Channel("quote-requests") - Emitter quoteRequestEmitter; // <1> - - /** - * Endpoint to generate a new quote request id and send it to "quote-requests" Kafka topic using the emitter. - */ - @POST - @Path("/request") - @Produces(MediaType.TEXT_PLAIN) - public String createRequest() { - UUID uuid = UUID.randomUUID(); - quoteRequestEmitter.send(uuid.toString()); // <2> - return uuid.toString(); // <3> - } -} ----- -<1> Inject a Reactive Messaging `Emitter` to send messages to the `quote-requests` channel. -<2> On a post request, generate a random UUID and send it to the Kafka topic using the emitter. -<3> Return the same UUID to the client. - - -The `quote-requests` channel is going to be managed as a Kafka topic, as that's the only connector on the classpath. -If not indicated otherwise, like in this example, Quarkus uses the channel name as topic name. -So, in this example, the application writes into the `quote-requests` topic. -Quarkus also configures the serializer automatically, because it finds that the `Emitter` produces `String` values. - -TIP: When you have multiple connectors, you would need to indicate which connector you want to use in the application configuration. - -== Processing quote requests - -Now let's consume the quote request and give out a price. -Inside the _processor_ project, create the `src/main/java/org/acme/kafka/processor/QuotesProcessor.java` file and add the following content: - -[source, java] ----- -package org.acme.kafka.processor; - -import java.util.Random; - -import javax.enterprise.context.ApplicationScoped; - -import org.acme.kafka.model.Quote; -import org.eclipse.microprofile.reactive.messaging.Incoming; -import org.eclipse.microprofile.reactive.messaging.Outgoing; - -import io.smallrye.reactive.messaging.annotations.Blocking; - -/** - * A bean consuming data from the "quote-requests" Kafka topic (mapped to "requests" channel) and giving out a random quote. - * The result is pushed to the "quotes" Kafka topic. - */ -@ApplicationScoped -public class QuotesProcessor { - - private Random random = new Random(); - - @Incoming("requests") // <1> - @Outgoing("quotes") // <2> - @Blocking // <3> - public Quote process(String quoteRequest) throws InterruptedException { - // simulate some hard working task - Thread.sleep(200); - return new Quote(quoteRequest, random.nextInt(100)); - } -} - ----- -<1> Indicates that the method consumes the items from the `requests` channel. -<2> Indicates that the objects returned by the method are sent to the `quotes` channel. -<3> Indicates that the processing is _blocking_ and cannot be run on the caller thread. - -For every Kafka _record_ from the `quote-requests` topic, Reactive Messaging calls the `process` method, and sends the returned `Quote` object to the `quotes` channel. -In this case, we need to configure the channel in the `application.properties` file, to configures the `requests` and `quotes` channels: - -[source, properties] ----- -%dev.quarkus.http.port=8081 - -# Configure the incoming `quote-requests` Kafka topic -mp.messaging.incoming.requests.topic=quote-requests -mp.messaging.incoming.requests.auto.offset.reset=earliest ----- - -Note that in this case we have one incoming and one outgoing connector configuration, each one distinctly named. -The configuration keys are structured as follows: - -`mp.messaging.[outgoing|incoming].{channel-name}.property=value` - -The `channel-name` segment must match the value set in the `@Incoming` and `@Outgoing` annotation: - -* `quote-requests` -> Kafka topic from which we read the quote requests -* `quotes` -> Kafka topic in which we write the quotes - -[NOTE] -==== -More details about this configuration is available on the https://kafka.apache.org/documentation/#producerconfigs[Producer configuration] and https://kafka.apache.org/documentation/#consumerconfigs[Consumer configuration] section from the Kafka documentation. These properties are configured with the prefix `kafka`. -An exhaustive list of configuration properties is available in xref:kafka.adoc#kafka-configuration[Kafka Reference Guide - Configuration]. -==== - -`mp.messaging.incoming.requests.auto.offset.reset=earliest` instructs the application to start reading the topics from the first offset, when there is no committed offset for the consumer group. -In other words, it will also process messages sent before we start the processor application. - -There is no need to set serializers or deserializers. -Quarkus detects them, and if none are found, generates them using JSON serialization. - -== Receiving quotes - -Back to our _producer_ project. -Let's modify the `QuotesResource` to consume quotes from Kafka and send them back to the client via Server-Sent Events: - -[source,java] ----- -import io.smallrye.mutiny.Multi; - -... - -@Channel("quotes") -Multi quotes; // <1> - -/** - * Endpoint retrieving the "quotes" Kafka topic and sending the items to a server sent event. - */ -@GET -@Produces(MediaType.SERVER_SENT_EVENTS) // <2> -public Multi stream() { - return quotes; // <3> -} ----- -<1> Injects the `quotes` channel using the `@Channel` qualifier -<2> Indicates that the content is sent using `Server Sent Events` -<3> Returns the stream (_Reactive Stream_) - -No need to configure anything, as Quarkus will automatically associate the `quotes` channel to the `quotes` Kafka topic. -It will also generate a deserializer for the `Quote` class. - -[TIP] -==== -.Message serialization in Kafka -In this example we used Jackson to serialize/deserialize Kafka messages. -For more options on message serialization, see xref:kafka.adoc#kafka-serialization[Kafka Reference Guide - Serialization]. - -We strongly suggest adopting a contract-first approach using a schema registry. -To learn more about how to use Apache Kafka with the schema registry and Avro, follow the -xref:kafka-schema-registry-avro.adoc[Using Apache Kafka with Schema Registry and Avro] guide. -==== - -== The HTML page - -Final touch, the HTML page requesting quotes and displaying the prices obtained over SSE. - -Inside the _producer_ project, create the `src/main/resources/META-INF/resources/quotes.html` file with the following content: - -[source, html] ----- - - - - - Prices - - - - - -
    -
    -
    -

    Quotes

    - -
    -
    -
    -
    - - - - ----- - -Nothing spectacular here. -When the user clicks the button, HTTP request is made to request a quote, and a pending quote is added to the list. -On each quote received over SSE, the corresponding item in the list is updated. - -== Get it running - -You just need to run both applications. -In one terminal, run: - -[source,bash] ----- -mvn -f kafka-quickstart-producer quarkus:dev ----- - -In another terminal, run: - -[source, bash] ----- -mvn -f kafka-quickstart-processor quarkus:dev ----- - -Quarkus starts a Kafka broker automatically, configures the application and shares the Kafka broker instance between different applications. -See xref:kafka-dev-services.adoc[Dev Services for Kafka] for more details. - -Open `http://localhost:8080/quotes.html` in your browser and request some quotes by clicking the button. - -== Running in JVM or Native mode - -When not running in dev or test mode, you will need to start your Kafka broker. -You can follow the instructions from the https://kafka.apache.org/quickstart[Apache Kafka website] or create a `docker-compose.yaml` file with the following content: - -[source, yaml] ----- -version: '3.5' - -services: - - zookeeper: - image: quay.io/strimzi/kafka:0.23.0-kafka-2.8.0 - command: [ - "sh", "-c", - "bin/zookeeper-server-start.sh config/zookeeper.properties" - ] - ports: - - "2181:2181" - environment: - LOG_DIR: /tmp/logs - networks: - - kafka-quickstart-network - - kafka: - image: quay.io/strimzi/kafka:0.23.0-kafka-2.8.0 - command: [ - "sh", "-c", - "bin/kafka-server-start.sh config/server.properties --override listeners=$${KAFKA_LISTENERS} --override advertised.listeners=$${KAFKA_ADVERTISED_LISTENERS} --override zookeeper.connect=$${KAFKA_ZOOKEEPER_CONNECT}" - ] - depends_on: - - zookeeper - ports: - - "9092:9092" - environment: - LOG_DIR: "/tmp/logs" - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 - KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 - KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 - networks: - - kafka-quickstart-network - - producer: - image: quarkus-quickstarts/kafka-quickstart-producer:1.0-${QUARKUS_MODE:-jvm} - build: - context: producer - dockerfile: src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm} - depends_on: - - kafka - environment: - KAFKA_BOOTSTRAP_SERVERS: kafka:9092 - ports: - - "8080:8080" - networks: - - kafka-quickstart-network - - processor: - image: quarkus-quickstarts/kafka-quickstart-processor:1.0-${QUARKUS_MODE:-jvm} - build: - context: processor - dockerfile: src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm} - depends_on: - - kafka - environment: - KAFKA_BOOTSTRAP_SERVERS: kafka:9092 - networks: - - kafka-quickstart-network - -networks: - kafka-quickstart-network: - name: kafkaquickstart ----- - -Make sure you first build both applications in JVM mode with: - -[source, bash] ----- -mvn -f kafka-quickstart-producer package -mvn -f kafka-quickstart-processor package ----- - -Once packaged, run `docker-compose up`. - -NOTE: This is a development cluster, do not use in production. - -You can also build and run our applications as native executables. -First, compile both applications as native: - -[source, bash] ----- -mvn -f kafka-quickstart-producer package -Dnative -Dquarkus.native.container-build=true -mvn -f kafka-quickstart-processor package -Dnative -Dquarkus.native.container-build=true ----- - -Run the system with: - -[source, bash] ----- -export QUARKUS_MODE=native -docker-compose up --build ----- - -== Going further - -This guide has shown how you can interact with Kafka using Quarkus. -It utilizes https://smallrye.io/smallrye-reactive-messaging[SmallRye Reactive Messaging] to build data streaming applications. - -For the exhaustive list of features and configuration options, check the xref:kafka.adoc[Reference guide for Apache Kafka Extension]. - -[NOTE] -==== -In this guide we explore Smallrye Reactive Messaging framework to interact with Apache Kafka. -Quarkus extension for Kafka also allows -xref:kafka.adoc#kafka-bare-clients[using Kafka clients directly]. -==== diff --git a/_versions/2.7/guides/kafka-schema-registry-avro.adoc b/_versions/2.7/guides/kafka-schema-registry-avro.adoc deleted file mode 100644 index bce053c9c05..00000000000 --- a/_versions/2.7/guides/kafka-schema-registry-avro.adoc +++ /dev/null @@ -1,705 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Apache Kafka with Schema Registry and Avro - -include::./attributes.adoc[] - -This guide shows how your Quarkus application can use Apache Kafka, http://avro.apache.org/docs/current/[Avro] serialized -records, and connect to a schema registry (such as the https://docs.confluent.io/platform/current/schema-registry/index.html[Confluent Schema Registry] or https://www.apicur.io/registry/[Apicurio Registry]. - -If you are not familiar with Kafka and Kafka in Quarkus in particular, consider -first going through the xref:kafka.adoc[Using Apache Kafka with Reactive Messaging] guide. - -== Prerequisites - -:prerequisites-time: 30 minutes -:prerequisites-docker-compose: -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this guide we are going to implement a REST resource, namely `MovieResource`, that -will consume movie DTOs and put them in a Kafka topic. - -Then, we will implement a consumer that will consume and collect messages from the same topic. -The collected messages will be then exposed by another resource, `ConsumedMovieResource`, via -https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events[Server-Sent Events]. - -The _Movies_ will be serialized and deserialized using Avro. -The schema, describing the _Movie_, is stored in Apicurio Registry. -The same concept applies if you are using the Confluent Avro _serde_ and Confluent Schema Registry. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `kafka-avro-schema-quickstart` {quickstarts-tree-url}/kafka-avro-schema-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: kafka-avro-schema-quickstart -:create-app-extensions: resteasy-reactive-jackson,smallrye-reactive-messaging-kafka,apicurio-registry-avro -include::includes/devtools/create-app.adoc[] - -[TIP] -==== -If you use Confluent Schema Registry, you don't need the `quarkus-apicurio-registry-avro` extension. -Instead, you need the following dependencies and the Confluent Maven repository added -to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - ... - - - - io.quarkus - quarkus-avro - - - - io.quarkus - quarkus-rest-client-reactive - - - io.confluent - kafka-avro-serializer - 6.1.1 - - - jakarta.ws.rs - jakarta.ws.rs-api - - - - - - - - confluent - https://packages.confluent.io/maven/ - - false - - - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -repositories { - ... - - maven { - url "https://packages.confluent.io/maven/" - } -} - -dependencies { - ... - - // Quarkus extension for generating Java code from Avro schemas - implementation("io.quarkus:quarkus-avro") - - // Confluent registry libraries use JAX-RS client - implementation("io.quarkus:quarkus-rest-client-reactive") - - implementation("io.confluent:kafka-avro-serializer:6.1.1") { - exclude group: "jakarta.ws.rs", module: "jakarta.ws.rs-api" - } -} ----- -==== - -== Avro schema - -Apache Avro is a data serialization system. Data structures are described using schemas. -The first thing we need to do is to create a schema describing the `Movie` structure. -Create a file called `src/main/avro/movie.avsc` with the schema for our record (Kafka message): -[source,json] ----- -{ - "namespace": "org.acme.kafka.quarkus", - "type": "record", - "name": "Movie", - "fields": [ - { - "name": "title", - "type": "string" - }, - { - "name": "year", - "type": "int" - } - ] -} ----- - -If you build the project with: - -include::includes/devtools/build.adoc[] - -the `movies.avsc` will get compiled to a `Movie.java` file -placed in the `target/generated-sources/avsc` directory. - -Take a look at the https://avro.apache.org/docs/current/spec.html#schemas[Avro specification] to learn more about -the Avro syntax and supported types. - -TIP: With Quarkus, there's no need to use a specific Maven plugin to process the Avro schema, this is all done for you by the `quarkus-avro` extension! - -If you run the project with: - -include::includes/devtools/dev.adoc[] - -the changes you do to the schema file will be -automatically applied to the generated Java files. - -== The `Movie` producer - -Having defined the schema, we can now jump to implementing the `MovieResource`. - -Let's open the `MovieResource`, inject an https://quarkus.io/blog/reactive-messaging-emitter/[`Emitter`] of `Movie` DTO and implement a `@POST` method -that consumes `Movie` and sends it through the `Emitter`: - -[source,java] ----- -package org.acme.kafka; - -import org.acme.kafka.quarkus.Movie; -import org.eclipse.microprofile.reactive.messaging.Channel; -import org.eclipse.microprofile.reactive.messaging.Emitter; -import org.jboss.logging.Logger; - -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.core.Response; - -@Path("/movies") -public class MovieResource { - private static final Logger LOGGER = Logger.getLogger(MovieResource.class); - - @Channel("movies") - Emitter emitter; - - @POST - public Response enqueueMovie(Movie movie) { - LOGGER.infof("Sending movie %s to Kafka", movie.getTitle()); - emitter.send(movie); - return Response.accepted().build(); - } - -} ----- - -Now, we need to _map_ the `movies` channel (the `Emitter` emits to this channel) to a Kafka topic. -To achieve this, edit the `application.properties` file, and add the following content: - -[source,properties] ----- -# set the connector for the outgoing channel to `smallrye-kafka` -mp.messaging.outgoing.movies.connector=smallrye-kafka - -# set the topic name for the channel to `movies` -mp.messaging.outgoing.movies.topic=movies - -# automatically register the schema with the registry, if not present -mp.messaging.outgoing.movies.apicurio.registry.auto-register=true ----- - -[TIP] -==== -You might have noticed that we didn't define the `value.serializer`. -That's because Quarkus can xref:kafka.adoc#serialization-autodetection[autodetect] that `io.apicurio.registry.serde.avro.AvroKafkaSerializer` is appropriate here, based on the `@Channel` declaration, structure of the `Movie` type, and presence of the Apicurio Registry libraries. -We still have to define the `apicurio.registry.auto-register` property. - -If you use Confluent Schema Registry, you don't have to configure `value.serializer` either. -It is also detected automatically. -The Confluent Schema Registry analogue of `apicurio.registry.auto-register` is called `auto.register.schemas`. -It defaults to `true`, so it doesn't have to be configured in this example. -It can be explicitly set to `false` if you want to disable automatic schema registration. -==== - -== The `Movie` consumer - -So, we can write records into Kafka containing our `Movie` data. -That data is serialized using Avro. -Now, it's time to implement a consumer for them. - -Let's create `ConsumedMovieResource` that will consume `Movie` messages -from the `movies-from-kafka` channel and will expose it via Server-Sent Events: - -[source,java] ----- -package org.acme.kafka; - -import javax.enterprise.context.ApplicationScoped; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.acme.kafka.quarkus.Movie; -import org.eclipse.microprofile.reactive.messaging.Channel; -import org.jboss.resteasy.reactive.RestSseElementType; - -import io.smallrye.mutiny.Multi; - -@ApplicationScoped -@Path("/consumed-movies") -public class ConsumedMovieResource { - - @Channel("movies-from-kafka") - Multi movies; - - @GET - @Produces(MediaType.SERVER_SENT_EVENTS) - @RestSseElementType(MediaType.TEXT_PLAIN) - public Multi stream() { - return movies.map(movie -> String.format("'%s' from %s", movie.getTitle(), movie.getYear())); - } -} ----- - -The last bit of the application's code is the configuration of the `movies-from-kafka` channel in -`application.properties`: - -[source,properties] ----- -# set the connector for the incoming channel to `smallrye-kafka` -mp.messaging.incoming.movies-from-kafka.connector=smallrye-kafka - -# set the topic name for the channel to `movies` -mp.messaging.incoming.movies-from-kafka.topic=movies - -# disable auto-commit, Reactive Messaging handles it itself -mp.messaging.incoming.movies-from-kafka.enable.auto.commit=false - -mp.messaging.incoming.movies-from-kafka.auto.offset.reset=earliest ----- - -[TIP] -==== -You might have noticed that we didn't define the `value.deserializer`. -That's because Quarkus can xref:kafka.adoc#serialization-autodetection[autodetect] that `io.apicurio.registry.serde.avro.AvroKafkaDeserializer` is appropriate here, based on the `@Channel` declaration, structure of the `Movie` type, and presence of the Apicurio Registry libraries. -We don't have to define the `apicurio.registry.use-specific-avro-reader` property either, that is also configured automatically. - -If you use Confluent Schema Registry, you don't have to configure `value.deserializer` or `specific.avro.reader` either. -They are both detected automatically. -==== - -== Running the application - -Start the application in dev mode: - -include::includes/devtools/dev.adoc[] - -Kafka broker and Apicurio Registry instance are started automatically thanks to Dev Services. -See xref:kafka-dev-services.adoc[Dev Services for Kafka] and xref:apicurio-registry-dev-services.adoc[Dev Services for Apicurio Registry] for more details. - -[TIP] -==== -You might have noticed that we didn't configure the schema registry URL anywhere. -This is because Dev Services for Apicurio Registry configures all Kafka channels in SmallRye Reactive Messaging to use the automatically started registry instance. - -There's no Dev Services support for Confluent Schema Registry. -If you want to use a running instance of Confluent Schema Registry, configure its URL, together with the URL of a Kafka broker: - -[source,properties] ----- -kafka.bootstrap.servers=PLAINTEXT://localhost:9092 -mp.messaging.connector.smallrye-kafka.schema.registry.url=http://localhost:8081 ----- -==== - -In the second terminal, query the `ConsumedMovieResource` resource with `curl`: - -[source,bash] ----- -curl -N http://localhost:8080/consumed-movies ----- - -In the third one, post a few movies: - -[source,bash] ----- -curl --header "Content-Type: application/json" \ - --request POST \ - --data '{"title":"The Shawshank Redemption","year":1994}' \ - http://localhost:8080/movies - -curl --header "Content-Type: application/json" \ - --request POST \ - --data '{"title":"The Godfather","year":1972}' \ - http://localhost:8080/movies - -curl --header "Content-Type: application/json" \ - --request POST \ - --data '{"title":"The Dark Knight","year":2008}' \ - http://localhost:8080/movies - -curl --header "Content-Type: application/json" \ - --request POST \ - --data '{"title":"12 Angry Men","year":1957}' \ - http://localhost:8080/movies ----- - -Observe what is printed in the second terminal. You should see something along the lines of: - -[source] ----- -data:'The Shawshank Redemption' from 1994 - -data:'The Godfather' from 1972 - -data:'The Dark Knight' from 2008 - -data:'12 Angry Men' from 1957 ----- - -== Running in JVM or Native mode - -When not running in dev or test mode, you will need to start your own Kafka broker and Apicurio Registry. -The easiest way to get them running is to use `docker-compose` to start the appropriate containers. - -TIP: If you use Confluent Schema Registry, you already have a Kafka broker and Confluent Schema Registry instance running and configured. -You can ignore the `docker-compose` instructions here, as well as the Apicurio Registry configuration. - -Create a `docker-compose.yaml` file at the root of the project with the following content: - -[source,yaml] ----- -version: '2' - -services: - - zookeeper: - image: quay.io/strimzi/kafka:0.22.1-kafka-2.7.0 - command: [ - "sh", "-c", - "bin/zookeeper-server-start.sh config/zookeeper.properties" - ] - ports: - - "2181:2181" - environment: - LOG_DIR: /tmp/logs - - kafka: - image: quay.io/strimzi/kafka:0.22.1-kafka-2.7.0 - command: [ - "sh", "-c", - "bin/kafka-server-start.sh config/server.properties --override listeners=$${KAFKA_LISTENERS} --override advertised.listeners=$${KAFKA_ADVERTISED_LISTENERS} --override zookeeper.connect=$${KAFKA_ZOOKEEPER_CONNECT}" - ] - depends_on: - - zookeeper - ports: - - "9092:9092" - environment: - LOG_DIR: "/tmp/logs" - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 - KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 - KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 - - schema-registry: - image: apicurio/apicurio-registry-mem:2.1.5.Final - ports: - - 8081:8080 - depends_on: - - kafka - environment: - QUARKUS_PROFILE: prod ----- - -Before starting the application, let's first start the Kafka broker and Apicurio Registry: - -[source,bash] ----- -docker-compose up ----- - -NOTE: To stop the containers, use `docker-compose down`. You can also clean up -the containers with `docker-compose rm` - -You can build the application with: - -include::includes/devtools/build.adoc[] - -And run it in JVM mode with: - -[source, bash] ----- -java -Dmp.messaging.connector.smallrye-kafka.apicurio.registry.url=http://localhost:8081/apis/registry/v2 -jar target/quarkus-app/quarkus-run.jar ----- - -NOTE: By default, the application tries to connect to a Kafka broker listening at `localhost:9092`. -You can configure the bootstrap server using: `java -Dkafka.bootstrap.servers=\... -jar target/quarkus-app/quarkus-run.jar` - -Specifying the registry URL on the command line is not very convenient, so you can add a configuration property only for the `prod` profile: - -[source,properties] ----- -%prod.mp.messaging.connector.smallrye-kafka.apicurio.registry.url=http://localhost:8081/apis/registry/v2 ----- - -You can build a native executable with: - -include::includes/devtools/build-native.adoc[] - -and run it with: - -[source,bash] ----- -./target/kafka-avro-schema-quickstart-1.0.0-SNAPSHOT-runner -Dkafka.bootstrap.servers=localhost:9092 ----- - -== Testing the application - -As mentioned above, Dev Services for Kafka and Apicurio Registry automatically start and configure a Kafka broker and Apicurio Registry instance in dev mode and for tests. -Hence, we don't have to set up Kafka and Apicurio Registry ourselves. -We can just focus on writing the test. - -First, let's add test dependencies on REST Client and Awaitility to the build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - - io.quarkus - quarkus-rest-client-reactive - test - - - org.awaitility - awaitility - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-rest-client-reactive") -testImplementation("org.awaitility:awaitility") ----- - -In the test, we will send movies in a loop and check if the `ConsumedMovieResource` returns -what we send. - -[source,java] ----- -package org.acme.kafka; - -import io.quarkus.test.common.QuarkusTestResource; -import io.quarkus.test.common.http.TestHTTPResource; -import io.quarkus.test.junit.QuarkusTest; -import io.restassured.http.ContentType; -import org.hamcrest.Matchers; -import org.junit.jupiter.api.Test; - -import javax.ws.rs.client.Client; -import javax.ws.rs.client.ClientBuilder; -import javax.ws.rs.client.WebTarget; -import javax.ws.rs.sse.SseEventSource; -import java.net.URI; -import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -import static io.restassured.RestAssured.given; -import static java.util.concurrent.TimeUnit.MILLISECONDS; -import static java.util.concurrent.TimeUnit.SECONDS; -import static org.awaitility.Awaitility.await; -import static org.hamcrest.MatcherAssert.assertThat; - -@QuarkusTest -public class MovieResourceTest { - - @TestHTTPResource("/consumed-movies") - URI consumedMovies; - - @Test - public void testHelloEndpoint() throws InterruptedException { - // create a client for `ConsumedMovieResource` and collect the consumed resources in a list - Client client = ClientBuilder.newClient(); - WebTarget target = client.target(consumedMovies); - - List received = new CopyOnWriteArrayList<>(); - - SseEventSource source = SseEventSource.target(target).build(); - source.register(inboundSseEvent -> received.add(inboundSseEvent.readData())); - - // in a separate thread, feed the `MovieResource` - ExecutorService movieSender = startSendingMovies(); - - source.open(); - - // check if, after at most 5 seconds, we have at least 2 items collected, and they are what we expect - await().atMost(5, SECONDS).until(() -> received.size() >= 2); - assertThat(received, Matchers.hasItems("'The Shawshank Redemption' from 1994", - "'12 Angry Men' from 1957")); - source.close(); - - // shutdown the executor that is feeding the `MovieResource` - movieSender.shutdownNow(); - movieSender.awaitTermination(5, SECONDS); - } - - private ExecutorService startSendingMovies() { - ExecutorService executorService = Executors.newSingleThreadExecutor(); - executorService.execute(() -> { - while (true) { - given() - .contentType(ContentType.JSON) - .body("{\"title\":\"The Shawshank Redemption\",\"year\":1994}") - .when() - .post("/movies") - .then() - .statusCode(202); - - given() - .contentType(ContentType.JSON) - .body("{\"title\":\"12 Angry Men\",\"year\":1957}") - .when() - .post("/movies") - .then() - .statusCode(202); - - try { - Thread.sleep(200L); - } catch (InterruptedException e) { - break; - } - } - }); - return executorService; - } - -} ----- - -NOTE: We modified the `MovieResourceTest` that was generated together with the project. This test class has a -subclass, `NativeMovieResourceIT`, that runs the same test against the native executable. -To run it, execute: - -include::includes/devtools/build-native.adoc[] - -=== Manual setup - -If we couldn't use Dev Services and wanted to start a Kafka broker and Apicurio Registry instance manually, we would define a xref:getting-started-testing.adoc#quarkus-test-resource[QuarkusTestResourceLifecycleManager]. - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.strimzi - strimzi-test-container - 0.22.1 - test - - - org.apache.logging.log4j - log4j-core - - - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.strimzi:strimzi-test-container:0.22.1") { - exclude group: "org.apache.logging.log4j", module: "log4j-core" -} ----- - -[source,java] ----- -package org.acme.kafka; - -import java.util.HashMap; -import java.util.Map; - -import org.testcontainers.containers.GenericContainer; - -import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; -import io.strimzi.StrimziKafkaContainer; - -public class KafkaAndSchemaRegistryTestResource implements QuarkusTestResourceLifecycleManager { - - private final StrimziKafkaContainer kafka = new StrimziKafkaContainer(); - - private GenericContainer registry; - - @Override - public Map start() { - kafka.start(); - registry = new GenericContainer<>("apicurio/apicurio-registry-mem:2.1.5.Final") - .withExposedPorts(8080) - .withEnv("QUARKUS_PROFILE", "prod"); - registry.start(); - Map properties = new HashMap<>(); - properties.put("mp.messaging.connector.smallrye-kafka.apicurio.registry.url", - "http://" + registry.getContainerIpAddress() + ":" + registry.getMappedPort(8080) + "/apis/registry/v2"); - properties.put("kafka.bootstrap.servers", kafka.getBootstrapServers()); - return properties; - } - - @Override - public void stop() { - registry.stop(); - kafka.stop(); - } -} ----- - -[source,java] ----- -@QuarkusTest -@QuarkusTestResource(KafkaAndSchemaRegistryTestResource.class) -public class MovieResourceTest { - ... -} ----- - -== Avro code generation details - -In this guide we used the Quarkus code generation mechanism to generate Java files -from Avro schema. - -Under the hood, the mechanism uses `org.apache.avro:avro-compiler`. - -You can use the following configuration properties to alter how it works: - -- `avro.codegen.[avsc|avdl|avpr].imports` - a list of files or directories that should be compiled first thus making them -importable by subsequently compiled schemas. Note that imported files should not reference each other. All paths should be relative -to the `src/[main|test]/avro` directory. Passed as a comma-separated list. -- `avro.codegen.stringType` - the Java type to use for Avro strings. May be one of `CharSequence`, `String` or -`Utf8`. Defaults to `String` -- `avro.codegen.createOptionalGetters` - enables generating the `getOptional...` -methods that return an Optional of the requested type. Defaults to `false` -- `avro.codegen.enableDecimalLogicalType` - determines whether to use Java classes for decimal types, defaults to `false` -- `avro.codegen.createSetters` - determines whether to create setters for the fields of the record. -Defaults to `false` -- `avro.codegen.gettersReturnOptional` - enables generating `get...` methods that -return an Optional of the requested type. Defaults to `false` -- `avro.codegen.optionalGettersForNullableFieldsOnly`, works in conjunction with `gettersReturnOptional` option. -If it is set, `Optional` getters will be generated only for fields that are nullable. If the field is mandatory, -regular getter will be generated. Defaults to `false` - -== Further reading - -* link:https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/2.9/kafka/kafka.html[SmallRye Reactive Messaging Kafka] documentation -* link:https://quarkus.io/blog/kafka-avro/[How to Use Kafka, Schema Registry and Avro with Quarkus] - a blog post on which -the guide is based. It gives a good introduction to Avro and the concept of schema registry diff --git a/_versions/2.7/guides/kafka-streams.adoc b/_versions/2.7/guides/kafka-streams.adoc deleted file mode 100644 index 84d9f09bab0..00000000000 --- a/_versions/2.7/guides/kafka-streams.adoc +++ /dev/null @@ -1,1252 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Apache Kafka Streams - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can utilize the Apache Kafka Streams API to implement stream processing applications based on Apache Kafka. - -== Prerequisites - -:prerequisites-time: 30 minutes -:prerequisites-docker-compose: -include::includes/devtools/prerequisites.adoc[] - -It is recommended, that you have read the {quickstarts-tree-url}/kafka-quickstart[Kafka quickstart] before. - -[NOTE] -==== -The Quarkus extension for Kafka Streams allows for very fast turnaround times during development by supporting the Quarkus Dev Mode (e.g. via `./mvnw compile quarkus:dev`). -After changing the code of your Kafka Streams topology, the application will automatically be reloaded when the next input message arrives. - -A recommended development set-up is to have some producer which creates test messages on the processed topic(s) in fixed intervals, e.g. every second and observe the streaming application's output topic(s) using a tool such as `kafkacat`. -Using the dev mode, you'll instantly see messages on the output topic(s) as produced by the latest version of your streaming application when saving. - -For the best development experience, we recommend applying the following configuration settings to your Kafka broker: - -[source,properties,subs=attributes+] ----- -group.min.session.timeout.ms=250 ----- - -Also specify the following settings in your Quarkus `application.properties`: - -[source,properties,subs=attributes+] ----- -kafka-streams.consumer.session.timeout.ms=250 -kafka-streams.consumer.heartbeat.interval.ms=200 ----- - -Together, these settings will ensure that the application can very quickly reconnect to the broker after being restarted in dev mode. -==== - -== Architecture - -In this guide, we are going to generate (random) temperature values in one component (named `generator`). -These values are associated to given weather stations and are written in a Kafka topic (`temperature-values`). -Another topic (`weather-stations`) contains just the main data about the weather stations themselves (id and name). - -A second component (`aggregator`) reads from the two Kafka topics and processes them in a streaming pipeline: - -* the two topics are joined on weather station id -* per weather station the min, max and average temperature is determined -* this aggregated data is written out to a third topic (`temperatures-aggregated`) - -The data can be examined by inspecting the output topic. -By exposing a Kafka Streams https://kafka.apache.org/22/documentation/streams/developer-guide/interactive-queries.html[interactive query], -the latest result for each weather station can alternatively be obtained via a simple REST query. - -The overall architecture looks like so: - -image::kafka-streams-guide-architecture.png[alt=Architecture, align=center, width=90%] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `kafka-streams-quickstart` {quickstarts-tree-url}/kafka-streams-quickstart[directory]. - -== Creating the Producer Maven Project - -First, we need a new project with the temperature value producer. -Create a new project with the following command: - -:create-app-artifact-id: kafka-streams-quickstart-producer -:create-app-extensions: kafka -:create-app-post-command: mv kafka-streams-quickstart-producer producer -include::includes/devtools/create-app.adoc[] - -This command generates a Maven project, importing the Reactive Messaging and Kafka connector extensions. - -If you already have your Quarkus project configured, you can add the `smallrye-reactive-messaging-kafka` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: quarkus-smallrye-reactive-messaging-kafka -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-reactive-messaging-kafka - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-reactive-messaging-kafka") ----- - -=== The Temperature Value Producer - -Create the `producer/src/main/java/org/acme/kafka/streams/producer/generator/ValuesGenerator.java` file, -with the following content: - -[source, java] ----- -package org.acme.kafka.streams.producer.generator; - -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.time.Duration; -import java.time.Instant; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Random; - -import javax.enterprise.context.ApplicationScoped; - -import io.smallrye.mutiny.Multi; -import io.smallrye.reactive.messaging.kafka.Record; -import org.eclipse.microprofile.reactive.messaging.Outgoing; -import org.jboss.logging.Logger; - -/** - * A bean producing random temperature data every second. - * The values are written to a Kafka topic (temperature-values). - * Another topic contains the name of weather stations (weather-stations). - * The Kafka configuration is specified in the application configuration. - */ -@ApplicationScoped -public class ValuesGenerator { - - private static final Logger LOG = Logger.getLogger(ValuesGenerator.class); - - private Random random = new Random(); - - private List stations = List.of( - new WeatherStation(1, "Hamburg", 13), - new WeatherStation(2, "Snowdonia", 5), - new WeatherStation(3, "Boston", 11), - new WeatherStation(4, "Tokio", 16), - new WeatherStation(5, "Cusco", 12), - new WeatherStation(6, "Svalbard", -7), - new WeatherStation(7, "Porthsmouth", 11), - new WeatherStation(8, "Oslo", 7), - new WeatherStation(9, "Marrakesh", 20)); - - @Outgoing("temperature-values") // <1> - public Multi> generate() { - return Multi.createFrom().ticks().every(Duration.ofMillis(500)) // <2> - .onOverflow().drop() - .map(tick -> { - WeatherStation station = stations.get(random.nextInt(stations.size())); - double temperature = BigDecimal.valueOf(random.nextGaussian() * 15 + station.averageTemperature) - .setScale(1, RoundingMode.HALF_UP) - .doubleValue(); - - LOG.infov("station: {0}, temperature: {1}", station.name, temperature); - return Record.of(station.id, Instant.now() + ";" + temperature); - }); - } - - @Outgoing("weather-stations") // <3> - public Multi> weatherStations() { - return Multi.createFrom().items(stations.stream() - .map(s -> Record.of( - s.id, - "{ \"id\" : " + s.id + - ", \"name\" : \"" + s.name + "\" }")) - ); - } - - private static class WeatherStation { - - int id; - String name; - int averageTemperature; - - public WeatherStation(int id, String name, int averageTemperature) { - this.id = id; - this.name = name; - this.averageTemperature = averageTemperature; - } - } -} ----- -<1> Instruct Reactive Messaging to dispatch the items from the returned `Multi` to `temperature-values`. -<2> The method returns a Mutiny _stream_ (`Multi`) emitting a random temperature value every 0.5 seconds. -<3> Instruct Reactive Messaging to dispatch the items from the returned `Multi` (static list of weather stations) to `weather-stations`. - -The two methods each return a _reactive stream_ whose items are sent to the streams named `temperature-values` and `weather-stations`, respectively. - -=== Topic Configuration - -The two channels are mapped to Kafka topics using the Quarkus configuration file `application.properties`. -For that, add the following to the file `producer/src/main/resources/application.properties`: - -[source,properties] ----- -# Configure the Kafka broker location -kafka.bootstrap.servers=localhost:9092 - -mp.messaging.outgoing.temperature-values.connector=smallrye-kafka -mp.messaging.outgoing.temperature-values.key.serializer=org.apache.kafka.common.serialization.IntegerSerializer -mp.messaging.outgoing.temperature-values.value.serializer=org.apache.kafka.common.serialization.StringSerializer - -mp.messaging.outgoing.weather-stations.connector=smallrye-kafka -mp.messaging.outgoing.weather-stations.key.serializer=org.apache.kafka.common.serialization.IntegerSerializer -mp.messaging.outgoing.weather-stations.value.serializer=org.apache.kafka.common.serialization.StringSerializer ----- - -This configures the Kafka bootstrap server, the two topics and the corresponding (de-)serializers. -More details about the different configuration options are available on the https://kafka.apache.org/documentation/#producerconfigs[Producer configuration] and https://kafka.apache.org/documentation/#consumerconfigs[Consumer configuration] section from the Kafka documentation. - -== Creating the Aggregator Maven Project - -With the producer application in place, it's time to implement the actual aggregator application, -which will run the Kafka Streams pipeline. -Create another project like so: - -:create-app-artifact-id: kafka-streams-quickstart-aggregator -:create-app-extensions: kafka-streams,resteasy-jackson -:create-app-post-command: mv kafka-streams-quickstart-aggregator aggregator -include::includes/devtools/create-app.adoc[] - -This creates the `aggregator` project with the Quarkus extension for Kafka Streams and with RESTEasy support for Jackson. - -If you already have your Quarkus project configured, you can add the `kafka-streams` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: kafka-streams -include::includes/devtools/extension-add.adoc[] - -This will add the following to your `pom.xml`: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-kafka-streams - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-kafka-streams") ----- - -=== The Pipeline Implementation - -Let's begin the implementation of the stream processing application by creating -a few value objects for representing temperature measurements, weather stations and for keeping track of aggregated values. - -First, create the file `aggregator/src/main/java/org/acme/kafka/streams/aggregator/model/WeatherStation.java`, -representing a weather station, with the following content: - -[source, java] ----- -package org.acme.kafka.streams.aggregator.model; - -import io.quarkus.runtime.annotations.RegisterForReflection; - -@RegisterForReflection // <1> -public class WeatherStation { - - public int id; - public String name; -} ----- -<1> The `@RegisterForReflection` annotation instructs Quarkus to keep the class and its members during the native compilation. More details about the `@RegisterForReflection` annotation can be found on the xref:writing-native-applications-tips.adoc#registerForReflection[native application tips] page. - -Then the file `aggregator/src/main/java/org/acme/kafka/streams/aggregator/model/TemperatureMeasurement.java`, -representing temperature measurements for a given station: - -[source, java] ----- -package org.acme.kafka.streams.aggregator.model; - -import java.time.Instant; - -public class TemperatureMeasurement { - - public int stationId; - public String stationName; - public Instant timestamp; - public double value; - - public TemperatureMeasurement(int stationId, String stationName, Instant timestamp, - double value) { - this.stationId = stationId; - this.stationName = stationName; - this.timestamp = timestamp; - this.value = value; - } -} ----- - -And finally `aggregator/src/main/java/org/acme/kafka/streams/aggregator/model/Aggregation.java`, -which will be used to keep track of the aggregated values while the events are processed in the streaming pipeline: - -[source, java] ----- -package org.acme.kafka.streams.aggregator.model; - -import java.math.BigDecimal; -import java.math.RoundingMode; - -import io.quarkus.runtime.annotations.RegisterForReflection; - -@RegisterForReflection -public class Aggregation { - - public int stationId; - public String stationName; - public double min = Double.MAX_VALUE; - public double max = Double.MIN_VALUE; - public int count; - public double sum; - public double avg; - - public Aggregation updateFrom(TemperatureMeasurement measurement) { - stationId = measurement.stationId; - stationName = measurement.stationName; - - count++; - sum += measurement.value; - avg = BigDecimal.valueOf(sum / count) - .setScale(1, RoundingMode.HALF_UP).doubleValue(); - - min = Math.min(min, measurement.value); - max = Math.max(max, measurement.value); - - return this; - } -} ----- - -Next, let's create the actual streaming query implementation itself in the `aggregator/src/main/java/org/acme/kafka/streams/aggregator/streams/TopologyProducer.java` file. -All we need to do for that is to declare a CDI producer method which returns the Kafka Streams `Topology`; -the Quarkus extension will take care of configuring, starting and stopping the actual Kafka Streams engine. - -[source, java] ----- -package org.acme.kafka.streams.aggregator.streams; - -import java.time.Instant; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.inject.Produces; - -import org.acme.kafka.streams.aggregator.model.Aggregation; -import org.acme.kafka.streams.aggregator.model.TemperatureMeasurement; -import org.acme.kafka.streams.aggregator.model.WeatherStation; -import org.apache.kafka.common.serialization.Serdes; -import org.apache.kafka.streams.StreamsBuilder; -import org.apache.kafka.streams.Topology; -import org.apache.kafka.streams.kstream.Consumed; -import org.apache.kafka.streams.kstream.GlobalKTable; -import org.apache.kafka.streams.kstream.Materialized; -import org.apache.kafka.streams.kstream.Produced; -import org.apache.kafka.streams.state.KeyValueBytesStoreSupplier; -import org.apache.kafka.streams.state.Stores; - -import io.quarkus.kafka.client.serialization.ObjectMapperSerde; - -@ApplicationScoped -public class TopologyProducer { - - static final String WEATHER_STATIONS_STORE = "weather-stations-store"; - - private static final String WEATHER_STATIONS_TOPIC = "weather-stations"; - private static final String TEMPERATURE_VALUES_TOPIC = "temperature-values"; - private static final String TEMPERATURES_AGGREGATED_TOPIC = "temperatures-aggregated"; - - @Produces - public Topology buildTopology() { - StreamsBuilder builder = new StreamsBuilder(); - - ObjectMapperSerde weatherStationSerde = new ObjectMapperSerde<>( - WeatherStation.class); - ObjectMapperSerde aggregationSerde = new ObjectMapperSerde<>(Aggregation.class); - - KeyValueBytesStoreSupplier storeSupplier = Stores.persistentKeyValueStore( - WEATHER_STATIONS_STORE); - - GlobalKTable stations = builder.globalTable( // <1> - WEATHER_STATIONS_TOPIC, - Consumed.with(Serdes.Integer(), weatherStationSerde)); - - builder.stream( // <2> - TEMPERATURE_VALUES_TOPIC, - Consumed.with(Serdes.Integer(), Serdes.String()) - ) - .join( // <3> - stations, - (stationId, timestampAndValue) -> stationId, - (timestampAndValue, station) -> { - String[] parts = timestampAndValue.split(";"); - return new TemperatureMeasurement(station.id, station.name, - Instant.parse(parts[0]), Double.valueOf(parts[1])); - } - ) - .groupByKey() // <4> - .aggregate( // <5> - Aggregation::new, - (stationId, value, aggregation) -> aggregation.updateFrom(value), - Materialized. as(storeSupplier) - .withKeySerde(Serdes.Integer()) - .withValueSerde(aggregationSerde) - ) - .toStream() - .to( // <6> - TEMPERATURES_AGGREGATED_TOPIC, - Produced.with(Serdes.Integer(), aggregationSerde) - ); - - return builder.build(); - } -} ----- -<1> The `weather-stations` table is read into a `GlobalKTable`, representing the current state of each weather station -<2> The `temperature-values` topic is read into a `KStream`; whenever a new message arrives to this topic, the pipeline will be processed for this measurement -<3> The message from the `temperature-values` topic is joined with the corresponding weather station, using the topic's key (weather station id); the join result contains the data from the measurement and associated weather station message -<4> The values are grouped by message key (the weather station id) -<5> Within each group, all the measurements of that station are aggregated, by keeping track of minimum and maximum values and calculating the average value of all measurements of that station (see the `Aggregation` type) -<6> The results of the pipeline are written out to the `temperatures-aggregated` topic - -The Kafka Streams extension is configured via the Quarkus configuration file `application.properties`. -Create the file `aggregator/src/main/resources/application.properties` with the following contents: - -[source] ----- -quarkus.kafka-streams.bootstrap-servers=localhost:9092 -quarkus.kafka-streams.application-server=${hostname}:8080 -quarkus.kafka-streams.topics=weather-stations,temperature-values - -# pass-through options -kafka-streams.cache.max.bytes.buffering=10240 -kafka-streams.commit.interval.ms=1000 -kafka-streams.metadata.max.age.ms=500 -kafka-streams.auto.offset.reset=earliest -kafka-streams.metrics.recording.level=DEBUG ----- - -The options with the `quarkus.kafka-streams` prefix can be changed dynamically at application startup, -e.g. via environment variables or system properties. -`bootstrap-servers` and `application-server` are mapped to the Kafka Streams properties `bootstrap.servers` and `application.server`, respectively. -`topics` is specific to Quarkus: the application will wait for all the given topics to exist before launching the Kafka Streams engine. -This is to done to gracefully await the creation of topics that don't yet exist at application startup time. - -TIP: Alternatively, you can use `kafka.bootstrap.servers` instead of `quarkus.kafka-streams.bootstrap-servers` as you did in the _generator_ project above. - -All the properties within the `kafka-streams` namespace are passed through as-is to the Kafka Streams engine. -Changing their values requires a rebuild of the application. - -== Building and Running the Applications - -We now can build the `producer` and `aggregator` applications: - -[source,bash,subs=attributes+] ----- -./mvnw clean package -f producer/pom.xml -./mvnw clean package -f aggregator/pom.xml ----- - -Instead of running them directly on the host machine using the Quarkus dev mode, -we're going to package them into container images and launch them via Docker Compose. -This is done in order to demonstrate scaling the `aggregator` aggregation to multiple nodes later on. - -The `Dockerfile` created by Quarkus by default needs one adjustment for the `aggregator` application in order to run the Kafka Streams pipeline. -To do so, edit the file `aggregator/src/main/docker/Dockerfile.jvm` and replace the line `FROM fabric8/java-alpine-openjdk8-jre` with `FROM fabric8/java-centos-openjdk8-jdk`. - -Next create a Docker Compose file (`docker-compose.yaml`) for spinning up the two applications as well as Apache Kafka and ZooKeeper like so: - -[source, yaml] ----- -version: '3.5' - -services: - zookeeper: - image: strimzi/kafka:0.19.0-kafka-2.5.0 - command: [ - "sh", "-c", - "bin/zookeeper-server-start.sh config/zookeeper.properties" - ] - ports: - - "2181:2181" - environment: - LOG_DIR: /tmp/logs - networks: - - kafkastreams-network - kafka: - image: strimzi/kafka:0.19.0-kafka-2.5.0 - command: [ - "sh", "-c", - "bin/kafka-server-start.sh config/server.properties --override listeners=$${KAFKA_LISTENERS} --override advertised.listeners=$${KAFKA_ADVERTISED_LISTENERS} --override zookeeper.connect=$${KAFKA_ZOOKEEPER_CONNECT} --override num.partitions=$${KAFKA_NUM_PARTITIONS}" - ] - depends_on: - - zookeeper - ports: - - "9092:9092" - environment: - LOG_DIR: "/tmp/logs" - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 - KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 - KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 - KAFKA_NUM_PARTITIONS: 3 - networks: - - kafkastreams-network - - producer: - image: quarkus-quickstarts/kafka-streams-producer:1.0 - build: - context: producer - dockerfile: src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm} - environment: - KAFKA_BOOTSTRAP_SERVERS: kafka:9092 - networks: - - kafkastreams-network - - aggregator: - image: quarkus-quickstarts/kafka-streams-aggregator:1.0 - build: - context: aggregator - dockerfile: src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm} - environment: - QUARKUS_KAFKA_STREAMS_BOOTSTRAP_SERVERS: kafka:9092 - networks: - - kafkastreams-network - -networks: - kafkastreams-network: - name: ks ----- - -To launch all the containers, building the `producer` and `aggregator` container images, -run `docker-compose up --build`. - -TIP: Instead of `QUARKUS_KAFKA_STREAMS_BOOTSTRAP_SERVERS`, you can use `KAFKA_BOOTSTRAP_SERVERS`. - -You should see log statements from the `producer` application about messages being sent to the "temperature-values" topic. - -Now run an instance of the _debezium/tooling_ image, attaching to the same network all the other containers run in. -This image provides several useful tools such as _kafkacat_ and _httpie_: - -[source,bash,subs=attributes+] ----- -docker run --tty --rm -i --network ks debezium/tooling:1.1 ----- - -Within the tooling container, run _kafkacat_ to examine the results of the streaming pipeline: - -[source,subs=attributes+] ----- -kafkacat -b kafka:9092 -C -o beginning -q -t temperatures-aggregated - -{"avg":34.7,"count":4,"max":49.4,"min":16.8,"stationId":9,"stationName":"Marrakesh","sum":138.8} -{"avg":15.7,"count":1,"max":15.7,"min":15.7,"stationId":2,"stationName":"Snowdonia","sum":15.7} -{"avg":12.8,"count":7,"max":25.5,"min":-13.8,"stationId":7,"stationName":"Porthsmouth","sum":89.7} -... ----- - -You should see new values arrive as the producer continues to emit temperature measurements, -each value on the outbound topic showing the minimum, maximum and average temperature values of the represented weather station. - -== Interactive Queries - -Subscribing to the `temperatures-aggregated` topic is a great way to react to any new temperature values. -It's a bit wasteful though if you're just interested in the latest aggregated value for a given weather station. -This is where Kafka Streams interactive queries shine: -they let you directly query the underlying state store of the pipeline for the value associated to a given key. -By exposing a simple REST endpoint which queries the state store, -the latest aggregation result can be retrieved without having to subscribe to any Kafka topic. - -Let's begin by creating a new class `InteractiveQueries` in the file `aggregator/src/main/java/org/acme/kafka/streams/aggregator/streams/InteractiveQueries.java`: - -one more method to the `KafkaStreamsPipeline` class which obtains the current state for a given key: - -[source, java] ----- -package org.acme.kafka.streams.aggregator.streams; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; - -import org.acme.kafka.streams.aggregator.model.Aggregation; -import org.acme.kafka.streams.aggregator.model.WeatherStationData; -import org.apache.kafka.streams.KafkaStreams; -import org.apache.kafka.streams.errors.InvalidStateStoreException; -import org.apache.kafka.streams.state.QueryableStoreTypes; -import org.apache.kafka.streams.state.ReadOnlyKeyValueStore; - -@ApplicationScoped -public class InteractiveQueries { - - @Inject - KafkaStreams streams; - - public GetWeatherStationDataResult getWeatherStationData(int id) { - Aggregation result = getWeatherStationStore().get(id); - - if (result != null) { - return GetWeatherStationDataResult.found(WeatherStationData.from(result)); // <1> - } - else { - return GetWeatherStationDataResult.notFound(); // <2> - } - } - - private ReadOnlyKeyValueStore getWeatherStationStore() { - while (true) { - try { - return streams.store(TopologyProducer.WEATHER_STATIONS_STORE, QueryableStoreTypes.keyValueStore()); - } catch (InvalidStateStoreException e) { - // ignore, store not ready yet - } - } - } -} ----- -<1> A value for the given station id was found, so that value will be returned -<2> No value was found, either because a non-existing station was queried or no measurement exists yet for the given station - -Also create the method's return type in the file `aggregator/src/main/java/org/acme/kafka/streams/aggregator/streams/GetWeatherStationDataResult.java`: - -[source, java] ----- -package org.acme.kafka.streams.aggregator.streams; - -import java.util.Optional; -import java.util.OptionalInt; - -import org.acme.kafka.streams.aggregator.model.WeatherStationData; - -public class GetWeatherStationDataResult { - - private static GetWeatherStationDataResult NOT_FOUND = - new GetWeatherStationDataResult(null); - - private final WeatherStationData result; - - private GetWeatherStationDataResult(WeatherStationData result) { - this.result = result; - } - - public static GetWeatherStationDataResult found(WeatherStationData data) { - return new GetWeatherStationDataResult(data); - } - - public static GetWeatherStationDataResult notFound() { - return NOT_FOUND; - } - - public Optional getResult() { - return Optional.ofNullable(result); - } -} ----- - -Also create `aggregator/src/main/java/org/acme/kafka/streams/aggregator/model/WeatherStationData.java`, -which represents the actual aggregation result for a weather station: - -[source, java] ----- -package org.acme.kafka.streams.aggregator.model; - -import io.quarkus.runtime.annotations.RegisterForReflection; - -@RegisterForReflection -public class WeatherStationData { - - public int stationId; - public String stationName; - public double min = Double.MAX_VALUE; - public double max = Double.MIN_VALUE; - public int count; - public double avg; - - private WeatherStationData(int stationId, String stationName, double min, double max, - int count, double avg) { - this.stationId = stationId; - this.stationName = stationName; - this.min = min; - this.max = max; - this.count = count; - this.avg = avg; - } - - public static WeatherStationData from(Aggregation aggregation) { - return new WeatherStationData( - aggregation.stationId, - aggregation.stationName, - aggregation.min, - aggregation.max, - aggregation.count, - aggregation.avg); - } -} ----- - -We now can add a simple REST endpoint (`aggregator/src/main/java/org/acme/kafka/streams/aggregator/rest/WeatherStationEndpoint.java`), -which invokes `getWeatherStationData()` and returns the data to the client: - -[source, java] ----- -package org.acme.kafka.streams.aggregator.rest; - -import java.net.URI; -import java.net.URISyntaxException; -import java.util.List; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; - -import org.acme.kafka.streams.aggregator.streams.GetWeatherStationDataResult; -import org.acme.kafka.streams.aggregator.streams.KafkaStreamsPipeline; - -@ApplicationScoped -@Path("/weather-stations") -public class WeatherStationEndpoint { - - @Inject - InteractiveQueries interactiveQueries; - - @GET - @Path("/data/{id}") - public Response getWeatherStationData(@PathParam("id") int id) { - GetWeatherStationDataResult result = interactiveQueries.getWeatherStationData(id); - - if (result.getResult().isPresent()) { // <1> - return Response.ok(result.getResult().get()).build(); - } - else { - return Response.status(Status.NOT_FOUND.getStatusCode(), - "No data found for weather station " + id).build(); - } - } -} ----- -<1> Depending on whether a value was obtained, either return that value or a 404 response - -With this code in place, it's time to rebuild the application and the `aggregator` service in Docker Compose: - -[source,bash,subs=attributes+] ----- -./mvnw clean package -f aggregator/pom.xml -docker-compose stop aggregator -docker-compose up --build -d ----- - -This will rebuild the `aggregator` container and restart its service. -Once that's done, you can invoke the service's REST API to obtain the temperature data for one of the existing stations. -To do so, you can use `httpie` in the tooling container launched before: - -[source, subs=attributes+] ----- -http aggregator:8080/weather-stations/data/1 - -HTTP/1.1 200 OK -Connection: keep-alive -Content-Length: 85 -Content-Type: application/json -Date: Tue, 18 Jun 2019 19:29:16 GMT - -{ - "avg": 12.9, - "count": 146, - "max": 41.0, - "min": -25.6, - "stationId": 1, - "stationName": "Hamburg" -} ----- - -== Scaling Out - -A very interesting trait of Kafka Streams applications is that they can be scaled out, -i.e. the load and state can be distributed amongst multiple application instances running the same pipeline. -Each node will then contain a subset of the aggregation results, -but Kafka Streams provides you with https://kafka.apache.org/22/documentation/streams/developer-guide/interactive-queries.html#querying-remote-state-stores-for-the-entire-app[an API] to obtain the information which node is hosting a given key. -The application can then either fetch the data directly from the other instance, or simply point the client to the location of that other node. - -Launching multiple instances of the `aggregator` application will make look the overall architecture like so: - -image::kafka-streams-guide-architecture-distributed.png[alt=Architecture with multiple aggregator nodes, align=center, width=90%] - -The `InteractiveQueries` class must be adjusted slightly for this distributed architecture: - -[source, java] ----- -public GetWeatherStationDataResult getWeatherStationData(int id) { - StreamsMetadata metadata = streams.metadataForKey( // <1> - TopologyProducer.WEATHER_STATIONS_STORE, - id, - Serdes.Integer().serializer() - ); - - if (metadata == null || metadata == StreamsMetadata.NOT_AVAILABLE) { - LOG.warn("Found no metadata for key {}", id); - return GetWeatherStationDataResult.notFound(); - } - else if (metadata.host().equals(host)) { // <2> - LOG.info("Found data for key {} locally", id); - Aggregation result = getWeatherStationStore().get(id); - - if (result != null) { - return GetWeatherStationDataResult.found(WeatherStationData.from(result)); - } - else { - return GetWeatherStationDataResult.notFound(); - } - } - else { // <3> - LOG.info( - "Found data for key {} on remote host {}:{}", - id, - metadata.host(), - metadata.port() - ); - return GetWeatherStationDataResult.foundRemotely(metadata.host(), metadata.port()); - } -} - -public List getMetaData() { // <4> - return streams.allMetadataForStore(TopologyProducer.WEATHER_STATIONS_STORE) - .stream() - .map(m -> new PipelineMetadata( - m.hostInfo().host() + ":" + m.hostInfo().port(), - m.topicPartitions() - .stream() - .map(TopicPartition::toString) - .collect(Collectors.toSet())) - ) - .collect(Collectors.toList()); -} ----- -<1> The streams metadata for the given weather station id is obtained -<2> The given key (weather station id) is maintained by the local application node, i.e. it can answer the query itself -<3> The given key is maintained by another application node; in this case the information about that node (host and port) will be returned -<4> The `getMetaData()` method is added to provide callers with a list of all the nodes in the application cluster. - -The `GetWeatherStationDataResult` type must be adjusted accordingly: - -[source, java] ----- -package org.acme.kafka.streams.aggregator.streams; - -import java.util.Optional; -import java.util.OptionalInt; - -import org.acme.kafka.streams.aggregator.model.WeatherStationData; - -public class GetWeatherStationDataResult { - - private static GetWeatherStationDataResult NOT_FOUND = - new GetWeatherStationDataResult(null, null, null); - - private final WeatherStationData result; - private final String host; - private final Integer port; - - private GetWeatherStationDataResult(WeatherStationData result, String host, - Integer port) { - this.result = result; - this.host = host; - this.port = port; - } - - public static GetWeatherStationDataResult found(WeatherStationData data) { - return new GetWeatherStationDataResult(data, null, null); - } - - public static GetWeatherStationDataResult foundRemotely(String host, int port) { - return new GetWeatherStationDataResult(null, host, port); - } - - public static GetWeatherStationDataResult notFound() { - return NOT_FOUND; - } - - public Optional getResult() { - return Optional.ofNullable(result); - } - - public Optional getHost() { - return Optional.ofNullable(host); - } - - public OptionalInt getPort() { - return port != null ? OptionalInt.of(port) : OptionalInt.empty(); - } -} ----- - -Also the return type for `getMetaData()` must be defined -(`aggregator/src/main/java/org/acme/kafka/streams/aggregator/streams/PipelineMetadata.java`): - -[source, java] ----- -package org.acme.kafka.streams.aggregator.streams; - -import java.util.Set; - -public class PipelineMetadata { - - public String host; - public Set partitions; - - public PipelineMetadata(String host, Set partitions) { - this.host = host; - this.partitions = partitions; - } -} ----- - -Lastly, the REST endpoint class must be updated: - -[source, java] ----- -package org.acme.kafka.streams.aggregator.rest; - -import java.net.URI; -import java.net.URISyntaxException; -import java.util.List; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; - -import org.acme.kafka.streams.aggregator.streams.GetWeatherStationDataResult; -import org.acme.kafka.streams.aggregator.streams.KafkaStreamsPipeline; -import org.acme.kafka.streams.aggregator.streams.PipelineMetadata; - -@ApplicationScoped -@Path("/weather-stations") -public class WeatherStationEndpoint { - - @Inject - InteractiveQueries interactiveQueries; - - @GET - @Path("/data/{id}") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response getWeatherStationData(@PathParam("id") int id) { - GetWeatherStationDataResult result = interactiveQueries.getWeatherStationData(id); - - if (result.getResult().isPresent()) { // <1> - return Response.ok(result.getResult().get()).build(); - } - else if (result.getHost().isPresent()) { // <2> - URI otherUri = getOtherUri(result.getHost().get(), result.getPort().getAsInt(), - id); - return Response.seeOther(otherUri).build(); - } - else { // <3> - return Response.status(Status.NOT_FOUND.getStatusCode(), - "No data found for weather station " + id).build(); - } - } - - @GET - @Path("/meta-data") - @Produces(MediaType.APPLICATION_JSON) - public List getMetaData() { // <4> - return interactiveQueries.getMetaData(); - } - - private URI getOtherUri(String host, int port, int id) { - try { - return new URI("http://" + host + ":" + port + "/weather-stations/data/" + id); - } - catch (URISyntaxException e) { - throw new RuntimeException(e); - } - } -} ----- -<1> The data was found locally, so return it -<2> The data is maintained by another node, so reply with a redirect (HTTP status code 303) if the data for the given key is stored on one of the other nodes. -<3> No data was found for the given weather station id -<4> Exposes information about all the hosts forming the application cluster - -Now stop the `aggregator` service again and rebuild it. -Then let's spin up three instances of it: - -[source,bash,subs=attributes+] ----- -./mvnw clean package -f aggregator/pom.xml -docker-compose stop aggregator -docker-compose up --build -d --scale aggregator=3 ----- - -When invoking the REST API on any of the three instances, it might either be -that the aggregation for the requested weather station id is stored locally on the node receiving the query, -or it could be stored on one of the other two nodes. - -As the load balancer of Docker Compose will distribute requests to the `aggregator` service in a round-robin fashion, -we'll invoke the actual nodes directly. -The application exposes information about all the host names via REST: - -[source, subs=attributes+] ----- -http aggregator:8080/weather-stations/meta-data - -HTTP/1.1 200 OK -Connection: keep-alive -Content-Length: 202 -Content-Type: application/json -Date: Tue, 18 Jun 2019 20:00:23 GMT - -[ - { - "host": "2af13fe516a9:8080", - "partitions": [ - "temperature-values-2" - ] - }, - { - "host": "32cc8309611b:8080", - "partitions": [ - "temperature-values-1" - ] - }, - { - "host": "1eb39af8d587:8080", - "partitions": [ - "temperature-values-0" - ] - } -] ----- - -Retrieve the data from one of the three hosts shown in the response -(your actual host names will differ): - -[source, subs=attributes+] ----- -http 2af13fe516a9:8080/weather-stations/data/1 ----- - -If that node holds the data for key "1", you'll get a response like this: - -[source] ----- -HTTP/1.1 200 OK -Connection: keep-alive -Content-Length: 74 -Content-Type: application/json -Date: Tue, 11 Jun 2019 19:16:31 GMT - -{ - "avg": 11.9, - "count": 259, - "max": 50.0, - "min": -30.1, - "stationId": 1, - "stationName": "Hamburg" -} ----- - -Otherwise, the service will send a redirect: - -[source] ----- -HTTP/1.1 303 See Other -Connection: keep-alive -Content-Length: 0 -Date: Tue, 18 Jun 2019 20:01:03 GMT -Location: http://1eb39af8d587:8080/weather-stations/data/1 ----- - -You can also have _httpie_ automatically follow the redirect by passing the `--follow option`: - -[source,bash] ----- -http --follow 2af13fe516a9:8080/weather-stations/data/1 ----- - -== Running Natively - -The Quarkus extension for Kafka Streams enables the execution of stream processing applications -natively via GraalVM without further configuration. - -To run both the `producer` and `aggregator` applications in native mode, -the Maven builds can be executed using `-Dnative`: - -[source,bash] ----- -./mvnw clean package -f producer/pom.xml -Dnative -Dnative-image.container-runtime=docker -./mvnw clean package -f aggregator/pom.xml -Dnative -Dnative-image.container-runtime=docker ----- - -Now create an environment variable named `QUARKUS_MODE` and with value set to "native": - -[source,bash] ----- -export QUARKUS_MODE=native ----- - -This is used by the Docker Compose file to use the correct `Dockerfile` when building the `producer` and `aggregator` images. -The Kafka Streams application can work with less than 50 MB RSS in native mode. -To do so, add the `Xmx` option to the program invocation in `aggregator/src/main/docker/Dockerfile.native`: - -[source,dockerfile] ----- -CMD ["./application", "-Dquarkus.http.host=0.0.0.0", "-Xmx32m"] ----- - -Now start Docker Compose as described above -(don't forget to rebuild the container images). - -== Kafka Streams Health Checks - -If you are using the `quarkus-smallrye-health` extension, `quarkus-kafka-streams` will automatically add: - -* a readiness health check to validate that all topics declared in the `quarkus.kafka-streams.topics` property are created, -* a liveness health check based on the Kafka Streams state. - -So when you access the `/q/health` endpoint of your application you will have information about the state of the Kafka Streams and the available and/or missing topics. - -This is an example of when the status is `DOWN`: -[source, subs=attributes+] ----- -curl -i http://aggregator:8080/q/health - -HTTP/1.1 503 Service Unavailable -content-type: application/json; charset=UTF-8 -content-length: 454 - -{ - "status": "DOWN", - "checks": [ - { - "name": "Kafka Streams state health check", <1> - "status": "DOWN", - "data": { - "state": "CREATED" - } - }, - { - "name": "Kafka Streams topics health check", <2> - "status": "DOWN", - "data": { - "available_topics": "weather-stations,temperature-values", - "missing_topics": "hygrometry-values" - } - } - ] -} ----- -<1> Liveness health check. Also available at `/q/health/live` endpoint. -<2> Readiness health check. Also available at `/q/health/ready` endpoint. - -So as you can see, the status is `DOWN` as soon as one of the `quarkus.kafka-streams.topics` is missing or the Kafka Streams `state` is not `RUNNING`. - -If no topics are available, the `available_topics` key will not be present in the `data` field of the `Kafka Streams topics health check`. -As well as if no topics are missing, the `missing_topics` key will not be present in the `data` field of the `Kafka Streams topics health check`. - -You can of course disable the health check of the `quarkus-kafka-streams` extension by setting the `quarkus.kafka-streams.health.enabled` property to `false` in your `application.properties`. - -Obviously you can create your liveness and readiness probes based on the respective endpoints `/q/health/live` and `/q/health/ready`. - -=== Liveness health check - -Here is an example of the liveness check: - -[source] ----- -curl -i http://aggregator:8080/q/health/live - -HTTP/1.1 503 Service Unavailable -content-type: application/json; charset=UTF-8 -content-length: 225 - -{ - "status": "DOWN", - "checks": [ - { - "name": "Kafka Streams state health check", - "status": "DOWN", - "data": { - "state": "CREATED" - } - } - ] -} ----- -The `state` is coming from the `KafkaStreams.State` enum. - -=== Readiness health check - -Here is an example of the readiness check: - -[source] ----- -curl -i http://aggregator:8080/q/health/ready - -HTTP/1.1 503 Service Unavailable -content-type: application/json; charset=UTF-8 -content-length: 265 - -{ - "status": "DOWN", - "checks": [ - { - "name": "Kafka Streams topics health check", - "status": "DOWN", - "data": { - "missing_topics": "weather-stations,temperature-values" - } - } - ] -} ----- - -== Going Further - -This guide has shown how you can build stream processing applications using Quarkus and the Kafka Streams APIs, -both in JVM and native modes. -For running your KStreams application in production, you could also add health checks and metrics for the data pipeline. -Refer to the Quarkus guides on xref:micrometer.adoc[Micrometer], xref:smallrye-metrics.adoc[SmallRye Metrics], and xref:smallrye-health.adoc[SmallRye Health] to learn more. - -== Configuration Reference - -include::{generated-dir}/config/quarkus-kafka-streams.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/kafka.adoc b/_versions/2.7/guides/kafka.adoc deleted file mode 100644 index 0978fd0fbae..00000000000 --- a/_versions/2.7/guides/kafka.adoc +++ /dev/null @@ -1,2295 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Apache Kafka Reference Guide - -include::./attributes.adoc[] - -:numbered: -:sectnums: -:sectnumlevels: 4 -:toc: - -This reference guide demonstrates how your Quarkus application can utilize SmallRye Reactive Messaging to interact with Apache Kafka. - -== Introduction - -https://kafka.apache.org[Apache Kafka] is a popular open-source distributed event streaming platform. -It is used commonly for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. -Similar to a message queue, or an enterprise messaging platform, it lets you: - -- *publish* (write) and *subscribe* to (read) streams of events, called _records_. -- *store* streams of records durably and reliably inside _topics_. -- *process* streams of records as they occur or retrospectively. - -And all this functionality is provided in a distributed, highly scalable, elastic, fault-tolerant, and secure manner. - -== Quarkus Extension for Apache Kafka - -Quarkus provides support for Apache Kafka through https://smallrye.io/smallrye-reactive-messaging/[SmallRye Reactive Messaging] framework. -Based on Eclipse MicroProfile Reactive Messaging specification 2.0, it proposes a flexible programming model bridging CDI and event-driven. - -[NOTE] -==== -This guide provides an in-depth look on Apache Kafka and SmallRye Reactive Messaging framework. -For a quick start take a look at xref:kafka-reactive-getting-started.adoc[Getting Started to SmallRye Reactive Messaging with Apache Kafka]. -==== - -You can add the `smallrye-reactive-messaging-kafka` extensions to your project by running the following command in your project base directory: - -:add-extension-extensions: smallrye-reactive-messaging-kafka -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-reactive-messaging-kafka - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-reactive-messaging-kafka") ----- - -[NOTE] -==== -The extension includes `kafka-clients` version 3.1.0 as a transitive dependency and is compatible with Kafka brokers version 2.x. -==== - -== Configuring Smallrye Kafka Connector - -Because Smallrye Reactive Messaging framework supports different messaging backends like Apache Kafka, AMQP, Apache Camel, JMS, MQTT, etc., it employs a generic vocabulary: - -- Applications send and receive *messages*. A message wraps a _payload_ and can be extended with some _metadata_. With the Kafka connector, a _message_ corresponds to a Kafka _record_. -- Messages transit on *channels*. Application components connect to channels to publish and consume messages. The Kafka connector maps _channels_ to Kafka _topics_. -- Channels are connected to message backends using *connectors*. Connectors are configured to map incoming messages to a specific channel (consumed by the application) and collect outgoing messages sent to a specific channel. Each connector is dedicated to a specific messaging technology. For example, the connector dealing with Kafka is named `smallrye-kafka`. - -A minimal configuration for the Kafka connector with an incoming channel looks like the following: - -[source, properties] ----- -%prod.kafka.bootstrap.servers=kafka:9092 <1> -mp.messaging.incoming.prices.connector=smallrye-kafka <2> ----- -<1> Configure the broker location for the production profile. You can configure it globally or per channel using `mp.messaging.incoming.$channel.bootstrap.servers` property. -In dev mode and when running tests, <> automatically starts a Kafka broker. -When not provided this property defaults to `localhost:9092`. -<2> Configure the connector to manage the prices channel. By default the topic name is same as the channel name. You can configure the topic attribute to override it. - -NOTE: The `%prod` prefix indicates that the property is only used when the application runs in prod mode (so not in dev or test). Refer to the xref:config-reference.adoc#profiles[Profile documentation] for further details. - -[TIP] -.Connector auto-attachment -==== -If you have a single connector on your classpath, you can omit the `connector` attribute configuration. -Quarkus automatically associates _orphan_ channels to the (unique) connector found on the classpath. -_Orphans_ channels are outgoing channels without a downstream consumer or incoming channels without an upstream producer. - -This auto-attachment can be disabled using: - -[source, properties] ----- -quarkus.reactive-messaging.auto-connector-attachment=false ----- -==== - -== Receiving messages from Kafka - -Continuing from the previous minimal configuration, your Quarkus application can receive message payload directly: - -[source, java] ----- -import org.eclipse.microprofile.reactive.messaging.Incoming; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class PriceConsumer { - - @Incoming("prices") - public void consume(double price) { - // process your price. - } - -} ----- - -There are several other ways your application can consume incoming messages: - -.Message -[source, java] ----- -@Incoming("prices") -public CompletionStage consume(Message msg) { - // access record metadata - var metadata = msg.getMetadata(IncomingKafkaRecordMetadata.class).orElseThrow(); - // process the message payload. - double price = msg.getPayload(); - // Acknowledge the incoming message (commit the offset) - return msg.ack(); -} ----- - -The `Message` type lets the consuming method access the incoming message metadata and handle the acknowledgment manually. -We'll explore different acknowledgment strategies in <>. - -If you want to access the Kafka record objects directly, use: - -.ConsumerRecord -[source, java] ----- -@Incoming("prices") -public void consume(ConsumerRecord record) { - String key = record.key(); // Can be `null` if the incoming record has no key - String value = record.value(); // Can be `null` if the incoming record has no value - String topic = record.topic(); - int partition = record.partition(); - // ... -} ----- - -`ConsumerRecord` is provided by the underlying Kafka client and can be injected directly to the consumer method. -Another simpler approach consists in using `Record`: - -.Record -[source, java] ----- -@Incoming("prices") -public void consume(Record record) { - String key = record.key(); // Can be `null` if the incoming record has no key - String value = record.value(); // Can be `null` if the incoming record has no value -} ----- - -`Record` is a simple wrapper around key and payload of the incoming Kafka record. - -.@Channel - -Alternatively, your application can inject a `Multi` in your bean and subscribe to its events as the following example: - -[source, java] ----- -import io.smallrye.mutiny.Multi; -import io.smallrye.reactive.messaging.annotations.Channel; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import org.jboss.resteasy.annotations.SseElementType; - -@Path("/prices") -public class PriceResource { - - @Inject - @Channel("prices") - Multi prices; - - @GET - @Path("/prices") - @Produces(MediaType.SERVER_SENT_EVENTS) - @SseElementType("text/plain") - public Multi stream() { - return prices; - } -} ----- - -This is a good example of how to integrate a Kafka consumer with another downstream, -in this example exposing it as a Server-Sent Events endpoint. - - -[NOTE] -==== -When consuming messages with `@Channel`, the application code is responsible for the subscription. -In the example above, RESTEasy endpoint handles that for you. -==== - -Following types can be injected as channels: - -[source, java] ----- -@Inject @Channel("prices") Multi streamOfPayloads; - -@Inject @Channel("prices") Multi> streamOfMessages; - -@Inject @Channel("prices") Publisher publisherOfPayloads; - -@Inject @Channel("prices") Publisher> publisherOfMessages; ----- - -As with the previous `Message` example, if your injected channel receives payloads (`Multi`), it acknowledges the message automatically, and support multiple subscribers. -If you injected channel receives Message (`Multi>`), you will be responsible for the acknowledgment and broadcasting. -We will explore sending broadcast messages in <>. - -[IMPORTANT] -==== -Injecting `@Channel("prices")` or having `@Incoming("prices")` does not automatically configure the application to consume messages from Kafka. -You need to configure an inbound connector with `mp.messaging.incoming.prices\...` or have an `@Outgoing("prices")` method somewhere in your application (in which case, `prices` will be an in-memory channel). -==== - -[#blocking-processing] -=== Blocking processing - -Reactive Messaging invokes your method on an I/O thread. -See the xref:quarkus-reactive-architecture.adoc[Quarkus Reactive Architecture documentation] for further details on this topic. -But, you often need to combine Reactive Messaging with blocking processing such as database interactions. -For this, you need to use the `@Blocking` annotation indicating that the processing is _blocking_ and should not be run on the caller thread. - -For example, The following code illustrates how you can store incoming payloads to a database using Hibernate with Panache: - -[source,java] ----- -import io.smallrye.reactive.messaging.annotations.Blocking; -import org.eclipse.microprofile.reactive.messaging.Incoming; - -import javax.enterprise.context.ApplicationScoped; -import javax.transaction.Transactional; - -@ApplicationScoped -public class PriceStorage { - - @Incoming("prices") - @Transactional - public void store(int priceInUsd) { - Price price = new Price(); - price.value = priceInUsd; - price.persist(); - } - -} ----- - -The complete example is available in the `kafka-panache-quickstart` {quickstarts-tree-url}/kafka-panache-quickstart[directory]. - -[NOTE] -==== -There are 2 `@Blocking` annotations: - -1. `io.smallrye.reactive.messaging.annotations.Blocking` -2. `io.smallrye.common.annotation.Blocking` - -They have the same effect. -Thus, you can use both. -The first one provides more fine-grained tuning such as the worker pool to use and whether it preserves the order. -The second one, used also with other reactive features of Quarkus, uses the default worker pool and preserves the order. - -Detailed information on the usage of `@Blocking` annotation can be found in https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.1/advanced/blocking.html[SmallRye Reactive Messaging – Handling blocking execution]. -==== - -[TIP] -.@Transactional -==== -If your method is annotated with `@Transactional`, it will be considered _blocking_ automatically, even if the method is not annotated with `@Blocking`. -==== - -=== Acknowledgment Strategies - -All messages received by a consumer must be acknowledged. -In the absence of acknowledgment, the processing is considered in error. -If the consumer method receives a `Record` or a payload, the message will be acked on method return, also known as `Strategy.POST_PROCESSING`. -If the consumer method returns another reactive stream or `CompletionStage`, the message will be acked when the downstream message is acked. -You can override the default behavior to ack the message on arrival (`Strategy.PRE_PROCESSING`), -or do not ack the message at all (`Strategy.NONE`) on the consumer method as in the following example: - -[source, java] ----- -@Incoming("prices") -@Acknowledgment(Acknowledgment.Strategy.PRE_PROCESSING) -public void process(double price) { - // process price -} ----- - -If the consumer method receives a `Message`, the acknowledgment strategy is `Strategy.MANUAL` -and the consumer method is in charge of ack/nack the message. - -[source, java] ----- -@Incoming("prices") -public CompletionStage process(Message msg) { - // process price - return msg.ack(); -} ----- - -As mentioned above, the method can also override the acknowledgment strategy to `PRE_PROCESSING` or `NONE`. - -[[commit-strategies]] -=== Commit Strategies - -When a message produced from a Kafka record is acknowledged, the connector invokes a commit strategy. -These strategies decide when the consumer offset for a specific topic/partition is committed. -Committing an offset indicates that all previous records have been processed. -It is also the position where the application would restart the processing after a crash recovery or a restart. - -Committing every offset has performance penalties as Kafka offset management can be slow. -However, not committing the offset often enough may lead to message duplication if the application crashes between two commits. - -The Kafka connector supports three strategies: - -- `throttled` keeps track of received messages and commits an offset of the latest acked message in sequence (meaning, all previous messages were also acked). -This strategy guarantees at-least-once delivery even if the channel performs asynchronous processing. -The connector tracks the received records and periodically (period specified by `auto.commit.interval.ms`, default: 5000 ms) commits the highest consecutive offset. -The connector will be marked as unhealthy if a message associated with a record is not acknowledged in `throttled.unprocessed-record-max-age.ms` (default: 60000 ms). -Indeed, this strategy cannot commit the offset as soon as a single record processing fails (see <> to configure what happens on failing processing). -If `throttled.unprocessed-record-max-age.ms` is set to less than or equal to `0`, it does not perform any health check verification. -Such a setting might lead to running out of memory if there are "poison pill" messages (that are never acked). -This strategy is the default if `enable.auto.commit` is not explicitly set to true. - -- `latest` commits the record offset received by the Kafka consumer as soon as the associated message is acknowledged (if the offset is higher than the previously committed offset). -This strategy provides at-least-once delivery if the channel processes the message without performing any asynchronous processing. -This strategy should not be used in high load environment, as offset commit is expensive. However, it reduces the risk of duplicates. - -- `ignore` performs no commit. This strategy is the default strategy when the consumer is explicitly configured with `enable.auto.commit` to true. -It delegates the offset commit to the underlying Kafka client. -When `enable.auto.commit` is `true` this strategy **DOES NOT** guarantee at-least-once delivery. -SmallRye Reactive Messaging processes records asynchronously, so offsets may be committed for records that have been polled but not yet processed. -In case of a failure, only records that were not committed yet will be re-processed. - -[IMPORTANT] -==== -The Kafka connector disables the Kafka auto commit when it is not explicitly enabled. This behavior differs from the traditional Kafka consumer. -If high throughput is important for you, and you are not limited by the downstream, we recommend to either: - -- use the `throttled` policy, -- or set `enable.auto.commit` to true and annotate the consuming method with `@Acknowledgment(Acknowledgment.Strategy.NONE)`. -==== - -[[error-handling]] -=== Error Handling Strategies - -If a message produced from a Kafka record is nacked, a failure strategy is applied. The Kafka connector supports three strategies: - -- `fail`: fail the application, no more records will be processed (default strategy). The offset of the record that has not been processed correctly is not committed. -- `ignore`: the failure is logged, but the processing continue. The offset of the record that has not been processed correctly is committed. -- `dead-letter-queue`: the offset of the record that has not been processed correctly is committed, but the record is written to a Kafka dead letter topic. - -The strategy is selected using the `failure-strategy` attribute. - -In the case of `dead-letter-queue`, you can configure the following attributes: - -- `dead-letter-queue.topic`: the topic to use to write the records not processed correctly, default is `dead-letter-topic-$channel`, with `$channel` being the name of the channel. -- `dead-letter-queue.key.serializer`: the serializer used to write the record key on the dead letter queue. By default, it deduces the serializer from the key deserializer. -- `dead-letter-queue.value.serializer`: the serializer used to write the record value on the dead letter queue. By default, it deduces the serializer from the value deserializer. - -The record written on the dead letter queue contains a set of additional headers about the original record: - -- *dead-letter-reason*: the reason of the failure -- *dead-letter-cause*: the cause of the failure if any -- *dead-letter-topic*: the original topic of the record -- *dead-letter-partition*: the original partition of the record (integer mapped to String) -- *dead-letter-offset*: the original offset of the record (long mapped to String) - -==== Retrying processing - -You can combine Reactive Messaging with https://github.com/smallrye/smallrye-fault-tolerance[SmallRye Fault Tolerance], and retry processing if it failed: - -[source, java] ----- -@Incoming("kafka") -@Retry(delay = 10, maxRetries = 5) -public void consume(String v) { - // ... retry if this method throws an exception -} ----- - -You can configure the delay, the number of retries, the jitter, etc. - -If your method returns a `Uni` or `CompletionStage`, you need to add the `@NonBlocking` annotation: - -[source,java] ----- -@Incoming("kafka") -@Retry(delay = 10, maxRetries = 5) -@NonBlocking -public Uni consume(String v) { - // ... retry if this method throws an exception or the returned Uni produce a failure -} ----- - -NOTE: The `@NonBlocking` annotation is only required with SmallRye Fault Tolerance 5.1.0 and earlier. -Starting with SmallRye Fault Tolerance 5.2.0 (available since Quarkus 2.1.0.Final), it is not necessary. -See https://smallrye.io/docs/smallrye-fault-tolerance/5.2.0/usage/extra.html#_non_compatible_mode[SmallRye Fault Tolerance documentation] for more information. - -The incoming messages are acknowledged only once the processing completes successfully. -So, it commits the offset after the successful processing. -If the processing still fails, even after all retries, the message is _nacked_ and the failure strategy is applied. - -==== Handling Deserialization Failures - -When a deserialization failure occurs, you can intercept it and provide a failure strategy. -To achieve this, you need to create a bean implementing `DeserializationFailureHandler` interface: - -[source, java] ----- -@ApplicationScoped -@Identifier("failure-retry") // Set the name of the failure handler -public class MyDeserializationFailureHandler - implements DeserializationFailureHandler { // Specify the expected type - - @Override - public JsonObject decorateDeserialization(Uni deserialization, String topic, boolean isKey, - String deserializer, byte[] data, Headers headers) { - return deserialization - .onFailure().retry().atMost(3) - .await().atMost(Duration.ofMillis(200)); - } -} ----- - -To use this failure handler, the bean must be exposed with the `@Identifier` qualifier and the connector configuration must specify the attribute `mp.messaging.incoming.$channel.[key|value]-deserialization-failure-handler` (for key or value deserializers). - -The handler is called with details of the deserialization, including the action represented as `Uni`. -On the deserialization `Uni` failure strategies like retry, providing a fallback value or applying timeout can be implemented. - -=== Consumer Groups - -In Kafka, a consumer group is a set of consumers which cooperate to consume data from a topic. -A topic is divided into a set of partitions. -The partitions of a topic are assigned among the consumers in the group, effectively allowing to scale consumption throughput. -Note that each partition is assigned to a single consumer from a group. -However, a consumer can be assigned multiple partitions if the number of partitions is greater than the number of consumer in the group. - -Let's explore briefly different producer/consumer patterns and how to implement them using Quarkus: - -. *Single consumer thread inside a consumer group* -+ -This is the default behavior of an application subscribing to a Kafka topic: Each Kafka connector will create a single consumer thread and place it inside a single consumer group. -Consumer group id defaults to the application name as set by the `quarkus.application.name` configuration property. -It can also be set using the `kafka.group.id` property. -+ -image::kafka-one-app-one-consumer.png[alt=Architecture, width=60%, align=center] - -. *Multiple consumer threads inside a consumer group* -+ -For a given application instance, the number of consumers inside the consumer group can be configured using `mp.messaging.incoming.$channel.partitions` property. -The partitions of the subscribed topic will be divided among the consumer threads. -Note that if the `partitions` value exceed the number of partitions of the topic, some consumer threads won't be assigned any partitions. -+ -image::kafka-one-app-two-consumers.png[alt=Architecture, width=60%, align=center] - -. *Multiple consumer applications inside a consumer group* -+ -Similar to the previous example, multiple instances of an application can subscribe to a single consumer group, configured via `mp.messaging.incoming.$channel.group.id` property, or left default to the application name. -This in turn will divide partitions of the topic among application instances. -+ -image::kafka-two-app-one-consumer-group.png[alt=Architecture, width=60% , align=center] - -. *Pub/Sub: Multiple consumer groups subscribed to a topic* -+ -Lastly different applications can subscribe independently to same topics using different *consumer group ids*. -For example, messages published to a topic called _orders_ can be consumed independently on two consumer applications, one with `mp.messaging.incoming.orders.group.id=invoicing` and second with `mp.messaging.incoming.orders.group.id=shipping`. -Different consumer groups can thus scale independently according to the message consumption requirements. -+ -image::kafka-two-app-two-consumer-groups.png[alt=Architecture, width=60%, align=center] - -==== Consumer Rebalance Listener - -Inside a consumer group, as new group members arrive and old members leave, the partitions are re-assigned so that each member receives a proportional share of the partitions. -This is known as rebalancing the group. -To handle offset commit and assigned partitions yourself, you can provide a consumer rebalance listener. -To achieve this, implement the `io.smallrye.reactive.messaging.kafka.KafkaConsumerRebalanceListener` interface and expose it as a CDI bean with the `@Idenfier` qualifier. -A common use case is to store offset in a separate data store to implement exactly-once semantic, or starting the processing at a specific offset. - -The listener is invoked every time the consumer topic/partition assignment changes. -For example, when the application starts, it invokes the `partitionsAssigned` callback with the initial set of topics/partitions associated with the consumer. -If, later, this set changes, it calls the `partitionsRevoked` and `partitionsAssigned` callbacks again, so you can implement custom logic. - -Note that the rebalance listener methods are called from the Kafka polling thread and **will** block the caller thread until completion. -That’s because the rebalance protocol has synchronization barriers, and using asynchronous code in a rebalance listener may be executed after the synchronization barrier. - -When topics/partitions are assigned or revoked from a consumer, it pauses the message delivery and resumes once the rebalance completes. - -If the rebalance listener handles offset commit on behalf of the user (using the `NONE` commit strategy), -the rebalance listener must commit the offset synchronously in the partitionsRevoked callback. -We also recommend applying the same logic when the application stops. - -Unlike the `ConsumerRebalanceListener` from Apache Kafka, the `io.smallrye.reactive.messaging.kafka.KafkaConsumerRebalanceListener` methods pass the Kafka Consumer and the set of topics/partitions. - -In the following example we set-up a consumer that always starts on messages from at most 10 minutes ago (or offset 0). -First we need to provide a bean that implements `io.smallrye.reactive.messaging.kafka.KafkaConsumerRebalanceListener` and is annotated with `io.smallrye.common.annotation.Identifier`. -We then must configure our inbound connector to use this bean. - -[source, java] ----- -package inbound; - -import io.smallrye.common.annotation.Identifier; -import io.smallrye.reactive.messaging.kafka.KafkaConsumerRebalanceListener; -import org.apache.kafka.clients.consumer.Consumer; -import org.apache.kafka.clients.consumer.OffsetAndTimestamp; -import org.apache.kafka.clients.consumer.TopicPartition; - -import javax.enterprise.context.ApplicationScoped; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Logger; - -@ApplicationScoped -@Identifier("rebalanced-example.rebalancer") -public class KafkaRebalancedConsumerRebalanceListener implements KafkaConsumerRebalanceListener { - - private static final Logger LOGGER = Logger.getLogger(KafkaRebalancedConsumerRebalanceListener.class.getName()); - - /** - * When receiving a list of partitions, will search for the earliest offset within 10 minutes - * and seek the consumer to it. - * - * @param consumer underlying consumer - * @param partitions set of assigned topic partitions - */ - @Override - public void onPartitionsAssigned(Consumer consumer, Collection partitions) { - long now = System.currentTimeMillis(); - long shouldStartAt = now - 600_000L; //10 minute ago - - Map request = new HashMap<>(); - for (TopicPartition partition : partitions) { - LOGGER.info("Assigned " + partition); - request.put(partition, shouldStartAt); - } - Map offsets = consumer.offsetsForTimes(request); - for (Map.Entry position : offsets.entrySet()) { - long target = position.getValue() == null ? 0L : position.getValue().offset(); - LOGGER.info("Seeking position " + target + " for " + position.getKey()); - consumer.seek(position.getKey(), target); - } - } - -} ----- - -[source, java] ----- -package inbound; - -import io.smallrye.reactive.messaging.kafka.IncomingKafkaRecord; -import org.eclipse.microprofile.reactive.messaging.Acknowledgment; -import org.eclipse.microprofile.reactive.messaging.Incoming; - -import javax.enterprise.context.ApplicationScoped; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionStage; - -@ApplicationScoped -public class KafkaRebalancedConsumer { - - @Incoming("rebalanced-example") - @Acknowledgment(Acknowledgment.Strategy.NONE) - public CompletionStage consume(IncomingKafkaRecord message) { - // We don't need to ACK messages because in this example, - // we set offset during consumer rebalance - return CompletableFuture.completedFuture(null); - } - -} ----- - -To configure the inbound connector to use the provided listener, we either set the consumer rebalance listener’s identifier: -`mp.messaging.incoming.rebalanced-example.consumer-rebalance-listener.name=rebalanced-example.rebalancer` - -Or have the listener’s name be the same as the group id: - -`mp.messaging.incoming.rebalanced-example.group.id=rebalanced-example.rebalancer` - -Setting the consumer rebalance listener’s name takes precedence over using the group id. - -==== Using unique consumer groups - -If you want to process all the records from a topic (from its beginning), you need: - -1. to set `auto.offset.reset = earliest` -2. assign your consumer to a consumer group not used by any other application. - -Quarkus generates a UUID that changes between two executions (including in dev mode). -So, you are sure no other consumer uses it, and you receive a new unique group id every time your application starts. - -You can use that generated UUID as the consumer group as follows: - -[source, properties] ----- -mp.messaging.incoming.your-channel.auto.offset.reset=earliest -mp.messaging.incoming.your-channel.group.id=${quarkus.uuid} ----- - -IMPORTANT: If the `group.id` attribute is not set, it defaults the `quarkus.application.name` configuration property. - -=== Receiving Kafka Records in Batches - -By default, incoming methods receive each Kafka record individually. -Under the hood, Kafka consumer clients poll the broker constantly and receive records in batches, presented inside the `ConsumerRecords` container. - -In *batch* mode, your application can receive all the records returned by the consumer *poll* in one go. - -To achieve this you need to specify a compatible container type to receive all the data: - -[source, java] ----- -@Incoming("prices") -public void consume(List prices) { - for (double price : prices) { - // process price - } -} ----- - -The incoming method can also receive `Message>`, `KafkaRecordBatch` `ConsumerRecords` types. -They give access to record details such as offset or timestamp: - -[source, java] ----- -@Incoming("prices") -public CompletionStage consumeMessage(KafkaRecordBatch records) { - for (KafkaRecord record : records) { - String payload = record.getPayload(); - String topic = record.getTopic(); - // process messages - } - // ack will commit the latest offsets (per partition) of the batch. - return records.ack(); -} - ----- - -Note that the successful processing of the incoming record batch will commit the latest offsets for each partition received inside the batch. -The configured commit strategy will be applied for these records only. - -Conversely, if the processing throws an exception, all messages are _nacked_, applying the failure strategy for all the records inside the batch. - -[NOTE] -==== -Quarkus autodetects batch types for incoming channels and sets batch configuration automatically. -You can configure batch mode explicitly with `mp.messaging.incoming.$channel.batch` property. -==== - -== Sending messages to Kafka - -Configuration for the Kafka connector outgoing channels is similar to that of incoming: - -[source, properties] ----- -%prod.kafka.bootstrap.servers=kafka:9092 <1> -mp.messaging.outgoing.prices-out.connector=smallrye-kafka <2> -mp.messaging.outgoing.prices-out.topic=prices <3> ----- - -<1> Configure the broker location for the production profile. You can configure it globally or per channel using `mp.messaging.outgoing.$channel.bootstrap.servers` property. -In dev mode and when running tests, <> automatically starts a Kafka broker. -When not provided, this property defaults to `localhost:9092`. -<2> Configure the connector to manage the `prices-out` channel. -<3> By default, the topic name is same as the channel name. You can configure the topic attribute to override it. - -[IMPORTANT] -==== -Inside application configuration, channel names are unique. -Therefore, if you'd like to configure an incoming and outgoing channel on the same topic, you will need to name channels differently (like in the examples of this guide, `mp.messaging.incoming.prices` and `mp.messaging.outgoing.prices-out`). -==== - -Then, your application can generate messages and publish them to the `prices-out` channel. -It can use `double` payloads as in the following snippet: - -[source, java] ----- -import io.smallrye.mutiny.Multi; -import org.eclipse.microprofile.reactive.messaging.Outgoing; - -import javax.enterprise.context.ApplicationScoped; -import java.time.Duration; -import java.util.Random; - -@ApplicationScoped -public class KafkaPriceProducer { - - private final Random random = new Random(); - - @Outgoing("prices-out") - public Multi generate() { - // Build an infinite stream of random prices - // It emits a price every second - return Multi.createFrom().ticks().every(Duration.ofSeconds(1)) - .map(x -> random.nextDouble()); - } - -} ----- - -[IMPORTANT] -==== -You should not call methods annotated with `@Incoming` and/or `@Outgoing` directly from your code. They are invoked by the framework. Having user code invoking them would not have the expected outcome. -==== - -Note that the `generate` method returns a `Multi`, which implements the Reactive Streams `Publisher` interface. -This publisher will be used by the framework to generate messages and send them to the configured Kafka topic. - -Instead of returning a payload, you can return a `io.smallrye.reactive.messaging.kafka.Record` to send key/value pairs: - -[source, java] ----- -@Outgoing("out") -public Multi> generate() { - return Multi.createFrom().ticks().every(Duration.ofSeconds(1)) - .map(x -> Record.of("my-key", random.nextDouble())); -} ----- - -Payload can be wrapped inside `org.eclipse.microprofile.reactive.messaging.Message` to have more control on the written records: - -[source, java] ----- -@Outgoing("generated-price") -public Multi> generate() { - return Multi.createFrom().ticks().every(Duration.ofSeconds(1)) - .map(x -> Message.of(random.nextDouble()) - .addMetadata(OutgoingKafkaRecordMetadata.builder() - .withKey("my-key") - .withTopic("my-key-prices") - .withHeaders(new RecordHeaders().add("my-header", "value".getBytes())) - .build())); -} ----- - -`OutgoingKafkaRecordMetadata` allows to set metadata attributes of the Kafka record, such as `key`, `topic`, `partition` or `timestamp`. -One use case is to dynamically select the destination topic of a message. -In this case, instead of configuring the topic inside your application configuration file, you need to use the outgoing metadata to set the name of the topic. - -Other than method signatures returning a Reactive Stream `Publisher` (`Multi` being an implementation of `Publisher`), outgoing method can also return single message. -In this case the producer will use this method as generator to create an infinite stream. - -[source, java] ----- -@Outgoing("prices-out") T generate(); // T excluding void - -@Outgoing("prices-out") Message generate(); - -@Outgoing("prices-out") Uni generate(); - -@Outgoing("prices-out") Uni> generate(); - -@Outgoing("prices-out") CompletionStage generate(); - -@Outgoing("prices-out") CompletionStage> generate(); ----- - -=== Sending messages with @Emitter - -Sometimes, you need to have an imperative way of sending messages. - -For example, if you need to send a message to a stream when receiving a POST request inside a REST endpoint. -In this case, you cannot use `@Outgoing` because your method has parameters. - -For this, you can use an `Emitter`. - -[source, java] ----- -import org.eclipse.microprofile.reactive.messaging.Channel; -import org.eclipse.microprofile.reactive.messaging.Emitter; - -import javax.inject.Inject; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Consumes; -import javax.ws.rs.core.MediaType; - -@Path("/prices") -public class PriceResource { - - @Inject - @Channel("price-create") - Emitter priceEmitter; - - @POST - @Consumes(MediaType.TEXT_PLAIN) - public void addPrice(Double price) { - CompletionStage ack = priceEmitter.send(price); - } -} ----- - -Sending a payload returns a `CompletionStage`, completed when the message is acked. If the message transmission fails, the `CompletionStage` is completed exceptionally with the reason of the nack. - -[NOTE] -==== -The `Emitter` configuration is done the same way as the other stream configuration used by `@Incoming` and `@Outgoing`. -==== - -[IMPORTANT] -==== -Using the `Emitter` you are sending messages from your imperative code to reactive messaging. -These messages are stored in a queue until they are sent. -If the Kafka producer client can't keep up with messages trying to be sent over to Kafka, this queue can become a memory hog and you may even run out of memory. -You can use `@OnOverflow` to configure back-pressure strategy. -It lets you configure the size of the queue (default is 256) and the strategy to apply when the buffer size is reached. Available strategies are `DROP`, `LATEST`, `FAIL`, `BUFFER`, `UNBOUNDED_BUFFER` and `NONE`. -==== - -With the `Emitter` API, you can also encapsulate the outgoing payload inside `Message`. As with the previous examples, `Message` lets you handle the ack/nack cases differently. - -[source,java] ----- -import java.util.concurrent.CompletableFuture; -import org.eclipse.microprofile.reactive.messaging.Channel; -import org.eclipse.microprofile.reactive.messaging.Emitter; - -import javax.inject.Inject; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Consumes; -import javax.ws.rs.core.MediaType; - -@Path("/prices") -public class PriceResource { - - @Inject @Channel("price-create") Emitter priceEmitter; - - @POST - @Consumes(MediaType.TEXT_PLAIN) - public void addPrice(Double price) { - priceEmitter.send(Message.of(price) - .withAck(() -> { - // Called when the message is acked - return CompletableFuture.completedFuture(null); - }) - .withNack(throwable -> { - // Called when the message is nacked - return CompletableFuture.completedFuture(null); - })); - } -} ----- - -If you prefer using Reactive Stream APIs, you can use `MutinyEmitter` that will return `Uni` from the `send` method. -You can therefore use Mutiny APIs for handling downstream messages and errors. - -[source,java] ----- -import org.eclipse.microprofile.reactive.messaging.Channel; - -import javax.inject.Inject; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Consumes; -import javax.ws.rs.core.MediaType; - -import io.smallrye.reactive.messaging.MutinyEmitter; - -@Path("/prices") -public class PriceResource { - - @Inject - @Channel("price-create") - MutinyEmitter priceEmitter; - - @POST - @Consumes(MediaType.TEXT_PLAIN) - public Uni addPrice(Double price) { - return quoteRequestEmitter.send(price) - .map(x -> "ok") - .onFailure().recoverWithItem("ko"); - } -} ----- - -It is also possible to block on sending the event to the emitter with the `sendAndAwait` method. -It will only return from the method when the event is acked or nacked by the receiver. - -[NOTE] -.Deprecation -==== -The `io.smallrye.reactive.messaging.annotations.Emitter`, `io.smallrye.reactive.messaging.annotations.Channel` and `io.smallrye.reactive.messaging.annotations.OnOverflow` classes are now deprecated and replaced by: - -* `org.eclipse.microprofile.reactive.messaging.Emitter` -* `org.eclipse.microprofile.reactive.messaging.Channel` -* `org.eclipse.microprofile.reactive.messaging.OnOverflow` - -The new `Emitter.send` method returns a `CompletionStage` completed when the produced message is acknowledged. -==== - -More information on how to use `Emitter` can be found in https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.1/emitter/emitter.html#_emitter_and_channel[SmallRye Reactive Messaging – Emitters and Channels] - -=== Write Acknowledgement - -When Kafka broker receives a record, its acknowledgement can take time depending on the configuration. -Also, it stores in-memory the records that cannot be written. - -By default, the connector does wait for Kafka to acknowledge the record to continue the processing (acknowledging the received Message). -You can disable this by setting the `waitForWriteCompletion` attribute to `false`. - -Note that the `acks` attribute has a huge impact on the record acknowledgement. - -If a record cannot be written, the message is nacked. - -=== Backpressure - -The Kafka outbound connector handles back-pressure, monitoring the number of in-flight messages waiting to be written to the Kafka broker. -The number of in-flight messages is configured using the `max-inflight-messages` attribute and defaults to 1024. - -The connector only sends that amount of messages concurrently. -No other messages will be sent until at least one in-flight message gets acknowledged by the broker. -Then, the connector writes a new message to Kafka when one of the broker’s in-flight messages get acknowledged. -Be sure to configure Kafka’s `batch.size` and `linger.ms` accordingly. - -You can also remove the limit of in-flight messages by setting `max-inflight-messages` to `0`. -However, note that the Kafka producer may block if the number of requests reaches `max.in.flight.requests.per.connection`. - -=== Retrying message dispatch - -When the Kafka producer receives an error from the server, if it is a transient, recoverable error, the client will retry sending the batch of messages. -This behavior is controlled by `retries` and `retry.backoff.ms` parameters. -In addition to this, SmallRye Reactive Messaging will retry individual messages on recoverable errors, depending on the `retries` and `delivery.timeout.ms` parameters. - -Note that while having retries in a reliable system is a best practice, the `max.in.flight.requests.per.connection` parameter defaults to `5`, meaning that the order of the messages is not guaranteed. -If the message order is a must for your use case, setting `max.in.flight.requests.per.connection` to `1` will make sure a single batch of messages is sent at a time, in the expense of limiting the throughput of the producer. - -For applying retry mechanism on processing errors, see the section on <>. - -=== Handling Serialization Failures - -For Kafka producer client serialization failures are not recoverable, thus the message dispatch is not retried. In these cases you may need to apply a failure strategy for the serializer. -To achieve this, you need to create a bean implementing `SerializationFailureHandler` interface: - -[source, java] ----- -@ApplicationScoped -@Identifier("failure-fallback") // Set the name of the failure handler -public class MySerializationFailureHandler - implements SerializationFailureHandler { // Specify the expected type - - @Override - public byte[] decorateSerialization(Uni serialization, String topic, boolean isKey, - String serializer, Object data, Headers headers) { - return serialization - .onFailure().retry().atMost(3) - .await().indefinitely(); - } -} ----- - -To use this failure handler, the bean must be exposed with the `@Identifier` qualifier and the connector configuration must specify the attribute `mp.messaging.outgoing.$channel.[key|value]-serialization-failure-handler` (for key or value serializers). - -The handler is called with details of the serialization, including the action represented as `Uni`. -Note that the method must await on the result and return the serialized byte array. - -=== In-memory channels - -In some use cases, it is convenient to use the messaging patterns to transfer messages inside the same application. -When you don't connect a channel to a messaging backend like Kafka, everything happens in-memory, and the streams are created by chaining methods together. -Each chain is still a reactive stream and enforces the back-pressure protocol. - -The framework verifies that the producer/consumer chain is complete, -meaning that if the application writes messages into an in-memory channel (using a method with only `@Outgoing`, or an `Emitter`), -it must also consume the messages from within the application (using a method with only `@Incoming` or using an unmanaged stream). - -[[broadcasting-messages-on-multiple-consumers]] -=== Broadcasting messages on multiple consumers - -By default, a channel can be linked to a single consumer, using `@Incoming` method or `@Channel` reactive stream. -At application startup, channels are verified to form a chain of consumers and producers with single consumer and producer. -You can override this behavior by setting `mp.messaging.$channel.broadcast=true` on a channel. - -In case of in-memory channels, `@Broadcast` annotation can be used on the `@Outgoing` method. For example, - -[source, java] ----- -import java.util.Random; - -import javax.enterprise.context.ApplicationScoped; - -import org.eclipse.microprofile.reactive.messaging.Incoming; -import org.eclipse.microprofile.reactive.messaging.Outgoing; - -import io.smallrye.reactive.messaging.annotations.Broadcast; - -@ApplicationScoped -public class MultipleConsumer { - - private final Random random = new Random(); - - @Outgoing("in-memory-channel") - @Broadcast - double generate() { - return random.nextDouble(); - } - - @Incoming("in-memory-channel") - void consumeAndLog(double price) { - System.out.println(price); - } - - @Incoming("in-memory-channel") - @Outgoing("prices2") - double consumeAndSend(double price) { - return price; - } -} ----- - -[NOTE] -==== -Reciprocally, multiple producers on the same channel can be merged by setting `mp.messaging.incoming.$channel.merge=true`. -On the `@Incoming` methods, you can control how multiple channels are merged using the `@Merge` annotation. -==== - -== Processing Messages - -Applications streaming data often need to consume some events from a topic, process them and publish the result to a different topic. -A processor method can be simply implemented using both the `@Incoming` and `@Outgoing` annotations: - -[source, java] ----- -import org.eclipse.microprofile.reactive.messaging.Incoming; -import org.eclipse.microprofile.reactive.messaging.Outgoing; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class PriceProcessor { - - private static final double CONVERSION_RATE = 0.88; - - @Incoming("price-in") - @Outgoing("price-out") - public double process(double price) { - return price * CONVERSION_RATE; - } - -} ----- - -The parameter of the `process` method is the incoming message payload, whereas the return value will be used as the outgoing message payload. -Previously mentioned signatures for parameter and return types are also supported, such as `Message`, `Record`, etc. - -You can apply asynchronous stream processing by consuming and returning reactive stream `Multi` type: - -[source,java] ----- -import javax.enterprise.context.ApplicationScoped; - -import org.eclipse.microprofile.reactive.messaging.Incoming; -import org.eclipse.microprofile.reactive.messaging.Outgoing; - -import io.smallrye.mutiny.Multi; - -@ApplicationScoped -public class PriceProcessor { - - private static final double CONVERSION_RATE = 0.88; - - @Incoming("price-in") - @Outgoing("price-out") - public Multi process(Multi prices) { - return prices.filter(p -> p > 100).map(p -> p * CONVERSION_RATE); - } - -} ----- - -=== Propagating Record Key - -When processing messages, you can propagate incoming record key to the outgoing record. - -Enabled with `mp.messaging.outgoing.$channel.propagate-record-key=true` configuration, -record key propagation produces the outgoing record with the same _key_ as the incoming record. - -If the outgoing record already contains a _key_, it *won't be overridden* by the incoming record key. -If the incoming record does have a _null_ key, the `mp.messaging.outgoing.$channel.key` property is used. - -[[kafka-bare-clients]] -== Accessing Kafka clients directly - -In rare cases, you may need to access the underlying Kafka clients. -`KafkaClientService` provides thread-safe access to `Producer` and `Consumer`. - -[source,java] ----- -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.event.Observes; -import javax.inject.Inject; - -import org.apache.kafka.clients.producer.ProducerRecord; - -import io.quarkus.runtime.StartupEvent; -import io.smallrye.reactive.messaging.kafka.KafkaClientService; -import io.smallrye.reactive.messaging.kafka.KafkaConsumer; -import io.smallrye.reactive.messaging.kafka.KafkaProducer; - -@ApplicationScoped -public class PriceSender { - - @Inject - KafkaClientService clientService; - - void onStartup(@Observes StartupEvent startupEvent) { - KafkaProducer producer = clientService.getProducer("generated-price"); - producer.runOnSendingThread(client -> client.send(new ProducerRecord<>("prices", 2.4))) - .await().indefinitely(); - } -} ----- - -[IMPORTANT] -==== -The `KafkaClientService` is an experimental API and can change in the future. -==== - -You can also get the Kafka configuration injected to your application and create Kafka producer, consumer and admin clients directly: - -[source,java] ----- -import io.smallrye.common.annotation.Identifier; -import org.apache.kafka.clients.admin.AdminClient; -import org.apache.kafka.clients.admin.AdminClientConfig; -import org.apache.kafka.clients.admin.KafkaAdminClient; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.inject.Produces; -import javax.inject.Inject; -import java.util.HashMap; -import java.util.Map; - -@ApplicationScoped -public class KafkaClients { - - @Inject - @Identifier("default-kafka-broker") - Map config; - - @Produces - AdminClient getAdmin() { - Map copy = new HashMap<>(); - for (Map.Entry entry : config.entrySet()) { - if (AdminClientConfig.configNames().contains(entry.getKey())) { - copy.put(entry.getKey(), entry.getValue()); - } - } - return KafkaAdminClient.create(copy); - } - -} - ----- - -The `default-kafka-broker` configuration map contains all application properties prefixed with `kafka.` or `KAFKA_`. -For more configuration options check out <>. - -[[kafka-serialization]] -== JSON serialization - -Quarkus has built-in capabilities to deal with JSON Kafka messages. - -Imagine we have a `Fruit` data class as follows: - -[source,java] ----- -public class Fruit { - - public String name; - public int price; - - public Fruit() { - } - - public Fruit(String name, int price) { - this.name = name; - this.price = price; - } -} ----- - -And we want to use it to receive messages from Kafka, make some price transformation, and send messages back to Kafka. - -[source,java] ----- -import io.smallrye.reactive.messaging.annotations.Broadcast; -import org.eclipse.microprofile.reactive.messaging.Incoming; -import org.eclipse.microprofile.reactive.messaging.Outgoing; - -import javax.enterprise.context.ApplicationScoped; - -/** -* A bean consuming data from the "fruit-in" channel and applying some price conversion. -* The result is pushed to the "fruit-out" channel. -*/ -@ApplicationScoped -public class FruitProcessor { - - private static final double CONVERSION_RATE = 0.88; - - @Incoming("fruit-in") - @Outgoing("fruit-out") - @Broadcast - public Fruit process(Fruit fruit) { - fruit.price = fruit.price * CONVERSION_RATE; - return fruit; - } - -} ----- - -To do this, we will need to setup JSON serialization with Jackson or JSON-B. - -NOTE: With JSON serialization correctly configured, you can also use `Publisher` and `Emitter`. - -[[jackson-serialization]] -=== Serializing via Jackson - -Quarkus has built-in support for JSON serialization and deserialization based on Jackson. -It will also <> the serializer and deserializer for you, so you do not have to configure anything. -When generation is disabled, you can use the provided `ObjectMapperSerializer` and `ObjectMapperDeserializer` as explained below. - -There is an existing `ObjectMapperSerializer` that can be used to serialize all data objects via Jackson. -You may create an empty subclass if you want to use <>. - -NOTE: By default, the `ObjectMapperSerializer` serializes null as the `"null"` String, this can be customized by setting the Kafka configuration -property `json.serialize.null-as-null=true` which will serialize null as `null`. -This is handy when using a compacted topic, as `null` is used as a tombstone to know which messages delete during compaction phase. - -The corresponding deserializer class needs to be subclassed. -So, let's create a `FruitDeserializer` that extends the `ObjectMapperDeserializer`. - -[source,java] ----- -package com.acme.fruit.jackson; - -import io.quarkus.kafka.client.serialization.ObjectMapperDeserializer; - -public class FruitDeserializer extends ObjectMapperDeserializer { - public FruitDeserializer() { - super(Fruit.class); - } -} ----- - -Finally, configure your channels to use the Jackson serializer and deserializer. - -[source,properties] ----- -# Configure the Kafka source (we read from it) -mp.messaging.incoming.fruit-in.topic=fruit-in -mp.messaging.incoming.fruit-in.value.deserializer=com.acme.fruit.jackson.FruitDeserializer - -# Configure the Kafka sink (we write to it) -mp.messaging.outgoing.fruit-out.topic=fruit-out -mp.messaging.outgoing.fruit-out.value.serializer=io.quarkus.kafka.client.serialization.ObjectMapperSerializer ----- - -Now, your Kafka messages will contain a Jackson serialized representation of your `Fruit` data object. -In this case, the `deserializer` configuration is not necessary as the <> is enabled by default. - -If you want to deserialize a list of fruits, you need to create a deserializer with a Jackson `TypeReference` denoted the generic collection used. - -[source,java] ----- -package com.acme.fruit.jackson; - -import java.util.List; -import com.fasterxml.jackson.core.type.TypeReference; -import io.quarkus.kafka.client.serialization.ObjectMapperDeserializer; - -public class ListOfFruitDeserializer extends ObjectMapperDeserializer> { - public ListOfFruitDeserializer() { - super(new TypeReference>() {}); - } -} ----- - -[[jsonb-serialization]] -=== Serializing via JSON-B - -First, you need to include the `quarkus-jsonb` extension. - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-jsonb - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-jsonb") ----- - -There is an existing `JsonbSerializer` that can be used to serialize all data objects via JSON-B. -You may create an empty subclass if you want to use <>. - -NOTE: By default, the `JsonbSerializer` serializes null as the `"null"` String, this can be customized by setting the Kafka configuration -property `json.serialize.null-as-null=true` which will serialize null as `null`. -This is handy when using a compacted topic, as `null` is used as a tombstone to know which messages delete during compaction phase. - -The corresponding deserializer class needs to be subclassed. -So, let's create a `FruitDeserializer` that extends the generic `JsonbDeserializer`. - -[source,java] ----- -package com.acme.fruit.jsonb; - -import io.quarkus.kafka.client.serialization.JsonbDeserializer; - -public class FruitDeserializer extends JsonbDeserializer { - public FruitDeserializer() { - super(Fruit.class); - } -} ----- - -Finally, configure your channels to use the JSON-B serializer and deserializer. - -[source,properties] ----- -# Configure the Kafka source (we read from it) -mp.messaging.incoming.fruit-in.connector=smallrye-kafka -mp.messaging.incoming.fruit-in.topic=fruit-in -mp.messaging.incoming.fruit-in.value.deserializer=com.acme.fruit.jsonb.FruitDeserializer - -# Configure the Kafka sink (we write to it) -mp.messaging.outgoing.fruit-out.connector=smallrye-kafka -mp.messaging.outgoing.fruit-out.topic=fruit-out -mp.messaging.outgoing.fruit-out.value.serializer=io.quarkus.kafka.client.serialization.JsonbSerializer ----- - -Now, your Kafka messages will contain a JSON-B serialized representation of your `Fruit` data object. - -If you want to deserialize a list of fruits, you need to create a deserializer with a `Type` denoted the generic collection used. - -[source,java] ----- -package com.acme.fruit.jsonb; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.List; -import io.quarkus.kafka.client.serialization.JsonbDeserializer; - -public class ListOfFruitDeserializer extends JsonbDeserializer> { - public ListOfFruitDeserializer() { - super(new ArrayList() {}.getClass().getGenericSuperclass()); - } -} ----- - -NOTE: If you don't want to create a deserializer for each data object, you can use the generic `io.vertx.kafka.client.serialization.JsonObjectDeserializer` -that will deserialize to a `io.vertx.core.json.JsonObject`. The corresponding serializer can also be used: `io.vertx.kafka.client.serialization.JsonObjectSerializer`. - -== Avro Serialization - -This is described in a dedicated guide: xref:kafka-schema-registry-avro.adoc[Using Apache Kafka with Schema Registry and Avro]. - -[[serialization-autodetection]] -== Serializer/deserializer autodetection - -When using SmallRye Reactive Messaging with Kafka (`io.quarkus:quarkus-smallrye-reactive-messaging-kafka`), Quarkus can often automatically detect the correct serializer and deserializer class. -This autodetection is based on declarations of `@Incoming` and `@Outgoing` methods, as well as injected ``@Channel``s. - -For example, if you declare - -[source,java] ----- -@Outgoing("generated-price") -public Multi generate() { - ... -} ----- - -and your configuration indicates that the `generated-price` channel uses the `smallrye-kafka` connector, then Quarkus will automatically set the `value.serializer` to Kafka's built-in `IntegerSerializer`. - -Similarly, if you declare - -[source,java] ----- -@Incoming("my-kafka-records") -public void consume(KafkaRecord record) { - ... -} ----- - -and your configuration indicates that the `my-kafka-records` channel uses the `smallrye-kafka` connector, then Quarkus will automatically set the `key.deserializer` to Kafka's built-in `LongDeserializer`, as well as the `value.deserializer` to `ByteArrayDeserializer`. - -Finally, if you declare - -[source,java] ----- -@Inject -@Channel("price-create") -Emitter priceEmitter; ----- - -and your configuration indicates that the `price-create` channel uses the `smallrye-kafka` connector, then Quarkus will automatically set the `value.serializer` to Kafka's built-in `DoubleSerializer`. - -The full set of types supported by the serializer/deserializer autodetection is: - -* `short` and `java.lang.Short` -* `int` and `java.lang.Integer` -* `long` and `java.lang.Long` -* `float` and `java.lang.Float` -* `double` and `java.lang.Double` -* `byte[]` -* `java.lang.String` -* `java.util.UUID` -* `java.nio.ByteBuffer` -* `org.apache.kafka.common.utils.Bytes` -* `io.vertx.core.buffer.Buffer` -* `io.vertx.core.json.JsonObject` -* `io.vertx.core.json.JsonArray` -* classes generated from Avro schemas, as well as Avro `GenericRecord`, if Confluent or Apicurio Registry _serde_ is present -** see xref:kafka-schema-registry-avro.adoc[Using Apache Kafka with Schema Registry and Avro] for more information about using Confluent or Apicurio Registry libraries -* classes for which a subclass of `ObjectMapperSerializer` / `ObjectMapperDeserializer` is present, as described in <> -** it is technically not needed to subclass `ObjectMapperSerializer`, but in such case, autodetection isn't possible -* classes for which a subclass of `JsonbSerializer` / `JsonbDeserializer` is present, as described in <> -** it is technically not needed to subclass `JsonbSerializer`, but in such case, autodetection isn't possible - -If a serializer/deserializer is set by configuration, it won't be replaced by the autodetection. - -In case you have any issues with serializer autodetection, you can switch it off completely by setting `quarkus.reactive-messaging.kafka.serializer-autodetection.enabled=false`. -If you find you need to do this, please file a bug in the link:https://github.com/quarkusio/quarkus/issues[Quarkus issue tracker] so we can fix whatever problem you have. - -[[serialization-generation]] -== JSON Serializer/deserializer generation -Quarkus automatically generates serializers and deserializers for channels where: - -1. the serializer/deserializer is not configured -2. the auto-detection did not find a matching serializer/deserializer - -It uses Jackson underneath. - -This generation can be disabled using: - -[source, properties] ----- -quarkus.reactive-messaging.kafka.serializer-generation.enabled=false ----- - -IMPORTANT: Generation does not support collections such as `List`. -Refer to <> to write your own serializer/deserializer for this case. - -== Using Schema Registry - -This is described in a dedicated guide: xref:kafka-schema-registry-avro.adoc[Using Apache Kafka with Schema Registry and Avro]. - -[[kafka-health-check]] -== Health Checks - -Quarkus provides several health checks for Kafka. -These checks are used in combination with the `quarkus-smallrye-health` extension. - -=== Kafka Broker Readiness Check -When using the `quarkus-kafka-client` extension, you can enable _readiness_ health check by setting the `quarkus.kafka.health.enabled` property to `true` in your `application.properties`. -This check reports the status of the interaction with a _default_ Kafka broker (configured using `kafka.bootstrap.servers`). -It requires an _admin connection_ with the Kafka broker, and it is disabled by default. -If enabled, when you access the `/q/health/ready` endpoint of your application, you will have information about the connection validation status. - -=== Kafka Reactive Messaging Health Checks -When using Reactive Messaging and the Kafka connector, each configured channel (incoming or outgoing) provides _startup_, _liveness_ and _readiness_ checks. - -- The _startup_ check verifies that the communication with Kafka cluster is established. -- The _liveness_ check captures any unrecoverable failure happening during the communication with Kafka. -- The _readiness_ check verifies that the Kafka connector is ready to consume/produce messages to the configured Kafka topics. - -For each channel, you can disable the checks using: - -[source, properties] ----- -# Disable both liveness and readiness checks with `health-enabled=false`: - -# Incoming channel (receiving records form Kafka) -mp.messaging.incoming.your-channel.health-enabled=false -# Outgoing channel (writing records to Kafka) -mp.messaging.outgoing.your-channel.health-enabled=false - -# Disable only the readiness check with `health-readiness-enabled=false`: - -mp.messaging.incoming.your-channel.health-readiness-enabled=false -mp.messaging.outgoing.your-channel.health-readiness-enabled=false ----- - -NOTE: You can configure the `bootstrap.servers` for each channel using `mp.messaging.incoming|outgoing.$channel.bootstrap.servers` property. -Default is `kafka.bootstrap.servers`. - -Reactive Messaging _startup_ and _readiness_ checks offer two strategies. -The default strategy verifies that an active connection is established with the broker. -This approach is not intrusive as it's based on built-in Kafka client metrics. - -Using the `health-topic-verification-enabled=true` attribute, _startup_ probe uses an _admin client_ to check for the list of topics. -Whereas the _readiness_ probe for an incoming channel checks that at least one partition is assigned for consumption, -and for an outgoing channel checks that the topic used by the producer exist in the broker. - -Note that to achieve this, an _admin connection_ is required. -You can adjust the timeout for topic verification calls to the broker using the `health-topic-verification-timeout` configuration. - -== Kafka Streams - -This is described in a dedicated guide: xref:kafka-streams.adoc[Using Apache Kafka Streams]. - -== Using Snappy for message compression - -On _outgoing_ channels, you can enable Snappy compression by setting the `compression.type` attribute to `snappy`: - -[source, properties] ----- -mp.messaging.outgoing.fruit-out.compression.type=snappy ----- - -In JVM mode, it will work out of the box. -However, to compile your application to a native executable, you need to: - -1. Uses GraalVM 21.+ -2. Add `quarkus.kafka.snappy.enabled=true` to your `application.properties` - -In native mode, Snappy is disabled by default as the use of Snappy requires embedding a native library and unpacking it when the application starts. - -== Authentication with OAuth - -If your Kafka broker uses OAuth as authentication mechanism, you need to configure the Kafka consumer to enable this authentication process. -First, add the following dependency to your application: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.strimzi - kafka-oauth-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.strimzi:kafka-oauth-client") ----- - -This dependency provides the callback handler required to handle the OAuth workflow. -Then, in the `application.properties`, add: - -[source, properties] ----- -mp.messaging.connector.smallrye-kafka.security.protocol=SASL_PLAINTEXT -mp.messaging.connector.smallrye-kafka.sasl.mechanism=OAUTHBEARER -mp.messaging.connector.smallrye-kafka.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required \ - oauth.client.id="team-a-client" \ - oauth.client.secret="team-a-client-secret" \ - oauth.token.endpoint.uri="http://keycloak:8080/auth/realms/kafka-authz/protocol/openid-connect/token" ; -mp.messaging.connector.smallrye-kafka.sasl.login.callback.handler.class=io.strimzi.kafka.oauth.client.JaasClientOauthLoginCallbackHandler - -quarkus.ssl.native=true ----- - -Update the `oauth.client.id`, `oauth.client.secret` and `oauth.token.endpoint.uri` values. - -OAuth authentication works for both JVM and native modes. Since SSL in not enabled by default in native mode, `quarkus.ssl.native=true` must be added to support JaasClientOauthLoginCallbackHandler, which uses SSL. (See the xref:native-and-ssl.adoc[Using SSL with Native Executables] guide for more details.) - -== Testing a Kafka application - -=== Testing without a broker - -It can be useful to test the application without having to start a Kafka broker. -To achieve this, you can _switch_ the channels managed by the Kafka connector to _in-memory_. - -IMPORTANT: This approach only works for JVM tests. It cannot be used for native tests (because they do not support injection). - -Let's say we want to test the following processor application: - -[source, java] ----- -@ApplicationScoped -public class BeverageProcessor { - - @Incoming("orders") - @Outgoing("beverages") - Beverage process(Order order) { - System.out.println("Order received " + order.getProduct()); - Beverage beverage = new Beverage(); - beverage.setBeverage(order.getProduct()); - beverage.setCustomer(order.getCustomer()); - beverage.setOrderId(order.getOrderId()); - beverage.setPreparationState("RECEIVED"); - return beverage; - } - -} ----- - -First, add the following test dependency to your application: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.smallrye.reactive - smallrye-reactive-messaging-in-memory - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.smallrye.reactive:smallrye-reactive-messaging-in-memory") ----- - -Then, create a Quarkus Test Resource as follows: - -[source, java] ----- -public class KafkaTestResourceLifecycleManager implements QuarkusTestResourceLifecycleManager { - - @Override - public Map start() { - Map env = new HashMap<>(); - Map props1 = InMemoryConnector.switchIncomingChannelsToInMemory("orders"); // <1> - Map props2 = InMemoryConnector.switchOutgoingChannelsToInMemory("beverages"); // <2> - env.putAll(props1); - env.putAll(props2); - return env; // <3> - } - - @Override - public void stop() { - InMemoryConnector.clear(); // <4> - } -} ----- -<1> Switch the incoming channel `orders` (expecting messages from Kafka) to in-memory. -<2> Switch the outgoing channel `beverages` (writing messages to Kafka) to in-memory. -<3> Builds and returns a `Map` containing all the properties required to configure the application to use in-memory channels. -<4> When the test stops, clear the `InMemoryConnector` (discard all the received and sent messages) - -Create a Quarkus Test using the test resource created above: - -[source, java] ----- -@QuarkusTest -@QuarkusTestResource(KafkaTestResourceLifecycleManager.class) -class BaristaTest { - - @Inject - InMemoryConnector connector; // <1> - - @Test - void testProcessOrder() { - InMemorySource ordersIn = connector.source("orders"); // <2> - InMemorySink beveragesOut = connector.sink("beverages"); // <3> - - Order order = new Order(); - order.setProduct("coffee"); - order.setName("Coffee lover"); - order.setOrderId("1234"); - - ordersIn.send(order); // <4> - - await().>>until(beveragesOut::received, t -> t.size() == 1); // <5> - - Beverage queuedBeverage = beveragesOut.received().get(0).getPayload(); - Assertions.assertEquals(Beverage.State.READY, queuedBeverage.getPreparationState()); - Assertions.assertEquals("coffee", queuedBeverage.getBeverage()); - Assertions.assertEquals("Coffee lover", queuedBeverage.getCustomer()); - Assertions.assertEquals("1234", queuedBeverage.getOrderId()); - } - -} ----- -<1> Inject the in-memory connector in your test class. -<2> Retrieve the incoming channel (`orders`) - the channel must have been switched to in-memory in the test resource. -<3> Retrieve the outgoing channel (`beverages`) - the channel must have been switched to in-memory in the test resource. -<4> Use the `send` method to send a message to the `orders` channel. -The application will process this message and send a message to `beverages` channel. -<5> Use the `received` method on `beverages` channel to check the messages produced by the application. - -[IMPORTANT] -==== -With in-memory channels we were able to test application code processing messages without starting a Kafka broker. -Note that different in-memory channels are independent, and switching channel connector to in-memory does not simulate message delivery between channels configured to the same Kafka topic. -==== - -=== Starting Kafka in a test resource - -Alternatively, you can start a Kafka broker in a test resource. -The following snippet shows a test resource starting a Kafka broker using https://www.testcontainers.org/modules/kafka/[Testcontainers]: - -[source, java] ----- -public class KafkaResource implements QuarkusTestResourceLifecycleManager { - - private final KafkaContainer kafka = new KafkaContainer(); - - @Override - public Map start() { - kafka.start(); - return Collections.singletonMap("kafka.bootstrap.servers", kafka.getBootstrapServers()); // <1> - } - - @Override - public void stop() { - kafka.close(); - } -} ----- -<1> Configure the Kafka bootstrap location, so the application connects to this broker. - -[[kafka-dev-services]] -include::kafka-dev-services.adoc[leveloffset=+1] - -== Kubernetes Service Bindings - -Quarkus Kafka extension supports -xref:deploying-to-kubernetes.adoc[Service Binding Specification for Kubernetes]. -You can enable this by adding the `quarkus-kubernetes-service-binding` extension to your application. - -When running in appropriately configured Kubernetes clusters, Kafka extension will pull its Kafka broker connection configuration from the service binding available inside the cluster, without the need for user configuration. - -== Execution model - -Reactive Messaging invokes user's methods on an I/O thread. -Thus, by default, the methods must not block. -As described in <>, you need to add the `@Blocking` annotation on the method if this method will block the caller thread. - -See the xref:quarkus-reactive-architecture.adoc[Quarkus Reactive Architecture documentation] for further details on this topic. - -[[kafka-configuration]] -== Configuration Reference - -More details about the SmallRye Reactive Messaging configuration can be found in the https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.1/kafka/kafka.html[SmallRye Reactive Messaging - Kafka Connector Documentation]. - -The most important attributes are listed in the tables below: - -=== Incoming channel configuration (polling from Kafka) - -The following attributes are configured using: - -[source, properties] ----- -mp.messaging.incoming.your-channel-name.attribute=value ----- - -Some properties have aliases which can be configured globally: - -[source, properties] ----- -kafka.bootstrap.servers=... ----- - -You can also pass any property supported by the underlying https://kafka.apache.org/documentation/#consumerconfigs[Kafka consumer]. - -For example, to configure the `max.poll.records` property, use: - -[source,properties] ----- -mp.messaging.incoming.[channel].max.poll.records=1000 ----- - -Some consumer client properties are configured to sensible default values: - -If not set, `reconnect.backoff.max.ms` is set to `10000` to avoid high load on disconnection. - -If not set, `key.deserializer` is set to `org.apache.kafka.common.serialization.StringDeserializer`. - -The consumer `client.id` is configured according to the number of clients to create using `mp.messaging.incoming.[channel].partitions` property. - -- If a `client.id` is provided, it is used as-is or suffixed with client index if `partitions` property is set. -- If a `client.id` is not provided, it is generated as `kafka-consumer-[channel][-index]`. - - -include::smallrye-kafka-incoming.adoc[] - -=== Outgoing channel configuration (writing to Kafka) - -The following attributes are configured using: - -[source, properties] ----- -mp.messaging.outgoing.your-channel-name.attribute=value ----- - -Some properties have aliases which can be configured globally: - -[source, properties] ----- -kafka.bootstrap.servers=... ----- - -Some producer client properties are configured to sensible default values: - -If not set, `reconnect.backoff.max.ms` is set to `10000` to avoid high load on disconnection. - -If not set, `key.serializer` is set to `org.apache.kafka.common.serialization.StringSerializer`. - -If not set, producer `client.id` is generated as `kafka-producer-[channel]`. - -include::smallrye-kafka-outgoing.adoc[] - -[[kafka-configuration-resolution]] -=== Kafka Configuration Resolution - -Quarkus exposes all Kafka related application properties, prefixed with `kafka.` or `KAFKA_` inside a configuration map with `default-kafka-broker` name. -This configuration is used to establish the connection with the Kafka broker. - -In addition to this default configuration, you can configure the name of the `Map` producer using the `kafka-configuration` attribute: - -[source, properties] ----- -mp.messaging.incoming.my-channel.connector=smallrye-kafka -mp.messaging.incoming.my-channel.kafka-configuration=my-configuration ----- - -In this case, the connector looks for the `Map` associated with the `my-configuration` name. -If `kafka-configuration` is not set, an optional lookup for a `Map` exposed with the channel name (`my-channel` in the previous example) is done. - -[source, java] ----- -@Produces -@ApplicationScoped -@Identifier("my-configuration") -Map outgoing() { - return Map.ofEntries( - Map.entry("value.serializer", ObjectMapperSerializer.class.getName()) - ); -} ----- - -IMPORTANT: If `kafka-configuration` is set and no `Map` can be found, the deployment fails. - -Attribute values are resolved as follows: - -1. the attribute is set directly on the channel configuration (`mp.messaging.incoming.my-channel.attribute=value`), -2. if not set, the connector looks for a `Map` with the channel name or the configured `kafka-configuration` (if set) and the value is retrieved from that `Map` -3. If the resolved `Map` does not contain the value the default `Map` is used (exposed with the `default-kafka-broker` name) - -== Integrating with Kafka - Common patterns - -=== Writing to Kafka from an HTTP endpoint - -To send messages to Kafka from an HTTP endpoint, inject an `Emitter` (or a `MutinyEmitter`) in your endpoint: - -[source, java] ----- -package org.acme; - -import java.util.concurrent.CompletionStage; - -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.eclipse.microprofile.reactive.messaging.Channel; -import org.eclipse.microprofile.reactive.messaging.Emitter; - -@Path("/") -public class ResourceSendingToKafka { - - @Channel("kafka") Emitter emitter; // <1> - - @POST - @Produces(MediaType.TEXT_PLAIN) - public CompletionStage send(String payload) { // <2> - return emitter.send(payload); // <3> - } -} ----- -<1> Inject an `Emitter` -<2> The HTTP method receives the payload and returns a `CompletionStage` completed when the message is written to Kafka -<3> Send the message to Kafka, the `send` method returns a `CompletionStage` - -The endpoint sends the passed payload (from a `POST` HTTP request) to the emitter. -The emitter's channel is mapped to a Kafka topic in the `application.properties` file: - -[source, properties] ----- -mp.messaging.outgoing.kafka.connector=smallrye-kafka -mp.messaging.outgoing.kafka.topic=my-topic ----- - -The endpoint returns a `CompletionStage` indicating the asynchronous nature of the method. -The `emitter.send` method returns a `CompletionStage` . -The returned future is completed when the message has been written to Kafka. -If the writing fails, the returned `CompletionStage` is completed exceptionally. - -If the endpoint does not return a `CompletionStage`, the HTTP response may be written before the message is sent to Kafka, and so failures won't be reported to the user. - -If you need to send a Kafka record, use: - -[source, java] ----- -package org.acme; - -import java.util.concurrent.CompletionStage; - -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.eclipse.microprofile.reactive.messaging.Channel; -import org.eclipse.microprofile.reactive.messaging.Emitter; - -import io.smallrye.reactive.messaging.kafka.Record; - -@Path("/") -public class ResourceSendingToKafka { - - @Channel("kafka") Emitter> emitter; // <1> - - - @POST - @Produces(MediaType.TEXT_PLAIN) - public CompletionStage send(String payload) { - return emitter.send(Record.of("my-key", payload)); // <2> - } -} ----- -<1> Note the usage of an `Emitter>` -<2> Create the record using `Record.of(k, v)` - -=== Persisting Kafka messages with Hibernate with Panache - -To persist objects received from Kafka into a database, you can use Hibernate with Panache. - -NOTE: If you use Hibernate Reactive, look at <>. - -Let's imagine you receive `Fruit` objects. -For simplicity purposes, our `Fruit` class is pretty simple: - -[source, java] ----- -package org.acme; - -import javax.persistence.Entity; - -import io.quarkus.hibernate.orm.panache.PanacheEntity; - -@Entity -public class Fruit extends PanacheEntity { - - public String name; - -} ----- - -To consume `Fruit` instances stored on a Kafka topic, and persist them into a database, you can use the following approach: - -[source, java] ----- -package org.acme; - -import javax.enterprise.context.ApplicationScoped; -import javax.transaction.Transactional; - -import org.eclipse.microprofile.reactive.messaging.Incoming; - -import io.smallrye.common.annotation.Blocking; - -@ApplicationScoped -public class FruitConsumer { - - @Incoming("fruits") // <1> - @Transactional // <2> - public void persistFruits(Fruit fruit) { // <3> - fruit.persist(); // <4> - } -} ----- -<1> Configuring the incoming channel. This channel reads from Kafka. -<2> As we are writing in a database, we must be in a transaction. This annotation starts a new transaction and commits it when the method returns. -Quarkus automatically considers the method as _blocking_. Indeed, writing to a database using classic Hibernate is blocking. So, Quarkus calls the method on a worker thread you can block (and not an I/O thread). -<3> The method receives each Fruit. Note that you would need a deserializer to reconstruct the Fruit instances from the Kafka records. -<4> Persist the received `fruit` object. - -As mentioned in <4>, you need a deserializer that can create a `Fruit` from the record. -This can be done using a Jackson deserializer: - -[source, java] ----- -package org.acme; - -import io.quarkus.kafka.client.serialization.ObjectMapperDeserializer; - -public class FruitDeserializer extends ObjectMapperDeserializer { - public FruitDeserializer() { - super(Fruit.class); - } -} ----- - -The associated configuration would be: - -[source, properties] ----- -mp.messaging.incoming.fruits.connector=smallrye-kafka -mp.messaging.incoming.fruits.value.deserializer=org.acme.FruitDeserializer ----- - -Check <> for more detail about the usage of Jackson with Kafka. -You can also use Avro. - -[#persisting-kafka-messages-with-hibernate-reactive] -=== Persisting Kafka messages with Hibernate Reactive - -To persist objects received from Kafka into a database, you can use Hibernate Reactive with Panache. - -Let's imagine you receive `Fruit` objects. -For simplicity purposes, our `Fruit` class is pretty simple: - -[source, java] ----- -package org.acme; - -import javax.persistence.Entity; - -import io.quarkus.hibernate.reactive.panache.PanacheEntity; // <1> - -@Entity -public class Fruit extends PanacheEntity { - - public String name; - -} ----- -<1> Make sure to use the reactive variant - -To consume `Fruit` instances stored on a Kafka topic, and persist them into a database, you can use the following approach: - -[source, java] ----- -package org.acme; - -import javax.enterprise.context.ApplicationScoped; - -import org.eclipse.microprofile.reactive.messaging.Incoming; - -import io.quarkus.hibernate.reactive.panache.Panache; -import io.smallrye.mutiny.Uni; - -@ApplicationScoped -public class FruitStore { - - @Incoming("fruits") - public Uni persist(Fruit fruit) { - return Panache.withTransaction(() -> // <1> - fruit.persist() // <2> - .map(persisted -> null) // <3> - ); - } - -} ----- -<1> Instruct Panache to run the given (asynchronous) action in a transaction. The transaction completes when the action completes. -<2> Persist the entity. It returns a `Uni`. -<3> Switch back to a `Uni`. - -Unlike with _classic_ Hibernate, you can't use `@Transactional`. -Instead, we use `Panache.withTransaction` and persist our entity. -The `map` is used to return a `Uni` and not a `Uni`. - -You need a deserializer that can create a `Fruit` from the record. -This can be done using a Jackson deserializer: - -[source, java] ----- -package org.acme; - -import io.quarkus.kafka.client.serialization.ObjectMapperDeserializer; - -public class FruitDeserializer extends ObjectMapperDeserializer { - public FruitDeserializer() { - super(Fruit.class); - } -} ----- - -The associated configuration would be: - -[source, properties] ----- -mp.messaging.incoming.fruits.connector=smallrye-kafka -mp.messaging.incoming.fruits.value.deserializer=org.acme.FruitDeserializer ----- - -Check <> for more detail about the usage of Jackson with Kafka. -You can also use Avro. - -=== Writing entities managed by Hibernate to Kafka - -Let's imagine the following process: - -1. You receive an HTTP request with a payload, -2. You create an Hibernate entity instance from this payload, -3. You persist that entity into a database, -4. You send the entity to a Kafka topic - -NOTE: If you use Hibernate Reactive, look at <>. - -Because we write to a database, we must run this method in a transaction. -Yet, sending the entity to Kafka happens asynchronously. -The operation returns a `CompletionStage` (or a `Uni` if you use a `MutinyEmitter`) reporting when the operation completes. -We must be sure that the transaction is still running until the object is written. -Otherwise, you may access the object outside the transaction, which is not allowed. - -To implement this process, you need the following approach: - -[source, java] ----- -package org.acme; - -import java.util.concurrent.CompletionStage; - -import javax.transaction.Transactional; -import javax.ws.rs.POST; -import javax.ws.rs.Path; - -import org.eclipse.microprofile.reactive.messaging.Channel; -import org.eclipse.microprofile.reactive.messaging.Emitter; - -@Path("/") -public class ResourceSendingToKafka { - - @Channel("kafka") Emitter emitter; - - @POST - @Path("/fruits") - @Transactional // <1> - public CompletionStage storeAndSendToKafka(Fruit fruit) { // <2> - fruit.persist(); - return emitter.send(fruit); // <3> - } -} ----- -<1> As we are writing to the database, make sure we run inside a transaction -<2> The method receives the fruit instance to persist. It returns a `CompletionStage` which is used for the transaction demarcation. The transaction is committed when the return `CompletionStage` completes. In our case, it's when the message is written to Kafka. -<3> Send the managed instance to Kafka. Make sure we wait for the message to complete before closing the transaction. - -[#writing-entities-managed-by-hibernate-reactive-to-kafka] -=== Writing entities managed by Hibernate Reactive to Kafka - -To send to Kafka entities managed by Hibernate Reactive, we recommend using: - -* RESTEasy Reactive to serve HTTP requests -* A `MutinyEmitter` to send message to a channel, so it can be easily integrated with the Mutiny API exposed by Hibernate Reactive or Hibernate Reactive with Panache. - -The following example demonstrates how to receive a payload, store it in the database using Hibernate Reactive with Panache, and send the persisted entity to Kafka: - -[source, java] ----- -package org.acme; - -import javax.ws.rs.POST; -import javax.ws.rs.Path; - -import org.eclipse.microprofile.reactive.messaging.Channel; - -import io.quarkus.hibernate.reactive.panache.Panache; -import io.smallrye.mutiny.Uni; -import io.smallrye.reactive.messaging.MutinyEmitter; - -@Path("/") -public class ReactiveGreetingResource { - - @Channel("kafka") MutinyEmitter emitter; // <1> - - @POST - @Path("/fruits") - public Uni sendToKafka(Fruit fruit) { // <2> - return Panache.withTransaction(() -> // <3> - fruit.persist() - ) - .chain(f -> emitter.send(f)); // <4> - } -} ----- -<1> Inject a `MutinyEmitter` which exposes a Mutiny API. It simplifies the integration with the Mutiny API exposed by Hibernate Reactive with Panache. -<2> The HTTP method receiving the payload returns a `Uni`. The HTTP response is written when the operation completes (the entity is persisted and written to Kafka). -<3> We need to write the entity into the database in a transaction. -<4> Once the persist operation completes, we send the entity to Kafka. The `send` method returns a `Uni`. - - -=== Streaming Kafka topics as server-sent events - -Streaming a Kafka topic as server-sent events (SSE) is straightforward: - -1. You inject the channel representing the Kafka topic in your HTTP endpoint -2. You return that channel as a `Publisher` or a `Multi` from the HTTP method - -The following code provides an example: - -[source, java] ----- -@Channel("fruits") -Multi fruits; - -@GET -@Produces(MediaType.SERVER_SENT_EVENTS) -public Multi stream() { - return fruits; -} ----- - -Some environment cuts the SSE connection when there is not enough activity. -The workaround consists of sending _ping_ messages (or empty objects) periodically. - -[source, java] ----- -@Channel("fruits") -Multi fruits; - -@Inject -ObjectMapper mapper; - -@GET -@Produces(MediaType.SERVER_SENT_EVENTS) -public Multi stream() { - return Multi.createBy().merging() - .streams( - fruits.map(this::toJson), - emitAPeriodicPing() - ); -} - -Multi emitAPeriodicPing() { - return Multi.createFrom().ticks().every(Duration.ofSeconds(10)) - .onItem().transform(x -> "{}"); -} - -private String toJson(Fruit f) { - try { - return mapper.writeValueAsString(f); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); - } -} ----- - -The workaround is a bit more complex as besides sending the fruits coming from Kafka, we need to send pings periodically. -To achieve this we merge the stream coming from Kafka and a periodic stream emitting `{}` every 10 seconds. - -== Logging - -To reduce the amount of log written by the Kafka client, Quarkus sets the level of the following log categories to `WARNING`: - -- `org.apache.kafka.clients` -- `org.apache.kafka.common.utils` -- `org.apache.kafka.common.metrics` - -You can override the configuration by adding the following lines to the `application.properties`: - -[source, properties] ----- -quarkus.log.category."org.apache.kafka.clients".level=INFO -quarkus.log.category."org.apache.kafka.common.utils".level=INFO -quarkus.log.category."org.apache.kafka.common.metrics".level=INFO ----- - -== Going further - -This guide has shown how you can interact with Kafka using Quarkus. -It utilizes SmallRye Reactive Messaging to build data streaming applications. - -If you want to go further, check the documentation of https://smallrye.io/smallrye-reactive-messaging[SmallRye Reactive Messaging], the implementation used in Quarkus. diff --git a/_versions/2.7/guides/kogito-dev-services-build-time-config.adoc b/_versions/2.7/guides/kogito-dev-services-build-time-config.adoc deleted file mode 100644 index 5132a4afd63..00000000000 --- a/_versions/2.7/guides/kogito-dev-services-build-time-config.adoc +++ /dev/null @@ -1,54 +0,0 @@ -[.configuration-legend] -icon:lock[title=Fixed at build time] Configuration property fixed at build time - All other configuration properties are overridable at runtime -[.configuration-reference, cols="80,.^10,.^10"] -|=== - -h|[[quarkus-kogito-dev-services-build-time-config_configuration]]link:#quarkus-kogito-dev-services-build-time-config_configuration[Configuration property] - -h|Type -h|Default - -a|icon:lock[title=Fixed at build time] [[quarkus-kogito-dev-services-build-time-config_quarkus.kogito.devservices.enabled]]`link:#quarkus-kogito-dev-services-build-time-config_quarkus.kogito.devservices.enabled[quarkus.kogito.devservices.enabled]` - -[.description] --- -If DevServices has been explicitly enabled or disabled. DevServices is generally enabled by default, unless there is an existing configuration present. When DevServices is enabled Quarkus will attempt to automatically configure and start a Data Index when running in Dev mode. ---|boolean -|true - - -a|icon:lock[title=Fixed at build time] [[quarkus-kogito-dev-services-build-time-config_quarkus.kogito.devservices.image-name]]`link:#quarkus-kogito-dev-services-build-time-config_quarkus.kogito.devservices.image-name[quarkus.kogito.devservices.image-name]` - -[.description] --- -The container image name to use. ---|string -|quay.io/kiegroup/kogito-data-index-ephemeral - - -a|icon:lock[title=Fixed at build time] [[quarkus-kogito-dev-services-build-time-config_quarkus.kogito.devservices.port]]`link:#quarkus-kogito-dev-services-build-time-config_quarkus.kogito.devservices.port[quarkus.kogito.devservices.port]` - -[.description] --- -Optional fixed port the dev service will listen to. -If not defined, the port will be chosen randomly. ---|int -|8180 - -a|icon:lock[title=Fixed at build time] [[quarkus-kogito-dev-services-build-time-config_quarkus.kogito.devservices.shared]]`link:#quarkus-kogito-dev-services-build-time-config_quarkus.kogito.devservices.shared[quarkus.kogito.devservices.shared]` - -[.description] --- -Indicates if the Data Index instance managed by Quarkus Dev Services is shared. When shared, Quarkus looks for running containers using label-based service discovery. If a matching container is found, it is used, and so a second one is not started. Otherwise, Dev Services for Kogito starts a new container. The discovery uses the `kogito-dev-service-data-index` label. The value is configured using the service-name property. Container sharing is only used in dev mode. ---|boolean -|true - -a|icon:lock[title=Fixed at build time] [[quarkus-kogito-dev-services-build-time-config_quarkus.kogito.devservices.service-name]]`link:#quarkus-kogito-dev-services-build-time-config_quarkus.kogito.devservices.service-name[quarkus.kogito.devservices.service-name]` - -[.description] --- -The value of the `kogito-dev-service-data-index` label attached to the started container. This property is used when shared is set to true. In this case, before starting a container, Dev Services for Kogito looks for a container with the `kogito-dev-service-data-index` label set to the configured value. If found, it will use this container instead of starting a new one. Otherwise it starts a new container with the `kogito-dev-service-data-index` label set to the specified value. This property is used when you need multiple shared Data Index instances. ---|string -|kogito-data-index - -|=== \ No newline at end of file diff --git a/_versions/2.7/guides/kogito-dev-services.adoc b/_versions/2.7/guides/kogito-dev-services.adoc deleted file mode 100644 index 361286d8cce..00000000000 --- a/_versions/2.7/guides/kogito-dev-services.adoc +++ /dev/null @@ -1,65 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Dev Services for Kogito - -include::./attributes.adoc[] - -If any Kogito process-related extension is present (e.g. `kogito-quarkus` or `kogito-quarkus-processes`), Dev Services for Kogito automatically starts a Data Index in dev mode. -So, you don't have to start it manually or have any other service set-up manually. -The application is configured automatically, meaning that will replicate any -Kogito messaging events related to Process Instances and User Tasks into the provisioned Data Index instance. - -Additionally, xref:dev-ui.adoc[Dev UI] available at http://localhost:8080/q/dev[/q/dev] complements this feature with a Dev UI page which helps to Query Data Index via its GraphiQL UI. - -image::dev-ui-kogito-data-index-card.png[alt=Dev UI Kogito,role="center"] - -image::dev-ui-kogito-data-index.png[alt=Dev UI Kogito Data Index GraphiQL,role="center"] - -For more details about how to query data about processes and user tasks, please visit https://docs.kogito.kie.org/latest/html_single/#ref-data-index-service-queries_kogito-configuring[Kogito Data Index documentation]. - -== Enabling / Disabling Dev Services for Kogito - -Dev Services for Kogito is automatically enabled unless: - -- `quarkus.kogito.devservices.enabled` is set to `false` - -Dev Services for Kogito relies on Docker to start the broker. -If your environment does not support Docker, you will need to start the broker manually, or connect to an already running Data Index. - -== Shared Data Index - -In case you would like to share the Data Index instance between applications. -Dev Services for Kogito implements a _service discovery_ mechanism for your multiple Quarkus applications running in _dev_ mode to share a single instance. - -NOTE: Dev Services for Kogito starts the container with the `kogito-dev-service-data-index` label which is used to identify the container. - -If you need multiple (shared) Data Index instances, you can configure the `quarkus.kogito.devservices.service-name` attribute and indicate the instance name. -It looks for a container with the same value, or starts a new one if none can be found. -The default service name is `kogito-data-index`. - -Sharing is enabled by default in dev mode. -You can disable the sharing with `quarkus.kogito.devservices.shared=false`. - -== Setting the port - -By default, Dev Services for Kogito starts a Data Index using port 8180. -You can set the port by configuring the `quarkus.kogito.devservices.port` property. - -== Configuring the image - -Dev Services for Kogito uses: `kiegroup/kogito-data-index-ephemeral` images. -You can select any version from https://quay.io/repository/kiegroup/kogito-data-index-ephemeral?tab=tags. - -[source, properties] ----- -quarkus.kogito.devservices.image-name=quay.io/kiegroup/kogito-data-index-ephemeral ----- - -== References - -* xref:dev-ui.adoc[Dev UI] -* https://docs.kogito.kie.org/latest/html_single/[Kogito Documentation] -* xref:kogito.adoc[Quarkus - Kogito] \ No newline at end of file diff --git a/_versions/2.7/guides/kogito-dmn.adoc b/_versions/2.7/guides/kogito-dmn.adoc deleted file mode 100644 index 7ae91e4b184..00000000000 --- a/_versions/2.7/guides/kogito-dmn.adoc +++ /dev/null @@ -1,260 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Kogito DMN support to add decision automation capabilities to an application - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can use Kogito to add business automation -and power it up with DMN decision support. - -Kogito is a next generation business automation toolkit that originates from well known Open Source projects -Drools (for business rules) and jBPM (for business processes). Kogito aims at providing a newer approach -to business automation where the main message is to expose your business knowledge (processes, rules, decisions, predictions) -in a domain specific way. - -== Prerequisites - -:prerequisites-docker: -:prerequisites-ide: (VSCode is preferred, with the Red Hat DMN Editor VSCode Extension) -include::includes/devtools/prerequisites.adoc[] - -=== DMN Editor - -Kogito Tooling is currently supported via VSCode, web browsers and on other platforms: - -VSCode:: - - Download and install the https://marketplace.visualstudio.com/items?itemName=redhat.vscode-extension-dmn-editor[Red Hat DMN Editor VSCode Extension] to edit and model process definitions from VSCode IDE. - -Online:: - - To avoid any modeler installation you can use directly use https://dmn.new[DMN.new] to author your DMN model through your favorite web browser. - -Other platforms:: - - You can reference to https://kiegroup.github.io/kogito-online/#/download[Business Modeler Hub] to download the latest platforms supported for the https://github.com/kiegroup/kogito-tooling/releases[Kogito tooling releases]. - - -// leave the double space above -== Architecture - -In this example, we build a very simple microservice which offers one REST endpoint: - -* `/pricing` - -This endpoint will be automatically generated based on the defined DMN model. - -=== Decision rules as a DMN model - -A DMN model is an open standard for visual and semantic execution of declarative logic; DMN allows you to externalise decision logic into reusable pieces that can be easily used in declarative way. There are multiple ways of writing rules other than DMN, like: decision tables, decision trees, rules, etc. - -For this example we focus on using the https://drools.org/learn/dmn.html[DMN (Decision Model and Notation)] open standard to describe the decision rules. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the complete example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `kogito-dmn-quickstart` {quickstarts-tree-url}/kogito-dmn-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: kogito-dmn-quickstart -:create-app-extensions: dmn,resteasy-jackson -include::includes/devtools/create-app.adoc[] - -This command generates a Maven project, importing the `kogito-quarkus-decisions` extension -that comes with all needed dependencies and configuration to equip your application -with business automation. -It also imports the `resteasy-jackson` extension that is needed for Kogito to expose REST services. - -The `kogito-quarkus-decisions` is a specialized extension of the Kogito project focusing only on DMN support; if you want to -make use of the full capabilities offered by the Kogito platform, you can reference the generic Kogito extension of Quarkus. - -If you already have your Quarkus project configured, you can add the `kogito-quarkus-decisions` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: dmn -include::includes/devtools/extension-add.adoc[] - -or alternatively: - -:add-extension-extensions: kogito-quarkus-decisions -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.kie.kogito - kogito-quarkus-decisions - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.kie.kogito:kogito-quarkus-decisions") ----- - -== Authoring the DMN model - -We will author a DMN model that will provide a base price quotation based on some criteria. -Create a new file `pricing.dmn` inside the `src/main/resources/` directory of the generated project. - -This model should consist of: - -* `Age` (InputData element, of type `number`) -* `Previous incidents?` (InputData element, of type `boolean`) -* `Base price` (Decision element, of type `number`) - -And the Decision Requirement Graph (DRG) should look like: - -image:kogito-DMN-guide-screenshot-DRG.png[alt=DMN model definition] - -To get started quickly you may copy the DMN model definition file from the -{quickstarts-tree-url}/kogito-dmn-quickstart/src/main/resources/pricing.dmn[quickstart] - -The decision logic for the `Base price` Decision node shall be a DMN Decision Table with the following entries: - -image:kogito-DMN-guide-screenshot-DT.png[alt=DMN Decision Table definition] - -To author the DMN model yourself, just follow these steps: - -* drag an InputData node from the palette, name it `Age` and assign it type `number` using the Properties panel. -* drag an InputData node from the palette, name it `Previous incidents?` and assign it type `boolean` using the Properties panel. -* drag a Decision node from the palette, name it `Base price` and assign it type `number` using the Properties panel. -* establish an `InformationRequirement` edge from `Age` to `Base price` nodes, by using the node palette by mouse overing near the element in the graph. -* establish an `InformationRequirement` edge from `Previous incidents?` to `Base price` nodes, by using the node palette by mouse overing near the element in the graph. -* select the Edit decision logic option for the node `Base price`. -** select Decision Table as the decision logic for the node. -** create the relevant rules (rows) entries as per the above screenshot. -* save the file - -For more information about DMN, you can reference the Kogito documentation at the links below. - -== Running and Using the Application - -=== Running in Dev Mode - -To run the microservice in dev mode, use: - -include::includes/devtools/dev.adoc[] - -=== Running in JVM Mode - -When you're done playing with dev mode, you can run it as a standard Java application. - -First compile it: - -include::includes/devtools/build.adoc[] - -Then run it: - -[source,bash] ----- -java -jar target/quarkus-app/quarkus-run.jar ----- - -=== Running in Native Mode - -This same demo can be compiled into native code: no modifications required. - -This implies that you no longer need to install a JVM on your -production environment, as the runtime technology is included in -the produced binary, and optimized to run with minimal resource overhead. - -Compilation will take a bit longer, so this step is disabled by default; -let's build a native executable with the following command: - -include::includes/devtools/build-native.adoc[] - -Native compilation will always take some time to complete; then, you'll be able to run this binary directly: - -[source,bash] ----- -./target/kogito-dmn-quickstart-1.0.0-SNAPSHOT-runner ----- - -== Testing the Application - -To test your final decision service application, just send a request to the endpoint by supplying as JSON -payload the expected inputs: - -[source,bash] ----- -curl -X POST 'http://localhost:8080/pricing' \ --H 'Accept: application/json' \ --H 'Content-Type: application/json' \ --d '{ "Age": 47, "Previous incidents?": false }' ----- - -In the response, the `Base price` will be quoted -accordingly to the defined DMN model- for a total amount of `500`; this is visible in the response payload: - -[source,JSON] ----- -{"Previous incidents?":false,"Age":47,"Base price":500} ----- - -== Using Test Scenario tool - -Kogito allows to define visually test scenarios, and execute them as JUnit tests as part of the normal build of the Quarkus application. - -To be able to use Test Scenario assets in your application, an additional dependency is required: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.kie.kogito - kogito-scenario-simulation - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("org.kie.kogito:kogito-scenario-simulation") ----- - -You can now create a `KogitoScenarioJunitActivatorTest.java` class file in the `src/test/java/testscenario` directory: -[source,java] ----- -package testscenario; -@org.junit.runner.RunWith(org.kogito.scenariosimulation.runner.KogitoJunitActivator.class) -public class KogitoScenarioJunitActivatorTest { -} ----- - -This activator class is a custom JUnit runner that enables the execution of test scenario files in your application. - -You can now create a `PricingTest.scesim` file in the `src/test/resources` directory: - -image:kogito-DMN-guide-screenshot-scesim.png[alt=DMN Test scenario] - -The test scenarios will be run as part of the JUnit test suite. - -For more information about the Test Scenario tool, you can reference the Kogito documentation at the links below. - -== Where to go from here - -This was a minimal example using a DMN modeling; as you can see the Kogito framework allow to quickly define a decision logic using a visual and standard notation, such as DMN, and create a fully functioning microservice on top of Quarkus! - -To see additional capabilities of the Kogito platform, you can reference the Kogito documentation at the links below. -This includes more detailed guides about integrating with Processes (BPMN2), Rules (Drools' DRL), Prediction (PMML), Test Scenario (visual notation for testing), assisted deployment to OpenShift, and many more. - -== References - -* https://kogito.kie.org[Kogito Website] -* https://drools.org/learn/dmn.html[What is DMN] -* https://docs.jboss.org/kogito/release/latest/html_single[Kogito Documentation] diff --git a/_versions/2.7/guides/kogito-drl.adoc b/_versions/2.7/guides/kogito-drl.adoc deleted file mode 100644 index 5e0310df346..00000000000 --- a/_versions/2.7/guides/kogito-drl.adoc +++ /dev/null @@ -1,352 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Kogito to add rule engine capabilities to an application - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can use Kogito to add DRL files with rules. - -Kogito is a next generation business automation toolkit that originates from well known Open Source projects -Drools (for business rules) and jBPM (for business processes). Kogito aims at providing another approach -to business automation where the main message is to expose your business knowledge (processes, rules and decisions) -in a domain specific way. - -== Prerequisites - -:prerequisites-docker: -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this example, we build a very simple microservice which offers one REST endpoint: - -* `/find-approved` - -This endpoint will be automatically generated based on the query inserted in the Rule Unit of the DRL file. -It's an example of a stateless invocation (also called "pure function invocation") in which the execution of our business rules doesn't have any side effects. -The output value returned is based uniquely on the input provided. - -=== Business rule - -A business rule allows to externalise decision logic into reusable pieces that can be easily -used in declarative way. There are multiple ways of writing rules like https://drools.org/learn/dmn.html[DMN models], -decision tables, decision trees, rules, etc. For this example we focus on the rule format backed by DRL -(Drools Rule Language). - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the complete example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `kogito-drl-quickstart` {quickstarts-tree-url}/kogito-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: kogito-drl-quickstart -:create-app-extensions: kogito-quarkus-rules,resteasy-jackson -include::includes/devtools/create-app.adoc[] - -This command generates a Maven project, importing the `kogito-quarkus-rules` extension -that comes with all needed dependencies and configuration to equip your application -with business automation. -It also imports the `resteasy-jackson` extension that is needed for Kogito to expose REST services. - -If you already have your Quarkus project configured, you can add the `kogito-quarkus-rules` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: kogito-quarkus-rules -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.kie.kogito - kogito-quarkus-rules - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.kie.kogito:kogito-quarkus-rules") ----- - -== Writing the application - -Let's start from the application domain model. -This application will approve Loan Applications so we have a class with all the details of the wanted Loan: - -[source,java] ----- -package org.acme.kogito.model; - -public class LoanApplication { - - private String id; - private Applicant applicant; - private int amount; - private int deposit; - private boolean approved = false; - - public LoanApplication() { - - } - - public LoanApplication(String id, Applicant applicant, - int amount, int deposit) { - this.id = id; - this.applicant = applicant; - this.amount = amount; - this.deposit = deposit; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public Applicant getApplicant() { - return applicant; - } - - public void setApplicant(Applicant applicant) { - this.applicant = applicant; - } - - public int getAmount() { - return amount; - } - - public void setAmount(int amount) { - this.amount = amount; - } - - public int getDeposit() { - return deposit; - } - - public void setDeposit(int deposit) { - this.deposit = deposit; - } - - public boolean isApproved() { - return approved; - } - - public void setApproved(boolean approved) { - this.approved = approved; - } -} - - ----- - -And another class with the details of the Applicant: - -[source,java] ----- -package org.acme.kogito.model; - -public class Applicant { - - private String name; - private int age; - - public Applicant() { - } - - public Applicant(String name, int age) { - this.name = name; - this.age = age; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getAge() { - return age; - } - - public void setAge(int age) { - this.age = age; - } -} - ----- - -Next, we create a rule file `loan-rules.drl` inside the `src/main/resources/org/acme/kogito/queries` folder of -the generated project. - -[source,plain] ----- -package org.acme.kogito.queries; - -unit LoanUnit; // no need to using globals, all variables and facts are stored in the rule unit - -import org.acme.kogito.model.Applicant; -import org.acme.kogito.model.LoanApplication; - -rule LargeDepositApprove when - $l: /loanApplications[ applicant.age >= 20, deposit >= 1000, amount <= maxAmount ] // oopath style -then - modify($l) { setApproved(true) }; -end - -rule LargeDepositReject when - $l: /loanApplications[ applicant.age >= 20, deposit >= 1000, amount > maxAmount ] -then - modify($l) { setApproved(false) }; -end - -// ... more loans approval/rejections business rules ... - -// approved loan applications are now retrieved through a query -query FindApproved - $l: /loanApplications[ approved ] -end - ----- - -In this file there are some example rules to decide whether the Loan should be approved or not. The service wants the Applicant to have an age equal or greater than 20 and more than 1000 currency on their bank account. -The amount of the Loan shouldn't be more than the `maxAmount`. - -This example uses Rule Units, a new concept introduced in Kogito that helps users to encapsulate the set of rules and the facts against which those rules will be matched. - -The facts inserted will be inserted into a `DataStore`, a type-safe entry point. To make everything work, we need to define both the RuleUnit and the DataStore. - -[source,java] ----- -package org.acme.kogito.queries; - -import org.acme.kogito.model.LoanApplication; -import org.kie.kogito.rules.DataSource; -import org.kie.kogito.rules.DataStore; -import org.kie.kogito.rules.RuleUnitData; - -public class LoanUnit implements RuleUnitData { - - private int maxAmount; - private DataStore loanApplications; - - public LoanUnit() { - this(DataSource.createStore(), 0); - } - - public LoanUnit(DataStore loanApplications, int maxAmount) { - this.loanApplications = loanApplications; - this.maxAmount = maxAmount; - } - - public DataStore getLoanApplications() { return loanApplications; } - - public void setLoanApplications(DataStore loanApplications) { - this.loanApplications = loanApplications; - } - - public int getMaxAmount() { return maxAmount; } - public void setMaxAmount(int maxAmount) { this.maxAmount = maxAmount; } -} - - ----- - -And that's it: REST endpoint to validate Loan Applications will be automatically generated from this Rule Unit. - - -== Running and Using the Application - -=== Running in Dev Mode - -To run the microservice in dev mode, use: - -include::includes/devtools/dev.adoc[] - -=== Running in JVM Mode - -When you're done playing with dev mode you can run it as a standard Java application. - -First compile it: - -include::includes/devtools/build.adoc[] - -Then run it: - -[source,bash] ----- -java -jar target/quarkus-app/quarkus-run.jar ----- - -=== Running in Native Mode - -This same demo can be compiled into native code: no modifications required. - -This implies that you no longer need to install a JVM on your -production environment, as the runtime technology is included in -the produced binary, and optimized to run with minimal resource overhead. - -Compilation will take a bit longer, so this step is disabled by default; -let's build a native executable with the following command: - -include::includes/devtools/build-native.adoc[] - -After getting a cup of coffee, you'll be able to run this binary directly: - -[source,bash] ----- -target/kogito-drl-quickstart-1.0.0-SNAPSHOT-runner ----- - -== Testing the Application - -To test your application, just send a request to the service with giving the person as JSON -payload. - -[source,bash] ----- - -curl -X POST http://localhost:8080/find-approved \ - -H 'Content-Type: application/json'\ - -H 'Accept: application/json' \ - -d '{"maxAmount":5000, - "loanApplications":[ - {"id":"ABC10001","amount":2000,"deposit":1000, - "applicant":{"age":45,"name":"John"}}, - {"id":"ABC10002","amount":5000,"deposit":100, - "applicant":{"age":25,"name":"Paul"}}, - {"id":"ABC10015","amount":1000,"deposit":100, - "applicant":{"age":12,"name":"George"}} -]}' ----- - -In the response, the list of the approved applications will be returned: - - -[source,JSON] ----- -[{"id":"ABC10001", - "applicant":{"name":"John","age":45}, - "amount":2000,"deposit":100,"approved":true}] ----- - -== References - -* https://kogito.kie.org[Kogito Website] -* https://docs.jboss.org/kogito/release/latest/html_single[Kogito Documentation] diff --git a/_versions/2.7/guides/kogito-pmml.adoc b/_versions/2.7/guides/kogito-pmml.adoc deleted file mode 100644 index fa528e22a81..00000000000 --- a/_versions/2.7/guides/kogito-pmml.adoc +++ /dev/null @@ -1,243 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Kogito to add prediction capabilities to an application - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can use Kogito to add business automation -to power it up with predictions. - -Kogito is a next generation business automation toolkit that originates from the well known Open Source project -Drools (for predictions). Kogito aims at providing another approach -to business automation where the main message is to expose your business knowledge (processes, rules, decisions, predictions) -in a domain specific way. - - -== Prerequisites - -:prerequisites-docker: -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this example, we build a very simple microservice which offers one REST endpoint: - -* `/LogisticRegressionIrisData` - -This endpoint will be automatically generated based on given PMML file, that in turn will -make use of generated code to make certain predictions based on the data being processed. - -=== PMML file - -The PMML file describes the prediction logic of our microservice. -It should provide the actual model (Regression, Tree, Scorecard, Clustering, etc) needed to make the prediction. - -=== Prediction endpoints - -Those are the entry points to the service that can be consumed by clients. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the complete example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `kogito-pmml-quickstart` {quickstarts-tree-url}/kogito-pmml-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: kogito-pmml-quickstart -:create-app-extensions: kogito,resteasy-jackson -include::includes/devtools/create-app.adoc[] - -This command generates a Maven project, importing the `kogito` extension -that comes with all needed dependencies and configuration to equip your application -with business automation. -It also imports the `resteasy-jackson` extension that is needed for Kogito to expose REST services. - -If you already have your Quarkus project configured, you can add the `kogito` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: kogito -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.kie.kogito - kogito-quarkus - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.kie.kogito:kogito-quarkus") ----- - -== Writing the application - -Predictions are evaluated based on a PMML model, whose standard and specifications may be read http://dmg.org/pmml/v4-4-1/GeneralStructure.html[here]. -Let's start by adding a simple PMML file: `LogisticRegressionIrisData.pmml`. It contains a _Regression_ model named `LogisticRegressionIrisData`, and it uses a regression function to predict plant species from sepal and petal dimensions: - -[source,xml] ----- - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ----- - -During project compilation, Kogito will read the file and generate the classes needed for the evaluation, together with a couple of REST endpoints. - -To get started quickly copy the PMML file from the -{quickstarts-tree-url}/kogito-pmml-quickstart/src/main/resources/LogisticRegressionIrisData.pmml[quickstart]. - -== Running and Using the Application - -=== Running in Dev Mode - -To run the microservice in dev mode, use: - -include::includes/devtools/dev.adoc[] - -=== Running in JVM Mode - -When you're done playing with dev mode you can run it as a standard Java application. - -First compile it: - -include::includes/devtools/build.adoc[] - -Then run it: - -[source,bash] ----- -java -jar target/quarkus-app/quarkus-run.jar ----- - -=== Running in Native Mode - -This same demo can be compiled into native code: no modifications required. - -This implies that you no longer need to install a JVM on your -production environment, as the runtime technology is included in -the produced binary, and optimized to run with minimal resource overhead. - -Compilation will take a bit longer, so this step is disabled by default; -let's build a native executable with the following command: - -include::includes/devtools/build-native.adoc[] - -After getting a cup of coffee, you'll be able to run this binary directly: - -[source,bash] ----- -./target/kogito-pmml-quickstart-1.0.0-SNAPSHOT-runner ----- - -== Testing the Application - -To test your application, just send a request to the service with giving the person as JSON -payload. - -[source,bash] ----- -curl -X POST http://localhost:8080/LogisticRegressionIrisData \ - -H 'content-type: application/json' \ - -H 'accept: application/json' \ - -d '{ "Sepal.Length": 6.9, "Sepal.Width": 3.1, "Petal.Length": 5.1, "Petal.Width": 2.3 }' ----- - -In the response, you should see the prediction, that should be _virginica_: - -[source,JSON] ----- -{ - "Species": "virginica" -} ----- - -You can also invoke the _descriptive_ endpoint, that will provide also the _OutputField_ evaluated: - -[source,bash] ----- -curl -X POST http://localhost:8080/LogisticRegressionIrisData/descriptive \ - -H 'content-type: application/json' \ - -H 'accept: application/json' \ - -d '{ "Sepal.Length": 6.9, "Sepal.Width": 3.1, "Petal.Length": 5.1, "Petal.Width": 2.3 }' ----- - -[source,JSON] ----- -{ - "correlationId": null, - "segmentationId": null, - "segmentId": null, - "segmentIndex": 0, - "resultCode": "OK", - "resultObjectName": "Species", - "resultVariables": { - "Probability_setosa": 0.04871813160275851, - "Probability_versicolor": 0.04509592640753013, - "Probability_virginica": 0.9061859419897114, - "Species": "virginica" - } -} ----- - -== References - -* https://kogito.kie.org[Kogito Website] -* https://docs.jboss.org/kogito/release/latest/html_single[Kogito Documentation] diff --git a/_versions/2.7/guides/kogito.adoc b/_versions/2.7/guides/kogito.adoc deleted file mode 100644 index 6220a9c5607..00000000000 --- a/_versions/2.7/guides/kogito.adoc +++ /dev/null @@ -1,487 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Kogito to add business automation capabilities to an application - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can use Kogito to add business automation -to power it up with business processes and rules. - -Kogito is a next generation business automation toolkit that originates from well known Open Source projects -Drools (for business rules) and jBPM (for business processes). Kogito aims at providing another approach -to business automation where the main message is to expose your business knowledge (processes, rules, decisions, predictions) -in a domain specific way. - -== Prerequisites - -:prerequisites-docker: -:prerequisites-ide: (VSCode is preferred with the Red Hat BPMN Editor VSCode Extension) -include::includes/devtools/prerequisites.adoc[] - -=== Install modelling plugins in your IDE - -Kogito Tooling is currently supported in VSCode, Online and on other platforms: - -VSCode:: - - Download and install the https://marketplace.visualstudio.com/items?itemName=redhat.vscode-extension-bpmn-editor[Red Hat BPMN Editor VSCode Extension] to edit and model process definitions from VSCode IDE. - -Online:: - - To avoid any modeler installation you can use directly use https://bpmn.new[BPMN.new] to design and model your process through your favorite web browser. - -Eclipse:: - - To be able to make use of visual modelling of your processes, download Eclipse IDE and - install from Marketplace Eclipse BPMN2 Modeller plugin (with jBPM Runtime Extension) - -Other platforms:: - - You can go to https://kiegroup.github.io/kogito-online/#/download[Business Modeler Hub] to download the latest platforms supported for the https://github.com/kiegroup/kogito-tooling/releases[Kogito tooling releases]. - -== Architecture - -In this example, we build a very simple microservice which offers one REST endpoint: - -* `/persons` - -This endpoint will be automatically generated based on business process, that in turn will -make use of business rules to make certain decisions based on the data being processed. - -=== Business process - -The business process will be responsible for encapsulating business logic of our microservice. -It should provide complete set of steps to achieve a business goal. -At the same time this is the entry point to the service that can be consumed by clients. - -=== Business rule - -A business rule allows to externalise decision logic into reusable pieces that can be easily -used in declarative way. There are multiple ways of writing rules like https://drools.org/learn/dmn.html[DMN models], -decision tables, decision trees, rules, etc. - -For this example we focus on the rule format backed by DRL (Drools Rule Language), -but the same business logic may be expressed with other supported Kogito knowledge formats as well. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the complete example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `kogito-quickstart` {quickstarts-tree-url}/kogito-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: kogito-quickstart -:create-app-extensions: kogito,resteasy-jackson -include::includes/devtools/create-app.adoc[] - -This command generates a Maven project, importing the `kogito` extension -that comes with all needed dependencies and configuration to equip your application -with business automation. -It also imports the `resteasy-jackson` extension that is needed for Kogito to expose REST services. - -If you already have your Quarkus project configured, you can add the `kogito` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: kogito -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.kie.kogito - kogito-quarkus - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.kie.kogito:kogito-quarkus") ----- - -== Writing the application - -Let's start by implementing the simple data object `Person`. As you can see from the source code below it is just a POJO: - -[source,java] ----- -package org.acme.kogito.model; - -public class Person { - - private String name; - private int age; - private boolean adult; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getAge() { - return age; - } - - public void setAge(int age) { - this.age = age; - } - - public boolean isAdult() { - return adult; - } - - public void setAdult(boolean adult) { - this.adult = adult; - } - - @Override - public String toString() { - return "Person [name=" + name + ", age=" + age + ", adult=" + adult + "]"; - } - -} - ----- - -Next, we create a rule file `person-rules.drl` inside the `src/main/resources/org/acme/kogito` folder of -the generated project. - -[source,plain] ----- -package org.acme.kogito; - -unit PersonUnit; - -import org.acme.kogito.model.Person; - -rule "Is adult" -when - $person: /person[age > 18] -then - modify($person) { - setAdult(true) - }; -end ----- - -This is really a simple rule that marks a person who is older that 18 years as an adult. - -This example rule uses Rule Units, a new concept introduced in Kogito that helps users to encapsulate the set of rules and the facts against which those rules will be matched. The facts inserted will be inserted into a `DataStore`, a type-safe entry point. To make everything work, we need to define both the RuleUnit and the DataStore, by creating a new class `PersonUnit` inside `src/main/java/org/acme/kogito` directory: - -[source,java] ----- -package org.acme.kogito; - -import org.acme.kogito.model.Person; -import org.kie.kogito.rules.DataSource; -import org.kie.kogito.rules.RuleUnitData; -import org.kie.kogito.rules.SingletonStore; - -public class PersonUnit implements RuleUnitData { - - private SingletonStore person; - - public PersonUnit() { - this(DataSource.createSingleton()); - } - - public PersonUnit(SingletonStore person) { - this.person = person; - } - - public SingletonStore getPerson() { - return person; - } - - public void setPerson(SingletonStore person) { - this.person = person; - } -} ----- - -Finally we create a business process that will make use of this rule and some other -activities to approve a given person. Using new item wizard (File -> New -> Other -> BPMN2 Model) -create `persons.bpmn` inside `src/main/resources/org/acme/kogito` folder of the generated project. - -This process should consist of - -* start event -* business rule task -* exclusive gateway -* user task -* end events - -And should look like - -image:kogito-guide-screenshot.png[alt=Process definition] - -To get started quickly copy the process definition from the -{quickstarts-tree-url}/kogito-quickstart/src/main/resources/org/acme/kogito/persons.bpmn2[quickstart] - -To model this process yourself, just follow these steps (start event should be automatically added) - -* define a process variable with name `person` of type `org.acme.kogito.model.Person` -* drag the Tasks -> Business Rule Task from the palette and drop it next to start event, link it with start event -** double click on the business rule task -*** on tab I/O Parameters, set data input and output (map `person` process variable to input data with name `person` and same for data output) -*** on tab Business Rule Task, set rule flow group to the FQCN value of the RuleUnit using the `unit:` prefix (`unit:org.acme.kogito.PersonUnit`) -* drag the Gateways -> XOR gateway from the palette and drop it next to the business rule task, link it with rule task -* drag the Tasks -> User Task from the palette and drop it next to the gateway, link it with gateway -** double click on the user task -*** on tak User Task, set task name to `ChildrenHandling` -*** on tab I/O Parameters, set data input (map `person` process variable to input data with name `person`) -* drag the End Events -> End from the palette and drop it next to the user task, link it with the user task -* drag the End Events -> End from the palette and drop it next to the gateway, link it with the user task -* double click on the gateway -** on tab Gateway, set the diverging direction for the gateway -** on tab Gateway, set conditions on sequence flow list -*** -> going to end event `return person.isAdult() == true;` with language `Java` -*** -> going to user task `return person.isAdult() == false;` with language `Java` -* save the file - -== Running and Using the Application - -=== Running in Dev Mode - -To run the microservice in dev mode, use: - -include::includes/devtools/dev.adoc[] - -=== Running in JVM Mode - -When you're done playing with "dev-mode" you can run it as a standard Java application. - -First compile it: - -include::includes/devtools/build.adoc[] - -Then run it: - -[source,bash] ----- -java -jar target/quarkus-app/quarkus-run.jar ----- - -=== Running in Native Mode - -This same demo can be compiled into native code: no modifications required. - -This implies that you no longer need to install a JVM on your -production environment, as the runtime technology is included in -the produced binary, and optimized to run with minimal resource overhead. - -Compilation will take a bit longer, so this step is disabled by default; -let's build a native executable with the following command: - -include::includes/devtools/build-native.adoc[] - -After getting a cup of coffee, you'll be able to run this binary directly: - -[source,bash] ----- -./target/kogito-quickstart-1.0.0-SNAPSHOT-runner ----- - -== Testing the Application - -To test your application, just send request to the service with giving the person as JSON -payload. - -[source,bash] ----- -curl -X POST http://localhost:8080/persons \ - -H 'content-type: application/json' \ - -H 'accept: application/json' \ - -d '{"person": {"name":"John Quark", "age": 20}}' ----- - -In the response, the person should be approved as an adult and that should also be visible in the response payload. - -[source,JSON] ----- -{"id":"dace1d6a-a5fa-429d-b253-d6b66e265bbc","person":{"adult":true,"age":20,"name":"John Quark"}} ----- - -You can also verify that there are no more active instances - -[source,bash] ----- -curl -X GET http://localhost:8080/persons \ - -H 'content-type: application/json' \ - -H 'accept: application/json' ----- - -To verify the non adult case, send another request with the age set to less than 18 - -[source,bash] ----- -curl -X POST http://localhost:8080/persons \ - -H 'content-type: application/json' \ - -H 'accept: application/json' \ - -d '{"person": {"name":"Jenny Quark", "age": 15}}' ----- - -this time there should be one active instance, replace `{uuid}` with the id attribute taken from the response - -[source,bash] ----- -curl -X GET http://localhost:8080/persons/{uuid}/tasks \ - -H 'content-type: application/json' \ - -H 'accept: application/json' ----- - -You can get the details of the task by calling another endpoint, replace `uuids` with the values taken from -the responses (`uuid-1` is the process instance id and `uuid-2` is the task instance id). -First corresponds to the process instance id and the other to the task instance id. - -[source,bash] ----- -curl -X GET http://localhost:8080/persons/{uuid-1}/ChildrenHandling/{uuid-2} \ - -H 'content-type: application/json' \ - -H 'accept: application/json' ----- - -You can complete this person evaluation process instance by calling the same endpoint but with POST, -replace `uuids` with the values taken from the responses (`uuid-1` is the process instance id and `uuid-2` is the task instance id). - -[source,bash] ----- -curl -X POST http://localhost:8080/persons/{uuid-1}/ChildrenHandling/{uuid-2} \ - -H 'content-type: application/json' \ - -H 'accept: application/json' \ - -d '{}' ----- - -== Enabling persistence - -Since 0.3.0 of Kogito, there is an option to enable persistence to preserve process instance state -across application restarts. That supports long running process instances that can be resumed at any -point in time. - -=== Prerequisites - -Kogito uses Infinispan as the persistence service so you need to have Infinispan server installed and running. -Version of the Infinispan is aligned with Quarkus BOM so make sure the right version is installed. - -=== Add dependencies to project - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-infinispan-client - - - org.kie.kogito - infinispan-persistence-addon - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-infinispan-client") -implementation("org.kie.kogito:infinispan-persistence-addon") ----- - -=== Configure connection with Infinispan server - -Add following into the src/main/resources/application.properties file (create the file if it does not exist) - -[source,plain] ----- -quarkus.infinispan-client.server-list=localhost:11222 ----- - -NOTE: Adjust the host and port number according to your Infinispan server installation. - -=== Test with enabled persistence - -After configuring persistence on the project level, you can test and verify that the process instance -state is preserved across application restarts. - -* start Infinispan server -* build and run your project -* execute non adult use case - -[source,bash] ----- -curl -X POST http://localhost:8080/persons \ - -H 'content-type: application/json' \ - -H 'accept: application/json' \ - -d '{"person": {"name":"Jenny Quark", "age": 15}}' ----- - -You can also verify that there is active instance - -[source,bash] ----- -curl -X GET http://localhost:8080/persons \ - -H 'content-type: application/json' \ - -H 'accept: application/json' ----- - -Restart your application while keeping Infinispan server up and running. - -Check if you can see active instance which should have exactly the same id - -[source,bash] ----- -curl -X GET http://localhost:8080/persons \ - -H 'content-type: application/json' \ - -H 'accept: application/json' ----- - - -To learn more about persistence in Kogito visit https://github.com/kiegroup/kogito-runtimes/wiki/Persistence[this page] - -== Using DMN decision tables - -Kogito, like Drools, offers support of the https://drools.org/learn/dmn.html[DMN open standard] for visual and semantic execution of declarative logic. -The business rules in this example may be also expressed using DMN decision tables or other visual paradigm of DMN, instead of DRL and RuleUnits. - -For more information about DMN support in Kogito, you may refer to the companion Quarkus guide specific to xref:kogito-dmn.adoc[Kogito DMN support on Quarkus], or the Kogito documentation in the links below. - -== Using legacy decision tables - -Kogito allows to define DRL rules as decision tables using the Microsoft Excel file formats. -To be able to use such assets in your application, an additional dependency is required: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.kie.kogito - drools-decisiontables - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.kie.kogito:drools-decisiontables") ----- - -Once the dependency is added to the project, decision tables in `xls` or `xlsx` format can be properly handled. - -== References - -* https://kogito.kie.org[Kogito Website] -* https://docs.jboss.org/kogito/release/latest/html_single[Kogito Documentation] -* xref:kogito-dev-services.adoc[Kogito Dev Services] diff --git a/_versions/2.7/guides/kotlin.adoc b/_versions/2.7/guides/kotlin.adoc deleted file mode 100644 index f7fd551e5fd..00000000000 --- a/_versions/2.7/guides/kotlin.adoc +++ /dev/null @@ -1,498 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Kotlin - -:extension-status: preview -include::./attributes.adoc[] - -https://kotlinlang.org/[Kotlin] is a very popular programming language that targets the JVM (amongst other environments). Kotlin has experienced a surge in popularity the last few years making it the most popular JVM language, except for Java of course. - -Quarkus provides first class support for using Kotlin as will be explained in this guide. - -include::./status-include.adoc[] - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -NB: For Gradle project setup please see below, and for further reference consult the guide in the xref:gradle-tooling.adoc[Gradle setup page]. - -== Creating the Maven project - -First, we need a new Kotlin project. This can be done using the following command: - -:create-app-artifact-id: rest-kotlin-quickstart -:create-app-extensions: kotlin,resteasy-reactive-jackson -:create-app-code: -include::includes/devtools/create-app.adoc[] - -When adding `kotlin` to the extensions list, the Maven plugin will generate a project that is properly -configured to work with Kotlin. Furthermore the `org.acme.ReactiveGreetingResource` class is implemented as Kotlin source code (as is the case with the generated tests). -The addition of `resteasy-reactive-jackson` in the extension list results in importing the RESTEasy Reactive and Jackson extensions. - -`ReactiveGreetingResource.kt` looks like this: - -[source,kotlin] ----- -package org.acme - -import javax.ws.rs.GET -import javax.ws.rs.Path -import javax.ws.rs.Produces -import javax.ws.rs.core.MediaType - -@Path("/hello") -class ReactiveGreetingResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - fun hello() = "Hello RESTEasy Reactive" -} ----- - -=== Update code - -In order to show a more practical example of Kotlin usage we will add a simple link:https://kotlinlang.org/docs/reference/data-classes.html[data class] called `Greeting.kt` like so: - -[source,kotlin] ----- -package org.acme.rest - -data class Greeting(val message: String = "") ----- - -We also update the `ReactiveGreetingResource.kt` like so: - -[source,kotlin] ----- -import javax.ws.rs.GET -import javax.ws.rs.Path -import javax.ws.rs.core.MediaType - -@Path("/hello") -class GreetingResource { - - @GET - fun hello() = Greeting("hello") -} ----- - -With these changes in place the `/hello` endpoint will reply with a JSON object instead of a simple String. - -To make the test pass, we also need to update `ReactiveGreetingResourceTest.kt` like so: - -[source,kotlin] ----- -import org.hamcrest.Matchers.equalTo - -@QuarkusTest -class ReactiveGreetingResourceTest { - - @Test - fun testHelloEndpoint() { - given() - .`when`().get("/hello") - .then() - .statusCode(200) - .body("message", equalTo("hello")) - } - -} ----- - -== Important Maven configuration points - -The generated `pom.xml` contains the following modifications compared to its counterpart when Kotlin is not selected: - -* The `quarkus-kotlin` artifact is added to the dependencies. This artifact provides support for Kotlin in the live reload mode (more about this later on) -* The `kotlin-stdlib-jdk8` is also added as a dependency. -* Maven's `sourceDirectory` and `testSourceDirectory` build properties are configured to point to Kotlin sources (`src/main/kotlin` and `src/test/kotlin` respectively) -* The `kotlin-maven-plugin` is configured as follows: - -[source,xml] ----- - - kotlin-maven-plugin - org.jetbrains.kotlin - ${kotlin.version} - - - compile - - compile - - - - test-compile - - test-compile - - - - - - all-open - - - - - - - - - - - org.jetbrains.kotlin - kotlin-maven-allopen - ${kotlin.version} - - - ----- - -The important thing to note is the use of the https://kotlinlang.org/docs/reference/compiler-plugins.html#all-open-compiler-plugin[all-open] Kotlin compiler plugin. -In order to understand why this plugin is needed, first we need to note that by default all the classes generated from the Kotlin compiler are marked as `final`. - -Having `final` classes however does not work well with various frameworks that need to create https://docs.oracle.com/javase/8/docs/technotes/guides/reflection/proxy.html[Dynamic Proxies]. - -Thus, the `all-open` Kotlin compiler plugin allows us to configure the compiler to *not* mark as `final` classes that have certain annotations. In the snippet above, -we have specified that classes annotated with `javax.ws.rs.Path` should not be `final`. - -If your application contains classes annotated with `javax.enterprise.context.ApplicationScoped` -for example, then `` needs to be added as well. Same goes for any class that needs to have a dynamic proxy created at runtime. - -Future versions of Quarkus will configure the Kotlin compiler plugin in a way that will make it unnecessary to alter this configuration. - -== Important Gradle configuration points - -Similar to the Maven configuration, when using Gradle, the following modifications are required when Kotlin is selected: - -* The `quarkus-kotlin` artifact is added to the dependencies. This artifact provides support for Kotlin in the live reload mode (more about this later on) -* The `kotlin-stdlib-jdk8` is also added as a dependency. -* The Kotlin plugin is activated, which implicitly adds `sourceDirectory` and `testSourceDirectory` build properties to point to Kotlin sources (`src/main/kotlin` and `src/test/kotlin` respectively) -* The all-open Kotlin plugin tells the compiler not to mark as final, those classes with the annotations highlighted (customize as required) -* When using native-image, the use of http (or https) protocol(s) must be declared -* An example configuration follows: - -[source,groovy,subs=attributes+] ----- -plugins { - id 'java' - id 'io.quarkus' - - id "org.jetbrains.kotlin.jvm" version "{kotlin-version}" // <1> - id "org.jetbrains.kotlin.plugin.allopen" version "{kotlin-version}" // <1> -} - -repositories { - mavenLocal() - mavenCentral() -} - -dependencies { - implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:{kotlin-version}' - - implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}") - - implementation 'io.quarkus:quarkus-resteasy-reactive' - implementation 'io.quarkus:quarkus-resteasy-reactive-jackson' - implementation 'io.quarkus:quarkus-kotlin' - - testImplementation 'io.quarkus:quarkus-junit5' - testImplementation 'io.rest-assured:rest-assured' -} - -group = '...' // set your group -version = '1.0.0-SNAPSHOT' - -java { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 -} - -allOpen { // <2> - annotation("javax.ws.rs.Path") - annotation("javax.enterprise.context.ApplicationScoped") - annotation("io.quarkus.test.junit.QuarkusTest") -} - -compileKotlin { - kotlinOptions.jvmTarget = JavaVersion.VERSION_11 - kotlinOptions.javaParameters = true -} - -compileTestKotlin { - kotlinOptions.jvmTarget = JavaVersion.VERSION_11 -} ----- - -<1> The Kotlin plugin version needs to be specified. -<2> The all-open configuration required, as per Maven guide above - -or, if you use the Gradle Kotlin DSL: - -[source,kotlin,subs=attributes+] ----- -plugins { - kotlin("jvm") version "{kotlin-version}" // <1> - kotlin("plugin.allopen") version "{kotlin-version}" - id("io.quarkus") -} - -repositories { - mavenLocal() - mavenCentral() -} - -val quarkusPlatformGroupId: String by project -val quarkusPlatformArtifactId: String by project -val quarkusPlatformVersion: String by project - -group = "..." -version = "1.0.0-SNAPSHOT" - - -repositories { - mavenLocal() - mavenCentral() -} - -dependencies { - implementation(kotlin("stdlib-jdk8")) - - implementation(enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")) - - implementation("io.quarkus:quarkus-kotlin") - implementation("io.quarkus:quarkus-resteasy-reactive") - implementation("io.quarkus:quarkus-resteasy-reactive-jackson") - - testImplementation("io.quarkus:quarkus-junit5") - testImplementation("io.rest-assured:rest-assured") -} - -group = '...' // set your group -version = "1.0.0-SNAPSHOT" - -java { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 -} - -allOpen { // <2> - annotation("javax.ws.rs.Path") - annotation("javax.enterprise.context.ApplicationScoped") - annotation("io.quarkus.test.junit.QuarkusTest") -} - -tasks.withType { - kotlinOptions.jvmTarget = JavaVersion.VERSION_11.toString() - kotlinOptions.javaParameters = true -} - ----- - -<1> The Kotlin plugin version needs to be specified. -<2> The all-open configuration required, as per Maven guide above - - - -== Live reload - -Quarkus provides support for live reloading changes made to source code. This support is also available to Kotlin, meaning that developers can update their Kotlin source -code and immediately see their changes reflected. - -To see this feature in action, first execute: - -include::includes/devtools/dev.adoc[] - -When executing an HTTP GET request against `http://localhost:8080/hello`, you see a JSON message with the value `hello` as its `message` field. - -Now using your favorite editor or IDE, update `ReactiveGreetingResource.kt` and change the `hello` method to the following: - -[source,kotlin] ----- -fun hello() = Greeting("hi") ----- - -When you now execute an HTTP GET request against `http://localhost:8080/hello`, you should see a JSON message with the value `hi` as its `message` field. - -One thing to note is that the live reload feature is not available when making changes to both Java and Kotlin source that have dependencies on each other. We hope to alleviate this limitation in the future. - -== Packaging the application - -As usual, the application can be packaged using: - -include::includes/devtools/build.adoc[] - -and executed with `java -jar target/quarkus-app/quarkus-run.jar`. - -You can also build the native executable using: - -include::includes/devtools/build-native.adoc[] - -== Kotlin and Jackson - -If the `com.fasterxml.jackson.module:jackson-module-kotlin` dependency and the `quarkus-jackson` extension (or one of the `quarkus-resteasy-jackson` or `quarkus-resteasy-reactive-jackson` extensions) have been added to the project, -then Quarkus automatically registers the `KotlinModule` to the `ObjectMapper` bean (see xref:rest-json.adoc#jackson[this] guide for more details). - -When using Kotlin data classes with `native-image` you may experience serialization errors that do not occur with the `JVM` version, despite the Kotlin Jackson Module being registered. This is especially so if you have a more complex JSON hierarchy, where an issue on a lower node causes a serialization failure. The error message displayed is a catch-all and typically displays an issue with the root object, which may not necessarily be the case. - -[source] ----- -com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `Address` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator) ----- - -To ensure full-compability with `native-image`, it is recommended to apply the Jackson `@field:JsonProperty("fieldName")` annotation, and set a nullable default, as illustrated below. You can automate the generation of Kotlin data classes for your sample JSON using Intellij plugins (such as JSON to Kotlin Class), and easily enable the Jackson annotation and select nullable parameters as part of the auto-code generation. - -[source,kotlin] ----- -import com.fasterxml.jackson.annotation.JsonProperty - -data class Response( - @field:JsonProperty("chart") - val chart: ChartData? = null -) - -data class ChartData( - @field:JsonProperty("result") - val result: List? = null, - - @field:JsonProperty("error") - val error: Any? = null -) - -data class ResultItem( - @field:JsonProperty("meta") - val meta: Meta? = null, - - @field:JsonProperty("indicators") - val indicators: IndicatorItems? = null, - - @field:JsonProperty("timestamp") - val timestamp: List? = null -) - -... ----- - -== Kotlin and the Kubernetes Client - -When working with the `quarkus-kubernetes` extension and have Kotlin classes bound to CustomResource definitions (like you do for building operators), you need to be aware that the underlying Fabric8 Kubernetes Client uses its own static Jackson `ObjectMapper` s, which can be configured as follows with the `KotlinModule`: - -[source,kotlin] ----- -import io.fabric8.kubernetes.client.utils.Serialization -import com.fasterxml.jackson.module.kotlin.KotlinModule - -... - -Serialization.jsonMapper().registerModule(KotlinModule()) -Serialization.yamlMapper().registerModule(KotlinModule()) ----- - -_Please test this carefully on compilation to native images and fallback to Java-compatible Jackson bindings if you experience problems._ - -== Kotlin coroutines and Mutiny - -Kotlin coroutines provide a imperative programming model that actually gets executed in an asynchronous, reactive manner. -To simplify the interoperation between Mutiny and Kotlin there is the module `io.smallrye.reactive:mutiny-kotlin`, described link:https://smallrye.io/smallrye-mutiny/guides/kotlin[here]. - -== RESTEasy Reactive and Coroutines - -The `quarkus-resteasy-reactive` extension supports Kotlin `suspend fun` ctions in combination with `quarkus-kotlin` as well: - -[source,kotlin] ----- -@Path("/hello") -class ReactiveGreetingResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - suspend fun hello() = "Hello RESTEasy Reactive with Coroutines" -} ----- - -== CDI @Inject with Kotlin - -Kotlin reflection annotation processing differs from Java. You may experience an error when using CDI @Inject such as: -"kotlin.UninitializedPropertyAccessException: lateinit property xxx has not been initialized" - -In the example below, this can be easily solved by adapting the annotation, adding @field: Default, to handle the lack of a @Target on the Kotlin reflection annotation definition. - -[source,kotlin] ----- -import javax.inject.Inject -import javax.enterprise.inject.Default -import javax.enterprise.context.ApplicationScoped - -import javax.ws.rs.GET -import javax.ws.rs.Path -import javax.ws.rs.PathParam -import javax.ws.rs.Produces -import javax.ws.rs.core.MediaType - - - -@ApplicationScoped -class GreetingService { - - fun greeting(name: String): String { - return "hello $name" - } - -} - -@Path("/") -class ReactiveGreetingResource { - - @Inject - @field: Default // <1> - lateinit var service: GreetingService - - @GET - @Produces(MediaType.TEXT_PLAIN) - @Path("/hello/{name}") - fun greeting(@PathParam("name") name: String): String { - return service.greeting(name) - } - -} ----- -<1> Kotlin requires a @field: xxx qualifier as it has no @Target on the annotation definition. Add @field: xxx in this example. @Default is used as the qualifier, explicitly specifying the use of the default bean. - -Alternatively, prefer the use of constructor injection which works without modification of the Java examples, increases testability and complies best to a Kotlin programming style. - -[source,kotlin] ----- -import javax.enterprise.context.ApplicationScoped - -import javax.ws.rs.GET -import javax.ws.rs.Path -import javax.ws.rs.PathParam -import javax.ws.rs.Produces -import javax.ws.rs.core.MediaType - -@ApplicationScoped -class GreetingService { - fun greeting(name: String): String { - return "hello $name" - } -} - -@Path("/") -class ReactiveGreetingResource( - private val service: GreetingService -) { - - @GET - @Produces(MediaType.TEXT_PLAIN) - @Path("/hello/{name}") - fun greeting(@PathParam("name") name: String): String { - return service.greeting(name) - } - -} ----- diff --git a/_versions/2.7/guides/kubernetes-client.adoc b/_versions/2.7/guides/kubernetes-client.adoc deleted file mode 100644 index d14d2bea2e6..00000000000 --- a/_versions/2.7/guides/kubernetes-client.adoc +++ /dev/null @@ -1,470 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Kubernetes Client - -include::./attributes.adoc[] - - -Quarkus includes the `kubernetes-client` extension which enables the use of the https://github.com/fabric8io/kubernetes-client[Fabric8 Kubernetes Client] -in native mode while also making it easier to work with. - -Having a Kubernetes Client extension in Quarkus is very useful in order to unlock the power of Kubernetes Operators. -Kubernetes Operators are quickly emerging as a new class of Cloud Native applications. -These applications essentially watch the Kubernetes API and react to changes on various resources and can be used to manage the lifecycle of all kinds of complex systems like databases, messaging systems and much much more. -Being able to write such operators in Java with the very low footprint that native images provide is a great match. - -== Configuration - -Once you have your Quarkus project configured you can add the `kubernetes-client` extension -to your project by running the following command in your project base directory. - -:add-extension-extensions: kubernetes-client -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-kubernetes-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-kubernetes-client") ----- - -== Usage - -Quarkus configures a Bean of type `KubernetesClient` which can be injected into application code using the well known CDI methods. -This client can be configured using various properties as can be seen in the following example: - -[source,properties] ----- -quarkus.kubernetes-client.trust-certs=false -quarkus.kubernetes-client.namespace=default ----- - -Note that the full list of properties is available in the https://github.com/quarkusio/quarkus/blob/main/extensions/kubernetes-client/runtime-internal/src/main/java/io/quarkus/kubernetes/client/runtime/KubernetesClientBuildConfig.java[KubernetesClientBuildConfig] class. - -=== Overriding - -The extension also allows application code to override either of `io.fabric8.kubernetes.client.Config` or `io.fabric8.kubernetes.client.KubernetesClient` which are -normally provided by the extension by simply declaring custom versions of those beans. - -An example of this can be seen in the following snippet: - -[source,java] ----- -@Singleton -public class KubernetesClientProducer { - - @Produces - public KubernetesClient kubernetesClient() { - // here you would create a custom client - return new DefaultKubernetesClient(); - } -} ----- - -== Testing - -To make testing against a mock Kubernetes API extremely simple, Quarkus provides the `WithKubernetesTestServer` annotation which automatically launches -a mock of the Kubernetes API server and sets the proper environment variables needed so that the Kubernetes Client configures itself to use said mock. -Tests can inject the mock server and set it up in any way necessary for the particular testing using the `@KubernetesTestServer` annotation. - -Let's assume we have a REST endpoint defined like so: - -[source%nowrap,java] ----- -@Path("/pod") -public class Pods { - - private final KubernetesClient kubernetesClient; - - public Pods(KubernetesClient kubernetesClient) { - this.kubernetesClient = kubernetesClient; - } - - @GET - @Path("/{namespace}") - public List pods(@PathParam("namespace") String namespace) { - return kubernetesClient.pods().inNamespace(namespace).list().getItems(); - } -} ----- - -We could write a test for this endpoint very easily like so: - -[source%nowrap,java] ----- -// you can even configure aspects like crud, https and port on this annotation -@WithKubernetesTestServer -@QuarkusTest -public class KubernetesClientTest { - - @KubernetesTestServer - KubernetesServer mockServer; - - @BeforeEach - public void before() { - final Pod pod1 = new PodBuilder().withNewMetadata().withName("pod1").withNamespace("test").and().build(); - final Pod pod2 = new PodBuilder().withNewMetadata().withName("pod2").withNamespace("test").and().build(); - - // Set up Kubernetes so that our "pretend" pods are created - mockServer.getClient().pods().create(pod1); - mockServer.getClient().pods().create(pod2); - } - - @Test - public void testInteractionWithAPIServer() { - RestAssured.when().get("/pod/test").then() - .body("size()", is(2)); - } - -} ----- - -Note that to take advantage of these features, the `quarkus-test-kubernetes-client` dependency needs to be added, for example like so: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-test-kubernetes-client - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-test-kubernetes-client") ----- - -By default, the mock server will be in CRUD mode, so you have to use the client to build your state before your application can retrieve it, -but you can also set it up in non-CRUD mode and mock all HTTP requests made to Kubernetes: - -[source%nowrap,java] ----- -// you can even configure aspects like crud, https and port on this annotation -@WithKubernetesTestServer(crud = false) -@QuarkusTest -public class KubernetesClientTest { - - @KubernetesTestServer - KubernetesServer mockServer; - - @BeforeEach - public void before() { - final Pod pod1 = new PodBuilder().withNewMetadata().withName("pod1").withNamespace("test").and().build(); - final Pod pod2 = new PodBuilder().withNewMetadata().withName("pod2").withNamespace("test").and().build(); - - // Mock any HTTP request to Kubernetes pods so that our pods are returned - mockServer.expect().get().withPath("/api/v1/namespaces/test/pods") - .andReturn(200, - new PodListBuilder().withNewMetadata().withResourceVersion("1").endMetadata().withItems(pod1, pod2) - .build()) - .always(); - } - - @Test - public void testInteractionWithAPIServer() { - RestAssured.when().get("/pod/test").then() - .body("size()", is(2)); - } - -} ----- - -You can also use the `setup` attribute on the `@WithKubernetesTestServer` annotation to provide a class that will configure the `KubernetesServer` instance: - -[source%nowrap,java] ----- -@WithKubernetesTestServer(setup = MyTest.Setup.class) -@QuarkusTest -public class MyTest { - - public static class Setup implements Consumer { - - @Override - public void accept(KubernetesServer server) { - server.expect().get().withPath("/api/v1/namespaces/test/pods") - .andReturn(200, new PodList()).always(); - } - } - - // tests -} ----- - -Alternately, you can create an extension of the `KubernetesServerTestResource` class to ensure all your `@QuarkusTest` enabled test classes share the same mock server setup via the `QuarkusTestResource` annotation: - -[source%nowrap,java] ----- -public class CustomKubernetesMockServerTestResource extends KubernetesServerTestResource { - - @Override - protected void configureServer() { - super.configureServer(); - server.expect().get().withPath("/api/v1/namespaces/test/pods") - .andReturn(200, new PodList()).always(); - } -} ----- - -and use this in your other test classes as follows: -[source%nowrap,java] ----- -@QuarkusTestResource(CustomKubernetesMockServerTestResource.class) -@QuarkusTest -public class KubernetesClientTest { - - //tests will now use the configured server... -} ----- - -[#note-on-generic-types] -== Note on implementing or extending generic types - -Due to the restrictions imposed by GraalVM, extra care needs to be taken when implementing or extending generic types provided by the client if the application is intended to work in native mode. -Essentially every implementation or extension of generic classes such as `Watcher`, `ResourceHandler` or `CustomResource` needs to specify their associated Kubernetes model class (or, in the case of `CustomResource`, regular Java types) at class definition time. -To better understand this, suppose we want to watch for changes to Kubernetes `Pod` resources. -There are a couple ways to write such a `Watcher` that are guaranteed to work in native: - -[source%nowrap,java] ----- -client.pods().watch(new Watcher() { - @Override - public void eventReceived(Action action, Pod pod) { - // do something - } - - @Override - public void onClose(KubernetesClientException e) { - // do something - } -}); ----- - -or - -[source%nowrap,java] ----- -public class PodResourceWatcher implements Watcher { - @Override - public void eventReceived(Action action, Pod pod) { - // do something - } - - @Override - public void onClose(KubernetesClientException e) { - // do something - } -} - -... - - -client.pods().watch(new PodResourceWatcher()); ----- - -Note that defining the generic type via a class hierarchy similar to the following example will also work correctly: - -[source%nowrap,java] ----- -public abstract class MyWatcher implements Watcher { -} - -... - - -client.pods().watch(new MyWatcher() { - @Override - public void eventReceived(Action action, Pod pod) { - // do something - } -}); ----- - -WARNING: The following example will **not** work in native mode because the generic type of watcher cannot be determined by looking at the class and method definitions -thus making Quarkus unable to properly determine the Kubernetes model class for which reflection registration is needed: - -[source%nowrap,java] ----- -public class ResourceWatcher implements Watcher { - @Override - public void eventReceived(Action action, T resource) { - // do something - } - - @Override - public void onClose(KubernetesClientException e) { - // do something - } -} - -client.pods().watch(new ResourceWatcher()); ----- - -[#note-on-ec-keys] -== Note on using Elliptic Curve keys - -Please note that if you would like to use Elliptic Curve keys with Kubernetes Client then adding a BouncyCastle PKIX dependency is required: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.bouncycastle - bcpkix-jdk15on - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.bouncycastle:bcpkix-jdk15on") ----- - -Note that internally an `org.bouncycastle.jce.provider.BouncyCastleProvider` provider will be registered if it has not already been registered. - -You can have this provider registered as described in the xref:security-customization.adoc#bouncy-castle[BouncyCastle] or xref:security-customization.adoc#bouncy-castle-fips[BouncyCastle FIPS] sections. - -== Access to the Kubernetes API - -In many cases in order to access the Kubernetes API server a `ServiceAccount`, `Role` and `RoleBinding` will be necessary. -An example that allows listing all pods could look something like this: - -[source,yaml] ----- ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: - namespace: ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: - namespace: -rules: - - apiGroups: [""] - resources: ["pods"] - verbs: ["list"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: - namespace: -roleRef: - kind: Role - name: - apiGroup: rbac.authorization.k8s.io -subjects: - - kind: ServiceAccount - name: - namespace: ----- - -Replace `` and `` with your values. -Have a look at https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/[Configure Service Accounts for Pods] to get further information. - -== OpenShift Client - -If the targeted Kubernetes cluster is an OpenShift cluster, it is possible to access it through -the `openshift-client` extension, in a similar way. This leverages the dedicated fabric8 -openshift client, and provides access to `OpenShift` proprietary objects (e.g. `Route`, `ProjectRequest`, `BuildConfig` ...) - -Note that the configuration properties are shared with the `kubernetes-client` extension. In -particular they have the same `quarkus.kubernetes-client` prefix. - -Add the extension with: - -:add-extension-extensions: openshift-client -include::includes/devtools/extension-add.adoc[] - -Note that `openshift-client` extension has a dependency on the `kubernetes-client` extension. - -To use the client, inject an `OpenShiftClient` instead of the `KubernetesClient`: - -[source, java] ----- -@Inject -private OpenShiftClient openshiftClient; ----- - -If you need to override the default `OpenShiftClient`, provide a producer such as: - -[source, java] ----- -@Singleton -public class OpenShiftClientProducer { - - @Produces - public OpenShiftClient openshiftClient() { - // here you would create a custom client - return new DefaultOpenShiftClient(); - } -} ----- - -Mock support is also provided in a similar fashion: - -[source, java] ----- -@QuarkusTestResource(OpenShiftMockServerTestResource.class) -@QuarkusTest -public class OpenShiftClientTest { - - @MockServer - private OpenShiftMockServer mockServer; -... ----- - -Or by using the `@WithOpenShiftTestServer` similar to the `@WithKubernetesTestServer` explained in the -previous section: - -[source, java] ----- -@WithOpenShiftTestServer -@QuarkusTest -public class OpenShiftClientTest { - - @OpenShiftTestServer - private OpenShiftServer mockOpenShiftServer; -... ----- - -To use this feature, you have to add a dependency on `quarkus-test-openshift-client`: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-test-openshift-client - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-test-openshift-client") ----- - -== Configuration Reference - -include::{generated-dir}/config/quarkus-kubernetes-client.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/kubernetes-config.adoc b/_versions/2.7/guides/kubernetes-config.adoc deleted file mode 100644 index 0955de08f68..00000000000 --- a/_versions/2.7/guides/kubernetes-config.adoc +++ /dev/null @@ -1,150 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Kubernetes Config - -include::./attributes.adoc[] - - -Quarkus includes the `kubernetes-config` extension which allows developers to use Kubernetes https://cloud.google.com/kubernetes-engine/docs/concepts/configmap[ConfigMaps] and https://cloud.google.com/kubernetes-engine/docs/concepts/secret[Secrets] as a configuration source, without having to mount them into the https://kubernetes.io/docs/concepts/workloads/pods/pod/[Pod] running the Quarkus application or make any other modifications to their Kubernetes `Deployment` (or OpenShift `DeploymentConfig`). - - -== Configuration - -Once you have your Quarkus project configured you can add the `kubernetes-config` extension -by running the following command in your project base directory. - -:add-extension-extensions: kubernetes-config -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-kubernetes-config - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-kubernetes-config") ----- - -== Usage - -The extension works by reading ConfigMaps and Secrets directly from the Kubernetes API server using the xref:kubernetes-client.adoc[Kubernetes Client]. - -The extension understands the following types of ConfigMaps and Secrets as input sources: - -* ConfigMaps and Secrets that contain literal data (see https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#create-configmaps-from-literal-values[this] for an example on how to create one) -* ConfigMaps and Secrets created from files named `application.properties`, `application.yaml` or `application.yml` (see https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#create-configmaps-from-files[this] for an example on how to create one). - -The extension is disabled by default in order to prevent the application for making API calls when it is not running in a Kubernetes environment. To enable it, set `quarkus.kubernetes-config.enabled=true` (for example using a specific xref:config-reference.adoc#profiles[profile]). - -The values of `quarkus.kubernetes-config.config-maps` and `quarkus.kubernetes-config.secrets` determine which ConfigMaps and/or Secrets will be used as configuration sources. Keep in mind that these ConfigMaps and Secrets must be in the same Kubernetes `Namespace` -as the running application. If they are to be found in a different namespace, then `quarkus.kubernetes-config.namespace` must be set to the proper value. - -=== Priority of obtained properties - -The properties obtained from the ConfigMaps and Secrets have a higher priority than (i.e. they override) any properties of the same name that are found in `application.properties` (or the YAML equivalents), but they have lower priority than properties set via Environment Variables or Java System Properties. - -Furthermore, when multiple ConfigMaps (or Secrets) are used, ConfigMaps (or Secrets) defined later in the list have a higher priority that ConfigMaps defined earlier in the list. - -Finally, when both ConfigMaps and Secrets are used, the latter always a higher priority than the former. - -=== Kubernetes Permissions - -Since reading ConfigMaps involves interacting with the Kubernetes API Server, when https://kubernetes.io/docs/reference/access-authn-authz/rbac/[RBAC] is enabled on the cluster, the https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/[ServiceAccount] -that is used to run the application needs to have the proper permissions for such access. - -Thankfully, when using the `kubernetes-config` extension along with the xref:deploying-to-kubernetes.adoc[Kubernetes] extension, all the necessary Kubernetes resources to make that happen are automatically generated. - -==== Secrets - -By default, the xref:deploying-to-kubernetes.adoc[Kubernetes] extension doesn't generate the necessary resources to allow accessing secrets. -Set `quarkus.kubernetes-config.secrets.enabled=true` to generate the necessary role and corresponding role binding. - -== Example configuration - -A very common use case is to deploy a Quarkus application that needs to access a relational database which has itself already been deployed on Kubernetes. Using the `quarkus-kubernetes-config` extension makes this use case very simple to handle. - -Let's assume that our Quarkus application needs to talk to PostgreSQL and that when PostgreSQL was deployed on our Kubernetes cluster, a `Secret` named `postgresql` was created as part of that deployment and contains the following entries: - -* `database-name` -* `database-user` -* `database-password` - -One possible way to make Quarkus use these entries to connect the database is to use the following configuration: - -[source,properties] ----- -%prod.quarkus.kubernetes-config.secrets.enabled=true <1> -quarkus.kubernetes-config.secrets=postgresql <2> - -%prod.quarkus.datasource.jdbc.url=postgresql://somehost:5432/${database-name} <3> -%prod.quarkus.datasource.username=${database-user} <4> -%prod.quarkus.datasource.password=${database-password} <5> ----- -<1> Enable reading of secrets. Note the use of `%prod` profile as we only want this setting applied when the application is running in production. -<2> Configure the name of the secret that will be used. This doesn't need to be prefixed with the `%prod` profile as it won't have any effect if secret reading is disabled. -<3> Quarkus will substitute `${database-name}` with the value obtained from the entry with name `database-name` of the `postgres` Secret. `somehost` is the name of the Kubernetes `Service` that was created when PostgreSQL was deployed to Kubernetes. -<4> Quarkus will substitute `${database-user}` with the value obtained from the entry with name `database-user` of the `postgres` Secret. -<5> Quarkus will substitute `${database-password}` with the value obtained from the entry with name `database-password` of the `postgres` Secret. - -The values above allow the application to be completely agnostic of the actual database configuration used in production while also not inhibiting the usability of the application at development time. - -=== Alternatives - -The use of the `quarkus-kubernetes-config` extensions is completely optional as there are other ways an application can be configured to use ConfigMaps or Secrets. - -One common alternative is to map each entry of the ConfigMap and / Secret to an environment variable on the Kubernetes `Deployment` - see link:https://kubernetes.io/docs/concepts/configuration/secret/#use-case-as-container-environment-variables[this] for more details. -To achieve that in Quarkus, we could use the `quarkus-kubernetes` extension (which is responsible for creating Kubernetes manifests and include the following configuration) and configure it as so: - -[source,properties] ----- -quarkus.kubernetes.env.secrets=postgresql -quarkus.kubernetes.env.mapping.database-name.from-secret=postgresql -quarkus.kubernetes.env.mapping.database-name.with-key=database-name -quarkus.kubernetes.env.mapping.database-user.from-secret=postgresql -quarkus.kubernetes.env.mapping.database-user.with-key=database-user -quarkus.kubernetes.env.mapping.database-password.from-secret=postgresql -quarkus.kubernetes.env.mapping.database-password.with-key=database-password - -%prod.quarkus.datasource.jdbc.url=postgresql://somehost:5432/${database-name} -%prod.quarkus.datasource.username=${database-user} -%prod.quarkus.datasource.password=${database-password} ----- - -The end result of the above configuration would be the following `env` part being applied the generated `Deployment`: - -[source,yaml] ----- - env: - - name: DATABASE_NAME - valueFrom: - secretKeyRef: - key: database-name - name: postgresql - - name: DATABASE_USER - valueFrom: - secretKeyRef: - key: database-user - name: postgresql - - name: DATABASE_PASSWORD - valueFrom: - secretKeyRef: - key: database-password - name: postgresql ----- - -See xref:deploying-to-kubernetes.adoc#secret-mapping[this] for more details. - -== Configuration Reference - -include::{generated-dir}/config/quarkus-kubernetes-config.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/lifecycle.adoc b/_versions/2.7/guides/lifecycle.adoc deleted file mode 100644 index 41c42ba7775..00000000000 --- a/_versions/2.7/guides/lifecycle.adoc +++ /dev/null @@ -1,248 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Application Initialization and Termination - -include::./attributes.adoc[] - -You often need to execute custom actions when the application starts and clean up everything when the application stops. -This guide explains how to: - -* Write a Quarkus application with a main method -* Write command mode applications that run a task and then terminate -* Be notified when the application starts -* Be notified when the application stops - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `lifecycle-quickstart` {quickstarts-tree-url}/lifecycle-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: lifecycle-quickstart -include::includes/devtools/create-app.adoc[] - -It generates: - -* the Maven structure -* example `Dockerfile` files for both `native` and `jvm` modes -* the application configuration file - -== The main method - -By default Quarkus will automatically generate a main method, that will bootstrap Quarkus and then just wait for -shutdown to be initiated. Let's provide our own main method: -[source,java] ----- -package com.acme; - -import io.quarkus.runtime.annotations.QuarkusMain; -import io.quarkus.runtime.Quarkus; - -@QuarkusMain <1> -public class Main { - - public static void main(String ... args) { - System.out.println("Running main method"); - Quarkus.run(args); <2> - } -} ----- -<1> This annotation tells Quarkus to use this as the main method, unless it is overridden in the config -<2> This launches Quarkus - -This main class will bootstrap Quarkus and run it until it stops. This is no different to the automatically -generated main class, but has the advantage that you can just launch it directly from the IDE without needing -to run a Maven or Gradle command. - -WARNING: It is not recommenced to do any business logic in this main method, as Quarkus has not been set up yet, -and Quarkus may run in a different ClassLoader. If you want to perform logic on startup use an `io.quarkus.runtime.QuarkusApplication` -as described below. - -If we want to actually perform business logic on startup (or write applications that complete a task and then exit) -we need to supply a `io.quarkus.runtime.QuarkusApplication` class to the run method. After Quarkus has been started -the `run` method of the application will be invoked. When this method returns the Quarkus application will exit. - -If you want to perform logic on startup you should call `Quarkus.waitForExit()`, this method will wait until a shutdown -is requested (either from an external signal like when you press `Ctrl+C` or because a thread has called `Quarkus.asyncExit()`). - -An example of what this looks like is below: - -[source,java] ----- -package com.acme; - -import io.quarkus.runtime.Quarkus; -import io.quarkus.runtime.QuarkusApplication; -import io.quarkus.runtime.annotations.QuarkusMain; - -@QuarkusMain -public class Main { - public static void main(String... args) { - Quarkus.run(MyApp.class, args); - } - - public static class MyApp implements QuarkusApplication { - - @Override - public int run(String... args) throws Exception { - System.out.println("Do startup logic here"); - Quarkus.waitForExit(); - return 0; - } - } -} ----- - -=== Injecting the command line arguments - -It is possible to inject the arguments that were passed in on the command line: - -[source,java] ----- -@Inject -@CommandLineArguments -String[] args; ----- - -Command line arguments can be passed to the application through the `-D` flag with the property `quarkus.args`: - -:devtools-wrapped: -// TODO: use once Asciidoctor escaping bug is fixed -:dev-additional-parameters: -Dquarkus.args=cmd-args - -* For Quarkus dev mode: -+ -include::includes/devtools/dev-parameters.adoc[] - -* For a runner jar: `java -Dquarkus.args= -jar target/quarkus-app/quarkus-run.jar` -* For a native executable: `./target/lifecycle-quickstart-1.0-SNAPSHOT-runner -Dquarkus.args=` - -:!dev-additional-parameters: -:!devtools-wrapped: - -== Listening for startup and shutdown events - -Create a new class named `AppLifecycleBean` (or pick another name) in the `org.acme.lifecycle` package, and copy the -following content: - -[source,java] ----- -package org.acme.lifecycle; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.event.Observes; - -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; -import org.jboss.logging.Logger; - -@ApplicationScoped -public class AppLifecycleBean { - - private static final Logger LOGGER = Logger.getLogger("ListenerBean"); - - void onStart(@Observes StartupEvent ev) { // <1> - LOGGER.info("The application is starting..."); - } - - void onStop(@Observes ShutdownEvent ev) { // <2> - LOGGER.info("The application is stopping..."); - } - -} ----- -<1> Method called when the application is starting -<2> Method called when the application is terminating - -TIP: The events are also called in _dev mode_ between each redeployment. - -NOTE: The methods can access injected beans. Check the {quickstarts-blob-url}/lifecycle-quickstart/src/main/java/org/acme/lifecycle/AppLifecycleBean.java[AppLifecycleBean.java] class for details. - -=== What is the difference from `@Initialized(ApplicationScoped.class)` and `@Destroyed(ApplicationScoped.class)` - -In the JVM mode, there is no real difference, except that `StartupEvent` is always fired *after* `@Initialized(ApplicationScoped.class)` and `ShutdownEvent` is fired *before* `@Destroyed(ApplicationScoped.class)`. -For a native executable build, however, `@Initialized(ApplicationScoped.class)` is fired as *part of the native build process*, whereas `StartupEvent` is fired when the native image is executed. -See xref:writing-extensions.adoc#bootstrap-three-phases[Three Phases of Bootstrap and Quarkus Philosophy] for more details. - -NOTE: In CDI applications, an event with qualifier `@Initialized(ApplicationScoped.class)` is fired when the application context is initialized. See https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html#application_context[the spec, window="_blank"] for more info. - -[[startup_annotation]] -=== Using `@Startup` to initialize a CDI bean at application startup - -A bean represented by a class, producer method or field annotated with `@Startup` is initialized at application startup: - -[source,java] ----- -package org.acme.lifecycle; - -import javax.enterprise.context.ApplicationScoped; - -@Startup // <1> -@ApplicationScoped -public class EagerAppBean { - - private final String name; - - EagerAppBean(NameGenerator generator) { // <2> - this.name = generator.createName(); - } -} ----- -<1> For each bean annotated with `@Startup` a synthetic observer of `StartupEvent` is generated. The default priority is used. -<2> The bean constructor is called when the application starts and the resulting contextual instance is stored in the application context. - -NOTE: `@Dependent` beans are destroyed immediately afterwards to follow the behavior of observers declared on `@Dependent` beans. - -TIP: If a class is annotated with `@Startup` but with no scope annotation then `@ApplicationScoped` is added automatically. - -== Package and run the application - -Run the application with: - -include::includes/devtools/dev.adoc[] - -The logged message is printed. -When the application is stopped, the second log message is printed. - -As usual, the application can be packaged using: - -include::includes/devtools/build.adoc[] - -and executed using `java -jar target/quarkus-app/quarkus-run.jar`. - -You can also generate the native executable using: - -include::includes/devtools/build-native.adoc[] - -== Launch Modes - -Quarkus has 3 different launch modes, `NORMAL` (i.e. production), `DEVELOPMENT` and `TEST`. If you are running `quarkus:dev` -then the mode will be `DEVELOPMENT`, if you are running a JUnit test it will be `TEST`, otherwise it will be `NORMAL`. - -Your application can get the launch mode by injecting the `io.quarkus.runtime.LaunchMode` enum into a CDI bean, -or by invoking the static method `io.quarkus.runtime.LaunchMode.current()`. - -== Graceful Shutdown - -Quarkus includes support for graceful shutdown, this allows Quarkus to wait for running requests to finish, up -till a set timeout. By default this is disabled, however you can configure this by setting the `quarkus.shutdown.timeout` -config property. When this is set shutdown will not happen until all running requests have completed, or until -this timeout has elapsed. This config property is a duration, and can be set using the standard -`java.time.Duration` format, if only a number is specified it is interpreted as seconds. - -Extensions that accept requests need to add support for this on an individual basis. At the moment only the -HTTP extension supports this, so shutdown may still happen when messaging requests are active. \ No newline at end of file diff --git a/_versions/2.7/guides/liquibase-mongodb.adoc b/_versions/2.7/guides/liquibase-mongodb.adoc deleted file mode 100644 index 78080204ac7..00000000000 --- a/_versions/2.7/guides/liquibase-mongodb.adoc +++ /dev/null @@ -1,156 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Liquibase MongoDB - -include::./attributes.adoc[] -:change-log: src/main/resources/db/changeLog.xml -:config-file: application.properties - -https://www.liquibase.org/[Liquibase] is an open source tool for database schema change management, -it allows managing MongoDB databases via it's https://github.com/liquibase/liquibase-mongodb[MongoDB Extension]. - -Quarkus provides first class support for using Liquibase MongoDB Extension as will be explained in this guide. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `liquibase-mongodb-quickstart` {quickstarts-tree-url}/liquibase-mongodb-quickstart[directory]. - -== Setting up support for Liquibase - -To start using the Liquibase MongoDB Extension with your project, you just need to: - -* add your changeLog to the `{change-log}` file as you usually do with Liquibase -* activate the `migrate-at-start` option to migrate the schema automatically or inject the `Liquibase` object and run -your migration as you normally do. - -In your `pom.xml`, add the following dependencies: - -* the Liquibase MongoDB extension -* the MongoDB client extension - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - - io.quarkus - quarkus-liquibase-mongodb - - - - - io.quarkus - quarkus-mongodb-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -// Liquibase MongoDB -implementation("io.quarkus:quarkus-liquibase-mongodb") - -// MongoDB client dependency -implementation("io.quarkus:quarkus-mongodb-client") ----- - -Liquibase MongoDB extension support relies on the Quarkus MongoDB client config. -For the time being, it does not support multiple clients. -First, you need to add the MongoDB config to the `{config-file}` file -in order to allow Liquibase to manage the schema. - -The following is an example for the `{config-file}` file: - -[source,properties] ----- -# configure MongoDB -quarkus.mongodb.connection-string = mongodb://localhost:27017 - -# Liquibase MongoDB minimal config properties -quarkus.liquibase-mongodb.migrate-at-start=true - -# Liquibase MongoDB optional config properties -# quarkus.liquibase-mongodb.change-log=db/changeLog.xml -# quarkus.liquibase-mongodb.validate-on-migrate=true -# quarkus.liquibase-mongodb.clean-at-start=false -# quarkus.liquibase-mongodb.contexts=Context1,Context2 -# quarkus.liquibase-mongodb.labels=Label1,Label2 -# quarkus.liquibase-mongodb.default-catalog-name=DefaultCatalog -# quarkus.liquibase-mongodb.default-schema-name=DefaultSchema ----- - -Add a changeLog file to the default folder following the Liquibase naming conventions: `{change-log}` -YAML, JSON and XML formats are supported for the changeLog. - -[source,xml] ----- - - - - - - - - {color: 1} - {name: "colorIdx"} - - - - {"name":"orange", "color": "orange"} - - - - ----- - -Now you can start your application and Quarkus will run the Liquibase's update method according to your config. - -== Using the Liquibase object - -In case you are interested in using the `Liquibase` object directly, you can inject it as follows: - -NOTE: If you enabled the `quarkus.liquibase.migrate-at-start` property, by the time you use the Liquibase instance, -Quarkus will already have run the migrate operation. - -[source,java] ----- -import org.quarkus.liquibase.LiquibaseFactory; - -@ApplicationScoped -public class MigrationService { - // You can Inject the object if you want to use it manually - @Inject - LiquibaseMongodbFactory liquibaseMongodbFactory; <1> - - public void checkMigration() { - // Use the liquibase instance manually - try (Liquibase liquibase = liquibaseFactory.createLiquibase()) { - liquibase.dropAll(); <2> - liquibase.validate(); - liquibase.update(liquibaseFactory.createContexts(), liquibaseFactory.createLabels()); - // Get the list of liquibase change set statuses - List status = liquibase.getChangeSetStatuses(liquibaseFactory.createContexts(), liquibaseFactory.createLabels()); <3> - } - } -} ----- -<1> Inject the LiquibaseFactory object -<2> Use the Liquibase instance directly -<3> List of applied or not applied liquibase ChangeSets - -== Configuration Reference - -include::{generated-dir}/config/quarkus-liquibase-mongodb.adoc[opts=optional, leveloffset=+2] \ No newline at end of file diff --git a/_versions/2.7/guides/liquibase.adoc b/_versions/2.7/guides/liquibase.adoc deleted file mode 100644 index c4d82205d20..00000000000 --- a/_versions/2.7/guides/liquibase.adoc +++ /dev/null @@ -1,233 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Liquibase - -include::./attributes.adoc[] -:change-log: src/main/resources/db/changeLog.xml -:config-file: application.properties - -https://www.liquibase.org/[Liquibase] is an open source tool for database schema change management. - -Quarkus provides first class support for using Liquibase as will be explained in this guide. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `liquibase-quickstart` {quickstarts-tree-url}/liquibase-quickstart[directory]. - -== Setting up support for Liquibase - -To start using Liquibase with your project, you just need to: - -* add your changeLog to the `{change-log}` file as you usually do with Liquibase -* activate the `migrate-at-start` option to migrate the schema automatically or inject the `Liquibase` object and run -your migration as you normally do. - -In your `pom.xml`, add the following dependencies: - -* the Liquibase extension -* your JDBC driver extension (`quarkus-jdbc-postgresql`, `quarkus-jdbc-h2`, `quarkus-jdbc-mariadb`, ...) - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - - io.quarkus - quarkus-liquibase - - - - - io.quarkus - quarkus-jdbc-postgresql - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -// Liquibase specific dependencies -implementation("io.quarkus:quarkus-liquibase") - -// JDBC driver dependencies -implementation("io.quarkus:quarkus-jdbc-postgresql") ----- - -Liquibase support relies on the Quarkus datasource config. -It can be customized for the default datasource as well as for every <>. -First, you need to add the datasource config to the `{config-file}` file -in order to allow Liquibase to manage the schema. - -The following is an example for the `{config-file}` file: - -[source,properties] ----- -# configure your datasource -quarkus.datasource.db-kind=postgresql -quarkus.datasource.username=sarah -quarkus.datasource.password=connor -quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/mydatabase - -# Liquibase minimal config properties -quarkus.liquibase.migrate-at-start=true - -# Liquibase optional config properties -# quarkus.liquibase.change-log=db/changeLog.xml -# quarkus.liquibase.validate-on-migrate=true -# quarkus.liquibase.clean-at-start=false -# quarkus.liquibase.database-change-log-lock-table-name=DATABASECHANGELOGLOCK -# quarkus.liquibase.database-change-log-table-name=DATABASECHANGELOG -# quarkus.liquibase.contexts=Context1,Context2 -# quarkus.liquibase.labels=Label1,Label2 -# quarkus.liquibase.default-catalog-name=DefaultCatalog -# quarkus.liquibase.default-schema-name=DefaultSchema -# quarkus.liquibase.liquibase-catalog-name=liquibaseCatalog -# quarkus.liquibase.liquibase-schema-name=liquibaseSchema -# quarkus.liquibase.liquibase-tablespace-name=liquibaseSpace ----- - -Add a changeLog file to the default folder following the Liquibase naming conventions: `{change-log}` -The yaml, json, xml and sql changeLog file formats are also supported. - -[source,xml] ----- - - - - - - - - - - - - ----- - -Now you can start your application and Quarkus will run the Liquibase's update method according to your config: - -[source,java] ----- -import org.quarkus.liquibase.LiquibaseFactory; <1> - -@ApplicationScoped -public class MigrationService { - // You can Inject the object if you want to use it manually - @Inject - LiquibaseFactory liquibaseFactory; <2> - - public void checkMigration() { - // Get the list of liquibase change set statuses - try (Liquibase liquibase = liquibaseFactory.createLiquibase()) { - List status = liquibase.getChangeSetStatuses(liquibaseFactory.createContexts(), liquibaseFactory.createLabels()); - } - } -} ----- -<1> The Quarkus extension provides a factory to initialize a Liquibase instance -<2> Inject the Quarkus liquibase factory if you want to use the liquibase methods directly - -== Multiple datasources - -Liquibase can be configured for multiple datasources. -The Liquibase properties are prefixed exactly the same way as the named datasources, for example: - -[source,properties] ----- -quarkus.datasource.db-kind=h2 -quarkus.datasource.username=username-default -quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:default -quarkus.datasource.jdbc.max-size=13 - -quarkus.datasource.users.db-kind=h2 -quarkus.datasource.users.username=username1 -quarkus.datasource.users.jdbc.url=jdbc:h2:tcp://localhost/mem:users -quarkus.datasource.users.jdbc.max-size=11 - -quarkus.datasource.inventory.db-kind=h2 -quarkus.datasource.inventory.username=username2 -quarkus.datasource.inventory.jdbc.url=jdbc:h2:tcp://localhost/mem:inventory -quarkus.datasource.inventory.jdbc.max-size=12 - -# Liquibase configuration for the default datasource -quarkus.liquibase.schemas=DEFAULT_TEST_SCHEMA -quarkus.liquibase.change-log=db/changeLog.xml -quarkus.liquibase.migrate-at-start=true - -# Liquibase configuration for the "users" datasource -quarkus.liquibase.users.schemas=USERS_TEST_SCHEMA -quarkus.liquibase.users.change-log=db/users.xml -quarkus.liquibase.users.migrate-at-start=true - -# Liquibase configuration for the "inventory" datasource -quarkus.liquibase.inventory.schemas=INVENTORY_TEST_SCHEMA -quarkus.liquibase.inventory.change-log=db/inventory.xml -quarkus.liquibase.inventory.migrate-at-start=true ----- - -Notice there's an extra bit in the key. -The syntax is as follows: `quarkus.liquibase.[optional name.][datasource property]`. - -NOTE: Without configuration, Liquibase is set up for every datasource using the default settings. - -== Using the Liquibase object - -In case you are interested in using the `Liquibase` object directly, you can inject it as follows: - -NOTE: If you enabled the `quarkus.liquibase.migrate-at-start` property, by the time you use the Liquibase instance, -Quarkus will already have run the migrate operation. - -[source,java] ----- -import org.quarkus.liquibase.LiquibaseFactory; - -@ApplicationScoped -public class MigrationService { - // You can Inject the object if you want to use it manually - @Inject - LiquibaseFactory liquibaseFactory; <1> - - @Inject - @LiquibaseDataSource("inventory") <2> - LiquibaseFactory liquibaseFactoryForInventory; - - @Inject - @Named("liquibase_users") <3> - LiquibaseFactory liquibaseFactoryForUsers; - - public void checkMigration() { - // Use the liquibase instance manually - try (Liquibase liquibase = liquibaseFactory.createLiquibase()) { - liquibase.dropAll(); <4> - liquibase.validate(); - liquibase.update(liquibaseFactory.createContexts(), liquibaseFactory.createLabels()); - // Get the list of liquibase change set statuses - List status = liquibase.getChangeSetStatuses(liquibaseFactory.createContexts(), liquibaseFactory.createLabels()); <5> - } - } -} ----- -<1> Inject the LiquibaseFactory object -<2> Inject Liquibase for named datasources using the Quarkus `LiquibaseDataSource` qualifier -<3> Inject Liquibase for named datasources -<4> Use the Liquibase instance directly -<5> List of applied or not applied liquibase ChangeSets - -== Configuration Reference - -include::{generated-dir}/config/quarkus-liquibase.adoc[opts=optional, leveloffset=+2] diff --git a/_versions/2.7/guides/logging.adoc b/_versions/2.7/guides/logging.adoc deleted file mode 100644 index e536a29f4c1..00000000000 --- a/_versions/2.7/guides/logging.adoc +++ /dev/null @@ -1,517 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Configuring Logging - -include::./attributes.adoc[] - -This guide explains logging and how to configure it. - -Internally, Quarkus uses JBoss Log Manager and the JBoss Logging facade. -You can use the JBoss Logging facade inside your code as it's already provided, -or any of the supported Logging API listed in the next chapter as Quarkus will send them to JBoss Log Manager. - -All the logging configuration will then be done inside your `application.properties`. - -== Supported Logging APIs - -Applications and components may use any of the following APIs for logging, and the logs will be merged: - -* JDK `java.util.logging` (also called JUL) -* https://github.com/jboss-logging/jboss-logging[JBoss Logging] -* https://www.slf4j.org/[SLF4J] -* https://commons.apache.org/proper/commons-logging/[Apache Commons Logging] - -Internally Quarkus uses JBoss Logging; you can also use it inside your application so that no other dependencies should be added for your logs. - -[source,java] ----- -import org.jboss.logging.Logger; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/hello") -public class ExampleResource { - - private static final Logger LOG = Logger.getLogger(ExampleResource.class); - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - LOG.info("Hello"); - return "hello"; - } -} ----- - -NOTE: If you use JBoss Logging but one of your libraries uses a different logging API, you may need to configure a <>. - -=== Logging with Panache - -Instead of declaring a `Logger` field, you can use the simplified logging API: - -[source,java] ----- -package com.example; - -import io.quarkus.logging.Log; // <1> - -class MyService { // <2> - public void doSomething() { - Log.info("Simple!"); // <3> - } -} ----- -<1> The `io.quarkus.logging.Log` class mirrors the JBoss Logging API, except all methods are `static`. -<2> Note that the class doesn't declare a logger field. -This is because during application build, a `private static final org.jboss.logging.Logger` field is created automatically, in each class that uses the `Log` API. -The fully qualified name of the class that calls the `Log` methods is used as a logger name. -In this example, the logger name would be `com.example.MyService`. -<3> Finally, during application build, all calls to `Log` methods are rewritten to regular JBoss Logging calls on the logger field. - -WARNING: Only use the `Log` API in application classes, not in external dependencies. -`Log` method calls that are not processed by Quarkus at build time will throw an exception. - -=== Injecting a Logger - -You can also inject a configured `org.jboss.logging.Logger` instance in your beans and resource classes. - -[source, java] ----- -import org.jboss.logging.Logger; - -@ApplicationScoped -class SimpleBean { - - @Inject - Logger log; <1> - - @LoggerName("foo") - Logger fooLog; <2> - - public void ping() { - log.info("Simple!"); - fooLog.info("Goes to _foo_ logger!"); - } -} ----- -<1> The FQCN of the declaring class is used as a logger name, i.e. `org.jboss.logging.Logger.getLogger(SimpleBean.class)` will be used. -<2> In this case, the name _foo_ is used as a logger name, i.e. `org.jboss.logging.Logger.getLogger("foo")` will be used. - -NOTE: The logger instances are cached internally. Therefore, a logger injected e.g. into a `@RequestScoped` bean is shared for all bean instances to avoid possible performance penalty associated with logger instantiation. - -=== What about Apache Log4j ? - -link:https://logging.apache.org/log4j/2.x/[Log4j] is a logging implementation: it contains a logging backend and a logging facade. -Quarkus uses the JBoss Log Manager backend, so you will need to include the `log4j2-jboss-logmanager` library to route Log4j logs to JBoss Log Manager. - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.jboss.logmanager - log4j2-jboss-logmanager <1> - ----- -<1> This is the library needed for Log4j version 2; if you use the legacy Log4j version 1 you need to use `log4j-jboss-logmanager` instead. - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.jboss.logmanager:log4j2-jboss-logmanager") <1> ----- -<1> This is the library needed for Log4j version 2; if you use the legacy Log4j version 1 you need to use `log4j-jboss-logmanager` instead. - -You can then use the Log4j API inside your application. - -WARNING: Do not include any Log4j dependencies. The `log4j2-jboss-logmanager` library includes what's needed to use Log4j as a logging facade. - -== Logging levels - -These are the log levels used by Quarkus: - -[horizontal] -OFF:: Special level to turn off logging. -FATAL:: A critical service failure/complete inability to service requests of any kind. -ERROR:: A significant disruption in a request or the inability to service a request. -WARN:: A non-critical service error or problem that may not require immediate correction. -INFO:: Service lifecycle events or important related very-low-frequency information. -DEBUG:: Messages that convey extra information regarding lifecycle or non-request-bound events which may be helpful for debugging. -TRACE:: Messages that convey extra per-request debugging information that may be very high frequency. -ALL:: Special level for all messages including custom levels. - -In addition, the following levels may be configured for applications and libraries using link:https://docs.oracle.com/javase/8/docs/api/java/util/logging/Level.html[`java.util.logging`]: - -[horizontal] -SEVERE:: Same as **ERROR**. -WARNING:: Same as **WARN**. -CONFIG:: Service configuration information. -FINE:: Same as **DEBUG**. -FINER:: Same as **TRACE**. -FINEST:: Event more debugging information than `TRACE`, maybe with even higher frequency. - -== Runtime configuration - -Run time logging is configured in the `application.properties` file, -for example, to set the default log level to `INFO` logging and include Hibernate `DEBUG` logs: - -[source, properties] ----- -quarkus.log.level=INFO -quarkus.log.category."org.hibernate".level=DEBUG ----- - -Setting a log level below `DEBUG` requires the minimum log level to be adjusted, -either globally via the `quarkus.log.min-level` property or per-category as shown in the example above, -as well as adjusting the log level itself. - -Minimum logging level sets a floor level that Quarkus will be needed to potentially generate, -opening the door to optimization opportunities. -As an example, in native execution the minimum level enables lower level checks (e.g. `isTraceEnabled`) to be folded to `false`, -resulting in dead code elimination for code that will never to be executed. - -All possible properties are listed in <>. - -NOTE: If you are adding these properties via command line make sure `"` is escaped. -For example `-Dquarkus.log.category.\"org.hibernate\".level=TRACE`. - -=== Logging categories - -Logging is done on a per-category basis. Each category can be independently configured. -A configuration which applies to a category will also apply to all sub-categories of that category, -unless there is a more specific matching sub-category configuration. -For every category the same settings that are configured on ( console / file / syslog ) apply. -These can also be overridden by attaching a one or more named handlers to a category. See example in <> - -[cols="".level|INFO footnote:[Some extensions may define customized default log levels for certain categories, in order to reduce log noise by default. Setting the log level in configuration will override any extension-defined log levels.]|The level to use to configure the category named ``. The quotes are necessary. -|quarkus.log.category."".min-level|DEBUG |The minimum logging level to use to configure the category named ``. The quotes are necessary. -|quarkus.log.category."".use-parent-handlers|true|Specify whether or not this logger should send its output to its parent logger. -|quarkus.log.category."".handlers=[]|empty footnote:[By default the configured category gets the same handlers attached as the one on the root logger.]|The names of the handlers that you want to attach to a specific category. -|=== - -NOTE: The quotes shown in the property name are required as categories normally contain '.' which must -be escaped. An example is shown in <>. - -=== Root logger configuration - -The root logger category is handled separately, and is configured via the following properties: - -[cols="}|Time zone|Set the time zone of the output to ``. -|%X{}|Mapped Diagnostics Context Value|Renders the value from Mapped Diagnostics Context -|%X|Mapped Diagnostics Context Values|Renders all the values from Mapped Diagnostics Context in format {property.key=property.value} -|%x|Nested Diagnostics context values|Renders all the values from Nested Diagnostics Context in format {value1.value2} -|=== - -[id="alt-console-format"] -=== Alternative Console Logging Formats - -It is possible to change the output format of the console log. This can be useful in environments where the output -of the Quarkus application is captured by a service which can, for example, process and store the log information for -later analysis. - -[id="json-logging"] -==== JSON Logging Format - -In order to configure the JSON logging format, the `quarkus-logging-json` extension may be employed. -Add this extension to your build file as the following snippet illustrates: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-logging-json - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-logging-json") ----- - -The presence of this extension will, by default, replace the output format configuration from the console configuration. -This means that the format string and the color settings (if any) will be ignored. The other console configuration items -(including those controlling asynchronous logging and the log level) will continue to be applied. - -For some, it will make sense to use logging that is humanly readable (unstructured) in dev mode and JSON logging (structured) in production mode. This can be achieved using different profiles, as shown in the following configuration. - -.Disable JSON logging in application.properties for dev and test mode -[source, properties] ----- -%dev.quarkus.log.console.json=false -%test.quarkus.log.console.json=false ----- - -===== Configuration - -The JSON logging extension can be configured in various ways. The following properties are supported: - -include::{generated-dir}/config/quarkus-logging-json.adoc[opts=optional, leveloffset=+1] - -WARNING: Enabling pretty printing might cause certain processors and JSON parsers to fail. - -NOTE: Printing the details can be expensive as the values are retrieved from the caller. The details include the -source class name, source file name, source method name and source line number. - -== Log Handlers - -A log handler is a logging component responsible for the emission of log events to a recipient. -Quarkus comes with three different log handlers: **console**, **file** and **syslog**. - -=== Console log handler - -The console log handler is enabled by default. It outputs all log events to the console of your application (typically to the system's `stdout`). - -For details of its configuration options, see link:#quarkus-log-logging-log-config_quarkus.log.console-console-logging[the Console Logging configuration reference]. - -=== File log handler - -The file log handler is disabled by default. It outputs all log events to a file on the application's host. -It supports log file rotation. - -For details of its configuration options, see link:#quarkus-log-logging-log-config_quarkus.log.file-file-logging[the File Logging configuration reference]. - -=== Syslog log handler - -link:https://en.wikipedia.org/wiki/Syslog[Syslog] is a protocol for sending log messages on Unix-like systems using a protocol defined by link:https://tools.ietf.org/html/rfc5424[RFC 5424]. - -The syslog handler sends all log events to a syslog server (by default, the syslog server that is local to the application). -It is disabled by default. - -For details of its configuration options, see link:#quarkus-log-logging-log-config_quarkus.log.syslog-syslog-logging[the Syslog Logging configuration reference]. - -== Examples - -.Console DEBUG Logging except for Quarkus logs (INFO), No color, Shortened Time, Shortened Category Prefixes -[source, properties] ----- -quarkus.log.console.format=%d{HH:mm:ss} %-5p [%c{2.}] (%t) %s%e%n -quarkus.log.console.level=DEBUG -quarkus.log.console.color=false - -quarkus.log.category."io.quarkus".level=INFO ----- - -NOTE: If you are adding these properties via command line make sure `"` is escaped. -For example `-Dquarkus.log.category.\"io.quarkus\".level=DEBUG`. - -[#category-example] -.File TRACE Logging Configuration -[source, properties] ----- -quarkus.log.file.enable=true -# Send output to a trace.log file under the /tmp directory -quarkus.log.file.path=/tmp/trace.log -quarkus.log.file.level=TRACE -quarkus.log.file.format=%d{HH:mm:ss} %-5p [%c{2.}] (%t) %s%e%n -# Set 2 categories (io.quarkus.smallrye.jwt, io.undertow.request.security) to TRACE level -quarkus.log.min-level=TRACE -quarkus.log.category."io.quarkus.smallrye.jwt".level=TRACE -quarkus.log.category."io.undertow.request.security".level=TRACE ----- - -NOTE: As we don't change the root logger, console log will only contain `INFO` or higher order logs. - -[#category-named-handlers-example] -.Named handlers attached to a category -[source, properties] ----- -# Send output to a trace.log file under the /tmp directory -quarkus.log.file.path=/tmp/trace.log -quarkus.log.console.format=%d{HH:mm:ss} %-5p [%c{2.}] (%t) %s%e%n -# Configure a named handler that logs to console -quarkus.log.handler.console."STRUCTURED_LOGGING".format=%e%n -# Configure a named handler that logs to file -quarkus.log.handler.file."STRUCTURED_LOGGING_FILE".enable=true -quarkus.log.handler.file."STRUCTURED_LOGGING_FILE".format=%e%n -# Configure the category and link the two named handlers to it -quarkus.log.category."io.quarkus.category".level=INFO -quarkus.log.category."io.quarkus.category".handlers=STRUCTURED_LOGGING,STRUCTURED_LOGGING_FILE ----- - -== Centralized Log Management - -If you want to send your logs to a centralized tool like Graylog, Logstash or Fluentd, you can follow the xref:centralized-log-management.adoc[Centralized log management guide]. - -== How to Configure Logging for `@QuarkusTest` - -If you want to configure logging for your `@QuarkusTest`, don't forget to set up the `maven-surefire-plugin` accordingly. -In particular, you need to set the appropriate `LogManager` using the `java.util.logging.manager` system property. - -.Example Configuration -[source, xml] ----- - - - - maven-surefire-plugin - ${surefire-plugin.version} - - - org.jboss.logmanager.LogManager <1> - DEBUG <2> - ${maven.home} - - - - - ----- -<1> Make sure the `org.jboss.logmanager.LogManager` is used. -<2> Enable debug logging for all logging categories. - -If you are using Gradle, add this to your `build.gradle`: - -[source, groovy] ----- -test { - systemProperty "java.util.logging.manager", "org.jboss.logmanager.LogManager" -} ----- - -See also: <> - -[[logging-adapters]] -== Logging Adapters - -Quarkus relies on the JBoss Logging library for all the logging requirements. - -If you are using libraries that have dependencies on other logging libraries such as Apache Commons Logging, Log4j or SLF4J, you need to exclude them from the dependencies and use one of the adapters provided by JBoss Logging. - -This is especially important when building native executables as you could encounter issues similar to the following when compiling the native executable: - -[source] ----- -Caused by java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl ----- - -This is due to the logging implementation not being included in the native executable. -Using the JBoss Logging adapters will solve this problem. - -These adapters are available for most of the common Open Source logging components. - -Apache Commons Logging: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.jboss.logging - commons-logging-jboss-logging - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.jboss.logging:commons-logging-jboss-logging") ----- - -Log4j: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.jboss.logmanager - log4j-jboss-logmanager - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.jboss.logmanager:log4j-jboss-logmanager") ----- - -Log4j 2: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.jboss.logmanager - log4j2-jboss-logmanager - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.jboss.logmanager:log4j2-jboss-logmanager") ----- - -And SLF4J: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.jboss.slf4j - slf4j-jboss-logmanager - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.jboss.slf4j:slf4j-jboss-logmanager") ----- - -NOTE: This is not needed for libraries that are dependencies of a Quarkus extension as the extension will take care of this for you. - -[[loggingConfigurationReference]] -== Logging configuration reference - -include::{generated-dir}/config/quarkus-log-logging-log-config.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/lra.adoc b/_versions/2.7/guides/lra.adoc deleted file mode 100644 index 247871497a7..00000000000 --- a/_versions/2.7/guides/lra.adoc +++ /dev/null @@ -1,218 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Narayana LRA Participant Support - -include::./attributes.adoc[] - -== Introduction - -The LRA (short for Long Running Action) participant extension is useful in microservice based -designs where different services can benefit from a relaxed notion of distributed consistency. - -The idea is for multiple services to perform different computations/actions in concert, whilst -retaining the option to compensate for any actions performed during the computation. -This kind of loose coupling of services bridges the gap between strong consistency models -such as JTA/XA and "home grown" ad hoc consistency solutions. - -The model is based on the https://github.com/eclipse/microprofile-lra/blob/master/spec/src/main/asciidoc/microprofile-lra-spec.adoc#eclipse-microprofile-lra[Eclipse MicroProfile LRA specification]. -The approach is for the developer to annotate a business method with a Java annotation -(https://download.eclipse.org/microprofile/microprofile-lra-1.0/apidocs/[`@LRA`]). -When such a method is called, an LRA context is created (if one is not already present) which is passed -along with subsequent JAX-RS invocations until a method is reached -which also contains an `@LRA` annotation with an attribute that indicates that the LRA should be -closed or cancelled. The default is for the LRA to be closed in the same method that started the -LRA (which itself may have propagated the context during method execution). -The JAX-RS resource indicates that it wishes to participate in the interaction by, minimally, -marking one of the methods with an -https://download.eclipse.org/microprofile/microprofile-lra-1.0/apidocs/[`@Compensate`] -annotation. If the context is later cancelled then this compensate action is guaranteed to be -called even in the presence of failures and is the trigger for the resource to compensate for any -activities it performed in the context of the LRA. This guarantee enables services to operate -reliably with the assurance of eventual consistency (when all compensation activities have -ran to completion). The participant can ask to be reliably notified when the LRA it is participating -in is closed by marking one of the methods with an -https://download.eclipse.org/microprofile/microprofile-lra-1.0/apidocs/[`@Complete`] -annotation. In this way cancelling an LRA causes all participants to be notified via their Compensate callback -and closing an LRA causes all participants to be notified via their Complete callback (if they have one). -Other annotations for controlling participants are documented in the -https://download.eclipse.org/microprofile/microprofile-lra-1.0/apidocs/[MicroProfile LRA API v1.0 javadoc]. - -== Configuration - -Once you have your Quarkus Maven project configured you can add the `narayana-lra` extension -by running the following command in your project base directory: - -:add-extension-extensions: narayana-lra,resteasy-jackson,rest-client-jackson -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-narayana-lra - - - io.quarkus - quarkus-resteasy-jackson - - - io.quarkus - quarkus-rest-client-jackson - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-narayana-lra") -implementation("io.quarkus:quarkus-resteasy-jackson") -implementation("io.quarkus:quarkus-rest-client-jackson") ----- - -[IMPORTANT] -==== -`quarkus-narayana-lra` needs to be complemented with a server JAX-RS implementation and a REST Client implementation in order to work. -This means that users should also have either `quarkus-resteasy-jackson` and `quarkus-rest-client-jackson` or `quarkus-resteasy-reactive-jackson` and `quarkus-rest-client-reactive-jackson` dependencies in their application. -==== - -If there is a running coordinator then this is all you need in order to create -new LRAs and to enlist participants with them. - -The LRA extension can be configured by updating an `application.properties` file -in the `src/main/resources` directory. The only LRA specific property is -`quarkus.lra.coordinator-url=` which specifies the HTTP endpoint of an external -coordinator, for example: - -[source,bash] ----- -quarkus.lra.coordinator-url=http://localhost:8080/lra-coordinator ----- - -For a Narayana coordinator the path component of the url is normally `lra-coordinator`. -Coordinators can be obtained from `https://hub.docker.com/r/jbosstm/lra-coordinator` -or you can build your own coordinator using a maven pom that includes the appropriate -dependencies. A Quarkus quickstart will be provided to show how to do this or you can -take a look at one of the https://github.com/jbosstm/quickstart/tree/master/rts/lra-examples/lra-coordinator[Narayana quickstarts]. -Another option would be to run it managed inside a WildFly application server. - -== Handling failures - -When an LRA is told to finish, i.e. when a method annotated with `@LRA(end = true, ...)` -is invoked, the coordinator will instruct all services involved in the interaction to -finish. If a service is unavailable (or still finishing) then the coordinator will retry -periodically. It is the users responsibility to restart failed services on the same -endpoint that they used when they first joined the LRA, or to tell the coordinator that -they wish to be notified on new endpoints. An LRA is not deemed finished until *all* -participants have acknowledged that they have finished. - -The coordinator is responsible for reliably creating and ending LRAs and for managing -participant enlistment and it therefore must be available (for example if it or the -network fail then something in the environment is responsible for restarting -the coordinator or for repairing the network, respectively). To fulfill this task the -coordinator must have access to durable storage for its logs (via a filesystem or in -a database). At the time of writing, managing coordinators is the responsibility of -the user. An "out-of-the-box" solution will be forthcoming. - -== Examples - -The following is a simple example of how to start an LRA and how to receive a notification -when the LRA is later cancelled (the `@Compensate` annotated method is called) or closed -(`@Complete` is called): - -[source,java] ----- -@Path("/") -@ApplicationScoped -public class SimpleLRAParticipant -{ - @LRA(LRA.Type.REQUIRES_NEW) // a new LRA is created on method entry - @Path("/work") - @PUT - public void doInNewLongRunningAction(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) URI lraId) - { - /* - * Perform business actions in the context of the LRA identified by the - * value in the injected JAX-RS header. This LRA was started just before - * the method was entered (REQUIRES_NEW) and will be closed when the - * method finishes at which point the completeWork method below will be - * invoked. - */ - } - - @org.eclipse.microprofile.lra.annotation.Complete - @Path("/complete") - @PUT - public Response completeWork(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) URI lraId, - String userData) - { - /* - * Free up resources allocated in the context of the LRA identified by the - * value in the injected JAX-RS header. - * - * Since there is no @Status method in this class, completeWork MUST be - * idempotent and MUST return the status. - */ - return Response.ok(ParticipantStatus.Completed.name()).build(); - } - - @org.eclipse.microprofile.lra.annotation.Compensate - @Path("/compensate") - @PUT - public Response compensateWork(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) URI lraId, - String userData) - { - /* - * The LRA identified by the value in the injected JAX-RS header was - * cancelled so the business logic should compensate for any actions - * that have been performed while running in its context. - * - * Since there is no @Status method in this class, compensateWork MUST be - * idempotent and MUST return the status - */ - return Response.ok(ParticipantStatus.Compensated.name()).build(); - } -} ----- - -The example also shows that when an LRA is present its identifier can be obtained -by reading the request headers via the `@HeaderParam` JAX-RS annotation type. - -And here's an example of how to start an LRA in one resource method and close it in -a different resource method using the `end` element of the `LRA` annotation. It also -shows how to configure the LRA to be automatically cancelled if the business method -returns the particular HTTP status codes identified in the `cancelOn` and -`cancelOnFamily` elements: - -[source,java] ----- - @LRA(value = LRA.Type.REQUIRED, // if there is no incoming context a new one is created - cancelOn = { - Response.Status.INTERNAL_SERVER_ERROR // cancel on a 500 code - }, - cancelOnFamily = { - Response.Status.Family.CLIENT_ERROR // cancel on any 4xx code - }, - end = false) // the LRA will continue to run when the method finishes - @Path("/book") - @POST - public Response bookTrip(...) { ... } - - @LRA(value = LRA.Type.MANDATORY, // requires an active context before method can be executed - end = true) // end the LRA started by the bookTrip method - @Path("/confirm") - @PUT - public Booking confirmTrip(Booking booking) throws BookingException { ... } ----- - -The `end = false` element on the bookTrip method forces the LRA to continue running when -the method finishes and the `end = true` element on the confirmTrip method forces the LRA -(started by the bookTrip method) to be closed when the method finishes. Note that this -end element can be placed on any JAX-RS resource (ie one service can start the LRA whilst -a different service ends it). There are many more examples in the -https://github.com/eclipse/microprofile-lra/blob/master/spec/src/main/asciidoc/microprofile-lra-spec.adoc#java-annotations[Microprofile LRA specification document] and in the https://github.com/eclipse/microprofile-lra/tree/master/tck/src/main/java/org/eclipse/microprofile/lra/tck[Microprofile LRA TCK]. diff --git a/_versions/2.7/guides/mailer-reference.adoc b/_versions/2.7/guides/mailer-reference.adoc deleted file mode 100644 index 692e476c9aa..00000000000 --- a/_versions/2.7/guides/mailer-reference.adoc +++ /dev/null @@ -1,384 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Mailer Reference Guide - -include::./attributes.adoc[] - -This guide is the companion from the xref:mailer.adoc[Mailer Getting Started Guide]. -It explains in more details the configuration and usage of the Quarkus Mailer. - -== Mailer extension - -To use the mailer, you need to add the `quarkus-mailer` extension. - -You can add the extension to your project using: - -[source, bash] ----- -> ./mvnw quarkus:add-extensions -Dextensions="mailer" ----- - -Or just add the following dependency to your project: - -[source, xml] ----- - - io.quarkus - quarkus-mailer - ----- - - -== Accessing the mailer - -You can inject the mailer in your application using: - -[source, java] ----- -@Inject -Mailer mailer; - -@Inject -ReactiveMailer reactiveMailer; ----- - -There are 2 APIs: - -* `io.quarkus.mailer.Mailer` provides the imperative (blocking and synchronous) API; -* `io.quarkus.mailer.reactive.ReactiveMailer` provides the reactive (non-blocking and asynchronous) API - -NOTE: The two APIs are equivalent feature-wise. Actually the `Mailer` implementation is built on top of the `ReactiveMailer` implementation. - -[NOTE] -.Deprecation -==== -`io.quarkus.mailer.ReactiveMailer` is deprecated in favor of `io.quarkus.mailer.reactive.ReactiveMailer`. -==== - -To send a simple email, proceed as follows: - -[source, java] ----- -// Imperative API: -mailer.send(Mail.withText("to@acme.org", "A simple email from quarkus", "This is my body.")); -// Reactive API: -Uni stage = reactiveMailer.send(Mail.withText("to@acme.org", "A reactive email from quarkus", "This is my body.")); ----- - -For example, you can use the `Mailer` in an HTTP endpoint as follows: - -[source, java] ----- -@GET -@Path("/imperative") -public void sendASimpleEmail() { - mailer.send(Mail.withText("to@acme.org", "A simple email from quarkus", "This is my body")); -} - -@GET -@Path("/reactive") -public Uni sendASimpleEmailAsync() { - return reactiveMailer.send( - Mail.withText("to@acme.org", "A reactive email from quarkus", "This is my body")); -} ----- - -== Creating Mail objects - -The mailer lets you send `io.quarkus.mailer.Mail` objects. -You can create new `io.quarkus.mailer.Mail` instances from the constructor or from the `Mail.withText` and -`Mail.withHtml` helper methods. -The `Mail` instance lets you add recipients (to, cc, or bcc), set the subject, headers, sender (from) address... - -You can also send several `Mail` objects in one call: - -[source, java] ----- -mailer.send(mail1, mail2, mail3); ----- - -[[attachments]] -== Sending attachments - -To send attachments, just use the `addAttachment` methods on the `io.quarkus.mailer.Mail` instance: - -[source,java] ----- -@GET -@Path("/attachment") -public void sendEmailWithAttachment() { - mailer.send(Mail.withText("clement.escoffier@gmail.com", "An email from quarkus with attachment", - "This is my body") - .addAttachment("my-file-1.txt", - "content of my file".getBytes(), "text/plain") - .addAttachment("my-file-2.txt", - new File("my-file.txt"), "text/plain") - ); -} ----- - -Attachments can be created from raw bytes (as shown in the snippet) or files. -Note that files are resolved from the working directory of the application. - -[[html]] -== Sending HTML emails with inlined attachments - -When sending HTML emails, you can add inlined attachments. -For example, you can send an image with your email, and this image will be displayed in the mail content. -If you put the image file into the `META-INF/resources` folder, you should specify the full path to the file, _e.g._ `META-INF/resources/quarkus-logo.png` otherwise Quarkus will look for the file in the root directory. - -[source, java] ----- -@GET -@Path("/html") -public void sendingHTML() { - String body = "Hello!" + "\n" + - "

    Here is an image for you:

    " + - "

    Regards

    "; - mailer.send(Mail.withHtml("to@acme.org", "An email in HTML", body) - .addInlineAttachment("quarkus-logo.png", - new File("quarkus-logo.png"), - "image/png", "")); -} ----- - -Note the _content-id_ format and reference. -By spec, when you create the inline attachment, the content-id must be structured as follows: ``. -If you don't wrap your content-id between `<>`, it is automatically wrapped for you. -When you want to reference your attachment, for instance in the `src` attribute, use `cid:id@domain` (without the `<` and `>`). - -[[templates]] -== Message Body Based on Qute Templates - -It's possible to inject a mail template, where the message body is created automatically using xref:qute.adoc[Qute templates]. - -[source, java] ----- -@Path("") -public class MailingResource { - - @CheckedTemplate - static class Templates { - public static native MailTemplateInstance hello(String name); // <1> - } - - @GET - @Path("/mail") - public Uni send() { - // the template looks like: Hello {name}! // <2> - return Templates.hello("John") - .to("to@acme.org") // <3> - .subject("Hello from Qute template") - .send(); // <4> - } -} ----- -<1> By convention, the enclosing class name and method names are used to locate the template. In this particular case, -we will use the `src/main/resources/templates/MailingResource/hello.html` and `src/main/resources/templates/MailingResource/hello.txt` templates to create the message body. -<2> Set the data used in the template. -<3> Create a mail template instance and set the recipient. -<4> `MailTemplate.send()` triggers the rendering and, once finished, sends the e-mail via a `Mailer` instance. - -TIP: Injected mail templates are validated during build. -The build fails if there is no matching template in `src/main/resources/templates`. - -You can also do this without type-safe templates: - -[source, java] ----- -@Inject -@Location("hello") -MailTemplate hello; // <1> - -@GET -@Path("/mail") -public Uni send() { - return hello.to("to@acme.org") // <2> - .subject("Hello from Qute template") - .data("name", "John") // <3> - .send() // <4> -} ----- -<1> If there is no `@Location` qualifier provided, the field name is used to locate the template. -Otherwise, search for the template as the specified location. In this particular case, we will use the `src/main/resources/templates/hello.html` and `src/main/resources/templates/hello.txt` templates to create the message body. -<2> Create a mail template instance and set the recipient. -<3> Set the data used in the template. -<4> `MailTemplate.send()` triggers the rendering and, once finished, sends the e-mail via a `Mailer` instance. - -[[execution-model]] -== Execution model - -The reactive mailer is non-blocking, and the results are provided on an I/O thread. -See the xref:quarkus-reactive-architecture.adoc[Quarkus Reactive Architecture documentation] for further details on this topic. - -The non-reactive mailer blocks until the messages are sent to the SMTP server. -Note that does not mean that the message is delivered, just that it's been sent successfully to the SMTP server, which will be responsible for the delivery. - -[[testing]] -== Testing email sending - -Because it is very inconvenient to send emails during development and testing, you can set the `quarkus.mailer.mock` boolean -configuration to `true` to prevent the actual sending of emails but instead print them on stdout and collect them in a `MockMailbox` bean instead. -This is the default if you are running Quarkus in `DEV` or `TEST` mode. - -You can then write tests to verify that your emails were sent, for example, by a REST endpoint: - -[source, java] ----- -@QuarkusTest -class MailTest { - - private static final String TO = "foo@quarkus.io"; - - @Inject - MockMailbox mailbox; - - @BeforeEach - void init() { - mailbox.clear(); - } - - @Test - void testTextMail() throws MessagingException, IOException { - // call a REST endpoint that sends email - given() - .when() - .get("/send-email") - .then() - .statusCode(202) - .body(is("OK")); - - // verify that it was sent - List sent = mailbox.getMessagesSentTo(TO); - assertThat(sent).hasSize(1); - Mail actual = sent.get(0); - assertThat(actual.getText()).contains("Wake up!"); - assertThat(actual.getSubject()).isEqualTo("Alarm!"); - - assertThat(mailbox.getTotalMessagesSent()).isEqualTo(6); - } -} ----- - -== Using the underlying Vert.x Mail Client - -The Quarkus Mailer is implemented on top of the https://vertx.io/docs/vertx-mail-client/java/[Vert.x Mail Client], providing an asynchronous and non-blocking way to send emails. -If you need fine control on how the mail is sent, for instance if you need to retrieve the message ids, you can inject the underlying client, and use it directly: - -[source, java] ----- -@Inject MailClient client; ----- - -Three API flavors are exposed: - -* the Mutiny client (`io.vertx.mutiny.ext.mail.MailClient`) -* the bare client (`io.vertx.ext.mail.MailClient`) - -Check the xref:vertx.adoc[Using Vert.x guide] for further details about these different APIs and how to select the most suitable for you. - -The retrieved `MailClient` is configured using the configuration key presented above. -You can also create your own instance, and pass your own configuration. - -[#gmail-specific-configuration] -== Gmail specific configuration - -If you want to use the Gmail SMTP server, first create a dedicated password in `Google Account > Security > App passwords` or go to https://myaccount.google.com/apppasswords. - -[NOTE] -==== -You need to switch on 2-Step Verification at https://myaccount.google.com/security in order to access the App passwords page. -==== - -When done, you can configure your Quarkus application by adding the following properties to your `application.properties`: - -With TLS: - -[source,properties] ----- -quarkus.mailer.auth-methods=DIGEST-MD5 CRAM-SHA256 CRAM-SHA1 CRAM-MD5 PLAIN LOGIN -quarkus.mailer.from=YOUREMAIL@gmail.com -quarkus.mailer.host=smtp.gmail.com -quarkus.mailer.port=587 -quarkus.mailer.start-tls=REQUIRED -quarkus.mailer.username=YOUREMAIL@gmail.com -quarkus.mailer.password=YOURGENERATEDAPPLICATIONPASSWORD ----- - -Or with SSL: - -[source,properties] ----- -quarkus.mailer.auth-methods=DIGEST-MD5 CRAM-SHA256 CRAM-SHA1 CRAM-MD5 PLAIN LOGIN -quarkus.mailer.from=YOUREMAIL@gmail.com -quarkus.mailer.host=smtp.gmail.com -quarkus.mailer.port=465 -quarkus.mailer.ssl=true -quarkus.mailer.username=YOUREMAIL@gmail.com -quarkus.mailer.password=YOURGENERATEDAPPLICATIONPASSWORD ----- - -[NOTE] -==== -The `quarkus.mailer.auth-methods` configuration option is needed for the Quarkus mailer to support password authentication with Gmail. -By default both the mailer and Gmail default to `XOAUTH2` which requires registering an application, getting tokens, etc. -==== - -== Using SSL with native executables - -Note that if you enable SSL for the mailer and you want to build a native executable, you will need to enable the SSL support. -Please refer to the xref:native-and-ssl.adoc[Using SSL With Native Executables] guide for more information. - -== Configuring the SMTP credentials - -It is recommended to encrypt any sensitive data, such as the `quarkus.mailer.password`. -One approach is to save the value into a secure store like HashiCorp Vault, and refer to it from the configuration. -Assuming for instance that Vault contains key `mail-password` at path `myapps/myapp/myconfig`, then the mailer -extension can be simply configured as: - -[source,properties] ----- -... -# path within the kv secret engine where is located the application sensitive configuration -quarkus.vault.secret-config-kv-path=myapps/myapp/myconfig - -... -quarkus.mailer.password=${mail-password} ----- -Please note that the password value is evaluated only once, at startup time. If `mail-password` was changed in Vault, -the only way to get the new value would be to restart the application. - -[TIP] -For more information about the Mailer configuration please refer to the <>. - -== Configuring a trust store - -If your SMTP requires a trust store, you can configure the trust store as follows: - -[source, properties] ----- -quarkus.mailer.host=... -quarkus.mailer.port=... -quarkus.mailer.ssl=true -quarkus.mailer.trust-store.paths=truststore.jks # the path to your trust store -quarkus.mailer.trust-store.password=secret # the trust store password if any -quarkus.mailer.trust-store.type=JKS # the type of trust store if it can't be deduced from the file extension ----- - -Quarkus mailer supports JKS, PCKS#12 and PEM trust stores. -For PEM, you can configure multiple files. -For JKS and PCKS#12, you can configure the password if any. - -`quarkus.mailer.trust-store.type` is optional and allows configuring the type of trust store (among `JKS`, `PEM` and `PCKS`). -When not set, Quarkus tries to deduce the type from the file name. - -NOTE: You can also configure `quarkus.mailer.trust-all=true` to bypass the verification. - -[[configuration-reference]] -== Mailer Configuration Reference - -include::{generated-dir}/config/quarkus-mailer.adoc[opts=optional, leveloffset=+1] - diff --git a/_versions/2.7/guides/mailer.adoc b/_versions/2.7/guides/mailer.adoc deleted file mode 100644 index 65570b53fe9..00000000000 --- a/_versions/2.7/guides/mailer.adoc +++ /dev/null @@ -1,220 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Sending emails using SMTP - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can send emails using an SMTP server. -This is a getting started guide. -Check the xref:mailer-reference.adoc[Quarkus Mailer Reference documentation] for more complete explanation about the mailer and its usage. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* The SMTP hostname, port and credentials, and an email address -* cURL - -== Architecture - -In this guide, we will build an application: - -1. exposing an HTTP endpoint, -2. sending email when the endpoint receives an HTTP request. - -The application will demonstrate how to send emails using the _imperative_ and _reactive_ mailer APIs. - -Attachments, inlined attachments, templating, testing and more advanced configuration are covered in the xref:mailer-reference.adoc[Mailer Reference documentation]. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `mailer-quickstart` {quickstarts-tree-url}/mailer-quickstart[directory]. - -== Creating the Maven Project - -First, we need a project. -Open your browser to https://code.quarkus.io and select the following extensions: - -1. RESTEasy Reactive - we use it to expose our HTTP endpoint -2. Mailer - which offer the possibility to send emails -3. Qute - the Quarkus template engine - -Alternatively, this https://code.quarkus.io/?a=quarkus-mailer-getting-started&nc=true&e=resteasy-reactive&e=qute&e=mailer&extension-search=mail[link] pre-configures the application. -Click on "Generate your application", download the zip file and unzip it on your file system. -Open the generated project in your IDE. -In a terminal, navigate to the project and start dev mode: - -include::includes/devtools/dev.adoc[] - -=== Implement the HTTP endpoint - -First, create the `src/main/java/org/acme/MailResource.java` file, with the following content: - -[source, java] ----- -package org.acme; - -import io.quarkus.mailer.Mail; -import io.quarkus.mailer.Mailer; -import io.smallrye.common.annotation.Blocking; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -@Path("/mail") // <1> -public class MailResource { - - @Inject Mailer mailer; // <2> - - @GET // <3> - @Blocking // <4> - public void sendEmail() { - mailer.send( - Mail.withText("quarkus@quarkus.io", // <5> - "Ahoy from Quarkus", - "A simple email sent from a Quarkus application." - ) - ); - } - -} ----- -<1> Configure the root path of our HTTP endpoint -<2> Inject the `Mailer` object managed by Quarkus -<3> Create a method that will handle the HTTP GET request on `/mail` -<4> Because we are using RESTEasy Reactive and the _imperative_ mailer, we need to add the `@Blocking` annotation. We will see later the reactive variant. -<5> Create a `Mail` object by configuring the _to_ recipient, the subject and body - -The `MailResource` class implements the HTTP API exposed by our application. -It handles `GET` request on `http://localhost:8080/mail. - -So, if in another terminal, you run: - -[source, bash] ----- -> curl http://localhost:8080/mail ----- - -You should see in the application log something like: - -[source, text] ----- -INFO [quarkus-mailer] (executor-thread-0) Sending email Ahoy from Quarkus from null to [quarkus@quarkus.io], text body: -A simple email sent from a Quarkus application. -html body: - ----- - -As the application runs in _dev mode_, it simulates the sending of the emails. -It prints it in the log, so you can check that what was about to be sent. - -NOTE: This section used the _imperative_ mailer API. -It blocks the caller thread until the mail is sent. - -== Using the reactive mailer - -The last section use the _imperative_ mailer. -Quarkus also offers a reactive API. - - -[TIP] -.Mutiny -==== -The reactive mailer uses Mutiny reactive types. -If you are not familiar with Mutiny, check xref:mutiny-primer.adoc[Mutiny - an intuitive reactive programming library]. -==== - -In the same class, add: - -[source, java] ----- -@Inject -ReactiveMailer reactiveMailer; // <1> - -@GET -@Path("/reactive") // <2> -public Uni sendEmailUsingReactiveMailer() { // <3> - return reactiveMailer.send( // <4> - Mail.withText("quarkus@quarkus.io", - "Ahoy from Quarkus", - "A simple email sent from a Quarkus application using the reactive API." - ) - ); -} ----- -<1> Inject the reactive mailer. The class to import is `io.quarkus.mailer.reactive.ReactiveMailer`. -<2> Configure the path to handle GET request on `/mail/reactive`. Note that because we are using the reactive API, we don't need `@Blocking` -<3> The method returns a `Uni` which completes when the mail is sent. It does not block the caller thread. -<4> The API is similar to the _imperative_ one except that the `send` method returns a `Uni`. - -Now, in your terminal, run - -[source, bash] ----- -> curl http://localhost:8080/mail/reactive ----- - -You should see in the application log something like: - -[source, text] ----- -INFO [quarkus-mailer] (vert.x-eventloop-thread-11) Sending email Ahoy from Quarkus from null to [quarkus@quarkus.io], text body: -A simple email sent from a Quarkus application using the reactive API. -html body: - ----- - -== Configuring the mailer - -It's time to configure the mailer to not simulate the sending of the emails. -The Quarkus mailer is using SMTP, so make sure you have access to a SMTP server. - -In the `src/main/resources/application.properties` file, you need to configure the host, port, username, password as well as the other configuration aspect. -Note that the password can also be configured using system properties and environment variables. -See the xref:config-reference.adoc[configuration reference guide] for details. - -Here is an example using _sendgrid_: - -[source,properties] ----- -# Your email address you send from - must match the "from" address from sendgrid. -quarkus.mailer.from=test@quarkus.io - -# The SMTP host -quarkus.mailer.host=smtp.sendgrid.net -# The SMTP port -quarkus.mailer.port=465 -# If the SMTP connection requires SSL/TLS -quarkus.mailer.ssl=true -# Your username -quarkus.mailer.username=.... -# Your password -quarkus.mailer.password=.... - -# By default, in dev mode, the mailer is a mock. This disables the mock and use the configured mailer. -quarkus.mailer.mock=false ----- - -Once you have configured the mailer, if you call the HTTP endpoint as shown above, you will send emails. - -== Conclusion - -This guide has shown how to send emails from your Quarkus application. -The xref:mailer-reference.adoc[mailer reference guide] provides more details about the mailer usage and configuration such as: - -* xref:mailer-reference.adoc#attachments[how to add attachments] -* xref:mailer-reference.adoc#html[how to format the email as HTML and use inline attachments] -* xref:mailer-reference.adoc#templates[how to use Qute templates] -* xref:mailer-reference.adoc#testing[how to test applications sending emails] -* xref:mailer-reference.adoc#gmail-specific-configuration[how to configure the mailer to send emails with GMAIL] - - - diff --git a/_versions/2.7/guides/maven-tooling.adoc b/_versions/2.7/guides/maven-tooling.adoc deleted file mode 100644 index d923411998c..00000000000 --- a/_versions/2.7/guides/maven-tooling.adoc +++ /dev/null @@ -1,1099 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Building applications with Maven - -include::./attributes.adoc[] -:devtools-no-gradle: - -[[project-creation]] -== Creating a new project - -You can scaffold a new Maven project with: - -:create-app-group-id: my-groupId -:create-app-artifact-id: my-artifactId -:create-app-code: -:create-app-post-command: -include::includes/devtools/create-app.adoc[] - -If you are using the CLI, you can get the list of available options with: - -[source,bash] ----- -quarkus create app --help ----- - -If you are using the Maven command, the following table lists the attributes you can pass to the `create` command: - -[cols=3*,options="header"] -|=== -| Attribute -| Default Value -| Description - -| `projectGroupId` -| `org.acme.sample` -| The group id of the created project - -| `projectArtifactId` -| _mandatory_ -| The artifact id of the created project. Not passing it triggers the interactive mode. - -| `projectVersion` -| `1.0.0-SNAPSHOT` -| The version of the created project - -| `platformGroupId` -| `io.quarkus.platform` -| The group id of the target platform. - -| `platformArtifactId` -| `quarkus-bom` -| The artifact id of the target platform BOM. - -| `platformVersion` -| The version currently recommended by the https://quarkus.io/guides/extension-registry-user[Quarkus Extension Registry] -| The version of the platform you want the project to use. It can also accept a version range, in which case the latest from the specified range will be used. - -| `className` -| _Not created if omitted_ -| The fully qualified name of the generated resource - -| `path` -| `/hello` -| The resource path, only relevant if `className` is set. - -| `extensions` -| _[]_ -| The list of extensions to add to the project (comma-separated) - -| `quarkusRegistryClient` -| `true` -| Whether or not Quarkus should use the online registry to resolve extension catalogs. If this is set to false, the extension catalog will be narrowed to the defined (or default) platform BOM. - -|=== - -By default, the command will target the `io.quarkus.platform:quarkus-bom:{quarkus-version}` platform release (unless the coordinates of the desired platform release have been specified). - -The project is generated in a directory named after the passed artifactId. -If the directory already exists, the generation fails. - -A pair of Dockerfiles for native and jvm mode are also generated in `src/main/docker`. -Instructions to build the image and run the container are written in those Dockerfiles. - -== Dealing with extensions - -From inside a Quarkus project, you can obtain a list of the available extensions with: - -include::includes/devtools/extension-list.adoc[] - -You can add an extension using: - -:add-extension-extensions: hibernate-validator -include::includes/devtools/extension-add.adoc[] - -Extensions are passed using a comma-separated list. - -The extension name is the GAV name of the extension: e.g. `io.quarkus:quarkus-agroal`. -But you can pass a partial name and Quarkus will do its best to find the right extension. -For example, `agroal`, `Agroal` or `agro` will expand to `io.quarkus:quarkus-agroal`. -If no extension is found or if more than one extensions match, you will see a red check mark ❌ in the command result. - -[source,shell] ----- -$ ./mvnw quarkus:add-extensions -Dextensions=jdbc,agroal,non-exist-ent -[...] -❌ Multiple extensions matching 'jdbc' - * io.quarkus:quarkus-jdbc-h2 - * io.quarkus:quarkus-jdbc-mariadb - * io.quarkus:quarkus-jdbc-postgresql - Be more specific e.g using the exact name or the full gav. -✅ Adding extension io.quarkus:quarkus-agroal -❌ Cannot find a dependency matching 'non-exist-ent', maybe a typo? -[...] ----- - -You can install all extensions which match a globbing pattern : - -:add-extension-extensions: smallrye-* -include::includes/devtools/extension-add.adoc[] - -[[dev-mode]] -== Development mode - -Quarkus comes with a built-in development mode. -Run your application with: - -include::includes/devtools/dev.adoc[] - -You can then update the application sources, resources and configurations. -The changes are automatically reflected in your running application. -This is great to do development spanning UI and database as you see changes reflected immediately. - -Dev mode enables hot deployment with background compilation, which means -that when you modify your Java files or your resource files and refresh your browser these changes will automatically take effect. -This works too for resource files like the configuration property file. -The act of -refreshing the browser triggers a scan of the workspace, and if any changes are detected the Java files are compiled, -and the application is redeployed, then your request is serviced by the redeployed application. If there are any issues -with compilation or deployment an error page will let you know. - -Hit `CTRL+C` to stop the application. - -[NOTE] -==== -By default, `quarkus:dev` sets the debug host to `localhost` (for security reasons). If you need to change this, for example to enable debugging on all hosts, you can use the `-DdebugHost` option like so: - -:dev-additional-parameters: -DdebugHost=0.0.0.0 -include::includes/devtools/dev-parameters.adoc[] -:!dev-additional-parameters: -==== - -=== Remote Development Mode - -It is possible to use development mode remotely, so that you can run Quarkus in a container environment (such as OpenShift) -and have changes made to your local files become immediately visible. - -This allows you to develop in the same environment you will actually run your app in, and with access to the same services. - -WARNING: Do not use this in production. This should only be used in a development environment. You should not run production application in dev mode. - -To do this you must build a mutable application, using the `mutable-jar` format. Set the following properties in `application.properties`: - -[source,properties] ----- -quarkus.package.type=mutable-jar <1> -quarkus.live-reload.password=changeit <2> -quarkus.live-reload.url=http://my.cluster.host.com:8080 <3> ----- -<1> This tells Quarkus to use the mutable-jar format. Mutable applications also include the deployment time parts of Quarkus, -so they take up a bit more disk space. If run normally they start just as fast and use the same memory as an immutable application, -however they can also be started in dev mode. -<2> The password that is used to secure communication between the remote side and the local side. -<3> The URL that your app is going to be running in dev mode at. This is only needed on the local side, so you -may want to leave it out of the properties file and specify it as a system property on the command line. - -The `mutable-jar` is then built in the same way that a regular Quarkus jar is built, i.e. by issuing: - -include::includes/devtools/build.adoc[] - -Before you start Quarkus on the remote host set the environment variable `QUARKUS_LAUNCH_DEVMODE=true`. If you are -on bare metal you can set it via the `export QUARKUS_LAUNCH_DEVMODE=true` command and then run the application with the proper `java -jar ...` command to run the application. - -If you plan on running the application via Docker, then you'll need to add `-e QUARKUS_LAUNCH_DEVMODE=true` to the `docker run` command. -When the application starts you should now see the following line in the logs: `Profile dev activated. Live Coding activated`. - -NOTE: The remote side does not need to include Maven or any other development tools. The normal `fast-jar` Dockerfile -that is generated with a new Quarkus application is all you need. If you are using bare metal launch the Quarkus runner -jar, do not attempt to run normal devmode. - -Now you need to connect your local agent to the remote host, using the `remote-dev` command: - -[source,bash] ----- -./mvnw quarkus:remote-dev -Dquarkus.live-reload.url=http://my-remote-host:8080 ----- - -Now every time you refresh the browser you should see any changes you have made locally immediately visible in the remote -app. This is done via a HTTP based long polling transport, that will synchronize your local workspace and the remote -application via HTTP calls. - -If you do not want to use the HTTP feature then you can simply run the `remote-dev` command without specifying the URL. -In this mode the command will continuously rebuild the local application, so you can use an external tool such as odo or -rsync to sync to the remote application. - -All the config options are shown below: - -include::{generated-dir}/config/quarkus-live-reload-live-reload-config.adoc[opts=optional, leveloffset=+1] - -NOTE: It is recommended you use SSL when using remote dev mode, however even if you are using an unencrypted connection -your password is never sent directly over the wire. For the initial connection request the password is hashed with the -initial state data, and subsequent requests hash it with a random session id generated by the server and any body contents -for POST requests, and the path for DELETE requests, as well as an incrementing counter to prevent replay attacks. - -=== Configuring Development Mode - -By default, the Maven plugin picks up compiler flags to pass to -`javac` from `maven-compiler-plugin`. - -If you need to customize the compiler flags used in development mode, -add a `configuration` section to the `plugin` block and set the -`compilerArgs` property just as you would when configuring -`maven-compiler-plugin`. You can also set `source`, `target`, and -`jvmArgs`. For example, to pass `--enable-preview` to both the JVM -and `javac`: - -[source,xml] ----- - - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus.platform.version} - - - ${maven.compiler.source} - ${maven.compiler.target} - - --enable-preview - - --enable-preview - - - ... - ----- - - -== Debugging - -In development mode, Quarkus starts by default with debug mode enabled, listening to port `5005` without suspending the JVM. - -This behavior can be changed by giving the `debug` system property one of the following values: - -* `false` - the JVM will start with debug mode disabled -* `true` - The JVM is started in debug mode and will be listening on port `5005` -* `client` - the JVM will start in client mode and attempt to connect to `localhost:5005` -* `{port}` - The JVM is started in debug mode and will be listening on `{port}` - -An additional system property `suspend` can be used to suspend the JVM, when launched in debug mode. `suspend` supports the following values: - -* `y` or `true` - The debug mode JVM launch is suspended -* `n` or `false` - The debug mode JVM is started without suspending - - -[TIP] -==== -You can also run a Quarkus application in debug mode with a suspended JVM using: - -:dev-additional-parameters: -Dsuspend -Ddebug -include::includes/devtools/dev-parameters.adoc[] -:!dev-additional-parameters: - -Then, attach your debugger to `localhost:5005`. -==== - -== Import in your IDE - -Once you have a <>, you can import it in your favorite IDE. -The only requirement is the ability to import a Maven project. - -**Eclipse** - -In Eclipse, click on: `File -> Import`. -In the wizard, select: `Maven -> Existing Maven Project`. -On the next screen, select the root location of the project. -The next screen list the found modules; select the generated project and click on `Finish`. Done! - -In a separated terminal, run: - -include::includes/devtools/dev.adoc[] - -and enjoy a highly productive environment. - -**IntelliJ** - -In IntelliJ: - -1. From inside IntelliJ select `File -> New -> Project From Existing Sources...` or, if you are on the welcome dialog, select `Import project`. -2. Select the project root -3. Select `Import project from external model` and `Maven` -4. Next a few times (review the different options if needed) -5. On the last screen click on Finish - -In a separated terminal or in the embedded terminal, run: - -include::includes/devtools/dev.adoc[] - -Enjoy! - -**Apache NetBeans** - -In NetBeans: - -1. Select `File -> Open Project` -2. Select the project root -3. Click on `Open Project` - -In a separated terminal or the embedded terminal, go to the project root and run: - -include::includes/devtools/dev.adoc[] - -Enjoy! - -**Visual Studio Code** - -Open the project directory in VS Code. If you have installed the Java Extension Pack (grouping a set of Java extensions), the project is loaded as a Maven project. - -== Logging Quarkus application build classpath tree - -Usually, dependencies of an application (which is a Maven project) could be displayed using `mvn dependency:tree` command. In case of a Quarkus application, however, this command will list only the runtime dependencies of the application. -Given that the Quarkus build process adds deployment dependencies of the extensions used in the application to the original application classpath, it could be useful to know which dependencies and which versions end up on the build classpath. -Luckily, the `quarkus` Maven plugin includes the `dependency-tree` goal which displays the build dependency tree for the application. - -Executing `./mvnw quarkus:dependency-tree` on your project should result in an output similar to: - -[source,text,subs=attributes+] ----- -[INFO] --- quarkus-maven-plugin:{quarkus-version}:dependency-tree (default-cli) @ getting-started --- -[INFO] org.acme:getting-started:jar:1.0.0-SNAPSHOT -[INFO] └─ io.quarkus:quarkus-resteasy-deployment:jar:{quarkus-version} (compile) -[INFO] ├─ io.quarkus:quarkus-resteasy-server-common-deployment:jar:{quarkus-version} (compile) -[INFO] │ ├─ io.quarkus:quarkus-core-deployment:jar:{quarkus-version} (compile) -[INFO] │ │ ├─ commons-beanutils:commons-beanutils:jar:1.9.3 (compile) -[INFO] │ │ │ ├─ commons-logging:commons-logging:jar:1.2 (compile) -[INFO] │ │ │ └─ commons-collections:commons-collections:jar:3.2.2 (compile) -... ----- - -The goal accepts the following optional parameters: - -* `mode` - the default value is `prod`, i.e. the production build dependency tree. Alternatively, it accepts values `test` to display the test dependency tree and `dev` to display the dev mode dependency tree; -* `outputFile` - specifies the file to persist the dependency tree to; -* `appendOutput` - the default value is `false`, indicates whether the output to the command should be appended to the file specified with the `outputFile` parameter or it should be overriden. - -== Downloading Maven artifact dependencies for offline development and testing - -Quarkus extension dependencies are divided into the runtime extension dependencies that end up on the application runtime classpath and the deployment (or build time) extension dependencies that are resolved by Quarkus only at application build time to create -the build classpath. Application developers are expected to express dependencies only on the runtime artifacts of Quarkus extensions. As a consequence, the deployment extension dependencies aren't visible to Maven plugins that aren't aware of the Quarkus -extension dependency model, such as the `maven-dependency-plugin`, `go-offline-maven-plugin`, etc. That means those plugins can not be used to pre-download all the application dependencies to be able to build and test the application later in offline mode. - -To enable the use-case of building and testing a Quarkus application offline, the `quarkus-maven-plugin` includes the `go-offline` goal that could be called from the command line like this: - -[source,bash] ----- -./mvnw quarkus:go-offline ----- - -This goal will resolve all the runtime, build time, test and dev mode dependencies of the application downloading them to the configured local Maven repository. - -== Building a native executable - -Native executables make Quarkus applications ideal for containers and serverless workloads. - -Make sure to have `GRAALVM_HOME` configured and pointing to GraalVM version {graalvm-version} (Make sure to use a Java 11 version of GraalVM). -Verify that your `pom.xml` has the proper `native` profile (see <>). - -Create a native executable using: - -include::includes/devtools/build-native.adoc[] - -A native executable will be present in `target/`. - -To run Integration Tests on the native executable, make sure to have the proper Maven plugin configured (see <>) and launch the `verify` goal. - -[source,shell] ----- -$ ./mvnw verify -Pnative -... -[quarkus-quickstart-runner:50955] universe: 391.96 ms -[quarkus-quickstart-runner:50955] (parse): 904.37 ms -[quarkus-quickstart-runner:50955] (inline): 1,143.32 ms -[quarkus-quickstart-runner:50955] (compile): 6,228.44 ms -[quarkus-quickstart-runner:50955] compile: 9,130.58 ms -[quarkus-quickstart-runner:50955] image: 2,101.42 ms -[quarkus-quickstart-runner:50955] write: 803.18 ms -[quarkus-quickstart-runner:50955] [total]: 33,520.15 ms -[INFO] -[INFO] --- maven-failsafe-plugin:2.22.0:integration-test (default) @ quarkus-quickstart-native --- -[INFO] -[INFO] ------------------------------------------------------- -[INFO] T E S T S -[INFO] ------------------------------------------------------- -[INFO] Running org.acme.quickstart.GreetingResourceIT -Executing [/Users/starksm/Dev/JBoss/Quarkus/starksm64-quarkus-quickstarts/getting-started-native/target/quarkus-quickstart-runner, -Dquarkus.http.port=8081, -Dtest.url=http://localhost:8081, -Dquarkus.log.file.path=target/quarkus.log] -2019-02-28 16:52:42,020 INFO [io.quarkus] (main) Quarkus started in 0.007s. Listening on: http://localhost:8080 -2019-02-28 16:52:42,021 INFO [io.quarkus] (main) Installed features: [cdi, resteasy] -[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.081 s - in org.acme.quickstart.GreetingResourceIT -[INFO] -[INFO] Results: -[INFO] -[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0 - -... ----- - -=== Build a container friendly executable - -The native executable will be specific to your operating system. -To create an executable that will run in a container, use the following: - -:build-additional-parameters: -Dquarkus.native.container-build=true -include::includes/devtools/build-native.adoc[] -:!build-additional-parameters: - -The produced executable will be a 64 bit Linux executable, so depending on your operating system it may no longer be runnable. -However, it's not an issue as we are going to copy it to a Docker container. -Note that in this case the build itself runs in a Docker container too, so you don't need to have GraalVM installed locally. - -[TIP] -==== -By default, the native executable will be generated using the `quay.io/quarkus/ubi-quarkus-native-image:{graalvm-flavor}` Docker image. - -If you want to build a native executable with a different Docker image (for instance to use a different GraalVM version), -use the `-Dquarkus.native.builder-image=` build argument. - -The list of the available Docker images can be found on https://quay.io/repository/quarkus/ubi-quarkus-native-image?tab=tags[quay.io]. -Be aware that a given Quarkus version might not be compatible with all the images available. -==== - -You can follow the xref:building-native-image.adoc[Build a native executable guide] as well as xref:deploying-to-kubernetes.adoc[Deploying Application to Kubernetes and OpenShift] for more information. - -[[build-tool-maven]] -== Maven configuration - -If you have not used <>, add the following elements in your `pom.xml` - -[source,xml,subs=attributes+] ----- - - - <1> - ${quarkus.platform.group-id} - quarkus-bom - ${quarkus.platform.version} - pom - import - - - - - - - <2> - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus.platform.version} - true <3> - - - - build - generate-code - generate-code-tests - - - - - <4> - org.apache.maven.plugins - maven-surefire-plugin - ${surefire-plugin.version} - - - org.jboss.logmanager.LogManager - ${maven.home} - - - - - - - - <5> - native - <6> - native - - - - <7> - org.apache.maven.plugins - maven-failsafe-plugin - ${surefire-plugin.version} - - - - integration-test - verify - - - - ${project.build.directory}/${project.build.finalName}-runner - org.jboss.logmanager.LogManager - ${maven.home} - - - - - - - - - ----- - -<1> Optionally use a BOM file to omit the version of the different Quarkus dependencies. -<2> Use the Quarkus Maven plugin that will hook into the build process. -<3> Enabling Maven plugin extensions will register a Quarkus `MavenLifecycleParticipant` which will make sure the Quarkus classloaders used during the build are properly closed. During the `generate-code` and `generate-code-tests` goals the Quarkus application bootstrap is initialized and re-used in the `build` goal (which actually builds and packages a production application). The Quarkus classloaders will be properly closed in the `build` goal of the `quarkus-maven-plugin`. However, if the build fails in between the `generate-code` or `generate-code-tests` and `build` then the Quarkus augmentation classloader won't be properly closed, which may lead to locking of JAR files that happened to be on the classpath on Windows OS. -<4> Add system properties to `maven-surefire-plugin`. + -`maven.home` is only required if you have custom configuration in `${maven.home}/conf/settings.xml`. -<5> Use a specific `native` profile for native executable building. -<6> Enable the `native` package type. The build will therefore produce a native executable. -<7> If you want to test your native executable with Integration Tests, add the following plugin configuration. Test names `*IT` and annotated `@NativeImageTest` will be run against the native executable. See the xref:building-native-image.adoc[Native executable guide] for more info. - -[[fast-jar]] -=== Using fast-jar - -`fast-jar` is the default quarkus package type. - -The result of the build is a directory under `target` named `quarkus-app`. - -You can run the application using: `java -jar target/quarkus-app/quarkus-run.jar`. - -WARNING: In order to successfully run the produced jar, you need to have the entire contents of the `quarkus-app` directory. If any of the files are missing, the application will not start or -might not function correctly. - -TIP: The `fast-jar` packaging results in creating an artifact that starts a little faster and consumes slightly less memory than a legacy Quarkus jar -because it has indexed information about which dependency jar contains classes and resources. It can thus avoid the lookup into potentially every jar -on the classpath that the legacy jar necessitates, when loading a class or resource. - -[[uber-jar-maven]] -=== Uber-Jar Creation - -Quarkus Maven plugin supports the generation of Uber-Jars by specifying a `quarkus.package.type=uber-jar` configuration option in your `application.properties` -(or `uber-jar` in your `pom.xml`). - -The original jar will still be present in the `target` directory but it will be renamed to contain the `.original` suffix. - -When building an Uber-Jar you can specify entries that you want to exclude from the generated jar by using the `quarkus.package.ignored-entries` configuration -option, this takes a comma separated list of entries to ignore. - -Uber-Jar creation by default excludes link:https://docs.oracle.com/javase/tutorial/deployment/jar/intro.html[signature files] that might be present in the dependencies of the application. - -Uber-Jar's final name is configurable via a Maven's build settings `finalName` option. - -[[multi-module-maven]] -=== Working with multi-module projects - -By default, Quarkus will not discover CDI beans inside another module. - -The best way to enable CDI bean discovery for a module in a multi-module project would be to include the `jandex-maven-plugin`, -unless it is the main application module already configured with the quarkus-maven-plugin, in which case it will indexed automatically. - -[source,xml,subs="attributes+"] ----- - - - - org.jboss.jandex - jandex-maven-plugin - {jandex-maven-plugin-version} - - - make-index - - jandex - - - - - - ----- - -More information on this topic can be found on the xref:cdi-reference.adoc#bean_discovery[Bean Discovery] section of the CDI guide. - -[[maven-configuration-profile]] -=== Building with a specific configuration profile - -Quarkus supports xref:config-reference.adoc#profiles[configuration profiles] in order to provide a specific configuration according to the target environment. - -The profile can be provided directly in the Maven build's command thanks to the system property `quarkus.profile` with a command of type: - -// TODO switch to once escaping issue is fixed in Asciidoctor -:build-additional-parameters: -Dquarkus.profile=profile-name-here -include::includes/devtools/build.adoc[] -:!build-additional-parameters: - -However it is also possible to specify the profile directly in the POM file of the project using project properties, the Quarkus Maven plugin configuration properties or system properties set in the Quarkus Maven plugin configuration. - -In order of precedence (greater precedence first): - -.1. System properties set in the Quarkus Maven plugin configuration - -[source,xml] ----- - - ... - - - ... - - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus.platform.version} - true - - - prod-aws <1> - - - - ... - - -... - ----- -<1> The default configuration profile of this project is `prod-aws`. - -.2. Quarkus Maven plugin configuration properties - -[source,xml] ----- - - ... - - - ... - - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus.platform.version} - true - - - prod-aws <1> - - - - ... - - -... - ----- -<1> The default configuration profile of this project is `prod-aws`. - -.3. Project properties - -[source,xml] ----- - - ... - - prod-aws <1> - ... - -... - ----- -<1> The default configuration profile of this project is `prod-aws`. - -NOTE: Whatever the approach is chosen, the profile can still be overridden with the `quarkus.profile` system property or the `QUARKUS_PROFILE` environment variable. - -[[maven-multi-build]] -=== Building several artifacts from a single module - -In some particular use cases, it can be interesting to build several artifacts of your application from the same module. -A typical example is when you want to build your application with different configuration profiles. - -In that case, it is possible to add as many executions as needed to the Quarkus Maven plugin configuration. - -Below is an example of a Quarkus Maven plugin configuration that will produce two builds of the same application: one using the `prod-oracle` profile and the other one using the `prod-postgresql` profile. - -[source,xml] ----- - - ... - - - ... - - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus.platform.version} - true - - - oracle - - build - - - - prod-oracle <1> - oracle-quarkus-app <2> - - - - - postgresql - - build - - - - prod-postgresql <3> - postgresql-quarkus-app <4> - - - - - - ... - - -... - ----- -<1> The default configuration profile of the first execution of the plugin is `prod-oracle`. -<2> The output directory of the first execution of the plugin is set to `oracle-quarkus-app` instead of `quarkus-app` to have a dedicated directory. -<3> The default configuration profile of the second execution of the plugin is `prod-postgresql`. -<4> The output directory of the second execution of the plugin is set to `postgresql-quarkus-app` instead of `quarkus-app` to have a dedicated directory. - -NOTE: With the configuration above, both profile builds will be using the same dependencies, so if we added dependencies on the Oracle and PostgreSQL drivers to the application, both of the drivers will appear in both builds. - - -To isolate profile-specific dependencies from other profiles, the JDBC drivers could be added as optional dependencies to the application but configured to be included in each profile that requires them, e.g.: - -[source,xml] ----- - - ... - - ... - - org.postgresql - postgresql - ${postgresql.driver.version} - true <1> - - - - - ... - - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus.platform.version} - true - - ... - - postgresql - - build - - - - prod-postgresql - postgresql-quarkus-app - true <2> - org.postgresql:postgresql::jar <3> - - - - - - ... - - -... - ----- -<1> The JDBC driver of PostgreSQL is defined as an optional dependency -<2> For backward compatibility reasons, it is necessary to explicitly indicate that the optional dependencies need to be filtered. -<3> Only the optional dependency corresponding to the JDBC driver of PostgreSQL is expected in the final artifact. - -[[configuration-reference]] -== Configuring the Project Output - -There are a several configuration options that will define what the output of your project build will be. -These are provided in `application.properties` the same as any other config property. - -The properties are shown below: - -include::{generated-dir}/config/quarkus-package-pkg-package-config.adoc[opts=optional] - -[[custom-test-configuration-profile]] -=== Custom test configuration profile in JVM mode - -By default, Quarkus tests in JVM mode are run using the `test` configuration profile. If you are not familiar with Quarkus -configuration profiles, everything you need to know is explained in the -xref:config.adoc#configuration-profiles[Configuration Profiles Documentation]. - -It is however possible to use a custom configuration profile for your tests with the Maven Surefire and Maven Failsafe -configurations shown below. This can be useful if you need for example to run some tests using a specific database which is not -your default testing database. - -[source,xml,subs=attributes+] ----- - - [...] - - - - org.apache.maven.plugins - maven-surefire-plugin - ${surefire-plugin.version} - - - foo <1> - ${project.build.directory} - [...] - - - - - org.apache.maven.plugins - maven-failsafe-plugin - ${failsafe-plugin.version} - - - foo <1> - ${project.build.directory} - [...] - - - - - - [...] - ----- - -<1> The `foo` configuration profile will be used to run the tests. - -[WARNING] -==== -It is not possible to use a custom test configuration profile in native mode for now. Native tests are always run using the -`prod` profile. -==== - -[[bootstrap-maven-properties]] -=== Bootstrap Maven properties - -Quarkus bootstrap includes a Maven resolver implementation that is used to resolve application runtime and build time dependencies. The Quarkus Maven resolver is initialized from the same Maven command line that launched the build, test or dev mode. Typically, there is no need to add any extra configuration for it. However, there could be cases where an extra configuration option may be necessary to properly resolve application dependencies in test or dev modes, or IDEs. - -Maven test plugins (such as `surefire` and `failsafe`), for example, are not propagating build system properties to the running tests by default. Which means some of the system properties set by the Maven CLI aren't available for the Quarkus Maven resolver initialized for the tests, which may result in test dependencies being resolved using different settings than the main Maven build. - -Here is a list of system properties the Quarkus bootstrap Maven resolver checks during its initialization. - -[cols=3*,options="header"] -|=== -| Property name -| Default Value -| Description - -| `maven.home` -| `MAVEN_HOME` envvar -| The Maven home dir is used to resolve the global settings file unless it was explicitly provided on the command line with the `-gs` argument - -| `maven.settings` -| `~/.m2/settings.xml` -| Unless the custom settings file has been provided with the `-s` argument, this property can be used to point the resolver to a custom Maven settings file - -| `maven.repo.local` -| `~/.m2/repository` -| This property could be used to configure a custom local Maven repository directory, if it is different from the default one and the one specified in the `settings.xml` - -| `maven.top-level-basedir` -| none -| This property may be useful to help the Maven resolver identify the top-level Maven project in the workspace. By default, the Maven resolver will be discovering a project's workspace by navigating the parent-module POM relationship. However there could be project layouts that are using an aggregator module which isn't appearing as the parent for its modules. In this case, this property will help the Quarkus Maven resolver to properly discover the workspace. - -| `quarkus.bootstrap.effective-model-builder` -| `false` -| By default, the Quarkus Maven resolver is reading project's POMs directly when discovering the project's layout. While in most cases it works well enough and relatively fast, reading raw POMs has its limitation. E.g. if a POM includes modules in a profile, these modules will not be discovered. This system property enables project's layout discovery based on the effective POM models, that are properly interpolated, instead of the raw ones. The reason this option is not enabled by default is it may appear to be significantly more time consuming that could increase, e.g. CI testing times. Until there is a better approach found that could be used by default, projects that require it should enable this option. - -|=== - -These system properties above could be added to, e.g., a `surefire` and/or `failsafe` plugin configuration as -[source,xml,subs=attributes+] ----- - - [...] - - - - org.apache.maven.plugins - maven-surefire-plugin - ${surefire-plugin.version} - - - ${maven.home} <1> - ${settings.localRepository} <2> - ${session.request.userSettingsFile.path} <3> - ${session.topLevelProject.basedir.absolutePath} <4> - true <5> - - - - - - [...] - ----- - -<1> Propagate `maven.home` system property set by the Maven CLI to the tests -<2> Set the Maven local repository directory for the tests -<3> Set the Maven settings file the tests -<4> Point to the top-level project directory for the tests -<5> Enable effective POM-based project layout discovery - -==== Top-level vs Multi-module project directory - -In Maven there appears to be a notion of the top-level project (that is exposed as a project property `${session.topLevelProject.basedir.absolutePath}`) -and the multi-module project directory (that is available as property `${maven.multiModuleProjectDirectory}`). These directories might not always match! - -IMPORTANT: `maven.multiModuleProjectDirectory` is meant to be consulted by the Maven code itself and not something to be relied upon by user code. So, if you find it useful, use it at your own risk! - -The `${maven.multiModuleProjectDirectory}` will be resolved to the first directory that contains `.mvn` directory as its child going up the workspace file system tree -starting from the current directory (or the one specified with the `-f` argument) from which the `mvn` command was launched. If the `.mvn` directory was not found, however, -the `${maven.multiModuleProjectDirectory}` will be pointing to the directory from which the `mvn` command was launched (or the one targeted with the `-f` argument). - -The `${session.topLevelProject.basedir.absolutePath}` will be pointing either to the directory from which the `mvn` command was launched or to the directory targeted with -the `-f` argument, if it was specified. - -[[project-info]] -== Quarkus project info - -NOTE: This goal was introduced in Quarkus Maven plugin 2.7.0.Final and can be used in projects that are based on Quarkus version 2.0.0.Final or later. - -The Quarkus Maven plugin includes a goal called `info` (currently marked as 'experimental') that logs Quarkus-specific information about the project, such as: the imported Quarkus platform BOMs and the Quarkus extensions found among the project dependencies. -In a multi-module project `quarkus:info` will assume that the current module, in which it is executed, is the main module of the application. - -NOTE: The report generated by `quarkus:info` is not currently including the Quarkus Maven plugin information, however it's planned to be added in the future releases. - -Here is an example `info` output for a simple project: -[source,text,subs=attributes+] ----- -[aloubyansky@localhost code-with-quarkus]$ mvn quarkus:info -[INFO] Scanning for projects... -[INFO] -[INFO] ---------------------< org.acme:code-with-quarkus >--------------------- -[INFO] Building code-with-quarkus 1.0.0-SNAPSHOT -[INFO] --------------------------------[ jar ]--------------------------------- -[INFO] -[INFO] --- quarkus-maven-plugin:{quarkus-version}:info (default-cli) @ code-with-quarkus --- -[WARNING] quarkus:info goal is experimental, its options and output may change in future versions -[INFO] Quarkus platform BOMs: <1> -[INFO] io.quarkus.platform:quarkus-bom:pom:{quarkus-version} -[INFO] io.quarkus.platform:quarkus-kogito-bom:pom:{quarkus-version} -[INFO] io.quarkus.platform:quarkus-camel-bom:pom:{quarkus-version} -[INFO] -[INFO] Extensions from io.quarkus.platform:quarkus-bom: <2> -[INFO] io.quarkus:quarkus-resteasy-reactive -[INFO] -[INFO] Extensions from io.quarkus.platform:quarkus-kogito-bom: <3> -[INFO] org.kie.kogito:kogito-quarkus-decisions -[INFO] -[INFO] Extensions from io.quarkus.platform:quarkus-camel-bom: <4> -[INFO] org.apache.camel.quarkus:camel-quarkus-rabbitmq -[INFO] -[INFO] Extensions from registry.quarkus.io: <5> -[INFO] io.quarkiverse.prettytime:quarkus-prettytime:0.2.1 ----- - -<1> Quarkus platform BOMs imported in the project (BOMs imported by parent POMs will also be reported) -<2> Direct Quarkus extension dependencies managed by the `quarkus-bom` -<3> Direct Quarkus extension dependencies managed by the `quarkus-kogito-bom` -<4> Direct Quarkus extension dependencies managed by the `quarkus-camel-bom` -<5> Direct Quarkus extensions dependencies that aren't managed by Quarkus BOMs but found in the Quarkus extension registry - -NOTE: `quarkus:info` will also report Quarkus extensions that aren't found in the Quarkus extension registries if those are present among the project dependencies, indicating they have an 'unknown origin'. - -[[project-info-misaligned]] -=== Highlighing misaligned versions - -`quarkus:info` will also highlight basic Quarkus dependency version misalignments, in case they are detected. For example, if we modify the project mentioned above by removing the `kogito-quarkus-decisions` extension from the dependencies and adding a `2.6.3.Final` `` element to the `quarkus-resteasy-reactive` dependency that is managed by the `quarkus-bom` and then run `quarkus:info` again, we'll see something like: - -[source,text,subs=attributes+] ----- -[INFO] --- quarkus-maven-plugin:{quarkus-version}:info (default-cli) @ code-with-quarkus --- -[WARNING] quarkus:info goal is experimental, its options and output may change in future versions -[INFO] Quarkus platform BOMs: -[INFO] io.quarkus.platform:quarkus-bom:pom:{quarkus-version} -[INFO] io.quarkus.platform:quarkus-kogito-bom:pom:{quarkus-version} | unnecessary <1> -[INFO] io.quarkus.platform:quarkus-camel-bom:pom:{quarkus-version} -[INFO] -[INFO] Extensions from io.quarkus.platform:quarkus-bom: -[INFO] io.quarkus:quarkus-resteasy-reactive:2.6.3.Final | misaligned <2> -[INFO] -[INFO] Extensions from io.quarkus.platform:quarkus-camel-bom: -[INFO] org.apache.camel.quarkus:camel-quarkus-rabbitmq -[INFO] -[INFO] Extensions from registry.quarkus.io: -[INFO] io.quarkiverse.prettytime:quarkus-prettytime:0.2.1 -[INFO] -[WARNING] Non-recommended Quarkus platform BOM and/or extension versions were found. For more details, please, execute 'mvn quarkus:update -Drectify' ----- - -<1> The `quarkus-kogito-bom` import is now reported as 'unnecessary' since none of the Quarkus extensions it includes are found among the project dependencies -<2> The version `2.6.3.Final` of the `quarkus-resteasy-reactive` is now reported as being misaligned with the version managed by the Quarkus platform BOM imported in the project, which is {quarkus-version} - -[[project-update]] -== Quarkus project update - -NOTE: This goal was introduced in Quarkus Maven plugin 2.7.0.Final and can be used in projects that are based on Quarkus version 2.0.0.Final or later. - -The `quarkus:update` goal (currently marked as 'experimental') provided by the Quarkus Maven plugin can be used to check whether there are Quarkus-related updates available for a project, such as: new releases of the relevant Quarkus platform BOMs and non-platform Quarkus extensions present in the project. In a multi-module project the `update` goal is meant to be executed from the main Quarkus application module. - -IMPORTANT: At this point, the `quarkus:update` goal does not actually apply the recommended updates but simply reports what they are and how to apply them manually. - -NOTE: The Quarkus Maven plugin version isn't currently included in the update report, however it's planned to be added in the future releases. - -The way `quarkus:update` works, first, all the direct Quarkus extension dependencies of the project are collected (those that are managed by the Quarkus platform BOMs and those that aren't but found in the Quarkus extension registries). Then the configured Quarkus extension registries (typically the `registry.quarkus.io`) will be queried for the latest recommended/supported Quarkus platform versions and non-platform Quarkus extensions compatible with them. The algorithm will then select the latest compatible combination of all the extensions found in the project, assuming such a combination actually exists. Otherwise, no updates will be suggested. - -Assuming we have a project including Kogito, Camel and core Quarkus extensions available in the Quarkus platform based on Quarkus `2.7.1.Final`, the output of the `quarkus:update` would look like: -[source,text,subs=attributes+] ----- -[aloubyansky@localhost code-with-quarkus]$ mvn quarkus:update -[INFO] Scanning for projects... -[INFO] -[INFO] ---------------------< org.acme:code-with-quarkus >--------------------- -[INFO] Building code-with-quarkus 1.0.0-SNAPSHOT -[INFO] --------------------------------[ jar ]--------------------------------- -[INFO] -[INFO] --- quarkus-maven-plugin:{quarkus-version}:update (default-cli) @ code-with-quarkus --- -[WARNING] quarkus:update goal is experimental, its options and output might change in future versions -[INFO] -[INFO] Recommended Quarkus platform BOM updates: <1> -[INFO] Update: io.quarkus.platform:quarkus-bom:pom:2.7.1.Final -> {quarkus-version} -[INFO] Update: io.quarkus.platform:quarkus-kogito-bom:pom:2.7.1.Final -> {quarkus-version} -[INFO] Update: io.quarkus.platform:quarkus-camel-bom:pom:2.7.1.Final -> {quarkus-version} ----- - -<1> A list of currently recommended Quarkus platform BOM updates - -NOTE: Typically, a single project property will be used to manage all the Quarkus platform BOMs but the implementation isn't currently smart enough to point that out and will report updates for each BOM individually. - -If we modify the project to remove all the Kogito extensions from the project, change the version of the `quarkus-resteasy-reactive` extension to `2.6.3.Final` and downgrade `quarkus-prettytime` which is not included in the Quarkus platform BOMs to `0.2.0`, `quarkus:update` will report something like: - -[source,text,subs=attributes+] ----- -[INFO] Recommended Quarkus platform BOM updates: <1> -[INFO] Update: io.quarkus.platform:quarkus-bom:pom:2.7.1.Final -> {quarkus-version} -[INFO] Update: io.quarkus.platform:quarkus-camel-bom:pom:2.7.1.Final -> {quarkus-version} -[INFO] Remove: io.quarkus.platform:quarkus-kogito-bom:pom:2.7.1.Final <2> -[INFO] -[INFO] Extensions from io.quarkus.platform:quarkus-bom: -[INFO] Update: io.quarkus:quarkus-resteasy-reactive:2.6.3.Final -> remove version (managed) <3> -[INFO] -[INFO] Extensions from registry.quarkus.io: -[INFO] Update: io.quarkiverse.prettytime:quarkus-prettytime:0.2.0 -> 0.2.1 <4> ----- - -<1> A list of the currently recommended Quarkus platform BOM updates for the project -<2> Given that the project does not include any Kogito extensions, the BOM import is recommended to be removed -<3> An outdated version of the `quarkus-resteasy-reactive` is recommended to be removed in favor of the one managed by the `quarkus-bom` -<4> The latest compatible version of the `quarkus-prettytime` extension - -=== Quarkus project rectify - -As was mentioned above, `quarkus:info`, besides reporting Quarkus platform and extension versions, performs a quick version alignment check, to make sure the extension versions used in the project are compatible with the imported Quarkus platform BOMs. If misalignments are detected, the following warning message will be logged: - -[source,text,subs=attributes+] ----- -[WARNING] Non-recommended Quarkus platform BOM and/or extension versions were found. For more details, please, execute 'mvn quarkus:update -Drectify' ----- - -When the `rectify` option is enabled, `quarkus:update`, instead of suggesting the latest recommended Quarkus version updates, will log update instructions to simply align the extension dependency versions found in the project with the currently imported Quarkus platform BOMs. diff --git a/_versions/2.7/guides/micrometer.adoc b/_versions/2.7/guides/micrometer.adoc deleted file mode 100644 index 78037278b60..00000000000 --- a/_versions/2.7/guides/micrometer.adoc +++ /dev/null @@ -1,598 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Micrometer Metrics - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can utilize the Micrometer metrics library for runtime and -application metrics. - -Apart from application-specific metrics, which are described in this guide, you may also utilize built-in metrics -exposed by various Quarkus extensions. These are described in the guide for each particular extension that supports -built-in metrics. - -IMPORTANT: Micrometer is the recommended approach to metrics for Quarkus. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -Micrometer defines a core library providing a registration mechanism for Metrics, and core metric types (Counters, -Gauges, Timers, Distribution Summaries, etc.). These core types provide an abstraction layer that can be adapted to -different backend monitoring systems. In essence, your application (or a library) can `register` a `Counter`, -`Gauge`, `Timer`, or `DistributionSummary` with a `MeterRegistry`. Micrometer will then delegate that registration to -one or more implementations, where each implementation handles the unique considerations for the associated -monitoring stack. - -Micrometer uses naming conventions to translate between registered Meters and the conventions used by various backend -registries. Meter names, for example, should be created and named using dots to separate segments, `a.name.like.this`. -Micrometer then translates that name into the format that the selected registry prefers. Prometheus -uses underscores, which means the previous name will appear as `a_name_like_this` in Prometheus-formatted metrics -output. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -You can skip right to the solution if you prefer. Either: - -* Clone the git repository: `git clone {quickstarts-clone-url}`, or -* Download an {quickstarts-archive-url}[archive]. - -The solution is located in the `micrometer-quickstart` {quickstarts-tree-url}/micrometer-quickstart[directory]. - -== Creating the Maven Project - -Quarkus Micrometer extensions are structured similarly to Micrometer itself: `quarkus-micrometer` provides core -micrometer support and runtime integration and other Quarkus and Quarkiverse extensions bring in additional -dependencies and requirements to support specific monitoring systems. - -For this example, we'll use the Prometheus registry. - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: micrometer-quickstart -:create-app-extensions: resteasy,micrometer-registry-prometheus -include::includes/devtools/create-app.adoc[] - -This command generates a Maven project, that imports the `micrometer-registry-prometheus` extension as a dependency. -This extension will load the core `micrometer` extension as well as additional library dependencies required to support -prometheus. - -If you already have your Quarkus project configured, you can add the `micrometer-registry-prometheus` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: micrometer-registry-prometheus -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-micrometer-registry-prometheus - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-micrometer-registry-prometheus") ----- - -== Writing the application - -Micrometer provides an API that allows you to construct your own custom metrics. The most common types of -meters supported by monitoring systems are gauges, counters, and summaries. The following sections build -an example endpoint, and observes endpoint behavior using these basic meter types. - -To register meters, you need a reference to a `MeterRegistry`, which is configured and maintained by the Micrometer -extension. The `MeterRegistry` can be injected into your application as follows: - -[source,java] ----- -package org.acme.micrometer; - -import io.micrometer.core.instrument.MeterRegistry; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; - -@Path("/example") -@Produces("text/plain") -public class ExampleResource { - - private final MeterRegistry registry; - - ExampleResource(MeterRegistry registry) { - this.registry = registry; - } -} ----- - -Micrometer maintains an internal mapping between unique metric identifier and tag combinations and specific meter -instances. Using `register`, `counter`, or other methods to increment counters or record values does not create -a new instance of a meter unless that combination of identifier and tag/label values hasn't been seen before. - -=== Gauges - -Gauges measure a value that can increase or decrease over time, like the speedometer on a car. Gauges can be -useful when monitoring the statistics for a cache or collection. Consider the following simple example that -observes the size of a list: - -[source,java] ----- - LinkedList list = new LinkedList<>(); - - // Update the constructor to create the gauge - ExampleResource(MeterRegistry registry) { - this.registry = registry; - registry.gaugeCollectionSize("example.list.size", Tags.empty(), list); - } - - @GET - @Path("gauge/{number}") - public Long checkListSize(@PathParam("number") long number) { - if (number == 2 || number % 2 == 0) { - // add even numbers to the list - list.add(number); - } else { - // remove items from the list for odd numbers - try { - number = list.removeFirst(); - } catch (NoSuchElementException nse) { - number = 0; - } - } - return number; - } ----- - -Note that even numbers are added to the list, and odd numbers remove an element from the list. - -Start your application in dev mode: - -include::includes/devtools/dev.adoc[] - -Then try the following sequence and look for `example_list_size` in the plain text output: - -[source,shell] ----- -curl http://localhost:8080/example/gauge/1 -curl http://localhost:8080/example/gauge/2 -curl http://localhost:8080/example/gauge/4 -curl http://localhost:8080/q/metrics -curl http://localhost:8080/example/gauge/6 -curl http://localhost:8080/example/gauge/5 -curl http://localhost:8080/example/gauge/7 -curl http://localhost:8080/q/metrics ----- - -It is important to note that gauges are sampled rather than set; there is no record of how the value associated with a -gauge might have changed between measurements. In this example, the size of the list is observed when the Prometheus -endpoint is visited. - -Micrometer provides a few additional mechanisms for creating gauges. Note that Micrometer does not create strong -references to the objects it observes by default. Depending on the registry, Micrometer either omits gauges that observe -objects that have been garbage-collected entirely or uses `NaN` (not a number) as the observed value. - -When should you use a Gauge? Only if you can't use something else. Never gauge something you can count. Gauges can be -less straight-forward to use than counters. If what you are measuring can be counted (because the value always -increments), use a counter instead. - -=== Counters - -Counters are used to measure values that only increase. In the example below, you will count the number of times you -test a number to see if it is prime: - -[source,java] ----- - @GET - @Path("prime/{number}") - public String checkIfPrime(@PathParam("number") long number) { - if (number < 1) { - return "Only natural numbers can be prime numbers."; - } - if (number == 1 || number == 2 || number % 2 == 0) { - return number + " is not prime."; - } - - if ( testPrimeNumber(number) ) { - return number + " is prime."; - } else { - return number + " is not prime."; - } - } - - protected boolean testPrimeNumber(long number) { - // Count the number of times we test for a prime number - registry.counter("example.prime.number").increment(); - for (int i = 3; i < Math.floor(Math.sqrt(number)) + 1; i = i + 2) { - if (number % i == 0) { - return false; - } - } - return true; - } ----- - -It might be tempting to add a label or tag to the counter indicating what value was checked, but remember that each -unique combination of metric name (`example.prime.number`) and label value produces a unique time series. Using an -unbounded set of data as label values can lead to a "cardinality explosion", an exponential increase in the creation -of new time series. - -[NOTE] -==== -Label and tag can be used interchangably. You may also see "attribute" used in this context in some documentation. -The gist is each that each label or tag or attribute defines an additional bit of information associated with the -single numerical measurement that helps you classify, group, or aggregate the measured value later. The Micrometer API -uses `Tag` as the mechanism for specifying this additional data. -==== - -It is possible to add a tag that would convey a little more information, however. Let's adjust our code, and move -the counter to add some tags to convey additional information. - -[source,java] ----- - @GET - @Path("prime/{number}") - public String checkIfPrime(@PathParam("number") long number) { - if (number < 1) { - registry.counter("example.prime.number", "type", "not-natural").increment(); - return "Only natural numbers can be prime numbers."; - } - if (number == 1 ) { - registry.counter("example.prime.number", "type", "one").increment(); - return number + " is not prime."; - } - if (number == 2 || number % 2 == 0) { - registry.counter("example.prime.number", "type", "even").increment(); - return number + " is not prime."; - } - - if ( testPrimeNumber(number) ) { - registry.counter("example.prime.number", "type", "prime").increment(); - return number + " is prime."; - } else { - registry.counter("example.prime.number", "type", "not-prime").increment(); - return number + " is not prime."; - } - } - - protected boolean testPrimeNumber(long number) { - for (int i = 3; i < Math.floor(Math.sqrt(number)) + 1; i = i + 2) { - if (number % i == 0) { - return false; - } - } - return true; - } ----- - -Looking at the data produced by this counter, you can tell how often a negative number was checked, or the number one, -or an even number, and so on. Try the following sequence and look for `example_prime_number_total` in the plain text -output. Note that the `_total` suffix is added when Micrometer applies Prometheus naming conventions to -`example.prime.number`, the originally specified counter name. - -If you did not leave Quarkus running in dev mode, start it again: - -include::includes/devtools/dev.adoc[] - -Then execute the following sequence: - -[source,shell] ----- -curl http://localhost:8080/example/prime/-1 -curl http://localhost:8080/example/prime/0 -curl http://localhost:8080/example/prime/1 -curl http://localhost:8080/example/prime/2 -curl http://localhost:8080/example/prime/3 -curl http://localhost:8080/example/prime/15 -curl http://localhost:8080/q/metrics ----- - -When should you use a counter? Only if you are doing something that can not be either timed (or summarized). -Counters only record a count, which may be all that is needed. However, if you want to understand more about how a -value is changing, a timer (when the base unit of measurement is time) or a distribution summary might be -more appropriate. - -=== Summaries and Timers - -Timers and distribution summaries in Micrometer are very similar. Both allow you to record an observed value, which -will be aggregated with other recorded values and stored as a sum. Micrometer also increments a counter to indicate the -number of measurements that have been recorded and tracks the maximum observed value (within a decaying interval). - -Distribution summaries are populated by calling the `record` method to record observed values, while timers provide -additional capabilities specific to working with time and measuring durations. For example, we can use a timer to -measure how long it takes to calculate prime numbers using one of the `record` methods that wraps the invocation of a -Supplier function: - -[source,java] ----- - protected boolean testPrimeNumber(long number) { - Timer timer = registry.timer("example.prime.number.test"); - return timer.record(() -> { - for (int i = 3; i < Math.floor(Math.sqrt(number)) + 1; i = i + 2) { - if (number % i == 0) { - return false; - } - } - return true; - }); - } ----- - -Micrometer will apply Prometheus conventions when emitting metrics for this timer. Prometheus measures time in seconds. -Micrometer converts measured durations into seconds and includes the unit in the metric name, per convention. After -visiting the prime endpoint a few more times, look in the plain text output for the following three entries: -`example_prime_number_test_seconds_count`, `example_prime_number_test_seconds_sum`, and -`example_prime_number_test_seconds_max`. - -If you did not leave Quarkus running in dev mode, start it again: - -include::includes/devtools/dev.adoc[] - -Then execute the following sequence: - -[source,shell] ----- -curl http://localhost:8080/example/prime/256 -curl http://localhost:8080/q/metrics -curl http://localhost:8080/example/prime/7919 -curl http://localhost:8080/q/metrics ----- - -Both timers and distribution summaries can be configured to emit additional statistics, like histogram data, -precomputed percentiles, or service level objective (SLO) boundaries. Note that the count, sum, and histogram data -can be re-aggregated across dimensions (or across a series of instances), while precomputed percentile values cannot. - -=== Review automatically generated metrics - -To view metrics, execute `curl localhost:8080/q/metrics/` - -The Micrometer extension automatically times HTTP server requests. Following Prometheus naming conventions for -timers, look for `http_server_requests_seconds_count`, `http_server_requests_seconds_sum`, and -`http_server_requests_seconds_max`. Dimensional labels have been added for the requested uri, the HTTP method -(GET, POST, etc.), the status code (200, 302, 404, etc.), and a more general outcome field. - -[source,text] ----- -# HELP http_server_requests_seconds -# TYPE http_server_requests_seconds summary -http_server_requests_seconds_count{method="GET",outcome="SUCCESS",status="200",uri="/example/prime/{number}",} 1.0 -http_server_requests_seconds_sum{method="GET",outcome="SUCCESS",status="200",uri="/example/prime/{number}",} 0.017385896 -# HELP http_server_requests_seconds_max -# TYPE http_server_requests_seconds_max gauge -http_server_requests_seconds_max{method="GET",outcome="SUCCESS",status="200",uri="/example/prime/{number}",} 0.017385896 -# ----- - -Note that metrics appear lazily, you often won't see any data for your endpoint until -something tries to access it, etc. - -.Ignoring endpoints - -You can disable measurement of HTTP endpoints using the `quarkus.micrometer.binder.http-server.ignore-patterns` -property. This property accepts a comma-separated list of simple regex match patterns identifying URI paths that should -be ignored. For example, setting `quarkus.micrometer.binder.http-server.ignore-patterns=/example/prime/[0-9]+` will -ignore a request to `http://localhost:8080/example/prime/7919`. A request to `http://localhost:8080/example/gauge/7919` -would still be measured. - -.URI templates - -The micrometer extension will make a best effort at representing URIs containing path parameters in templated form. -Using examples from above, a request to `http://localhost:8080/example/prime/7919` should appear as an attribute of -`http_server_requests_seconds_*` metrics with a value of `uri=/example/prime/{number}`. - -Use the `quarkus.micrometer.binder.http-server.match-patterns` property if the correct URL can not be determined. This -property accepts a comma-separated list defining an association between a simple regex match pattern and a replacement -string. For example, setting -`quarkus.micrometer.binder.http-server.match-patterns=/example/prime/[0-9]+=/example/{jellybeans}` would use the value -`/example/{jellybeans}` for the uri attribute any time the requested uri matches `/example/prime/[0-9]+`. - -== Using MeterFilter to configure metrics - -Micrometer uses `MeterFilter` instances to customize the metrics emitted by `MeterRegistry` instances. -The Micrometer extension will detect `MeterFilter` CDI beans and use them when initializing `MeterRegistry` -instances. - -[source,java] ----- -@Singleton -public class CustomConfiguration { - - @ConfigProperty(name = "deployment.env") - String deploymentEnv; - - /** Define common tags that apply only to a Prometheus Registry */ - @Produces - @Singleton - @MeterFilterConstraint(applyTo = PrometheusMeterRegistry.class) - public MeterFilter configurePrometheusRegistries() { - return MeterFilter.commonTags(Arrays.asList( - Tag.of("registry", "prometheus"))); - } - - /** Define common tags that apply globally */ - @Produces - @Singleton - public MeterFilter configureAllRegistries() { - return MeterFilter.commonTags(Arrays.asList( - Tag.of("env", deploymentEnv))); - } - - /** Enable histogram buckets for a specific timer */ - @Produces - @Singleton - public MeterFilter enableHistogram() { - return new MeterFilter() { - @Override - public DistributionStatisticConfig configure(Meter.Id id, DistributionStatisticConfig config) { - if(id.getName().startsWith("myservice")) { - return DistributionStatisticConfig.builder() - .percentiles(0.5, 0.95) // median and 95th percentile, not aggregable - .percentilesHistogram(true) // histogram buckets (e.g. prometheus histogram_quantile) - .build() - .merge(config); - } - return config; - } - }; - } -} ----- - -In this example, a singleton CDI bean will produce two different `MeterFilter` beans. One will be applied only to -Prometheus `MeterRegistry` instances (using the `@MeterFilterConstraint` qualifier), and another will be applied -to all `MeterRegistry` instances. An application configuration property is also injected and used as a tag value. -Additional examples of MeterFilters can be found in the -link:https://micrometer.io/docs/concepts[official documentation]. - -== Does Micrometer support annotations? - -Micrometer does define two annotations, `@Counted` and `@Timed`, that can be added to methods. The `@Timed` annotation -will wrap the execution of a method and will emit the following tags in addition to any tags defined on the -annotation itself: class, method, and exception (either "none" or the simple class name of a detected exception). - -Using annotations is limited, as you can't dynamically assign meaningful tag values. Also note that many methods, e.g. -REST endpoint methods or Vert.x Routes, are counted and timed by the micrometer extension out of the box. - -== Using other Registry implementations - -If you aren't using Prometheus, you have a few options. Some Micrometer registry implementations -have been wrapped in -https://github.com/quarkiverse/quarkiverse-micrometer-registry[Quarkiverse extensions]. -To use the Micrometer StackDriver MeterRegistry, for example, you would use the -`quarkus-micrometer-registry-stackdriver` extension: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-micrometer-registry-stackdriver - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-micrometer-registry-stackdriver") ----- - -If the Micrometer registry you would like to use does not yet have an associated extension, -use the `quarkus-micrometer` extension and bring in the packaged MeterRegistry dependency directly: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-micrometer - - - com.acme - custom-micrometer-registry - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-micrometer") -implementation("com.acme:custom-micrometer-registry") ----- - -You will then need to specify your own provider to configure and initialize the -MeterRegistry, as discussed in the next section. - -== Creating a customized MeterRegistry - -Use a custom `@Produces` method to create and configure a customized `MeterRegistry` if you need to. - -The following example customizes the line format used for StatsD: - -[source,java] ----- -@Produces -@Singleton -public StatsdMeterRegistry createStatsdMeterRegistry(StatsdConfig statsdConfig, Clock clock) { - // define what to do with lines - Consumer lineLogger = line -> logger.info(line); - - // inject a configuration object, and then customize the line builder - return StatsdMeterRegistry.builder(statsdConfig) - .clock(clock) - .lineSink(lineLogger) - .build(); -} ----- - -This example corresponds to the following instructions in the Micrometer documentation: -https://micrometer.io/docs/registry/statsD#_customizing_the_metrics_sink - -Note that the method returns the specific type of `MeterRegistry` as a `@Singleton`. Use MicroProfile Config -to inject any configuration attributes you need to configure the registry. Most Micrometer registry extensions, -like `quarkus-micrometer-registry-statsd`, define a producer for registry-specific configuration objects -that are integrated with the Quarkus configuration model. - -== Support for the MicroProfile Metrics API - -If you use the MicroProfile Metrics API in your application, the Micrometer extension will create an adaptive -layer to map those metrics into the Micrometer registry. Note that naming conventions between the two -systems is different, so the metrics that are emitted when using MP Metrics with Micrometer will change. -You can use a `MeterFilter` to remap names or tags according to your conventions. - -[source,java] ----- -@Produces -@Singleton -public MeterFilter renameApplicationMeters() { - final String targetMetric = MPResourceClass.class.getName() + ".mpAnnotatedMethodName"; - - return MeterFilter() { - @Override - public Meter.Id map(Meter.Id id) { - if (id.getName().equals(targetMetric)) { - // Drop the scope tag (MP Registry type: application, vendor, base) - List tags = id.getTags().stream().filter(x -> !"scope".equals(x.getKey())) - .collect(Collectors.toList()); - // rename the metric - return id.withName("my.metric.name").replaceTags(tags); - } - return id; - } - }; -} ----- - -Ensure the following dependency is present in your build file if you require the MicroProfile Metrics API: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.eclipse.microprofile.metrics - microprofile-metrics-api - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.eclipse.microprofile.metrics:microprofile-metrics-api") ----- - -NOTE: The MP Metrics API compatibility layer will be moved to a different extension in the future. - -== Configuration Reference - -include::{generated-dir}/config/quarkus-micrometer.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/mongodb-panache-kotlin.adoc b/_versions/2.7/guides/mongodb-panache-kotlin.adoc deleted file mode 100644 index aff813ab22d..00000000000 --- a/_versions/2.7/guides/mongodb-panache-kotlin.adoc +++ /dev/null @@ -1,200 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Simplified MongoDB with Panache and Kotlin - -include::./attributes.adoc[] -:config-file: application.properties - -MongoDB is a well known NoSQL Database that is widely used. MongoDB with Panache offers a -new layer atop this familiar framework. This guide will not dive in to the specifics of either as those are already -covered in the xref:mongodb-panache.adoc[MongoDB with Panache guide]. In this guide, we'll cover the Kotlin specific changes -needed to use MongoDB with Panache in your Kotlin-based Quarkus applications. - -== First: an example - -As we saw in the MongoDB with Panache guide, it allows us to extend the functionality in our entities and repositories (also known as DAOs) with some automatically -provided functionality. When using Kotlin, the approach is very similar to what we see in the Java version with a slight -change or two. To Panache-enable your entity, you would define it something like: - -[source,kotlin] ----- -class Person: PanacheMongoEntity { - lateinit var name: String - lateinit var birth: LocalDate - lateinit var status: Status -} ----- - -As you can see our entities remain simple. There is, however, a slight difference from the Java version. The Kotlin -language doesn't support the notion of static methods in quite the same way as Java does. Instead, we must use a -https://kotlinlang.org/docs/tutorials/kotlin-for-py/objects-and-companion-objects.html#companion-objects[companion object]: - -[source,kotlin] ----- -class Person : PanacheMongoEntity() { - companion object: PanacheMongoCompanion { // <1> - fun findByName(name: String) = find("name", name).firstResult() - fun findAlive() = list("status", Status.Alive) - fun deleteStefs() = delete("name", "Stef") - } - - lateinit var name: String // <2> - lateinit var birth: LocalDate - lateinit var status: Status -} ----- -<1> The companion object holds all the methods not related to a specific instance allowing for general management and -querying bound to a specific type. -<2> Here there are options, but we've chosen the `lateinit` approach. This allows us to declare these fields as non-null -knowing they will be properly assigned either by the constructor (not shown) or by the MongoDB POJO codec loading data from the -database. - -NOTE: These types differ from the Java types mentioned in those tutorials. For Kotlin support, all the Panache -types will be found in the `io.quarkus.mongodb.panache.kotlin` package. This subpackage allows for the distinction -between the Java and Kotlin variants and allows for both to be used unambiguously in a single project. - -In the Kotlin version, we've simply moved the bulk of the link:https://www.martinfowler.com/eaaCatalog/activeRecord.html[`active record pattern`] -functionality to the `companion object`. Apart from this slight change, we can then work with our types in ways that map easily -from the Java side of world. - - -== Using the repository pattern - - -=== Defining your entity - -When using the repository pattern, you can define your entities as regular POJO. -[source,kotlin] ----- -class Person { - var id: ObjectId? = null; // used by MongoDB for the _id field - lateinit var name: String - lateinit var birth: LocalDate - lateinit var status: Status -} ----- - -=== Defining your repository - -When using Repositories, you get the exact same convenient methods as with the active record pattern, injected in your Repository, -by making them implement `PanacheMongoRepository`: - -[source,kotlin] ----- -@ApplicationScoped -class PersonRepository: PanacheMongoRepository { - fun findByName(name: String) = find("name", name).firstResult() - fun findAlive() = list("status", Status.Alive) - fun deleteStefs() = delete("name", "Stef") -} ----- - -All the operations that are defined on `PanacheMongoEntityBase` are available on your repository, so using it -is exactly the same as using the active record pattern, except you need to inject it: - -[source,kotlin] ----- -@Inject -lateinit var personRepository: PersonRepository - -@GET -fun count() = personRepository.count() ----- - -=== Most useful operations - -Once you have written your repository, here are the most common operations you will be able to perform: - -[source,kotlin] ----- -// creating a person -var person = Person() -person.name = "Stef" -person.birth = LocalDate.of(1910, Month.FEBRUARY, 1) -person.status = Status.Alive - -// persist it: if you keep the default ObjectId ID field, it will be populated by the MongoDB driver -personRepository.persist(person) - -person.status = Status.Dead; - -// Your must call update() in order to send your entity modifications to MongoDB -personRepository.update(person); - - -// delete it -personRepository.delete(person); - -// getting a list of all Person entities -val allPersons = personRepository.listAll() - -// finding a specific person by ID -// here we build a new ObjectId but you can also retrieve it from the existing entity after being persisted -ObjectId personId = new ObjectId(idAsString); -person = personRepository.findById(personId) ?: throw Exception("No person with that ID") - -// finding all living persons -val livingPersons = personRepository.list("status", Status.Alive) - -// counting all persons -val countAll = personRepository.count() - -// counting all living persons -val countAlive = personRepository.count("status", Status.Alive) - -// delete all living persons -personRepository.delete("status", Status.Alive) - -// delete all persons -personRepository.deleteAll() - -// delete by id -val deleted = personRepository.deleteById(personId) - -// set the name of all living persons to 'Mortal' -personRepository.update("name = 'Mortal' where status = ?1", Status.Alive) - ----- - -All `list` methods have equivalent `stream` versions. - -[source,kotlin] ----- -val persons = personRepository.streamAll(); -val namesButEmmanuels = persons - .map { it.name.toLowerCase() } - .filter { it != "emmanuel" } ----- - -For more examples, please consult the xref:mongodb-panache.adoc[Java version] for complete details. Both APIs -are the same and work identically except for some Kotlin-specific tweaks to make things feel more natural to -Kotlin developers. These tweaks include things like better use of nullability and the lack of `Optional` on API -methods. - -== Setting up and configuring MongoDB with Panache - -To get started using MongoDB with Panache with Kotlin, you can, generally, follow the steps laid out in the Java tutorial. The biggest -change to configuring your project is the Quarkus artifact to include. You can, of course, keep the Java version if you -need but if all you need are the Kotlin APIs then include the following dependency instead: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-mongodb-panache-kotlin // <1> - ----- -<1> Note the addition of `-kotlin` on the end. Generally you'll only need this version but if your project will be using -both Java and Kotlin code, you can safely include both artifacts. - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-mongodb-panache-kotlin") <1> ----- -<1> Note the addition of `-kotlin` on the end. Generally you'll only need this version but if your project will be using -both Java and Kotlin code, you can safely include both artifacts. diff --git a/_versions/2.7/guides/mongodb-panache.adoc b/_versions/2.7/guides/mongodb-panache.adoc deleted file mode 100644 index 23f55e8082a..00000000000 --- a/_versions/2.7/guides/mongodb-panache.adoc +++ /dev/null @@ -1,1203 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Simplified MongoDB with Panache - -include::./attributes.adoc[] -:config-file: application.properties -:mongodb-doc-root-url: https://mongodb.github.io/mongo-java-driver/4.2 - -MongoDB is a well known NoSQL Database that is widely used, but using its raw API can be cumbersome as you need to express your entities and your queries as a MongoDB link:{mongodb-doc-root-url}/bson/documents/#document[`Document`]. - -MongoDB with Panache provides active record style entities (and repositories) like you have in xref:hibernate-orm-panache.adoc[Hibernate ORM with Panache] and focuses on making your entities trivial and fun to write in Quarkus. - -It is built on top of the xref:mongodb.adoc[MongoDB Client] extension. - -== First: an example - -Panache allows you to write your MongoDB entities like this: - -[source,java] ----- -public class Person extends PanacheMongoEntity { - public String name; - public LocalDate birth; - public Status status; - - public static Person findByName(String name){ - return find("name", name).firstResult(); - } - - public static List findAlive(){ - return list("status", Status.Alive); - } - - public static void deleteLoics(){ - delete("name", "Loïc"); - } -} ----- - -You have noticed how much more compact and readable the code is compared to using the MongoDB API? -Does this look interesting? Read on! - -NOTE: the `list()` method might be surprising at first. It takes fragments of PanacheQL queries (subset of JPQL) and contextualizes the rest. -That makes for very concise but yet readable code. -MongoDB native queries are also supported. - -NOTE: what was described above is essentially the link:https://www.martinfowler.com/eaaCatalog/activeRecord.html[active record pattern], sometimes just called the entity pattern. -MongoDB with Panache also allows for the use of the more classical link:https://martinfowler.com/eaaCatalog/repository.html[repository pattern] via `PanacheMongoRepository`. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `mongodb-panache-quickstart` {quickstarts-tree-url}/mongodb-panache-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: mongodb-panache-quickstart -:create-app-extensions: resteasy-reactive-jackson,mongodb-panache -include::includes/devtools/create-app.adoc[] - -This command generates a Maven structure importing the RESTEasy Reactive Jackson and MongoDB with Panache extensions. -After this, the `quarkus-mongodb-panache` extension has been added to your build file. - -If you don't want to generate a new project, add the dependency in your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-mongodb-panache - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-mongodb-panache") ----- - -== Setting up and configuring MongoDB with Panache - -To get started: - -* add your settings in `{config-file}` -* Make your entities extend `PanacheMongoEntity` (optional if you are using the repository pattern) -* Optionally, use the `@MongoEntity` annotation to specify the name of the collection, the name of the database or the name of the client. - -Then add the relevant configuration properties in `{config-file}`. - -[source,properties] ----- -# configure the MongoDB client for a replica set of two nodes -quarkus.mongodb.connection-string = mongodb://mongo1:27017,mongo2:27017 -# mandatory if you don't specify the name of the database using @MongoEntity -quarkus.mongodb.database = person ----- - -The `quarkus.mongodb.database` property will be used by MongoDB with Panache to determine the name of the database where your entities will be persisted (if not overridden by `@MongoEntity`). - -The `@MongoEntity` annotation allows configuring: - -* the name of the client for multi-tenant application, see xref:mongodb.adoc#multiple-mongodb-clients[Multiple MongoDB Clients]. Otherwise, the default client will be used. -* the name of the database, otherwise, the `quarkus.mongodb.database` property will be used. -* the name of the collection, otherwise the simple name of the class will be used. - -For advanced configuration of the MongoDB client, you can follow the xref:mongodb.adoc#configuring-the-mongodb-database[Configuring the MongoDB database guide]. - -== Solution 1: using the active record pattern - -=== Defining your entity - -To define a Panache entity, simply extend `PanacheMongoEntity` and add your columns as public fields. -You can add the `@MongoEntity` annotation to your entity if you need to customize the name of the collection, the database, or the client. - -[source,java] ----- -@MongoEntity(collection="ThePerson") -public class Person extends PanacheMongoEntity { - public String name; - - // will be persisted as a 'birth' field in MongoDB - @BsonProperty("birth") - public LocalDate birthDate; - - public Status status; -} ----- - -NOTE: Annotating with `@MongoEntity` is optional. Here the entity will be stored in the `ThePerson` collection instead of the default `Person` collection. - -MongoDB with Panache uses the link:{mongodb-doc-root-url}/bson/pojos/[PojoCodecProvider] to convert your entities to a MongoDB `Document`. - -You will be allowed to use the following annotations to customize this mapping: - -- `@BsonId`: allows you to customize the ID field, see <>. -- `@BsonProperty`: customize the serialized name of the field. -- `@BsonIgnore`: ignore a field during the serialization. - -If you need to write accessors, you can: - -[source,java] ----- -public class Person extends PanacheMongoEntity { - - @JsonProperty - public String name; - public LocalDate birth; - public Status status; - - // return name as uppercase in the model - public String getName(){ - return name.toUpperCase(); - } - - // store all names in lowercase in the DB - public void setName(String name){ - this.name = name.toLowerCase(); - } -} ----- - -And thanks to our field access rewrite, when your users read `person.name` they will actually call your `getName()` accessor, and similarly for field writes and the setter. -This allows for proper encapsulation at runtime as all fields calls will be replaced by the corresponding getter/setter calls. - -=== Most useful operations - -Once you have written your entity, here are the most common operations you will be able to perform: - -[source,java] ----- -// creating a person -Person person = new Person(); -person.name = "Loïc"; -person.birth = LocalDate.of(1910, Month.FEBRUARY, 1); -person.status = Status.Alive; - -// persist it: if you keep the default ObjectId ID field, it will be populated by the MongoDB driver -person.persist(); - -person.status = Status.Dead; - -// Your must call update() in order to send your entity modifications to MongoDB -person.update(); - -// delete it -person.delete(); - -// getting a list of all Person entities -List allPersons = Person.listAll(); - -// finding a specific person by ID -// here we build a new ObjectId but you can also retrieve it from the existing entity after being persisted -ObjectId personId = new ObjectId(idAsString); -person = Person.findById(personId); - -// finding a specific person by ID via an Optional -Optional optional = Person.findByIdOptional(personId); -person = optional.orElseThrow(() -> new NotFoundException()); - -// finding all living persons -List livingPersons = Person.list("status", Status.Alive); - -// counting all persons -long countAll = Person.count(); - -// counting all living persons -long countAlive = Person.count("status", Status.Alive); - -// delete all living persons -Person.delete("status", Status.Alive); - -// delete all persons -Person.deleteAll(); - -// delete by id -boolean deleted = Person.deleteById(personId); - -// set the name of all living persons to 'Mortal' -long updated = Person.update("name", "Mortal").where("status", Status.Alive); ----- - -All `list` methods have equivalent `stream` versions. - -[source,java] ----- -Stream persons = Person.streamAll(); -List namesButEmmanuels = persons - .map(p -> p.name.toLowerCase() ) - .filter( n -> ! "emmanuel".equals(n) ) - .collect(Collectors.toList()); ----- - -NOTE: A `persistOrUpdate()` method exist that persist or update an entity in the database, it uses the __upsert__ capability of MongoDB to do it in a single query. - -=== Adding entity methods - -Add custom queries on your entities inside the entities themselves. -That way, you and your co-workers can find them easily, and queries are co-located with the object they operate on. -Adding them as static methods in your entity class is the Panache Active Record way. - -[source,java] ----- -public class Person extends PanacheMongoEntity { - public String name; - public LocalDate birth; - public Status status; - - public static Person findByName(String name){ - return find("name", name).firstResult(); - } - - public static List findAlive(){ - return list("status", Status.Alive); - } - - public static void deleteLoics(){ - delete("name", "Loïc"); - } -} ----- - -== Solution 2: using the repository pattern - -=== Defining your entity - -You can define your entity as regular POJO. -You can add the `@MongoEntity` annotation to your entity if you need to customize the name of the collection, the database, or the client. - -[source,java] ----- -@MongoEntity(collection="ThePerson") -public class Person { - public ObjectId id; // used by MongoDB for the _id field - public String name; - public LocalDate birth; - public Status status; -} ----- - -NOTE: Annotating with `@MongoEntity` is optional. Here the entity will be stored in the `ThePerson` collection instead of the default `Person` collection. - -MongoDB with Panache uses the link:{mongodb-doc-root-url}/bson/pojos/[PojoCodecProvider] to convert your entities to a MongoDB `Document`. - -You will be allowed to use the following annotations to customize this mapping: - -- `@BsonId`: allows you to customize the ID field, see <>. -- `@BsonProperty`: customize the serialized name of the field. -- `@BsonIgnore`: ignore a field during the serialization. - -TIP: You can use public fields or private fields with getters/setters. -If you don't want to manage the ID by yourself, you can make your entity extends `PanacheMongoEntity`. - -=== Defining your repository - -When using Repositories, you can get the exact same convenient methods as wit the active record pattern, injected in your Repository, -by making them implements `PanacheMongoRepository`: - -[source,java] ----- -@ApplicationScoped -public class PersonRepository implements PanacheMongoRepository { - - // put your custom logic here as instance methods - - public Person findByName(String name){ - return find("name", name).firstResult(); - } - - public List findAlive(){ - return list("status", Status.Alive); - } - - public void deleteLoics(){ - delete("name", "Loïc"); - } -} ----- - -All the operations that are defined on `PanacheMongoEntityBase` are available on your repository, so using it -is exactly the same as using the active record pattern, except you need to inject it: - -[source,java] ----- -@Inject -PersonRepository personRepository; - -@GET -public long count(){ - return personRepository.count(); -} ----- - -=== Most useful operations - -Once you have written your repository, here are the most common operations you will be able to perform: - -[source,java] ----- -// creating a person -Person person = new Person(); -person.name = "Loïc"; -person.birth = LocalDate.of(1910, Month.FEBRUARY, 1); -person.status = Status.Alive; - -// persist it: if you keep the default ObjectId ID field, it will be populated by the MongoDB driver -personRepository.persist(person); - -person.status = Status.Dead; - -// Your must call update() in order to send your entity modifications to MongoDB -personRepository.update(person); - -// delete it -personRepository.delete(person); - -// getting a list of all Person entities -List allPersons = personRepository.listAll(); - -// finding a specific person by ID -// here we build a new ObjectId but you can also retrieve it from the existing entity after being persisted -ObjectId personId = new ObjectId(idAsString); -person = personRepository.findById(personId); - -// finding a specific person by ID via an Optional -Optional optional = personRepository.findByIdOptional(personId); -person = optional.orElseThrow(() -> new NotFoundException()); - -// finding all living persons -List livingPersons = personRepository.list("status", Status.Alive); - -// counting all persons -long countAll = personRepository.count(); - -// counting all living persons -long countAlive = personRepository.count("status", Status.Alive); - -// delete all living persons -personRepository.delete("status", Status.Alive); - -// delete all persons -personRepository.deleteAll(); - -// delete by id -boolean deleted = personRepository.deleteById(personId); - -// set the name of all living persons to 'Mortal' -long updated = personRepository.update("name", "Mortal").where("status", Status.Alive); ----- - -All `list` methods have equivalent `stream` versions. - -[source,java] ----- -Stream persons = personRepository.streamAll(); -List namesButEmmanuels = persons - .map(p -> p.name.toLowerCase() ) - .filter( n -> ! "emmanuel".equals(n) ) - .collect(Collectors.toList()); ----- - -NOTE: A `persistOrUpdate()` method exist that persist or update an entity in the database, it uses the __upsert__ capability of MongoDB to do it in a single query. - -NOTE: The rest of the documentation show usages based on the active record pattern only, -but keep in mind that they can be performed with the repository pattern as well. -The repository pattern examples have been omitted for brevity. - -== Writing a JAX-RS resource - -First, include one of the RESTEasy extensions to enable JAX-RS endpoints, for example, add the `io.quarkus:quarkus-resteasy-reactive-jackson` dependency for JAX-RS and JSON support. - -Then, you can create the following resource to create/read/update/delete your Person entity: - -[source,java] ----- -@Path("/persons") -@Consumes(MediaType.APPLICATION_JSON) -@Produces(MediaType.APPLICATION_JSON) -public class PersonResource { - - @GET - public List list() { - return Person.listAll(); - } - - @GET - @Path("/{id}") - public Person get(@PathParam("id") String id) { - return Person.findById(new ObjectId(id)); - } - - @POST - public Response create(Person person) { - person.persist(); - return Response.created(URI.create("/persons/" + person.id)).build(); - } - - @PUT - @Path("/{id}") - public void update(@PathParam("id") String id, Person person) { - person.update(); - } - - @DELETE - @Path("/{id}") - public void delete(@PathParam("id") String id) { - Person person = Person.findById(new ObjectId(id)); - if(person == null) { - throw new NotFoundException(); - } - person.delete(); - } - - @GET - @Path("/search/{name}") - public Person search(@PathParam("name") String name) { - return Person.findByName(name); - } - - @GET - @Path("/count") - public Long count() { - return Person.count(); - } -} ----- - -== Advanced Query - -=== Paging - -You should only use `list` and `stream` methods if your collection contains small enough data sets. For larger data -sets you can use the `find` method equivalents, which return a `PanacheQuery` on which you can do paging: - -[source,java] ----- -// create a query for all living persons -PanacheQuery livingPersons = Person.find("status", Status.Alive); - -// make it use pages of 25 entries at a time -livingPersons.page(Page.ofSize(25)); - -// get the first page -List firstPage = livingPersons.list(); - -// get the second page -List secondPage = livingPersons.nextPage().list(); - -// get page 7 -List page7 = livingPersons.page(Page.of(7, 25)).list(); - -// get the number of pages -int numberOfPages = livingPersons.pageCount(); - -// get the total number of entities returned by this query without paging -int count = livingPersons.count(); - -// and you can chain methods of course -return Person.find("status", Status.Alive) - .page(Page.ofSize(25)) - .nextPage() - .stream() ----- - -The `PanacheQuery` type has many other methods to deal with paging and returning streams. - -=== Using a range instead of pages - -`PanacheQuery` also allows range-based queries. - -[source,java] ----- -// create a query for all living persons -PanacheQuery livingPersons = Person.find("status", Status.Alive); - -// make it use a range: start at index 0 until index 24 (inclusive). -livingPersons.range(0, 24); - -// get the range -List firstRange = livingPersons.list(); - -// to get the next range, you need to call range again -List secondRange = livingPersons.range(25, 49).list(); ----- - -[WARNING] -==== -You cannot mix ranges and pages: if you use a range, all methods that depend on having a current page will throw an `UnsupportedOperationException`; -you can switch back to paging using `page(Page)` or `page(int, int)`. -==== - -=== Sorting - -All methods accepting a query string also accept an optional `Sort` parameter, which allows you to abstract your sorting: - -[source,java] ----- -List persons = Person.list(Sort.by("name").and("birth")); - -// and with more restrictions -List persons = Person.list("status", Sort.by("name").and("birth"), Status.Alive); ----- - -The `Sort` class has plenty of methods for adding columns and specifying sort direction. - -=== Simplified queries - -Normally, MongoDB queries are of this form: `{'firstname': 'John', 'lastname':'Doe'}`, this is what we call MongoDB native queries. - -You can use them if you want, but we also support what we call **PanacheQL** that can be seen as a subset of link:https://docs.oracle.com/javaee/7/tutorial/persistence-querylanguage.htm#BNBTG[JPQL] (or link:https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#hql[HQL]) and allows you to easily express a query. -MongoDB with Panache will then map it to a MongoDB native query. - -If your query does not start with `{`, we will consider it a PanacheQL query: - -- `` (and single parameter) which will expand to `{'singleColumnName': '?1'}` -- `` will expand to `{}` where we will map the PanacheQL query to MongoDB native query form. We support the following operators that will be mapped to the corresponding MongoDB operators: 'and', 'or' ( mixing 'and' and 'or' is not currently supported), '=', '>', '>=', '<', '<=', '!=', 'is null', 'is not null', and 'like' that is mapped to the MongoDB `$regex` operator (both String and JavaScript patterns are supported). - -Here are some query examples: - -- `firstname = ?1 and status = ?2` will be mapped to `{'firstname': ?1, 'status': ?2}` -- `amount > ?1 and firstname != ?2` will be mapped to `{'amount': {'$gt': ?1}, 'firstname': {'$ne': ?2}}` -- `lastname like ?1` will be mapped to `{'lastname': {'$regex': ?1}}`. Be careful that this will be link:https://docs.mongodb.com/manual/reference/operator/query/regex/#op._S_regex[MongoDB regex] support and not SQL like pattern. -- `lastname is not null` will be mapped to `{'lastname':{'$exists': true}}` -- `status in ?1` will be mapped to `{'status':{$in: [?1]}}` - -WARNING: MongoDB queries must be valid JSON documents, -using the same field multiple times in a query is not allowed using PanacheQL as it would generate an invalid JSON -(see link:https://github.com/quarkusio/quarkus/issues/12086[this issue on github]). - -We also handle some basic date type transformations: all fields of type `Date`, `LocalDate`, `LocalDateTime` or `Instant` will be mapped to the -link:https://docs.mongodb.com/manual/reference/bson-types/#date[BSON Date] using the `ISODate` type (UTC datetime). -The MongoDB POJO codec doesn't support `ZonedDateTime` and `OffsetDateTime` so you should convert them prior usage. - -MongoDB with Panache also supports extended MongoDB queries by providing a `Document` query, this is supported by the find/list/stream/count/delete methods. - -MongoDB with Panache offers operations to update multiple documents based on an update document and a query : -`Person.update("foo = ?1, bar = ?2", fooName, barName).where("name = ?1", name)`. - -For these operations, you can express the update document the same way you express your queries, here are some examples: - -- `` (and single parameter) which will expand to the update document `{'$set' : {'singleColumnName': '?1'}}` -- `firstname = ?1, status = ?2` will be mapped to the update document `{'$set' : {'firstname': ?1, 'status': ?2}}` -- `firstname = :firstname, status = :status` will be mapped to the update document `{'$set' : {'firstname': :firstname, 'status': :status}}` -- `{'firstname' : ?1, 'status' : ?2}` will be mapped to the update document `{'$set' : {'firstname': ?1, 'status': ?2}}` -- `{'firstname' : firstname, 'status' : :status}` ` will be mapped to the update document `{'$set' : {'firstname': :firstname, 'status': :status}}` - -=== Query parameters - -You can pass query parameters, for both native and PanacheQL queries, by index (1-based) as shown below: - -[source,java] ----- -Person.find("name = ?1 and status = ?2", "Loïc", Status.Alive); -Person.find("{'name': ?1, 'status': ?2}", "Loïc", Status.Alive); ----- - -Or by name using a `Map`: - -[source,java] ----- -Map params = new HashMap<>(); -params.put("name", "Loïc"); -params.put("status", Status.Alive); -Person.find("name = :name and status = :status", params); -Person.find("{'name': :name, 'status', :status}", params); ----- - -Or using the convenience class `Parameters` either as is or to build a `Map`: - -[source,java] ----- -// generate a Map -Person.find("name = :name and status = :status", - Parameters.with("name", "Loïc").and("status", Status.Alive).map()); - -// use it as-is -Person.find("{'name': :name, 'status': :status}", - Parameters.with("name", "Loïc").and("status", Status.Alive)); ----- - -Every query operation accepts passing parameters by index (`Object...`), or by name (`Map` or `Parameters`). - -When you use query parameters, be careful that PanacheQL queries will refer to the Object parameters name but native queries will refer to MongoDB field names. - -Imagine the following entity: - -[source,java] ----- -public class Person extends PanacheMongoEntity { - @BsonProperty("lastname") - public String name; - public LocalDate birth; - public Status status; - - public static Person findByNameWithPanacheQLQuery(String name){ - return find("name", name).firstResult(); - } - - public static Person findByNameWithNativeQuery(String name){ - return find("{'lastname': ?1}", name).firstResult(); - } -} ----- - -Both `findByNameWithPanacheQLQuery()` and `findByNameWithNativeQuery()` methods will return the same result but query written in PanacheQL -will use the entity field name: `name`, and native query will use the MongoDB field name: `lastname`. - -=== Query projection - -Query projection can be done with the `project(Class)` method on the `PanacheQuery` object that is returned by the `find()` methods. - -You can use it to restrict which fields will be returned by the database, -the ID field will always be returned, but it's not mandatory to include it inside the projection class. - -For this, you need to create a class (a POJO) that will only contain the projected fields. -This POJO needs to be annotated with `@ProjectionFor(Entity.class)` where `Entity` is the name of your entity class. -The field names, or getters, of the projection class will be used to restrict which properties will be loaded from the database. - -Projection can be done for both PanacheQL and native queries. - -[source,java] ----- -import io.quarkus.mongodb.panache.common.ProjectionFor; -import org.bson.codecs.pojo.annotations.BsonProperty; - -// using public fields -@ProjectionFor(Person.class) -public class PersonName { - public String name; -} - -// using getters -@ProjectionFor(Person.class) -public class PersonNameWithGetter { - private String name; - - public String getName(){ - return name; - } - - public void setName(String name){ - this.name = name; - } -} - -// only 'name' will be loaded from the database -PanacheQuery shortQuery = Person.find("status ", Status.Alive).project(PersonName.class); -PanacheQuery query = Person.find("'status': ?1", Status.Alive).project(PersonNameWithGetter.class); -PanacheQuery nativeQuery = Person.find("{'status': 'ALIVE'}", Status.Alive).project(PersonName.class); ----- - -TIP: Using `@BsonProperty` is not needed to define custom column mappings, as the mappings from the entity class will be used. - -TIP: You can have your projection class extends from another class. In this case, the parent class also needs to have use `@ProjectionFor` annotation. - -== Query debugging - -As MongoDB with Panache allows writing simplified queries, it is sometimes handy to log the generated native queries for debugging purpose. - -This can be achieved by setting to DEBUG the following log category inside your `application.properties`: - -[source,properties] ----- -quarkus.log.category."io.quarkus.mongodb.panache.runtime".level=DEBUG ----- - -== The PojoCodecProvider: easy object to BSON document conversion. - -MongoDB with Panache uses the link:{mongodb-doc-root-url}/bson/pojos[PojoCodecProvider], with link:{mongodb-doc-root-url}/pojos/#pojo-support[automatic POJO support], -to automatically convert your object to a BSON document. - -In case you encounter the `org.bson.codecs.configuration.CodecConfigurationException` exception, it means the codec is not able to -automatically convert your object. -This codec obeys the Java Bean standard, so it will successfully convert a POJO using public fields or getters/setters. -You can use `@BsonIgnore` to make a field, or a getter/setter, ignored by the codec. - -If your class doesn't obey these rules (for example by including a method that starts with `get` but is not a setter), -you could provide a custom codec for it. -Your custom codec will be automatically discovered and registered inside the codec registry. -See xref:mongodb.adoc#simplifying-mongodb-client-usage-using-bson-codec[Using BSON codec]. - -== Transactions - -MongoDB offers ACID transactions since version 4.0. - -To use them with MongoDB with Panache you need to annotate the method that starts the transaction with the `@Transactional` annotation. - -WARNING: Transaction support inside MongoDB with Panache is still experimental. - -== Custom IDs - -IDs are often a touchy subject. In MongoDB, they are usually auto-generated by the database with an `ObjectId` type. -In MongoDB with Panache the ID are defined by a field named `id` of the `org.bson.types.ObjectId` type, -but if you want to customize them, once again we have you covered. - -You can specify your own ID strategy by extending `PanacheMongoEntityBase` instead of `PanacheMongoEntity`. Then -you just declare whatever ID you want as a public field by annotating it by `@BsonId`: - -[source,java] ----- -@MongoEntity -public class Person extends PanacheMongoEntityBase { - - @BsonId - public Integer myId; - - //... -} ----- - -If you're using repositories, then you will want to extend `PanacheMongoRepositoryBase` instead of `PanacheMongoRepository` -and specify your ID type as an extra type parameter: - -[source,java] ----- -@ApplicationScoped -public class PersonRepository implements PanacheMongoRepositoryBase { - //... -} ----- - -[NOTE] -==== -When using `ObjectId`, MongoDB will automatically provide a value for you, but if you use a custom field type, -you need to provide the value by yourself. -==== - -`ObjectId` can be difficult to use if you want to expose its value in your REST service. -So we created Jackson and JSON-B providers to serialize/deserialize them as a `String` which are automatically registered if your project depends on either the RESTEasy Jackson extension or the RESTEasy JSON-B extension. - -[IMPORTANT] -==== -If you use the standard `ObjectId` ID type, don't forget to retrieve your entity by creating a new `ObjectId` when the identifier comes from a path parameter. For example: - -[source,java] ----- -@GET -@Path("/{id}") -public Person findById(@PathParam("id") String id) { - return Person.findById(new ObjectId(id)); -} ----- -==== - -== Working with Kotlin Data classes - -Kotlin data classes are a very convenient way of defining data carrier classes, making them a great match to define an entity class. - -But this type of class comes with some limitations: all fields needs to be initialized at construction time or be marked as nullable, -and the generated constructor needs to have as parameters all the fields of the data class. - -MongoDB with Panache uses the link:{mongodb-doc-root-url}/bson/pojos[PojoCodecProvider], a MongoDB codec which mandates the presence of a parameterless constructor. - -Therefore, if you want to use a data class as an entity class, you need a way to make Kotlin generate an empty constructor. -To do so, you need to provide default values for all the fields of your classes. -The following sentence from the Kotlin documentation explains it: - -__On the JVM, if the generated class needs to have a parameterless constructor, default values for all properties have to be specified (see Constructors).__ - -If for whatever reason, the aforementioned solution is deemed unacceptable, there are alternatives. - -First, you can create a BSON Codec which will be automatically registered by Quarkus and will be used instead of the `PojoCodecProvider`. -See this part of the documentation: xref:mongodb.adoc#simplifying-mongodb-client-usage-using-bson-codec[Using BSON codec]. - -Another option is to use the `@BsonCreator` annotation to tell the `PojoCodecProvider` to use the Kotlin data class default constructor, -in this case all constructor parameters have to be annotated with `@BsonProperty`: see link:{mongodb-doc-root-url}/bson/pojos/#supporting-pojos-without-no-args-constructors[Supporting pojos without no args constructor]. - -This will only work when the entity extends `PanacheMongoEntityBase` and not `PanacheMongoEntity`, as the ID field also needs to be included in the constructor. - -An example of a `Person` class defined as a Kotlin data class would look like: - -[source,kotlin] ----- -data class Person @BsonCreator constructor ( - @BsonId var id: ObjectId, - @BsonProperty("name") var name: String, - @BsonProperty("birth") var birth: LocalDate, - @BsonProperty("status") var status: Status -): PanacheMongoEntityBase() ----- - -[TIP] -==== -Here we use `var` but note that `val` can also be used. - -The `@BsonId` annotation is used instead of `@BsonProperty("_id")` for brevity's sake, but use of either is valid. -==== - -The last option is to the use the link:https://kotlinlang.org/docs/reference/compiler-plugins.html#no-arg-compiler-plugin[no-arg] compiler plugin. -This plugin is configured with a list of annotations, and the end result is the generation of no-args constructor for each class annotated with them. - -For MongoDB with Panache, you could use the `@MongoEntity` annotation on your data class for this: - -[source,kotlin] ----- -@MongoEntity -data class Person ( - var name: String, - var birth: LocalDate, - var status: Status -): PanacheMongoEntity() ----- - -[[reactive]] -== Reactive Entities and Repositories - -MongoDB with Panache allows using reactive style implementation for both entities and repositories. -For this, you need to use the Reactive variants when defining your entities : `ReactivePanacheMongoEntity` or `ReactivePanacheMongoEntityBase`, -and when defining your repositories: `ReactivePanacheMongoRepository` or `ReactivePanacheMongoRepositoryBase`. - -[TIP] -.Mutiny -==== -The reactive API of the MongoDB with Panache uses Mutiny reactive types. -If you are not familiar with Mutiny, check xref:mutiny-primer.adoc[Mutiny - an intuitive reactive programming library]. -==== - -The reactive variant of the `Person` class will be: - -[source,java] ----- -public class ReactivePerson extends ReactivePanacheMongoEntity { - public String name; - public LocalDate birth; - public Status status; - - // return name as uppercase in the model - public String getName(){ - return name.toUpperCase(); - } - - // store all names in lowercase in the DB - public void setName(String name){ - this.name = name.toLowerCase(); - } -} ----- - -You will have access to the same functionalities of the _imperative_ variant inside the reactive one: bson annotations, custom ID, PanacheQL, ... -But the methods on your entities or repositories will all return reactive types. - -See the equivalent methods from the imperative example with the reactive variant: - -[source,java] ----- -// creating a person -ReactivePerson person = new ReactivePerson(); -person.name = "Loïc"; -person.birth = LocalDate.of(1910, Month.FEBRUARY, 1); -person.status = Status.Alive; - -// persist it: if you keep the default ObjectId ID field, it will be populated by the MongoDB driver, -// and accessible when uni1 will be resolved -Uni uni1 = person.persist(); - -person.status = Status.Dead; - -// Your must call update() in order to send your entity modifications to MongoDB -Uni uni2 = person.update(); - -// delete it -Uni uni3 = person.delete(); - -// getting a list of all persons -Uni> allPersons = ReactivePerson.listAll(); - -// finding a specific person by ID -// here we build a new ObjectId but you can also retrieve it from the existing entity after being persisted -ObjectId personId = new ObjectId(idAsString); -Uni personById = ReactivePerson.findById(personId); - -// finding a specific person by ID via an Optional -Uni> optional = ReactivePerson.findByIdOptional(personId); -personById = optional.map(o -> o.orElseThrow(() -> new NotFoundException())); - -// finding all living persons -Uni> livingPersons = ReactivePerson.list("status", Status.Alive); - -// counting all persons -Uni countAll = ReactivePerson.count(); - -// counting all living persons -Uni countAlive = ReactivePerson.count("status", Status.Alive); - -// delete all living persons -Uni deleteCount = ReactivePerson.delete("status", Status.Alive); - -// delete all persons -deleteCount = ReactivePerson.deleteAll(); - -// delete by id -Uni deleted = ReactivePerson.deleteById(personId); - -// set the name of all living persons to 'Mortal' -Uni updated = ReactivePerson.update("name", "Mortal").where("status", Status.Alive); ----- - -TIP: If you use MongoDB with Panache in conjunction with RESTEasy, you can directly return a reactive type inside your JAX-RS resource endpoint as long as you include the `quarkus-resteasy-mutiny` extension. - -The same query facility exists for the reactive types, but the `stream()` methods act differently: they return a `Multi` (which implement a reactive stream `Publisher`) instead of a `Stream`. - -It allows more advanced reactive use cases, for example, you can use it to send server-sent events (SSE) via RESTEasy: - -[source,java] ----- -import org.jboss.resteasy.annotations.SseElementType; -import org.reactivestreams.Publisher; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; - -@GET -@Path("/stream") -@Produces(MediaType.SERVER_SENT_EVENTS) -@SseElementType(MediaType.APPLICATION_JSON) -public Multi streamPersons() { - return ReactivePerson.streamAll(); -} ----- - -TIP: `@SseElementType(MediaType.APPLICATION_JSON)` tells RESTEasy to serialize the object in JSON. - -WARNING: Transactions are not supported for Reactive Entities and Repositories. - -== Mocking - -=== Using the active-record pattern - -If you are using the active-record pattern you cannot use Mockito directly as it does not support mocking static methods, -but you can use the `quarkus-panache-mock` module which allows you to use Mockito to mock all provided static -methods, including your own. - -Add this dependency to your `pom.xml`: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-panache-mock - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-panache-mock") ----- - -Given this simple entity: - -[source,java] ----- -public class Person extends PanacheMongoEntity { - - public String name; - - public static List findOrdered() { - return findAll(Sort.by("lastname", "firstname")).list(); - } -} ----- - -You can write your mocking test like this: - -[source,java] ----- -@QuarkusTest -public class PanacheFunctionalityTest { - - @Test - public void testPanacheMocking() { - PanacheMock.mock(Person.class); - - // Mocked classes always return a default value - Assertions.assertEquals(0, Person.count()); - - // Now let's specify the return value - Mockito.when(Person.count()).thenReturn(23L); - Assertions.assertEquals(23, Person.count()); - - // Now let's change the return value - Mockito.when(Person.count()).thenReturn(42L); - Assertions.assertEquals(42, Person.count()); - - // Now let's call the original method - Mockito.when(Person.count()).thenCallRealMethod(); - Assertions.assertEquals(0, Person.count()); - - // Check that we called it 4 times - PanacheMock.verify(Person.class, Mockito.times(4)).count();// <1> - - // Mock only with specific parameters - Person p = new Person(); - Mockito.when(Person.findById(12L)).thenReturn(p); - Assertions.assertSame(p, Person.findById(12L)); - Assertions.assertNull(Person.findById(42L)); - - // Mock throwing - Mockito.when(Person.findById(12L)).thenThrow(new WebApplicationException()); - Assertions.assertThrows(WebApplicationException.class, () -> Person.findById(12L)); - - // We can even mock your custom methods - Mockito.when(Person.findOrdered()).thenReturn(Collections.emptyList()); - Assertions.assertTrue(Person.findOrdered().isEmpty()); - - PanacheMock.verify(Person.class).findOrdered(); - PanacheMock.verify(Person.class, Mockito.atLeastOnce()).findById(Mockito.any()); - PanacheMock.verifyNoMoreInteractions(Person.class); - } -} ----- -<1> Be sure to call your `verify` methods on `PanacheMock` rather than `Mockito`, otherwise you won't know -what mock object to pass. - -=== Using the repository pattern - -If you are using the repository pattern you can use Mockito directly, using the `quarkus-junit5-mockito` module, -which makes mocking beans much easier: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-junit5-mockito - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-junit5-mockito") ----- - -Given this simple entity: - -[source,java] ----- -public class Person { - - @BsonId - public Long id; - - public String name; -} ----- - -And this repository: - -[source,java] ----- -@ApplicationScoped -public class PersonRepository implements PanacheMongoRepository { - public List findOrdered() { - return findAll(Sort.by("lastname", "firstname")).list(); - } -} ----- - -You can write your mocking test like this: - -[source,java] ----- -@QuarkusTest -public class PanacheFunctionalityTest { - @InjectMock - PersonRepository personRepository; - - @Test - public void testPanacheRepositoryMocking() throws Throwable { - // Mocked classes always return a default value - Assertions.assertEquals(0, personRepository.count()); - - // Now let's specify the return value - Mockito.when(personRepository.count()).thenReturn(23L); - Assertions.assertEquals(23, personRepository.count()); - - // Now let's change the return value - Mockito.when(personRepository.count()).thenReturn(42L); - Assertions.assertEquals(42, personRepository.count()); - - // Now let's call the original method - Mockito.when(personRepository.count()).thenCallRealMethod(); - Assertions.assertEquals(0, personRepository.count()); - - // Check that we called it 4 times - Mockito.verify(personRepository, Mockito.times(4)).count(); - - // Mock only with specific parameters - Person p = new Person(); - Mockito.when(personRepository.findById(12L)).thenReturn(p); - Assertions.assertSame(p, personRepository.findById(12L)); - Assertions.assertNull(personRepository.findById(42L)); - - // Mock throwing - Mockito.when(personRepository.findById(12L)).thenThrow(new WebApplicationException()); - Assertions.assertThrows(WebApplicationException.class, () -> personRepository.findById(12L)); - - Mockito.when(personRepository.findOrdered()).thenReturn(Collections.emptyList()); - Assertions.assertTrue(personRepository.findOrdered().isEmpty()); - - // We can even mock your custom methods - Mockito.verify(personRepository).findOrdered(); - Mockito.verify(personRepository, Mockito.atLeastOnce()).findById(Mockito.any()); - Mockito.verifyNoMoreInteractions(personRepository); - } -} ----- - - -== How and why we simplify MongoDB API - -When it comes to writing MongoDB entities, there are a number of annoying things that users have grown used to -reluctantly deal with, such as: - -- Duplicating ID logic: most entities need an ID, most people don't care how it's set, because it's not really -relevant to your model. -- Dumb getters and setters: since Java lacks support for properties in the language, we have to create fields, -then generate getters and setters for those fields, even if they don't actually do anything more than read/write -the fields. -- Traditional EE patterns advise to split entity definition (the model) from the operations you can do on them -(DAOs, Repositories), but really that requires an unnatural split between the state and its operations even though -we would never do something like that for regular objects in the Object Oriented architecture, where state and methods are in the same class. Moreover, this requires two classes per entity, and requires injection of the DAO or Repository where you need to do entity operations, which breaks your edit flow and requires you to get out of the code you're writing to set up an injection point before coming back to use it. -- MongoDB queries are super powerful, but overly verbose for common operations, requiring you to write queries even -when you don't need all the parts. -- MongoDB queries are JSON based, so you will need some String manipulation or using the `Document` type and it will need a lot of boilerplate code. - -With Panache, we took an opinionated approach to tackle all these problems: - -- Make your entities extend `PanacheMongoEntity`: it has an ID field that is auto-generated. If you require -a custom ID strategy, you can extend `PanacheMongoEntityBase` instead and handle the ID yourself. -- Use public fields. Get rid of dumb getter and setters. Under the hood, we will generate all getters and setters -that are missing, and rewrite every access to these fields to use the accessor methods. This way you can still -write _useful_ accessors when you need them, which will be used even though your entity users still use field accesses. -- With the active record pattern: put all your entity logic in static methods in your entity class and don't create DAOs. -Your entity superclass comes with lots of super useful static methods, and you can add your own in your entity class. -Users can just start using your entity `Person` by typing `Person.` and getting completion for all the operations in a single place. -- Don't write parts of the query that you don't need: write `Person.find("order by name")` or -`Person.find("name = ?1 and status = ?2", "Loïc", Status.Alive)` or even better `Person.find("name", "Loïc")`. - -That's all there is to it: with Panache, MongoDB has never looked so trim and neat. - -== Defining entities in external projects or jars - -MongoDB with Panache relies on compile-time bytecode enhancements to your entities. - -It attempts to identity archives with Panache entities (and consumers of Panache entities) -by the presence of the marker file `META-INF/panache-archive.marker`. Panache includes an -annotation processor that will automatically create this file in archives that depend on -Panache (even indirectly). If you have disabled annotation processors you may need to create -this file manually in some cases. diff --git a/_versions/2.7/guides/mongodb.adoc b/_versions/2.7/guides/mongodb.adoc deleted file mode 100644 index 84e9e8bb352..00000000000 --- a/_versions/2.7/guides/mongodb.adoc +++ /dev/null @@ -1,722 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using the MongoDB Client -include::./attributes.adoc[] - -MongoDB is a well known NoSQL Database that is widely used. - -In this guide, we see how you can get your REST services to use the MongoDB database. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* MongoDB installed or Docker installed - -== Architecture - -The application built in this guide is quite simple: the user can add elements in a list using a form and the list is updated. - -All the information between the browser and the server is formatted as JSON. - -The elements are stored in MongoDB. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `mongodb-quickstart` {quickstarts-tree-url}/mongodb-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: mongodb-quickstart -:create-app-extensions: resteasy-reactive-jackson,mongodb-client -include::includes/devtools/create-app.adoc[] - -This command generates a Maven structure importing the RESTEasy Reactive Jackson and MongoDB Client extensions. -After this, the `quarkus-mongodb-client` extension has been added to your build file. - -If you already have your Quarkus project configured, you can add the `mongodb-client` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: mongodb-client -include::includes/devtools/extension-add.adoc[] - -This will add the following to your `pom.xml`: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-mongodb-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-mongodb-client") ----- - -== Creating your first JSON REST service - -In this example, we will create an application to manage a list of fruits. - -First, let's create the `Fruit` bean as follows: - -[source,java] ----- -package org.acme.mongodb; - -import java.util.Objects; - -public class Fruit { - - private String name; - private String description; - private String id; - - public Fruit() { - } - - public Fruit(String name, String description) { - this.name = name; - this.description = description; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof Fruit)) { - return false; - } - - Fruit other = (Fruit) obj; - - return Objects.equals(other.name, this.name); - } - - @Override - public int hashCode() { - return Objects.hash(this.name); - } - - public void setId(String id) { - this.id = id; - } - - public String getId() { - return id; - } -} ----- - -Nothing fancy. One important thing to note is that having a default constructor is required by the JSON serialization layer. - -Now create a `org.acme.mongodb.FruitService` that will be the business layer of our application and store/load the fruits from the mongoDB database. - -[source,java] ----- -package org.acme.mongodb; - -import com.mongodb.client.MongoClient; -import com.mongodb.client.MongoCollection; -import com.mongodb.client.MongoCursor; -import org.bson.Document; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import java.util.ArrayList; -import java.util.List; - -@ApplicationScoped -public class FruitService { - - @Inject MongoClient mongoClient; - - public List list(){ - List list = new ArrayList<>(); - MongoCursor cursor = getCollection().find().iterator(); - - try { - while (cursor.hasNext()) { - Document document = cursor.next(); - Fruit fruit = new Fruit(); - fruit.setName(document.getString("name")); - fruit.setDescription(document.getString("description")); - list.add(fruit); - } - } finally { - cursor.close(); - } - return list; - } - - public void add(Fruit fruit){ - Document document = new Document() - .append("name", fruit.getName()) - .append("description", fruit.getDescription()); - getCollection().insertOne(document); - } - - private MongoCollection getCollection(){ - return mongoClient.getDatabase("fruit").getCollection("fruit"); - } -} ----- - -Now, create the `org.acme.mongodb.FruitResource` class as follows: - -[source,java] ----- -@Path("/fruits") -public class FruitResource { - - @Inject FruitService fruitService; - - @GET - public List list() { - return fruitService.list(); - } - - @POST - public List add(Fruit fruit) { - fruitService.add(fruit); - return list(); - } -} ----- - -The implementation is pretty straightforward and you just need to define your endpoints using the JAX-RS annotations and use the `FruitService` to list/add new fruits. - -== Configuring the MongoDB database -The main property to configure is the URL to access to MongoDB, almost all configuration can be included in the connection URI so we advise you to do so, you can find more information in the MongoDB documentation: https://docs.mongodb.com/manual/reference/connection-string/ - -A sample configuration should look like this: - -[source,properties] ----- -# configure the mongoDB client for a replica set of two nodes -quarkus.mongodb.connection-string = mongodb://mongo1:27017,mongo2:27017 ----- - -In this example, we are using a single instance running on localhost: - -[source,properties] ----- -# configure the mongoDB client for a single instance on localhost -quarkus.mongodb.connection-string = mongodb://localhost:27017 ----- - -If you need more configuration properties, there is a full list at the end of this guide. - -WARNING: By default Quarkus will restrict the use of JNDI within an application, as a precaution to try and mitigate any future vulnerabilities similar to log4shell. -Because the `mongo+srv` protocol often used to connect to MongoDB requires JNDI, this protection is automatically disabled when using the MongoDB client extension. - -[[dev-services]] -=== Dev Services (Configuration Free Databases) - -Quarkus supports a feature called Dev Services that allows you to create various datasources without any config. In the case of MongoDB this support extends to the default MongoDB connection. -What that means practically, is that if you have not configured `quarkus.mongodb.connection-string` Quarkus will automatically start a MongoDB container when running tests or dev-mode, -and automatically configure the connection. - -When running the production version of the application, the MongoDB connection need to be configured as normal, so if you want to include a production database config in your -`application.properties` and continue to use Dev Services we recommend that you use the `%prod.` profile to define your MongoDB settings. - -include::{generated-dir}/config/quarkus-mongodb-config-group-dev-services-build-time-config.adoc[opts=optional, leveloffset=+1] - -== Multiple MongoDB Clients - -MongoDB allows you to configure multiple clients. -Using several clients works the same way as having a single client. - -[source,properties] ----- -quarkus.mongodb.connection-string = mongodb://login:pass@mongo1:27017/database - -quarkus.mongodb.users.connection-string = mongodb://mongo2:27017/userdb -quarkus.mongodb.inventory.connection-string = mongodb://mongo3:27017/invdb,mongo4:27017/invdb ----- - -Notice there's an extra bit in the key (the `users` and `inventory` segments). -The syntax is as follows: `quarkus.mongodb.[optional name.][mongo connection property]`. -If the name is omitted, it configures the default client. - -[NOTE] -==== -The use of multiple MongoDB clients enables multi-tenancy for MongoDB by allowing to connect to multiple MongoDB clusters. + -If you want to connect to multiple databases inside the same cluster, -multiple clients are **not** necessary as a single client is able to access all databases in the same cluster -(like a JDBC connection is able to access to multiple schemas inside the same database). -==== - -=== Named Mongo client Injection - -When using multiple clients, each `MongoClient`, you can select the client to inject using the `io.quarkus.mongodb.MongoClientName` qualifier. -Using the above properties to configure three different clients, you can also inject each one as follows: - -[source,java,indent=0] ----- -@Inject -MongoClient defaultMongoClient; - -@Inject -@MongoClientName("users") -MongoClient mongoClient1; - -@Inject -@MongoClientName("inventory") -ReactiveMongoClient mongoClient2; ----- - -== Running a MongoDB Database -As by default, `MongoClient` is configured to access a local MongoDB database on port 27017 (the default MongoDB port), if you have a local running database on this port, there is nothing more to do before being able to test it! - -If you want to use Docker to run a MongoDB database, you can use the following command to launch one: -[source,bash] ----- -docker run -ti --rm -p 27017:27017 mongo:4.0 ----- - -[NOTE] -==== -If you use <>, launching the container manually is not necessary! -==== - - -== Creating a frontend - -Now let's add a simple web page to interact with our `FruitResource`. -Quarkus automatically serves static resources located under the `META-INF/resources` directory. -In the `src/main/resources/META-INF/resources` directory, add a `fruits.html` file with the content from this {quickstarts-blob-url}/mongodb-quickstart/src/main/resources/META-INF/resources/fruits.html[fruits.html] file in it. - -You can now interact with your REST service: - -:devtools-wrapped: - * start Quarkus with: -+ -include::includes/devtools/dev.adoc[] - * open a browser to `http://localhost:8080/fruits.html` - * add new fruits to the list via the form -:!devtools-wrapped: - -[[reactive]] -== Reactive MongoDB Client -A reactive MongoDB Client is included in Quarkus. -Using it is as easy as using the classic MongoDB Client. -You can rewrite the previous example to use it like the following. - -[NOTE] -.Deprecation -==== -The `io.quarkus.mongodb.ReactiveMongoClient` client is deprecated and will be removed in the future. -It is recommended to switch to the `io.quarkus.mongodb.reactive.ReactiveMongoClient` client providing the `Mutiny` API. -==== - -[TIP] -.Mutiny -==== -The MongoDB reactive client uses Mutiny reactive types. -If you are not familiar with Mutiny, check xref:mutiny-primer.adoc[Mutiny - an intuitive reactive programming library]. -==== - -[source,java] ----- -package org.acme.mongodb; - -import io.quarkus.mongodb.reactive.ReactiveMongoClient; -import io.quarkus.mongodb.reactive.ReactiveMongoCollection; -import io.smallrye.mutiny.Uni; -import org.bson.Document; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import java.util.List; - -@ApplicationScoped -public class ReactiveFruitService { - - @Inject - ReactiveMongoClient mongoClient; - - public Uni> list() { - return getCollection().find() - .map(doc -> { - Fruit fruit = new Fruit(); - fruit.setName(doc.getString("name")); - fruit.setDescription(doc.getString("description")); - return fruit; - }).collect().asList(); - } - - public Uni add(Fruit fruit) { - Document document = new Document() - .append("name", fruit.getName()) - .append("description", fruit.getDescription()); - return getCollection().insertOne(document) - .onItem().ignore().andContinueWithNull(); - } - - private ReactiveMongoCollection getCollection() { - return mongoClient.getDatabase("fruit").getCollection("fruit"); - } -} ----- - - -[source,java] ----- -package org.acme.mongodb; - -import io.smallrye.mutiny.Uni; - -import java.util.List; - -import javax.inject.Inject; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.core.MediaType; - -@Path("/reactive_fruits") -@Produces(MediaType.APPLICATION_JSON) -@Consumes(MediaType.APPLICATION_JSON) -public class ReactiveFruitResource { - - @Inject - ReactiveFruitService fruitService; - - @GET - public Uni> list() { - return fruitService.list(); - } - - @POST - public Uni> add(Fruit fruit) { - return fruitService.add(fruit) - .onItem().ignore().andSwitchTo(this::list); - } -} ----- - -== Simplifying MongoDB Client usage using BSON codec - -By using a Bson `Codec`, the MongoDB Client will take care of the transformation of your domain object to/from a MongoDB `Document` automatically. - -First you need to create a Bson `Codec` that will tell Bson how to transform your entity to/from a MongoDB `Document`. -Here we use a `CollectibleCodec` as our object is retrievable from the database (it has a MongoDB identifier), if not we would have used a `Codec` instead. -More information in the codec documentation: https://mongodb.github.io/mongo-java-driver/3.10/bson/codecs. - -[source,java] ----- -package org.acme.mongodb.codec; - -import com.mongodb.MongoClientSettings; -import org.acme.mongodb.Fruit; -import org.bson.Document; -import org.bson.BsonWriter; -import org.bson.BsonValue; -import org.bson.BsonReader; -import org.bson.BsonString; -import org.bson.codecs.Codec; -import org.bson.codecs.CollectibleCodec; -import org.bson.codecs.DecoderContext; -import org.bson.codecs.EncoderContext; - -import java.util.UUID; - -public class FruitCodec implements CollectibleCodec { - - private final Codec documentCodec; - - public FruitCodec() { - this.documentCodec = MongoClientSettings.getDefaultCodecRegistry().get(Document.class); - } - - @Override - public void encode(BsonWriter writer, Fruit fruit, EncoderContext encoderContext) { - Document doc = new Document(); - doc.put("name", fruit.getName()); - doc.put("description", fruit.getDescription()); - documentCodec.encode(writer, doc, encoderContext); - } - - @Override - public Class getEncoderClass() { - return Fruit.class; - } - - @Override - public Fruit generateIdIfAbsentFromDocument(Fruit document) { - if (!documentHasId(document)) { - document.setId(UUID.randomUUID().toString()); - } - return document; - } - - @Override - public boolean documentHasId(Fruit document) { - return document.getId() != null; - } - - @Override - public BsonValue getDocumentId(Fruit document) { - return new BsonString(document.getId()); - } - - @Override - public Fruit decode(BsonReader reader, DecoderContext decoderContext) { - Document document = documentCodec.decode(reader, decoderContext); - Fruit fruit = new Fruit(); - if (document.getString("id") != null) { - fruit.setId(document.getString("id")); - } - fruit.setName(document.getString("name")); - fruit.setDescription(document.getString("description")); - return fruit; - } -} ----- - - -Then you need to create a `CodecProvider` to link this `Codec` to the `Fruit` class. - -[source,java] ----- -package org.acme.mongodb.codec; - -import org.acme.mongodb.Fruit; -import org.bson.codecs.Codec; -import org.bson.codecs.configuration.CodecProvider; -import org.bson.codecs.configuration.CodecRegistry; - -public class FruitCodecProvider implements CodecProvider { - @Override - public Codec get(Class clazz, CodecRegistry registry) { - if (clazz.equals(Fruit.class)) { - return (Codec) new FruitCodec(); - } - return null; - } - -} ----- - -Quarkus takes care of registering the `CodecProvider` for you as a CDI bean of `@Singleton` scope. - -Finally, when getting the `MongoCollection` from the database you can use directly the `Fruit` class instead of the `Document` one, the codec will automatically map the `Document` to/from your `Fruit` class. - -Here is an example of using a `MongoCollection` with the `FruitCodec`. - -[source,java] ----- -package org.acme.mongodb; - -import com.mongodb.client.MongoClient; -import com.mongodb.client.MongoCollection; -import com.mongodb.client.MongoCursor; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import java.util.ArrayList; -import java.util.List; - -@ApplicationScoped -public class CodecFruitService { - - @Inject MongoClient mongoClient; - - public List list(){ - List list = new ArrayList<>(); - MongoCursor cursor = getCollection().find().iterator(); - - try { - while (cursor.hasNext()) { - list.add(cursor.next()); - } - } finally { - cursor.close(); - } - return list; - } - - public void add(Fruit fruit){ - getCollection().insertOne(fruit); - } - - private MongoCollection getCollection(){ - return mongoClient.getDatabase("fruit").getCollection("fruit", Fruit.class); - } -} ----- - -== The POJO Codec - -The link:http://mongodb.github.io/mongo-java-driver/3.12/bson/pojos[POJO Codec] provides a set of annotations that enable the customization of -the way a POJO is mapped to a MongoDB collection and this codec is initialized automatically by Quarkus - -One of these annotations is the `@BsonDiscriminator` annotation that allows to storage multiple Java types in a single MongoDB collection by adding -a discriminator field inside the document. It can be useful when working with abstract types or interfaces. - -Quarkus will automatically register all the classes annotated with `@BsonDiscriminator` with the POJO codec. - -The POJO Codec have enhanced generic support via `PropertyCodecProvider`, -Quarkus will automatically register any `PropertyCodecProvider` with the POJO Codec (these classes are automatically made CDI beans of `@Singleton` scope). -When building native executables and using generic types, you might need to register the type arguments for reflection. - -== Simplifying MongoDB with Panache - -The xref:mongodb-panache.adoc[MongoDB with Panache] extension facilitates the usage of MongoDB by providing active record style entities (and repositories) like you have in xref:hibernate-orm-panache.adoc[Hibernate ORM with Panache] and focuses on making your entities trivial and fun to write in Quarkus. - -== Connection Health Check - -If you are using the `quarkus-smallrye-health` extension, `quarkus-mongodb-client` will automatically add a readiness health check -to validate the connection to the cluster. - -So when you access the `/q/health/ready` endpoint of your application you will have information about the connection validation status. - -This behavior can be disabled by setting the `quarkus.mongodb.health.enabled` property to `false` in your `application.properties`. - -== Metrics - -If you are using the `quarkus-micrometer` or `quarkus-smallrye-metrics` extension, `quarkus-mongodb-client` can provide metrics about the connection pools. -This behavior must first be enabled by setting the `quarkus.mongodb.metrics.enabled` property to `true` in your `application.properties`. - -So when you access the `/q/metrics` endpoint of your application you will have information about the connection pool status. -When using xref:smallrye-metrics.adoc[SmallRye Metrics], connection pool metrics will be available under the `vendor` scope. - -== Tracing - -If you are using the `quarkus-smallrye-opentracing` extension, `quarkus-mongodb-client` can register traces about the commands executed. -This behavior must be enabled by setting the `quarkus.mongodb.tracing.enabled` property to `true` in your `application.properties` and adding the dependency `io.opentracing.contrib:opentracing-mongo-common` to your pom.xml (for more info read the xref:opentracing.adoc#mongodb-client[OpenTracing - MongoDB client] section). - -Read the xref:opentracing.adoc[OpenTracing] guide, for how to configure OpenTracing and how to use the Jaeger tracer. - -== Testing helpers - -To start a MongoDB database for your unit tests, Quarkus provides two `QuarkusTestResourceLifecycleManager` that relies on link:https://github.com/flapdoodle-oss/de.flapdoodle.embed.mongo[Flapdoodle embedded MongoDB]. - -- `io.quarkus.test.mongodb.MongoTestResource` will start a single instance on port 27017. -- `io.quarkus.test.mongodb.MongoReplicaSetTestResource` will start a replicaset with two instances, one on port 27017 and the other on port 27018. - -To use them, you need to add the `io.quarkus:quarkus-test-mongodb` dependency to your pom.xml. - -For more information about the usage of a `QuarkusTestResourceLifecycleManager` please read xref:getting-started-testing.adoc#quarkus-test-resource[Quarkus test resource]. - -== The legacy client - -We don't include the legacy MongoDB client by default. It contains the now retired MongoDB Java API (DB, DBCollection,... ) -and the `com.mongodb.MongoClient` that is now superseded by `com.mongodb.client.MongoClient`. - -If you want to use the legacy API, you need to add the following dependency to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.mongodb - mongodb-driver-legacy - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.mongodb:mongodb-driver-legacy") ----- - -== Building a native executable - -You can use the MongoDB client in a native executable. - -If you want to use SSL/TLS encryption, you need to add these properties in your `application.properties`: - -[source,properties] ----- -quarkus.mongodb.tls=true -quarkus.mongodb.tls-insecure=true # only if TLS certificate cannot be validated ----- - -You can then build a native executable with the usual command: - -include::includes/devtools/build-native.adoc[] - -Running it is as simple as executing `./target/mongodb-quickstart-1.0.0-SNAPSHOT-runner`. - -You can then point your browser to `http://localhost:8080/fruits.html` and use your application. - -[WARNING] -==== -Currently, Quarkus doesn't support link:https://docs.mongodb.com/manual/core/security-client-side-encryption/[Client-Side Field Level Encryption] in native mode. -==== - -[TIP] -==== -If you encounter the following error when running your application in native mode: + -`Failed to encode 'MyObject'. Encoding 'myVariable' errored with: Can't find a codec for class org.acme.MyVariable.` + -This means that the `org.acme.MyVariable` class is not known to GraalVM, the remedy is to add the `@RegisterForReflection` annotation to your `MyVariable class`. -More details about the `@RegisterForReflection` annotation can be found on the xref:writing-native-applications-tips.adoc#registerForReflection[native application tips] page. -==== - -== Using mongo+srv:// urls - -`mongo+srv://` urls are supported out of the box in JVM mode. -However, in native, the default DNS resolver, provided by the MongoDB client, uses JNDI and does not work in native mode. - -If you need to use `mongo+srv://` in native mode, you can configure an alternative DNS resolver. -This feature is **experimental** and may introduce a difference between JVM applications and native applications. - -To enable the alternative DNS resolver, use: - -[source, properties] ----- -quarkus.mongodb.native.dns.use-vertx-dns-resolver=true ----- - -As indicated in the property name, it uses Vert.x to retrieve the DNS records. -By default, it tries to read the first `nameserver` from `/etc/resolv.conf`, if this file exists. -You can also configure your DNS server: - -[source,properties] ----- -quarkus.mongodb.native.dns.use-vertx-dns-resolver=true -quarkus.mongodb.native.dns.server-host=10.0.0.1 -quarkus.mongodb.native.dns.server-port=53 # 53 is the default port ----- - -Also, you can configure the lookup timeout using: - -[source,properties] ----- -quarkus.mongodb.native.dns.use-vertx-dns-resolver=true -quarkus.mongodb.native.dns.lookup-timeout=10s # the default is 5s ----- - -== Configuration Reference - -include::{generated-dir}/config/quarkus-mongodb.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/mutiny-primer.adoc b/_versions/2.7/guides/mutiny-primer.adoc deleted file mode 100644 index 95428db3488..00000000000 --- a/_versions/2.7/guides/mutiny-primer.adoc +++ /dev/null @@ -1,340 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Mutiny - Async for bare mortal - -include::./attributes.adoc[] - -https://smallrye.io/smallrye-mutiny[Mutiny] is an intuitive, reactive programming library. -It is the primary model to write reactive applications with Quarkus. - -== An event-driven reactive programming API - -Mutiny is very different from the other reactive programming libraries. -It takes a different approach to design your program. -With Mutiny everything is event-driven: you receive events, and you react to them. -This event-driven aspect embraces the asynchronous nature of distributed systems and provides an elegant and precise way to express continuation. - -Mutiny offers two types that are both event-driven and lazy: - -* A `Uni` emits a single event (an item or a failure). -Unis are convenient to represent asynchronous actions that return 0 or 1 result. -A good example is the result of sending a message to a message broker queue. -* A `Multi` emits multiple events (n items, 1 failure or 1 completion). -Multis can represent streams of items, potentially unbounded. -A good example is receiving messages from a message broker queue. - -These two types allow representing any type of interactions. -They are event sources. -You observe them (_subscription_) and you get notified when they emit an item, a failure, or, in the case of a bounded Multi, a completion event. -When you (the subscriber) receive the event, you can process it (e.g., transform it, filter it). -With Mutiny, you are going to write code like _onX().action()_, which reads as “on item X do action”. - -If you want to know more about Mutiny, and the concepts behind it, check https://smallrye.io/smallrye-mutiny/pages/philosophy[the Mutiny Philosophy]. - -== Mutiny in Quarkus - -Mutiny is the primary API when dealing with the reactive features from Quarkus. -It means that most extensions support Mutiny either by exposing an API returning Unis and Multis (such as reactive data sources or rest clients) or understanding when your methods return a Uni or a Multi (such as RESTEasy Reactive or Reactive Messaging). - -These integrations make Mutiny a prominent and cohesive model for every reactive application developed with Quarkus. -In addition, Mutiny architecture allows fine-grain dead-code elimination which improves the memory usage when compiled to native (such as with Quarkus native mode or GraalVM native image compiler). - -== Why another reactive programming API? - -Seasoned reactive developers may wonder why Quarkus introduced yet another reactive programming APIs while there are existing ones. -Mutiny is taking a very different angle: - -**Event-Driven** - -Mutiny places events at the core of its design. -With Mutiny, you observe events, react to them, and create elegant and readable processing pipelines. -A Ph.D. in functional programming is not required. - -**Navigable** - Even with intelligent code completion, classes with hundreds of methods are confusing. -Mutiny provides a navigable and explicit API driving you towards the operator you need. - -**Non-Blocking I/O** - Mutiny is the perfect companion to tame the asynchronous nature of applications with non-blocking I/O (which powers xref:quarkus-reactive-architecture.adoc[Quarkus]). -Declaratively compose operations, transform data, enforce progress, recover from failures, and more. - -**Made for an asynchronous world** - Mutiny can be used in any asynchronous application such as event-driven microservices, message-based applications, network utilities, data stream processing, and of course... reactive applications! - -**Reactive Streams and Converters Built-In** - Mutiny is based on the https://www.reactive-streams.org/[Reactive Streams] specification, and so it can be integrated with any other reactive programming library. -In addition, it proposes converters to interact with other popular libraries. - -== Mutiny and the I/O Threads - -Quarkus is powered by a xref:quarkus-reactive-architecture.adoc#engine[reactive engine], and when developing a reactive application, your code is executed on one of the few I/O threads. -Remember, you must never block these threads, and the model would collapse if you do. -So, you can't use blocking I/O. -Instead, you need to schedule the I/O operation and pass a continuation. - -image::reactive-thread.png[alt=Reactive Execution Model and I/O Threads,width=50%, align=center] - -The Mutiny event-driven paradigm is tailored for this. -When the I/O operation completes successfully, the Uni that represents it emits an item event. -When it fails, it emits a failure event. -The continuation is simply and naturally expressed using the event-driven API. - -== Mutiny through Examples - -Many Quarkus extensions expose Mutiny APIs. In this section, we use the MongoDB extension to illustrate how to use Mutiny. - -Let's imagine a simple structure representing an element from the https://en.wikipedia.org/wiki/Periodic_table[periodic table]: - -[source, java] ----- -public class Element { - - public String name; - public String symbol; - public int position; - - public Element(String name, String symbol, int position) { - this.name = name; - this.symbol = symbol; - this.position = position; - } - - public Element() { - // Use by JSON mappers - } -} ----- - -This structure contains the name, symbol, and position of the element. -To retrieve and store elements into a Mongo collection, you can use the following code: - -[source, java] ----- -@ApplicationScoped -public class ElementService { - - final ReactiveMongoCollection collection; - - @Inject - ElementService(ReactiveMongoClient client) { - collection = client.getDatabase("quarkus") - .getCollection("elements", Element.class); - } - - public void add(Element element) { - Uni insertion = collection.insertOne(element); - insertion - .onItem().transform(r -> r.getInsertedId().asString()) - .subscribe().with( - result -> System.out.println("inserted " + result), - failure -> System.out.println("D'oh" + failure)); - } - - public void getAll() { - collection.find() - .subscribe().with( - element -> System.out.println("Element: " + element), - failure -> System.out.println("D'oh! " + failure), - () -> System.out.println("No more elements") - ); - } - -} ----- - -First, the Mongo client is injected. -Note that it uses the reactive variant (`io.quarkus.mongodb.reactive.ReactiveMongoClient`). -In the initialize method, we retrieve and store the collection in which elements will be inserted. - -The `add` method inserts an element in the collection. -It receives the element as a parameter and uses the reactive API of the collection. -Interacting with the database involves I/Os. -The reactive principles forbid blocking while waiting for the interaction to complete. -Instead, we schedule the operation and pass a continuation. -The `insertOne` method returns a Uni, i.e., an asynchronous operation. -That's the scheduled I/O. We now need to express the continuation, which is done using the `.onItem()` method. -`.onItem()` allows configuring what needs to happen when the observed Uni emits an item, in our case when the scheduled I/Os completes. -In this example, we extract the inserted document id. -The final step is the subscription. -Without it, nothing would ever happen. Subscribing triggers the operation. -The subscription method can also define handlers: the `id` value on success, or a failure when the insertion fails. - -Let's now look at the second method. -It retrieves all the stored elements. -In this case, it returns multiple items (one per stored element), so we are using a `Multi`. -As for the insertion, getting the stored elements involves I/Os. -The `find` is our operation. -As for Uni, you need to subscribe to trigger the operation. -The subscriber receives item events, a failure event, or a completion event when all the elements have been received. - -Subscribing to a Uni or a Multi is essential, as without it, the operation is never executed. -In Quarkus some extensions deal with the subscription for you. -For example, in RESTEasy Reactive your HTTP methods can return a Uni or a Multi, and RESTEasy Reactive handles the subscription. - -== Mutiny Patterns - -The example from the last section was simplistic on purpose. -Let's have a look at a few common patterns. - -=== Observing events - -You can observe the various kind of events using: - -`on{event}().invoke(ev -> System.out.println(ev));` - -For example, for items use: -`onItem().invoke(item -> ...);` - -For failure, use: -`onFailure().invoke(failure -> ...)` - -The `invoke` method is synchronous. -Sometimes you need to execute an asynchronous action. -In this case use `call`, as in: `onItem().call(item -> someAsyncAction(item))`. -Note that `call` does not change the item, it just calls an asynchronous action, and when this one completes, it emits the original item downstream. - -=== Transforming item - -The first instrumental pattern consists of transforming the item events you receive. -As we have seen in the previous section, it could indicate the successful insertion, or the elements stored in the database. - -Transforming an item is done using: `onItem().transform(item -> ....)`. - -More details about transformation can be found in the https://smallrye.io/smallrye-mutiny/getting-started/transforming-items[Mutiny documentation]. - -=== Sequential composition - -Sequential composition allows chaining dependent asynchronous operations. This is achieved using `onItem().transformToUni(item -> ...)`. -Unlike `transform`, the function passed to `transformToUni` returns a Uni. - -[source, java] ----- -Uni uni1 = … -uni1 -.onItem().transformtoUni(item -> anotherAsynchronousAction(item)); ----- - -More details about asynchronous transformation can be found in the https://smallrye.io/smallrye-mutiny/getting-started/transforming-items-async[Mutiny documentation]. - -=== Failure handling - -So far we only handle the item events, but handling failure is essential. You can handle failures using `onFailure()`. - -For example, you can recover with a fallback item using `onFailure().recoverWithItem(fallback)`: - -[source, java] ----- -Uni uni1 = … -uni1 -.onFailure().recoverWithItem(“my fallback value”); ----- - -You can also retry the operation such as in: - -[source, java] ----- -Uni uni1 = … -uni1 -.onFailure().retry().atMost(5); ----- - -More info about failure recovery can be found on https://smallrye.io/smallrye-mutiny/getting-started/handling-failures[the handling failure documentation] and https://smallrye.io/smallrye-mutiny/getting-started/retry[the retry documentation]. - -== Events and Actions - -The following tables list the events that you can receive for Uni and Multi. Each of them is associated with its own group (onX). The second table lists the classic action you can do upon an event. Note that some groups offer more possibilities. - - - -|=== -| |Events from the upstream |Events from the downstream - -|Uni -|Subscription (1), Item (0..1), failure (0..1) -|Cancellation - -|Multi -|Subscription (1), Item (0..n), failure (0..1), completion (0..1) -|Cancellation, Request -|=== - -Check the full list of events on https://smallrye.io/smallrye-mutiny/getting-started/observing-events[the event documentation]. - -|=== -| Action |API |Comment - -|transform | `onItem().transform(Function function);` | Transform the event into another event using a synchronous function. -The downstream receives the result of the function (or a failure if the transformation failed). -|transformToUni | `onItem().transformToUni(Function> function);` | Transform the event into another event using an asynchronous function. The downstream receives the item emitted by the produced Uni (or a failure if the transformation failed). If the produced Uni emits a failure, that failure is passed to the downstream. -|invoke | `onItem().invoke(Consumer consumer)` | Invokes the synchronous consumer. This is particularly convenient to execute side-effects actions. The downstream receives the original event, or a failure if the consumer throws an exception -| call | `onItem().call(Function>)` | Invokes the asynchronous function. This is particularly convenient to execute asynchronous side-effect actions.The downstream receives the original event, or a failure if the consumer throws an exception or if the produced Uni emits a failure. -| fail | `onItem().failWith(Function)` | Emits a failure when it receives the event. -| complete (Multi only) | `onItem().complete()` | Emits the completion event when it receives the event. -|=== - -=== Other patterns - -Mutiny provides lots of other features. -Head over to the https://smallrye.io/smallrye-mutiny[Mutiny documentation] to see many more examples, including the whole list of events and how to handle them. - -Some frequently asked guides are the following: - -1. merge vs. concatenation - https://smallrye.io/smallrye-mutiny/guides/merge-concat -2. controlling the emission thread - https://smallrye.io/smallrye-mutiny/guides/emit-subscription -3. explicit blocking - https://smallrye.io/smallrye-mutiny/guides/imperative-to-reactive - -== Shortcuts - -When using Uni, having to write `onItem()` can be cumbersome. -Fortunately, Mutiny provides a set of shortcut to make your code more concise: - - -|=== -|Shortcut |Equivalent - -| uni.map(x → y) | uni.onItem().transform(x → y) -| uni.flatMap(x → uni2) | uni.onItem().transformToUni(x → uni2) -| uni.chain(x → uni2) | uni.onItem().transformToUni(x → uni2) -| uni.then(() → uni2) | uni.onItem().transformToUni(ignored → uni2) -| uni.invoke(x → System.out.println(x)) | uni.onItem().invoke(x → System.out.println(x)) -| uni.call(x → uni2) | uni.onItem().call(x → uni2) -| uni.eventually(() → System.out.println("eventually")) | uni.onItemOrFailure().invoke((ignoredItem, ignoredException) → System.out.println("eventually")) -| uni.eventually(() → uni2) | uni.onItemOrFailure().call((ignoredItem, ignoredException) → uni2) -|=== - -== Reactive Streams - -Mutiny uses https://www.reactive-streams.org/[Reactive Streams]. -`Multi` implements `Publisher` and enforces the back-pressure protocol. -Emissions are constrained by the request emitted from the downstream subscribers. -Thus, it does not overload the subscribers. -Note that in some cases, you can’t follow this protocol (because the Multi emits events that can’t be controlled, such as time, or measures sensors). -In this case, Mutiny provides a way to control the overflow using `onOverflow()`. - -`Uni` does not implement Reactive Streams `Publisher`. -A `Uni` can only emit one event, so subscribing to the `Uni` is enough to express your intent to use the result and does not need the request protocol ceremony. - -== Mutiny and Vert.x - -Vert.x is a toolkit to build reactive applications and systems. -It provides a huge ecosystem of libraries following the reactive principles (i.e., non-blocking and asynchronous). -Vert.x is an essential part of Quarkus, as it provides its reactive capabilities. - -In addition, the whole Vert.x API can be used with Quarkus. -To provide a cohesive experience, the Vert.x API is also available using a Mutiny variant, i.e., returns Uni and Multi. - -More details about this API can be found on: https://quarkus.io/blog/mutiny-vertx/. - -== Mutiny Integration in Quarkus - -The integration of Mutiny in Quarkus goes beyond just the library. -Mutiny exposes hooks that allow Quarkus and Mutiny to be closely integrated: - -* Calling `await` or `toIterable` would fail if you are running on an I/O thread, preventing blocking the I/O thread; -* The `log()` operator use the Quarkus logger; -* The default Mutiny thread pool is the Quarkus worker thread pool; -* Context Propagation is enabled by default when using Mutiny Uni and Multi - -More details about the infrastructure integration can be found on https://smallrye.io/smallrye-mutiny/guides/infrastructure. - - - - diff --git a/_versions/2.7/guides/native-and-ssl.adoc b/_versions/2.7/guides/native-and-ssl.adoc deleted file mode 100644 index 8410b64e85e..00000000000 --- a/_versions/2.7/guides/native-and-ssl.adoc +++ /dev/null @@ -1,264 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using SSL With Native Executables - -include::./attributes.adoc[] -:devtools-no-gradle: - -We are quickly moving to an SSL-everywhere world so being able to use SSL is crucial. - -In this guide, we will discuss how you can get your native executables to support SSL, -as native executables don't support it out of the box. - -NOTE: If you don't plan on using native executables, you can pass your way as in JDK mode, SSL is supported without further manipulations. - -== Prerequisites - -To complete this guide, you need: - -* less than 20 minutes -* an IDE -* GraalVM (Java 11) installed with `JAVA_HOME` and `GRAALVM_HOME` configured appropriately -* Apache Maven {maven-version} - -This guide is based on the REST client guide so you should get this Maven project first. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The project is located in the `rest-client-quickstart` {quickstarts-tree-url}/rest-client-quickstart[directory]. - -== Looks like it works out of the box?!? - -If you open the application's configuration file (`src/main/resources/application.properties`), you can see the following line: - -[source,properties] ----- -quarkus.rest-client."org.acme.rest.client.ExtensionsService".url=https://stage.code.quarkus.io/api ----- -which configures our REST client to connect to an SSL REST service. - -For the purposes of this guide, we also need to remove the configuration that starts the embedded WireMock server that stubs REST client responses so the tests actually propagate calls to the https://stage.code.quarkus.io/api. Update the test file `src/test/java/org/acme/rest/client/ExtensionsResourceTest.java` and remove the line: -[source,java] ----- -@QuarkusTestResource(WireMockExtensions.class) ----- -from the `ExtensionsResourceTest` class. - -Now let's build the application as a native executable and run the tests: - -include::includes/devtools/build-native.adoc[] - -And we obtain the following result: - -[source] ----- -[INFO] ------------------------------------------------------------------------ -[INFO] BUILD SUCCESS -[INFO] ------------------------------------------------------------------------ ----- - -So, yes, it appears it works out of the box and this guide is pretty useless. - -It's not. The magic happens when building the native executable: - -[source] ----- -[INFO] [io.quarkus.creator.phase.nativeimage.NativeImagePhase] /opt/graalvm/bin/native-image -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager -J-Dcom.sun.xml.internal.bind.v2.bytecode.ClassTailor.noOptimize=true -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy$BySpaceAndTime -jar rest-client-1.0.0-SNAPSHOT-runner.jar -J-Djava.util.concurrent.ForkJoinPool.common.parallelism=1 -H:+PrintAnalysisCallTree -H:EnableURLProtocols=http,https -H:-SpawnIsolates -H:+JNI --no-server -H:-UseServiceLoaderFeature -H:+StackTrace ----- - -The important elements are these 2 options that were automatically added by Quarkus: - -[source,bash] ----- --H:EnableURLProtocols=http,https -H:+JNI ----- - -They enable the native SSL support for your native executable. -But you should not set them manually, we have a nice configuration property for this purpose as described below. - -As SSL is de facto the standard nowadays, we decided to enable its support automatically for some of our extensions: - - * the Agroal connection pooling extension (`quarkus-agroal`), - * the Amazon Services extension (`quarkus-amazon-*`), - * the Consul Config extension (`quarkus-config-consul`), - * the Elasticsearch client extensions (`quarkus-elasticsearch-rest-client` and `quarkus-elasticsearch-rest-high-level-client`) and thus the Hibernate Search Elasticsearch extension (`quarkus-hibernate-search-orm-elasticsearch`), - * the Elytron Security OAuth2 extension (`quarkus-elytron-security-oauth2`), - * the gRPC extension (`quarkus-grpc`), - * the Infinispan Client extension (`quarkus-infinispan-client`). - * the Jaeger extension (`quarkus-jaeger`), - * the JGit extension (`quarkus-jgit`), - * the JSch extension (`quarkus-jsch`), - * the Kafka Client extension (`quarkus-kafka-client`), if Apicurio Registry 2.x Avro library is used - * the Keycloak Authorization extension (`quarkus-keycloak-authorization`), - * the Kubernetes client extension (`quarkus-kubernetes-client`), - * the Logging Sentry extension (`quarkus-logging-sentry`), - * the Mailer extension (`quarkus-mailer`), - * the MongoDB client extension (`quarkus-mongodb-client`), - * the Neo4j extension (`quarkus-neo4j`), - * the OIDC and OIDC client extensions (`quarkus-oidc` and `quarkus-oidc-client`), - * the Reactive client for IBM DB2 extension (`quarkus-reactive-db2-client`), - * the Reactive client for PostgreSQL extension (`quarkus-reactive-pg-client`), - * the Reactive client for MySQL extension (`quarkus-reactive-mysql-client`), - * the Reactive client for Microsoft SQL Server extension (`quarkus-reactive-mssql-client`), - * the Redis client extension (`quarkus-redis-client`), - * the REST Client extension (`quarkus-rest-client`), - * the REST Client Reactive extension (`quarkus-rest-client-reactive`), - * the Spring Cloud Config client extension (`quarkus-spring-cloud-config-client`), - * the Vault extension (`quarkus-vault`), - * the Cassandra client extensions (`cassandra-quarkus-client`) - -As long as you have one of these extensions in your project, the SSL support will be enabled by default. - -If you are not using any of them and you want to enable SSL support anyway, please add the following to your configuration: - -[source,properties] ----- -quarkus.ssl.native=true ----- - -Now, let's just check the size of our native executable as it will be useful later: - -[source,shell] ----- -$ ls -lh target/rest-client-quickstart-1.0.0-SNAPSHOT-runner --rwxrwxr-x. 1 gandrian gandrian 46M Jun 11 13:01 target/rest-client-quickstart-1.0.0-SNAPSHOT-runner ----- - -== Let's disable SSL and see how it goes - -Quarkus has an option to disable the SSL support entirely. -Why? Because it comes at a certain cost. -So if you are sure you don't need it, you can disable it entirely. - -First, let's disable it without changing the REST service URL and see how it goes. - -Open `src/main/resources/application.properties` and add the following line: - -[source,properties] ----- -quarkus.ssl.native=false ----- - -And let's try to build again: - -include::includes/devtools/build-native.adoc[] - -The native executable tests will fail with the following error: - -[source] ----- -Caused by: java.net.MalformedURLException: Accessing an URL protocol that was not enabled. The URL protocol https is supported but not enabled by default. It must be enabled by adding the --enable-url-protocols=https option to the native-image command.. ----- - -This error is the one you obtain when trying to use SSL while it was not explicitly enabled in your native executable. - -Now, let's change the REST service URL to **not** use SSL in `src/main/resources/application.properties`: - -[source,properties] ----- -quarkus.rest-client."org.acme.rest.client.ExtensionsService".url=http://stage.code.quarkus.io/api ----- -and since http://stage.code.quarkus.io/api responds with 302 status code we need to also skip the tests with `-DskipTests`. - -Now we can build again: - -:build-additional-parameters: -DskipTests -include::includes/devtools/build-native.adoc[] -:!build-additional-parameters: - -If you check carefully the native executable build options, you can see that the SSL related options are gone: - -[source] ----- -[INFO] [io.quarkus.creator.phase.nativeimage.NativeImagePhase] /opt/graalvm/bin/native-image -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager -J-Dcom.sun.xml.internal.bind.v2.bytecode.ClassTailor.noOptimize=true -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy$BySpaceAndTime -jar rest-client-1.0.0-SNAPSHOT-runner.jar -J-Djava.util.concurrent.ForkJoinPool.common.parallelism=1 -H:+PrintAnalysisCallTree -H:EnableURLProtocols=http -H:-SpawnIsolates -H:+JNI --no-server -H:-UseServiceLoaderFeature -H:+StackTrace ----- - -And we end up with: - -[source] ----- -[INFO] ------------------------------------------------------------------------ -[INFO] BUILD SUCCESS -[INFO] ------------------------------------------------------------------------ ----- - -You remember we checked the size of the native executable with SSL enabled? -Let's check again with SSL support entirely disabled: - -[source,shell] ----- -$ ls -lh target/rest-client-quickstart-1.0.0-SNAPSHOT-runner --rwxrwxr-x. 1 gandrian gandrian 35M Jun 11 13:06 target/rest-client-quickstart-1.0.0-SNAPSHOT-runner ----- - -Yes, it is now **35 MB** whereas it used to be **46 MB**. SSL comes with a 11 MB overhead in native executable size. - -And there's more to it. - -== Let's start again with a clean slate - -Let's revert the changes we made to the configuration file and go back to SSL with the following command: - -[source,bash] ----- -git checkout -- src/main/resources/application.properties ----- - -And let's build the native executable again: - -include::includes/devtools/build-native.adoc[] - -[#the-truststore-path] -== The TrustStore path - -[WARNING] -==== -This behavior is new to GraalVM 21.3+. -==== - -GraalVM supports both build time and runtime certificate configuration. - -=== Build time configuration - -The build time approach favors the principle of "immutable security" where the appropriate certificates are added at build time, and can never be changed afterward. -This guarantees that the list of valid certificates cannot be tampered with when the application gets deployed in production. - -However, this comes with a few drawbacks: - - * If you use the same executable in all environments, and a certificate expires, the application needs to be rebuilt, and redeployed into production with the new certificate, which is an inconvenience. - * Even worse, if a certificate gets revoked because of a security breach, all applications that embed this certificate need to be rebuilt and redeployed in a timely manner. - * This requires also to add into the application all certificates for all environments (e.g. DEV, TEST, PROD), which means that a certificate that is required for DEV but should not be used elsewhere, will make its way anyway in production. - * Providing all certificates at build time complicates the CI, specifically in dynamic environments such as Kubernetes where valid certificates are provided by the platform in the `/var/run/secrets/kubernetes.io/serviceaccount/ca.crt` PEM file. - * Lastly, this does not play well with third party software that do not provide a dedicated build for each customer environment. - -Creating a native executable using build time certificates essentially means that the root certificates are fixed at image build time, based on the certificate configuration used at build time (which for Quarkus means when you perform a build having `quarkus.package.type=native` set). -This avoids shipping a `cacerts` file or requiring a system property be set in order to set up root certificates that are provided by the OS where the binary runs. - -In this situation, system properties such as `javax.net.ssl.trustStore` do not have an effect at -run time, so when the defaults need to be changed, these system properties must be provided at image build time. -The easiest way to do so is by setting `quarkus.native.additional-build-args`. For example: - -[source,bash] ----- -quarkus.native.additional-build-args=-J-Djavax.net.ssl.trustStore=/tmp/mycerts,-J-Djavax.net.ssl.trustStorePassword=changeit ----- - -will ensure that the certificates of `/tmp/mycerts` are baked into the native binary and used *in addition* to the default cacerts. -The file containing the custom TrustStore does *not* (and probably should not) have to be present at runtime as its content has been baked into the native binary. - -=== Run time configuration - -Using the runtime certificate configuration, supported by GraalVM since 21.3 does not require any special or additional configuration compared to regular java programs or Quarkus in jvm mode. See the https://www.graalvm.org/reference-manual/native-image/CertificateManagement/#run-time-options[GraalVM documentation] for more information. - -[#working-with-containers] -=== Working with containers - -No special action needs to be taken when running the native binary in a container. If the native binary was properly built with the custom TrustStore -as described in the previous section, it will work properly in container as well. - -== Conclusion - -We make building native executable using SSL easy, and provide several options to cope well with different types of security requirements. diff --git a/_versions/2.7/guides/native-reference.adoc b/_versions/2.7/guides/native-reference.adoc deleted file mode 100644 index e8d0fdb7f4d..00000000000 --- a/_versions/2.7/guides/native-reference.adoc +++ /dev/null @@ -1,1565 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Native Reference Guide - -include::./attributes.adoc[] - -This guide is a companion to the -xref:building-native-image.adoc[Building a Native Executable], -xref:native-and-ssl.adoc[Using SSL With Native Images], -and xref:writing-native-applications-tips.adoc[Writing Native Applications], -guides. -It provides further details to debugging issues in Quarkus native executables that might arise during development or production. - -This reference guide takes as input the application developed in the xref:getting-started.adoc[Getting Started Guide]. -You can find instructions on how to quickly set up this application in this guide. - -== Requirements and Assumptions - -This guide has the following requirements: - -* JDK 11 installed with `JAVA_HOME` configured appropriately -* Apache Maven {maven-version} -* A working container runtime (Docker, podman) - -This guide builds and executes Quarkus native executables within a Linux environment. -To offer a homogeneous experience across all environments, -the guide relies on a container runtime environment to build and run the native executables. -The instructions below use Docker as example, but very similar commands should work on alternative container runtimes, e.g. podman. - -[IMPORTANT] -==== -Building native executables is an expensive process, -so make sure the container runtime has enough CPU and memory to do this. -A minimum of 4 CPUs and 4GB of memory is required. -==== - -Finally, this guide assumes the use of the link:https://github.com/graalvm/mandrel[Mandrel distribution] of GraalVM for building native executables, -and these are built within a container so there is no need for installing Mandrel on the host. - -== Bootstrapping the project - -Start by creating a new Quarkus project. -Open a terminal and run the following command: - -For Linux & MacOS users - -:create-app-artifact-id: debugging-native -:create-app-extensions: resteasy,container-image-docker -:create-app-code: -include::includes/devtools/create-app.adoc[] - -For Windows users - -- If using cmd , (don't use backward slash `\` and put everything on the same line) -- If using Powershell , wrap `-D` parameters in double quotes e.g. `"-DprojectArtifactId=debugging-native"` - -== Configure Quarkus properties - -Some Quarkus configuration options will be used constantly throughout this guide, -so to help declutter command line invocations, -it's recommended to add these options to the `application.properties` file. -So, go ahead and add the following options to that file: - -[source,properties,subs=attributes+] ----- -quarkus.native.container-build=true -quarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel:{mandrel-flavor} -quarkus.container-image.build=true -quarkus.container-image.group=test ----- - -== First Debugging Steps - -As a first step, change to the project directory and build the native executable for the application: - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative ----- - -Run the application to verify it works as expected. In one terminal: - -[source,bash] ----- -docker run -i --rm -p 8080:8080 test/debugging-native:1.0.0-SNAPSHOT ----- - -In another: - -[source,bash] ----- -curl -w '\n' http://localhost:8080/hello ----- - -The rest of this section explores ways to build the native executable with extra information, -but first, stop the running application. -We can obtain this information while building the native executable by adding additional native-image build options using `-Dquarkus.native.additional-build-args`, e.g. - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative \ - -Dquarkus.native.additional-build-args=--native-image-info ----- - -Executing that will produce additional output lines like this: - -[source,bash] ----- -... -# Printing compilation-target information to: /project/reports/target_info_20220223_100915.txt -… -# Printing native-library information to: /project/reports/native_library_info_20220223_100925.txt ----- - -The target info file contains information such as the target platform, -the toolchain used to compile the executable, -and the C library in use: - -[source,bash] ----- -$ cat target/*/reports/target_info_*.txt -Building image for target platform: org.graalvm.nativeimage.Platform$LINUX_AMD64 -Using native toolchain: - Name: GNU project C and C++ compiler (gcc) - Vendor: redhat - Version: 8.5.0 - Target architecture: x86_64 - Path: /usr/bin/gcc -Using CLibrary: com.oracle.svm.core.posix.linux.libc.GLib ----- - -The native library info file contains information on the static libraries added to the binary and the other libraries dynamically linked to the executable: - -[source,bash] ----- -$ cat target/*/reports/native_library_info_*.txt -Static libraries: - ../opt/mandrel/lib/svm/clibraries/linux-amd64/liblibchelper.a - ../opt/mandrel/lib/static/linux-amd64/glibc/libnet.a - ../opt/mandrel/lib/static/linux-amd64/glibc/libextnet.a - ../opt/mandrel/lib/static/linux-amd64/glibc/libnio.a - ../opt/mandrel/lib/static/linux-amd64/glibc/libjava.a - ../opt/mandrel/lib/static/linux-amd64/glibc/libfdlibm.a - ../opt/mandrel/lib/static/linux-amd64/glibc/libsunec.a - ../opt/mandrel/lib/static/linux-amd64/glibc/libzip.a - ../opt/mandrel/lib/svm/clibraries/linux-amd64/libjvm.a -Other libraries: stdc++,pthread,dl,z,rt ----- - -Even more detail can be obtained by passing in `--verbose` as an additional native-image build argument. -This option can be very useful in detecting whether the options that you pass at a high level via Quarkus are being passed down to the native executable production, -or whether some third party jar has some native-image configuration embedded in it that is reaching the native-image invocation: - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative \ - -Dquarkus.native.additional-build-args=--verbose ----- - -Running with `--verbose` demonstrates how the native-image building process is two sequential java processes: - -* The first is a very short Java process that does some basic validation and builds the arguments for the second process -(in a stock GraalVM distribution, this is executed as native code). -* The second Java process is where the main part of the native executable production happens. -The `--verbose` option shows the actual Java process executed. -You could take the output and run it yourself. - -One may also combine multiple native build options by separating with a comma, e.g.: - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative \ - -Dquarkus.native.additional-build-args=--native-image-info,--verbose ----- - -[TIP] -==== -Remember that if an argument for `-Dquarkus.native.additional-build-args` includes the `,` symbol, -it needs to be escaped to be processed correcly, e.g. `\\,`. -==== - -== Inspecting Native Executables - -Given a native executable, various Linux tools can be used to inspect it. -To allow supporting a variety of environments, -inspections will be done from within a Linux container. -Let's create a Linux container image with all the tools required for this guide: - -[source,dockerfile] ----- -FROM fedora:35 - -RUN dnf install -y \ -binutils \ -gdb \ -git \ -perf \ -perl-open - -ENV FG_HOME /opt/FlameGraph - -RUN git clone https://github.com/brendangregg/FlameGraph $FG_HOME - -WORKDIR /data - -ENTRYPOINT /bin/bash ----- - -Using docker in the non-Linux environment, you can create an image using this Dockerfile via: - -[source,bash] ----- -docker build -t fedora-tools:v1 . ----- - -Then, go to the root of the project and run the Docker container we have just created as: - -[source,bash] ----- -docker run -t -i --rm -v ${PWD}:/data -p 8080:8080 fedora-tools:v1 ----- - -`ldd` shows the shared library dependencies of an executable: - -[source,bash] ----- -ldd ./target/debugging-native-1.0.0-SNAPSHOT-runner ----- - -`strings` can be used to look for text messages inside the binary: - -[source,bash] ----- -strings ./target/debugging-native-1.0.0-SNAPSHOT-runner | grep Hello ----- - -Using `strings` you can also get Mandrel information given the binary: - -[source,bash] ----- -strings ./target/debugging-native-1.0.0-SNAPSHOT-runner | grep core.VM ----- - -Finally, using `readelf` we can inspect different sections of the binary. -For example, we can see how the heap and text sections take most of binary: - -[source,bash] ----- -readelf -SW ./target/debugging-native-1.0.0-SNAPSHOT-runner ----- - -== Native Reports - -Optionally, the native build process can generate reports that show what goes into the binary: - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative \ - -Dquarkus.native.enable-reports ----- - -The reports will be created under `target/debugging-native-1.0.0-SNAPSHOT-native-image-source-jar/reports/`. -These reports are some of the most useful resources when encountering issues with missing methods/classes, or encountering forbidden methods by Mandrel. - -=== Call Tree Reports - -`call_tree` text file report is one of the default reports generated when the `-Dquarkus.native.enable-reports` option is passed in. -This is useful for getting an approximation on why a method/class is included in the binary. -However, the text format makes it very difficult to read and can take up a lot of space. - -Since Mandrel 21.3.0.0, the call tree is also reported as a group of CSV files. -The CSV output can be enabled by adding `-H:PrintAnalysisCallTreeType=CSV` to the additional native arguments. E.g. - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative \ - -Dquarkus.native.enable-reports \ - -Dquarkus.native.additional-build-args=-H:PrintAnalysisCallTreeType=CSV ----- - -These can in turn be imported into a graph database, such as Neo4j, -to inspect them more easily and run queries against the call tree. -Let’s see this in action. - -First, start a Neo4j instance: - -[source,bash] ----- -export NEO_PASS=... -docker run \ - --detach \ - --rm \ - --name testneo4j \ - -p7474:7474 -p7687:7687 \ - --env NEO4J_AUTH=neo4j/${NEO_PASS} \ - neo4j:latest ----- - -Once the container is running, -you can access the link:http://localhost:7474[Neo4j browser]. -Use `neo4j` as the username and the value of `NEO_PASS` as the password to log in. - -To import the CSV files, -we need the following cypher script which will import the data within the CSV files and create graph database nodes and edges: - -[source,cypher] ----- -CREATE CONSTRAINT unique_vm_id ON (v:VM) ASSERT v.vmId IS UNIQUE; -CREATE CONSTRAINT unique_method_id ON (m:Method) ASSERT m.methodId IS UNIQUE; - -LOAD CSV WITH HEADERS FROM 'file:///reports/call_tree_vm.csv' AS row -MERGE (v:VM {vmId: row.Id, name: row.Name}) -RETURN count(v); - -LOAD CSV WITH HEADERS FROM 'file:///reports/call_tree_methods.csv' AS row -MERGE (m:Method {methodId: row.Id, name: row.Name, type: row.Type, parameters: row.Parameters, return: row.Return, display: row.Display}) -RETURN count(m); - -LOAD CSV WITH HEADERS FROM 'file:///reports/call_tree_virtual_methods.csv' AS row -MERGE (m:Method {methodId: row.Id, name: row.Name, type: row.Type, parameters: row.Parameters, return: row.Return, display: row.Display}) -RETURN count(m); - -LOAD CSV WITH HEADERS FROM 'file:///reports/call_tree_entry_points.csv' AS row -MATCH (m:Method {methodId: row.Id}) -MATCH (v:VM {vmId: '0'}) -MERGE (v)-[:ENTRY]->(m) -RETURN count(*); - -LOAD CSV WITH HEADERS FROM 'file:///reports/call_tree_direct_edges.csv' AS row -MATCH (m1:Method {methodId: row.StartId}) -MATCH (m2:Method {methodId: row.EndId}) -MERGE (m1)-[:DIRECT {bci: row.BytecodeIndexes}]->(m2) -RETURN count(*); - -LOAD CSV WITH HEADERS FROM 'file:///reports/call_tree_override_by_edges.csv' AS row -MATCH (m1:Method {methodId: row.StartId}) -MATCH (m2:Method {methodId: row.EndId}) -MERGE (m1)-[:OVERRIDEN_BY]->(m2) -RETURN count(*); - -LOAD CSV WITH HEADERS FROM 'file:///reports/call_tree_virtual_edges.csv' AS row -MATCH (m1:Method {methodId: row.StartId}) -MATCH (m2:Method {methodId: row.EndId}) -MERGE (m1)-[:VIRTUAL {bci: row.BytecodeIndexes}]->(m2) -RETURN count(*); ----- - -Copy and paste the contents of the script into a file called `import.cypher`. - -[WARNING] -==== -Mandrel 22.0.0 contains a bug where the symbolic links used by the import cypher file are not correctly set when generating reports within a container -(for more details see link:https://github.com/oracle/graal/issues/4355[here]). -This can be worked around by copying the following script into a file and executing it: - -[source,bash] ----- -set -e - -project="debugging-native" - -pushd target/*-native-image-source-jar/reports - -rm -f call_tree_vm.csv -ln -s call_tree_vm_${project}-* call_tree_vm.csv - -rm -f call_tree_direct_edges.csv -ln -s call_tree_direct_edges_${project}-* call_tree_direct_edges.csv - -rm -f call_tree_entry_points.csv -ln -s call_tree_entry_points_${project}-* call_tree_entry_points.csv - -rm -f call_tree_methods.csv -ln -s call_tree_methods_${project}-* call_tree_methods.csv - -rm -f call_tree_virtual_edges.csv -ln -s call_tree_virtual_edges_${project}-* call_tree_virtual_edges.csv - -rm -f call_tree_virtual_methods.csv -ln -s call_tree_virtual_methods_${project}-* call_tree_virtual_methods.csv - -rm -f call_tree_override_by_edges.csv -ln -s call_tree_override_by_edges_${project}-* call_tree_override_by_edges.csv - -popd ----- -==== - -Next, copy the import cypher script and CSV files into Neo4j's import folder: - -[source,bash] ----- -docker cp \ - target/*-native-image-source-jar/reports \ - testneo4j:/var/lib/neo4j/import - -docker cp import.cypher testneo4j:/var/lib/neo4j ----- - -After copying all the files, invoke the import script: - -[source,bash] ----- -docker exec testneo4j bin/cypher-shell -u neo4j -p ${NEO_PASS} -f import.cypher ----- - -Once the import completes (shouldn't take more than a couple of minutes), go to the link:http://localhost:7474[Neo4j browser], -and you'll be able to observe a small summary of the data in the graph: - -image::native-reference-neo4j-db-info.png[Neo4j database information after import] - -The data above shows that there are ~60000 methods, and just over ~200000 edges between them. -The Quarkus application demonstrated here is very basic, so there’s not a lot we can explore, but here are some example queries you can run to explore the graph in more detail. -Typically, you’d start by looking for a given method: - -[source,cypher] ----- -match (m:Method) where m.name = "hello" return * ----- - -From there, you can narrow down to a given method on a specific type: - -[source,cypher] ----- -match (m:Method) where m.name = "hello" and m.type =~ ".*GreetingResource" return * ----- - -Once you’ve located the node for the specific method you’re after, a typical question you’d want to get an answer for is: -why does this method get included in the call tree? -To do that, start from the method and look for incoming connections at a given depth, -starting from the end method. -For example, methods that directly call a method can be located via: - -[source,cypher] ----- -match (m:Method) <- [*1..1] - (o) where m.name = "hello" return * ----- - -Then you can look for direct calls at depth of 2, -so you’d search for methods that call methods that call into the target method: - -[source,cypher] ----- -match (m:Method) <- [*1..2] - (o) where m.name = "hello" return * ----- - -You can continue going up layers, -but unfortunately if you reach a depth with too many nodes, -the Neo4j browser will be unable to visualize them all. -When that happens, you can alternatively run the queries directly against the cypher shell: - -[source,bash] ----- -docker exec testneo4j bin/cypher-shell -u neo4j -p ${NEO_PASS} \ - "match (m:Method) <- [*1..10] - (o) where m.name = 'hello' return *" ----- - -=== Used Packages/Classes/Methods Reports - -`used_packages`, `used_classes` and `used_methods` text file reports come in handy when comparing different versions of the application, -e.g. why does the image take longer to build? Or why is the image bigger now? - -=== Further Reports - -Mandrel can produce further reports beyond the ones that are enabled with the `-Dquarkus.native.enable-reports` option. -These are called expert options and you can learn more about them by running: - -[source,bash,subs=attributes+] ----- -docker run quay.io/quarkus/ubi-quarkus-mandrel:{mandrel-flavor} --expert-options-all ----- - -To use these expert options, add them comma separated to the `-Dquarkus.native.additional-build-args` parameter. - -== Build-time vs Run-time Initialization - -Quarkus instructs Mandrel to initialize as much as possible at build time, -so that runtime startup can be as fast as possible. -This is important in containerized environments where the startup speed has a big impact on how quickly an application is ready to do work. -Build time initialization also minimizes the risk of runtime failures due to unsupported features becoming reachable through runtime initialization, -thus making Quarkus more reliable. - -The most common examples of build-time initialized code are static variables and blocks. -Although Mandrel executes those at run-time by default, -Quarkus instructs Mandrel to run them at build-time for the reasons given. - -This means that any static variables initialized inline, or initialized in a static block, -will keep the same value even if the application is restarted. -This is a different behaviour compared to what would happen if executed as Java. - -To see this in action with a very basic example, -add a new `TimestampResource` to the application that looks like this: - -[source,java] ----- -package org.acme; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/timestamp") -public class TimestampResource { - - static long firstAccess = System.currentTimeMillis(); - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String timestamp() { - return "First access " + firstAccess; - } -} ----- - -Rebuild the binary using: - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative ----- - -Run the application in one terminal -(make sure you stop any other native executable container runs before executing this): - -[source,bash] ----- -docker run -i --rm -p 8080:8080 test/debugging-native:1.0.0-SNAPSHOT ----- - -Send a `GET` request multiple times from another terminal: - -[source,bash] ----- -curl -w '\n' http://localhost:8080/timestamp # run this multiple times ----- - -to see how the current time has been baked into the binary. -This time was calculated when the binary was being built, -hence application restarts have no effect. - -In some situations, built time initializations can lead to errors when building native executables. -One example is when a value gets computed at build time which is forbidden to reside in the heap of the JVM that gets baked into the binary. -To see this in action, add this REST resource: - -[source,java] ----- -package org.acme; - -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -import javax.crypto.Cipher; -import javax.crypto.NoSuchPaddingException; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import java.nio.charset.StandardCharsets; -import java.security.KeyPair; -import java.security.KeyPairGenerator; -import java.security.NoSuchAlgorithmException; - -@Path("/encrypt-decrypt") -public class EncryptDecryptResource { - - static final KeyPairGenerator KEY_PAIR_GEN; - static final Cipher CIPHER; - - static { - try { - KEY_PAIR_GEN = KeyPairGenerator.getInstance("RSA"); - KEY_PAIR_GEN.initialize(1024); - - CIPHER = Cipher.getInstance("RSA"); - } catch (NoSuchAlgorithmException | NoSuchPaddingException e) { - throw new RuntimeException(e); - } - } - - @GET - @Path("/{message}") - public String encryptDecrypt(@PathParam String message) throws Exception { - KeyPair keyPair = KEY_PAIR_GEN.generateKeyPair(); - - byte[] text = message.getBytes(StandardCharsets.UTF_8); - - // Encrypt with private key - CIPHER.init(Cipher.ENCRYPT_MODE, keyPair.getPrivate()); - byte[] encrypted = CIPHER.doFinal(text); - - // Decrypt with public key - CIPHER.init(Cipher.DECRYPT_MODE, keyPair.getPublic()); - byte[] unencrypted = CIPHER.doFinal(encrypted); - - return new String(unencrypted, StandardCharsets.UTF_8); - } -} ----- - -When trying to rebuild the application, you’ll encounter an error: - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative -... -Error: Unsupported features in 2 methods -Detailed message: -Error: Detected an instance of Random/SplittableRandom class in the image heap. Instances created during image generation have cached seed values and don't behave as expected. To see how this object got instantiated use --trace-object-instantiation=java.security.SecureRandom. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=. Or you can write your own initialization methods and call them explicitly from your main entry point. -Trace: Object was reached by - reading field java.security.KeyPairGenerator$Delegate.initRandom of - constant java.security.KeyPairGenerator$Delegate@58b0fe1b reached by - reading field org.acme.EncryptDecryptResource.KEY_PAIR_GEN -Error: Detected an instance of Random/SplittableRandom class in the image heap. Instances created during image generation have cached seed values and don't behave as expected. To see how this object got instantiated use --trace-object-instantiation=java.security.SecureRandom. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=. Or you can write your own initialization methods and call them explicitly from your main entry point. -Trace: Object was reached by - reading field sun.security.rsa.RSAKeyPairGenerator.random of - constant sun.security.rsa.RSAKeyPairGenerator$Legacy@3248a092 reached by - reading field java.security.KeyPairGenerator$Delegate.spi of - constant java.security.KeyPairGenerator$Delegate@58b0fe1b reached by - reading field org.acme.EncryptDecryptResource.KEY_PAIR_GEN ----- - -So, what the message above is telling us is that our application caches a value that is supposed to be random as a constant. -This is not desirable because something that's supposed to be random is no longer so, -because the seed is baked in the image. -The message above makes it quite clear what is causing this, -but in other situations the cause might be more obfuscated. -As a next step, we'll add some extra flags to the native executable generation to get more information. - -As suggested by the message, let's start by adding an option to track object instantiation: - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative \ - -Dquarkus.native.additional-build-args="--trace-object-instantiation=java.security.SecureRandom" -... -Error: Unsupported features in 2 methods -Detailed message: -Error: Detected an instance of Random/SplittableRandom class in the image heap. Instances created during image generation have cached seed values and don't behave as expected. Object has been initialized by the com.sun.jndi.dns.DnsClient class initializer with a trace: - at java.security.SecureRandom.(SecureRandom.java:218) - at sun.security.jca.JCAUtil$CachedSecureRandomHolder.(JCAUtil.java:59) - at sun.security.jca.JCAUtil.getSecureRandom(JCAUtil.java:69) - at com.sun.jndi.dns.DnsClient.(DnsClient.java:82) -. Try avoiding to initialize the class that caused initialization of the object. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=. Or you can write your own initialization methods and call them explicitly from your main entry point. -Trace: Object was reached by - reading field java.security.KeyPairGenerator$Delegate.initRandom of - constant java.security.KeyPairGenerator$Delegate@4a5058f9 reached by - reading field org.acme.EncryptDecryptResource.KEY_PAIR_GEN -Error: Detected an instance of Random/SplittableRandom class in the image heap. Instances created during image generation have cached seed values and don't behave as expected. Object has been initialized by the com.sun.jndi.dns.DnsClient class initializer with a trace: - at java.security.SecureRandom.(SecureRandom.java:218) - at sun.security.jca.JCAUtil$CachedSecureRandomHolder.(JCAUtil.java:59) - at sun.security.jca.JCAUtil.getSecureRandom(JCAUtil.java:69) - at com.sun.jndi.dns.DnsClient.(DnsClient.java:82) -. Try avoiding to initialize the class that caused initialization of the object. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=. Or you can write your own initialization methods and call them explicitly from your main entry point. -Trace: Object was reached by - reading field sun.security.rsa.RSAKeyPairGenerator.random of - constant sun.security.rsa.RSAKeyPairGenerator$Legacy@71880cf1 reached by - reading field java.security.KeyPairGenerator$Delegate.spi of - constant java.security.KeyPairGenerator$Delegate@4a5058f9 reached by - reading field org.acme.EncryptDecryptResource.KEY_PAIR_GEN ----- - -The error messages point to the code in the example, -but it can be suprising that a reference to `DnsClient` appears. -Why is that? -The key is in what happens inside `KeyPairGenerator.initialize()` method call. -It uses `JCAUtil.getSecureRandom()` which is why this is problematic, -but sometimes the tracing options can show some stack traces that do not represent what happens in reality. -The best option is to dig through the source code and use tracing output for guidance but not as full truth. - -Moving the `KEY_PAIR_GEN.initialize(1024);` call to the run-time executed method `encryptDecrypt` is enough to solve this particular issue. - -Additional information on which classes are initialized and why can be obtained by passing in the `-H:+PrintClassInitialization` flag via `-Dquarkus.native.additional-build-args`. - -== Profile Runtime Behaviour - -=== Single Thread - -In this exercise, we profile the runtime behaviour of some Quarkus application that was compiled to a native executable to determine where the bottleneck is. -Assume that you’re in a scenario where profiling the pure Java version is not possible, maybe because the issue only occurs with the native version of the application. - -Add a REST resource with the following code -(example courtesy of link:https://github.com/apangin/java-profiling-presentation/blob/master/src/demo1/StringBuilderTest.java[Andrei Pangin's Java Profiling presentation]): - -[source,java] ----- -package org.acme; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/string-builder") -public class StringBuilderResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String appendDelete() { - StringBuilder sb = new StringBuilder(); - sb.append(new char[1_000_000]); - - do - { - sb.append(12345); - sb.delete(0, 5); - } while (Thread.currentThread().isAlive()); - - return "Never happens"; - } -} ----- - -Recompile the application, rebuild the binary and run it. Attempting a simple curl will never complete, as expected: - -[source,bash,subs=attributes+] ----- -$ ./mvnw package -DskipTests -Pnative -... -$ docker run -i --rm -p 8080:8080 test/debugging-native:1.0.0-SNAPSHOT -... -$ curl http://localhost:8080/string-builder # this will never complete ----- - -However, the question we’re trying to answer here is: -what would be the bottleneck of such code? -Is it appending the characters? Is it deleting it? Is it checking whether the thread is alive? - -Since we're dealing with a linux native executable, -we can use tools like `perf` directly. -To use `perf`, -go to the root of the project and start the tools container created earlier as a privileged user: - -[source,bash] ----- -docker run --privileged -t -i --rm -v ${PWD}:/data -p 8080:8080 fedora-tools:v1 ----- - -[NOTE] -==== -Note that in order to use `perf` to profile the native executables in the guide, -the container needs to run as privileged, or with `--cap-add sys_admin`. -Please note that privileged containers are **NOT** recommended in production, so use this flag with caution! -==== - -Once the container is running, you need to ensure that the kernel is ready for the profiling exercises: - -[source,bash] ----- -echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid -echo 0 | sudo tee /proc/sys/kernel/kptr_restrict ----- - -[TIP] -==== -The kernel modifications above also apply to Linux virtual machines. -If running on a bare metal Linux machine, -tweaking only `perf_event_paranoid` is enough. -==== - -Then, from inside the tools container we execute: - -[source,bash] ----- -perf record -F 1009 -g -a ./target/debugging-native-1.0.0-SNAPSHOT-runner ----- - -While `perf record` is running, open another window and access the endpoint: - -[source,bash] ----- -curl http://localhost:8080/string-builder # this will never complete ----- - -After a few seconds, halt the `perf record` process. -This will generate a `perf.data` file. -We could use `perf report` to inspect the perf data, -but you can often get a better picture showing that data as a flame graph. -To generate flame graphs, we will use -https://github.com/brendangregg/FlameGraph[FlameGraph GitHub repository], -which has already been installed inside the tools container. - -Next, generate a flame graph using the data captured via `perf record`: - -[source,bash] ----- -$ perf script -i perf.data | ${FG_HOME}/stackcollapse-perf.pl > out.perf-folded -$ ${FG_HOME}/flamegraph.pl out.perf-folded > flamegraph.svg ----- - -The flame graph is an svg file that a web browser, such as Firefox, can easily display. -After the above two commands complete one can open `flamegraph.svg` in their browser: - -image::native-reference-perf-flamegraph-no-symbols.svg[Perf flamegraph without symbols] - -We see a big majority of time spent in what is supposed to be our main, -but we see no trace of the `StringBuilderResource` class, -nor the `StringBuilder` class we're calling. -We should look at the symbol table of the binary: -can we find symbols for our class and `StringBuilder`? -We need those in order to get meaningful data. -From within the tools container, query the symbol table: - -[source,bash] ----- -objdump -t ./target/debugging-native-1.0.0-SNAPSHOT-runner | grep StringBuilder -[no output] ----- - -No output appears when querying the symbol table. -This is why we don't see any call graphs in the flame graphs. -This is a deliberate decision that native-image makes. -By default, it removes symbols from the binary. - -To regain the symbols, we need to rebuild the binary instructing GraalVM not to delete the symbols. -On top of that, enable DWARF debug info so that the stack traces can be populated with that information. -From outside the tools container, execute: - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative \ - -Dquarkus.native.debug.enabled \ - -Dquarkus.native.additional-build-args=-H:-DeleteLocalSymbols ----- - -Next, re-enter the tools container if you exited, -and inspect the native executable with `objdump`, -and see how the symbols are now present: - -[source,bash] ----- -$ objdump -t ./target/debugging-native-1.0.0-SNAPSHOT-runner | grep StringBuilder -000000000050a940 l F .text 0000000000000091 .hidden ReflectionAccessorHolder_StringBuilderResource_appendDelete_9e06d4817d0208a0cce97ebcc0952534cac45a19_e22addf7d3eaa3ad14013ce01941dc25beba7621 -000000000050a9e0 l F .text 00000000000000bb .hidden ReflectionAccessorHolder_StringBuilderResource_constructor_0f8140ea801718b80c05b979a515d8a67b8f3208_12baae06bcd6a1ef9432189004ae4e4e176dd5a4 -... ----- - -You should see a long list of symbols that match that pattern. - -Then, run the executable through perf, -*indicating that the call graph is dwarf*: - -[source,bash] ----- -perf record -F 1009 --call-graph dwarf -a ./target/debugging-native-1.0.0-SNAPSHOT-runner ----- - -Run the curl command once again, stop the binary, generate the flamegraphs and open it: - -[source,bash] ----- -perf script -i perf.data | ${FG_HOME}/stackcollapse-perf.pl > out.perf-folded -${FG_HOME}/flamegraph.pl out.perf-folded > flamegraph.svg ----- - -The flamegraph now shows where the bottleneck is. -It's when `StringBuilder.delete()` is called which calls `System.arraycopy()`. -The issue is that 1 million characters need to be shifted in very small increments: - -image::native-reference-perf-flamegraph-symbols.svg[Perf flamegraph with symbols] - -=== Multi-Thread - -Multi-threaded programs might require special attention when trying to understand their runtime behaviour. -To demonstrate this, add this `MulticastResource` code to your project -(example courtesy of link:https://github.com/apangin/java-profiling-presentation/blob/master/src/demo6/DatagramTest.java[Andrei Pangin's Java Profiling presentation]): - -[source,java] ----- -package org.acme; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import java.net.InetSocketAddress; -import java.nio.ByteBuffer; -import java.nio.channels.DatagramChannel; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.atomic.AtomicInteger; - -@Path("/multicast") -public class MulticastResource -{ - @GET - @Produces(MediaType.TEXT_PLAIN) - public String send() throws Exception { - sendMulticasts(); - return "Multicast packets sent"; - } - - static void sendMulticasts() throws Exception { - DatagramChannel ch = DatagramChannel.open(); - ch.bind(new InetSocketAddress(5555)); - ch.configureBlocking(false); - - ExecutorService pool = - Executors.newCachedThreadPool(new ShortNameThreadFactory()); - for (int i = 0; i < 10; i++) { - pool.submit(() -> { - final ByteBuffer buf = ByteBuffer.allocateDirect(1000); - final InetSocketAddress remoteAddr = - new InetSocketAddress("127.0.0.1", 5556); - - while (true) { - buf.clear(); - ch.send(buf, remoteAddr); - } - }); - } - - System.out.println("Warming up..."); - Thread.sleep(3000); - - System.out.println("Benchmarking..."); - Thread.sleep(5000); - } - - private static final class ShortNameThreadFactory implements ThreadFactory { - - private final AtomicInteger threadNumber = new AtomicInteger(1); - private final String namePrefix = "thread-"; - - public Thread newThread(Runnable r) { - return new Thread(r, namePrefix + threadNumber.getAndIncrement()); - } - } -} ----- - -Build the native executable with debug info: - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative \ - -Dquarkus.native.debug.enabled \ - -Dquarkus.native.additional-build-args=-H:-DeleteLocalSymbols ----- - -From inside the tools container (as privileged user) run the native executable through `perf`: - -[source,bash] ----- -perf record -F 1009 --call-graph dwarf -a ./target/debugging-native-1.0.0-SNAPSHOT-runner ----- - -Invoke the endpoint to send the multicast packets: - -[source,bash] ----- -curl -w '\n' http://localhost:8080/multicast ----- - -Make and open a flamegraph: - -[source,bash] ----- -perf script -i perf.data | ${FG_HOME}/stackcollapse-perf.pl > out.perf-folded -${FG_HOME}/flamegraph.pl out.perf-folded > flamegraph.svg ----- - -image::native-reference-multi-flamegraph-separate-threads.svg[Muti-thread perf flamegraph with separate threads] - -The flamegraph produced looks odd. Each thread is treated independently even though they all do the same work. -This makes it difficult to have a clear picture of the bottlenecks in the program. - -This is happening because from a `perf` perspective, each thread is a different command. -We can see that if we inspect `perf report`: - -[source,bash] ----- -perf report --stdio -# Children Self Command Shared Object Symbol -# ........ ........ ............... ...................................... ...................................................................................... -... - 6.95% 0.03% thread-2 debugging-native-1.0.0-SNAPSHOT-runner [.] MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18bad517d67eae4d88 -... - 4.60% 0.02% thread-10 debugging-native-1.0.0-SNAPSHOT-runner [.] MulticastResource_lambda$sendMulticasts$0_cb1f7b5dcaed7dd4e3f90d18bad517d67eae4d88 -... ----- - -This can be worked around by applying some modifications to the perf output, -in order to make all threads have the same name. E.g. - -[source,bash] ----- -perf script | sed -E "s/thread-[0-9]*/thread/" | ${FG_HOME}/stackcollapse-perf.pl > out.perf-folded -${FG_HOME}/flamegraph.pl out.perf-folded > flamegraph.svg ----- - -image::native-reference-multi-flamegraph-joined-threads.svg[Muti-thread perf flamegraph with joined threads] - -When you open the flamegraph, you will see all threads' work collapsed into a single area. -Then, you can clearly see that there's some locking that could affect performance. - -== Debugging Native Crashes - -One of the drawbacks of using native executables is that they cannot be debugged using the standard Java debuggers, -instead we need to debug them using `gdb`, the GNU Project debugger. -To demonstrate how to do this, -we are going to generate a native Quarkus application that crashes due to a Segmentation Fault when accessing http://localhost:8080/crash. -To achieve this, add the following REST resource to the project: - -[source,java] ----- -package org.acme; - -import sun.misc.Unsafe; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import java.lang.reflect.Field; - -@Path("/crash") -public class CrashResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - Field theUnsafe = null; - try { - theUnsafe = Unsafe.class.getDeclaredField("theUnsafe"); - theUnsafe.setAccessible(true); - Unsafe unsafe = (Unsafe) theUnsafe.get(null); - unsafe.copyMemory(0, 128, 256); - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - } - return "Never happens"; - } -} ----- - -This code will try to copy 256 bytes from address `0x0` to `0x80` resulting in a Segmentation Fault. -To verify this compile and run the example application: - -[source,bash,subs=attributes+] ----- -$ ./mvnw package -DskipTests -Pnative -... -$ docker run -i --rm -p 8080:8080 test/debugging-native:1.0.0-SNAPSHOT -... -$ curl http://localhost:8080/crash ----- - -This will result in the following output: - -[source,bash] ----- -$ docker run -i --rm -p 8080:8080 test/debugging-native:1.0.0-SNAPSHOT -... -Segfault detected, aborting process. Use runtime option -R:-InstallSegfaultHandler if you don't want to use SubstrateSegfaultHandler. -... ----- - -The omitted output above contains clues to what caused the issue, -but in this exercise we are going to assume that no information was provided. -Let’s try to debug the segmentation fault using `gdb`. -To do that, go to the root of the project and enter the tools container: - -[source,bash] ----- -docker run -t -i --rm -v ${PWD}:/data -p 8080:8080 fedora-tools:v1 /bin/bash ----- - -Then start the application in `gdb` and execute `run`. - -[source,bash] ----- -gdb ./target/debugging-native-1.0.0-SNAPSHOT-runner -... -Reading symbols from ./target/debugging-native-1.0.0-SNAPSHOT-runner... -(No debugging symbols found in ./target/debugging-ntaive-1.0.0-SNAPSHOT-runner) -(gdb) run -Starting program: /data/target/debugging-native-1.0.0-SNAPSHOT-runner ----- - -Next, try to access http://localhost:8080/crash: -[source,bash] ----- -curl http://localhost:8080/crash ----- - -This will result in the following message in `gdb`: - -[source,bash] ----- -Thread 4 "ecutor-thread-0" received signal SIGSEGV, Segmentation fault. -[Switching to Thread 0x7fe103dff640 (LWP 190)] -0x0000000000461f6e in ?? () ----- - -If we try to get more info about the backtrace that led to this crash we will see that there is not enough information available. - -[source,bash] ----- -(gdb) bt -#0 0x0000000000418b5e in ?? () -#1 0x00007ffff6f2d328 in ?? () -#2 0x0000000000418a04 in ?? () -#3 0x00007ffff44062a0 in ?? () -#4 0x00000000010c3dd3 in ?? () -#5 0x0000000000000100 in ?? () -#6 0x0000000000000000 in ?? () ----- - -This is because we didn’t compile the Quarkus application with `-Dquarkus.native.debug.enabled`, -so `gdb` cannot find debugging symbols for our native executable, -as indicated by the "_No debugging symbols found in ./target/debugging-native-1.0.0-SNAPSHOT-runner_" message in the beginning of `gdb`. - -Recompiling the Quarkus application with `-Dquarkus.native.debug.enabled` and rerunning it through `gdb` we are now able to get a backtrace making clear what caused the crash. -On top of that, add `-H:-OmitInlinedMethodDebugLineInfo` option to avoid inlined methods being omitted from the backtrace: - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative \ - -Dquarkus.native.debug.enabled \ - -Dquarkus.native.additional-build-args=-H:-OmitInlinedMethodDebugLineInfo -... -$ gdb ./target/debugging-native-1.0.0-SNAPSHOT-runner -Reading symbols from ./target/debugging-native-1.0.0-SNAPSHOT-runner... -(gdb) run -Starting program: /data/target/debugging-native-1.0.0-SNAPSHOT-runner -... -$ curl http://localhost:8080/crash ----- - -This will result in the following message in `gdb`: - -[source,bash] ----- -Thread 4 "ecutor-thread-0" received signal SIGSEGV, Segmentation fault. -[Switching to Thread 0x7fffeffff640 (LWP 362984)] -com.oracle.svm.core.UnmanagedMemoryUtil::copyLongsBackward(org.graalvm.word.Pointer *, org.graalvm.word.Pointer *, org.graalvm.word.UnsignedWord *) () - at com/oracle/svm/core/UnmanagedMemoryUtil.java:169 -169 com/oracle/svm/core/UnmanagedMemoryUtil.java: No such file or directory. ----- - -We already see that `gdb` is able to tell us which method caused the crash and where it’s located in the source code. -We can also get a backtrace of the call graph that led us to this state: - -[source,bash] ----- -(gdb) bt -#0 com.oracle.svm.core.UnmanagedMemoryUtil::copyLongsBackward(org.graalvm.word.Pointer *, org.graalvm.word.Pointer *, org.graalvm.word.UnsignedWord *) () at com/oracle/svm/core/UnmanagedMemoryUtil.java:169 -#1 0x0000000000461e14 in com.oracle.svm.core.UnmanagedMemoryUtil::copyBackward(org.graalvm.word.Pointer *, org.graalvm.word.Pointer *, org.graalvm.word.UnsignedWord *) () at com/oracle/svm/core/UnmanagedMemoryUtil.java:110 -#2 0x0000000000461dc8 in com.oracle.svm.core.UnmanagedMemoryUtil::copy(org.graalvm.word.Pointer *, org.graalvm.word.Pointer *, org.graalvm.word.UnsignedWord *) () at com/oracle/svm/core/UnmanagedMemoryUtil.java:67 -#3 0x000000000045d3c0 in com.oracle.svm.core.JavaMemoryUtil::unsafeCopyMemory(java.lang.Object *, long, java.lang.Object *, long, long) () at com/oracle/svm/core/JavaMemoryUtil.java:276 -#4 0x00000000013277de in jdk.internal.misc.Unsafe::copyMemory0 () at com/oracle/svm/core/jdk/SunMiscSubstitutions.java:125 -#5 jdk.internal.misc.Unsafe::copyMemory(java.lang.Object *, long, java.lang.Object *, long, long) () at jdk/internal/misc/Unsafe.java:788 -#6 0x00000000013b1a3f in jdk.internal.misc.Unsafe::copyMemory () at jdk/internal/misc/Unsafe.java:799 -#7 sun.misc.Unsafe::copyMemory () at sun/misc/Unsafe.java:585 -#8 org.acme.CrashResource::hello(void) () at org/acme/CrashResource.java:22 ----- - -Similarly, we can get a backtrace of the call graph of other threads. - -1. First, we can list the available threads with: -+ -[source,bash] ----- -(gdb) info threads - Id Target Id Frame - 1 Thread 0x7fcc62a07d00 (LWP 322) "debugging-nativ" 0x00007fcc62b8b77a in __futex_abstimed_wait_common () from /lib64/libc.so.6 - 2 Thread 0x7fcc60eff640 (LWP 326) "gnal Dispatcher" 0x00007fcc62b8b77a in __futex_abstimed_wait_common () from /lib64/libc.so.6 -* 4 Thread 0x7fcc5b7fe640 (LWP 328) "ecutor-thread-0" com.oracle.svm.core.UnmanagedMemoryUtil::copyLongsBackward(org.graalvm.word.Pointer *, org.graalvm.word.Pointer *, org.graalvm.word.UnsignedWord *) () at com/oracle/svm/core/UnmanagedMemoryUtil.java:169 - 5 Thread 0x7fcc5abff640 (LWP 329) "-thread-checker" 0x00007fcc62b8b77a in __futex_abstimed_wait_common () from /lib64/libc.so.6 - 6 Thread 0x7fcc59dff640 (LWP 330) "ntloop-thread-0" 0x00007fcc62c12c9e in epoll_wait () from /lib64/libc.so.6 -... ----- -+ -2. select the thread we want to inspect, e.g. thread 1: -+ -[source,bash] ----- -(gdb) thread 1 -[Switching to thread 1 (Thread 0x7ffff7a58d00 (LWP 1028851))] -#0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x2cd7adc) at futex-internal.c:57 -57 return INTERNAL_SYSCALL_CANCEL (futex_time64, futex_word, op, expected, ----- -+ -3. and, finally, print the stack trace: -+ -[source,bash] ----- -(gdb) bt -#0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x2cd7adc) at futex-internal.c:57 -#1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x2cd7adc, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, - cancel=cancel@entry=true) at futex-internal.c:87 -#2 0x00007ffff7bdd79f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x2cd7adc, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, - private=private@entry=0) at futex-internal.c:139 -#3 0x00007ffff7bdfeb0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x2ca07b0, cond=0x2cd7ab0) at pthread_cond_wait.c:504 -#4 ___pthread_cond_wait (cond=0x2cd7ab0, mutex=0x2ca07b0) at pthread_cond_wait.c:619 -#5 0x00000000004e2014 in com.oracle.svm.core.posix.headers.Pthread::pthread_cond_wait () at com/oracle/svm/core/posix/thread/PosixJavaThreads.java:252 -#6 com.oracle.svm.core.posix.thread.PosixParkEvent::condWait(void) () at com/oracle/svm/core/posix/thread/PosixJavaThreads.java:252 -#7 0x0000000000547070 in com.oracle.svm.core.thread.JavaThreads::park(void) () at com/oracle/svm/core/thread/JavaThreads.java:764 -#8 0x0000000000fc5f44 in jdk.internal.misc.Unsafe::park(boolean, long) () at com/oracle/svm/core/thread/Target_jdk_internal_misc_Unsafe_JavaThreads.java:49 -#9 0x0000000000eac1ad in java.util.concurrent.locks.LockSupport::park(java.lang.Object *) () at java/util/concurrent/locks/LockSupport.java:194 -#10 0x0000000000ea5d68 in java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject::awaitUninterruptibly(void) () - at java/util/concurrent/locks/AbstractQueuedSynchronizer.java:2018 -#11 0x00000000008b6b30 in io.quarkus.runtime.ApplicationLifecycleManager::run(io.quarkus.runtime.Application *, java.lang.Class *, java.util.function.BiConsumer *, java.lang.String[] *) () - at io/quarkus/runtime/ApplicationLifecycleManager.java:144 -#12 0x00000000008bc055 in io.quarkus.runtime.Quarkus::run(java.lang.Class *, java.util.function.BiConsumer *, java.lang.String[] *) () at io/quarkus/runtime/Quarkus.java:67 -#13 0x000000000045c88b in io.quarkus.runtime.Quarkus::run () at io/quarkus/runtime/Quarkus.java:41 -#14 io.quarkus.runtime.Quarkus::run () at io/quarkus/runtime/Quarkus.java:120 -#15 0x000000000045c88b in io.quarkus.runner.GeneratedMain::main () -#16 com.oracle.svm.core.JavaMainWrapper::runCore () at com/oracle/svm/core/JavaMainWrapper.java:150 -#17 com.oracle.svm.core.JavaMainWrapper::run(int, org.graalvm.nativeimage.c.type.CCharPointerPointer *) () at com/oracle/svm/core/JavaMainWrapper.java:186 -#18 0x000000000048084d in com.oracle.svm.core.code.IsolateEnterStub::JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(int, org.graalvm.nativeimage.c.type.CCharPointerPointer *) - () at com/oracle/svm/core/JavaMainWrapper.java:280 ----- - -Alternatively, we can list the backtraces of all threads with a single command: - -[source,bash] ----- -(gdb) thread apply all backtrace - -Thread 22 (Thread 0x7fffc8dff640 (LWP 1028872) "tloop-thread-15"): -#0 0x00007ffff7c64c2e in epoll_wait (epfd=8, events=0x2ca3880, maxevents=1024, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30 -#1 0x000000000166e01c in Java_sun_nio_ch_EPoll_wait () -#2 0x00000000011bfece in sun.nio.ch.EPoll::wait(int, long, int, int) () at com/oracle/svm/core/stack/JavaFrameAnchors.java:42 -#3 0x00000000011c08d2 in sun.nio.ch.EPollSelectorImpl::doSelect(java.util.function.Consumer *, long) () at sun/nio/ch/EPollSelectorImpl.java:120 -#4 0x00000000011d8977 in sun.nio.ch.SelectorImpl::lockAndDoSelect(java.util.function.Consumer *, long) () at sun/nio/ch/SelectorImpl.java:124 -#5 0x0000000000705720 in sun.nio.ch.SelectorImpl::select () at sun/nio/ch/SelectorImpl.java:141 -#6 io.netty.channel.nio.SelectedSelectionKeySetSelector::select(void) () at io/netty/channel/nio/SelectedSelectionKeySetSelector.java:68 -#7 0x0000000000703c2e in io.netty.channel.nio.NioEventLoop::select(long) () at io/netty/channel/nio/NioEventLoop.java:813 -#8 0x0000000000701a5f in io.netty.channel.nio.NioEventLoop::run(void) () at io/netty/channel/nio/NioEventLoop.java:460 -#9 0x00000000008496df in io.netty.util.concurrent.SingleThreadEventExecutor$4::run(void) () at io/netty/util/concurrent/SingleThreadEventExecutor.java:986 -#10 0x0000000000860762 in io.netty.util.internal.ThreadExecutorMap$2::run(void) () at io/netty/util/internal/ThreadExecutorMap.java:74 -#11 0x0000000000840da4 in io.netty.util.concurrent.FastThreadLocalRunnable::run(void) () at io/netty/util/concurrent/FastThreadLocalRunnable.java:30 -#12 0x0000000000b7dd04 in java.lang.Thread::run(void) () at java/lang/Thread.java:829 -#13 0x0000000000547dcc in com.oracle.svm.core.thread.JavaThreads::threadStartRoutine(org.graalvm.nativeimage.ObjectHandle *) () at com/oracle/svm/core/thread/JavaThreads.java:597 -#14 0x00000000004e15b1 in com.oracle.svm.core.posix.thread.PosixJavaThreads::pthreadStartRoutine(com.oracle.svm.core.thread.JavaThreads$ThreadStartData *) () at com/oracle/svm/core/posix/thread/PosixJavaThreads.java:194 -#15 0x0000000000480984 in com.oracle.svm.core.code.IsolateEnterStub::PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(com.oracle.svm.core.thread.JavaThreads$ThreadStartData *) () at com/oracle/svm/core/posix/thread/PosixJavaThreads.java:182 -#16 0x00007ffff7be0b1a in start_thread (arg=) at pthread_create.c:443 -#17 0x00007ffff7c65650 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 - -Thread 21 (Thread 0x7fffc97fa640 (LWP 1028871) "tloop-thread-14"): -#0 0x00007ffff7c64c2e in epoll_wait (epfd=53, events=0x2cd0970, maxevents=1024, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30 -#1 0x000000000166e01c in Java_sun_nio_ch_EPoll_wait () -#2 0x00000000011bfece in sun.nio.ch.EPoll::wait(int, long, int, int) () at com/oracle/svm/core/stack/JavaFrameAnchors.java:42 -#3 0x00000000011c08d2 in sun.nio.ch.EPollSelectorImpl::doSelect(java.util.function.Consumer *, long) () at sun/nio/ch/EPollSelectorImpl.java:120 -#4 0x00000000011d8977 in sun.nio.ch.SelectorImpl::lockAndDoSelect(java.util.function.Consumer *, long) () at sun/nio/ch/SelectorImpl.java:124 -#5 0x0000000000705720 in sun.nio.ch.SelectorImpl::select () at sun/nio/ch/SelectorImpl.java:141 -#6 io.netty.channel.nio.SelectedSelectionKeySetSelector::select(void) () at io/netty/channel/nio/SelectedSelectionKeySetSelector.java:68 -#7 0x0000000000703c2e in io.netty.channel.nio.NioEventLoop::select(long) () at io/netty/channel/nio/NioEventLoop.java:813 -#8 0x0000000000701a5f in io.netty.channel.nio.NioEventLoop::run(void) () at io/netty/channel/nio/NioEventLoop.java:460 -#9 0x00000000008496df in io.netty.util.concurrent.SingleThreadEventExecutor$4::run(void) () at io/netty/util/concurrent/SingleThreadEventExecutor.java:986 -#10 0x0000000000860762 in io.netty.util.internal.ThreadExecutorMap$2::run(void) () at io/netty/util/internal/ThreadExecutorMap.java:74 -#11 0x0000000000840da4 in io.netty.util.concurrent.FastThreadLocalRunnable::run(void) () at io/netty/util/concurrent/FastThreadLocalRunnable.java:30 -#12 0x0000000000b7dd04 in java.lang.Thread::run(void) () at java/lang/Thread.java:829 -#13 0x0000000000547dcc in com.oracle.svm.core.thread.JavaThreads::threadStartRoutine(org.graalvm.nativeimage.ObjectHandle *) () at com/oracle/svm/core/thread/JavaThreads.java:597 -#14 0x00000000004e15b1 in com.oracle.svm.core.posix.thread.PosixJavaThreads::pthreadStartRoutine(com.oracle.svm.core.thread.JavaThreads$ThreadStartData *) () at com/oracle/svm/core/posix/thread/PosixJavaThreads.java:194 -#15 0x0000000000480984 in com.oracle.svm.core.code.IsolateEnterStub::PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(com.oracle.svm.core.thread.JavaThreads$ThreadStartData *) () at com/oracle/svm/core/posix/thread/PosixJavaThreads.java:182 -#16 0x00007ffff7be0b1a in start_thread (arg=) at pthread_create.c:443 -#17 0x00007ffff7c65650 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 - -Thread 20 (Thread 0x7fffc9ffb640 (LWP 1028870) "tloop-thread-13"): -... ----- - -Note, however, that despite being able to get a backtrace we can still not list the source code at point with the `list` command. - -[source,bash] ----- -(gdb) list -164 in com/oracle/svm/core/UnmanagedMemoryUtil.java ----- - -This is because `gdb` is not aware of the location of the source files. -We are running the executable outside of the target directory. -To fix this we can either rerun `gdb` from the target directory or, -run `directory target/debugging-native-1.0.0-SNAPSHOT-native-image-source-jar/sources` e.g.: - -[source,bash] ----- -(gdb) directory target/debugging-native-1.0.0-SNAPSHOT-native-image-source-jar/sources -Source directories searched: /data/target/debugging-native-1.0.0-SNAPSHOT-native-image-source-jar/sources:$cdir:$cwd -(gdb) list -164 UnsignedWord offset = size; -165 while (offset.aboveOrEqual(32)) { -166 offset = offset.subtract(32); -167 Pointer src = from.add(offset); -168 Pointer dst = to.add(offset); -169 long l24 = src.readLong(24); -170 long l16 = src.readLong(16); -171 long l8 = src.readLong(8); -172 long l0 = src.readLong(0); -173 dst.writeLong(24, l24); ----- - -We can now examine line `169` and get a first hint of what might be wrong -(in this case we see that it fails at the first read from src which contains the address `0x0000`), -or walk up the stack using `gdb`’s `up` command to see what part of our code led to this situation. -To learn more about using gdb to debug native executables see -https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/DebugInfo.md[here]. - -== Frequently Asked Questions - -=== Why is the process of generating a native executable slow? - -Native executable generation is a multi-step process. -The analysis and compile steps are the most expensive of all and hence the ones that dominate the time spent generating the native executable. - -In the analysis phase, a static points-to analysis starts from the main method of the program to find out what is reachable. -As new classes are discovered, some of them will be initialized during this process depending on the configuration. -In the next step, the heap is snapshotted and checks are made to see which types need to be available at runtime. -The initialization and heap snapshotting can cause new types to be discovered, in which case the process is repeated. -The process stops when a fixed point is reached, that is when the reachable program grows no more. - -The compilation step is pretty straightforward, it simply compiles all the reachable code. - -The time spent in analysis and compilation phases depends on how big the application is. -The bigger the application, the longer it takes to compile it. -However, there are certain features that can have an exponential effect. -For example, when registering types and methods for reflection access, -the analysis can’t easily see what’s behind those types or methods, -so it has to do more work to complete the analysis step. - -=== Why is runtime performance of a native executable inferior compared to JVM mode? - -As with most things in life there are some trade offs involved when choosing native compilation over JVM mode. -So depending on the application the runtime performance of a native application might be slower compared to JVM mode, -though that’s not always the case. - -JVM execution of an application includes runtime optimization of the code that profits from profile information built up during execution. -That includes the opportunities to inline a lot more of the code, -locate hot code on direct paths (i.e. ensure better instruction cache locality) -and cut out a lot of the code on cold paths (on the JVM a lot of code does not get compiled until something tries to execute it -- it is replaced with a trap that causes deoptimization and recompilation). -Removal of cold paths provides many more optimization opportunities than are available for ahead of time compilation because it significantly reduces the branch complexity and combinatorial logic of the smaller amount of hot code that is compiled. - -By contrast, native executable compilation has to cater for all possible execution paths when it compiles code offline since it does not know which are the hot or cold paths and cannot use the trick of planting a trap and recompiling if it is hit. For the same reason it cannot load the dice to ensure that code cache conflicts are minimized by co-locating hot paths adjacent. -Native executable generation is able to remove some code because of the closed world hypothesis but that is often not enough to make up for all the benefits that profiling and runtime deopt & recompile provides to the JVM JIT compiler. - -Note, however, that there is a price you pay for that potentially higher JVM speed, and that price is in increased resource usage (both CPU and memory) and startup time because: - -1. it takes some time before the JIT kicks in and fully optimizes the code. -2. the JIT compiler consumes resources that could be utilized by the application. -3. the JVM has to retain a lot more metadata and compiler/profiler data to support the better optimizations that it can offer. - -The reason for 1) is that code needs to be run interpreted for some time and, possibly, to be compiled several times before all potential optimizations are realized to ensure that: - -a. it’s worth compiling that code path, i.e. it’s being executed enough times, and that -b. we have enough profiling data to perform meaningful optimizations. - -An implication of 1) is that for small, short-lived applications a native executable may well be a better bet. -Although the compiled code is not as well optimized it is available straight away. - -The reason for 2) is that the JVM is essentially running the compiler at runtime in parallel with the application itself. -In the case of native executables the compiler is run ahead of time removing the need to run the compiler in parallel with the application. - -There are several reasons for 3). The JVM does not have a closed world assumption. -So, it has to be able to recompile code if loading of new classes implies that it needs to revise optimistic assumptions made at compile time. -For example, if an interface has only one implementation it can make a call jump directly to that code. -However, in the case where a second implementation class is loaded the call site needs to be patched to test the type of the receiver instance and jump to the code that belongs to its class. -Supporting optimizations like this one requires keeping track of a lot more details of the class base than a native executable, -including recording the full class and interface hierarchy, -details of which methods override other methods, all method bytecode etc. -In a native executable most of the details of class structure and bytecode can be ignored at run time. - -The JVM also has to cope with changes to the class base or execution profiles that result in a thread going down a previously cold path. -At that point the JVM has to jump out of the compiled code into the interpreter and recompile the code to cater for a new execution profile that includes the previously cold path. -That requires keeping runtime info that allow a compiled stack frame to be replaced with one or more interpreter frames. -It also requires runtime extensible profile counters to be allocated and updated to track what has or has not been executed. - -=== Why are native executables “big”? - -This can be attributed to a number of different reasons: - -1. Native executables include not only the application code but also, library code, and JDK code. -As a result a more fair comparison would be to compare the native executable’s size with the size of the application, -plus the size of the libraries it uses, plus the size of the JDK. -Especially the JDK part is not negligible even in simple applications like HelloWorld. -To get a glance on what is being pulled in the image one can use `-H:+PrintUniverse` when building the native executable. -2. Some features are always included in a native executable even though they might never be actually used at run time. -An example of such a feature is garbage collection. -At compile time we can’t be sure whether an application will need to run garbage collection at run time, -so garbage collection is always included in native executables increasing their size even if not necessary. -Native executable generation relies on static code analysis to identify which code paths are reachable, -and static code analysis can be imprecise leading to more code getting into the image than what’s actually needed. - -There is a https://github.com/oracle/graal/issues/287[GraalVM upstream issue] -with some interesting discussions about that topic. - -=== What version of Mandrel was used to generate a binary? - -One can see which Mandrel version was used to generate a binary by inspecting the binary as follows: - -[source,bash] ----- -$ strings target/debugging-native-1.0.0-SNAPSHOT-runner | grep GraalVM -com.oracle.svm.core.VM=GraalVM 22.0.0.2-Final Java 11 Mandrel Distribution ----- - -=== How do I enable GC logging in native executables? - -Executing the native executable with `-XX:PrintFlags=` prints a list of flags that can be passed to native executables. -For various levels of GC logging one may use: - -[source,bash] ----- -$ ./target/debugging-native-1.0.0-SNAPSHOT-runner -XX:PrintFlags= -... - -XX:±PrintGC Print summary GC information after each collection. Default: - (disabled). - -XX:±PrintGCSummary Print summary GC information after application main method returns. Default: - (disabled). - -XX:±PrintGCTimeStamps Print a time stamp at each collection, if +PrintGC or +VerboseGC. Default: - (disabled). - -XX:±PrintGCTimes Print the time for each of the phases of each collection, if +VerboseGC. Default: - (disabled). - -XX:±PrintHeapShape Print the shape of the heap before and after each collection, if +VerboseGC. Default: - (disabled). -... - -XX:±TraceHeapChunks Trace heap chunks during collections, if +VerboseGC and +PrintHeapShape. Default: - (disabled). - -XX:±VerboseGC Print more information about the heap before and after each collection. Default: - (disabled). ----- - -=== Can I get a heap dump of a native executable? e.g. if it runs out of memory - -Unfortunately generating heap dumps in hprof format, -which can be opened by tools such as VisualVM or Eclipse MAT, -can only be achieved with -https://www.graalvm.org/reference-manual/native-image/NativeImageHeapdump[GraalVM Enterprise Edition]. -Mandrel, which is based on the GraalVM Community Edition, does not have this capability. - -Although Mandrel can generate debug symbols and these contain a fair amount of information about object layouts, -including what is a pointer field vs a primitive field, this information cannot be used as is to detect memory leaks or find dominator objects. -This is because it has no idea what constitutes a root pointer nor how to recursively trace pointers from those roots. - -=== Can I build and run this examples outside of a container in Linux? - -Yes you can. -In fact, debugging native executables on a Linux bare metal box offers the best possible experience. -In this kind of environments, root access is not needed except to install packages required to run some debug steps, -or to enable `perf` to gather events at the kernel. - -These are the packages you'll need on your Linux environment to run through the different debugging sections: - -[source,bash] ----- -# dnf (rpm-based) -sudo dnf install binutils gdb perf perl-open -# Debian-based distributions: -sudo apt install binutils gdb perf ----- - -=== Generating flame graphs is slow, or produces errors, what can I do? - -There are multiple ways in which a native executable produced by Mandrel can be profiled. -All the methods require you to pass in the `-H:-DeleteLocalSymbols` option. - -The method shown in this reference guide generates a binary with DWARF debug information, -runs it via `perf record` and then uses `perf script` and flame graph tooling to generate the flamegraphs. -However, the `perf script` post-processing step done on this binary can appear to be slow or can show some DWARF errors. - -An alternative method to generate flame graphs is to pass in `-H:+PreserveFramePointer` when generating the native executable instead of generating the DWARF debug information. -It instructs the binary to use an extra register for the frame pointer. -This enables `perf` to do stack walking to profile the runtime behaviour. -To generate the native executable using these flags, do the following: - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative - -Dquarkus.native.additional-build-args=-H:+PreserveFramePointer,-H:-DeleteLocalSymbols ----- - -To get runtime profiling information out of the native executable, simply do: - -[source,bash] ----- -perf record -F 1009 -g -a ./target/debugging-native-1.0.0-SNAPSHOT-runner ----- - -The recommended method for generating runtime profiling information is using the debug information rather than generating a binary that preserves the frame pointer. -This is because adding debug information to the native executable build process has no negative runtime performance whereas preserving the frame pointer does. - -DWARF debug info is generated in a separate file and can even be omitted in the default deployment and only be transferred and used on demand, -for profiling or debugging purposes. -Furthermore, the presence of debug info enables `perf` to show us the relevant source code lines as well, -hence it does not bloat the native executable itself. -To do that, simply call `perf report` with an extra parameter to show source code lines: - -[source,bash] ----- -perf report --stdio -F+srcline -... -83.69% 0.00% GreetingResource.java:20 ... -... -83.69% 0.00% AbstractStringBuilder.java:1025 ... -... -83.69% 0.00% ArraycopySnippets.java:95 ... ----- - -The performance penalty of preserving the frame pointer is due to using the extra register for stack walking, -particularly in `x86_64` compared to `aarch64` where there are less registers available. -Using this extra register reduces the number of registers that are available for other work, -which can lead to performance penalties. - -=== I think I’ve found a bug in native-image, how can I debug it with the IDE? - -Although it is possible to remote debug processes within containers, -it might be easier to step-by-step debug native-image by installing Mandrel locally and adding it to the path of the shell process. - -Native executable generation is the result of two Java processes that are executed sequentially. -The first process is very short and its main job is to set things up for the second process. -The second process is the one that takes care of most of the work. -The steps to debug one process or the other vary slightly. - -Let’s discuss first how to debug the second process, -which is the one you most likely to want to debug. -The starting point for the second process is the `com.oracle.svm.hosted.NativeImageGeneratorRunner` class. -To debug this process, simply add `--debug-attach=*:8000` as an additional build time argument: - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative \ - -Dquarkus.native.additional-build-args=--debug-attach=*:8000 ----- - -The starting point for the first process is the `com.oracle.svm.driver.NativeImages` class. -In GraalVM CE distributions, this first process is a binary, so debugging it in the traditional way with a Java IDE is not possible. -However, Mandrel distributions (or locally built GraalVM CE instances) keep this as a normal Java process, -so you can remote debug this process by adding the `--vm.agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:8000` as an additional build argument, e.g. - -[source,bash,subs=attributes+] ----- -$ ./mvnw package -DskipTests -Pnative \ - -Dquarkus.native.additional-build-args=--vm.agentlib:jdwp=transport=dt_socket\\,server=y\\,suspend=y\\,address=*:8000 ----- - -=== Can I use JFR/JMC to debug or profile native binaries? - -https://docs.oracle.com/javacomponents/jmc-5-4/jfr-runtime-guide/about.htm#JFRUH170[Java Flight Recorder (JFR)] and -https://www.oracle.com/java/technologies/jdk-mission-control.html[JDK Mission Control (JMC)] -can be used to profile native binaries since GraalVM CE 21.2.0. -However, JFR in GraalVM is currently significantly limited in capabilities compared to HotSpot. -The custom event API is fully supported, but many VM level features are unavailable. -They will be added in future releases. Current limitations are: - -* Minimal VM level events -* No old object sampling -* No stacktrace tracing -* No Streaming API for JDK 17 - -To use JFR add the application property: `-Dquarkus.native.enable-vm-inspection=true`. -E.g. - -[source,bash,subs=attributes+] ----- -./mvnw package -DskipTests -Pnative -Dquarkus.native.container-build=true \ - -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-mandrel:{mandrel-flavor} \ - -Dquarkus.native.enable-vm-inspection=true ----- - -Once the image is compiled, enable and start JFR via runtime flags: `-XX:+FlightRecorder` and `-XX:StartFlightRecording`. For example: - -[source,bash] ----- -./target/debugging-native-1.0.0-SNAPSHOT-runner \ - -XX:+FlightRecorder \ - -XX:StartFlightRecording="filename=recording.jfr" ----- - -For more details on using JFR, see https://www.graalvm.org/reference-manual/native-image/JFR[here]. diff --git a/_versions/2.7/guides/openapi-swaggerui.adoc b/_versions/2.7/guides/openapi-swaggerui.adoc deleted file mode 100644 index 380c66f01cb..00000000000 --- a/_versions/2.7/guides/openapi-swaggerui.adoc +++ /dev/null @@ -1,539 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using OpenAPI and Swagger UI - -include::./attributes.adoc[] - -This guide explains how your Quarkus application can expose its API description through an OpenAPI specification and -how you can test it via a user-friendly UI named Swagger UI. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this guide, we create a straightforward REST application to demonstrate how fast you can expose your API -specification and benefit from a user interface to test it. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can skip right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `openapi-swaggerui-quickstart` {quickstarts-tree-url}/openapi-swaggerui-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: openapi-swaggerui-quickstart -:create-app-extensions: resteasy,resteasy-jackson -include::includes/devtools/create-app.adoc[] - -== Expose a REST Resource - -We will create a `Fruit` bean and a `FruitResource` REST resource -(feel free to take a look to the xref:rest-json.adoc[Writing JSON REST services guide] if your want more details on how to build a REST API with Quarkus). - -[source,java] ----- -package org.acme.openapi.swaggerui; - -public class Fruit { - - public String name; - public String description; - - public Fruit() { - } - - public Fruit(String name, String description) { - this.name = name; - this.description = description; - } -} ----- - -[source,java] ----- -package org.acme.openapi.swaggerui; - -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.DELETE; -import javax.ws.rs.Path; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.Set; - -@Path("/fruits") -public class FruitResource { - - private Set fruits = Collections.newSetFromMap(Collections.synchronizedMap(new LinkedHashMap<>())); - - public FruitResource() { - fruits.add(new Fruit("Apple", "Winter fruit")); - fruits.add(new Fruit("Pineapple", "Tropical fruit")); - } - - @GET - public Set list() { - return fruits; - } - - @POST - public Set add(Fruit fruit) { - fruits.add(fruit); - return fruits; - } - - @DELETE - public Set delete(Fruit fruit) { - fruits.removeIf(existingFruit -> existingFruit.name.contentEquals(fruit.name)); - return fruits; - } -} ----- - -You can also create a test: - -[source,java] ----- -package org.acme.openapi.swaggerui; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import javax.ws.rs.core.MediaType; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.Matchers.containsInAnyOrder; - -@QuarkusTest -public class FruitResourceTest { - - @Test - public void testList() { - given() - .when().get("/fruits") - .then() - .statusCode(200) - .body("$.size()", is(2), - "name", containsInAnyOrder("Apple", "Pineapple"), - "description", containsInAnyOrder("Winter fruit", "Tropical fruit")); - } - - @Test - public void testAdd() { - given() - .body("{\"name\": \"Pear\", \"description\": \"Winter fruit\"}") - .header("Content-Type", MediaType.APPLICATION_JSON) - .when() - .post("/fruits") - .then() - .statusCode(200) - .body("$.size()", is(3), - "name", containsInAnyOrder("Apple", "Pineapple", "Pear"), - "description", containsInAnyOrder("Winter fruit", "Tropical fruit", "Winter fruit")); - - given() - .body("{\"name\": \"Pear\", \"description\": \"Winter fruit\"}") - .header("Content-Type", MediaType.APPLICATION_JSON) - .when() - .delete("/fruits") - .then() - .statusCode(200) - .body("$.size()", is(2), - "name", containsInAnyOrder("Apple", "Pineapple"), - "description", containsInAnyOrder("Winter fruit", "Tropical fruit")); - } -} ----- - -== Expose OpenAPI Specifications - -Quarkus provides the https://github.com/smallrye/smallrye-open-api/[Smallrye OpenAPI] extension compliant with the -https://github.com/eclipse/microprofile-open-api/[MicroProfile OpenAPI] -specification in order to generate your API -https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.0.md[OpenAPI v3 specification]. - -You just need to add the `openapi` extension to your Quarkus application: - -:add-extension-extensions: quarkus-smallrye-openapi -include::includes/devtools/extension-add.adoc[] - -This will add the following to your `pom.xml`: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-openapi - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-openapi") ----- - -Now, we are ready to run our application: - -include::includes/devtools/dev.adoc[] - -Once your application is started, you can make a request to the default `/q/openapi` endpoint: - -[source,shell] ----- -$ curl http://localhost:8080/q/openapi -openapi: 3.0.3 -info: - title: Generated API - version: "1.0" -paths: - /fruits: - get: - responses: - 200: - description: OK - content: - application/json: {} - post: - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Fruit' - responses: - 200: - description: OK - content: - application/json: {} - delete: - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Fruit' - responses: - 200: - description: OK - content: - application/json: {} -components: - schemas: - Fruit: - properties: - description: - type: string - name: - type: string ----- - -[NOTE] -==== -If you do not like the default endpoint location `/q/openapi`, you can change it by adding the following configuration to your `application.properties`: -[source, properties] ----- -quarkus.smallrye-openapi.path=/swagger ----- -==== - -[NOTE] -==== -You can request the OpenAPI in JSON format using the `format` query parameter. For example: -[source, properties] ----- -/q/openapi?format=json ----- -==== - - -Hit `CTRL+C` to stop the application. - -== Providing Application Level OpenAPI Annotations - -There are some MicroProfile OpenAPI annotations which describe global API information, such as the following: - -* API Title -* API Description -* Version -* Contact Information -* License - -All of this information (and more) can be included in your Java code by using appropriate OpenAPI annotations -on a JAX-RS `Application` class. Because a JAX-RS `Application` class is not required in Quarkus, you will -likely have to create one. It can simply be an empty class that extends `javax.ws.rs.core.Application`. This -empty class can then be annotated with various OpenAPI annotations such as `@OpenAPIDefinition`. For example: - -[source, java] ----- -@OpenAPIDefinition( - tags = { - @Tag(name="widget", description="Widget operations."), - @Tag(name="gasket", description="Operations related to gaskets") - }, - info = @Info( - title="Example API", - version = "1.0.1", - contact = @Contact( - name = "Example API Support", - url = "http://exampleurl.com/contact", - email = "techsupport@example.com"), - license = @License( - name = "Apache 2.0", - url = "https://www.apache.org/licenses/LICENSE-2.0.html")) -) -public class ExampleApiApplication extends Application { -} ----- - -Another option, that is a feature provided by SmallRye and not part of the specification, is to use configuration to add this global API information. -This way, you do not need to have a JAX-RS `Application` class, and you can name the API differently per environment. - -For example, add the following to your `application.properties`: - -[source, properties] ----- -quarkus.smallrye-openapi.info-title=Example API -%dev.quarkus.smallrye-openapi.info-title=Example API (development) -%test.quarkus.smallrye-openapi.info-title=Example API (test) -quarkus.smallrye-openapi.info-version=1.0.1 -quarkus.smallrye-openapi.info-description=Just an example service -quarkus.smallrye-openapi.info-terms-of-service=Your terms here -quarkus.smallrye-openapi.info-contact-email=techsupport@example.com -quarkus.smallrye-openapi.info-contact-name=Example API Support -quarkus.smallrye-openapi.info-contact-url=http://exampleurl.com/contact -quarkus.smallrye-openapi.info-license-name=Apache 2.0 -quarkus.smallrye-openapi.info-license-url=https://www.apache.org/licenses/LICENSE-2.0.html ----- - -This will give you similar information as the `@OpenAPIDefinition` example above. - -== Loading OpenAPI Schema From Static Files - -Instead of dynamically creating OpenAPI schemas from annotation scanning, Quarkus also supports serving static OpenAPI documents. -The static file to serve must be a valid document conforming to the https://swagger.io/docs/specification[OpenAPI specification]. -An OpenAPI document that conforms to the OpenAPI Specification is itself a valid JSON object, that can be represented in `yaml` or `json` formats. - -To see this in action, we'll put OpenAPI documentation under `META-INF/openapi.yaml` for our `/fruits` endpoints. -Quarkus also supports alternative <> if you prefer. - -[source,yaml] ----- -openapi: 3.0.1 -info: - title: Static OpenAPI document of fruits resource - description: Fruit resources Open API documentation - version: "1.0" - -servers: - - url: http://localhost:8080/q/openapi - description: Optional dev mode server description - -paths: - /fruits: - get: - responses: - 200: - description: OK - fruits list - content: - application/json: {} - post: - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Fruit' - responses: - 200: - description: new fruit resource created - content: - application/json: {} - delete: - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Fruit' - responses: - 200: - description: OK - fruit resource deleted - content: - application/json: {} -components: - schemas: - Fruit: - properties: - description: - type: string - name: - type: string ----- -By default, a request to `/q/openapi` will serve the combined OpenAPI document from the static file and the model generated from application endpoints code. -We can however change this to only serve the static OpenAPI document by adding `mp.openapi.scan.disable=true` configuration into `application.properties`. - -Now, a request to `/q/openapi` endpoint will serve the static OpenAPI document instead of the generated one. - -[[open-document-paths]] -[TIP] -.About OpenAPI document paths -==== -Quarkus supports various paths to store your OpenAPI document under. We recommend you place it under `META-INF/openapi.yml`. -Alternative paths are: - -* `META-INF/openapi.yaml` -* `META-INF/openapi.yml` -* `META-INF/openapi.json` -* `WEB-INF/classes/META-INF/openapi.yml` -* `WEB-INF/classes/META-INF/openapi.yaml` -* `WEB-INF/classes/META-INF/openapi.json` - -Live reload of static OpenAPI document is supported during development. A modification to your OpenAPI document will be picked up on fly by Quarkus. -==== - -== Changing the OpenAPI version - -By default, when the document is generated, the OpenAPI version used will be `3.0.3`. If you use a static file as mentioned above, the version in the file -will be used. You can also define the version in SmallRye using the following configuration: - -[source, properties] ----- -mp.openapi.extensions.smallrye.openapi=3.0.2 ----- - -This might be useful if your API goes through a Gateway that needs a certain version. - -== Auto-generation of Operation Id - -The https://swagger.io/docs/specification/paths-and-operations/[Operation Id] can be set using the `@Operation` annotation, and is in many cases useful when using a tool to generate a client stub from the schema. -The Operation Id is typically used for the method name in the client stub. In SmallRye, you can auto-generate this Operation Id by using the following configuration: - -[source, properties] ----- -mp.openapi.extensions.smallrye.operationIdStrategy=METHOD ----- - -Now you do not need to use the `@Operation` annotation. While generating the document, the method name will be used for the Operation Id. - -.The strategies available for generating the Operation Id -|=== -|Property value |Description - -|`METHOD` -|Use the method name. - -|`CLASS_METHOD` -|Use the class name (without the package) plus the method. - -|`PACKAGE_CLASS_METHOD` -|Use the class name plus the method name. -|=== - -[[dev-mode]] -== Use Swagger UI for development - -When building APIs, developers want to test them quickly. https://swagger.io/tools/swagger-ui/[Swagger UI] is a great tool -permitting to visualize and interact with your APIs. -The UI is automatically generated from your OpenAPI specification. - -The Quarkus `smallrye-openapi` extension comes with a `swagger-ui` extension embedding a properly configured Swagger UI page. - -[NOTE] -==== -By default, Swagger UI is only available when Quarkus is started in dev or test mode. - -If you want to make it available in production too, you can include the following configuration in your `application.properties`: -[source, properties] ----- -quarkus.swagger-ui.always-include=true ----- - -This is a build time property, it cannot be changed at runtime after your application is built. - -==== - -By default, Swagger UI is accessible at `/q/swagger-ui`. - -You can update the `/swagger-ui` sub path by setting the `quarkus.swagger-ui.path` property in your `application.properties`: - -[source, properties] ----- -quarkus.swagger-ui.path=my-custom-path ----- - -[WARNING] -==== -The value `/` is not allowed as it blocks the application from serving anything else. -A value prefixed with '/' makes it absolute and not relative. -==== - -Now, we are ready to run our application: - -[source,bash] ----- -./mvnw compile quarkus:dev ----- - -You can check the Swagger UI path in your application's log: - -[source] ----- -00:00:00,000 INFO [io.qua.swa.run.SwaggerUiServletExtension] Swagger UI available at /q/swagger-ui ----- - -Once your application is started, you can go to http://localhost:8080/q/swagger-ui and play with your API. - -You can visualize your API's operations and schemas. -image:openapi-swaggerui-guide-screenshot01.png[alt=Visualize your API] - -You can also interact with your API in order to quickly test it. -image:openapi-swaggerui-guide-screenshot02.png[alt=Interact with your API] - -Hit `CTRL+C` to stop the application. - -=== Styling -You can style the swagger ui by supplying your own logo and css. - -==== Logo - -To supply your own logo, you need to place a file called `logo.png` in `src/main/resources/META-INF/branding`. - -This will set the logo for all UIs (not just swagger ui), so in this case also GraphQL-UI and Health-UI (if included). - -If you only want to apply this logo to swagger-ui (and not globally to all UIs) call the file `smallrye-open-api-ui.png` -rather than `logo.png`. - -==== CSS - -To supply your own css that override/enhance style in the html, you need to place a file called `style.css` in `src/main/resources/META-INF/branding`. - -This will add that css to all UIs (not just swagger ui), so in this case also GraphQL-UI and Health-UI (if included). - -If you only want to apply this style to swagger-ui (and not globally to all UIs) call the file `smallrye-open-api-ui.css` -rather than `style.css`. - -For more information on styling, read this blog entry: https://quarkus.io/blog/stylish-api/ - -=== Cross Origin Resource Sharing - -If you plan to consume this application from a Single Page Application running on a different domain, you will need to configure CORS (Cross-Origin Resource Sharing). Please read the xref:http-reference.adoc#cors-filter[HTTP CORS documentation] for more details. - -== Configuration Reference - -=== OpenAPI - -include::{generated-dir}/config/quarkus-smallrye-openapi.adoc[opts=optional, leveloffset=+1] - -=== Swagger UI - -include::{generated-dir}/config/quarkus-swaggerui.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/opentelemetry.adoc b/_versions/2.7/guides/opentelemetry.adoc deleted file mode 100644 index 45e53640f78..00000000000 --- a/_versions/2.7/guides/opentelemetry.adoc +++ /dev/null @@ -1,358 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using OpenTelemetry - -include::./attributes.adoc[] - -This guide explains how your Quarkus application can utilize https://opentelemetry.io/[OpenTelemetry] to provide -distributed tracing for interactive web applications. - -== Prerequisites - -:prerequisites-docker-compose: -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this guide, we create a straightforward REST application to demonstrate distributed tracing. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can skip right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `opentelemetry-quickstart` {quickstarts-tree-url}/opentelemetry-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: opentelemetry-quickstart -:create-app-extensions: resteasy,quarkus-opentelemetry-exporter-otlp -include::includes/devtools/create-app.adoc[] - -This command generates the Maven project and imports the `quarkus-opentelemetry-exporter-otlp` extension, -which includes the OpenTelemetry support, -and a gRPC span exporter for https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/otlp.md[OTLP]. - -If you already have your Quarkus project configured, you can add the `quarkus-opentelemetry-exporter-otlp` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: opentelemetry-otlp-exporter -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-opentelemetry-exporter-otlp - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-opentelemetry-exporter-otlp") ----- - -=== Examine the JAX-RS resource - -Create a `src/main/java/org/acme/opentelemetry/TracedResource.java` file with the following content: - -[source,java] ----- -package org.acme.opentelemetry; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import org.jboss.logging.Logger; - -@Path("/hello") -public class TracedResource { - - private static final Logger LOG = Logger.getLogger(TracedResource.class); - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - LOG.info("hello"); - return "hello"; - } -} ----- - -Notice that there is no tracing specific code included in the application. By default, requests sent to this -endpoint will be traced without any required code changes. - -=== Create the configuration - -There are two ways to configure the OTLP gRPC Exporter within the application. - -The first approach is by providing the properties within the `src/main/resources/application.properties` file: - -[source,properties] ----- -quarkus.application.name=myservice // <1> -quarkus.opentelemetry.enabled=true // <2> -quarkus.opentelemetry.tracer.exporter.otlp.endpoint=http://localhost:4317 // <3> - -quarkus.opentelemetry.tracer.exporter.otlp.headers=Authorization=Bearer my_secret // <4> ----- - -<1> All spans created from the application will include an OpenTelemetry `Resource` indicating the span was created by the `myservice` application. If not set, it will default to the artifact id. -<2> Whether OpenTelemetry is enabled or not. The default is `true`, but shown here to indicate how it can be disabled -<3> gRPC endpoint for sending spans -<4> Optional gRPC headers commonly used for authentication - -== Run the application - -The first step is to configure and start the https://opentelemetry.io/docs/collector/[OpenTelemetry Collector] to receive, process and export telemetry data to https://www.jaegertracing.io/[Jaeger] that will display the captured traces. - -Configure the OpenTelemetry Collector by creating an `otel-collector-config.yaml` file: - -[source,yaml,subs="attributes"] ----- -receivers: - otlp: - protocols: - grpc: - endpoint: otel-collector:4317 - otlp/2: - protocols: - grpc: - endpoint: otel-collector:55680 - -exporters: - jaeger: - endpoint: jaeger-all-in-one:14250 - tls: - insecure: true - -processors: - batch: - -extensions: - health_check: - -service: - extensions: [health_check] - pipelines: - traces: - receivers: [otlp,otlp/2] - processors: [batch] - exporters: [jaeger] - ----- - -Start the OpenTelemetry Collector and Jaeger system via the following `docker-compose.yml` file that you can launch via `docker-compose up -d`: - -[source,yaml,subs="attributes"] ----- -version: "2" -services: - - # Jaeger - jaeger-all-in-one: - image: jaegertracing/all-in-one:latest - ports: - - "16686:16686" - - "14268" - - "14250" - # Collector - otel-collector: - image: otel/opentelemetry-collector:latest - command: ["--config=/etc/otel-collector-config.yaml"] - volumes: - - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml - ports: - - "13133:13133" # Health_check extension - - "4317:4317" # OTLP gRPC receiver - - "55680:55680" # OTLP gRPC receiver alternative port - depends_on: - - jaeger-all-in-one ----- - -Now we are ready to run our application. If using `application.properties` to configure the tracer: - -include::includes/devtools/dev.adoc[] - -or if configuring the OTLP gRPC endpoint via JVM arguments: - -:dev-additional-parameters: -Djvm.args="-Dquarkus.opentelemetry.tracer.exporter.otlp.endpoint=http://localhost:55680" -include::includes/devtools/dev.adoc[] -:!dev-additional-parameters: - -With the OpenTelemetry Collector, Jaeger system and application running, you can make a request to the provided endpoint: - -[source,shell] ----- -$ curl http://localhost:8080/hello -hello ----- - -Then visit the http://localhost:16686[Jaeger UI] to see the tracing information. - -Hit `CTRL+C` to stop the application. - -== Additional configuration -Some use cases will require custom configuration of OpenTelemetry. -These sections will outline what is necessary to properly configure it. - -=== ID Generator -The OpenTelemetry extension will use by default a random https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#id-generators[ID Generator] -when creating the trace and span identifier. - -Some vendor-specific protocols need a custom ID Generator, you can override the default one by creating a producer. -The OpenTelemetry extension will detect the `IdGenerator` CDI bean and will use it when configuring the tracer producer. - -[source,java] ----- -@Singleton -public class CustomConfiguration { - - /** Creates a custom IdGenerator for OpenTelemetry */ - @Produces - @Singleton - public IdGenerator idGenerator() { - return AwsXrayIdGenerator.getInstance(); - } -} ----- - -=== Propagators -OpenTelemetry propagates cross-cutting concerns through https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/api-propagators.md[propagators] that will share an underlying `Context` for storing state and accesing -data across the lifespan of a distributed transaction. - -By default, the OpenTelemetry extension enables the https://www.w3.org/TR/trace-context/[W3C Trace Context] and the https://www.w3.org/TR/baggage/[W3C Baggage] -propagators, you can however choose any of the supported OpenTelemetry propagators by setting the `propagators` config that is described in the <>. - -[NOTE] -==== -The `b3`, `b3multi`, `jaeger` and `ottrace` propagators will need the https://github.com/open-telemetry/opentelemetry-java/tree/main/extensions/trace-propagators[trace-propagators] -extension to be added as a dependency to your project. - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.opentelemetry - opentelemetry-extension-trace-propagators - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.opentelemetry:opentelemetry-extension-trace-propagators") ----- - -The `xray` propagator will need the https://github.com/open-telemetry/opentelemetry-java/tree/main/extensions/aws[aws] extension to be added as a dependency to your project. - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.opentelemetry - opentelemetry-extension-aws - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.opentelemetry:opentelemetry-extension-aws") ----- -==== - -=== Resource -A https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/overview.md#resources[resource] is a representation -of the entity that is producing telemetry, it adds attributes to the exported trace to characterize who is producing the trace. - -You can add attributes by setting the `resource-attributes` tracer config that is described in the <>. -Since this property can be overridden at runtime, the OpenTelemetry extension will pick up its value following the order of precedence that -is described in the xref:config-reference.adoc#configuration_sources[Quarkus Configuration Reference]. - -If by any means you need to use a custom resource or one that is provided by one of the https://github.com/open-telemetry/opentelemetry-java/tree/main/sdk-extensions[OpenTelemetry SDK Extensions] -you can create multiple resource producers. The OpenTelemetry extension will detect the `Resource` CDI beans and will merge them when configuring the tracer producer. - -[source,java] ----- -@ApplicationScoped -public class CustomConfiguration { - - @Produces - @ApplicationScoped - public Resource osResource() { - return OsResource.get(); - } - - @Produces - @ApplicationScoped - public Resource ecsResource() { - return EcsResource.get(); - } -} ----- - -=== Sampler -A https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#sampling[sampler] decides whether -a trace should be sampled and exported, controlling noise and overhead by reducing the number of sample of traces collected and sent -to the collector. - -You can set a https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#built-in-samplers[built-in sampler] -simply by setting the desired sampler config described in the <>. - -If you need to use a custom sampler or to use one that is provided by one of the https://github.com/open-telemetry/opentelemetry-java/tree/main/sdk-extensions[OpenTelemetry SDK Extensions] -you can create a sampler producer. The OpenTelemetry extension will detect the `Sampler` CDI bean and will use it when configuring the tracer producer. - -[source,java] ----- -@Singleton -public class CustomConfiguration { - - /** Creates a custom sampler for OpenTelemetry */ - @Produces - @Singleton - public Sampler sampler() { - return JaegerRemoteSampler.builder() - .setServiceName("my-service") - .build(); - } -} ----- - -== Additional instrumentation - -Some Quarkus extensions will require additional code to ensure traces are propagated to subsequent execution. -These sections will outline what is necessary to propagate traces across process boundaries. - -The instrumentation documented in this section has been tested with Quarkus and works in both standard and native mode. - -=== SmallRye Reactive Messaging - Kafka - -When using the SmallRye Reactive Messaging extension for Kafka, -we are able to propagate the span into the Kafka Record with: - -[source,java] ----- -Metadata.of(TracingMetadata.withPrevious(Context.current())); ----- - -The above creates a `Metadata` object we can add to the `Message` being produced, -which retrieves the OpenTelemetry `Context` to extract the current span for propagation. - -[[configuration-reference]] -== OpenTelemetry Configuration Reference - -include::{generated-dir}/config/quarkus-opentelemetry.adoc[leveloffset=+1, opts=optional] -include::{generated-dir}/config/quarkus-opentelemetry-exporter-otlp.adoc[leveloffset=+1, opts=optional] diff --git a/_versions/2.7/guides/opentracing.adoc b/_versions/2.7/guides/opentracing.adoc deleted file mode 100644 index 96c05d906f4..00000000000 --- a/_versions/2.7/guides/opentracing.adoc +++ /dev/null @@ -1,324 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using OpenTracing - -include::./attributes.adoc[] - -This guide explains how your Quarkus application can utilize OpenTracing to provide distributed tracing for -interactive web applications. - -== Prerequisites - -:prerequisites-docker: -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this guide, we create a straightforward REST application to demonstrate distributed tracing. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can skip right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `opentracing-quickstart` {quickstarts-tree-url}/opentracing-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: opentracing-quickstart -:create-app-extensions: resteasy,quarkus-smallrye-opentracing -include::includes/devtools/create-app.adoc[] - -This command generates the Maven project and imports the `smallrye-opentracing` extension, which -includes the OpenTracing support and the default https://www.jaegertracing.io/[Jaeger] tracer. - -If you already have your Quarkus project configured, you can add the `smallrye-opentracing` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: smallrye-opentracing -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-opentracing - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-opentracing") ----- - -=== Examine the JAX-RS resource - -Create the `src/main/java/org/acme/opentracing/TracedResource.java` file with the following content: - -[source,java] ----- -package org.acme.opentracing; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import org.jboss.logging.Logger; - -@Path("/hello") -public class TracedResource { - - private static final Logger LOG = Logger.getLogger(TracedResource.class); - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - LOG.info("hello"); // <1> - return "hello"; - } -} ----- - -<1> The log event carries OpenTracing information as well. In order to print OpenTracing information to the console output, the console log handler with the required OpenTracing event's keys needs to be defined in the `application.properties` file. - -Notice that there is no tracing specific code included in the application. By default, requests sent to this -endpoint will be traced without any code changes being required. It is also possible to enhance the tracing information. -This can be achieved by https://github.com/smallrye/smallrye-opentracing/[SmallRye OpenTracing] an implementation of -https://github.com/eclipse/microprofile-opentracing/[MicroProfile OpenTracing]. - -=== Create the configuration - -There are two ways to configure the Jaeger tracer within the application. - -The first approach is by providing the properties within the `src/main/resources/application.properties` file: - -[source,properties] ----- -quarkus.jaeger.service-name=myservice // <1> -quarkus.jaeger.sampler-type=const // <2> -quarkus.jaeger.sampler-param=1 // <3> -quarkus.log.console.format=%d{HH:mm:ss} %-5p traceId=%X{traceId}, parentId=%X{parentId}, spanId=%X{spanId}, sampled=%X{sampled} [%c{2.}] (%t) %s%e%n // <4> ----- - -<1> If the `quarkus.jaeger.service-name` property (or `JAEGER_SERVICE_NAME` environment variable) is not provided then a "no-op" tracer will be configured, resulting in no tracing data being reported to the backend. -<2> Setup a sampler, that uses a constant sampling strategy. -<3> Sample all requests. Set sampler-param to somewhere between 0 and 1, e.g. 0.50, if you do not wish to sample all requests. -<4> Add trace IDs into log message. - -The second approach is to supply the properties as https://www.jaegertracing.io/docs/latest/client-features/[environment variables]. These can be specified as `jvm.args` as shown in the following section. - -== Run the application - -The first step is to start the tracing system to collect and display the captured traces: - -[source,bash] ----- -docker run -p 5775:5775/udp -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778 -p 16686:16686 -p 14268:14268 jaegertracing/all-in-one:latest ----- - -Now we are ready to run our application. If using `application.properties` to configure the tracer: - -include::includes/devtools/dev.adoc[] - -or if configuring the tracer via environment variables: - -:dev-additional-parameters: -Djvm.args="-DJAEGER_SERVICE_NAME=myservice -DJAEGER_SAMPLER_TYPE=const -DJAEGER_SAMPLER_PARAM=1" -include::includes/devtools/dev.adoc[] -:!dev-additional-parameters: - -Once both the application and tracing system are started, you can make a request to the provided endpoint: - -[source,shell] ----- -$ curl http://localhost:8080/hello -hello ----- -When the first request has been submitted, the Jaeger tracer within the app will be initialized: - -[source] ----- -2019-10-16 09:35:23,464 INFO [io.jae.Configuration] (executor-thread-1) Initialized tracer=JaegerTracer(version=Java-0.34.0, serviceName=myservice, reporter=RemoteReporter(sender=UdpSender(), closeEnqueueTimeout=1000), sampler=ConstSampler(decision=true, tags={sampler.type=const, sampler.param=true}), tags={hostname=localhost.localdomain, jaeger.version=Java-0.34.0, ip=127.0.0.1}, zipkinSharedRpcSpan=false, expandExceptionLogs=false, useTraceId128Bit=false) -13:20:11 INFO traceId=1336b2b0a76a96a3, parentId=0, spanId=1336b2b0a76a96a3, sampled=true [or.ac.qu.TracedResource] (executor-thread-63) hello ----- - -Then visit the http://localhost:16686[Jaeger UI] to see the tracing information. - -Hit `CTRL+C` to stop the application. - -== Tracing additional methods - -REST endpoints are automatically traced. -If you need to trace additional methods, you can add the `org.eclipse.microprofile.opentracing.Traced` annotation to CDI bean classes or their non-private methods. - -This can be useful to trace incoming requests from non-REST calls (like request coming from a message) or to create spans inside a trace. - -Here is an example of a `FrancophoneService` which methods are traced. - -[source, java] ----- -import javax.enterprise.context.ApplicationScoped; - -import org.eclipse.microprofile.opentracing.Traced; - -@Traced -@ApplicationScoped -public class FrancophoneService { - - public String bonjour() { - return "bonjour"; - } -} ----- - -NOTE: The best way to add OpenTracing capability to reactive messaging based applications is by adding the `Traced` annotation to all incoming methods. - -== Additional instrumentation - -The https://github.com/opentracing-contrib[OpenTracing API Contributions project] offers additional instrumentation that can be used to add tracing to a large variety of technologies/components. - -The instrumentation documented in this section has been tested with Quarkus and works in both standard and native mode. - -=== JDBC - -The https://github.com/opentracing-contrib/java-jdbc[JDBC instrumentation] will add a span for each JDBC queries done by your application, to enable it, add the following dependency to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.opentracing.contrib - opentracing-jdbc - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.opentracing.contrib:opentracing-jdbc") ----- - -As it uses a dedicated JDBC driver, you must configure your datasource and Hibernate to use it. - -[source, properties] ----- -quarkus.datasource.db-kind=postgresql -# add ':tracing' to your database URL -quarkus.datasource.jdbc.url=jdbc:tracing:postgresql://localhost:5432/mydatabase -# use the 'TracingDriver' instead of the one for your database -quarkus.datasource.jdbc.driver=io.opentracing.contrib.jdbc.TracingDriver -# configure Hibernate dialect -quarkus.hibernate-orm.dialect=org.hibernate.dialect.PostgreSQLDialect ----- - - -=== Kafka - -The https://github.com/opentracing-contrib/java-kafka-client[Kafka instrumentation] will add a span for each message sent to or received from a Kafka topic. To enable it, add the following dependency to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.opentracing.contrib - opentracing-kafka-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.opentracing.contrib:opentracing-kafka-client") ----- - -It contains OpenTracing interceptors that must be registered on Kafka producers and consumers. - -If you followed the xref:kafka.adoc[Kafka guide], the interceptors can be added on the `generated-price` and the `prices` channels as follows: - -[source, properties] ----- -# Configure the Kafka sink (we write to it) -mp.messaging.outgoing.generated-price.connector=smallrye-kafka -mp.messaging.outgoing.generated-price.topic=prices -mp.messaging.outgoing.generated-price.value.serializer=org.apache.kafka.common.serialization.IntegerSerializer -mp.messaging.outgoing.generated-price.interceptor.classes=io.opentracing.contrib.kafka.TracingProducerInterceptor - -# Configure the Kafka source (we read from it) -mp.messaging.incoming.prices.connector=smallrye-kafka -mp.messaging.incoming.prices.value.deserializer=org.apache.kafka.common.serialization.IntegerDeserializer -mp.messaging.incoming.prices.interceptor.classes=io.opentracing.contrib.kafka.TracingConsumerInterceptor ----- - -NOTE: `interceptor.classes` accept a list of classes separated by a comma. - - -=== MongoDB client - -The https://github.com/opentracing-contrib/java-mongo-driver[Mongo Driver instrumentation] will add a span for each command executed by your application. To enable it, add the following dependency to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.opentracing.contrib - opentracing-mongo-common - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.opentracing.contrib:opentracing-mongo-common") ----- - -It contains the OpenTracing CommandListener that will be registered on the configuration of the mongo client. -Following the xref:mongodb.adoc[MongoDB guide], the command listener will be registered defining the config property as follows: - -[source, properties] ----- -# Enable tracing commands in mongodb client -quarkus.mongodb.tracing.enabled=true ----- - -=== Zipkin compatibility mode - -To enable it, add the following dependency to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.jaegertracing - jaeger-zipkin - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.jaegertracing:jaeger-zipkin") ----- - -It contains the dependencies to convert the request to zipkin format. -The zipkin compatibility mode will be activated after defining the config property as follows: - -[source, properties] ----- -# Enable zipkin compatibility mode -quarkus.jaeger.zipkin.compatibility-mode=true ----- - -[[configuration-reference]] -== Jaeger Configuration Reference - -include::{generated-dir}/config/quarkus-jaeger.adoc[leveloffset=+1, opts=optional] diff --git a/_versions/2.7/guides/optaplanner.adoc b/_versions/2.7/guides/optaplanner.adoc deleted file mode 100644 index 5fb26b1228c..00000000000 --- a/_versions/2.7/guides/optaplanner.adoc +++ /dev/null @@ -1,1099 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= OptaPlanner - Using AI to optimize a schedule with OptaPlanner - -include::./attributes.adoc[] -:config-file: application.properties - -This guide walks you through the process of creating a Quarkus application -with https://www.optaplanner.org/[OptaPlanner]'s constraint solving Artificial Intelligence (AI). - -== What you will build - -You will build a REST application that optimizes a school timetable for students and teachers: - -image::optaplanner-time-table-app-screenshot.png[] - -Your service will assign `Lesson` instances to `Timeslot` and `Room` instances automatically -by using AI to adhere to hard and soft scheduling _constraints_, such as the following examples: - -* A room can have at most one lesson at the same time. -* A teacher can teach at most one lesson at the same time. -* A student can attend at most one lesson at the same time. -* A teacher prefers to teach all lessons in the same room. -* A teacher prefers to teach sequential lessons and dislikes gaps between lessons. -* A student dislikes sequential lessons on the same subject. - -Mathematically speaking, school timetabling is an _NP-hard_ problem. -This means it is difficult to scale. -Simply brute force iterating through all possible combinations takes millions of years -for a non-trivial dataset, even on a supercomputer. -Luckily, AI constraint solvers such as OptaPlanner have advanced algorithms -that deliver a near-optimal solution in a reasonable amount of time. - -[[solution]] -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in {quickstarts-tree-url}/optaplanner-quickstart[the `optaplanner-quickstart` directory]. - -== Prerequisites - -:prerequisites-time: 30 minutes -:prerequisites-no-graalvm: -include::includes/devtools/prerequisites.adoc[] - -== The build file and the dependencies - -Use https://code.quarkus.io/[code.quarkus.io] to generate an application -with the following extensions, for Maven or Gradle: - -* RESTEasy JAX-RS (`quarkus-resteasy`) -* RESTEasy Jackson (`quarkus-resteasy-jackson`) -* OptaPlanner (`optaplanner-quarkus`) -* OptaPlanner Jackson (`optaplanner-quarkus-jackson`) - -Alternatively, generate it from the command line: - -:create-app-artifact-id: optaplanner-quickstart -:create-app-extensions: resteasy,resteasy-jackson,optaplanner-quarkus,optaplanner-quarkus-jackson -include::includes/devtools/create-app.adoc[] - -This will include the following dependencies in your build file: - -[source,xml,subs=attributes+,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - - - io.quarkus.platform - quarkus-bom - {quarkus-version} - pom - import - - - io.quarkus.platform - quarkus-optaplanner-bom - {quarkus-version} - pom - import - - - - - - io.quarkus - quarkus-resteasy - - - io.quarkus - quarkus-resteasy-jackson - - - org.optaplanner - optaplanner-quarkus - - - org.optaplanner - optaplanner-quarkus-jackson - - - - io.quarkus - quarkus-junit5 - test - - ----- - -[source,gradle,subs=attributes+,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -dependencies { - implementation enforcedPlatform("io.quarkus.platform:quarkus-bom:{quarkus-version}") - implementation enforcedPlatform("io.quarkus.platform:quarkus-optaplanner-bom:{quarkus-version}") - implementation 'io.quarkus:quarkus-resteasy' - implementation 'io.quarkus:quarkus-resteasy-jackson' - implementation 'org.optaplanner:optaplanner-quarkus' - implementation 'org.optaplanner:optaplanner-quarkus-jackson' - - testImplementation 'io.quarkus:quarkus-junit5' -} ----- - -== Model the domain objects - -Your goal is to assign each lesson to a time slot and a room. -You will create these classes: - -image::optaplanner-time-table-class-diagram-pure.png[] - -=== Timeslot - -The `Timeslot` class represents a time interval when lessons are taught, -for example, `Monday 10:30 - 11:30` or `Tuesday 13:30 - 14:30`. -For simplicity's sake, all time slots have the same duration -and there are no time slots during lunch or other breaks. - -A time slot has no date, because a high school schedule just repeats every week. -So there is no need for https://docs.optaplanner.org/latestFinal/optaplanner-docs/html_single/index.html#continuousPlanning[continuous planning]. - -Create the `src/main/java/org/acme/optaplanner/domain/Timeslot.java` class: - -[source,java] ----- -package org.acme.optaplanner.domain; - -import java.time.DayOfWeek; -import java.time.LocalTime; - -public class Timeslot { - - private DayOfWeek dayOfWeek; - private LocalTime startTime; - private LocalTime endTime; - - public Timeslot() { - } - - public Timeslot(DayOfWeek dayOfWeek, LocalTime startTime, LocalTime endTime) { - this.dayOfWeek = dayOfWeek; - this.startTime = startTime; - this.endTime = endTime; - } - - public DayOfWeek getDayOfWeek() { - return dayOfWeek; - } - - public LocalTime getStartTime() { - return startTime; - } - - public LocalTime getEndTime() { - return endTime; - } - - @Override - public String toString() { - return dayOfWeek + " " + startTime; - } - -} ----- - -Because no `Timeslot` instances change during solving, a `Timeslot` is called a _problem fact_. -Such classes do not require any OptaPlanner specific annotations. - -Notice the `toString()` method keeps the output short, -so it is easier to read OptaPlanner's `DEBUG` or `TRACE` log, as shown later. - -=== Room - -The `Room` class represents a location where lessons are taught, -for example, `Room A` or `Room B`. -For simplicity's sake, all rooms are without capacity limits -and they can accommodate all lessons. - -Create the `src/main/java/org/acme/optaplanner/domain/Room.java` class: - -[source,java] ----- -package org.acme.optaplanner.domain; - -public class Room { - - private String name; - - public Room() { - } - - public Room(String name) { - this.name = name; - } - - public String getName() { - return name; - } - - @Override - public String toString() { - return name; - } - -} ----- - -`Room` instances do not change during solving, so `Room` is also a _problem fact_. - -=== Lesson - -During a lesson, represented by the `Lesson` class, -a teacher teaches a subject to a group of students, -for example, `Math by A.Turing for 9th grade` or `Chemistry by M.Curie for 10th grade`. -If a subject is taught multiple times per week by the same teacher to the same student group, -there are multiple `Lesson` instances that are only distinguishable by `id`. -For example, the 9th grade has six math lessons a week. - -During solving, OptaPlanner changes the `timeslot` and `room` fields of the `Lesson` class, -to assign each lesson to a time slot and a room. -Because OptaPlanner changes these fields, `Lesson` is a _planning entity_: - -image::optaplanner-time-table-class-diagram-annotated.png[] - -Most of the fields in the previous diagram contain input data, except for the orange fields: -A lesson's `timeslot` and `room` fields are unassigned (`null`) in the input data -and assigned (not `null`) in the output data. -OptaPlanner changes these fields during solving. -Such fields are called planning variables. -In order for OptaPlanner to recognize them, -both the `timeslot` and `room` fields require an `@PlanningVariable` annotation. -Their containing class, `Lesson`, requires an `@PlanningEntity` annotation. - -Create the `src/main/java/org/acme/optaplanner/domain/Lesson.java` class: - -[source,java] ----- -package org.acme.optaplanner.domain; - -import org.optaplanner.core.api.domain.entity.PlanningEntity; -import org.optaplanner.core.api.domain.lookup.PlanningId; -import org.optaplanner.core.api.domain.variable.PlanningVariable; - -@PlanningEntity -public class Lesson { - - @PlanningId - private Long id; - - private String subject; - private String teacher; - private String studentGroup; - - @PlanningVariable(valueRangeProviderRefs = "timeslotRange") - private Timeslot timeslot; - @PlanningVariable(valueRangeProviderRefs = "roomRange") - private Room room; - - public Lesson() { - } - - public Lesson(Long id, String subject, String teacher, String studentGroup) { - this.id = id; - this.subject = subject; - this.teacher = teacher; - this.studentGroup = studentGroup; - } - - public Long getId() { - return id; - } - - public String getSubject() { - return subject; - } - - public String getTeacher() { - return teacher; - } - - public String getStudentGroup() { - return studentGroup; - } - - public Timeslot getTimeslot() { - return timeslot; - } - - public void setTimeslot(Timeslot timeslot) { - this.timeslot = timeslot; - } - - public Room getRoom() { - return room; - } - - public void setRoom(Room room) { - this.room = room; - } - - @Override - public String toString() { - return subject + "(" + id + ")"; - } - -} ----- - -The `Lesson` class has an `@PlanningEntity` annotation, -so OptaPlanner knows that this class changes during solving -because it contains one or more planning variables. - -The `timeslot` field has an `@PlanningVariable` annotation, -so OptaPlanner knows that it can change its value. -In order to find potential `Timeslot` instances to assign to this field, -OptaPlanner uses the `valueRangeProviderRefs` property to connect to a value range provider -(explained later) that provides a `List` to pick from. - -The `room` field also has an `@PlanningVariable` annotation, for the same reasons. - -[NOTE] -==== -Determining the `@PlanningVariable` fields for an arbitrary constraint solving use case -is often challenging the first time. -Read https://docs.optaplanner.org/latestFinal/optaplanner-docs/html_single/index.html#domainModelingGuide[the domain modeling guidelines] -to avoid common pitfalls. -==== - -== Define the constraints and calculate the score - -A _score_ represents the quality of a specific solution. -The higher the better. -OptaPlanner looks for the best solution, which is the solution with the highest score found in the available time. -It might be the _optimal_ solution. - -Because this use case has hard and soft constraints, -use the `HardSoftScore` class to represent the score: - -* Hard constraints must not be broken. For example: _A room can have at most one lesson at the same time._ -* Soft constraints should not be broken. For example: _A teacher prefers to teach in a single room._ - -Hard constraints are weighted against other hard constraints. -Soft constraints are weighted too, against other soft constraints. -*Hard constraints always outweigh soft constraints*, regardless of their respective weights. - -To calculate the score, you could implement an `EasyScoreCalculator` class: - -[source,java] ----- -public class TimeTableEasyScoreCalculator implements EasyScoreCalculator { - - @Override - public HardSoftScore calculateScore(TimeTable timeTable) { - List lessonList = timeTable.getLessonList(); - int hardScore = 0; - for (Lesson a : lessonList) { - for (Lesson b : lessonList) { - if (a.getTimeslot() != null && a.getTimeslot().equals(b.getTimeslot()) - && a.getId() < b.getId()) { - // A room can accommodate at most one lesson at the same time. - if (a.getRoom() != null && a.getRoom().equals(b.getRoom())) { - hardScore--; - } - // A teacher can teach at most one lesson at the same time. - if (a.getTeacher().equals(b.getTeacher())) { - hardScore--; - } - // A student can attend at most one lesson at the same time. - if (a.getStudentGroup().equals(b.getStudentGroup())) { - hardScore--; - } - } - } - } - int softScore = 0; - // Soft constraints are only implemented in the optaplanner-quickstarts code - return HardSoftScore.of(hardScore, softScore); - } - -} ----- - -Unfortunately **that does not scale well**, because it is non-incremental: -every time a lesson is assigned to a different time slot or room, -all lessons are re-evaluated to calculate the new score. - -Instead, create a `src/main/java/org/acme/optaplanner/solver/TimeTableConstraintProvider.java` class -to perform incremental score calculation. -It uses OptaPlanner's ConstraintStream API which is inspired by Java Streams and SQL: - -[source,java] ----- -package org.acme.optaplanner.solver; - -import org.acme.optaplanner.domain.Lesson; -import org.optaplanner.core.api.score.buildin.hardsoft.HardSoftScore; -import org.optaplanner.core.api.score.stream.Constraint; -import org.optaplanner.core.api.score.stream.ConstraintFactory; -import org.optaplanner.core.api.score.stream.ConstraintProvider; -import org.optaplanner.core.api.score.stream.Joiners; - -public class TimeTableConstraintProvider implements ConstraintProvider { - - @Override - public Constraint[] defineConstraints(ConstraintFactory constraintFactory) { - return new Constraint[] { - // Hard constraints - roomConflict(constraintFactory), - teacherConflict(constraintFactory), - studentGroupConflict(constraintFactory), - // Soft constraints are only implemented in the optaplanner-quickstarts code - }; - } - - private Constraint roomConflict(ConstraintFactory constraintFactory) { - // A room can accommodate at most one lesson at the same time. - - // Select a lesson ... - return constraintFactory - .from(Lesson.class) - // ... and pair it with another lesson ... - .join(Lesson.class, - // ... in the same timeslot ... - Joiners.equal(Lesson::getTimeslot), - // ... in the same room ... - Joiners.equal(Lesson::getRoom), - // ... and the pair is unique (different id, no reverse pairs) ... - Joiners.lessThan(Lesson::getId)) - // ... then penalize each pair with a hard weight. - .penalize("Room conflict", HardSoftScore.ONE_HARD); - } - - private Constraint teacherConflict(ConstraintFactory constraintFactory) { - // A teacher can teach at most one lesson at the same time. - return constraintFactory.from(Lesson.class) - .join(Lesson.class, - Joiners.equal(Lesson::getTimeslot), - Joiners.equal(Lesson::getTeacher), - Joiners.lessThan(Lesson::getId)) - .penalize("Teacher conflict", HardSoftScore.ONE_HARD); - } - - private Constraint studentGroupConflict(ConstraintFactory constraintFactory) { - // A student can attend at most one lesson at the same time. - return constraintFactory.from(Lesson.class) - .join(Lesson.class, - Joiners.equal(Lesson::getTimeslot), - Joiners.equal(Lesson::getStudentGroup), - Joiners.lessThan(Lesson::getId)) - .penalize("Student group conflict", HardSoftScore.ONE_HARD); - } - -} ----- - -The `ConstraintProvider` scales an order of magnitude better than the `EasyScoreCalculator`: __O__(n) instead of __O__(n²). - -== Gather the domain objects in a planning solution - -A `TimeTable` wraps all `Timeslot`, `Room`, and `Lesson` instances of a single dataset. -Furthermore, because it contains all lessons, each with a specific planning variable state, -it is a _planning solution_ and it has a score: - -* If lessons are still unassigned, then it is an _uninitialized_ solution, -for example, a solution with the score `-4init/0hard/0soft`. -* If it breaks hard constraints, then it is an _infeasible_ solution, -for example, a solution with the score `-2hard/-3soft`. -* If it adheres to all hard constraints, then it is a _feasible_ solution, -for example, a solution with the score `0hard/-7soft`. - -Create the `src/main/java/org/acme/optaplanner/domain/TimeTable.java` class: - -[source,java] ----- -package org.acme.optaplanner.domain; - -import java.util.List; - -import org.optaplanner.core.api.domain.solution.PlanningEntityCollectionProperty; -import org.optaplanner.core.api.domain.solution.PlanningScore; -import org.optaplanner.core.api.domain.solution.PlanningSolution; -import org.optaplanner.core.api.domain.solution.ProblemFactCollectionProperty; -import org.optaplanner.core.api.domain.valuerange.ValueRangeProvider; -import org.optaplanner.core.api.score.buildin.hardsoft.HardSoftScore; - -@PlanningSolution -public class TimeTable { - - @ValueRangeProvider(id = "timeslotRange") - @ProblemFactCollectionProperty - private List timeslotList; - @ValueRangeProvider(id = "roomRange") - @ProblemFactCollectionProperty - private List roomList; - @PlanningEntityCollectionProperty - private List lessonList; - - @PlanningScore - private HardSoftScore score; - - public TimeTable() { - } - - public TimeTable(List timeslotList, List roomList, List lessonList) { - this.timeslotList = timeslotList; - this.roomList = roomList; - this.lessonList = lessonList; - } - - public List getTimeslotList() { - return timeslotList; - } - - public List getRoomList() { - return roomList; - } - - public List getLessonList() { - return lessonList; - } - - public HardSoftScore getScore() { - return score; - } - -} ----- - -The `TimeTable` class has an `@PlanningSolution` annotation, -so OptaPlanner knows that this class contains all of the input and output data. - -Specifically, this class is the input of the problem: - -* A `timeslotList` field with all time slots -** This is a list of problem facts, because they do not change during solving. -* A `roomList` field with all rooms -** This is a list of problem facts, because they do not change during solving. -* A `lessonList` field with all lessons -** This is a list of planning entities, because they change during solving. -** Of each `Lesson`: -*** The values of the `timeslot` and `room` fields are typically still `null`, so unassigned. -They are planning variables. -*** The other fields, such as `subject`, `teacher` and `studentGroup`, are filled in. -These fields are problem properties. - -However, this class is also the output of the solution: - -* A `lessonList` field for which each `Lesson` instance has non-null `timeslot` and `room` fields after solving -* A `score` field that represents the quality of the output solution, for example, `0hard/-5soft` - -=== The value range providers - -The `timeslotList` field is a value range provider. -It holds the `Timeslot` instances which OptaPlanner can pick from to assign to the `timeslot` field of `Lesson` instances. -The `timeslotList` field has an `@ValueRangeProvider` annotation to connect the `@PlanningVariable` with the `@ValueRangeProvider`, -by matching the value of the `id` property with the value of the `valueRangeProviderRefs` property of the `@PlanningVariable` annotation in the `Lesson` class. - -Following the same logic, the `roomList` field also has an `@ValueRangeProvider` annotation. - -=== The problem fact and planning entity properties - -Furthermore, OptaPlanner needs to know which `Lesson` instances it can change -as well as how to retrieve the `Timeslot` and `Room` instances used for score calculation -by your `TimeTableConstraintProvider`. - -The `timeslotList` and `roomList` fields have an `@ProblemFactCollectionProperty` annotation, -so your `TimeTableConstraintProvider` can select _from_ those instances. - -The `lessonList` has an `@PlanningEntityCollectionProperty` annotation, -so OptaPlanner can change them during solving -and your `TimeTableConstraintProvider` can select _from_ those too. - -== Create the solver service - -Now you are ready to put everything together and create a REST service. -But solving planning problems on REST threads causes HTTP timeout issues. -Therefore, the Quarkus extension injects a `SolverManager` instance, -which runs solvers in a separate thread pool -and can solve multiple datasets in parallel. - -Create the `src/main/java/org/acme/optaplanner/rest/TimeTableResource.java` class: - -[source,java] ----- -package org.acme.optaplanner.rest; - -import java.util.UUID; -import java.util.concurrent.ExecutionException; -import javax.inject.Inject; -import javax.ws.rs.POST; -import javax.ws.rs.Path; - -import org.acme.optaplanner.domain.TimeTable; -import org.optaplanner.core.api.solver.SolverJob; -import org.optaplanner.core.api.solver.SolverManager; - -@Path("/timeTable") -public class TimeTableResource { - - @Inject - SolverManager solverManager; - - @POST - @Path("/solve") - public TimeTable solve(TimeTable problem) { - UUID problemId = UUID.randomUUID(); - // Submit the problem to start solving - SolverJob solverJob = solverManager.solve(problemId, problem); - TimeTable solution; - try { - // Wait until the solving ends - solution = solverJob.getFinalBestSolution(); - } catch (InterruptedException | ExecutionException e) { - throw new IllegalStateException("Solving failed.", e); - } - return solution; - } - -} ----- - -For simplicity's sake, this initial implementation waits for the solver to finish, -which can still cause an HTTP timeout. -The _complete_ implementation avoids HTTP timeouts much more elegantly. - -== Set the termination time - -Without a termination setting or a termination event, the solver runs forever. -To avoid that, limit the solving time to five seconds. -That is short enough to avoid the HTTP timeout. - -Create the `src/main/resources/application.properties` file: - -[source,properties] ----- -# The solver runs only for 5 seconds to avoid a HTTP timeout in this simple implementation. -# It's recommended to run for at least 5 minutes ("5m") otherwise. -quarkus.optaplanner.solver.termination.spent-limit=5s ----- - - -== Run the application - -First start the application: - -include::includes/devtools/dev.adoc[] - -=== Try the application - -Now that the application is running, you can test the REST service. -You can use any REST client you wish. -The following example uses the Linux command `curl` to send a POST request: - -[source,shell] ----- -$ curl -i -X POST http://localhost:8080/timeTable/solve -H "Content-Type:application/json" -d '{"timeslotList":[{"dayOfWeek":"MONDAY","startTime":"08:30:00","endTime":"09:30:00"},{"dayOfWeek":"MONDAY","startTime":"09:30:00","endTime":"10:30:00"}],"roomList":[{"name":"Room A"},{"name":"Room B"}],"lessonList":[{"id":1,"subject":"Math","teacher":"A. Turing","studentGroup":"9th grade"},{"id":2,"subject":"Chemistry","teacher":"M. Curie","studentGroup":"9th grade"},{"id":3,"subject":"French","teacher":"M. Curie","studentGroup":"10th grade"},{"id":4,"subject":"History","teacher":"I. Jones","studentGroup":"10th grade"}]}' ----- - -After about five seconds, according to the termination spent time defined in your `application.properties`, -the service returns an output similar to the following example: - -[source] ----- -HTTP/1.1 200 -Content-Type: application/json -... - -{"timeslotList":...,"roomList":...,"lessonList":[{"id":1,"subject":"Math","teacher":"A. Turing","studentGroup":"9th grade","timeslot":{"dayOfWeek":"MONDAY","startTime":"08:30:00","endTime":"09:30:00"},"room":{"name":"Room A"}},{"id":2,"subject":"Chemistry","teacher":"M. Curie","studentGroup":"9th grade","timeslot":{"dayOfWeek":"MONDAY","startTime":"09:30:00","endTime":"10:30:00"},"room":{"name":"Room A"}},{"id":3,"subject":"French","teacher":"M. Curie","studentGroup":"10th grade","timeslot":{"dayOfWeek":"MONDAY","startTime":"08:30:00","endTime":"09:30:00"},"room":{"name":"Room B"}},{"id":4,"subject":"History","teacher":"I. Jones","studentGroup":"10th grade","timeslot":{"dayOfWeek":"MONDAY","startTime":"09:30:00","endTime":"10:30:00"},"room":{"name":"Room B"}}],"score":"0hard/0soft"} ----- - -Notice that your application assigned all four lessons to one of the two time slots and one of the two rooms. -Also notice that it conforms to all hard constraints. -For example, M. Curie's two lessons are in different time slots. - -On the server side, the `info` log show what OptaPlanner did in those five seconds: - -[source,options="nowrap"] ----- -... Solving started: time spent (33), best score (-8init/0hard/0soft), environment mode (REPRODUCIBLE), random (JDK with seed 0). -... Construction Heuristic phase (0) ended: time spent (73), best score (0hard/0soft), score calculation speed (459/sec), step total (4). -... Local Search phase (1) ended: time spent (5000), best score (0hard/0soft), score calculation speed (28949/sec), step total (28398). -... Solving ended: time spent (5000), best score (0hard/0soft), score calculation speed (28524/sec), phase total (2), environment mode (REPRODUCIBLE). ----- - -=== Test the application - -A good application includes test coverage. - -==== Test the constraints - -To test each constraint in isolation, use a `ConstraintVerifier` in unit tests. -It tests each constraint's corner cases in isolation from the other tests, -which lowers maintenance when adding a new constraint with proper test coverage. - -Add a `optaplanner-test` dependency in your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.optaplanner - optaplanner-test - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("org.optaplanner:optaplanner-test") ----- - -Create the `src/test/java/org/acme/optaplanner/solver/TimeTableConstraintProviderTest.java` class: - -[source,java] ----- -package org.acme.optaplanner.solver; - -import java.time.DayOfWeek; -import java.time.LocalTime; - -import javax.inject.Inject; - -import io.quarkus.test.junit.QuarkusTest; -import org.acme.optaplanner.domain.Lesson; -import org.acme.optaplanner.domain.Room; -import org.acme.optaplanner.domain.TimeTable; -import org.acme.optaplanner.domain.Timeslot; -import org.junit.jupiter.api.Test; -import org.optaplanner.test.api.score.stream.ConstraintVerifier; - -@QuarkusTest -class TimeTableConstraintProviderTest { - - private static final Room ROOM = new Room("Room1"); - private static final Timeslot TIMESLOT1 = new Timeslot(DayOfWeek.MONDAY, LocalTime.of(9,0), LocalTime.NOON); - private static final Timeslot TIMESLOT2 = new Timeslot(DayOfWeek.TUESDAY, LocalTime.of(9,0), LocalTime.NOON); - - @Inject - ConstraintVerifier constraintVerifier; - - @Test - void roomConflict() { - Lesson firstLesson = new Lesson(1, "Subject1", "Teacher1", "Group1"); - Lesson conflictingLesson = new Lesson(2, "Subject2", "Teacher2", "Group2"); - Lesson nonConflictingLesson = new Lesson(3, "Subject3", "Teacher3", "Group3"); - - firstLesson.setRoom(ROOM); - firstLesson.setTimeslot(TIMESLOT1); - - conflictingLesson.setRoom(ROOM); - conflictingLesson.setTimeslot(TIMESLOT1); - - nonConflictingLesson.setRoom(ROOM); - nonConflictingLesson.setTimeslot(TIMESLOT2); - - constraintVerifier.verifyThat(TimeTableConstraintProvider::roomConflict) - .given(firstLesson, conflictingLesson, nonConflictingLesson) - .penalizesBy(1); - } - -} ----- - -This test verifies that the constraint `TimeTableConstraintProvider::roomConflict`, -when given three lessons in the same room, where two lessons have the same timeslot, -it penalizes with a match weight of `1`. -So with a constraint weight of `10hard` it would reduce the score by `-10hard`. - -Notice how `ConstraintVerifier` ignores the constraint weight during testing - even -if those constraint weights are hard coded in the `ConstraintProvider` - because -constraints weights change regularly before going into production. -This way, constraint weight tweaking does not break the unit tests. - -==== Test the solver - -In a JUnit test, generate a test dataset and send it to the `TimeTableResource` to solve. - -Create the `src/test/java/org/acme/optaplanner/rest/TimeTableResourceTest.java` class: - -[source,java] ----- -package org.acme.optaplanner.rest; - -import java.time.DayOfWeek; -import java.time.LocalTime; -import java.util.ArrayList; -import java.util.List; - -import javax.inject.Inject; - -import io.quarkus.test.junit.QuarkusTest; -import org.acme.optaplanner.domain.Room; -import org.acme.optaplanner.domain.Timeslot; -import org.acme.optaplanner.domain.Lesson; -import org.acme.optaplanner.domain.TimeTable; -import org.acme.optaplanner.rest.TimeTableResource; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.Timeout; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; - -@QuarkusTest -public class TimeTableResourceTest { - - @Inject - TimeTableResource timeTableResource; - - @Test - @Timeout(600_000) - public void solve() { - TimeTable problem = generateProblem(); - TimeTable solution = timeTableResource.solve(problem); - assertFalse(solution.getLessonList().isEmpty()); - for (Lesson lesson : solution.getLessonList()) { - assertNotNull(lesson.getTimeslot()); - assertNotNull(lesson.getRoom()); - } - assertTrue(solution.getScore().isFeasible()); - } - - private TimeTable generateProblem() { - List timeslotList = new ArrayList<>(); - timeslotList.add(new Timeslot(DayOfWeek.MONDAY, LocalTime.of(8, 30), LocalTime.of(9, 30))); - timeslotList.add(new Timeslot(DayOfWeek.MONDAY, LocalTime.of(9, 30), LocalTime.of(10, 30))); - timeslotList.add(new Timeslot(DayOfWeek.MONDAY, LocalTime.of(10, 30), LocalTime.of(11, 30))); - timeslotList.add(new Timeslot(DayOfWeek.MONDAY, LocalTime.of(13, 30), LocalTime.of(14, 30))); - timeslotList.add(new Timeslot(DayOfWeek.MONDAY, LocalTime.of(14, 30), LocalTime.of(15, 30))); - - List roomList = new ArrayList<>(); - roomList.add(new Room("Room A")); - roomList.add(new Room("Room B")); - roomList.add(new Room("Room C")); - - List lessonList = new ArrayList<>(); - lessonList.add(new Lesson(101L, "Math", "B. May", "9th grade")); - lessonList.add(new Lesson(102L, "Physics", "M. Curie", "9th grade")); - lessonList.add(new Lesson(103L, "Geography", "M. Polo", "9th grade")); - lessonList.add(new Lesson(104L, "English", "I. Jones", "9th grade")); - lessonList.add(new Lesson(105L, "Spanish", "P. Cruz", "9th grade")); - - lessonList.add(new Lesson(201L, "Math", "B. May", "10th grade")); - lessonList.add(new Lesson(202L, "Chemistry", "M. Curie", "10th grade")); - lessonList.add(new Lesson(203L, "History", "I. Jones", "10th grade")); - lessonList.add(new Lesson(204L, "English", "P. Cruz", "10th grade")); - lessonList.add(new Lesson(205L, "French", "M. Curie", "10th grade")); - return new TimeTable(timeslotList, roomList, lessonList); - } - -} ----- - -This test verifies that after solving, all lessons are assigned to a time slot and a room. -It also verifies that it found a feasible solution (no hard constraints broken). - -Add test properties to the `src/main/resources/application.properties` file: - -[source,properties] ----- -quarkus.optaplanner.solver.termination.spent-limit=5s - -# Effectively disable spent-time termination in favor of the best-score-limit -%test.quarkus.optaplanner.solver.termination.spent-limit=1h -%test.quarkus.optaplanner.solver.termination.best-score-limit=0hard/*soft ----- - -Normally, the solver finds a feasible solution in less than 200 milliseconds. -Notice how the `application.properties` overwrites the solver termination during tests -to terminate as soon as a feasible solution (`0hard/*soft`) is found. -This avoids hard coding a solver time, because the unit test might run on arbitrary hardware. -This approach ensures that the test runs long enough to find a feasible solution, even on slow machines. -But it does not run a millisecond longer than it strictly must, even on fast machines. - -=== Logging - -When adding constraints in your `ConstraintProvider`, -keep an eye on the _score calculation speed_ in the `info` log, -after solving for the same amount of time, to assess the performance impact: - -[source] ----- -... Solving ended: ..., score calculation speed (29455/sec), ... ----- - -To understand how OptaPlanner is solving your problem internally, -change the logging in the `application.properties` file or with a `-D` system property: - -[source,properties] ----- -quarkus.log.category."org.optaplanner".level=debug ----- - -Use `debug` logging to show every _step_: - -[source,options="nowrap"] ----- -... Solving started: time spent (67), best score (-20init/0hard/0soft), environment mode (REPRODUCIBLE), random (JDK with seed 0). -... CH step (0), time spent (128), score (-18init/0hard/0soft), selected move count (15), picked move ([Math(101) {null -> Room A}, Math(101) {null -> MONDAY 08:30}]). -... CH step (1), time spent (145), score (-16init/0hard/0soft), selected move count (15), picked move ([Physics(102) {null -> Room A}, Physics(102) {null -> MONDAY 09:30}]). -... ----- - -Use `trace` logging to show every _step_ and every _move_ per step. - -== Summary - -Congratulations! -You have just developed a Quarkus application with https://www.optaplanner.org/[OptaPlanner]! - -== Further improvements: Database and UI integration - -Now try adding database and UI integration: - -. Store `Timeslot`, `Room`, and `Lesson` in the database with xref:hibernate-orm-panache.adoc[Hibernate and Panache]. - -. xref:rest-json.adoc[Expose them through REST]. - -. Adjust the `TimeTableResource` to read and write a `TimeTable` instance in a single transaction -and use those accordingly: -+ -[source,java] ----- -package org.acme.optaplanner.rest; - -import javax.inject.Inject; -import javax.transaction.Transactional; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; - -import io.quarkus.panache.common.Sort; -import org.acme.optaplanner.domain.Lesson; -import org.acme.optaplanner.domain.Room; -import org.acme.optaplanner.domain.TimeTable; -import org.acme.optaplanner.domain.Timeslot; -import org.optaplanner.core.api.score.ScoreManager; -import org.optaplanner.core.api.score.buildin.hardsoft.HardSoftScore; -import org.optaplanner.core.api.solver.SolverManager; -import org.optaplanner.core.api.solver.SolverStatus; - -@Path("/timeTable") -public class TimeTableResource { - - public static final Long SINGLETON_TIME_TABLE_ID = 1L; - - @Inject - SolverManager solverManager; - @Inject - ScoreManager scoreManager; - - // To try, open http://localhost:8080/timeTable - @GET - public TimeTable getTimeTable() { - // Get the solver status before loading the solution - // to avoid the race condition that the solver terminates between them - SolverStatus solverStatus = getSolverStatus(); - TimeTable solution = findById(SINGLETON_TIME_TABLE_ID); - scoreManager.updateScore(solution); // Sets the score - solution.setSolverStatus(solverStatus); - return solution; - } - - @POST - @Path("/solve") - public void solve() { - solverManager.solveAndListen(SINGLETON_TIME_TABLE_ID, - this::findById, - this::save); - } - - public SolverStatus getSolverStatus() { - return solverManager.getSolverStatus(SINGLETON_TIME_TABLE_ID); - } - - @POST - @Path("/stopSolving") - public void stopSolving() { - solverManager.terminateEarly(SINGLETON_TIME_TABLE_ID); - } - - @Transactional - protected TimeTable findById(Long id) { - if (!SINGLETON_TIME_TABLE_ID.equals(id)) { - throw new IllegalStateException("There is no timeTable with id (" + id + ")."); - } - // Occurs in a single transaction, so each initialized lesson references the same timeslot/room instance - // that is contained by the timeTable's timeslotList/roomList. - return new TimeTable( - Timeslot.listAll(Sort.by("dayOfWeek").and("startTime").and("endTime").and("id")), - Room.listAll(Sort.by("name").and("id")), - Lesson.listAll(Sort.by("subject").and("teacher").and("studentGroup").and("id"))); - } - - @Transactional - protected void save(TimeTable timeTable) { - for (Lesson lesson : timeTable.getLessonList()) { - // TODO this is awfully naive: optimistic locking causes issues if called by the SolverManager - Lesson attachedLesson = Lesson.findById(lesson.getId()); - attachedLesson.setTimeslot(lesson.getTimeslot()); - attachedLesson.setRoom(lesson.getRoom()); - } - } - -} ----- -+ -For simplicity's sake, this code handles only one `TimeTable` instance, -but it is straightforward to enable multi-tenancy and handle multiple `TimeTable` instances of different high schools in parallel. -+ -The `getTimeTable()` method returns the latest timetable from the database. -It uses the `ScoreManager` (which is automatically injected) -to calculate the score of that timetable, so the UI can show the score. -+ -The `solve()` method starts a job to solve the current timetable and store the time slot and room assignments in the database. -It uses the `SolverManager.solveAndListen()` method to listen to intermediate best solutions -and update the database accordingly. -This enables the UI to show progress while the backend is still solving. - -. Adjust the `TimeTableResourceTest` instance accordingly, now that the `solve()` method returns immediately. -Poll for the latest solution until the solver finishes solving: -+ -[source,java] ----- -package org.acme.optaplanner.rest; - -import javax.inject.Inject; - -import io.quarkus.test.junit.QuarkusTest; -import org.acme.optaplanner.domain.Lesson; -import org.acme.optaplanner.domain.TimeTable; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.Timeout; -import org.optaplanner.core.api.solver.SolverStatus; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; - -@QuarkusTest -public class TimeTableResourceTest { - - @Inject - TimeTableResource timeTableResource; - - @Test - @Timeout(600_000) - public void solveDemoDataUntilFeasible() throws InterruptedException { - timeTableResource.solve(); - TimeTable timeTable = timeTableResource.getTimeTable(); - while (timeTable.getSolverStatus() != SolverStatus.NOT_SOLVING) { - // Quick polling (not a Test Thread Sleep anti-pattern) - // Test is still fast on fast machines and doesn't randomly fail on slow machines. - Thread.sleep(20L); - timeTable = timeTableResource.getTimeTable(); - } - assertFalse(timeTable.getLessonList().isEmpty()); - for (Lesson lesson : timeTable.getLessonList()) { - assertNotNull(lesson.getTimeslot()); - assertNotNull(lesson.getRoom()); - } - assertTrue(timeTable.getScore().isFeasible()); - } - -} ----- - -. Build an attractive web UI on top of these REST methods to visualize the timetable. - -Take a look at {quickstarts-tree-url}/optaplanner-quickstart[the quickstart source code] to see how this all turns out. diff --git a/_versions/2.7/guides/performance-measure.adoc b/_versions/2.7/guides/performance-measure.adoc deleted file mode 100644 index 88058173fe2..00000000000 --- a/_versions/2.7/guides/performance-measure.adoc +++ /dev/null @@ -1,244 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Measuring Performance - -include::./attributes.adoc[] - -This guide covers: - -* how we measure memory usage -* how we measure startup time -* which additional flags will Quarkus apply to native-image by default - -All of our tests are run on the same hardware for a given batch. -It goes without saying but it's better when you say it. - -== How do we measure memory usage - -When measuring the footprint of a Quarkus application, we measure https://en.wikipedia.org/wiki/Resident_set_size[Resident Set Size (RSS)] -and not the JVM heap size which is only a small part of the overall problem. -The JVM not only allocates native memory for heap (`-Xms`, `-Xmx`) but also structures required by the jvm to run your application. Depending on the JVM implementation, the total memory allocated for an application will include, but not limited to: - - * Heap space - * Class metadata - * Thread stacks - * Compiled code - * Garbage collection - -=== Native Memory Tracking - -In order to view the native memory used by the JVM, you can enable the https://docs.oracle.com/javase/8/docs/technotes/guides/vm/nmt-8.html[Native Memory Tracking] (NMT) feature in hotspot; - -Enable NMT on the command line; - - -XX:NativeMemoryTracking=[off | summary | detail] <1> - -<1> NOTE: this feature will add a 5-10% performance overhead - -It is then possible to use jcmd to dump a report of the native memory usage of the Hotspot JVM running your application; - - jcmd VM.native_memory [summary | detail | baseline | summary.diff | detail.diff | shutdown] [scale= KB | MB | GB] - -=== Cloud Native Memory Limits - -It is important to measure the whole memory to see the impact of a Cloud Native application. -It is particularly true of container environments which will kill a process based on its full RSS memory usage. - -Likewise, don't fall into the trap of only measuring private memory which is what the process uses that is not shareable with other processes. -While private memory might be useful in a environment deploying many different applications (and thus sharing memory a lot), -it is very misleading in environments like Kubernetes/OpenShift. - -=== Measuring Memory Correctly on Docker - -In order to measure memory correctly **DO NOT use docker stat or anything derived from it** (e.g. ctop). This approach only measures a subset of the in-use resident pages, while the Linux Kernel, cgroups and cloud orchestration providers will utilize the full resident set in their accounting (determining whether a process is over the limits and should be killed). - -To measure accurately, a similar set of steps for measuring RSS on Linux should be performed. The docker `top` command allows running a `ps` command on the container host machine against the processes in the container instance. By utilizing this in combination with formatting output parameters, the rss value can be returned: - - docker top -o pid,rss,args - -For example: - -[source,shell] ----- - $ docker top $(docker ps -q --filter ancestor=quarkus/myapp) -o pid,rss,args - -PID RSS COMMAND -2531 27m ./application -Dquarkus.http.host=0.0.0.0 ----- - -Alternatively, one can jump directly into a privileged shell (root on the host), and execute a `ps` command directly: - -[source,shell] ----- - $ docker run -it --rm --privileged --pid=host justincormack/nsenter1 /bin/ps -e -o pid,rss,args | grep application - 2531 27m ./application -Dquarkus.http.host=0.0.0.0 ----- - -If you happen to be running on Linux, you can execute the `ps` command directly, since your shell is the same as the container host: - - ps -e -o pid,rss,args | grep application - -=== Platform Specific Memory Reporting - -In order to not incur the performance overhead of running with NVM enabled, we measure the total RSS of an JVM application using tools specific to each platform. - -Linux:: - - The linux https://linux.die.net/man/1/pmap[pmap] and https://linux.die.net/man/1/ps[ps] tools provide a report on the native memory map for a process - -[source,shell] ----- - $ ps -o pid,rss,command -p - - PID RSS COMMAND - 11229 12628 ./target/getting-started-1.0.0-SNAPSHOT-runner ----- - -[source,shell] ----- - $ pmap -x - - 13150: /data/quarkus-application -Xmx100m -Xmn70m - Address Kbytes RSS Dirty Mode Mapping - 0000000000400000 55652 30592 0 r-x-- quarkus-application - 0000000003c58000 4 4 4 r-x-- quarkus-application - 0000000003c59000 5192 4628 748 rwx-- quarkus-application - 00000000054c0000 912 156 156 rwx-- [ anon ] - ... - 00007fcd13400000 1024 1024 1024 rwx-- [ anon ] - ... - 00007fcd13952000 8 4 0 r-x-- libfreebl3.so - ... - ---------------- ------- ------- ------- - total kB 9726508 256092 220900 ----- - -Each Memory region that has been allocated for the process is listed; - -- Address: Start address of virtual address space -- Kbytes: Size (kilobytes) of virtual address space reserved for region -- RSS: Resident set size (kilobytes). This is the measure of how much memory space is actually being used -- Dirty: dirty pages (both shared and private) in kilobytes -- Mode: Access mode for memory region -- Mapping: Includes application regions and Shared Object (.so) mappings for process - -The Total RSS (kB) line reports the total native memory the process is using. - -macOS:: -On macOS, you can use `ps x -o pid,rss,command -p ` which list the RSS for a given process in KB (1024 bytes). - -[source,shell] ----- -$ ps x -o pid,rss,command -p 57160 - - PID RSS COMMAND -57160 288548 /Applications/IntelliJ IDEA CE.app/Contents/jdk/Contents/Home/jre/bin/java ----- - -Which means IntelliJ IDEA consumes 281,8 MB of resident memory. - -== How do we measure startup time - -Some frameworks use aggressive lazy initialization techniques. -It is important to measure the startup time to first request to most accurately reflect how long a framework needs to start. -Otherwise, you will miss the time the framework _actually_ takes to initialize. - -Here is how we measure startup time in our tests. - -We create a sample application that logs timestamps for certain points in the application lifecycle. - -[source, java] ----- -@Path("/") -public class GreetingEndpoint { - - private static final String template = "Hello, %s!"; - - @GET - @Path("/greeting") - @Produces(MediaType.APPLICATION_JSON) - public Greeting greeting(@QueryParam("name") String name) { - System.out.println(new SimpleDateFormat("HH:mm:ss.SSS").format(new java.util.Date(System.currentTimeMillis()))); - String suffix = name != null ? name : "World"; - return new Greeting(String.format(template, suffix)); - } - - void onStart(@Observes StartupEvent startup) { - System.out.println(new SimpleDateFormat("HH:mm:ss.SSS").format(new Date())); - } -} ----- - -We start looping in a shell, sending requests to the rest endpoint of the sample application we are testing. - -[source,shell] ----- -$ while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' localhost:8080/api/greeting)" != "200" ]]; do sleep .00001; done ----- - -In a separate terminal, we start the timing application that we are testing, printing the time the application starts - -[source,shell] ----- -$ date +"%T.%3N" && ./target/quarkus-timing-runner - -10:57:32.508 -10:57:32.512 -2019-04-05 10:57:32,512 INFO [io.quarkus] (main) Quarkus 0.11.0 started in 0.002s. Listening on: http://127.0.0.1:8080 -2019-04-05 10:57:32,512 INFO [io.quarkus] (main) Installed features: [cdi, resteasy, resteasy-jackson] -10:57:32.537 ----- - -The difference between the final timestamp and the first timestamp is the total startup time for the application to serve the first request. - -== Additional flags applied by Quarkus - -When Quarkus invokes GraalVM `native-image` it will apply some additional flags by default. - -You might want to know about the following ones in case you're comparing performance properties with other builds. - -=== Disable fallback images - -Fallback native images are a feature of GraalVM to "fall back" to run your application in the normal JVM, should the compilation -to native code fail for some reason. - -Quarkus disables this feature by setting `-H:FallbackThreshold=0`: this will ensure you get a compilation failure rather -risking to not notice that the application is unable to really run in native mode. - -If you instead want to just run in Java mode, that's totally possible: just skip the native-image build and run it as a jar. - -=== Disable Isolates - -Isolates are a neat feature of GraalVM, but Quarkus isn't using them at this stage. - -Disable via `-H:-SpawnIsolates`. - -=== Disable auto-registration of all Service Loader implementations - -Quarkus extensions can automatically pick the right services they need, while GraalVM's native-image defaults to include -all services it's able to find on the classpath. - -We prefer listing services explicitly as it produces better optimised binaries. Disable it as well by setting `-H:-UseServiceLoaderFeature`. - -=== Better default for Garbage Collection implementation - -The default in GraalVM seems meant to optimise for short lived processes. - -Quarkus defaults to server applications, so we switch to a better default by setting - `-H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy$BySpaceAndTime`. - -=== Others ... - -This section is provided as high level guidance, but can't presume to be comprehensive as some flags are controlled - dynamically by the extensions, the platform you're building on, configuration details, your code and possibly - a combination of any of these. - -Generally speaking the ones listed here are those most likely to affect performance metrics, but in the right -circumstances one could observe non negligible impact from the other flags too. - -If you're to investigate some differences in detail make sure to check what Quarkus is invoking exactly: when the build -plugin is producing a native image, the full command lines are logged. - diff --git a/_versions/2.7/guides/picocli.adoc b/_versions/2.7/guides/picocli.adoc deleted file mode 100644 index c42175ff281..00000000000 --- a/_versions/2.7/guides/picocli.adoc +++ /dev/null @@ -1,296 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Command Mode with Picocli - -include::./attributes.adoc[] - -https://picocli.info/[Picocli] is an open source tool for creating rich command line applications. - -Quarkus provides support for using Picocli. This guide contains examples of `picocli` extension usage. - -IMPORTANT: If you are not familiar with the Quarkus Command Mode, consider reading the xref:command-mode-reference.adoc[Command Mode reference guide] first. - -== Configuration - -Once you have your Quarkus project configured you can add the `picocli` extension -to your project by running the following command in your project base directory. - -[source,bash] ----- -./mvnw quarkus:add-extension -Dextensions="picocli" ----- - -This will add the following to your `pom.xml`: - -[source,xml] ----- - - io.quarkus - quarkus-picocli - ----- - -== Simple command line application - -Simple PicocliApplication with only one `Command` can be created as follows: - -[source,java] ----- -package com.acme.picocli; - -import picocli.CommandLine; - -import javax.enterprise.context.Dependent; -import javax.inject.Inject; - -@CommandLine.Command // <1> -public class HelloCommand implements Runnable { - - @CommandLine.Option(names = {"-n", "--name"}, description = "Who will we greet?", defaultValue = "World") - String name; - - private final GreetingService greetingService; - - public HelloCommand(GreetingService greetingService) { // <2> - this.greetingService = greetingService; - } - - @Override - public void run() { - greetingService.sayHello(name); - } -} - -@Dependent -class GreetingService { - void sayHello(String name) { - System.out.println("Hello " + name + "!"); - } -} ----- -<1> If there is only one class annotated with `picocli.CommandLine.Command` it will be used as entry point to Picocli CommandLine. -<2> All classes annotated with `picocli.CommandLine.Command` are registered as CDI beans. - -IMPORTANT: Beans with `@CommandLine.Command` should not use proxied scopes (e.g. do not use `@ApplicationScope`) -because Picocli will not be able set field values in such beans. This extension will register classes with `@CommandLine.Command` annotation -using `@Depended` scope. If you need to use proxied scope, then annotate setter and not field, for example: -[source,java] ----- -@CommandLine.Command -@ApplicationScoped -public class EntryCommand { - private String name; - - @CommandLine.Option(names = "-n") - public void setName(String name) { - this.name = name; - } - -} ----- - -== Command line application with multiple Commands - -When multiple classes have the `picocli.CommandLine.Command` annotation, then one of them needs to be also annotated with `io.quarkus.picocli.runtime.annotations.TopCommand`. -This can be overwritten with the `quarkus.picocli.top-command` property. - -[source,java] ----- -package com.acme.picocli; - -import io.quarkus.picocli.runtime.annotations.TopCommand; -import picocli.CommandLine; - -@TopCommand -@CommandLine.Command(mixinStandardHelpOptions = true, subcommands = {HelloCommand.class, GoodByeCommand.class}) -public class EntryCommand { -} - -@CommandLine.Command(name = "hello", description = "Greet World!") -class HelloCommand implements Runnable { - - @Override - public void run() { - System.out.println("Hello World!"); - } -} - -@CommandLine.Command(name = "goodbye", description = "Say goodbye to World!") -class GoodByeCommand implements Runnable { - - @Override - public void run() { - System.out.println("Goodbye World!"); - } -} ----- - -== Customizing Picocli CommandLine instance - -You can customize CommandLine classes used by the `picocli` extension by producing your own bean instance: - -[source,java] ----- -package com.acme.picocli; - -import io.quarkus.picocli.runtime.PicocliCommandLineFactory; -import io.quarkus.picocli.runtime.annotations.TopCommand; -import picocli.CommandLine; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.inject.Produces; - -@TopCommand -@CommandLine.Command -public class EntryCommand implements Runnable { - @CommandLine.Spec - CommandLine.Model.CommandSpec spec; - - @Override - public void run() { - System.out.println("My name is: " + spec.name()); - } -} - -@ApplicationScoped -class CustomConfiguration { - - @Produces - CommandLine customCommandLine(PicocliCommandLineFactory factory) { // <1> - return factory.create().setCommandName("CustomizedName"); - } -} ----- -<1> `PicocliCommandLineFactory` will create an instance of CommandLine with `TopCommand` and `CommandLine.IFactory` injected. - -== Different entry command for each profile - -It is possible to create different entry command for each profile, using `@IfBuildProfile`: - -[source,java] ----- -@ApplicationScoped -public class Config { - - @Produces - @TopCommand - @IfBuildProfile("dev") - public Object devCommand() { - return DevCommand.class; // <1> - } - - @Produces - @TopCommand - @IfBuildProfile("prod") - public Object prodCommand() { - return new ProdCommand("Configured by me!"); - } - -} ----- -<1> You can return instance of `java.lang.Class` here. In such case `CommandLine` will try to instantiate this class using `CommandLine.IFactory`. - -== Configure CDI Beans with parsed arguments - -You can use `Event` or just `CommandLine.ParseResult` to configure CDI beans based on arguments parsed by Picocli. -This event will be generated in `QuarkusApplication` class created by this extension. If you are providing your own `@QuarkusMain` this event will not be raised. -`CommandLine.ParseResult` is created from default `CommandLine` bean. - -[source,java] ----- -@CommandLine.Command -public class EntryCommand implements Runnable { - - @CommandLine.Option(names = "-c", description = "JDBC connection string") - String connectionString; - - @Inject - DataSource dataSource; - - @Override - public void run() { - try (Connection c = dataSource.getConnection()) { - // Do something - } catch (SQLException throwables) { - // Handle error - } - } -} - -@ApplicationScoped -class DatasourceConfiguration { - - @Produces - @ApplicationScoped // <1> - DataSource dataSource(CommandLine.ParseResult parseResult) { - PGSimpleDataSource ds = new PGSimpleDataSource(); - ds.setURL(parseResult.matchedOption("c").getValue().toString()); - return ds; - } -} ----- -<1> `@ApplicationScoped` used for lazy initialization - -== Providing own QuarkusMain - -You can also provide your own application entry point annotated with `QuarkusMain` (as described in xref:command-mode-reference.adoc[Command Mode reference guide]). - -[source,java] ----- -package com.acme.picocli; - -import io.quarkus.runtime.QuarkusApplication; -import io.quarkus.runtime.annotations.QuarkusMain; -import picocli.CommandLine; - -import javax.inject.Inject; - -@QuarkusMain -@CommandLine.Command(name = "demo", mixinStandardHelpOptions = true) -public class ExampleApp implements Runnable, QuarkusApplication { - @Inject - CommandLine.IFactory factory; // <1> - - @Override - public void run() { - // business logic - } - - @Override - public int run(String... args) throws Exception { - return new CommandLine(this, factory).execute(args); - } -} ----- -<1> Quarkus-compatible `CommandLine.IFactory` bean created by `picocli` extension. - -== Native mode support - -This extension uses the Quarkus standard build steps mechanism to support GraalVM Native images. In the exceptional case that incompatible changes in a future picocli release cause any issue, the following configuration can be used to fall back to the annotation processor from the picocli project as a temporary workaround: - -[source,xml] ----- - - info.picocli - picocli-codegen - ----- - -For Gradle, you need to add the following in `dependencies` section of the `build.gradle` file: - -[source,groovy,subs=attributes+] ----- -annotationProcessor enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}") -annotationProcessor 'info.picocli:picocli-codegen' ----- - -== Development Mode - -In the development mode, i.e. when running `mvn quarkus:dev`, the application is executed and restarted every time the `Space bar` key is pressed. You can also pass arguments to your command line app via the `quarkus.args` system property, e.g. `mvn quarkus:dev -Dquarkus.args='--help'` and `mvn quarkus:dev -Dquarkus.args='-c -w --val 1'`. - -== Configuration Reference - -include::{generated-dir}/config/quarkus-picocli.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/platform-include.adoc b/_versions/2.7/guides/platform-include.adoc deleted file mode 100644 index 410c8451e34..00000000000 --- a/_versions/2.7/guides/platform-include.adoc +++ /dev/null @@ -1,4 +0,0 @@ -[NOTE] -==== -This extension is developed by a third party and is part of the Quarkus Platform. -==== \ No newline at end of file diff --git a/_versions/2.7/guides/platform.adoc b/_versions/2.7/guides/platform.adoc deleted file mode 100644 index d7ce35d2a03..00000000000 --- a/_versions/2.7/guides/platform.adoc +++ /dev/null @@ -1,191 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Platform - -include::./attributes.adoc[] - -The Quarkus extension ecosystem consists of the Quarkus extensions developed and maintained by the community, including the Quarkus core development team. While the Quarkus ecosystem (sometimes also referred to as the "Quarkus universe") includes all the Quarkus extensions ever developed, there is also a concept of a Quarkus platform. - -== Quarkus Platform - -The fundamental promise of a Quarkus platform is any combination of the Quarkus extensions the platform consists of can be used in the same application without causing any conflict for each other. -Each organization creating their Quarkus platform may establish their own criteria for the extensions to be accepted into the platform and the means to guarantee the compatibility between the accepted extensions. - -=== Quarkus Platform Artifacts - -Each Quarkus platform is defined with a few artifacts. - -=== Quarkus Platform BOM - -Each Quarkus Platform is expected to provide a Maven BOM artifact that - -* imports a chosen version of `io.quarkus:quarkus-bom` (the platform BOM may be flattened at the end but it has to be based on some version of `io.quarkus:quarkus-bom`) -* includes all the Quarkus extension artifacts (the runtime and the deployment ones) the platform consists of -* includes all the necessary third-party artifacts that align the transitive dependency versions of the platform extensions to guarantee compatibility between them -* includes the <> artifact -* possibly includes the <> artifacts - -Quarkus applications that want to include extensions from a Quarkus platform will be importing the Quarkus platform BOM. - -[[platform-descriptor]] -=== Quarkus Platform Descriptor - -Quarkus platform descriptor is a JSON artifact that provides information about the platform and its extensions to the Quarkus tools. E.g. http://code.quarkus.io and the Quarkus command line tools consult this descriptor to list, add and remove extensions to/from the project on user's request. -This artifact is also used as a Quarkus platform identifier. When Quarkus tools need to identify the Quarkus platform(s) used in the project, they will analyze the dependency version constraints of the project (the effective list of the managed dependencies from the `dependencyManagement` section in Maven terms) looking for the platform descriptor artifact(s) among them. Given that the platform descriptors are included into the Quarkus platform BOMs, every Quarkus application will inherit the platform descriptor artifact from the imported platform BOM(s) as a dependency version constraint (managed dependency in Maven terms). - -To be able to easily identify Quarkus platform descriptors among the project's dependency constraints, the platform descriptor Maven artifact coordinates should follow the following naming convention: - -* the `groupId` of the descriptor artifact should match the `groupId` of the corresponding Quarkus Platform BOM; -* the `artifactId` of the descriptor artifact should be the `artifactId` of the corresponding Quarkus Platform BOM with the `-quarkus-platform-descriptor` suffix; -* the `classifier` of the descriptor artifact should match the `version` of the corresponding Quarkus Platform BOM; -* the `type` of the descriptor artifact should be `json`; -* the `version` of the descriptor artifact should match the `version` of the corresponding Quarkus Platform BOM. - -As a string it will look like `:-quarkus-platform-descriptor::json:` - -E.g. the coordinates of the descriptor for the Quarkus BOM `io.quarkus.platform:quarkus-bom::pom:1.2.3` will be `io.quarkus.platform:quarkus-bom-quarkus-platform-descriptor:1.2.3:json:1.2.3`. -And for a custom Quarkus platform defined with BOM `org.acme:acme-bom::pom:555` it will be `org.acme:acme-bom-quarkus-platform-descriptor:555:json:555`. - -The classifier matching the version of the platform may look confusing at first. But this is what turns the descriptor into a true "fingerprint" of the platform. In both Maven and Gradle, the effective set of the dependency version constraints (or the managed dependencies) is obtained by merging all the imported BOMs and version constraints specified individually in the current project and also its parent(s). The artifact `classifier` is a part of the dependency ID, which could be expressed as `groupId:artifactId:classifier:type`. Which means that if a project imports a couple of BOMs, e.g. `org.apple:apple-bom::pom:1.0` and `org.orange:orange-bom::pom:1.0`, and each of these two BOMs imports a different version `io.quarkus.platform:quarkus-bom::pom`, the Quarkus tools will be able to detect this fact and make the user aware of it, since it *might* not be a safe combination. If the descriptor artifact didn't include the classifer containing the version of the platform then the tools wouldn't be able to detect a potentially incompatible mix of different versions of the same platform in the same project. - -The platform descriptor will normally be generated using a Maven plugin, e.g. - -[source,xml] ----- - - io.quarkus - quarkus-platform-descriptor-json-plugin - ${quarkus.version} <1> - - - process-resources - - generate-extensions-json <2> - - - - - ${quarkus.platform.group-id} <3> - ${quarkus.platform.artifact-id} <4> - ${quarkus.platform.version} <5> - ${overridesfile} <6> - true <7> - - ----- - -<1> the version of the `quarkus-platform-descriptor-json-plugin` -<2> `generate-extensions-json` is the goal generating the platform descriptor -<3> the `groupId` of the platform BOM -<4> the `artifactId` of the platform BOM -<5> the `version` of the platform BOM -<6> this parameter is optional, it allows to override some metadata from the Quarkus extension descriptors found in every runtime extension artifact from which the platform descriptor is generated -<7> this parameter is also optional and defaults to false. It has to be set to true in case the platform BOM *is not generated* and *is not flattened*. Which for example is the case for `io.quarkus:quarkus-bom`. - -[[platform-properties]] -=== Quarkus Platform Properties - -A Quarkus platform may provide its own default values for some of the configuration options. - -Quarkus is using https://github.com/smallrye/smallrye-config[SmallRye Config] for wiring application configuration. A Quarkus platform may be used as another source of configuration in the hierarchy of the configuration sources dominated by the application's `application.properties`. - -To provide platform-specific defaults, the platform needs to include a dependency version constraint in its BOM for a properties artifact whose coordinates follow the following naming convention: - -* the `groupId` of the properties artifact should match the `groupId` of the corresponding Quarkus Platform BOM; -* the `artifactId` of the properties artifact should be the `artifactId` of the corresponding Quarkus Platform BOM with the `-quarkus-platform-properties` suffix; -* the `classifier` of the descriptor artifact should be left empty/null; -* the `type` of the descriptor artifact should be `properties`; -* the `version` of the descriptor artifact should match the `version` of the corresponding Quarkus Platform BOM. - -The properties artifact itself is expected to be a traditional `properties` file that will be loaded into an instance of `java.util.Properties` class. - -IMPORTANT: At this point, platform properties are only allowed to provide the default values for a restricted set of configuration options. The property names in the platform properties file must be prefixed with the `platform.` suffix. - -Extension developers that want to make their configuration options platform-specific should set their default values to properties that start with the `platform.` suffix. Here is an example: - -[source,java] ----- -package io.quarkus.deployment.pkg; - -@ConfigRoot(phase = ConfigPhase.BUILD_TIME) -public class NativeConfig { - - /** - * The docker image to use to do the image build - */ - @ConfigItem(defaultValue = "${platform.quarkus.native.builder-image}") - public String builderImage; -} ----- - -In this case the default value for `quarkus.native.builder-image` will be provided by the platform. The user will still be able to set the desired value for `quarkus.native.builder-image` in its `application.properties`, of course. But in case it's not customized by the user, the default value will be coming from the platform properties. -A platform properties file for the example above would contain (the actual value is provided as an example): - -[source,text,subs=attributes+] ----- -platform.quarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:{graalvm-flavor} ----- - -There is also a Maven plugin goal that validates the platform properties content and its artifact coordinates and also checks whether the platform properties artifact is present in the platform's BOM. Here is a sample plugin configuration: - -[source,xml] ----- - - io.quarkus - quarkus-platform-descriptor-json-plugin - ${quarkus.version} - - - process-resources - - platform-properties - - - - ----- - -==== Merging Quarkus Platform Properties - -In case an application is importing more than one Quarkus platform and those platforms include their own platform properties artifacts, the content of those platform properties artifacts will be merged to form a single set of properties that will be used for the application build. -The order in which the properties artifacts are merged will correspond to the order in which they appear in the list of dependency version constraints of the application (in the Maven terms that will correspond to the effective list of application's managed dependencies, i.e. the flattened `managedDependencies` POM section). - -IMPORTANT: The content of the properties artifacts found earlier will dominate over those found later among the application's dependency constraints! - -That means if a platform needs to override a certain property value defined in the platform it is based on, it will need to include its platform properties artifact into the `managedDependencies` section of its BOM before importing the base platform. - -For example, let's assume `org.acme:acme-quarkus-bom` platform extends the `io.quarkus:quarkus-bom` platform by importing its BOM. In case, the `org.acme:acme-quarkus-bom` platform were to override certain properties defined in the `io.quarkus:quarkus-bom-quarkus-platform-properties` included in the `io.quarkus:quarkus-bom`, the `org.acme:acme-quarkus-bom` would have to be composed as -[source,xml] ----- - - - acme-quarkus-bom - Acme - Quarkus - BOM - pom - - - - - - org.acme - acme-quarkus-bom-quarkus-platform-properties - properties - ${project.version} - - - - - io.quarkus - quarkus-bom - ${quarkus.version} - pom - import - - - ----- - -That way, the `org.acme:acme-quarkus-bom` platform properties will appear before those provided by the `io.quarkus:quarkus-bom` properties and so will be dominating at build time. diff --git a/_versions/2.7/guides/quarkus-blaze-persistence.adoc b/_versions/2.7/guides/quarkus-blaze-persistence.adoc deleted file mode 100644 index 0f3e18b2119..00000000000 --- a/_versions/2.7/guides/quarkus-blaze-persistence.adoc +++ /dev/null @@ -1,103 +0,0 @@ -[.configuration-legend] -icon:lock[title=Fixed at build time] Configuration property fixed at build time - All other configuration properties are overridable at runtime -[.configuration-reference.searchable, cols="80,.^10,.^10"] -|=== - -h|[[quarkus-blaze-persistence_configuration]]link:#quarkus-blaze-persistence_configuration[Configuration property] - -h|Type -h|Default - -a|icon:lock[title=Fixed at build time] [[quarkus-blaze-persistence_quarkus.blaze-persistence.template-eager-loading]]`link:#quarkus-blaze-persistence_quarkus.blaze-persistence.template-eager-loading[quarkus.blaze-persistence.template-eager-loading]` - -[.description] --- -A boolean flag to make it possible to prepare all view template caches on startup. By default the eager loading of the view templates is disabled to have a better startup performance. Valid values for this property are `true` or `false`. ---|boolean -| - - -a|icon:lock[title=Fixed at build time] [[quarkus-blaze-persistence_quarkus.blaze-persistence.default-batch-size]]`link:#quarkus-blaze-persistence_quarkus.blaze-persistence.default-batch-size[quarkus.blaze-persistence.default-batch-size]` - -[.description] --- -An integer value that defines the default batch size for entity view attributes. By default the value is 1 and can be overridden either via `com.blazebit.persistence.view.BatchFetch#size()` or by setting this property via `com.blazebit.persistence.view.EntityViewSetting#setProperty`. ---|int -| - - -a|icon:lock[title=Fixed at build time] [[quarkus-blaze-persistence_quarkus.blaze-persistence.expect-batch-mode]]`link:#quarkus-blaze-persistence_quarkus.blaze-persistence.expect-batch-mode[quarkus.blaze-persistence.expect-batch-mode]` - -[.description] --- -A mode specifying if correlation value, view root or embedded view batching is expected. By default the value is `values` and can be overridden by setting this property via `com.blazebit.persistence.view.EntityViewSetting#setProperty`. Valid values are - - `values` - - `view_roots` - - `embedding_views` ---|string -| - - -a|icon:lock[title=Fixed at build time] [[quarkus-blaze-persistence_quarkus.blaze-persistence.updater.eager-loading]]`link:#quarkus-blaze-persistence_quarkus.blaze-persistence.updater.eager-loading[quarkus.blaze-persistence.updater.eager-loading]` - -[.description] --- -A boolean flag to make it possible to prepare the entity view updater cache on startup. By default the eager loading of entity view updates is disabled to have a better startup performance. Valid values for this property are `true` or `false`. ---|boolean -| - - -a|icon:lock[title=Fixed at build time] [[quarkus-blaze-persistence_quarkus.blaze-persistence.updater.disallow-owned-updatable-subview]]`link:#quarkus-blaze-persistence_quarkus.blaze-persistence.updater.disallow-owned-updatable-subview[quarkus.blaze-persistence.updater.disallow-owned-updatable-subview]` - -[.description] --- -A boolean flag to make it possible to disable the strict validation that disallows the use of an updatable entity view type for owned relationships. By default the use is disallowed i.e. the default value is `true`, but since there might be strange models out there, it possible to allow this. Valid values for this property are `true` or `false`. ---|boolean -| - - -a|icon:lock[title=Fixed at build time] [[quarkus-blaze-persistence_quarkus.blaze-persistence.updater.strict-cascading-check]]`link:#quarkus-blaze-persistence_quarkus.blaze-persistence.updater.strict-cascading-check[quarkus.blaze-persistence.updater.strict-cascading-check]` - -[.description] --- -A boolean flag to make it possible to disable the strict cascading check that disallows setting updatable or creatable entity views on non-cascading attributes before being associated with a cascading attribute. When disabled, it is possible, like in JPA, that the changes done to an updatable entity view are not flushed when it is not associated with an attribute that cascades updates. By default the use is enabled i.e. the default value is `true`. Valid values for this property are `true` or `false`. ---|boolean -| - - -a|icon:lock[title=Fixed at build time] [[quarkus-blaze-persistence_quarkus.blaze-persistence.updater.error-on-invalid-plural-setter]]`link:#quarkus-blaze-persistence_quarkus.blaze-persistence.updater.error-on-invalid-plural-setter[quarkus.blaze-persistence.updater.error-on-invalid-plural-setter]` - -[.description] --- -A boolean flag that allows to switch from warnings to boot time validation errors when invalid plural attribute setters are encountered while the strict cascading check is enabled. When `true`, a boot time validation error is thrown when encountering an invalid setter, otherwise just a warning. This configuration has no effect when the strict cascading check is disabled. By default the use is disabled i.e. the default value is `false`. Valid values for this property are `true` or `false`. ---|boolean -| - - -a|icon:lock[title=Fixed at build time] [[quarkus-blaze-persistence_quarkus.blaze-persistence.create-empty-flat-views]]`link:#quarkus-blaze-persistence_quarkus.blaze-persistence.create-empty-flat-views[quarkus.blaze-persistence.create-empty-flat-views]` - -[.description] --- -A boolean flag that allows to specify if empty flat views should be created by default if not specified via `EmptyFlatViewCreation`. By default the creation of empty flat views is enabled i.e. the default value is `true`. Valid values for this property are `true` or `false`. ---|boolean -| - - -a|icon:lock[title=Fixed at build time] [[quarkus-blaze-persistence_quarkus.blaze-persistence.expression-cache-class]]`link:#quarkus-blaze-persistence_quarkus.blaze-persistence.expression-cache-class[quarkus.blaze-persistence.expression-cache-class]` - -[.description] --- -The full qualified expression cache implementation class name. ---|string -| - - -a|icon:lock[title=Fixed at build time] [[quarkus-blaze-persistence_quarkus.blaze-persistence.inline-ctes]]`link:#quarkus-blaze-persistence_quarkus.blaze-persistence.inline-ctes[quarkus.blaze-persistence.inline-ctes]` - -[.description] --- -If set to true, the CTE queries are inlined by default. Valid values for this property are `true`, `false` or `auto`. Default is `true` which will always inline non-recursive CTEs. The `auto` configuration will only make use of inlining if the JPA provider and DBMS dialect support/require it. The property can be changed for a criteria builder before constructing a query. ---|boolean -| - -|=== \ No newline at end of file diff --git a/_versions/2.7/guides/quarkus-intro.adoc b/_versions/2.7/guides/quarkus-intro.adoc deleted file mode 100644 index 6a11ae71889..00000000000 --- a/_versions/2.7/guides/quarkus-intro.adoc +++ /dev/null @@ -1,79 +0,0 @@ -= What is Quarkus - -include::./attributes.adoc[] -:toc: macro -:toclevels: 4 -:doctype: book -:icons: font -:docinfo1: - -:numbered: -:sectnums: -:sectnumlevels: 4 - -// tag::intro[] - -[quote] --- -Quarkus is a Cloud Native, Container First framework for writing Java applications. --- - -Container First:: -Minimal footprint Java applications optimized for running in containers -Cloud Native:: -Embraces 12 factor architecture in environments like Kubernetes -Unify imperative and reactive:: -Brings under one programming model non blocking and imperative styles of development -Standards-based:: -Based on the standards and the libraries you love and use (RESTEasy, Hibernate, Netty, Eclipse Vert.x, Apache Camel...) -Microservice First:: -Brings lightning fast startup time to Java applications -Extreme productivity:: -Instant hot code replacement: don't allow build, deploy, boot delays disrupt your flow -Developer Joy:: -Development-centric experience without compromises to bring your amazing applications to life in no time - -All under one framework. - -// end::intro[] - -== Scratch pad - - -Quarkus believes in developer Joy. - - -It unifies imperative and reactive. -It is a Microservice first toolkit. - -Standards based -Quarkus brings all the standards and frameworks you love and use: RESTEasy, Hibernate, Netty, vert.x, Camel...) - -Imperative and Reactive - -* ahead-of-time native binary (executable binary) -* Cloud Native -* Java -* modular -* Substrate VM native - -Seamlessly build container optimal - -Container affinity - -Container optimal - -* low memory -* low startup time -* ahead of time optimal - -Unifying Imperative and Reactive under one framework. - -Usability -* easy to use -* productive environment -* hot reload - -Standards based - - diff --git a/_versions/2.7/guides/quarkus-reactive-architecture.adoc b/_versions/2.7/guides/quarkus-reactive-architecture.adoc deleted file mode 100644 index b5e19ce25e2..00000000000 --- a/_versions/2.7/guides/quarkus-reactive-architecture.adoc +++ /dev/null @@ -1,199 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Quarkus Reactive Architecture - -include::./attributes.adoc[] - -Quarkus is reactive. -It's even more than this: Quarkus unifies reactive and imperative programming. -You don't even have to choose: you can implement reactive components and imperative components then combine them inside the very **same** application. -No need to use different stacks, tooling or APIs; Quarkus bridges both worlds. - -This page will explain what we mean by _Reactive_ and how Quarkus enables it. -We will also discuss execution and programming models. -Finally, we will list the Quarkus extensions offering reactive facets. - -== What is _Reactive_? - -The _Reactive_ word is overloaded and associated with many concepts such as back-pressure, monads, or event-driven architecture. -So, let's clarify what we mean by _Reactive_. - -_Reactive_ is a set of principles and guidelines to build responsive distributed systems and applications. -The https://www.reactivemanifesto.org/[Reactive Manifesto] characterizes _Reactive Systems_ as distributed systems having four characteristics: - -1. Responsive - they must respond in a timely fashion -2. Elastic - they adapt themselves to the fluctuating load -3. Resilient - they handle failures gracefully -4. Asynchronous message passing - the component of a reactive system interact using messages - -image::reactive-systems.png[alt=Reactive Systems Pillars, width=50%, align=center] - -In addition to this, the https://principles.reactive.foundation/[Reactive Principles white paper] lists a set of rules and patterns to help the construction of reactive systems. - -== Reactive Systems and Quarkus - -Reactive System is an architectural style that can be summarized by: distributed systems done right. -Relying on asynchronous message passing helps enforce the loose coupling (both in terms of space and time) between the different components. -You send messages to virtual destinations. The receiver can be located anywhere, or even not yet exist at the time of the message dispatch. -The elasticity pillar allows scaling up and down individual components according to the load. -Elasticity also provides redundancy, which helps with the resilience pillar. -Failures are inevitable. -Components forming a reactive system must handle them gracefully, avoid cascading failures, and self-adapt themselves. - -A responsive system can continue to handle the request while facing failures and under fluctuating load. -Quarkus has been tailored for that. -It provides features that will help you design, implement and operate reactive systems. - -== Reactive Applications - -Quarkus is not only going to help you build reactive systems. -It's also going to make sure that each constituent enforces the reactive principles and is highly efficient. - -Efficiency is essential, especially in the Cloud and in containerized environments. -Resources, such as CPU and memory, are shared among multiple applications. -Greedy applications that consume lots of memory are inefficient and put penalties on sibling applications. -You may need to request more memory, CPU, or bigger virtual machines. -It either increases your monthly Cloud bill or decreases your deployment density. - -I/O is an essential part of almost any modern system. -Whether it is to call a remote service, interact with a database, or send messages to a broker, there are all I/O-based operations. -Efficiently handling them is critical to avoid greedy applications. -For this reason, Quarkus uses non-blocking I/O, which allows a low number of OS threads to manage many concurrent I/Os. -As a result, Quarkus applications allow for higher concurrency, use less memory, and improve the deployment density. - -== How does Quarkus enable Reactive? - -Under the hood, Quarkus has a reactive engine. -This engine, powered by Eclipse Vert.x and Netty, handles the non-blocking I/O interactions. - -image::quarkus-reactive-core.png[Quarkus Reactive Core,width=50%, align=center] - -Quarkus extensions and the application code can use this engine to orchestrate I/O interactions, interact with databases, send and receive messages, and so on. - -== Reactive execution model - -While using non-blocking I/O has tremendous benefits, it does not come for free. -Indeed, it introduces a new execution model quite different from the one used by classical frameworks. - -Traditional applications use blocking I/O and an imperative (sequential) execution model. -So, in an application exposing an HTTP endpoint, each HTTP request is associated with a thread. -In general, that thread is going to process the whole request and the thread is tied up serving only that request for the duration of that request. -When the processing requires interacting with a remote service, it uses blocking I/O. -The thread is blocked, waiting for the result of the I/O. -While that model is simple to develop with (as everything is sequential), it has a few drawbacks. -To handle concurrent requests, you need multiple threads, so, you need to introduce a worker thread pool. -The size of this pool constrains the concurrency of the application. -In addition, each thread has a cost in terms of memory and CPU. -Large thread pools result in greedy applications. - -image::blocking-threads.png[alt=Imperative Execution Model and Worker Threads,width=50%, align=center] - -As we have seen above, non-blocking I/O avoids that problem. -A few threads can handle many concurrent I/O. -If we go back to the HTTP endpoint example, the request processing is executed on one of these I/O threads. -Because there are only a few of them, you need to use them wisely. -When the request processing needs to call a remote service, you can't block the thread anymore. -You schedule the I/O and pass a continuation, i.e., the code to execute once the I/O completes. - -image::reactive-thread.png[alt=Reactive Execution Model and I/O Threads,width=50%, align=center] - -This model is much more efficient, but we need a way to write code to express these continuations. - -== Reactive Programming Models - -The Quarkus architecture, based on non-blocking I/O and message passing, allows multiple supporting reactive development models that are all different in how they express continuations. -The two main ways to write reactive code with Quarkus are: - -* Reactive Programming with https://smallrye.io/smallrye-mutiny[Mutiny], and -* Coroutines with Kotlin - -First, https://smallrye.io/smallrye-mutiny[Mutiny] is an intuitive, event-driven reactive programming library. -With Mutiny, you write event-driven code. -Your code is a pipeline receiving events and processing them. -Each stage in your pipeline can be seen as a continuation, as Mutiny invokes them when the upstream part of the pipeline emits an event. - -The Mutiny API has been tailored to improve the readability and maintenance of the codebase. -Mutiny provides everything you need to orchestrate asynchronous actions, including concurrent execution. -It also offers a large set of operators to manipulate individual events and streams of events. - -[TIP] -Find more info about Mutiny and its usage in Quarkus on xref:mutiny-primer.adoc[Mutiny support documentation]. - -Co-routines are a way to write asynchronous code sequentially. -It suspends the execution of the code during I/O and registers the rest of the code as the continuation. -Kotlin coroutines are great when developing in Kotlin and only need to express sequential compositions (chain of co-dependent asynchronous tasks). - -== Unification of Imperative and Reactive - -Changing your development model is not simple. -It requires relearning and restructuring code in a non-blocking fashion. -Fortunately, you don't have to do it! - -Quarkus is inherently reactive thanks to its reactive engine. -But, you, as an application developer, don't have to write reactive code. -Quarkus unifies reactive and imperative. -It means that you can write traditional blocking applications on Quarkus. -But how do you avoid blocking the I/O threads? -Quarkus implements a https://en.wikipedia.org/wiki/Proactor_pattern[proactor pattern] that switches to worker thread when needed. - -image::proactor-pattern.png[The proactor pattern in Quarkus,width=50%, align=center] - -Thanks to hints in your code (such as the `@Blocking` and `@NonBlocking` annotations), Quarkus extensions can decide when the application logic is blocking or non-blocking. -If we go back to the HTTP endpoint example from above, the HTTP request is always received on an I/O thread. -Then, the extension dispatching that request to your code decides whether to call it on the I/O thread, avoiding thread switches, or on a worker thread. -This decision depends on the extension. -For example, the RESTEasy Reactive extension uses the `@Blocking` annotation to determine if the method needs to be invoked using a worker thread, or if it can be invoked using the I/O thread. - -Quarkus is pragmatic and versatile. -You decide how to develop and execute your application. -You can use the imperative way, the reactive way, or mix them, using reactive on the parts of the application under high concurrency. - -[#quarkus-extensions-enabling-reactive] -== Quarkus Extensions enabling Reactive - -Quarkus offers a large set of reactive APIs and features. -This section lists the most important, but it's not an exhaustive list. -Quarkus adds new features in every release, and the https://github.com/quarkiverse[Quarkiverse] proposes many extensions enabling _Reactive_. - -=== HTTP - -* RESTEasy Reactive: an implementation of JAX-RS tailored for the Quarkus architecture. -It follows a reactive-first approach but allows imperative code using the `@Blocking` annotation. -* Reactive Routes: a declarative way to register HTTP routes directly on the Vert.x router used by Quarkus to route HTTP requests to methods. -* Reactive Rest Client: allows consuming HTTP endpoints. -Under the hood, it uses the non-blocking I/O features from Quarkus. -* Qute - the Qute template engine exposes a reactive API to render templates in a non-blocking manner. - -=== Data - -* Hibernate Reactive: a version of Hibernate ORM using asynchronous and non-blocking clients to interact with the database. -* Hibernate Reactive with Panache: provide active record and repository support on top of Hibernate Reactive. -* Reactive PostgreSQL client: an asynchronous and non-blocking client interacting with a PostgreSQL database, allowing high concurrency. -* Reactive MySQL client: an asynchronous and non-blocking client interacting with a MySQL database -* The MongoDB extension: exposes an imperative and reactive (Mutiny) APIs to interact with MongoDB. -* Mongo with Panache offers active record support for both the imperative and reactive APIs. -* The Cassandra extension: exposes an imperative and reactive (Mutiny) APIs to interact with Cassandra -* The Redis extension: exposes an imperative and reactive (Mutiny) APIs to store and retrieve data from a Redis key-value store. - -=== Event-Driven Architecture - -* Reactive Messaging: allows implementing event-driven applications using reactive and imperative code. -* Kafka Connector for Reactive Messaging: allows implementing applications consuming and writing Kafka records -* AMQP 1.0 Connector for Reactive Message: allows implementing applications sending and receiving AMQP messages. - -=== Network Protocols and Utilities - -* gRPC: implement and consume gRPC services. -Offer reactive and imperative programming interfaces. -* GraphQL: implement and query (client) data store using GraphQL. Offers Mutiny APIs and subscriptions as event streams. -* Fault Tolerance: provide retry, fallback, circuit breakers abilities to your application.It can be used with Mutiny types. - -[#engine] -=== Engine - -* Vert.x : the underlying reactive engine of Quarkus. -The extension allows accessing to the managed Vert.x instance, as well as its Mutiny variant (exposing the Vert.x API using Mutiny types) -* Context Propagation: capture and propagate contextual objects (transaction, principal…) in a reactive pipeline diff --git a/_versions/2.7/guides/quarkus-runtime-base-image.adoc b/_versions/2.7/guides/quarkus-runtime-base-image.adoc deleted file mode 100644 index ea888110d23..00000000000 --- a/_versions/2.7/guides/quarkus-runtime-base-image.adoc +++ /dev/null @@ -1,126 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Quarkus Base Runtime Image - -include::./attributes.adoc[] - -To ease the containerization of native executables, Quarkus provides a base image providing the requirements to run these executables. -The `quarkus-micro-image:1.0` image is: - -* small (based on `ubi8-micro`) -* designed for containers -* contains the right set of dependencies (glibc, libstdc++, zlib) -* support upx-compressed executables (more details on the xref:upx.adoc[enabling compression documentation]) - -== Using the base image - -In your `Dockerfile`, just use: - -[source, dockerfile] ----- -FROM quay.io/quarkus/quarkus-micro-image:1.0 -WORKDIR /work/ -COPY target/*-runner /work/application -RUN chmod 775 /work -EXPOSE 8080 -CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] ----- - -== Extending the image - -Your application may have additional requirements. -For example, if you have an application that requires `libfreetype.so`, you need to copy the native libraries to the container. -In this case, you need to use a multi-stage `dockerfile` to copy the required libraries: - -[source, dockerfile] ----- -# First stage - install the dependencies in an intermediate container -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.5 as BUILD -RUN microdnf install freetype - -# Second stage - copy the dependencies -FROM quay.io/quarkus/quarkus-micro-image:1.0 -COPY --from=BUILD \ - /lib64/libfreetype.so.6 \ - /lib64/libbz2.so.1 \ - /lib64/libpng16.so.16 \ - /lib64/ - -WORKDIR /work/ -COPY target/*-runner /work/application -RUN chmod 775 /work -EXPOSE 8080 -CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] ----- - -If you need to have access to the full AWT support, you need more than just `libfreetype.so`, but also the font and font configurations: - -[source, dockerfile] ----- -# First stage - install the dependencies in an intermediate container -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.5 as BUILD -RUN microdnf install freetype fontconfig - -# Second stage - copy the dependencies -FROM quay.io/quarkus/quarkus-micro-image:1.0 -COPY --from=BUILD \ - /lib64/libfreetype.so.6 \ - /lib64/libgcc_s.so.1 \ - /lib64/libbz2.so.1 \ - /lib64/libpng16.so.16 \ - /lib64/libm.so.6 \ - /lib64/libbz2.so.1 \ - /lib64/libexpat.so.1 \ - /lib64/libuuid.so.1 \ - /lib64/ - -COPY --from=BUILD \ - /usr/lib64/libfontconfig.so.1 \ - /usr/lib64/ - -COPY --from=BUILD \ - /usr/share/fonts /usr/share/fonts - -COPY --from=BUILD \ - /usr/share/fontconfig /usr/share/fontconfig - -COPY --from=BUILD \ - /usr/lib/fontconfig /usr/lib/fontconfig - -COPY --from=BUILD \ - /etc/fonts /etc/fonts - -WORKDIR /work/ -COPY target/*-runner /work/application -RUN chmod 775 /work -EXPOSE 8080 -CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] ----- - - -== Alternative - Using ubi-minimal - -If the micro image does not suit your requirements, you can use https://catalog.redhat.com/software/containers/ubi8/ubi-minimal/5c359a62bed8bd75a2c3fba8[UBI- Minimal]. -It's a bigger image, but contains more utilities and is closer to a full Linux distribution. -Typically, it contains a package manager (`microdnf`), so you can install packages more easily. - - -To use this base image, use the following `Dockerfile`: - -[source, dockerfile] ----- -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.5 -WORKDIR /work/ -RUN chown 1001 /work \ - && chmod "g+rwX" /work \ - && chown 1001:root /work -COPY --chown=1001:root target/*-runner /work/application - -EXPOSE 8080 -USER 1001 - -CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] ----- \ No newline at end of file diff --git a/_versions/2.7/guides/quartz.adoc b/_versions/2.7/guides/quartz.adoc deleted file mode 100644 index 1296d6328dd..00000000000 --- a/_versions/2.7/guides/quartz.adoc +++ /dev/null @@ -1,442 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Scheduling Periodic Tasks with Quartz - -include::./attributes.adoc[] -:extension-status: preview - -Modern applications often need to run specific tasks periodically. -In this guide, you learn how to schedule periodic clustered tasks using the http://www.quartz-scheduler.org/[Quartz] extension. - -include::./status-include.adoc[] - -TIP: If you only need to run in-memory scheduler use the xref:scheduler.adoc[Scheduler] extension. - -== Prerequisites - -:prerequisites-docker-compose: -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this guide, we are going to expose one Rest API `tasks` to visualise the list of tasks created by a Quartz job running every 10 seconds. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `quartz-quickstart` {quickstarts-tree-url}/quartz-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: quartz-quickstart -:create-app-extensions: resteasy,quartz,hibernate-orm-panache,flyway,resteasy-jackson,jdbc-postgresql -include::includes/devtools/create-app.adoc[] - -It generates: - -* the Maven structure -* a landing page accessible on `http://localhost:8080` -* example `Dockerfile` files for both `native` and `jvm` modes -* the application configuration file - -The Maven project also imports the Quarkus Quartz extension. - -If you already have your Quarkus project configured, you can add the `quartz` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: quartz -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-quartz - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-quartz") ----- - -[TIP] -==== -To use a JDBC store, the `quarkus-agroal` extension, which provides the datasource support, is also required. -==== - -== Creating the Task Entity - -In the `org.acme.quartz` package, create the `Task` class, with the following content: - -[source,java] ----- -package org.acme.quartz; - -import javax.persistence.Entity; -import java.time.Instant; -import javax.persistence.Table; - -import io.quarkus.hibernate.orm.panache.PanacheEntity; - -@Entity -@Table(name="TASKS") -public class Task extends PanacheEntity { <1> - public Instant createdAt; - - public Task() { - createdAt = Instant.now(); - } - - public Task(Instant time) { - this.createdAt = time; - } -} ----- -<1> Declare the entity using xref:hibernate-orm-panache.adoc[Panache] - -== Creating a scheduled job - -In the `org.acme.quartz` package, create the `TaskBean` class, with the following content: - -[source,java] ----- -package org.acme.quartz; - -import javax.enterprise.context.ApplicationScoped; - -import javax.transaction.Transactional; - -import io.quarkus.scheduler.Scheduled; - -@ApplicationScoped <1> -public class TaskBean { - - @Transactional - @Scheduled(every = "10s", identity = "task-job") <2> - void schedule() { - Task task = new Task(); <3> - task.persist(); <4> - } -} ----- -<1> Declare the bean in the _application_ scope -<2> Use the `@Scheduled` annotation to instruct Quarkus to run this method every 10 seconds and set the unique identifier for this job. -<3> Create a new `Task` with the current start time. -<4> Persist the task in database using xref:hibernate-orm-panache.adoc[Panache]. - -=== Scheduling Jobs Programmatically - -It is also possible to leverage the Quartz API directly. -You can inject the underlying `org.quartz.Scheduler` in any bean: - -[source,java] ----- -package org.acme.quartz; - -@ApplicationScoped -public class TaskBean { - - @Inject - org.quartz.Scheduler quartz; <1> - - void onStart(@Observes StartupEvent event) throws SchedulerException { - JobDetail job = JobBuilder.newJob(MyJob.class) - .withIdentity("myJob", "myGroup") - .build(); - Trigger trigger = TriggerBuilder.newTrigger() - .withIdentity("myTrigger", "myGroup") - .startNow() - .withSchedule( - SimpleScheduleBuilder.simpleSchedule() - .withIntervalInSeconds(10) - .repeatForever()) - .build(); - quartz.scheduleJob(job, trigger); <2> - } - - @Transactional - void performTask() { - Task task = new Task(); - task.persist(); - } - - // A new instance of MyJob is created by Quartz for every job execution - public static class MyJob implements Job { - - @Inject - TaskBean taskBean; - - public void execute(JobExecutionContext context) throws JobExecutionException { - taskBean.performTask(); <3> - } - - } -} ----- -<1> Inject the underlying `org.quartz.Scheduler` instance. -<2> Schedule a new job using the Quartz API. -<3> Invoke the `TaskBean#performTask()` method from the job. Jobs are also xref:cdi.adoc[container-managed] beans if they belong to a link:cdi-reference[bean archive]. - -NOTE: By default, the scheduler is not started unless a `@Scheduled` business method is found. You may need to force the start of the scheduler for "pure" programmatic scheduling. See also <>. - -== Updating the application configuration file - -Edit the `application.properties` file and add the below configuration: -[source,properties] ----- -# Quartz configuration -quarkus.quartz.clustered=true <1> -quarkus.quartz.store-type=jdbc-cmt <2> - -# Datasource configuration. -quarkus.datasource.db-kind=postgresql -quarkus.datasource.username=quarkus_test -quarkus.datasource.password=quarkus_test -quarkus.datasource.jdbc.url=jdbc:postgresql://localhost/quarkus_test - -# Hibernate configuration -quarkus.hibernate-orm.database.generation=none -quarkus.hibernate-orm.log.sql=true -quarkus.hibernate-orm.sql-load-script=no-file - -# flyway configuration -quarkus.flyway.connect-retries=10 -quarkus.flyway.table=flyway_quarkus_history -quarkus.flyway.migrate-at-start=true -quarkus.flyway.baseline-on-migrate=true -quarkus.flyway.baseline-version=1.0 -quarkus.flyway.baseline-description=Quartz ----- -<1> Indicate that the scheduler will be run in clustered mode -<2> Use the database store to persist job related information so that they can be shared between nodes - -== Creating a REST resource and a test - -Create the `org.acme.quartz.TaskResource` class with the following content: - -[source,java] ----- -package org.acme.quartz; - -import java.util.List; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/tasks") -public class TaskResource { - - @GET - public List listAll() { - return Task.listAll(); <1> - } -} ----- -<1> Retrieve the list of created tasks from the database - -You also have the option to create a `org.acme.quartz.TaskResourceTest` test with the following content: - -[source,java] ----- -package org.acme.quartz; - -import io.quarkus.test.junit.QuarkusTest; - -import static org.hamcrest.Matchers.greaterThanOrEqualTo; - -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -public class TaskResourceTest { - - @Test - public void tasks() throws InterruptedException { - Thread.sleep(1000); // wait at least a second to have the first task created - given() - .when().get("/tasks") - .then() - .statusCode(200) - .body("size()", is(greaterThanOrEqualTo(1))); <1> - } -} ----- -<1> Ensure that we have a `200` response and at least one task created - -== Creating Quartz Tables - -Add a SQL migration file named `src/main/resources/db/migration/V2.0.0\__QuarkusQuartzTasks.sql` with the content copied from -file with the content from link:{quickstarts-blob-url}/quartz-quickstart/src/main/resources/db/migration/V2.0.0__QuarkusQuartzTasks.sql[V2.0.0__QuarkusQuartzTasks.sql]. - -== Configuring the load balancer - -In the root directory, create a `nginx.conf` file with the following content: - -[source,conf] ----- -user nginx; - -events { - worker_connections 1000; -} - -http { - server { - listen 8080; - location / { - proxy_pass http://tasks:8080; <1> - } - } -} ----- -<1> Route all traffic to our tasks application - -== Setting Application Deployment - -In the root directory, create a `docker-compose.yml` file with the following content: - -[source,yaml] ----- -version: '3' - -services: - tasks: <1> - image: quarkus-quickstarts/quartz:1.0 - build: - context: ./ - dockerfile: src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm} - environment: - QUARKUS_DATASOURCE_URL: jdbc:postgresql://postgres/quarkus_test - networks: - - tasks-network - depends_on: - - postgres - - nginx: <2> - image: nginx:1.17.6 - volumes: - - ./nginx.conf:/etc/nginx/nginx.conf:ro - depends_on: - - tasks - ports: - - 8080:8080 - networks: - - tasks-network - - postgres: <3> - image: postgres:14.1 - container_name: quarkus_test - environment: - - POSTGRES_USER=quarkus_test - - POSTGRES_PASSWORD=quarkus_test - - POSTGRES_DB=quarkus_test - ports: - - 5432:5432 - networks: - - tasks-network - -networks: - tasks-network: - driver: bridge ----- -<1> Define the tasks service -<2> Define the nginx load balancer to route incoming traffic to an appropriate node -<3> Define the configuration to run the database - -== Running the database - -In a separate terminal, run the below command: - -[source,bash] ----- -docker-compose up postgres <1> ----- -<1> Start the database instance using the configuration options supplied in the `docker-compose.yml` file - -== Run the application in Dev Mode - -Run the application with: - -include::includes/devtools/dev.adoc[] - -After a few seconds, open another terminal and run `curl localhost:8080/tasks` to verify that we have at least one task created. - -As usual, the application can be packaged using: - -include::includes/devtools/build.adoc[] - -and executed with `java -jar target/quarkus-app/quarkus-run.jar`. - -You can also generate the native executable with: - -include::includes/devtools/build-native.adoc[] - -== Packaging the application and run several instances - -The application can be packaged using: - -include::includes/devtools/build.adoc[] - -Once the build is successful, run the below command: - -[source,bash] ----- -docker-compose up --scale tasks=2 --scale nginx=1 <1> ----- -<1> Start two instances of the application and a load balancer - -After a few seconds, in another terminal, run `curl localhost:8080/tasks` to verify that tasks were only created at different instants and in an interval of 10 seconds. - -You can also generate the native executable with: - -include::includes/devtools/build-native.adoc[] - -WARNING: It's the reponsibility of the deployer to clear/remove the previous state, i.e. stale jobs and triggers. Moreover, the applications that form the "Quartz cluster" should be identical, otherwise an unpredictable result may occur. - -[[quartz-register-plugin-listeners]] -== Registering Plugin and Listeners - -You can register `plugins`, `job-listeners` and `trigger-listeners` through Quarkus configuration. - -The example below registers the plugin `org.quartz.plugins.history.LoggingJobHistoryPlugin` named as `jobHistory` with the property `jobSuccessMessage` defined as `Job [{1}.{0}] execution complete and reports: {8}` - -[source,conf] ----- -quarkus.quartz.plugins.jobHistory.class=org.quartz.plugins.history.LoggingJobHistoryPlugin -quarkus.quartz.plugins.jobHistory.properties.jobSuccessMessage=Job [{1}.{0}] execution complete and reports: {8} ----- - -You can also register a listener programmatically with an injected `org.quartz.Scheduler`: - -[source,java] ----- -public class MyListenerManager { - void onStart(@Observes StartupEvent event, org.quartz.Scheduler scheduler) throws SchedulerException { - scheduler.getListenerManager().addJobListener(new MyJogListener()); - scheduler.getListenerManager().addTriggerListener(new MyTriggerListener()); - } -} ----- - -[[quartz-configuration-reference]] -== Quartz Configuration Reference - -include::{generated-dir}/config/quarkus-quartz.adoc[leveloffset=+1, opts=optional] diff --git a/_versions/2.7/guides/qute-reference.adoc b/_versions/2.7/guides/qute-reference.adoc deleted file mode 100644 index e7612b3dcfc..00000000000 --- a/_versions/2.7/guides/qute-reference.adoc +++ /dev/null @@ -1,2148 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Qute Reference Guide - -include::./attributes.adoc[] - -:numbered: -:sectnums: -:sectnumlevels: 4 -:toc: - -Qute is a templating engine designed specifically to meet the Quarkus needs. -The usage of reflection is minimized to reduce the size of native images. -The API combines both the imperative and the non-blocking reactive style of coding. -In the development mode, all files located in the `src/main/resources/templates` folder are watched for changes and modifications are immediately visible in your application. -Furthermore, Qute attempts to detect most of the template problems at build time and fail fast. - -In this guide, you will find an <>, the description of the <> and <> details. - -NOTE: Qute is primarily designed as a Quarkus extension. It is possible to use it as a "standalone" library too. However, in such case some of the features are not available. In general, any feature mentioned under the <> section is missing. You can find more information about the limitations and possibilities in the <> section. - -[[the_simplest_example]] -== The Simplest Example - -The easiest way to try Qute is to use the convenient `io.quarkus.qute.Qute` class and call one of its `fmt()` static methods that can be used to format simple messages: - -[source,java] ----- -import io.quarkus.qute.Qute; - -Qute.fmt("Hello {}!", "Lucy"); <1> -// => Hello Lucy! - -Qute.fmt("Hello {name} {surname ?: 'Default'}!", Map.of("name", "Andy")); <2> -// => Hello Andy Default! - -Qute.fmt("{header}").contentType("text/html").data("header", "

    My header

    ").render(); <3> -// <h1>Header</h1> <4> - -Qute.fmt("I am {#if ok}happy{#else}sad{/if}!", Map.of("ok", true)); <5> -// => I am happy! ----- -<1> The empty expression `{}` is a placeholder that is replaced with an index-based array accessor, i.e. `{data[0]}`. -<2> You can provide a data map instead. -<3> A builder-like API is available for more complex formatting requirements. -<4> Note that for a "text/html" template the special chars are replaced with html entities by default. -<5> You can use any <> in the template. In this case, the <> is used to render the appropriate part of the message based on the input data. - -TIP: In <>, the engine used to format the messages is the same as the one injected by `@Inject Engine`. Therefore, you can make use of any Quarkus-specific integration feature such as <>, <> or even <>. - - -The format object returned by the `Qute.fmt(String)` method can be evaluated lazily and used e.g. as a log message: - -[source,java] ----- -LOG.info(Qute.fmt("Hello {name}!").data("name", "Foo")); -// => Hello Foo! and the message template is only evaluated if the log level INFO is used for the specific logger ----- - -NOTE: Please read the javadoc of the `io.quarkus.qute.Qute` class for more details. - -[[hello_world_example]] -== Hello World Example - -In this example, we would like to demonstrate the _basic workflow_ when working with Qute templates. -Let's start with a simple "hello world" example. -We will always need some *template contents*: - -.hello.html -[source,html] ----- - -

    Hello {name}! <1> - ----- -<1> `{name}` is a value expression that is evaluated when the template is rendered. - -Then, we will need to parse the contents into a *template definition* Java object. -A template definition is an instance of `io.quarkus.qute.Template`. - -If using Qute "standalone" you'll need to create an instance of `io.quarkus.qute.Engine` first. -The `Engine` represents a central point for template management with dedicated configuration. -Let's use the convenient builder: - -[source,java] ----- -Engine engine = Engine.builder().addDefaults().build(); ----- - -TIP: In Quarkus, there is a preconfigured `Engine` available for injection - see <>. - -Once we have an `Engine` instance we could parse the template contents: - -[source,java] ----- -Template hello = engine.parse(helloHtmlContent); ----- - -TIP: In Quarkus, you can simply inject the template definition. The template is automatically parsed and cached - see <>. - -Finally, create a *template instance*, set the data and render the output: - -[source,java] ----- -// Renders

    Hello Jim!

    -hello.data("name", "Jim").render(); <1> <2> ----- -<1> `Template.data(String, Object)` is a convenient method that creates a template instance and sets the data in one step. -<2> `TemplateInstance.render()` triggers a synchronous rendering, i.e. the current thread is blocked until the rendering is finished. However, there are also asynchronous ways to trigger the rendering and consume the results. For example there is the `TemplateInstance.renderAsync()` method that returns `CompletionStage` or `TemplateInstance.createMulti()` that returns Mutiny's `Multi`. - -So the workflow is simple: - -1. Create the template contents (`hello.html`), -2. Parse the template definition (`io.quarkus.qute.Template`), -3. Create a template instance (`io.quarkus.qute.TemplateInstance`), -4. Render the output. - -TIP: The `Engine` is able to cache the template definitions so that it's not necessary to parse the contents again and again. In Quarkus, the caching is done automatically. - -[[core_features]] -== Core Features - -[[basic-building-blocks]] -=== Basic Building Blocks - -The dynamic parts of a template include comments, expressions, sections and unparsed character data. - -Comments:: -A comment starts with the sequence `{!` and ends with the sequence `!}`, e.g. `{! This is a comment !}`. -Can be multiline and may contain expressions and sections: `{! {#if true} !}`. -The content of a comment is completely ignored when rendering the output. - -Expressions:: -An <> outputs an evaluated value. -It consists of one or more parts. -A part may represent simple properties: `{foo}`, `{item.name}`, and virtual methods: `{item.get(name)}`, `{name ?: 'John'}`. -An expression may also start with a namespace: `{inject:colors}`. - -Sections:: -A <> may contain static text, expressions and nested sections: `{#if foo.active}{foo.name}{/if}`. -The name in the closing tag is optional: `{#if active}ACTIVE!{/}`. -A section can be empty: `{#myTag image=true /}`. -A section may also declare nested section blocks: `{#if item.valid} Valid. {#else} Invalid. {/if}` and decide which block to render. - -Unparsed Character Data:: -It is used to mark the content that should be rendered but _not parsed_. -It starts with the sequence `{|` and ends with the sequence `|}`: `{| |}`, and could be multi-line. -+ -NOTE: Previously, unparsed character data had to start with `{[` and end with `]}`. This syntax is still supported but we encourage users to switch to the new syntax to avoid some common collisions with constructs from other languages. - -[[identifiers]] -=== Identifiers and Tags - -Identifiers are used in expressions and section tags. -A valid identifier is a sequence of non-whitespace characters. -However, users are encouraged to only use valid Java identifiers in expressions. - -TIP: You can use bracket notation if you need to specify an identifier that contains a dot, e.g. `{map['my.key']}`. - -When parsing a template document the parser identifies all _tags_. -A tag starts and ends with a curly bracket, e.g. `{foo}`. -The content of a tag must start with: - -* a digit, or -* an alphabet character, or -* underscore, or -* a built-in command: `#`, `!`, `@`, `/`. - -If it does not start with any of the above it is ignored by the parser. - -.Tag Examples -[source,html] ----- - - - {_foo.bar} <1> - {! comment !}<2> - { foo} <3> - {{foo}} <4> - {"foo":true} <5> - - ----- -<1> Parsed: an expression that starts with underscore. -<2> Parsed: a comment -<3> Ignored: starts with whitespace. -<4> Ignored: starts with `{`. -<5> Ignored: starts with `"`. - -TIP: It is also possible to use escape sequences `\{` and `\}` to insert delimiters in the text. In fact, an escape sequence is usually only needed for the start delimiter, ie. `\\{foo}` will be rendered as `{foo}` (no parsing/evaluation will happen). - -=== Removing Standalone Lines From the Template - -By default, the parser removes standalone lines from the template output. -A *standalone line* is a line that contains at least one section tag (e.g. `{#each}` and `{/each}`), parameter declaration (e.g. `{@org.acme.Foo foo}`) or comment but no expression and no non-whitespace character. -In other words, a line that contains no section tag or a parameter declaration is *not* a standalone line. -Likewise, a line that contains an _expression_ or a _non-whitespace character_ is *not* a standalone line. - -.Template Example -[source,html] ----- - - -
      - {#for item in items} <1> -
    • {item.name} {#if item.active}{item.price}{/if}
    • <2> - <3> - {/for} <4> -
    - - ----- -<1> This is a standalone line and will be removed. -<2> Not a standalone line - contains an expression and non-whitespace characters -<3> Not a standalone line - contains no section tag/parameter declaration -<4> This is a standalone line. - -.Default Output -[source,html] ----- - - -
      -
    • Foo 100
    • - -
    - - ----- - -TIP: In Quarkus, the default behavior can be disabled by setting the property `quarkus.qute.remove-standalone-lines` to `false`. -In this case, all whitespace characters from a standalone line will be printed to the output. - -.Output with `quarkus.qute.remove-standalone-lines=false` -[source,html] ----- - - -
      - -
    • Foo 100
    • - - -
    - - ----- - -[[expressions]] -=== Expressions - -An expression is evaluated and outputs the value. -It has one or more parts, where each part represents either a property accessor (aka Field Access Expression) or a virtual method invocation (aka Method Invocation Expression). - -When accessing the properties you can either use the dot notation or bracket notation. -In the `object.property` (dot notation) syntax, the `property` must be a <>. -In the `object[property_name]` (bracket notation) syntax, the `property_name` has to be a non-null <> value. - -An expression can start with an optional namespace followed by a colon (`:`). -A valid namespace consist of alphanumeric characters and underscores. -Namespace expressions are resolved differently - see also <>. - -.Property Accessor Examples -[source] ----- -{name} <1> -{item.name} <2> -{item['name']} <3> -{global:colors} <4> ----- -<1> no namespace, one part: `name` -<2> no namespace, two parts: `item`, `name` -<3> equivalent to `{item.name}` but using the bracket notation -<4> namespace `global`, one part: `colors` - -A part of an expression can be a _virtual method_ in which case the name can be followed by a list of comma-separated parameters in parentheses. -A parameter of a virtual method can be either a nested expression or a <> value. -We call these method _"virtual"_ because they does not have to be backed by a real Java method. -You can learn more about virtual methods in the <>. - -.Virtual Method Example -[source] ----- -{item.getLabels(1)} <1> -{name or 'John'} <2> ----- -<1> no namespace, two parts - `item`, `getLabels(1)`, the second part is a virtual method with name `getLabels` and params `1` -<2> infix notation that can be used for virtual methods with single parameter, translated to `name.or('John')`; no namespace, two parts - `name`, `or('John')` - -[[literals]] -==== Supported Literals - -|=== -|Literal |Examples - -|boolean -|`true`, `false` - -|null -|`null` - -|string -|`'value'`, `"string"` - -|integer -|`1`, `-5` - -|long -|`1l`, `-5L` - -|double -|`1D`, `-5d` - -|float -|`1f`, `-5F` - -|=== - -[[expression_resolution]] -==== Resolution - -The first part of the expression is always resolved against the <>. -If no result is found for the first part it's resolved against the parent context object (if available). -For an expression that starts with a namespace the current context object is found using all the available ``NamespaceResolver``s. -For an expression that does not start with a namespace the current context object is *derived from the position* of the tag. -All other parts of an expression are resolved using all ``ValueResolver``s against the result of the previous resolution. - -For example, expression `{name}` has no namespace and single part - `name`. -The "name" will be resolved using all available value resolvers against the current context object. -However, the expression `{global:colors}` has the namespace `global` and single part - `colors`. -First, all available ``NamespaceResolver``s will be used to find the current context object. -And afterwards value resolvers will be used to resolve "colors" against the context object found. - -[TIP] -==== -Data passed to the template instance are always accessible using the `data` namespace. -This could be useful to access data for which the key is overridden: - -[source,html] ----- - -{item.name} <1> -
      -{#for item in item.derivedItems} <2> -
    • - {item.name} <3> - is derived from - {data:item.name} <4> -
    • -{/for} -
    - ----- -<1> `item` is passed to the template instance as a data object. -<2> Iterate over the list of derived items. -<3> `item` is an alias for the iterated element. -<4> Use the `data` namespace to access the `item` data object. - -==== - -[[current_context_object]] -==== Current Context - -If an expression does not specify a namespace the _current context object_ is derived from the position of the tag. -By default, the current context object represents the data passed to the template instance. -However, sections may change the current context object. -A typical example is the <> section that can be used to define named local variables: - -[source,html] ----- -{#let myParent=order.item.parent myPrice=order.price} <1> -

    {myParent.name}

    -

    Price: {myPrice}

    -{/let} ----- -<1> The current context object inside the section is the map of resolved parameters. - -NOTE: The current context can be accessed via the implicit binding `this`. - -==== Built-in Resolvers - -|=== -|Name |Description |Examples - -|Elvis Operator -|Outputs the default value if the previous part cannot be resolved or resolves to `null`. -|`{person.name ?: 'John'}`, `{person.name or 'John'}`, `{person.name.or('John')}` - -|orEmpty -|Outputs an empty list if the previous part cannot be resolved or resolves to `null`. -|`{#for pet in pets.orEmpty}{pet.name}{/for}` - -|Ternary Operator -|Shorthand for if-then-else statement. Unlike in <> nested operators are not supported. -|`{item.isActive ? item.name : 'Inactive item'}` outputs the value of `item.name` if `item.isActive` resolves to `true`. - -|Logical AND Operator -|Outputs `true` if both parts are not `falsy` as described in the <>. The parameter is only evaluated if needed. -|`{person.isActive && person.hasStyle}` - -|Logical OR Operator -|Outputs `true` if any of the parts is not `falsy` as described in the <>. The parameter is only evaluated if needed. -|`{person.isActive \|\| person.hasStyle}` - -|=== - -TIP: The condition in a ternary operator evaluates to `true` if the value is not considered `falsy` as described in the <>. - -NOTE: In fact, the operators are implemented as "virtual methods" that consume one parameter and can be used with infix notation. For example `{person.name or 'John'}` is translated to `{person.name.or('John')}` and `{item.isActive ? item.name : 'Inactive item'}` is translated to `{item.isActive.ifTruthy(item.name).or('Inactive item')}` - -==== Arrays - -You can iterate over elements of an array with the <>. -Moreover, it's also possible to get the length of the specified array and access the elements directly via an index value. -Additionaly, you can access the first/last `n` elements via the `take(n)/takeLast(n)` methods. - -.Array Examples -[source,html] ----- -

    Array of length: {myArray.length}

    <1> -
      -
    • First: {myArray.0}
    • <2> -
    • Second: {myArray[1]}
    • <3> -
    • Third: {myArray.get(2)}
    • <4> -
    -
      - {#for element in myArray} -
    1. {element}
    2. - {/for} -
    -First two elements: {#each myArray.take(2)}{it}{/each} <5> ----- -<1> Outputs the length of the array. -<2> Outputs the first element of the array. -<3> Outputs the second element of the array using the bracket notation. -<4> Outputs the third element of the array via the virtual method `get()`. -<5> Outputs the first two elements of the array. - -==== Character Escapes - -For HTML and XML templates the `'`, `"`, `<`, `>`, `&` characters are escaped by default if a template variant is set. - -NOTE: In Quarkus, a variant is set automatically for templates located in the `src/main/resources/templates`. By default, the `java.net.URLConnection#getFileNameMap()` is used to determine the content type of a template file. The additional map of suffixes to content types can be set via `quarkus.qute.content-types`. - -If you need to render the unescaped value: - -1. Either use the `raw` or `safe` properties implemented as extension methods of the `java.lang.Object`, -2. Or wrap the `String` value in a `io.quarkus.qute.RawString`. - -[source,html] ----- - -

    {title}

    <1> -{paragraph.raw} <2> - ----- -<1> `title` that resolves to `Expressions & Escapes` will be rendered as `Expressions &amp; Escapes` -<2> `paragraph` that resolves to `

    My text!

    ` will be rendered as `

    My text!

    ` - -TIP: By default, a template with one of the following content types is escaped: `text/html`, `text/xml`, `application/xml` and `application/xhtml+xml`. However, it's possible to extend this list via the `quarkus.qute.escape-content-types` configuration property. - -[[virtual_methods]] -==== Virtual Methods - -A virtual method is a *part of an expression* that looks like a regular Java method invocation. -It's called "virtual" because it does not have to match the actual method of a Java class. -In fact, like normal properties a virtual method is also handled by a value resolver. -The only difference is that for virtual methods a value resolver consumes parameters that are also expressions. - -.Virtual Method Example -[source,html] ----- - -

    {item.buildName(item.name,5)}

    <1> - ----- -<1> `buildName(item.name,5)` represents a virtual method with name `buildName` and two parameters: `item.name` and `5` . The virtual method could be evaluated by a value resolver generated for the following Java class: -+ -[source,java] ----- -class Item { - String buildName(String name, int age) { - return name + ":" + age; - } -} ----- - -NOTE: Virtual methods are usually evaluated by value resolvers generated for <>, <> or classes used in <>. However, a custom value resolver that is not backed by any Java class/method can be registered as well. - -A virtual method with single parameter can be called using the infix notation: - -.Infix Notation Example -[source,html] ----- - -

    {item.price or 5}

    <1> - ----- -<1> `item.price or 5` is translated to `item.price.or(5)`. - -Virtual method parameters can be "nested" virtual method invocations. - -.Nested Virtual Method Example -[source,html] ----- - -

    {item.subtractPrice(item.calculateDiscount(10))}

    <1> - ----- -<1> `item.calculateDiscount(10)` is evaluated first and then passed as an argument to `item.subtractPrice()`. - -==== Evaluation of `CompletionStage` and `Uni` Objects - -Objects that implement `java.util.concurrent.CompletionStage` and `io.smallrye.mutiny.Uni` are evaluated in a special way. -If a part of an expression resolves to a `CompletionStage`, the resolution continues once this stage is completed and the next part of the expression (if any) is evaluated against the result of the completed stage. -For example, if there is an expression `{foo.size}` and `foo` resolves to `CompletionStage>` then `size` is resolved against the completed result, i.e. `List`. -If a part of an expression resolves to a `Uni`, a `CompletionStage` is first created from `Uni` using `Uni#subscribeAsCompletionStage()` and then evaluated as described above. - -==== Missing Properties - -It can happen that an expression may not be evaluated at runtime. -For example, if there is an expression `{person.age}` and there is no property `age` declared on the `Person` class. -The behavior differs based on whether the <> is enabled or not. - -If enabled then a missing property will always result in a `TemplateException` and the rendering is aborted. -You can use _default values_ and _safe expressions_ in order to suppress the error. - -If disabled then the special constant `NOT_FOUND` is written to the output by default. - -TIP: In Quarkus, it's possible to change the default strategy via the `quarkus.qute.property-not-found-strategy` as described in the <>. - -NOTE: Similar errors are detected at build time if <> and <> are used. - -[[sections]] -=== Sections - -A section: - -* has a start tag -** starts with `#`, followed by the name of the section such as `{#if}` and `{#each}`, -* may be empty -** tag ends with `/`, ie. `{#emptySection /}` -* may contain other expression, sections, etc. -** the end tag starts with `/` and contains the name of the section (optional): `{#if foo}Foo!{/if}` or `{#if foo}Foo!{/}`, - -The start tag can also define parameters. -The parameters have optional names. -A section may contain several content *blocks*. -The "main" block is always present. -Additional/nested blocks also start with `#` and can have parameters too - `{#else if item.isActive}`. -A section helper that defines the logic of a section can "execute" any of the blocks and evaluate the parameters. - -[source] ----- -{#if item.name is 'sword'} - It's a sword! -{#else if item.name is 'shield'} - It's a shield! -{#else} - Item is neither a sword nor a shield. -{/if} ----- - -[[loop_section]] -==== Loop Section - -The loop section makes it possible to iterate over an instance of `Iterable`, `Iterator`, array, `Map` (element is a `Map.Entry`), `Stream`, `Integer` and `int` (primitive value). -It has two flavors. -The first one is using the `each` name and `it` is an implicit alias for the iteration element. - -[source] ----- -{#each items} - {it.name} <1> -{/each} ----- -<1> `name` is resolved against the current iteration element. - -The other form is using the `for` name and can specify the alias used to reference the iteration element: - -[source] ----- -{#for item in items} <1> - {item.name} -{/for} ----- -<1> `item` is the alias used for the iteration element. - -It's also possible to access the iteration metadata inside the loop via the following keys: - -* `count` - 1-based index -* `index` - zero-based index -* `hasNext` - `true` if the iteration has more elements -* `isLast` - `true` if `hasNext == false` -* `isFirst` - `true` if `count == 1` -* `odd` - `true` if the zero-based index is odd -* `even` - `true` if the zero-based index is even -* `indexParity` - outputs `odd` or `even` based on the zero-based index value - -However, the keys cannot be used directly. -Instead, a prefix is used to avoid possible collisions with variables from the outer scope. -By default, the alias of an iterated element suffixed with an underscore is used as a prefix. -For example, the `hasNext` key must be prefixed with `it_` inside an `{#each}` section: `{it_hasNext}`. - -.`each` Iteration Metadata Example -[source] ----- -{#each items} - {it_count}. {it.name} <1> - {#if it_hasNext}
    {/if} <2> -{/each} ----- -<1> `it_count` represents one-based index. -<2> `
    ` is only rendered if the iteration has more elements. - -And must be used in a form of `{item_hasNext}` inside a `{#for}` section with the `item` element alias. - -.`for` Iteration Metadata Example -[source] ----- -{#for item in items} - {item_count}. {item.name} <1> - {#if item_hasNext}
    {/if} <2> -{/each} ----- -<1> `item_count` represents one-based index. -<2> `
    ` is only rendered if the iteration has more elements. - -[TIP] -==== -The iteration metadata prefix is configurable either via `EngineBuilder.iterationMetadataPrefix()` for standalone Qute or via the `quarkus.qute.iteration-metadata-prefix` configuration property in a Quarkus application. Three special constants can be used: - -1. `` - the alias of an iterated element suffixed with an underscore is used (default) -2. `` - the alias of an iterated element suffixed with a question mark is used -3. `` - no prefix is used -==== - -The `for` statement also works with integers, starting from 1. In the example below, considering that `total = 3`: - -[source] ----- -{#for i in total} - {i}: -{/for} ----- - -And the output will be: - -[source] ----- -1:2:3: ----- - -A loop section may also define the `{#else}` block that is executed when there are no items to iterate: - -[source] ----- -{#for item in items} - {item.name} -{#else} - No items. -{/for} ----- - -[[if_section]] -==== If Section - -The `if` section represents a basic control flow section. -The simplest possible version accepts a single parameter and renders the content if the condition is evaluated to `true`. -A condition without an operator evaluates to `true` if the value is not considered `falsy`, i.e. if the value is not `null`, `false`, an empty collection, an empty map, an empty array, an empty string/char sequence or a number equal to zero. - -[source] ----- -{#if item.active} - This item is active. -{/if} ----- - -You can also use the following operators in a condition: - -|=== -|Operator |Aliases |Precedence (higher wins) - -|logical complement -|`!` -| 4 - -|greater than -|`gt`, `>` -| 3 - -|greater than or equal to -|`ge`, `>=` -| 3 - -|less than -|`lt`, `<` -| 3 - -|less than or equal to -|`le`, `\<=` -| 3 - -|equals -|`eq`, `==`, `is` -| 2 - -|not equals -|`ne`, `!=` -| 2 - -|logical AND (short-circuiting) -|`&&`, `and` -| 1 - -|logical OR (short-circuiting) -|`\|\|`, `or` -| 1 - -|=== - -.A simple operator example -[source] ----- -{#if item.age > 10} - This item is very old. -{/if} ----- - -Multiple conditions are also supported. - -.Multiple conditions example -[source] ----- -{#if item.age > 10 && item.price > 500} - This item is very old and expensive. -{/if} ----- - -Precedence rules can be overridden by parentheses. - -.Parentheses example -[source] ----- -{#if (item.age > 10 || item.price > 500) && user.loggedIn} - User must be logged in and item age must be > 10 or price must be > 500. -{/if} ----- - - -You can also add any number of `else` blocks: - -[source] ----- -{#if item.age > 10} - This item is very old. -{#else if item.age > 5} - This item is quite old. -{#else if item.age > 2} - This item is old. -{#else} - This item is not old at all! -{/if} ----- - -[[when_section]] -==== When Section - -This section is similar to Java's `switch` or Kotlin's `when` constructs. -It matches a _tested value_ against all blocks sequentially until a condition is satisfied. -The first matching block is executed. -All other blocks are ignored (this behavior differs to the Java `switch` where a `break` statement is necessary). - -.Example using the `when`/`is` name aliases -[source] ----- -{#when items.size} - {#is 1} <1> - There is exactly one item! - {#is > 10} <2> - There are more than 10 items! - {#else} <3> - There are 2 -10 items! -{/when} ----- -<1> If there is exactly one parameter it's tested for equality. -<2> It's possible to use <> to specify the matching logic. Unlike in the <> nested operators are not supported. -<3> `else` is block is executed if no other block matches the value. - -.Example using the `switch`/`case` name aliases -[source] ----- -{#switch person.name} - {#case 'John'} <1> - Hey John! - {#case 'Mary'} - Hey Mary! -{/switch} ----- -<1> `case` is an alias for `is`. - -A tested value that resolves to an enum is handled specifically. -The parameters of an `is`/`case` block are not evaluated as expressions but compared with the result of `toString()` invocation upon the tested value. - -[source] ----- -{#when machine.status} - {#is ON} - It's running. <1> - {#is in OFF BROKEN} - It's broken or OFF. <2> -{/when} ----- -<1> This block is executed if `machine.status.toString().equals("ON")`. -<2> This block is executed if `machine.status.toString().equals("OFF")` or `machine.status.toString().equals("BROKEN")`. - -NOTE: An enum constant is validated if the tested value has a type information available and resolves to an enum type. - -The following operators are supported in `is`/`case` block conditions: - -[[when_operators]] - -|=== -|Operator |Aliases |Example - -|not equal -|`!=`, `not`, `ne` -|`{#is not 10}`,`{#case != 10}` - -|greater than -|`gt`, `>` -|`{#case le 10}` - -|greater than or equal to -|`ge`, `>=` -|`{#is >= 10}` - -|less than -|`lt`, `<` -|`{#is < 10}` - -|less than or equal to -|`le`, `\<=` -|`{#case le 10}` - -|in -|`in` -|`{#is in 'foo' 'bar' 'baz'}` - -|not in -|`ni`,`!in` -|`{#is !in 1 2 3}` - -|=== - -[[let_section]] -==== Let Section - -This section allows you to define named local variables: -[source,html] ----- -{#let myParent=order.item.parent isActive=false age=10} <1> -

    {myParent.name}

    - Is active: {isActive} - Age: {age} -{/let} <2> ----- -<1> The local variable is initialized with an expression that can also represent a <>. -<2> Keep in mind that the variable is not available outside the `let` section that defines it. - -The section tag is also registered under the `set` alias: - -[source,html] ----- -{#set myParent=item.parent price=item.price} -

    {myParent.name}

    -

    Price: {price} -{/set} ----- - -[[with_section]] -==== With Section - -This section can be used to set the current context object. -This could be useful to simplify the template structure: - -[source,html] ----- -{#with item.parent} -

    {name}

    <1> -

    {description}

    <2> -{/with} ----- -<1> The `name` will be resolved against the `item.parent`. -<2> The `description` will be also resolved against the `item.parent`. - -[IMPORTANT] -==== -Note that the `with` section should not be used in <> or templates that define <>. -The reason is that it prevents Qute from validating the nested expressions. -If possible it should be replaced with the `{#let}` section which declares an explicit binding: - -[source,html] ----- -{#let it=item.parent} -

    {it.name}

    -

    {it.description}

    -{/let} ----- -==== - -This section might also come in handy when we'd like to avoid multiple expensive invocations: - -[source,html] ----- -{#with item.callExpensiveLogicToGetTheValue(1,'foo',bazinga)} - {#if this is "fun"} <1> -

    Yay!

    - {#else} -

    {this} is not fun at all!

    - {/if} -{/with} ----- -<1> `this` is the result of `item.callExpensiveLogicToGetTheValue(1,'foo',bazinga)`. The method is only invoked once even though the result may be used in multiple expressions. - -[[include_helper]] -==== Include Section - -This section can be used to include another template and possibly override some parts of the template (template inheritance). - -.Simple Example -[source,html] ----- - - - -Simple Include - - - {#include foo limit=10 /} <1><2> - - ----- -<1> Include a template with id `foo`. The included template can reference data from the current context. -<2> It's also possible to define optional parameters that can be used in the included template. - -Template inheritance makes it possible to reuse template layouts. - -.Template "base" -[source,html] ----- - - - -{#insert title}Default Title{/} <1> - - - {#insert}No body!{/} <2> - - ----- -<1> `insert` sections are used to specify parts that could be overridden by a template that includes the given template. -<2> An `insert` section may define the default content that is rendered if not overridden. If no name parameter is supplied then the main block of the relevant `{#include}` section is used. - -.Template "detail" -[source,html] ----- -{#include base} <1> - {#title}My Title{/title} <2> -
    <3> - My body. -
    -{/include} ----- -<1> `include` section is used to specify the extended template. -<2> Nested blocks are used to specify the parts that should be overridden. -<3> The content of the main block is used for an `{#insert}` section with no name parameter specified. - -NOTE: Section blocks can also define an optional end tag - `{/title}`. - -==== Eval Section - -This section can be used to parse and evaluate a template dynamically. -The behavior is very similar to the <> but: - -1. The template content is passed directly, i.e. not obtained via an `io.quarkus.qute.TemplateLocator`, -2. It's not possible to override parts of the evaluated template. - -[source,html] ----- -{#eval myData.template name='Mia' /} <1><2><3> ----- -<1> The result of `myData.template` will be used as the template. The template is executed with the <>, i.e. can reference data from the template it's included into. -<2> It's also possible to define optional parameters that can be used in the evaluated template. -<3> The content of the section is always ignored. - -NOTE: The evaluated template is parsed and evaluated every time the section is executed. In other words, it's not possible to cache the parsed value to conserve resources and optimize the performance. - -[[user_tags]] -==== User-defined Tags - -User-defined tags can be used to include a tag template and optionally pass some parameters. -Let's suppose we have a tag template called `itemDetail.html`: - -[source] ----- -{#if showImage} <1> - {it.image} <2> - {nested-content} <3> -{/if} ----- -<1> `showImage` is a named parameter. -<2> `it` is a special key that is replaced with the first unnamed parameter of the tag. -<3> (optional) `nested-content` is a special key that will be replaced by the content of the tag. - -In Quarkus, all files from the `src/main/resources/templates/tags` are registered and monitored automatically. -For Qute standalone, you need to put the parsed template under the name `itemDetail.html` and register a relevant `UserTagSectionHelper` to the engine: - -[source,java] ----- -Engine engine = Engine.builder() - .addSectionHelper(new UserTagSectionHelper.Factory("itemDetail","itemDetail.html")) - .build(); -engine.putTemplate("itemDetail.html", engine.parse("...")); ----- - -Then, we can call the tag like this: - -[source,html] ----- -
      -{#for item in items} -
    • - {#itemDetail item showImage=true} <1> - = {item.name} <2> - {/itemDetail} -
    • -{/for} -
    ----- -<1> `item` is resolved to an iteration element and can be referenced using the `it` key in the tag template. -<2> Tag content injected using the `nested-content` key in the tag template. - -By default, the tag template can reference data from the parent context. -For example, the tag above could use the following expression `{items.size}`. -However, sometimes it might be useful to disable this behavior and execute the tag as an _isolated_ template, i.e. without access to the context of the template that calls the tag. -In this case, just add `_isolated` or `_isolated=true` argument to the call site, e.g. `{#itemDetail item showImage=true _isolated /}`. - -=== Rendering Output - -`TemplateInstance` provides several ways to trigger the rendering and consume the result. -The most straightforward approach is represented by `TemplateInstance.render()`. -This method triggers a synchronous rendering, i.e. the current thread is blocked until the rendering is finished, and returns the output. -By contrast, `TemplateInstance.renderAsync()` returns a `CompletionStage` which is completed when the rendering is finished. - -.`TemplateInstance.renderAsync()` Example -[source,java] ----- -template.data(foo).renderAsync().whenComplete((result, failure) -> { <1> - if (failure == null) { - // consume the output... - } else { - // process failure... - } -}; ----- -<1> Register a callback that is executed once the rendering is finished. - -There are also two methods that return https://smallrye.io/smallrye-mutiny/[Mutiny] types. -`TemplateInstance.createUni()` returns a new `Uni` object. -If you call `createUni()` the template is not rendered right away. -Instead, every time `Uni.subscribe()` is called a new rendering of the template is triggered. - -.`TemplateInstance.createUni()` Example -[source,java] ----- -template.data(foo).createUni().subscribe().with(System.out::println); ----- - -`TemplateInstance.createMulti()` returns a new `Multi` object. -Each item represents a part/chunk of the rendered template. -Again, `createMulti()` does not trigger rendering. -Instead, every time a computation is triggered by a subscriber the template is rendered again. - -.`TemplateInstance.createMulti()` Example -[source,java] ----- -template.data(foo).createMulti().subscribe().with(buffer:append,buffer::flush); ----- - -NOTE: The template rendering is divided in two phases. During the first phase, which is asynchronous, all expressions in the template are resolved and a _result tree_ is built. In the second phase, which is synchronous, the result tree is _materialized_, i.e. one by one the result nodes emit chunks that are consumed/buffered by the specific consumer. - -=== Engine Configuration - -[[value-resolvers]] -==== Value Resolvers - -Value resolvers are used when evaluating expressions. -A custom `io.quarkus.qute.ValueResolver` can be registered programmatically via `EngineBuilder.addValueResolver()`. - -.`ValueResolver` Builder Example -[source,java] ----- -engineBuilder.addValueResolver(ValueResolver.builder() - .appliesTo(ctx -> ctx.getBase() instanceof Long && ctx.getName().equals("tenTimes")) - .resolveSync(ctx -> (Long) ctx.getBase() * 10) - .build()); ----- - -[[template-locator]] -==== Template Locator - -Manual registration is sometimes handy but it's also possible to register a template locator using `EngineBuilder.addLocator()`. -This locator is used whenever the `Engine.getTemplate()` method is called and the engine has no template for a given id stored in the cache. -The locator is responsible to use the correct character encoding when reading the contents of a template. - -NOTE: In Quarkus, all templates from the `src/main/resources/templates` are located automatically and the encoding set via `quarkus.qute.default-charset` (UTF-8 by default) is used. - -==== Content Filters - -Content filters can be used to modify the template contents before parsing. - -.Content Filter Example -[source,java] ----- -engineBuilder.addParserHook(new ParserHook() { - @Override - public void beforeParsing(ParserHelper parserHelper) { - parserHelper.addContentFilter(contents -> contents.replace("${", "$\\{")); <1> - } -}); ----- -<1> Escape all occurences of `${`. - -[[strict_rendering]] -==== Strict Rendering - -The strict rendering enables the developers to catch insidious errors caused by typos and invalid expressions. -If enabled then any expression that cannot be resolved, i.e. is evaluated to an instance of `io.quarkus.qute.Results.NotFound`, will always result in a `TemplateException` and the rendering is aborted. -A `NotFound` value is considered an error because it basically means that no value resolver was able to resolve the expression correctly. - -NOTE: `null` is a valid value though. It is considered `falsy` as described in the <> and does not produce any output. - -Strict rendering is enabled by default. -However, you can disable this functionality via `io.quarkus.qute.EngineBuilder.strictRendering(boolean)`. - -TIP: In Quarkus, a dedicated config property can be used instead: `quarkus.qute.strict-rendering`. - -If you really need to use an expression which can potentially lead to a "not found" error, you can use _default values_ and _safe expressions_ in order to suppress the error. -A default value is used if the previous part of an expression cannot be resolved or resolves to `null`. -You can use the elvis operator to output the default value: `{foo.bar ?: 'baz'}`, which is effectively the same as the following virtual method: `{foo.bar.or('baz')}`. -A safe expression ends with the `??` suffix and results in `null` if the expression cannot be resolved. -It can be very useful e.g. in `{#if}` sections: `{#if valueNotFound??}Only rendered if valueNotFound is truthy!{/if}`. -In fact, `??` is just a shorthand notation for `.or(null)`, i.e. `{#if valueNotFound??}` becomes `{#if valueNotFound.or(null)}`. - -[[quarkus_integration]] -== Quarkus Integration - -If you want to use Qute in your Quarkus application add the following dependency to your project: - -[source,xml] ----- - - io.quarkus - quarkus-qute - ----- - -In Quarkus, a preconfigured engine instance is provided and available for injection - a bean with scope `@ApplicationScoped`, bean type `io.quarkus.qute.Engine` and qualifier `@Default` is registered automatically. -Moreover, all templates located in the `src/main/resources/templates` directory are validated and can be easily injected. - -[source,java] ----- -import io.quarkus.qute.Engine; -import io.quarkus.qute.Template; -import io.quarkus.qute.Location; - -class MyBean { - - @Inject - Template items; <1> - - @Location("detail/items2_v1.html") <2> - Template items2; - - @Inject - Engine engine; <3> -} ----- -<1> If there is no `Location` qualifier provided, the field name is used to locate the template. In this particular case, the container will attempt to locate a template with path `src/main/resources/templates/items.html`. -<2> The `Location` qualifier instructs the container to inject a template from a path relative from `src/main/resources/templates`. In this case, the full path is `src/main/resources/templates/detail/items2_v1.html`. -<3> Inject the configured `Engine` instance. - -It's also possible to contribute to the engine configuration via a CDI observer method. - -.`EngineBuilder` Observer Example -[source,java] ----- -import io.quarkus.qute.EngineBuilder; - -class MyBean { - - void configureEngine(@Observes EngineBuilder builder) { - builder.addValueResolver(ValueResolver.builder() - .appliesTo(ctx -> ctx.getBase() instanceof Long && ctx.getName().equals("tenTimes")) - .resolveSync(ctx -> (Long) ec.getBase() * 10) - .build()); - } -} ----- - -=== Template Variants - -Sometimes it's useful to render a specific variant of the template based on the content negotiation. -This can be done by setting a special attribute via `TemplateInstance.setAttribute()`: - -[source,java] ----- -class MyService { - - @Inject - Template items; <1> - - @Inject - ItemManager manager; - - String renderItems() { - return items.data("items",manager.findItems()).setAttribute(TemplateInstance.SELECTED_VARIANT, new Variant(Locale.getDefault(),"text/html","UTF-8")).render(); - } -} ----- - -NOTE: When using `quarkus-resteasy-qute` the content negotiation is performed automatically. See <>. - -[[injecting-beans-directly-in-templates]] -=== Injecting Beans Directly In Templates - -A CDI bean annotated with `@Named` can be referenced in any template through `cdi` and/or `inject` namespaces: - -[source,html] ----- -{cdi:personService.findPerson(10).name} <1> -{inject:foo.price} <2> ----- -<1> First, a bean with name `personService` is found and then used as the base object. -<2> First, a bean with name `foo` is found and then used as the base object. - -All expressions with `cdi` and `inject` namespaces are validated during build. -For the expression `cdi:personService.findPerson(10).name` the implementation class of the injected bean must either declare the `findPerson` method or a matching <> must exist. -For the expression `inject:foo.price` the implementation class of the injected bean must either have the `price` property (e.g. a `getPrice()` method) or a matching <> must exist. - -NOTE: A `ValueResolver` is also generated for all beans annotated with `@Named` so that it's possible to access its properties without reflection. - -TIP: If your application serves xref:http-reference.adoc[HTTP requests] you can also inject the current `io.vertx.core.http.HttpServerRequest` via the `inject` namespace, e.g. `{inject:vertxRequest.getParam('foo')}`. - -[[typesafe_expressions]] -=== Type-safe Expressions - -Template expressions can be optionally type-safe. -Which means that an expression is validated against the existing Java types and template extension methods. -If an invalid/incorrect expression is found then the build fails. - -For example, if there is an expression `item.name` where `item` maps to `org.acme.Item` then `Item` must have a property `name` or a matching template extension method must exist. - -An optional _parameter declaration_ is used to bind a Java type to expressions whose first part matches the parameter name. -Parameter declarations are specified directly in a template. - -.Parameter Declaration Example -[source,html] ----- -{@org.acme.Foo foo} <1> - - - - -Qute Hello - - -

    {title}

    <2> - Hello {foo.message.toLowerCase}! <3> <4> - - ----- -<1> Parameter declaration - maps `foo` to `org.acme.Foo`. -<2> Not validated - not matching a param declaration. -<3> This expression is validated. `org.acme.Foo` must have a property `message` or a matching template extension method must exist. -<4> Likewise, the Java type of the object resolved from `foo.message` must have a property `toLowerCase` or a matching template extension method must exist. - -IMPORTANT: A value resolver is automatically generated for all types used in parameter declarations so that it's possible to access its properties without reflection. - -TIP: Method parameters of <> are automatically turned into parameter declarations. - -Note that sections can override names that would otherwise match a parameter declaration: - -[source,html] ----- -{@org.acme.Foo foo} - - - - -Qute Hello - - -

    {foo.message}

    <1> - {#for foo in baz.foos} -

    Hello {foo.message}!

    <2> - {/for} - - ----- -<1> Validated against `org.acme.Foo`. -<2> Not validated - `foo` is overridden in the loop section. - -[[typesafe_templates]] -=== Type-safe Templates -You can also define type-safe templates in your Java code. -If using <>, you can rely on the following convention: - -- Organise your template files in the `/src/main/resources/templates` directory, by grouping them into one directory per resource class. So, if - your `ItemResource` class references two templates `hello` and `goodbye`, place them at `/src/main/resources/templates/ItemResource/hello.txt` - and `/src/main/resources/templates/ItemResource/goodbye.txt`. Grouping templates per resource class makes it easier to navigate to them. -- In each of your resource class, declare a `@CheckedTemplate static class Template {}` class within your resource class. -- Declare one `public static native TemplateInstance method();` per template file for your resource. -- Use those static methods to build your template instances. - -.ItemResource.java -[source,java] ----- -package org.acme.quarkus.sample; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import io.quarkus.qute.TemplateInstance; -import io.quarkus.qute.Template; -import io.quarkus.qute.CheckedTemplate; - -@Path("item") -public class ItemResource { - - @CheckedTemplate - public static class Templates { - public static native TemplateInstance item(Item item); <1> <2> - } - - @GET - @Path("{id}") - @Produces(MediaType.TEXT_HTML) - public TemplateInstance get(@PathParam("id") Integer id) { - return Templates.item(service.findItem(id)); <3> - } -} ----- -<1> Declare a method that gives us a `TemplateInstance` for `templates/ItemResource/item.html` and declare its `Item item` parameter so we can validate the template. -<2> The `item` parameter is automatically turned into a <> and so all expressions that reference this name will be validated. -<3> Make the `Item` object accessible in the template. - -TIP: By default, the templates defined in a class annotated with `@CheckedTemplate` can only contain type-safe expressions, i.e. expressions that can be validated at build time. You can use `@CheckedTemplate(requireTypeSafeExpressions = false)` to relax this requirement. - - -You can also declare a top-level Java class annotated with `@CheckedTemplate`: - -.Top-level checked templates -[source,java] ----- -package org.acme.quarkus.sample; - -import io.quarkus.qute.TemplateInstance; -import io.quarkus.qute.Template; -import io.quarkus.qute.CheckedTemplate; - -@CheckedTemplate -public class Templates { - public static native TemplateInstance hello(String name); <1> -} ----- -<1> This declares a template with path `templates/hello.txt`. The `name` parameter is automatically turned into a <> and so all expressions that reference this name will be validated. - -Then declare one `public static native TemplateInstance method();` per template file. -Use those static methods to build your template instances: - -.HelloResource.java -[source,java] ----- -package org.acme.quarkus.sample; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.QueryParam; -import io.quarkus.qute.TemplateInstance; - -@Path("hello") -public class HelloResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - public TemplateInstance get(@QueryParam("name") String name) { - return Templates.hello(name); - } -} ----- - -[[template_extension_methods]] -=== Template Extension Methods - -Extension methods can be used to extend the data classes with new functionality (to extend the set of accessible properties and methods) or to resolve expressions for a specific <>. -For example, it is possible to add _computed properties_ and _virtual methods_. - -A value resolver is automatically generated for a method annotated with `@TemplateExtension`. -If a class is annotated with `@TemplateExtension` then a value resolver is generated for every _non-private static method_ declared on the class. -Method-level annotations override the behavior defined on the class. -Methods that do not meet the following requirements are ignored. - -A template extension method: - -* must not be `private` -* must be static, -* must not return `void`. - -If there is no namespace defined the class of the first parameter that is not annotated with `@TemplateAttribute` is used to match the base object. Otherwise the namespace is used to match an expression. - -The method name is used to match the property name by default. -However, it is possible to specify the matching name with `TemplateExtension#matchName()`. -A special constant - `TemplateExtension#ANY` - may be used to specify that the extension method matches any name. -It is also possible to match the name against a regular expression specified in `TemplateExtension#matchRegex()`. -In both cases, an additional string method parameter must be used to pass the property name. -If both `matchName()` and `matchRegex()` are set the regular expression is used for matching. - -.Extension Method Example -[source,java] ----- -package org.acme; - -class Item { - - public final BigDecimal price; - - public Item(BigDecimal price) { - this.price = price; - } -} - -@TemplateExtension -class MyExtensions { - - static BigDecimal discountedPrice(Item item) { <1> - return item.getPrice().multiply(new BigDecimal("0.9")); - } -} ----- -<1> This method matches an expression with base object of the type `Item.class` and the `discountedPrice` property name. - -This template extension method makes it possible to render the following template: - -[source,html] ----- -{item.discountedPrice} <1> ----- -<1> `item` is resolved to an instance of `org.acme.Item`. - -==== Method Parameters - -An extension method may declare parameters. -If no namespace is specified then the first parameter that is not annotated with `@TemplateAttribute` is used to pass the base object, i.e. `org.acme.Item` in the first example. -If matching any name or using a regular expression then a string method parameter needs to be used to pass the property name. -Parameters annotated with `@TemplateAttribute` are obtained via `TemplateInstance#getAttribute()`. -All other parameters are resolved when rendering the template and passed to the extension method. - -.Multiple Parameters Example -[source,java] ----- -@TemplateExtension -class BigDecimalExtensions { - - static BigDecimal scale(BigDecimal val, int scale, RoundingMode mode) { <1> - return val.setScale(scale, mode); - } -} ----- -<1> This method matches an expression with base object of the type `BigDecimal.class`, with the `scale` virtual method name and two virtual method parameters. - -[source,html] ----- -{item.discountedPrice.scale(2,mode)} <1> ----- -<1> `item.discountedPrice` is resolved to an instance of `BigDecimal`. - -[[namespace_extension_methods]] -==== Namespace Extension Methods - -If `TemplateExtension#namespace()` is specified then the extension method is used to resolve expressions with the given <>. -Template extension methods that share the same namespace are grouped in one resolver ordered by `TemplateExtension#priority()`. -The first matching extension method is used to resolve an expression. - -.Namespace Extension Method Example -[source,java] ----- -@TemplateExtension(namespace = "str") -public class StringExtensions { - - static String format(String fmt, Object... args) { - return String.format(fmt, args); - } - - static String reverse(String val) { - return new StringBuilder(val).reverse().toString(); - } -} ----- - -These extension methods can be used as follows. - -[source,html] ----- -{str:format('%s %s!','Hello', 'world')} <1> -{str:reverse('hello')} <2> ----- -<1> The output is `Hello world!` -<2> The output is `olleh` - -[[built-in-template-extension]] -==== Built-in Template Extensions - -Quarkus provides a set of built-in extension methods. - -===== Maps - -* `keys` or `keySet`: Returns a Set view of the keys contained in a map -** `{#for key in map.keySet}` - -* `values`: Returns a Collection view of the values contained in a map -** `{#for value in map.values}` - -* `size`: Returns the number of key-value mappings in a map -** `{map.size}` - -* `isEmpty`: Returns true if a map contains no key-value mappings -** `{#if map.isEmpty}` - -* `get(key)`: Returns the value to which the specified key is mapped -** `{map.get('foo')}` - -TIP: A map value can be also accessed directly: `{map.myKey}`. Use the bracket notation for keys that are not legal identifiers: `{map['my key']}`. - -===== Collections - -* `get(index)`: Returns the element at the specified position in a list -** `{list.get(0)}` - -* `reversed`: Returns a reversed iterator over a list -** `{#for r in recordsList.reversed}` - -* `take`: Returns the first `n` elements from the given list; throws an `IndexOutOfBoundsException` if `n` is out of range -** `{#for r in recordsList.take(3)}` - -* `takeLast`: Returns the last `n` elements from the given list; throws an `IndexOutOfBoundsException` if `n` is out of range -** `{#for r in recordsList.takeLast(3)}` - -TIP: A list element can be accessed directly: `{list.10}` or `{list[10]}`. - -===== Numbers - -* `mod`: Modulo operation -** `{#if counter.mod(5) == 0}` - -===== Strings - -* `fmt` or `format`: format the string instance via `java.lang.String.format()` -** `{myStr.fmt("arg1","arg2")}` -** `{myStr.format(locale,arg1)}` -* `str:fmt` or `str:format`: format the supplied string value via `java.lang.String.format()` -** `{str:format("Hello %s!",name)}` -** `{str:fmt(locale,'%tA',now)}` - -===== Config - -* `config:` or `config:[]`: Returns the config value for the given property name -** `{config:foo}` or `{config:['property.with.dot.in.name']}` - -* `config:property(name)`: Returns the config value for the given property name; the name can be obtained dynamically by an expression -** `{config:property('quarkus.foo')}` -** `{config:property(foo.getPropertyName())}` - -* `config:boolean(name)`: Returns the config value for the given property name as a boolean; the name can be obtained dynamically by an expression -** `{config:boolean('quarkus.foo.boolean') ?: 'Not Found'}` -** `{config:boolean(foo.getPropertyName()) ?: 'property is false'}` - -* `config:integer(name)`: Returns the config value for the given property name as an integer; the name can be obtained dynamically by an expression -** `{config:integer('quarkus.foo')}` -** `{config:integer(foo.getPropertyName())}` - -===== Time - -* `format(pattern)`: Formats temporal objects from the `java.time` package -** `{dateTime.format('d MMM uuuu')}` - -* `format(pattern,locale)`: Formats temporal objects from the `java.time` package -** `{dateTime.format('d MMM uuuu',myLocale)}` - -* `format(pattern,locale,timeZone)`: Formats temporal objects from the `java.time` package -** `{dateTime.format('d MMM uuuu',myLocale,myTimeZoneId)}` - -* `time:format(dateTime,pattern)`: Formats temporal objects from the `java.time` package, `java.util.Date`, `java.util.Calendar` and `java.lang.Number` -** `{time:format(myDate,'d MMM uuuu')}` - -* `time:format(dateTime,pattern,locale)`: Formats temporal objects from the `java.time` package, `java.util.Date`, `java.util.Calendar` and `java.lang.Number` -** `{time:format(myDate,'d MMM uuuu', myLocale)}` - -* `time:format(dateTime,pattern,locale,timeZone)`: Formats temporal objects from the `java.time` package, `java.util.Date`, `java.util.Calendar` and `java.lang.Number` -** `{time:format(myDate,'d MMM uuuu',myLocale,myTimeZoneId)}` - -[[template_data]] -=== @TemplateData - -A value resolver is automatically generated for a type annotated with `@TemplateData`. -This allows Quarkus to avoid using reflection to access the data at runtime. - -NOTE: Non-public members, constructors, static initializers, static, synthetic and void methods are always ignored. - -[source,java] ----- -package org.acme; - -@TemplateData -class Item { - - public final BigDecimal price; - - public Item(BigDecimal price) { - this.price = price; - } - - public BigDecimal getDiscountedPrice() { - return price.multiply(new BigDecimal("0.9")); - } -} ----- - -Any instance of `Item` can be used directly in the template: - -[source,html] ----- -{#each items} <1> - {it.price} / {it.discountedPrice} -{/each} ----- -<1> `items` is resolved to a list of `org.acme.Item` instances. - -Furthermore, `@TemplateData.properties()` and `@TemplateData.ignore()` can be used to fine-tune the generated resolver. -Finally, it is also possible to specify the "target" of the annotation - this could be useful for third-party classes not controlled by the application: - -[source,java] ----- -@TemplateData(target = BigDecimal.class) -@TemplateData -class Item { - - public final BigDecimal price; - - public Item(BigDecimal price) { - this.price = price; - } -} ----- - -[source,html] ----- -{#each items} - {it.price.setScale(2, rounding)} <1> -{/each} ----- -<1> The generated value resolver knows how to invoke the `BigDecimal.setScale()` method. - -==== Accessing Static Fields and Methods - -If `@TemplateData#namespace()` is set to a non-empty value then a namespace resolver is automatically generated to access the public static fields and methods of the target class. -By default, the namespace is the FQCN of the target class where dots and dollar signs are replaced by underscores. -For example, the namespace for a class with name `org.acme.Foo` is `org_acme_Foo`. -The static field `Foo.AGE` can be accessed via `{org_acme_Foo:AGE}`. -The static method `Foo.computeValue(int number)` can be accessed via `{org_acme_Foo:computeValue(10)}`. - -NOTE: A namespace can only consist of alphanumeric characters and underscores. - -.Class Annotated With `@TemplateData` -[source,java] ----- -package model; - -@TemplateData <1> -public class Statuses { - public static final String ON = "on"; - public static final String OFF = "off"; -} ----- -<1> A name resolver with the namespace `model_Status` is generated automatically. - -.Template Accessing Class Constants -[source,html] ----- -{#if machine.status == model_Status:ON} - The machine is ON! -{/if} ----- - -==== Convenient Annotation For Enums - -There's also a convenient annotation to access enum constants: `@io.quarkus.qute.TemplateEnum`. -This annotation is functionally equivalent to `@TemplateData(namespace = TemplateData.SIMPLENAME)`, i.e. a namespace resolver is automatically generated for the target enum and the simple name of the target enum is used as the namespace. - -.Enum Annotated With `@TemplateEnum` -[source,java] ----- -package model; - -@TemplateEnum <1> -public enum Status { - ON, - OFF -} ----- -<1> A name resolver with the namespace `Status` is generated automatically. - -NOTE: `@TemplateEnum` declared on a non-enum class is ignored. Also if an enum also declares the `@TemplateData` annotation then the `@TemplateEnum` annotation is ignored. - -.Template Accessing Enum Constants -[source,html] ----- -{#if machine.status == Status:ON} - The machine is ON! -{/if} ----- - -TIP: Quarkus detects possible namespace collisions and fails the build if a specific namespace is defined by multiple `@TemplateData` and/or `@TemplateEnum` annotations. - -[[global_variables]] -=== Global Variables - -The `io.quarkus.qute.TemplateGlobal` annotation can be used to denote static fields and methods that supply _global variables_ which are accessible in any template. -Internally, each global variable is added to the data map of any `TemplateInstance` via the `TemplateInstance#data(String, Object)` method. - -.Global Variables Definition -[source,java] ----- -enum Color { RED, GREEN, BLUE } - -@TemplateGlobal <1> -public class Globals { - - static int age = 40; - - static Color[] myColors() { - return new Color[] { Color.RED, Color.BLUE }; - } - - @TemplateGlobal(name = "currentUser") <2> - static String user() { - return "Mia"; - } -} ----- -<1> If a class is annotated with `@TemplateGlobal` then every non-void non-private static method that declares no parameters and every non-private static field is considered a global variable. The name is defaulted, i.e. the name of the field/method is used. -<2> Method-level annotations override the class-level annotation. In this particular case, the name is not defaulted but selected explicitly. - -.A Template Accessing Global Variables -[source,html] ----- -User: {currentUser} <1> -Age: {age} <2> -Colors: {#each myColors}{it}{#if it_hasNext}, {/if}{/each} <3> ----- -<1> `currentUser` resolves to `Globals#user()`. -<2> `age` resolves to `Globals#age`. -<3> `myColors` resolves to `Globals#myColors()`. - -NOTE: Note that global variables implicitly add <> to all templates and so any expression that references a global variable is validated during build. - -.The Output -[source,html] ----- -User: Mia -Age: 40 -Colors: RED, BLUE ----- - -==== Resolving Conflicts - -Global variables may conflict with regular data objects. -<> override the global variables automatically. -For example, the following definition overrides the global variable supplied by the `Globals#user()` method: - -.Type-safe Template Definition -[source,java] ----- -import org.acme.User; - -@CheckedTemplate -public class Templates { - static native TemplateInstance hello(User currentUser); <1> -} ----- -<1> `currentUser` conflicts with the global variable supplied by `Globals#user()`. - -So the corresponding template does not result in a validation error even though the `Globals#user()` method returns `java.lang.String` which does not have the `name` property: - -.`templates/hello.txt` -[source,html] ----- -User name: {currentUser.name} <1> ----- -<1> `org.acme.User` has the `name` property. - -For other templates an explicit parameter declaration is needed: - -[source,html] ----- -{@org.acme.User currentUser} <1> - -User name: {currentUser.name} ----- -<1> This parameter declaration overrides the declaration added by the global variable supplied by the `Globals#user()` method. - - -[[native_executables]] -=== Native Executables - -In the JVM mode a reflection-based value resolver may be used to access properties and call methods of the model classes. -But this does not work for xref:building-native-image.adoc[a native executable] out of the box. -As a result, you may encounter template exceptions like `Property "name" not found on the base object "org.acme.Foo" in expression {foo.name} in template hello.html` even if the `Foo` class declares a relevant getter method. - -There are several ways to solve this problem: - -* Make use of <> or <> -** In this case, an optimized value resolver is generated automatically and used at runtime -** This is the preferred solution -* Annotate the model class with <> - a specialized value resolver is generated and used at runtime -* Annotate the model class with `@io.quarkus.runtime.annotations.RegisterForReflection` to make the reflection-based value resolver work - - -[[resteasy_integration]] -=== RESTEasy Integration - -If you want to use Qute in your JAX-RS application, then depending on which JAX-RS stack you are using, you'll need to register the proper extension first. -If you are using the traditional `quakus-resteasy` extension, then in your `pom.xml` file, add: - -[source,xml] ----- - - io.quarkus - quarkus-resteasy-qute - ----- - -If instead you are using RESTEasy Reactive via the `quarkus-resteasy-reactive` extension, then in your `pom.xml` file, add: - -[source,xml] ----- - - io.quarkus - quarkus-resteasy-reactive-qute - ----- - -Both of these extensions register a special `ContainerResponseFilter` implementation which enables resource methods to return a `TemplateInstance`, thus freeing users of having to take care of all necessary internal steps. - -The end result is that a using Qute within a JAX-RS resource may look as simple as: - -.HelloResource.java -[source,java] ----- -package org.acme.quarkus.sample; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.QueryParam; - -import io.quarkus.qute.TemplateInstance; -import io.quarkus.qute.Template; - -@Path("hello") -public class HelloResource { - - @Inject - Template hello; <1> - - @GET - @Produces(MediaType.TEXT_PLAIN) - public TemplateInstance get(@QueryParam("name") String name) { - return hello.data("name", name); <2> <3> - } -} ----- -<1> If there is no `@Location` qualifier provided, the field name is used to locate the template. In this particular case, we're injecting a template with path `templates/hello.txt`. -<2> `Template.data()` returns a new template instance that can be customized before the actual rendering is triggered. In this case, we put the name value under the key `name`. The data map is accessible during rendering. -<3> Note that we don't trigger the rendering - this is done automatically by a special `ContainerResponseFilter` implementation. - -TIP: Users are encouraged to use <> that help to organize the templates for a specific JAX-RS resource and enable <> automatically. - -The content negotiation is performed automatically. -The resulting output depends on the `Accept` header received from the client. - -[source,java] ----- -@Path("/detail") -class DetailResource { - - @Inject - Template item; <1> - - @GET - @Produces({ MediaType.TEXT_HTML, MediaType.TEXT_PLAIN }) - public TemplateInstance item() { - return item.data("myItem", new Item("Alpha", 1000)); <2> - } -} ----- -<1> Inject a variant template with base path derived from the injected field - `src/main/resources/templates/item`. -<2> For `text/plain` the `src/main/resources/templates/item.txt` template is used. For `text/html` the `META-INF/resources/templates/item.html` template is used. - -The `RestTemplate` util class can be used to obtain a template instance from a body of a JAX-RS resource method: - -.RestTemplate Example -[source,java] ----- -@Path("/detail") -class DetailResource { - - @GET - @Produces({ MediaType.TEXT_HTML, MediaType.TEXT_PLAIN }) - public TemplateInstance item() { - return RestTemplate.data("myItem", new Item("Alpha", 1000)); <1> - } -} ----- -<1> The name of the template is derived from the resource class and method name; `DetailResource/item` in this particular case. - -WARNING: Unlike with `@Inject` the templates obtained via `RestTemplate` are not validated, i.e. the build does not fail if a template does not exist. - -=== Development Mode - -In the development mode, all files located in `src/main/resources/templates` are watched for changes and modifications are immediately visible. - -[[type-safe-message-bundles]] -=== Type-safe Message Bundles - -==== Basic Concepts - -The basic idea is that every message is potentially a very simple template. -In order to prevent type errors a message is defined as an annotated method of a *message bundle interface*. -Quarkus generates the *message bundle implementation* at build time. -Subsequently, the bundles can be used at runtime: - -1. Directly in your code via `io.quarkus.qute.i18n.MessageBundles#get()`; e.g. `MessageBundles.get(AppMessages.class).hello_name("Lucie")` -2. Injected in your beans via `@Inject`; e.g. `@Inject AppMessages` -3. Referenced in the templates via the message bundle namespace: -+ -[source,html] ----- - {msg:hello_name('Lucie')} <1> <2> <3> - {msg:message(myKey,'Lu')} <4> ----- -<1> `msg` is the default namespace. -<2> `hello_name` is the message key. -<3> `Lucie` is the parameter of the message bundle interface method. -<4> It is also possible to obtain a localized message for a key resolved at runtime using a reserved key `message`. The validation is skipped in this case though. - -.Message Bundle Interface Example -[source,java] ----- -import io.quarkus.qute.i18n.Message; -import io.quarkus.qute.i18n.MessageBundle; - -@MessageBundle <1> -public interface AppMessages { - - @Message("Hello {name}!") <2> - String hello_name(String name); <3> -} ----- -<1> Denotes a message bundle interface. The bundle name is defaulted to `msg` and is used as a namespace in templates expressions, e.g. `{msg:hello_name}`. -<2> Each method must be annotated with `@Message`. The value is a qute template. -<3> The method parameters can be used in the template. - -==== Bundle Name and Message Keys - -Keys are used directly in templates. -The bundle name is used as a namespace in template expressions. -The `@MessageBundle` can be used to define the default strategy used to generate message keys from method names. -However, the `@Message` can override this strategy and even define a custom key. -By default, the annotated element's name is used as-is. -Other possibilities are: - -1. De-camel-cased and hyphenated; e.g. `helloName()` -> `hello-name` -2. De-camel-cased and parts separated by underscores; e.g. `helloName()` -> `hello_name`. - -==== Validation - -* All message bundle templates are validated: -** All expressions without a namespace must map to a parameter; e.g. `Hello {foo}` -> the method must have a param of name `foo` -** All expressions are validated against the types of the parameters; e.g. `Hello {foo.bar}` where the parameter `foo` is of type `org.acme.Foo` -> `org.acme.Foo` must have a property of name `bar` -+ -NOTE: A warning message is logged for each _unused_ parameter. -* Expressions that reference a message bundle method, such as `{msg:hello(item.name)}`, are validated too. - -==== Localization - -The default locale specified via the `quarkus.default-locale` config property is used for the `@MessageBundle` interface by default. -However, the `io.quarkus.qute.i18n.MessageBundle#locale()` can be used to specify a custom locale. -Additionally, there are two ways to define a localized bundle: - -1. Create an interface that extends the default interface that is annotated with `@Localized` -2. Create an UTF-8 encoded file located in `src/main/resources/messages`; e.g. `msg_de.properties`. - -TIP: A localized interface is the preferred solution mainly due to the possibility of easy refactoring. - -.Localized Interface Example -[source,java] ----- -import io.quarkus.qute.i18n.Localized; -import io.quarkus.qute.i18n.Message; - -@Localized("de") <1> -public interface GermanAppMessages extends AppMessages { - - @Override - @Message("Hallo {name}!") <2> - String hello_name(String name); -} ----- -<1> The value is the locale tag string (IETF). -<2> The value is the localized template. - -Message bundle files must be encoded in UTF-8. -The file name consists of the relevant bundle name (e.g. `msg`) and underscore followed by the locate tag (IETF). -The file format is very simple: each line represents either a key/value pair with the equals sign used as a separator or a comment (line starts with `#`). -Blank lines are ignored. -Keys are _mapped to method names_ from the corresponding message bundle interface. -Values represent the templates normally defined by `io.quarkus.qute.i18n.Message#value()`. -A value may be spread out across several adjacent normal lines. -In such case, the line terminator must be escaped with a backslash character `\`. -The behavior is very similar to the behavior of the `java.util.Properties.load(Reader)` method. - -.Localized File Example - `msg_de.properties` -[source,properties] ----- -# This comment is ignored -hello_name=Hallo {name}! <1> <2> ----- -<1> Each line in a localized file represents a key/value pair. The key must correspond to a method declared on the message bundle interface. The value is the message template. -<2> Keys and values are separated by the equals sign. - -NOTE: We use the `.properties` suffix in our example because most IDEs and text editors support syntax highlighting of `.properties` files. But in fact, the suffix could be anything - it is just ignored. - -TIP: An example properties file is generated into the target directory for each message bundle interface automatically. For example, by default if no name is specified for `@MessageBundle` the file `target/qute-i18n-examples/msg.properties` is generated when the application is build via `mvn clean package`. You can use this file as a base for a specific locale. Just rename the file - e.g. `msg_fr.properties`, change the message templates and move it in the `src/main/resources/messages` directory. - -.Value Spread Out Across Several Adjacent Lines -[source,properties] ----- -hello=Hello \ - {name} and \ - good morning! ----- -Note that the line terminator is escaped with a backslash character `\` and white space at the start of the following line is ignored. I.e. `{msg:hello('Edgar')}` would be rendered as `Hello Edgar and good morning!`. - -Once we have the localized bundles defined we need a way to _select_ the correct bundle for a specific template instance, i.e. to specify the locale for all message bundle expressions in the template. -By default, the locale specified via the `quarkus.default-locale` configuration property is used to select the bundle. -Alternatively, you can specify the `locale` attribute of a template instance. - -.`locale` Attribute Example -[source,java] ----- -@Singleton -public class MyBean { - - @Inject - Template hello; - - String render() { - return hello.instance().setAttribute("locale", Locale.forLanguageTag("cs")).render(); <1> - } -} ----- -<1> You can set a `Locale` instance or a locale tag string (IETF). - - -NOTE: When using <> the `locale` attribute is derived from the the `Accept-Language` header if not set by a user. - -The `@Localized` qualifier can be used to inject a localized message bundle interface. - -.Injected Localized Message Bundle Example -[source,java] ----- -@Singleton -public class MyBean { - - @Localized("cs") <1> - AppMessages msg; - - String render() { - return msg.hello_name("Jachym"); - } -} ----- -<1> The annotation value is a locale tag string (IETF). - - -=== Configuration Reference - -include::{generated-dir}/config/quarkus-qute.adoc[leveloffset=+1, opts=optional] - - -[[standalone]] -== Qute Used as a Standalone Library - -Qute is primarily designed as a Quarkus extension. -However. it is possible to use it as a "standalone" library. -In this case, some features are not available and some additional configuration is needed. - -Engine:: First of all, no managed `Engine` instance is available out of the box. -You'll need to configure a new instance via `Engine.builder()`. - -Templates:: -* By default, no <> are registered, i.e. `Engine.getTemplate(String)` will not work. -* You can register a custom template locator or parse a template manually and put the reulst in the cache via `Engine.putTemplate(String, Template)`. - -Value resolvers:: -* No <> are generated automatically. -** <> will not work. -** <> annotations are ignored. -* It's recommended to register a `ReflectionValueResolver` instance via `Engine.addValueResolver(new ReflectionValueResolver())` so that Qute can access object properties and call public methods. -+ -NOTE: Keep in mind that reflection may not work correctly in some restricted environments or may require additional configuration, e.g. registration in case of a GraalVM native image. -* A custom value resolver can be easily built via `ValueResolver.builder()` - -Type-safety:: -* <> are not validated. -* <> are not supported. - -Injection:: It is not possible to inject a `Template` instance and vice versa - a template cannot inject a `@Named` CDI bean via the `inject:` namespace. diff --git a/_versions/2.7/guides/qute.adoc b/_versions/2.7/guides/qute.adoc deleted file mode 100644 index 6d9a8e2fa83..00000000000 --- a/_versions/2.7/guides/qute.adoc +++ /dev/null @@ -1,533 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Qute Templating Engine - -include::./attributes.adoc[] - -Qute is a templating engine designed specifically to meet the Quarkus needs. -The usage of reflection is minimized to reduce the size of native images. -The API combines both the imperative and the non-blocking reactive style of coding. -In the development mode, all files located in `src/main/resources/templates` are watched for changes and modifications are immediately visible. -Furthermore, we try to detect most of the template problems at build time. -In this guide, you will learn how to easily render templates in your application. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `qute-quickstart` {quickstarts-tree-url}/qute-quickstart[directory]. - -== Hello World with JAX-RS - -If you want to use Qute in your JAX-RS application, you need to add an extension first: - -* either `quarkus-resteasy-qute` if you are using RESTEasy Classic: -+ -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-resteasy-qute - ----- -+ -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-resteasy-qute") ----- - -* or `quarkus-resteasy-reactive-qute` if you are using RESTEasy Reactive: -+ -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-resteasy-reactive-qute - ----- -+ -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-resteasy-reactive-qute") ----- - -We'll start with a very simple template: - -.hello.txt -[source] ----- -Hello {name}! <1> ----- -<1> `{name}` is a value expression that is evaluated when the template is rendered. - -NOTE: By default, all files located in the `src/main/resources/templates` directory and its subdirectories are registered as templates. Templates are validated during startup and watched for changes in the development mode. - -Now let's inject the "compiled" template in the resource class. - -.HelloResource.java -[source,java] ----- -package org.acme.quarkus.sample; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.QueryParam; - -import io.quarkus.qute.TemplateInstance; -import io.quarkus.qute.Template; - -@Path("hello") -public class HelloResource { - - @Inject - Template hello; <1> - - @GET - @Produces(MediaType.TEXT_PLAIN) - public TemplateInstance get(@QueryParam("name") String name) { - return hello.data("name", name); <2> <3> - } -} ----- -<1> If there is no `@Location` qualifier provided, the field name is used to locate the template. In this particular case, we're injecting a template with path `templates/hello.txt`. -<2> `Template.data()` returns a new template instance that can be customized before the actual rendering is triggered. In this case, we put the name value under the key `name`. The data map is accessible during rendering. -<3> Note that we don't trigger the rendering - this is done automatically by a special `ContainerResponseFilter` implementation. - -If your application is running, you can request the endpoint: - -[source,shell] ----- -$ curl -w "\n" http://localhost:8080/hello?name=Martin -Hello Martin! ----- - -== Type-safe templates - -There's an alternate way to declare your templates in your Java code, which relies on the following convention: - -- Organise your template files in the `/src/main/resources/templates` directory, by grouping them into one directory per resource class. So, if - your `ItemResource` class references two templates `hello` and `goodbye`, place them at `/src/main/resources/templates/ItemResource/hello.txt` - and `/src/main/resources/templates/ItemResource/goodbye.txt`. Grouping templates per resource class makes it easier to navigate to them. -- In each of your resource class, declare a `@CheckedTemplate static class Template {}` class within your resource class. -- Declare one `public static native TemplateInstance method();` per template file for your resource. -- Use those static methods to build your template instances. - -Here's the previous example, rewritten using this style: - -We'll start with a very simple template: - -.HelloResource/hello.txt -[source] ----- -Hello {name}! <1> ----- -<1> `{name}` is a value expression that is evaluated when the template is rendered. - -Now let's declare and use those templates in the resource class. - -.HelloResource.java -[source,java] ----- -package org.acme.quarkus.sample; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.QueryParam; - -import io.quarkus.qute.TemplateInstance; -import io.quarkus.qute.CheckedTemplate; - -@Path("hello") -public class HelloResource { - - @CheckedTemplate - public static class Templates { - public static native TemplateInstance hello(String name); <1> - } - - @GET - @Produces(MediaType.TEXT_PLAIN) - public TemplateInstance get(@QueryParam("name") String name) { - return Templates.hello(name); <2> - } -} ----- -<1> This declares a template with path `templates/HelloResource/hello`. -<2> `Templates.hello()` returns a new template instance that is returned from the resource method. Note that we don't trigger the rendering - this is done automatically by a special `ContainerResponseFilter` implementation. - -NOTE: Once you have declared a `@CheckedTemplate` class, we will check that all its methods point to existing templates, so if you try to use a template from your Java code and you forgot to add it, we will let you know at build time :) - -Keep in mind this style of declaration allows you to reference templates declared in other resources too: - -.HelloResource.java -[source,java] ----- -package org.acme.quarkus.sample; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.QueryParam; - -import io.quarkus.qute.TemplateInstance; - -@Path("goodbye") -public class GoodbyeResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - public TemplateInstance get(@QueryParam("name") String name) { - return HelloResource.Templates.hello(name); - } -} ----- - -=== Top-level type-safe templates - -Naturally, if you want to declare templates at the top-level, directly in `/src/main/resources/templates/hello.txt`, for example, -you can declare them in a toplevel (non-nested) `Templates` class: - -.HelloResource.java -[source,java] ----- -package org.acme.quarkus.sample; - -import io.quarkus.qute.TemplateInstance; -import io.quarkus.qute.Template; -import io.quarkus.qute.CheckedTemplate; - -@CheckedTemplate -public class Templates { - public static native TemplateInstance hello(String name); <1> -} ----- -<1> This declares a template with path `templates/hello`. - - -== Template Parameter Declarations - -If you declare a *parameter declaration* in a template then Qute attempts to validate all expressions that reference this parameter and if an incorrect expression is found the build fails. - -Let's suppose we have a simple class like this: - -.Item.java -[source,java] ----- -public class Item { - public String name; - public BigDecimal price; -} ----- - -And we'd like to render a simple HTML page that contains the item name and price. - -Let's start again with the template: - -.ItemResource/item.html -[source,html] ----- - - - - -{item.name} <1> - - -

    {item.name}

    -
    Price: {item.price}
    <2> - - ----- -<1> This expression is validated. Try to change the expression to `{item.nonSense}` and the build should fail. -<2> This is also validated. - -Finally, let's create a resource class with type-safe templates: - -.ItemResource.java -[source,java] ----- -package org.acme.quarkus.sample; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import io.quarkus.qute.TemplateInstance; -import io.quarkus.qute.Template; -import io.quarkus.qute.CheckedTemplate; - -@Path("item") -public class ItemResource { - - @CheckedTemplate - public static class Templates { - public static native TemplateInstance item(Item item); <1> - } - - @GET - @Path("{id}") - @Produces(MediaType.TEXT_HTML) - public TemplateInstance get(@PathParam("id") Integer id) { - return Templates.item(service.findItem(id)); <2> - } -} ----- -<1> Declare a method that gives us a `TemplateInstance` for `templates/ItemResource/item.html` and declare its `Item item` parameter so we can validate the template. -<2> Make the `Item` object accessible in the template. - -=== Template parameter declaration inside the template itself - -Alternatively, you can declare your template parameters in the template file itself. - -Let's start again with the template: - -.item.html -[source,html] ----- -{@org.acme.Item item} <1> - - - - -{item.name} <2> - - -

    {item.name}

    -
    Price: {item.price}
    - - ----- -<1> Optional parameter declaration. Qute attempts to validate all expressions that reference the parameter `item`. -<2> This expression is validated. Try to change the expression to `{item.nonSense}` and the build should fail. - -Finally, let's create a resource class. - -.ItemResource.java -[source,java] ----- -package org.acme.quarkus.sample; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import io.quarkus.qute.TemplateInstance; -import io.quarkus.qute.Template; - -@Path("item") -public class ItemResource { - - @Inject - ItemService service; - - @Inject - Template item; <1> - - @GET - @Path("{id}") - @Produces(MediaType.TEXT_HTML) - public TemplateInstance get(@PathParam("id") Integer id) { - return item.data("item", service.findItem(id)); <2> - } -} ----- -<1> Inject the template with path `templates/item.html`. -<2> Make the `Item` object accessible in the template. - -== Template Extension Methods - -*Template extension methods* are used to extend the set of accessible properties of data objects. - -Sometimes, you're not in control of the classes that you want to use in your template, and you cannot add methods -to them. Template extension methods allows you to declare new method for those classes that will be available -from your templates just as if they belonged to the target class. - -Let's keep extending on our simple HTML page that contains the item name, price and add a discounted price. -The discounted price is sometimes called a "computed property". -We will implement a template extension method to render this property easily. -Let's update our template: - -.HelloResource/item.html -[source,html] ----- - - - - -{item.name} - - -

    {item.name}

    -
    Price: {item.price}
    - {#if item.price > 100} <1> -
    Discounted Price: {item.discountedPrice}
    <2> - {/if} - - ----- -<1> `if` is a basic control flow section. -<2> This expression is also validated against the `Item` class and obviously there is no such property declared. However, there is a template extension method declared on the `TemplateExtensions` class - see below. - -Finally, let's create a class where we put all our extension methods: - -.TemplateExtensions.java -[source,java] ----- -package org.acme.quarkus.sample; - -import io.quarkus.qute.TemplateExtension; - -@TemplateExtension -public class TemplateExtensions { - - public static BigDecimal discountedPrice(Item item) { <1> - return item.price.multiply(new BigDecimal("0.9")); - } -} ----- -<1> A static template extension method can be used to add "computed properties" to a data class. The class of the first parameter is used to match the base object and the method name is used to match the property name. - -NOTE: you can place template extension methods in every class if you annotate them with `@TemplateExtension` but we advise to keep them either -grouped by target type, or in a single `TemplateExtensions` class by convention. - -== Rendering Periodic Reports - -Templating engine could be also very useful when rendering periodic reports. -You'll need to add the `quarkus-scheduler` and `quarkus-qute` extensions first. -In your `pom.xml` file, add: - -[source,xml] ----- - - io.quarkus - quarkus-qute - - - io.quarkus - quarkus-scheduler - ----- - -Let's suppose the have a `SampleService` bean whose `get()` method returns a list of samples. - -.Sample.java -[source,java] ----- -public class Sample { - public boolean valid; - public String name; - public String data; -} ----- - -The template is simple: - -.report.html -[source,html] ----- - - - - -Report {now} - - -

    Report {now}

    - {#for sample in samples} <1> -

    {sample.name ?: 'Unknown'}

    <2> -

    - {#if sample.valid} - {sample.data} - {#else} - Invalid sample found. - {/if} -

    - {/for} - - ----- -<1> The loop section makes it possible to iterate over iterables, maps and streams. -<2> This value expression is using the https://en.wikipedia.org/wiki/Elvis_operator[elvis operator] - if the name is null the default value is used. - -[source,java] -.ReportGenerator.java ----- -package org.acme.quarkus.sample; - -import javax.inject.Inject; - -import io.quarkus.qute.Template; -import io.quarkus.qute.Location; -import io.quarkus.scheduler.Scheduled; - -public class ReportGenerator { - - @Inject - SampleService service; - - @Location("reports/v1/report_01") <1> - Template report; - - @Scheduled(cron="0 30 * * * ?") <2> - void generate() { - String result = report - .data("samples", service.get()) - .data("now", java.time.LocalDateTime.now()) - .render(); <3> - // Write the result somewhere... - } -} ----- -<1> In this case, we use the `@Location` qualifier to specify the template path: `templates/reports/v1/report_01.html`. -<2> Use the `@Scheduled` annotation to instruct Quarkus to execute this method on the half hour. For more information see the xref:scheduler.adoc[Scheduler] guide. -<3> The `TemplateInstance.render()` method triggers rendering. Note that this method blocks the current thread. - -== Reactive and Asynchronous APIs - -Templates can be rendered as a `CompletionStage` (completed with the rendered output asynchronously) or as `Publisher` containing the rendered chunks: - -[source, java] ----- -CompletionStage async = template.data("name", "neo").renderAsync(); -Publisher publisher = template.data("name", "neo").publisher(); ----- - -In the case of a `Publisher`, the template is rendered chunk by chunk following the requests from the subscriber. -The rendering is not started until a subscriber requests it. -The returned `Publisher` is an instance of `io.smallrye.mutiny.Multi`. - -It is possible to create an instance of `io.smallrye.mutiny.Uni` as follows: - -[source, java] ----- -Uni uni = Uni.createFrom().completionStage(() -> template.data("name", "neo").renderAsync()); ----- - -In this case, the rendering only starts once the subscriber requests it. - -== Qute Reference Guide - -To learn more about Qute, please refer to the xref:qute-reference.adoc[Qute reference guide]. - -[[qute-configuration-reference]] -== Qute Configuration Reference - -include::{generated-dir}/config/quarkus-qute.adoc[leveloffset=+1, opts=optional] diff --git a/_versions/2.7/guides/rabbitmq-dev-services.adoc b/_versions/2.7/guides/rabbitmq-dev-services.adoc deleted file mode 100644 index 12060f43a7a..00000000000 --- a/_versions/2.7/guides/rabbitmq-dev-services.adoc +++ /dev/null @@ -1,118 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Dev Services for RabbitMQ - -include::./attributes.adoc[] - -Dev Services for RabbitMQ automatically starts a RabbitMQ broker in dev mode and when running tests. -So, you don't have to start a broker manually. -The application is configured automatically. - -== Enabling / Disabling Dev Services for RabbitMQ - -Dev Services for RabbitMQ is automatically enabled unless: - -- `quarkus.rabbitmq.devservices.enabled` is set to `false` -- the `rabbitmq-host` or `rabbitmq-port` is configured -- all the Reactive Messaging RabbitMQ channels have the `host` or `port` attributes set - -Dev Services for RabbitMQ relies on Docker to start the broker. -If your environment does not support Docker, you will need to start the broker manually, or connect to an already running broker. -You can configure the broker access using the `rabbitmq-host`, `rabbitmq-port`, `rabbitmq-username` and `rabbitmq-password` properties. - -== Shared broker - -Most of the time you need to share the broker between applications. -Dev Services for RabbitMQ implements a _service discovery_ mechanism for your multiple Quarkus applications running in _dev_ mode to share a single broker. - -NOTE: Dev Services for RabbitMQ starts the container with the `quarkus-dev-service-rabbitmq` label which is used to identify the container. - -If you need multiple (shared) brokers, you can configure the `quarkus.rabbitmq.devservices.service-name` attribute and indicate the broker name. -It looks for a container with the same value, or starts a new one if none can be found. -The default service name is `rabbitmq`. - -Sharing is enabled by default in dev mode, but disabled in test mode. -You can disable the sharing with `quarkus.rabbitmq.devservices.shared=false`. - -== Setting the port - -By default, Dev Services for RabbitMQ picks a random port and configures the application. -You can set the port by configuring the `quarkus.rabbitmq.devservices.port` property. - -== Configuring the image - -Dev Services for RabbitMQ uses official images available at https://hub.docker.com/_/rabbitmq. -You can configure the image and version using the `quarkus.rabbitmq.devservices.image-name` property: - -[source, properties] ----- -quarkus.rabbitmq.devservices.image-name=rabbitmq:latest ----- - -== Predefined Topology - -Dev Services for RabbitMQ supports defining topology upon broker start. You can define Exchanges, Queues, and -Bindings using standard Quarkus configuration. - -=== Defining Exchanges - -To define a RabbitMQ exchange you provide the exchange's name after the `quarkus.rabbitmq.devservices.exchanges` key, -followed by one (or more) of the exchange's properties: - -[source, properties] ----- -quarkus.rabbitmq.devservices.exchanges.my-exchange.type=topic # defaults to 'direct' -quarkus.rabbitmq.devservices.exchanges.my-exchange.auto-delete=false # defaults to 'false' -quarkus.rabbitmq.devservices.exchanges.my-exchange.durable=true # defaults to 'false' ----- - -Additionally, any additional arguments may be provided to the exchange's definition by using the `arguments` key: - -[source, properties] ----- -quarkus.rabbitmq.devservices.exchanges.my-exchange.arguments.alternate-exchange=another-exchange ----- - -=== Defining Queues - -To define a RabbitMQ queue you provide the queue's name after the `quarkus.rabbitmq.devservices.queues` key, -followed by one (or more) of the queue's properties: - -[source, properties] ----- -quarkus.rabbitmq.devservices.queues.my-queue.auto-delete=false # defaults to 'false' -quarkus.rabbitmq.devservices.queues.my-queue.durable=true # defaults to 'false' ----- - -Additionally, any additional arguments may be provided to the queue's definition by using the `arguments` key: - -[source, properties] ----- -quarkus.rabbitmq.devservices.queues.my-queue.arguments.x-dead-letter-exchange=another-exchange ----- - -=== Defining Bindings - -To define a RabbitMQ binding you provide the binding's name after the `quarkus.rabbitmq.devservices.bindings` key, -followed by one (or more) of the binding's properties: - -[source, properties] ----- -quarkus.rabbitmq.devservices.bindings.a-binding.source=my-exchange # defaults to name of binding -quarkus.rabbitmq.devservices.bindings.a-binding.routing-key=some-key # defaults to '#' -quarkus.rabbitmq.devservices.bindings.a-binding.destination=my-queue # defaults to name of binding -quarkus.rabbitmq.devservices.bindings.a-binding.destination-type=queue # defaults to 'queue' ----- - -NOTE: The name of the binding is only used for the purposes of the Dev Services configuration and is not part of the -binding defined in RabbitMQ. - -Additionally, any additional arguments may be provided to the binding's definition by using the `arguments` key: - -[source, properties] ----- -quarkus.rabbitmq.devservices.bindings.a-binding.arguments.non-std-option=value ----- diff --git a/_versions/2.7/guides/rabbitmq-reference.adoc b/_versions/2.7/guides/rabbitmq-reference.adoc deleted file mode 100644 index d23e6c5353f..00000000000 --- a/_versions/2.7/guides/rabbitmq-reference.adoc +++ /dev/null @@ -1,847 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Reactive Messaging RabbitMQ Connector Reference Documentation - -include::./attributes.adoc[] - -This guide is the companion from the xref:rabbitmq.adoc[Getting Started with RabbitMQ]. -It explains in more details the configuration and usage of the RabbitMQ connector for reactive messaging. - -TIP: This documentation does not cover all the details of the connector. -Refer to the https://smallrye.io/smallrye-reactive-messaging[SmallRye Reactive Messaging website] for further details. - -The RabbitMQ connector allows Quarkus applications to send and receive messages using the AMQP 0.9.1 protocol. -More details about the protocol can be found in https://www.rabbitmq.com/amqp-0-9-1-reference.html#queue.bind.routing-key[the AMQP 0.9.1 specification]. - -IMPORTANT: The RabbitMQ connector supports AMQP 0-9-1, which is very different from the AMQP 1.0 protocol used by the -AMQP 1.0 connector. You can use the AMQP 1.0 connector with RabbitMQ as described in the -xref:amqp-reference.adoc[AMQP 1.0 connector reference], albeit with *reduced functionality*. - -== RabbitMQ connector extension - -To use the connector, you need to add the `quarkus-smallrye-reactive-messaging-rabbitmq` extension. - -You can add the extension to your project using: - -[source, bash] ----- -> ./mvnw quarkus:add-extensions -Dextensions="quarkus-smallrye-reactive-messaging-rabbitmq" ----- - -Or just add the following dependency to your project: - -[source, xml] ----- - - io.quarkus - quarkus-quarkus-smallrye-reactive-messaging-rabbitmq - ----- - -Once added to your project, you can map _channels_ to RabbitMQ exchanges or queues by configuring the `connector` attribute: - -[source, properties] ----- -# Inbound -mp.messaging.incoming.[channel-name].connector=smallrye-rabbitmq - -# Outbound -mp.messaging.outgoing.[channel-name].connector=smallrye-rabbitmq ----- - -`outgoing` channels are mapped to RabbitMQ exchanges and `incoming` channels are mapped to RabbitMQ queues as required -by the broker. - -== Configuring the RabbitMQ Broker access - -The RabbitMQ connector connects to RabbitMQ brokers. -To configure the location and credentials of the broker, add the following properties in the `application.properties`: - -[source, properties] ----- -rabbitmq-host=amqp # <1> -rabbitmq-port=5672 # <2> -rabbitmq-username=my-username # <3> -rabbitmq-password=my-password # <4> - -mp.messaging.incoming.prices.connector=smallrye-rabbitmq # <5> ----- -<1> Configures the broker host name. You can do it per channel (using the `host` attribute) or globally using `rabbitmq-host` -<2> Configures the broker port. You can do it per channel (using the `port` attribute) or globally using `rabbitmq-port`. The default is `5672`. -<3> Configures the broker username if required. You can do it per channel (using the `username` attribute) or globally using `rabbitmq-username`. -<4> Configures the broker password if required. You can do it per channel (using the `password` attribute) or globally using `rabbitmq-password`. -<5> Instructs the prices channel to be managed by the RabbitMQ connector - -In dev mode and when running tests, xref:rabbitmq-dev-services.adoc[Dev Services for RabbitMQ] automatically starts a RabbitMQ broker. - -== Receiving RabbitMQ messages - -Let's imagine your application receives `Message`. -You can consume the payload directly: - -[source, java] ----- -package inbound; - -import org.eclipse.microprofile.reactive.messaging.Incoming; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class RabbitMQPriceConsumer { - - @Incoming("prices") - public void consume(double price) { - // process your price. - } - -} ----- - -Or, you can retrieve the Message: - -[source, java] ----- -package inbound; - -import org.eclipse.microprofile.reactive.messaging.Incoming; -import org.eclipse.microprofile.reactive.messaging.Message; - -import javax.enterprise.context.ApplicationScoped; -import java.util.concurrent.CompletionStage; - -@ApplicationScoped -public class RabbitMQPriceMessageConsumer { - - @Incoming("prices") - public CompletionStage consume(Message price) { - // process your price. - - // Acknowledge the incoming message, marking the RabbitMQ message as `accepted`. - return price.ack(); - } - -} ----- - -=== Inbound Metadata -Messages coming from RabbitMQ contain an instance of `IncomingRabbitMQMetadata` in the metadata. - -[source, java] ----- -Optional metadata = incoming.getMetadata(IncomingRabbitMQMetadata.class); -metadata.ifPresent(meta -> { - final Optional contentEncoding = meta.getContentEncoding(); - final Optional contentType = meta.getContentType(); - final Optional correlationId = meta.getCorrelationId(); - final Optional creationTime = meta.getCreationTime(ZoneId.systemDefault()); - final Optional priority = meta.getPriority(); - final Optional replyTo = meta.getReplyTo(); - final Optional userId = meta.getUserId(); - - // Access a single String-valued header - final Optional stringHeader = meta.getHeader("my-header", String.class); - - // Access all headers - final Map headers = meta.getHeaders(); - // ... -}); ----- - -=== Deserialization - -The connector converts incoming RabbitMQ Messages into Reactive Messaging `Message` instances. The payload type `T` depends on the value of the RabbitMQ received message Envelope `content_type` and `content_encoding` properties. - -[options="header"] -|=== -| content_encoding | content_type | T -| _Value present_ | _n/a_ | `byte[]` -| _No value_ | `text/plain` | `String` -| _No value_ | `application/json` | a JSON element which can be a https://vertx.io/docs/apidocs/io/vertx/core/json/JsonArray.html[`JsonArray`], https://vertx.io/docs/apidocs/io/vertx/core/json/JsonObject.html[`JsonObject`], `String`, ...etc if the buffer contains an array, object, string, ...etc -| _No value_ | _Anything else_ | `byte[]` -|=== - -If you send objects with this RabbitMQ connector (outbound connector), they are encoded as JSON and sent with `content_type` set to `application/json`. You can receive this payload using (Vert.x) JSON Objects, and then map it to the object class you want: - -[source, java] ----- -@ApplicationScoped -public static class Generator { - - @Outgoing("to-rabbitmq") - public Multi prices() { // <1> - AtomicInteger count = new AtomicInteger(); - return Multi.createFrom().ticks().every(Duration.ofMillis(1000)) - .map(l -> new Price().setPrice(count.incrementAndGet())) - .onOverflow().drop(); - } - -} - -@ApplicationScoped -public static class Consumer { - - List prices = new CopyOnWriteArrayList<>(); - - @Incoming("from-rabbitmq") - public void consume(JsonObject p) { // <2> - Price price = p.mapTo(Price.class); // <3> - prices.add(price); - } - - public List list() { - return prices; - } -} ----- -<1> The `Price` instances are automatically encoded to JSON by the connector -<2> You can receive it using a `JsonObject` -<3> Then, you can reconstruct the instance using the `mapTo` method - -NOTE: The `mapTo` method uses the Quarkus Jackson mapper. Check xref:rest-json.adoc#json[this guide] to learn more about the mapper configuration. - -=== Acknowledgement - -When a Reactive Messaging Message associated with a RabbitMQ Message is acknowledged, it informs the broker that the message has been _accepted_. - -Whether you need to explicitly acknowledge the message depends on the `auto-acknowledgement` setting for the channel; if that is set to true then your message will be automatically acknowledged on receipt. - -=== Failure Management - -If a message produced from a RabbitMQ message is nacked, a failure strategy is applied. The RabbitMQ connector supports -three strategies, controlled by the failure-strategy channel setting: - -* `fail` - fail the application; no more RabbitMQ messages will be processed. The RabbitMQ message is marked as rejected. -* `accept` - this strategy marks the RabbitMQ message as _accepted_. The processing continues ignoring the failure. -* `reject` - this strategy marks the RabbitMQ message as rejected (default). The processing continues with the next message. - -== Sending RabbitMQ messages - -=== Serialization - -When sendingWhen sending a `Message`, the connector converts the message into a RabbitMQ Message. The payload is converted to the RabbitMQ Message body. - -[options=header] -|=== -| T | RabbitMQ Message Body -| primitive types or `UUID`/`String` | String value with `content_type` set to `text/plain` -| https://vertx.io/docs/apidocs/io/vertx/core/json/JsonObject.html[`JsonObject`] or https://vertx.io/docs/apidocs/io/vertx/core/json/JsonArray.html[`JsonArray`] | Serialized String payload with `content_type` set to `application/json` -| `io.vertx.mutiny.core.buffer.Buffer` | Binary content, with `content_type` set to `application/octet-stream` -| `byte[]`| Binary content, with `content_type` set to `application/octet-stream` -| Any other class | The payload is converted to JSON (using a Json Mapper) then serialized with `content_type` set to `application/json` -|=== - -If the message payload cannot be serialized to JSON, the message is _nacked_. - -=== Outbound Metadata - -When sending `Messages`, you can add an instance of `OutgoingRabbitMQMetadata` -to influence how the message is handled by RabbitMQ. For example, you can configure the routing key, timestamp and -headers: - -[source, java] ----- -final OutgoingRabbitMQMetadata metadata = new OutgoingRabbitMQMetadata.Builder() - .withHeader("my-header", "xyzzy") - .withRoutingKey("urgent") - .withTimestamp(ZonedDateTime.now()) - .build(); - -// Add `metadata` to the metadata of the outgoing message. -return Message.of("Hello", Metadata.of(metadata)); ----- - -=== Acknowledgement - -By default, the Reactive Messaging `Message` is acknowledged when the broker acknowledges the message. - -== Configuring the RabbitMQ Exchange/Queue - -You can configure the RabbitMQ exchange or queue associated with a channel using properties on the channel configuration. -`incoming` channels are mapped to RabbitMQ `queues` and `outgoing` channels are mapped to `RabbitMQ` exchanges. -For example: - -[source, properties] ----- -mp.messaging.incoming.prices.connector=smallrye-rabbitmq -mp.messaging.incoming.prices.queue.name=my-queue - -mp.messaging.outgoing.orders.connector=smallrye-rabbitmq -mp.messaging.outgoing.orders.exchange.name=my-order-queue ----- - -If the `exchange.name` or `queue.name` attribute is not set, the connector uses the channel name. - -To use an existing queue, you need to configure the `name` and set the exchange's or queue's `declare` property to `false`. -For example, if you have a RabbitMQ broker configured with a `people` exchange and queue, you need the following configuration: - -[source, properties] ----- -mp.messaging.incoming.people.connector=smallrye-rabbitmq -mp.messaging.incoming.people.queue.name=people -mp.messaging.incoming.people.queue.declare=false - -mp.messaging.outgoing.people.connector=smallrye-rabbitmq -mp.messaging.outgoing.people.exchange.name=people -mp.messaging.outgoing.people.exchange.declare=false ----- - -[#blocking-processing] -=== Execution model and Blocking processing - -Reactive Messaging invokes your method on an I/O thread. -See the xref:quarkus-reactive-architecture.adoc[Quarkus Reactive Architecture documentation] for further details on this topic. -But, you often need to combine Reactive Messaging with blocking processing such as database interactions. -For this, you need to use the `@Blocking` annotation indicating that the processing is _blocking_ and should not be run on the caller thread. - -For example, The following code illustrates how you can store incoming payloads to a database using Hibernate with Panache: - -[source,java] ----- -import io.smallrye.reactive.messaging.annotations.Blocking; -import org.eclipse.microprofile.reactive.messaging.Incoming; - -import javax.enterprise.context.ApplicationScoped; -import javax.transaction.Transactional; - -@ApplicationScoped -public class PriceStorage { - - @Incoming("prices") - @Blocking - @Transactional - public void store(int priceInUsd) { - Price price = new Price(); - price.value = priceInUsd; - price.persist(); - } - -} ----- - -[NOTE] -==== -There are 2 `@Blocking` annotations: - -1. `io.smallrye.reactive.messaging.annotations.Blocking` -2. `io.smallrye.common.annotation.Blocking` - -They have the same effect. -Thus, you can use both. -The first one provides more fine-grained tuning such as the worker pool to use and whether it preserves the order. -The second one, used also with other reactive features of Quarkus, uses the default worker pool and preserves the order. -==== - -== Customizing the underlying RabbitMQ client - -The connector uses the Vert.x RabbitMQ client underneath. -More details about this client can be found in the https://vertx.io/docs/vertx-rabbitmq-client/java/[Vert.x website]. - -You can customize the underlying client configuration by producing an instance of `RabbitMQOptions` as follows: - -[source, java] ----- -@Produces -@Identifier("my-named-options") -public RabbitMQOptions getNamedOptions() { - PemKeyCertOptions keycert = new PemKeyCertOptions() - .addCertPath("./tls/tls.crt") - .addKeyPath("./tls/tls.key"); - PemTrustOptions trust = new PemTrustOptions().addCertPath("./tlc/ca.crt"); - // You can use the produced options to configure the TLS connection - return new RabbitMQOptions() - .setSsl(true) - .setPemKeyCertOptions(keycert) - .setPemTrustOptions(trust) - .setUser("user1") - .setPassword("password1") - .setHost("localhost") - .setPort(5672) - .setVirtualHost("vhost1") - .setConnectionTimeout(6000) // in milliseconds - .setRequestedHeartbeat(60) // in seconds - .setHandshakeTimeout(6000) // in milliseconds - .setRequestedChannelMax(5) - .setNetworkRecoveryInterval(500) // in milliseconds - .setAutomaticRecoveryEnabled(true); -} ----- - -This instance is retrieved and used to configure the client used by the connector. -You need to indicate the name of the client using the `client-options-name` attribute: - -[source, properties] ----- -mp.messaging.incoming.prices.client-options-name=my-named-options ----- - -== Health reporting - -If you use the RabbitMQ connector with the `quarkus-smallrye-health` extension, it contributes to the readiness and liveness probes. -The RabbitMQ connector reports the readiness and liveness of each channel managed by the connector. - -To disable health reporting, set the `health-enabled` attribute for the channel to false. - -On the inbound side (receiving messages from RabbitMQ), the check verifies that the receiver is connected to the broker. - -On the outbound side (sending records to RabbitMQ), the check verifies that the sender is not disconnected from the broker; the sender _may_ still be in an initiliased state (connection not yet attempted), but this is regarded as live/ready. - -Note that a message processing failures nacks the message, which is then handled by the `failure-strategy`. -It's the responsibility of the `failure-strategy` to report the failure and influence the outcome of the checks. -The `fail` failure strategy reports the failure, and so the check will report the fault. - -[[dynamic-credentials]] -== Dynamic Credentials - -Quarkus and the RabbitMQ connector support https://www.vaultproject.io/docs/secrets/rabbitmq[Vault's RabbitMQ secrets engine] -for generating short-lived dynamic credentials. This allows Vault to create and retire RabbitMQ credentials on a regular basis. - -First we need to enable Vault's `rabbitmq` secret engine, configure it with RabbitMQ's connection and authentication -information, and create a Vault role `my-role` (replace `10.0.0.3` by the actual host that is running the -RabbitMQ container): -[source,bash, subs=attributes+] ----- -vault secrets enable rabbitmq - -vault write rabbitmq/config/connection \ - connection_uri=http://10.0.0.3:15672 \ - username=guest \ - password=guest - -vault write rabbitmq/roles/my-role \ - vhosts='{"/":{"write": ".*", "read": ".*"}}' ----- - -[NOTE] -==== -For this use case, user `guest` configured above needs to be a RabbitMQ admin user with the capability to create -credentials. -==== - -Then we need to give a read capability to the Quarkus application on path `rabbitmq/creds/my-role`. -[source,bash] ----- -cat < quoteRequestEmitter; // <1> - - /** - * Endpoint to generate a new quote request id and send it to "quote-requests" channel (which - * maps to the "quote-requests" RabbitMQ exchange) using the emitter. - */ - @POST - @Path("/request") - @Produces(MediaType.TEXT_PLAIN) - public String createRequest() { - UUID uuid = UUID.randomUUID(); - quoteRequestEmitter.send(uuid.toString()); // <2> - return uuid.toString(); - } -} ----- -<1> Inject a Reactive Messaging `Emitter` to send messages to the `quote-requests` channel. -<2> On a post request, generate a random UUID and send it to the RabbitMQ queue using the emitter. - -This channel is mapped to a RabbitMQ exchange using the configuration we will add to the `application.properties` file. -Open the `src/main/resource/application.properties` file and add: - -[source, properties] ----- -# Configure the outgoing RabbitMQ exchange `quote-requests` -mp.messaging.outgoing.quote-requests.connector=smallrye-rabbitmq -mp.messaging.outgoing.quote-requests.exchange.name=quote-requests ----- - -All we need to specify is the `smallrye-rabbitmq` connector. -By default, reactive messaging maps the channel name `quote-requests` to the same RabbitMQ exchange name. - -== Processing quote requests - -Now let's consume the quote request and give out a price. -Inside the `processor` project, locate the `src/main/java/org/acme/rabbitmq/processor/QuoteProcessor.java` file and add the following: - -[source, java] ----- -package org.acme.rabbitmq.processor; - -import java.util.Random; - -import javax.enterprise.context.ApplicationScoped; - -import org.acme.rabbitmq.model.Quote; -import org.eclipse.microprofile.reactive.messaging.Incoming; -import org.eclipse.microprofile.reactive.messaging.Outgoing; - -import io.smallrye.reactive.messaging.annotations.Blocking; - -/** - * A bean consuming data from the "quote-requests" RabbitMQ queue and giving out a random quote. - * The result is pushed to the "quotes" RabbitMQ exchange. - */ -@ApplicationScoped -public class QuoteProcessor { - - private Random random = new Random(); - - @Incoming("requests") // <1> - @Outgoing("quotes") // <2> - @Blocking // <3> - public Quote process(String quoteRequest) throws InterruptedException { - // simulate some hard-working task - Thread.sleep(1000); - return new Quote(quoteRequest, random.nextInt(100)); - } -} ----- -<1> Indicates that the method consumes the items from the `requests` channel -<2> Indicates that the objects returned by the method are sent to the `quotes` channel -<3> Indicates that the processing is _blocking_ and cannot be run on the caller thread. - -The `process` method is called for every RabbitMQ message from the `quote-requests` queue, and will send a `Quote` object to the `quotes` exchange. - -As with the previous example we need to configure the connectors in the `application.properties` file. -Open the `src/main/resources/application.properties` file and add: - -[source, properties] ----- -# Configure the incoming RabbitMQ queue `quote-requests` -mp.messaging.incoming.requests.connector=smallrye-rabbitmq -mp.messaging.incoming.requests.queue.name=quote-requests -mp.messaging.incoming.requests.exchange.name=quote-requests - -# Configure the outgoing RabbitMQ exchange `quotes` -mp.messaging.outgoing.quotes.connector=smallrye-rabbitmq -mp.messaging.outgoing.quotes.exchange.name=quotes ----- - -Note that in this case we have one incoming and one outgoing connector configuration, each one distinctly named. -The configuration keys are structured as follows: - -`mp.messaging.[outgoing|incoming].{channel-name}.property=value` - -The `channel-name` segment must match the value set in the `@Incoming` and `@Outgoing` annotation: - -* `quote-requests` -> RabbitMQ queue from which we read the quote requests -* `quotes` -> RabbitMQ exchange in which we write the quotes - -== Receiving quotes - -Back to our `producer` project. -Let's modify the `QuotesResource` to consume quotes, bind it to an HTTP endpoint to send events to clients: - -[source,java] ----- -import io.smallrye.mutiny.Multi; -//... - -@Channel("quotes") Multi quotes; // <1> - -/** - * Endpoint retrieving the "quotes" queue and sending the items to a server sent event. - */ -@GET -@Produces(MediaType.SERVER_SENT_EVENTS) // <2> -public Multi stream() { - return quotes; // <3> -} ----- -<1> Injects the `quotes` channel using the `@Channel` qualifier -<2> Indicates that the content is sent using `Server Sent Events` -<3> Returns the stream (_Reactive Stream_) - -Again we need to configure the incoming `quotes` channel inside `producer` project. -Add the following inside `application.properties` file: - -[source, properties] ----- -# Configure the outgoing `quote-requests` queue -mp.messaging.outgoing.quote-requests.connector=smallrye-rabbitmq - -# Configure the incoming `quotes` queue -mp.messaging.incoming.quotes.connector=smallrye-rabbitmq ----- - -== The HTML page - -Final touch, the HTML page reading the converted prices using SSE. - -Create inside the `producer` project `src/main/resources/META-INF/resources/quotes.html` file, with the following content: - -[source, html] ----- - Quotes - - - - - -
    -
    -
    -

    Quotes

    - -
    -
    -
    -
    - - - - ----- - -Nothing spectacular here. -On each received quote, it updates the page. - -== Get it running - -You just need to run both applications using: - -[source,bash] ----- -> mvn -f rabbitmq-quickstart-producer quarkus:dev ----- - -And, in a separate terminal: - -[source, bash] ----- -> mvn -f rabbitmq-quickstart-processor quarkus:dev ----- - -Quarkus starts a RabbitMQ broker automatically, configures the application and shares the broker instance between different applications. -See xref:rabbitmq-dev-services.adoc[Dev Services for RabbitMQ] for more details. - - -Open `http://localhost:8080/quotes.html` in your browser and request some quotes by clicking the button. - -== Running in JVM or Native mode - -When not running in dev or test mode, you will need to start your RabbitMQ broker. -You can follow the instructions from the https://hub.docker.com/_/rabbitmq[RabbitMQ Docker website] or create a `docker-compose.yaml` file with the following content: - -[source, yaml] ----- -version: '2' - -services: - - rabbit: - image: rabbitmq:3.9-management - ports: - - "5672:5672" - networks: - - rabbitmq-quickstart-network - - producer: - image: quarkus-quickstarts/rabbitmq-quickstart-producer:1.0-${QUARKUS_MODE:-jvm} - build: - context: rabbitmq-quickstart-producer - dockerfile: src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm} - environment: - RABBITMQ_HOST: rabbit - RABBITMQ_PORT: 5672 - ports: - - "8080:8080" - networks: - - rabbitmq-quickstart-network - - processor: - image: quarkus-quickstarts/rabbitmq-quickstart-processor:1.0-${QUARKUS_MODE:-jvm} - build: - context: rabbitmq-quickstart-processor - dockerfile: src/main/docker/Dockerfile.${QUARKUS_MODE:-jvm} - environment: - RABBITMQ_HOST: rabbit - RABBITMQ_PORT: 5672 - networks: - - rabbitmq-quickstart-network - -networks: - rabbitmq-quickstart-network: - name: rabbitmq-quickstart ----- - -Note how the RabbitMQ broker location is configured. -The `rabbitmq-host` and `rabbitmq-port` (`AMQP_HOST` and `AMQP_PORT` environment variables) properties configure location. - - -First, make sure you stopped the applications, and build both applications in JVM mode with: - -[source, bash] ----- -> mvn -f rabbitmq-quickstart-producer clean package -> mvn -f rabbitmq-quickstart-processor clean package ----- - -Once packaged, run `docker compose up --build`. -The UI is exposed on http://localhost:8080/quotes.html - -To run your applications as native, first we need to build the native executables: - -[source, bash] ----- -> mvn -f rabbitmq-quickstart-producer package -Pnative -Dquarkus.native.container-build=true -> mvn -f rabbitmq-quickstart-processor package -Pnative -Dquarkus.native.container-build=true ----- - -The `-Dquarkus.native.container-build=true` instructs Quarkus to build Linux 64bits native executables, who can run inside containers. -Then, run the system using: - -[source, bash] ----- -> export QUARKUS_MODE=native -> docker compose up --build ----- - -As before, the UI is exposed on http://localhost:8080/quotes.html - -== Going further - -This guide has shown how you can interact with RabbitMQ using Quarkus. -It utilizes https://smallrye.io/smallrye-reactive-messaging[SmallRye Reactive Messaging] to build data streaming applications. - -If you did the Kafka, you have realized that it's the same code. -The only difference is the connector configuration and the JSON mapping. diff --git a/_versions/2.7/guides/reactive-event-bus.adoc b/_versions/2.7/guides/reactive-event-bus.adoc deleted file mode 100644 index 91c2c4747ba..00000000000 --- a/_versions/2.7/guides/reactive-event-bus.adoc +++ /dev/null @@ -1,426 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using the event bus - -include::./attributes.adoc[] - -Quarkus allows different beans to interact using asynchronous events, thus promoting loose-coupling. -The messages are sent to _virtual addresses_. -It offers 3 types of delivery mechanism: - -- point-to-point - send the message, one consumer receives it. If several consumers listen to the address, a round robin is applied; -- publish/subscribe - publish a message, all the consumers listening to the address are receiving the message; -- request/reply - send the message and expect a response. The receiver can respond to the message in an asynchronous-fashion - -All these delivery mechanism are non-blocking, and are providing one of the fundamental brick to build reactive applications. - -NOTE: The asynchronous message passing feature allows replying to messages which is not supported by Reactive Messaging. -However, it is limited to single-event behavior (no stream) and to local messages. - -== Installing - -This mechanism uses the Vert.x EventBus, so you need to enable the `vertx` extension to use this feature. -If you are creating a new project, set the `extensions` parameter are follows: - -:create-app-artifact-id: vertx-quickstart -:create-app-extensions: vertx,resteasy-mutiny -include::includes/devtools/create-app.adoc[] - -If you have an already created project, the `vertx` extension can be added to an existing Quarkus project with -the `add-extension` command: - -:add-extension-extensions: vertx -include::includes/devtools/extension-add.adoc[] - -Otherwise, you can manually add this to the dependencies section of your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-vertx - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-vertx") ----- - -== Consuming events - -To consume events, use the `io.quarkus.vertx.ConsumeEvent` annotation: - -[source, java] ----- -package org.acme.vertx; - -import io.quarkus.vertx.ConsumeEvent; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class GreetingService { - - @ConsumeEvent // <1> - public String consume(String name) { // <2> - return name.toUpperCase(); - } -} ----- -<1> If not set, the address is the fully qualified name of the bean, for instance, in this snippet it's `org.acme.vertx.GreetingService`. -<2> The method parameter is the message body. If the method returns _something_ it's the message response. - -[IMPORTANT] -==== -By default, the code consuming the event must be _non-blocking_, as it's called on the Vert.x event loop. -If your processing is blocking, use the `blocking` attribute: - -[source, java] ----- -@ConsumeEvent(value = "blocking-consumer", blocking = true) -void consumeBlocking(String message) { - // Something blocking -} ----- - -Alternatively, you can annotate your method with `@io.smallrye.common.annotation.Blocking`: -[source, java] ----- -@ConsumeEvent(value = "blocking-consumer") -@Blocking -void consumeBlocking(String message) { - // Something blocking -} ----- - -When using `@Blocking`, it ignores the value of the `blocking` attribute of `@ConsumeEvent`. -See the xref:quarkus-reactive-architecture.adoc[Quarkus Reactive Architecture documentation] for further details on this topic. -==== - -Asynchronous processing is also possible by returning either an `io.smallrye.mutiny.Uni` or a `java.util.concurrent.CompletionStage`: - -[source,java] ----- -package org.acme.vertx; - -import io.quarkus.vertx.ConsumeEvent; - -import javax.enterprise.context.ApplicationScoped; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionStage; -import io.smallrye.mutiny.Uni; - -@ApplicationScoped -public class GreetingService { - - @ConsumeEvent - public CompletionStage consume(String name) { - // return a CompletionStage completed when the processing is finished. - // You can also fail the CompletionStage explicitly - } - - @ConsumeEvent - public Uni process(String name) { - // return an Uni completed when the processing is finished. - // You can also fail the Uni explicitly - } -} ----- - -[TIP] -.Mutiny -==== -The previous example uses Mutiny reactive types. -If you are not familiar with Mutiny, check xref:mutiny-primer.adoc[Mutiny - an intuitive reactive programming library]. -==== - -=== Configuring the address - -The `@ConsumeEvent` annotation can be configured to set the address: - -[source, java] ----- -@ConsumeEvent("greeting") // <1> -public String consume(String name) { - return name.toUpperCase(); -} ----- -<1> Receive the messages sent to the `greeting` address - -=== Replying - -The _return_ value of a method annotated with `@ConsumeEvent` is used as response to the incoming message. -For instance, in the following snippet, the returned `String` is the response. - -[source, java] ----- -@ConsumeEvent("greeting") -public String consume(String name) { - return name.toUpperCase(); -} ----- - -You can also return a `Uni` or a `CompletionStage` to handle asynchronous reply: - -[source, java] ----- -@ConsumeEvent("greeting") -public Uni consume2(String name) { - return Uni.createFrom().item(() -> name.toUpperCase()).emitOn(executor); -} ----- - -[NOTE] -==== -You can inject an `executor` if you use the Context Propagation extension: -[source, java] ----- -@Inject ManagedExecutor executor; ----- - -Alternatively, you can use the default Quarkus worker pool using: - -[source, java] ----- -Executor executor = Infrastructure.getDefaultWorkerPool(); ----- -==== - -=== Implementing fire and forget interactions - -You don't have to reply to received messages. -Typically, for a _fire and forget_ interaction, the messages are consumed and the sender does not need to know about it. -To implement this, your consumer method just returns `void` - -[source,java] ----- -@ConsumeEvent("greeting") -public void consume(String event) { - // Do something with the event -} ----- - -=== Dealing with messages - -As said above, this mechanism is based on the Vert.x event bus. So, you can also use `Message` directly: - -[source, java] ----- -@ConsumeEvent("greeting") -public void consume(Message msg) { - System.out.println(msg.address()); - System.out.println(msg.body()); -} ----- - -=== Handling Failures - -If a method annotated with `@ConsumeEvent` throws an exception then: - -* if a reply handler is set then the failure is propagated back to the sender via an `io.vertx.core.eventbus.ReplyException` with code `ConsumeEvent#FAILURE_CODE` and the exception message, -* if no reply handler is set then the exception is rethrown (and wrapped in a `RuntimeException` if necessary) and can be handled by the default exception handler, i.e. `io.vertx.core.Vertx#exceptionHandler()`. - -== Sending messages - -Ok, we have seen how to receive messages, let's now switch to the _other side_: the sender. -Sending and publishing messages use the Vert.x event bus: - -[source, java] ----- -package org.acme.vertx; - -import io.smallrye.mutiny.Uni; -import io.vertx.mutiny.core.eventbus.EventBus; -import io.vertx.mutiny.core.eventbus.Message; -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/async") -public class EventResource { - - @Inject - EventBus bus; // <1> - - @GET - @Produces(MediaType.TEXT_PLAIN) - @Path("{name}") - public Uni greeting(@PathParam String name) { - return bus.request("greeting", name) // <2> - .onItem().transform(Message::body); - } -} ----- -<1> Inject the Event bus -<2> Send a message to the address `greeting`. Message payload is `name` - -The `EventBus` object provides methods to: - -1. `send` a message to a specific address - one single consumer receives the message. -2. `publish` a message to a specific address - all consumers receive the messages. -3. `send` a message and expect reply - -[source, java] ----- -// Case 1 -bus.sendAndForget("greeting", name) -// Case 2 -bus.publish("greeting", name) -// Case 3 -Uni response = bus.request("address", "hello, how are you?") - .onItem().transform(Message::body); ----- - -== Putting things together - bridging HTTP and messages - -Let's revisit a greeting HTTP endpoint and use asynchronous message passing to delegate the call to a separated bean. -It uses the request/reply dispatching mechanism. -Instead of implementing the business logic inside the JAX-RS endpoint, we are sending a message. -This message is consumed by another bean and the response is sent using the _reply_ mechanism. - -First create a new project using: - -:create-app-artifact-id: vertx-http-quickstart -:create-app-extensions: vertx,resteasy-mutiny -include::includes/devtools/create-app.adoc[] - -You can already start the application in _dev mode_ using: - -include::includes/devtools/dev.adoc[] - -Then, creates a new JAX-RS resource with the following content: - -[source,java] -.src/main/java/org/acme/vertx/EventResource.java ----- -package org.acme.vertx; - -import io.smallrye.mutiny.Uni; -import io.vertx.mutiny.core.eventbus.EventBus; -import io.vertx.mutiny.core.eventbus.Message; -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/async") -public class EventResource { - - @Inject - EventBus bus; - - @GET - @Produces(MediaType.TEXT_PLAIN) - @Path("{name}") - public Uni greeting(@PathParam String name) { - return bus.request("greeting", name) // <1> - .onItem().transform(Message::body); // <2> - } -} ----- -<1> send the `name` to the `greeting` address and request a response -<2> when we get the response, extract the body and send it to the user - -If you call this endpoint, you will wait and get a timeout. Indeed, no one is listening. -So, we need a consumer listening on the `greeting` address. Create a `GreetingService` bean with the following content: - -[source, java] -.src/main/java/org/acme/vertx/GreetingService.java ----- -package org.acme.vertx; - -import io.quarkus.vertx.ConsumeEvent; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class GreetingService { - - @ConsumeEvent("greeting") - public String greeting(String name) { - return "Hello " + name; - } - -} ----- - -This bean receives the name, and returns the greeting message. - -Now, open your browser to http://localhost:8080/async/Quarkus, and you should see: - -[source,text] ----- -Hello Quarkus ----- - -To better understand, let's detail how the HTTP request/response has been handled: - -1. The request is received by the `hello` method -2. a message containing the _name_ is sent to the event bus -3. Another bean receives this message and computes the response -4. This response is sent back using the reply mechanism -5. Once the reply is received by the sender, the content is written to the HTTP response - -This application can be packaged using: - -include::includes/devtools/build.adoc[] - -You can also compile it as a native executable with: - -include::includes/devtools/build-native.adoc[] - -== Using codecs - -The https://vertx.io/docs/vertx-core/java/#event_bus[Vert.x Event Bus] uses codecs to _serialize_ and _deserialize_ objects. -Quarkus provides a default codec for local delivery. -So you can exchange objects as follows: - -[source, java] ----- -@GET -@Produces(MediaType.TEXT_PLAIN) -@Path("{name}") -public Uni greeting(@PathParam String name) { - return bus.request("greeting", new MyName(name)) - .onItem().transform(Message::body); -} - -@ConsumeEvent(value = "greeting") -Uni greeting(MyName name) { - return Uni.createFrom().item(() -> "Hello " + name.getName()); -} ----- - -If you want to use a specific codec, you need to explicitly set it on both ends: - -[source, java] ----- -@GET -@Produces(MediaType.TEXT_PLAIN) -@Path("{name}") -public Uni greeting(@PathParam String name) { - return bus.request("greeting", name, - new DeliveryOptions().setCodecName(MyNameCodec.class.getName())) // <1> - .onItem().transform(Message::body); -} - -@ConsumeEvent(value = "greeting", codec = MyNameCodec.class) // <2> -Uni greeting(MyName name) { - return Uni.createFrom().item(() -> "Hello "+name.getName()); -} ----- -<1> Set the name of the codec to use to send the message -<2> Set the codec to use to receive the message diff --git a/_versions/2.7/guides/reactive-routes.adoc b/_versions/2.7/guides/reactive-routes.adoc deleted file mode 100644 index c75d8923f92..00000000000 --- a/_versions/2.7/guides/reactive-routes.adoc +++ /dev/null @@ -1,857 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Reactive Routes - -include::./attributes.adoc[] - -Reactive routes propose an alternative approach to implement HTTP endpoints where you declare and chain _routes_. -This approach became very popular in the JavaScript world, with frameworks like Express.Js or Hapi. -Quarkus also offers the possibility to use reactive routes. -You can implement REST API with routes only or combine them with JAX-RS resources and servlets. - -The code presented in this guide is available in this {quickstarts-base-url}[GitHub repository] under the {quickstarts-tree-url}/reactive-routes-quickstart[`reactive-routes-quickstart` directory] - -NOTE: Reactive Routes were initially introduced to provide a reactive execution model for HTTP APIs on top of the xref:quarkus-reactive-architecture.adoc[Quarkus Reactive Architecture]. -With the introduction of xref:resteasy-reactive.adoc[RESTEasy Reactive], you can now implement reactive HTTP APIs and still use JAX-RS annotations. -Reactive Routes are still supported, especially if you want a more _route-based_ approach, and something closer to the underlying reactive engine. - -== Quarkus HTTP - -Before going further, let's have a look at the HTTP layer of Quarkus. -Quarkus HTTP support is based on a non-blocking and reactive engine (Eclipse Vert.x and Netty). -All the HTTP requests your application receive are handled by _event loops_ (I/O Thread) and then are routed towards the code that manages the request. -Depending on the destination, it can invoke the code managing the request on a worker thread (Servlet, Jax-RS) or use the IO Thread (reactive route). -Note that because of this, a reactive route must be non-blocking or explicitly declare its blocking nature (which would result by being called on a worker thread). - -image:http-architecture.png[alt=Quarkus HTTP Architecture] - -See the xref:quarkus-reactive-architecture.adoc[Quarkus Reactive Architecture documentation] for further details on this topic. - - -== Declaring reactive routes - -The first way to use reactive routes is to use the `@Route` annotation. -To have access to this annotation, you need to add the `quarkus-reactive-routes` extension: - -In your build file, add: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-reactive-routes - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-reactive-routes") ----- - -Then in a _bean_, you can use the `@Route` annotation as follows: - -[source,java] ----- -package org.acme.reactive.routes; - -import io.quarkus.vertx.web.Route; -import io.quarkus.vertx.web.Route.HttpMethod; -import io.quarkus.vertx.web.RoutingExchange; -import io.vertx.ext.web.RoutingContext; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped // <1> -public class MyDeclarativeRoutes { - - // neither path nor regex is set - match a path derived from the method name - @Route(methods = Route.HttpMethod.GET) // <2> - void hello(RoutingContext rc) { // <3> - rc.response().end("hello"); - } - - @Route(path = "/world") - String helloWorld() { // <4> - return "Hello world!"; - } - - @Route(path = "/greetings", methods = Route.HttpMethod.GET) - void greetings(RoutingExchange ex) { // <5> - ex.ok("hello " + ex.getParam("name").orElse("world")); - } -} ----- -<1> If there is a reactive route found on a class with no scope annotation then `@javax.inject.Singleton` is added automatically. -<2> The `@Route` annotation indicates that the method is a reactive route. Again, by default, the code contained in the method must not block. -<3> The method gets a https://vertx.io/docs/apidocs/io/vertx/ext/web/RoutingContext.html[`RoutingContext`] as a parameter. From the `RoutingContext` you can retrieve the HTTP request (using `request()`) and write the response using `response().end(...)`. -<4> If the annotated method does not return `void` the arguments are optional. -<5> `RoutingExchange` is a convenient wrapper of `RoutingContext` which provides some useful methods. - -More details about using the `RoutingContext` is available in the https://vertx.io/docs/vertx-web/java/[Vert.x Web documentation]. - -The `@Route` annotation allows you to configure: - -* The `path` - for routing by path, using the https://vertx.io/docs/vertx-web/java/#_capturing_path_parameters[Vert.x Web format] -* The `regex` - for routing with regular expressions, see https://vertx.io/docs/vertx-web/java/#_routing_with_regular_expressions[for more details] -* The `methods` - the HTTP verb triggering the route such as `GET`, `POST`... -* The `type` - it can be _normal_ (non-blocking), _blocking_ (method dispatched on a worker thread), or _failure_ to indicate that this route is called on failures -* The `order` - the order of the route when several routes are involved in handling the incoming request. -Must be positive for regular user routes. -* The produced and consumed mime types using `produces`, and `consumes` - -For instance, you can declare a blocking route as follows: - -[source,java] ----- -@Route(methods = HttpMethod.POST, path = "/post", type = Route.HandlerType.BLOCKING) -public void blocking(RoutingContext rc) { - // ... -} ----- - -[NOTE] -==== -Alternatively, you can use `@io.smallrye.common.annotation.Blocking` and omit the `type = Route.HandlerType.BLOCKING`: -[source, java] ----- -@Route(methods = HttpMethod.POST, path = "/post") -@Blocking -public void blocking(RoutingContext rc) { - // ... -} ----- -When `@Blocking` is used, it ignores the `type` attribute of `@Route`. -==== - -The `@Route` annotation is repeatable and so you can declare several routes for a single method: - -[source,java] ----- -@Route(path = "/first") <1> -@Route(path = "/second") -public void route(RoutingContext rc) { - // ... -} ----- -<1> Each route can use different paths, methods... - -If no content-type header is set then we will try to use the most acceptable content type as defined by `io.vertx.ext.web.RoutingContext.getAcceptableContentType()`. - -[source,java] ----- -@Route(path = "/person", produces = "text/html") <1> -String person() { - // ... -} ----- -<1> If the `accept` header matches `text/html` we set the content type automatically. - -=== Handling conflicting routes - -You may end up with multiple routes matching a given path. -In the following example, both route matches `/accounts/me`: - -[source, java] ----- -@Route(path = "/accounts/:id", methods = HttpMethod.GET) -void getAccount(RoutingContext ctx) { - ... -} - -@Route(path = "/accounts/me", methods = HttpMethod.GET) -void getCurrentUserAccount(RoutingContext ctx) { - ... -} ----- - -As a consequence, the result is not the expected one as the first route is called with the path parameter `id` set to `me`. -To avoid the conflict, use the `order` attribute: - -[source, java] ----- -@Route(path = "/accounts/:id", methods = HttpMethod.GET, order = 2) -void getAccount(RoutingContext ctx) { - ... -} - -@Route(path = "/accounts/me", methods = HttpMethod.GET, order = 1) -void getCurrentUserAccount(RoutingContext ctx) { - ... -} ----- - -By giving a lower order to the second route, it gets evaluated first. -If the request path matches, it is invoked, otherwise the other routes are evaluated. - -=== `@RouteBase` - -This annotation can be used to configure some defaults for reactive routes declared on a class. - -[source,java] ----- -@RouteBase(path = "simple", produces = "text/plain") <1> <2> -public class SimpleRoutes { - - @Route(path = "ping") // the final path is /simple/ping - void ping(RoutingContext rc) { - rc.response().end("pong"); - } -} ----- -<1> The `path` value is used as a prefix for any route method declared on the class where `Route#path()` is used. -<2> The value of `produces()` is used for content-based routing for all routes where `Route#produces()` is empty. - - -== Reactive Route Methods - -A route method must be a non-private non-static method of a CDI bean. -If the annotated method returns `void` then it has to accept at least one argument - see the supported types below. -If the annotated method does not return `void` then the arguments are optional. - -NOTE: Methods that return `void` must __end__ the response or the HTTP request to this route will never end. -Some methods of `RoutingExchange` do it for you, others not and you must call the `end()` method of the response by yourself, please refer to its JavaDoc for more information. - -A route method can accept arguments of the following types: - -* `io.vertx.ext.web.RoutingContext` -* `io.quarkus.vertx.web.RoutingExchange` -* `io.vertx.core.http.HttpServerRequest` -* `io.vertx.core.http.HttpServerResponse` -* `io.vertx.mutiny.core.http.HttpServerRequest` -* `io.vertx.mutiny.core.http.HttpServerResponse` - -Furthermore, it is possible to inject the `HttpServerRequest` parameters into a method parameter annotated with `@io.quarkus.vertx.web.Param`: - -[options="header",cols="1,1"] -|=== -|Parameter Type | Obtained via -//------------- -|`java.lang.String` |`routingContext.request().getParam()` -|`java.util.Optional` |`routingContext.request().getParam()` -|`java.util.List` |`routingContext.request().params().getAll()` -|=== - -.Request Parameter Example -[source,java] ----- -@Route -String hello(@Param Optional name) { - return "Hello " + name.orElse("world"); -} ----- - -The `HttpServerRequest` headers can be injected into a method parameter annotated with `@io.quarkus.vertx.web.Header`: - -[options="header",cols="1,1"] -|=== -|Parameter Type | Obtained via -//------------- -|`java.lang.String` |`routingContext.request().getHeader()` -|`java.util.Optional` |`routingContext.request().getHeader()` -|`java.util.List` |`routingContext.request().headers().getAll()` -|=== - -.Request Header Example -[source,java] ----- -@Route -String helloFromHeader(@Header("My-Header") String header) { - return header; -} ----- - -The request body can be injected into a method parameter annotated with `@io.quarkus.vertx.web.Body`. - -[options="header",cols="1,1"] -|=== -|Parameter Type | Obtained via -//------------- -|`java.lang.String` |`routingContext.getBodyAsString()` -|`io.vertx.core.buffer.Buffer` |`routingContext.getBody()` -|`io.vertx.core.json.JsonObject` |`routingContext.getBodyAsJson()` -|`io.vertx.core.json.JsonArray` |`routingContext.getBodyAsJsonArray()` -|any other type |`routingContext.getBodyAsJson().mapTo(MyPojo.class)` -|=== - -.Request Body Example -[source,java] ----- -@Route(produces = "application/json") -Person createPerson(@Body Person person, @Param("id") Optional primaryKey) { - person.setId(primaryKey.map(Integer::valueOf).orElse(42)); - return person; -} ----- - -A failure handler can declare a single method parameter whose type extends `Throwable`. -The type of the parameter is used to match the result of `RoutingContext#failure()`. - -.Failure Handler Example -[source,java] ----- -@Route(type = HandlerType.FAILURE) -void unsupported(UnsupportedOperationException e, HttpServerResponse response) { - response.setStatusCode(501).end(e.getMessage()); -} ----- - -=== Returning Unis - -In a reactive route, you can return a `Uni` directly: - -[source,java] ----- -@Route(path = "/hello") -Uni hello(RoutingContext context) { - return Uni.createFrom().item("Hello world!"); -} - -@Route(path = "/person") -Uni getPerson(RoutingContext context) { - return Uni.createFrom().item(() -> new Person("neo", 12345)); -} ----- - -Returning `Unis` is convenient when using a reactive client: - -[source,java] ----- -@Route(path = "/mail") -Uni sendEmail(RoutingContext context) { - return mailer.send(...); -} ----- - -The item produced by the returned `Uni` can be: - -* a string - written into the HTTP response directly -* a buffer - written into the HTTP response directly -* an object - written into the HTTP response after having been encoded into JSON. -The `content-type` header is set to `application/json` if not already set. - -If the returned `Uni` produces a failure (or is `null`), an HTTP 500 response is written. - -Returning a `Uni` produces a 204 response (no content). - -=== Returning results - -You can also return a result directly: - -[source, java] ----- -@Route(path = "/hello") -String helloSync(RoutingContext context) { - return "Hello world"; -} ----- - -Be aware, the processing must be **non-blocking** as reactive routes are invoked on the IO Thread. -Otherwise, set the `type` attribute of the `@Route` annotation to `Route.HandlerType.BLOCKING`, or use the `@io.smallrye.common.annotation.Blocking` annotation. - -The method can return: - -* a string - written into the HTTP response directly -* a buffer - written into the HTTP response directly -* an object - written into the HTTP response after having been encoded into JSON. -The `content-type` header is set to `application/json` if not already set. - -=== Returning Multis - -A reactive route can return a `Multi`. -The items are written one by one, in the response. -The response `Transfer-Encoding` header is set to `chunked`. - -[source, java] ----- -@Route(path = "/hello") -Multi hellos(RoutingContext context) { - return Multi.createFrom().items("hello", "world", "!"); // <1> -} ----- -<1> Produces `helloworld!` - -The method can return: - -* a `Multi` - the items are written one by one (one per _chunk_) in the response. -* a `Multi` - the buffers are written one by one (one per _chunk_) without any processing. -* a `Multi` - the items are encoded to JSON written one by one in the response. - - -[source, java] ----- -@Route(path = "/people") -Multi people(RoutingContext context) { - return Multi.createFrom().items( - new Person("superman", 1), - new Person("batman", 2), - new Person("spiderman", 3)); -} ----- - -The previous snippet produces: - -[source, json] ----- -{"name":"superman", "id": 1} // chunk 1 -{"name":"batman", "id": 2} // chunk 2 -{"name":"spiderman", "id": 3} // chunk 3 ----- - -=== Streaming JSON Array items - -You can return a `Multi` to produce a JSON Array, where every item is an item from this array. -The response is written item by item to the client. -To do that set the `produces` attribute to `"application/json"` (or `ReactiveRoutes.APPLICATION_JSON`). - -[source, java] ----- -@Route(path = "/people", produces = ReactiveRoutes.APPLICATION_JSON) -Multi people(RoutingContext context) { - return Multi.createFrom().items( - new Person("superman", 1), - new Person("batman", 2), - new Person("spiderman", 3)); -} ----- - -The previous snippet produces: - -[source, json] ----- -[ - {"name":"superman", "id": 1} // chunk 1 - ,{"name":"batman", "id": 2} // chunk 2 - ,{"name":"spiderman", "id": 3} // chunk 3 -] ----- - -TIP: The `produces` attribute is an array. -When you pass a single value you can omit the "{" and "}". -Note that `"application/json"` must be the first value in the array. - -Only `Multi`, `Multi` and `Multi` can be written into the JSON Array. -Using a `Multi` produces an empty array. -You cannot use `Multi`. -If you need to use `Buffer`, transform the content into a JSON or String representation first. - -[NOTE] -.Deprecation of `asJsonArray` -==== -The `ReactiveRoutes.asJsonArray` has been deprecated as it is not compatible with the security layer of Quarkus. -==== - -=== Event Stream and Server-Sent Event support - -You can return a `Multi` to produce an event source (stream of server sent events). -To enable this feature, set the `produces` attribute to `"text/event-stream"` (or `ReactiveRoutes.EVENT_STREAM`), such as in: - -[source, java] ----- -@Route(path = "/people", produces = ReactiveRoutes.EVENT_STREAM) -Multi people(RoutingContext context) { - return Multi.createFrom().items( - new Person("superman", 1), - new Person("batman", 2), - new Person("spiderman", 3)); -} ----- - -This method would produce: - -[source, text] ----- -data: {"name":"superman", "id": 1} -id: 0 - -data: {"name":"batman", "id": 2} -id: 1 - -data: {"name":"spiderman", "id": 3} -id: 2 - ----- - -TIP: The `produces` attribute is an array. -When you pass a single value you can omit the "{" and "}". -Note that `"text/event-stream"` must be the first value in the array. - -You can also implement the `io.quarkus.vertx.web.ReactiveRoutes.ServerSentEvent` interface to customize the `event` and `id` section of the server sent event: - -[source, java] ----- -class PersonEvent implements ReactiveRoutes.ServerSentEvent { - public String name; - public int id; - - public PersonEvent(String name, int id) { - this.name = name; - this.id = id; - } - - @Override - public Person data() { - return new Person(name, id); // Will be JSON encoded - } - - @Override - public long id() { - return id; - } - - @Override - public String event() { - return "person"; - } -} ----- - -Using a `Multi` would produce: - -[source, text] ----- -event: person -data: {"name":"superman", "id": 1} -id: 1 - -event: person -data: {"name":"batman", "id": 2} -id: 2 - -event: person -data: {"name":"spiderman", "id": 3} -id: 3 - ----- - -[NOTE] -.Deprecation of `asEventStream` -==== -The `ReactiveRoutes.asEventStream` has been deprecated as it is not compatible with the security layer of Quarkus. -==== - -=== Json Stream in NDJSON format - -You can return a `Multi` to produce a newline delimited stream of JSON values. -To enable this feature, set the `produces` attribute of the `@Route` annotation to `"application/x-ndjson"` (or `ReactiveRoutes.ND_JSON`): - -[source, java] ----- -@Route(path = "/people", produces = ReactiveRoutes.ND_JSON) -Multi people(RoutingContext context) { - return ReactiveRoutes.asJsonStream(Multi.createFrom().items( - new Person("superman", 1), - new Person("batman", 2), - new Person("spiderman", 3) - )); -} ----- - -This method would produce: - -[source, text] ----- -{"name":"superman", "id": 1} -{"name":"batman", "id": 2} -{"name":"spiderman", "id": 3} - ----- - -TIP: The `produces` attribute is an array. When you pass a single value you can omit the "{" and "}". -Note that `"application/x-ndjson"` must be the first value in the array. - -You can also provide strings instead of Objects, in that case the strings will be wrapped in quotes to become valid JSON values: - -[source, java] ----- -@Route(path = "/people", produces = ReactiveRoutes.ND_JSON) -Multi people(RoutingContext context) { - return ReactiveRoutes.asJsonStream(Multi.createFrom().items( - "superman", - "batman", - "spiderman" - )); -} ----- - -[source, text] ----- -"superman" -"batman" -"spiderman" - ----- - -[NOTE] -.Deprecation of `asJsonStream` -==== -The `ReactiveRoutes.asJsonStream` has been deprecated as it is not compatible with the security layer of Quarkus. -==== - -=== Using Bean Validation - -You can combine reactive routes and Bean Validation. -First, don't forget to add the `quarkus-hibernate-validator` extension to your project. -Then, you can add constraints to your route parameter (annotated with `@Param` or `@Body`): - -[source,java] ----- -@Route(produces = "application/json") -Person createPerson(@Body @Valid Person person, @NonNull @Param("id") String primaryKey) { - // ... -} ----- - -If the parameters do not pass the tests, it returns an HTTP 400 response. -If the request accepts JSON payload, the response follows the https://opensource.zalando.com/problem/constraint-violation/[Problem] format. - -When returning an object or a `Uni`, you can also use the `@Valid` annotation: - -[source,java] ----- -@Route(...) -@Valid Uni createPerson(@Body @Valid Person person, @NonNull @Param("id") String primaryKey) { - // ... -} ----- - -If the item produced by the route does not pass the validation, it returns a HTTP 500 response. -If the request accepts JSON payload, the response follows the https://opensource.zalando.com/problem/constraint-violation/[Problem] format. - -Note that only `@Valid` is supported on the return type. -The returned class can use any constraint. -In the case of `Uni`, it checks the item produced asynchronously. - -== Using the Vert.x Web Router - -You can also register your route directly on the _HTTP routing layer_ by registering routes directly on the `Router` object. -To retrieve the `Router` instance at startup: - -[source,java] ----- -public void init(@Observes Router router) { - router.get("/my-route").handler(rc -> rc.response().end("Hello from my route")); -} ----- - -Check the https://vertx.io/docs/vertx-web/java/#_basic_vert_x_web_concepts[Vert.x Web documentation] to know more about the route registration, options, and available handlers. - - -[NOTE] -==== -`Router` access is provided by the `quarkus-vertx-http` extension. -If you use `quarkus-resteasy` or `quarkus-reactive-routes`, the extension will be added automatically. -==== - -You can also receive the Mutiny variant of the Router (`io.vertx.mutiny.ext.web.Router`): - -[source,java] ----- -public void init(@Observes io.vertx.mutiny.ext.web.Router router) { - router.get("/my-route").handler(rc -> rc.response().endAndForget("Hello from my route")); -} ----- - -== Intercepting HTTP requests - -You can also register filters that would intercept incoming HTTP requests. -Note that these filters are also applied for servlets, JAX-RS resources, and reactive routes. - -For example, the following code snippet registers a filter adding an HTTP header: - -[source,java] ----- -package org.acme.reactive.routes; - -import io.vertx.ext.web.RoutingContext; - -public class MyFilters { - - @RouteFilter(100) <1> - void myFilter(RoutingContext rc) { - rc.response().putHeader("X-Header", "intercepting the request"); - rc.next(); <2> - } -} ----- - -<1> The `RouteFilter#value()` defines the priority used to sort the filters - filters with higher priority are called first. -<2> The filter is likely required to call the `next()` method to continue the chain. - -== Adding OpenAPI and Swagger UI - -You can add support for link:https://www.openapis.org/[OpenAPI] and link:https://swagger.io/tools/swagger-ui/[Swagger UI] by using the `quarkus-smallrye-openapi` extension. - -Add the extension by running this command: - -:add-extension-extensions: quarkus-smallrye-openapi -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-openapi - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-openapi") ----- - -This is enough to generate a basic OpenAPI schema document from your Vert.x Routes: - -[source,bash] ----- -curl http://localhost:8080/q/openapi ----- - -You will see the generated OpenAPI schema document: - -[source, yaml] ----- ---- -openapi: 3.0.3 -info: - title: Generated API - version: "1.0" -paths: - /greetings: - get: - responses: - "204": - description: No Content - /hello: - get: - responses: - "204": - description: No Content - /world: - get: - responses: - "200": - description: OK - content: - '*/*': - schema: - type: string ----- - -Also see xref:openapi-swaggerui.adoc[the OpenAPI Guide]. - -=== Adding MicroProfile OpenAPI Annotations - -You can use link:https://github.com/eclipse/microprofile-open-api[MicroProfile OpenAPI] to better document your schema, -example, adding header info, or specifying the return type on `void` methods might be usefull : - -[source, java] ----- -@OpenAPIDefinition( // <1> - info = @Info( - title="Greeting API", - version = "1.0.1", - contact = @Contact( - name = "Greeting API Support", - url = "http://exampleurl.com/contact", - email = "techsupport@example.com"), - license = @License( - name = "Apache 2.0", - url = "https://www.apache.org/licenses/LICENSE-2.0.html")) -) -@ApplicationScoped -public class MyDeclarativeRoutes { - - // neither path nor regex is set - match a path derived from the method name - @Route(methods = Route.HttpMethod.GET) - @APIResponse(responseCode="200", - description="Say hello", - content=@Content(mediaType="application/json", schema=@Schema(type=SchemaType.STRING))) // <2> - void hello(RoutingContext rc) { - rc.response().end("hello"); - } - - @Route(path = "/world") - String helloWorld() { - return "Hello world!"; - } - - @Route(path = "/greetings", methods = HttpMethod.GET) - @APIResponse(responseCode="200", - description="Greeting", - content=@Content(mediaType="application/json", schema=@Schema(type=SchemaType.STRING))) - void greetings(RoutingExchange ex) { - ex.ok("hello " + ex.getParam("name").orElse("world")); - } -} ----- -<1> Header information about your API. -<2> Defining the response - -This will generate this OpenAPI schema: - -[source, yaml] ----- ---- -openapi: 3.0.3 -info: - title: Greeting API - contact: - name: Greeting API Support - url: http://exampleurl.com/contact - email: techsupport@example.com - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0.html - version: 1.0.1 -paths: - /greetings: - get: - responses: - "200": - description: Greeting - content: - application/json: - schema: - type: string - /hello: - get: - responses: - "200": - description: Say hello - content: - application/json: - schema: - type: string - /world: - get: - responses: - "200": - description: OK - content: - '*/*': - schema: - type: string ----- - -=== Using Swagger UI - -Swagger UI is included by default when running in `dev` or `test` mode, and can optionally added to `prod` mode. -See <> Guide for more details. - -Navigate to link:http://localhost:8080/q/swagger-ui/[localhost:8080/q/swagger-ui/] and you will see the Swagger UI screen: - -image:reactive-routes-guide-screenshot01.png[alt=Swagger UI] - -== Conclusion - -This guide has introduced how you can use reactive routes to define an HTTP endpoint. -It also describes the structure of the Quarkus HTTP layer and how to write filters. diff --git a/_versions/2.7/guides/reactive-sql-clients.adoc b/_versions/2.7/guides/reactive-sql-clients.adoc deleted file mode 100644 index 227a95bfc75..00000000000 --- a/_versions/2.7/guides/reactive-sql-clients.adoc +++ /dev/null @@ -1,735 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Reactive SQL Clients - -include::./attributes.adoc[] -:config-file: application.properties - -The Reactive SQL Clients have a straightforward API focusing on scalability and low-overhead. -Currently, the following database servers are supported: - -* IBM Db2 -* PostgreSQL -* MariaDB/MySQL -* Microsoft SQL Server -* Oracle - -[NOTE] -==== -The Reactive SQL Client for Oracle is considered _tech preview_. - -In _tech preview_ mode, early feedback is requested to mature the idea. -There is no guarantee of stability in the platform until the solution matures. -Feedback is welcome on our https://groups.google.com/d/forum/quarkus-dev[mailing list] or as issues in our https://github.com/quarkusio/quarkus/issues[GitHub issue tracker]. -==== - -In this guide, you will learn how to implement a simple CRUD application exposing data stored in *PostgreSQL* over a RESTful API. - -NOTE: Extension and connection pool class names for each client can be found at the bottom of this document. - -IMPORTANT: If you are not familiar with the Quarkus Vert.x extension, consider reading the xref:vertx.adoc[Using Eclipse Vert.x] guide first. - -The application shall manage fruit entities: - -[source,java] ----- -public class Fruit { - - public Long id; - - public String name; - - public Fruit() { - } - - public Fruit(String name) { - this.name = name; - } - - public Fruit(Long id, String name) { - this.id = id; - this.name = name; - } -} ----- - -[TIP] -==== -Do you need a ready-to-use PostgreSQL server to try out the examples? - -[source,bash] ----- -docker run -it --rm=true --name quarkus_test -e POSTGRES_USER=quarkus_test -e POSTGRES_PASSWORD=quarkus_test -e POSTGRES_DB=quarkus_test -p 5432:5432 postgres:14.1 ----- -==== - -== Installing - -=== Reactive PostgreSQL Client extension - -First, make sure your project has the `quarkus-reactive-pg-client` extension enabled. -If you are creating a new project, use the following command: - -:create-app-artifact-id: reactive-pg-client-quickstart -:create-app-extensions: resteasy,reactive-pg-client,resteasy-mutiny -include::includes/devtools/create-app.adoc[] - -If you have an already created project, the `reactive-pg-client` extension can be added to an existing Quarkus project with the `add-extension` command: - -:add-extension-extensions: reactive-pg-client -include::includes/devtools/extension-add.adoc[] - -Otherwise, you can manually add the dependency to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-reactive-pg-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-reactive-pg-client") ----- - -=== Mutiny - -Reactive REST endpoints in your application that return Uni or Multi need `Mutiny support for RESTEasy` extension (`io.quarkus:quarkus-resteasy-mutiny`) to work properly: - -:add-extension-extensions: resteasy-mutiny -include::includes/devtools/extension-add.adoc[] - -[TIP] -==== -In this guide, we will use the Mutiny API of the Reactive PostgreSQL Client. -If you are not familiar with Mutiny, check xref:mutiny-primer.adoc[Mutiny - an intuitive reactive programming library]. -==== - -=== JSON Binding - -We will expose `Fruit` instances over HTTP in the JSON format. -Consequently, you also need to add the `quarkus-resteasy-jackson` extension: - -:add-extension-extensions: resteasy-jackson -include::includes/devtools/extension-add.adoc[] - -If you prefer not to use the command line, manually add the dependency to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-resteasy-jackson - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-resteasy-jackson") ----- - -Of course, this is only a requirement for this guide, not any application using the Reactive PostgreSQL Client. - -== Configuring - -The Reactive PostgreSQL Client can be configured with standard Quarkus datasource properties and a reactive URL: - -[source,properties] -.src/main/resources/application.properties ----- -quarkus.datasource.db-kind=postgresql -quarkus.datasource.username=quarkus_test -quarkus.datasource.password=quarkus_test -quarkus.datasource.reactive.url=postgresql://localhost:5432/quarkus_test ----- - -With that you may create your `FruitResource` skeleton and `@Inject` a `io.vertx.mutiny.pgclient.PgPool` instance: - -[source,java] -.src/main/java/org/acme/vertx/FruitResource.java ----- -@Path("fruits") -public class FruitResource { - - @Inject - io.vertx.mutiny.pgclient.PgPool client; -} ----- - -== Database schema and seed data - -Before we implement the REST endpoint and data management code, we need to setup the database schema. -It would also be convenient to have some data inserted up-front. - -For production we would recommend to use something like the xref:flyway.adoc[Flyway database migration tool]. -But for development we can simply drop and create the tables on startup, and then insert a few fruits. - -[source,java] -.src/main/java/org/acme/vertx/FruitResource.java ----- -@Inject -@ConfigProperty(name = "myapp.schema.create", defaultValue = "true") // <1> -boolean schemaCreate; - -void config(@Observes StartupEvent ev) { - if (schemaCreate) { - initdb(); - } -} - -private void initdb() { - // TODO -} ----- - -TIP: You may override the default value of the `myapp.schema.create` property in the `application.properties` file. - -Almost ready! -To initialize the DB in development mode, we will use the client simple `query` method. -It returns a `Uni` and thus can be composed to execute queries sequentially: - -[source,java] ----- -client.query("DROP TABLE IF EXISTS fruits").execute() - .flatMap(r -> client.query("CREATE TABLE fruits (id SERIAL PRIMARY KEY, name TEXT NOT NULL)").execute()) - .flatMap(r -> client.query("INSERT INTO fruits (name) VALUES ('Orange')").execute()) - .flatMap(r -> client.query("INSERT INTO fruits (name) VALUES ('Pear')").execute()) - .flatMap(r -> client.query("INSERT INTO fruits (name) VALUES ('Apple')").execute()) - .await().indefinitely(); ----- - -NOTE: Wondering why we need block until the latest query is completed? -This code is part of a `@PostConstruct` method and Quarkus invokes it synchronously. -As a consequence, returning prematurely could lead to serving requests while the database is not ready yet. - -That's it! -So far we have seen how to configure a pooled client and execute simple queries. -We are now ready to develop the data management code and implement our RESTful endpoint. - -== Using - -=== Query results traversal - -In development mode, the database is set up with a few rows in the `fruits` table. -To retrieve all the data, we will use the `query` method again: - -[source,java] ----- -Uni> rowSet = client.query("SELECT id, name FROM fruits ORDER BY name ASC").execute(); ----- - -When the operation completes, we will get a `RowSet` that has all the rows buffered in memory. -A `RowSet` is an `java.lang.Iterable` and thus can be converted to a `Multi`: - -[source,java] ----- -Multi fruits = rowSet - .onItem().transformToMulti(set -> Multi.createFrom().iterable(set)) - .onItem().transform(Fruit::from); ----- - -The `Fruit#from` method converts a `Row` instance to a `Fruit` instance. -It is extracted as a convenience for the implementation of the other data management methods: - -[source,java] -.src/main/java/org/acme/vertx/Fruit.java ----- -private static Fruit from(Row row) { - return new Fruit(row.getLong("id"), row.getString("name")); -} ----- - -Putting it all together, the `Fruit.findAll` method looks like: - -[source,java] -.src/main/java/org/acme/vertx/Fruit.java ----- -public static Multi findAll(PgPool client) { - return client.query("SELECT id, name FROM fruits ORDER BY name ASC").execute() - .onItem().transformToMulti(set -> Multi.createFrom().iterable(set)) - .onItem().transform(Fruit::from); -} ----- - -And the endpoint to get all fruits from the backend: - -[source,java] -.src/main/java/org/acme/vertx/FruitResource.java ----- -@GET -public Multi get() { - return Fruit.findAll(client); -} ----- - -Now start Quarkus in dev mode with: - -include::includes/devtools/dev.adoc[] - -Lastly, open your browser and navigate to http://localhost:8080/fruits, you should see: - -[source,json] ----- -[{"id":3,"name":"Apple"},{"id":1,"name":"Orange"},{"id":2,"name":"Pear"}] ----- - -=== Prepared queries - -The Reactive PostgreSQL Client can also prepare queries and take parameters that are replaced in the SQL statement at execution time: - -[source,java] ----- -client.preparedQuery("SELECT id, name FROM fruits WHERE id = $1").execute(Tuple.of(id)) ----- - -TIP: For PostgreSQL, the SQL string can refer to parameters by position, using `$1`, `$2`, ...etc. -Please refer to the <> section for other databases. - -Similar to the simple `query` method, `preparedQuery` returns an instance of `PreparedQuery>`. -Equipped with this tooling, we are able to safely use an `id` provided by the user to get the details of a particular fruit: - -[source,java] -.src/main/java/org/acme/vertx/Fruit.java ----- -public static Uni findById(PgPool client, Long id) { - return client.preparedQuery("SELECT id, name FROM fruits WHERE id = $1").execute(Tuple.of(id)) // <1> - .onItem().transform(RowSet::iterator) // <2> - .onItem().transform(iterator -> iterator.hasNext() ? from(iterator.next()) : null); // <3> -} ----- -<1> Create a `Tuple` to hold the prepared query parameters. -<2> Get an `Iterator` for the `RowSet` result. -<3> Create a `Fruit` instance from the `Row` if an entity was found. - -And in the JAX-RS resource: - -[source,java] -.src/main/java/org/acme/vertx/FruitResource.java ----- -@GET -@Path("{id}") -public Uni getSingle(@PathParam Long id) { - return Fruit.findById(client, id) - .onItem().transform(fruit -> fruit != null ? Response.ok(fruit) : Response.status(Status.NOT_FOUND)) // <1> - .onItem().transform(ResponseBuilder::build); // <2> -} ----- -<1> Prepare a JAX-RS response with either the `Fruit` instance if found or the `404` status code. -<2> Build and send the response. - -The same logic applies when saving a `Fruit`: - -[source,java] -.src/main/java/org/acme/vertx/Fruit.java ----- -public Uni save(PgPool client) { - return client.preparedQuery("INSERT INTO fruits (name) VALUES ($1) RETURNING id").execute(Tuple.of(name)) - .onItem().transform(pgRowSet -> pgRowSet.iterator().next().getLong("id")); -} ----- - -And in the web resource we handle the `POST` request: - -[source,java] -.src/main/java/org/acme/vertx/FruitResource.java ----- -@POST -public Uni create(Fruit fruit) { - return fruit.save(client) - .onItem().transform(id -> URI.create("/fruits/" + id)) - .onItem().transform(uri -> Response.created(uri).build()); -} ----- - -=== Result metadata - -A `RowSet` does not only hold your data in memory, it also gives you some information about the data itself, such as: - -* the number of rows affected by the query (inserted/deleted/updated/retrieved depending on the query type), -* the column names. - -Let's use this to support removal of fruits in the database: - -[source,java] -.src/main/java/org/acme/vertx/Fruit.java ----- -public static Uni delete(PgPool client, Long id) { - return client.preparedQuery("DELETE FROM fruits WHERE id = $1").execute(Tuple.of(id)) - .onItem().transform(pgRowSet -> pgRowSet.rowCount() == 1); // <1> -} ----- -<1> Inspect metadata to determine if a fruit has been actually deleted. - -And to handle the HTTP `DELETE` method in the web resource: - -[source,java] -.src/main/java/org/acme/vertx/FruitResource.java ----- -@DELETE -@Path("{id}") -public Uni delete(@PathParam Long id) { - return Fruit.delete(client, id) - .onItem().transform(deleted -> deleted ? Status.NO_CONTENT : Status.NOT_FOUND) - .onItem().transform(status -> Response.status(status).build()); -} ----- - -With `GET`, `POST` and `DELETE` methods implemented, we may now create a minimal web page to try the RESTful application out. -We will use https://jquery.com/[jQuery] to simplify interactions with the backend: - -[source,html] ----- - - - - - Reactive PostgreSQL Client - Quarkus - - - - - -

    Fruits API Testing

    - -

    All fruits

    -
    - -

    Create Fruit

    - - -
    - - - ----- - -In the Javascript code, we need a function to refresh the list of fruits when: - -* the page is loaded, or -* a fruit is added, or -* a fruit is deleted. - -[source,javascript] ----- -function refresh() { - $.get('/fruits', function (fruits) { - var list = ''; - (fruits || []).forEach(function (fruit) { // <1> - list = list - + '' - + '' + fruit.id + '' - + '' + fruit.name + '' - + 'Delete' - + '' - }); - if (list.length > 0) { - list = '' - + '' - + list - + '
    IdName
    '; - } else { - list = "No fruits in database" - } - $('#all-fruits').html(list); - }); -} - -function deleteFruit(id) { - $.ajax('/fruits/' + id, {method: 'DELETE'}).then(refresh); -} - -$(document).ready(function () { - - $('#create-fruit-button').click(function () { - var fruitName = $('#fruit-name').val(); - $.post({ - url: '/fruits', - contentType: 'application/json', - data: JSON.stringify({name: fruitName}) - }).then(refresh); - }); - - refresh(); -}); ----- -<1> The `fruits` parameter is not defined when the database is empty. - -All done! -Navigate to http://localhost:8080/fruits.html and read/create/delete some fruits. - -[[reactive-sql-clients-details]] -== Database Clients details - -[cols="10,40,40,10"] -|=== -|Database |Extension name |Pool class name |Placeholders - -|IBM Db2 -|`quarkus-reactive-db2-client` -|`io.vertx.mutiny.db2client.DB2Pool` -|`?` - -|MariaDB/MySQL -|`quarkus-reactive-mysql-client` -|`io.vertx.mutiny.mysqlclient.MySQLPool` -|`?` - -|Microsoft SQL Server -|`quarkus-reactive-mssql-client` -|`io.vertx.mutiny.mssqlclient.MSSQLPool` -|`@p1`, `@p2`, etc. - -|Oracle -|`quarkus-reactive-oracle-client` -|`io.vertx.mutiny.oracleclient.OraclePool` -|`?` - -|PostgreSQL -|`quarkus-reactive-pg-client` -|`io.vertx.mutiny.pgclient.PgPool` -|`$1`, `$2`, etc. -|=== - -== Transactions - -The reactive SQL clients support transactions. -A transaction is started with `io.vertx.mutiny.sqlclient.SqlConnection#begin` and terminated with either `io.vertx.mutiny.sqlclient.Transaction#commit` or `io.vertx.mutiny.sqlclient.Transaction#rollback`. -All these operations are asynchronous: - -* `connection.begin()` returns a `Uni` -* `transaction.commit()` and `transaction.rollback()` return `Uni` - -Managing transactions in the reactive programming world can be cumbersome. -Instead of writing repetitive and complex (thus error-prone!) code, you can use the `io.vertx.mutiny.sqlclient.Pool#withTransaction` helper method. - -The following snippet shows how to run 2 insertions in the same transaction: - -[source, java] ----- -public static Uni insertTwoFruits(PgPool client, Fruit fruit1, Fruit fruit2) { - return client.withTransaction(conn -> { - Uni> insertOne = conn.preparedQuery("INSERT INTO fruits (name) VALUES ($1) RETURNING id") - .execute(Tuple.of(fruit1.name)); - Uni> insertTwo = conn.preparedQuery("INSERT INTO fruits (name) VALUES ($1) RETURNING id") - .execute(Tuple.of(fruit2.name)); - - return Uni.combine().all().unis(insertOne, insertTwo) - // Ignore the results (the two ids) - .discardItems(); - }); -} ----- - -In this example, the transaction is automatically committed on success or rolled back on failure. - -You can also create dependent actions as follows: - -[source, java] ----- -return client.withTransaction(conn -> conn - - .preparedQuery("INSERT INTO person (firstname,lastname) VALUES ($1,$2) RETURNING id") - .execute(Tuple.of(person.getFirstName(), person.getLastName())) - - .onItem().transformToUni(id -> conn.preparedQuery("INSERT INTO addr (person_id,addrline1) VALUES ($1,$2)") - .execute(Tuple.of(id.iterator().next().getLong("id"), person.getLastName()))) - - .onItem().ignore().andContinueWithNull()); ----- - -== Working with batch query results - -When executing batch queries, reactive SQL clients return a `RowSet` that corresponds to the results of the first element in the batch. -To get the results of the following batch elements, you must invoke the `RowSet#next` method until it returns `null`. - -Let's say you want to update some rows and compute the total number of affected rows. -You must inspect each `RowSet`: - -[source, java] ----- -PreparedQuery> preparedQuery = client.preparedQuery("UPDATE fruits SET name = $1 WHERE id = $2"); - -Uni> rowSet = preparedQuery.executeBatch(Arrays.asList( - Tuple.of("Orange", 1), - Tuple.of("Pear", 2), - Tuple.of("Apple", 3))); - -Uni totalAffected = rowSet.onItem().transform(res -> { - int total = 0; - do { - total += res.rowCount(); // <1> - } while ((res = res.next()) != null); // <2> - return total; -}); ----- -<1> Compute the sum of `RowSet#rowCount`. -<2> Invoke `RowSet#next` until it returns `null`. - -As another example, if you want to load all the rows you just inserted, you must concatenate the contents of each `RowSet`: - -[source, java] ----- -PreparedQuery> preparedQuery = client.preparedQuery("INSERT INTO fruits (name) VALUES ($1) RETURNING *"); - -Uni> rowSet = preparedQuery.executeBatch(Arrays.asList( - Tuple.of("Orange"), - Tuple.of("Pear"), - Tuple.of("Apple"))); - -// Generate a Multi of RowSet items -Multi> rowSets = rowSet.onItem().transformToMulti(res -> { - return Multi.createFrom().generator(() -> res, (rs, emitter) -> { - RowSet next = null; - if (rs != null) { - emitter.emit(rs); - next = rs.next(); - } - if (next == null) { - emitter.complete(); - } - return next; - }); -}); - -// Transform each RowSet into Multi of Row items and Concatenate -Multi rows = rowSets.onItem().transformToMultiAndConcatenate(Multi.createFrom()::iterable); ----- - -== Multiple Datasources - -The reactive SQL clients support defining several datasources. - -A typical configuration with several datasources would look like: - -[source,properties] ----- -quarkus.datasource.db-kind=postgresql <1> -quarkus.datasource.username=user-default -quarkus.datasource.password=password-default -quarkus.datasource.reactive.url=postgresql://localhost:5432/default - -quarkus.datasource."additional1".db-kind=postgresql <2> -quarkus.datasource."additional1".username=user-additional1 -quarkus.datasource."additional1".password=password-additional1 -quarkus.datasource."additional1".reactive.url=postgresql://localhost:5432/additional1 - -quarkus.datasource."additional2".db-kind=mysql <3> -quarkus.datasource."additional2".username=user-additional2 -quarkus.datasource."additional2".password=password-additional2 -quarkus.datasource."additional2".reactive.url=mysql://localhost:3306/additional2 ----- -<1> The default datasource - using PostgreSQL. -<2> A named datasource called `additional1` - using PostgreSQL. -<3> A named datasource called `additional2` - using MySQL. - -You can then inject the clients as follows: - -[source,java] ----- -@Inject <1> -PgPool defaultClient; - -@Inject -@ReactiveDataSource("additional1") <2> -PgPool additional1Client; - -@Inject -@ReactiveDataSource("additional2") -MySQLPool additional2Client; ----- -<1> Injecting the client for the default datasource does not require anything special. -<2> For a named datasource, you use the `@ReactiveDataSource` CDI qualifier with the datasource name as its value. - -== UNIX Domain Socket connections - -The PostgreSQL and MariaDB/MySQL clients can be configured to connect to the server through a UNIX domain socket. - -First make sure that xref:vertx-reference.adoc#native-transport[native transport support] is enabled. - -Then configure the database connection url. -This step depends on the database type. - -=== PostgreSQL - -PostgresSQL domain socket paths have the following form: `/.s.PGSQL.` - -The database connection url must be configured so that: - -* the `host` is the `directory` in the socket path -* the `port` is the `port` in the socket path - -Consider the following socket path: `/var/run/postgresql/.s.PGSQL.5432`. - -In `application.properties` add: - -[source,properties] ----- -quarkus.datasource.reactive.url=postgresql://:5432/quarkus_test?host=/var/run/postgresql ----- - -=== MariaDB/MySQL - -The database connection url must be configured so that the `host` is the socket path. - -Consider the following socket path: `/var/run/mysqld/mysqld.sock`. - -In `application.properties` add: - -[source,properties] ----- -quarkus.datasource.reactive.url=mysql:///quarkus_test?host=/var/run/mysqld/mysqld.sock ----- - -== Pooled Connection `idle-timeout` - -Reactive datasources can be configured with an `idle-timeout` (in milliseconds). -It is the maximum time a connection remains unused in the pool before it is closed. - -NOTE: The `idle-timeout` is disabled by default. - -For example, you could expire idle connections after 60 minutes: - -[source,properties] ----- -quarkus.datasource.reactive.idle-timeout=PT60M ----- - -== Configuration Reference - -=== Common Datasource - -include::{generated-dir}/config/quarkus-datasource.adoc[opts=optional, leveloffset=+1] - -=== Reactive Datasource - -include::{generated-dir}/config/quarkus-reactive-datasource.adoc[opts=optional, leveloffset=+1] - -=== IBM Db2 - -include::{generated-dir}/config/quarkus-reactive-db2-client.adoc[opts=optional, leveloffset=+1] - -=== MariaDB/MySQL - -include::{generated-dir}/config/quarkus-reactive-mysql-client.adoc[opts=optional, leveloffset=+1] - -=== Microsoft SQL Server - -include::{generated-dir}/config/quarkus-reactive-mssql-client.adoc[opts=optional, leveloffset=+1] - -=== Oracle - -include::{generated-dir}/config/quarkus-reactive-oracle-client.adoc[opts=optional, leveloffset=+1] - -=== PostgreSQL - -include::{generated-dir}/config/quarkus-reactive-pg-client.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/reaugmentation.adoc b/_versions/2.7/guides/reaugmentation.adoc deleted file mode 100644 index 001f11bac68..00000000000 --- a/_versions/2.7/guides/reaugmentation.adoc +++ /dev/null @@ -1,71 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Re-augment a Quarkus Application - -include::./attributes.adoc[] - -== What is augmentation? - -Quarkus application configuration may include two types of configuration options: - -- Build time options, handled during the application build time; -- Runtime options, that may be adjusted after the application has been built but before it has been launched. - -The augmentation is a phase of an application build process during which the byte code of the application is optimized according to the application build time configuration. -Initialization steps that used to happen when an EAR file was deployed on a Jakarta EE server such as parsing static configuration, creating proxy instances, etc. now happen at augmentation time. -CDI beans added after augmentation won't work (because of the missing proxy classes) as well as build time properties (e.g. `quarkus.datasource.db-kind`) changed after augmentation will be ignored. -Build time properties are marked with a lock icon (icon:lock[]) in the xref:all-config.adoc[list of all configuration options]. -It doesn't matter if you use profiles or any other way to override the properties. -The build time properties that were active during augmentation are baked into the build. - -> Re-augmentation is the process of recreating the augmentation output for a different build time configuration - -== When is re-augmentation useful? - -Re-augmentation is useful in case the users of your application want to be able to change some of its build time properties. -For instance changing the database driver or switching features on or off (e.g. xref:opentracing.adoc[OpenTracing] or link:{config-consul-guide}[Config Consul]). -If there are only two or three build time properties that depend on the user environment, you may consider providing alternative builds of the application. However, in case there are more such properties you may prefer shipping a mutable jar instead and let your users re-augment the application for their environment. -Please notice that you won't be able to use native images with the package type `mutable-jar`. -Think of the consequences and what other options you have! - -It is not a good idea to do re-augmentation at runtime unless you miss the good old times when starting up a server took several minutes and you could enjoy a cup of coffee until it was ready. - -== How to re-augment a Quarkus application - -In order to run the augmentation steps you need the deployment JARs of the used Quarkus extensions. -These JARs are only present in the `mutable-jar` distribution. This means that you need to build your application with `quarkus.package.type=mutable-jar`. -The `mutable-jar` distribution is the same as the `fast-jar` distribution, except for the additional folder `quarkus-app/lib/deployment` -which contains the deployment JARs and their dependencies (and some class-loader configuration). - -TIP: By default, you'll get a warning if a build time property has been changed at runtime. -You may set the `quarkus.configuration.build-time-mismatch-at-runtime=fail` property to make sure your application does not startup if there is a mismatch. -However, as of this writing changing `quarkus.datasource.db-kind` at runtime did neither fail nor produce a warning but was silently ignored. - -=== 1. Build your application as `mutable-jar` - -[source,bash] ----- -mvn clean install -Dquarkus.package.type=mutable-jar ----- - -=== 2. Re-augment your application with a different build time configuration - -In order to re-augment your Quarkus application with different build time properties, start the application with the desired configuration plus the `quarkus.launch.rebuild` system property set to `true`. - -The following example changes the `quarkus.datasource.db-kind` to `mysql`. For this to work the `mysql-extension` must have been included in the build. Augmentation can only use extensions that were present during compile time. - -[source,bash] ----- -java -jar -Dquarkus.launch.rebuild=true -Dquarkus.datasource.db-kind=mysql target/quarkus-app/quarkus-run.jar ----- - -NOTE: It does not matter if you use system properties, environment variables, profiles, or an external config file. The current -configuration will be used for augmentation (the content of `quarkus-app/quarkus` will be replaced with the new augmentation output). -The command line above will not launch the application. Quarkus will exit immediately after the application has been re-augmented. - -=== 3. Optional: Delete the deployments folder - -You may delete the directory `quarkus-app/lib/deployment` to save some space in your ZIP distribution or Docker image (remember to use a multistage Docker build to avoid unnecessary layers). After deleting the `deployment` directory, it is obviously not possible anymore to re-augment the application. diff --git a/_versions/2.7/guides/redis-dev-services.adoc b/_versions/2.7/guides/redis-dev-services.adoc deleted file mode 100644 index ff0bd7ae37c..00000000000 --- a/_versions/2.7/guides/redis-dev-services.adoc +++ /dev/null @@ -1,38 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Dev Services for Redis - -:extension-status: preview -include::./attributes.adoc[] - -Quarkus supports a feature called Dev Services that allows you to create various datasources without any config. -What that means practically, is that if you have docker running and have not configured `quarkus.redis.hosts`, -Quarkus will automatically start a Redis container when running tests or dev-mode, and automatically configure the connection. - -Available properties to customize the Redis DevService. - -include::{generated-dir}/config/quarkus-redis-client-config-group-dev-services-config.adoc[opts=optional, leveloffset=+1] - -When running the production version of the application, the Redis connection need to be configured as normal, -so if you want to include a production database config in your `application.properties` and continue to use Dev Services -we recommend that you use the `%prod.` profile to define your Redis settings. - -Dev Services for Redis relies on Docker to start the server. -If your environment does not support Docker, you will need to start the server manually, or connect to an already running server. - -== Shared server - -Most of the time you need to share the server between applications. -Dev Services for Redis implements a _service discovery_ mechanism for your multiple Quarkus applications running in _dev_ mode to share a single server. - -NOTE: Dev Services for Redis starts the container with the `quarkus-dev-service-redis` label which is used to identify the container. - -If you need multiple (shared) servers, you can configure the `quarkus.redis.devservices.service-name` attribute and indicate the server name. -It looks for a container with the same value, or starts a new one if none can be found. -The default service name is `redis`. - -Sharing is enabled by default in dev mode, but disabled in test mode. -You can disable the sharing with `quarkus.redis.devservices.shared=false`. diff --git a/_versions/2.7/guides/redis-reference.adoc b/_versions/2.7/guides/redis-reference.adoc deleted file mode 100644 index 19415fd9753..00000000000 --- a/_versions/2.7/guides/redis-reference.adoc +++ /dev/null @@ -1,101 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Redis Reference Guide - -:extension-status: preview -include::./attributes.adoc[] -:numbered: -:sectnums: - -[[custom_redis_commands]] -== How to use custom Redis Commands - -As the list of commands which are supported out-of-box by both https://github.com/quarkusio/quarkus/blob/main/extensions/redis-client/runtime/src/main/java/io/quarkus/redis/client/RedisClient.java[`RedisClient`] and https://github.com/quarkusio/quarkus/blob/main/extensions/redis-client/runtime/src/main/java/io/quarkus/redis/client/reactive/ReactiveRedisClient.java[`ReactiveRedisClient`] depends on what is available in https://github.com/vert-x3/vertx-redis-client[`vertx-redis-client`], then there might be case when you need a command which is not (yet) available via https://github.com/vert-x3/vertx-redis-client[`vertx-redis-client`]. - -In such case (if you don't want to wait for the new command to be supported in https://github.com/vert-x3/vertx-redis-client[`vertx-redis-client`]), you can implement it in either https://github.com/quarkusio/quarkus/blob/main/extensions/redis-client/runtime/src/main/java/io/quarkus/redis/client/RedisClient.java[`RedisClient`] or https://github.com/quarkusio/quarkus/blob/main/extensions/redis-client/runtime/src/main/java/io/quarkus/redis/client/reactive/ReactiveRedisClient.java[`ReactiveRedisClient`]. -In order to do so, you will need: - -- Generate a new `Command` based on the nodejs code available in https://github.com/vert-x3/vertx-redis-client[`vertx-redis-client`] repository: - -If you don't have a Redis service running locally, you can run Redis in a Docker container: -[source,shell script] ----- -docker run --name redis -p 7006:6379 -d redis ----- - -Next, while being in https://github.com/vert-x3/vertx-redis-client[`vertx-redis-client`] root folder execute: - -[source,shell script] ----- -cd tools -npm i -npm start ----- - -The above sequence of commands should update the https://github.com/vert-x3/vertx-redis-client/blob/master/src/main/java/io/vertx/redis/client/Command.java[`Command.java`] file, so it includes all the possible commands supported by a particular Redis version. - -[source,java] ----- -Command ZUNION = Command.create("zunion", -3, 0, 0, 0, false, true, true, false); ----- - -This definition is very important as we will have to use it in the service. -Once we have this `Command` we can start to update the redis-client extension by: - -- Updating the https://github.com/quarkusio/quarkus/blob/main/extensions/redis-client/runtime/src/main/java/io/quarkus/redis/client/RedisClient.java[`RedisClient`] interface, i.e.: - -[source,java] ----- -Response zunion(List args); ----- - -- Updating the https://github.com/quarkusio/quarkus/blob/main/extensions/redis-client/runtime/src/main/java/io/quarkus/redis/client/runtime/RedisClientImpl.java[`RedisClientImpl`], i.e.: - -[source,java] ----- -@Override -public Response zunion(List args) { - final io.vertx.mutiny.redis.client.Command ZUNION = Command.create("zunion", -3, 0, 0, 0, false, true, true, false); - final io.vertx.mutiny.redis.client.Request requestWithArgs = args.stream().reduce( - io.vertx.mutiny.redis.client.Request.cmd(ZUNION), - (request, s) -> request.arg(s), - (request, request2) -> request); - - return await(mutinyRedis.send(requestWithArgs)); -} ----- - -- Updating the https://github.com/quarkusio/quarkus/blob/main/extensions/redis-client/runtime/src/main/java/io/quarkus/redis/client/reactive/ReactiveRedisClient.java[`ReactiveRedisClient`] interface, i.e.: - -[source,java] ----- -Uni zunion(List args); - -Response zunionAndAwait(List args); ----- - -- Updating the https://github.com/quarkusio/quarkus/blob/main/extensions/redis-client/runtime/src/main/java/io/quarkus/redis/client/runtime/ReactiveRedisClientImpl.java[`ReactiveRedisClientImpl`], i.e.: - -[source,java] ----- -@Override -public Uni zunion(List args) { - final Command ZUNION = Command.create("zunion", -3, 0, 0, 0, false, true, true, false); - final io.vertx.mutiny.redis.client.Request requestWithArgs = args.stream().reduce( - io.vertx.mutiny.redis.client.Request.cmd(ZUNION), - (request, s) -> request.arg(s), - (request, request2) -> request); - - return mutinyRedis.send(requestWithArgs); -} - -@Override -public Response zunionAndAwait(List args) { - return zunion(args).await().indefinitely(); -} ----- - -- Please note that it's using the `MutinyRedis` class which does asynchronous calls to Redis. diff --git a/_versions/2.7/guides/redis.adoc b/_versions/2.7/guides/redis.adoc deleted file mode 100644 index 119ecb8deb8..00000000000 --- a/_versions/2.7/guides/redis.adoc +++ /dev/null @@ -1,629 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using the Redis Client -:extension-status: preview -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can connect to a Redis server using the Redis Client extension. - -include::./status-include.adoc[] - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* A running Redis server, or Docker Compose to start one - -== Architecture - -In this guide, we are going to expose a simple Rest API to increment numbers by using the https://redis.io/commands/incrby[`INCRBY`] command. -Along the way, we'll see how to use other Redis commands like `GET`, `SET`, `DEL` and `KEYS`. - -We'll be using the Quarkus Redis Client extension to connect to our Redis Server. The extension is implemented on top of the https://vertx.io/docs/vertx-redis-client/java/[Vert.x Redis Client], -providing an asynchronous and non-blocking way to connect to Redis. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `redis-quickstart` {quickstarts-tree-url}/redis-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: redis-quickstart -:create-app-extensions: redis-client,resteasy-jackson,resteasy-mutiny -include::includes/devtools/create-app.adoc[] - -This command generates a new project, importing the Redis extension. - - -If you already have your Quarkus project configured, you can add the `redis-client` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: redis-client -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-redis-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-redis-client") ----- - -== Starting the Redis server - -Then, we need to start a Redis instance (if you do not have one already) using the following command: - -[source, bash] ----- -docker run --ulimit memlock=-1:-1 -it --rm=true --memory-swappiness=0 --name redis_quarkus_test -p 6379:6379 redis:5.0.6 ----- - -[NOTE] -==== -If you use xref:redis-dev-services.adoc[Dev Services for Redis], launching the container manually is not necessary! -==== - -== Configuring Redis properties - -Once we have the Redis server running, we need to configure the Redis connection properties. -This is done in the `application.properties` configuration file. Edit it to the following content: - -[source,properties] ----- -quarkus.redis.hosts=redis://localhost:6379 <1> ----- - -<1> Configure Redis hosts to connect to. Here we connect to the Redis server we started in the previous section - -[NOTE] -==== -This is needed if you are not using xref:redis-dev-services.adoc[Dev Services for Redis] -==== - - -== Creating the Increment POJO - -We are going to model our increments using the `Increment` POJO. -Create the `src/main/java/org/acme/redis/Increment.java` file, with the following content: - -[source, java] ----- -package org.acme.redis; - -public class Increment { - public String key; // <1> - public int value; // <2> - - public Increment(String key, int value) { - this.key = key; - this.value = value; - } - - public Increment() { - } -} ----- -<1> The key that will be used as the Redis key -<2> The value held by the Redis key - - -== Creating the Increment Service - -We are going to create an `IncrementService` class which will play the role of a Redis client. -With this class, we'll be able to perform the `SET`, `GET` , `DELET`, `KEYS` and `INCRBY` Redis commands. - -Create the `src/main/java/org/acme/redis/IncrementService.java` file, with the following content: - -[source, java] ----- -package org.acme.redis; - -import io.quarkus.redis.client.RedisClient; -import io.quarkus.redis.client.reactive.ReactiveRedisClient; -import io.smallrye.mutiny.Uni; - -import io.vertx.mutiny.redis.client.Response; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import javax.inject.Inject; -import javax.inject.Singleton; - -@Singleton -class IncrementService { - - @Inject - RedisClient redisClient; // <1> - - @Inject - ReactiveRedisClient reactiveRedisClient; // <2> - - Uni del(String key) { - return reactiveRedisClient.del(Arrays.asList(key)) - .map(response -> null); - } - - String get(String key) { - return redisClient.get(key).toString(); - } - - void set(String key, Integer value) { - redisClient.set(Arrays.asList(key, value.toString())); - } - - void increment(String key, Integer incrementBy) { - redisClient.incrby(key, incrementBy.toString()); - } - - Uni> keys() { - return reactiveRedisClient - .keys("*") - .map(response -> { - List result = new ArrayList<>(); - for (Response r : response) { - result.add(r.toString()); - } - return result; - }); - } -} ----- -<1> Inject the Redis synchronous client -<2> Inject the Reactive Redis client - -== Creating the Increment Resource - -Create the `src/main/java/org/acme/redis/IncrementResource.java` file, with the following content: - -[source, java] ----- -package org.acme.redis; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.PathParam; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.POST; -import javax.ws.rs.DELETE; -import java.util.List; - -import io.smallrye.mutiny.Uni; - -@Path("/increments") -public class IncrementResource { - - @Inject - IncrementService service; - - @GET - public Uni> keys() { - return service.keys(); - } - - @POST - public Increment create(Increment increment) { - service.set(increment.key, increment.value); - return increment; - } - - @GET - @Path("/{key}") - public Increment get(@PathParam("key") String key) { - return new Increment(key, Integer.valueOf(service.get(key))); - } - - @PUT - @Path("/{key}") - public void increment(@PathParam("key") String key, Integer value) { - service.increment(key, value); - } - - @DELETE - @Path("/{key}") - public Uni delete(@PathParam("key") String key) { - return service.del(key); - } -} ----- - -== Creating the test class - -Create the `src/test/java/org/acme/redis/IncrementResourceTest.java` file with the following content: - -[source, java] ----- -package org.acme.redis; - -import static org.hamcrest.Matchers.is; - -import org.junit.jupiter.api.Test; - -import io.quarkus.test.junit.QuarkusTest; - -import static io.restassured.RestAssured.given; - -import io.restassured.http.ContentType; - -@QuarkusTest -public class IncrementResourceTest { - - @Test - public void testRedisOperations() { - // verify that we have nothing - given() - .accept(ContentType.JSON) - .when() - .get("/increments") - .then() - .statusCode(200) - .body("size()", is(0)); - - // create a first increment key with an initial value of 0 - given() - .contentType(ContentType.JSON) - .accept(ContentType.JSON) - .body("{\"key\":\"first-key\",\"value\":0}") - .when() - .post("/increments") - .then() - .statusCode(200) - .body("key", is("first-key")) - .body("value", is(0)); - - // create a second increment key with an initial value of 10 - given() - .contentType(ContentType.JSON) - .accept(ContentType.JSON) - .body("{\"key\":\"second-key\",\"value\":10}") - .when() - .post("/increments") - .then() - .statusCode(200) - .body("key", is("second-key")) - .body("value", is(10)); - - // increment first key by 1 - given() - .contentType(ContentType.JSON) - .body("1") - .when() - .put("/increments/first-key") - .then() - .statusCode(204); - - // verify that key has been incremented - given() - .accept(ContentType.JSON) - .when() - .get("/increments/first-key") - .then() - .statusCode(200) - .body("key", is("first-key")) - .body("value", is(1)); - - // increment second key by 1000 - given() - .contentType(ContentType.JSON) - .body("1000") - .when() - .put("/increments/second-key") - .then() - .statusCode(204); - - // verify that key has been incremented - given() - .accept(ContentType.JSON) - .when() - .get("/increments/second-key") - .then() - .statusCode(200) - .body("key", is("second-key")) - .body("value", is(1010)); - - // verify that we have two keys in registered - given() - .accept(ContentType.JSON) - .when() - .get("/increments") - .then() - .statusCode(200) - .body("size()", is(2)); - - // delete first key - given() - .accept(ContentType.JSON) - .when() - .delete("/increments/first-key") - .then() - .statusCode(204); - - // verify that we have one key left after deletion - given() - .accept(ContentType.JSON) - .when() - .get("/increments") - .then() - .statusCode(200) - .body("size()", is(1)); - - // delete second key - given() - .accept(ContentType.JSON) - .when() - .delete("/increments/second-key") - .then() - .statusCode(204); - - // verify that there is no key left - given() - .accept(ContentType.JSON) - .when() - .get("/increments") - .then() - .statusCode(200) - .body("size()", is(0)); - } -} ----- - -== Get it running - -If you followed the instructions, you should have the Redis server running. -Then, you just need to run the application using: - -include::includes/devtools/dev.adoc[] - -Open another terminal and run the `curl http://localhost:8080/increments` command. - -== Interacting with the application -As we have seen above, the API exposes five Rest endpoints. -In this section we are going to see how to initialise an increment, see the list of current increments, -incrementing a value given its key, retrieving the current value of an increment, and finally deleting -a key. - -=== Creating a new increment - -[source,bash] ----- -curl -X POST -H "Content-Type: application/json" -d '{"key":"first","value":10}' http://localhost:8080/increments <1> ----- -<1> We create the first increment, with the key `first` and an initial value of `10`. - -Running the above command should return the result below: - -[source, json] ------ -{ - "key": "first", - "value": 10 -} ------ - -=== See current increments keys - -To see the list of current increments keys, run the following command: - -[source,bash] ----- -curl http://localhost:8080/increments ----- - -The above command should return `["first"]` indicating that we have only one increment thus far. - -=== Retrieve a new increment - -To retrieve an increment using its key, we will have to run the below command: - -[source,bash] ----- -curl http://localhost:8080/increments/first <1> ----- -<1> Running this command, should return the following result: - -[source, json] ----- -{ - "key": "first", - "value": 10 -} ----- - -=== Increment a value given its key - -To increment a value, run the following command: - -[source,bash] ----- -curl -X PUT -H "Content-Type: application/json" -d '27' http://localhost:8080/increments/first <1> ----- -<1> Increment the `first` value by 27. - -Now, running the command `curl http://localhost:8080/increments/first` should return the following result: - -[source, json] ----- -{ - "key": "first", - "value": 37 <1> -} ----- -<1> We see that the value of the `first` key is now `37` which is exactly the result of `10 + 27`, quick maths. - -=== Deleting a key - -Use the command below, to delete an increment given its key. - -[source,bash] ----- -curl -X DELETE http://localhost:8080/increments/first <1> ----- -<1> Delete the `first` increment. - -Now, running the command `curl http://localhost:8080/increments` should return an empty list `[]` - -== Packaging and running in JVM mode - -You can run the application as a conventional jar file. - -First, we will need to package it: - -include::includes/devtools/build.adoc[] - -NOTE: This command will start a Redis instance to execute the tests. Thus your Redis containers need to be stopped. - -Then run it: - -[source,bash] ----- -java -jar target/quarkus-app/quarkus-run.jar ----- - -== Running Native - -You can also create a native executable from this application without making any -source code changes. A native executable removes the dependency on the JVM: -everything needed to run the application on the target platform is included in -the executable, allowing the application to run with minimal resource overhead. - -Compiling a native executable takes a bit longer, as GraalVM performs additional -steps to remove unnecessary codepaths. Use the `native` profile to compile a -native executable: - -include::includes/devtools/build-native.adoc[] - -Once the build is finished, you can run the executable with: - -[source,bash] ----- -./target/redis-quickstart-1.0.0-SNAPSHOT-runner ----- - -== Connection Health Check - -If you are using the `quarkus-smallrye-health` extension, `quarkus-vertx-redis` will automatically add a readiness health check -to validate the connection to the Redis server. - -So when you access the `/q/health/ready` endpoint of your application you will have information about the connection validation status. - -This behavior can be disabled by setting the `quarkus.redis.health.enabled` property to `false` in your `application.properties`. - -[[multiple-clients-configuration]] -== Multiple Redis Clients - -The Redis extension allows you to configure multiple clients. -Using several clients works the same way as having a single client. - -[source,properties] ----- -quarkus.redis.hosts=redis://localhost:6379 -quarkus.redis.second.hosts=redis://localhost:6379 ----- - -Notice there's an extra bit in the key (the `second` segment). -The syntax is as follows: `quarkus.redis.[optional name.][redis configuration property]`. -If the name is omitted, it configures the default client. - -== Named Redis Client Injection - -When using multiple clients, you can select the client to inject using the `io.quarkus.redis.client.RedisClientName` qualifier. -Using the above properties to configure three different clients, you can also inject each one as follows: - -[source,java,indent=0] ----- -@Inject -RedisClient defaultRedisClient; - -@Inject -@RedisClientName("second") -RedisClient redisClient2; - -@Inject -@RedisClientName("second") -ReactiveRedisClient reactiveClient2; ----- - -== Providing Redis Hosts Programmatically - -The `RedisHostsProvider` programmatically provides redis hosts. This allows for configuration of properties like redis connection password coming from other sources. - -[NOTE] -==== -This is useful as it removes the need to store sensitive data in application.properties. -==== - -[source,java,indent=0] ----- -@ApplicationScoped -@Named("hosts-provider") // the name of the host provider -public class ExampleRedisHostProvider implements RedisHostsProvider { - @Override - public Set getHosts() { - // do stuff to get the host - String host = "redis://localhost:6379/3" - return Collections.singleton(URI.create(host)); - } -} ----- - -The host provider can be used to configure the redis client like shown below -[source,properties,indent=0] ----- -quarkus.redis.hosts-provider-name=hosts-provider ----- - -== Creating Clients Programmatically - -The `RedisClient` and `ReactiveRedisClient` provide factory methods to create clients programmatically. -The client to be created are configured using the usual <>. - -[NOTE] -==== -This is useful to create a client dynamically in a non-CDI bean e.g a xref:hibernate-orm-panache.adoc[Panache entity]. -Or to create a different client when running in pub/sub mode. This mode requires two different connections -because once a connection invokes a subscriber mode then it cannot be used for running other commands -than the command to leave that mode. -==== - -The below code snippet shows how we can create dynamic clients using the configurations in <>. -[source,java,indent=0] ----- -// creating default redis client -RedisClient defaultRedisClient = RedisClient.createClient(); - -// creating named redis client whose configuration name is "second" -RedisClient namedRedisClient = RedisClient.createClient("second"); - -// creating a default reactive redis client -ReactiveRedisClient defaultReactiveRedisClient = ReactiveRedisClient.createClient(); - -// creating a named reactive redis client whose configuration name is "second" -ReactiveRedisClient namedReactiveRedisClient = ReactiveRedisClient.createClient("second"); ----- - -Please see also <>. - -[[config-reference]] -== Configuration Reference - -include::{generated-dir}/config/quarkus-redis-client.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/rest-client-multipart.adoc b/_versions/2.7/guides/rest-client-multipart.adoc deleted file mode 100644 index a6319e784d9..00000000000 --- a/_versions/2.7/guides/rest-client-multipart.adoc +++ /dev/null @@ -1,302 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using the REST Client with Multipart - -include::./attributes.adoc[] - -RESTEasy has rich support for the `multipart/*` and `multipart/form-data` mime types. The multipart mime format is used to pass lists of content bodies. Multiple content bodies are embedded in one message. `multipart/form-data` is often found in web application HTML Form documents and is generally used to upload files. The form-data format is the same as other multipart formats, except that each inlined piece of content has a name associated with it. - - -This guide explains how to use the RESTEasy REST Client with Multipart in order to interact with REST APIs -requiring `multipart/form-data` content-type with very little effort. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `rest-client-multipart-quickstart` {quickstarts-tree-url}/rest-client-multipart-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - - - -:create-app-artifact-id: rest-client-multipart-quickstart -:create-app-extensions: rest-client,resteasy,resteasy-multipart -include::includes/devtools/create-app.adoc[] - -This command generates the Maven project with a REST endpoint and imports the `rest-client` and `resteasy` extensions. -It also adds the `resteasy-multipart` extension to support `multipart/form-data` requests. - -== Setting up the model - -In this guide we will be demonstrating how to invoke a REST service accepting `multipart/form-data` input. -We are assuming the payload is well-known before the request is sent, so we can model as a POJO. - -[NOTE] -==== -If the payload is unknown, you can also use the RESTEasy custom API instead. If that's the case, see the RESTEasy Multipart Providers link at the end of the guide. -==== - -Our first order of business is to setup the model we will be using to define the `multipart/form-data` payload, in the form of a `MultipartBody` POJO. - -Create a `src/main/java/org/acme/rest/client/multipart/MultipartBody.java` file and set the following content: - -[source,java] ----- -package org.acme.rest.client.multipart; - -import java.io.InputStream; - -import javax.ws.rs.FormParam; -import javax.ws.rs.core.MediaType; - -import org.jboss.resteasy.annotations.providers.multipart.PartType; - -public class MultipartBody { - - @FormParam("file") - @PartType(MediaType.APPLICATION_OCTET_STREAM) - public InputStream file; - - @FormParam("fileName") - @PartType(MediaType.TEXT_PLAIN) - public String fileName; -} ----- - -The purpose of the annotations in the code above is the following: - -* `@FormParam` is a standard JAX-RS annotation used to define a form parameter contained within a request entity body -* `@PartType` is a RESTEasy specific annotation required when a client performs a multipart request and defines the content type for the part. - -== Create the interface - -Using the RESTEasy REST Client is as simple as creating an interface using the proper JAX-RS and MicroProfile annotations. In our case the interface should be created at `src/main/java/org/acme/rest/client/multipart/MultipartService.java` and have the following content: - -[source, java] ----- -package org.acme.rest.client.multipart; - -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import org.jboss.resteasy.annotations.providers.multipart.MultipartForm; - -@Path("/echo") -@RegisterRestClient -public interface MultipartService { - - @POST - @Consumes(MediaType.MULTIPART_FORM_DATA) - @Produces(MediaType.TEXT_PLAIN) - String sendMultipartData(@MultipartForm MultipartBody data); - -} ----- - -The `sendMultipartData` method gives our code the ability to POST a `multipart/form-data` request to our Echo service (running in the same server for demo purposes). -Because in this demo we have the exact knowledge of the `multipart/form-data` packets, we can map them to the model class created in the previous section using the `@org.jboss.resteasy.annotations.providers.multipart.MultipartForm` annotation. - -The client will handle all the networking and marshalling leaving our code clean of such technical details. - -The purpose of the annotations in the code above is the following: - -* `@RegisterRestClient` allows Quarkus to know that this interface is meant to be available for -CDI injection as a REST Client -* `@Path`, `@GET` and `@PathParam` are the standard JAX-RS annotations used to define how to access the service -* `@MultipartForm` defines the parameter as a value object for incoming/outgoing request/responses of the multipart/form-data mime type. -* `@Consumes` defines the expected content-type consumed by this request (parameters) -* `@Produces` defines the expected content-type produced by this request (return type) - -[NOTE] -==== -While `@Consumes` and `@Produces` are optional as auto-negotiation is supported, -it is heavily recommended to annotate your endpoints with them to define precisely the expected content-types. - -It will allow to narrow down the number of JAX-RS providers (which can be seen as converters) included in the native executable. -==== - -== Create the configuration - -In order to determine the base URL to which REST calls will be made, the REST Client uses configuration from `application.properties`. -The name of the property needs to follow a certain convention which is best displayed in the following code: - -[source,properties] ----- -# Your configuration properties -quarkus.rest-client."org.acme.rest.client.multipart.MultipartService".url=http://localhost:8080/ ----- - -Having this configuration means that all requests performed using `org.acme.rest.client.multipart.MultipartService` will use `http://localhost:8080/ ` as the base URL. - -Note that `org.acme.rest.client.multipart.MultipartService` _must_ match the fully qualified name of the `MultipartService` interface we created in the previous section. - -== Create the JAX-RS resource - -Create the `src/main/java/org/acme/rest/client/multipart/MultipartClientResource.java` file with the following content: - -[source,java] ----- -package org.acme.rest.client.multipart; - -import java.io.ByteArrayInputStream; -import java.nio.charset.StandardCharsets; - -import javax.inject.Inject; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.eclipse.microprofile.rest.client.inject.RestClient; - -@Path("/client") -public class MultipartClientResource { - - @Inject - @RestClient - MultipartService service; - - @POST - @Path("/multipart") - @Produces(MediaType.TEXT_PLAIN) - public String sendFile() throws Exception { - MultipartBody body = new MultipartBody(); - body.fileName = "greeting.txt"; - body.file = new ByteArrayInputStream("HELLO WORLD".getBytes(StandardCharsets.UTF_8)); - return service.sendMultipartData(body); - } -} ----- - -Note that in addition to the standard CDI `@Inject` annotation, we also need to use the MicroProfile `@RestClient` annotation to inject `MultipartService`. - - -== Creating the server - -For demo purposes, let's create a simple Echo endpoint that will act as the server part. - -Create the directory `src/main/java/org/acme/rest/client/multipart/server` and include a `EchoService.java` file with the following content: - -[source,java] ----- -package org.acme.rest.client.multipart.server; - -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/echo") -public class EchoService { - - @POST - @Consumes(MediaType.MULTIPART_FORM_DATA) - @Produces(MediaType.TEXT_PLAIN) - public String echo(String requestBody) throws Exception { - return requestBody; - } -} ----- - -This will just return the request body and it's useful for testing purposes. - -== Update the test - -We also need to update the functional test to reflect the changes made to the endpoint. -Edit the `src/test/java/org/acme/rest/client/multipart/MultipartClientResourceTest.java` file to: - -[source, java] ----- -package org.acme.rest.client.multipart; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.containsString; - -@QuarkusTest -public class MultipartClientResourceTest { - - @Test - public void testMultipartDataIsSent() { - given() - .when().post("/client/multipart") - .then() - .statusCode(200) - .body( containsString("Content-Disposition: form-data; name=\"file\""), - containsString("HELLO WORLD"), - containsString("Content-Disposition: form-data; name=\"fileName\""), - containsString("greeting.txt")); - } - -} ----- - -The code above uses link:http://rest-assured.io/[REST Assured] to assert that the returned content from the echo service contains multipart elements - -Because the test runs in a different port, we also need to include an `application.properties` in our `src/test/resources` with the following content: - -[source,properties] ----- -# Your configuration properties -quarkus.rest-client."org.acme.rest.client.multipart.MultipartService".url=http://localhost:8081/ ----- - -== Package and run the application - -Run the application with: - -include::includes/devtools/dev.adoc[] - -In a terminal, run `curl -X POST http://localhost:8080/client/multipart` - -You should see an output similar to: - -[source,text] ----- ---89d288bd-960f-460c-b266-64c5b4d170fa -Content-Disposition: form-data; name="fileName" -Content-Type: text/plain - -greeting.txt ---89d288bd-960f-460c-b266-64c5b4d170fa -Content-Disposition: form-data; name="file" -Content-Type: application/octet-stream - -HELLO WORLD ---89d288bd-960f-460c-b266-64c5b4d170fa-- ----- - -As usual, the application can be packaged using: - -include::includes/devtools/build.adoc[] - -And executed with `java -jar target/quarkus-app/quarkus-run.jar`. - -You can also generate the native executable with: - -include::includes/devtools/build-native.adoc[] - -== Further reading - -* link:https://docs.jboss.org/resteasy/docs/4.5.6.Final/userguide/html/Multipart.html[RESTEasy Multipart Provider] -* link:https://download.eclipse.org/microprofile/microprofile-rest-client-1.4.1/microprofile-rest-client-1.4.1.html[MicroProfile Rest Client specification] diff --git a/_versions/2.7/guides/rest-client-reactive.adoc b/_versions/2.7/guides/rest-client-reactive.adoc deleted file mode 100644 index a5e25d8a45d..00000000000 --- a/_versions/2.7/guides/rest-client-reactive.adoc +++ /dev/null @@ -1,1004 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using the REST Client Reactive - -include::./attributes.adoc[] - -This guide explains how to use the REST Client Reactive in order to interact with REST APIs. -REST Client Reactive is a non-blocking counterpart of the RESTEasy REST Client. - -If your application uses a client and exposes REST endpoints, please use xref:resteasy-reactive.adoc[RESTEasy Reactive] -for the server part. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `rest-client-reactive-quickstart` {quickstarts-tree-url}/rest-client-reactive-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: rest-client-reactive-quickstart -:create-app-extensions: resteasy-reactive-jackson,rest-client-reactive-jackson -include::includes/devtools/create-app.adoc[] - -This command generates the Maven project with a REST endpoint and imports: - -* the `resteasy-reactive-jackson` extension for the REST server support. Use `resteasy-reactive` instead if you do not wish to use Jackson; -* the `rest-client-reactive-jackson` extension for the REST client support. Use `rest-client-reactive` instead if you do not wish to use Jackson - -If you already have your Quarkus project configured, you can add the `rest-client-reactive-jackson` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: rest-client-reactive-jackson -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-rest-client-reactive-jackson - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-rest-client-reactive-jackson") ----- - -== Setting up the model - -In this guide we will be demonstrating how to consume part of the REST API supplied by the link:https://stage.code.quarkus.io[stage.code.quarkus.io] service. -Our first order of business is to set up the model we will be using, in the form of a `Extension` POJO. - -Create a `src/main/java/org/acme/rest/client/Extension.java` file and set the following content: - -[source,java] ----- -package org.acme.rest.client; - -import java.util.List; - -public class Extension { - - public String id; - public String name; - public String shortName; - public List keywords; - -} ----- - -The model above is only a subset of the fields provided by the service, but it suffices for the purposes of this guide. - -== Create the interface - -Using the REST Client Reactive is as simple as creating an interface using the proper JAX-RS and MicroProfile annotations. In our case the interface should be created at `src/main/java/org/acme/rest/client/ExtensionsService.java` and have the following content: - -[source, java] ----- -package org.acme.rest.client; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.QueryParam; -import java.util.Set; - -@Path("/extensions") -@RegisterRestClient -public interface ExtensionsService { - - @GET - Set getById(@QueryParam("id") String id); -} ----- - -The `getById` method gives our code the ability to get an extension by id from the Code Quarkus API. The client will handle all the networking and marshalling leaving our code clean of such technical details. - -The purpose of the annotations in the code above is the following: - -* `@RegisterRestClient` allows Quarkus to know that this interface is meant to be available for -CDI injection as a REST Client -* `@Path`, `@GET` and `@PathParam` are the standard JAX-RS annotations used to define how to access the service - -[NOTE] -==== -When the `quarkus-rest-client-reactive-jackson` extension is installed, Quarkus will use the `application/json` media type -by default for most return values, unless the media type is explicitly set via `@Produces` or `@Consumes` annotations. - -If you don't rely on the JSON default, it is heavily recommended to annotate your endpoints with the `@Produces` and `@Consumes` annotations to define precisely the expected content-types. -It will allow to narrow down the number of JAX-RS providers (which can be seen as converters) included in the native executable. -==== - -[WARNING] -==== -The `getById` method above is a blocking call. It should not be invoked on the event loop. -The <> section describes how to make non-blocking calls. -==== - -=== Path Parameters - -If the GET request requires path parameters you can leverage the `@PathParam("parameter-name")` annotation instead of -(or in addition to) the `@QueryParam`. Path and query parameters can be combined, as required, as illustrated in the example below. - -[source, java] ----- -package org.acme.rest.client; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.QueryParam; -import java.util.Set; - -@Path("/extensions") -@RegisterRestClient -public interface ExtensionsService { - - @GET - @Path("/stream/{stream}") - Set getByStream(@PathParam("stream") String stream, @QueryParam("id") String id); -} ----- - - -== Create the configuration - -In order to determine the base URL to which REST calls will be made, the REST Client uses configuration from `application.properties`. -The name of the property needs to follow a certain convention which is best displayed in the following code: - -[source,properties] ----- -# Your configuration properties -quarkus.rest-client."org.acme.rest.client.ExtensionsService".url=https://stage.code.quarkus.io/api # // <1> ----- - -<1> Having this configuration means that all requests performed using `org.acme.rest.client.ExtensionsService` will use `https://stage.code.quarkus.io/api` as the base URL. -Using the configuration above, calling the `getById` method of `ExtensionsService` with a value of `io.quarkus:quarkus-rest-client-reactive` would result in an HTTP GET request being made to `https://stage.code.quarkus.io/api/extensions?id=io.quarkus:quarkus-rest-client-reactive`. - -Note that `org.acme.rest.client.ExtensionsService` _must_ match the fully qualified name of the `ExtensionsService` interface we created in the previous section. - -To facilitate the configuration, you can use the `@RegisterRestClient` `configKey` property that allows to use different configuration root than the fully qualified name of your interface. - -[source, java] ----- - -@RegisterRestClient(configKey="extensions-api") -public interface ExtensionsService { - [...] -} ----- - -[source,properties] ----- -# Your configuration properties -quarkus.rest-client.extensions-api.url=https://stage.code.quarkus.io/api -quarkus.rest-client.extensions-api.scope=javax.inject.Singleton ----- - -== Create the JAX-RS resource - -Create the `src/main/java/org/acme/rest/client/ExtensionsResource.java` file with the following content: - - -[source,java] ----- -package org.acme.rest.client; - -import io.smallrye.common.annotation.Blocking; -import org.eclipse.microprofile.rest.client.inject.RestClient; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import java.util.Set; - -@Path("/extension") -public class ExtensionsResource { - - @RestClient // <1> - ExtensionsService extensionsService; - - - @GET - @Path("/id/{id}") - @Blocking // <2> - public Set id(String id) { - return extensionsService.getById(id); - } -} ----- - -There are two interesting parts in this listing: - -<1> the client stub is injected with the `@RestClient` annotation instead of the usual CDI `@Inject` -<2> the call we are making with the client is blocking, hence we need the `@Blocking` annotation on the REST endpoint - -== Programmatic client creation with RestClientBuilder - -Instead of annotating the client with `@RegisterRestClient`, and injecting -a client with `@RestClient`, you can also create REST Client programmatically. -You do that with `RestClientBuilder`. - -With this approach the client interface could look as follows: - -[source,java] ----- -package org.acme.rest.client; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.QueryParam; -import java.util.Set; - -@Path("/extensions") -public interface ExtensionsService { - - @GET - Set getById(@QueryParam("id") String id); -} ----- - -And the service as follows: -[source,java] ----- -package org.acme.rest.client; - -import io.smallrye.mutiny.Uni; -import org.eclipse.microprofile.rest.client.RestClientBuilder; -import org.eclipse.microprofile.rest.client.inject.RestClient; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import java.net.URI; -import java.util.Set; -import java.util.concurrent.CompletionStage; - -@Path("/extension") -public class ExtensionsResource { - - private final ExtensionsService extensionsService; - - public ExtensionsResource() { - extensionsService = RestClientBuilder.newBuilder() - .baseUri(URI.create("https://stage.code.quarkus.io/api")) - .build(ExtensionsService.class); - } - - @GET - @Path("/id/{id}") - public Set id(String id) { - return extensionsService.getById(id); - } -} ----- - -== Update the test - -Next, we need to update the functional test to reflect the changes made to the endpoint. -Edit the `src/test/java/org/acme/rest/client/ExtensionsResourceTest.java` file and change the content of the test to: - - -[source, java] ----- -package org.acme.rest.client; - -import io.quarkus.test.junit.QuarkusTest; - -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.hasItem; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.Matchers.greaterThan; - -@QuarkusTest -public class ExtensionsResourceTest { - - @Test - public void testExtensionsIdEndpoint() { - given() - .when().get("/extension/id/io.quarkus:quarkus-rest-client-reactive") - .then() - .statusCode(200) - .body("$.size()", is(1), - "[0].id", is("io.quarkus:quarkus-rest-client-reactive"), - "[0].name", is("REST Client Reactive"), - "[0].keywords.size()", greaterThan(1), - "[0].keywords", hasItem("rest-client")); - } -} ----- - -The code above uses link:http://rest-assured.io/[REST Assured]'s link:https://github.com/rest-assured/rest-assured/wiki/GettingStarted#jsonpath[json-path] capabilities. - - -[#async-support] -== Async Support - -To get the full power of the reactive nature of the client, you can use the non-blocking flavor of REST Client Reactive extension, -which comes with support for `CompletionStage` and `Uni`. -Let's see it in action by adding a `getByIdAsync` method in our `ExtensionsService` REST interface. The code should look like: - -[source,java] ----- -package org.acme.rest.client; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.QueryParam; -import java.util.Set; -import java.util.concurrent.CompletionStage; - -@Path("/extensions") -@RegisterRestClient(configKey = "extensions-api") -public interface ExtensionsService { - - @GET - Set getById(@QueryParam("id") String id); - - @GET - CompletionStage> getByIdAsync(@QueryParam("id") String id); -} ----- - -Open the `src/main/java/org/acme/rest/client/ExtensionsResource.java` file and update it with the following content: - -[source,java] ----- -package org.acme.rest.client; - -import io.smallrye.common.annotation.Blocking; -import org.eclipse.microprofile.rest.client.inject.RestClient; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import java.util.Set; -import java.util.concurrent.CompletionStage; - -@Path("/extension") -public class ExtensionsResource { - - @RestClient - ExtensionsService extensionsService; - - - @GET - @Path("/id/{id}") - @Blocking - public Set id(String id) { - return extensionsService.getById(id); - } - - @GET - @Path("/id-async/{id}") - public CompletionStage> idAsync(String id) { - return extensionsService.getByIdAsync(id); - } -} ----- - -Please note that since the invocation is now non-blocking, we don't need the `@Blocking` annotation anymore on the endpoint. -This means that the `idAsync` method will be invoked on the event loop, i.e. will not get offloaded to a worker pool thread -and thus reducing hardware resource utilization. - - -To test asynchronous methods, add the test method below in `ExtensionsResourceTest`: -[source,java] ----- -@Test -public void testExtensionIdAsyncEndpoint() { - given() - .when().get("/extension/id-async/io.quarkus:quarkus-rest-client-reactive") - .then() - .statusCode(200) - .body("$.size()", is(1), - "[0].id", is("io.quarkus:quarkus-rest-client-reactive"), - "[0].name", is("REST Client Reactive"), - "[0].keywords.size()", greaterThan(1), - "[0].keywords", hasItem("rest-client")); -} ----- - -The `Uni` version is very similar: - -[source, java] ----- -package org.acme.rest.client; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import java.util.Set; -import java.util.concurrent.CompletionStage; - -@Path("/extensions") -@RegisterRestClient(configKey = "extensions-api") -public interface ExtensionsService { - - // ... - - @GET - Uni> getByIdAsUni(@QueryParam("id") String id); -} ----- - -The `ExtensionsResource` becomes: - -[source,java] ----- -package org.acme.rest.client; - -import io.smallrye.common.annotation.Blocking; -import io.smallrye.mutiny.Uni; -import org.eclipse.microprofile.rest.client.inject.RestClient; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import java.util.Set; -import java.util.concurrent.CompletionStage; - -@Path("/extension") -public class ExtensionsResource { - - @RestClient - ExtensionsService extensionsService; - - - // ... - - @GET - @Path("/id-uni/{id}") - public Uni> idUni(String id) { - return extensionsService.getByIdAsUni(id); - } -} ----- - -[TIP] -.Mutiny -==== -The previous snippet uses Mutiny reactive types. -If you are not familiar with Mutiny, check xref:mutiny-primer.adoc[Mutiny - an intuitive reactive programming library]. -==== - -When returning a `Uni`, every _subscription_ invokes the remote service. -It means you can re-send the request by re-subscribing on the `Uni`, or use a `retry` as follows: - -[source, java] ----- - -@RestClient ExtensionsService extensionsService; - -// ... - -extensionsService.getByIdAsUni(id) - .onFailure().retry().atMost(10); ----- - -If you use a `CompletionStage`, you would need to call the service's method to retry. -This difference comes from the laziness aspect of Mutiny and its subscription protocol. -More details about this can be found in https://smallrye.io/smallrye-mutiny/#_uni_and_multi[the Mutiny documentation]. - -== Custom headers support - -There are a few ways in which you can specify custom headers for your REST calls: - -- by registering a `ClientHeadersFactory` or a `ReactiveClientHeadersFactory` with the `@RegisterClientHeaders` annotation -- by specifying the value of the header with `@ClientHeaderParam` -- by specifying the value of the header by `@HeaderParam` - -The code below demonstrates how to use each of these techniques: - -[source, java] ----- -package org.acme.rest.client; - -import io.smallrye.mutiny.Uni; -import org.eclipse.microprofile.rest.client.annotation.ClientHeaderParam; -import org.eclipse.microprofile.rest.client.annotation.RegisterClientHeaders; -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; - -import javax.ws.rs.GET; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.Path; -import javax.ws.rs.QueryParam; -import java.util.Set; -import java.util.concurrent.CompletionStage; - -@Path("/extensions") -@RegisterRestClient -@RegisterClientHeaders(RequestUUIDHeaderFactory.class) // <1> -@ClientHeaderParam(name = "my-header", value = "constant-header-value") // <2> -@ClientHeaderParam(name = "computed-header", value = "{org.acme.rest.client.Util.computeHeader}") // <3> -public interface ExtensionsService { - - @GET - @ClientHeaderParam(name = "header-from-properties", value = "${header.value}") // <4> - Set getById(@QueryParam("id") String id, @HeaderParam("jaxrs-style-header") String headerValue); // <5> -} ----- - -<1> There can be only one `ClientHeadersFactory` per class. With it, you can not only add custom headers, but you can also transform existing ones. See the `RequestUUIDHeaderFactory` class below for an example of the factory. -<2> `@ClientHeaderParam` can be used on the client interface and on methods. It can specify a constant header value... -<3> ... and a name of a method that should compute the value of the header. It can either be a static method or a default method in this interface -<4> ... as well as a value from your application's configuration -<5> ... or as a normal JAX-RS `@HeaderParam` annotated argument - -[NOTE] -==== -When using Kotlin, if default methods are going to be leveraged, then the Kotlin compiler needs to be configured to use Java's default interface capabilities. -See link:https://kotlinlang.org/docs/java-to-kotlin-interop.html#default-methods-in-interfaces[this] for more details. -==== - -A `ClientHeadersFactory` can look as follows: - -[source, java] ----- -package org.acme.rest.client; - -import org.eclipse.microprofile.rest.client.ext.ClientHeadersFactory; - -import javax.enterprise.context.ApplicationScoped; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; -import java.util.UUID; - -@ApplicationScoped -public class RequestUUIDHeaderFactory implements ClientHeadersFactory { - - @Override - public MultivaluedMap update(MultivaluedMap incomingHeaders, MultivaluedMap clientOutgoingHeaders) { - MultivaluedMap result = new MultivaluedHashMap<>(); - result.add("X-request-uuid", UUID.randomUUID().toString()); - return result; - } -} ----- - -As you see in the example above, you can make your `ClientHeadersFactory` implementation a CDI bean by -annotating it with a scope-defining annotation, such as `@Singleton`, `@ApplicationScoped`, etc. - -To specify a value for `${header.value}`, simply put the following in your `application.properties`: - -[source,properties] ----- -header.value=value of the header ----- - -Also, there is a reactive flavor of `ClientHeadersFactory` that allows doing blocking operations. For example: - -[source, java] ----- -package org.acme.rest.client; - -import org.eclipse.microprofile.rest.client.ext.ClientHeadersFactory; - -import javax.enterprise.context.ApplicationScoped; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; -import java.util.UUID; - -@ApplicationScoped -public class GetTokenReactiveClientHeadersFactory extends ReactiveClientHeadersFactory { - - @Inject - Service service; - - @Override - public Uni> getHeaders( - MultivaluedMap incomingHeaders, - MultivaluedMap clientOutgoingHeaders); - return Uni.createFrom().item(() -> { - MultivaluedHashMap newHeaders = new MultivaluedHashMap<>(); - // perform blocking call - newHeaders.add(HEADER_NAME, service.getToken()); - return newHeaders; - }); - } -} ----- - -=== Default header factory - -The `@RegisterClientHeaders` annotation can also be used without any custom factory specified. In that case the `DefaultClientHeadersFactoryImpl` factory will be used. -If you make a REST client call from a REST resource, this factory will propagate all the headers listed in `org.eclipse.microprofile.rest.client.propagateHeaders` configuration property from the resource request to the client request. Individual header names are comma-separated. -[source, java] ----- -@Path("/extensions") -@RegisterRestClient -@RegisterClientHeaders -public interface ExtensionsService { - - @GET - Set getById(@QueryParam("id") String id); - - @GET - CompletionStage> getByIdAsync(@QueryParam("id") String id); -} ----- - -[source,properties] ----- -org.eclipse.microprofile.rest.client.propagateHeaders=Authorization,Proxy-Authorization ----- - -== Exception handling - -The MicroProfile REST Client specification introduces the `org.eclipse.microprofile.rest.client.ext.ResponseExceptionMapper` whose purpose is to convert an HTTP response to an exception. - -A simple example of implementing such a `ResponseExceptionMapper` for the `ExtensionsService` discussed above, could be: - -[source, java] ----- -public class MyResponseExceptionMapper implements ResponseExceptionMapper { - - @Override - public RuntimeException toThrowable(Response response) { - if (response.getStatus() == 500) { - throw new RuntimeException("The remote service responded with HTTP 500"); - } - return null; - } -} ----- - -`ResponseExceptionMapper` also defines the `getPriority` method which is used in order to determine the priority with which `ResponseExceptionMapper` implementations will be called (implementations with a lower value for `getPriority` will be invoked first). -If `toThrowable` returns an exception, then that exception will be thrown. If `null` is returned, the next implementation of `ResponseExceptionMapper` in the chain will be called (if there is any). - -The class as written above, would not be automatically be used by any REST Client. To make it available to every REST Client of the application, the class needs to be annotated with `@Provider` (as long as `quarkus.rest-client-reactive.provider-autodiscovery` is not set to `false`). -Alternatively, if the exception handling class should only apply to specific REST Client interfaces, you can either annotate the interfaces with `@RegisterProvider(MyResponseExceptionMapper.class)`, or register it using configuration using the `providers` property of the proper `quarkus.rest-client` configuration group. - -=== Using @ClientExceptionMapper - -A simpler way to convert HTTP response codes of 400 or above is to use the `@ClientExceptionMapper` annotation. - -For the `ExtensionsService` REST Client interface defined above, an example use of `@ClientExceptionMapper` would be: - -[source, java] ----- -@Path("/extensions") -@RegisterRestClient -public interface ExtensionsService { - - @GET - Set getById(@QueryParam("id") String id); - - @GET - CompletionStage> getByIdAsync(@QueryParam("id") String id); - - @ClientExceptionMapper - static RuntimeException toException(Response response) { - if (response.getStatus() == 500) { - return new RuntimeException("The remote service responded with HTTP 500"); - } - return null; - } -} ----- - -Naturally this handling is per REST Client. `@ClientExceptionMapper` uses the default priority if the `priority` attribute is not set and the normal rules of invoking all handlers in turn apply. - -== Multipart Form support - -REST Client Reactive support multipart messages. - -=== Sending Multipart messages - -REST Client Reactive allows sending data as multipart forms. This way you can for example -send files efficiently. - -To send data as a multipart form, you need to create a class that would encapsulate all the fields -to be sent, e.g. - -[source, java] ----- -public class FormDto { - @FormParam("file") - @PartType(MediaType.APPLICATION_OCTET_STREAM) - public File file; - - @FormParam("otherField") - @PartType(MediaType.TEXT_PLAIN) - public String textProperty; -} ----- - -The method that sends a form needs to specify multipart form data as the consumed media type, e.g. -[source, java] ----- - @POST - @Consumes(MediaType.MULTIPART_FORM_DATA) - @Produces(MediaType.TEXT_PLAIN) - @Path("/binary") - String sendMultipart(@MultipartForm FormDto data); ----- - -Fields specified as `File`, `Path`, `byte[]` or `Buffer` are sent as files; as binary files for -`@PartType(MediaType.APPLICATION_OCTET_STREAM)`, as text files for other content types. -Other fields are sent as form attributes. - -There are a few modes in which the form data can be encoded. By default, -Rest Client Reactive uses RFC1738. -You can override it by specifying the mode either on the client level, -by setting `io.quarkus.rest.client.multipart-post-encoder-mode` RestBuilder property -to the selected value of `HttpPostRequestEncoder.EncoderMode` or -by specifying `quarkus.rest-client.multipart-post-encoder-mode` in your -`application.properties`. Please note that the latter works only for -clients created with the `@RegisterRestClient` annotation. -All the available modes are described in the link:https://netty.io/4.1/api/io/netty/handler/codec/http/multipart/HttpPostRequestEncoder.EncoderMode.html[Netty documentation] - -=== Receiving Multipart Messages -REST Client Reactive also supports receiving multipart messages. -As with sending, to parse a multipart response, you need to create a class that describes the response data, e.g. - -[source,java] ----- -public class FormDto { - @RestForm // <1> - @PartType(MediaType.APPLICATION_OCTET_STREAM) - public File file; - - @FormParam("otherField") // <2> - @PartType(MediaType.TEXT_PLAIN) - public String textProperty; -} ----- -<1> uses the shorthand `@RestForm` annotation to make a field as a part of a multipart form -<2> the standard `@FormParam` can also be used. It allows to override the name of the multipart part. - -Then, create an interface method that corresponds to the call and make it return the `FormDto`: -[source,java] ----- - @GET - @Produces(MediaType.MULTIPART_FORM_DATA) - @Path("/get-file") - FormDto data sendMultipart(); ----- - -At the moment, multipart response support is subject to the following limitations: - -- files sent in multipart responses can only be parsed to `File`, `Path` and `FileDownload` -- each field of the response type has to be annotated with `@PartType` - fields without this annotation are ignored - -REST Client Reactive needs to know the classes used as multipart return types upfront. If you have an interface method that produces `multipart/form-data`, the return type will be discovered automatically. However, if you intend to use the `ClientBuilder` API to parse a response as multipart, you need to annotate your DTO class with `@MultipartForm`. - -WARNING: The files you download are not automatically removed and can take up a lot of disk space. Consider removing the files when you are done working with them. - -== Proxy support -REST Client Reactive supports sending requests through a proxy. -It honors the JVM settings for it but also allows to specify both: - -* global client proxy settings, with `quarkus.rest-client.proxy-address`, `quarkus.rest-client.proxy-user`, `quarkus.rest-client.proxy-password`, `quarkus.rest-client.non-proxy-hosts` - -* per-client proxy settings, with `quarkus.rest-client..proxy-address`, etc. These are applied only to clients injected with CDI, that is the ones created with `@RegisterRestClient` - -If `proxy-address` is set on the client level, the client uses its specific proxy settings. No proxy settings are propagated from the global configuration or JVM properties. - -If `proxy-address` is not set for the client but is set on the global level, the client uses the global settings. -Otherwise, the client uses the JVM settings. - - -An example configuration for setting proxy: - -[source,properties] ----- -# global proxy configuration is used for all clients -quarkus.rest-client.proxy-address=localhost:8182 -quarkus.rest-client.proxy-user= -quarkus.rest-client.proxy-password= -quarkus.rest-client.non-proxy-hosts=example.com - -# per-client configuration overrides the global settings for a specific client -quarkus.rest-client.my-client.proxy-address=localhost:8183 -quarkus.rest-client.my-client.proxy-user= -quarkus.rest-client.my-client.proxy-password= -quarkus.rest-client.my-client.url=... ----- - -NOTE: MicroProfile REST Client specification does not allow setting proxy credentials. In order to specify proxy user and proxy password programmatically, you need to cast your `RestClientBuilder` to `RestClientBuilderImpl`. - -== Package and run the application - -Run the application with: - -include::includes/devtools/dev.adoc[] - -Open your browser to http://localhost:8080/extension/id/io.quarkus:quarkus-rest-client-reactive. - -You should see a JSON object containing some basic information about this extension. - -As usual, the application can be packaged using: - -include::includes/devtools/build.adoc[] - -And executed with `java -jar target/quarkus-app/quarkus-run.jar`. - -You can also generate the native executable with: - -include::includes/devtools/build-native.adoc[] - -== Logging traffic -REST Client Reactive can log the requests it sends and the responses it receives. -To enable logging, add the `quarkus.rest-client.logging.scope` property to your `application.properties` and set it to: - -* `request-response` to log the request and response contents, or -* `all` to also enable low level logging of the underlying libraries. - -As HTTP messages can have large bodies, we limit the amount of body characters logged. The default limit is `100`, you can change it by specifying `quarkus.rest-client.logging.body-limit`. - -NOTE: REST Client Reactive is logging the traffic with level DEBUG and does not alter logger properties. You may need to adjust your logger configuration to use this feature. - -An example logging configuration: - -[source,properties] ----- -quarkus.rest-client.logging.scope=request-response -quarkus.rest-client.logging.body-limit=50 - -quarkus.log.category."org.jboss.resteasy.reactive.client.logging".level=DEBUG ----- - -== Mocking the client for tests -If you use a client injected with the `@RestClient` annotation, you can easily mock it for tests. -You can do it with Mockito's `@InjectMock` or with `QuarkusMock`. - -This section shows how to replace your client with a mock. If you would like to get a more in-depth understanding of how mocking works in Quarkus, see the blog post on https://quarkus.io/blog/mocking/[Mocking CDI beans]. - -NOTE: Mocking does not work when using `@NativeImageTest` or `@QuarkusIntegrationTest`. - -Let's assume you have the following client: -[source,java] ----- -package io.quarkus.it.rest.client.main; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; - - -@Path("/") -@RegisterRestClient -public interface Client { - @GET - String get(); -} ----- - - -=== Mocking with InjectMock -The simplest approach to mock a client for tests is to use Mockito and `@InjectMock`. - -First, add the following dependency to your application: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-junit5-mockito - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-junit5-mockito") ----- - -Then, in your test you can simply use `@InjectMock` to create and inject a mock: - -[source,java] ----- -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.when; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.mockito.InjectMock; - -@QuarkusTest -public class InjectMockTest { - - @InjectMock - Client mock; - - @BeforeEach - public void setUp() { - when(mock.get()).thenReturn("MockAnswer"); - } - - @Test - void doTest() { - // ... - } -} ----- - -=== Mocking with QuarkusMock -If Mockito doesn't meet your needs, you can create a mock programmatically using `QuarkusMock`, e.g.: - -[source,java] ----- -import org.eclipse.microprofile.rest.client.inject.RestClient; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import io.quarkus.test.junit.QuarkusMock; -import io.quarkus.test.junit.QuarkusTest; - -@QuarkusTest -public class QuarkusMockTest { - - @BeforeEach - public void setUp() { - Client customMock = new Client() { //<1> - @Override - public String get() { - return "MockAnswer"; - } - }; - QuarkusMock.installMockForType(customMock, Client.class, RestClient.LITERAL); // <2> - } - @Test - void doTest() { - // ... - } -} ----- - -<1> here we use a manually created implementation of the client interface to replace the actual Client -<2> note that `RestClient.LITERAL` has to be passed as the last argument of the `installMockForType` method - - -== Using a Mock HTTP Server for tests -In some cases you may want to mock the remote endpoint - the HTTP server - instead of mocking the client itself. -This may be especially useful for native tests, or for programmatically created clients. - -You can easily mock an HTTP Server with Wiremock. -The xref:rest-client.adoc#using-a-mock-http-server-for-tests[Wiremock section of the Quarkus - Using the REST Client] -describes how to set it up in detail. - -== Known limitations -While the REST Client Reactive extension aims to be a drop-in replacement for the REST Client extension, there are some differences -and limitations: - -- the default scope of the client for the new extension is `@ApplicationScoped` while the `quarkus-rest-client` defaults to `@Dependent` -To change this behavior, set the `quarkus.rest-client-reactive.scope` property to the fully qualified scope name. -- it is not possible to set `HostnameVerifier` or `SSLContext` -- a few things that don't make sense for a non-blocking implementations, such as setting the `ExecutorService`, don't work - - - -== Further reading - - * link:https://download.eclipse.org/microprofile/microprofile-rest-client-2.0/microprofile-rest-client-spec-2.0.html[MicroProfile Rest Client specification] diff --git a/_versions/2.7/guides/rest-client.adoc b/_versions/2.7/guides/rest-client.adoc deleted file mode 100644 index 2c28658e7d5..00000000000 --- a/_versions/2.7/guides/rest-client.adoc +++ /dev/null @@ -1,731 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using the REST Client - -include::./attributes.adoc[] - -This guide explains how to use the RESTEasy REST Client in order to interact with REST APIs -with very little effort. - -TIP: there is another guide if you need to write server xref:rest-json.adoc[JSON REST APIs]. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `rest-client-quickstart` {quickstarts-tree-url}/rest-client-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: rest-client-quickstart -:create-app-extensions: resteasy,resteasy-jackson,rest-client,rest-client-jackson -include::includes/devtools/create-app.adoc[] - -This command generates the Maven project with a REST endpoint and imports: - -* the `resteasy` and `resteasy-jackson` extensions for the REST server support; -* the `rest-client` and `rest-client-jackson` extensions for the REST client support. - -If you already have your Quarkus project configured, you can add the `rest-client` and the `rest-client-jackson` extensions -to your project by running the following command in your project base directory: - -:add-extension-extensions: rest-client,rest-client-jackson -include::includes/devtools/extension-add.adoc[] - -This will add the following to your `pom.xml`: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-rest-client - - - io.quarkus - quarkus-rest-client-jackson - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-rest-client") -implementation("io.quarkus:quarkus-rest-client-jackson") ----- - -== Setting up the model - -In this guide we will be demonstrating how to consume part of the REST API supplied by the link:https://stage.code.quarkus.io[stage.code.quarkus.io] service. -Our first order of business is to set up the model we will be using, in the form of an `Extension` POJO. - -Create a `src/main/java/org/acme/rest/client/Extension.java` file and set the following content: - -[source,java] ----- -package org.acme.rest.client; - -import java.util.List; - -public class Extension { - - public String id; - public String name; - public String shortName; - public List keywords; - -} ----- - -The model above is only a subset of the fields provided by the service, but it suffices for the purposes of this guide. - -== Create the interface - -Using the RESTEasy REST Client is as simple as creating an interface using the proper JAX-RS and MicroProfile annotations. In our case the interface should be created at `src/main/java/org/acme/rest/client/ExtensionsService.java` and have the following content: - -[source, java] ----- -package org.acme.rest.client; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import org.jboss.resteasy.annotations.jaxrs.QueryParam; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import java.util.Set; - -@Path("/extensions") -@RegisterRestClient -public interface ExtensionsService { - - @GET - Set getById(@QueryParam String id); -} ----- - -The `getById` method gives our code the ability to get an extension by id from the Code Quarkus API. The client will handle all the networking and marshalling leaving our code clean of such technical details. - -The purpose of the annotations in the code above is the following: - -* `@RegisterRestClient` allows Quarkus to know that this interface is meant to be available for -CDI injection as a REST Client -* `@Path`, `@GET` and `@PathParam` are the standard JAX-RS annotations used to define how to access the service - -[NOTE] -==== -When a JSON extension is installed such as `quarkus-rest-client-jackson` or `quarkus-rest-client-jsonb`, Quarkus will use the `application/json` media type -by default for most return values, unless the media type is explicitly set via -`@Produces` or `@Consumes` annotations (there are some exceptions for well known types, such as `String` and `File`, which default to `text/plain` and `application/octet-stream` -respectively). - -If you don't want JSON by default you can set `quarkus.resteasy-json.default-json=false` and the default will change back to being auto-negotiated. If you set this -you will need to add `@Produces(MediaType.APPLICATION_JSON)` and `@Consumes(MediaType.APPLICATION_JSON)` to your endpoints in order to use JSON. - -If you don't rely on the JSON default, it is heavily recommended to annotate your endpoints with the `@Produces` and `@Consumes` annotations to define precisely the expected content-types. -It will allow to narrow down the number of JAX-RS providers (which can be seen as converters) included in the native executable. -==== - -=== Path Parameters - -If the GET request requires path parameters you can leverage the `@PathParam("parameter-name")` annotation instead of (or in addition to) the `@QueryParam`. Path and query parameters can be combined, as required, as illustrated in a mock example below. - -[source, java] ----- -package org.acme.rest.client; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import org.jboss.resteasy.annotations.jaxrs.PathParam; -import org.jboss.resteasy.annotations.jaxrs.QueryParam; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import java.util.Set; - -@Path("/extensions") -@RegisterRestClient -public interface ExtensionsService { - - @GET - @Path("/stream/{stream}") - Set getByStream(@PathParam String stream, @QueryParam("id") String id); -} ----- - - -== Create the configuration - -In order to determine the base URL to which REST calls will be made, the REST Client uses configuration from `application.properties`. -The name of the property needs to follow a certain convention which is best displayed in the following code: - -[source,properties] ----- -# Your configuration properties -quarkus.rest-client."org.acme.rest.client.ExtensionsService".url=https://stage.code.quarkus.io/api # // <1> -quarkus.rest-client."org.acme.rest.client.ExtensionsService".scope=javax.inject.Singleton # // <2> ----- - -<1> Having this configuration means that all requests performed using `ExtensionsService` will use `https://stage.code.quarkus.io` as the base URL. -Using the configuration above, calling the `getById` method of `ExtensionsService` with a value of `io.quarkus:quarkus-rest-client` would result in an HTTP GET request being made to `https://stage.code.quarkus.io/api/extensions?id=io.quarkus:quarkus-rest-client`. -<2> Having this configuration means that the default scope of `ExtensionsService` will be `@Singleton`. Supported scope values are `@Singleton`, `@Dependent`, `@ApplicationScoped` and `@RequestScoped`. The default scope is `@Dependent`. -The default scope can also be defined on the interface. - -Note that `org.acme.rest.client.ExtensionsService` _must_ match the fully qualified name of the `ExtensionsService` interface we created in the previous section. - -[NOTE] -==== -The standard MicroProfile Rest Client properties notation can also be used to configure the client: - -[source,properties] ----- -org.acme.rest.client.ExtensionsService/mp-rest/url=https://stage.code.quarkus.io/api -org.acme.rest.client.ExtensionsService/mp-rest/scope=javax.inject.Singleton ----- - -If a property is specified via both the Quarkus notation and the MicroProfile notation, the Quarkus notation takes a precedence. -==== - - -To facilitate the configuration, you can use the `@RegisterRestClient` `configKey` property that allows to use another configuration root than the fully qualified name of your interface. - -[source, java] ----- - -@RegisterRestClient(configKey="extensions-api") -public interface ExtensionsService { - [...] -} ----- - -[source,properties] ----- -# Your configuration properties -quarkus.rest-client.extensions-api.url=https://stage.code.quarkus.io/api -quarkus.rest-client.extensions-api.scope=javax.inject.Singleton ----- - -=== Disabling Hostname Verification - -To disable the SSL hostname verification for a specific REST client, add the following property to your configuration: - -[source,properties] ----- -quarkus.rest-client.extensions-api.hostname-verifier=io.quarkus.restclient.NoopHostnameVerifier ----- - -=== Disabling SSL verifications - -To disable all SSL verifications, add the following property to your configuration: - -[source,properties] ----- -quarkus.tls.trust-all=true ----- -[WARNING] -==== -This setting should not be used in production as it will disable any kind of SSL verification. -==== - -== Create the JAX-RS resource - -Create the `src/main/java/org/acme/rest/client/ExtensionsResource.java` file with the following content: - -[source,java] ----- -package org.acme.rest.client; - -import org.eclipse.microprofile.rest.client.inject.RestClient; -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import java.util.Set; - -@Path("/extension") -public class ExtensionsResource { - - @Inject - @RestClient - ExtensionsService extensionsService; - - @GET - @Path("/id/{id}") - public Set id(@PathParam String id) { - return extensionsService.getById(id); - } -} ----- - -Note that in addition to the standard CDI `@Inject` annotation, we also need to use the MicroProfile `@RestClient` annotation to inject `ExtensionsService`. - -== Update the test - -We also need to update the functional test to reflect the changes made to the endpoint. -Edit the `src/test/java/org/acme/rest/client/ExtensionsResourceTest.java` file and change the content of the `testExtensionIdEndpoint` method to: - - -[source, java] ----- -package org.acme.rest.client; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.hasItem; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.Matchers.greaterThan; - -import org.acme.rest.client.resources.WireMockExtensionsResource; -import org.junit.jupiter.api.Test; - -import io.quarkus.test.common.QuarkusTestResource; -import io.quarkus.test.junit.QuarkusTest; - -@QuarkusTest -@QuarkusTestResource(WireMockExtensionsResource.class) -public class ExtensionsResourceTest { - - @Test - public void testExtensionsIdEndpoint() { - given() - .when().get("/extension/id/io.quarkus:quarkus-rest-client") - .then() - .statusCode(200) - .body("$.size()", is(1), - "[0].id", is("io.quarkus:quarkus-rest-client"), - "[0].name", is("REST Client"), - "[0].keywords.size()", greaterThan(1), - "[0].keywords", hasItem("rest-client")); - } -} ----- - -The code above uses link:http://rest-assured.io/[REST Assured]'s link:https://github.com/rest-assured/rest-assured/wiki/GettingStarted#jsonpath[json-path] capabilities. - - -== Async Support - -The rest client supports asynchronous rest calls. -Async support comes in 2 flavors: you can return a `CompletionStage` or a `Uni` (requires the `quarkus-rest-client-mutiny` extension). -Let's see it in action by adding a `getByIdAsync` method in our `ExtensionsService` REST interface. The code should look like: - -[source, java] ----- -package org.acme.rest.client; - -import java.util.Set; -import java.util.concurrent.CompletionStage; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import org.jboss.resteasy.annotations.jaxrs.QueryParam; - -@Path("/extensions") -@RegisterRestClient -public interface ExtensionsService { - - @GET - Set getById(@QueryParam String id); - - @GET - CompletionStage> getByIdAsync(@QueryParam String id); - -} ----- - -Open the `src/main/java/org/acme/rest/client/ExtensionsResource.java` file and update it with the following content: - -[source,java] ----- -package org.acme.rest.client; - -import java.util.Set; -import java.util.concurrent.CompletionStage; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.eclipse.microprofile.rest.client.inject.RestClient; -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -@Path("/extension") -public class ExtensionsResource { - - @Inject - @RestClient - ExtensionsService extensionsService; - - @GET - @Path("/id/{id}") - public Set id(@PathParam String id) { - return extensionsService.getById(id); - } - - @GET - @Path("/id-async/{id}") - public CompletionStage> idAsync(@PathParam String id) { - return extensionsService.getByIdAsync(id); - } - -} ----- - -To test asynchronous methods, add the test method below in `ExtensionsResourceTest`: -[source,java] ----- -@Test -public void testExtensionIdAsyncEndpoint() { - given() - .when().get("/extension/id-async/io.quarkus:quarkus-rest-client") - .then() - .statusCode(200) - .body("$.size()", is(1), - "[0].id", is("io.quarkus:quarkus-rest-client"), - "[0].name", is("REST Client"), - "[0].keywords.size()", greaterThan(1), - "[0].keywords", hasItem("rest-client")); -} ----- - -The `Uni` version is very similar: - -[source, java] ----- -package org.acme.rest.client; - -import java.util.Set; -import java.util.concurrent.CompletionStage; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import org.jboss.resteasy.annotations.jaxrs.QueryParam; - -import io.smallrye.mutiny.Uni; - -@Path("/extensions") -@RegisterRestClient -public interface ExtensionsService { - - // ... - - @GET - Uni> getByIdAsUni(@QueryParam String id); -} ----- - -The `ExtensionsResource` becomes: - -[source,java] ----- -package org.acme.rest.client; - -import java.util.Set; -import java.util.concurrent.CompletionStage; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.eclipse.microprofile.rest.client.inject.RestClient; -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -import io.smallrye.mutiny.Uni; - -@Path("/extension") -public class ExtensionsResource { - - @Inject - @RestClient - ExtensionsService extensionsService; - - - // ... - - @GET - @Path("/id-uni/{id}") - public Uni> idMutiny(@PathParam String id) { - return extensionsService.getByIdAsUni(id); - } -} ----- - -[TIP] -.Mutiny -==== -The previous snippet uses Mutiny reactive types. -If you are not familiar with Mutiny, check xref:mutiny-primer.adoc[Mutiny - an intuitive reactive programming library]. -==== - -When returning a `Uni`, every _subscription_ invokes the remote service. -It means you can re-send the request by re-subscribing on the `Uni`, or use a `retry` as follows: - -[source, java] ----- - -@Inject @RestClient ExtensionsService extensionsService; - -// ... - -extensionsService.getByIdAsUni(id) - .onFailure().retry().atMost(10); ----- - -If you use a `CompletionStage`, you would need to call the service's method to retry. -This difference comes from the laziness aspect of Mutiny and its subscription protocol. -More details about this can be found in https://smallrye.io/smallrye-mutiny/#_uni_and_multi[the Mutiny documentation]. - -== Custom headers support - -The MicroProfile REST client allows amending request headers by registering a `ClientHeadersFactory` with the `@RegisterClientHeaders` annotation. - -Let's see it in action by adding a `@RegisterClientHeaders` annotation pointing to a `RequestUUIDHeaderFactory` class in our `ExtensionsService` REST interface: - -[source, java] ----- -package org.acme.rest.client; - -import java.util.Set; -import java.util.concurrent.CompletionStage; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.eclipse.microprofile.rest.client.annotation.RegisterClientHeaders; -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import org.jboss.resteasy.annotations.jaxrs.QueryParam; - -import io.smallrye.mutiny.Uni; - -@Path("/extensions") -@RegisterRestClient -@RegisterClientHeaders(RequestUUIDHeaderFactory.class) -public interface ExtensionsService { - - @GET - Set getById(@QueryParam String id); - - @GET - CompletionStage> getByIdAsync(@QueryParam String id); - - @GET - Uni> getByIdAsUni(@QueryParam String id); -} ----- - -And the `RequestUUIDHeaderFactory` would look like: - -[source, java] ----- -package org.acme.rest.client; - -import org.eclipse.microprofile.rest.client.ext.ClientHeadersFactory; - -import javax.enterprise.context.ApplicationScoped; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; -import java.util.UUID; - -@ApplicationScoped -public class RequestUUIDHeaderFactory implements ClientHeadersFactory { - - @Override - public MultivaluedMap update(MultivaluedMap incomingHeaders, MultivaluedMap clientOutgoingHeaders) { - MultivaluedMap result = new MultivaluedHashMap<>(); - result.add("X-request-uuid", UUID.randomUUID().toString()); - return result; - } -} ----- - -As you see in the example above, you can make your `ClientHeadersFactory` implementation a CDI bean by -annotating it with a scope-defining annotation, such as `@Singleton`, `@ApplicationScoped`, etc. - - -=== Default header factory - -You can also use `@RegisterClientHeaders` annotation without any custom factory specified. In that case the `DefaultClientHeadersFactoryImpl` factory will be used and all headers listed in `org.eclipse.microprofile.rest.client.propagateHeaders` configuration property will be amended. Individual header names are comma-separated. -[source, java] ----- -@Path("/extensions") -@RegisterRestClient -@RegisterClientHeaders -public interface ExtensionsService { - - @GET - Set getById(@QueryParam String id); - - @GET - CompletionStage> getByIdAsync(@QueryParam String id); - - @GET - Uni> getByIdAsUni(@QueryParam String id); -} - ----- - -[source,properties] ----- -org.eclipse.microprofile.rest.client.propagateHeaders=Authorization,Proxy-Authorization ----- - -== Package and run the application - -Run the application with: - -include::includes/devtools/dev.adoc[] - -Open your browser to http://localhost:8080/extension/id/io.quarkus:quarkus-rest-client. - -You should see a JSON object containing some basic information about the REST Client extension. - -As usual, the application can be packaged using: - -include::includes/devtools/build.adoc[] - -And executed with `java -jar target/quarkus-app/quarkus-run.jar`. - -You can also generate the native executable with: - -include::includes/devtools/build-native.adoc[] - -== REST Client and RESTEasy interactions - -In Quarkus, the REST Client extension and xref:rest-json.adoc[the RESTEasy extension] share the same infrastructure. -One important consequence of this consideration is that they share the same list of providers (in the JAX-RS meaning of the word). - -For instance, if you declare a `WriterInterceptor`, it will by default intercept both the servers calls and the client calls, -which might not be the desired behavior. - -However, you can change this default behavior and constrain a provider to: - -* only consider *client* calls by adding the `@ConstrainedTo(RuntimeType.CLIENT)` annotation to your provider; -* only consider *server* calls by adding the `@ConstrainedTo(RuntimeType.SERVER)` annotation to your provider. - -[#using-a-mock-http-server-for-tests] -== Using a Mock HTTP Server for tests - -Setting up a mock HTTP server, against which tests are run, is a common testing pattern. -Examples of such servers are link:http://wiremock.org/[Wiremock] and link:https://docs.hoverfly.io/projects/hoverfly-java/en/latest/index.html[Hoverfly]. -In this section we'll demonstrate how Wiremock can be leveraged for testing the `ExtensionsService` which was developed above. - -First of all, Wiremock needs to be added as a test dependency. For a Maven project that would happen like so: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - com.github.tomakehurst - wiremock-jre8 - test - ${wiremock.version} <1> - ----- -<1> Use a proper Wiremock version. All available versions can be found link:https://search.maven.org/artifact/com.github.tomakehurst/wiremock-jre8[here]. - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("com.github.tomakehurst:wiremock-jre8:$wiremockVersion") <1> ----- -<1> Use a proper Wiremock version. All available versions can be found link:https://search.maven.org/artifact/com.github.tomakehurst/wiremock-jre8[here]. - -In Quarkus tests when some service needs to be started before the Quarkus tests are ran, we utilize the `@io.quarkus.test.common.QuarkusTestResource` -annotation to specify a `io.quarkus.test.common.QuarkusTestResourceLifecycleManager` which can start the service and supply configuration -values that Quarkus will use. - -[NOTE] -==== -For more details about `@QuarkusTestResource` refer to xref:getting-started-testing.adoc#quarkus-test-resource[this part of the documentation]. -==== - -Let's create an implementation of `QuarkusTestResourceLifecycleManager` called `WiremockExtensions` like so: - -[source,java] ----- -package org.acme.rest.client; - -import java.util.Collections; -import java.util.Map; - -import com.github.tomakehurst.wiremock.WireMockServer; -import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; - -import static com.github.tomakehurst.wiremock.client.WireMock.*; // <1> - -public class WireMockExtensions implements QuarkusTestResourceLifecycleManager { // <2> - - private WireMockServer wireMockServer; - - @Override - public Map start() { - wireMockServer = new WireMockServer(); - wireMockServer.start(); // <3> - - stubFor(get(urlEqualTo("/extensions?id=io.quarkus:quarkus-rest-client")) // <4> - .willReturn(aResponse() - .withHeader("Content-Type", "application/json") - .withBody( - "[{" + - "\"id\": \"io.quarkus:quarkus-rest-client\"," + - "\"name\": \"REST Client\"" + - "}]" - ))); - - stubFor(get(urlMatching(".*")).atPriority(10).willReturn(aResponse().proxiedFrom("https://stage.code.quarkus.io/api"))); // <5> - - return Collections.singletonMap("quarkus.rest-client.\"org.acme.rest.client.ExtensionsService\".url", wireMockServer.baseUrl()); // <6> - } - - @Override - public void stop() { - if (null != wireMockServer) { - wireMockServer.stop(); // <7> - } - } -} ----- - -<1> Statically importing the methods in the Wiremock package makes it easier to read the test. -<2> The `start` method is invoked by Quarkus before any test is run and returns a `Map` of configuration properties that apply during the test execution. -<3> Launch Wiremock. -<4> Configure Wiremock to stub the calls to `/extensions?id=io.quarkus:quarkus-rest-client` by returning a specific canned response. -<5> All HTTP calls that have not been stubbed are handled by calling the real service. This is done for demonstration purposes, as it is not something that would usually happen in a real test. -<6> As the `start` method returns configuration that applies for tests, we set the rest-client property that controls the base URL which is used by the implementation -of `ExtensionsService` to the base URL where Wiremock is listening for incoming requests. -<7> When all tests have finished, shutdown Wiremock. - - -The `ExtensionsResourceTest` test class needs to be annotated like so: - -[source,java] ----- -@QuarkusTest -@QuarkusTestResource(WireMockExtensions.class) -public class ExtensionsResourceTest { - -} ----- - -[WARNING] -==== -`@QuarkusTestResource` applies to all tests, not just `ExtensionsResourceTest`. -==== - -== Further reading - - * link:https://download.eclipse.org/microprofile/microprofile-rest-client-2.0/microprofile-rest-client-spec-2.0.html[MicroProfile Rest Client specification] diff --git a/_versions/2.7/guides/rest-data-panache.adoc b/_versions/2.7/guides/rest-data-panache.adoc deleted file mode 100644 index ab3fb3216d6..00000000000 --- a/_versions/2.7/guides/rest-data-panache.adoc +++ /dev/null @@ -1,433 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Generating JAX-RS resources with Panache - -include::./attributes.adoc[] -:extension-status: experimental - -A lot of web applications are monotonous CRUD applications with REST APIs that are tedious to write. -To streamline this task, REST Data with Panache extension can generate the basic CRUD endpoints for your entities and repositories. - -While this extension is still experimental and provides a limited feature set, we hope to get an early feedback for it. -Currently, this extension supports Hibernate ORM and MongoDB with Panache and can generate CRUD resources that work with `application/json` and `application/hal+json` content. - -include::./status-include.adoc[] - -== Setting up REST Data with Panache - -=== Hibernate ORM - -* Add the required dependencies to your build file -** Hibernate ORM REST Data with Panache extension (`quarkus-hibernate-orm-rest-data-panache`) -** A JDBC driver extension (`quarkus-jdbc-postgresql`, `quarkus-jdbc-h2`, `quarkus-jdbc-mariadb`, ...) -** One of the RESTEasy JSON serialization extensions (the extension supports both RESTEasy Classic and RESTEasy Reactive) - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-hibernate-orm-rest-data-panache - - - io.quarkus - quarkus-jdbc-postgresql - - - - - io.quarkus - quarkus-resteasy-reactive-jackson - - - - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-hibernate-orm-rest-data-panache") -implementation("io.quarkus:quarkus-jdbc-postgresql") - -// Use this if you are using RESTEasy Reactive -implementation("io.quarkus:quarkus-resteasy-reactive-jackson") - -// Use this if you are going to use RESTEasy Classic -// implementation("io.quarkus:quarkus-resteasy-jackson") ----- - -* Implement the Panache entities and/or repositories as explained in the xref:hibernate-orm-panache.adoc[Hibernate ORM with Panache guide]. -* Define the interfaces for generation as explained in the resource generation section. - -=== MongoDB - -* Add the required dependencies to your build file -** MongoDB REST Data with Panache extension (`quarkus-mongodb-rest-data-panache`) -** One of the RESTEasy JSON serialization extensions (`quarkus-resteasy-reactive-jackson` or `quarkus-resteasy-reactive-jsonb`) - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-mongodb-rest-data-panache - - - - - io.quarkus - quarkus-resteasy-reactive-jackson - - - io.quarkus - quarkus-resteasy-reactive-links - - - - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-mongodb-rest-data-panache") - -// Use these if you are using RESTEasy Reactive -implementation("io.quarkus:quarkus-resteasy-reactive-jackson") -implementation("io.quarkus:quarkus-resteasy-reactive-links") - -// Use these if you are going to use RESTEasy Classic -// implementation("io.quarkus:quarkus-resteasy-jackson") -// implementation("io.quarkus:resteasy-links") ----- - -* Implement the Panache entities and/or repositories as explained in the xref:mongodb-panache.adoc[MongoDB with Panache guide]. -* Define the interfaces for generation as explained in the resource generation section. - -== Generating resources - -REST Data with Panache generates JAX-RS resources based on the interfaces available in your application. -For each entity and repository that you want to generate, provide a resource interface. -_Do not implement these interfaces and don't provide custom methods because they will be ignored._ You can, however, override the methods from the extended interface in order to customize them (see the section at the end). - -=== PanacheEntityResource - -If your application has an entity (e.g. `Person`) that extends either `PanacheEntity` or `PanacheEntityBase` class, you could instruct REST Data with Panache to generate its JAX-RS resource with the following interface: - -[source,java] ----- -public interface PeopleResource extends PanacheEntityResource { -} ----- - -=== PanacheRepositoryResource - -If your application has a simple entity (e.g. `Person`) and a repository (e.g. `PersonRepository`) that implements either `PanacheRepository` or `PanacheRepositoryBase` interface, you could instruct REST Data with Panache to generate its JAX-RS resource with the following interface: - -[source,java] ----- -public interface PeopleResource extends PanacheRepositoryResource { -} ----- - -=== PanacheMongoEntityResource - -If your application has an entity (e.g. `Person`) that extends either `PanacheMongoEntity` or `PanacheMongoEntityBase` class, you could instruct REST Data with Panache to generate its JAX-RS resource with the following interface: - -[source,java] ----- -public interface PeopleResource extends PanacheMongoEntityResource { -} ----- - -=== PanacheMongoRepositoryResource - -If your application has a simple entity (e.g. `Person`) and a repository (e.g. `PersonRepository`) that implements either `PanacheMongoRepository` or `PanacheMongoRepositoryBase` interface, you could instruct REST Data with Panache to generate its JAX-RS resource with the following interface: - -[source,java] ----- -public interface PeopleResource extends PanacheMongoRepositoryResource { -} ----- - -=== The generated resource - -The generated resources will be functionally equivalent for both entities and repositories. -The only difference being the particular data access pattern and data storage in use. - -If you have defined one of the `PeopleResource` interfaces mentioned above, this extension will generate its implementation using a particular data access strategy. -The implemented class then will be used by a generated JAX-RS resource, which will look like this: - -[source,java] ----- -public class PeopleResourceJaxRs { // The actual class name is going to be unique - @Inject - PeopleResource resource; - - @GET - @Path("{id}") - @Produces("application/json") - public Person get(@PathParam("id") Long id){ - Person person = resource.get(id); - if (person == null) { - throw new WebApplicationException(404); - } - return person; - } - - @GET - @Produces("application/json") - public Response list(@QueryParam("sort") List sortQuery, - @QueryParam("page") @DefaultValue("0") int pageIndex, - @QueryParam("size") @DefaultValue("20") int pageSize) { - Page page = Page.of(pageIndex, pageSize); - Sort sort = getSortFromQuery(sortQuery); - List people = resource.list(page, sort); - // ... build a response with page links and return a 200 response with a list - } - - @Transactional - @POST - @Consumes("application/json") - @Produces("application/json") - public Response add(Person personToSave) { - Person person = resource.add(person); - // ... build a new location URL and return 201 response with an entity - } - - @Transactional - @PUT - @Path("{id}") - @Consumes("application/json") - @Produces("application/json") - public Response update(@PathParam("id") Long id, Person personToSave) { - if (resource.get(id) == null) { - Person person = resource.update(id, personToSave); - return Response.status(204).build(); - } - Person person = resource.update(id, personToSave); - // ... build a new location URL and return 201 response with an entity - } - - @Transactional - @DELETE - @Path("{id}") - public void delete(@PathParam("id") Long id) { - if (!resource.delete(id)) { - throw new WebApplicationException(404); - } - } -} ----- - -== Resource customisation - -REST Data with Panache provides a `@ResourceProperties` and `@MethodProperties` annotations that can be used to customize certain features of the resource. -It can be used in your resource interface: - -[source,java] ----- -@ResourceProperties(hal = true, path = "my-people") -public interface PeopleResource extends PanacheEntityResource { - @MethodProperties(path = "all") - List list(Page page, Sort sort); - - @MethodProperties(exposed = false) - boolean delete(Long id); -} ----- - -=== Available options - -`@ResourceProperties` - -* `exposed` - whether resource could be exposed. A global resource property that can be overridden for each method. Default is `true`. -* `path` - resource base path. Default path is a hyphenated lowercase resource name without a suffix of `resource` or `controller`. -* `paged` - whether collection responses should be paged or not. -First, last, previous and next page URIs are included in the response headers if they exist. -Request page index and size are taken from the `page` and `size` query parameters that default to `0` and `20` respectively. -Default is `true`. -* `hal` - in addition to the standard `application/json` responses, generates additional methods that can return `application/hal+json` responses if requested via an `Accept` header. -Default is `false`. -* `halCollectionName` - name that should be used when generating a hal collection response. Default name is a hyphenated lowercase resource name without a suffix of `resource` or `controller`. - -`@MethodProperties` - -* `exposed` - does not expose a particular HTTP verb when set to `false`. Default is `true`. -* `path` - operation path (this is appended to the resource base path). Default is an empty string. - -== Query parameters - -REST Data with Panache supports the following query parameters with the generated resources. - -* `page` - a page number which should be returned by a list operation. -It applies to the paged resources only and is a number starting with 0. Default is 0. -* `size` - a page size which should be returned by a list operation. -It applies to the paged resources only and is a number starting with 1. Default is 20. -* `sort` - a comma separated list of fields which should be used for sorting a result of a list operation. -Fields are sorted in the ascending order unless they're prefixed with a `-`. -E.g. `?sort=name,-age` will sort the result by the name ascending by the age descending. - -== Response body examples - -As mentioned above REST Data with Panache supports the `application/json` and `application/hal+json` response content types. -Here are a couple of examples of how a response body would look like for the `get` and `list` operations assuming there are five `Person` records in a database. - -=== GET /people/1 - -`Accept: application/json` - -[source,json] ----- -{ - "id": 1, - "name": "John Johnson", - "birth": "1988-01-10" -} ----- - -`Accept: application/hal+json` - -[source,json] ----- -{ - "id": 1, - "name": "John Johnson", - "birth": "1988-01-10", - "_links": { - "self": { - "href": "http://example.com/people/1" - }, - "remove": { - "href": "http://example.com/people/1" - }, - "update": { - "href": "http://example.com/people/1" - }, - "add": { - "href": "http://example.com/people" - }, - "list": { - "href": "http://example.com/people" - } - } -} ----- - -=== GET /people?page=0&size=2 - -`Accept: application/json` - -[source,json] ----- -[ - { - "id": 1, - "name": "John Johnson", - "birth": "1988-01-10" - }, - { - "id": 2, - "name": "Peter Peterson", - "birth": "1986-11-20" - } -] - ----- - -`Accept: application/hal+json` - -[source,json] ----- -{ - "_embedded": [ - { - "id": 1, - "name": "John Johnson", - "birth": "1988-01-10", - "_links": { - "self": { - "href": "http://example.com/people/1" - }, - "remove": { - "href": "http://example.com/people/1" - }, - "update": { - "href": "http://example.com/people/1" - }, - "add": { - "href": "http://example.com/people" - }, - "list": { - "href": "http://example.com/people" - } - } - }, - { - "id": 2, - "name": "Peter Peterson", - "birth": "1986-11-20", - "_links": { - "self": { - "href": "http://example.com/people/2" - }, - "remove": { - "href": "http://example.com/people/2" - }, - "update": { - "href": "http://example.com/people/2" - }, - "add": { - "href": "http://example.com/people" - }, - "list": { - "href": "http://example.com/people" - } - } - } - ], - "_links": { - "add": { - "href": "http://example.com/people" - }, - "list": { - "href": "http://example.com/people" - }, - "first": { - "href": "http://example.com/people?page=0&size=2" - }, - "last": { - "href": "http://example.com/people?page=2&size=2" - }, - "next": { - "href": "http://example.com/people?page=1&size=2" - } - } -} ----- - -Both responses would also contain these headers: - -* Link: < http://example.com/people?page=0&size=2 >; rel="first" -* Link: < http://example.com/people?page=2&size=2 >; rel="last" -* Link: < http://example.com/people?page=1&size=2 >; rel="next" - -A `previous` link header (and hal link) would not be included, because the previous page does not exist. diff --git a/_versions/2.7/guides/rest-json.adoc b/_versions/2.7/guides/rest-json.adoc deleted file mode 100644 index c78d04665b5..00000000000 --- a/_versions/2.7/guides/rest-json.adoc +++ /dev/null @@ -1,718 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Writing JSON REST Services - -include::./attributes.adoc[] - -JSON is now the _lingua franca_ between microservices. - -In this guide, we see how you can get your REST services to consume and produce JSON payloads. - -TIP: there is another guide if you need a xref:rest-client.adoc[REST client] (including support for JSON). - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -The application built in this guide is quite simple: the user can add elements in a list using a form and the list is updated. - -All the information between the browser and the server are formatted as JSON. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `rest-json-quickstart` {quickstarts-tree-url}/rest-json-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: rest-json-quickstart -:create-app-extensions: resteasy-jackson -include::includes/devtools/create-app.adoc[] - -This command generates a new project importing the RESTEasy/JAX-RS and https://github.com/FasterXML/jackson[Jackson] extensions, -and in particular adds the following dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-resteasy-jackson - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-resteasy-jackson") ----- - -[NOTE] -==== -To improve user experience, Quarkus registers the three Jackson https://github.com/FasterXML/jackson-modules-java8[Java 8 modules] so you don't need to do it manually. -==== - -Quarkus also supports https://eclipse-ee4j.github.io/jsonb-api/[JSON-B] so, if you prefer JSON-B over Jackson, you can create a project relying on the RESTEasy JSON-B extension instead: - -:create-app-artifact-id: rest-json-quickstart -:create-app-extensions: resteasy-jsonb -include::includes/devtools/create-app.adoc[] - -This command generates a new project importing the RESTEasy/JAX-RS and https://eclipse-ee4j.github.io/jsonb-api/[JSON-B] extensions, -and in particular adds the following dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-resteasy-jsonb - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-resteasy-jsonb") ----- - -== Creating your first JSON REST service - -In this example, we will create an application to manage a list of fruits. - -First, let's create the `Fruit` bean as follows: - -[source,java] ----- -package org.acme.rest.json; - -public class Fruit { - - public String name; - public String description; - - public Fruit() { - } - - public Fruit(String name, String description) { - this.name = name; - this.description = description; - } -} ----- - -Nothing fancy. One important thing to note is that having a default constructor is required by the JSON serialization layer. - -Now, create the `org.acme.rest.json.FruitResource` class as follows: - -[source,java] ----- -package org.acme.rest.json; - -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.Set; - -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; - -@Path("/fruits") -public class FruitResource { - - private Set fruits = Collections.newSetFromMap(Collections.synchronizedMap(new LinkedHashMap<>())); - - public FruitResource() { - fruits.add(new Fruit("Apple", "Winter fruit")); - fruits.add(new Fruit("Pineapple", "Tropical fruit")); - } - - @GET - public Set list() { - return fruits; - } - - @POST - public Set add(Fruit fruit) { - fruits.add(fruit); - return fruits; - } - - @DELETE - public Set delete(Fruit fruit) { - fruits.removeIf(existingFruit -> existingFruit.name.contentEquals(fruit.name)); - return fruits; - } -} ----- - -The implementation is pretty straightforward and you just need to define your endpoints using the JAX-RS annotations. - -The `Fruit` objects will be automatically serialized/deserialized by https://eclipse-ee4j.github.io/jsonb-api/[JSON-B] or https://github.com/FasterXML/jackson[Jackson], -depending on the extension you chose when initializing the project. - -[NOTE] -==== -When a JSON extension is installed such as `quarkus-resteasy-jackson` or `quarkus-resteasy-jsonb`, Quarkus will use the `application/json` media type -by default for most return values, unless the media type is explicitly set via -`@Produces` or `@Consumes` annotations (there are some exceptions for well known types, such as `String` and `File`, which default to `text/plain` and `application/octet-stream` -respectively). - -If you don't want JSON by default you can set `quarkus.resteasy-json.default-json=false` and the default will change back to being auto-negotiated. If you set this -you will need to add `@Produces(MediaType.APPLICATION_JSON)` and `@Consumes(MediaType.APPLICATION_JSON)` to your endpoints in order to use JSON. - -If you don't rely on the JSON default, it is heavily recommended to annotate your endpoints with the `@Produces` and `@Consumes` annotations to define precisely the expected content-types. -It will allow to narrow down the number of JAX-RS providers (which can be seen as converters) included in the native executable. -==== - -[[json]] -=== Configuring JSON support - -==== Jackson - -In Quarkus, the default Jackson `ObjectMapper` obtained via CDI (and consumed by the Quarkus extensions) is configured to ignore unknown properties -(by disabling the `DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES` feature). - -You can restore the default behavior of Jackson by setting `quarkus.jackson.fail-on-unknown-properties=true` in your `application.properties` -or on a per class basis via `@JsonIgnoreProperties(ignoreUnknown = false)`. - -Furthermore, the `ObjectMapper` is configured to format dates and time in ISO-8601 -(by disabling the `SerializationFeature.WRITE_DATES_AS_TIMESTAMPS` feature). - -The default behaviour of Jackson can be restored by setting `quarkus.jackson.write-dates-as-timestamps=true` -in your `application.properties`. If you want to change the format for a single field, you can use the -`@JsonFormat` annotation. - -Also, Quarkus makes it very easy to configure various Jackson settings via CDI beans. -The simplest (and suggested) approach is to define a CDI bean of type `io.quarkus.jackson.ObjectMapperCustomizer` -inside of which any Jackson configuration can be applied. - -An example where a custom module needs to be registered would look like so: - -[source,java] ----- -import com.fasterxml.jackson.databind.ObjectMapper; -import io.quarkus.jackson.ObjectMapperCustomizer; -import javax.inject.Singleton; - -@Singleton -public class RegisterCustomModuleCustomizer implements ObjectMapperCustomizer { - - public void customize(ObjectMapper mapper) { - mapper.registerModule(new CustomModule()); - } -} ----- - -Users can even provide their own `ObjectMapper` bean if they so choose. -If this is done, it is very important to manually inject and apply all `io.quarkus.jackson.ObjectMapperCustomizer` beans in the CDI producer that produces `ObjectMapper`. -Failure to do so will prevent Jackson specific customizations provided by various extensions from being applied. - -[source,java] ----- -import com.fasterxml.jackson.databind.ObjectMapper; -import io.quarkus.jackson.ObjectMapperCustomizer; - -import javax.enterprise.inject.Instance; -import javax.inject.Singleton; - -public class CustomObjectMapper { - - // Replaces the CDI producer for ObjectMapper built into Quarkus - @Singleton - ObjectMapper objectMapper(Instance customizers) { - ObjectMapper mapper = myObjectMapper(); // Custom `ObjectMapper` - - // Apply all ObjectMapperCustomizer beans (incl. Quarkus) - for (ObjectMapperCustomizer customizer : customizers) { - customizer.customize(mapper); - } - - return mapper; - } -} ----- - -==== JSON-B - -As stated above, Quarkus provides the option of using JSON-B instead of Jackson via the use of the `quarkus-resteasy-jsonb` extension. - -Following the same approach as described in the previous section, JSON-B can be configured using a `io.quarkus.jsonb.JsonbConfigCustomizer` bean. - -If for example a custom serializer named `FooSerializer` for type `com.example.Foo` needs to be registered with JSON-B, the addition of a bean like the following would suffice: - -[source,java] ----- -import io.quarkus.jsonb.JsonbConfigCustomizer; -import javax.inject.Singleton; -import javax.json.bind.JsonbConfig; -import javax.json.bind.serializer.JsonbSerializer; - -@Singleton -public class FooSerializerRegistrationCustomizer implements JsonbConfigCustomizer { - - public void customize(JsonbConfig config) { - config.withSerializers(new FooSerializer()); - } -} ----- - -A more advanced option would be to directly provide a bean of `javax.json.bind.JsonbConfig` (with a `Dependent` scope) or in the extreme case to provide a bean of type `javax.json.bind.Jsonb` (with a `Singleton` scope). -If the latter approach is leveraged it is very important to manually inject and apply all `io.quarkus.jsonb.JsonbConfigCustomizer` beans in the CDI producer that produces `javax.json.bind.Jsonb`. -Failure to do so will prevent JSON-B specific customizations provided by various extensions from being applied. - -[source,java] ----- -import io.quarkus.jsonb.JsonbConfigCustomizer; - -import javax.enterprise.context.Dependent; -import javax.enterprise.inject.Instance; -import javax.json.bind.JsonbConfig; - -public class CustomJsonbConfig { - - // Replaces the CDI producer for JsonbConfig built into Quarkus - @Dependent - JsonbConfig jsonConfig(Instance customizers) { - JsonbConfig config = myJsonbConfig(); // Custom `JsonbConfig` - - // Apply all JsonbConfigCustomizer beans (incl. Quarkus) - for (JsonbConfigCustomizer customizer : customizers) { - customizer.customize(config); - } - - return config; - } -} ----- - - -== Creating a frontend - -Now let's add a simple web page to interact with our `FruitResource`. -Quarkus automatically serves static resources located under the `META-INF/resources` directory. -In the `src/main/resources/META-INF/resources` directory, add a `fruits.html` file with the content from this {quickstarts-blob-url}/rest-json-quickstart/src/main/resources/META-INF/resources/fruits.html[fruits.html] file in it. - -You can now interact with your REST service: - -:devtools-wrapped: - - * start Quarkus with: -+ -include::includes/devtools/dev.adoc[] - * open a browser to `http://localhost:8080/fruits.html` - * add new fruits to the list via the form - -:!devtools-wrapped: - -== Building a native executable - -You can build a native executable with the usual command: - -include::includes/devtools/build-native.adoc[] - -Running it is as simple as executing `./target/rest-json-quickstart-1.0.0-SNAPSHOT-runner`. - -You can then point your browser to `http://localhost:8080/fruits.html` and use your application. - -== About serialization - -JSON serialization libraries use Java reflection to get the properties of an object and serialize them. - -When using native executables with GraalVM, all classes that will be used with reflection need to be registered. -The good news is that Quarkus does that work for you most of the time. -So far, we haven't registered any class, not even `Fruit`, for reflection usage and everything is working fine. - -Quarkus performs some magic when it is capable of inferring the serialized types from the REST methods. -When you have the following REST method, Quarkus determines that `Fruit` will be serialized: - -[source,JAVA] ----- -@GET -public List list() { - // ... -} ----- - -Quarkus does that for you automatically by analyzing the REST methods at build time -and that's why we didn't need any reflection registration in the first part of this guide. - -Another common pattern in the JAX-RS world is to use the `Response` object. -`Response` comes with some nice perks: - - * you can return different entity types depending on what happens in your method (a `Legume` or an `Error` for instance); - * you can set the attributes of the `Response` (the status comes to mind in the case of an error). - -Your REST method then looks like this: - -[source,JAVA] ----- -@GET -public Response list() { - // ... -} ----- - -It is not possible for Quarkus to determine at build time the type included in the `Response` as the information is not available. -In this case, Quarkus won't be able to automatically register for reflection the required classes. - -This leads us to our next section. - -== Using Response - -Let's create the `Legume` class which will be serialized as JSON, following the same model as for our `Fruit` class: - -[source,JAVA] ----- -package org.acme.rest.json; - -public class Legume { - - public String name; - public String description; - - public Legume() { - } - - public Legume(String name, String description) { - this.name = name; - this.description = description; - } -} ----- - -Now let's create a `LegumeResource` REST service with only one method which returns the list of legumes. - -This method returns a `Response` and not a list of `Legume`. - -[source,JAVA] ----- -package org.acme.rest.json; - -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.Set; - -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -@Path("/legumes") -@Produces(MediaType.APPLICATION_JSON) -@Consumes(MediaType.APPLICATION_JSON) -public class LegumeResource { - - private Set legumes = Collections.synchronizedSet(new LinkedHashSet<>()); - - public LegumeResource() { - legumes.add(new Legume("Carrot", "Root vegetable, usually orange")); - legumes.add(new Legume("Zucchini", "Summer squash")); - } - - @GET - public Response list() { - return Response.ok(legumes).build(); - } -} ----- - -Now let's add a simple web page to display our list of legumes. -In the `src/main/resources/META-INF/resources` directory, add a `legumes.html` file with the content from this -{quickstarts-blob-url}/rest-json-quickstart/src/main/resources/META-INF/resources/legumes.html[legumes.html] file in it. - -Open a browser to http://localhost:8080/legumes.html and you will see our list of legumes. - -The interesting part starts when running the application as a native executable: - -:devtools-wrapped: - - * create the native executable with: -+ -include::includes/devtools/build-native.adoc[] - * execute it with `./target/rest-json-quickstart-1.0.0-SNAPSHOT-runner` - * open a browser and go to http://localhost:8080/legumes.html - -:!devtools-wrapped: - -No legumes there. - -As mentioned above, the issue is that Quarkus was not able to determine the `Legume` class will require some reflection by analyzing the REST endpoints. -The JSON serialization library tries to get the list of fields of `Legume` and gets an empty list so it does not serialize the fields' data. - -[NOTE] -==== -At the moment, when JSON-B or Jackson tries to get the list of fields of a class, if the class is not registered for reflection, no exception will be thrown. -GraalVM will simply return an empty list of fields. - -Hopefully, this will change in the future and make the error more obvious. -==== - -We can register `Legume` for reflection manually by adding the `@RegisterForReflection` annotation on our `Legume` class: -[source,JAVA] ----- -import io.quarkus.runtime.annotations.RegisterForReflection; - -@RegisterForReflection -public class Legume { - // ... -} ----- - -TIP: The `@RegisterForReflection` annotation instructs Quarkus to keep the class and its members during the native compilation. More details about the `@RegisterForReflection` annotation can be found on the xref:writing-native-applications-tips.adoc#registerForReflection[native application tips] page. - -Let's do that and follow the same steps as before: - -:devtools-wrapped: - - * hit `Ctrl+C` to stop the application - * create the native executable with: -+ -include::includes/devtools/build-native.adoc[] - * execute it with `./target/rest-json-quickstart-1.0.0-SNAPSHOT-runner` - * open a browser and go to http://localhost:8080/legumes.html - -:!devtools-wrapped: - -This time, you can see our list of legumes. - -[[reactive]] -== Being reactive - -You can return _reactive types_ to handle asynchronous processing. -Quarkus recommends the usage of https://smallrye.io/smallrye-mutiny[Mutiny] to write reactive and asynchronous code. - -To integrate Mutiny and RESTEasy, you need to add the `quarkus-resteasy-mutiny` dependency to your project: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-resteasy-mutiny - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-resteasy-mutiny") ----- - -Then, your endpoint can return `Uni` or `Multi` instances: - -[source,java] ----- - -@GET -@Path("/{name}") -public Uni getOne(@PathParam String name) { - return findByName(name); -} - -@GET -public Multi getAll() { - return findAll(); -} ----- - -Use `Uni` when you have a single result. -Use `Multi` when you have multiple items that may be emitted asynchronously. - -You can use `Uni` and `Response` to return asynchronous HTTP responses: `Uni`. - -More details about Mutiny can be found in xref:mutiny-primer.adoc[Mutiny - an intuitive reactive programming library]. - -== HTTP filters and interceptors - -Both HTTP request and response can be intercepted by providing `ContainerRequestFilter` or `ContainerResponseFilter` -implementations respectively. These filters are suitable for processing the metadata associated with a message: HTTP -headers, query parameters, media type, and other metadata. They also have the capability to abort the request -processing, for instance when the user does not have the permissions to access the endpoint. - -Let's use `ContainerRequestFilter` to add logging capability to our service. We can do that by implementing -`ContainerRequestFilter` and annotating it with the `@Provider` annotation: - -[source,java] ----- -package org.acme.rest.json; - -import io.vertx.core.http.HttpServerRequest; -import org.jboss.logging.Logger; - -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.UriInfo; -import javax.ws.rs.ext.Provider; - -@Provider -public class LoggingFilter implements ContainerRequestFilter { - - private static final Logger LOG = Logger.getLogger(LoggingFilter.class); - - @Context - UriInfo info; - - @Context - HttpServerRequest request; - - @Override - public void filter(ContainerRequestContext context) { - - final String method = context.getMethod(); - final String path = info.getPath(); - final String address = request.remoteAddress().toString(); - - LOG.infof("Request %s %s from IP %s", method, path, address); - } -} ----- - -Now, whenever a REST method is invoked, the request will be logged into the console: - -[source,text] ----- -2019-06-05 12:44:26,526 INFO [org.acm.res.jso.LoggingFilter] (executor-thread-1) Request GET /legumes from IP 127.0.0.1 -2019-06-05 12:49:19,623 INFO [org.acm.res.jso.LoggingFilter] (executor-thread-1) Request GET /fruits from IP 0:0:0:0:0:0:0:1 -2019-06-05 12:50:44,019 INFO [org.acm.res.jso.LoggingFilter] (executor-thread-1) Request POST /fruits from IP 0:0:0:0:0:0:0:1 -2019-06-05 12:51:04,485 INFO [org.acm.res.jso.LoggingFilter] (executor-thread-1) Request GET /fruits from IP 127.0.0.1 ----- - -== CORS filter - -link:https://en.wikipedia.org/wiki/Cross-origin_resource_sharing[Cross-origin resource sharing] (CORS) is a mechanism that -allows restricted resources on a web page to be requested from another domain outside the domain from which the first resource -was served. - -Quarkus comes with a CORS filter. Read the xref:http-reference.adoc#cors-filter[HTTP Reference Documentation] to learn -how to use it. - -== GZip Support - -Quarkus comes with GZip support (even though it is not enabled by default). The following configuration knobs allow to configure GZip support. - -[source, properties] ----- -quarkus.resteasy.gzip.enabled=true // <1> -quarkus.resteasy.gzip.max-input=10M // <2> ----- - -<1> Enable Gzip support. -<2> Configure the upper limit on deflated request body. This is useful to mitigate potential attacks by limiting their reach. The default value is `10M`. -This configuration option would recognize strings in this format (shown as a regular expression): `[0-9]+[KkMmGgTtPpEeZzYy]?`. If no suffix is given, assume bytes. - -Once GZip support has been enabled you can use it on an endpoint by adding the `@org.jboss.resteasy.annotations.GZIP` annotation to your endpoint method. - -If you want to compress everything then we recommended that you use the `quarkus.http.enable-compression=true` setting instead to globally enable -compression support. - -== Multipart Support - -RESTEasy supports multipart via the https://docs.jboss.org/resteasy/docs/4.5.6.Final/userguide/html/Multipart.html[RESTEasy Multipart Provider]. - -Quarkus provides an extension called `quarkus-resteasy-multipart` to make things easier for you. - -This extension slightly differs from the RESTEasy default behavior as the default charset (if none is specified in your request) is UTF-8 rather than US-ASCII. - -You can configure this behavior with the following configuration properties: - -include::{generated-dir}/config/quarkus-resteasy-multipart.adoc[leveloffset=+1, opts=optional] - -== Servlet compatibility - -In Quarkus, RESTEasy can either run directly on top of the Vert.x HTTP server, or on top of Undertow if you have any servlet dependency. - -As a result, certain classes, such as `HttpServletRequest` are not always available for injection. Most use-cases for this particular -class are covered by JAX-RS equivalents, except for getting the remote client's IP. RESTEasy comes with a replacement API which you can inject: -https://docs.jboss.org/resteasy/docs/4.5.6.Final/javadocs/org/jboss/resteasy/spi/HttpRequest.html[`HttpRequest`], which has the methods -https://docs.jboss.org/resteasy/docs/4.5.6.Final/javadocs/org/jboss/resteasy/spi/HttpRequest.html#getRemoteAddress--[`getRemoteAddress()`] -and https://docs.jboss.org/resteasy/docs/4.5.6.Final/javadocs/org/jboss/resteasy/spi/HttpRequest.html#getRemoteHost--[`getRemoteHost()`] -to solve this problem. - -== RESTEasy and REST Client interactions - -In Quarkus, the RESTEasy extension and xref:rest-client.adoc[the REST Client extension] share the same infrastructure. -One important consequence of this consideration is that they share the same list of providers (in the JAX-RS meaning of the word). - -For instance, if you declare a `WriterInterceptor`, it will by default intercept both the servers calls and the client calls, -which might not be the desired behavior. - -However, you can change this default behavior and constrain a provider to: - -* only consider *server* calls by adding the `@ConstrainedTo(RuntimeType.SERVER)` annotation to your provider; -* only consider *client* calls by adding the `@ConstrainedTo(RuntimeType.CLIENT)` annotation to your provider. - -== What's Different from Jakarta EE Development - -=== No Need for `Application` Class - -Configuration via an application-supplied subclass of `Application` is supported, but not required. - -=== Only a single JAX-RS application - -In contrast to JAX-RS (and RESTeasy) running in a standard servlet-container, Quarkus only supports the deployment of a single JAX-RS application. -If multiple JAX-RS `Application` classes are defined, the build will fail with the message `Multiple classes have been annotated with @ApplicationPath which is currently not supported`. - -If multiple JAX-RS applications are defined, the property `quarkus.resteasy.ignore-application-classes=true` can be used to ignore all explicit `Application` classes. This makes all resource-classes available via the application-path as defined by `quarkus.resteasy.path` (default: `/`). - -=== Support limitations of JAX-RS application - -The RESTEasy extension doesn't support the method `getProperties()` of the class `javax.ws.rs.core.Application`. Moreover, it only relies on the methods `getClasses()` and `getSingletons()` to filter out the annotated resource, provider and feature classes. -It doesn't filter out the built-in resource, provider and feature classes and also the resource, provider and feature classes registered by the other extensions. -Finally the objects returned by the method `getSingletons()` are ignored, only the classes are took into account to filter out the resource, provider and feature classes, in other words the method `getSingletons()` is actually managed the same way as `getClasses()`. - -=== Lifecycle of Resources - -In Quarkus all JAX-RS resources are treated as CDI beans. -It's possible to inject other beans via `@Inject`, bind interceptors using bindings such as `@Transactional`, define `@PostConstruct` callbacks, etc. - -If there is no scope annotation declared on the resource class then the scope is defaulted. -The default scope can be controlled through the `quarkus.resteasy.singleton-resources` property. -If set to `true` (default) then a *single instance* of a resource class is created to service all requests (as defined by `@javax.inject.Singleton`). -If set to `false` then a *new instance* of the resource class is created per each request. -An explicit CDI scope annotation (`@RequestScoped`, `@ApplicationScoped`, etc.) always overrides the default behavior and specifies the lifecycle of resource instances. - -== Include/Exclude JAX-RS classes with build time conditions - -Quarkus enables the inclusion or exclusion of JAX-RS Resources, Providers and Features directly thanks to build time conditions in the same that it does for CDI beans. -Thus, the various JAX-RS classes can be annotated with profile conditions (`@io.quarkus.arc.profile.IfBuildProfile` or `@io.quarkus.arc.profile.UnlessBuildProfile`) and/or with property conditions (`io.quarkus.arc.properties.IfBuildProperty` or `io.quarkus.arc.properties.UnlessBuildProperty`) to indicate to Quarkus at build time under which conditions these JAX-RS classes should be included. - -In the following example, Quarkus includes the endpoint `sayHello` if and only if the build profile `app1` has been enabled. - -[source,java] ----- -@IfBuildProfile("app1") -public class ResourceForApp1Only { - - @GET - @Path("sayHello") - public String sayHello() { - return "hello"; - } -} ----- - -Please note that if a JAX-RS Application has been detected and the method `getClasses()` and/or `getSingletons()` has/have been overridden, Quarkus will ignore the build time conditions and consider only what has been defined in the JAX-RS Application. - -== Conclusion - -Creating JSON REST services with Quarkus is easy as it relies on proven and well known technologies. - -As usual, Quarkus further simplifies things under the hood when running your application as a native executable. - -There is only one thing to remember: if you use `Response` and Quarkus can't determine the beans that are serialized, you need to annotate them with `@RegisterForReflection`. diff --git a/_versions/2.7/guides/resteasy-reactive.adoc b/_versions/2.7/guides/resteasy-reactive.adoc deleted file mode 100644 index 6288698e08b..00000000000 --- a/_versions/2.7/guides/resteasy-reactive.adoc +++ /dev/null @@ -1,2120 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Writing REST Services with RESTEasy Reactive - -include::./attributes.adoc[] -:jaxrsapi: https://javadoc.io/doc/javax.ws.rs/javax.ws.rs-api/2.1.1 -:jaxrsspec: /specs/jaxrs/2.1/index.html -:jdkapi: https://docs.oracle.com/en/java/javase/11/docs/api/java.base -:mutinyapi: https://smallrye.io/smallrye-mutiny/apidocs -:httpspec: https://tools.ietf.org/html/rfc7231 -:jsonpapi: https://javadoc.io/doc/javax.json/javax.json-api/1.1.4 -:vertxapi: https://javadoc.io/static/io.vertx/vertx-core/4.1.0 -:resteasy-reactive-api: https://javadoc.io/doc/io.quarkus.resteasy.reactive/resteasy-reactive/2.0.0.Final -:resteasy-reactive-common-api: https://javadoc.io/doc/io.quarkus.resteasy.reactive/resteasy-reactive-common/2.0.0.Final - -This guide explains how to write REST Services with RESTEasy Reactive in Quarkus. - -== What is RESTEasy Reactive? - -RESTEasy Reactive is a new link:{jaxrsspec}[JAX-RS] -implementation written from the ground up to work on our -common https://vertx.io/[Vert.x] layer and is thus fully reactive, while also being very tightly integrated with -Quarkus and consequently moving a lot of work to build time. - -You should be able to use it in place of any JAX-RS implementation, but on top of that it has -great performance for both blocking and non-blocking endpoints, and a lot of new features on top -of what JAX-RS provides. - -== Writing endpoints - -=== Getting started - -Add the following import to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-resteasy-reactive - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-resteasy-reactive") ----- - -You can now write your first endpoint in the `org.acme.rest.Endpoint` class: - -[source,java] ----- -package org.acme.rest; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -@Path("") -public class Endpoint { - - @GET - public String hello() { - return "Hello, World!"; - } -} ----- - -=== Terminology - -REST:: https://en.wikipedia.org/wiki/Representational_state_transfer[REpresentational State Transfer] -Endpoint:: Java method which is called to serve a REST call -URL / URI (Uniform Resource Locator / Identifier):: Used to identify the location of REST resources (https://tools.ietf.org/html/rfc7230#section-2.7[specification]) -Resource:: Represents your domain object. This is what your API serves and modifies. Also called an `entity` in JAX-RS. -Representation:: How your resource is represented on the wire, can vary depending on content types -Content type:: Designates a particular representation (also called a media type), for example `text/plain` or `application/json` -HTTP:: Underlying wire protocol for routing REST calls (see https://tools.ietf.org/html/rfc7230[HTTP specifications]) -HTTP request:: the request part of the HTTP call, consisting of an HTTP method, a target URI, headers and an optional message body -HTTP response:: the response part of the HTTP call, consisting of an HTTP response status, headers and an optional message body - -=== Declaring endpoints: URI mapping - -Any class annotated with a link:{jaxrsapi}/javax/ws/rs/Path.html[`@Path`] annotation can have its methods exposed as REST endpoints, -provided they have an HTTP method annotation (see below). - -That link:{jaxrsapi}/javax/ws/rs/Path.html[`@Path`] annotation defines the URI prefix under which those methods will be exposed. It can -be empty, or contain a prefix such as `rest` or `rest/V1`. - -Each exposed endpoint method can in turn have another link:{jaxrsapi}/javax/ws/rs/Path.html[`@Path`] annotation which adds to its containing -class annotation. For example, this defines a `rest/hello` endpoint: - -[source,java] ----- -package org.acme.rest; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -@Path("rest") -public class Endpoint { - - @Path("hello") - @GET - public String hello() { - return "Hello, World!"; - } -} ----- - -See <> for more information about URI mapping. - -You can set the root path for all rest endpoints using the `@ApplicationPath` annotation, as shown below. - -[source,java] ----- -package org.acme.rest; - -import javax.ws.rs.ApplicationPath; -import javax.ws.rs.core.Application; - -@ApplicationPath("/api") -public static class MyApplication extends Application { - -} ----- - -This will cause all rest endpoints to be resolve relative to `/api`, so the endpoint above with `@Path("rest")` would -be accessible at `/api/rest/. You can also set the `quarkus.rest.path` build time property to set the root path if you -don't want to use an annotation. - -=== Declaring endpoints: HTTP methods - -Each endpoint method must be annotated with one of the following annotations, which defines which HTTP -method will be mapped to the method: - -.Table HTTP method annotations -|=== -|Annotation|Usage - -|link:{jaxrsapi}/javax/ws/rs/GET.html[`@GET`] -|Obtain a resource representation, should not modify state, link:{httpspec}#section-4.2.2[idempotent] (link:{httpspec}#section-4.3.1[HTTP docs]) - -|link:{jaxrsapi}/javax/ws/rs/HEAD.html[`@HEAD`] -|Obtain metadata about a resource, similar to `GET` with no body (link:{httpspec}#section-4.3.2[HTTP docs]) - -|link:{jaxrsapi}/javax/ws/rs/POST.html[`@POST`] -|Create a resource and obtain a link to it (link:{httpspec}#section-4.3.3[HTTP docs]) - -|link:{jaxrsapi}/javax/ws/rs/PUT.html[`@PUT`] -|Replace a resource or create one, should be link:{httpspec}#section-4.2.2[idempotent] (link:{httpspec}#section-4.3.4[HTTP docs]) - -|link:{jaxrsapi}/javax/ws/rs/DELETE.html[`@DELETE`] -|Delete an existing resource, link:{httpspec}#section-4.2.2[idempotent] (link:{httpspec}#section-4.3.5[HTTP docs]) - -|link:{jaxrsapi}/javax/ws/rs/OPTIONS.html[`@OPTIONS`] -|Obtain information about a resource, link:{httpspec}#section-4.2.2[idempotent] (link:{httpspec}#section-4.3.7[HTTP docs]) - -|link:{jaxrsapi}/javax/ws/rs/PATCH.html[`@PATCH`] -|Update a resource, or create one, not link:{httpspec}#section-4.2.2[idempotent] (https://tools.ietf.org/html/rfc5789#section-2[HTTP docs]) - -|=== - -You can also declare other HTTP methods by declaring them as an annotation with the -link:{jaxrsapi}/javax/ws/rs/HttpMethod.html[`@HttpMethod`] annotation: - -[source,java] ----- -package org.acme.rest; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -import javax.ws.rs.HttpMethod; -import javax.ws.rs.Path; - -@Retention(RetentionPolicy.RUNTIME) -@HttpMethod("FROMAGE") -@interface FROMAGE { -} - -@Path("") -public class Endpoint { - - @FROMAGE - public String hello() { - return "Hello, Cheese World!"; - } -} ----- - -=== Declaring endpoints: representation / content types - -Each endpoint method may consume or produce specific resource representations, which are indicated by -the HTTP link:{httpspec}#section-3.1.1.5[`Content-Type`] header, which in turn contains -link:{httpspec}#section-3.1.1.1[MIME (Media Type)] values, such as the following: - -- `text/plain` which is the default for any endpoint returning a `String`. -- `text/html` for HTML (such as with xref:qute.adoc[Qute templating]) -- `application/json` for a <> -- `text/*` which is a sub-type wildcard for any text media type -- `\*/*` which is a wildcard for any media type - -You may annotate your endpoint class with the link:{jaxrsapi}/javax/ws/rs/Produces.html[`@Produces`] -or link:{jaxrsapi}/javax/ws/rs/Consumes.html[`@Consumes`] annotations, which -allow you to specify one or more media types that your endpoint may accept as HTTP request body -or produce as HTTP response body. Those class annotations apply to each method. - -Any method may also be annotated with the link:{jaxrsapi}/javax/ws/rs/Produces.html[`@Produces`] -or link:{jaxrsapi}/javax/ws/rs/Consumes.html[`@Consumes`] annotations, in which -case they override any eventual class annotation. - -The link:{jaxrsapi}/javax/ws/rs/core/MediaType.html[`MediaType`] class has many constants you -can use to point to specific pre-defined media types. - -See <> for more information. - -=== Accessing request parameters - -[[request-parameters]] - -NOTE: don't forget to configure your compiler to generate parameter name information with `-parameters` (javac) -or `` or `` (https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#parameters[Maven]). - -The following HTTP request elements may be obtained by your endpoint method: - -.Table HTTP request parameter annotations -|=== -|HTTP element|Annotation|Usage - -|[[path-parameter]]Path parameter -|link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestPath.html[`@RestPath`] (or nothing) -|URI template parameter (simplified version of the https://tools.ietf.org/html/rfc6570[URI Template specification]), -see <> for more information. - -|Query parameter -|link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestQuery.html[`@RestQuery`] -|The value of an https://tools.ietf.org/html/rfc3986#section-3.4[URI query parameter] - -|Header -|link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestHeader.html[`@RestHeader`] -|The value of an https://tools.ietf.org/html/rfc7230#section-3.2[HTTP header] - -|Cookie -|link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestCookie.html[`@RestCookie`] -|The value of an https://tools.ietf.org/html/rfc6265#section-4.2[HTTP cookie] - -|Form parameter -|link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestForm.html[`@RestForm`] -|The value of an https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST[HTTP URL-encoded FORM] - -|Matrix parameter -|link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestMatrix.html[`@RestMatrix`] -|The value of an https://tools.ietf.org/html/rfc3986#section-3.3[URI path segment parameter] - -|=== - -For each of those annotations, you may specify the name of the element they refer to, otherwise -they will use the name of the annotated method parameter. - -If a client made the following HTTP call: - -[source,http] ----- -POST /cheeses;variant=goat/tomme?age=matured HTTP/1.1 -Content-Type: application/x-www-form-urlencoded -Cookie: level=hardcore -X-Cheese-Secret-Handshake: fist-bump - -smell=strong ----- - -Then you could obtain all the various parameters with this endpoint method: - -[source,java] ----- -package org.acme.rest; - -import javax.ws.rs.POST; -import javax.ws.rs.Path; - -import org.jboss.resteasy.reactive.RestCookie; -import org.jboss.resteasy.reactive.RestForm; -import org.jboss.resteasy.reactive.RestHeader; -import org.jboss.resteasy.reactive.RestMatrix; -import org.jboss.resteasy.reactive.RestPath; -import org.jboss.resteasy.reactive.RestQuery; - -@Path("/cheeses/{type}") -public class Endpoint { - - @POST - public String allParams(@RestPath String type, - @RestMatrix String variant, - @RestQuery String age, - @RestCookie String level, - @RestHeader("X-Cheese-Secret-Handshake") - String secretHandshake, - @RestForm String smell) { - return type + "/" + variant + "/" + age + "/" + level + "/" + secretHandshake + "/" + smell; - } -} ----- - -NOTE: the link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestPath.html[`@RestPath`] -annotation is optional: any parameter whose name matches an existing URI -template variable will be automatically assumed to have link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestPath.html[`@RestPath`]. - -You can also use any of the JAX-RS annotations link:{jaxrsapi}/javax/ws/rs/PathParam.html[`@PathParam`], -link:{jaxrsapi}/javax/ws/rs/QueryParam.html[`@QueryParam`], -link:{jaxrsapi}/javax/ws/rs/HeaderParam.html[`@HeaderParam`], -link:{jaxrsapi}/javax/ws/rs/CookieParam.html[`@CookieParam`], -link:{jaxrsapi}/javax/ws/rs/FormParam.html[`@FormParam`] or -link:{jaxrsapi}/javax/ws/rs/MatrixParam.html[`@MatrixParam`] for this, -but they require you to specify the parameter name. - -See <> for more advanced use-cases. - -=== Declaring URI parameters - -[[uri-parameters]] - -You can declare URI parameters and use regular expressions in your path, so for instance -the following endpoint will serve requests for `/hello/stef/23` and `/hello` but not -`/hello/stef/0x23`: - -[source,java] ----- -package org.acme.rest; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -@Path("hello") -public class Endpoint { - - @Path("{name}/{age:\\d+}") - @GET - public String personalisedHello(String name, int age) { - return "Hello " + name + " is your age really " + age + "?"; - } - - @GET - public String genericHello() { - return "Hello stranger"; - } -} ----- - - -=== Accessing the request body - -Any method parameter with no annotation will receive the method body.footnote:[Unless it is a -<> or a <>.], after it has been mapped from -its HTTP representation to the Java type of the parameter. - -The following parameter types will be supported out of the box: - -[[resource-types]] - -.Table Request body parameter type -|=== -|Type|Usage - -|link:{jdkapi}/java/io/File.html[`File`] -|The entire request body in a temporary file - -|`byte[]` -|The entire request body, not decoded - -|`char[]` -|The entire request body, decoded - -|link:{jdkapi}/java/lang/String.html[`String`] -|The entire request body, decoded - -|link:{jdkapi}/java/io/InputStream.html[`InputStream`] -|The request body in a blocking stream - -|link:{jdkapi}/java/io/Reader.html[`Reader`] -|The request body in a blocking stream - -|All Java primitives and their wrapper classes -|Java primitive types - -|link:{jdkapi}/java/math/BigDecimal.html[`BigDecimal`], link:{jdkapi}/java/math/BigInteger.html[`BigInteger`] -|Large integers and decimals. - -|link:{jsonpapi}/javax/json/JsonArray.html[`JsonArray`], link:{jsonpapi}/javax/json/JsonArray.html[`JsonObject`], -link:{jsonpapi}/javax/json/JsonArray.html[`JsonStructure`], link:{jsonpapi}/javax/json/JsonArray.html[`JsonValue`] -|JSON value types - -|link:{vertxapi}io/vertx/core/buffer/Buffer.html[`Buffer`] -|Vert.x Buffer - -|any other type -|Will be <> - -|=== - -NOTE: You can add support for more <>. - -=== Handling Multipart Form data - -To handle HTTP requests that have `multipart/form-data` as their content type, RESTEasy Reactive introduces the -link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/MultipartForm.html[`@MultipartForm`] annotation. -Let us look at an example of its use. - -Assuming an HTTP request containing a file upload and a form value containing a string description need to be handled, we could write a POJO -that will hold this information like so: - -[source,java] ----- -import javax.ws.rs.core.MediaType; - -import org.jboss.resteasy.reactive.PartType; -import org.jboss.resteasy.reactive.RestForm; -import org.jboss.resteasy.reactive.multipart.FileUpload; - -public class FormData { - - @RestForm - @PartType(MediaType.TEXT_PLAIN) - public String description; - - @RestForm("image") - public FileUpload file; -} ----- - -The `name` field will contain the data contained in the part of HTTP request called `description` (because -link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestForm.html[`@RestForm`] does not define a value, the field name is used), -while the `file` field will contain data about the uploaded file in the `image` part of HTTP request. - -NOTE: link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/multipart/FileUpload.html[`FileUpload`] -provides access to various metadata of the uploaded file. If however all you need is a handle to the uploaded file, `java.nio.file.Path` or `java.io.File` could be used. - -NOTE: When access to all uploaded files without specifying the form names is needed, RESTEasy Reactive allows the use of `@RestForm List`, where it is important to **not** set a name for the link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestForm.html[`@RestForm`] annotation. - -NOTE: link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/PartType.html[`@PartType`] is used to aid -in deserialization of the corresponding part of the request into the desired Java type. It is very useful when -for example the corresponding body part is JSON and needs to be converted to a POJO. - -This POJO could be used in a Resource method like so: - -[source,java] ----- -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.jboss.resteasy.reactive.MultipartForm; - -@Path("multipart") -public class Endpoint { - - @POST - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.MULTIPART_FORM_DATA) - @Path("form") - public String form(@MultipartForm FormData formData) { - // return something - } -} ----- - -The use of link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/MultipartForm.html[`@MultipartForm`] as -method parameter makes RESTEasy Reactive handle the request as a multipart form request. - -TIP: The use of `@MultipartForm` is actually unnecessary as RESTEasy Reactive can infer this information from the use of `@Consumes(MediaType.MULTIPART_FORM_DATA)` - -WARNING: When handling file uploads, it is very important to move the file to permanent storage (like a database, a dedicated file system or a cloud storage) in your code that handles the POJO. -Otherwise, the file will no longer be accessible when the request terminates. -Moreoever if `quarkus.http.body.delete-uploaded-files-on-end` is set to true, Quarkus will delete the uploaded file when the HTTP response is sent. If the setting is disabled, -the file will reside on the file system of the server (in the directory defined by the `quarkus.http.body.uploads-directory` configuration option), but as the uploaded files are saved -with a UUID file name and no additional metadata is saved, these files are essentially a random dump of files. - -Similarly, RESTEasy Reactive can produce Multipart Form data to allow users download files from the server. For example, we could write a POJO -that will hold the information we want to expose as: - -[source,java] ----- -import javax.ws.rs.core.MediaType; - -import org.jboss.resteasy.reactive.PartType; -import org.jboss.resteasy.reactive.RestForm; - -public class DownloadFormData { - - @RestForm - String name; - - @RestForm - @PartType(MediaType.APPLICATION_OCTET_STREAM) - File file; -} ----- - -And then expose this POJO via a Resource like so: - -[source,java] ----- -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("multipart") -public class Endpoint { - - @GET - @Produces(MediaType.MULTIPART_FORM_DATA) - @Path("file") - public DownloadFormData getFile() { - // return something - } -} ----- - -WARNING: For the time being, returning Multipart data is limited to be blocking endpoints. - -=== Returning a response body - -In order to return an HTTP response, simply return the resource you want from your method. The method -return type and its optional content type will be used to decide how to serialise it to the HTTP -response (see <> for more advanced information). - -You can return any of the pre-defined types that you can read from the <>, -and any other type will be mapped <>. - -In addition, the following return types are also supported: - -.Table Additional response body parameter type -|=== -|Type|Usage - -|link:{jdkapi}/java/nio/file/Path.html[`Path`] -|The contents of the file specified by the given path - -|link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/PathPart.html[`PathPart`] -|The partial contents of the file specified by the given path - -|link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/FilePart.html[`FilePart`] -|The partial contents of a file - -|link:{vertxapi}/io/vertx/core/file/AsyncFile.html[`AsyncFile`] -|Vert.x AsyncFile, which can be in full, or partial - -|=== - -Alternately, you can also return a <> such as link:{mutinyapi}/io/smallrye/mutiny/Uni.html[`Uni`], -link:{mutinyapi}/io/smallrye/mutiny/Multi.html[`Multi`] or -link:{jdkapi}/java/util/concurrent/CompletionStage.html[`CompletionStage`] -that resolve to one of the mentioned return types. - -=== Setting other response properties - -==== Manually setting the response - -If you need to set more properties on the HTTP response than just the body, such as the status code -or headers, you can make your method return `org.jboss.resteasy.reactive.RestResponse` from a resource method. -An example of this could look like: - -[source,java] ----- -package org.acme.rest; - -import java.time.Duration; -import java.time.Instant; -import java.util.Date; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.NewCookie; - -import org.jboss.resteasy.reactive.RestResponse; -import org.jboss.resteasy.reactive.RestResponse.ResponseBuilder; - -@Path("") -public class Endpoint { - - @GET - public RestResponse hello() { - // HTTP OK status with text/plain content type - return ResponseBuilder.ok("Hello, World!", MediaType.TEXT_PLAIN_TYPE) - // set a response header - .header("X-FroMage", "Camembert") - // set the Expires response header to two days from now - .expires(Date.from(Instant.now().plus(Duration.ofDays(2)))) - // send a new cookie - .cookie(new NewCookie("Flavour", "praliné")) - // end of builder API - .build(); - } -} ----- - -NOTE: You can also use the JAX-RS type link:{jaxrsapi}/javax/ws/rs/core/Response.html[`Response`] but it is -not strongly typed to your entity. - -==== Using annotations - -Alternatively, if you only need to set the status code and / or HTTP headers with static values, you can use `@org.jboss.resteasy.reactive.ResponseStatus` and /or `ResponseHeader` respectively. -An example of this could look like: - -[source,java] ----- -package org.acme.rest; - -import org.jboss.resteasy.reactive.Header; -import org.jboss.resteasy.reactive.ResponseHeaders; -import org.jboss.resteasy.reactive.ResponseStatus; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -@Path("") -public class Endpoint { - - @ResponseStatus(201) - @ResponseHeader(name = "X-FroMage", value = "Camembert") - @GET - public String hello() { - return "Hello, World!"; - } -} ----- - -=== Async/reactive support - -[[reactive]] - -If your endpoint method needs to accomplish an asynchronous or reactive task before -being able to answer, you can declare your method to return the -link:{mutinyapi}/io/smallrye/mutiny/Uni.html[`Uni`] type (from https://smallrye.io/smallrye-mutiny/[Mutiny]), in which -case the current HTTP request will be automatically suspended after your method, until -the returned link:{mutinyapi}/io/smallrye/mutiny/Uni.html[`Uni`] instance resolves to a value, -which will be mapped to a response exactly according to the previously described rules: - -[source,java] ----- -package org.acme.rest; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import io.smallrye.mutiny.Uni; - -@Path("escoffier") -public class Endpoint { - - @GET - public Uni culinaryGuide() { - return Book.findByIsbn("978-2081229297"); - } -} ----- - -This allows you to not block the event-loop thread while the book is being fetched from the -database, and allows Quarkus to serve more requests until your book is ready to -be sent to the client and terminate this request. Check out our -<> for more information. - -The link:{jdkapi}/java/util/concurrent/CompletionStage.html[`CompletionStage`] return -type is also supported. - -=== Streaming support - -If you want to stream your response element by element, you can make your endpoint method return a -link:{mutinyapi}/io/smallrye/mutiny/Multi.html[`Multi`] type (from https://smallrye.io/smallrye-mutiny/[Mutiny]). -This is especially useful for streaming text or binary data. - -This example, using https://github.com/quarkiverse/quarkus-reactive-messaging-http[Reactive Messaging HTTP] shows how to stream -text data: - -[source,java] ----- -package org.acme.rest; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.eclipse.microprofile.reactive.messaging.Channel; - -import io.smallrye.mutiny.Multi; - -@Path("logs") -public class Endpoint { - - @Inject - @Channel("log-out") - Multi logs; - - @GET - public Multi streamLogs() { - return logs; - } -} ----- - -NOTE: Response filters are not invoked on streamed responses, because they would give a false -impression that you can set headers or HTTP status codes, which is not true after the initial -response. - -=== Server-Sent Event (SSE) support - -If you want to stream JSON objects in your response, you can use -https://html.spec.whatwg.org/multipage/server-sent-events.html[Server-Sent Events] -by just annotating your endpoint method with -link:{jaxrsapi}/javax/ws/rs/Produces.html[`@Produces(MediaType.SERVER_SENT_EVENTS)`] -and specifying that each element should be <> with -`@RestSseElementType(MediaType.APPLICATION_JSON)`. - -[source,java] ----- -package org.acme.rest; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.jboss.resteasy.reactive.RestSseElementType; - -import io.smallrye.mutiny.Multi; -import io.smallrye.mutiny.Uni; - -import io.smallrye.reactive.messaging.annotations.Channel; - -@Path("escoffier") -public class Endpoint { - - // Inject our Book channel - @Inject - @Channel("book-out") - Multi books; - - @GET - // Send the stream over SSE - @Produces(MediaType.SERVER_SENT_EVENTS) - // Each element will be sent as JSON - @RestSseElementType(MediaType.APPLICATION_JSON) - public Multi stream() { - return books; - } -} ----- - -=== Controlling HTTP Caching features - -RESTEasy Reactive provides the link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/Cache.html[`@Cache`] -and link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/NoCache.html[`@NoCache`] annotations to facilitate -handling HTTP caching semantics, i.e. setting the 'Cache-Control' HTTP header. - -These annotations can be placed either on a Resource Method or a Resource Class (in which case it applies to all Resource Methods of the class that do *not* contain the same annotation) and allow users -to return domain objects and not have to deal with building up the `Cache-Control` HTTP header explicitly. - -While link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/Cache.html[`@Cache`] -builds a complex `Cache-Control` header, link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/NoCache.html[`@NoCache`] -is a simplified notation to say that you don't want anything cached; i.e. `Cache-Control: nocache`. - -NOTE: More information on the `Cache-Control` header and be found in link:https://datatracker.ietf.org/doc/html/rfc7234[RFC 7234] - -=== Accessing context objects - -[[context-objects]] - -There are a number of contextual objects that the framework will give you, if your endpoint -method takes parameters of the following type: - -.Table Context object -|=== -|Type|Usage - -|link:{jaxrsapi}/javax/ws/rs/core/HttpHeaders.html[`HttpHeaders`] -|All the request headers - -|link:{jaxrsapi}/javax/ws/rs/container/ResourceInfo.html[`ResourceInfo`] -|Information about the current endpoint method and class (requires reflection) - -|link:{jaxrsapi}/javax/ws/rs/core/SecurityContext.html[`SecurityContext`] -|Access to the current user and roles - -|link:{resteasy-reactive-api}/org/jboss/resteasy/reactive/server/SimpleResourceInfo.html[`SimpleResourceInfo`] -|Information about the current endpoint method and class (no reflection required) - -|link:{jaxrsapi}/javax/ws/rs/core/UriInfo.html[`UriInfo`] -|Provides information about the current endpoint and application URI - -|link:{jaxrsapi}/javax/ws/rs/core/Application.html[`Application`] -|Advanced: Current JAX-RS application class - -|link:{jaxrsapi}/javax/ws/rs/core/Configuration.html[`Configuration`] -|Advanced: Configuration about the deployed JAX-RS application - -|link:{jaxrsapi}/javax/ws/rs/ext/Providers.html[`Providers`] -|Advanced: Runtime access to JAX-RS providers - -|link:{jaxrsapi}/javax/ws/rs/core/Request.html[`Request`] -|Advanced: Access to the current HTTP method and <> - -|link:{jaxrsapi}/javax/ws/rs/core/ResourceContext.html[`ResourceContext`] -|Advanced: access to instances of endpoints - -|link:{resteasy-reactive-api}/org/jboss/resteasy/reactive/server/spi/ServerRequestContext.html[`ServerRequestContext`] -|Advanced: RESTEasy Reactive access to the current request/response - -|link:{jaxrsapi}/javax/ws/rs/sse/Sse.html[`Sse`] -|Advanced: Complex SSE use-cases - -|link:{vertxapi}/io/vertx/core/http/HttpServerRequest.html[`HttpServerRequest`] -|Advanced: Vert.x HTTP Request - -|link:{vertxapi}/io/vertx/core/http/HttpServerResponse.html[`HttpServerResponse`] -|Advanced: Vert.x HTTP Response - -|=== - -For example, here is how you can return the name of the currently logged-in user: - -[source,java] ----- -package org.acme.rest; - -import java.security.Principal; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.SecurityContext; - -@Path("user") -public class Endpoint { - - @GET - public String userName(SecurityContext security) { - Principal user = security.getUserPrincipal(); - return user != null ? user.getName() : ""; - } -} ----- - -You can also inject those context objects using -https://javadoc.io/static/javax.inject/javax.inject/1/javax/inject/Inject.html[`@Inject`] on fields of the same -type: - -[source,java] ----- -package org.acme.rest; - -import java.security.Principal; - -import javax.inject.Inject; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.SecurityContext; - -@Path("user") -public class Endpoint { - - @Inject - SecurityContext security; - - @GET - public String userName() { - Principal user = security.getUserPrincipal(); - return user != null ? user.getName() : ""; - } -} ----- - -Or even on your endpoint constructor: - -[source,java] ----- -package org.acme.rest; - -import java.security.Principal; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.SecurityContext; - -@Path("user") -public class Endpoint { - - SecurityContext security; - - Endpoint(SecurityContext security) { - this.security = security; - } - - @GET - public String userName() { - Principal user = security.getUserPrincipal(); - return user != null ? user.getName() : ""; - } -} ----- - - -=== JSON serialisation - -[[json]] - -Instead of importing `io.quarkus:quarkus-resteasy-reactive`, you can import either of the following modules to get support for JSON: - -.Table Context object -|=== -|GAV|Usage - -|`io.quarkus:quarkus-resteasy-reactive-jackson` -|https://github.com/FasterXML/jackson[Jackson support] - -|`io.quarkus:quarkus-resteasy-reactive-jsonb` -|https://eclipse-ee4j.github.io/jsonb-api/[JSON-B support] - -|=== - -In both cases, importing those modules will allow HTTP message bodies to be read from JSON -and serialised to JSON, for <>. - -==== Advanced Jackson-specific features - -When using the `quarkus-resteasy-reactive-jackson` extension there are some advanced features that RESTEasy Reactive supports. - -[[secure-serialization]] -===== Secure serialization - -When used with Jackson to perform JSON serialization, RESTEasy Reactive provides the ability to limit the set of fields that are serialized based on the roles of the current user. -This is achieved by simply annotating the fields (or getters) of the POJO being returned with `@io.quarkus.resteasy.reactive.jackson.SecureField`. - -A simple example could be the following: - -Assume we have a POJO named `Person` which looks like so: - -[source,java] ----- -package org.acme.rest; - -import io.quarkus.resteasy.reactive.jackson.SecureField; - -public class Person { - - @SecureField(rolesAllowed = "admin") - private final Long id; - private final String first; - private final String last; - - public Person(Long id, String first, String last) { - this.id = id; - this.first = first; - this.last = last; - } - - public Long getId() { - return id; - } - - public String getFirst() { - return first; - } - - public String getLast() { - return last; - } -} ----- - -A very simple JAX-RS Resource that uses `Person` could be: - -[source,java] ----- -package org.acme.rest; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -@Path("person") -public class Person { - - @Path("{id}") - @GET - public Person getPerson(Long id) { - return new Person(id, "foo", "bar"); - } -} ----- - -Assuming security has been set up for the application (see our xref:security.adoc[guide] for more details), when a user with the `admin` role -performs an HTTP GET on `/person/1` they will receive: - -[source,json] ----- -{ - "id": 1, - "first": "foo", - "last": "bar" -} ----- - -as the response. - -Any user however that does not have the `admin` role will receive: - -[source,json] ----- -{ - "first": "foo", - "last": "bar" -} ----- - -NOTE: No additional configuration needs to be applied for this secure serialization to take place. However, users can use the `@io.quarkus.resteasy.reactive.jackson.EnableSecureSerialization` and `@io.quarkus.resteasy.reactive.jackson.DisableSecureSerialization` -annotation to opt-in or out for specific JAX-RS Resource classes or methods. - -===== @JsonView support - -JAX-RS methods can be annotated with https://fasterxml.github.io/jackson-annotations/javadoc/2.10/com/fasterxml/jackson/annotation/JsonView.html[@JsonView] -in order to customize the serialization of the returned POJO, on a per method-basis. This is best explained with an example. - -A typical use of `@JsonView` is to hide certain fields on certain methods. In that vein, let's define two views: - -[source,java] ----- -public class Views { - - public static class Public { - } - - public static class Private extends Public { - } -} ----- - -Let's assume we have the `User` POJO on which we want to hide some field during serialization. A simple example of this is: - -[source,java] ----- -public class User { - - @JsonView(Views.Private.class) - public int id; - - @JsonView(Views.Public.class) - public String name; -} ----- - -Depending on the JAX-RS method that returns this user, we might want to exclude the `id` field from serialization - for example you might want an insecure method -to not expose this field. The way we can achieve that in RESTEasy Reactive is shown in the following example: - -[source,java] ----- -@JsonView(Views.Public.class) -@GET -@Path("/public") -public User userPublic() { - return testUser(); -} - -@JsonView(Views.Private.class) -@GET -@Path("/private") -public User userPrivate() { - return testUser(); -} ----- - -When the result the `userPublic` method is serialized, the `id` field will not be contained in the response as the `Public` view does not include it. -The result of `userPrivate` however will include the `id` as expected when serialized. - -===== Completely customized per method serialization - -There are times when you need to completely customize the serialization of a POJO on a per JAX-RS method basis. For such use cases, the `@io.quarkus.resteasy.reactive.jackson.CustomSerialization` annotation -is a great tool, as it allows you to configure a per-method `com.fasterxml.jackson.databind.ObjectWriter` which can be configured at will. - -Here is an example use case: - -[source,java] ----- -@CustomSerialization(UnquotedFields.class) -@GET -@Path("/invalid-use-of-custom-serializer") -public User invalidUseOfCustomSerializer() { - return testUser(); -} ----- - -where `UnquotedFields` is a `BiFunction` defined as so: - -[source,java] ----- -public static class UnquotedFields implements BiFunction { - - @Override - public ObjectWriter apply(ObjectMapper objectMapper, Type type) { - return objectMapper.writer().without(JsonWriteFeature.QUOTE_FIELD_NAMES); - } -} ----- - -Essentially what this class does is force Jackson to not include quotes in the field names. - -It is important to note that this customization is only performed for the serialization of the JAX-RS methods that use `@CustomSerialization(UnquotedFields.class)`. - -=== XML serialisation - -[[xml]] - -To enable XML support, add the `quarkus-resteasy-reactive-jaxb` extension to your project. - -.Table Context object -|=== -|GAV|Usage - -|`io.quarkus:quarkus-resteasy-reactive-jaxb` -|https://javaee.github.io/jaxb-v2/[XML support] - -|=== - -Importing this module will allow HTTP message bodies to be read from XML -and serialised to XML, for <>. - -== More advanced usage - -Here are some more advanced topics that you may not need to know about initially, but -could prove useful for more complex use cases. - -=== Execution model, blocking, non-blocking - -[[execution-model]] - -RESTEasy Reactive is implemented using two main thread types: - -- Event-loop threads: which are responsible, among other things, for reading bytes from the HTTP request and - writing bytes back to the HTTP response -- Worker threads: they are pooled and can be used to offload long-running operations - -The event-loop threads (also called IO threads) are responsible for actually performing all the IO -operations in an asynchronous way, and to trigger any listener interested in the completion of those -IO operations. - -By default, the thread RESTEasy Reactive will run endpoint methods on depends on the signature of the method. -If a method returns one of the following types then it is considered non-blocking, and will be run on the IO thread -by default: - -- `io.smallrye.mutiny.Uni` -- `io.smallrye.mutiny.Multi` -- `java.util.concurrent.CompletionStage` -- `org.reactivestreams.Publisher` -- Kotlin `suspended` methods - -This 'best guess' approach means that the majority of operations will run on the correct thread by default. If you are -writing reactive code then your method will generally return one of these types, and will be executed on the IO thread. -If you are writing blocking code your methods will generally return the result directly, and these will be run on a worker -thread. - -You can override this behaviour using the -https://javadoc.io/doc/io.smallrye.common/smallrye-common-annotation/1.5.0/io/smallrye/common/annotation/Blocking.html[`@Blocking`] -and -https://javadoc.io/doc/io.smallrye.common/smallrye-common-annotation/1.5.0/io/smallrye/common/annotation/NonBlocking.html[`@NonBlocking`] -annotations. This can be applied at the method, class or `javax.ws.rs.core.Application` level. - -The example below will override the default behaviour and always run on a worker thread, even though it returns a `Uni`. - -[source,java] ----- -package org.acme.rest; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import io.smallrye.common.annotation.Blocking; - -@Path("yawn") -public class Endpoint { - - @Blocking - @GET - public Uni blockingHello() throws InterruptedException { - // do a blocking operation - Thread.sleep(1000); - return Uni.createFrom().item("Yaaaawwwwnnnnnn…"); - } -} ----- - -Most of the time, there are ways to achieve the same blocking operations in an asynchronous/reactive -way, using https://smallrye.io/smallrye-mutiny/[Mutiny], http://hibernate.org/reactive/[Hibernate Reactive] -or any of the xref:quarkus-reactive-architecture.adoc#quarkus-extensions-enabling-reactive[Quarkus Reactive extensions] for example: - -[source,java] ----- -package org.acme.rest; - -import java.time.Duration; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import io.smallrye.mutiny.Uni; - -@Path("yawn") -public class Endpoint { - - @GET - public Uni blockingHello() throws InterruptedException { - return Uni.createFrom().item("Yaaaawwwwnnnnnn…") - // do a non-blocking sleep - .onItem().delayIt().by(Duration.ofSeconds(2)); - } -} ----- - -If a method or class is annotated with `javax.transaction.Transactional` then it will also be treated as a blocking -method. This is because JTA is a blocking technology, and is generally used with other blocking technology such as -Hibernate and JDBC. An explicit `@Blocking` or `@NonBlocking` on the class will override this behaviour. - -==== Overriding the default behaviour - -If you want to override the default behaviour you can annotate a `javax.ws.rs.core.Application` subclass in your application -with `@Blocking` or `@NonBlocking`, and this will set the default for every method that does not have an explicit annotation. - -Behaviour can still be overridden on a class or method level by annotating them directly, however all endpoints without -an annotation will now follow the default, no matter their method signature. - -=== Exception mapping - -If your application needs to return non-nominal HTTP codes in error cases, the best is -to throw exceptions that will result in the proper HTTP response being sent by the -framework using link:{jaxrsapi}/javax/ws/rs/WebApplicationException.html[`WebApplicationException`] or any of its subtypes: - -[source,java] ----- -package org.acme.rest; - -import javax.ws.rs.BadRequestException; -import javax.ws.rs.GET; -import javax.ws.rs.NotFoundException; -import javax.ws.rs.Path; - -@Path("fromages/{fromage}") -public class Endpoint { - - @GET - public String findFromage(String fromage) { - if(fromage == null) - // send a 400 - throw new BadRequestException(); - if(!fromage.equals("camembert")) - // send a 404 - throw new NotFoundException("Unknown cheese: " + fromage); - return "Camembert is a very nice cheese"; - } -} ----- - -If your endpoint method is delegating calls to another service layer which -does not know of JAX-RS, you need a way to turn service exceptions to an -HTTP response, and you can do that using the -link:{resteasy-reactive-api}/org/jboss/resteasy/reactive/server/ServerExceptionMapper.html[`@ServerExceptionMapper`] -annotation on a method, with one parameter of the exception type you want to handle, and turning -that exception into a link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestResponse.html[`RestResponse`] (or a -link:{mutinyapi}/io/smallrye/mutiny/Uni.html[`Uni>`]): - -[source,java] ----- -package org.acme.rest; - -import java.util.Map; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.ws.rs.BadRequestException; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.Response; - -import org.jboss.resteasy.reactive.server.ServerExceptionMapper; -import org.jboss.resteasy.reactive.RestResponse; - -class UnknownCheeseException extends RuntimeException { - public final String name; - - public UnknownCheeseException(String name) { - this.name = name; - } -} - -@ApplicationScoped -class CheeseService { - private static final Map cheeses = - Map.of("camembert", "Camembert is a very nice cheese", - "gouda", "Gouda is acceptable too, especially with cumin"); - - public String findCheese(String name) { - String ret = cheeses.get(name); - if(ret != null) - return ret; - throw new UnknownCheeseException(name); - } -} - -@Path("fromages/{fromage}") -public class Endpoint { - - @Inject - CheeseService cheeses; - - @ServerExceptionMapper - public RestResponse mapException(UnknownCheeseException x) { - return RestResponse.status(Response.Status.NOT_FOUND, "Unknown cheese: " + x.name); - } - - @GET - public String findFromage(String fromage) { - if(fromage == null) - // send a 400 - throw new BadRequestException(); - return cheeses.findCheese(fromage); - } -} ----- - -NOTE: exception mappers defined in REST endpoint classes will only be called if the -exception is thrown in the same class. If you want to define global exception mappers, -simply define them outside a REST endpoint class: - -[source,java] ----- -package org.acme.rest; - -import org.jboss.resteasy.reactive.server.ServerExceptionMapper; -import org.jboss.resteasy.reactive.RestResponse; - -class ExceptionMappers { - @ServerExceptionMapper - public RestResponse mapException(UnknownCheeseException x) { - return RestResponse.status(Response.Status.NOT_FOUND, "Unknown cheese: " + x.name); - } -} ----- - -You can also declare link:{jaxrsspec}#exceptionmapper[exception mappers in the JAX-RS way]. - -Your exception mapper may declare any of the following parameter types: - -.Table Exception mapper parameters -|=== -|Type|Usage - -|An exception type -|Defines the exception type you want to handle - -|Any of the <> -| - -|link:{jaxrsapi}/javax/ws/rs/container/ContainerRequestContext.html[`ContainerRequestContext`] -|A context object to access the current request - -|=== - -It may declare any of the following return types: - -.Table Exception mapper return types -|=== -|Type|Usage - -|link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestResponse.html[`RestResponse`] or link:{jaxrsapi}/javax/ws/rs/core/Response.html[`Response`] -|The response to send to the client when the exception occurs - -|link:{mutinyapi}/io/smallrye/mutiny/Uni.html[`Uni`] or link:{mutinyapi}/io/smallrye/mutiny/Uni.html[`Uni`] -|An asynchronous response to send to the client when the exception occurs - -|=== - -=== Request or response filters - -You can declare functions which are invoked in the following phases of the request processing: - -- Before the endpoint method is identified: pre-routing request filter -- After routing, but before the endpoint method is called: normal request filter -- After the endpoint method is called: response filter - -These filters allow you to do various things such as examine the request URI, -HTTP method, influence routing, look or change request headers, abort the request, -or modify the response. - -Request filters can be declared with the -link:{resteasy-reactive-api}/org/jboss/resteasy/reactive/server/ServerRequestFilter.html[`@ServerRequestFilter`] -annotation: - -[source,java] ----- -import java.util.Optional; - -class Filters { - - @ServerRequestFilter(preMatching = true) - public void preMatchingFilter(ContainerRequestContext requestContext) { - // make sure we don't lose cheese lovers - if("yes".equals(requestContext.getHeaderString("Cheese"))) { - requestContext.setRequestUri(URI.create("/cheese")); - } - } - - @ServerRequestFilter - public Optional> getFilter(ContainerRequestContext ctx) { - // only allow GET methods for now - if(ctx.getMethod().equals(HttpMethod.GET)) { - return Optional.of(RestResponse.status(Response.Status.METHOD_NOT_ALLOWED)); - } - return Optional.empty(); - } -} ----- - -[IMPORTANT] -==== -Request filters are usually executed on the same thread that the method that handles the request will be executed. -That means that if the method servicing the request is annotated with `@Blocking`, then the filters will also be run -on the worker thread. -If the method is annotated with `@NonBlocking` (or is not annotated at all), then the filters will also be run -on the same event-loop thread. - -If however a filter needs to be run on the event-loop despite the fact that the method servicing the request will be -run on a worker thread, then `@ServerRequestFilter(nonBlocking=true)` can be used. -Note however, that these filters need to be run before **any** filter that does not use that setting and would run on a worker thread. -==== - -Similarly, response filters can be declared with the -link:{resteasy-reactive-api}/org/jboss/resteasy/reactive/server/ServerResponseFilter.html[`@ServerResponseFilter`] -annotation: - -[source,java] ----- -class Filters { - @ServerResponseFilter - public void getFilter(ContainerResponseContext responseContext) { - Object entity = responseContext.getEntity(); - if(entity instanceof String) { - // make it shout - responseContext.setEntity(((String)entity).toUpperCase()); - } - } -} ----- - -You can also link:{jaxrsspec}#filters[declare request and response filters in the JAX-RS way]. - -Your filters may declare any of the following parameter types: - -.Table Filter parameters -|=== -|Type|Usage - -|Any of the <> -| - -|link:{jaxrsapi}/javax/ws/rs/container/ContainerRequestContext.html[`ContainerRequestContext`] -|A context object to access the current request - -|link:{jaxrsapi}/javax/ws/rs/container/ContainerResponseContext.html[`ContainerResponseContext`] -|A context object to access the current response - -|link:{jdkapi}/java/lang/Throwable.html[`Throwable`] -|Any thrown exception, or `null` (only for response filters) - -|=== - -It may declare any of the following return types: - -.Table Filter return types -|=== -|Type|Usage - -|link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestResponse.html[`RestResponse`] or link:{jaxrsapi}/javax/ws/rs/core/Response.html[`Response`] -|The response to send to the client instead of continuing the filter chain, or `null` if the filter chain should proceed - -|link:{jdkapi}/java/util/Optional.html[`Optional>`] or link:{jdkapi}/java/util/Optional.html[`Optional`] -|An optional response to send to the client instead of continuing the filter chain, or an empty value if the filter chain should proceed - -|link:{mutinyapi}/io/smallrye/mutiny/Uni.html[`Uni>`] or link:{mutinyapi}/io/smallrye/mutiny/Uni.html[`Uni`] -|An asynchronous response to send to the client instead of continuing the filter chain, or `null` if the filter chain should proceed - -|=== - -NOTE: You can restrict the Resource methods for which a filter runs, by using link:{jaxrsapi}/javax/ws/rs/NameBinding.html[`@NameBinding`] meta-annotations. - -=== Readers and Writers: mapping entities and HTTP bodies - -[[readers-writers]] - -Whenever your endpoint methods return a object (of when they return a -link:{resteasy-reactive-common-api}/org/jboss/resteasy/reactive/RestResponse.html[`RestResponse`] -or link:{jaxrsapi}/javax/ws/rs/core/Response.html[`Response`] with -an entity), RESTEasy Reactive will look for a way to map that into an HTTP response body. - -Similarly, whenever your endpoint method takes an object as parameter, we will look for -a way to map the HTTP request body into that object. - -This is done via a pluggable system of link:{jaxrsapi}/javax/ws/rs/ext/MessageBodyReader.html[`MessageBodyReader`] -and link:{jaxrsapi}/javax/ws/rs/ext/MessageBodyWriter.html[`MessageBodyWriter`] interfaces, -which are responsible for defining which Java type they map from/to, for which media types, -and how they turn HTTP bodies to/from Java instances of that type. - -For example, if we have our own `FroMage` type on our endpoint: - -[source,java] ----- -package org.acme.rest; - -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; - -class FroMage { - public String name; - - public FroMage(String name) { - this.name = name; - } -} - -@Path("cheese") -public class Endpoint { - - @GET - public FroMage sayCheese() { - return new FroMage("Cheeeeeese"); - } - - @PUT - public void addCheese(FroMage fromage) { - System.err.println("Received a new cheese: " + fromage.name); - } -} ----- - -Then we can define how to read and write it with our body reader/writers, annotated -with link:{jaxrsapi}/javax/ws/rs/ext/Provider.html[`@Provider`]: - -[source,java] ----- -package org.acme.rest; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.lang.annotation.Annotation; -import java.lang.reflect.Type; -import java.nio.charset.StandardCharsets; - -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.ext.MessageBodyReader; -import javax.ws.rs.ext.MessageBodyWriter; -import javax.ws.rs.ext.Provider; - -@Provider -public class FroMageBodyHandler implements MessageBodyReader, - MessageBodyWriter { - - @Override - public boolean isWriteable(Class type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return type == FroMage.class; - } - - @Override - public void writeTo(FroMage t, Class type, Type genericType, - Annotation[] annotations, MediaType mediaType, - MultivaluedMap httpHeaders, - OutputStream entityStream) - throws IOException, WebApplicationException { - entityStream.write(("[FroMageV1]" + t.name) - .getBytes(StandardCharsets.UTF_8)); - } - - @Override - public boolean isReadable(Class type, Type genericType, - Annotation[] annotations, MediaType mediaType) { - return type == FroMage.class; - } - - @Override - public FroMage readFrom(Class type, Type genericType, - Annotation[] annotations, MediaType mediaType, - MultivaluedMap httpHeaders, - InputStream entityStream) - throws IOException, WebApplicationException { - String body = new String(entityStream.readAllBytes(), StandardCharsets.UTF_8); - if(body.startsWith("[FroMageV1]")) - return new FroMage(body.substring(11)); - throw new IOException("Invalid fromage: " + body); - } - -} ----- - -If you want to get the most performance our of your writer, you can extend the -link:{resteasy-reactive-api}/org/jboss/resteasy/reactive/server/spi/ServerMessageBodyWriter.html[`ServerMessageBodyWriter`] -instead of link:{jaxrsapi}/javax/ws/rs/ext/MessageBodyWriter.html[`MessageBodyWriter`] -where you will be able to use less reflection and bypass the blocking IO layer: - -[source,java] ----- -package org.acme.rest; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.lang.annotation.Annotation; -import java.lang.reflect.Type; -import java.nio.charset.StandardCharsets; - -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.ext.MessageBodyReader; -import javax.ws.rs.ext.Provider; - -import org.jboss.resteasy.reactive.server.spi.ResteasyReactiveResourceInfo; -import org.jboss.resteasy.reactive.server.spi.ServerMessageBodyWriter; -import org.jboss.resteasy.reactive.server.spi.ServerRequestContext; - -@Provider -public class FroMageBodyHandler implements MessageBodyReader, - ServerMessageBodyWriter { - - // … - - @Override - public boolean isWriteable(Class type, ResteasyReactiveResourceInfo target, - MediaType mediaType) { - return type == FroMage.class; - } - - @Override - public void writeResponse(FroMage t, ServerRequestContext context) - throws WebApplicationException, IOException { - context.serverResponse().end("[FroMageV1]" + t.name); - } -} ----- - -NOTE: You can restrict which content-types your reader/writer apply to by adding -link:{jaxrsapi}/javax/ws/rs/Consumes.html[`Consumes`]/link:{jaxrsapi}/javax/ws/rs/Produces.html[`Produces`] annotations -on your provider class. - -=== Reader and Writer interceptors - -Just as you can intercept requests and responses, you can also intercept readers and writers, by -extending the link:{jaxrsapi}/javax/ws/rs/ext/ReaderInterceptor.html[`ReaderInterceptor`] or -link:{jaxrsapi}/javax/ws/rs/ext/WriterInterceptor.html[`WriterInterceptor`] on a class annotated with -link:{jaxrsapi}/javax/ws/rs/ext/Provider.html[`@Provider`]. - -If we look at this endpoint: - -[source,java] ----- -package org.acme.rest; - -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; - -@Path("cheese") -public class Endpoint { - - @GET - public String sayCheese() { - return "Cheeeeeese"; - } - - @PUT - public void addCheese(String fromage) { - System.err.println("Received a new cheese: " + fromage); - } -} ----- - -We can add reader and writer interceptors like this: - -[source,java] ----- -package org.acme.rest; - -import java.io.IOException; - -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.ext.Provider; -import javax.ws.rs.ext.ReaderInterceptor; -import javax.ws.rs.ext.ReaderInterceptorContext; -import javax.ws.rs.ext.WriterInterceptor; -import javax.ws.rs.ext.WriterInterceptorContext; - -@Provider -public class FroMageIOInterceptor implements ReaderInterceptor, WriterInterceptor { - - @Override - public void aroundWriteTo(WriterInterceptorContext context) - throws IOException, WebApplicationException { - System.err.println("Before writing " + context.getEntity()); - context.proceed(); - System.err.println("After writing " + context.getEntity()); - } - - @Override - public Object aroundReadFrom(ReaderInterceptorContext context) - throws IOException, WebApplicationException { - System.err.println("Before reading " + context.getGenericType()); - Object entity = context.proceed(); - System.err.println("After reading " + entity); - return entity; - } -} ----- - -=== Parameter mapping - -All <> can be declared as link:{jdkapi}/java/lang/String.html[`String`], but also -any of the following types: - -- Types for which a link:{jaxrsapi}/javax/ws/rs/ext/ParamConverter.html[`ParamConverter`] is available via a registered -link:{jaxrsapi}/javax/ws/rs/ext/ParamConverterProvider.html[`ParamConverterProvider`]. -- Primitive types. -- Types that have a constructor that accepts a single link:{jdkapi}/java/lang/String.html[`String`] argument. -- Types that have a static method named `valueOf` or `fromString` with a single link:{jdkapi}/java/lang/String.html[`String`] argument -that return an instance of the type. If both methods are present then `valueOf` will be used unless -the type is an `enum` in which case `fromString` will be used. -- link:{jdkapi}/java/util/List.html[`List`], link:{jdkapi}/java/util/Set.html[`Set`], or -link:{jdkapi}/java/util/SortedSet.html[`SortedSet`], where `T` satisfies any above criterion. - -The following example illustrates all those possibilities: - -[source,java] ----- -package org.acme.rest; - -import java.lang.annotation.Annotation; -import java.lang.reflect.Type; -import java.util.List; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.ext.ParamConverter; -import javax.ws.rs.ext.ParamConverterProvider; -import javax.ws.rs.ext.Provider; - -import org.jboss.resteasy.reactive.RestQuery; - -@Provider -class MyConverterProvider implements ParamConverterProvider { - - @Override - public ParamConverter getConverter(Class rawType, Type genericType, - Annotation[] annotations) { - // declare a converter for this type - if(rawType == Converter.class) { - return (ParamConverter) new MyConverter(); - } - return null; - } - -} - -// this is my custom converter -class MyConverter implements ParamConverter { - - @Override - public Converter fromString(String value) { - return new Converter(value); - } - - @Override - public String toString(Converter value) { - return value.value; - } - -} - -// this uses a converter -class Converter { - String value; - Converter(String value) { - this.value = value; - } -} - -class Constructor { - String value; - // this will use the constructor - public Constructor(String value) { - this.value = value; - } -} - -class ValueOf { - String value; - private ValueOf(String value) { - this.value = value; - } - // this will use the valueOf method - public static ValueOf valueOf(String value) { - return new ValueOf(value); - } -} - -@Path("hello") -public class Endpoint { - - @Path("{converter}/{constructor}/{primitive}/{valueOf}") - @GET - public String convertions(Converter converter, Constructor constructor, - int primitive, ValueOf valueOf, - @RestQuery List list) { - return converter + "/" + constructor + "/" + primitive - + "/" + valueOf + "/" + list; - } -} ----- - -==== Handling dates - -RESTEasy Reactive supports the use of the implementations of `java.time.Temporal` (like `java.time.LocalDateTime`) as query, path or form params. Furthermore it provides the `@org.jboss.resteasy.reactive.DateFormat` annotation which can be used to -set a custom expected pattern (otherwise the JDK's default format for each type is used implicitly). - -=== Preconditions - -https://tools.ietf.org/html/rfc7232[HTTP allows requests to be conditional], based on a number of -conditions, such as: - -- Date of last resource modification -- A resource tag, similar to a hash code of the resource to designate its state or version - -Let's see how you can do conditional request validation using the -link:{jaxrsapi}/javax/ws/rs/core/Request.html[`Request`] context object: - -[source,java] ----- -package org.acme.rest; - -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.time.temporal.TemporalUnit; -import java.util.Date; - -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.core.EntityTag; -import javax.ws.rs.core.Request; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.ResponseBuilder; - -@Path("conditional") -public class Endpoint { - - // It's important to keep our date on seconds because that's how it's sent to the - // user in the Last-Modified header - private Date date = Date.from(Instant.now().truncatedTo(ChronoUnit.SECONDS)); - private int version = 1; - private EntityTag tag = new EntityTag("v1"); - private String resource = "Some resource"; - - @GET - public Response get(Request request) { - // first evaluate preconditions - ResponseBuilder conditionalResponse = request.evaluatePreconditions(date, tag); - if(conditionalResponse != null) - return conditionalResponse.build(); - // preconditions are OK - return Response.ok(resource) - .lastModified(date) - .tag(tag) - .build(); - } - - @PUT - public Response put(Request request, String body) { - // first evaluate preconditions - ResponseBuilder conditionalResponse = request.evaluatePreconditions(date, tag); - if(conditionalResponse != null) - return conditionalResponse.build(); - // preconditions are OK, we can update our resource - resource = body; - date = Date.from(Instant.now().truncatedTo(ChronoUnit.SECONDS)); - version++; - tag = new EntityTag("v" + version); - return Response.ok(resource) - .lastModified(date) - .tag(tag) - .build(); - } -} ----- - -When we call `GET /conditional` the first time, we will get this response: - -[source] ----- -HTTP/1.1 200 OK -Content-Type: text/plain;charset=UTF-8 -ETag: "v1" -Last-Modified: Wed, 09 Dec 2020 16:10:19 GMT -Content-Length: 13 - -Some resource ----- - -So now if we want to check if we need to fetch a new version, we can make the following request: - -[source] ----- -GET /conditional HTTP/1.1 -Host: localhost:8080 -If-Modified-Since: Wed, 09 Dec 2020 16:10:19 GMT ----- - -And we would get the following response: - -[source] ----- -HTTP/1.1 304 Not Modified ----- - -Because the resource has not been modified since that date. This saves on sending the resource, -but can also help your users detect concurrent modification, for example, let's suppose that one -client wants to update the resource, but another user has modified it since. You can follow the -previous `GET` request with this update: - -[source] ----- -PUT /conditional HTTP/1.1 -Host: localhost:8080 -If-Unmodified-Since: Wed, 09 Dec 2020 16:25:43 GMT -If-Match: v1 -Content-Length: 8 -Content-Type: text/plain - -newstuff ----- - -And if some other user has modified the resource between your `GET` and your `PUT` you would -get this answer back: - -[source] ----- -HTTP/1.1 412 Precondition Failed -ETag: "v2" -Content-Length: 0 ----- - -=== Negotiation - -One of the main ideas of REST (https://tools.ietf.org/html/rfc7231#section-3.4[and HTTP]) is that -your resource is independent from its representation, and -that both the client and server are free to represent their resources in as many media types as -they want. This allows the server to declare support for multiple representations and let the -client declare which ones it supports and get served something appropriate. - -The following endpoint supports serving cheese in plain text or JSON: - -[source,java] ----- -package org.acme.rest; - -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import com.fasterxml.jackson.annotation.JsonCreator; - -class FroMage { - public String name; - @JsonCreator - public FroMage(String name) { - this.name = name; - } - @Override - public String toString() { - return "Cheese: " + name; - } -} - -@Path("negotiated") -public class Endpoint { - - @Produces({MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN}) - @GET - public FroMage get() { - return new FroMage("Morbier"); - } - - @Consumes(MediaType.TEXT_PLAIN) - @PUT - public FroMage putString(String cheese) { - return new FroMage(cheese); - } - - @Consumes(MediaType.APPLICATION_JSON) - @PUT - public FroMage putJson(FroMage fromage) { - return fromage; - } -} ----- - -The user will be able to select which representation it gets with the -link:{httpspec}#section-5.3.2[`Accept`] header, in the case of JSON: - -[source,sh] ----- -> GET /negotiated HTTP/1.1 -> Host: localhost:8080 -> Accept: application/json - -< HTTP/1.1 200 OK -< Content-Type: application/json -< Content-Length: 18 -< -< {"name":"Morbier"} ----- - -And for text: - -[source,sh] ----- -> GET /negotiated HTTP/1.1 -> Host: localhost:8080 -> Accept: text/plain -> -< HTTP/1.1 200 OK -< Content-Type: text/plain -< Content-Length: 15 -< -< Cheese: Morbier ----- - -Similarly, you can `PUT` two different representations. JSON: - -[source,sh] ----- -> PUT /negotiated HTTP/1.1 -> Host: localhost:8080 -> Content-Type: application/json -> Content-Length: 16 -> -> {"name": "brie"} - -< HTTP/1.1 200 OK -< Content-Type: application/json;charset=UTF-8 -< Content-Length: 15 -< -< {"name":"brie"} ----- - -Or plain text: - -[source,sh] ----- -> PUT /negotiated HTTP/1.1 -> Host: localhost:8080 -> Content-Type: text/plain -> Content-Length: 9 -> -> roquefort - -< HTTP/1.1 200 OK -< Content-Type: application/json;charset=UTF-8 -< Content-Length: 20 -< -< {"name":"roquefort"} ----- - -== Include/Exclude JAX-RS classes with build time conditions - -Quarkus enables the inclusion or exclusion of JAX-RS Resources, Providers and Features directly thanks to build time conditions in the same that it does for CDI beans. -Thus, the various JAX-RS classes can be annotated with profile conditions (`@io.quarkus.arc.profile.IfBuildProfile` or `@io.quarkus.arc.profile.UnlessBuildProfile`) and/or with property conditions (`io.quarkus.arc.properties.IfBuildProperty` or `io.quarkus.arc.properties.UnlessBuildProperty`) to indicate to Quarkus at build time under which conditions these JAX-RS classes should be included. - -In the following example, Quarkus includes the endpoint `sayHello` if and only if the build profile `app1` has been enabled. - -[source,java] ----- -@IfBuildProfile("app1") -public class ResourceForApp1Only { - - @GET - @Path("sayHello") - public String sayHello() { - return "hello"; - } -} ----- - -Please note that if a JAX-RS Application has been detected and the method `getClasses()` and/or `getSingletons()` has/have been overridden, Quarkus will ignore the build time conditions and consider only what has been defined in the JAX-RS Application. - - -== RESTEasy Reactive client - -In addition to the Server side, RESTEasy Reactive comes with a new MicroProfile Rest Client implementation that is non-blocking at its core. - -Please note that the `quarkus-rest-client` extension may not be used with RESTEasy Reactive, use `quarkus-rest-client-reactive` instead. - -See the xref:rest-client-reactive.adoc[REST Client Reactive Guide] for more information about the reactive REST client. diff --git a/_versions/2.7/guides/scheduler-reference.adoc b/_versions/2.7/guides/scheduler-reference.adoc deleted file mode 100644 index 626ae5b30bd..00000000000 --- a/_versions/2.7/guides/scheduler-reference.adoc +++ /dev/null @@ -1,335 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Scheduler Reference Guide - -include::./attributes.adoc[] - -:numbered: -:sectnums: -:sectnumlevels: 4 -:toc: - -Modern applications often need to run specific tasks periodically. -There are two scheduler extensions in Quarkus. -The `quarkus-scheduler` extension brings the API and a lightweight in-memory scheduler implementation. -The `quarkus-quartz` extension implements the API from the `quarkus-scheduler` extension and contains a scheduler implementation based on the Quartz library. -You will only need `quarkus-quartz` for more advanced scheduling use cases, such as persistent tasks, clustering and programmatic scheduling of jobs. - -NOTE: If you add the `quarkus-quartz` dependency to your project the lightweight scheduler implementation from the `quarkus-scheduler` extension is automatically disabled. - -== Scheduled Methods - -If you annotate a method with `@io.quarkus.scheduler.Scheduled` it is automatically scheduled for invocation. -In fact, such a method must be a non-private non-static method of a CDI bean. -As a consequence of being a method of a CDI bean a scheduled method can be annotated with interceptor bindings, such as `@javax.transaction.Transactional` and `@org.eclipse.microprofile.metrics.annotation.Counted`. - -NOTE: If there is no CDI scope defined on the declaring class then `@Singleton` is used. - -Furthermore, the annotated method must return `void` and either declare no parameters or one parameter of type `io.quarkus.scheduler.ScheduledExecution`. - -TIP: The annotation is repeatable so a single method could be scheduled multiple times. - -=== Triggers - -A trigger is defined either by the `@Scheduled#cron()` or by the `@Scheduled#every()` attributes. -If both are specified, the cron expression takes precedence. -If none is specified, the build fails with an `IllegalStateException`. - -==== CRON - -A CRON trigger is defined by a cron-like expression. -For example `"0 15 10 * * ?"` fires at 10:15am every day. - -.CRON Trigger Example -[source,java] ----- -@Scheduled(cron = "0 15 10 * * ?") -void fireAt10AmEveryDay() { } ----- - -The syntax used in CRON expressions is controlled by the `quarkus.scheduler.cron-type` property. -The values can be `cron4j`, `quartz`, `unix` and `spring`. -`quartz` is used by default. - -The `cron` attribute supports <> including default values and nested -Property Expressions. (Note that "{property.path}" style expressions are still supported but don't offer the full functionality of Property Expressions.) - - -.CRON Config Property Example -[source,java] ----- -@Scheduled(cron = "${myMethod.cron.expr}") -void myMethod() { } ----- - -If you wish to disable a specific scheduled method, you can set its cron expression to `"off"` or `"disabled"`. - -.application.properties -[source,properties] ----- -myMethod.cron.expr=disabled ----- - -Property Expressions allow you to define a default value that is used, if the property is not configured. - -.CRON Config Property Example with default `0 0 15 ? * MON *` -[source,java] ----- -@Scheduled(cron = "${myMethod.cron.expr:0 0 15 ? * MON *}") -void myMethod() { } ----- - -If the property `myMethod.cron.expr` is undefined or `null`, the default value (`0 0 15 ? * MON *`) will be used. - -==== Intervals - -An interval trigger defines a period between invocations. -The period expression is based on the ISO-8601 duration format `PnDTnHnMn.nS` and the value of `@Scheduled#every()` is parsed with `java.time.Duration#parse(CharSequence)`. -However, if an expression starts with a digit then the `PT` prefix is added automatically. -So for example, `15m` can be used instead of `PT15M` and is parsed as "15 minutes". - -.Interval Trigger Example -[source,java] ----- -@Scheduled(every = "15m") -void every15Mins() { } ----- - -The `every` attribute supports <> including default values and nested -Property Expressions. (Note that `"{property.path}"` style expressions are still supported but don't offer the full functionality of Property Expressions.) - -.Interval Config Property Example -[source,java] ----- -@Scheduled(every = "${myMethod.every.expr}") -void myMethod() { } ----- - -Intervals can be disabled by setting their value to `"off"` or `"disabled"`. -So for example a Property Expression with the default value `"off"` can be used to disable the trigger if its Config Property has not been set. - -.Interval Config Property Example with a Default Value -[source,java] ----- -@Scheduled(every = "${myMethod.every.expr:off}") -void myMethod() { } ----- - - -=== Identity - -By default, a unique id is generated for each scheduled method. -This id is used in log messages and during debugging. -Sometimes a possibility to specify an explicit id may come in handy. - -.Identity Example -[source,java] ----- -@Scheduled(identity = "myScheduledMethod") -void myMethod() { } ----- - -The `identity` attribute supports <> including default values and nested -Property Expressions. (Note that `"{property.path}"` style expressions are still supported but don't offer the full functionality of Property Expressions.) - -.Interval Config Property Example -[source,java] ----- -@Scheduled(identity = "${myMethod.identity.expr}") -void myMethod() { } ----- - -=== Delayed Execution - -`@Scheduled` provides two ways to delay the time a trigger should start firing at. - -`@Scheduled#delay()` and `@Scheduled#delayUnit()` form the initial delay together. - -[source,java] ----- -@Scheduled(every = "2s", delay = 2, delayUnit = TimeUnit.HOUR) <1> -void everyTwoSeconds() { } ----- -<1> The trigger fires for the first time two hours after the application start. - -NOTE: The final value is always rounded to full second. - -`@Scheduled#delayed()` is a text alternative to the properties above. -The period expression is based on the ISO-8601 duration format `PnDTnHnMn.nS` and the value is parsed with `java.time.Duration#parse(CharSequence)`. -However, if an expression starts with a digit, the `PT` prefix is added automatically. -So for example, `15s` can be used instead of `PT15S` and is parsed as "15 seconds". - -[source,java] ----- -@Scheduled(every = "2s", delayed = "2h") -void everyTwoSeconds() { } ----- - -NOTE: If `@Scheduled#delay()` is set to a value greater than zero the value of `@Scheduled#delayed()` is ignored. - -The main advantage over `@Scheduled#delay()` is that the value is configurable. -The `delay` attribute supports <> including default values and nested -Property Expressions. (Note that `"{property.path}"` style expressions are still supported but don't offer the full functionality of Property Expressions.) - - -[source,java] ----- -@Scheduled(every = "2s", delayed = "${myMethod.delay.expr}") <1> -void everyTwoSeconds() { } ----- -<1> The config property `myMethod.delay.expr` is used to set the delay. - -[[concurrent_execution]] -=== Concurrent Execution - -By default, a scheduled method can be executed concurrently. -Nevertheless, it is possible to specify the strategy to handle concurrent executions via `@Scheduled#concurrentExecution()`. - -[source,java] ----- -import static io.quarkus.scheduler.Scheduled.ConcurrentExecution.SKIP; - -@Scheduled(every = "1s", concurrentExecution = SKIP) <1> -void nonConcurrent() { - // we can be sure that this method is never executed concurrently -} ----- -<1> Concurrent executions are skipped. - -TIP: A CDI event of type `io.quarkus.scheduler.SkippedExecution` is fired when an execution of a scheduled method is skipped. - -NOTE: Note that only executions within the same application instance are considered. This feature is not intended to work across the cluster. - -[[conditional_execution]] -=== Conditional Execution - -You can define the logic to skip any execution of a scheduled method via `@Scheduled#skipExecutionIf()`. -The specified bean class must implement `io.quarkus.scheduler.Scheduled.SkipPredicate` and the execution is skipped if the result of the `test()` method is `true`. - -[source,java] ----- -class Jobs { - - @Scheduled(every = "1s", skipExecutionIf = MyPredicate.class) <1> - void everySecond() { - // do something every second... - } -} - -@Singleton <2> -class MyPredicate implements SkipPredicate { - - @Inject - MyService service; - - boolean test(ScheduledExecution execution) { - return !service.isStarted(); <3> - } -} ----- -<1> A bean instance of `MyPredicate.class` is used to evaluate whether an execution should be skipped. There must be exactly one bean that has the specified class in its set of bean types, otherwise the build fails. -<2> The scope of the bean must be active during execution. -<3> `Jobs.everySecond()` is skipped until `MyService.isStarted()` returns `true`. - -Note that this is an equivalent of the following code: - -[source,java] ----- -class Jobs { - - @Inject - MyService service; - - @Scheduled(every = "1s") - void everySecond() { - if (service.isStarted()) { - // do something every second... - } - } -} ----- - -The main idea is to keep the the logic to skip the execution outside the scheduled business methods so that it can be reused and refactored easily. - -TIP: A CDI event of type `io.quarkus.scheduler.SkippedExecution` is fired when an execution of a scheduled method is skipped. - -== Scheduler - -Quarkus provides a built-in bean of type `io.quarkus.scheduler.Scheduler` that can be injected and used to pause/resume the scheduler and individual scheduled methods identified by a specific `Scheduled#identity()`. - -.Scheduler Injection Example -[source,java] ----- -import io.quarkus.scheduler.Scheduler; - -class MyService { - - @Inject - Scheduler scheduler; - - void ping() { - scheduler.pause(); <1> - scheduler.pause("myIdentity"); <2> - if (scheduler.isRunning()) { - throw new IllegalStateException("This should never happen!"); - } - scheduler.resume("myIdentity"); <3> - scheduler.resume(); <4> - } -} ----- -<1> Pause all triggers. -<2> Pause a specific scheduled method by its identity -<3> Resume a specific scheduled method by its identity -<4> Resume the scheduler. - -== Programmatic Scheduling - -If you need to schedule a job programmatically you'll need to add the xref:quartz.adoc[Quartz extension] and use the Quartz API directly. - -.Programmatic Scheduling with Quartz API -[source,java] ----- -import org.quartz.Scheduler; - -class MyJobs { - - void onStart(@Observes StartupEvent event, Scheduler quartz) throws SchedulerException { - JobDetail job = JobBuilder.newJob(SomeJob.class) - .withIdentity("myJob", "myGroup") - .build(); - Trigger trigger = TriggerBuilder.newTrigger() - .withIdentity("myTrigger", "myGroup") - .startNow() - .withSchedule(SimpleScheduleBuilder.simpleSchedule() - .withIntervalInSeconds(1) - .repeatForever()) - .build(); - quartz.scheduleJob(job, trigger); - } -} ----- - -NOTE: By default, the scheduler is not started unless a `@Scheduled` business method is found. You may need to force the start of the scheduler for "pure" programmatic scheduling. See also <>. - -== Scheduled Methods and Testing - -It is often desirable to disable the scheduler when running the tests. -The scheduler can be disabled through the runtime config property `quarkus.scheduler.enabled`. -If set to `false` the scheduler is not started even though the application contains scheduled methods. -You can even disable the scheduler for particular <>. - -== Metrics - -Some basic metrics are published out of the box if `quarkus.scheduler.metrics.enabled` is set to `true` and a metrics extension is present. - -If the xref:micrometer.adoc[Micrometer extension] is present, then a `@io.micrometer.core.annotation.Timed` interceptor binding is added to all `@Scheduled` methods automatically (unless it's already present) and a `io.micrometer.core.instrument.Timer` with name `scheduled.methods` and a `io.micrometer.core.instrument.LongTaskTimer` with name `scheduled.methods.running` are registered. The fully qualified name of the declaring class and the name of a `@Scheduled` method are used as tags. - -If the xref:smallrye-metrics.adoc[SmallRye Metrics extension] is present, then a `@org.eclipse.microprofile.metrics.annotation.Timed` interceptor binding is added to all `@Scheduled` methods automatically (unless it's already present) and a `org.eclipse.microprofile.metrics.Timer` is created for each `@Scheduled` method. The name consists of the fully qualified name of the declaring class and the name of a `@Scheduled` method. The timer has a tag `scheduled=true`. - -== Configuration Reference - -include::{generated-dir}/config/quarkus-scheduler.adoc[leveloffset=+1, opts=optional] diff --git a/_versions/2.7/guides/scheduler.adoc b/_versions/2.7/guides/scheduler.adoc deleted file mode 100644 index be844d9da5d..00000000000 --- a/_versions/2.7/guides/scheduler.adoc +++ /dev/null @@ -1,191 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Scheduling Periodic Tasks - -include::./attributes.adoc[] - -Modern applications often need to run specific tasks periodically. -In this guide, you learn how to schedule periodic tasks. - -TIP: If you need a clustered scheduler use the xref:quartz.adoc[Quartz extension]. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this guide, we create a straightforward application accessible using HTTP to get the current value of a counter. -This counter is periodically (every 10 seconds) incremented. - -image::scheduling-task-architecture.png[alt=Architecture] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `scheduler-quickstart` {quickstarts-tree-url}/scheduler-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: scheduler-quickstart -:create-app-extensions: resteasy,scheduler -include::includes/devtools/create-app.adoc[] - -It generates a new project including: - -* a landing page accessible on `http://localhost:8080` -* example `Dockerfile` files for both `native` and `jvm` modes -* the application configuration file - -The project also imports the RESTEasy and scheduler extensions. - -If you already have your Quarkus project configured, you can add the `scheduler` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: scheduler -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-scheduler - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-scheduler") ----- - -[#standard-scheduling] -== Creating a scheduled job - -In the `org.acme.scheduler` package, create the `CounterBean` class, with the following content: - -[source,java] ----- -package org.acme.scheduler; - -import java.util.concurrent.atomic.AtomicInteger; -import javax.enterprise.context.ApplicationScoped; -import io.quarkus.scheduler.Scheduled; -import io.quarkus.scheduler.ScheduledExecution; - -@ApplicationScoped // <1> -public class CounterBean { - - private AtomicInteger counter = new AtomicInteger(); - - public int get() { // <2> - return counter.get(); - } - - @Scheduled(every="10s") // <3> - void increment() { - counter.incrementAndGet(); // <4> - } - - @Scheduled(cron="0 15 10 * * ?") <5> - void cronJob(ScheduledExecution execution) { - counter.incrementAndGet(); - System.out.println(execution.getScheduledFireTime()); - } - - @Scheduled(cron = "{cron.expr}") <6> - void cronJobWithExpressionInConfig() { - counter.incrementAndGet(); - System.out.println("Cron expression configured in application.properties"); - } -} ----- -<1> Declare the bean in the _application_ scope -<2> The `get()` method allows retrieving the current value. -<3> Use the `@Scheduled` annotation to instruct Quarkus to run this method every 10 seconds provided a worker thread is available -(Quarkus is using 10 worker threads for the scheduler). If it is not available the method invocation should be re-scheduled by default i.e -it should be invoked as soon as possible. The invocation of the scheduled method does not depend on the status or result of the previous invocation. -<4> The code is pretty straightforward. Every 10 seconds, the counter is incremented. -<5> Define a job with a cron-like expression. The annotated method is executed at 10:15am every day. -<6> Define a job with a cron-like expression `cron.expr` which is configurable in `application.properties`. - -== Updating the application configuration file - -Edit the `application.properties` file and add the `cron.expr` configuration: -[source,properties] ----- -# By default, the syntax used for cron expressions is based on Quartz - http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html -# You can change the syntax using the following property: -# quarkus.scheduler.cron-type=unix -cron.expr=*/5 * * * * ? ----- - -== Creating the REST resource - -Create the `CountResource` class as follows: - -[source,java] ----- -package org.acme.scheduler; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/count") -public class CountResource { - - @Inject - CounterBean counter; // <1> - - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return "count: " + counter.get(); // <2> - } -} ----- -<1> Inject the `CounterBean` -<2> Send back the current counter value - -== Package and run the application - -Run the application with: - -include::includes/devtools/dev.adoc[] - -In another terminal, run `curl localhost:8080/count` to check the counter value. -After a few seconds, re-run `curl localhost:8080/count` to verify the counter has been incremented. - -Observe the console to verify that the message `Cron expression configured in application.properties` has been displayed indicating -that the cron job using an expression configured in `application.properties` has been triggered. - -As usual, the application can be packaged using: - -include::includes/devtools/build.adoc[] - -And executed with `java -jar target/quarkus-app/quarkus-run.jar`. - -You can also generate the native executable with: - -include::includes/devtools/build-native.adoc[] - -[[scheduler-configuration-reference]] -== Scheduler Configuration Reference - -include::{generated-dir}/config/quarkus-scheduler.adoc[leveloffset=+1, opts=optional] diff --git a/_versions/2.7/guides/scripting.adoc b/_versions/2.7/guides/scripting.adoc deleted file mode 100644 index a85430d21fc..00000000000 --- a/_versions/2.7/guides/scripting.adoc +++ /dev/null @@ -1,440 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Scripting with Quarkus -include::./attributes.adoc[] -:extension-status: preview - -Quarkus provides integration with https://jbang.dev[jbang] which allows you to write Java scripts/applications requiring no Maven nor Gradle to get running. - -In this guide, we will see how you can write a REST application using just a single Java file. - -include::./status-include.adoc[] - -== Prerequisites - -:prerequisites-time: 5 minutes -:prerequisites-no-maven: -:prerequisites-no-cli: -include::includes/devtools/prerequisites.adoc[] -* https://jbang.dev/download[JBang] - -== Solution - -Normally we would link to a Git repository to clone but in this case there is no additional files than the following: - -[source,java,subs=attributes+] ----- -//usr/bin/env jbang "$0" "$@" ; exit $? -//DEPS io.quarkus:quarkus-resteasy:{quarkus-version} -//JAVAC_OPTIONS -parameters -//JAVA_OPTIONS -Djava.util.logging.manager=org.jboss.logmanager.LogManager - -import io.quarkus.runtime.Quarkus; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import org.jboss.resteasy.annotations.jaxrs.PathParam; -import org.jboss.logging.Logger; - -@Path("/hello") -@ApplicationScoped -public class quarkusapp { - - @GET - public String sayHello() { - return "hello"; - } - - public static void main(String[] args) { - Quarkus.run(args); - } - - @Inject - GreetingService service; - - @GET - @Produces(MediaType.TEXT_PLAIN) - @Path("/greeting/{name}") - public String greeting(@PathParam String name) { - return service.greeting(name); - } - - @ApplicationScoped - static public class GreetingService { - - public String greeting(String name) { - return "hello " + name; - } - } -} ----- - -== Architecture - -In this guide, we create a straightforward application serving a `hello` endpoint with a single source file, no additional build files like `pom.xml` or `build.gradle` needed. To demonstrate dependency injection, this endpoint uses a `greeting` bean. - -image::getting-started-architecture.png[alt=Architecture, align=center] - -== Creating the initial file - -First, we need a Java file. JBang lets you create an initial version using: - -[source,bash,subs=attributes+] ----- -jbang init scripting/quarkusapp.java -cd scripting ----- - -This command generates a .java file that you can directly run on Linux and macOS, i.e. `./quarkusapp.java` - on Windows you need to use `jbang quarkusapp.java`. - -This initial version will print `Hello World` when run. - -Once generated, look at the `quarkusapp.java` file. - -You will find at the top a line looking like this: - -[source,java] ----- -//usr/bin/env jbang "$0" "$@" ; exit $? ----- - -This line is what on Linux and macOS allows you to run it as a script. On Windows this line is ignored. - -The next line - -[source,java] ----- -// //DEPS ----- - -Is illustrating how you add dependencies to this script. This is a feature of JBang. - -Go ahead and update this line to include the `quarkus-resteasy` dependency like so: - -[source,java,subs=attributes+] ----- -//DEPS io.quarkus:quarkus-resteasy:{quarkus-version} ----- - -Now, run `jbang quarkusapp.java` and you will see JBang resolving this dependency and building the jar with help from Quarkus' JBang integration. - -[source,shell,subs=attributes+] ----- -$ jbang quarkusapp.java - -[jbang] Resolving dependencies... -[jbang] Resolving io.quarkus:quarkus-resteasy:{quarkus-version}...Done -[jbang] Dependencies resolved -[jbang] Building jar... -[jbang] Post build with io.quarkus.launcher.JBangIntegration -Aug 30, 2020 5:40:55 AM org.jboss.threads.Version -INFO: JBoss Threads version 3.1.1.Final -Aug 30, 2020 5:40:56 AM io.quarkus.deployment.QuarkusAugmentor run -INFO: Quarkus augmentation completed in 722ms -Hello World ----- - -For now the application does nothing new. - -[TIP] -.How do I edit this file and get content assist? -==== -As there is nothing but a `.java` file, most IDE's don't handle content assist well. -To work around that you can run `jbang edit quarkusapp.java`, this will print out a directory that will have a temporary project setup you can use in your IDE. - -On Linux/macOS you can run ` `jbang edit quarkusapp.java``. - -If you add dependencies while editing, you can get JBang to automatically refresh -the IDE project using `jbang edit --live= quarkusapp.java`. -==== - - -=== The JAX-RS resources - -Now let us replace the class with one that uses Quarkus features: - -[source,java] ----- -import io.quarkus.runtime.Quarkus; -import javax.enterprise.context.ApplicationScoped; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -@Path("/hello") -@ApplicationScoped -public class quarkusapp { - - @GET - public String sayHello() { - return "hello"; - } - - public static void main(String[] args) { - Quarkus.run(args); - } -} ----- - -It's a very simple class with a main method that starts Quarkus with a REST endpoint, returning "hello" to requests on "/hello". - -[TIP] -.Why is the `main` method there? -==== -A `main` method is currently needed for the JBang integration to work - we might remove this requirement in the future. -==== - -== Running the application - -Now when you run the application you will see Quarkus start up. - -Use: `jbang quarkusapp.java`: - -[source,shell,subs=attributes+] ----- -$ jbang quarkusapp.java - -[jbang] Building jar... -[jbang] Post build with io.quarkus.launcher.JBangIntegration -Aug 30, 2020 5:49:01 AM org.jboss.threads.Version -INFO: JBoss Threads version 3.1.1.Final -Aug 30, 2020 5:49:02 AM io.quarkus.deployment.QuarkusAugmentor run -INFO: Quarkus augmentation completed in 681ms -__ ____ __ _____ ___ __ ____ ______ - --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ - -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \ ---\___\_\____/_/ |_/_/|_/_/|_|\____/___/ -2020-08-30 05:49:03,255 INFO [io.quarkus] (main) Quarkus {quarkus-version} on JVM started in 0.638s. Listening on: http://0.0.0.0:8080 -2020-08-30 05:49:03,272 INFO [io.quarkus] (main) Profile prod activated. -2020-08-30 05:49:03,272 INFO [io.quarkus] (main) Installed features: [cdi, resteasy] ----- - -Once started, you can request the provided endpoint: - -[source,shell] ----- -$ curl -w "\n" http://localhost:8080/hello -hello ----- - -After that, hit `CTRL+C` to stop the application. - -[TIP] -.Automatically add newline with `curl -w "\n"` -==== -We are using `curl -w "\n"` in this example to avoid your terminal printing a '%' or put both result and next command prompt on the same line. -==== - -[TIP] -.Why is `quarkus-resteasy` not resolved? -==== -In this second run you should not see a line saying it is resolving `quarkus-resteasy` as JBang caches the dependency resolution between runs. -If you want to clear the caches to force resolution use `jbang cache clear`. -==== - -== Using injection - -Dependency injection in Quarkus is based on ArC which is a CDI-based dependency injection solution tailored for Quarkus' architecture. -You can learn more about it in the xref:cdi-reference.adoc[Contexts and Dependency Injection guide]. - -ArC comes as a dependency of `quarkus-resteasy` so you already have it handy. - -Let's modify the application and add a companion bean. - -Normally you would add a separate class, but as we are aiming to have it all in one file you will add a -nested class. - -Add the following *inside* the `quarkusapp` class body. - -[source, java] ----- -@ApplicationScoped -static public class GreetingService { - - public String greeting(String name) { - return "hello " + name; - } - -} ----- - -[TIP] -.Use of nested static public classes -==== -We are using a nested static public class instead of a top level class for two reasons: - -. JBang currently does not support multiple source files. -. All Java frameworks relying on introspection have challenges using top level classes as they are not as visible as public classes; and in Java there can only be one top level public class in a file. - -==== - -Edit the `quarksapp` class to inject the `GreetingService` and create a new endpoint using it, you should end up with something like: - -[source,java,subs=attributes+] ----- -//usr/bin/env jbang "$0" "$@" ; exit $? -//DEPS io.quarkus:quarkus-resteasy:{quarkus-version} - -import io.quarkus.runtime.Quarkus; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -@Path("/hello") -@ApplicationScoped -public class quarkusapp { - - @GET - public String sayHello() { - return "hello from Quarkus with jbang.dev"; - } - - public static void main(String[] args) { - Quarkus.run(args); - } - - @Inject - GreetingService service; - - @GET - @Produces(MediaType.TEXT_PLAIN) - @Path("/greeting/{name}") - public String greeting(@PathParam String name) { - return service.greeting(name); - } - - @ApplicationScoped - static public class GreetingService { - - public String greeting(String name) { - return "hello " + name; - } - } -} ----- - -Now when you run `jbang quarkusapp.java` you can check what the new end point returns: - -[source,shell,subs=attributes+] ----- -$ curl -w "\n" http://localhost:8080/hello/greeting/quarkus -hello null ----- - -Now that is unexpected, why is it returning `hello null` and not `hello quarkus`? - -The reason is that JAX-RS `@PathParam` relies on the `-parameters` compiler flag to be set to be able to map `{name}` to the `name` parameter. - -We fix that by adding the following comment instruction to the file: - -[source,java,subs=attributes+] ----- -//JAVAC_OPTIONS -parameters ----- - -Now when you run with `jbang quarkusapp.java` the end point should return what you expect: - -[source,shell,subs=attributes+] ----- -$ curl -w "\n" http://localhost:8080/hello/greeting/quarkus -hello quarkus ----- - -== Debugging - -To debug the application you use `jbang --debug quarkusapp.java` and you can use your IDE to connect on port 4004; if you want to use the -more traditional Quarkus debug port you can use `jbang --debug=5005 quarkusapp.java`. - -Note: JBang debugging always suspends thus you need to connect the debugger to have the application run. - -== Logging - -To use logging in Quarkus scripting with JBang you do as usual, with configuring a logger, i.e. - -[source,java] ----- -public static final Logger LOG = Logger.getLogger(quarkusapp.class); ----- - -To get it to work you need to add a Java option to ensure the logging is initialized properly, i.e. - -[source,java] ----- -//JAVA_OPTIONS -Djava.util.logging.manager=org.jboss.logmanager.LogManager ----- - -With that in place running `jbang quarkusapp.java` will log and render as expected. - -== Configuring Application - -You can use `//Q:CONFIG =` to set up static configuration for your application. - -I.e. if you wanted to add the `smallrye-openapi` and `swagger-ui` extensions and have the Swagger UI always show up you would add the following: - -[source,java,subs=attributes+] ----- -//DEPS io.quarkus:quarkus-smallrye-openapi:{quarkus-version} -//DEPS io.quarkus:quarkus-swagger-ui:{quarkus-version} -//Q:CONFIG quarkus.swagger-ui.always-include=true ----- - -Now during build the `quarkus.swagger-ui.always-include` will be generated into the resulting jar and `http://0.0.0.0:8080/q/swagger-ui` will be available when run. - -== Running as a native application - -If you have the `native-image` binary installed and `GRAALVM_HOME` set, you can get the native executable built and run using `jbang --native quarkusapp.java`: - -[source,shell,subs=attributes+] ----- -$ jbang --native quarkusapp.java - -[jbang] Building jar... -[jbang] Post build with io.quarkus.launcher.JBangIntegration -Aug 30, 2020 6:21:15 AM org.jboss.threads.Version -INFO: JBoss Threads version 3.1.1.Final -Aug 30, 2020 6:21:16 AM io.quarkus.deployment.pkg.steps.JarResultBuildStep buildNativeImageThinJar -INFO: Building native image source jar: /var/folders/yb/sytszfld4sg8vwr1h0w20jlw0000gn/T/quarkus-jbang3291688251685023074/quarkus-application-native-image-source-jar/quarkus-application-runner.jar -Aug 30, 2020 6:21:16 AM io.quarkus.deployment.pkg.steps.NativeImageBuildStep build -INFO: Building native image from /var/folders/yb/sytszfld4sg8vwr1h0w20jlw0000gn/T/quarkus-jbang3291688251685023074/quarkus-application-native-image-source-jar/quarkus-application-runner.jar -Aug 30, 2020 6:21:16 AM io.quarkus.deployment.pkg.steps.NativeImageBuildStep checkGraalVMVersion -INFO: Running Quarkus native-image plugin on GraalVM Version 20.1.0 (Java Version 11.0.7) -Aug 30, 2020 6:21:16 AM io.quarkus.deployment.pkg.steps.NativeImageBuildStep build -INFO: /Users/max/.sdkman/candidates/java/20.1.0.r11-grl/bin/native-image -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager -J-Dsun.nio.ch.maxUpdateArraySize=100 -J-Dvertx.logger-delegate-factory-class-name=io.quarkus.vertx.core.runtime.VertxLogDelegateFactory -J-Dvertx.disableDnsResolver=true -J-Dio.netty.leakDetection.level=DISABLED -J-Dio.netty.allocator.maxOrder=1 -J-Duser.language=en -J-Dfile.encoding=UTF-8 --initialize-at-build-time= -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy\$BySpaceAndTime -H:+JNI -jar quarkus-application-runner.jar -H:FallbackThreshold=0 -H:+ReportExceptionStackTraces -H:-AddAllCharsets -H:EnableURLProtocols=http --no-server -H:-UseServiceLoaderFeature -H:+StackTrace quarkus-application-runner - -Aug 30, 2020 6:22:31 AM io.quarkus.deployment.QuarkusAugmentor run -INFO: Quarkus augmentation completed in 76010ms -__ ____ __ _____ ___ __ ____ ______ - --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ - -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \ ---\___\_\____/_/ |_/_/|_/_/|_|\____/___/ -2020-08-30 06:22:32,012 INFO [io.quarkus] (main) Quarkus {quarkus-version} native started in 0.017s. Listening on: http://0.0.0.0:8080 -2020-08-30 06:22:32,013 INFO [io.quarkus] (main) Profile prod activated. -2020-08-30 06:22:32,013 INFO [io.quarkus] (main) Installed features: [cdi, resteasy] ----- - -This native build will take some time on first run but any subsequent runs (without changing `quarkusapp.java`) will be close to instant thanks to JBang cache: - -[source,shell,subs=attributes+] ----- -$ jbang --native quarkusapp.java -__ ____ __ _____ ___ __ ____ ______ - --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ - -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \ ---\___\_\____/_/ |_/_/|_/_/|_|\____/___/ -2020-08-30 06:23:36,846 INFO [io.quarkus] (main) Quarkus {quarkus-version} native started in 0.015s. Listening on: http://0.0.0.0:8080 -2020-08-30 06:23:36,846 INFO [io.quarkus] (main) Profile prod activated. -2020-08-30 06:23:36,846 INFO [io.quarkus] (main) Installed features: [cdi, resteasy] ----- - -=== Conclusion - -If you want to get started with Quarkus or write something quickly, Quarkus Scripting with jbang lets you do that. No Maven, no Gradle - just a Java file. In this guide we outlined the very basics on using Quarkus with JBang; if you want to learn more about what JBang can do, go see https://jbang.dev. diff --git a/_versions/2.7/guides/security-authorization.adoc b/_versions/2.7/guides/security-authorization.adoc deleted file mode 100644 index 5f52e6f411e..00000000000 --- a/_versions/2.7/guides/security-authorization.adoc +++ /dev/null @@ -1,242 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Authorization of Web Endpoints - -include::./attributes.adoc[] - -Quarkus has an integrated pluggable web security layer. If security is enabled all HTTP requests will have a permission -check performed to make sure they are allowed to continue. - -NOTE: Configuration authorization checks are executed before any annotation-based authorization check is done, so both -checks have to pass for a request to be allowed. This means you cannot use `@PermitAll` to open up a path if the path has -been blocked using `quarkus.http.auth.` configuration. If you are using JAX-RS you may want to consider using the -`quarkus.security.jaxrs.deny-unannotated-endpoints` or `quarkus.security.jaxrs.default-roles-allowed` to set default security -requirements instead of HTTP path level matching, as these properties can be overridden by annotations on an individual -endpoint. - -== Authorization using Configuration - -The default implementation allows you to define permissions using config in `application.properties`. An example -config is shown below: - -[source,properties] ----- -quarkus.http.auth.policy.role-policy1.roles-allowed=user,admin <1> - -quarkus.http.auth.permission.roles1.paths=/roles-secured/*,/other/*,/api/* <2> -quarkus.http.auth.permission.roles1.policy=role-policy1 - -quarkus.http.auth.permission.permit1.paths=/public/* <3> -quarkus.http.auth.permission.permit1.policy=permit -quarkus.http.auth.permission.permit1.methods=GET - -quarkus.http.auth.permission.deny1.paths=/forbidden <4> -quarkus.http.auth.permission.deny1.policy=deny ----- -<1> This defines a role based policy that allows users with the `user` and `admin` roles. This is referenced by later rules. -<2> This is a permission set that references the previously defined policy. `roles1` is an arbitrary name, you can call the permission sets whatever you want. -<3> This permission references the default `permit` built-in policy to allow `GET` methods to `/public`. This is actually a no-op in this example, as this request would have been allowed anyway. -<4> This permission references the built-in `deny` policy for `/forbidden`. This is an exact path match as it does not end with `*`. - -Permissions are defined in config using permission sets. These are arbitrarily named permission grouping. Each permission -set must specify a policy that is used to control access. There are three built-in policies: `deny`, `permit` and `authenticated`, -which respectively permits all, denies all and only allows authenticated users. - -It is also possible to define role based policies, as shown in the example. These policies will only allow users with the -specified roles to access the resources. - -=== Matching on paths, methods - -Permission sets can also specify paths and methods as a comma separated list. If a path ends with `*` then it is considered -to be a wildcard match and will match all sub paths, otherwise it is an exact match and will only match that specific path: - -[source,properties] ----- -quarkus.http.auth.permission.permit1.paths=/public/*,/css/*,/js/*,/robots.txt -quarkus.http.auth.permission.permit1.policy=permit -quarkus.http.auth.permission.permit1.methods=GET,HEAD ----- - -=== Matching path but not method - -If a request would match one or more permission sets based on the path, but does not match any due to method requirements -then the request is rejected. - -TIP: Given the above permission set, `GET /public/foo` would match both the path and method and thus be allowed, -whereas `POST /public/foo` would match the path but not the method and would thus be rejected. - -=== Matching multiple paths: longest path wins - -Matching is always done on a longest path wins basis, less specific permission sets are not considered if a more specific one -has been matched: - -[source,properties] ----- -quarkus.http.auth.permission.permit1.paths=/public/* -quarkus.http.auth.permission.permit1.policy=permit -quarkus.http.auth.permission.permit1.methods=GET,HEAD - -quarkus.http.auth.permission.deny1.paths=/public/forbidden-folder/* -quarkus.http.auth.permission.deny1.policy=deny ----- - -TIP: Given the above permission set, `GET /public/forbidden-folder/foo` would match both permission sets' paths, -but because it matches the `deny1` permission set's path on a longer match, `deny1` will be chosen and the request will -be rejected. - -[NOTE] -==== -Subpath permissions always win against the root path permissions as explained above in the `deny1` versus `permit1` permission example. -Here is another example showing a subpath permission allowing a public resource access with the root path permission requiring the authorization: - -[source,properties] ----- -quarkus.http.auth.policy.user-policy.roles-allowed=user -quarkus.http.auth.permission.roles.paths=/api/* -quarkus.http.auth.permission.roles.policy=user-policy - -quarkus.http.auth.permission.public.paths=/api/noauth/* -quarkus.http.auth.permission.public.policy=permit ----- -==== - -=== Matching multiple paths: most specific method wins - -If a path is registered with multiple permission sets then any permission sets that specify a HTTP method will take -precedence and permissions sets without a method will not be considered (assuming of course the method matches). In this -instance, the permission sets without methods will only come into effect if the request method does not match any of the -sets with method permissions. - -[source,properties] ----- -quarkus.http.auth.permission.permit1.paths=/public/* -quarkus.http.auth.permission.permit1.policy=permit -quarkus.http.auth.permission.permit1.methods=GET,HEAD - -quarkus.http.auth.permission.deny1.paths=/public/* -quarkus.http.auth.permission.deny1.policy=deny ----- - -TIP: Given the above permission set, `GET /public/foo` would match both permission sets' paths, -but because it matches the `permit1` permission set's explicit method, `permit1` will be chosen and the request will -be accepted. `PUT /public/foo` on the other hand, will not match the method permissions of `permit1` and so -`deny1` will be activated and reject the request. - -=== Matching multiple paths and methods: both win - -If multiple permission sets specify the same path and method (or multiple have no method) then both permissions have to -allow access for the request to proceed. Note that for this to happen both have to either have specified the method, or -have no method, method specific matches take precedence as stated above: - -[source,properties] ----- -quarkus.http.auth.policy.user-policy1.roles-allowed=user -quarkus.http.auth.policy.admin-policy1.roles-allowed=admin - -quarkus.http.auth.permission.roles1.paths=/api/*,/restricted/* -quarkus.http.auth.permission.roles1.policy=user-policy1 - -quarkus.http.auth.permission.roles2.paths=/api/*,/admin/* -quarkus.http.auth.permission.roles2.policy=admin-policy1 ----- - -TIP: Given the above permission set, `GET /api/foo` would match both permission sets' paths, -so would require both the `user` and `admin` roles. - -=== Configuration Properties to Deny access - -There are three configuration settings that alter the RBAC Deny behavior: - -`quarkus.security.jaxrs.deny-unannotated-endpoints=true|false`:: -If set to true, the access will be denied for all JAX-RS endpoints by default, so if a JAX-RS endpoint does not have any security annotations -then it will default to `@DenyAll` behaviour. This is useful to ensure you cannot accidentally expose an endpoint that is supposed to be secured. Defaults to `false`. - -`quarkus.security.jaxrs.default-roles-allowed=role1,role2`:: -Defines the default role requirements for unannotated endpoints. The role '**' is a special role that means any authenticated user. This cannot be combined with -`deny-unannotated-endpoints`, as the deny will take effect instead. - -`quarkus.security.deny-unannotated-members=true|false`:: -- if set to true, the access will be denied to all CDI methods -and JAX-RS endpoints that do not have security annotations but are defined in classes that contain methods with -security annotations. Defaults to `false`. - -=== Disabling permissions - -Permissions can be disabled at build time with an `enabled` property for each declared permission, for example: - -[source,properties] ----- -quarkus.http.auth.permission.permit1.enabled=false -quarkus.http.auth.permission.permit1.paths=/public/*,/css/*,/js/*,/robots.txt -quarkus.http.auth.permission.permit1.policy=permit -quarkus.http.auth.permission.permit1.methods=GET,HEAD ----- - -and enabled at runtime with a system property or environment variable, for example: `-Dquarkus.http.auth.permission.permit1.enabled=true`. - -[#standard-security-annotations] -== Authorization using Annotations - -Quarkus comes with built-in security to allow for Role-Based Access Control (link:https://en.wikipedia.org/wiki/Role-based_access_control[RBAC]) -based on the common security annotations `@RolesAllowed`, `@DenyAll`, `@PermitAll` on REST endpoints and CDI beans. -An example of an endpoint that makes use of both JAX-RS and Common Security annotations to describe and secure its endpoints is given in <>. Quarkus also provides -the `io.quarkus.security.Authenticated` annotation that will permit any authenticated user to access the resource -(equivalent to `@RolesAllowed("**")`). - -[#subject-example] -.SubjectExposingResource Example -[source,java] ----- -import java.security.Principal; - -import javax.annotation.security.DenyAll; -import javax.annotation.security.PermitAll; -import javax.annotation.security.RolesAllowed; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.SecurityContext; - -@Path("subject") -public class SubjectExposingResource { - - @GET - @Path("secured") - @RolesAllowed("Tester") <1> - public String getSubjectSecured(@Context SecurityContext sec) { - Principal user = sec.getUserPrincipal(); <2> - String name = user != null ? user.getName() : "anonymous"; - return name; - } - - @GET - @Path("unsecured") - @PermitAll <3> - public String getSubjectUnsecured(@Context SecurityContext sec) { - Principal user = sec.getUserPrincipal(); <4> - String name = user != null ? user.getName() : "anonymous"; - return name; - } - - @GET - @Path("denied") - @DenyAll <5> - public String getSubjectDenied(@Context SecurityContext sec) { - Principal user = sec.getUserPrincipal(); - String name = user != null ? user.getName() : "anonymous"; - return name; - } -} ----- -<1> This `/subject/secured` endpoint requires an authenticated user that has been granted the role "Tester" through the use of the `@RolesAllowed("Tester")` annotation. -<2> The endpoint obtains the user principal from the JAX-RS `SecurityContext`. This will be non-null for a secured endpoint. -<3> The `/subject/unsecured` endpoint allows for unauthenticated access by specifying the `@PermitAll` annotation. -<4> This call to obtain the user principal will return null if the caller is unauthenticated, non-null if the caller is authenticated. -<5> The `/subject/denied` endpoint disallows any access regardless of whether the call is authenticated by specifying the `@DenyAll` annotation. - -== References - -* xref:security.adoc[Quarkus Security] diff --git a/_versions/2.7/guides/security-built-in-authentication.adoc b/_versions/2.7/guides/security-built-in-authentication.adoc deleted file mode 100644 index 00e38e0d4ee..00000000000 --- a/_versions/2.7/guides/security-built-in-authentication.adoc +++ /dev/null @@ -1,158 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Built-In Authentication Support - -include::./attributes.adoc[] - -This document describes the Quarkus built-in authentication mechanisms for HTTP based FORM, BASIC and Mutual TLS authentication as well as the proactive authentication. - -[[basic-auth]] -== Basic Authentication - -To enable basic authentication set `quarkus.http.auth.basic=true`. You must also have at least one extension installed -that provides a username/password based `IdentityProvider`, such as xref:security-jdbc.adoc[Elytron JDBC]. - -Please see xref:security.adoc#identity-providers[Security Identity Providers] for more information. - -Please also see xref:security-testing.adoc#configuring-user-information[Configuring User Information in application.properties] section. - -[[form-auth]] -== Form Based Authentication - -Quarkus provides form based authentication that works in a similar manner to traditional Servlet form based auth. Unlike -traditional form authentication, the authenticated user is not stored in an HTTP session, as Quarkus does not provide -clustered HTTP session support. Instead the authentication information is stored in an encrypted cookie, which can -be read by all members of the cluster (provided they all share the same encryption key). - -The encryption key can be set using the `quarkus.http.auth.session.encryption-key` property, and it must be at least 16 characters -long. This key is hashed using SHA-256 and the resulting digest is used as a key for AES-256 encryption of the cookie -value. This cookie contains an expiry time as part of the encrypted value, so all nodes in the cluster must have their -clocks synchronized. At one minute intervals a new cookie will be generated with an updated expiry time if the session -is in use. - -The following properties can be used to configure form based auth: - -include::{generated-dir}/config/quarkus-vertx-http-config-group-form-auth-config.adoc[opts=optional, leveloffset=+1] - -[[mutual-tls]] -== Mutual TLS Authentication - -Quarkus provides mTLS authentication so that you can authenticate users based on their X.509 certificates. - -To use this authentication method, you should first enable SSL for your application. For more details, check the xref:http-reference.adoc#ssl[Supporting secure connections with SSL] guide. - -Once your application is accepting secure connections, the next step is to configure a `quarkus.http.ssl.certificate.trust-store-file` -holding all the certificates that your application should trust as well as how your application should ask for certificates when -a client (e.g.: browser or another service) tries to access one of its protected resources. - -[source,properties] ----- -quarkus.http.ssl.certificate.key-store-file=server-keystore.jks <1> -quarkus.http.ssl.certificate.key-store-password=the_key_store_secret -quarkus.http.ssl.certificate.trust-store-file=server-truststore.jks <2> -quarkus.http.ssl.certificate.trust-store-password=the_trust_store_secret -quarkus.http.ssl.client-auth=required <3> - -quarkus.http.auth.permission.default.paths=/* <4> -quarkus.http.auth.permission.default.policy=authenticated ----- -<1> Configures a key store where the server's private key is located. -<2> Configures a trust store from where the trusted certificates are going to be loaded from. -<3> Defines that the server should *always* ask certificates from clients. You can relax this behavior by using `REQUEST` so -that the server should still accept requests without a certificate. Useful when you are also supporting authentication methods other than -mTLS. -<4> Defines a policy where only authenticated users should have access to resources from your application. - -Once the incoming request matches a valid certificate in the truststore, your application should be able to obtain the subject by -just injecting a `SecurityIdentity` as follows: - -[#x509-subject-example] -.Obtaining the subject -[source,java] ----- -@Inject -SecurityIdentity identity; - -@GET -@Produces(MediaType.TEXT_PLAIN) -public String hello() { - return String.format("Hello, %s", identity.getPrincipal().getName()); -} ----- - -You should also be able to get the certificate as follows: - -[#x509-credential-example] -.Obtaining the certificate -[source,java] ----- -import java.security.cert.X509Certificate; -import io.quarkus.security.credential.CertificateCredential; - -CertificateCredential credential = identity.getCredential(CertificateCredential.class); -X509Certificate certificate = credential.getCertificate(); ----- - -=== Authorization - -The information from the client certificate can be used to enhance Quarkus `SecurityIdentity`. For example, one can add new roles after checking a client certificate subject name, etc. -Please see the xref:security-customization.adoc#security-identity-customization[SecurityIdentity Customization] section for more information about customizing Quarkus `SecurityIdentity`. - -[[proactive-authentication]] -== Proactive Authentication - -By default Quarkus does what we call proactive authentication. This means that if an incoming request has a -credential then that request will always be authenticated (even if the target page does not require authentication). - -This means that requests with an invalid credential will always be rejected, even for public pages. You can change -this behavior and only authenticate when required by setting `quarkus.http.auth.proactive=false`. - -If you disable proactive authentication then the authentication process will only be run when an identity is requested, -either because there are security rules that requires the user to be authenticated, or due to programmatic access to the -current identity. - -Note that if proactive authentication is in use accessing the `SecurityIdentity` is a blocking operation. This is because -authentication may not have happened yet, and accessing it may require calls to external systems such as databases that -may block. For blocking applications this is no problem, however if you are have disabled authentication in a reactive -application this will fail (as you cannot do blocking operations on the IO thread). To work around this you need to -`@Inject` an instance of `io.quarkus.security.identity.CurrentIdentityAssociation`, and call the -`Uni getDeferredIdentity();` method. You can then subscribe to the resulting `Uni` and will be notified -when authentication is complete and the identity is available. - -=== How to customize authentication exception responses - -By default the authentication security constraints are enforced before the JAX-RS chain starts. -Disabling the proactive authentication effectively shifts this process to the moment when the JAX-RS chain starts running thus making it possible to use JAX-RS `ExceptionMapper` to capture Quarkus Security authentication exceptions such as `io.quarkus.security.AuthenticationFailedException`, for example: - -[source,java] ----- -package io.quarkus.it.keycloak; - -import javax.annotation.Priority; -import javax.ws.rs.Priorities; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -import io.quarkus.security.AuthenticationFailedException; - -@Provider -@Priority(Priorities.AUTHENTICATION) -public class AuthenticationFailedExceptionMapper implements ExceptionMapper { - - @Context - UriInfo uriInfo; - - @Override - public Response toResponse(AuthenticationFailedException exception) { - return Response.status(401).header("WWW-Authenticate", "Basic realm=\"Quarkus\"").build(); - } -} ----- - -== References - -* xref:security.adoc[Quarkus Security] diff --git a/_versions/2.7/guides/security-customization.adoc b/_versions/2.7/guides/security-customization.adoc deleted file mode 100644 index 2bfc46bdea5..00000000000 --- a/_versions/2.7/guides/security-customization.adoc +++ /dev/null @@ -1,450 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Security Tips and Tricks - -include::./attributes.adoc[] - -== Quarkus Security Dependency - -`io.quarkus:quarkus-security` module contains the core Quarkus security classes. - -In most cases, it does not have to be added directly to your project's build file as it is already provided by all of the security extensions. -However, if you need to write your own custom security code (for example, register a <>) or use <> libraries, then please make sure it is included: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-security - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-security") ----- - -== HttpAuthenticationMechanism Customization - -One can customize `HttpAuthenticationMechanism` by registering a CDI implementation bean. -In the example below the custom authenticator delegates to `JWTAuthMechanism` provided by `quarkus-smallrye-jwt`: - -[source,java] ----- -@Alternative -@Priority(1) -@ApplicationScoped -public class CustomAwareJWTAuthMechanism implements HttpAuthenticationMechanism { - - private static final Logger LOG = LoggerFactory.getLogger(CustomAwareJWTAuthMechanism.class); - - @Inject - JWTAuthMechanism delegate; - - @Override - public Uni authenticate(RoutingContext context, IdentityProviderManager identityProviderManager) { - // do some custom action and delegate - return delegate.authenticate(context, identityProviderManager); - } - - @Override - public Uni getChallenge(RoutingContext context) { - return delegate.getChallenge(context); - } - - @Override - public Set> getCredentialTypes() { - return delegate.getCredentialTypes(); - } - - @Override - public HttpCredentialTransport getCredentialTransport() { - return delegate.getCredentialTransport(); - } - -} ----- - -[[security-identity-customization]] -== Security Identity Customization - -Internally, the identity providers create and update an instance of the `io.quarkus.security.identity.SecurityIdentity` class which holds the principal, roles, credentials which were used to authenticate the client (user) and other security attributes. An easy option to customize `SecurityIdentity` is to register a custom `SecurityIdentityAugmentor`. For example, the augmentor below adds an addition role: - -[source,java] ----- -import io.quarkus.security.identity.AuthenticationRequestContext; -import io.quarkus.security.identity.SecurityIdentity; -import io.quarkus.security.identity.SecurityIdentityAugmentor; -import io.quarkus.security.runtime.QuarkusSecurityIdentity; -import io.smallrye.mutiny.Uni; - -import javax.enterprise.context.ApplicationScoped; -import java.util.function.Supplier; - -@ApplicationScoped -public class RolesAugmentor implements SecurityIdentityAugmentor { - - @Override - public Uni augment(SecurityIdentity identity, AuthenticationRequestContext context) { - return Uni.createFrom().item(build(identity)); - - // Do 'return context.runBlocking(build(identity));' - // if a blocking call is required to customize the identity - } - - private Supplier build(SecurityIdentity identity) { - if(identity.isAnonymous()) { - return () -> identity; - } else { - // create a new builder and copy principal, attributes, credentials and roles from the original identity - QuarkusSecurityIdentity.Builder builder = QuarkusSecurityIdentity.builder(identity); - - // add custom role source here - builder.addRole("dummy"); - return builder::build; - } - } -} ----- - -Here is another example showing how to use the client certificate available in the current xref:security-built-in-authentication.adoc#mutual-tls[Mutual TLS] request to add more roles: - -[source,java] ----- -import java.security.cert.X509Certificate; -import io.quarkus.security.credential.CertificateCredential; -import io.quarkus.security.identity.AuthenticationRequestContext; -import io.quarkus.security.identity.SecurityIdentity; -import io.quarkus.security.identity.SecurityIdentityAugmentor; -import io.quarkus.security.runtime.QuarkusSecurityIdentity; -import io.smallrye.mutiny.Uni; - -import javax.enterprise.context.ApplicationScoped; -import java.util.function.Supplier; -import java.util.Set; - -@ApplicationScoped -public class RolesAugmentor implements SecurityIdentityAugmentor { - - @Override - public Uni augment(SecurityIdentity identity, AuthenticationRequestContext context) { - return Uni.createFrom().item(build(identity)); - } - - private Supplier build(SecurityIdentity identity) { - // create a new builder and copy principal, attributes, credentials and roles from the original identity - QuarkusSecurityIdentity.Builder builder = QuarkusSecurityIdentity.builder(identity); - - CertificateCredential certificate = identity.getCredential(CertificateCredential.class); - if (certificate != null) { - builder.addRoles(extractRoles(certificate.getCertificate())); - } - return builder::build; - } - - private Set extractRoles(X509Certificate certificate) { - String name = certificate.getSubjectX500Principal().getName(); - - switch (name) { - case "CN=client": - return Collections.singleton("user"); - case "CN=guest-client": - return Collections.singleton("guest"); - default: - return Collections.emptySet(); - } - } -} ----- - -[NOTE] -==== -If more than one custom `SecurityIdentityAugmentor` is registered then they will be considered equal candidates and invoked in random order. -You can enforce the order by implementing a default `SecurityIdentityAugmentor#priority` method. Augmentors with higher priorities will be invoked first. -==== - -[[jaxrs-security-context]] -== Custom JAX-RS SecurityContext - -If you use JAX-RS `ContainerRequestFilter` to set a custom JAX-RS `SecurityContext` then make sure `ContainerRequestFilter` runs in the JAX-RS pre-match phase by adding a `@PreMatching` annotation to it for this custom security context to be linked with Quarkus `SecurityIdentity`, for example: - -[source,java] ----- -import java.security.Principal; - -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.PreMatching; -import javax.ws.rs.core.SecurityContext; -import javax.ws.rs.ext.Provider; - -@Provider -@PreMatching -public class SecurityOverrideFilter implements ContainerRequestFilter { - @Override - public void filter(ContainerRequestContext requestContext) throws IOException { - String user = requestContext.getHeaders().getFirst("User"); - String role = requestContext.getHeaders().getFirst("Role"); - if (user != null && role != null) { - requestContext.setSecurityContext(new SecurityContext() { - @Override - public Principal getUserPrincipal() { - return new Principal() { - @Override - public String getName() { - return user; - } - }; - } - - @Override - public boolean isUserInRole(String r) { - return role.equals(r); - } - - @Override - public boolean isSecure() { - return false; - } - - @Override - public String getAuthenticationScheme() { - return "basic"; - } - }); - } - - } -} ----- - -== Disabling Authorization - -If you have a good reason to disable the authorization (for example, when testing) then you can register a custom `AuthorizationController`: - -[source,java] ----- -@Alternative -@Priority(Interceptor.Priority.LIBRARY_AFTER) -@ApplicationScoped -public class DisabledAuthController extends AuthorizationController { - @ConfigProperty(name = "disable.authorization", defaultValue = "false") - boolean disableAuthorization; - - @Override - public boolean isAuthorizationEnabled() { - return !disableAuthorization; - } -} ----- - -Please also see xref:security-testing.adoc#testing-security[TestingSecurity Annotation] section on how to disable the security checks using `TestSecurity` annotation. - -== Registering Security Providers - -=== Default providers - -When running in native mode, the default behavior for GraalVM native executable generation is to only include the main "SUN" provider -unless you have enabled SSL, in which case all security providers are registered. If you are not using SSL, then you can selectively -register security providers by name using the `quarkus.security.security-providers` property. The following example illustrates -configuration to register the "SunRsaSign" and "SunJCE" security providers: - -.Example Security Providers Configuration -[source,properties] ----- -quarkus.security.security-providers=SunRsaSign,SunJCE ----- - -[[bouncy-castle]] -=== BouncyCastle - -If you need to register an `org.bouncycastle.jce.provider.BouncyCastleProvider` JCE provider then please set a `BC` provider name: - -.Example Security Providers BouncyCastle Configuration -[source,properties] ----- -quarkus.security.security-providers=BC ----- - -and add the BouncyCastle provider dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.bouncycastle - bcprov-jdk15on - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.bouncycastle:bcprov-jdk15on") ----- - -[[bouncy-castle-jsse]] -=== BouncyCastle JSSE - -If you need to register an `org.bouncycastle.jsse.provider.BouncyCastleJsseProvider` JSSE provider and use it instead of the default SunJSSE provider then please set a `BCJSSE` provider name: - -.Example Security Providers BouncyCastle JSSE Configuration -[source,properties] ----- -quarkus.security.security-providers=BCJSSE - -quarkus.http.ssl.client-auth=REQUIRED - -quarkus.http.ssl.certificate.key-store-file=server-keystore.jks -quarkus.http.ssl.certificate.key-store-password=password -quarkus.http.ssl.certificate.trust-store-file=server-truststore.jks -quarkus.http.ssl.certificate.trust-store-password=password ----- - -and add the BouncyCastle TLS dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.bouncycastle - bctls-jdk15on - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.bouncycastle:bctls-jdk15on") ----- - -[[bouncy-castle-fips]] -=== BouncyCastle FIPS - -If you need to register an `org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider` JCE provider then please set a `BCFIPS` provider name: - -.Example Security Providers BouncyCastle FIPS Configuration -[source,properties] ----- -quarkus.security.security-providers=BCFIPS ----- - -and add the BouncyCastle FIPS provider dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.bouncycastle - bc-fips - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.bouncycastle:bc-fips") ----- - -[NOTE] -==== -`BCFIPS` provider option is supported in native image but the algorithm self-tests which rely on `java.security.SecureRandom` to verify the generated keys have been removed for these tests to pass. The following classes have been affected: -- `org.bouncycastle.crypto.general.DSA` -- `org.bouncycastle.crypto.general.DSTU4145` -- `org.bouncycastle.crypto.general.ECGOST3410` -- `org.bouncycastle.crypto.general.GOST3410` -- `org.bouncycastle.crypto.fips.FipsDSA` -- `org.bouncycastle.crypto.fips.FipsEC` -- `org.bouncycastle.crypto.fips.FipsRSA` -==== - -[[bouncy-castle-jsse-fips]] -=== BouncyCastle JSSE FIPS - -If you need to register an `org.bouncycastle.jsse.provider.BouncyCastleJsseProvider` JSSE provider and use it in combination with `org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider` instead of the default SunJSSE provider then please set a `BCFIPSJSSE` provider name: - -.Example Security Providers BouncyCastle FIPS JSSE Configuration -[source,properties] ----- -quarkus.security.security-providers=BCFIPSJSSE - -quarkus.http.ssl.client-auth=REQUIRED - -quarkus.http.ssl.certificate.key-store-file=server-keystore.jks -quarkus.http.ssl.certificate.key-store-password=password -quarkus.http.ssl.certificate.key-store-file-type=BCFKS -quarkus.http.ssl.certificate.key-store-provider=BCFIPS -quarkus.http.ssl.certificate.trust-store-file=server-truststore.jks -quarkus.http.ssl.certificate.trust-store-password=password -quarkus.http.ssl.certificate.trust-store-file-type=BCFKS -quarkus.http.ssl.certificate.trust-store-provider=BCFIPS ----- - -and the BouncyCastle TLS dependency optimized for using the BouncyCastle FIPS provider: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.bouncycastle - bctls-fips - - - - org.bouncycastle - bc-fips - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.bouncycastle:bctls-fips") -implementation("org.bouncycastle:bc-fips") ----- - -Note that the keystore and truststore type and provider are set to `BCFKS` and `BCFIPS`. -One can generate a keystore with this type and provider like this: - -[source,shell] ----- -keytool -genkey -alias server -keyalg RSA -keystore server-keystore.jks -keysize 2048 -keypass password -provider org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providerpath $PATH_TO_BC_FIPS_JAR -storetype BCFKS ----- - -[NOTE] -==== -`BCFIPSJSSE` provider option is currently not supported in native image. -==== - -== Reactive Security - -If you are going to use security in a reactive environment, you will likely need SmallRye Context Propagation: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-context-propagation - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-context-propagation") ----- - -This will allow you to propagate the identity throughout the reactive callbacks. You also need to make sure you -are using an executor that is capable of propagating the identity (e.g. no `CompletableFuture.supplyAsync`), -to make sure that Quarkus can propagate it. For more information see the -xref:context-propagation.adoc[Context Propagation Guide]. - -== References - -* xref:security.adoc[Quarkus Security] diff --git a/_versions/2.7/guides/security-jdbc.adoc b/_versions/2.7/guides/security-jdbc.adoc deleted file mode 100644 index a8b7056d7ad..00000000000 --- a/_versions/2.7/guides/security-jdbc.adoc +++ /dev/null @@ -1,309 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Security with JDBC - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can use a database to store your user identities. - - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this example, we build a very simple microservice which offers three endpoints: - -* `/api/public` -* `/api/users/me` -* `/api/admin` - -The `/api/public` endpoint can be accessed anonymously. -The `/api/admin` endpoint is protected with RBAC (Role-Based Access Control) where only users granted with the `admin` role can access. At this endpoint, we use the `@RolesAllowed` annotation to declaratively enforce the access constraint. -The `/api/users/me` endpoint is also protected with RBAC (Role-Based Access Control) where only users granted with the `user` role can access. As a response, it returns a JSON document with details about the user. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `security-jdbc-quickstart` {quickstarts-tree-url}/security-jdbc-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: security-jdbc-quickstart -:create-app-extensions: elytron-security-jdbc,jdbc-postgresql,resteasy -include::includes/devtools/create-app.adoc[] - -[NOTE] -==== -Don't forget to add the database connector library of choice. Here we are using PostgreSQL as identity store. -==== - -This command generates a new project, importing the `elytron-security-jdbc` extension -which is an https://docs.wildfly.org/17/WildFly_Elytron_Security.html#jdbc-security-realm[`wildfly-elytron-realm-jdbc`] adapter for Quarkus applications. - -If you already have your Quarkus project configured, you can add the `elytron-security-jdbc` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: elytron-security-jdbc -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-elytron-security-jdbc - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-elytron-security-jdbc") ----- - -== Writing the application - -Let's start by implementing the `/api/public` endpoint. As you can see from the source code below, it is just a regular JAX-RS resource: - -[source,java] ----- -package org.acme.security.jdbc; - -import javax.annotation.security.PermitAll; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/api/public") -public class PublicResource { - - @GET - @PermitAll - @Produces(MediaType.TEXT_PLAIN) - public String publicResource() { - return "public"; - } -} ----- - -The source code for the `/api/admin` endpoint is also very simple. The main difference here is that we are using a `@RolesAllowed` annotation to make sure that only users granted with the `admin` role can access the endpoint: - - -[source,java] ----- -package org.acme.security.jdbc; - -import javax.annotation.security.RolesAllowed; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/api/admin") -public class AdminResource { - - @GET - @RolesAllowed("admin") - @Produces(MediaType.TEXT_PLAIN) - public String adminResource() { - return "admin"; - } -} ----- - -Finally, let's consider the `/api/users/me` endpoint. As you can see from the source code below, we are trusting only users with the `user` role. -We are using `SecurityContext` to get access to the current authenticated Principal and we return the user's name. This information is loaded from the database. - -[source,java] ----- -package org.acme.security.jdbc; - -import javax.annotation.security.RolesAllowed; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.SecurityContext; - -@Path("/api/users") -public class UserResource { - - @GET - @RolesAllowed("user") - @Path("/me") - public String me(@Context SecurityContext securityContext) { - return securityContext.getUserPrincipal().getName(); - } -} ----- - -=== Configuring the Application - -The `elytron-security-jdbc` extension requires at least one datasource to access to your database. - -[source,properties] ----- -quarkus.datasource.db-kind=postgresql -quarkus.datasource.username=quarkus -quarkus.datasource.password=quarkus -quarkus.datasource.jdbc.url=jdbc:postgresql:elytron-security-jdbc ----- - -In our context, we are using PostgreSQL as identity store and we initialize the database with users and roles. - -[source,sql] ----- -CREATE TABLE test_user ( - id INT, - username VARCHAR(255), - password VARCHAR(255), - role VARCHAR(255) -); - -INSERT INTO test_user (id, username, password, role) VALUES (1, 'admin', 'admin', 'admin'); -INSERT INTO test_user (id, username, password, role) VALUES (2, 'user','user', 'user'); ----- - -[NOTE] -==== -It is probably useless but we kindly remind you that you must not store clear-text passwords in production environment ;-). -The `elytron-security-jdbc` offers a built-in bcrypt password mapper. -==== - -We can now configure the Elytron JDBC Realm. - -[source,properties] ----- -quarkus.security.jdbc.enabled=true -quarkus.security.jdbc.principal-query.sql=SELECT u.password, u.role FROM test_user u WHERE u.username=? <1> -quarkus.security.jdbc.principal-query.clear-password-mapper.enabled=true <2> -quarkus.security.jdbc.principal-query.clear-password-mapper.password-index=1 -quarkus.security.jdbc.principal-query.attribute-mappings.0.index=2 <3> -quarkus.security.jdbc.principal-query.attribute-mappings.0.to=groups ----- - -The `elytron-security-jdbc` extension requires at least one principal query to authenticate the user and its identity. - -<1> We define a parameterized SQL statement (with exactly 1 parameter) which should return the user's password plus any additional information you want to load. -<2> We configure the password mapper with the position of the password field in the `SELECT` fields and other information like salt, hash encoding, etc. -<3> We use `attribute-mappings` to bind the `SELECT` projection fields (ie. `u.role` here) to the target Principal representation attributes. - -[NOTE] -==== -In the `principal-query` configuration all the `index` properties start at 1 (rather than 0). -==== - -== Testing the Application - -The application is now protected and the identities are provided by our database. -The very first thing to check is to ensure the anonymous access works. - -[source,shell] ----- -$ curl -i -X GET http://localhost:8080/api/public -HTTP/1.1 200 OK -Content-Length: 6 -Content-Type: text/plain;charset=UTF-8 - -public% ----- - -Now, let's try a to hit a protected resource anonymously. - -[source,shell] ----- -$ curl -i -X GET http://localhost:8080/api/admin -HTTP/1.1 401 Unauthorized -Content-Length: 14 -Content-Type: text/html;charset=UTF-8 - -Not authorized% ----- - -So far so good, now let's try with an allowed user. - -[source,shell] ----- -$ curl -i -X GET -u admin:admin http://localhost:8080/api/admin -HTTP/1.1 200 OK -Content-Length: 5 -Content-Type: text/plain;charset=UTF-8 - -admin% ----- -By providing the `admin:admin` credentials, the extension authenticated the user and loaded their roles. -The `admin` user is authorized to access to the protected resources. - -The user `admin` should be forbidden to access a resource protected with `@RolesAllowed("user")` because it doesn't have this role. - -[source,shell] ----- -$ curl -i -X GET -u admin:admin http://localhost:8080/api/users/me -HTTP/1.1 403 Forbidden -Content-Length: 34 -Content-Type: text/html;charset=UTF-8 - -Forbidden% ----- - -Finally, using the user `user` works and the security context contains the principal details (username for instance). - -[source,shell] ----- -$ curl -i -X GET -u user:user http://localhost:8080/api/users/me -HTTP/1.1 200 OK -Content-Length: 4 -Content-Type: text/plain;charset=UTF-8 - -user% ----- - -== Advanced Configuration - -This guide only covered an easy use case, the extension offers multiple datasources, multiple principal queries configuration as well as a bcrypt password mapper. - -[source,properties] --- -quarkus.datasource.db-kind=postgresql -quarkus.datasource.username=quarkus -quarkus.datasource.password=quarkus -quarkus.datasource.jdbc.url=jdbc:postgresql:multiple-data-sources-users - -quarkus.datasource.permissions.db-kind=postgresql -quarkus.datasource.permissions.username=quarkus -quarkus.datasource.permissions.password=quarkus -quarkus.datasource.permissions.jdbc.url=jdbc:postgresql:multiple-data-sources-permissions - -quarkus.security.jdbc.enabled=true -quarkus.security.jdbc.principal-query.sql=SELECT u.password FROM test_user u WHERE u.username=? -quarkus.security.jdbc.principal-query.clear-password-mapper.enabled=true -quarkus.security.jdbc.principal-query.clear-password-mapper.password-index=1 - -quarkus.security.jdbc.principal-query.roles.sql=SELECT r.role_name FROM test_role r, test_user_role ur WHERE ur.username=? AND ur.role_id = r.id -quarkus.security.jdbc.principal-query.roles.datasource=permissions -quarkus.security.jdbc.principal-query.roles.attribute-mappings.0.index=1 -quarkus.security.jdbc.principal-query.roles.attribute-mappings.0.to=groups --- - -[[configuration-reference]] -== Configuration Reference - -include::{generated-dir}/config/quarkus-elytron-security-jdbc.adoc[opts=optional, leveloffset=+1] - -== References - -* xref:security.adoc[Quarkus Security] diff --git a/_versions/2.7/guides/security-jpa.adoc b/_versions/2.7/guides/security-jpa.adoc deleted file mode 100644 index a3145bb24c6..00000000000 --- a/_versions/2.7/guides/security-jpa.adoc +++ /dev/null @@ -1,418 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Security with JPA - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can use a database to store your user identities with -xref:hibernate-orm.adoc[Hibernate ORM] or xref:hibernate-orm-panache.adoc[Hibernate ORM with Panache]. - - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this example, we build a very simple microservice which offers three endpoints: - -* `/api/public` -* `/api/users/me` -* `/api/admin` - -The `/api/public` endpoint can be accessed anonymously. -The `/api/admin` endpoint is protected with RBAC (Role-Based Access Control) where only users granted with the `admin` role can access. At this endpoint, we use the `@RolesAllowed` annotation to declaratively enforce the access constraint. -The `/api/users/me` endpoint is also protected with RBAC (Role-Based Access Control) where only users granted with the `user` role can access. As a response, it returns a JSON document with details about the user. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `security-jpa-quickstart` {quickstarts-tree-url}/security-jpa-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: security-jpa-quickstart -:create-app-extensions: security-jpa,jdbc-postgresql,resteasy,hibernate-orm-panache -include::includes/devtools/create-app.adoc[] - -[NOTE] -==== -Don't forget to add the database connector library of choice. Here we are using PostgreSQL as identity store. -==== - -This command generates a Maven project, importing the `security-jpa` extension -which allows you to map your security source to JPA entities. - -If you already have your Quarkus project configured, you can add the `security-jpa` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: security-jpa -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-security-jpa - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-security-jpa") ----- - -== Writing the application - -Let's start by implementing the `/api/public` endpoint. As you can see from the source code below, it is just a regular JAX-RS resource: - -[source,java] ----- -package org.acme.security.jpa; - -import javax.annotation.security.PermitAll; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/api/public") -public class PublicResource { - - @GET - @PermitAll - @Produces(MediaType.TEXT_PLAIN) - public String publicResource() { - return "public"; - } -} ----- - -The source code for the `/api/admin` endpoint is also very simple. The main difference here is that we are using a `@RolesAllowed` annotation to make sure that only users granted with the `admin` role can access the endpoint: - - -[source,java] ----- -package org.acme.security.jpa; - -import javax.annotation.security.RolesAllowed; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/api/admin") -public class AdminResource { - - @GET - @RolesAllowed("admin") - @Produces(MediaType.TEXT_PLAIN) - public String adminResource() { - return "admin"; - } -} ----- - -Finally, let's consider the `/api/users/me` endpoint. As you can see from the source code below, we are trusting only users with the `user` role. -We are using `SecurityContext` to get access to the current authenticated Principal and we return the user's name. This information is loaded from the database. - -[source,java] ----- -package org.acme.security.jpa; - -import javax.annotation.security.RolesAllowed; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.SecurityContext; - -@Path("/api/users") -public class UserResource { - - @GET - @RolesAllowed("user") - @Path("/me") - public String me(@Context SecurityContext securityContext) { - return securityContext.getUserPrincipal().getName(); - } -} ----- - -=== Defining our user entity - -We can now describe how our security information is stored in our model by adding a few annotations to our `User` entity: - -[source,java] ----- -package org.acme.security.jpa; - -import javax.persistence.Entity; -import javax.persistence.Table; - -import io.quarkus.hibernate.orm.panache.PanacheEntity; -import io.quarkus.elytron.security.common.BcryptUtil; -import io.quarkus.security.jpa.Password; -import io.quarkus.security.jpa.Roles; -import io.quarkus.security.jpa.UserDefinition; -import io.quarkus.security.jpa.Username; - -@Entity -@Table(name = "test_user") -@UserDefinition <1> -public class User extends PanacheEntity { - @Username <2> - public String username; - @Password <3> - public String password; - @Roles <4> - public String role; - - /** - * Adds a new user in the database - * @param username the user name - * @param password the unencrypted password (it will be encrypted with bcrypt) - * @param role the comma-separated roles - */ - public static void add(String username, String password, String role) { <5> - User user = new User(); - user.username = username; - user.password = BcryptUtil.bcryptHash(password); - user.role = role; - user.persist(); - } -} - ----- - -The `security-jpa` extension is only initialized if there is a single entity annotated with `@UserDefinition`. - -<1> This annotation must be present on a single entity. It can be a regular Hibernate ORM entity or a Hibernate ORM with Panache entity as in this example. -<2> This indicates the field used for the user name. -<3> This indicates the field used for the password. This defaults to using bcrypt hashed passwords, but you can also configure it for clear text passwords or custom passwords. -<4> This indicates the comma-separated list of roles added to the target Principal representation attributes. -<5> This method allows us to add users while hashing the password with the proper bcrypt hash. - -=== Configuring the Application - -The `security-jpa` extension requires at least one datasource to access to your database. - -[source,properties] ----- -quarkus.datasource.db-kind=postgresql -quarkus.datasource.username=quarkus -quarkus.datasource.password=quarkus -quarkus.datasource.jdbc.url=jdbc:postgresql:security_jpa - -quarkus.hibernate-orm.database.generation=drop-and-create ----- - -In our context, we are using PostgreSQL as identity store. The database schema is created by Hibernate ORM automatically -on startup (change this in production) and we initialize the database with users and roles in the `Startup` class: - -[source,java] ----- -package org.acme.security.jpa; - -import javax.enterprise.event.Observes; -import javax.inject.Singleton; -import javax.transaction.Transactional; - -import io.quarkus.runtime.StartupEvent; - - -@Singleton -public class Startup { - @Transactional - public void loadUsers(@Observes StartupEvent evt) { - // reset and load all test users - User.deleteAll(); - User.add("admin", "admin", "admin"); - User.add("user", "user", "user"); - } -} ----- - -[NOTE] -==== -It is probably useless but we kindly remind you that you must not store clear-text passwords in production environments ;-). -As a result, the `security-jpa` defaults to using bcrypt-hashed passwords. -==== - -== Testing the Application - -You can start the application in dev mode as follows: - -include::includes/devtools/dev.adoc[] - -[NOTE] -==== -In the following tests we use the basic authentication mechanism, you can enable it by setting `quarkus.http.auth.basic=true` in the `application.properties` file. -==== - -The application is now protected and the identities are provided by our database. -The very first thing to check is to ensure the anonymous access works. - -[source,shell] ----- -$ curl -i -X GET http://localhost:8080/api/public -HTTP/1.1 200 OK -Content-Length: 6 -Content-Type: text/plain;charset=UTF-8 - -public% ----- - -Now, let's try a to hit a protected resource anonymously. - -[source,shell] ----- -$ curl -i -X GET http://localhost:8080/api/admin -HTTP/1.1 401 Unauthorized -Content-Length: 14 -Content-Type: text/html;charset=UTF-8 - -Not authorized% ----- - -So far so good, now let's try with an allowed user. - -[source,shell] ----- -$ curl -i -X GET -u admin:admin http://localhost:8080/api/admin -HTTP/1.1 200 OK -Content-Length: 5 -Content-Type: text/plain;charset=UTF-8 - -admin% ----- -By providing the `admin:admin` credentials, the extension authenticated the user and loaded their roles. -The `admin` user is authorized to access to the protected resources. - -The user `admin` should be forbidden to access a resource protected with `@RolesAllowed("user")` because it doesn't have this role. - -[source,shell] ----- -$ curl -i -X GET -u admin:admin http://localhost:8080/api/users/me -HTTP/1.1 403 Forbidden -Content-Length: 34 -Content-Type: text/html;charset=UTF-8 - -Forbidden% ----- - -Finally, using the user `user` works and the security context contains the principal details (username for instance). - -[source,shell] ----- -$ curl -i -X GET -u user:user http://localhost:8080/api/users/me -HTTP/1.1 200 OK -Content-Length: 4 -Content-Type: text/plain;charset=UTF-8 - -user% ----- - -== Supported model types - -- The `@UserDefinition` class must be a JPA entity (with Panache or not). -- The `@Username` and `@Password` field types must be of type `String`. -- The `@Roles` field must either be of type `String` or `Collection` or alternately a `Collection` where `X` is an entity class with one `String` field annotated with the `@RolesValue` annotation. -- Each `String` role element type will be parsed as a comma-separated list of roles. - -== Storing roles in another entity - -You can also store roles in another entity: - -[source,java] ----- -@UserDefinition -@Table(name = "test_user") -@Entity -public class User extends PanacheEntity { - @Username - public String name; - - @Password - public String pass; - - @ManyToMany - @Roles - public List roles = new ArrayList<>(); -} - -@Entity -public class Role extends PanacheEntity { - - @ManyToMany(mappedBy = "roles") - public List users; - - @RolesValue - public String role; -} ----- - -== Password storage and hashing - -By default, we consider passwords to be stored hashed with https://en.wikipedia.org/wiki/Bcrypt[bcrypt] under the -https://en.wikipedia.org/wiki/Crypt_(C)[Modular Crypt Format] (MCF). - -When you need to create such a hashed password we provide the convenient `String BcryptUtil.bcryptHash(String password)` -function, which defaults to creating a random salt and hashing in 10 iterations (though you can specify the iterations and salt -too). - -NOTE: with MCF you don't need dedicated columns to store the hashing algorithm, the iterations count or the salt because -they're all stored in the hashed value. - -You also have the possibility to store password using different hashing algorithm `@Password(value = PasswordType.CUSTOM, provider = CustomPasswordProvider.class)`: - -[source,java] ----- -@UserDefinition -@Table(name = "test_user") -@Entity -public class CustomPasswordUserEntity { - @Id - @GeneratedValue - public Long id; - - @Column(name = "username") - @Username - public String name; - - @Column(name = "password") - @Password(value = PasswordType.CUSTOM, provider = CustomPasswordProvider.class) - public String pass; - - @Roles - public String role; -} - -public class CustomPasswordProvider implements PasswordProvider { - @Override - public Password getPassword(String pass) { - byte[] digest = DatatypeConverter.parseHexBinary(pass); - return SimpleDigestPassword.createRaw(SimpleDigestPassword.ALGORITHM_SIMPLE_DIGEST_SHA_256, digest); - } -} ----- - -WARN: you can also store passwords in clear text with `@Password(PasswordType.CLEAR)` but we strongly recommend against -it in production. - -== References - -* xref:security.adoc[Quarkus Security] diff --git a/_versions/2.7/guides/security-jwt-build.adoc b/_versions/2.7/guides/security-jwt-build.adoc deleted file mode 100644 index 8a3fe00faef..00000000000 --- a/_versions/2.7/guides/security-jwt-build.adoc +++ /dev/null @@ -1,344 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Build, Sign and Encrypt JSON Web Tokens - -include::./attributes.adoc[] -:toc: - -According to link:https://datatracker.ietf.org/doc/html/rfc7519[RFC7519], JSON Web Token (JWT) is a compact, URL-safe means of representing claims which are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code(MAC) and/or encrypted. - -Signing the claims is used most often to secure the claims. What is known today as a JWT token is typically produced by signing the claims in a JSON format using the steps described in the link:https://tools.ietf.org/html/rfc7515[JSON Web Signature] specification. - -However, when the claims are sensitive, their confidentiality can be guaranteed by following the steps described in the link:https://tools.ietf.org/html/rfc7516[JSON Web Encryption] specification to produce a JWT token with the encrypted claims. - -Finally both the confidentiality and integrity of the claims can be further enforced by signing them first and then encrypting the nested JWT token. - -SmallRye JWT Build provides an API for securing JWT claims using all of these options. link:https://bitbucket.org/b_c/jose4j/wiki/Home[Jose4J] is used internally to support this API. - -== Dependency - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-jwt-build") ----- - -Note you can use Smallrye JWT Build API without having to create MicroProfile JWT endpoints supported by `quarkus-smallrye-jwt`. -It can also be excluded from `quarkus-smallrye-jwt` if MP JWT endpoints do not need to generate JWT tokens. - -== Create JwtClaimsBuilder and set the claims - -The first step is to initialize a `JwtClaimsBuilder` using one of the options below and add some claims to it: - -[source, java] ----- -import java.util.Collections; -import javax.json.Json; -import javax.json.JsonObject; -import io.smallrye.jwt.build.Jwt; -import io.smallrye.jwt.build.JwtClaimsBuilder; -import org.eclipse.microprofile.jwt.JsonWebToken; -... -// Create an empty builder and add some claims -JwtClaimsBuilder builder1 = Jwt.claims(); -builder1.claim("customClaim", "custom-value").issuer("https://issuer.org"); -// Or start typing the claims immediately: -// JwtClaimsBuilder builder1 = Jwt.upn("Alice"); - -// Builder created from the existing claims -JwtClaimsBuilder builder2 = Jwt.claims("/tokenClaims.json"); - -// Builder created from a map of claims -JwtClaimsBuilder builder3 = Jwt.claims(Collections.singletonMap("customClaim", "custom-value")); - -// Builder created from JsonObject -JsonObject userName = Json.createObjectBuilder().add("username", "Alice").build(); -JsonObject userAddress = Json.createObjectBuilder().add("city", "someCity").add("street", "someStreet").build(); -JsonObject json = Json.createObjectBuilder(userName).add("address", userAddress).build(); -JwtClaimsBuilder builder4 = Jwt.claims(json); - -// Builder created from JsonWebToken -@Inject JsonWebToken token; -JwtClaimsBuilder builder5 = Jwt.claims(token); ----- - -The API is fluent so the builder initialization can be done as part of the fluent API sequence. - -The builder will also set `iat` (issued at) to the current time, `exp` (expires at) to 5 minutes away from the current time (it can be customized with the `smallrye.jwt.new-token.lifespan` property) and `jti` (unique token identifier) claims if they have not already been set. - -One can also configure `smallrye.jwt.new-token.issuer` and `smallrye.jwt.new-token.audience` properties and skip setting the issuer and audience directly with the builder API. - -The next step is to decide how to secure the claims. - -[[sign-claims]] -== Sign the claims - -The claims can be signed immediately or after the `JSON Web Signature` headers have been set: - -[source, java] ----- -import io.smallrye.jwt.build.Jwt; -... - -// Sign the claims using an RSA private key loaded from the location set with a 'smallrye.jwt.sign.key.location' property. -// No 'jws()' transition is necessary. Default algorithm is RS256. -String jwt1 = Jwt.claims("/tokenClaims.json").sign(); - -// Set the headers and sign the claims with an RSA private key loaded in the code (the implementation of this method is omitted). -// Note a 'jws()' transition to a 'JwtSignatureBuilder', Default algorithm is RS256. -String jwt2 = Jwt.claims("/tokenClaims.json").jws().keyId("kid1").header("custom-header", "custom-value").sign(getPrivateKey()); ----- - -Note the `alg` (algorithm) header is set to `RS256` by default. Signing key identifier (`kid` header) does not have to be set if a single JSON Web Key (JWK) containing a `kid` property is used. - -RSA and Elliptic Curve (EC) private keys as well as symmetric secret keys can be used to sign the claims. -`ES256` and `HS256` are the defaut algorithms for EC private and symmetric key algorithms respectively. - -You can customize the signature algorithm, for example: - -[source, java] ----- -import io.smallrye.jwt.SignatureAlgorithm; -import io.smallrye.jwt.build.Jwt; - -// Sign the claims using an RSA private key loaded from the location set with a 'smallrye.jwt.sign.key.location' property. Algorithm is PS256. -String jwt = Jwt.upn("Alice").jws().algorithm(SignatureAlgorithm.PS256).sign(); ----- - -Alternatively you can use a `smallrye.jwt.new-token.signature-algorithm` property: - -```properties -smallrye.jwt.new-token.signature-algorithm=PS256 -``` - -and write a simpler API sequence: - -[source, java] ----- -import io.smallrye.jwt.build.Jwt; - -// Sign the claims using an RSA private key loaded from the location set with a 'smallrye.jwt.sign.key.location' property. Algorithm is PS256. -String jwt = Jwt.upn("Alice").sign(); ----- - -Note the `sign` step can be combined with the <> step to produce `inner-signed and encrypted` tokens, see <> section. - -[[encrypt-claims]] -== Encrypt the claims - -The claims can be encrypted immediately or after the `JSON Web Encryption` headers have been set the same way as they can be signed. -The only minor difference is that encrypting the claims always requires a `jwe()` `JwtEncryptionBuilder` transition given that the API has been optimized to support signing and inner-signing of the claims. - -[source, java] ----- -import io.smallrye.jwt.build.Jwt; -... - -// Encrypt the claims using an RSA public key loaded from the location set with a 'smallrye.jwt.encrypt.key.location' property. Default key encryption algorithm is RSA-OAEP. -String jwt1 = Jwt.claims("/tokenClaims.json").jwe().encrypt(); - -// Set the headers and encrypt the claims with an RSA public key loaded in the code (the implementation of this method is omitted). Default key encryption algorithm is A256KW. -String jwt2 = Jwt.claims("/tokenClaims.json").jwe().header("custom-header", "custom-value").encrypt(getSecretKey()); ----- - -Note the `alg` (key management algorithm) header is set to `RSA-OAEP` and the `enc` (content encryption header) is set to `A256GCM` by default. - -RSA and Elliptic Curve (EC) public keys as well as symmetric secret keys can be used to encrypt the claims. -`ECDH-ES` and `A256KW` are the defaut algorithms for EC public and symmetric key encryption algorithms respectively. - -Note two encryption operations are done when creating an ecrypted token: - -1) the generated content encryption key is encrypted by the key supplied with the API using the key encryption algorithm such as `RSA-OAEP` -2) the claims are encryped by the generated content encryption key using the content encryption algorithm such as `A256GCM`. - -You can customize the key and content encryption algorithms, for example: - -[source, java] ----- -import io.smallrye.jwt.KeyEncryptionAlgorithm; -import io.smallrye.jwt.ContentEncryptionAlgorithm; -import io.smallrye.jwt.build.Jwt; - -// Encrypt the claims using an RSA public key loaded from the location set with a 'smallrye.jwt.encrypt.key.location' property. -// Key encryption algorithm is RSA-OAEP-256, content encryption algorithm is A256CBC-HS512. -String jwt = Jwt.subject("Bob").jwe() - .keyAlgorithm(KeyEncryptionAlgorithm.RSA_OAEP_256) - .contentAlgorithm(ContentEncryptionAlgorithm.A256CBC_HS512) - .encrypt(); ----- - -Alternatively you can use `smallrye.jwt.new-token.key-encryption-algorithm` and `smallrye.jwt.new-token.content-encryption-algorithm` properties to customize the key and content encryption algorithms: - -```properties -smallrye.jwt.new-token.key-encryption-algorithm=RSA-OAEP-256 -smallrye.jwt.new-token.content-encryption-algorithm=A256CBC-HS512 -``` - -and write a simpler API sequence: - -[source, java] ----- -import io.smallrye.jwt.build.Jwt; - -// Encrypt the claims using an RSA public key loaded from the location set with a 'smallrye.jwt.encrypt.key.location' property. -// Key encryption algorithm is RSA-OAEP-256, content encryption algorithm is A256CBC-HS512. -String jwt = Jwt.subject("Bob").encrypt(); ----- - -Note that when the token is directly encrypted by the public RSA or EC key it is not possible to verify which party sent the token. -Therefore the secret keys should be preferred for directly encrypting the tokens, for example, when using JWT as cookies where a secret key is managed by the Quarkus endpoint with only this endpoint being both a producer and a consumer of the encrypted token. - -If you would like to use RSA or EC public keys to encrypt the token then it is recommended to sign the token first if the signing key is available, see the next <> section. - -[[innersign-encrypt-claims]] -== Sign the claims and encrypt the nested JWT token - -The claims can be signed and then the nested JWT token encrypted by combining the sign and encrypt steps. -[source, java] ----- -import io.smallrye.jwt.build.Jwt; -... - -// Sign the claims and encrypt the nested token using the private and public keys loaded from the locations set with the 'smallrye.jwt.sign.key.location' and 'smallrye.jwt.encrypt.key.location' properties respectively. Signature algorithm is RS256, key encryption algorithm is RSA-OAEP-256. -String jwt = Jwt.claims("/tokenClaims.json").innerSign().encrypt(); ----- - -== Fast JWT Generation - -If `smallrye.jwt.sign.key.location` or/and `smallrye.jwt.encrypt.key.location` properties are set then one can secure the existing claims (resources, maps, JsonObjects) with a single call: - -[source,java] ----- -// More compact than Jwt.claims("/claims.json").sign(); -Jwt.sign("/claims.json"); - -// More compact than Jwt.claims("/claims.json").jwe().encrypt(); -Jwt.encrypt("/claims.json"); - -// More compact than Jwt.claims("/claims.json").innerSign().encrypt(); -Jwt.signAndEncrypt("/claims.json"); ----- -As mentioned above, `iat` (issued at), `exp` (expires at), `jti` (token identifier), `iss` (issuer) and `aud` (audience) claims will be added if needed. - -== Dealing with the keys - -`smallrye.jwt.sign.key.location` and `smallrye.jwt.encrypt.key.location` properties can be used to point to signing and encryption key locations. The keys can be located on the local file system, classpath, or fetched from the remote endpoints and can be in `PEM` or `JSON Web Key` (`JWK`) formats. For example: - -[source,properties] ----- -smallrye.jwt.sign.key=privateKey.pem -smallrye.jwt.encrypt.key=publicKey.pem ----- - -You can also use MicroProfile `ConfigSource` to fetch the keys from the external services such as link:{vault-guide}[HashiCorp Vault] or other secret managers and use `smallrye.jwt.sign.key` and `smallrye.jwt.encrypt.key` properties instead: - -[source,properties] ----- -smallrye.jwt.sign.key=${private.key.from.vault} -smallrye.jwt.encrypt.key=${public.key.from.vault} ----- - -where both `private.key.from.vault` and `public.key.from.vault` are the `PEM` or `JWK` formatted key values provided by the custom `ConfigSource`. -`smallrye.jwt.sign.key` and `smallrye.jwt.encrypt.key` can also contain only the Base64-encoded private or public keys values. - -However, please note, directly inlining the private keys in the configuration is not recommended. Use the `smallrye.jwt.sign.key` property only if you need to fetch a signing key value from the remote secret manager. - -The keys can also be loaded by the code which builds the token and supplied to JWT Build API. - -If you need to sign and/or encrypt the token using the symmetric secret key then consider using `io.smallrye.jwt.util.KeyUtils` to generate a SecretKey of the required length. - -For example, one needs to have a 64 byte key to sign using the `HS512` algorithm (`512/8`) and a 32 byte key to encrypt the content encryption key with the `A256KW` algorithm (`256/8`): - -[source,java] ----- -import javax.crypto.SecretKey; -import io.smallrye.jwt.KeyEncryptionAlgorithm; -import io.smallrye.jwt.SignatureAlgorithm; -import io.smallrye.jwt.build.Jwt; -import io.smallrye.jwt.util.KeyUtils; - -SecretKey signingKey = KeyUtils.generateSecretKey(SignatureAlgorithm.HS512); -SecretKey encryptionKey = KeyUtils.generateSecretKey(KeyEncryptionAlgorithm.A256KW); -String jwt = Jwt.claim("sensitiveClaim", getSensitiveClaim()).innerSign(signingKey).encrypt(encryptionKey); ----- - -You can also consider using a `JSON Web Key` (JWK) or `JSON Web Key Set` (JWK Set) format to store a secret key on a secure file system and refer to it using either `smallrye.jwt.sign.key.location` or `smallrye.jwt.encrypt.key.location` properties, for example: - -[source,json] ----- -{ - "kty":"oct", - "kid":"secretKey", - "k":"Fdh9u8rINxfivbrianbbVT1u232VQBZYKx1HGAGPt2I" -} ----- - -or - -[source,json] ----- -{ - "keys": [ - { - "kty":"oct", - "kid":"secretKey1", - "k":"Fdh9u8rINxfivbrianbbVT1u232VQBZYKx1HGAGPt2I" - }, - { - "kty":"oct", - "kid":"secretKey2", - "k":"AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow" - } - ] -} ----- - -`io.smallrye.jwt.util.KeyUtils` can also be used to generate a pair of assymetric RSA or EC keys. These keys can be stored using a `JWK`, `JWK Set` or `PEM` format. - -== SmallRye JWT Builder configuration - -SmallRye JWT supports the following properties which can be used to customize the way claims are signed and/or encrypted: - -[cols=" - io.quarkus - quarkus-smallrye-jwt - - - io.quarkus - quarkus-smallrye-jwt-build - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-jwt") -implementation("io.quarkus:quarkus-smallrye-jwt-build") ----- - -=== Examine the JAX-RS resource - -Create a REST endpoint in `src/main/java/org/acme/security/jwt/TokenSecuredResource.java` with the following content: - -.REST Endpoint V1 -[source,java] ----- -package org.acme.security.jwt; - -import java.security.Principal; - -import javax.annotation.security.PermitAll; -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.InternalServerErrorException; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.SecurityContext; - -import org.eclipse.microprofile.jwt.JsonWebToken; - -@Path("/secured") -public class TokenSecuredResource { - - @Inject - JsonWebToken jwt; // <1> - - @GET() - @Path("permit-all") - @PermitAll // <2> - @Produces(MediaType.TEXT_PLAIN) - public String hello(@Context SecurityContext ctx) { - return getResponseString(ctx); // <3> - } - - private String getResponseString(SecurityContext ctx) { - String name; - if (ctx.getUserPrincipal() == null) { // <4> - name = "anonymous"; - } else if (!ctx.getUserPrincipal().getName().equals(jwt.getName())) { // <5> - throw new InternalServerErrorException("Principal and JsonWebToken names do not match"); - } else { - name = ctx.getUserPrincipal().getName(); // <6> - } - return String.format("hello + %s," - + " isHttps: %s," - + " authScheme: %s," - + " hasJWT: %s", - name, ctx.isSecure(), ctx.getAuthenticationScheme(), hasJwt()); // <7> - } - - private boolean hasJwt() { - return jwt.getClaimNames() != null; - } -} ----- -<1> Here we inject the JsonWebToken interface, an extension of the java.security.Principal interface that provides access to the claims associated with the current authenticated token. -<2> @PermitAll is a JSR 250 common security annotation that indicates that the given endpoint is accessible by any caller, authenticated or not. -<3> Here we inject the JAX-RS SecurityContext to inspect the security state of the call and use a `getResponseString()` function to populate a response string. -<4> Here we check if the call is insecure by checking the request user/caller `Principal` against null. -<5> Here we check that the Principal and JsonWebToken have the same name since JsonWebToken does represent the current Principal. -<6> Here we get the Principal name. -<7> The reply we build up makes use of the caller name, the `isSecure()` and `getAuthenticationScheme()` states of the request `SecurityContext`, and whether a non-null `JsonWebToken` was injected. - -=== Run the application - -Now we are ready to run our application. Use: - -include::includes/devtools/dev.adoc[] - -and you should see output similar to: - -.quarkus:dev Output -[source,shell] ----- -[INFO] Scanning for projects... -[INFO] -[INFO] ----------------------< org.acme:security-jwt-quickstart >----------------------- -[INFO] Building security-jwt-quickstart 1.0.0-SNAPSHOT -[INFO] --------------------------------[ jar ]--------------------------------- -... -Listening for transport dt_socket at address: 5005 -2020-07-15 16:09:50,883 INFO [io.quarkus] (Quarkus Main Thread) security-jwt-quickstart 1.0.0-SNAPSHOT on JVM (powered by Quarkus 999-SNAPSHOT) started in 1.073s. Listening on: http://0.0.0.0:8080 -2020-07-15 16:09:50,885 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated. -2020-07-15 16:09:50,885 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, mutiny, resteasy, resteasy-jackson, security, smallrye-context-propagation, smallrye-jwt, vertx, vertx-web] ----- - -Now that the REST endpoint is running, we can access it using a command line tool like curl: - -.curl command for /secured/permit-all -[source,shell] ----- -$ curl http://127.0.0.1:8080/secured/permit-all; echo -hello + anonymous, isHttps: false, authScheme: null, hasJWT: false ----- - -We have not provided any JWT in our request, so we would not expect that there is any security state seen by the endpoint, and -the response is consistent with that: - -* user name is anonymous -* isHttps is false as https is not used -* authScheme is null -* hasJWT is false - -Use Ctrl-C to stop the Quarkus server. - -So now let's actually secure something. Take a look at the new endpoint method `helloRolesAllowed` in the following: - -.REST Endpoint V2 -[source,java] ----- -package org.acme.security.jwt; - -import javax.annotation.security.PermitAll; -import javax.annotation.security.RolesAllowed; -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.InternalServerErrorException; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.SecurityContext; - -import org.eclipse.microprofile.jwt.JsonWebToken; - -@Path("/secured") -@RequestScoped -public class TokenSecuredResource { - - @Inject - JsonWebToken jwt; // <1> - - @GET - @Path("permit-all") - @PermitAll - @Produces(MediaType.TEXT_PLAIN) - public String hello(@Context SecurityContext ctx) { - return getResponseString(ctx); - } - - @GET - @Path("roles-allowed") // <2> - @RolesAllowed({ "User", "Admin" }) // <3> - @Produces(MediaType.TEXT_PLAIN) - public String helloRolesAllowed(@Context SecurityContext ctx) { - return getResponseString(ctx) + ", birthdate: " + jwt.getClaim("birthdate").toString(); // <4> - } - - private String getResponseString(SecurityContext ctx) { - String name; - if (ctx.getUserPrincipal() == null) { - name = "anonymous"; - } else if (!ctx.getUserPrincipal().getName().equals(jwt.getName())) { - throw new InternalServerErrorException("Principal and JsonWebToken names do not match"); - } else { - name = ctx.getUserPrincipal().getName(); - } - return String.format("hello + %s," - + " isHttps: %s," - + " authScheme: %s," - + " hasJWT: %s", - name, ctx.isSecure(), ctx.getAuthenticationScheme(), hasJwt()); - } - - private boolean hasJwt() { - return jwt.getClaimNames() != null; - } -} ----- -<1> Here we inject `JsonWebToken` -<2> This new endpoint will be located at /secured/roles-allowed -<3> @RolesAllowed is a JSR 250 common security annotation that indicates that the given endpoint is accessible by a caller if -they have either a "User" or "Admin" role assigned. -<4> Here we build the reply the same way as in the `hello` method but also add a value of the JWT `birthdate` claim by directly calling the injected `JsonWebToken`. - -After you make this addition to your `TokenSecuredResource`, rerun the `./mvnw compile quarkus:dev` command, and then try `curl -v http://127.0.0.1:8080/secured/roles-allowed; echo` to attempt to access the new endpoint. Your output should be: - -.curl command for /secured/roles-allowed -[source,shell] ----- -$ curl -v http://127.0.0.1:8080/secured/roles-allowed; echo -* Trying 127.0.0.1... -* TCP_NODELAY set -* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0) -> GET /secured/roles-allowed HTTP/1.1 -> Host: 127.0.0.1:8080 -> User-Agent: curl/7.54.0 -> Accept: */* -> -< HTTP/1.1 401 Unauthorized -< Connection: keep-alive -< Content-Type: text/html;charset=UTF-8 -< Content-Length: 14 -< Date: Sun, 03 Mar 2019 16:32:34 GMT -< -* Connection #0 to host 127.0.0.1 left intact -Not authorized ----- - -Excellent, we have not provided any JWT in the request, so we should not be able to access the endpoint, and we were not. Instead we received an HTTP 401 Unauthorized error. We need to obtain and pass in a valid JWT to access that endpoint. There are two steps to this, 1) configuring our {extension-name} extension with information on how to validate a JWT, and 2) generating a matching JWT with the appropriate claims. - -=== Configuring the {extension-name} Extension Security Information - -Create a `security-jwt-quickstart/src/main/resources/application.properties` with the following content: - -.application.properties for TokenSecuredResource -[source, properties] ----- -mp.jwt.verify.publickey.location=publicKey.pem #<1> -mp.jwt.verify.issuer=https://example.com/issuer #<2> - -quarkus.native.resources.includes=publicKey.pem #<3> ----- -<1> We are setting public key location to point to a classpath publicKey.pem location. We will add this key in part B, <>. -<2> We are setting the issuer to the URL string `https://example.com/issuer`. -<3> We are including the public key as a resource in the native executable. - -=== Adding a Public Key - -The https://tools.ietf.org/html/rfc7519[JWT specification] defines various levels of security of JWTs that one can use. -The {mp-jwt} specification requires that JWTs that are signed with the RSA-256 signature algorithm. This in -turn requires a RSA public key pair. On the REST endpoint server side, you need to configure the location of the RSA public -key to use to verify the JWT sent along with requests. The `mp.jwt.verify.publickey.location=publicKey.pem` setting configured -previously expects that the public key is available on the classpath as `publicKey.pem`. To accomplish this, copy the following -content to a `security-jwt-quickstart/src/main/resources/publicKey.pem` file. - -.RSA Public Key PEM Content -[source, text] ----- ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlivFI8qB4D0y2jy0CfEq -Fyy46R0o7S8TKpsx5xbHKoU1VWg6QkQm+ntyIv1p4kE1sPEQO73+HY8+Bzs75XwR -TYL1BmR1w8J5hmjVWjc6R2BTBGAYRPFRhor3kpM6ni2SPmNNhurEAHw7TaqszP5e -UF/F9+KEBWkwVta+PZ37bwqSE4sCb1soZFrVz/UT/LF4tYpuVYt3YbqToZ3pZOZ9 -AX2o1GCG3xwOjkc4x0W7ezbQZdC9iftPxVHR8irOijJRRjcPDtA6vPKpzLl6CyYn -sIYPd99ltwxTHjr3npfv/3Lw50bAkbT4HeLFxTx4flEoZLKO/g0bAoV2uqBhkA9x -nQIDAQAB ------END PUBLIC KEY----- ----- - -=== Generating a JWT - -Often one obtains a JWT from an identity manager like https://www.keycloak.org/[Keycloak], but for this quickstart we will generate our own using the JWT generation API provided by `smallrye-jwt` (see xref:smallrye-jwt-build.adoc[Generate JWT tokens with SmallRye JWT] for more information). - -Take the code from the following listing and place into `security-jwt-quickstart/src/main/java/org/acme/security/jwt/GenerateToken.java`: - -.GenerateToken main Driver Class -[source, java] ----- -package org.acme.security.jwt; - -import java.util.Arrays; -import java.util.HashSet; - -import org.eclipse.microprofile.jwt.Claims; - -import io.smallrye.jwt.build.Jwt; - -public class GenerateToken { - /** - * Generate JWT token - */ - public static void main(String[] args) { - String token = - Jwt.issuer("https://example.com/issuer") // <1> - .upn("jdoe@quarkus.io") // <2> - .groups(new HashSet<>(Arrays.asList("User", "Admin"))) // <3> - .claim(Claims.birthdate.name(), "2001-07-13") // <4> - .sign(); - System.out.println(token); - } -} ----- - -<1> The `iss` claim is the issuer of the JWT. This needs to match the server side `mp.jwt.verify.issuer`. -in order for the token to be accepted as valid. -<2> The `upn` claim is defined by the {mp-jwt} spec as preferred claim to use for the -`Principal` seen via the container security APIs. -<3> The `group` claim provides the groups and top-level roles associated with the JWT bearer. -<4> The `birthday` claim. It can be considered to be a sensitive claim so you may want to consider encrypting the claims, see xref:smallrye-jwt-build.adoc[Generate JWT tokens with SmallRye JWT]. - -Note for this code to work we need the content of the RSA private key that corresponds to the public key we have in the TokenSecuredResource application. Take the following PEM content and place it into `security-jwt-quickstart/src/test/resources/privateKey.pem`: - -.RSA Private Key PEM Content -[source, text] ----- ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCWK8UjyoHgPTLa -PLQJ8SoXLLjpHSjtLxMqmzHnFscqhTVVaDpCRCb6e3Ii/WniQTWw8RA7vf4djz4H -OzvlfBFNgvUGZHXDwnmGaNVaNzpHYFMEYBhE8VGGiveSkzqeLZI+Y02G6sQAfDtN -qqzM/l5QX8X34oQFaTBW1r49nftvCpITiwJvWyhkWtXP9RP8sXi1im5Vi3dhupOh -nelk5n0BfajUYIbfHA6ORzjHRbt7NtBl0L2J+0/FUdHyKs6KMlFGNw8O0Dq88qnM -uXoLJiewhg9332W3DFMeOveel+//cvDnRsCRtPgd4sXFPHh+UShkso7+DRsChXa6 -oGGQD3GdAgMBAAECggEAAjfTSZwMHwvIXIDZB+yP+pemg4ryt84iMlbofclQV8hv -6TsI4UGwcbKxFOM5VSYxbNOisb80qasb929gixsyBjsQ8284bhPJR7r0q8h1C+jY -URA6S4pk8d/LmFakXwG9Tz6YPo3pJziuh48lzkFTk0xW2Dp4SLwtAptZY/+ZXyJ6 -96QXDrZKSSM99Jh9s7a0ST66WoxSS0UC51ak+Keb0KJ1jz4bIJ2C3r4rYlSu4hHB -Y73GfkWORtQuyUDa9yDOem0/z0nr6pp+pBSXPLHADsqvZiIhxD/O0Xk5I6/zVHB3 -zuoQqLERk0WvA8FXz2o8AYwcQRY2g30eX9kU4uDQAQKBgQDmf7KGImUGitsEPepF -KH5yLWYWqghHx6wfV+fdbBxoqn9WlwcQ7JbynIiVx8MX8/1lLCCe8v41ypu/eLtP -iY1ev2IKdrUStvYRSsFigRkuPHUo1ajsGHQd+ucTDf58mn7kRLW1JGMeGxo/t32B -m96Af6AiPWPEJuVfgGV0iwg+HQKBgQCmyPzL9M2rhYZn1AozRUguvlpmJHU2DpqS -34Q+7x2Ghf7MgBUhqE0t3FAOxEC7IYBwHmeYOvFR8ZkVRKNF4gbnF9RtLdz0DMEG -5qsMnvJUSQbNB1yVjUCnDAtElqiFRlQ/k0LgYkjKDY7LfciZl9uJRl0OSYeX/qG2 -tRW09tOpgQKBgBSGkpM3RN/MRayfBtmZvYjVWh3yjkI2GbHA1jj1g6IebLB9SnfL -WbXJErCj1U+wvoPf5hfBc7m+jRgD3Eo86YXibQyZfY5pFIh9q7Ll5CQl5hj4zc4Y -b16sFR+xQ1Q9Pcd+BuBWmSz5JOE/qcF869dthgkGhnfVLt/OQzqZluZRAoGAXQ09 -nT0TkmKIvlza5Af/YbTqEpq8mlBDhTYXPlWCD4+qvMWpBII1rSSBtftgcgca9XLB -MXmRMbqtQeRtg4u7dishZVh1MeP7vbHsNLppUQT9Ol6lFPsd2xUpJDc6BkFat62d -Xjr3iWNPC9E9nhPPdCNBv7reX7q81obpeXFMXgECgYEAmk2Qlus3OV0tfoNRqNpe -Mb0teduf2+h3xaI1XDIzPVtZF35ELY/RkAHlmWRT4PCdR0zXDidE67L6XdJyecSt -FdOUH8z5qUraVVebRFvJqf/oGsXc4+ex1ZKUTbY0wqY1y9E39yvB3MaTmZFuuqk8 -f3cg+fr8aou7pr9SHhJlZCU= ------END PRIVATE KEY----- ----- - -We will use a `smallrye.jwt.sign.key.location` property to point to this private signing key. - -[NOTE] -.Generating Keys with OpenSSL -==== -It is also possible to generate a public and private key pair using the OpenSSL command line tool. - -.openssl commands for generating keys -[source, text] ----- -openssl genrsa -out rsaPrivateKey.pem 2048 -openssl rsa -pubout -in rsaPrivateKey.pem -out publicKey.pem ----- - -An additional step is needed for generating the private key for converting it into the PKCS#8 format. - -.openssl command for converting private key -[source, text] ----- -openssl pkcs8 -topk8 -nocrypt -inform pem -in rsaPrivateKey.pem -outform pem -out privateKey.pem ----- - -You can use the generated pair of keys instead of the keys used in this quickstart. -==== - -Now we can generate a JWT to use with `TokenSecuredResource` endpoint. To do this, run the following command: - -.Command to Generate JWT - -.Sample JWT Generation Output -[source,shell] ----- -$ mvn exec:java -Dexec.mainClass=org.acme.security.jwt.GenerateToken -Dexec.classpathScope=test -Dsmallrye.jwt.sign.key.location=privateKey.pem - -eyJraWQiOiJcL3ByaXZhdGVLZXkucGVtIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJqZG9lLXVzaW5nLWp3dC1yYmFjIiwiYXVkIjoidXNpbmctand0LXJiYWMiLCJ1cG4iOiJqZG9lQHF1YXJrdXMuaW8iLCJiaXJ0aGRhdGUiOiIyMDAxLTA3LTEzIiwiYXV0aF90aW1lIjoxNTUxNjU5Njc2LCJpc3MiOiJodHRwczpcL1wvcXVhcmt1cy5pb1wvdXNpbmctand0LXJiYWMiLCJyb2xlTWFwcGluZ3MiOnsiZ3JvdXAyIjoiR3JvdXAyTWFwcGVkUm9sZSIsImdyb3VwMSI6Ikdyb3VwMU1hcHBlZFJvbGUifSwiZ3JvdXBzIjpbIkVjaG9lciIsIlRlc3RlciIsIlN1YnNjcmliZXIiLCJncm91cDIiXSwicHJlZmVycmVkX3VzZXJuYW1lIjoiamRvZSIsImV4cCI6MTU1MTY1OTk3NiwiaWF0IjoxNTUxNjU5Njc2LCJqdGkiOiJhLTEyMyJ9.O9tx_wNNS4qdpFhxeD1e7v4aBNWz1FCq0UV8qmXd7dW9xM4hA5TO-ZREk3ApMrL7_rnX8z81qGPIo_R8IfHDyNaI1SLD56gVX-NaOLS2OjfcbO3zOWJPKR_BoZkYACtMoqlWgIwIRC-wJKUJU025dHZiNL0FWO4PjwuCz8hpZYXIuRscfFhXKrDX1fh3jDhTsOEFfu67ACd85f3BdX9pe-ayKSVLh_RSbTbBPeyoYPE59FW7H5-i8IE-Gqu838Hz0i38ksEJFI25eR-AJ6_PSUD0_-TV3NjXhF3bFIeT4VSaIZcpibekoJg0cQm-4ApPEcPLdgTejYHA-mupb8hSwg ----- - -The JWT string is the Base64 URL encoded string that has 3 parts separated by '.' characters. -First part - JWT headers, second part - JWT claims, third part - JWT signature. - -=== Finally, Secured Access to /secured/roles-allowed -Now let's use this to make a secured request to the /secured/roles-allowed endpoint. Make sure you have the Quarkus server still running in dev mode, and then run the following command, making sure to use your version of the generated JWT from the previous step: - -[source,bash] ----- -curl -H "Authorization: Bearer eyJraWQiOiJcL3ByaXZhdGVLZXkucGVtIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJqZG9lLXVzaW5nLWp3dC1yYmFjIiwiYXVkIjoidXNpbmctand0LXJiYWMiLCJ1cG4iOiJqZG9lQHF1YXJrdXMuaW8iLCJiaXJ0aGRhdGUiOiIyMDAxLTA3LTEzIiwiYXV0aF90aW1lIjoxNTUxNjUyMDkxLCJpc3MiOiJodHRwczpcL1wvcXVhcmt1cy5pb1wvdXNpbmctand0LXJiYWMiLCJyb2xlTWFwcGluZ3MiOnsiZ3JvdXAyIjoiR3JvdXAyTWFwcGVkUm9sZSIsImdyb3VwMSI6Ikdyb3VwMU1hcHBlZFJvbGUifSwiZ3JvdXBzIjpbIkVjaG9lciIsIlRlc3RlciIsIlN1YnNjcmliZXIiLCJncm91cDIiXSwicHJlZmVycmVkX3VzZXJuYW1lIjoiamRvZSIsImV4cCI6MTU1MTY1MjM5MSwiaWF0IjoxNTUxNjUyMDkxLCJqdGkiOiJhLTEyMyJ9.aPA4Rlc4kw7n_OZZRRk25xZydJy_J_3BRR8ryYLyHTO1o68_aNWWQCgpnAuOW64svPhPnLYYnQzK-l2vHX34B64JySyBD4y_vRObGmdwH_SEufBAWZV7mkG3Y4mTKT3_4EWNu4VH92IhdnkGI4GJB6yHAEzlQI6EdSOa4Nq8Gp4uPGqHsUZTJrA3uIW0TbNshFBm47-oVM3ZUrBz57JKtr0e9jv0HjPQWyvbzx1HuxZd6eA8ow8xzvooKXFxoSFCMnxotd3wagvYQ9ysBa89bgzL-lhjWtusuMFDUVYwFqADE7oOSOD4Vtclgq8svznBQ-YpfTHfb9QEcofMlpyjNA" http://127.0.0.1:8080/secured/roles-allowed; echo ----- - -.curl Command for /secured/roles-allowed With JWT -[source,shell] ----- -$ curl -H "Authorization: Bearer eyJraWQ..." http://127.0.0.1:8080/secured/roles-allowed; echo -hello + jdoe@quarkus.io, isHttps: false, authScheme: Bearer, hasJWT: true, birthdate: 2001-07-13 ----- - -Success! We now have: - -* a non-anonymous caller name of jdoe@quarkus.io -* an authentication scheme of Bearer -* a non-null JsonWebToken -* birthdate claim value - -=== Using the JsonWebToken and Claim Injection - -Now that we can generate a JWT to access our secured REST endpoints, let's see what more we can do with the `JsonWebToken` -interface and the JWT claims. The `org.eclipse.microprofile.jwt.JsonWebToken` interface extends the `java.security.Principal` -interface, and is in fact the type of the object that is returned by the `javax.ws.rs.core.SecurityContext#getUserPrincipal()` call we -used previously. This means that code that does not use CDI but does have access to the REST container `SecurityContext` can get -hold of the caller `JsonWebToken` interface by casting the `SecurityContext#getUserPrincipal()`. - -The `JsonWebToken` interface defines methods for accessing claims in the underlying JWT. It provides accessors for common -claims that are required by the {mp-jwt} specification as well as arbitrary claims that may exist in the JWT. - -All the JWT claims can also be injected. Let's expand our `TokenSecuredResource` with another endpoint /secured/roles-allowed-admin which uses the injected `birthdate` claim -(as opposed to getting it from `JsonWebToken`): - -[source, java] ----- -package org.acme.security.jwt; - -import javax.annotation.security.PermitAll; -import javax.annotation.security.RolesAllowed; -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.InternalServerErrorException; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.SecurityContext; - -import org.eclipse.microprofile.jwt.Claim; -import org.eclipse.microprofile.jwt.Claims; -import org.eclipse.microprofile.jwt.JsonWebToken; - -@Path("/secured") -@RequestScoped -public class TokenSecuredResource { - - @Inject - JsonWebToken jwt; // <1> - @Inject - @Claim(standard = Claims.birthdate) - String birthdate; // <2> - - @GET - @Path("permit-all") - @PermitAll - @Produces(MediaType.TEXT_PLAIN) - public String hello(@Context SecurityContext ctx) { - return getResponseString(ctx); - } - - @GET - @Path("roles-allowed") - @RolesAllowed({ "User", "Admin" }) - @Produces(MediaType.TEXT_PLAIN) - public String helloRolesAllowed(@Context SecurityContext ctx) { - return getResponseString(ctx) + ", birthdate: " + jwt.getClaim("birthdate").toString(); - } - - @GET - @Path("roles-allowed-admin") - @RolesAllowed("Admin") - @Produces(MediaType.TEXT_PLAIN) - public String helloRolesAllowedAdmin(@Context SecurityContext ctx) { - return getResponseString(ctx) + ", birthdate: " + birthdate; // <3> - } - - private String getResponseString(SecurityContext ctx) { - String name; - if (ctx.getUserPrincipal() == null) { - name = "anonymous"; - } else if (!ctx.getUserPrincipal().getName().equals(jwt.getName())) { - throw new InternalServerErrorException("Principal and JsonWebToken names do not match"); - } else { - name = ctx.getUserPrincipal().getName(); - } - return String.format("hello + %s," - + " isHttps: %s," - + " authScheme: %s," - + " hasJWT: %s", - name, ctx.isSecure(), ctx.getAuthenticationScheme(), hasJwt()); - } - - private boolean hasJwt() { - return jwt.getClaimNames() != null; - } -} ----- -<1> Here we inject the JsonWebToken. -<2> Here we inject the `birthday` claim as `String` - this is why the `@RequestScoped` scope is now required. -<3> Here we use the injected `birthday` claim to build the final reply. - -Now generate the token again and run: - -[source,bash] ----- -curl -H "Authorization: Bearer eyJraWQiOiJcL3ByaXZhdGVLZXkucGVtIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJqZG9lLXVzaW5nLWp3dC1yYmFjIiwiYXVkIjoidXNpbmctand0LXJiYWMiLCJ1cG4iOiJqZG9lQHF1YXJrdXMuaW8iLCJiaXJ0aGRhdGUiOiIyMDAxLTA3LTEzIiwiYXV0aF90aW1lIjoxNTUxNjUyMDkxLCJpc3MiOiJodHRwczpcL1wvcXVhcmt1cy5pb1wvdXNpbmctand0LXJiYWMiLCJyb2xlTWFwcGluZ3MiOnsiZ3JvdXAyIjoiR3JvdXAyTWFwcGVkUm9sZSIsImdyb3VwMSI6Ikdyb3VwMU1hcHBlZFJvbGUifSwiZ3JvdXBzIjpbIkVjaG9lciIsIlRlc3RlciIsIlN1YnNjcmliZXIiLCJncm91cDIiXSwicHJlZmVycmVkX3VzZXJuYW1lIjoiamRvZSIsImV4cCI6MTU1MTY1MjM5MSwiaWF0IjoxNTUxNjUyMDkxLCJqdGkiOiJhLTEyMyJ9.aPA4Rlc4kw7n_OZZRRk25xZydJy_J_3BRR8ryYLyHTO1o68_aNWWQCgpnAuOW64svPhPnLYYnQzK-l2vHX34B64JySyBD4y_vRObGmdwH_SEufBAWZV7mkG3Y4mTKT3_4EWNu4VH92IhdnkGI4GJB6yHAEzlQI6EdSOa4Nq8Gp4uPGqHsUZTJrA3uIW0TbNshFBm47-oVM3ZUrBz57JKtr0e9jv0HjPQWyvbzx1HuxZd6eA8ow8xzvooKXFxoSFCMnxotd3wagvYQ9ysBa89bgzL-lhjWtusuMFDUVYwFqADE7oOSOD4Vtclgq8svznBQ-YpfTHfb9QEcofMlpyjNA" http://127.0.0.1:8080/secured/roles-allowed-admin; echo ----- - -[source,shell] ----- -$ curl -H "Authorization: Bearer eyJraWQ..." http://127.0.0.1:8080/secured/roles-allowed-admin; echo -hello + jdoe@quarkus.io, isHttps: false, authScheme: Bearer, hasJWT: true, birthdate: 2001-07-13 ----- - -=== Package and run the application - -As usual, the application can be packaged using: - -include::includes/devtools/build.adoc[] - -And executed using `java -jar target/quarkus-app/quarkus-run.jar`: - -.Runner jar Example -[source,shell,subs=attributes+] ----- -$ java -jar target/quarkus-app/quarkus-run.jar -2019-03-28 14:27:48,839 INFO [io.quarkus] (main) Quarkus {quarkus-version} started in 0.796s. Listening on: http://[::]:8080 -2019-03-28 14:27:48,841 INFO [io.quarkus] (main) Installed features: [cdi, resteasy, resteasy-jackson, security, smallrye-jwt] ----- - -You can also generate the native executable with: - -include::includes/devtools/build-native.adoc[] - -.Native Executable Example -[source,shell] ----- -[INFO] Scanning for projects... -... -[security-jwt-quickstart-runner:25602] universe: 493.17 ms -[security-jwt-quickstart-runner:25602] (parse): 660.41 ms -[security-jwt-quickstart-runner:25602] (inline): 1,431.10 ms -[security-jwt-quickstart-runner:25602] (compile): 7,301.78 ms -[security-jwt-quickstart-runner:25602] compile: 10,542.16 ms -[security-jwt-quickstart-runner:25602] image: 2,797.62 ms -[security-jwt-quickstart-runner:25602] write: 988.24 ms -[security-jwt-quickstart-runner:25602] [total]: 43,778.16 ms -[INFO] ------------------------------------------------------------------------ -[INFO] BUILD SUCCESS -[INFO] ------------------------------------------------------------------------ -[INFO] Total time: 51.500 s -[INFO] Finished at: 2019-03-28T14:30:56-07:00 -[INFO] ------------------------------------------------------------------------ - -$ ./target/security-jwt-quickstart-runner -2019-03-28 14:31:37,315 INFO [io.quarkus] (main) Quarkus 0.12.0 started in 0.006s. Listening on: http://[::]:8080 -2019-03-28 14:31:37,316 INFO [io.quarkus] (main) Installed features: [cdi, resteasy, resteasy-jackson, security, smallrye-jwt] ----- - -=== Explore the Solution - -The solution repository located in the `security-jwt-quickstart` {quickstarts-tree-url}/security-jwt-quickstart[directory] contains all of the versions we have -worked through in this quickstart guide as well as some additional endpoints that illustrate subresources with injection -of ``JsonWebToken``s and their claims into those using the CDI APIs. We suggest that you check out the quickstart solutions and -explore the `security-jwt-quickstart` directory to learn more about the {extension-name} extension features. - -== Reference Guide - -[supported-injection-scopes] -=== Supported Injection Scopes - -`@ApplicationScoped`, `@Singleton` and `@RequestScoped` outer bean injection scopes are all supported when an `org.eclipse.microprofile.jwt.JsonWebToken` is injected, with the `@RequestScoped` scoping for `JsonWebToken` enforced to ensure the current token is represented. - -However, `@RequestScoped` must be used when the individual token claims are injected as simple types such as `String`, for example: - -[source, java] ----- -package org.acme.security.jwt; - -import javax.inject.Inject; -import org.eclipse.microprofile.jwt.Claim; -import org.eclipse.microprofile.jwt.Claims; - -@Path("/secured") -@RequestScoped -public class TokenSecuredResource { - - @Inject - @Claim(standard = Claims.birthdate) - String birthdate; -} ----- - -Note you can also use the injected `JsonWebToken` to access the individual claims in which case setting `@RequestScoped` is not necessary. - -Please see link:https://download.eclipse.org/microprofile/microprofile-jwt-auth-1.2/microprofile-jwt-auth-spec-1.2.html#_cdi_injection_requirements[MP JWT CDI Injection Requirements] for more details. - -=== Supported Public Key Formats - -Public Keys may be formatted in any of the following formats, specified in order of -precedence: - - - Public Key Cryptography Standards #8 (PKCS#8) PEM - - JSON Web Key (JWK) - - JSON Web Key Set (JWKS) - - JSON Web Key (JWK) Base64 URL encoded - - JSON Web Key Set (JWKS) Base64 URL encoded - -=== Dealing with the verification keys - -If you need to verify the token signature using the assymetric RSA or Elliptic Curve (EC) key then use the `mp.jwt.verify.publickey.location` property to refer to the local or remote verification key. - -Use `mp.jwt.verify.publickey.algorithm` to customize the verification algorithm (default is `RS256`), for example, set it to `ES256` when working with the EC keys. - -If you need to verify the token signature using the symmetric secret key then either a `JSON Web Key` (JWK) or `JSON Web Key Set` (JWK Set) format must be used to represent this secret key, for example: - -```json -{ - "keys": [ - { - "kty":"oct", - "kid":"secretKey", - "k":"AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow" - } - ] -} -``` - -This secret key JWK will also need to be referred to with `smallrye.jwt.verify.key.location`. -`smallrye.jwt.verify.algorithm` should be set to `HS256`/`HS384`/`HS512`. - -[[jwt-parser]] -=== Parse and Verify JsonWebToken with JWTParser - -If the JWT token can not be injected, for example, if it is embedded in the service request payload or the service endpoint acquires it out of band, then one can use `JWTParser`: - -[source,java] ----- -import org.eclipse.microprofile.jwt.JsonWebToken; -import io.smallrye.jwt.auth.principal.JWTParser; -... -@Inject JWTParser parser; - -String token = getTokenFromOidcServer(); - -// Parse and verify the token -JsonWebToken jwt = parser.parse(token); ----- - -You can also use it to customize the way the token is verified or decrypted. For example, one can supply a local `SecretKey`: - -[source,java] ----- -import javax.crypto.SecretKey; -import javax.ws.rs.GET; -import javax.ws.rs.core.NewCookie; -import javax.ws.rs.core.Response; -import org.eclipse.microprofile.jwt.JsonWebToken; -import io.smallrye.jwt.auth.principal.JWTParser; -import io.smallrye.jwt.build.Jwt; - -@Path("/secured") -public class SecuredResource { - @Inject JWTParser parser; - private String secret = "AyM1SysPpbyDfgZld3umj1qzKObwVMko"; - - @GET - @Produces("text/plain") - public Response getUserName(@CookieParam("jwt") String jwtCookie) { - Response response = null; - if (jwtCookie == null) { - // Create a JWT token signed using the 'HS256' algorithm - String newJwtCookie = Jwt.upn("Alice").signWithSecret(secret); - // or create a JWT token encrypted using the 'A256KW' algorithm - // Jwt.upn("alice").encryptWithSecret(secret); - return Response.ok("Alice").cookie(new NewCookie("jwt", newJwtCookie)).build(); - } else { - // All mp.jwt and smallrye.jwt properties are still effective, only the verification key is customized. - JsonWebToken jwt = parser.verify(jwtCookie, secret); - // or jwt = parser.decrypt(jwtCookie, secret); - return Response.ok(jwt.getName()).build(); - } - } -} ----- - -Please also see the <> section about using `JWTParser` without the `HTTP` support provided by `quarkus-smallrye-jwt`. - -=== Token Decryption - -If your application needs to accept the tokens with the encrypted claims or with the encrypted inner signed claims then all you have to do is to set -`smallrye.jwt.decrypt.key.location` pointing to the decryption key. - -If this is the only key property which is set then the incoming token is expected to contain the encrypted claims only. -If either `mp.jwt.verify.publickey` or `mp.jwt.verify.publickey.location` verification properties are also set then the incoming token is expected to contain -the encrypted inner-signed token. - -See xref:smallrye-jwt-build.adoc[Generate JWT tokens with SmallRye JWT] and learn how to generate the encrypted or inner-signed and then encrypted tokens fast. - -=== Custom Factories - -`io.smallrye.jwt.auth.principal.DefaultJWTCallerPrincipalFactory` is used by default to parse and verify JWT tokens and convert them to `JsonWebToken` principals. -It uses `MP JWT` and `smallrye-jwt` properties listed in the `Configuration` section to verify and customize JWT tokens. - -If you need to provide your own factory, for example, to avoid verifying the tokens again which have already been verified by the firewall, then you can either use a `ServiceLoader` mechanism by providing a `META-INF/services/io.smallrye.jwt.auth.principal.JWTCallerPrincipalFactory` resource or simply have an `Alternative` CDI bean implementation like this one: - -[source,java] ----- -import java.nio.charset.StandardCharsets; -import java.util.Base64; -import javax.annotation.Priority; -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.inject.Alternative; -import org.jose4j.jwt.JwtClaims; -import org.jose4j.jwt.consumer.InvalidJwtException; -import io.smallrye.jwt.auth.principal.DefaultJWTCallerPrincipal; -import io.smallrye.jwt.auth.principal.JWTAuthContextInfo; -import io.smallrye.jwt.auth.principal.JWTCallerPrincipal; -import io.smallrye.jwt.auth.principal.JWTCallerPrincipalFactory; -import io.smallrye.jwt.auth.principal.ParseException; - -@ApplicationScoped -@Alternative -@Priority(1) -public class TestJWTCallerPrincipalFactory extends JWTCallerPrincipalFactory { - - @Override - public JWTCallerPrincipal parse(String token, JWTAuthContextInfo authContextInfo) throws ParseException { - try { - // Token has already been verified, parse the token claims only - String json = new String(Base64.getUrlDecoder().decode(token.split("\\.")[1]), StandardCharsets.UTF_8); - return new DefaultJWTCallerPrincipal(JwtClaims.parse(json)); - } catch (InvalidJwtException ex) { - throw new ParseException(ex.getMessage()); - } - } -} ----- - -=== Token Propagation - -Please see xref:security-openid-connect-client.adoc#token-propagation[Token Propagation] section about the Bearer access token propagation to the downstream services. - -[[integration-testing]] -=== Testing - -[[integration-testing-wiremock]] -==== Wiremock - -If you configure `mp.jwt.verify.publickey.location` to point to HTTPS or HTTP based JsonWebKey (JWK) set then you can use the same approach as described in the xref:security-openid-connect.adoc#integration-testing[OpenID Connect Bearer Token Integration testing] `Wiremock` section but only change the `application.properties` to use MP JWT configuration properties instead: - -[source, properties] ----- -# keycloak.url is set by OidcWiremockTestResource -mp.jwt.verify.publickey.location=${keycloak.url}/realms/quarkus/protocol/openid-connect/certs -mp.jwt.verify.issuer=${keycloak.url}/realms/quarkus ----- - -[[integration-testing-keycloak]] -==== Keycloak - -If you work with Keycloak and configure `mp.jwt.verify.publickey.location` to point to HTTPS or HTTP based JsonWebKey (JWK) set then you can use the same approach as described in the xref:security-openid-connect.adoc#integration-testing-keycloak[OpenID Connect Bearer Token Integration testing] `Keycloak` section but only change the `application.properties` to use MP JWT configuration properties instead: - -[source, properties] ----- -# keycloak.url is set by OidcWiremockTestResource -mp.jwt.verify.publickey.location=${keycloak.url}/realms/quarkus/protocol/openid-connect/certs -mp.jwt.verify.issuer=${keycloak.url}/realms/quarkus ----- - -[[integration-testing-public-key]] -==== Local Public Key - -You can use the same approach as described in the xref:security-openid-connect#integration-testing.adoc[OpenID Connect Bearer Token Integration testing] `Local Public Key` section but only change the `application.properties` to use MP JWT configuration properties instead: - -[source, properties] ----- -mp.jwt.verify.publickey=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlivFI8qB4D0y2jy0CfEqFyy46R0o7S8TKpsx5xbHKoU1VWg6QkQm+ntyIv1p4kE1sPEQO73+HY8+Bzs75XwRTYL1BmR1w8J5hmjVWjc6R2BTBGAYRPFRhor3kpM6ni2SPmNNhurEAHw7TaqszP5eUF/F9+KEBWkwVta+PZ37bwqSE4sCb1soZFrVz/UT/LF4tYpuVYt3YbqToZ3pZOZ9AX2o1GCG3xwOjkc4x0W7ezbQZdC9iftPxVHR8irOijJRRjcPDtA6vPKpzLl6CyYnsIYPd99ltwxTHjr3npfv/3Lw50bAkbT4HeLFxTx4flEoZLKO/g0bAoV2uqBhkA9xnQIDAQAB -# set it to the issuer value which is used to generate the tokens -mp.jwt.verify.issuer=${keycloak.url}/realms/quarkus - -# required to sign the tokens -smallrye.jwt.sign.key.location=privateKey.pem ----- - -[[integration-testing-security-annotation]] -==== TestSecurity annotation - -Add the following dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-test-security-jwt - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-test-security-jwt") ----- - -and write a test code like this one: - -[source, java] ----- -import static org.hamcrest.Matchers.is; -import org.junit.jupiter.api.Test; -import io.quarkus.test.common.http.TestHTTPEndpoint; -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.security.TestSecurity; -import io.quarkus.test.security.jwt.Claim; -import io.quarkus.test.security.jwt.JwtSecurity; -import io.restassured.RestAssured; - -@QuarkusTest -@TestHTTPEndpoint(ProtectedResource.class) -public class TestSecurityAuthTest { - - @Test - @TestSecurity(user = "userJwt", roles = "viewer") - public void testJwt() { - RestAssured.when().get("test-security-jwt").then() - .body(is("userJwt:viewer")); - } - - @Test - @TestSecurity(user = "userJwt", roles = "viewer") - @JwtSecurity(claims = { - @Claim(key = "email", value = "user@gmail.com") - }) - public void testJwtWithClaims() { - RestAssured.when().get("test-security-jwt-claims").then() - .body(is("userJwt:viewer:user@gmail.com")); - } - -} ----- - -where `ProtectedResource` class may look like this: - -[source, java] ----- -@Path("/web-app") -@Authenticated -public class ProtectedResource { - - @Inject - JsonWebToken accessToken; - - @GET - @Path("test-security-jwt") - public String testSecurityOidc() { - return accessToken.getName() + ":" + accessToken.getGroups().iterator().next(); - } - - @GET - @Path("test-security-jwt-claims") - public String testSecurityOidcUserInfoMetadata() { - return accessToken.getName() + ":" + accessToken.getGroups().iterator().next() - + ":" + accessToken.getClaim("email"); - } -} ----- - -Note that `@TestSecurity` annotation must always be used and its `user` property is returned as `JsonWebToken.getName()` and `roles` property - as `JsonWebToken.getGroups()`. -`@JwtSecurity` annotation is optional and can be used to set the additional token claims. - -=== How to check the errors in the logs - -Please enable `io.quarkus.smallrye.jwt.runtime.auth.MpJwtValidator` `TRACE` level logging to see more details about the token verification or decryption errors: - -[source, properties] ----- -quarkus.log.category."io.quarkus.smallrye.jwt.runtime.auth.MpJwtValidator".level=TRACE -quarkus.log.category."io.quarkus.smallrye.jwt.runtime.auth.MpJwtValidator".min-level=TRACE ----- - -=== Proactive Authentication - -If you'd like to skip the token verification when the public endpoint methods are invoked then please disable the xref:security-built-in-authentication.adoc#proactive-authentication[proactive authentication]. - -Note that you can't access the injected `JsonWebToken` in the public methods if the token verification has not been done. - -[[add-smallrye-jwt]] -=== How to Add SmallRye JWT directly - -If you work with Quarkus extensions which do not support `HTTP` (for example, `Quarkus GRPC`) or provide their own extension specific `HTTP` support conflicting with the one offered by `quarkus-smallrye-jwt` and `Vert.x HTTP` (example, `Quarkus Amazon Lambda`) and you would like to <> then please use `smallrye-jwt` directly instead of `quarkus-smallrye-jwt`. - -Add this dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.smallrye - smallrye-jwt - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.smallrye:smallrye-jwt") ----- - -and update `application.properties` to get all the CDI producers provided by `smallrye-jwt` included as follows: - -[source, properties] ----- -quarkus.index-dependency.smallrye-jwt.group-id=io.smallrye -quarkus.index-dependency.smallrye-jwt.artifact-id=smallrye-jwt ----- - -[[configuration-reference]] -== Configuration Reference - -=== Quarkus configuration - -include::{generated-dir}/config/quarkus-smallrye-jwt.adoc[opts=optional, leveloffset=+1] - -=== MicroProfile JWT configuration - -[cols=">. -|mp.jwt.verify.publickey.location|none|Config property allows for an external or internal location of Public Key to be specified. The value may be a relative path or a URL. If the value points to an HTTPS based JWK set then, for it to work in native mode, the `quarkus.ssl.native` property must also be set to `true`, see xref:native-and-ssl.adoc[Using SSL With Native Executables] for more details. -|mp.jwt.verify.publickey.algorithm|`RS256`|Signature algorithm. Set it to `ES256` to support the Elliptic Curve signature algorithm. -|mp.jwt.decrypt.key.location|none|Config property allows for an external or internal location of Private Decryption Key to be specified. -|mp.jwt.verify.issuer|none|Config property specifies the value of the `iss` (issuer) claim of the JWT that the server will accept as valid. -|mp.jwt.verify.audiences|none|Comma separated list of the audiences that a token `aud` claim may contain. -|mp.jwt.token.header|`Authorization`|Set this property if another header such as `Cookie` is used to pass the token. -|mp.jwt.token.cookie|none|Name of the cookie containing a token. This property will be effective only if `mp.jwt.token.header` is set to `Cookie`. -|=== - -=== Additional SmallRye JWT configuration - -SmallRye JWT provides more properties which can be used to customize the token processing: - -[cols=" - io.quarkus - quarkus-oidc - - - io.quarkus - quarkus-keycloak-authorization - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-oidc") -implementation("io.quarkus:quarkus-keycloak-authorization") ----- - -Let's start by implementing the `/api/users/me` endpoint. -As you can see from the source code below it is just a regular JAX-RS resource: - -[source,java] ----- -package org.acme.security.keycloak.authorization; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.jboss.resteasy.annotations.cache.NoCache; - -import io.quarkus.security.identity.SecurityIdentity; - -@Path("/api/users") -public class UsersResource { - - @Inject - SecurityIdentity identity; - - @GET - @Path("/me") - @NoCache - public User me() { - return new User(identity); - } - - public static class User { - - private final String userName; - - User(SecurityIdentity identity) { - this.userName = identity.getPrincipal().getName(); - } - - public String getUserName() { - return userName; - } - } -} ----- - -The source code for the `/api/admin` endpoint is also very simple: - -[source,java] ----- -package org.acme.security.keycloak.authorization; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import io.quarkus.security.Authenticated; - -@Path("/api/admin") -@Authenticated -public class AdminResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String admin() { - return "granted"; - } -} ----- - -Note that we did not define any annotation such as `@RolesAllowed` to explicitly enforce access to a resource. -The extension will be responsible to map the URIs of the protected resources you have in Keycloak and evaluate the permissions accordingly, granting or denying access depending on the permissions that will be granted by Keycloak. - -=== Configuring the application - -The OpenID Connect extension allows you to define the adapter configuration using the `application.properties` file which should be located at the `src/main/resources` directory. - -[source,properties] ----- -# OIDC Configuration -%prod.quarkus.oidc.auth-server-url=https://localhost:8543/auth/realms/quarkus -quarkus.oidc.client-id=backend-service -quarkus.oidc.credentials.secret=secret -quarkus.oidc.tls.verification=none - -# Enable Policy Enforcement -quarkus.keycloak.policy-enforcer.enable=true - -# Tell Dev Services for Keycloak to import the realm file -# This property is not effective when running the application in JVM or Native modes -quarkus.keycloak.devservices.realm-path=quarkus-realm.json ----- - -NOTE: Adding a `%prod.` profile prefix to `quarkus.oidc.auth-server-url` ensures that `Dev Services for Keycloak` will launch a container for you when the application is run in a dev mode. See <> section below for more information. - -NOTE: By default, applications using the `quarkus-oidc` extension are marked as a `service` type application (see `quarkus.oidc.application-type`). This extension also supports only `web-app` type applications but only if the access token returned as part of the authorization code grant response is marked as a source of roles: `quarkus.oidc.roles.source=accesstoken` (`web-app` type applications check ID token roles by default). - -== Starting and Configuring the Keycloak Server - -NOTE: Do not start the Keycloak server when you run the application in a dev mode - `Dev Services for Keycloak` will launch a container. See <> section below for more information. - -To start a Keycloak Server you can use Docker and just run the following command: - -[source,bash,subs=attributes+] ----- -docker run --name keycloak -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -p 8180:8080 -p 8543:8443 quay.io/keycloak/keycloak:{keycloak version} ----- - -You should be able to access your Keycloak Server at http://localhost:8180/auth[localhost:8180/auth] or https://localhost:8543/auth[localhost:8543/auth]. - -Log in as the `admin` user to access the Keycloak Administration Console. -Username should be `admin` and password `admin`. - -Import the {quickstarts-tree-url}/security-keycloak-authorization-quickstart/config/quarkus-realm.json[realm configuration file] to create a new realm. -For more details, see the Keycloak documentation about how to https://www.keycloak.org/docs/latest/server_admin/index.html#_create-realm[create a new realm]. - -After importing the realm you can see the resource permissions: - -image::keycloak-authorization-permissions.png[alt=Keycloak Authorization Permissions,role="center"] - -It explains why the endpoint has no `@RolesAllowed` annotations - the resource access permissions are set directly in Keycloak. - -[[keycloak-dev-mode]] -== Running the Application in Dev mode - -To run the application in dev mode, use: - -include::includes/devtools/dev.adoc[] - -xref:security-openid-connect-dev-services.adoc[Dev Services for Keycloak] will launch a Keycloak container and import a `quarkus-realm.json`. - -Open a xref:dev-ui.adoc[Dev UI] available at http://localhost:8080/q/dev[/q/dev] and click on a `Provider: Keycloak` link in an `OpenID Connect` `Dev UI` card. - -You will be asked to login into a `Single Page Application` provided by `OpenID Connect Dev UI`: - - * Login as `alice` (password: `alice`) who only has a `User Permission` to access the `/api/users/me` resource - ** accessing `/api/admin` will return `403` - ** accessing `/api/users/me` will return `200` - * Logout and login as `admin` (password: `admin`) who has both `Admin Permission` to access the `/api/admin` resource and `User Permission` to access the `/api/users/me` resource - ** accessing `/api/admin` will return `200` - ** accessing `/api/users/me` will return `200` - -== Running the Application in JVM mode - -When you're done playing with the `dev` mode" you can run it as a standard Java application. - -First compile it: - -include::includes/devtools/build.adoc[] - -Then run it: - -[source,bash] ----- -java -jar target/quarkus-app/quarkus-run.jar ----- - -== Running the Application in Native Mode - -This same demo can be compiled into native code: no modifications required. - -This implies that you no longer need to install a JVM on your production environment, as the runtime technology is included in the produced binary, and optimized to run with minimal resource overhead. - -Compilation will take a bit longer, so this step is disabled by default; let's build again by enabling the `native` profile: - -include::includes/devtools/build-native.adoc[] - -After getting a cup of coffee, you'll be able to run this binary directly: - -[source,bash] ----- -./target/security-keycloak-authorization-quickstart-runner ----- - -== Testing the Application - -See <> section above about testing your application in a dev mode. - -You can test the application launched in JVM or Native modes with `curl`. - -The application is using bearer token authorization and the first thing to do is obtain an access token from the Keycloak Server in order to access the application resources: - -[source,bash] ----- -export access_token=$(\ - curl --insecure -X POST https://localhost:8543/auth/realms/quarkus/protocol/openid-connect/token \ - --user backend-service:secret \ - -H 'content-type: application/x-www-form-urlencoded' \ - -d 'username=alice&password=alice&grant_type=password' | jq --raw-output '.access_token' \ - ) ----- - -The example above obtains an access token for user `alice`. - -Any user is allowed to access the -`http://localhost:8080/api/users/me` endpoint -which basically returns a JSON payload with details about the user. - -[source,bash] ----- -curl -v -X GET \ - http://localhost:8080/api/users/me \ - -H "Authorization: Bearer "$access_token ----- - -The `http://localhost:8080/api/admin` endpoint can only be accessed by users with the `admin` role. -If you try to access this endpoint with the previously issued access token, you should get a `403` response from the server. - -[source,bash] ----- - curl -v -X GET \ - http://localhost:8080/api/admin \ - -H "Authorization: Bearer "$access_token ----- - -In order to access the admin endpoint you should obtain a token for the `admin` user: - -[source,bash] ----- -export access_token=$(\ - curl --insecure -X POST https://localhost:8543/auth/realms/quarkus/protocol/openid-connect/token \ - --user backend-service:secret \ - -H 'content-type: application/x-www-form-urlencoded' \ - -d 'username=admin&password=admin&grant_type=password' | jq --raw-output '.access_token' \ - ) ----- - -== Checking Permissions Programmatically - -In some cases, you may want to programmatically check whether or not a request is granted to access a protected resource. By -injecting a `SecurityIdentity` instance in your beans, you are allowed to check permissions as follows: - -[source,java] ----- -import io.quarkus.security.identity.SecurityIdentity; -import io.smallrye.mutiny.Uni; - -@Path("/api/protected") -public class ProtectedResource { - - @Inject - SecurityIdentity identity; - - - @GET - public Uni> get() { - return identity.checkPermission(new AuthPermission("{resource_name}")).onItem() - .transform(granted -> { - if (granted) { - return identity.getAttribute("permissions"); - } - throw new ForbiddenException(); - }); - } -} ----- - -== Injecting the Authorization Client - -In some cases, you may want to use the https://www.keycloak.org/docs/latest/authorization_services/#_service_client_api[Keycloak Authorization Client Java API] to perform -specific operations like managing resources and obtaining permissions directly from Keycloak. For that, you can inject a -`AuthzClient` instance into your beans as follows: - -[source,java] ----- -public class ProtectedResource { - @Inject - AuthzClient authzClient; -} ----- - -== Mapping Protected Resources - -By default, the extension is going to fetch resources on-demand from Keycloak where their `URI` are used to map the resources in your application that should be protected. - -If you want to disable this behavior and fetch resources during startup, you can use the following configuration: - -[source,properties] ----- -quarkus.keycloak.policy-enforcer.lazy-load-paths=false ----- - -Note that, depending on how many resources you have in Keycloak the time taken to fetch them may impact your application startup time. - -== More About Configuring Protected Resources - -In the default configuration, Keycloak is responsible for managing the roles and deciding who can access which routes. - -To configure the protected routes using the `@RolesAllowed` annotation or the `application.properties` file, check the xref:security-openid-connect.adoc[Using OpenID Connect Adapter to Protect JAX-RS Applications] and xref:security-authorization.adoc[Security Authorization] guides. For more details, check the xref:security.adoc[Security guide]. - -== Access to Public Resources - -If you'd like to access a public resource without `quarkus-keycloak-authorization` trying to apply its policies to it then you need to create a `permit` HTTP Policy configuration in `application.properties` as documented in the xref:security-authorization.adoc[Security Authorization] guide. - -Disabling a policy check using a Keycloak Authorization Policy such as: - -[source,properties] ----- -quarkus.keycloak.policy-enforcer.paths.1.path=/api/public -quarkus.keycloak.policy-enforcer.paths.1.enforcement-mode=DISABLED ----- - -is no longer required. - -If you'd like to block an access to the public resource to anonymous users then you can create an enforcing Keycloak Authorization Policy: - -[source,properties] ----- -quarkus.keycloak.policy-enforcer.paths.1.path=/api/public-enforcing -quarkus.keycloak.policy-enforcer.paths.1.enforcement-mode=ENFORCING ----- - -Note only the default tenant configuration applies when controlling an anonymous access to the public resource is required. - -== Multi-Tenancy - -It is possible to configure multiple policy enforcer configurations, one per each tenant, similarly to how it can be done for xref:security-openid-connect-multitenancy.adoc[Multi-Tenant OpenID Connect Service Applications]. - -For example: - -[source,properties] ----- -quarkus.keycloak.policy-enforcer.enable=true - -# Default Tenant -quarkus.oidc.auth-server-url=${keycloak.url}/realms/quarkus -quarkus.oidc.client-id=quarkus-app -quarkus.oidc.credentials.secret=secret - -quarkus.keycloak.policy-enforcer.enforcement-mode=PERMISSIVE -quarkus.keycloak.policy-enforcer.paths.1.name=Permission Resource -quarkus.keycloak.policy-enforcer.paths.1.path=/api/permission -quarkus.keycloak.policy-enforcer.paths.1.claim-information-point.claims.static-claim=static-claim - -# Service Tenant - -quarkus.oidc.service-tenant.auth-server-url=${keycloak.url}/realms/quarkus -quarkus.oidc.service-tenant.client-id=quarkus-app -quarkus.oidc.service-tenant.credentials.secret=secret - -quarkus.keycloak.service-tenant.policy-enforcer.enforcement-mode=PERMISSIVE -quarkus.keycloak.service-tenant.policy-enforcer.paths.1.name=Permission Resource Service -quarkus.keycloak.service-tenant.policy-enforcer.paths.1.path=/api/permission -quarkus.keycloak.service-tenant.policy-enforcer.paths.1.claim-information-point.claims.static-claim=static-claim - - -# WebApp Tenant - -quarkus.oidc.webapp-tenant.auth-server-url=${keycloak.url}/realms/quarkus -quarkus.oidc.webapp-tenant.client-id=quarkus-app -quarkus.oidc.webapp-tenant.credentials.secret=secret -quarkus.oidc.webapp-tenant.application-type=web-app -quarkus.oidc.webapp-tenant.roles.source=accesstoken - -quarkus.keycloak.webapp-tenant.policy-enforcer.enforcement-mode=PERMISSIVE -quarkus.keycloak.webapp-tenant.policy-enforcer.paths.1.name=Permission Resource WebApp -quarkus.keycloak.webapp-tenant.policy-enforcer.paths.1.path=/api/permission -quarkus.keycloak.webapp-tenant.policy-enforcer.paths.1.claim-information-point.claims.static-claim=static-claim ----- - -== Configuration Reference - -The configuration is based on the official https://www.keycloak.org/docs/latest/authorization_services/index.html#_enforcer_filter[Keycloak Policy Enforcer Configuration]. If you are looking for more details about the different configuration options, please take a look at this documentation, - -include::{generated-dir}/config/quarkus-keycloak-keycloak-policy-enforcer-config.adoc[opts=optional] - -== References - -* https://www.keycloak.org/documentation.html[Keycloak Documentation] -* https://www.keycloak.org/docs/latest/authorization_services/index.html[Keycloak Authorization Services Documentation] -* https://openid.net/connect/[OpenID Connect] -* https://tools.ietf.org/html/rfc7519[JSON Web Token] -* xref:security.adoc[Quarkus Security] diff --git a/_versions/2.7/guides/security-ldap.adoc b/_versions/2.7/guides/security-ldap.adoc deleted file mode 100644 index c605a17d074..00000000000 --- a/_versions/2.7/guides/security-ldap.adoc +++ /dev/null @@ -1,252 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Security with an LDAP Realm - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can use an LDAP server to authenticate and authorize your user identities. - - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this example, we build a very simple microservice which offers three endpoints: - -* `/api/public` -* `/api/users/me` -* `/api/admin` - -The `/api/public` endpoint can be accessed anonymously. -The `/api/admin` endpoint is protected with RBAC (Role-Based Access Control) where only users granted with the `adminRole` role can access. At this endpoint, we use the `@RolesAllowed` annotation to declaratively enforce the access constraint. -The `/api/users/me` endpoint is also protected with RBAC (Role-Based Access Control) where only users granted with the `standardRole` role can access. As a response, it returns a JSON document with details about the user. - -WARNING: By default Quarkus will restrict the use of JNDI within an application, as a precaution to try and mitigate any future vulnerabilities similar to log4shell. Because LDAP based auth requires JNDI -this protection will be automatically disabled. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `security-ldap-quickstart` {quickstarts-tree-url}/security-ldap-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: security-ldap-quickstart -:create-app-extensions: elytron-security-ldap,resteasy -include::includes/devtools/create-app.adoc[] - -This command generates a project, importing the `elytron-security-ldap` extension -which is a `wildfly-elytron-realm-ldap` adapter for Quarkus applications. - -If you already have your Quarkus project configured, you can add the `elytron-security-ldap` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: elytron-security-ldap -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-elytron-security-ldap - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-elytron-security-ldap") ----- - -== Writing the application - -Let's start by implementing the `/api/public` endpoint. As you can see from the source code below, it is just a regular JAX-RS resource: - -[source,java] ----- -package org.acme.elytron.security.ldap; - -import javax.annotation.security.PermitAll; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/api/public") -public class PublicResource { - - @GET - @PermitAll - @Produces(MediaType.TEXT_PLAIN) - public String publicResource() { - return "public"; - } -} ----- - -The source code for the `/api/admin` endpoint is also very simple. The main difference here is that we are using a `@RolesAllowed` annotation to make sure that only users granted with the `adminRole` role can access the endpoint: - - -[source,java] ----- -package org.acme.elytron.security.ldap; - -import javax.annotation.security.RolesAllowed; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/api/admin") -public class AdminResource { - - @GET - @RolesAllowed("adminRole") - @Produces(MediaType.TEXT_PLAIN) - public String adminResource() { - return "admin"; - } -} ----- - -Finally, let's consider the `/api/users/me` endpoint. As you can see from the source code below, we are trusting only users with the `standardRole` role. -We are using `SecurityContext` to get access to the current authenticated Principal and we return the user's name. This information is loaded from the LDAP server. - -[source,java] ----- -package org.acme.elytron.security.ldap; - -import javax.annotation.security.RolesAllowed; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.SecurityContext; - -@Path("/api/users") -public class UserResource { - - @GET - @RolesAllowed("standardRole") - @Path("/me") - public String me(@Context SecurityContext securityContext) { - return securityContext.getUserPrincipal().getName(); - } -} ----- - -=== Configuring the Application - -[source,properties] ----- -quarkus.security.ldap.enabled=true - -quarkus.security.ldap.dir-context.principal=uid=tool,ou=accounts,o=YourCompany,c=DE -quarkus.security.ldap.dir-context.url=ldaps://ldap.server.local -quarkus.security.ldap.dir-context.password=PASSWORD - -quarkus.security.ldap.identity-mapping.rdn-identifier=uid -quarkus.security.ldap.identity-mapping.search-base-dn=ou=users,ou=tool,o=YourCompany,c=DE - -quarkus.security.ldap.identity-mapping.attribute-mappings."0".from=cn -quarkus.security.ldap.identity-mapping.attribute-mappings."0".to=groups -quarkus.security.ldap.identity-mapping.attribute-mappings."0".filter=(member=uid={0}) -quarkus.security.ldap.identity-mapping.attribute-mappings."0".filter-base-dn=ou=roles,ou=tool,o=YourCompany,c=DE ----- - -`{0}` is substituted by the `uid`, whereas `{1}` will be substituted by the `dn` of the user entry. - -The `elytron-security-ldap` extension requires a dir-context and an identity-mapping with at least one attribute-mapping to authenticate the user and its identity. - -== Testing the Application - -The application is now protected and the identities are provided by our LDAP server. -Let's start the application in dev mode: - -include::includes/devtools/dev.adoc[] - -The very first thing to check is to ensure the anonymous access works. - -[source,shell] ----- -$ curl -i -X GET http://localhost:8080/api/public -HTTP/1.1 200 OK -Content-Length: 6 -Content-Type: text/plain;charset=UTF-8 - -public% ----- - -Now, let's try a to hit a protected resource anonymously. - -[source,shell] ----- -$ curl -i -X GET http://localhost:8080/api/admin -HTTP/1.1 401 Unauthorized -Content-Length: 14 -Content-Type: text/html;charset=UTF-8 - -Not authorized% ----- - -So far so good, now let's try with an allowed user. - -[source,shell] ----- -$ curl -i -X GET -u adminUser:adminUserPassword http://localhost:8080/api/admin -HTTP/1.1 200 OK -Content-Length: 5 -Content-Type: text/plain;charset=UTF-8 - -admin% ----- -By providing the `adminUser:adminUserPassword` credentials, the extension authenticated the user and loaded their roles. -The `adminUser` user is authorized to access to the protected resources. - -The user `adminUser` should be forbidden to access a resource protected with `@RolesAllowed("standardRole")` because it doesn't have this role. - -[source,shell] ----- -$ curl -i -X GET -u adminUser:adminUserPassword http://localhost:8080/api/users/me -HTTP/1.1 403 Forbidden -Content-Length: 34 -Content-Type: text/html;charset=UTF-8 - -Forbidden% ----- - -Finally, using the user `standardUser` works and the security context contains the principal details (username for instance). - -[source,shell] ----- -$ curl -i -X GET -u standardUser:standardUserPassword http://localhost:8080/api/users/me -HTTP/1.1 200 OK -Content-Length: 4 -Content-Type: text/plain;charset=UTF-8 - -user% ----- - -[[configuration-reference]] -== Configuration Reference - -include::{generated-dir}/config/quarkus-elytron-security-ldap.adoc[opts=optional, leveloffset=+1] - -== References - -* https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol[LDAP] -* xref:security.adoc[Quarkus Security] diff --git a/_versions/2.7/guides/security-oauth2.adoc b/_versions/2.7/guides/security-oauth2.adoc deleted file mode 100644 index 2e7e9543930..00000000000 --- a/_versions/2.7/guides/security-oauth2.adoc +++ /dev/null @@ -1,459 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using OAuth2 RBAC - -include::./attributes.adoc[] -:extension-name: Elytron Security OAuth2 -:extension-status: preview - -This guide explains how your Quarkus application can utilize OAuth2 tokens to provide secured access to the JAX-RS endpoints. - -OAuth2 is an authorization framework that enables applications to obtain access to an HTTP resource on behalf of a user. -It can be used to implement an application authentication mechanism based on tokens by delegating to an external server (the authentication server) the user authentication and providing a token for the authentication context. - -This extension provides a light-weight support for using the opaque Bearer Tokens and validating them by calling an introspection endpoint. - -If the OAuth2 Authentication server provides JWT Bearer Tokens then you should consider using either xref:security-openid-connect.adoc[OpenID Connect] or xref:security-jwt.adoc[SmallRye JWT] extensions instead. -OpenID Connect extension has to be used if the Quarkus application needs to authenticate the users using OIDC Authorization Code Flow, please read xref:security-openid-connect-web-authentication.adoc[Using OpenID Connect to Protect Web Applications] guide for more information. - -include::./status-include.adoc[] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: git clone https://github.com/quarkusio/quarkus-quickstarts.git, or download an archive. - -The solution is located in the `security-oauth2-quickstart` {quickstarts-tree-url}/security-oauth2-quickstart[directory]. -It contains a very simple UI to use the JAX-RS resources created here, too. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: security-oauth2-quickstart -:create-app-extensions: resteasy,resteasy-jackson,security-oauth2 -include::includes/devtools/create-app.adoc[] - -This command generates a project and imports the `elytron-security-oauth2` extension, which includes the OAuth2 opaque token support. - -If you don't want to use the Maven plugin, you can just include the dependency in your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-elytron-security-oauth2 - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-elytron-security-oauth2") ----- - -=== Examine the JAX-RS resource - -Create the `src/main/java/org/acme/security/oauth2/TokenSecuredResource.java` file with the following content: - -[source,java] ----- -package org.acme.security.oauth2; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/secured") -public class TokenSecuredResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return "hello"; - } -} ----- - -This is a basic REST endpoint that does not have any of the {extension-name} specific features, so let's add some. - -We will use the JSR 250 common security annotations, they are described in the xref:security.adoc[Using Security] guide. - -[source,java] ----- -package org.acme.security.oauth2; - -import java.security.Principal; - -import javax.annotation.security.PermitAll; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.SecurityContext; - -@Path("/secured") -@ApplicationScoped -public class TokenSecuredResource { - - - @GET() - @Path("permit-all") - @PermitAll // <1> - @Produces(MediaType.TEXT_PLAIN) - public String hello(@Context SecurityContext ctx) { // <2> - Principal caller = ctx.getUserPrincipal(); <3> - String name = caller == null ? "anonymous" : caller.getName(); - String helloReply = String.format("hello + %s, isSecure: %s, authScheme: %s", name, ctx.isSecure(), ctx.getAuthenticationScheme()); - return helloReply; // <4> - } -} ----- -<1> `@PermitAll` indicates that the given endpoint is accessible by any caller, authenticated or not. -<2> Here we inject the JAX-RS `SecurityContext` to inspect the security state of the call. -<3> Here we obtain the current request user/caller `Principal`. For an unsecured call this will be null, so we build the user name by checking `caller` against null. -<4> The reply we build up makes use of the caller name, the `isSecure()` and `getAuthenticationScheme()` states of the request `SecurityContext`. - - -=== Setting up application.properties - -You need to configure your application with the following minimal properties: - -[source, properties] ----- -quarkus.oauth2.client-id=client_id -quarkus.oauth2.client-secret=secret -quarkus.oauth2.introspection-url=http://oauth-server/introspect ----- - -You need to specify the introspection URL of your authentication server and the `client-id` / `client-secret` that your application will use to authenticate itself to the authentication server. + -The extension will then use this information to validate the token and recover the information associate with it. - -For all configuration properties, see the <> section at the end of this guide. - -== Run the application - -Now we are ready to run our application. Use: - -include::includes/devtools/dev.adoc[] - -Now that the REST endpoint is running, we can access it using a command line tool like curl: - -[source,shell] ----- -$ curl http://127.0.0.1:8080/secured/permit-all; echo -hello + anonymous, isSecure: false, authScheme: null ----- - -We have not provided any token in our request, so we would not expect that there is any security state seen by the endpoint, and the response is consistent with that: - -* user name is anonymous -* `isSecure` is false as https is not used -* `authScheme` is null - -=== Securing the endpoint - -So now let's actually secure something. Take a look at the new endpoint method `helloRolesAllowed` in the following: - -[source,java] ----- -package org.acme.security.oauth2; - -import java.security.Principal; - -import javax.annotation.security.PermitAll; -import javax.annotation.security.RolesAllowed; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.SecurityContext; - -@Path("/secured") -@ApplicationScoped -public class TokenSecuredResource { - - @GET() - @Path("permit-all") - @PermitAll - @Produces(MediaType.TEXT_PLAIN) - public String hello(@Context SecurityContext ctx) { - Principal caller = ctx.getUserPrincipal(); - String name = caller == null ? "anonymous" : caller.getName(); - String helloReply = String.format("hello + %s, isSecure: %s, authScheme: %s", name, ctx.isSecure(), ctx.getAuthenticationScheme()); - return helloReply; - } - - @GET() - @Path("roles-allowed") // <1> - @RolesAllowed({"Echoer", "Subscriber"}) // <2> - @Produces(MediaType.TEXT_PLAIN) - public String helloRolesAllowed(@Context SecurityContext ctx) { - Principal caller = ctx.getUserPrincipal(); - String name = caller == null ? "anonymous" : caller.getName(); - String helloReply = String.format("hello + %s, isSecure: %s, authScheme: %s", name, ctx.isSecure(), ctx.getAuthenticationScheme()); - return helloReply; - } -} ----- -<1> This new endpoint will be located at `/secured/roles-allowed` -<2> `@RolesAllowed` indicates that the given endpoint is accessible by a caller if they have either a "Echoer" or "Subscriber" role assigned. - -After you make this addition to your `TokenSecuredResource`, try `curl -v http://127.0.0.1:8080/secured/roles-allowed; echo` to attempt to access the new endpoint. Your output should be: - -[source,shell] ----- -$ curl -v http://127.0.0.1:8080/secured/roles-allowed; echo -* Trying 127.0.0.1... -* TCP_NODELAY set -* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0) -> GET /secured/roles-allowed HTTP/1.1 -> Host: 127.0.0.1:8080 -> User-Agent: curl/7.54.0 -> Accept: */* -> -< HTTP/1.1 401 Unauthorized -< Connection: keep-alive -< Content-Type: text/html;charset=UTF-8 -< Content-Length: 14 -< Date: Sun, 03 Mar 2019 16:32:34 GMT -< -* Connection #0 to host 127.0.0.1 left intact -Not authorized ----- - -Excellent, we have not provided any OAuth2 token in the request, so we should not be able to access the endpoint, and we were not. Instead we received an HTTP 401 Unauthorized error. We need to obtain and pass in a valid OAuth2 token to access that endpoint. There are two steps to this, 1) configuring our {extension-name} extension with information on how to validate the token, and 2) generating a matching token with the appropriate claims. - -=== Generating a token - -You need to obtain the token from a standard OAuth2 authentication server (https://www.keycloak.org/[Keycloak] for example) using the token endpoint. - -You can find below a curl example of such call for a `client_credential` flow: - -[source,bash] ----- -curl -X POST "http://oauth-server/token?grant_type=client_credentials" \ --H "Accept: application/json" -H "Authorization: Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ=" ----- - -It should respond something like that... - -[source,json] ----- -{"access_token":"60acf56d-9daf-49ba-b3be-7a423d9c7288","token_type":"bearer","expires_in":1799,"scope":"READER"} ----- - - -=== Finally, make a secured request to /secured/roles-allowed -Now let's use this to make a secured request to the `/secured/roles-allowed` endpoint - -[source,shell] ----- -$ curl -H "Authorization: Bearer 60acf56d-9daf-49ba-b3be-7a423d9c7288" http://127.0.0.1:8080/secured/roles-allowed; echo -hello + client_id isSecure: false, authScheme: OAuth2 ----- - -Success! We now have: - -* a non-anonymous caller name of client_id -* an authentication scheme of OAuth2 - -== Roles mapping - -Roles are mapped from one of the claims of the introspection endpoint response. By default, it's the `scope` claim. Roles are obtained by splitting the claim with a space separator. If the claim is an array, no splitting is done, the roles are obtained from the array. - -You can customize the name of the claim to use for the roles with the `quarkus.oauth2.role-claim` property. - -== Package and run the application - -As usual, the application can be packaged using: - -include::includes/devtools/build.adoc[] - -And executed using `java -jar target/quarkus-app/quarkus-run.jar`: - -[source,shell,subs=attributes+] ----- -[INFO] Scanning for projects... -... -$ java -jar target/quarkus-app/quarkus-run.jar -2019-03-28 14:27:48,839 INFO [io.quarkus] (main) Quarkus {quarkus-version} started in 0.796s. Listening on: http://[::]:8080 -2019-03-28 14:27:48,841 INFO [io.quarkus] (main) Installed features: [cdi, resteasy, resteasy-jackson, security, security-oauth2] ----- - -You can also generate the native executable with: - -include::includes/devtools/build-native.adoc[] - -[source,shell] ----- -[INFO] Scanning for projects... -... -[security-oauth2-quickstart-runner:25602] universe: 493.17 ms -[security-oauth2-quickstart-runner:25602] (parse): 660.41 ms -[security-oauth2-quickstart-runner:25602] (inline): 1,431.10 ms -[security-oauth2-quickstart-runner:25602] (compile): 7,301.78 ms -[security-oauth2-quickstart-runner:25602] compile: 10,542.16 ms -[security-oauth2-quickstart-runner:25602] image: 2,797.62 ms -[security-oauth2-quickstart-runner:25602] write: 988.24 ms -[security-oauth2-quickstart-runner:25602] [total]: 43,778.16 ms -[INFO] ------------------------------------------------------------------------ -[INFO] BUILD SUCCESS -[INFO] ------------------------------------------------------------------------ -[INFO] Total time: 51.500 s -[INFO] Finished at: 2019-06-28T14:30:56-07:00 -[INFO] ------------------------------------------------------------------------ - -$ ./target/security-oauth2-quickstart-runner -2019-03-28 14:31:37,315 INFO [io.quarkus] (main) Quarkus 0.20.0 started in 0.006s. Listening on: http://[::]:8080 -2019-03-28 14:31:37,316 INFO [io.quarkus] (main) Installed features: [cdi, resteasy, resteasy-jackson, security, security-oauth2] ----- - -[[integration-testing]] -== Integration testing - -If you don't want to use a real OAuth2 authorization server for your integration tests, you can use the -xref:security-properties.adoc[Properties based security] extension for your test, or mock an authorization server using Wiremock. - -First of all, Wiremock needs to be added as a test dependency. For a Maven project that would happen like so: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - com.github.tomakehurst - wiremock-jre8 - test - ${wiremock.version} // <1> - ----- -<1> Use a proper Wiremock version. All available versions can be found link:https://search.maven.org/artifact/com.github.tomakehurst/wiremock-jre8[here]. - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("com.github.tomakehurst:wiremock-jre8:${wiremock.version}") <1> ----- -<1> Use a proper Wiremock version. All available versions can be found link:https://search.maven.org/artifact/com.github.tomakehurst/wiremock-jre8[here]. - -In Quarkus tests when some service needs to be started before the Quarkus tests are ran, we utilize the `@io.quarkus.test.common.QuarkusTestResource` -annotation to specify a `io.quarkus.test.common.QuarkusTestResourceLifecycleManager` which can start the service and supply configuration -values that Quarkus will use. - -[NOTE] -==== -For more details about `@QuarkusTestResource` refer to xref:getting-started-testing.adoc#quarkus-test-resource[this part of the documentation]. -==== - -Let's create an implementation of `QuarkusTestResourceLifecycleManager` called `MockAuthorizationServerTestResource` like so: - -[source,java] ----- -import com.github.tomakehurst.wiremock.WireMockServer; -import com.github.tomakehurst.wiremock.client.WireMock; -import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; - -import java.util.Collections; -import java.util.Map; - -public class MockAuthorizationServerTestResource implements QuarkusTestResourceLifecycleManager { // <1> - - private WireMockServer wireMockServer; - - @Override - public Map start() { - wireMockServer = new WireMockServer(); - wireMockServer.start(); // <2> - - // define the mock for the introspect endpoint - WireMock.stubFor(WireMock.post("/introspect").willReturn(WireMock.aResponse() // <3> - .withBody( - "{\"active\":true,\"scope\":\"Echoer\",\"username\":null,\"iat\":1562315654,\"exp\":1562317454,\"expires_in\":1458,\"client_id\":\"my_client_id\"}"))); - - - return Collections.singletonMap("quarkus.oauth2.introspection-url", wireMockServer.baseUrl() + "/introspect"); // <4> - } - - @Override - public void stop() { - if (null != wireMockServer) { - wireMockServer.stop(); // <5> - } - } -} ----- - -<1> The `start` method is invoked by Quarkus before any test is run and returns a `Map` of configuration properties that apply during the test execution. -<2> Launch Wiremock. -<3> Configure Wiremock to stub the calls to `/introspect` by returning an OAuth2 introspect response. You need to customize this line to return what's needed for your application (at least the scope property as roles are derived from the scope). -<4> As the `start` method returns configuration that applies for tests, we set the `quarkus.oauth2.introspection-url` property that controls the URL of the introspect endpoint used by the OAuth2 extension. -<5> When all tests have finished, shutdown Wiremock. - - -Your test class needs to be annotated like with `@QuarkusTestResource(MockAuthorizationServerTestResource.class)` to use this `QuarkusTestResourceLifecycleManager`. - -Below is an example of a test that uses the `MockAuthorizationServerTestResource`. - -[source,java] ----- -@QuarkusTest -@QuarkusTestResource(MockAuthorizationServerTestResource.class) // <1> -class TokenSecuredResourceTest { - // use whatever token you want as the mock OAuth server will accept all tokens - private static final String BEARER_TOKEN = "337aab0f-b547-489b-9dbd-a54dc7bdf20d"; // <2> - - @Test - void testPermitAll() { - RestAssured.given() - .when() - .header("Authorization", "Bearer: " + BEARER_TOKEN) // <3> - .get("/secured/permit-all") - .then() - .statusCode(200) - .body(containsString("hello")); - } - - @Test - void testRolesAllowed() { - RestAssured.given() - .when() - .header("Authorization", "Bearer: " + BEARER_TOKEN) - .get("/secured/roles-allowed") - .then() - .statusCode(200) - .body(containsString("hello")); - } -} ----- - -<1> Use the previously created `MockAuthorizationServerTestResource` as a Quarkus test resource. -<2> Define whatever token you want, it will not be validated by the OAuth2 mock authorization server. -<3> Use this token inside the `Authorization` header to trigger OAuth2 authentication. - - -[WARNING] -==== -`@QuarkusTestResource` applies to all tests, not just `TokenSecuredResourceTest`. -==== - - -== References - -* https://tools.ietf.org/html/rfc6749[OAuth2] -* xref:security.adoc[Quarkus Security] - -[[config-reference]] -== Configuration Reference - -include::{generated-dir}/config/quarkus-elytron-security-oauth2.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/security-openid-connect-client.adoc b/_versions/2.7/guides/security-openid-connect-client.adoc deleted file mode 100644 index e4cdf9d1434..00000000000 --- a/_versions/2.7/guides/security-openid-connect-client.adoc +++ /dev/null @@ -1,956 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using OpenID Connect (OIDC) and OAuth2 Client and Filters to manage access tokens - -include::./attributes.adoc[] -:toc: - -This guide explains how to use: - - - `quarkus-oidc-client`, `quarkus-oidc-client-reactive-filter` and `quarkus-oidc-client-filter` extensions to acquire and refresh access tokens from OpenID Connect and OAuth 2.0 compliant Authorization Servers such as https://www.keycloak.org[Keycloak] - - `quarkus-oidc-token-propagation` and `quarkus-oidc-token-propagation-reactive` extensions to propagate the current `Bearer` or `Authorization Code Flow` access tokens - -The access tokens managed by these extensions can be used as HTTP Authorization Bearer tokens to access the remote services. - -== OidcClient - -Add the following dependency: - -[source,xml] ----- - - io.quarkus - quarkus-oidc-client - ----- - -`quarkus-oidc-client` extension provides a reactive `io.quarkus.oidc.client.OidcClient` which can be used to acquire and refresh tokens using SmallRye Mutiny `Uni` and `Vert.x WebClient`. - -`OidcClient` is initialized at the build time with the IDP token endpoint URL which can be auto-discovered or manually configured and uses this endpoint to acquire access tokens using the token grants such as `client_credentials` or `password` and refresh the tokens using a `refresh_token` grant. - -=== Token Endpoint Configuration - -By default the token endpoint address is discovered by adding a `/.well-known/openid-configuration` path to the configured `quarkus.oidc-client.auth-server-url`. - -For example, given this Keycloak URL: - -[source, properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus ----- - -`OidcClient` will discover that the token endpoint URL is `http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/tokens`. - -Alternatively, if the discovery endpoint is not available or you would like to save on the discovery endpoint roundtrip, you can disable the discovery and configure the token endpoint address with a relative path value, for example: - -[source, properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus -quarkus.oidc-client.discovery-enabled=false -# Token endpoint: http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/tokens -quarkus.oidc-client.token-path=/protocol/openid-connect/tokens ----- - -A more compact way to configure the token endpoint URL without the discovery is to set `quarkus.oidc-client.token-path` to an absolute URL: - -[source, properties] ----- -quarkus.oidc-client.token-path=http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/tokens ----- - -Setting 'quarkus.oidc-client.auth-server-url' and 'quarkus.oidc-client.discovery-enabled' is not required in this case. - -=== Supported Token Grants - -The main token grants which `OidcClient` can use to acquire the tokens are the `client_credentials` (default) and `password` grants. - -==== Client Credentials Grant - -Here is how `OidcClient` can be configured to use the `client_credentials` grant: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app -quarkus.oidc-client.credentials.secret=secret ----- - -The `client_credentials` grant allows to set extra parameters to the token request via `quarkus.oidc-client.grant-options.client.=`. Here is how to set the intended token recipient via the `audience` parameter: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app -quarkus.oidc-client.credentials.secret=secret -# 'client' is a shortcut for `client_credentials` -quarkus.oidc-client.grant.type=client -quarkus.oidc-client.grant-options.client.audience=https://example.com/api ----- - -==== Password Grant - -Here is how `OidcClient` can be configured to use the `password` grant: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app -quarkus.oidc-client.credentials.secret=secret -quarkus.oidc-client.grant.type=password -quarkus.oidc-client.grant-options.password.username=alice -quarkus.oidc-client.grant-options.password.password=alice ----- - -It can be further customized using a `quarkus.oidc-client.grant-options.password` configuration prefix, similarly to how the client credentials grant can be customized. - -==== Other Grants - -`OidcClient` can also help with acquiring the tokens using the grants which require some extra input parameters which can not be captured in the configuration. These grants are `refresh token` (with the external refresh token), `token exchange` and `authorization code`. - -Using the `refresh_token` grant which uses an out of band refresh token to acquire a new set of tokens will be required if the existing refresh token has been posted to the current Quarkus endpoint for it to acquire the access token. In this case `OidcClient` needs to be configured as follows: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app -quarkus.oidc-client.credentials.secret=secret -quarkus.oidc-client.grant.type=refresh ----- - -and then you can use `OidcClient.refreshTokens` method with a provided refresh token to get the access token. - -Using the `token exchange` grant may be required if you are building a complex microservices application and would like to avoid the same `Bearer` token be propagated to and used by more than one service. Please see <> for more details. - -Using `OidcClient` to support the `authorization code` grant might be required if for some reasons you can not use the xref:security-openid-connect-web-authentication.adoc[Quarkus OpenID Connect extension] to support Authorization Code Flow. If there is a very good reason for you to implement Authorization Code Flow then you can configure `OidcClient` as follows: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app -quarkus.oidc-client.credentials.secret=secret -quarkus.oidc-client.grant.type=code ----- - -and then you can use `OidcClient.accessTokens` method accepting a Map of extra properties and pass the current `code` and `redirect_uri` parameters to exchange the authorization code for the tokens. - -==== Grant scopes - -You may need to request that a specific set of scopes is associated with an issued access token. -Use a dedicated `quarkus.oidc-client.scopes` list property, for example: `quarkus.oidc-client.scopes=email,phone` - -=== Use OidcClient directly - -One can use `OidcClient` directly as follows: - -[source,java] ----- -import javax.inject.PostConstruct; -import javax.inject.Inject; -import javax.ws.rs.GET; - -import io.quarkus.oidc.client.OidcClient; -import io.quarkus.oidc.client.Tokens; - -@Path("/service") -public class OidcClientResource { - - @Inject - OidcClient client; - - volatile Tokens currentTokens; - - @PostConstruct - public void init() { - currentTokens = client.getTokens().await().indefinitely(); - } - - @GET - public String getResponse() { - - Tokens tokens = currentTokens; - if (tokens.isAccessTokenExpired()) { - // Add @Blocking method annotation if this code is used with Reactive RestClient - tokens = client.refreshTokens(tokens.getRefreshToken()).await().indefinitely(); - currentTokens = tokens; - } - // Use tokens.getAccessToken() to configure MP RestClient Authorization header/etc - } -} ----- - -=== Inject Tokens - -You can inject `Tokens` which uses `OidcClient` internally. `Tokens` can be used to acquire the access tokens and refresh them if necessary: - -[source,java] ----- -import javax.inject.PostConstruct; -import javax.inject.Inject; -import javax.ws.rs.GET; - -import io.quarkus.oidc.client.Tokens; - -@Path("/service") -public class OidcClientResource { - - @Inject Tokens tokens; - - @GET - public String getResponse() { - // Get the access token which may have been refreshed. - String accessToken = tokens.getAccessToken(); - // Use the access token to configure MP RestClient Authorization header/etc - } -} ----- - -=== Use OidcClients - -`io.quarkus.oidc.client.OidcClients` is a container of ``OidcClient``s - it includes a default `OidcClient` and named clients which can be configured like this: - -[source,properties] ----- -quarkus.oidc-client.client-enabled=false - -quarkus.oidc-client.jwt-secret.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.jwt-secret.client-id=quarkus-app -quarkus.oidc-client.jwt-secret.credentials.jwt.secret=AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow ----- - -Note in this case the default client is disabled with a `client-enabled=false` property. The `jwt-secret` client can be accessed like this: - -[source,java] ----- -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import io.quarkus.oidc.client.OidcClient; -import io.quarkus.oidc.client.OidcClients; - -@Path("/clients") -public class OidcClientResource { - - @Inject - OidcClients clients; - - @GET - public String getResponse() { - OidcClient client = clients.getClient("jwt-secret"); - // use this client to get the token - } -} ----- - -[NOTE] -==== -If you also use xref:security-openid-connect-multitenancy.adoc[OIDC multitenancy] and each OIDC tenant has its own associated `OidcClient` then you can use a Vert.x `RoutingContext` `tenantId` attribute, for example: - -[source,java] ----- -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import io.quarkus.oidc.client.OidcClient; -import io.quarkus.oidc.client.OidcClients; -import io.vertx.ext.web.RoutingContext; - -@Path("/clients") -public class OidcClientResource { - - @Inject - OidcClients clients; - @Inject - RoutingContext context; - - @GET - public String getResponse() { - String tenantId = context.get("tenantId"); - // named OIDC tenant and client configurations use the same key: - OidcClient client = clients.getClient(tenantId); - // use this client to get the token - } -} ----- -==== - -If you need you can also create new `OidcClient` programmatically like this: - -[source,java] ----- -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import io.quarkus.oidc.client.OidcClient; -import io.quarkus.oidc.client.OidcClients; -import io.quarkus.oidc.client.OidcClientConfig; - -import io.smallrye.mutiny.Uni; - -@Path("/clients") -public class OidcClientResource { - - @Inject - OidcClients clients; - - @GET - public String getResponse() { - OidcClientConfig cfg = new OidcClientConfig(); - cfg.setId("myclient"); - cfg.setAuthServerUrl("http://localhost:8081/auth/realms/quarkus/"); - cfg.setClientId("quarkus"); - cfg.getCredentials().setSecret("secret"); - Uni client = clients.newClient(cfg); - // use this client to get the token - } -} ----- - -[[named-oidc-clients]] -=== Inject named OidcClient and Tokens - -In case of multiple configured ``OidcClient``s you can specify the `OidcClient` injection target by the extra qualifier `@NamedOidcClient` instead of working with `OidcClients`: - -[source,java] ----- -package io.quarkus.oidc.client; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -@Path("/clients") -public class OidcClientResource { - - @Inject - @NamedOidcClient("jwt-secret") - OidcClient client; - - @GET - public String getResponse() { - // use client to get the token - } -} ----- - -The same qualifier can be used to specify the `OidcClient` used for a `Tokens` injection: - -[source,java] ----- -@Provider -@Priority(Priorities.AUTHENTICATION) -@RequestScoped -public class OidcClientRequestCustomFilter implements ClientRequestFilter { - - @Inject - @NamedOidcClient("jwt-secret") - Tokens tokens; - - @Override - public void filter(ClientRequestContext requestContext) throws IOException { - requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION, "Bearer " + tokens.getAccessToken()); - } -} ----- - -[[oidc-client-reactive-filter]] -=== Use OidcClient in RestClient Reactive ClientFilter - -Add the following Maven Dependency: - -[source,xml] ----- - - io.quarkus - quarkus-oidc-client-reactive-filter - ----- - -Note it will also bring `io.quarkus:quarkus-oidc-client`. - -`quarkus-oidc-client-reactive-filter` extension provides `io.quarkus.oidc.client.filter.OidcClientRequestReactiveFilter`. - -It works similarly to the way `OidcClientRequestFilter` does (see <>) - it uses `OidcClient` to acquire the access token, refresh it if needed, and set it as an HTTP `Authorization` `Bearer` scheme value. The difference is that it works with xref:rest-client-reactive.adoc[Reactive RestClient] and implements a non-blocking client filter which does not block the current IO thread when acquiring or refreshing the tokens. - -`OidcClientRequestReactiveFilter` delays an initial token acquisition until it is executed to avoid blocking an IO thread and it currently can only be registered with `org.eclipse.microprofile.rest.client.annotation.RegisterProvider` annotation: - -[source,java] ----- -import org.eclipse.microprofile.rest.client.annotation.RegisterProvider; -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import io.quarkus.oidc.client.reactive.filter.OidcClientRequestReactiveFilter; -import io.smallrye.mutiny.Uni; - -@RegisterRestClient -@RegisterProvider(OidcClientRequestReactiveFilter.class) -@Path("/") -public interface ProtectedResourceService { - - @GET - Uni getUserName(); -} ----- - -`OidcClientRequestReactiveFilter` uses a default `OidcClient` by default. A named `OidcClient` can be selected with a `quarkus.oidc-client-reactive-filter.client-name` configuration property. - - -[[oidc-client-filter]] -=== Use OidcClient in RestClient ClientFilter - -Add the following Maven Dependency: - -[source,xml] ----- - - io.quarkus - quarkus-oidc-client-filter - ----- - -Note it will also bring `io.quarkus:quarkus-oidc-client`. - -`quarkus-oidc-client-filter` extension provides `io.quarkus.oidc.client.filter.OidcClientRequestFilter` JAX-RS ClientRequestFilter which uses `OidcClient` to acquire the access token, refresh it if needed, and set it as an HTTP `Authorization` `Bearer` scheme value. - -By default, this filter will get `OidcClient` to acquire the first pair of access and refresh tokens at its initialization time. If the access tokens are short-lived and refresh tokens are not available then the token acquisition should be delayed with `quarkus.oidc-client.early-tokens-acquisition=false`. - -You can selectively register `OidcClientRequestFilter` by using either `io.quarkus.oidc.client.filter.OidcClientFilter` or `org.eclipse.microprofile.rest.client.annotation.RegisterProvider` annotations: - -[source,java] ----- -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import io.quarkus.oidc.client.filter.OidcClientFilter; - -@RegisterRestClient -@OidcClientFilter -@Path("/") -public interface ProtectedResourceService { - - @GET - String getUserName(); -} ----- - -or - -[source,java] ----- -import org.eclipse.microprofile.rest.client.annotation.RegisterProvider; -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import io.quarkus.oidc.client.filter.OidcClientRequestFilter; - -@RegisterRestClient -@RegisterProvider(OidcClientRequestFilter.class) -@Path("/") -public interface ProtectedResourceService { - - @GET - String getUserName(); -} ----- - -Alternatively, `OidcClientRequestFilter` can be registered automatically with all MP Rest or JAX-RS clients if `quarkus.oidc-client-filter.register-filter=true` property is set. - -`OidcClientRequestFilter` uses a default `OidcClient` by default. A named `OidcClient` can be selected with a `quarkus.oidc-client-filter.client-name` configuration property. - -=== Use Custom RestClient ClientFilter - -If you prefer you can use your own custom filter and inject `Tokens`: - -[source,java] ----- -import io.quarkus.oidc.client.Tokens; - -@Provider -@Priority(Priorities.AUTHENTICATION) -public class OidcClientRequestCustomFilter implements ClientRequestFilter { - - @Inject - Tokens tokens; - - @Override - public void filter(ClientRequestContext requestContext) throws IOException { - requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION, "Bearer " + tokens.getAccessToken()); - } -} ----- - -The `Tokens` producer will acquire and refresh the tokens, and the custom filter will decide how and when to use the token. - -You can also inject named `Tokens`, see <> - -[[refresh-access-tokens]] -=== Refreshing Access Tokens - -`OidcClientRequestReactiveFilter`, `OidcClientRequestFilter` and `Tokens` producers will refresh the current expired access token if the refresh token is available. -Additionally, `quarkus.oidc-client.refresh-token-time-skew` property can be used for a preemptive access token refreshment to avoid sending nearly expired access tokens which may cause HTTP 401 errors. For example if this property is set to `3S` and the access token will expire in less than 3 seconds then this token will be auto-refreshed. - -If the access token needs to be refreshed but no refresh token is available then an attempt will be made to acquire a new token using the configured grant such as `client_credentials`. - -Please note that some OpenID Connect Providers will not return a refresh token in a `client_credentials` grant response. For example, starting from Keycloak 12 a refresh token will not be returned by default for `client_credentials`. The providers may also restrict a number of times a refresh token can be used. - -[[oidc-client-authentication]] -=== OidcClient Authentication - -`OidcClient` has to authenticate to the OpenID Connect Provider for the `client_credentials` and other grant requests to succeed. -All the https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication[OIDC Client Authentication] options are supported, for example: - -`client_secret_basic`: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app -quarkus.oidc-client.credentials.secret=mysecret ----- - -or - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app -quarkus.oidc-client.credentials.client-secret.value=mysecret ----- - -or with the secret retrieved from a xref:credentials-provider.adoc[CredentialsProvider]: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app - -# This is a key which will be used to retrieve a secret from the map of credentails returned from CredentialsProvider -quarkus.oidc-client.credentials.client-secret.provider.key=mysecret-key -# Set it only if more than one CredentialsProvider can be registered -quarkus.oidc-client.credentials.client-secret.provider.name=oidc-credentials-provider ----- - -`client_secret_post`: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app -quarkus.oidc-client.credentials.client-secret.value=mysecret -quarkus.oidc-client.credentials.client-secret.method=post ----- - -`client_secret_jwt`, signature algorithm is `HS256`: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app -quarkus.oidc-client.credentials.jwt.secret=AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow ----- - -or with the secret retrieved from a xref:credentials-provider.adoc[CredentialsProvider], signature algorithm is `HS256`: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app - -# This is a key which will be used to retrieve a secret from the map of credentials returned from CredentialsProvider -quarkus.oidc-client.credentials.jwt.secret-provider.key=mysecret-key -# Set it only if more than one CredentialsProvider can be registered -quarkus.oidc-client.credentials.jwt.secret-provider.name=oidc-credentials-provider ----- - -`private_key_jwt` with the PEM key file, signature algorithm is `RS256`: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app -quarkus.oidc-client.credentials.jwt.key-file=privateKey.pem ----- - -`private_key_jwt` with the key store file, signature algorithm is `RS256`: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app -quarkus.oidc-client.credentials.jwt.key-store-file=keystore.jks -quarkus.oidc-client.credentials.jwt.key-store-password=mypassword -quarkus.oidc-client.credentials.jwt.key-password=mykeypassword - -# Private key alias inside the keystore -quarkus.oidc-client.credentials.jwt.key-id=mykeyAlias ----- - -Using `client_secret_jwt` or `private_key_jwt` authentication methods ensures that no client secret goes over the wire. - -==== Additional JWT Authentication options - -If either `client_secret_jwt` or `private_key_jwt` authentication methods are used then the JWT signature algorithm, key identifier, audience, subject and issuer can be customized, for example: - -[source,properties] ----- -# private_key_jwt client authentication - -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc-client.client-id=quarkus-app -quarkus.oidc-client.credentials.jwt.key-file=privateKey.pem - -# This is a token key identifier 'kid' header - set it if your OpenID Connect provider requires it. -# Note if the key is represented in a JSON Web Key (JWK) format with a `kid` property then -# using 'quarkus.oidc-client.credentials.jwt.token-key-id' is not necessary. -quarkus.oidc-client.credentials.jwt.token-key-id=mykey - -# Use RS512 signature algorithm instead of the default RS256 -quarkus.oidc-client.credentials.jwt.signature-algorithm=RS512 - -# The token endpoint URL is the default audience value, use the base address URL instead: -quarkus.oidc-client.credentials.jwt.audience=${quarkus.oidc-client.auth-server-url} - -# custom subject instead of the client id : -quarkus.oidc-client.credentials.jwt.subject=custom-subject - -# custom issuer instead of the client id : -quarkus.oidc-client.credentials.jwt.issuer=custom-issuer ----- - -==== Apple POST JWT - -Apple OpenID Connect Provider uses a `client_secret_post` method where a secret is a JWT produced with a `private_key_jwt` authentication method but with Apple account specific issuer and subject properties. - -`quarkus-oidc-client` supports a non-standard `client_secret_post_jwt` authentication method which can be configured as follows: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=${apple.url} -quarkus.oidc-client.client-id=${apple.client-id} -quarkus.oidc-client.credentials.client-secret.method=post-jwt - -quarkus.oidc-client.credentials.jwt.key-file=ecPrivateKey.pem -quarkus.oidc-client.credentials.jwt.signature-algorithm=ES256 -quarkus.oidc-client.credentials.jwt.subject=${apple.subject} -quarkus.oidc-client.credentials.jwt.issuer=${apple.issuer} ----- - -==== Mutual TLS - -Some OpenID Connect Providers may require that a client is authenticated as part of the `Mutual TLS` (`MTLS`) authentication process. - -`quarkus-oidc-client` can be configured as follows to support `MTLS`: - -[source,properties] ----- -quarkus.oidc.tls.verification=certificate-validation - -# Keystore configuration -quarkus.oidc.client.tls.key-store-file=client-keystore.jks -quarkus.oidc.client.tls.key-store-password=${key-store-password} - -# Add more keystore properties if needed: -#quarkus.oidc.client.tls.key-store-alias=keyAlias -#quarkus.oidc.client.tls.key-store-alias-password=keyAliasPassword - -# Truststore configuration -quarkus.oidc.client.tls.trust-store-file=client-truststore.jks -quarkus.oidc.client.tls.trust-store-password=${trust-store-password} -# Add more truststore properties if needed: -#quarkus.oidc.client.tls.trust-store-alias=certAlias ----- - -[[integration-testing-oidc-client]] -=== Testing - -Start by adding the following dependencies to your test project: - -[source,xml] ----- - - io.quarkus - quarkus-junit5 - test - - - org.awaitility - awaitility - test - ----- - -[[integration-testing-wiremock]] -==== Wiremock - -Add the following dependencies to your test project: - -[source,xml] ----- - - com.github.tomakehurst - wiremock-jre8 - test - ----- - -Write Wiremock based `QuarkusTestResourceLifecycleManager`, for example: -[source, java] ----- -package io.quarkus.it.keycloak; - -import static com.github.tomakehurst.wiremock.client.WireMock.matching; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; - -import java.util.HashMap; -import java.util.Map; - -import com.github.tomakehurst.wiremock.WireMockServer; -import com.github.tomakehurst.wiremock.client.WireMock; -import com.github.tomakehurst.wiremock.core.Options.ChunkedEncodingPolicy; - -import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; - -public class KeycloakRealmResourceManager implements QuarkusTestResourceLifecycleManager { - private WireMockServer server; - - @Override - public Map start() { - - server = new WireMockServer(wireMockConfig().dynamicPort().useChunkedTransferEncoding(ChunkedEncodingPolicy.NEVER)); - server.start(); - - server.stubFor(WireMock.post("/tokens") - .withRequestBody(matching("grant_type=password&username=alice&password=alice")) - .willReturn(WireMock - .aResponse() - .withHeader("Content-Type", "application/json") - .withBody( - "{\"access_token\":\"access_token_1\", \"expires_in\":4, \"refresh_token\":\"refresh_token_1\"}"))); - server.stubFor(WireMock.post("/tokens") - .withRequestBody(matching("grant_type=refresh_token&refresh_token=refresh_token_1")) - .willReturn(WireMock - .aResponse() - .withHeader("Content-Type", "application/json") - .withBody( - "{\"access_token\":\"access_token_2\", \"expires_in\":4, \"refresh_token\":\"refresh_token_1\"}"))); - - - Map conf = new HashMap<>(); - conf.put("keycloak.url", server.baseUrl()); - return conf; - } - - @Override - public synchronized void stop() { - if (server != null) { - server.stop(); - server = null; - } - } -} ----- - -Prepare the REST test endpoints, you can have the test frontend endpoint which uses the injected MP REST client with a registered OidcClient filter to invoke on the downstream endpoint which echoes the token back, for example, see the `integration-tests/oidc-client-wiremock` in the `main` Quarkus repository. - -Set `application.properties`, for example: - -[source, properties] ----- -# Use 'keycloak.url' property set by the test KeycloakRealmResourceManager -quarkus.oidc-client.auth-server-url=${keycloak.url} -quarkus.oidc-client.discovery-enabled=false -quarkus.oidc-client.token-path=/tokens -quarkus.oidc-client.client-id=quarkus-service-app -quarkus.oidc-client.credentials.secret=secret -quarkus.oidc-client.grant.type=password -quarkus.oidc-client.grant-options.password.username=alice -quarkus.oidc-client.grant-options.password.password=alice ----- - -and finally write the test code. Given the Wiremock-based resource above, the first test invocation should return `access_token_1` access token which will expire in 4 seconds. Use `awaitility` to wait for about 5 seconds, and now the next test invocation should return `access_token_2` access token which confirms the expired `access_token_1` access token has been refreshed. - -==== Keycloak - -If you work with Keycloak then you can use the same approach as described in the xref:security-openid-connect#integration-testing-keycloak.adoc[OpenID Connect Bearer Token Integration testing] `Keycloak` section. - -=== How to check the errors in the logs - -Please enable `io.quarkus.oidc.client.runtime.OidcClientImpl` `TRACE` level logging to see more details about the token acquisition and refresh errors: - -[source, properties] ----- -quarkus.log.category."io.quarkus.oidc.client.runtime.OidcClientImpl".level=TRACE -quarkus.log.category."io.quarkus.oidc.client.runtime.OidcClientImpl".min-level=TRACE ----- - -Please enable `io.quarkus.oidc.client.runtime.OidcClientRecorder` `TRACE` level logging to see more details about the OidcClient initialization errors: - -[source, properties] ----- -quarkus.log.category."io.quarkus.oidc.client.runtime.OidcClientRecorder".level=TRACE -quarkus.log.category."io.quarkus.oidc.client.runtime.OidcClientRecorder".min-level=TRACE ----- - -[[token-propagation]] -== Token Propagation - -The `quarkus-oidc-token-propagation` extension provides two JAX-RS `javax.ws.rs.client.ClientRequestFilter` class implementations that simplify the propagation of authentication information. -`io.quarkus.oidc.token.propagation.AccessTokenRequestFilter` propagates the xref:security-openid-connect.adoc[Bearer] token present in the current active request or the token acquired from the xref:security-openid-connect-web-authentication.adoc[Authorization Code Flow], as the HTTP `Authorization` header's `Bearer` scheme value. -The `io.quarkus.oidc.token.propagation.JsonWebTokenRequestFilter` provides the same functionality, but in addition provides support for JWT tokens. - -When you need to propagate the current Authorization Code Flow access token then the immediate token propagation will work well - as the code flow access tokens (as opposed to ID tokens) are meant to be propagated for the current Quarkus endpoint to access the remote services on behalf of the currently authenticated user. - -However, the direct end to end Bearer token propagation should be avoided if possible. For example, `Client -> Service A -> Service B` where `Service B` receives a token sent by `Client` to `Service A`. In such cases `Service B` will not be able to distinguish if the token came from `Service A` or from `Client` directly. For `Service B` to verify the token came from `Service A` it should be able to assert a new issuer and audience claims. - -Additionally, a complex application may need to exchange or update the tokens before propagating them. For example, the access context might be different when `Service A` is accessing `Service B`. In this case, `Service A` might be granted a narrow or a completely different set of scopes to access `Service B`. - -The following sections show how `AccessTokenRequestFilter` and `JsonWebTokenRequestFilter` can help. - -=== RestClient AccessTokenRequestFilter - -`AccessTokenRequestFilter` treats all tokens as Strings and as such it can work with both JWT and opaque tokens. - -You can selectively register `AccessTokenRequestFilter` by using either `io.quarkus.oidc.token.propagation.AccessToken` or `org.eclipse.microprofile.rest.client.annotation.RegisterProvider`, for example: - -[source,java] ----- -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import io.quarkus.oidc.token.propagation.AccessToken; - -@RegisterRestClient -@AccessToken -@Path("/") -public interface ProtectedResourceService { - - @GET - String getUserName(); -} ----- -or - -[source,java] ----- -import org.eclipse.microprofile.rest.client.annotation.RegisterProvider; -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import io.quarkus.oidc.token.propagation.AccessTokenRequestFilter; - -@RegisterRestClient -@RegisterProvider(AccessTokenRequestFilter.class) -@Path("/") -public interface ProtectedResourceService { - - @GET - String getUserName(); -} ----- - -Alternatively, `AccessTokenRequestFilter` can be registered automatically with all MP Rest or JAX-RS clients if `quarkus.oidc-token-propagation.register-filter` property is set to `true` and `quarkus.oidc-token-propagation.json-web-token` property is set to `false` (which is a default value). - -==== Exchange Token Before Propagation - -If the current access token needs to be exchanged before propagation and you work with link:https://www.keycloak.org/docs/latest/securing_apps/#_token-exchange[Keycloak] or other OpenID Connect Provider which supports a link:https://tools.ietf.org/html/rfc8693[Token Exchange] token grant then you can configure `AccessTokenRequestFilter` like this: - -[source,properties] ----- -quarkus.oidc-client.auth-server-url=http://localhost:8180/auth/realms/quarkus -quarkus.oidc-client.client-id=quarkus-app -quarkus.oidc-client.credentials.secret=secret -quarkus.oidc-client.grant.type=exchange -quarkus.oidc-client.grant-options.exchange.audience=quarkus-app-exchange - -quarkus.oidc-token-propagation.exchange-token=true ----- - -Note `AccessTokenRequestFilter` will use `OidcClient` to exchange the current token and you can use `quarkus.oidc-client.grant-options.exchange` to set the additional exchange properties expected by your OpenID Connect Provider. - -`AccessTokenRequestFilter` uses a default `OidcClient` by default. A named `OidcClient` can be selected with a `quarkus.oidc-token-propagation.client-name` configuration property. - -=== RestClient JsonWebTokenRequestFilter - -Using `JsonWebTokenRequestFilter` is recommended if you work with Bearer JWT tokens where these tokens can have their claims such as `issuer` and `audience` modified and the updated tokens secured (for example, re-signed) again. It expects an injected `org.eclipse.microprofile.jwt.JsonWebToken` and therefore will not work with the opaque tokens. Also, if your OpenID Connect Provider supports a Token Exchange protocol then it is recommended to use `AccessTokenRequestFilter` instead - as both JWT and opaque bearer tokens can be securely exchanged with `AccessTokenRequestFilter`. - -`JsonWebTokenRequestFilter` makes it easy for `Service A` implementations to update the injected `org.eclipse.microprofile.jwt.JsonWebToken` with the new `issuer` and `audience` claim values and secure the updated token again with a new signature. The only difficult step is to ensure `Service A` has a signing key - it should be provisioned from a secure file system or from the remote secure storage such as Vault. - -You can selectively register `JsonWebTokenRequestFilter` by using either `io.quarkus.oidc.token.propagation.JsonWebToken` or `org.eclipse.microprofile.rest.client.annotation.RegisterProvider`, for example: - -[source,java] ----- -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import io.quarkus.oidc.token.propagation.JsonWebToken; - -@RegisterRestClient -@JsonWebToken -@Path("/") -public interface ProtectedResourceService { - - @GET - String getUserName(); -} ----- -or - -[source,java] ----- -import org.eclipse.microprofile.rest.client.annotation.RegisterProvider; -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import io.quarkus.oidc.token.propagation.JsonWebTokenRequestFilter; - -@RegisterRestClient -@RegisterProvider(JsonWebTokenRequestFilter.class) -@Path("/") -public interface ProtectedResourceService { - - @GET - String getUserName(); -} ----- - -Alternatively, `JsonWebTokenRequestFilter` can be registered automatically with all MP Rest or JAX-RS clients if both `quarkus.oidc-token-propagation.register-filter` and `quarkus.oidc-token-propagation.json-web-token` properties are set to `true`. - -==== Update Token Before Propagation - -If the injected token needs to have its `iss` (issuer) and/or `aud` (audience) claims updated and secured again with a new signature then you can configure `JsonWebTokenRequestFilter` like this: - -[source,properties] ----- -quarkus.oidc-token-propagation.secure-json-web-token=true -smallrye.jwt.sign.key.location=/privateKey.pem -# Set a new issuer -smallrye.jwt.new-token.issuer=http://frontend-resource -# Set a new audience -smallrye.jwt.new-token.audience=http://downstream-resource -# Override the existing token issuer and audience claims if they are already set -smallrye.jwt.new-token.override-matching-claims=true ----- - -As already noted above, please use `AccessTokenRequestFilter` if you work with Keycloak or OpenID Connect Provider which supports a Token Exchange protocol. - -[[integration-testing-token-propagation]] -=== Testing - -You can generate the tokens as described in xref:security-openid-connect.adoc#integration-testing[OpenID Connect Bearer Token Integration testing] section. -Prepare the REST test endpoints, you can have the test frontend endpoint which uses the injected MP REST client with a registered token propagation filter to invoke on the downstream endpoint, for example, see the `integration-tests/oidc-token-propagation` in the `main` Quarkus repository. - -[[reactive-token-propagation]] -== Token Propagation Reactive - -Add the following Maven Dependency: - -[source,xml] ----- - - io.quarkus - quarkus-oidc-token-propagation-reactive - ----- - -The `quarkus-oidc-token-propagation-reactive` extension provides `io.quarkus.oidc.token.propagation.reactive.AccessTokenRequestReactiveFilter` which can be used to propagate the current `Bearer` or `Authorization Code Flow` access tokens. - -The `quarkus-oidc-token-propagation-reactive` extension (as opposed to the non-reactive `quarkus-oidc-token-propagation` extension) does not currently support the exchanging or resigning the tokens before the propagation. -However these features may be added in the future. - -== References - -* xref:security.adoc[Quarkus Security] -* xref:security-openid-connect.adoc[Quarkus - Using OpenID Connect to Protect Service Applications using Bearer Token Authorization] -* xref:security-openid-connect-web-authentication.adoc[Quarkus - Using OpenID Connect to Protect Web Applications using Authorization Code Flow] diff --git a/_versions/2.7/guides/security-openid-connect-dev-services.adoc b/_versions/2.7/guides/security-openid-connect-dev-services.adoc deleted file mode 100644 index 0d8ff2dcd91..00000000000 --- a/_versions/2.7/guides/security-openid-connect-dev-services.adoc +++ /dev/null @@ -1,373 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Dev Services and UI for OpenID Connect (OIDC) - -include::./attributes.adoc[] - -This guide covers the Dev Services and UI for OpenID Connect (OIDC) Keycloak provider and explains how to support Dev Services and UI for other OpenID Connect providers. -It also describes Dev UI for all OpenID Connect providers which have already been started before Quarkus is launched in a dev mode. - -== Introduction - -Quarkus introduces an experimental `Dev Services For Keycloak` feature which is enabled by default when the `quarkus-oidc` extension is started in dev mode and when the integration tests are running in test mode, but only when no `quarkus.oidc.auth-server-url` property is configured. -It starts a Keycloak container for both the dev and/or test modes and initializes them by registering the existing Keycloak realm or creating a new realm with the client and users for you to start developing your Quarkus application secured by Keycloak immediately. It will restart the container when the `application.properties` or the realm file changes have been detected. - -Additionally, xref:dev-ui.adoc[Dev UI] available at http://localhost:8080/q/dev[/q/dev] complements this feature with a Dev UI page which helps to acquire the tokens from Keycloak and test your Quarkus application. - -If `quarkus.oidc.auth-server-url` is already set then a generic OpenID Connect Dev Console which can be used with all OpenID Connect providers will be activated, please see <> for more information. - -== Dev Services for Keycloak - -Start your application without configuring `quarkus.oidc` properties in `application.properties` with: - -include::includes/devtools/dev.adoc[] - -You will see in the console something similar to: - -[source,shell] ----- -KeyCloak Dev Services Starting: -2021-11-02 17:14:24,864 INFO [org.tes.con.wai.str.HttpWaitStrategy] (build-10) /unruffled_agnesi: Waiting for 60 seconds for URL: http://localhost:32781/auth (where port 32781 maps to container port 8080) -2021-11-02 17:14:44,170 INFO [io.qua.oid.dep.dev.key.KeycloakDevServicesProcessor] (build-10) Dev Services for Keycloak started. ----- - -The `quay.io/keycloak/keycloak:15.0.2` image which contains a `Keycloak` distribution powered by `WildFly` is currently used to start a container by default. See the <> section for more details about the image selection. - -[IMPORTANT] -==== -When logging in the Keycloak admin console, the username is `admin` and the password is `admin`. -==== - -Note that by default, `Dev Services for Keycloak` will not start a new container if it finds a container with a `quarkus-dev-service-keycloak` label and connect to it if this label's value matches the value of the `quarkus.keycloak.devservices.service-name` property (default value is `quarkus`). In such cases you will see a slighty different output when running: - -include::includes/devtools/dev.adoc[] - -[source,shell] ----- -2021-08-27 18:42:43,530 INFO [io.qua.dev.com.ContainerLocator] (build-15) Dev Services container found: 48fee151a31ddfe32c39965be8f61108587b25ed2f66cdc18bb926d9e2e570c5 (quay.io/keycloak/keycloak:14.0.0). Connecting to: 0.0.0.0:32797. -2021-08-27 18:42:43,600 INFO [io.qua.oid.dep.dev.key.KeycloakDevServicesProcessor] (build-15) Dev Services for Keycloak started. -... ----- - -Note that you can disable sharing the containers with `quarkus.keycloak.devservices.shared=false`. - -Now open the main link:http://localhost:8080/q/dev[Dev UI page] and you will see the `OpenID Connect Card` linking to a `Keycloak` page: - -image::dev-ui-oidc-keycloak-card.png[alt=Dev UI OpenID Connect Card,role="center"] - -Click on the `Provider: Keycloak` link and you will see a Keycloak page which will be presented slightly differently depending on how `Dev Services for Keycloak` feature has been configured. - -[[develop-service-applications]] -=== Developing Service Applications - -By default the Keycloak page can be used to support the development of a xref:security-openid-connect.adoc[Quarkus OIDC service application]. - -[[keycloak-authorization-code-grant]] -==== Authorization Code Grant - -If you set `quarkus.oidc.devui.grant.type=code` in `application.properties` (this is a default value) then an `authorization_code` grant will be used to acquire both access and ID tokens. Using this grant is recommended to emulate a typical flow where a `Single Page Application` acquires the tokens and uses them to access Quarkus services. - -First you will see an option to `Log into Single Page Application`: - -image::dev-ui-keycloak-sign-in-to-spa.png[alt=Dev UI OpenID Connect Keycloak Page - Log into Single Page Application,role="center"] - -Next, after you select this option, you will be redirected to Keycloak to authenticate, example, as `alice:alice` and then returned to the page representing the SPA: - -image::dev-ui-keycloak-test-service-from-spa.png[alt=Dev UI OpenID Connect Keycloak Single Page Application,role="center"] - -You can view the acquired access and ID tokens, for example: - -image::dev-ui-keycloak-decoded-tokens.png[alt=Dev UI OpenID Connect Keycloak Decoded Tokens View,role="center"] - -This view shows the encoded JWT token on the left hand side and highlights the headers (red colour), payload/claims (green colour) and signature (blue colour). It also shows the decoded JWT token on the right hand side where you can see the header and claim names and their values. - -Next test the service with either the current access or ID token. SPA usually sends the access tokens to the application endpoints but there could be cases where the ID tokens are forwarded to the application frontends for them to be aware about the user who is currently logged into SPA. - -Finally you can select a `Log Out` image::dev-ui-keycloak-logout.png option if you'd like to log out and authenticate to Keycloak as a different user. - -Note Keycloak may return an error when you try to `Log into Single Page Application`. For example, `quarkus.oidc.client-id` may not match the client id in the realm imported to Keycloak or the client in this realm is not configured correctly to support the authorization code flow, etc. In such cases Keycloak will return an `error_description` query parameter and `Dev UI` will also show this error description, for example: - -image::dev-ui-keycloak-login-error.png[alt=Dev UI Keycloak Login Error,role="center"] - -If the error occurs then log into Keycloak using the `Keycloak Admin` option and update the realm configuration as necesary and also check the `application.properties`. - -===== Test with Swagger UI or GrapghQL UI - -You can avoid manually entering the service paths and test your service with `Swagger UI` or `GraphQL UI` if `quarkus-smallrye-openapi` and/or `quarkus-smallrye-graphql` are used in your project. For example, if you start Quarkus in dev mode with both `quarkus-smallrye-openapi` and `quarkus-smallrye-graphql` dependencies then you will see the following options after logging in into Keycloak: - -image::dev-ui-keycloak-test-service-swaggerui-graphql.png[alt=Test your service with Swagger UI or GraphQL UI,role="center"] - -For example, clicking on `Swagger UI` will open `Swagger UI` in a new browser tab where you can test the service using the token acquired by Dev UI for Keycloak. -and `Swagger UI` will not try to re-authenticate again. - -Integration with `GraphQL UI` works in a similar way, the access token acquired by Dev UI for Keycloak will be used. - -[NOTE] -==== -You may need to register a redirect URI for the authorization code flow initiated by Dev UI for Keycloak to work because Keycloak may enforce that the authenticated users are redirected only to the configured redirect URI. It is recommended to do in production to avoid the users being redirected to the wrong endpoints which might happen if the correct `redirect_uri` parameter in the authentication request URI has been manipulated. - -If Keycloak does enforce it then you will see an authentication error informing you that the `redirect_uri` value is wrong. - -In this case select the `Keycloak Admin` option in the right top corner, login as `admin:admin`, select the test realm and the client which Dev UI for Keycloak is configured with and add `http://localhost:8080/q/dev/io.quarkus.quarkus-oidc/provider` to `Valid Redirect URIs`. If you used `-Dquarkus.http.port` when starting Quarkus then change `8080` to the value of `quarkus.http.port`. - -If the container is shared between multiple applications running on different ports then you will need to register `redirect_uri` values for each of these applications. - -You can set the `redirect_uri` value to `*` only for the test purposes, especially when the containers are shared between multiple applications. - -`*` `redirect_uri` value is set by `Dev Services for Keycloak` when it creates a default realm, if no custom realm is imported. -==== - -==== Implicit Grant - -If you set `quarkus.oidc.devui.grant.type=implicit` in `application.properties` then an `implicit` grant will be used to acquire both access and ID tokens. Use this grant for emulating a `Single Page Application` only if the authorization code grant does not work (for example, a client is configured in Keycloak to support an implicit grant, etc). - -==== Password Grant - -If you set `quarkus.oidc.devui.grant.type=password` in `application.properties` then you will see a screen like this one: - -image::dev-ui-keycloak-password-grant.png[alt=Dev UI OpenID Connect Keycloak Page - Password Grant,role="center"] - -Enter a registered user name, user password, a relative service endpoint path, click on `Test Service` and you will see a status code such as `200`, `403`, `401` or `404` printed. -If the user name is also set in `quarkus.keycloak.devservices.users` map property containing user names and passwords then you do not have to set a password when testing the service. -But note, you do not have to initialize `quarkus.keycloak.devservices.users` to test the service using the password grant. - -You will also see in the Dev UI console something similar to: - -[source,shell] ----- -2021-07-19 17:58:11,407 INFO [io.qua.oid.dep.dev.key.KeycloakDevConsolePostHandler] (security-openid-connect-quickstart-dev.jar) (DEV Console action) Using password grant to get a token from 'http://localhost:32818/auth/realms/quarkus/protocol/openid-connect/token' for user 'alice' in realm 'quarkus' with client id 'quarkus-app' -2021-07-19 17:58:11,533 INFO [io.qua.oid.dep.dev.key.KeycloakDevConsolePostHandler] (security-openid-connect-quickstart-dev.jar) (DEV Console action) Test token: eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJ6Z2tDazJQZ1JaYnVlVG5kcTFKSW1sVnNoZ2hhbWhtbnBNcXU0QUt5MnJBIn0.ey... -2021-07-19 17:58:11,536 INFO [io.qua.oid.dep.dev.key.KeycloakDevConsolePostHandler] (security-openid-connect-quickstart-dev.jar) (DEV Console action) Sending token to 'http://localhost:8080/api/admin' -2021-07-19 17:58:11,674 INFO [io.qua.oid.dep.dev.key.KeycloakDevConsolePostHandler] (security-openid-connect-quickstart-dev.jar) (DEV Console action) Result: 200 ----- - -A token is acquired from Keycloak using a `password` grant and is sent to the service endpoint. - -==== Client Credentials Grant - -If you set `quarkus.oidc.devui.grant.type=client` then a `client_credentials` grant will be used to acquire a token, with the page showing no `User` field in this case: - -image::dev-ui-keycloak-client-credentials-grant.png[alt=Dev UI OpenID Connect Keycloak Page - Client Credentials Grant,role="center"] - -You can test the service the same way as with the `Password` grant. - -[[develop-web-app-applications]] -=== Developing OpenID Connect Web App Applications - -If you develop a xref:security-openid-connect-web-authentication.adoc[Quarkus OIDC web-app application] then you should set `quarkus.oidc.application-type=web-app` in `application.properties` before starting the application. - -You will see a screen like this one: - -image::dev-ui-keycloak-sign-in-to-service.png[alt=Dev UI OpenID Connect Keycloak Sign In,role="center"] - -Set a relative service endpoint path, click on `Sign In To Service` and you will be redirected to Keycloak to enter a username and password in a new browser tab and get a response from the Quarkus application. - -Note that in this case Dev UI does not really enrich a dev experience since it is a Quarkus OIDC `web-app` application which controls the authorization code flow and acquires the tokens. - -To make Dev UI more useful for supporting the development of OIDC `web-app` applications you may want to consider setting profile specific values for `quarkus.oidc.application-type`: - -[source,properties] ----- -%prod.quarkus.oidc.application-type=web-app -%test.quarkus.oidc.application-type=web-app -%dev.quarkus.oidc.application-type=service ----- - -It will ensure that all Dev UI options described in <> will be available when your `web-app` application is run in dev mode. The limitation of this approach is that both access and ID tokens returned with the code flow and acquired with Dev UI will be sent to the endpoint as HTTP `Bearer` tokens - which will not work well if your endpoint requires the injection of `IdToken`. -However it will work as expected if your `web-app` application only uses the access token, for example, as a source of roles or to get `UserInfo`, even if it is assumed to be a `service` application in devmode. - -=== Running the tests - -You can run the tests against a Keycloak container started in a test mode in a xref:continuous-testing.adoc[Continuous Testing] mode. - -It is also recommended to run the integration tests against Keycloak using `Dev Services for Keycloak`. -Please see xref:security-openid-connect.adoc#integration-testing-keycloak-devservices[Testing OpenID Connect Service Applications with Dev Services] and xref:security-openid-connect-web-authentication.adoc#integration-testing-keycloak-devservices[Testing OpenID Connect WebApp Applications with Dev Services] for more information. - -[[keycloak-initialization]] -=== Keycloak Initialization - -The `quay.io/keycloak/keycloak-x:16.0.0` image which contains a `Keycloak-X` distribution powered by `Quarkus` is used to start a container by default. -`quarkus.keycloak.devservices.image-name` can be used to change the Keycloak image name. For example, set it to `quay.io/keycloak/keycloak:16.0.0` to use a `Keycloak` distribution powered by `WildFly`. - -`Dev Services for Keycloak` will initialize a launched Keycloak server next. - -By default, the `quarkus`, `quarkus-app` client with a `secret` password, `alice` and `bob` users (with the passwords matching the names), and `user` and `admin` roles are created, with `alice` given both `admin` and `user` roles and `bob` - the `user` role. - -Usernames, secrets and their roles can be customized with `quarkus.keycloak.devservices.users` (the map which contains usernames and secrets) and `quarkus.keycloak.devservices.roles` (the map which contains user names and comma separated role values). - -For example: - -[source,properties] ----- -%dev.quarkus.keycloak.devservices.users.duke=dukePassword -%dev.quarkus.keycloak.devservices.roles.duke=reader -%dev.quarkus.keycloak.devservices.users.john=johnPassword -%dev.quarkus.keycloak.devservices.roles.john=reader,writer ----- - -This configuration creates two users: - * `duke` with a `dukePassword` password and a `reader` role - * `john` with a `johnPassword` password and `reader` and `writer` roles - -`quarkus.oidc.client-id` and `quarkus.oidc.credentials.secret` can be used to customize the client id and secret. - -However it is likely your Keycloak configuration may be more complex and require setting more properties. - -This is why `quarkus.keycloak.devservices.realm-path` is always checked first before trying to initialize Keycloak with the default or configured realm, client, user and roles properties. If the realm file exists on the file system or classpath then only this realm will be used to initialize Keycloak. - -Also the Keycloak page offers an option to `Sign In To Keycloak To Configure Realms` using a `Keycloak Admin` option in the right top corner: - -image::dev-ui-keycloak-admin.png[alt=Dev UI OpenID Connect Keycloak Page - Keycloak Admin,role="center"] - -Sign in to Keycloak as `admin:admin` in order to further customize the realm properties, create or import a new realm, export the realm. - -Note that even if you initialize Keycloak from a realm file, it is still needed to set `quarkus.keycloak.devservices.users` property if a `password` grant is used to acquire the tokens to test the OIDC `service` applications. - -== Disable Dev Services for Keycloak - -`Dev Services For Keycloak` will not be activated if either `quarkus.oidc.auth-server-url` is already initialized or the default OIDC tenant is disabled with `quarkus.oidc.tenant.enabled=false`, irrespectively of whether you work with Keycloak or not. - -If you prefer not to have a `Dev Services for Keycloak` container started or do not work with Keycloak then you can also disable this feature with `quarkus.keycloak.devservices.enabled=false` - it will only be necessary if you expect to start `quarkus:dev` without `quarkus.oidc.auth-server-url`. - -The main Dev UI page will include an empty `OpenID Connect Card` when `Dev Services for Keycloak` is disabled and the `quarkus.oidc.auth-server-url` property -has not been initialized: - -image::dev-ui-oidc-card.png[alt=Dev UI OpenID Connect Card,role="center"] - -If `quarkus.oidc.auth-server-url` is already set then a generic OpenID Connect Dev Console which can be used with all OpenID Connect providers may be activated, please see <> for more information. - -[[dev-ui-all-oidc-providers]] -== Dev UI for all OpenID Connect Providers - -If `quarkus.oidc.auth-server-url` points to an already started OpenID Connect provider (which can be Keycloak or other provider), `quarkus.oidc.auth-server-url` is set to `service` (which is a default value) and at least `quarkus.oidc.client-id` is set then `Dev UI for all OpenID Connect Providers` will be activated. - -Setting `quarkus.oidc.credentials.secret` will mostly likely be required for Keycloak and other providers for the authorization code flow initiated from Dev UI to complete, unless the client identified with `quarkus.oidc.client-id` is configured as a public client in your OpenID Connect provider's administration console. - -Run: - -include::includes/devtools/dev.adoc[] - -And you will see the following message: - -[source,shell] ----- -... -2021-09-07 15:53:42,697 INFO [io.qua.oid.dep.dev.OidcDevConsoleProcessor] (build-41) OIDC Dev Console: discovering the provider metadata at http://localhost:8180/auth/realms/quarkus/.well-known/openid-configuration -... ----- - -If the provider metadata discovery has been successful then, after you open the main link:http://localhost:8080/q/dev[Dev UI page], you will see the `OpenID Connect Card` page linking to `Dev Console`: - -image::dev-ui-oidc-devconsole-card.png[alt=Generic Dev UI OpenID Connect Card,role="center"] - -Follow the link and you'll be able log in to your provider, get the tokens and test the application. The experience will be the same as described in the <> section, where `Dev Services for Keycloak` container has been started, especially if you work with Keycloak (please also pay attention to a `redirect_uri` note in that section). - -If you work with other providers then a Dev UI experience described in the <> section might differ slightly. For example, an access token may not be in a JWT format so it won't be possible to show its internal content, though all providers should return an ID Token as JWT. - -[NOTE] -==== -The current access token is used by default to test the service with `Swagger UI` or `GrapghQL UI`. If the provider (other than Keycloak) returns a binary access token then it will be used with `Swagger UI` or `GrapghQL UI` only if this provider has a token introspection endpoint otherwise an `IdToken` which is always in a JWT format will be passed to `Swagger UI` or `GrapghQL UI`. In such cases you can verify with the manual Dev UI test that `401` will always be returned for the current binary access token. Also note that using `IdToken` as a fallback with either of these UIs is only possible with the authorization code flow. -==== - -Some providers such as `Auth0` do not support a standard RP initiated logout so the provider specific logout properties will have to be confogured for a logout option be visible, please see xref:security-openid-connect-web-authentication.adoc#user-initiated-logout[OpenID Connect User-Initiated Logout] for more information. - -Similarly, if you'd like to use a `password` or `client_credentials` grant for Dev UI to acquire the tokens then you may have to configure some extra provider specific properties, for example: - -[source,properties] ----- -quarkus.oidc.devui.grant.type=password -quarkus.oidc.devui.grant-options.password.audience=http://localhost:8080 ----- - -== Dev Services and UI Support for other OpenID Connect Providers - -Your custom extension would need to extend `quarkus-oidc` and add the dependencies required to support your provider to the extension's `deployment` module only. - -The build step dealing with the `Dev Services` should additionally register two runtime properties into the "io.quarkus.quarkus-oidc" namespace: `oidcProviderName` (for example, `Google`) and `oidcProviderUrlBase` (for example: `mycompany.devservices-google`) for the `OpenID Connect Card` to link to the Dev UI page representing your provider, for example: - -[source,java] ----- -package io.quarkus.oidc.okta.runtime; - -import java.util.function.Supplier; - -import io.quarkus.runtime.annotations.Recorder; - -// This simple recorder is the only code which will be located in the extension's `runtime` module -@Recorder -public class OktaDevServicesRecorder { - - public Supplier getProviderName() { - return new Supplier() { - - @Override - public String get() { - return "OKTA"; - } - }; - } - - public Supplier getProviderUrlBase() { - return new Supplier() { - - @Override - public String get() { - return "io.quarkus" + "." + "quarkus-oidc-okta"; - } - }; - } -} - - -package io.quarkus.oidc.okta.deployment.devservices; - -import static io.quarkus.deployment.annotations.ExecutionTime.RUNTIME_INIT; - -import java.util.Optional; - -import io.quarkus.deployment.IsDevelopment; -import io.quarkus.deployment.annotations.BuildProducer; -import io.quarkus.deployment.annotations.BuildStep; -import io.quarkus.deployment.annotations.Consume; -import io.quarkus.deployment.annotations.Record; -import io.quarkus.deployment.builditem.RuntimeConfigSetupCompleteBuildItem; -import io.quarkus.devconsole.spi.DevConsoleRouteBuildItem; -import io.quarkus.devconsole.spi.DevConsoleRuntimeTemplateInfoBuildItem; - -public class OktaDevConsoleProcessor { - - @BuildStep(onlyIf = IsDevelopment.class) - @Record(value = RUNTIME_INIT) - public void setOidcProviderProperties(BuildProducer provider, - OktaDevServicesRecorder recorder, - Optional configProps) { - if (configProps.isPresent()) { - provider.produce(new DevConsoleRuntimeTemplateInfoBuildItem("io.quarkus", "quarkus-oidc", "oidcProviderName", - recorder.getProviderName())); - provider.produce(new DevConsoleRuntimeTemplateInfoBuildItem("io.quarkus", "quarkus-oidc", "oidcProviderUrlBase", - recorder.getProviderUrlBase())); - } - } -} - ----- - -Additionally, the extension should produce a `io.quarkus.oidc.deployment.devservices.OidcProviderBuildItem` to disable the default `Dev Services for Keycloak`, instead of the users having to type `quarkus.keycloak.devservices.enabled=false`. - -Please follow the xref:dev-ui.adoc[Dev UI] tutorial as well as check the `extensions/oidc/deployment` sources for more ideas. - -== Non Application Root Path Considerations - -This document refers to the `http://localhost:8080/q/dev` Dev UI URL in several places where `q` is a default non application root path. If you customize `quarkus.http.root-path` and/or `quarkus.http.non-application-root-path` properties then replace `q` accordingly, please see https://quarkus.io/blog/path-resolution-in-quarkus/[Path Resolution in Quarkus] for more information. - -== References - -* xref:dev-ui.adoc[Dev UI] -* https://www.keycloak.org/documentation.html[Keycloak Documentation] -* https://openid.net/connect/[OpenID Connect] -* xref:security-openid-connect.adoc[Quarkus - Using OpenID Connect to Protect Service Applications using Bearer Token Authorization] -* xref:security-openid-connect-web-authentication.adoc[Quarkus - Using OpenID Connect to Protect Web Applications using Authorization Code Flow] -* xref:security.adoc[Quarkus Security] diff --git a/_versions/2.7/guides/security-openid-connect-multitenancy.adoc b/_versions/2.7/guides/security-openid-connect-multitenancy.adoc deleted file mode 100644 index f7606b83d9b..00000000000 --- a/_versions/2.7/guides/security-openid-connect-multitenancy.adoc +++ /dev/null @@ -1,469 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using OpenID Connect (OIDC) Multi-Tenancy - -include::./attributes.adoc[] -:toc: - -This guide demonstrates how your OpenID Connect (OIDC) application can support multi-tenancy so that you can serve multiple tenants from a single application. Tenants can be distinct realms or security domains within the same OpenID Provider or even distinct OpenID Providers. - -When serving multiple customers from the same application (e.g.: SaaS), each customer is a tenant. By enabling multi-tenancy support to your applications you are allowed to also support distinct authentication policies for each tenant even though if that means authenticating against different OpenID Providers, such as Keycloak and Google. - -Please read the xref:security-openid-connect.adoc[Using OpenID Connect to Protect Service Applications] guide if you need to authorize a tenant using Bearer Token Authorization. - -Please read the xref:security-openid-connect-web-authentication.adoc[Using OpenID Connect to Protect Web Applications] guide if you need to authenticate and authorize a tenant using OpenID Connect Authorization Code Flow. - -== Prerequisites - -:prerequisites-docker: -include::includes/devtools/prerequisites.adoc[] -* https://stedolan.github.io/jq/[jq tool] - -== Architecture - -In this example, we build a very simple application which offers a single land page: - -* `/{tenant}` - -The land page is served by a JAX-RS Resource and shows information obtained from the OpenID Provider about the authenticated user and the current tenant. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `security-openid-connect-multi-tenancy-quickstart` {quickstarts-tree-url}/security-openid-connect-multi-tenancy-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: security-openid-connect-multi-tenancy-quickstart -:create-app-extensions: oidc,resteasy-jackson -include::includes/devtools/create-app.adoc[] - -If you already have your Quarkus project configured, you can add the `oidc` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: oidc -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-oidc - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-oidc") ----- - -== Writing the application - -Let's start by implementing the `/{tenant}` endpoint. As you can see from the source code below it is just a regular JAX-RS resource: - -[source,java] ----- -package org.acme.quickstart.oidc; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.eclipse.microprofile.jwt.JsonWebToken; - -import io.quarkus.oidc.IdToken; - -@Path("/{tenant}") -public class HomeResource { - - /** - * Injection point for the ID Token issued by the OpenID Connect Provider - */ - @Inject - @IdToken - JsonWebToken idToken; - - /** - * Returns the tokens available to the application. This endpoint exists only for demonstration purposes, you should not - * expose these tokens in a real application. - * - * @return the landing page HTML - */ - @GET - public String getHome() { - StringBuilder response = new StringBuilder().append("").append(""); - - response.append("

    Welcome, ").append(this.idToken.getClaim("email").toString()).append("

    \n"); - response.append("

    You are accessing the application within tenant ").append(idToken.getIssuer()).append(" boundaries

    "); - - return response.append("").append("").toString(); - } -} - ----- - -In order to resolve the tenant from incoming requests and map it to a specific `quarkus-oidc` tenant configuration in application.properties, you need to create an implementation for the `io.quarkus.oidc.TenantResolver` interface. - -[source,java] ----- -package org.acme.quickstart.oidc; - -import javax.enterprise.context.ApplicationScoped; - -import io.quarkus.oidc.TenantResolver; -import io.vertx.ext.web.RoutingContext; - -@ApplicationScoped -public class CustomTenantResolver implements TenantResolver { - - @Override - public String resolve(RoutingContext context) { - String path = context.request().path(); - String[] parts = path.split("/"); - - if (parts.length == 0) { - // resolve to default tenant configuration - return null; - } - - return parts[1]; - } -} ----- - -From the implementation above, tenants are resolved from the request path so that in case no tenant could be inferred, `null` is returned to indicate that the default tenant configuration should be used. - -[NOTE] -=== -When a current tenant represents an OIDC `web-app` application, the current `io.vertx.ext.web.RoutingContext` will contain a `tenant-id` attribute by the time the custom tenant resolver has been called for all the requests completing the code authentication flow and the already authenticated requests, when either a tenant specific state or session cookie already exists. -Therefore, when working with mulltiple OpenID Connect Providers, you only need a path specific check to resolve a tenant id if the `RoutingContext` does not have the `tenant-id` attribute set, for example: - -[source,java] ----- -package org.acme.quickstart.oidc; - -import javax.enterprise.context.ApplicationScoped; - -import io.quarkus.oidc.TenantResolver; -import io.vertx.ext.web.RoutingContext; - -@ApplicationScoped -public class CustomTenantResolver implements TenantResolver { - - @Override - public String resolve(RoutingContext context) { - String tenantId = context.get("tenant-id"); - if (tenantId != null) { - return tenantId; - } else { - // Initial login request - String path = context.request().path(); - String[] parts = path.split("/"); - - if (parts.length == 0) { - // resolve to default tenant configuration - return null; - } - return parts[1]; - } - } -} ----- - -=== - -[NOTE] -=== -If you also use xref:hibernate-orm.adoc#multitenancy[Hibernate ORM multitenancy] and both OIDC and Hibernate ORM tenant IDs are the same and must be extracted from the Vert.x `RoutingContext` then you can pass the tenant id from the OIDC Tenant Resolver to the Hibernate ORM Tenant Resolver as a `RoutingContext` attribute, for example: - -[source,java] ----- -public class CustomTenantResolver implements TenantResolver { - - @Override - public String resolve(RoutingContext context) { - String tenantId = extractTenantId(context); - context.put("tenantId", tenantId); - return tenantId; - } -} ----- -=== - -== Configuring the application - -[source,properties] ----- -# Default Tenant Configuration -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus -quarkus.oidc.client-id=multi-tenant-client -quarkus.oidc.application-type=web-app - -# Tenant A Configuration -quarkus.oidc.tenant-a.auth-server-url=http://localhost:8180/auth/realms/tenant-a -quarkus.oidc.tenant-a.client-id=multi-tenant-client -quarkus.oidc.tenant-a.application-type=web-app - -# HTTP Security Configuration -quarkus.http.auth.permission.authenticated.paths=/* -quarkus.http.auth.permission.authenticated.policy=authenticated ----- - -The first configuration is the default tenant configuration that should be used when the tenant can not be inferred from the request. This configuration is using a Keycloak instance to authenticate users. - -The second configuration is the configuration that will be used when an incoming request is mapped to the tenant `tenant-a`. - -Note that both configurations map to the same Keycloak server instance while using distinct `realms`. - -You can define multiple tenants in your configuration file, just make sure they have a unique alias so that you can map them properly when resolving a tenant from your `TenantResolver` implementation. - -=== Google OpenID Provider Configuration - -In order to set-up the `tenant-a` configuration to use Google OpenID Provider, you need to create a project as described https://developers.google.com/identity/protocols/OpenIDConnect[here]. - -Once you create the project and have your project's `client_id` and `client_secret`, you can try to configure a tenant as follows: - -[source, properties] ----- -# Tenant configuration using Google OpenID Provider -quarkus.oidc.tenant-b.auth-server-url=https://accounts.google.com -quarkus.oidc.tenant-b.application-type=web-app -quarkus.oidc.tenant-b.client-id={GOOGLE_CLIENT_ID} -quarkus.oidc.tenant-b.credentials.secret={GOOGLE_CLIENT_SECRET} -quarkus.oidc.tenant-b.token.issuer=https://accounts.google.com -quarkus.oidc.tenant-b.authentication.scopes=email,profile,openid ----- - -== Starting and Configuring the Keycloak Server - -To start a Keycloak Server you can use Docker and just run the following command: - -[source,bash,subs=attributes+] ----- -docker run --name keycloak -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -p 8180:8080 quay.io/keycloak/keycloak:{keycloak version} ----- - -You should be able to access your Keycloak Server at http://localhost:8180/auth[localhost:8180/auth]. - -Log in as the `admin` user to access the Keycloak Administration Console. Username should be `admin` and password `admin`. - -Now, follow the steps below to import the realms for the two tenants: - -* Import the {quickstarts-tree-url}/security-openid-connect-multi-tenancy-quickstart/config/default-tenant-realm.json[default-tenant-realm.json] to create the default realm -* Import the {quickstarts-tree-url}/security-openid-connect-multi-tenancy-quickstart/config/tenant-a-realm.json[tenant-a-realm.json] to create the realm for the tenant `tenant-a`. - -For more details, see the Keycloak documentation about how to https://www.keycloak.org/docs/latest/server_admin/index.html#_create-realm[create a new realm]. - -== Running and Using the Application - -=== Running in Developer Mode - -To run the microservice in dev mode, use: - -include::includes/devtools/dev.adoc[] - -=== Running in JVM Mode - -When you're done playing with dev mode, you can run it as a standard Java application. - -First compile it: - -include::includes/devtools/build.adoc[] - -Then run it: - -[source,bash] ----- -java -jar target/quarkus-app/quarkus-run.jar ----- - -=== Running in Native Mode - -This same demo can be compiled into native code: no modifications required. - -This implies that you no longer need to install a JVM on your -production environment, as the runtime technology is included in -the produced binary, and optimized to run with minimal resource overhead. - -Compilation will take a bit longer, so this step is disabled by default; -let's build again by enabling the native build: - -include::includes/devtools/build-native.adoc[] - -After getting a cup of coffee, you'll be able to run this binary directly: - -[source,bash] ----- -./target/security-openid-connect-multi-tenancy-quickstart-runner ----- - -== Testing the Application - -To test the application, you should open your browser and access the following URL: - -* http://localhost:8080/default[http://localhost:8080/default] - -If everything is working as expected, you should be redirected to the Keycloak server to authenticate. Note that the requested path -defines a `default` tenant which we don't have mapped in the configuration file. In this case, the default configuration will be used. - -In order to authenticate to the application you should type the following credentials when at the Keycloak login page: - -* Username: *alice* -* Password: *alice* - -After clicking the `Login` button you should be redirected back to the application. - -If you try now to access the application at the following URL: - -* http://localhost:8080/tenant-a[http://localhost:8080/tenant-a] - -You should be redirected again to the login page at Keycloak. However, now you are going to authenticate using a different `realm`. - -In both cases, if the user is successfully authenticated, the landing page will show the user's name and e-mail. Even though -user `alice` exists in both tenants, for the application they are distinct users belonging to different realms/tenants. - -== Programmatically Resolving Tenants Configuration - -If you need a more dynamic configuration for the different tenants you want to support and don't want to end up with multiple -entries in your configuration file, you can use the `io.quarkus.oidc.TenantConfigResolver`. - -This interface allows you to dynamically create tenant configurations at runtime: - -[source,java] ----- -package io.quarkus.it.keycloak; - -import javax.enterprise.context.ApplicationScoped; -import java.util.function.Supplier; - -import io.smallrye.mutiny.Uni; -import io.quarkus.oidc.OidcTenantConfig; -import io.quarkus.oidc.TenantConfigResolver; -import io.vertx.ext.web.RoutingContext; - -@ApplicationScoped -public class CustomTenantConfigResolver implements TenantConfigResolver { - - @Override - public Uni resolve(RoutingContext context, TenantConfigResolver.TenantConfigRequestContext requestContext) { - String path = context.request().path(); - String[] parts = path.split("/"); - - if (parts.length == 0) { - // resolve to default tenant configuration - return null; - } - - if ("tenant-c".equals(parts[1])) { - // Do 'return requestContext.runBlocking(createTenantConfig());' - // if a blocking call is required to create a tenant config - return Uni.createFromItem(createTenantConfig()); - } - - // resolve to default tenant configuration - return null; - } - - private Supplier createTenantConfig() { - final OidcTenantConfig config = new OidcTenantConfig(); - - config.setTenantId("tenant-c"); - config.setAuthServerUrl("http://localhost:8180/auth/realms/tenant-c"); - config.setClientId("multi-tenant-client"); - OidcTenantConfig.Credentials credentials = new OidcTenantConfig.Credentials(); - - credentials.setSecret("my-secret"); - - config.setCredentials(credentials); - - // any other setting support by the quarkus-oidc extension - - return () -> config; - } -} ----- - -The `OidcTenantConfig` returned from this method is the same used to parse the `oidc` namespace configuration from the `application.properties`. You can populate it using any of the settings supported by the `quarkus-oidc` extension. - -== Tenant Resolution for OIDC 'web-app' applications - -Several options are available for selecting the tenant configuration which should be used to secure the current HTTP request for both `service` and `web-app` OIDC applications, such as: - -- Check URL paths, for example, a `tenant-service` configuration has to be used for the "/service" paths, while a `tenant-manage` configuration - for the "/management" paths -- Check HTTP headers, for example, with a URL path always being '/service', a header such as "Realm: service" or "Realm: management" can help selecting between the `tenant-service` and `tenant-manage` configurations -- Check URL query parameters - it can work similarly to the way the headers are used to select the tenant configuration - -All these options can be easily implemented with the custom `TenantResolver` and `TenantConfigResolver` implementations for the OIDC `service` applications. - -However, due to an HTTP redirect required to complete the code authentication flow for the OIDC `web-app` applications, a custom HTTP cookie may be needed to select the same tenant configuration before and after this redirect request because: - -- URL path may not be the same after the redirect request if a single redirect URL has been registered in the OIDC Provider - the original request path can be restored but after the the tenant configuration is resolved -- HTTP headers used during the original request are not available after the redirect -- Custom URL query parameters are restored after the redirect but after the tenant configuration is resolved - -One option to ensure the information for resolving the tenant configurations for `web-app` applications is available before and after the redirect is to use a cookie, for example: - -[source,java] ----- -package org.acme.quickstart.oidc; - -import java.util.List; - -import javax.enterprise.context.ApplicationScoped; - -import io.quarkus.oidc.TenantResolver; -import io.vertx.core.http.Cookie; -import io.vertx.ext.web.RoutingContext; - -@ApplicationScoped -public class CustomTenantResolver implements TenantResolver { - - @Override - public String resolve(RoutingContext context) { - List tenantIdQuery = context.queryParam("tenantId"); - if (!tenantIdQuery.isEmpty()) { - String tenantId = tenantIdQuery.get(0); - context.addCookie(Cookie.cookie("tenant", tenantId)); - return tenantId; - } else if (context.cookieMap().containsKey("tenant")) { - return context.getCookie("tenant").getValue(); - } - - return null; - } -} ----- - -[[disable-tenant]] -== Disabling Tenant Configurations - -Custom `TenantResolver` and `TenantConfigResolver` implementations may return `null` if no tenant can be inferred from the current request and a fallback to the default tenant configuration is required. - -If it is expected that the custom resolvers will always infer a tenant then the default tenant configuration is not needed. One can disable it with the `quarkus.oidc.tenant-enabled=false` setting. - -Note that tenant specific configurations can also be disabled, for example: `quarkus.oidc.tenant-a.tenant-enabled=false`. - -== Configuration Reference - -include::{generated-dir}/config/quarkus-oidc.adoc[opts=optional] - -== References - -* https://www.keycloak.org/documentation.html[Keycloak Documentation] -* https://openid.net/connect/[OpenID Connect] -* https://tools.ietf.org/html/rfc7519[JSON Web Token] -* https://developers.google.com/identity/protocols/OpenIDConnect[Google OpenID Connect] -* xref:security.adoc[Quarkus Security] diff --git a/_versions/2.7/guides/security-openid-connect-web-authentication.adoc b/_versions/2.7/guides/security-openid-connect-web-authentication.adoc deleted file mode 100644 index 0492d0ece22..00000000000 --- a/_versions/2.7/guides/security-openid-connect-web-authentication.adoc +++ /dev/null @@ -1,1312 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using OpenID Connect (OIDC) to Protect Web Applications using Authorization Code Flow - -include::./attributes.adoc[] -:toc: - -This guide demonstrates how to use Quarkus OpenID Connect (OIDC) Extension to protect your Quarkus HTTP endpoints using OpenID Connect Authorization Code Flow supported by OpenID Connect compliant Authorization Servers such as https://www.keycloak.org[Keycloak]. - -The extension allows to easily authenticate the users of your web application by redirecting them to the OpenID Connect Provider (e.g.: Keycloak) to login and, once the authentication is complete, return them back with the code confirming the successful authentication. The extension will request ID and access tokens from the OpenID Connect Provider using an authorization code grant and verify these tokens in order to authorize an access to the application. - -Please read the xref:security-openid-connect.adoc[Using OpenID Connect to Protect Service Applications] guide if you need to protect your applications using Bearer Token Authorization. - -Please read the xref:security-openid-connect-multitenancy.adoc[Using OpenID Connect Multi-Tenancy] guide how to support multiple tenants. - -== Quickstart - -=== Prerequisites - -:prerequisites-docker: -include::includes/devtools/prerequisites.adoc[] - -=== Architecture - -In this example, we build a very simple web application with a single page: - -* `/index.html` - -This page is protected and can only be accessed by authenticated users. - -=== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `security-openid-connect-web-authentication-quickstart` {quickstarts-tree-url}/security-openid-connect-web-authentication-quickstart[directory]. - -=== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: security-openid-connect-web-authentication-quickstart -:create-app-extensions: resteasy,oidc -include::includes/devtools/create-app.adoc[] - -If you already have your Quarkus project configured, you can add the `oidc` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: oidc -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-oidc - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-oidc") ----- - -=== Writing the application - -Let's write a simple JAX-RS resource which has all the tokens returned in the authorization code grant response injected: - -[source,java] ----- -package org.acme.security.openid.connect.web.authentication; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.eclipse.microprofile.jwt.JsonWebToken; - -import io.quarkus.oidc.IdToken; -import io.quarkus.oidc.RefreshToken; - -@Path("/tokens") -public class TokenResource { - - /** - * Injection point for the ID Token issued by the OpenID Connect Provider - */ - @Inject - @IdToken - JsonWebToken idToken; - - /** - * Injection point for the Access Token issued by the OpenID Connect Provider - */ - @Inject - JsonWebToken accessToken; - - /** - * Injection point for the Refresh Token issued by the OpenID Connect Provider - */ - @Inject - RefreshToken refreshToken; - - /** - * Returns the tokens available to the application. This endpoint exists only for demonstration purposes, you should not - * expose these tokens in a real application. - * - * @return a map containing the tokens available to the application - */ - @GET - public String getTokens() { - StringBuilder response = new StringBuilder().append("") - .append("") - .append("
      "); - - Object userName = this.idToken.getClaim("preferred_username"); - - if (userName != null) { - response.append("
    • username: ").append(userName.toString()).append("
    • "); - } - - Object scopes = this.accessToken.getClaim("scope"); - - if (scopes != null) { - response.append("
    • scopes: ").append(scopes.toString()).append("
    • "); - } - - response.append("
    • refresh_token: ").append(refreshToken.getToken() != null).append("
    • "); - - return response.append("
    ").append("").append("").toString(); - } -} ----- - -This endpoint has ID, access and refresh tokens injected. It returns a `preferred_username` claim from the ID token, a `scope` claim from the access token and also a refresh token availability status. - -Note that you do not have to inject the tokens - it is only required if the endpoint needs to use the ID token to interact with the currently authenticated user or use the access token to access a downstream service on behalf of this user. - -Please see <> section below for more information. - -=== Configuring the application - -The OpenID Connect extension allows you to define the configuration using the `application.properties` file which should be located at the `src/main/resources` directory. - -[source,properties] ----- -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus -quarkus.oidc.client-id=frontend -quarkus.oidc.credentials.secret=secret -quarkus.oidc.application-type=web-app -quarkus.http.auth.permission.authenticated.paths=/* -quarkus.http.auth.permission.authenticated.policy=authenticated ----- - -This is the simplest configuration you can have when enabling authentication to your application. - -The `quarkus.oidc.client-id` property references the `client_id` issued by the OpenID Connect Provider and the `quarkus.oidc.credentials.secret` property sets the client secret. - -The `quarkus.oidc.application-type` property is set to `web-app` in order to tell Quarkus that you want to enable the OpenID Connect Authorization Code Flow, so that your users are redirected to the OpenID Connect Provider to authenticate. - -For last, the `quarkus.http.auth.permission.authenticated` permission is set to tell Quarkus about the paths you want to protect. In this case, -all paths are being protected by a policy that ensures that only `authenticated` users are allowed to access. For more details check xref:security-authorization.adoc[Security Authorization Guide]. - -=== Starting and Configuring the Keycloak Server - -To start a Keycloak Server you can use Docker and just run the following command: - -[source,bash,subs=attributes+] ----- -docker run --name keycloak -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -p 8180:8080 quay.io/keycloak/keycloak:{keycloak version} ----- - -You should be able to access your Keycloak Server at http://localhost:8180/auth[localhost:8180/auth]. - -Log in as the `admin` user to access the Keycloak Administration Console. Username should be `admin` and password `admin`. - -Import the {quickstarts-tree-url}/security-openid-connect-web-authentication-quickstart/config/quarkus-realm.json[realm configuration file] to create a new realm. For more details, see the Keycloak documentation about how to https://www.keycloak.org/docs/latest/server_admin/index.html#_create-realm[create a new realm]. - -=== Running the Application in Dev and JVM modes - -To run the application in a dev mode, use: - -include::includes/devtools/dev.adoc[] - -When you're done playing with dev mode you can run it as a standard Java application. - -First compile it: - -include::includes/devtools/build.adoc[] - -Then run it: - -[source,bash] ----- -java -jar target/quarkus-app/quarkus-run.jar ----- - -=== Running the Application in Native Mode - -This same demo can be compiled into native code: no modifications required. - -This implies that you no longer need to install a JVM on your -production environment, as the runtime technology is included in -the produced binary, and optimized to run with minimal resource overhead. - -Compilation will take a bit longer, so this step is disabled by default; -let's build again by enabling the native build: - -include::includes/devtools/build-native.adoc[] - -After getting a cup of coffee, you'll be able to run this binary directly: - -[source,bash] ----- -./target/security-openid-connect-web-authentication-quickstart-runner ----- - -=== Testing the Application - -To test the application, you should open your browser and access the following URL: - -* http://localhost:8080[http://localhost:8080] - -If everything is working as expected, you should be redirected to the Keycloak server to authenticate. - -In order to authenticate to the application you should type the following credentials when at the Keycloak login page: - -* Username: *alice* -* Password: *alice* - -After clicking the `Login` button you should be redirected back to the application. - -Please also see the <> section below about writing the integration tests which depend on `Dev Services for Keycloak`. - -== Reference Guide - -[[access_id_and_access_tokens]] -=== Accessing ID and Access Tokens - -OIDC Code Authentication Mechanism acquires three tokens during the authorization code flow: https://openid.net/specs/openid-connect-core-1_0.html#IDToken[IDToken], Access Token and Refresh Token. - -ID Token is always a JWT token and is used to represent a user authentication with the JWT claims. -One can access ID Token claims by injecting `JsonWebToken` with an `IdToken` qualifier: - -[source, java] ----- -import javax.inject.Inject; -import org.eclipse.microprofile.jwt.JsonWebToken; -import io.quarkus.oidc.IdToken; -import io.quarkus.security.Authenticated; - -@Path("/web-app") -@Authenticated -public class ProtectedResource { - - @Inject - @IdToken - JsonWebToken idToken; - - @GET - public String getUserName() { - return idToken.getName(); - } -} ----- - -Access Token is usually used by the OIDC `web-app` application to access other endpoints on behalf of the currently logged in user. The raw access token can be accessed as follows: - -[source, java] ----- -import javax.inject.Inject; -import org.eclipse.microprofile.jwt.JsonWebToken; -import io.quarkus.oidc.AccessTokenCredential; -import io.quarkus.security.Authenticated; - -@Path("/web-app") -@Authenticated -public class ProtectedResource { - - @Inject - JsonWebToken accessToken; - - // or - // @Inject - // AccessTokenCredential accessTokenCredential; - - @GET - public String getReservationOnBehalfOfUser() { - String rawAccessToken = accessToken.getRawToken(); - //or - //String rawAccessToken = accessTokenCredential.getToken(); - - // Use the raw access token to access a remote endpoint - return getReservationfromRemoteEndpoint(rawAccesstoken); - } -} ----- - -Note that `AccessTokenCredential` will have to be used if the Access Token issued to the Quarkus `web-app` application is opaque (binary) and can not be parsed to `JsonWebToken`. - -Injection of the `JsonWebToken` and `AccessTokenCredential` is supported in both `@RequestScoped` and `@ApplicationScoped` contexts. - -RefreshToken is only used to refresh the current ID and access tokens as part of its <> process. - -[[user-info]] -=== User Info - -If IdToken does not provide enough information about the currently authenticated user then you can set a `quarkus.oidc.authentication.user-info-required=true` property for a https://openid.net/specs/openid-connect-core-1_0.html#UserInfo[UserInfo] JSON object from the OIDC userinfo endpoint to be requested. - -A request will be sent to the OpenID Provider UserInfo endpoint using the access token returned with the authorization code grant response and an `io.quarkus.oidc.UserInfo` (a simple `javax.json.JsonObject` wrapper) object will be created. `io.quarkus.oidc.UserInfo` can be either injected or accessed as a SecurityIdentity `userinfo` attribute. - -[[config-metadata]] -=== Configuration Metadata - -The current tenant's discovered link:https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata[OpenID Connect Configuration Metadata] is represented by `io.quarkus.oidc.OidcConfigurationMetadata` and can be either injected or accessed as a `SecurityIdentity` `configuration-metadata` attribute. - -The default tenant's `OidcConfigurationMetadata` is injected if the endpoint is public. - -[[token-claims-roles]] -=== Token Claims And SecurityIdentity Roles - -The way the roles are mapped to the SecurityIdentity roles from the verified tokens is identical to how it is done for the xref:security-openid-connect.adoc#token-claims-and-securityidentity-roles[bearer tokens] with the only difference being is that https://openid.net/specs/openid-connect-core-1_0.html#IDToken[ID Token] is used as a source of the roles by default. - -Note if you use Keycloak then you should set a Microprofile JWT client scope for ID token to contain a `groups` claim, please see the https://www.keycloak.org/docs/latest/server_admin/#protocol[Keycloak Server Administration Guide] for more information. - -If only the access token contains the roles and this access token is not meant to be propagated to the downstream endpoints then set `quarkus.oidc.roles.source=accesstoken`. - -If UserInfo is the source of the roles then set `quarkus.oidc.authentication.user-info-required=true` and `quarkus.oidc.roles.source=userinfo`, and if needed, `quarkus.oidc.roles.role-claim-path`. - -Additionally a custom `SecurityIdentityAugmentor` can also be used to add the roles as documented xref:security.adoc#security-identity-customization[here]. - -[[token-verification-introspection]] -=== Token Verification And Introspection - -Please see xref:security-openid-connect.adoc#token-verification-introspection[Token Verification And Introspection] for details about how the tokens are verified and introspected. - -Note that in case of `web-app` applications only `IdToken` is verified by default since the access token is not used by default to access the current Quarkus `web-app` endpoint and instead meant to be propagated to the services expecting this access token, for example, to the OpenID Connect Provider's UserInfo endpoint, etc. However if you expect the access token to contain the roles required to access the current Quarkus endpoint (`quarkus.oidc.roles.source=accesstoken`) then it will also be verified. - -[[token-introspection-userinfo-cache]] -=== Token Introspection and UserInfo Cache - -Code flow access tokens are not introspected unless they are expected to be the source of roles but will be used to get `UserInfo`. So there will be one or two remote calls with the code flow access token, if the token introspection and/or `UserInfo` are required. - -Please see xref:security-openid-connect.adoc#token-introspection-userinfo-cache[Token Introspection and UserInfo cache] for more information about using a default token cache or registering a custom cache implementation. - -[[jwt-claim-verification]] -=== JSON Web Token Claim Verification - -Please see xref:security-openid-connect.adoc#jwt-claim-verification[JSON Web Token Claim verification] section about the claim verification, including the `iss` (issuer) claim. -It applies to ID tokens but also to access tokens in a JWT format if the `web-app` application has requested the access token verification. - -=== Redirection - -When the 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 once the authentication has been completed. - -Quarkus will set this parameter to the current request URL by default. For example, if the user is trying to access a Quarkus service endpoint at `http://localhost:8080/service/1` then the `redirect_uri` parameter will be set to `http://localhost:8080/service/1`. Similarly, if the request URL is `http://localhost:8080/service/2` then the `redirect_uri` parameter will be set to `http://localhost:8080/service/2`, etc. - -OpenID Connect Providers may be configured to require the `redirect_uri` parameter to have the same value (eg. `http://localhost:8080/service/callback`) for all the redirect URLs. -In such cases a `quarkus.oidc.authentication.redirect-path` property has to be set, for example, `quarkus.oidc.authentication.redirect-path=/service/callback`, and Quarkus will set the `redirect_uri` parameter to an absolute URL such as `http://localhost:8080/service/callback` which will be the same regardless of the current request URL. - -If `quarkus.oidc.authentication.redirect-path` is set but the original request URL has to be restored after the user has been redirected back to a callback URL such as `http://localhost:8080/service/callback` then a `quarkus.oidc.authentication.restore-path-after-redirect` property has to be set to `true` which will restore the request URL such as `http://localhost:8080/service/1`, etc. - -[[oidc-cookies]] -=== Dealing with Cookies - -The OIDC adapter uses cookies to keep the session, code flow and post logout state. - -`quarkus.oidc.authentication.cookie-path` property is used to ensure the cookies are visible especially when you access the protected resources with overlapping or different roots, for example: - -* `/index.html` and `/web-app/service` -* `/web-app/service1` and `/web-app/service2` -* `/web-app1/service` and `/web-app2/service` - -`quarkus.oidc.authentication.cookie-path` is set to `/` by default but can be narrowed to the more specific root path such as `/web-app`. - -You can also set a `quarkus.oidc.authentication.cookie-path-header` property if the cookie path needs to be set dynamically. -For example, setting `quarkus.oidc.authentication.cookie-path-header=X-Forwarded-Prefix` means that the value of HTTP `X-Forwarded-Prefix` header will be used to set a cookie path. - -If `quarkus.oidc.authentication.cookie-path-header` is set but no configured HTTP header is available in the current request then the `quarkus.oidc.authentication.cookie-path` will be checked. - -If your application is deployed across multiple domains, make sure to set a `quarkus.oidc.authentication.cookie-domain` property for the session cookie be visible to all protected Quarkus services, for example, if you have 2 services deployed at: - -* https://whatever.wherever.company.net/ -* https://another.address.company.net/ - -then the `quarkus.oidc.authentication.cookie-domain` property must be set to `company.net`. - -=== Logout - -By default the logout is based on the expiration time of the ID Token issued by the OpenID Connect Provider. When the ID Token expires, the current user session at the Quarkus endpoint is invalidated and the user is redirected to the OpenID Connect Provider again to authenticate. If the session at the OpenID Connect Provider is still active, users are automatically re-authenticated without having to provide their credentials again. - -The current user session may be automatically extended by enabling a `quarkus.oidc.token.refresh-expired` property. If it is set to `true` then when the current ID Token expires a Refresh Token Grant will be used to refresh ID Token as well as Access and Refresh Tokens. - -[[user-initiated-logout]] -==== User-Initiated Logout - -Users can request a logout by sending a request to the Quarkus endpoint logout path set with a `quarkus.oidc.logout.path` property. -For example, if the endpoint address is `https://application.com/webapp` and the `quarkus.oidc.logout.path` is set to "/logout" then the logout request has to be sent to `https://application.com/webapp/logout`. - -This logout request will start an https://openid.net/specs/openid-connect-session-1_0.html#RPLogout[RP-Initiated Logout] and the user will be redirected to the OpenID Connect Provider to logout where a user may be asked to confirm the logout is indeed intended. - -The user will be returned to the endpoint post logout page once the logout has been completed if the `quarkus.oidc.logout.post-logout-path` property is set. For example, if the endpoint address is `https://application.com/webapp` and the `quarkus.oidc.logout.post-logout-path` is set to "/signin" then the user will be returned to `https://application.com/webapp/signin` (note this URI must be registered as a valid `post_logout_redirect_uri` in the OpenID Connect Provider). - -If the `quarkus.oidc.logout.post-logout-path` is set then a `q_post_logout` cookie will be created and a matching `state` query parameter will be added to the logout redirect URI and the OpenID Connect Provider will return this `state` once the logout has been completed. It is recommended for the Quarkus `web-app` applications to check that a `state` query parameter matches the value of the `q_post_logout` cookie which can be done for example in a JAX-RS filter. - -Note that a cookie name will vary when using xref:security-openid-connect-multitenancy.adoc[OpenID Connect Multi-Tenancy]. For example, it will be named `q_post_logout_tenant_1` for a tenant with a `tenant_1` id, etc. - -Here is an example of how to configure an RP initiated logout flow: - -[source,properties] ----- -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus -quarkus.oidc.client-id=frontend -quarkus.oidc.credentials.secret=secret -quarkus.oidc.application-type=web-app - -quarkus.oidc.logout.path=/logout -quarkus.oidc.logout.post-logout-path=/welcome.html - -# Only the authenticated users can initiate a logout: -quarkus.http.auth.permission.authenticated.paths=/logout -quarkus.http.auth.permission.authenticated.policy=authenticated - -# Logged out users should be returned to the /welcome.html site which will offer an option to re-login: -quarkus.http.auth.permission.authenticated.paths=/welcome.html -quarkus.http.auth.permission.authenticated.policy=permit ----- - -You may also need to set `quarkus.oidc.authentication.cookie-path` to a path value common to all of the application resources which is `/` in this example. -See <> for more information. - -Note that some OpenID Connect providers do not support https://openid.net/specs/openid-connect-session-1_0.html#RPLogout[RP-Initiated Logout] specification (possibly because it is still technically a draft) and do not return an OpenID Connect well-known `end_session_endpoint` metadata property. However it should not be a problem since these providers' specific logout mechanisms may only differ in how the logout URL query parameters are named. - -According to the https://openid.net/specs/openid-connect-session-1_0.html#RPLogout[RP-Initiated Logout] specification, the `quarkus.oidc.logout.post-logout-path` property is represented as a `post_logout_redirect_uri` query parameter which will not be recognized by the providers which do not support this specification. - -You can use `quarkus.oidc.logout.post-logout-url-param` to work around this issue. You can also request more logout query parameters added with `quarkus.oidc.logout.extra-params`. For example, here is how you can support a logout with `Auth0`: - -[source,properties] ----- -quarkus.oidc.auth-server-url=https://dev-xxx.us.auth0.com -quarkus.oidc.client-id=redacted -quarkus.oidc.credentials.secret=redacted -quarkus.oidc.application-type=web-app - -quarkus.oidc.tenant-logout.logout.path=/logout -quarkus.oidc.tenant-logout.logout.post-logout-path=/welcome.html - -# Auth0 does not return the `end_session_endpoint` metadata property, configire it instead -quarkus.oidc.end-session-path=v2/logout -# Auth0 will not recognize the 'post_logout_redirect_uri' query parameter so make sure it is named as 'returnTo' -quarkus.oidc.logout.post-logout-uri-param=returnTo - -# Set more properties if needed. -# For example, if 'client_id' is provided then a valid logout URI should be set as Auth0 Application property, without it - as Auth0 Tenant property. -quarkus.oidc.logout.extra-params.client_id=${quarkus.oidc.client-id} ----- - -[[local-logout]] -==== Local Logout - -If you work with a social provider such as Google and are concerned that the users can be logged out from all their Google applications with the <> which redirects the users to the provider's logout endpoint then you can support a local logout with the help of the <> which only clears the local session cookie, for example: - -[source,java] ----- -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import io.quarkus.oidc.OidcSession; - -@Path("/service") -public class ServiceResource { - - @Inject - OidcSession oidcSession; - - @GET - @Path("logout") - public String logout() { - oidcSession.logout().await().indefinitely(); - return "You are logged out". - } ----- - - -[[session-management]] -=== Session Management - -If you have a xref:security-openid-connect.adoc#single-page-applications[Single Page Application for Service Applications] where your OpenID Connect Provider script such as `keycloak.js` is managing an authoriization code flow then that script will also control the SPA authentication session lifespan. - -If you work with a Quarkus OIDC `web-app` application then it is Quarkus OIDC Code Authentication mechanism which is managing the user session lifespan. - -The session age is calculated by adding the lifespan value of the current IDToken and the values of the `quarkus.oidc.authentication.session-age-extension` and `quarkus.oidc.token.lifespan-grace` properties. Of the last two properties only `quarkus.oidc.authentication.session-age-extension` should be used to significantly extend the session lifespan if required since `quarkus.oidc.token.lifespan-grace` is only meant for taking some small clock skews into consideration. - -When the currently authenticated user returns to the protected Quarkus endpoint and the ID token associated with the session cookie has expired then, by default, the user will be auto-redirected to the OIDC Authorization endpoint to re-authenticate. Most likely the OIDC provider will challenge the user again though not necessarily if the session between the user and this OIDC provider is still active which may happen if it is configured to last longer than the ID token. - -If the `quarkus.oidc.token.refresh-expired` then the expired ID token (as well as the access token) will be refreshed using the refresh token returned with the authorization code grant response. This refresh token may also be recycled (refreshed) itself as part of this process. As a result the new session cookie will be created and the session will be extended. - -Note, `quarkus.oidc.authentication.session-age-extension` can be important when dealing with expired ID tokens, when the user is not very active. In such cases, if the ID token expires, then the session cookie may not be returned back to the Quarkus endpoint during the next user request and Quarkus will assume it is the first authentication request. Therefore using `quarkus.oidc.authentication.session-age-extension` is important if you need to have even the expired ID tokens refreshed. - -You can also complement refreshing the expired ID tokens by proactively refreshing the valid ID tokens which are about to be expired within the `quarkus.oidc.token.refresh-token-time-skew` value. If, during the current user request, it is calculated that the current ID token will expire within this `quarkus.oidc.token.refresh-token-time-skew` then it will be refreshed and the new session cookie will be created. This property should be set to a value which is less than the ID token lifespan; the closer it is to this lifespan value the more often the ID token will be refreshed. - -You can have this process further optimized by having a simple JavaScript function periodically emulating the user activity by pinging your Quarkus endpoint thus minimizing the window during which the user may have to be re-authenticated. - -Note this user session can not be extended forever - the returning user with the expired ID token will have to re-authenticate at the OIDC provider endpoint once the refresh token has expired. - -[[oidc-session]] -==== OidcSession - -`io.quarkus.oidc.OidcSession` is a wrapper around the current `IdToken`. It can help to perform a <>, retrieve the current session's tenant identifier and check when the session will expire. More useful methods will be added to it over time. - -==== TokenStateManager - -OIDC `CodeAuthenticationMechanism` is using the default `io.quarkus.oidc.TokenStateManager` interface implementation to keep the ID, access and refresh tokens returned in the authorization code or refresh grant responses in a session cookie. It makes Quarkus OIDC endpoints completely stateless. - -Note that some endpoints do not require the access token. An access token is only required if the endpoint needs to retrieve `UserInfo` or access the downstream service with this access token or use the roles associated with the access token (the roles in the ID token are checked by default). In such cases you can set either `quarkus.oidc.token-state-manager.strategy=id-refresh-token` (keep ID and refresh tokens only) or `quarkus.oidc.token-state-manager.strategy=id-token` (keep ID token only). - -If the ID, access and refresh tokens are JWT tokens then combining all of them (if the strategy is the default `keep-all-tokens`) or only ID and refresh tokens (if the strategy is `id-refresh-token`) may produce a session cookie value larger than 4KB and the browsers may not be able to keep this cookie. -In such cases, you can use `quarkus.oidc.token-state-manager.split-tokens=true` to have a unique session token per each of these tokens. - -Register your own `io.quarkus.oidc.TokenStateManager' implementation as an `@ApplicationScoped` CDI bean if you need to customize the way the tokens are associated with the session cookie. For example, you may want to keep the tokens in a database and have only a database pointer stored in a session cookie. Note though that it may present some challenges in making the tokens available across multiple microservices nodes. - -Here is a simple example: - -[source, java] ----- -package io.quarkus.oidc.test; - -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; - -import io.quarkus.arc.AlternativePriority; -import io.quarkus.oidc.AuthorizationCodeTokens; -import io.quarkus.oidc.OidcTenantConfig; -import io.quarkus.oidc.TokenStateManager; -import io.quarkus.oidc.runtime.DefaultTokenStateManager; -import io.smallrye.mutiny.Uni; -import io.vertx.ext.web.RoutingContext; - -@ApplicationScoped -@AlternativePriority(1) -public class CustomTokenStateManager implements TokenStateManager { - - @Inject - DefaultTokenStateManager tokenStateManager; - - @Override - public Uni createTokenState(RoutingContext routingContext, OidcTenantConfig oidcConfig, - AuthorizationCodeTokens sessionContent, TokenStateManager.CreateTokenStateRequestContext requestContext) { - return tokenStateManager.createTokenState(routingContext, oidcConfig, sessionContent, requestContext) - .map(t -> (t + "|custom")); - } - - @Override - public Uni getTokens(RoutingContext routingContext, OidcTenantConfig oidcConfig, - String tokenState, TokenStateManager.GetTokensRequestContext requestContext) { - if (!tokenState.endsWith("|custom")) { - throw new IllegalStateException(); - } - String defaultState = tokenState.substring(0, tokenState.length() - 7); - return tokenStateManager.getTokens(routingContext, oidcConfig, defaultState, requestContext); - } - - @Override - public Uni deleteTokens(RoutingContext routingContext, OidcTenantConfig oidcConfig, String tokenState, - TokenStateManager.DeleteTokensRequestContext requestContext) { - if (!tokenState.endsWith("|custom")) { - throw new IllegalStateException(); - } - String defaultState = tokenState.substring(0, tokenState.length() - 7); - return tokenStateManager.deleteTokens(routingContext, oidcConfig, defaultState, requestContext); - } -} ----- - -=== Listening to important authentication events - -One can register `@ApplicationScoped` bean which will observe important OIDC authentication events. The listener will be updated when a user has logged in for the first time or re-authenticated, as well as when the session has been refreshed. More events may be reported in the future. For example: - -[source, java] ----- -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.event.Observes; - -import io.quarkus.oidc.IdTokenCredential; -import io.quarkus.oidc.SecurityEvent; -import io.quarkus.security.identity.AuthenticationRequestContext; -import io.vertx.ext.web.RoutingContext; - -@ApplicationScoped -public class SecurityEventListener { - - public void event(@Observes SecurityEvent event) { - String tenantId = event.getSecurityIdentity().getAttribute("tenant-id"); - RoutingContext vertxContext = event.getSecurityIdentity().getCredential(IdTokenCredential.class).getRoutingContext(); - vertxContext.put("listener-message", String.format("event:%s,tenantId:%s", event.getEventType().name(), tenantId)); - } -} ----- - -=== Single Page Applications - -Please check if implementing SPAs the way it is suggested in the xref:security-openid-connect.adoc#single-page-applications[Single Page Applications for Service Applications] section can meet your requirements. - -If you prefer to use SPA and JavaScript API such as `Fetch` or `XMLHttpRequest`(XHR) with Quarkus web applications, please be aware that OpenID Connect Providers may not support CORS for Authorization endpoints where the users are authenticated after a redirect from Quarkus. This will lead to authentication failures if the Quarkus application and the OpenID Connect Provider are hosted on the different HTTP domains/ports. - -In such cases, set the `quarkus.oidc.authentication.java-script-auto-redirect` property to `false` which will instruct Quarkus to return a `499` status code and `WWW-Authenticate` header with the `OIDC` value. The browser script also needs to be updated to set `X-Requested-With` header with the `JavaScript` value and reload the last requested page in case of `499`, for example: - -[source,javascript] ----- -Future callQuarkusService() async { - Map headers = Map.fromEntries([MapEntry("X-Requested-With", "JavaScript")]); - - await http - .get("https://localhost:443/serviceCall") - .then((response) { - if (response.statusCode == 499) { - window.location.assign("https://localhost.com:443/serviceCall"); - } - }); - } ----- - -=== Cross Origin Resource Sharing - -If you plan to consume this application from a Single Page Application running on a different domain, you will need to configure CORS (Cross-Origin Resource Sharing). Please read the xref:http-reference.adoc#cors-filter[HTTP CORS documentation] for more details. - -=== Integration with GitHub and other OAuth2 providers - -Some well known providers such as `GitHub` or `LinkedIn` are not `OpenID Connect` but `OAuth2` providers which support the `authorization code flow`, for example, link:https://docs.github.com/en/developers/apps/building-oauth-apps/authorizing-oauth-apps[GitHub OAuth2] and link:https://docs.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow[LinkedIn OAuth2]. - -The main difference between `OpenID Connect` and `OAuth2` providers is that `OpenID Connect` providers, by building on top of `OAuth2`, return an `ID Token` representing a user authentication, in addition to the standard authorization code flow `access` and `refresh` tokens returned by `OAuth2` providers. - -`OAuth2` providers such as `GitHub` do not return `IdToken`, the fact of the user authentication is implicit and is indirectly represented by the `access` token which represents an authenticated user authorizing the current Quarkus `web-app` application to access some data on behalf of the authenticated user. - -For example, when working with `GitHub`, the Quarkus endpoint can acquire an `access` token which will allow it to request a `GitHub` profile of the current user. -In fact this is exactly how a standard `OpenID Connect` `UserInfo` acqusition also works - by authenticating into your `OpenID Connect` provider you also give a permission to Quarkus application to acquire your <> on your behalf - and it also shows what is meant by `OpenID Connect` being built on top of `OAuth2`. - -In order to support the integration with such `OAuth2` servers, `quarkus-oidc` needs to be configured to allow the authorization code flow responses without `IdToken`: `quarkus.oidc.authentication.id-token-required=false`. - -It is required because `quarkus-oidc` expects that not only `access` and `refresh` tokens but also `IdToken` will be returned once the authorization code flow completes. - -Note, even though you will configure the extension to support the authorization code flows without `IdToken`, an internal `IdToken` will be generated to support the way `quarkus-oidc` operates where an `IdToken` is used to support the authentication session and to avoid redirecting the user to the provider such as `GitHub` on every request. In this case the session lifespan is set to 5 minutes which can be extended further as described in the <> section. - -The next step is to ensure that the returned access token can be useful to the current Quarkus endpoint. -If the `OAuth2` provider supports the introspection endpoint then you may be able to use this access token as a source of roles with `quarkus.oidc.roles.source=accesstoken`. If no introspection endpoint is available then at the very least it should be possible to request <> from this provider with `quarkus.oidc.authentication.user-info-required` - this is the case with `GitHib`. - -Configuring the endpoint to request <> is the only way `quarkus-oidc` can be integrated with the providers such as `GitHib`. - -Note that requiring <> involves making a remote call on every request - therefore you may want to consider caching `UserInfo` data, see < for more details. - -Also, OAuth2 servers may not support a well-known configuration endpoint in which case the discovery has to be disabled and the authorization, token, and introspection and/or userinfo endpoint paths have to be configured manually. - -Here is how you can integrate `quarkus-oidc` with `GitHub` after you have link:https://docs.github.com/en/developers/apps/building-oauth-apps/creating-an-oauth-app[created a GitHub OAuth application]. Configure your Quarkus endpoint like this: - -[source,properties] ----- -quarkus.oidc.provider=github -quarkus.oidc.client-id=github_app_clientid -quarkus.oidc.credentials.secret=github_app_clientsecret - -# user:email scope is requested by default, use 'quarkus.oidc.authentication.scopes' to request differrent scopes such as `read:user`. -# See https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps for more information. - -# Consider enabling UserInfo Cache -# quarkus.oidc.token-cache.max-size=1000 -# quarkus.oidc.token-cache.time-to-live=5M ----- - -This is all what is needed for an endpoint like this one to return the currently authenticated user's profile with `GET http://localhost:8080/github/userinfo` and access it as the individual `UserInfo` properties: - -[source,java] ----- -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; - -import io.quarkus.oidc.UserInfo; -import io.quarkus.security.Authenticated; - -@Path("/github") -@Authenticated -public class TokenResource { - - @Inject - UserInfo userInfo; - - @GET - @Path("/userinfo") - @Produces("application/json") - public String getUserInfo() { - return userInfo.getUserInfoString(); - } -} ----- - -If you support more than one social provider with the help of xref:security-openid-connect-multitenancy.adoc[OpenID Connect Multi-Tenancy], for example, `Google` which is an OpenID Connect Provider returning `IdToken` and `GitHub` which is an `OAuth2` provider returning no `IdToken` and only allowing to access `UserInfo` then you can have your endpoint working with only the injected `SecurityIdentity` for both `Google` and `GitHub` flows. A simple augmentation of `SecurityIdentity` will be required where a principal created with the internally generated `IdToken` will be replaced with the `UserInfo` based principal when the GiHub flow is active: - -[source,java] ----- -package io.quarkus.it.keycloak; - -import java.security.Principal; - -import javax.enterprise.context.ApplicationScoped; - -import io.quarkus.oidc.UserInfo; -import io.quarkus.security.identity.AuthenticationRequestContext; -import io.quarkus.security.identity.SecurityIdentity; -import io.quarkus.security.identity.SecurityIdentityAugmentor; -import io.quarkus.security.runtime.QuarkusSecurityIdentity; -import io.smallrye.mutiny.Uni; -import io.vertx.ext.web.RoutingContext; - -@ApplicationScoped -public class CustomSecurityIdentityAugmentor implements SecurityIdentityAugmentor { - - @Override - public Uni augment(SecurityIdentity identity, AuthenticationRequestContext context) { - RoutingContext routingContext = identity.getAttribute(RoutingContext.class.getName()); - if (routingContext != null && routingContext.normalizedPath().endsWith("/github")) { - QuarkusSecurityIdentity.Builder builder = QuarkusSecurityIdentity.builder(identity); - UserInfo userInfo = identity.getAttribute("userinfo"); - builder.setPrincipal(new Principal() { - - @Override - public String getName() { - return userInfo.getString("preferred_username"); - } - - }); - identity = builder.build(); - } - return Uni.createFrom().item(identity); - } - -} ----- - -Now, the following code will work when the user is signing in into your application with both `Google` or `GitHub`: - -[source,java] ----- -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; - -import io.quarkus.security.Authenticated; -import io.quarkus.security.identity.SecurityIdentity; - -@Path("/service") -@Authenticated -public class TokenResource { - - @Inject - SecurityIdentity identity; - - @GET - @Path("/google") - @Produces("application/json") - public String getUserName() { - return identity.getPrincipal().getName(); - } - - @GET - @Path("/github") - @Produces("application/json") - public String getUserName() { - return identity.getPrincipal().getUserName(); - } -} ----- - -Possibly a simpler alternative is to inject both `@IdToken JsonWebToken` and `UserInfo` and use `JsonWebToken` when dealing with the providers returning `IdToken` and `UserInfo` - with the providers which do not return `IdToken`. - -The last important point is to make sure the callback path you enter in the GitHub OAuth application configuration matches the endpoint path where you'd like the user be redirected to after a successful GitHub authentication and application authorization, in this case it has to be set to `http:localhost:8080/github/userinfo`. - -=== Cloud Services - -==== Google Cloud - -You can have Quarkus OIDC `web-app` applications access **Google Cloud services** such as **BigQuery** on behalf of the currently authenticated users who have enabled OpenID Connect (Authorization Code Flow) permissions to such services in their Google Developer Consoles. - -It is super easy to do with https://github.com/quarkiverse[Quarkiverse] https://github.com/quarkiverse/quarkiverse-google-cloud-services[Google Cloud Services], only add -the https://github.com/quarkiverse/quarkiverse-google-cloud-services/releases/latest[latest tag] service dependency, for example: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkiverse.googlecloudservices - quarkus-google-cloud-bigquery - ${quarkiverse.googlecloudservices.version} - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkiverse.googlecloudservices:quarkus-google-cloud-bigquery:${quarkiverse.googlecloudservices.version}") ----- - -and configure Google OIDC properties: - -[source, properties] ----- -quarkus.oidc.provider=google -quarkus.oidc.client-id={GOOGLE_CLIENT_ID} -quarkus.oidc.credentials.secret={GOOGLE_CLIENT_SECRET} -quarkus.oidc.token.issuer=https://accounts.google.com ----- - -=== Provider Endpoint configuration - -OIDC `web-app` application needs to know OpenID Connect provider's authorization, token, `JsonWebKey` (JWK) set and possibly `UserInfo`, introspection and end session (RP-initiated logout) endpoint addresses. - -By default they are discovered by adding a `/.well-known/openid-configuration` path to the configured `quarkus.oidc.auth-server-url`. - -Alternatively, if the discovery endpoint is not available or you would like to save on the discovery endpoint roundtrip, you can disable the discovery and configure them with relative path values, for example: - -[source, properties] ----- -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus -quarkus.oidc.discovery-enabled=false -# Authorization endpoint: http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/auth -quarkus.oidc.authorization-path=/protocol/openid-connect/auth -# Token endpoint: http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/token -quarkus.oidc.token-path=/protocol/openid-connect/token -# JWK set endpoint: http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/certs -quarkus.oidc.jwks-path=/protocol/openid-connect/certs -# UserInfo endpoint: http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/userinfo -quarkus.oidc.user-info-path=/protocol/openid-connect/userinfo -# Token Introspection endpoint: http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/token/introspect -quarkus.oidc.introspection-path=/protocol/openid-connect/token/introspect -# End session endpoint: http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/logout -quarkus.oidc.end-session-path=/protocol/openid-connect/logout ----- - -=== Token Propagation -Please see xref:security-openid-connect-client.adoc#token-propagation[Token Propagation] section about the Authorization Code Flow access token propagation to the downstream services. - -[[oidc-provider-client-authentication]] -=== Oidc Provider Client Authentication - -`quarkus.oidc.runtime.OidcProviderClient` is used when a remote request to an OpenID Connect Provider has to be done. It has to authenticate to the OpenID Connect Provider when the authorization code has to be exchanged for the ID, access and refresh tokens, when the ID and access tokens have to be refreshed or introspected. - -All the https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication[OIDC Client Authentication] options are supported, for example: - -`client_secret_basic`: - -[source,properties] ----- -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc.client-id=quarkus-app -quarkus.oidc.credentials.secret=mysecret ----- - -or - -[source,properties] ----- -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc.client-id=quarkus-app -quarkus.oidc.credentials.client-secret.value=mysecret ----- - -or with the secret retrieved from a xref:credentials-provider.adoc[CredentialsProvider]: - -[source,properties] ----- -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc.client-id=quarkus-app - -# This is a key which will be used to retrieve a secret from the map of credentials returned from CredentialsProvider -quarkus.oidc.credentials.client-secret.provider.key=mysecret-key -# Set it only if more than one CredentialsProvider can be registered -quarkus.oidc.credentials.client-secret.provider.name=oidc-credentials-provider ----- - -`client_secret_post`: - -[source,properties] ----- -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc.client-id=quarkus-app -quarkus.oidc.credentials.client-secret.value=mysecret -quarkus.oidc.credentials.client-secret.method=post ----- - -`client_secret_jwt`, signature algorithm is HS256: - -[source,properties] ----- -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc.client-id=quarkus-app -quarkus.oidc.credentials.jwt.secret=AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow ----- - -or with the secret retrieved from a xref:credentials-provider.adoc[CredentialsProvider]: - -[source,properties] ----- -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc.client-id=quarkus-app - -# This is a key which will be used to retrieve a secret from the map of credentials returned from CredentialsProvider -quarkus.oidc.credentials.jwt.secret-provider.key=mysecret-key -# Set it only if more than one CredentialsProvider can be registered -quarkus.oidc.credentials.jwt.secret-provider.name=oidc-credentials-provider ----- - -`private_key_jwt` with the PEM key file, signature algorithm is RS256: - -[source,properties] ----- -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc.client-id=quarkus-app -quarkus.oidc.credentials.jwt.key-file=privateKey.pem ----- - -`private_key_jwt` with the key store file, signature algorithm is RS256: - -[source,properties] ----- -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc.client-id=quarkus-app -quarkus.oidc.credentials.jwt.key-store-file=keystore.jks -quarkus.oidc.credentials.jwt.key-store-password=mypassword -quarkus.oidc.credentials.jwt.key-password=mykeypassword - -# Private key alias inside the keystore -quarkus.oidc.credentials.jwt.key-id=mykeyAlias ----- - -Using `client_secret_jwt` or `private_key_jwt` authentication methods ensures that no client secret goes over the wire. - -==== Additional JWT Authentication options - -If `client_secret_jwt`, `private_key_jwt` authentication methods are used or an `Apple` `post_jwt` method is used then the JWT signature algorithm, key identifier, audience, subject and issuer can be customized, for example: - -[source,properties] ----- -# private_key_jwt client authentication - -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus/ -quarkus.oidc.client-id=quarkus-app -quarkus.oidc.credentials.jwt.key-file=privateKey.pem - -# This is a token key identifier 'kid' header - set it if your OpenID Connect provider requires it. -# Note if the key is represented in a JSON Web Key (JWK) format with a `kid` property then -# using 'quarkus.oidc.credentials.jwt.token-key-id' is not necessary. -quarkus.oidc.credentials.jwt.token-key-id=mykey - -# Use RS512 signature algorithm instead of the default RS256 -quarkus.oidc.credentials.jwt.signature-algorithm=RS512 - -# The token endpoint URL is the default audience value, use the base address URL instead: -quarkus.oidc.credentials.jwt.audience=${quarkus.oidc-client.auth-server-url} - -# custom subject instead of the client id : -quarkus.oidc.credentials.jwt.subject=custom-subject - -# custom issuer instead of the client id : -quarkus.oidc.credentials.jwt.issuer=custom-issuer ----- - -==== Apple POST JWT - -Apple OpenID Connect Provider uses a `client_secret_post` method where a secret is a JWT produced with a `private_key_jwt` authentication method but with Apple account specific issuer and subject claims. - -`quarkus-oidc` supports a non-standard `client_secret_post_jwt` authentication method which can be configured as follows: - -[source,properties] ----- -# Apple provider configuration sets a 'client_secret_post_jwt' authentication method -quarkus.oidc.provider=apple - -quarkus.oidc.client-id=${apple.client-id} -quarkus.oidc.credentials.jwt.key-file=ecPrivateKey.pem -quarkus.oidc.credentials.jwt.token-key-id=${apple.key-id} -# Apple provider configuration sets ES256 signature algorithm - -quarkus.oidc.credentials.jwt.subject=${apple.subject} -quarkus.oidc.credentials.jwt.issuer=${apple.issuer} ----- - -==== Mutual TLS - -Some OpenID Connect Providers may require that a client is authenticated as part of the `Mutual TLS` (`MTLS`) authentication process. - -`quarkus-oidc` can be configured as follows to support `MTLS`: - -[source,properties] ----- -quarkus.oidc.tls.verification=certificate-validation - -# Keystore configuration -quarkus.oidc.tls.key-store-file=client-keystore.jks -quarkus.oidc.tls.key-store-password=${key-store-password} - -# Add more keystore properties if needed: -#quarkus.oidc.tls.key-store-alias=keyAlias -#quarkus.oidc.tls.key-store-alias-password=keyAliasPassword - -# Truststore configuration -quarkus.oidc.tls.trust-store-file=client-truststore.jks -quarkus.oidc.tls.trust-store-password=${trust-store-password} -# Add more truststore properties if needed: -#quarkus.oidc.tls.trust-store-alias=certAlias ----- - -[[integration-testing]] -=== Testing - -Start by adding the following dependencies to your test project: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - net.sourceforge.htmlunit - htmlunit - - - org.eclipse.jetty - * - - - test - - - io.quarkus - quarkus-junit5 - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("net.sourceforge.htmlunit:htmlunit") -testImplementation("io.quarkus:quarkus-junit5") ----- - -[[integration-testing-wiremock]] -==== Wiremock - -Add the following dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-test-oidc-server - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-test-oidc-server") ----- - -Prepare the REST test endpoints, set `application.properties`, for example: - -[source, properties] ----- -# keycloak.url is set by OidcWiremockTestResource -quarkus.oidc.auth-server-url=${keycloak.url}/realms/quarkus/ -quarkus.oidc.client-id=quarkus-web-app -quarkus.oidc.credentials.secret=secret -quarkus.oidc.application-type=web-app ----- - -and finally write the test code, for example: - -[source, java] ----- -import static org.junit.jupiter.api.Assertions.assertEquals; - -import org.junit.jupiter.api.Test; - -import com.gargoylesoftware.htmlunit.SilentCssErrorHandler; -import com.gargoylesoftware.htmlunit.WebClient; -import com.gargoylesoftware.htmlunit.html.HtmlForm; -import com.gargoylesoftware.htmlunit.html.HtmlPage; - -import io.quarkus.test.common.QuarkusTestResource; -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.oidc.server.OidcWiremockTestResource; - -@QuarkusTest -@QuarkusTestResource(OidcWiremockTestResource.class) -public class CodeFlowAuthorizationTest { - - @Test - public void testCodeFlow() throws Exception { - try (final WebClient webClient = createWebClient()) { - // the test REST endpoint listens on '/code-flow' - HtmlPage page = webClient.getPage("http://localhost:8081/code-flow"); - - HtmlForm form = page.getFormByName("form"); - // user 'alice' has the 'user' role - form.getInputByName("username").type("alice"); - form.getInputByName("password").type("alice"); - - page = form.getInputByValue("login").click(); - - assertEquals("alice", page.getBody().asText()); - } - } - - private WebClient createWebClient() { - WebClient webClient = new WebClient(); - webClient.setCssErrorHandler(new SilentCssErrorHandler()); - return webClient; - } -} ----- - -`OidcWiremockTestResource` recognizes `alice` and `admin` users. The user `alice` has the `user` role only by default - it can be customized with a `quarkus.test.oidc.token.user-roles` system property. The user `admin` has the `user` and `admin` roles by default - it can be customized with a `quarkus.test.oidc.token.admin-roles` system property. - -Additionally, `OidcWiremockTestResource` set token issuer and audience to `https://service.example.com` which can be customized with `quarkus.test.oidc.token.issuer` and `quarkus.test.oidc.token.audience` system properties. - -`OidcWiremockTestResource` can be used to emulate all OpenID Connect providers. - -[[integration-testing-keycloak-devservices]] -==== Dev Services for Keycloak - -Using xref:security-openid-connect-dev-services.adoc[Dev Services for Keycloak] is recommended for the integration testing against Keycloak. -`Dev Services for Keycloak` will launch and initialize a test container: it will create a `quarkus` realm, a `quarkus-app` client (`secret` secret) and add `alice` (`admin` and `user` roles) and `bob` (`user` role) users, where all of these properties can be customized. - -First prepare `application.properties`. You can start with a completely empty `application.properties` as `Dev Services for Keycloak` will register `quarkus.oidc.auth-server-url` pointing to the running test container as well as `quarkus.oidc.client-id=quarkus-app` and `quarkus.oidc.credentials.secret=secret`. - -But if you already have all the required `quarkus-oidc` properties configured then you only need to associate `quarkus.oidc.auth-server-url` with the `prod` profile for `Dev Services for Keycloak`to start a container, for example: - -[source,properties] ----- -%prod.quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus ----- - -If a custom realm file has to be imported into Keycloak before running the tests then you can configure `Dev Services for Keycloak` as follows: - -[source,properties] ----- -%prod.quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus -quarkus.keycloak.devservices.realm-path=quarkus-realm.json ----- - -Finally write a test code the same way as it is described in the <> section above. -The only difference is that `@QuarkusTestResource` is no longer needed: - -[source, java] ----- -@QuarkusTest -public class CodeFlowAuthorizationTest { -} ----- - -[[integration-testing-keycloak]] -==== KeycloakTestResourceLifecycleManager - -If you need to do the integration testing against Keycloak then you are encouraged to do it with <>. -Use `KeycloakTestResourceLifecycleManager` for your tests only if there is a good reason not to use `Dev Services for Keycloak`. - -Start with adding the following dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-test-keycloak-server - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-test-keycloak-server") ----- - -which provides `io.quarkus.test.keycloak.server.KeycloakTestResourceLifecycleManager` - an implementation of `io.quarkus.test.common.QuarkusTestResourceLifecycleManager` which starts a Keycloak container. - -And configure the Maven Surefire plugin as follows: - -[source,xml] ----- - - maven-surefire-plugin - - - - ${keycloak.docker.image} - - - - ----- - -(and similarly the Maven Failsafe plugin when testing in native image). - -And now set the configuration and write the test code the same way as it is described in the <> section above. -The only difference is the name of `QuarkusTestResource`: - -[source, java] ----- -import io.quarkus.test.keycloak.server.KeycloakTestResourceLifecycleManager; - -@QuarkusTest -@QuarkusTestResource(KeycloakTestResourceLifecycleManager.class) -public class CodeFlowAuthorizationTest { -} ----- - -`KeycloakTestResourceLifecycleManager` registers `alice` and `admin` users. The user `alice` has the `user` role only by default - it can be customized with a `keycloak.token.user-roles` system property. The user `admin` has the `user` and `admin` roles by default - it can be customized with a `keycloak.token.admin-roles` system property. - -By default, `KeycloakTestResourceLifecycleManager` uses HTTPS to initialize a Keycloak instance which can be disabled with `keycloak.use.https=false`. -Default realm name is `quarkus` and client id - `quarkus-web-app` - set `keycloak.realm` and `keycloak.web-app.client` system properties to customize the values if needed. - -[[integration-testing-security-annotation]] -==== TestSecurity annotation - -Please see xref:security-openid-connect.adoc#integration-testing-security-annotation[Use TestingSecurity with injected JsonWebToken] section for more information about using `@TestSecurity` and `@OidcSecurity` annotations for testing the `web-app` application endpoint code which depends on the injected ID and access `JsonWebToken` as well as `UserInfo` and `OidcConfigurationMetadata`. - -=== How to check the errors in the logs - -Please enable `io.quarkus.oidc.runtime.OidcProvider` `TRACE` level logging to see more details about the token verification errors: - -[source, properties] ----- -quarkus.log.category."io.quarkus.oidc.runtime.OidcProvider".level=TRACE -quarkus.log.category."io.quarkus.oidc.runtime.OidcProvider".min-level=TRACE ----- - -Please enable `io.quarkus.oidc.runtime.OidcRecorder` `TRACE` level logging to see more details about the OidcProvider client initialization errors: - -[source, properties] ----- -quarkus.log.category."io.quarkus.oidc.runtime.OidcRecorder".level=TRACE -quarkus.log.category."io.quarkus.oidc.runtime.OidcRecorder".min-level=TRACE ----- - -=== Running behind a reverse proxy - -OIDC authentication mechanism can be affected if your Quarkus application is running behind a reverse proxy/gateway/firewall when HTTP `Host` header may be reset to the internal IP address, HTTPS connection may be terminated, etc. For example, an authorization code flow `redirect_uri` parameter may be set to the internal host instead of the expected external one. - -In such cases configuring Quarkus to recognize the original headers forwarded by the proxy will be required, see xref:http-reference.adoc#reverse-proxy[Running behind a reverse proxy] Vert.x documentation section for more information. - -For example, if your Quarkus endpoint runs in a cluster behind Kubernetes Ingress then a redirect from the OpenID Connect Provider back to this endpoint may not work since the calculated `redirect_uri` parameter may point to the internal endpoint address. This problem can be resolved with the following configuration: - -[source,properties] ----- -quarkus.http.proxy.proxy-address-forwarding=true -quarkus.http.proxy.allow-forwarded=false -quarkus.http.proxy.enable-forwarded-host=true -quarkus.http.proxy.forwarded-host-header=X-ORIGINAL-HOST ----- - -where `X-ORIGINAL-HOST` is set by Kubernetes Ingress to represent the external endpoint address. - -`quarkus.oidc.authentication.force-redirect-https-scheme` property may also be used when the Quarkus application is running behind a SSL terminating reverse proxy. - -=== External and Internal Access to OpenID Connect Provider - -Note that the OpenID Connect Provider externally accessible authorization, logout and other endpoints may have different HTTP(S) URLs compared to the URLs auto-discovered or configured relative to `quarkus.oidc.auth-server-url` internal URL. -In such cases an issuer verification failure may be reported by the endpoint and redirects to the externally accessible Connect Provider endpoints may fail. - -In such cases, if you work with Keycloak then please start it with a `KEYCLOAK_FRONTEND_URL` system property set to the externally accessible base URL. -If you work with other Openid Connect providers then please check your provider's documentation. - -=== Customize authentication requests - -By default, only the `response_type` (set to `code`), `scope` (set to 'openid'), `client_id`, `redirect_uri` and `state` properties are passed as HTTP query parameters to the OpenID Connect provider's authorization endpoint when the user is redirected to it to authenticate. - -You can add more properties to it with `quarkus.oidc.authentication.extra-params`. For example, some OpenID Connect providers may choose to return the authorization code as part of the redirect URI's fragment which would break the authentication process - it can be fixed as follows: - -[source,properties] ----- -quarkus.oidc.authentication.extra-params.response_mode=query ----- - -== Configuration Reference - -include::{generated-dir}/config/quarkus-oidc.adoc[opts=optional] - -== References - -* https://www.keycloak.org/documentation.html[Keycloak Documentation] -* https://openid.net/connect/[OpenID Connect] -* https://tools.ietf.org/html/rfc7519[JSON Web Token] -* xref:security-openid-connect-client.adoc[Quarkus - Using OpenID Connect and OAuth2 Client and Filters to manage access tokens] -* xref:security-openid-connect-dev-services.adoc[Dev Services for Keycloak] -* xref:security.adoc#oidc-jwt-oauth2-comparison[Summary of Quarkus OIDC, JWT and OAuth2 features] -* xref:security.adoc[Quarkus Security] diff --git a/_versions/2.7/guides/security-openid-connect.adoc b/_versions/2.7/guides/security-openid-connect.adoc deleted file mode 100644 index 66fb43d070d..00000000000 --- a/_versions/2.7/guides/security-openid-connect.adoc +++ /dev/null @@ -1,1151 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using OpenID Connect (OIDC) to Protect Service Applications using Bearer Token Authorization - -include::./attributes.adoc[] -:toc: - -This guide demonstrates how to use Quarkus OpenID Connect (OIDC) Extension to protect your JAX-RS applications using Bearer Token Authorization where Bearer Tokens are issued by OpenID Connect and OAuth 2.0 compliant Authorization Servers such as https://www.keycloak.org[Keycloak]. - -Bearer Token Authorization is the process of authorizing HTTP requests based on the existence and validity of a Bearer Token which provides valuable information to determine the subject of the call as well as whether or not an HTTP resource can be accessed. - -Please read the xref:security-openid-connect-web-authentication.adoc[Using OpenID Connect to Protect Web Applications] guide if you need to authenticate and authorize the users using OpenID Connect Authorization Code Flow. - -If you use Keycloak and Bearer tokens then also see the xref:security-keycloak-authorization.adoc[Using Keycloak to Centralize Authorization] guide. - -Please read the xref:security-openid-connect-multitenancy.adoc[Using OpenID Connect Multi-Tenancy] guide how to support multiple tenants. - -== Quickstart - -=== Prerequisites - -:prerequisites-docker: -include::includes/devtools/prerequisites.adoc[] -* https://stedolan.github.io/jq/[jq tool] - -=== Architecture - -In this example, we build a very simple microservice which offers two endpoints: - -* `/api/users/me` -* `/api/admin` - -These endpoints are protected and can only be accessed if a client is sending a bearer token along with the request, which must be valid (e.g.: signature, expiration and audience) and trusted by the microservice. - -The bearer token is issued by a Keycloak Server and represents the subject to which the token was issued for. For being an OAuth 2.0 Authorization Server, the token also references the client acting on behalf of the user. - -The `/api/users/me` endpoint can be accessed by any user with a valid token. As a response, it returns a JSON document with details about the user where these details are obtained from the information carried on the token. - -The `/api/admin` endpoint is protected with RBAC (Role-Based Access Control) where only users granted with the `admin` role can access. At this endpoint, we use the `@RolesAllowed` annotation to declaratively enforce the access constraint. - -=== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `security-openid-connect-quickstart` {quickstarts-tree-url}/security-openid-connect-quickstart[directory]. - -=== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: security-openid-connect-quickstart -:create-app-extensions: resteasy,oidc,resteasy-jackson -include::includes/devtools/create-app.adoc[] - -This command generates a Maven project, importing the `keycloak` extension -which is an implementation of a Keycloak Adapter for Quarkus applications and provides all the necessary capabilities to integrate with a Keycloak Server and perform bearer token authorization. - -If you already have your Quarkus project configured, you can add the `oidc` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: oidc -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-oidc - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-oidc") ----- - -=== Writing the application - -Let's start by implementing the `/api/users/me` endpoint. As you can see from the source code below it is just a regular JAX-RS resource: - -[source,java] ----- -package org.acme.security.openid.connect; - -import javax.annotation.security.RolesAllowed; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.jboss.resteasy.annotations.cache.NoCache; -import io.quarkus.security.identity.SecurityIdentity; - -@Path("/api/users") -public class UsersResource { - - @Inject - SecurityIdentity securityIdentity; - - @GET - @Path("/me") - @RolesAllowed("user") - @NoCache - public User me() { - return new User(securityIdentity); - } - - public static class User { - - private final String userName; - - User(SecurityIdentity securityIdentity) { - this.userName = securityIdentity.getPrincipal().getName(); - } - - public String getUserName() { - return userName; - } - } -} ----- - -The source code for the `/api/admin` endpoint is also very simple. The main difference here is that we are using a `@RolesAllowed` annotation to make sure that only users granted with the `admin` role can access the endpoint: - -[source,java] ----- -package org.acme.security.openid.connect; - -import javax.annotation.security.RolesAllowed; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/api/admin") -public class AdminResource { - - @GET - @RolesAllowed("admin") - @Produces(MediaType.TEXT_PLAIN) - public String admin() { - return "granted"; - } -} ----- - -Injection of the `SecurityIdentity` is supported in both `@RequestScoped` and `@ApplicationScoped` contexts. - -=== Configuring the application - -The OpenID Connect extension allows you to define the adapter configuration using the `application.properties` file which should be located at the `src/main/resources` directory. - -include::{generated-dir}/config/quarkus-oidc.adoc[opts=optional, leveloffset=+1] - -Example configuration: - -[source,properties] ----- -%prod.quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus -quarkus.oidc.client-id=backend-service -quarkus.oidc.client-secret=secret - -# Tell Dev Services for Keycloak to import the realm file -# This property is not effective when running the application in JVM or Native modes - -quarkus.keycloak.devservices.realm-path=quarkus-realm.json ----- - -NOTE: Adding a `%prod.` profile prefix to `quarkus.oidc.auth-server-url` ensures that `Dev Services for Keycloak` will launch a container for you when the application is run in a dev mode. See <> section below for more information. - -=== Starting and Configuring the Keycloak Server - -NOTE: Do not start the Keycloak server when you run the application in a dev mode - `Dev Services for Keycloak` will launch a container. See <> section below for more information. - -To start a Keycloak Server you can use Docker and just run the following command: - -[source,bash,subs=attributes+] ----- -docker run --name keycloak -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -p 8180:8080 quay.io/keycloak/keycloak:{keycloak version} ----- - -You should be able to access your Keycloak Server at http://localhost:8180/auth[localhost:8180/auth]. - -Log in as the `admin` user to access the Keycloak Administration Console. Username should be `admin` and password `admin`. - -Import the {quickstarts-tree-url}/security-openid-connect-quickstart/config/quarkus-realm.json[realm configuration file] to create a new realm. For more details, see the Keycloak documentation about how to https://www.keycloak.org/docs/latest/server_admin/index.html#_create-realm[create a new realm]. - -NOTE: If you want to use the Keycloak Admin Client to configure your server from your application you need to include the -`quarkus-keycloak-admin-client` extension. - -[[keycloak-dev-mode]] -=== Running the Application in Dev mode - -To run the application in a dev mode, use: - -include::includes/devtools/dev.adoc[] - -xref:security-openid-connect-dev-services.adoc[Dev Services for Keycloak] will launch a Keycloak container and import a `quarkus-realm.json`. - -Open a xref:dev-ui.adoc[Dev UI] available at http://localhost:8080/q/dev[/q/dev] and click on a `Provider: Keycloak` link in an `OpenID Connect` `Dev UI` card. - -You will be asked to login into a `Single Page Application` provided by `OpenID Connect Dev UI`: - - * Login as `alice` (password: `alice`) who has a `user` role - ** accessing `/api/admin` will return `403` - ** accessing `/api/users/me` will return `200` - * Logout and login as `admin` (password: `admin`) who has both `admin` and `user` roles - ** accessing `/api/admin` will return `200` - ** accessing `/api/users/me` will return `200` - -=== Running the Application in JVM mode - -When you're done playing with the `dev` mode" you can run it as a standard Java application. - -First compile it: - -include::includes/devtools/build.adoc[] - -Then run it: - -[source,bash] ----- -java -jar target/quarkus-app/quarkus-run.jar ----- - -=== Running the Application in Native Mode - -This same demo can be compiled into native code: no modifications required. - -This implies that you no longer need to install a JVM on your -production environment, as the runtime technology is included in -the produced binary, and optimized to run with minimal resource overhead. - -Compilation will take a bit longer, so this step is disabled by default; -let's build again by enabling the `native` profile: - -include::includes/devtools/build-native.adoc[] - -After getting a cup of coffee, you'll be able to run this binary directly: - -[source,bash] ----- -./target/security-openid-connect-quickstart-runner ----- - -=== Testing the Application - -See <> section above about testing your application in a dev mode. - -You can test the application launched in JVM or Native modes with `curl`. - -The application is using bearer token authorization and the first thing to do is obtain an access token from the Keycloak Server in -order to access the application resources: - -[source,bash] ----- -export access_token=$(\ - curl --insecure -X POST https://localhost:8543/auth/realms/quarkus/protocol/openid-connect/token \ - --user backend-service:secret \ - -H 'content-type: application/x-www-form-urlencoded' \ - -d 'username=alice&password=alice&grant_type=password' | jq --raw-output '.access_token' \ - ) ----- - -The example above obtains an access token for user `alice`. - -Any user is allowed to access the -`http://localhost:8080/api/users/me` endpoint -which basically returns a JSON payload with details about the user. - -[source,bash] ----- -curl -v -X GET \ - http://localhost:8080/api/users/me \ - -H "Authorization: Bearer "$access_token ----- - -The `http://localhost:8080/api/admin` endpoint can only be accessed by users with the `admin` role. If you try to access this endpoint with the - previously issued access token, you should get a `403` response - from the server. - -[source,bash] ----- -curl -v -X GET \ - http://localhost:8080/api/admin \ - -H "Authorization: Bearer "$access_token ----- - -In order to access the admin endpoint you should obtain a token for the `admin` user: - -[source,bash] ----- -export access_token=$(\ - curl --insecure -X POST https://localhost:8543/auth/realms/quarkus/protocol/openid-connect/token \ - --user backend-service:secret \ - -H 'content-type: application/x-www-form-urlencoded' \ - -d 'username=admin&password=admin&grant_type=password' | jq --raw-output '.access_token' \ - ) ----- - -Please also see the <> section below about writing the integration tests which depend on `Dev Services for Keycloak`. - -== Reference Guide - -=== Accessing JWT claims - -If you need to access JWT token claims then you can inject `JsonWebToken`: - -[source,java] ----- -package org.acme.security.openid.connect; - -import org.eclipse.microprofile.jwt.JsonWebToken; -import javax.inject.Inject; -import javax.annotation.security.RolesAllowed; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/api/admin") -public class AdminResource { - - @Inject - JsonWebToken jwt; - - @GET - @RolesAllowed("admin") - @Produces(MediaType.TEXT_PLAIN) - public String admin() { - return "Access for subject " + jwt.getSubject() + " is granted"; - } -} ----- - -Injection of `JsonWebToken` is supported in `@ApplicationScoped`, `@Singleton` and `@RequestScoped` scopes however the use of `@RequestScoped` is required if the individual claims are injected as simple types, please see xref:security-jwt.adoc#supported-injection-scopes[Support Injection Scopes for JsonWebToken and Claims] for more details. - -[[user-info]] -=== User Info - -Set `quarkus.oidc.authentication.user-info-required=true` if a UserInfo JSON object from the OIDC userinfo endpoint has to be requested. -A request will be sent to the OpenID Provider UserInfo endpoint and an `io.quarkus.oidc.UserInfo` (a simple `javax.json.JsonObject` wrapper) object will be created. -`io.quarkus.oidc.UserInfo` can be either injected or accessed as a SecurityIdentity `userinfo` attribute. - -[[config-metadata]] -=== Configuration Metadata - -The current tenant's discovered link:https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata[OpenID Connect Configuration Metadata] is represented by `io.quarkus.oidc.OidcConfigurationMetadata` and can be either injected or accessed as a `SecurityIdentity` `configuration-metadata` attribute. - -The default tenant's `OidcConfigurationMetadata` is injected if the endpoint is public. - -=== Token Claims And SecurityIdentity Roles - -SecurityIdentity roles can be mapped from the verified JWT access tokens as follows: - -* If `quarkus.oidc.roles.role-claim-path` property is set and matching array or string claims are found then the roles are extracted from these claims. - For example, `customroles`, `customroles/array`, `scope`, `"http://namespace-qualified-custom-claim"/roles`, `"http://namespace-qualified-roles"`, etc. -* If `groups` claim is available then its value is used -* If `realm_access/roles` or `resource_access/client_id/roles` (where `client_id` is the value of the `quarkus.oidc.client-id` property) claim is available then its value is used. - This check supports the tokens issued by Keycloak - -If the token is opaque (binary) then a `scope` property from the remote token introspection response will be used. - -If UserInfo is the source of the roles then set `quarkus.oidc.authentication.user-info-required=true` and `quarkus.oidc.roles.source=userinfo`, and if needed, `quarkus.oidc.roles.role-claim-path`. - -Additionally a custom `SecurityIdentityAugmentor` can also be used to add the roles as documented xref:security.adoc#security-identity-customization[here]. - -[[token-verification-introspection]] -=== Token Verification And Introspection - -If the token is a JWT token then, by default, it will be verified with a `JsonWebKey` (JWK) key from a local `JsonWebKeySet` retrieved from the OpenID Connect Provider's JWK endpoint. The token's key identifier `kid` header value will be used to find the matching JWK key. -If no matching `JWK` is available locally then `JsonWebKeySet` will be refreshed by fetching the current key set from the JWK endpoint. The `JsonWebKeySet` refresh can be repeated again only after the `quarkus.oidc.token.forced-jwk-refresh-interval` (default is 10 minutes) expires. -If no matching `JWK` is available after the refresh then the JWT token will be sent to the OpenID Connect Provider's token introspection endpoint. - -If the token is opaque (it can be a binary token or an encrypted JWT token) then it will always be sent to the OpenID Connect Provider's token introspection endpoint. - -If you work with JWT tokens only and expect that a matching `JsonWebKey` will always be available (possibly after a key set refresh) then you should disable the token introspection: - -[source, properties] ----- -quarkus.oidc.token.allow-jwt-introspection=false -quarkus.oidc.token.allow-opaque-token-introspection=false ----- - -However, there could be cases where JWT tokens must be verified via the introspection only. It can be forced by configuring an introspection endpoint address only, for example, in case of Keycloak you can do it like this: - -[source, properties] ----- -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus -quarkus.oidc.discovery-enabled=false -# Token Introspection endpoint: http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/tokens/introspect -quarkus.oidc.introspection-path=/protocol/openid-connect/tokens/introspect ----- - -Note that `io.quarkus.oidc.TokenIntrospection` (a simple `javax.json.JsonObject` wrapper) object will be created and can be either injected or accessed as a SecurityIdentity `introspection` attribute if either JWT or opaque token has been successfully introspected. - -[[token-introspection-userinfo-cache]] -=== Token Introspection and UserInfo Cache - -All opaque and sometimes JWT Bearer access tokens have to be remotely introspected. If `UserInfo` is also required then the same access token will be used to do a remote call to OpenID Connect Provider again. So, if `UserInfo` is required and the current access token is opaque then for every such token there will be 2 remote calls done - one to introspect it and one to get UserInfo with it, and if the token is JWT then usually only a single remote call will be needed - to get UserInfo with it. - -The cost of making up to 2 remote calls per every incoming bearer or code flow access token can sometimes be problematic. - -If it is the case in your production then it can be recommended that the token introspection and `UserInfo` data are cached for a short period of time, for example, for 3 or 5 minutes. - -`quarkus-oidc` provides `quarkus.oidc.TokenIntrospectionCache` and `quarkus.oidc.UserInfoCache` interfaces which can be used to implement `@ApplicationScoped` cache implementation which can be used to store and retrieve `quarkus.oidc.TokenIntrospection` and/or `quarkus.oidc.UserInfo` objects, for example: - -[source, java] ----- -@ApplicationScoped -@AlternativePriority(1) -public class CustomIntrospectionUserInfoCache implements TokenIntrospectionCache, UserInfoCache { -... -} ----- - -Each OIDC tenant can either permit or deny storing its `quarkus.oidc.TokenIntrospection` and/or `quarkus.oidc.UserInfo` data with boolean `quarkus.oidc."tenant".allow-token-introspection-cache` and `quarkus.oidc."tenant".allow-user-info-cache` properties. - -Additionally, `quarkus-oidc` provides a simple default memory based token cache which implements both `quarkus.oidc.TokenIntrospectionCache` and `quarkus.oidc.UserInfoCache` interfaces. - -It can be activated and configured as follows: - -[source, properties] ----- -# 'max-size' is 0 by default so the cache can be activated by setting 'max-size' to a positive value. -quarkus.oidc.token-cache.max-size=1000 -# 'time-to-live' specifies how long a cache entry can be valid for and will be used by a clean up timer. -quarkus.oidc.token-cache.time-to-live=3M -# 'clean-up-timer-interval' is not set by default so the clean up timer can be activated by setting 'clean-up-timer-interval'. -quarkus.oidc.token-cache.clean-up-timer-interval=1M ----- - -The default cache uses a token as a key and each entry can have `TokenIntrospection` and/or `UserInfo`. It will only keep up to a `max-size` number of entries. If the cache is full when a new entry is to be added then an attempt will be made to find a space for it by removing a single expired entry. Additionally, the clean up timer, if activated, will periodically check for the expired entries and remove them. - -Please experiment with the default cache implementation or register a custom one. - -[[jwt-claim-verification]] -=== JSON Web Token Claim Verification - -Once the bearer JWT token's signature has been verified and its `expires at` (`exp`) claim has been checked, the `iss` (`issuer`) claim value is verified next. - -By default, the `iss` claim value is compared to the `issuer` property which may have been discovered in the well-known provider configuration. -But if `quarkus.oidc.token.issuer` property is set then the `iss` claim value is compared to it instead. - -In some cases, this `iss` claim verification may not work. For example, if the discovered `issuer` property contains an internal HTTP/IP address while the token `iss` claim value contains an external HTTP/IP address. Or when a discovered `issuer` property contains the template tenant variable but the token `iss` claim value has the complete tenant-specific issuer value. - -In such cases you may want to consider skipping the issuer verification by setting `quarkus.oidc.token.issuer=any`. Please note that it is not recommended and should be avoided unless no other options are available: - -- If you work with Keycloak and observe the issuer verification errors due to the different host addresses then configure Keycloak with a `KEYCLOAK_FRONTEND_URL` property to ensure the same host address is used. -- If the `iss` property is tenant specific in a multi-tenant deployment then you can use the `SecurityIdentity` `tenant-id` attribute to check the issuer is correct in the endpoint itself or the custom JAX-RS filter, for example: - -[source, java] ----- -import javax.inject.Inject; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.ext.Provider; - -import org.eclipse.microprofile.jwt.JsonWebToken; -import io.quarkus.oidc.OidcConfigurationMetadata; -import io.quarkus.security.identity.SecurityIdentity; - -@Provider -public class IssuerValidator implements ContainerRequestFilter { - @Inject - OidcConfigurationMetadata configMetadata; - - @Inject JsonWebToken jwt; - @Inject SecurityIdentity identity; - - public void filter(ContainerRequestContext requestContext) { - String issuer = configMetadata.getIssuer().replace("{tenant-id}", identity.getAttribute("tenant-id")); - if (!issuer.equals(jwt.getIssuer())) { - requestContext.abortWith(Response.status(401).build()); - } - } -} ----- - -Note it is also recommended to use `quarkus.oidc.token.audience` property to verify the token `aud` (`audience`) claim value. - -[[single-page-applications]] -=== Single Page Applications - -Single Page Application (SPA) typically uses `XMLHttpRequest`(XHR) and the Java Script utility code provided by the OpenID Connect provider to acquire a bearer token and use it -to access Quarkus `service` applications. - -For example, here is how you can use `keycloak.js` to authenticate the users and refresh the expired tokens from the SPA: - -[source,html] ----- - - - keycloak-spa - - - - - - - - ----- - -=== Cross Origin Resource Sharing - -If you plan to consume your OpenID Connect `service` application from a Single Page Application running on a different domain, you will need to configure CORS (Cross-Origin Resource Sharing). Please read the xref:http-reference.adoc#cors-filter[HTTP CORS documentation] for more details. - -=== Provider Endpoint configuration - -OIDC `service` application needs to know OpenID Connect provider's token, `JsonWebKey` (JWK) set and possibly `UserInfo` and introspection endpoint addresses. - -By default they are discovered by adding a `/.well-known/openid-configuration` path to the configured `quarkus.oidc.auth-server-url`. - -Alternatively, if the discovery endpoint is not available or you would like to save on the discovery endpoint roundtrip, you can disable the discovery and configure them with relative path values, for example: - -[source, properties] ----- -quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus -quarkus.oidc.discovery-enabled=false -# Token endpoint: http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/token -quarkus.oidc.token-path=/protocol/openid-connect/token -# JWK set endpoint: http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/certs -quarkus.oidc.jwks-path=/protocol/openid-connect/certs -# UserInfo endpoint: http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/userinfo -quarkus.oidc.user-info-path=/protocol/openid-connect/userinfo -# Token Introspection endpoint: http://localhost:8180/auth/realms/quarkus/protocol/openid-connect/tokens/introspect -quarkus.oidc.introspection-path=/protocol/openid-connect/tokens/introspect ----- - -=== Token Propagation - -Please see xref:security-openid-connect-client.adoc#token-propagation[Token Propagation] section about the Bearer access token propagation to the downstream services. - -[[oidc-provider-authentication]] -=== Oidc Provider Client Authentication - -`quarkus.oidc.runtime.OidcProviderClient` is used when a remote request to an OpenID Connect Provider has to be done. If the bearer token has to be introspected then `OidcProviderClient` has to authenticate to the OpenID Connect Provider. Please see xref:security-openid-connect-web-authentication.adoc#oidc-provider-client-authentication[OidcProviderClient Authentication] for more information about all the supported authentication options. - -[[integration-testing]] -=== Testing - -Start by adding the following dependencies to your test project: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.rest-assured - rest-assured - test - - - io.quarkus - quarkus-junit5 - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.rest-assured:rest-assured") -testImplementation("io.quarkus:quarkus-junit5") ----- - -[[integration-testing-wiremock]] -==== Wiremock - -Add the following dependencies to your test project: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-test-oidc-server - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-test-oidc-server") ----- - -Prepare the REST test endpoint, set `application.properties`, for example: - -[source, properties] ----- -# keycloak.url is set by OidcWiremockTestResource -quarkus.oidc.auth-server-url=${keycloak.url}/realms/quarkus/ -quarkus.oidc.client-id=quarkus-service-app -quarkus.oidc.application-type=service ----- - -and finally write the test code, for example: - -[source, java] ----- -import static org.hamcrest.Matchers.equalTo; - -import java.util.Arrays; -import java.util.HashSet; - -import org.hamcrest.Matchers; -import org.junit.jupiter.api.Test; - -import io.quarkus.test.common.QuarkusTestResource; -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.oidc.server.OidcWiremockTestResource; -import io.restassured.RestAssured; -import io.smallrye.jwt.build.Jwt; - -@QuarkusTest -@QuarkusTestResource(OidcWiremockTestResource.class) -public class BearerTokenAuthorizationTest { - - @Test - public void testBearerToken() { - RestAssured.given().auth().oauth2(getAccessToken("alice", new HashSet<>(Arrays.asList("user")))) - .when().get("/api/users/preferredUserName") - .then() - .statusCode(200) - // the test endpoint returns the name extracted from the injected SecurityIdentity Principal - .body("userName", equalTo("alice")); - } - - private String getAccessToken(String userName, Set groups) { - return Jwt.preferredUserName(userName) - .groups(groups) - .issuer("https://server.example.com") - .audience("https://service.example.com") - .sign(); - } -} ----- - -Note that the `quarkus-test-oidc-server` extension includes a signing RSA private key file in a `JSON Web Key` (`JWK`) format and points to it with a `smallrye.jwt.sign.key.location` configuration property. It allows to use a no argument `sign()` operation to sign the token. - -Testing your `quarkus-oidc` `service` application with `OidcWiremockTestResource` provides the best coverage as even the communication channel is tested against the Wiremock HTTP stubs. -`OidcWiremockTestResource` will be enhanced going forward to support more complex Bearer token test scenarios. - -If there is an immediate need for a test to define Wiremock stubs not currently supported by `OidcWiremockTestResource` -one can do so via a `WireMockServer` instance injected into the test class, for example: - -[source, java] ----- -package io.quarkus.it.keycloak; - -import static com.github.tomakehurst.wiremock.client.WireMock.matching; -import static org.hamcrest.Matchers.equalTo; - -import org.junit.jupiter.api.Test; - -import com.github.tomakehurst.wiremock.WireMockServer; -import com.github.tomakehurst.wiremock.client.WireMock; - -import io.quarkus.test.common.QuarkusTestResource; -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.oidc.server.OidcWireMock; -import io.quarkus.test.oidc.server.OidcWiremockTestResource; -import io.restassured.RestAssured; - -@QuarkusTest -@QuarkusTestResource(OidcWiremockTestResource.class) -public class CustomOidcWireMockStubTest { - - @OidcWireMock - WireMockServer wireMockServer; - - @Test - public void testInvalidBearerToken() { - wireMockServer.stubFor(WireMock.post("/auth/realms/quarkus/protocol/openid-connect/token/introspect") - .withRequestBody(matching(".*token=invalid_token.*")) - .willReturn(WireMock.aResponse().withStatus(400))); - - RestAssured.given().auth().oauth2("invalid_token").when() - .get("/api/users/me/bearer") - .then() - .statusCode(401) - .header("WWW-Authenticate", equalTo("Bearer")); - } -} ----- - -[[integration-testing-keycloak-devservices]] -==== Dev Services for Keycloak - -Using xref:security-openid-connect-dev-services.adoc[Dev Services for Keycloak] is recommended for the integration testing against Keycloak. -`Dev Services for Keycloak` will launch and initialize a test container: it will create a `quarkus` realm, a `quarkus-app` client (`secret` secret) and add `alice` (`admin` and `user` roles) and `bob` (`user` role) users, where all of these properties can be customized. - -First you need to add the following dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-test-keycloak-server - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-test-keycloak-server") ----- - -which provides a utility class `io.quarkus.test.keycloak.client.KeycloakTestClient` you can use in tests for acquiring the access tokens. - -Next prepare your `application.properties`. You can start with a completely empty `application.properties` as `Dev Services for Keycloak` will register `quarkus.oidc.auth-server-url` pointing to the running test container as well as `quarkus.oidc.client-id=quarkus-app` and `quarkus.oidc.credentials.secret=secret`. - -But if you already have all the required `quarkus-oidc` properties configured then you only need to associate `quarkus.oidc.auth-server-url` with the `prod` profile for `Dev Services for Keycloak`to start a container, for example: - -[source,properties] ----- -%prod.quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus ----- - -If a custom realm file has to be imported into Keycloak before running the tests then you can configure `Dev Services for Keycloak` as follows: - -[source,properties] ----- -%prod.quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/quarkus -quarkus.keycloak.devservices.realm-path=quarkus-realm.json ----- - -Finally write your test which will be executed in JVM mode: - -[source,java] ----- -package org.acme.security.openid.connect; - -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.keycloak.client.KeycloakTestClient; -import io.restassured.RestAssured; -import org.junit.jupiter.api.Test; - -@QuarkusTest -public class BearerTokenAuthenticationTest { - - KeycloakTestClient keycloakClient = new KeycloakTestClient(); - - @Test - public void testAdminAccess() { - RestAssured.given().auth().oauth2(getAccessToken("alice")) - .when().get("/api/admin") - .then() - .statusCode(200); - RestAssured.given().auth().oauth2(getAccessToken("bob")) - .when().get("/api/admin") - .then() - .statusCode(403); - } - - protected String getAccessToken(String userName) { - return keycloakClient.getAccessToken(userName); - } -} ----- - -and in native mode: - -[source,java] ----- -package org.acme.security.openid.connect; - -import io.quarkus.test.junit.QuarkusIntegrationTest; - -@QuarkusIntegrationTest -public class NativeBearerTokenAuthenticationIT extends BearerTokenAuthenticationTest { -} ----- - -Please see xref:security-openid-connect-dev-services.adoc[Dev Services for Keycloak] for more information about the way it is initialized and configured. - -[[integration-testing-keycloak]] -==== KeycloakTestResourceLifecycleManager - -If you need to do some integration testing against Keycloak then you are encouraged to do it with <>. -Use `KeycloakTestResourceLifecycleManager` for your tests only if there is a good reason not to use `Dev Services for Keycloak`. - -Start with adding the following dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-test-keycloak-server - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-test-keycloak-server") ----- - -which provides `io.quarkus.test.keycloak.server.KeycloakTestResourceLifecycleManager` - an implementation of `io.quarkus.test.common.QuarkusTestResourceLifecycleManager` which starts a Keycloak container. - -And configure the Maven Surefire plugin as follows: - -[source,xml] ----- - - maven-surefire-plugin - - - - ${keycloak.docker.image} - - - - ----- - -(and similarly `maven.failsafe.plugin` when testing in native image). - -Prepare the REST test endpoint, set `application.properties`, for example: - -[source, properties] ----- -# keycloak.url is set by KeycloakTestResourceLifecycleManager -quarkus.oidc.auth-server-url=${keycloak.url}/realms/quarkus/ -quarkus.oidc.client-id=quarkus-service-app -quarkus.oidc.credentials=secret -quarkus.oidc.application-type=service ----- - -and finally write the test code, for example: - -[source, java] ----- -import static io.quarkus.test.keycloak.server.KeycloakTestResourceLifecycleManager.getAccessToken; -import static org.hamcrest.Matchers.equalTo; - -import org.hamcrest.Matchers; -import org.junit.jupiter.api.Test; - -import io.quarkus.test.common.QuarkusTestResource; -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.keycloak.server.KeycloakTestResourceLifecycleManager; -import io.restassured.RestAssured; - -@QuarkusTest -@QuarkusTestResource(KeycloakTestResourceLifecycleManager.class) -public class BearerTokenAuthorizationTest { - - @Test - public void testBearerToken() { - RestAssured.given().auth().oauth2(getAccessToken("alice")))) - .when().get("/api/users/preferredUserName") - .then() - .statusCode(200) - // the test endpoint returns the name extracted from the injected SecurityIdentity Principal - .body("userName", equalTo("alice")); - } - -} ----- - -`KeycloakTestResourceLifecycleManager` registers `alice` and `admin` users. The user `alice` has the `user` role only by default - it can be customized with a `keycloak.token.user-roles` system property. The user `admin` has the `user` and `admin` roles by default - it can be customized with a `keycloak.token.admin-roles` system property. - -By default, `KeycloakTestResourceLifecycleManager` uses HTTPS to initialize a Keycloak instance which can be disabled with `keycloak.use.https=false`. -Default realm name is `quarkus` and client id - `quarkus-service-app` - set `keycloak.realm` and `keycloak.service.client` system properties to customize the values if needed. - -[[integration-testing-public-key]] -==== Local Public Key - -You can also use a local inlined public key for testing your `quarkus-oidc` `service` applications: - -[source,properties] ----- -quarkus.oidc.client-id=test -quarkus.oidc.public-key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlivFI8qB4D0y2jy0CfEqFyy46R0o7S8TKpsx5xbHKoU1VWg6QkQm+ntyIv1p4kE1sPEQO73+HY8+Bzs75XwRTYL1BmR1w8J5hmjVWjc6R2BTBGAYRPFRhor3kpM6ni2SPmNNhurEAHw7TaqszP5eUF/F9+KEBWkwVta+PZ37bwqSE4sCb1soZFrVz/UT/LF4tYpuVYt3YbqToZ3pZOZ9AX2o1GCG3xwOjkc4x0W7ezbQZdC9iftPxVHR8irOijJRRjcPDtA6vPKpzLl6CyYnsIYPd99ltwxTHjr3npfv/3Lw50bAkbT4HeLFxTx4flEoZLKO/g0bAoV2uqBhkA9xnQIDAQAB - -smallrye.jwt.sign.key.location=/privateKey.pem ----- - -copy `privateKey.pem` from the `integration-tests/oidc-tenancy` in the `main` Quarkus repository and use a test code similar to the one in the `Wiremock` section above to generate JWT tokens. You can use your own test keys if preferred. - -This approach provides a more limited coverage compared to the Wiremock approach - for example, the remote communication code is not covered. - -[[integration-testing-security-annotation]] -==== TestSecurity annotation - -You can use `@TestSecurity` and `@OidcSecurity` annotations for testing the `service` application endpoint code which depends on the injected `JsonWebToken` as well as `UserInfo` and `OidcConfigurationMetadata`. - -Add the following dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-test-security-oidc - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-test-security-oidc") ----- - -and write a test code like this one: - -[source, java] ----- -import static org.hamcrest.Matchers.is; -import org.junit.jupiter.api.Test; -import io.quarkus.test.common.http.TestHTTPEndpoint; -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.security.TestSecurity; -import io.quarkus.test.security.oidc.Claim; -import io.quarkus.test.security.oidc.ConfigMetadata; -import io.quarkus.test.security.oidc.OidcSecurity; -import io.quarkus.test.security.oidc.OidcConfigurationMetadata; -import io.quarkus.test.security.oidc.UserInfo; -import io.restassured.RestAssured; - -@QuarkusTest -@TestHTTPEndpoint(ProtectedResource.class) -public class TestSecurityAuthTest { - - @Test - @TestSecurity(user = "userOidc", roles = "viewer") - public void testOidc() { - RestAssured.when().get("test-security-oidc").then() - .body(is("userOidc:viewer")); - } - - @Test - @TestSecurity(user = "userOidc", roles = "viewer") - @OidcSecurity(claims = { - @Claim(key = "email", value = "user@gmail.com") - }, userinfo = { - @UserInfo(key = "sub", value = "subject") - }, config = { - @ConfigMetadata(key = "issuer", value = "issuer") - }) - public void testOidcWithClaimsUserInfoAndMetadata() { - RestAssured.when().get("test-security-oidc-claims-userinfo-metadata").then() - .body(is("userOidc:viewer:user@gmail.com:subject:issuer")); - } - -} ----- - -where `ProtectedResource` class may look like this: - -[source, java] ----- -import io.quarkus.oidc.OidcConfigurationMetadata; -import io.quarkus.oidc.UserInfo; -import org.eclipse.microprofile.jwt.JsonWebToken; - -@Path("/service") -@Authenticated -public class ProtectedResource { - - @Inject - JsonWebToken accessToken; - @Inject - UserInfo userInfo; - @Inject - OidcConfigurationMetadata configMetadata; - - @GET - @Path("test-security-oidc") - public String testSecurityOidc() { - return accessToken.getName() + ":" + accessToken.getGroups().iterator().next(); - } - - @GET - @Path("test-security-oidc-claims-userinfo-metadata") - public String testSecurityOidcWithClaimsUserInfoMetadata() { - return accessToken.getName() + ":" + accessToken.getGroups().iterator().next() - + ":" + accessToken.getClaim("email") - + ":" + userInfo.getString("sub") - + ":" + configMetadata.get("issuer"); - } -} ----- - -Note that `@TestSecurity` annotation must always be used and its `user` property is returned as `JsonWebToken.getName()` and `roles` property - as `JsonWebToken.getGroups()`. -`@OidcSecurity` annotation is optional and can be used to set the additional token claims, as well as `UserInfo` and `OidcConfigurationMetadata` properties. -Additionally, if `quarkus.oidc.token.issuer` property is configured then it will be used as an `OidcConfigurationMetadata` `issuer` property value. - -If you work with the opaque tokens then you can test them as follows: - -[source, java] ----- -import static org.hamcrest.Matchers.is; -import org.junit.jupiter.api.Test; -import io.quarkus.test.common.http.TestHTTPEndpoint; -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.security.TestSecurity; -import io.quarkus.test.security.oidc.OidcSecurity; -import io.quarkus.test.security.oidc.TokenIntrospection; -import io.restassured.RestAssured; - -@QuarkusTest -@TestHTTPEndpoint(ProtectedResource.class) -public class TestSecurityAuthTest { - - @Test - @TestSecurity(user = "userOidc", roles = "viewer") - @OidcSecurity(introspectionRequired = true, - introspection = { - @TokenIntrospection(key = "email", value = "user@gmail.com") - } - ) - public void testOidcWithClaimsUserInfoAndMetadata() { - RestAssured.when().get("test-security-oidc-claims-userinfo-metadata").then() - .body(is("userOidc:viewer:userOidc:viewer")); - } - -} ----- - -where `ProtectedResource` class may look like this: - -[source, java] ----- -import io.quarkus.oidc.TokenIntrospection; -import io.quarkus.security.identity.SecurityIdentity; - -@Path("/service") -@Authenticated -public class ProtectedResource { - - @Inject - SecurityIdentity securityIdentity; - @Inject - TokenIntrospection introspection; - - @GET - @Path("test-security-oidc-opaque-token") - public String testSecurityOidcOpaqueToken() { - return securityIdentity.getPrincipal().getName() + ":" + securityIdentity.getRoles().iterator().next() - + ":" + introspection.getString("username") - + ":" + introspection.getString("scope") - + ":" + introspection.getString("email"); - } -} ----- - -Note that `@TestSecurity` `user` and `roles` attributes are available as `TokenIntrospection` `username` and `scope` properties and you can use `io.quarkus.test.security.oidc.TokenIntrospection` to add the additional introspection response properties such as an `email`, etc. - -=== How to check the errors in the logs - -Please enable `io.quarkus.oidc.runtime.OidcProvider` `TRACE` level logging to see more details about the token verification errors: - -[source, properties] ----- -quarkus.log.category."io.quarkus.oidc.runtime.OidcProvider".level=TRACE -quarkus.log.category."io.quarkus.oidc.runtime.OidcProvider".min-level=TRACE ----- - -Please enable `io.quarkus.oidc.runtime.OidcRecorder` `TRACE` level logging to see more details about the OidcProvider client initialization errors: - -[source, properties] ----- -quarkus.log.category."io.quarkus.oidc.runtime.OidcRecorder".level=TRACE -quarkus.log.category."io.quarkus.oidc.runtime.OidcRecorder".min-level=TRACE ----- - -=== External and Internal Access to OpenID Connect Provider - -Note that the OpenID Connect Provider externally accessible token and other endpoints may have different HTTP(S) URLs compared to the URLs auto-discovered or configured relative to `quarkus.oidc.auth-server-url` internal URL. For example, if your SPA acquires a token from an external token endpoint address and sends it to Quarkus as a Bearer token then an issuer verification failure may be reported by the endpoint. - -In such cases, if you work with Keycloak then please start it with a `KEYCLOAK_FRONTEND_URL` system property set to the externally accessible base URL. -If you work with other Openid Connect providers then please check your provider's documentation. - -=== How to use 'client-id' property - -`quarkus.oidc.client-id` property identifies an OpenID Connect Client which requested the current bearer token. It can be an SPA application running in a browser or a Quarkus `web-app` confidential client application propagating the access token to the Quarkus `service` application. - -This property is required if the `service` application is expected to introspect the tokens remotely - which is always the case for the opaque tokens. -This property is optional if the local Json Web Key token verification only is used. - -Nonetheless, setting this property is encouraged even if the endpoint does not require an access to the remote introspection endpoint. The reasons behind it that `client-id`, if set, can be used to verify the token audience and will also be included in the logs when the token verification fails for the better traceability of the tokens issued to specific clients to be analyzed over a longer period of time. - -For example, if your OpenID Connect provider sets a token audience then the following configuration pattern is recommended: - -[source, properties] ----- -# Set client-id -quarkus.oidc.client-id=quarkus-app -# Token audience claim must contain 'quarkus-app' -quarkus.oidc.token.audience=${quarkus.oidc.client-id} ----- - -If you set `quarkus.oidc.client-id` but your endpoint does not require a remote access to one of OpenID Connect Provider endpoints (introspection, token acquisition, etc) then do not set a client secret with the `quarkus.oidc.credentials` or similar properties as it will not be used. - -Note Quarkus `web-app` applications always require `quarkus.oidc.client-id` property. - -== References - -* https://www.keycloak.org/documentation.html[Keycloak Documentation] -* https://openid.net/connect/[OpenID Connect] -* https://tools.ietf.org/html/rfc7519[JSON Web Token] -* xref:security-openid-connect-client.adoc[Quarkus - Using OpenID Connect and OAuth2 Client and Filters to manage access tokens] -* xref:security-openid-connect-dev-services.adoc[Dev Services for Keycloak] -* xref:security-jwt-build.adoc[Sign and encrypt JWT tokens with SmallRye JWT Build] -* xref:security.adoc#oidc-jwt-oauth2-comparison[Summary of Quarkus OIDC, JWT and OAuth2 features] -* xref:security.adoc[Quarkus Security] diff --git a/_versions/2.7/guides/security-properties.adoc b/_versions/2.7/guides/security-properties.adoc deleted file mode 100644 index 8c0418027ae..00000000000 --- a/_versions/2.7/guides/security-properties.adoc +++ /dev/null @@ -1,147 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Security with .properties File - -include::./attributes.adoc[] - -Quarkus provides support for properties file based authentication that is intended for -development and testing purposes. It is not recommended that this be used in production as at present only -plaintext and MD5 hashed passwords are used, and properties files are generally too limited to use in production. - -Add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-elytron-security-properties-file - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-elytron-security-properties-file") ----- - -== Configuration - -The elytron-security-properties-file extension currently supports two different realms for the storage of authentication -and authorization information. Both support storage of this information in properties files. The following sections -detail the specific configuration properties. - -include::{generated-dir}/config/quarkus-elytron-security.adoc[opts=optional, leveloffset=+2] - -=== Properties Files Realm Configuration - -The properties files realm supports mapping of users to password and users to roles with a combination of properties files. They are configured with properties starting with `quarkus.security.users.file`. - -.example application.properties file section for property files realm -[source,properties] ----- -quarkus.security.users.file.enabled=true -quarkus.security.users.file.users=test-users.properties -quarkus.security.users.file.roles=test-roles.properties -quarkus.security.users.file.realm-name=MyRealm -quarkus.security.users.file.plain-text=true ----- - -==== Users.properties - -The `quarkus.security.users.file.users` configuration property specifies a classpath resource which is a properties file with a user to password mapping, one per line. The following <> illustrates the format: - -[#test-users-example] -.example test-users.properties file -[source,properties] ----- -scott=jb0ss <1> -jdoe=p4ssw0rd <2> -stuart=test -noadmin=n0Adm1n ----- -<1> User `scott` has password defined as `jb0ss` -<2> User `jdoe` has password defined as `p4ssw0rd` - -This file has the usernames and passwords stored in plain text, which is not recommended. If plain-text is set to false -(or omitted) in the config then passwords must be stored in the form `MD5 ( username : realm : password )`. This can -be generated for the first example above by running the command `echo -n scott:MyRealm:jb0ss | md5` from the command line. - -==== Roles.properties - -.example test-roles.properties file -[source,properties] ----- -scott=Admin,admin,Tester,user <1> -jdoe=NoRolesUser <2> -stuart=admin,user <3> -noadmin=user ----- -<1> User `scott` has been assigned the roles `Admin`, `admin`, `Tester` and `user` -<2> User `jdoe` has been assigned the role `NoRolesUser` -<3> User `stuart` has been assigned the roles `admin` and `user`. - -=== Embedded Realm Configuration - -The embedded realm also supports mapping of users to password and users to roles. It uses the main `application.properties` Quarkus configuration file to embed this information. They are configured with properties starting with `quarkus.security.users.embedded`. - -The following is an example application.properties file section illustrating the embedded realm configuration: - -.example application.properties file section for embedded realm -[source,properties] ----- -quarkus.security.users.embedded.enabled=true -quarkus.security.users.embedded.plain-text=true -quarkus.security.users.embedded.users.scott=jb0ss -quarkus.security.users.embedded.users.stuart=test -quarkus.security.users.embedded.users.jdoe=p4ssw0rd -quarkus.security.users.embedded.users.noadmin=n0Adm1n -quarkus.security.users.embedded.roles.scott=Admin,admin,Tester,user -quarkus.security.users.embedded.roles.stuart=admin,user -quarkus.security.users.embedded.roles.jdoe=NoRolesUser -quarkus.security.users.embedded.roles.noadmin=user ----- - -As with the first example this file has the usernames and passwords stored in plain text, which is not recommended. If plain-text is set to false -(or omitted) in the config then passwords must be stored in the form `MD5 ( username : realm : password )`. This can -be generated for the first example above by running the command `echo -n scott:MyRealm:jb0ss | md5` from the command line. - - -==== Embedded Users - -The user to password mappings are specified in the `application.properties` file by properties keys of the form `quarkus.security.users.embedded.users.=`. The following <> illustrates the syntax with 4 user to password mappings: - -[#password-example] -.Example Passwords -[source,properties,linenums] ----- -quarkus.security.users.embedded.users.scott=jb0ss # <1> -quarkus.security.users.embedded.users.stuart=test # <2> -quarkus.security.users.embedded.users.jdoe=p4ssw0rd -quarkus.security.users.embedded.users.noadmin=n0Adm1n ----- -<1> User `scott` has password `jb0ss` -<2> User `stuart` has password `test` - -==== Embedded Roles - -The user to role mappings are specified in the `application.properties` file by properties keys of the form `quarkus.security.users.embedded.roles.=role1[,role2[,role3[,...]]]`. The following <> illustrates the syntax with 4 user to role mappings: - -[#roles-example] -.Example Roles -[source,properties,linenums] ----- -quarkus.security.users.embedded.roles.scott=Admin,admin,Tester,user # <1> -quarkus.security.users.embedded.roles.stuart=admin,user # <2> -quarkus.security.users.embedded.roles.jdoe=NoRolesUser -quarkus.security.users.embedded.roles.noadmin=user ----- -<1> User `scott` has roles `Admin`, `admin`, `Tester`, and `user` -<2> User `stuart` has roles `admin` and `user` - -== References - -* xref:security.adoc[Quarkus Security] diff --git a/_versions/2.7/guides/security-testing.adoc b/_versions/2.7/guides/security-testing.adoc deleted file mode 100644 index 08c1796135a..00000000000 --- a/_versions/2.7/guides/security-testing.adoc +++ /dev/null @@ -1,112 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Security Testing - -include::./attributes.adoc[] - -This document describes how to test Quarkus Security. - -[[configuring-user-information]] -== Configuring User Information - -You can use xref:security-properties.adoc[quarkus-elytron-security-properties-file] for testing security. This supports both embedding user info in `application.properties` and standalone properties files. - -For example, the following configuration will allow for configuring the users in both the production where OAuth2 is required and development modes using xref:config.adoc#configuration-profiles[Configuration Profiles]. - -[source,properties] ----- -# Configure embedded authentication -%dev.quarkus.security.users.embedded.enabled=true -%dev.quarkus.security.users.embedded.plain-text=true -%dev.quarkus.security.users.embedded.users.scott=reader -%dev.quarkus.security.users.embedded.users.stuart=writer -%dev.quarkus.security.users.embedded.roles.scott=READER -%dev.quarkus.security.users.embedded.roles.stuart=READER,WRITER - -# Configure OAuth2 -quarkus.oauth2.enabled=true -%dev.quarkus.oauth2.enabled=false -quarkus.oauth2.client-id=client-id -quarkus.oauth2.client-secret=client-secret -quarkus.oauth2.introspection-url=http://host:port/introspect ----- - -[#testing-security] -== Test Security Extension - -Quarkus provides explicit support for testing with different users, and with the security subsystem disabled. To use -this you must include the `quarkus-test-security` dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-test-security - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-test-security") ----- - -This artifact provides the `io.quarkus.test.security.TestSecurity` annotation, that can be applied to test methods and -test classes to control the security context that the test is run with. This allows you to do two things, you can disable -authorization so tests can access secured endpoints without needing to be authenticated, and you can specify the identity -that you want the tests to run under. - -A test that runs with authorization disabled can just set the enabled property to false: - -[source,java] ----- -@Test -@TestSecurity(authorizationEnabled = false) -void someTestMethod() { -... -} ----- - -This will disable all access checks, which allows the test to access secured endpoints without needing to authenticate. - -You can also use this to configure the current user that the test will run as: - -[source,java] ----- -@Test -@TestSecurity(user = "testUser", roles = {"admin", "user"}) -void someTestMethod() { -... -} ----- - -This will run the test with an identity with the given username and roles. Note that these can be combined, so you can -disable authorization while also providing an identity to run the test under, which can be useful if the endpoint expects an -identity to be present. - -See xref:security-openid-connect.adoc#integration-testing-security-annotation[OpenID Connect Bearer Token Integration testing], xref:security-openid-connect-web-authentication.adoc#integration-testing-security-annotation[OpenID Connect Authorization Code Flow Integration testing] and xref:security-jwt.adoc#integration-testing-security-annotation[SmallRye JWT Integration testing] for more details about testing the endpoint code which depends on the injected `JsonWebToken`. - -[WARNING] -==== -The feature is only available for `@QuarkusTest` and will **not** work on a `@NativeImageTest`. -==== - -=== Mixing security tests - -If it becomes necessary to test security features using both `@TestSecurity` and Basic Auth (which is the fallback auth -mechanism when none is defined), then Basic Auth needs to be enabled explicitly, -for example by setting `quarkus.http.auth.basic=true` or `%test.quarkus.http.auth.basic=true`. - -== Use Wiremock for Integration Testing - -You can also use Wiremock to mock the authorization OAuth2 and OIDC services: -See xref:security-oauth2#integration-testing.adoc[OAuth2 Integration testing], xref:security-openid-connect.adoc#integration-testing-wiremock[OpenID Connect Bearer Token Integration testing], xref:security-openid-connect-web-authentication.adoc#integration-testing-wiremock[OpenID Connect Authorization Code Flow Integration testing] and xref:security-jwt.adoc#integration-testing-wiremock[SmallRye JWT Integration testing] for more details. - -== References - -* xref:security.adoc[Quarkus Security] diff --git a/_versions/2.7/guides/security.adoc b/_versions/2.7/guides/security.adoc deleted file mode 100644 index 2d4fae1cb20..00000000000 --- a/_versions/2.7/guides/security.adoc +++ /dev/null @@ -1,369 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Security Architecture and Guides - -include::./attributes.adoc[] - -Quarkus Security provides the architecture, multiple authentication and authorization mechanisms, and other tools for the developers to build a production-quality security for their Quarkus applications. - -This document provides a brief overview of Quarkus Security and links to the individual guides. - -== Architecture - -`HttpAuthenticationMechanism` is the main entry into Quarkus HTTP Security. - -Quarkus Security Manager uses `HttpAuthenticationMechanism` to extract the authentication credentials from the HTTP request and delegates to `IdentityProvider` to -complete the conversion of these credentials to `SecurityIdentity`. - -For example, the credentials may be coming with the HTTP `Authorization` header, client HTTPS certificates or cookies. - -`IdentityProvider` verifies the authentication credentials and maps them to `SecurityIdentity` which contains the username, roles, the original authentication credentials, and other attributes. - -For every authenticated resource, you can inject a `SecurityIdentity` instance to get the authenticated identity information. - -In some other contexts you may have other parallel representations of the same information (or parts of it) such as `SecurityContext` -for JAX-RS or `JsonWebToken` for JWT. - -== Authentication mechanisms - -Quarkus supports several sources to load authentication information from. - -=== Basic and Form Authentication Mechanisms - -Basic and Form HTTP-based authentication mechanisms are the core authentication mechanisms supported in Quarkus. -Please see xref:security-built-in-authentication.adoc#basic-auth[Basic HTTP Authentication] and xref:security-built-in-authentication.adoc#form-auth[Form HTTP Authentication] for more information. - -=== Mutual TLS Authentication - -Quarkus provides Mutual TLS authentication so that you can authenticate users based on their X.509 certificates. - -Please see xref:security-built-in-authentication.adoc#mutual-tls[Mutual TLS Authentication] for more information. - -=== OpenID Connect - -`quarkus-oidc` extension provides a reactive, interoperable, multi-tenant enabled OpenID Connect adapter which supports `Bearer Token` and `Authorization Code Flow` authentication mechanisms. - -`Bearer Token` mechanism extracts the token from HTTP `Authorization` header. -`Authorization Code Flow` mechanism uses OpenID Connect Authorization Code flow. It redirects the user to IDP to authenticate and completes the authentication process after the user has been redirected back to Quarkus by exchanging the provided code grant for ID, access and refresh tokens. - -ID and access `JWT` tokens are verified with the refreshable `JWK` key set but both JWT and opaque (binary) tokens can be introspected remotely. - -See the xref:security-openid-connect.adoc[Using OpenID Connect to Protect Service Applications] guide for more information about `Bearer Token` authentication mechanism. - -See the xref:security-openid-connect-web-authentication.adoc[Using OpenID Connect to Protect Web Application] guide for more information about `Authorization Code Flow` authentication mechanism. - -[NOTE] -==== -Both `quarkus-oidc` `Bearer` and `Authorization Code Flow` Authentication mechanisms use <> to represent JWT tokens as Microprofile JWT `org.eclipse.microprofile.jwt.JsonWebToken`. -==== - -See xref:security-openid-connect-multitenancy.adoc[Using OpenID Connect Multi-Tenancy] for more information about multiple tenants which can support `Bearer` or `Authorization Code Flow` authentication mechanism and configured statically or dynamically. - -[NOTE] -==== -If you would like to have Quarkus OIDC extension enabled at runtime then set `quarkus.oidc.tenant-enabled=false` at build time and re-enable it at runtime using a system property. -See also xref:security-openid-connect-multitenancy.adoc#disable-tenant[Disabling Tenant Configurations] for more information about managing the individual tenant configurations in the multi-tenant OIDC deployments. -==== - -If you use Keycloak and Bearer tokens then also see the xref:security-keycloak-authorization.adoc[Using Keycloak to Centralize Authorization] guide. - -[NOTE] -==== -If you need to configure Keycloak programmatically then consider using https://www.keycloak.org/docs/latest/server_development/#admin-rest-api[Keycloak Admin REST API] with the help of the `quarkus-keycloak-admin-client` extension. -==== - -=== OpenID Connect Client and Filters - -`quarkus-oidc-client` extension provides `OidcClient` for acquiring and refreshing access tokens from OpenID Connect and OAuth2 providers which support `client-credentials`, `password` and `refresh_token` token grants. - -`quarkus-oidc-client-filter` extension depends on the `quarkus-oidc-client` extension and provides JAX-RS `OidcClientRequestFilter` which sets the access token acquired by `OidcClient` as an HTTP `Authorization` header's `Bearer` scheme value. This filter can be registered with MP RestClient implementations injected into the current Quarkus endpoint but it is not related to the authentication requirements of this service endpoint. For example, it can be a public endpoint or it can be protected with MTLS - the important point is that this Quarkus endpoint does not have to be protected itself with the Quarkus OpenID Connect adapter. - -`quarkus-oidc-token-propagation` extension depends on the `quarkus-oidc` extension and provides JAX-RS `TokenCredentialRequestFilter` which sets the OpenID Connect Bearer or Authorization Code Flow access token as an HTTP `Authorization` header's `Bearer` scheme value. This filter can be registered with MP RestClient implementations injected into the current Quarkus endpoint and the Quarkus endpoint must be protected itself with the Quarkus OpenID Connect adapter. This filter can be used to propagate the access token to the downstream services. - -See the xref:security-openid-connect-client.adoc[Using OpenID Connect and OAuth2 Client] guide for more information. - -[[smallrye-jwt]] -=== SmallRye JWT - -`quarkus-smallrye-jwt` provides Microprofile JWT 1.1.1 implementation and many more options to verify signed and encrypted `JWT` tokens and represent them as `org.eclipse.microprofile.jwt.JsonWebToken`. - -It provides an alternative to `quarkus-oidc` Bearer Token Authentication Mechanism. It can currently verify only `JWT` tokens using the PEM keys or refreshable `JWK` key set. - -Additionally it provides `JWT Generation API` for creating `signed`, `inner-signed` and/or `encrypted` `JWT` tokens with ease. - -See the xref:security-jwt.adoc[Using SmallRye JWT] guide for more information. - -=== OAuth2 - -`quarkus-elytron-security-oauth2` provides an alternative to `quarkus-oidc` Bearer Token Authentication Mechanism. It is based on `Elytron` and is primarily meant for introspecting the opaque tokens remotely. - -See the xref:security-oauth2.adoc[Using OAuth2] guide for more information. - -[[oidc-jwt-oauth2-comparison]] -=== Choosing between OpenID Connect, SmallRye JWT and OAuth2 extensions - -`quarkus-oidc` extension requires an OpenID Connect provider such as Keycloak which can be used to verify the Bearer tokens or authenticate the end users with the Authorization Code flow. In both cases `quarkus-oidc` requires a connection to this OpenID Connect provider. - -`quarkus-oidc` is the only option when the user authentication via Authorization Code flow or supporting multiple tenants is required. It can also request a UserInfo using both Authorization Code Flow and Bearer access tokens. - -When the Bearer tokens have to be verified then `quarkus-oidc`, `quarkus-smallrye-jwt` and `quarkus-elytron-security-oauth2` can be used. - -If you have Bearer tokens in a JWT format then all these 3 extensions can be used. Both `quarkus-oidc` and `quarkus-smallrye-jwt` support refreshing the JsonWebKey (JWK) set when the OpenID Connect provider rotates the keys, therefore `quarkus-oidc` or `quarkus-smallrye-jwt` should be used for verifying JWT tokens if the remote token introspection has to be avoided or not supported by the providers. - -`quarkus-smallrye-jwt` does not support the remote introspection of the opaque tokens or even JWT tokens - it always relies on the locally available keys - possibly fetched from the OpenID Connect provider. So if you need to introspect the JWT tokens remotely then both `quarkus-oidc` and `quarkus-elytron-security-oauth2` will work. Both extensions also support the verification of the opaque/binary tokens via the remote introspection. - -`quarkus-oidc` and `quarkus-smallrye-jwt` can have both JWT and opaque tokens injected into the endpoint code - the injected JWT tokens may offer a richer information about the user. All extensions can have the tokens injected as `Principal`. - -`quarkus-smallrye-jwt` supports more key formats than `quarkus-oidc`. The latter will only use the JWK-formatted keys which are part of a JWK set. The former - can also work with PEM keys. - -`quarkus-smallrye-jwt` can handle locally not only signed but also inner-signed-and-encrypted or only encrypted tokens. In fact `quarkus-oidc` and `quarkus-elytron-security-oauth2` can verify such tokens too but only by treating them as opaque tokens and verifying them via the remote introspection. - -`quarkus-elytron-security-oauth2` is the best choice if you need a light weight library for the remote introspection of either opaque or JWT tokens. - -Note that a choice of using the opaque versus JWT token format is often driven by the architectural considerations. Opaque tokens are usually much shorter than JWT tokens but they require maintaining most of the token associated state in the provider database - the opaque tokens are effectively the database pointers. JWT tokens are significantly longer than the opaque tokens - but the providers are effectively delegating storing most of the token associated state to the client by storing it as the token claims and either signing and/or encrypting them. - -Below is a summary of the options. - -|=== -| | quarkus-oidc| quarkus-smallrye-jwt | quarkus-elytron-security-oauth2 - -|Bearer JWT verification is required -|Local Verification or Introspection -|Local Verification -|Introspection -|Bearer Opaque Token verification is required -|Introspection -|No -|Introspection -|Refreshing JsonWebKey set for verifying JWT tokens -|Yes -|Yes -|No -|Represent token as Principal -|Yes -|Yes -|Yes -|Inject JWT as MP JWT JsonWebToken -|Yes -|Yes -|No -|Authorization Code Flow -|Yes -|No -|No -|Multi-tenancy -|Yes -|No -|No -|UserInfo support -|Yes -|No -|No -|Pem Key format support -|No -|Yes -|No -|SecretKey support -|No -|In JsonWebKey format -|No -|InnerSigned/Encrypted or Encrypted tokens -|Introspection -|Local Verification -|Introspection -|Custom Token Verificition -|No -|With Injected JWTParser -|No -|Accept JWT as cookie -|No -|Yes -|No -|=== - -=== LDAP - -Please see the xref:security-ldap.adoc[Authenticate with LDAP] guide for more information about LDAP authentication mechanism. - -[[identity-providers]] -== Identity Providers - -`IdentityProvider` converts the authentication credentials provided by `HttpAuthenticationMechanism` to `SecurityIdentity`. - -Some extensions such as `OIDC`, `OAuth2`, `SmallRye JWT`, `LDAP` have the inlined `IdentityProvider` implementations which are specific to the supported authentication flow. -For example, `quarkus-oidc` uses its own `IdentityProvider` to convert a token to `SecurityIdentity`. - -If you use `Basic` or `Form` HTTP-based authentication then you have to add an `IdentityProvider` which can convert a user name and password to `SecurityIdentity`. - -See xref:security-jpa.adoc[JPA IdentityProvider] and xref:security-jdbc.adoc[JDBC IdentityProvider] for more information. -You can also use xref:security-testing.adoc#configuring-user-information[User Properties IdentityProvider] for testing. - -== Combining Authentication Mechanisms - -One can combine multiple authentication mechanisms if they get the authentication credentials from the different sources. -For example, combining built-in `Basic` and `quarkus-oidc` `Bearer` authentication mechanisms is allowed, but combining `quarkus-oidc` `Bearer` and `smallrye-jwt` authentication mechanisms is not allowed because both will attempt to verify the token extracted from the HTTP `Authorization Bearer` scheme. - -=== Path Specific Authentication Mechanism - -You can enforce that only a single authentication mechanism is selected for a given request path, for example: -[source,properties] ----- -quarkus.http.auth.permission.basic-or-bearer.paths=/service -quarkus.http.auth.permission.basic-or-bearer.policy=authenticated - -quarkus.http.auth.permission.basic.paths=/basic-only -quarkus.http.auth.permission.basic.policy=authenticated -quarkus.http.auth.permission.basic.auth-mechanism=basic - -quarkus.http.auth.permission.bearer.paths=/bearer-only -quarkus.http.auth.permission.bearer.policy=authenticated -quarkus.http.auth.permission.bearer.auth-mechanism=bearer ----- - -The value of the `auth-mechanism` property must match the authentication scheme supported by HttpAuthenticationMechanism such as `basic` or `bearer` or `form`, etc. - -== Proactive Authentication - -By default, Quarkus does what we call proactive authentication. This means that if an incoming request has a -credential then that request will always be authenticated (even if the target page does not require authentication). - -See xref:security-built-in-authentication.adoc#proactive-authentication[Proactive Authentication] for more information. - -== Authorization - -See xref:security-authorization.adoc[Security Authorization] for more information about Role Based Access Control and other authorization options. - -== Customization and other useful tips - -Quarkus Security is highly customizable. One can register custom ``HttpAuthenticationMechanism``s, ``IdentityProvider``s and ``SecurityidentityAugmentor``s. - -See xref:security-customization.adoc[Security Customization] for more information about customizing Quarkus Security and other useful tips about the reactive security, registering the security providers, etc. - -== Secure connections with SSL - -See the xref:http-reference#adoc[Supporting secure connections with SSL] guide for more information. - -== Cross-Origin Resource Sharing - -If you plan to make your Quarkus application accessible to another application running on a different domain, you will need to configure CORS (Cross-Origin Resource Sharing). Please read the xref:http-reference.adoc#cors-filter[HTTP CORS documentation] for more information. - -== SameSite cookies - -Please see xref:http-reference.adoc#same-site-cookie[SameSite cookies] for information about adding a https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite[SameSite] cookie property to any of the cookies set by a Quarkus endpoint. - -== Testing - -See xref:security-testing.adoc[Security Testing] for more information about testing Quarkus Security. - -== Secret Engines -=== Vault -Quarkus provides a very comprehensive HashiCorp Vault support, please see the link:{vault-guide}[Quarkus and HashiCorp Vault] documentation for more information. - -== Secure serialization - -When using Security along with RESTEasy Reactive and Jackson, Quarkus can limit the fields that are included in JSON serialization based on the configured security. See the xref:resteasy-reactive.adoc#secure-serialization[RESTEasy Reactive documentation] for details. - -== National Vulnerability Database - -Most of Quarkus tags have been registered in link:https://nvd.nist.gov[National Vulnerability Database] (NVD) using a Common Platform Enumeration (CPE) name format. -All registered Quarkus CPE names can be found using link:https://nvd.nist.gov/products/cpe/search/results?namingFormat=2.3&keyword=quarkus[this search query]. -If a Quarkus tag represented by the given CPE name entry is affected by some CVE then you'll be able to follow a provided link to that CVE. - -We will be asking the NVD CPE team to update the list as well as link Quarkus CPE name entries with the related CVEs on a regular basis. -If you work with the link:https://jeremylong.github.io/DependencyCheck/dependency-check-maven/[OWASP Dependency Check Plugin] which is using NVD feeds to detect the vulnerabilities at the application build time and see a false positive reported then please re-open link:https://github.com/quarkusio/quarkus/issues/2611[this issue] and provide the details. - -You can add `OWASP Dependency Check Plugin` to your project's `pom.xml` like this: - -[source,xml] ----- - - org.owasp - dependency-check-maven - ${owasp-dependency-check-plugin.version} - - - 7 - - ${project.basedir}/dependency-cpe-suppression.xml - - - ----- - -You can change `failBuildOnCVSS` value to detect less severe issues as well. - -A suppression list may vary depending on whether you'd like to keep checking the false positives to avoid missing something or not. -For example, it can look like this: - -[source,xml] ----- - - - - - - - - ^io\.netty:netty-tcnative-classes.*:.*$ - cpe:/a:netty:netty - - - - - - ^io\.quarkus:quarkus-mutiny.*:.*$ - cpe:/a:mutiny:mutiny - - - - - - ^io\.smallrye.reactive:mutiny.*:.*$ - cpe:/a:mutiny:mutiny - - - - - - ^io\.smallrye.reactive:smallrye-mutiny.*:.*$ - cpe:/a:mutiny:mutiny - - - - - - ^io\.smallrye.reactive:vertx-mutiny.*:.*$ - cpe:/a:mutiny:mutiny - - - - - - ^org\.graalvm\.sdk:graal-sdk:.*$ - cpe:/a:oracle:graalvm - - ----- - -Such a suppression list has to be carefully prepared and revisited from time to time. You should consider making individual suppressions time limited by adding an `until` tribute, for example: `...`. It will let you doublecheck that only the same known false positives are reported when the suppression period expires, and after reviewing the report you can set a new expiry date. - -Note link:https://jeremylong.github.io/DependencyCheck/dependency-check-maven/[OWASP Dependency Check Plugin] `6.5.3` or later should be used with Quarkus. diff --git a/_versions/2.7/guides/smallrye-fault-tolerance.adoc b/_versions/2.7/guides/smallrye-fault-tolerance.adoc deleted file mode 100644 index 8d50d3e8ff9..00000000000 --- a/_versions/2.7/guides/smallrye-fault-tolerance.adoc +++ /dev/null @@ -1,533 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= SmallRye Fault Tolerance - -include::./attributes.adoc[] - -One of the challenges brought by the distributed nature of microservices is that communication with external systems is -inherently unreliable. This increases demand on resiliency of applications. To simplify making more resilient -applications, Quarkus provides https://github.com/smallrye/smallrye-fault-tolerance/[SmallRye Fault Tolerance] an -implementation of the https://github.com/eclipse/microprofile-fault-tolerance/[MicroProfile Fault Tolerance] -specification. - -In this guide, we demonstrate usage of MicroProfile Fault Tolerance annotations such as `@Timeout`, `@Fallback`, -`@Retry` and `@CircuitBreaker`. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== The Scenario - -The application built in this guide simulates a simple backend for a gourmet coffee e-shop. It implements a REST -endpoint providing information about coffee samples we have on store. - -Let's imagine, although it's not implemented as such, that some of the methods in our endpoint require communication -to external services like a database or an external microservice, which introduces a factor of unreliability. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `microprofile-fault-tolerance-quickstart` {quickstarts-tree-url}/microprofile-fault-tolerance-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: microprofile-fault-tolerance-quickstart -:create-app-extensions: resteasy,smallrye-fault-tolerance,resteasy-jackson -include::includes/devtools/create-app.adoc[] - -This command generates a project, importing the extensions for RESTEasy/JAX-RS and SmallRye Fault Tolerance. - -If you already have your Quarkus project configured, you can add the `smallrye-fault-tolerance` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: smallrye-fault-tolerance -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-fault-tolerance - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-fault-tolerance") ----- - -== Preparing an Application: REST Endpoint and CDI Bean - -In this section we create a skeleton of our application, so that we have something that we can extend and to which -we can add fault tolerance features later on. - -First, create a simple entity representing a coffee sample in our store: - -[source,java] ----- -package org.acme.microprofile.faulttolerance; - -public class Coffee { - - public Integer id; - public String name; - public String countryOfOrigin; - public Integer price; - - public Coffee() { - } - - public Coffee(Integer id, String name, String countryOfOrigin, Integer price) { - this.id = id; - this.name = name; - this.countryOfOrigin = countryOfOrigin; - this.price = price; - } -} ----- - -Let's continue with a simple CDI bean, that would work as a repository of our coffee samples. - -[source,java] ----- -package org.acme.microprofile.faulttolerance; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class CoffeeRepositoryService { - - private Map coffeeList = new HashMap<>(); - - public CoffeeRepositoryService() { - coffeeList.put(1, new Coffee(1, "Fernandez Espresso", "Colombia", 23)); - coffeeList.put(2, new Coffee(2, "La Scala Whole Beans", "Bolivia", 18)); - coffeeList.put(3, new Coffee(3, "Dak Lak Filter", "Vietnam", 25)); - } - - public List getAllCoffees() { - return new ArrayList<>(coffeeList.values()); - } - - public Coffee getCoffeeById(Integer id) { - return coffeeList.get(id); - } - - public List getRecommendations(Integer id) { - if (id == null) { - return Collections.emptyList(); - } - return coffeeList.values().stream() - .filter(coffee -> !id.equals(coffee.id)) - .limit(2) - .collect(Collectors.toList()); - } -} ----- - -Finally, create the `org.acme.microprofile.faulttolerance.CoffeeResource` class as follows: - -[source,java] ----- -package org.acme.microprofile.faulttolerance; - -import java.util.List; -import java.util.Random; -import java.util.concurrent.atomic.AtomicLong; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.jboss.logging.Logger; - -@Path("/coffee") -public class CoffeeResource { - - private static final Logger LOGGER = Logger.getLogger(CoffeeResource.class); - - @Inject - CoffeeRepositoryService coffeeRepository; - - private AtomicLong counter = new AtomicLong(0); - - @GET - public List coffees() { - final Long invocationNumber = counter.getAndIncrement(); - - maybeFail(String.format("CoffeeResource#coffees() invocation #%d failed", invocationNumber)); - - LOGGER.infof("CoffeeResource#coffees() invocation #%d returning successfully", invocationNumber); - return coffeeRepository.getAllCoffees(); - } - - private void maybeFail(String failureLogMessage) { - if (new Random().nextBoolean()) { - LOGGER.error(failureLogMessage); - throw new RuntimeException("Resource failure."); - } - } -} ----- - -At this point, we expose a single REST method that will show a list of coffee samples in a JSON format. Note -that we introduced some fault making code in our `CoffeeResource#maybeFail()` method, which is going to cause failures -in the `CoffeeResource#coffees()` endpoint method in about 50 % of requests. - -Why not check that our application works? Run the Quarkus development server with: - -include::includes/devtools/dev.adoc[] - -and open `http://localhost:8080/coffee` in your browser. Make couple of requests (remember, some of them we expect -to fail). At least some of the requests should show us the list of our coffee samples in JSON, the rest will fail -with a `RuntimeException` thrown in `CoffeeResource#maybeFail()`. - -Congratulations, you've just made a working (although somewhat unreliable) Quarkus application! - -== Adding Resiliency: Retries - -Let the Quarkus development server running and in your IDE add the `@Retry` annotation to the `CoffeeResource#coffees()` -method as follows and save the file: - -[source,java] ----- -import org.eclipse.microprofile.faulttolerance.Retry; -... - -public class CoffeeResource { - ... - @GET - @Retry(maxRetries = 4) - public List coffees() { - ... - } - ... -} ----- - -Hit refresh in your browser. The Quarkus development server will automatically detect the changes -and recompile the app for you, so there's no need to restart it. - -You can hit refresh couple more times. Practically all requests should now be succeeding. The `CoffeeResource#coffees()` -method is still in fact failing in about 50 % of time, but every time it happens, the platform will automatically retry -the call! - -To see that that the failures still happen, check the output of the development server. The log messages should be -similar to these: - -[source] ----- -2019-03-06 12:17:41,725 INFO [org.acm.fau.CoffeeResource] (XNIO-1 task-1) CoffeeResource#coffees() invocation #5 returning successfully -2019-03-06 12:17:44,187 INFO [org.acm.fau.CoffeeResource] (XNIO-1 task-1) CoffeeResource#coffees() invocation #6 returning successfully -2019-03-06 12:17:45,166 ERROR [org.acm.fau.CoffeeResource] (XNIO-1 task-1) CoffeeResource#coffees() invocation #7 failed -2019-03-06 12:17:45,172 ERROR [org.acm.fau.CoffeeResource] (XNIO-1 task-1) CoffeeResource#coffees() invocation #8 failed -2019-03-06 12:17:45,176 INFO [org.acm.fau.CoffeeResource] (XNIO-1 task-1) CoffeeResource#coffees() invocation #9 returning successfully ----- - -You can see that every time an invocation fails, it's immediately followed by another invocation, until one succeeds. -Since we allowed 4 retries, it would require 5 invocations to fail in a row, in order for the user to be actually exposed -to a failure. Which is fairly unlikely to happen. - -== Adding Resiliency: Timeouts - -So what else have we got in MicroProfile Fault Tolerance? Let's look into timeouts. - -Add following two methods to our `CoffeeResource` endpoint. Again, no need to restart the server, just paste the code -and save the file. - -[source,java] ----- -import org.jboss.resteasy.annotations.jaxrs.PathParam; -import org.eclipse.microprofile.faulttolerance.Timeout; -... -public class CoffeeResource { - ... - @GET - @Path("/{id}/recommendations") - @Timeout(250) - public List recommendations(@PathParam int id) { - long started = System.currentTimeMillis(); - final long invocationNumber = counter.getAndIncrement(); - - try { - randomDelay(); - LOGGER.infof("CoffeeResource#recommendations() invocation #%d returning successfully", invocationNumber); - return coffeeRepository.getRecommendations(id); - } catch (InterruptedException e) { - LOGGER.errorf("CoffeeResource#recommendations() invocation #%d timed out after %d ms", - invocationNumber, System.currentTimeMillis() - started); - return null; - } - } - - private void randomDelay() throws InterruptedException { - Thread.sleep(new Random().nextInt(500)); - } -} ----- - -We added some new functionality. We want to be able to recommend some related coffees based on a coffee that a user -is currently looking at. It's not a critical functionality, it's a nice-to-have. When the system is overloaded and the -logic behind obtaining recommendations takes too long to execute, we would rather time out and render the UI without -recommendations. - -Note that the timeout was configured to 250 ms, and a random artificial delay between 0 to 500 ms was introduced -into the `CoffeeResource#recommendations()` method. - -In your browser, go to `http://localhost:8080/coffee/2/recommendations` and hit refresh a couple of times. - -You should see some requests time out with `org.eclipse.microprofile.faulttolerance.exceptions.TimeoutException`. -Requests that do not time out should show two recommended coffee samples in JSON. - -== Adding Resiliency: Fallbacks - -Let's make our recommendations feature even better by providing a fallback (and presumably faster) way of getting related -coffees. - -Add a fallback method to `CoffeeResource` and a `@Fallback` annotation to `CoffeeResource#recommendations()` method -as follows: - -[source,java] ----- -import java.util.Collections; -import org.jboss.resteasy.annotations.jaxrs.PathParam; -import org.eclipse.microprofile.faulttolerance.Fallback; - -... -public class CoffeeResource { - ... - @Fallback(fallbackMethod = "fallbackRecommendations") - public List recommendations(@PathParam int id) { - ... - } - - public List fallbackRecommendations(int id) { - LOGGER.info("Falling back to RecommendationResource#fallbackRecommendations()"); - // safe bet, return something that everybody likes - return Collections.singletonList(coffeeRepository.getCoffeeById(1)); - } - ... -} ----- - -Hit refresh several times on `http://localhost:8080/coffee/2/recommendations`. -The `TimeoutException` should not appear anymore. Instead, in case of a timeout, the page will -display a single recommendation that we hardcoded in our fallback method `fallbackRecommendations()`, rather than -two recommendations returned by the original method. - -Check the server output to see that fallback is really happening: - -[source] ----- -2020-01-09 13:21:34,250 INFO [org.acm.fau.CoffeeResource] (executor-thread-1) CoffeeResource#recommendations() invocation #1 returning successfully -2020-01-09 13:21:36,354 ERROR [org.acm.fau.CoffeeResource] (executor-thread-1) CoffeeResource#recommendations() invocation #2 timed out after 250 ms -2020-01-09 13:21:36,355 INFO [org.acm.fau.CoffeeResource] (executor-thread-1) Falling back to RecommendationResource#fallbackRecommendations() ----- - -NOTE: The fallback method is required to have the same parameters as the original method. - -== Adding Resiliency: Circuit Breaker - -A circuit breaker is useful for limiting number of failures happening in the system, when part of the system becomes -temporarily unstable. The circuit breaker records successful and failed invocations of a method, and when the ratio -of failed invocations reaches the specified threshold, the circuit breaker _opens_ and blocks all further invocations -of that method for a given time. - -Add the following code into the `CoffeeRepositoryService` bean, so that we can demonstrate a circuit breaker in action: - -[source,java] ----- -import java.util.concurrent.atomic.AtomicLong; -import org.eclipse.microprofile.faulttolerance.CircuitBreaker; -... - -public class CoffeeRepositoryService { - ... - - private AtomicLong counter = new AtomicLong(0); - - @CircuitBreaker(requestVolumeThreshold = 4) - public Integer getAvailability(Coffee coffee) { - maybeFail(); - return new Random().nextInt(30); - } - - private void maybeFail() { - // introduce some artificial failures - final Long invocationNumber = counter.getAndIncrement(); - if (invocationNumber % 4 > 1) { // alternate 2 successful and 2 failing invocations - throw new RuntimeException("Service failed."); - } - } -} ----- - -And inject the code below into the `CoffeeResource` endpoint: - -[source,java] ----- -public class CoffeeResource { - ... - @Path("/{id}/availability") - @GET - public Response availability(@PathParam int id) { - final Long invocationNumber = counter.getAndIncrement(); - - Coffee coffee = coffeeRepository.getCoffeeById(id); - // check that coffee with given id exists, return 404 if not - if (coffee == null) { - return Response.status(Response.Status.NOT_FOUND).build(); - } - - try { - Integer availability = coffeeRepository.getAvailability(coffee); - LOGGER.infof("CoffeeResource#availability() invocation #%d returning successfully", invocationNumber); - return Response.ok(availability).build(); - } catch (RuntimeException e) { - String message = e.getClass().getSimpleName() + ": " + e.getMessage(); - LOGGER.errorf("CoffeeResource#availability() invocation #%d failed: %s", invocationNumber, message); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR) - .entity(message) - .type(MediaType.TEXT_PLAIN_TYPE) - .build(); - } - } - ... -} ----- - -We added another functionality - the application can return the amount of remaining packages of given coffee on our store -(just a random number). - -This time an artificial failure was introduced in the CDI bean: the `CoffeeRepositoryService#getAvailability()` method is -going to alternate between two successful and two failed invocations. - -We also added a `@CircuitBreaker` annotation with `requestVolumeThreshold = 4`. `CircuitBreaker.failureRatio` is -by default 0.5, and `CircuitBreaker.delay` is by default 5 seconds. That means that a circuit breaker will open -when 2 of the last 4 invocations failed and it will stay open for 5 seconds. - -To test this out, do the following: - -1. Go to `http://localhost:8080/coffee/2/availability` in your browser. You should see a number being returned. -2. Hit refresh, this second request should again be successful and return a number. -3. Refresh two more times. Both times you should see text "RuntimeException: Service failed.", which is the exception - thrown by `CoffeeRepositoryService#getAvailability()`. -4. Refresh a couple more times. Unless you waited too long, you should again see exception, but this time it's - "CircuitBreakerOpenException: getAvailability". This exception indicates that the circuit breaker opened - and the `CoffeeRepositoryService#getAvailability()` method is not being called anymore. -5. Give it 5 seconds during which circuit breaker should close and you should be able to make two successful requests - again. - -== Runtime configuration - -You can override the annotations parameters at runtime inside your `application.properties` file. - -If we take the retry example that we already saw: - -[source,java] ----- -package org.acme; - -import org.eclipse.microprofile.faulttolerance.Retry; -... - -public class CoffeeResource { - ... - @GET - @Retry(maxRetries = 4) - public List coffees() { - ... - } - ... -} ----- - -We can override the `maxRetries` parameter with 6 retries instead of 4 by the following configuration item: -[source,properties] ----- -org.acme.CoffeeResource/coffees/Retry/maxRetries=6 ----- - -NOTE: The format is `fully-qualified-class-name/method-name/annotation-name/property-name=value`. -You can also configure a property for all the annotation via `annotation-name/property-name=value`. - -== Conclusion - -SmallRye Fault Tolerance allows to improve resiliency of your application, without having an impact on the complexity -of our business logic. - -All that is needed to enable the fault tolerance features in Quarkus is: - -:devtools-wrapped: -* adding the `smallrye-fault-tolerance` Quarkus extension to your project using the `quarkus-maven-plugin`: -+ -include::includes/devtools/extension-add.adoc[] -* or simply adding the following Maven dependency: -+ -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-fault-tolerance - ----- -+ -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-fault-tolerance") ----- -:!devtools-wrapped: - -== Additional resources - -SmallRye Fault Tolerance has more features than shown here. -Please check the link:https://smallrye.io/docs/smallrye-fault-tolerance/5.2.0/index.html[SmallRye Fault Tolerance documentation] to learn about them. - -In Quarkus, you can use the SmallRye Fault Tolerance optional features out of the box. - -Support for Mutiny is present, so your asynchronous methods can return `Uni` in addition to `CompletionStage`. - -MicroProfile Context Propagation is integrated with Fault Tolerance, so existing contexts are automatically propagated to your asynchronous methods. - -[NOTE] -==== -This also applies to the CDI request context: if it is active on the original thread, it is propagated to the new thread, but if it's not, then the new thread won't have it either. -This is contrary to MicroProfile Fault Tolerance specification, which states that the request context must be active during the `@Asynchronous` method invocation. - -We believe that in presence of MicroProfile Context Propagation, this requirement should not apply. -The entire point of context propagation is to make sure the new thread has the same contexts as the original thread. -==== - -Non-compatible mode is enabled by default, so methods that return `CompletionStage` (or `Uni`) have asynchronous fault tolerance applied without any `@Asynchronous`, `@Blocking` or `@NonBlocking` annotation. - -[NOTE] -==== -This mode is not compatible with the MicroProfile Fault Tolerance specification, albeit the incompatibility is very small. -To restore full compatibility, add this configuration property: - -[source,properties] ----- -smallrye.faulttolerance.mp-compatibility=true ----- -==== diff --git a/_versions/2.7/guides/smallrye-graphql-client.adoc b/_versions/2.7/guides/smallrye-graphql-client.adoc deleted file mode 100644 index 72a3ceef280..00000000000 --- a/_versions/2.7/guides/smallrye-graphql-client.adoc +++ /dev/null @@ -1,352 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= SmallRye GraphQL Client - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can use the GraphQL client library. -The client is implemented by the https://github.com/smallrye/smallrye-graphql/[SmallRye GraphQL] project. -This guide is specifically geared towards the client side, so if you need an introduction to GraphQL in -general, first refer to the xref:smallrye-graphql.adoc[SmallRye GraphQL guide], which provides an introduction -to the GraphQL query language, general concepts and server-side development. - -The guide will walk you through developing and running a simple application that uses both supported -types of GraphQL clients to retrieve data from a remote resource, that being a database related to Star Wars. -It's available at https://graphql.org/swapi-graphql[this webpage] if you want to experiment with it manually. -The web UI allows you to write and execute GraphQL queries against it. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== GraphQL client types introduction - -Two types of GraphQL clients are supported. - -The *typesafe* client works very much like the MicroProfile REST Client adjusted for calling GraphQL endpoints. -A client instance is basically a proxy that you can call like a regular Java object, but under the hood, -the call will be translated to a GraphQL operation. It works with domain classes directly. -Any input and output objects for the operation will be translated to/from their representations -in the GraphQL query language. - -The *dynamic* client, on the other hand, works rather like an equivalent of the JAX-RS client -from the `javax.ws.rs.client` package. It does not require the domain classes to work, it works with -abstract representations of GraphQL documents instead. Documents are built using a domain-specific language (DSL). -The exchanged objects are treated as an abstract `JsonObject`, but, when necessary, -it is possible to convert them to concrete model objects (if suitable model classes are available). - -The typesafe client can be viewed as a rather high-level and more declarative approach designed for ease of use, -whereas the dynamic client is lower-level, more imperative, somewhat more verbose to use, but allows finer grained -control over operations and responses. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `microprofile-graphql-client-quickstart` {quickstarts-tree-url}/microprofile-graphql-client-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: microprofile-graphql-client-quickstart -:create-app-extensions: resteasy-reactive-jsonb,graphql-client,rest-client-reactive -include::includes/devtools/create-app.adoc[] - -NOTE: The typesafe GraphQL client depends on REST client, thus we included the `rest-client-reactive` extension -in the `extensions` list. You may also switch to the traditional non-reactive `rest-client` if the rest of -your application depends on the non-reactive RESTEasy stack (you can't mix reactive and non-reactive RESTEasy). -If you're only going to use the dynamic GraphQL client and don't use RESTEasy in your application, -you may leave out the REST client dependency completely. -This command generates a project, importing the `smallrye-graphql-client` extension. - -If you already have your Quarkus project configured, you can add the `smallrye-graphql-client` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: graphql-client,rest-client-reactive -include::includes/devtools/extension-add.adoc[] - -Again, you may leave out `rest-client-reactive` if you're only going to use the dynamic client. - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-graphql-client - - - io.quarkus - quarkus-rest-client-reactive - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-graphql-client") -implementation("io.quarkus:quarkus-rest-client-reactive") ----- - -== The application - -The application we will build makes use of both types of GraphQL clients. In both cases, -they will connect to the Star Wars service at https://graphql.org/swapi-graphql[SWAPI] and -query it for a list of Star Wars films, and, for each film, the names of the planets which -appear in that film. - -The corresponding GraphQL query looks like this: - -[source] ----- -{ - allFilms { - films { - title - planetConnection { - planets { - name - } - } - } - } -} ----- - -You may go to https://graphql.org/swapi-graphql[the webpage] to execute this query manually. - -== Using the Typesafe client - -To use the typesafe client, we need the corresponding model classes that are compatible with -the schema. There are two ways to obtain them. First is to use the client generator offered by SmallRye GraphQL, -which generates classes from the schema document and a list of queries. This generator is considered highly -experimental for now, and is not covered in this example. If interested, refer to the -https://github.com/smallrye/smallrye-graphql/tree/main/client/generator[Client Generator] and its documentation. - -In this example, we will create a slimmed down version of the model classes manually, with only the fields -that we need, and ignore all the stuff that we don't need. We will need the classes for `Film` and `Planet`. -But, the service is also using specific wrappers named `FilmConnection` and `PlanetConnection`, which, -for our purpose, will serve just to contain the actual list of `Film` and `Planet` instances, respectively. - -Let's create all the model classes and put them into the `org.acme.microprofile.graphql.client.model` package: - -[source,java] ----- -public class FilmConnection { - - private List films; - - public List getFilms() { - return films; - } - - public void setFilms(List films) { - this.films = films; - } -} - -public class Film { - - private String title; - - private PlanetConnection planetConnection; - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public PlanetConnection getPlanetConnection() { - return planetConnection; - } - - public void setPlanetConnection(PlanetConnection planetConnection) { - this.planetConnection = planetConnection; - } -} - -public class PlanetConnection { - - private List planets; - - public List getPlanets() { - return planets; - } - - public void setPlanets(List planets) { - this.planets = planets; - } - -} - -public class Planet { - - private String name; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } -} ----- - -Now that we have the model classes, we can create the interface that represents the actual set -of operations we want to call on the remote GraphQL service. - ----- -@GraphQLClientApi(configKey = "star-wars-typesafe") -public interface StarWarsClientApi { - - FilmConnection allFilms(); - -} ----- - -For simplicity, we're only calling the query named `allFilms`. We named our corresponding method -`allFilms` too. If we named the method differently, we would need to annotate it with -`@Query(value="allFilms")` to specify the name of the query that should be executed when this -method is called. - -The client also needs some configuration, namely at least the URL of the remote service. We can either -specify that within the `@GraphQLClientApi` annotation (by setting the `endpoint` parameter), -or move this over to the configuration file, `application.properties`: - ----- -quarkus.smallrye-graphql-client.star-wars-typesafe.url=https://swapi-graphql.netlify.app/.netlify/functions/index ----- - -`star-wars-typesafe` is the name of the configured client instance, and corresponds to the `configKey` -in the `@GraphQLClientApi` annotation. If you don't want to specify a custom name, you can leave -out the `configKey`, and then refer to it by using the fully qualified name of the interface. - -Now that we have the client instance properly configured, we need a way to have it -perform something when we start the application. For that, we will use a REST endpoint that, -when called by a user, obtains the client instance and lets it execute the query. - -[source, java] ----- -@Path("/") -public class StarWarsResource { - @Inject - StarWarsClientApi typesafeClient; - - @GET - @Path("/typesafe") - @Produces(MediaType.APPLICATION_JSON) - @Blocking - public List getAllFilmsUsingTypesafeClient() { - return typesafeClient.allFilms().getFilms(); - } -} ----- - -With this REST endpoint included in your application, you can simply send a GET request to `/typesafe`, -and the application will use an injected typesafe client instance to call the remote service, obtain -the films and planets, and return the JSON representation of the resulting list. - -== Using the Dynamic client - -For the dynamic client, the model classes are optional, because we can work with abstract -representations of the GraphQL types and documents. The client API interface is not needed at all. - -We still need to configure the URL for the client, so let's put this into `application.properties`: ----- -quarkus.smallrye-graphql-client.star-wars-dynamic.url=https://swapi-graphql.netlify.app/.netlify/functions/index ----- - -We decided to name the client `star-wars-dynamic`. We will use this name when injecting a dynamic client -to properly qualify the injection point. - -If you need to add an authorization header, or any other custom HTTP header (in our case -it's not required), this can be done by: ----- -quarkus.smallrye-graphql-client.star-wars-dynamic.header.HEADER-KEY=HEADER-VALUE" ----- - -Add this to the `StarWarsResource` created earlier: - -[source,java] ----- -import static io.smallrye.graphql.client.core.Document.document; -import static io.smallrye.graphql.client.core.Field.field; -import static io.smallrye.graphql.client.core.Operation.operation; - -// .... - -@Inject -@GraphQLClient("star-wars-dynamic") // <1> -DynamicGraphQLClient dynamicClient; - -@GET -@Path("/dynamic") -@Produces(MediaType.APPLICATION_JSON) -@Blocking -public List getAllFilmsUsingDynamicClient() throws Exception { - Document query = document( // <2> - operation( - field("allFilms", - field("films", - field("title"), - field("planetConnection", - field("planets", - field("name") - ) - ) - ) - ) - ) - ); - Response response = dynamicClient.executeSync(query); <3> - return response.getObject(FilmConnection.class, "allFilms").getFilms(); <4> -} ----- - -<1> Qualifies the injection point so that we know which named client needs to be injected here. - -<2> Here we build a document representing the GraphQL query, using the provided DSL language. -We use static imports to make the code easier to read. The DSL is designed in a way that -it looks quite similar to writing a GraphQL query as a string. - -<3> Execute the query and block while waiting for the response. There is also an asynchronous -variant that returns a `Uni`. - -<4> Here we did the optional step of converting the response to instances of our model classes, -because we have the classes available. If you don't have the classes available or don't want to -use them, simply calling `response.getData()` would get you a `JsonObject` representing -all the returned data. - -== Running the application - -Launch the application in dev mode using: - -include::includes/devtools/dev.adoc[] - -To execute the queries, you need to send GET requests to our REST endpoint: -[source,bash] ----- -curl -s http://localhost:8080/dynamic # to use the dynamic client -curl -s http://localhost:8080/typesafe # to use the typesafe client ----- - -Whether you use dynamic or typesafe, the result should be the same. -If the JSON document is hard to read, you might want to run it through a tool that -formats it for better readability by humans, for example by piping the output through `jq`. - -== Conclusion - -This example showed how to use both the dynamic and typesafe GraphQL clients to call an external -GraphQL service and explained the difference between the client types. diff --git a/_versions/2.7/guides/smallrye-graphql.adoc b/_versions/2.7/guides/smallrye-graphql.adoc deleted file mode 100644 index 5b59e4ae6cd..00000000000 --- a/_versions/2.7/guides/smallrye-graphql.adoc +++ /dev/null @@ -1,853 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= SmallRye GraphQL - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can use https://github.com/smallrye/smallrye-graphql/[SmallRye GraphQL], -an implementation of the https://github.com/eclipse/microprofile-graphql/[MicroProfile GraphQL] specification. - -As the https://www.graphql.org/[GraphQL] specification website states: - -[quote,] -GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. -GraphQL provides a complete and understandable description of the data in your API, -gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, -and enables powerful developer tools. - -**GraphQL** was originally developed by **Facebook** in 2012 and has been -an open standard since 2015. - -GraphQL is not a replacement for REST API specification but merely an -alternative. Unlike REST, GraphQL API's have the ability to benefit the client by: - -Preventing Over-fetching and Under-fetching:: - REST API's are server-driven fixed data responses that cannot be determined by - the client. Although the client does not require all the fields the client - must retrieve all the data hence `Over-fetching`. A client may also require - multiple REST API calls according to the first call (HATEOAS) to retrieve - all the data that is required thereby `Under-fetching`. - -API Evolution:: - Since GraphQL API's returns data that are requested by the client adding additional - fields and capabilities to existing API will not create breaking changes to existing - clients. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this guide, we build a simple GraphQL application that exposes a GraphQL API -at `/graphql`. - -This example was inspired by a popular GraphQL API. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `microprofile-graphql-quickstart` {quickstarts-tree-url}/microprofile-graphql-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: microprofile-graphql-quickstart -:create-app-extensions: resteasy,graphql -include::includes/devtools/create-app.adoc[] - -This command generates a project, importing the `smallrye-graphql` extension. - -If you already have your Quarkus project configured, you can add the `smallrye-graphql` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: graphql -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-graphql - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-graphql") ----- - -== Preparing an Application: GraphQL API - -In this section we will start creating the GraphQL API. - -First, create the following entities representing a film from a galaxy far far away: - -[source,java] ----- -package org.acme.microprofile.graphql; - -public class Film { - - public String title; - public Integer episodeID; - public String director; - public LocalDate releaseDate; - -} - -public class Hero { - - public String name; - public String surname; - public Double height; - public Integer mass; - public Boolean darkSide; - public LightSaber lightSaber; - public List episodeIds = new ArrayList<>(); - -} - -enum LightSaber { - RED, BLUE, GREEN -} ----- - -NOTE: For readability we use classes with public fields, but classes with private fields with public getters and setters will also work. - -The classes we have just created describe the GraphQL schema which is a -set of possible data (objects, fields, relationships) that a client can access. - -Let's continue with an example CDI bean, that would work as a repository: - -[source,java] ----- -@ApplicationScoped -public class GalaxyService { - - private List heroes = new ArrayList<>(); - - private List films = new ArrayList<>(); - - public GalaxyService() { - - Film aNewHope = new Film(); - aNewHope.title = "A New Hope"; - aNewHope.releaseDate = LocalDate.of(1977, Month.MAY, 25); - aNewHope.episodeID = 4; - aNewHope.director = "George Lucas"; - - Film theEmpireStrikesBack = new Film(); - theEmpireStrikesBack.title = "The Empire Strikes Back"; - theEmpireStrikesBack.releaseDate = LocalDate.of(1980, Month.MAY, 21); - theEmpireStrikesBack.episodeID = 5; - theEmpireStrikesBack.director = "George Lucas"; - - Film returnOfTheJedi = new Film(); - returnOfTheJedi.title = "Return Of The Jedi"; - returnOfTheJedi.releaseDate = LocalDate.of(1983, Month.MAY, 25); - returnOfTheJedi.episodeID = 6; - returnOfTheJedi.director = "George Lucas"; - - films.add(aNewHope); - films.add(theEmpireStrikesBack); - films.add(returnOfTheJedi); - - Hero luke = new Hero(); - luke.name = "Luke"; - luke.surname = "Skywalker"; - luke.height = 1.7; - luke.mass = 73; - luke.lightSaber = LightSaber.GREEN; - luke.darkSide = false; - luke.episodeIds.addAll(Arrays.asList(4, 5, 6)); - - Hero leia = new Hero(); - leia.name = "Leia"; - leia.surname = "Organa"; - leia.height = 1.5; - leia.mass = 51; - leia.darkSide = false; - leia.episodeIds.addAll(Arrays.asList(4, 5, 6)); - - - Hero vader = new Hero(); - vader.name = "Darth"; - vader.surname = "Vader"; - vader.height = 1.9; - vader.mass = 89; - vader.darkSide = true; - vader.lightSaber = LightSaber.RED; - vader.episodeIds.addAll(Arrays.asList(4, 5, 6)); - - heroes.add(luke); - heroes.add(leia); - heroes.add(vader); - - } - - public List getAllFilms() { - return films; - } - - public Film getFilm(int id) { - return films.get(id); - } - - public List getHeroesByFilm(Film film) { - return heroes.stream() - .filter(hero -> hero.episodeIds.contains(film.episodeID)) - .collect(Collectors.toList()); - } - - public void addHero(Hero hero) { - heroes.add(hero); - } - - public Hero deleteHero(int id) { - return heroes.remove(id); - } - - public List getHeroesBySurname(String surname) { - return heroes.stream() - .filter(hero -> hero.surname.equals(surname)) - .collect(Collectors.toList()); - } -} ----- - -Now, let's create our first GraphQL API. - -Edit the `org.acme.microprofile.graphql.FilmResource` class as following: - -[source,java] ----- -@GraphQLApi // <1> -public class FilmResource { - - @Inject - GalaxyService service; - - @Query("allFilms") // <2> - @Description("Get all Films from a galaxy far far away") // <3> - public List getAllFilms() { - return service.getAllFilms(); - } -} ----- - -<1> `@GraphQLApi` annotation indicates that the CDI bean will be a GraphQL endpoint -<2> `@Query` annotation defines that this method will be queryable with the name `allFilms` -<3> Documentation of the queryable method - -TIP: The value of the `@Query` annotation is optional and would implicitly -be defaulted to the method name if absent. - -This way we have created our first queryable API which we will later expand. - -== Launch - -Launch the quarkus application in dev mode: - -include::includes/devtools/dev.adoc[] - -== Introspect - -The full schema of the GraphQL API can be retrieved by calling the following: - -[source,bash] ----- -curl http://localhost:8080/graphql/schema.graphql ----- - -The server will return the complete schema of the GraphQL API. - -[[ui]] -== GraphiQL UI - -NOTE: Experimental - not included in the MicroProfile specification - -GraphiQL UI is a great tool permitting easy interaction with your GraphQL APIs. - -The Quarkus `smallrye-graphql` extension ships with `GraphiQL` and enables it by default in `dev` and `test` modes, -but it can also be explicitly configured for `production` mode as well. - -GraphiQL can be accessed from http://localhost:8080/q/graphql-ui/ . - -image:graphql-ui-screenshot01.png[alt=GraphQL UI] - -Have a look at the link:security-authorization[Authorization of Web Endpoints] Guide on how to add/remove security for the GraphQL UI. - -== Query the GraphQL API - -Now visit the GraphiQL page that has been deployed in `dev` mode. - -Enter the following query to GraphiQL and press the `play` button: - -[source, graphql] ----- -query allFilms { - allFilms { - title - director - releaseDate - episodeID - } -} ----- - -Since our query contains all the fields in the `Film` class -we will retrieve all the fields in our response. Since GraphQL API -responses are client determined, the client can choose which fields -it will require. - -Let's assume that our client only requires `title` and `releaseDate` -making the previous call to the API `Over-fetching` of unnecessary -data. - -Enter the following query into GraphiQL and hit the `play` button: - -[source, graphql] ----- -query allFilms { - allFilms { - title - releaseDate - } -} ----- - -Notice in the response we have only retrieved the required fields. -Therefore, we have prevented `Over-fetching`. - -Let's continue to expand our GraphQL API by adding the following to the -`FilmResource` class. - -[source,java] ----- - @Query - @Description("Get a Films from a galaxy far far away") - public Film getFilm(@Name("filmId") int id) { - return service.getFilm(id); - } ----- - -WARNING: Notice how we have excluded the value in the `@Query` annotation. -Therefore, the name of the query is implicitly set as the method name -excluding the `get`. - -This query will allow the client to retrieve the film by id, and the `@Name` annotation on the parameter -changes the parameter name to `filmId` rather than the default `id` that it would be if you omit the `@Name` annotation. - -Enter the following into `GraphiQL` and make a request. - -[source, graphql] ----- -query getFilm { - film(filmId: 1) { - title - director - releaseDate - episodeID - } -} ----- - -The `film` query method requested fields can be determined -as such in our previous example. This way we can retrieve individual -film information. - -However, say our client requires both films with filmId `0` and `1`. -In a REST API the client would have to make two calls to the API. -Therefore, the client would be `Under-fetching`. - -In GraphQL it is possible to make multiple queries at once. - -Enter the following into GraphiQL to retrieve two films: - -[source, graphql] ----- -query getFilms { - film0: film(filmId: 0) { - title - director - releaseDate - episodeID - } - film1: film(filmId: 1) { - title - director - releaseDate - episodeID - } -} ----- - -This enabled the client to fetch the required data in a single request. - -== Expanding the API - -Until now, we have created a GraphQL API to retrieve film data. -We now want to enable the clients to retrieve the `Hero` data of the `Film`. - -Add the following to our `FilmResource` class: - -[source,java] ----- - public List heroes(@Source Film film) { // <1> - return service.getHeroesByFilm(film); - } ----- - -<1> Enable `List` data to be added to queries that respond with `Film` - -By adding this method we have effectively changed the schema of the GraphQL API. -Although the schema has changed the previous queries will still work. -Since we only expanded the API to be able to retrieve the `Hero` data of the `Film`. - -Enter the following into GraphiQL to retrieve the film and hero data. - -[source,graphql] ----- -query getFilmHeroes { - film(filmId: 1) { - title - director - releaseDate - episodeID - heroes { - name - height - mass - darkSide - lightSaber - } - } -} ----- - -The response now includes the heroes of the film. - -=== Batching - -When you are exposing a `Collection` return like our `getAllFilms`, you might want to use the batch form of the above, to more efficiently fetch -the heroes: - -[source,java] ----- - public List> heroes(@Source List films) { // <1> - // Here fetch all hero lists - } ----- - -<1> Here receive the films as a batch, allowing you to fetch the corresponding heroes. - -=== Reactive - -Queries can be made reactive by using `Uni`, or `CompletionStage` as a return type, for example: - -[source,java] ----- - @Query - @Description("Get a Films from a galaxy far far away") - public Uni getFilm(int filmId) { - // ... - } ----- - -NOTE: Due to the underlying library, graphql-java, `Uni` is creating a `CompletionStage` under the hood. - -Or you can use `CompletionStage`: - -[source,java] ----- - @Query - @Description("Get a Films from a galaxy far far away") - public CompletionStage getFilm(int filmId) { - // ... - } ----- - -Using `Uni` or `CompletionStage` means that when a request contains more than one query, they will be executed concurrently. - -For instance, the query below will fetch `film0` and `film1` concurrently: - -[source, graphql] ----- -query getFilms { - film0: film(filmId: 0) { - title - director - releaseDate - episodeID - } - film1: film(filmId: 1) { - title - director - releaseDate - episodeID - } -} ----- - -== Mutations - -Mutations are used when data is created, updated or deleted. - -Let's now add the ability to add and delete heroes to our GraphQL API. - -Add the following to our `FilmResource` class: - -[source,java] ----- - @Mutation - public Hero createHero(Hero hero) { - service.addHero(hero); - return hero; - } - - @Mutation - public Hero deleteHero(int id) { - return service.deleteHero(id); - } ----- - -Enter the following into `GraphiQL` to insert a `Hero`: - -[source,graphql] ----- -mutation addHero { - createHero(hero: { - name: "Han", - surname: "Solo" - height: 1.85 - mass: 80 - darkSide: false - episodeIds: [4, 5, 6] - } - ) - { - name - surname - } -} ----- - -By using this mutation we have created a `Hero` entity in our service. - -Notice how in the response we have retrieved the `name` and `surname` -of the created Hero. This is because we selected to retrieve -these fields in the response within the `{ }` in the mutation query. -This can easily be a server side generated field that the client may require. - -Let's now try deleting an entry: - -[source,graphql] ----- -mutation DeleteHero { - deleteHero(id :3){ - name - surname - } -} ----- - -Similar to the `createHero` mutation method we also retrieve the `name` and -`surname` of the hero we have deleted which is defined in `{ }`. - -== Subscriptions - -Subscriptions allows you to subscribe to a query. It allows you to receive events. - -NOTE: Subscription is currently still considered experimental. - -Example: We want to know when new Heroes are being created: - -[source,java] ----- - - BroadcastProcessor processor = BroadcastProcessor.create(); // <1> - - @Mutation - public Hero createHero(Hero hero) { - service.addHero(hero); - processor.onNext(hero); // <2> - return hero; - } - - @Subscription - public Multi heroCreated(){ - return processor; // <3> - } - ----- - -<1> The `Multi` processor that will broadcast any new Heros -<2> When adding a new Hero, also broadcast it -<3> Make the stream available in the schema and as a WebSocket during runtime - - -Any client that now connect to the `/graphql` WebSocket connection will receive events on new Heroes being created: - -[source,graphql] ----- - -subscription ListenForNewHeroes { - heroCreated { - name - surname - } -} - ----- - -== Creating Queries by fields - -Queries can also be done on individual fields. For example, let's -create a method to query heroes by their last name. - -Add the following to our `FilmResource` class: - -[source,java] ----- - @Query - public List getHeroesWithSurname(@DefaultValue("Skywalker") String surname) { - return service.getHeroesBySurname(surname); - } ----- - -By using the `@DefaultValue` annotation we have determined that the surname value -will be `Skywalker` when the parameter is not provided. - -Test the following queries with GraphiQL: - -[source,graphql] ----- -query heroWithDefaultSurname { - heroesWithSurname{ - name - surname - lightSaber - } -} -query heroWithSurnames { - heroesWithSurname(surname: "Vader") { - name - surname - lightSaber - } -} ----- - -== Context - -You can get information about the GraphQL request anywhere in your code, using this experimental, SmallRye specific feature: - -[source,java] ----- -@Inject -Context context; ----- - -or as a parameter in your method if you are in the `GraphQLApi` class, for instance: - -[source,java] ----- - @Query - @Description("Get a Films from a galaxy far far away") - public Film getFilm(Context context, int filmId) { - // ... - } ----- - -The context object allows you to get: - -- the original request (Query/Mutation) -- the arguments -- the path -- the selected fields -- any variables - -This allows you to optimize the downstream queries to the datastore. - -See the https://javadoc.io/doc/io.smallrye/smallrye-graphql-api/latest/io/smallrye/graphql/api/Context.html[JavaDoc] for more details. - -=== GraphQL-Java - -This context object also allows you to fall down to the underlying https://www.graphql-java.com/[graphql-java] features by using the leaky abstraction: - -[source,java] ----- -DataFetchingEnvironment dfe = context.unwrap(DataFetchingEnvironment.class); ----- - -You can also get access to the underlying `graphql-java` during schema generation, to add your own features directly: - -[source,java] ----- -public GraphQLSchema.Builder addMyOwnEnum(@Observes GraphQLSchema.Builder builder) { - - // Here add your own features directly, example adding an Enum - GraphQLEnumType myOwnEnum = GraphQLEnumType.newEnum() - .name("SomeEnum") - .description("Adding some enum type") - .value("value1") - .value("value2").build(); - - return builder.additionalType(myOwnEnum); -} ----- - -By using the `@Observer` you can add anything to the Schema builder. - -NOTE: For the Observer to work, you need to enable events. In `application.properties`, add the following: `quarkus.smallrye-graphql.events.enabled=true`. - -== Map to Scalar - -Another SmallRye specific experimental feature, allows you to map an existing scalar (that is mapped by the implementation to a certain Java type) to another type, -or to map complex object, that would typically create a `Type` or `Input` in GraphQL, to an existing scalar. - -=== Mapping an existing Scalar to another type: - -[source,java] ----- -public class Movie { - - @ToScalar(Scalar.Int.class) - Long idLongThatShouldChangeToInt; - - // .... -} ----- - -Above will map the `Long` java type to an `Int` Scalar type, rather than the https://download.eclipse.org/microprofile/microprofile-graphql-1.0/microprofile-graphql.html#scalars[default] `BigInteger`. - -=== Mapping a complex object to a Scalar type: - -[source,java] ----- -public class Person { - - @ToScalar(Scalar.String.class) - Phone phone; - - // .... -} ----- - -This will, rather than creating a `Type` or `Input` in GraphQL, map to a String scalar. - -To be able to do the above, the `Phone` object needs to have a constructor that takes a String (or `Int` / `Date` / etc.), -or have a setter method for the String (or `Int` / `Date` / etc.), -or have a `fromString` (or `fromInt` / `fromDate` - depending on the Scalar type) static method. - -For example: - -[source,java] ----- -public class Phone { - - private String number; - - // Getters and setters.... - - public static Phone fromString(String number) { - Phone phone = new Phone(); - phone.setNumber(number); - return phone; - } -} ----- - -See more about the `@ToScalar` feature in the https://javadoc.io/static/io.smallrye/smallrye-graphql-api/1.0.6/index.html?io/smallrye/graphql/api/ToScalar.html[JavaDoc]. - -== Error code - -You can add an error code on the error output in the GraphQL response by using the (SmallRye specific) `@ErrorCode`: - -[source,java] ----- -@ErrorCode("some-business-error-code") -public class SomeBusinessException extends RuntimeException { - // ... -} ----- - -When `SomeBusinessException` occurs, the error output will contain the Error code: - -[source,graphql] ----- -{ - "errors": [ - { - "message": "Unexpected failure in the system. Jarvis is working to fix it.", - "locations": [ - { - "line": 2, - "column": 3 - } - ], - "path": [ - "annotatedCustomBusinessException" - ], - "extensions": { - "exception": "io.smallrye.graphql.test.apps.error.api.ErrorApi$AnnotatedCustomBusinessException", - "classification": "DataFetchingException", - "code": "some-business-error-code" <1> - } - } - ], - "data": { - ... - } -} ----- - -<1> The error code - -== Additional Notes - -If you are using the `smallrye-graphql` extension and the `micrometer` metrics extension is present and metrics are -enabled, you may encounter a `java.lang.NoClassDefFoundError` as some versions of the `smallrye-graphql` extension -have runtime requirements on the Microprofile Metrics API. Add the following MicroProfile Metrics API dependency -to resolve the issue: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - org.eclipse.microprofile.metrics - microprofile-metrics-api - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("org.eclipse.microprofile.metrics:microprofile-metrics-api") ----- - -== Conclusion - -SmallRye GraphQL enables clients to retrieve the exact data that is -required preventing `Over-fetching` and `Under-fetching`. - -The GraphQL API can be expanded without breaking previous queries enabling easy -API `evolution`. - -[[configuration-reference]] -== Configuration Reference - -include::{generated-dir}/config/quarkus-smallrye-graphql.adoc[leveloffset=+1, opts=optional] diff --git a/_versions/2.7/guides/smallrye-health.adoc b/_versions/2.7/guides/smallrye-health.adoc deleted file mode 100644 index 61c9f1b1a05..00000000000 --- a/_versions/2.7/guides/smallrye-health.adoc +++ /dev/null @@ -1,447 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= SmallRye Health - -include::./attributes.adoc[] - -This guide demonstrates how your Quarkus application can use https://github.com/smallrye/smallrye-health/[SmallRye Health] -an implementation of the https://github.com/eclipse/microprofile-health/[MicroProfile Health] specification. - -SmallRye Health allows applications to provide information about their state -to external viewers which is typically useful in cloud environments where automated -processes must be able to determine whether the application should be discarded -or restarted. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this guide, we build a simple REST application that exposes MicroProfile Health -functionalities at the `/q/health/live` and `/q/health/ready` endpoints according to the -specification. - -== Solution - -We recommend that you follow the instructions in the next sections and create the -application step by step. However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an -{quickstarts-archive-url}[archive]. - -The solution is located in the `microprofile-health-quickstart` -{quickstarts-tree-url}/microprofile-health-quickstart[directory]. - -== Creating the Maven Project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: microprofile-health-quickstart -:create-app-extensions: smallrye-health -include::includes/devtools/create-app.adoc[] - -This command generates a project, importing the `smallrye-health` extension. - -If you already have your Quarkus project configured, you can add the `smallrye-health` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: smallrye-health -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-health - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-health") ----- - -== Running the health check - -Importing the `smallrye-health` extension directly exposes three REST endpoints: - -- `/q/health/live` - The application is up and running. -- `/q/health/ready` - The application is ready to serve requests. -- `/q/health/started` - The application is started. -- `/q/health` - Accumulating all health check procedures in the application. - -To check that the `smallrye-health` extension is working as expected: - -:devtools-wrapped: - -* start your Quarkus application with: -+ -include::includes/devtools/dev.adoc[] -* access the `http://localhost:8080/q/health/live` endpoint using your browser or -`curl http://localhost:8080/q/health/live` - -:!devtools-wrapped: - -All of the health REST endpoints return a simple JSON object with two fields: - -* `status` -- the overall result of all the health check procedures -* `checks` -- an array of individual checks - -The general `status` of the health check is computed as a logical AND of all the -declared health check procedures. The `checks` array is empty as we have not specified -any health check procedure yet so let's define some. - -== Creating your first health check - -In this section, we create our first simple health check procedure. - -Create the `org.acme.microprofile.health.SimpleHealthCheck` class: - -[source,java] ----- -package org.acme.microprofile.health; - -import org.eclipse.microprofile.health.HealthCheck; -import org.eclipse.microprofile.health.HealthCheckResponse; -import org.eclipse.microprofile.health.Liveness; - -import javax.enterprise.context.ApplicationScoped; - -@Liveness -@ApplicationScoped <1> <2> -public class SimpleHealthCheck implements HealthCheck { - - @Override - public HealthCheckResponse call() { - return HealthCheckResponse.up("Simple health check"); - } -} ----- -<1> It's recommended to annotate the health check class with `@ApplicationScoped` or the `@Singleton` scope so that a single bean instance is used for all health check requests. -<2> If a bean class annotated with one of the health check annotations declares no scope then the `@Singleton` scope is used automatically. - -As you can see, the health check procedures are defined as CDI beans that implement the `HealthCheck` interface and are annotated with one of the health check qualifiers, such as: - -- `@Liveness` - the liveness check accessible at `/q/health/live` -- `@Readiness` - the readiness check accessible at `/q/health/ready` - -`HealthCheck` is a functional interface whose single method `call` returns a -`HealthCheckResponse` object which can be easily constructed by the fluent builder -API shown in the example. - -As we have started our Quarkus application in dev mode simply repeat the request -to `http://localhost:8080/q/health/live` by refreshing your browser window or by -using `curl http://localhost:8080/q/health/live`. Because we defined our health check -to be a liveness procedure (with `@Liveness` qualifier) the new health check procedure -is now present in the `checks` array. - -Congratulations! You've created your first Quarkus health check procedure. Let's -continue by exploring what else can be done with SmallRye Health. - -== Adding a readiness health check procedure - -In the previous section, we created a simple liveness health check procedure which states -whether our application is running or not. In this section, we will create a readiness -health check which will be able to state whether our application is able to process -requests. - -We will create another health check procedure that simulates a connection to -an external service provider such as a database. For starters, we will always return -the response indicating the application is ready. - -Create `org.acme.microprofile.health.DatabaseConnectionHealthCheck` class: - -[source,java] ----- -package org.acme.microprofile.health; - -import org.eclipse.microprofile.health.HealthCheck; -import org.eclipse.microprofile.health.HealthCheckResponse; -import org.eclipse.microprofile.health.Readiness; - -import javax.enterprise.context.ApplicationScoped; - -@Readiness -@ApplicationScoped -public class DatabaseConnectionHealthCheck implements HealthCheck { - - @Override - public HealthCheckResponse call() { - return HealthCheckResponse.up("Database connection health check"); - } -} - ----- - -If you now rerun the health check at `http://localhost:8080/q/health/live` the `checks` -array will contain only the previously defined `SimpleHealthCheck` as it is the only -check defined with the `@Liveness` qualifier. However, if you access -`http://localhost:8080/q/health/ready` (in the browser or with -`curl http://localhost:8080/q/health/ready`) you will see only the -`Database connection health check` as it is the only health check defined with the -`@Readiness` qualifier as the readiness health check procedure. - -NOTE: If you access `http://localhost:8080/q/health` you will get back both checks. - -More information about which health check procedures should be used in which situation -is detailed in the MicroProfile Health specification. Generally, the liveness -procedures determine whether the application should be restarted while readiness -procedures determine whether it makes sense to contact the application with requests. - -== Adding a startup health check procedure - -The third and final type of health check procedures is startup. Startup procedures are defined as an option for slow starting containers (should not be needed in Quarkus) to delay the invocations of liveness probe which will take over from startup once the startup responds UP for the first time. Startup health checks are defined with the `@Startup` qualifier. - -NOTE: Please make sure that you import the microprofile `org.eclipse.microprofile.health.Startup` annotation since there is an unfortunate clash with `io.quarkus.runtime.Startup`. - -Create `org.acme.microprofile.health.StartupHealthCheck` class: - -[source,java] ----- -package org.acme.microprofile.health; - -import org.eclipse.microprofile.health.HealthCheck; -import org.eclipse.microprofile.health.HealthCheckResponse; -import org.eclipse.microprofile.health.Startup; - -import javax.enterprise.context.ApplicationScoped; - -@Startup -@ApplicationScoped -public class StartupHealthCheck implements HealthCheck { - - @Override - public HealthCheckResponse call() { - return HealthCheckResponse.up("Startup health check"); - } -} ----- - -The startup health check will be available either at `http://localhost:8080/q/health/started` or together with other health check procedure at `http://localhost:8080/q/health`. - -== Negative health check procedures - -In this section, we extend our `Database connection health check` with the option of -stating that our application is not ready to process requests as the underlying -database connection cannot be established. For simplicity reasons, we only determine -whether the database is accessible or not by a configuration property. - -Update the `org.acme.microprofile.health.DatabaseConnectionHealthCheck` class: - -[source,java] ----- -package org.acme.microprofile.health; - -import org.eclipse.microprofile.config.inject.ConfigProperty; -import org.eclipse.microprofile.health.HealthCheck; -import org.eclipse.microprofile.health.HealthCheckResponse; -import org.eclipse.microprofile.health.HealthCheckResponseBuilder; -import org.eclipse.microprofile.health.Readiness; - -import javax.enterprise.context.ApplicationScoped; - -@Readiness -@ApplicationScoped -public class DatabaseConnectionHealthCheck implements HealthCheck { - - @ConfigProperty(name = "database.up", defaultValue = "false") - private boolean databaseUp; - - @Override - public HealthCheckResponse call() { - - HealthCheckResponseBuilder responseBuilder = HealthCheckResponse.named("Database connection health check"); - - try { - simulateDatabaseConnectionVerification(); - responseBuilder.up(); - } catch (IllegalStateException e) { - // cannot access the database - responseBuilder.down(); - } - - return responseBuilder.build(); - } - - private void simulateDatabaseConnectionVerification() { - if (!databaseUp) { - throw new IllegalStateException("Cannot contact database"); - } - } -} ----- - -NOTE: Until now we used a simplified method of building a `HealthCheckResponse` -through the `HealthCheckResponse#up(String)` (there is also -`HealthCheckResponse#down(String)`) which will directly build the response object. -From now on, we utilize the full builder capabilities provided by the -`HealthCheckResponseBuilder` class. - -If you now rerun the readiness health check (at `http://localhost:8080/q/health/ready`) -the overall `status` should be DOWN. You can also check the liveness check at -`http://localhost:8080/q/health/live` which will return the overall `status` UP because -it isn't influenced by the readiness checks. - -As we shouldn't leave this application with a readiness check in a DOWN state and -because we are running Quarkus in dev mode you can add `database.up=true` in -`src/main/resources/application.properties` and rerun the readiness health check again --- it should be up again. - - -== Adding user-specific data to the health check response - -In previous sections, we saw how to create simple health checks with only the minimal -attributes, namely, the health check name and its status (UP or DOWN). However, the -MicroProfile Health specification also provides a way for the applications to supply -arbitrary data in the form of key-value pairs sent to the consuming end. This can be -done by using the `withData(key, value)` method of the health check response -builder API. - -Let's create a new health check procedure `org.acme.microprofile.health.DataHealthCheck`: - -[source,java] ----- -package org.acme.microprofile.health; - -import org.eclipse.microprofile.health.Liveness; -import org.eclipse.microprofile.health.HealthCheck; -import org.eclipse.microprofile.health.HealthCheckResponse; - -import javax.enterprise.context.ApplicationScoped; - -@Liveness -@ApplicationScoped -public class DataHealthCheck implements HealthCheck { - - @Override - public HealthCheckResponse call() { - return HealthCheckResponse.named("Health check with data") - .up() - .withData("foo", "fooValue") - .withData("bar", "barValue") - .build(); - } -} ----- - -If you rerun the liveness health check procedure by accessing the `/q/health/live` -endpoint you can see that the new health check `Health check with data` is present -in the `checks` array. This check contains a new attribute called `data` which is a -JSON object consisting of the properties we have defined in our health check procedure. - -This functionality is specifically useful in failure scenarios where you can pass the -error along with the health check response. - - -[source,java] ----- - try { - simulateDatabaseConnectionVerification(); - responseBuilder.up(); - } catch (IllegalStateException e) { - // cannot access the database - responseBuilder.down() - .withData("error", e.getMessage()); // pass the exception message - } ----- - -== Context propagation into the health check invocations - -For the perfomance reasons the context (e.g., CDI or security context) is not propagated into each health check invocation. However, if you need to enable this functionality you can set the config property `quarkus.smallrye-health.context-propagation=true` to allow the context propagation into every health check call. - -== Reactive health checks - -MicroProfile Health currently doesn't support returning reactive types, but SmallRye Health does. - -If you want to provide a reactive health check, you can implement the `io.smallrye.health.api.AsyncHealthCheck` interface instead of the `org.eclipse.microprofile.health.HealthCheck` one. -The `io.smallrye.health.api.AsyncHealthCheck` interface allows you to return a `Uni`. - -The following example shows a reactive liveness check: - -[source,java] ----- -import io.smallrye.health.api.AsyncHealthCheck; - -import org.eclipse.microprofile.health.Liveness; -import org.eclipse.microprofile.health.HealthCheckResponse; - -import javax.enterprise.context.ApplicationScoped; - -@Liveness -@ApplicationScoped -public class LivenessAsync implements AsyncHealthCheck { - - @Override - public Uni call() { - return Uni.createFrom().item(HealthCheckResponse.up("liveness-reactive")) - .onItem().delayIt().by(Duration.ofMillis(10)); - } -} ----- - -== Extension health checks - -Some extension may provide default health checks, including the extension will automatically register its health checks. - -For example, `quarkus-agroal` that is used to manage Quarkus datasource(s) automatically register a readiness health check -that will validate each datasources: xref:datasource.adoc#datasource-health-check[Datasource Health Check]. - -You can disable extension health check via the property `quarkus.health.extensions.enabled` so none will be automatically registered. - -[[ui]] -== Health UI - -NOTE: Experimental - not included in the MicroProfile specification - -`health-ui` allows you to see your Health Checks in a Web GUI. - -The Quarkus `smallrye-health` extension ships with `health-ui` and enables it by default in dev and test modes, but it can also be explicitly configured for production mode as well. - -`health-ui` can be accessed from http://localhost:8080/q/health-ui/ . - -image:health-ui-screenshot01.png[alt=Health UI] - -== Conclusion - -SmallRye Health provides a way for your application to distribute information -about its healthiness state to state whether or not it is able to function properly. -Liveness checks are utilized to tell whether the application should be restarted and -readiness checks are used to tell whether the application is able to process requests. - -All that is needed to enable the SmallRye Health features in Quarkus is: - -:devtools-wrapped: -* adding the `smallrye-health` Quarkus extension to your project using the -`quarkus-maven-plugin`: -+ -include::includes/devtools/extension-add.adoc[] -:!devtools-wrapped: - -* or simply adding the following Maven dependency: -+ -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-health - ----- -+ -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-health") ----- - -== Configuration Reference - -include::{generated-dir}/config/quarkus-smallrye-health.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/smallrye-kafka-incoming.adoc b/_versions/2.7/guides/smallrye-kafka-incoming.adoc deleted file mode 100644 index 7a2afa50bdb..00000000000 --- a/_versions/2.7/guides/smallrye-kafka-incoming.adoc +++ /dev/null @@ -1,175 +0,0 @@ -.Incoming Attributes of the 'smallrye-kafka' connector -[cols="25, 30, 15, 20",options="header"] -|=== -|Attribute (_alias_) | Description | Mandatory | Default - -| [.no-hyphens]#*bootstrap.servers*# - -[.no-hyphens]#_(kafka.bootstrap.servers)_# | A comma-separated list of host:port to use for establishing the initial connection to the Kafka cluster. - -Type: _string_ | false | `localhost:9092` - -| [.no-hyphens]#*topic*# | The consumed / populated Kafka topic. If neither this property nor the `topics` properties are set, the channel name is used - -Type: _string_ | false | - -| [.no-hyphens]#*health-enabled*# | Whether health reporting is enabled (default) or disabled - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*health-readiness-enabled*# | Whether readiness health reporting is enabled (default) or disabled - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*health-readiness-topic-verification*# | _deprecated_ - Whether the readiness check should verify that topics exist on the broker. Default to false. Enabling it requires an admin connection. Deprecated: Use 'health-topic-verification-enabled' instead. - -Type: _boolean_ | false | - -| [.no-hyphens]#*health-readiness-timeout*# | _deprecated_ - During the readiness health check, the connector connects to the broker and retrieves the list of topics. This attribute specifies the maximum duration (in ms) for the retrieval. If exceeded, the channel is considered not-ready. Deprecated: Use 'health-topic-verification-timeout' instead. - -Type: _long_ | false | - -| [.no-hyphens]#*health-topic-verification-enabled*# | Whether the startup and readiness check should verify that topics exist on the broker. Default to false. Enabling it requires an admin client connection. - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*health-topic-verification-timeout*# | During the startup and readiness health check, the connector connects to the broker and retrieves the list of topics. This attribute specifies the maximum duration (in ms) for the retrieval. If exceeded, the channel is considered not-ready. - -Type: _long_ | false | `2000` - -| [.no-hyphens]#*tracing-enabled*# | Whether tracing is enabled (default) or disabled - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*cloud-events*# | Enables (default) or disables the Cloud Event support. If enabled on an _incoming_ channel, the connector analyzes the incoming records and try to create Cloud Event metadata. If enabled on an _outgoing_, the connector sends the outgoing messages as Cloud Event if the message includes Cloud Event Metadata. - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*kafka-configuration*# | Identifier of a CDI bean that provides the default Kafka consumer/producer configuration for this channel. The channel configuration can still override any attribute. The bean must have a type of Map and must use the @io.smallrye.common.annotation.Identifier qualifier to set the identifier. - -Type: _string_ | false | - -| [.no-hyphens]#*topics*# | A comma-separating list of topics to be consumed. Cannot be used with the `topic` or `pattern` properties - -Type: _string_ | false | - -| [.no-hyphens]#*pattern*# | Indicate that the `topic` property is a regular expression. Must be used with the `topic` property. Cannot be used with the `topics` property - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*key.deserializer*# | The deserializer classname used to deserialize the record's key - -Type: _string_ | false | `org.apache.kafka.common.serialization.StringDeserializer` - -| [.no-hyphens]#*value.deserializer*# | The deserializer classname used to deserialize the record's value - -Type: _string_ | true | - -| [.no-hyphens]#*fetch.min.bytes*# | The minimum amount of data the server should return for a fetch request. The default setting of 1 byte means that fetch requests are answered as soon as a single byte of data is available or the fetch request times out waiting for data to arrive. - -Type: _int_ | false | `1` - -| [.no-hyphens]#*group.id* | A unique string that identifies the consumer group the application belongs to. - -If not set, defaults to the application name as set by the `quarkus.application.name` configuration property. - -If that is not set either, a unique, generated id is used. - -It is recommended to always define a `group.id`, the automatic generation is only a convenient feature for development. -You can explicitly ask for automatically generated unique id by setting this property to `${quarkus.uuid}`. - -Type: _string_ | false | - -| [.no-hyphens]#*enable.auto.commit*# | If enabled, consumer's offset will be periodically committed in the background by the underlying Kafka client, ignoring the actual processing outcome of the records. It is recommended to NOT enable this setting and let Reactive Messaging handles the commit. - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*retry*# | Whether or not the connection to the broker is re-attempted in case of failure - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*retry-attempts*# | The maximum number of reconnection before failing. -1 means infinite retry - -Type: _int_ | false | `-1` - -| [.no-hyphens]#*retry-max-wait*# | The max delay (in seconds) between 2 reconnects - -Type: _int_ | false | `30` - -| [.no-hyphens]#*broadcast*# | Whether the Kafka records should be dispatched to multiple consumer - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*auto.offset.reset*# | What to do when there is no initial offset in Kafka.Accepted values are earliest, latest and none - -Type: _string_ | false | `latest` - -| [.no-hyphens]#*failure-strategy*# | Specify the failure strategy to apply when a message produced from a record is acknowledged negatively (nack). Values can be `fail` (default), `ignore`, or `dead-letter-queue` - -Type: _string_ | false | `fail` - -| [.no-hyphens]#*commit-strategy*# | Specify the commit strategy to apply when a message produced from a record is acknowledged. Values can be `latest`, `ignore` or `throttled`. If `enable.auto.commit` is true then the default is `ignore` otherwise it is `throttled` - -Type: _string_ | false | - -| [.no-hyphens]#*throttled.unprocessed-record-max-age.ms*# | While using the `throttled` commit-strategy, specify the max age in milliseconds that an unprocessed message can be before the connector is marked as unhealthy. Setting this attribute to 0 disables this monitoring. - -Type: _int_ | false | `60000` - -| [.no-hyphens]#*dead-letter-queue.topic*# | When the `failure-strategy` is set to `dead-letter-queue` indicates on which topic the record is sent. Defaults is `dead-letter-topic-$channel` - -Type: _string_ | false | - -| [.no-hyphens]#*dead-letter-queue.key.serializer*# | When the `failure-strategy` is set to `dead-letter-queue` indicates the key serializer to use. If not set the serializer associated to the key deserializer is used - -Type: _string_ | false | - -| [.no-hyphens]#*dead-letter-queue.value.serializer*# | When the `failure-strategy` is set to `dead-letter-queue` indicates the value serializer to use. If not set the serializer associated to the value deserializer is used - -Type: _string_ | false | - -| [.no-hyphens]#*partitions*# | The number of partitions to be consumed concurrently. The connector creates the specified amount of Kafka consumers. It should match the number of partition of the targeted topic - -Type: _int_ | false | `1` - -| [.no-hyphens]#*requests*# | When `partitions` is greater than 1, this attribute allows configuring how many records are requested by each consumers every time. - -Type: _int_ | false | `128` - -| [.no-hyphens]#*consumer-rebalance-listener.name*# | The name set in `@Identifier` of a bean that implements `io.smallrye.reactive.messaging.kafka.KafkaConsumerRebalanceListener`. If set, this rebalance listener is applied to the consumer. - -Type: _string_ | false | - -| [.no-hyphens]#*key-deserialization-failure-handler*# | The name set in `@Identifier` of a bean that implements `io.smallrye.reactive.messaging.kafka.DeserializationFailureHandler`. If set, deserialization failure happening when deserializing keys are delegated to this handler which may retry or provide a fallback value. - -Type: _string_ | false | - -| [.no-hyphens]#*value-deserialization-failure-handler*# | The name set in `@Identifier` of a bean that implements `io.smallrye.reactive.messaging.kafka.DeserializationFailureHandler`. If set, deserialization failure happening when deserializing values are delegated to this handler which may retry or provide a fallback value. - -Type: _string_ | false | - -| [.no-hyphens]#*fail-on-deserialization-failure*# | When no deserialization failure handler is set and a deserialization failure happens, report the failure and mark the application as unhealthy. If set to `false` and a deserialization failure happens, a `null` value is forwarded. - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*graceful-shutdown*# | Whether or not a graceful shutdown should be attempted when the application terminates. - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*poll-timeout*# | The polling timeout in milliseconds. When polling records, the poll will wait at most that duration before returning records. Default is 1000ms - -Type: _int_ | false | `1000` - -| [.no-hyphens]#*pause-if-no-requests*# | Whether the polling must be paused when the application does not request items and resume when it does. This allows implementing back-pressure based on the application capacity. Note that polling is not stopped, but will not retrieve any records when paused. - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*batch*# | Whether the Kafka records are consumed in batch. The channel injection point must consume a compatible type, such as `List` or `KafkaRecordBatch`. - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*max-queue-size-factor*# | Multiplier factor to determine maximum number of records queued for processing, using `max.poll.records` * `max-queue-size-factor`. Defaults to 2. In `batch` mode `max.poll.records` is considered `1`. - -Type: _int_ | false | `2` - -|=== diff --git a/_versions/2.7/guides/smallrye-kafka-outgoing.adoc b/_versions/2.7/guides/smallrye-kafka-outgoing.adoc deleted file mode 100644 index 551110c5b09..00000000000 --- a/_versions/2.7/guides/smallrye-kafka-outgoing.adoc +++ /dev/null @@ -1,148 +0,0 @@ -.Outgoing Attributes of the 'smallrye-kafka' connector -[cols="25, 30, 15, 20",options="header"] -|=== -|Attribute (_alias_) | Description | Mandatory | Default - -| [.no-hyphens]#*acks*# | The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. Accepted values are: 0, 1, all - -Type: _string_ | false | `1` - -| [.no-hyphens]#*bootstrap.servers*# - -[.no-hyphens]#_(kafka.bootstrap.servers)_# | A comma-separated list of host:port to use for establishing the initial connection to the Kafka cluster. - -Type: _string_ | false | `localhost:9092` - -| [.no-hyphens]#*buffer.memory*# | The total bytes of memory the producer can use to buffer records waiting to be sent to the server. - -Type: _long_ | false | `33554432` - -| [.no-hyphens]#*close-timeout*# | The amount of milliseconds waiting for a graceful shutdown of the Kafka producer - -Type: _int_ | false | `10000` - -| [.no-hyphens]#*cloud-events*# | Enables (default) or disables the Cloud Event support. If enabled on an _incoming_ channel, the connector analyzes the incoming records and try to create Cloud Event metadata. If enabled on an _outgoing_, the connector sends the outgoing messages as Cloud Event if the message includes Cloud Event Metadata. - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*cloud-events-data-content-type*# - -[.no-hyphens]#_(cloud-events-default-data-content-type)_# | Configure the default `datacontenttype` attribute of the outgoing Cloud Event. Requires `cloud-events` to be set to `true`. This value is used if the message does not configure the `datacontenttype` attribute itself - -Type: _string_ | false | - -| [.no-hyphens]#*cloud-events-data-schema*# - -[.no-hyphens]#_(cloud-events-default-data-schema)_# | Configure the default `dataschema` attribute of the outgoing Cloud Event. Requires `cloud-events` to be set to `true`. This value is used if the message does not configure the `dataschema` attribute itself - -Type: _string_ | false | - -| [.no-hyphens]#*cloud-events-insert-timestamp*# - -[.no-hyphens]#_(cloud-events-default-timestamp)_# | Whether or not the connector should insert automatically the `time` attribute into the outgoing Cloud Event. Requires `cloud-events` to be set to `true`. This value is used if the message does not configure the `time` attribute itself - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*cloud-events-mode*# | The Cloud Event mode (`structured` or `binary` (default)). Indicates how are written the cloud events in the outgoing record - -Type: _string_ | false | `binary` - -| [.no-hyphens]#*cloud-events-source*# - -[.no-hyphens]#_(cloud-events-default-source)_# | Configure the default `source` attribute of the outgoing Cloud Event. Requires `cloud-events` to be set to `true`. This value is used if the message does not configure the `source` attribute itself - -Type: _string_ | false | - -| [.no-hyphens]#*cloud-events-subject*# - -[.no-hyphens]#_(cloud-events-default-subject)_# | Configure the default `subject` attribute of the outgoing Cloud Event. Requires `cloud-events` to be set to `true`. This value is used if the message does not configure the `subject` attribute itself - -Type: _string_ | false | - -| [.no-hyphens]#*cloud-events-type*# - -[.no-hyphens]#_(cloud-events-default-type)_# | Configure the default `type` attribute of the outgoing Cloud Event. Requires `cloud-events` to be set to `true`. This value is used if the message does not configure the `type` attribute itself - -Type: _string_ | false | - -| [.no-hyphens]#*health-enabled*# | Whether health reporting is enabled (default) or disabled - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*health-readiness-enabled*# | Whether readiness health reporting is enabled (default) or disabled - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*health-readiness-timeout*# | _deprecated_ - During the readiness health check, the connector connects to the broker and retrieves the list of topics. This attribute specifies the maximum duration (in ms) for the retrieval. If exceeded, the channel is considered not-ready. Deprecated: Use 'health-topic-verification-timeout' instead. - -Type: _long_ | false | - -| [.no-hyphens]#*health-readiness-topic-verification*# | _deprecated_ - Whether the readiness check should verify that topics exist on the broker. Default to false. Enabling it requires an admin connection. Deprecated: Use 'health-topic-verification-enabled' instead. - -Type: _boolean_ | false | - -| [.no-hyphens]#*health-topic-verification-enabled*# | Whether the startup and readiness check should verify that topics exist on the broker. Default to false. Enabling it requires an admin client connection. - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*health-topic-verification-timeout*# | During the startup and readiness health check, the connector connects to the broker and retrieves the list of topics. This attribute specifies the maximum duration (in ms) for the retrieval. If exceeded, the channel is considered not-ready. - -Type: _long_ | false | `2000` - -| [.no-hyphens]#*kafka-configuration*# | Identifier of a CDI bean that provides the default Kafka consumer/producer configuration for this channel. The channel configuration can still override any attribute. The bean must have a type of Map and must use the @io.smallrye.common.annotation.Identifier qualifier to set the identifier. - -Type: _string_ | false | - -| [.no-hyphens]#*key*# | A key to used when writing the record - -Type: _string_ | false | - -| [.no-hyphens]#*key-serialization-failure-handler*# | The name set in `@Identifier` of a bean that implements `io.smallrye.reactive.messaging.kafka.SerializationFailureHandler`. If set, serialization failure happening when serializing keys are delegated to this handler which may provide a fallback value. - -Type: _string_ | false | - -| [.no-hyphens]#*key.serializer*# | The serializer classname used to serialize the record's key - -Type: _string_ | false | `org.apache.kafka.common.serialization.StringSerializer` - -| [.no-hyphens]#*max-inflight-messages*# | The maximum number of messages to be written to Kafka concurrently. It limits the number of messages waiting to be written and acknowledged by the broker. You can set this attribute to `0` remove the limit - -Type: _long_ | false | `1024` - -| [.no-hyphens]#*merge*# | Whether the connector should allow multiple upstreams - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*partition*# | The target partition id. -1 to let the client determine the partition - -Type: _int_ | false | `-1` - -| [.no-hyphens]#*propagate-record-key*# | Propagate incoming record key to the outgoing record - -Type: _boolean_ | false | `false` - -| [.no-hyphens]#*retries*# | If set to a positive number, the connector will try to resend any record that was not delivered successfully (with a potentially transient error) until the number of retries is reached. If set to 0, retries are disabled. If not set, the connector tries to resend any record that failed to be delivered (because of a potentially transient error) during an amount of time configured by `delivery.timeout.ms`. - -Type: _long_ | false | `2147483647` - -| [.no-hyphens]#*topic*# | The consumed / populated Kafka topic. If neither this property nor the `topics` properties are set, the channel name is used - -Type: _string_ | false | - -| [.no-hyphens]#*tracing-enabled*# | Whether tracing is enabled (default) or disabled - -Type: _boolean_ | false | `true` - -| [.no-hyphens]#*value-serialization-failure-handler*# | The name set in `@Identifier` of a bean that implements `io.smallrye.reactive.messaging.kafka.SerializationFailureHandler`. If set, serialization failure happening when serializing values are delegated to this handler which may provide a fallback value. - -Type: _string_ | false | - -| [.no-hyphens]#*value.serializer*# | The serializer classname used to serialize the payload - -Type: _string_ | true | - -| [.no-hyphens]#*waitForWriteCompletion*# | Whether the client waits for Kafka to acknowledge the written record before acknowledging the message - -Type: _boolean_ | false | `true` - -|=== diff --git a/_versions/2.7/guides/smallrye-metrics.adoc b/_versions/2.7/guides/smallrye-metrics.adoc deleted file mode 100644 index 3c06698fcbe..00000000000 --- a/_versions/2.7/guides/smallrye-metrics.adoc +++ /dev/null @@ -1,225 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// - -= SmallRye Metrics - -include::./attributes.adoc[] - -The following guide demonstrates how a Quarkus application can use link:https://github.com/smallrye/smallrye-metrics/[SmallRye Metrics], -an implementation of the link:https://github.com/eclipse/microprofile-metrics/[MicroProfile Metrics] specification. - -SmallRye Metrics allows applications to gather metrics and statistics that provide insights into what is happening inside an application. The metrics can be read remotely using the JSON or OpenMetrics format to be processed by additional tools such as Prometheus and stored for analysis and visualization. - -Apart from application-specific metrics described in this guide, you may also use built-in metrics exposed by various Quarkus extensions. These are described in the guide for each particular extension that supports built-in metrics. - -IMPORTANT: xref:micrometer.adoc[Micrometer] is the recommended approach to metrics for Quarkus. Use the SmallRye Metrics extension when it is required to retain MicroProfile specification compatibility. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this example, we build a very simple microservice that offers one REST endpoint. This endpoint serves for determining whether a number is prime. The implementation class is annotated with certain metric annotations so that while responding to users' requests, certain metrics are gathered. The meaning of each metric is explained later. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. However, you can skip to the completed example. - -. Clone the Git repository: -+ -[source,bash,subs=attributes+] ----- -git clone {quickstarts-clone-url} ----- - -* Alternatively, download a {quickstarts-archive-url}[Quickstarts archive]. The solution is located in the `microprofile-metrics-quickstart` {quickstarts-tree-url}/microprofile-metrics-quickstart[directory] and follow with the xref:running-and-using-the-application_{context}[] section. - -[id="creating-a-maven-project_{context}"] -== Creating a Maven project - -To create a new project: - -:create-app-artifact-id: microprofile-metrics-quickstart -:create-app-extensions: resteasy,smallrye-metrics -include::includes/devtools/create-app.adoc[] - -This command generates a Quarkus project that uses the `smallrye-metrics` extension. - -If you already have your Quarkus project configured, you can add the `smallrye-metrics` extension to your project by running the following command in your project base directory: - -:add-extension-extensions: smallrye-metrics -include::includes/devtools/extension-add.adoc[] - -This adds the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-smallrye-metrics - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-smallrye-metrics") ----- - -[id="writing-an-application_{context}"] -== Writing an application - -The following procedures create a Quarkus application that consists of a single class that implements an algorithm for checking whether a number is prime. This algorithm is exposed over a REST interface. Additionally, specific annotations are required to ensure that the desired metrics are calculated over time and can be exported for manual analysis or processing by additional tooling. - -The application will gather the following metrics: - -* `performedChecks`: A counter that increases by one each time the user asks about a number. -* `highestPrimeNumberSoFar`: A gauge that stores the highest number asked about by the user if the number was determined to be prime. -* `checksTimer`: A compound metric that benchmarks how much time the primality tests take. Additional details are provided later. - -The full source code looks as follows: -[source,java] ----- -package org.acme.microprofile.metrics; - -import org.eclipse.microprofile.metrics.MetricUnits; -import org.eclipse.microprofile.metrics.annotation.Counted; -import org.eclipse.microprofile.metrics.annotation.Gauge; -import org.eclipse.microprofile.metrics.annotation.Timed; -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/") -public class PrimeNumberChecker { - - private long highestPrimeNumberSoFar = 2; - - @GET - @Path("/{number}") - @Produces(MediaType.TEXT_PLAIN) - @Counted(name = "performedChecks", description = "How many primality checks have been performed.") - @Timed(name = "checksTimer", description = "A measure of how long it takes to perform the primality test.", unit = MetricUnits.MILLISECONDS) - public String checkIfPrime(@PathParam long number) { - if (number < 1) { - return "Only natural numbers can be prime numbers."; - } - if (number == 1) { - return "1 is not prime."; - } - if (number == 2) { - return "2 is prime."; - } - if (number % 2 == 0) { - return number + " is not prime, it is divisible by 2."; - } - for (int i = 3; i < Math.floor(Math.sqrt(number)) + 1; i = i + 2) { - if (number % i == 0) { - return number + " is not prime, is divisible by " + i + "."; - } - } - if (number > highestPrimeNumberSoFar) { - highestPrimeNumberSoFar = number; - } - return number + " is prime."; - } - - @Gauge(name = "highestPrimeNumberSoFar", unit = MetricUnits.NONE, description = "Highest prime number so far.") - public Long highestPrimeNumberSoFar() { - return highestPrimeNumberSoFar; - } - -} ----- - -[id="running-and-using-the-application_{context}"] -== Running and using the application - -To execute the application created in xref:writing-an-application_{context}[], do the following: - -:devtools-wrapped: -. Run the microservice in dev mode: -+ -include::includes/devtools/dev.adoc[] -:!devtools-wrapped: - -. Generate values for the metrics. - -.. Query the endpoint to determine whether some numbers are prime numbers: -+ -[source,bash] ----- -curl localhost:8080/350 ----- -+ -The application will respond that 350 is not a prime number because it can be divided by 2. - -* For large prime numbers, the test takes more time. -+ -[source,bash] ----- -curl localhost:8080/629521085409773 ----- -+ -The application will respond that 629521085409773 is a prime number. - -.. Perform additional calls with numbers of your choice. - -. Review the generated metrics: -+ -[source,bash] ----- -curl -H"Accept: application/json" localhost:8080/q/metrics/application ----- -+ -You will receive a response such as: -+ -[source,json] ----- -{ - "org.acme.microprofile.metrics.PrimeNumberChecker.checksTimer" : { <1> - "p50": 217.231273, <2> - "p75": 217.231273, - "p95": 217.231273, - "p98": 217.231273, - "p99": 217.231273, - "p999": 217.231273, - "min": 0.58961, <3> - "mean": 112.15909190834819, <4> - "max": 217.231273, <5> - "stddev": 108.2721053982776, <6> - "count": 2, <7> - "meanRate": 0.04943519091742238, <8> - "oneMinRate": 0.2232140583080189, - "fiveMinRate": 0.3559527083952095, - "fifteenMinRate": 0.38474303050928976 - }, - "org.acme.microprofile.metrics.PrimeNumberChecker.performedChecks" : 2, <9> - "org.acme.microprofile.metrics.PrimeNumberChecker.highestPrimeNumberSoFar" : 629521085409773 <10> -} ----- - -<1> `checksTimer`: A compound metric that benchmarks how much time the primality tests take. All durations are measured in milliseconds. It consists of these values below. -<2> `p50, p75, p95, p99, p999`: Percentiles of the durations. For example, the value in `p95` means that 95 % of the measurements were faster than this duration. -<3> `min`: The shortest duration it took to perform a primality test was probably performed for a small number. -<4> `mean`: The mean value of the measured durations. -<5> `max`: The longest duration, probably it was with a large prime number. -<6> `stddev`: The standard deviation. -<7> `count`: The number of observations, the value of which is the same as `performedChecks`. -<8> `meanRate, oneMinRate, fiveMinRate, fifteenMinRate`: Mean throughput and one-, five-, and fifteen-minute exponentially-weighted moving average throughput. -<9> `performedChecks`: A counter which is increased by one each time the user asks about a number. -<10> `highestPrimeNumberSoFar`: A gauge that stores the highest number that was asked about by the user and which was determined to be prime. - -NOTE: If you prefer an OpenMetrics export rather than the JSON format, remove the `-H"Accept: application/json"` argument from your command line. - -.Configuration Reference - -include::{generated-dir}/config/quarkus-smallrye-metrics.adoc[opts=optional, leveloffset=+1] diff --git a/_versions/2.7/guides/software-transactional-memory.adoc b/_versions/2.7/guides/software-transactional-memory.adoc deleted file mode 100644 index 8d5831d75ee..00000000000 --- a/_versions/2.7/guides/software-transactional-memory.adoc +++ /dev/null @@ -1,244 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Software Transactional Memory in Quarkus - -include::./attributes.adoc[] -:extension-status: preview - -Software Transactional Memory (STM) has been around in research environments since the late -1990's and has relatively recently started to appear in products and various programming -languages. We won't go into all of the details behind STM but the interested reader could look at https://groups.csail.mit.edu/tds/papers/Shavit/ShavitTouitou-podc95.pdf[this paper]. -However, suffice it to say that STM offers an approach to developing transactional applications in a highly -concurrent environment with some of the same characteristics of ACID transactions, which you've probably already used -through JTA. Importantly though, the Durability property is relaxed (removed) within STM implementations, -or at least made optional. This is not the situation with JTA, where state changes are made durable -to a relational database which supports https://pubs.opengroup.org/onlinepubs/009680699/toc.pdf[the X/Open XA -standard]. - -Note, the STM implementation provided by Quarkus is based on the https://narayana.io/docs/project/index.html#d0e16066[Narayana STM] implementation. This document isn't meant to be a replacement for that project's documentation so you may want -to look at that for more detail. However, we will try to focus more on how you can combine some of the key capabilities -into Quarkus when developing Kubernetes native applications and microservices. - -== Why use STM with Quarkus? - -Now you may still be asking yourself "Why STM instead of JTA?" or "What are the benefits -to STM that I don't get from JTA?" Let's try to answer those or similar questions, with -a particular focus on why we think they're great for Quarkus, microservices and Kubernetes -native applications. So in no specific order ... - -* The goal of STM is to simplify object reads and writes from multiple threads/protect -state from concurrent updates. The Quarkus STM implementation will safely manage any conflicts between -these threads using whatever isolation model has been chosen to protect that specific state -instance (object in the case of Quarkus). In Quarkus STM, there are two isolation implementations, -pessimistic (the default), which would cause conflicting threads to be blocked until the original -has completed its updates (committed or aborted the transaction); then there's the optimistic -approach which allows all of the threads to proceed and checks for conflicts at commit time, where -one or more of the threads may be forced to abort if there have been conflicting updates. - -* STM objects have state but it doesn't need to be persistent (durable). In fact the -default behaviour is for objects managed within transactional memory to be volatile, such that -if the service or microservice within which they are being used crashes or is spawned elsewhere, e.g., -by a scheduler, all state in memory is lost and the objects start from scratch. But surely you get this and more -with JTA (and a suitable transactional datastore) and don't need to worry about restarting your application? -Not quite. There's a trade-off here: we're doing away -with persistent state and the overhead of reading from and then writing (and sync-ing) to the datastore during each -transaction. This makes updates to (volatile) state very fast but you still get the benefits of atomic updates -across multiple STM objects (e.g., objects your team wrote then calling objects you inherited from another team and requiring -them to make all-or-nothing updates), as well as consistency -and isolation in the presence of concurrent threads/users (common in distributed microservices architectures). -Furthermore, not all stateful applications need to be durable - even when JTA transactions are used, it tends to be the -exception and not the rule. And as you'll see later, because applications can optionally start and control transactions, it's possible to build microservices which can undo state changes and try alternative paths. - -* Another benefit of STM is composability and modularity. You can write concurrent Quarkus objects/services that -can be easily composed with any other services built using STM, without exposing the details of how the objects/services -are implemented. As we discussed earlier, this ability to compose objects you wrote with those other teams may have -written weeks, months or years earlier, and have A, C and I properties can be hugely beneficial. Furthermore, some -STM implementations, including the one Quarkus uses, support nested transactions and these allow changes made within -the context of a nested (sub) transaction to later be rolled back by the parent transaction. - -* Although the default for STM object state is volatile, it is possible to configure the STM implementation -such that an object's state is durable. Although it's possible to configure Narayana such that different -backend datastores can be used, including relational databases, the default is the local operating system -file system, which means you don't need to configure anything else with Quarkus such as a database. - -* Many STM implementations allow "plain old language objects" to be made STM-aware with little or no changes to -the application code. You can build, test and deploy applications without wanting them to be STM-aware and -then later add those capabilities if they become necessary and without much development overhead at all. - -== Building STM applications - -There is also a fully worked example in the quickstarts which you may access by cloning the -Git repository: `git clone {quickstarts-clone-url}`, or by downloading an {quickstarts-archive-url}[archive]. -Look for the `software-transactional-memory-quickstart` example. This will help to understand how you -can build STM-aware applications with Quarkus. However, before we do so there are a few basic concepts -which we need to cover. - -Note, as you will see, STM in Quarkus relies on a number of annotations to define behaviours. The lack -of these annotations causes sensible defaults to be assumed but it is important for the developer to -understand what these may be. Please refer to the https://narayana.io/docs/project/index.html#d0e16066[Narayana STM manual] -and the https://narayana.io//docs/project/index.html#d0e16133[STM annotations guide] for more details on -all of the annotations Narayana STM provides. - -include::./status-include.adoc[] - -== Setting it up - -To use the extension include it as a dependency in your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-narayana-stm - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-narayana-stm") ----- - -== Defining STM-aware classes - -In order for the STM subsystem to have knowledge about which classes are to be managed within the context -of transactional memory it is necessary to provide a minimal level of instrumentation. This occurs by -categorising STM-aware and STM-unaware classes through an interface boundary; specifically all STM-aware objects -must be instances of classes which inherit from interfaces that themselves have been annotated to identify them -as STM-aware. Any other objects (and their classes) which do not follow this rule will not be managed by the -STM subsystem and hence any of their state changes will not be rolled back, for example. - -The specific annotation that STM-aware application interfaces must use is `org.jboss.stm.annotations.Transactional`. -For example: - -[source,java] ----- -@Transactional -public interface FlightService { - int getNumberOfBookings(); - void makeBooking(String details); -} ----- - -Classes which implement this interface are able to use additional annotations from Narayana to tell the STM -subsystem about things such as whether a method will modify the state of the object, or what state variables -within the class should be managed transactionally, e.g., some instance variables may not need to be rolled back -if a transaction aborts. As mentioned earlier, if those annotations are not present then defaults are chosen to -guarantee safety, such as assuming all methods will modify state. - -[source,java] ----- -public class FlightServiceImpl implements FlightService { - @ReadLock - public int getNumberOfBookings() { ... } - public void makeBooking(String details) {...} - - @NotState - private int timesCalled; -} ----- - -For example, by using the `@ReadLock` annotation on the `getNumberOfBookings` method, we are able to tell the -STM subsystem that no state modifications will occur in this object when it is used in the transactional -memory. Also, the `@NotState` annotation tells the system to ignore `timesCalled` when transactions commit or -abort, so this value only changes due to application code. - -Please refer to the Narayana guide for details of how to exert finer grained control over the transactional -behaviour of objects that implement interfaces marked with the `@Transactional` annotation. - -== Creating STM objects - -The STM subsystem needs to be told about which objects it should be managing. The Quarkus (aka Narayana) STM implementation -does this by providing containers of transactional memory within which these object instances reside. Until an object -is placed within one of these STM containers it cannot be managed within transactions and any state changes will -not possess the A, C, I (or even D) properties. - -Note, the term "container" was defined within the STM implementation years before Linux containers came along. It may -be confusing to use especially in a Kubernetes native environment such as Quarkus, but hopefully -the reader can do the mental mapping. - -The default STM container (`org.jboss.stm.Container`) provides support for volatile objects that can only be shared between -threads in the same microservice/JVM instance. When a STM-aware object is placed into the container it returns a handle -through which that object should then be used in the future. It is important to use this handle as continuing to access -the object through the original reference will not allow the STM subsystem to track access and manage state and -concurrency control. - -[source,java] ----- - import org.jboss.stm.Container; - - ... - - Container container = new Container<>(); <1> - FlightServiceImpl instance = new FlightServiceImpl(); <2> - FlightService flightServiceProxy = container.create(instance); <3> ----- - -<1> You need to tell each Container about the type of objects for which it will be responsible. In this example - it will be instances that implement the FlightService interface. -<2> Then you create an instance that implements `FlightService`. You should not use it directly at this stage because - access to it is not being managed by the STM subsystem. -<3> To obtain a managed instance, pass the original object to the STM `container` which then returns a reference - through which you will be able to perform transactional operations. This reference can be used safely from multiple threads. - -== Defining transaction boundaries - -Once an object is placed within an STM container the application developer can manage the scope of transactions -within which it is used. There are some annotations which can be applied to the STM-aware class to have the -container automatically create a transaction whenever a specific method is invoked. - -=== Declarative approach - -If the `@NestedTopLevel` or `@Nested` annotation is placed on a method signature then the STM container will -start a new transaction when that method is invoked and attempt to commit it when the method returns. If there is -a transaction already associated with the calling thread then each of these annotations behaves slightly differently: -the former annotation will always create a new top-level transaction within which the method will execute, so the enclosing -transaction does not behave as a parent, i.e., the nested top-level transaction will commit or abort independently; the -latter annotation will create a transaction with is properly nested within the calling transaction, i.e., that -transaction acts as the parent of this newly created transaction. - -=== Programmatic approach - -The application can programmatically start a transaction before accessing the methods of STM objects: - -[source,java] ----- -AtomicAction aa = new AtomicAction(); <1> - -aa.begin(); <2> -{ - try { - flightService.makeBooking("BA123 ..."); - taxiService.makeBooking("East Coast Taxis ..."); <3> - <4> - aa.commit(); - <5> - } catch (Exception e) { - aa.abort(); <6> - } -} ----- - -<1> An object for manually controlling transaction boundaries (AtomicAction and many other useful - classes are included in the extension). - Refer https://narayana.io//docs/api/com/arjuna/ats/arjuna/AtomicAction.html[to the javadoc] for more detail. -<2> Programmatically begin a transaction. -<3> Notice that object updates can be composed which means that updates to multiple objects can be committed together as a single action. - [Note that it is also possible to begin nested transactions so that you can perform speculative work which may then be abandoned - without abandoning other work performed by the outer transaction]. -<4> Since the transaction has not yet been committed the changes made by the flight and taxi services are not visible outside of the transaction. -<5> Since the commit was successful the changes made by the flight and taxi services are now visible to other threads. - Note that other transactions that relied on the old state may or may not now incur conflicts when they commit (the STM library - provides a number of features for managing conflicting behaviour and these are covered in the Narayana STM manual). -<6> Programmatically decide to abort the transaction which means that the changes made by the flight and taxi services are discarded. - -== Distributed transactions - -Sharing a transaction between multiple services is possible but is currently -an advanced use case only and the Narayana documentation should be consulted -if this behaviour is required. In particular, STM does not yet support the features -described in the xref:context-propagation.adoc[Context Propagation guide]. diff --git a/_versions/2.7/guides/spring-boot-properties.adoc b/_versions/2.7/guides/spring-boot-properties.adoc deleted file mode 100644 index e6b99ce0938..00000000000 --- a/_versions/2.7/guides/spring-boot-properties.adoc +++ /dev/null @@ -1,397 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Accessing application properties with Spring Boot properties API - -include::./attributes.adoc[] - -If you prefer to use Spring Boot `@ConfigurationProperties` annotated class to access application properties instead of -a Quarkus native `@ConfigProperties` or a MicroProfile `@ConfigProperty` approach, you can do that with this extension. - -IMPORTANT: Spring Boot `@ConfigurationProperties` has a few limitations. For instance, `Map` injection is not -supported. Consider using xref:config-mappings.adoc[Mapping configuration to objects]. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `spring-boot-properties-quickstart` {quickstarts-tree-url}/spring-boot-properties-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: spring-boot-properties-quickstart -:create-app-extensions: resteasy,spring-boot-properties -include::includes/devtools/create-app.adoc[] - -This command generates a project and imports the `spring-boot-properties` extension. - -If you already have your Quarkus project configured, you can add the `spring-boot-properties` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: spring-boot-properties -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-spring-boot-properties - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-spring-boot-properties") ----- - -== GreetingController - -First, create a `GreetingResource` JAX-RS resource in the -`src/main/java/org/acme/spring/boot/properties/GreetingResource.java` file that looks like: - -[source,java] ----- -package org.acme.spring.boot.properties; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/hello") -public class GreetingResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return "hello"; - } -} ----- - -== Injecting properties - -Create a new class `src/main/java/org/acme/spring/boot/properties/GreetingProperties.java` with a message field: - -[source,java] ----- -package org.acme.spring.boot.properties; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -@ConfigurationProperties("greeting") -public class GreetingProperties { - - public String text; -} ----- - -Here `text` field is public, but it could also be a private field with getter and setter or just a public getter in an interface. -Because `text` does not have a default value it is considered required and unless it is defined in a configuration file (`application.properties` by default) your application will fail to start. -Define this property in your `src/main/resources/application.properties` file: - -[source,properties] ----- -# Your configuration properties -greeting.text = hello ----- - -Now modify `GreetingResource` to start using the `GreetingProperties`: - -[source,java] ----- -package org.acme.spring.boot.properties; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/greeting") -public class GreetingResource { - - @Inject - GreetingProperties properties; - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return properties.text; - } -} ----- - -Run the tests to verify that application still functions correctly. - -== Package and run the application - -Run the application in dev mode with: - -include::includes/devtools/dev.adoc[] - -Open your browser to http://localhost:8080/greeting. - -Changing the configuration file is immediately reflected. - -As usual, the application can be packaged using: - -include::includes/devtools/build.adoc[] - -And executed using `java -jar target/quarkus-app/quarkus-run.jar`. - -You can also generate the native executable with: - -include::includes/devtools/build-native.adoc[] - -== Default values - -Now let's add a suffix for a greeting for which we'll set a default value. - - -Properties with default values can be configured in a configuration file just like any other property. -However, the default value will be used if the property was not defined in a configuration file. - -Go ahead and add the new field to the `GreetingProperties` class: - -[source,java] ----- -package org.acme.spring.boot.properties; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -@ConfigurationProperties("greeting") -public class GreetingProperties { - - public String text; - - public String suffix = "!"; -} ----- - -And update the `GreetingResource` and its test `GreetingResourceTest`: - -[source,java] ----- -package org.acme.spring.boot.properties; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/greeting") -public class GreetingResource { - - @Inject - GreetingProperties properties; - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return properties.text + properties.suffix; - } -} ----- - -[source,java] ----- -package org.acme.spring.boot.properties; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -public class GreetingResourceTest { - - @Test - public void testHelloEndpoint() { - given() - .when().get("/greeting") - .then() - .statusCode(200) - .body(is("hello!")); - } -} ----- - -Run the tests to verify the change. - -== Optional values - -Properties with optional values are the middle-ground between standard and properties with default values. -While a missing property in a configuration file will not cause your application to fail, it will nevertheless not have a value set. -We use `java.util.Optional` type to define such properties. - -Add an optional `name` property to the `GreetingProperties`: - -[source,java] ----- -package org.acme.spring.boot.properties; - -import java.util.Optional; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -@ConfigurationProperties("greeting") -public class GreetingProperties { - - public String text; - - public String suffix = "!"; - - public Optional name; -} ----- - -And update the `GreetingResource` and its test `GreetingResourceTest`: - -[source,java] ----- -package org.acme.spring.boot.properties; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/greeting") -public class GreetingResource { - - @Inject - GreetingProperties properties; - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return properties.text + ", " + properties.name.orElse("You") + properties.suffix; - } -} ----- - -[source,java] ----- -package org.acme.spring.boot.properties; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -public class GreetingResourceTest { - - @Test - public void testHelloEndpoint() { - given() - .when().get("/greeting") - .then() - .statusCode(200) - .body(is("hello, You!")); - } -} ----- - -Run the tests to verify the change. - -== Grouping properties - -Now we have three properties in our `GreetingProperties` class. -While `name` could be considered more of a runtime property (and maybe could be passed as an HTTP query parameter in the future), `text` and `suffix` are used to define a message template. -Let's group these two properties in a separate inner class: - -[source,java] ----- -package org.acme.spring.boot.properties; - -import java.util.Optional; - -import org.springframework.boot.context.properties.ConfigurationProperties; - -@ConfigurationProperties("greeting") -public class GreetingProperties { - - public Message message; - - public Optional name; - - public static class Message { - - public String text; - - public String suffix = "!"; - } -} ----- - -Here `Message` properties class is defined as an inner class, but it could also be a top level class. - -Having such property groups brings more structure to your configuration. -This is especially useful when then number of properties grows. - -Because of the additional class, our property names have changed. -Let's update the properties file and the `GreetingResource` class. - -[source,properties] ----- -# Your configuration properties -greeting.message.text = hello ----- - -[source,java] ----- -package org.acme.spring.boot.properties; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/greeting") -public class GreetingResource { - - @Inject - GreetingProperties properties; - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return properties.message.text + ", " + properties.name.orElse("You") + properties.message.suffix; - } -} ----- - -== More Spring guides - -Quarkus has more Spring compatibility features. See the following guides for more details: - -* xref:spring-di.adoc[Quarkus - Extension for Spring DI] -* xref:spring-web.adoc[Quarkus - Extension for Spring Web] -* xref:spring-data-jpa.adoc[Quarkus - Extension for Spring Data JPA] -* xref:spring-data-rest.adoc[Quarkus - Extension for Spring Data REST] -* xref:spring-security.adoc[Quarkus - Extension for Spring Security] -* xref:spring-cloud-config-client.adoc[Quarkus - Reading properties from Spring Cloud Config Server] -* xref:spring-cache.adoc[Quarkus - Extension for Spring Cache] -* xref:spring-scheduled.adoc[Quarkus - Extension for Spring Scheduled] diff --git a/_versions/2.7/guides/spring-cache.adoc b/_versions/2.7/guides/spring-cache.adoc deleted file mode 100644 index 709d6c9508f..00000000000 --- a/_versions/2.7/guides/spring-cache.adoc +++ /dev/null @@ -1,270 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Quarkus Extension for Spring Cache API - -include::./attributes.adoc[] - -While users are encouraged to use xref:cache.adoc[Quarkus annotations for caching], Quarkus nevertheless provides a compatibility layer for Spring Cache annotations in the form of the `spring-cache` extension. - -This guide explains how a Quarkus application can leverage the well known Spring Cache annotations to enable application data caching for their Spring beans. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* Some familiarity with the Spring DI extension - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: spring-cache-quickstart -:create-app-extensions: resteasy,spring-di,spring-cache -include::includes/devtools/create-app.adoc[] - -This command generates a project which imports the `spring-cache` and `spring-di` extensions. - -If you already have your Quarkus project configured, you can add the `spring-cache` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: spring-cache -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-spring-cache - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-spring-cache") ----- - -== Creating the REST API - -Let's start by creating a service which will simulate an extremely slow call to an external meteorological service. -Create `src/main/java/org/acme/spring/cache/WeatherForecastService.java` with the following content: - -[source,java] ----- -package org.acme.spring.cache; - -import java.time.LocalDate; - -import org.springframework.stereotype.Component; - -@Component -public class WeatherForecastService { - - public String getDailyForecast(LocalDate date, String city) { - try { - Thread.sleep(2000L); // <1> - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } - return date.getDayOfWeek() + " will be " + getDailyResult(date.getDayOfMonth() % 4) + " in " + city; - } - - private String getDailyResult(int dayOfMonthModuloFour) { - switch (dayOfMonthModuloFour) { - case 0: - return "sunny"; - case 1: - return "cloudy"; - case 2: - return "chilly"; - case 3: - return "rainy"; - default: - throw new IllegalArgumentException(); - } - } -} ----- -<1> This is where the slowness comes from. - -We also need a class which contains the response sent to the users when they ask for the next three days weather forecast. -Create `src/main/java/org/acme/spring/cache/WeatherForecast.java` this way: - -[source,java] ----- -package org.acme.spring.cache; - -import java.util.List; - -public class WeatherForecast { - - private List dailyForecasts; - - private long executionTimeInMs; - - public WeatherForecast(List dailyForecasts, long executionTimeInMs) { - this.dailyForecasts = dailyForecasts; - this.executionTimeInMs = executionTimeInMs; - } - - public List getDailyForecasts() { - return dailyForecasts; - } - - public long getExecutionTimeInMs() { - return executionTimeInMs; - } -} ----- - -Now, we just need to create the `src/main/java/org/acme/spring/cache/WeatherForecastResource.java` class to use the service and response: - -[source,java] ----- -package org.acme.spring.cache; - -import java.time.LocalDate; -import java.util.Arrays; -import java.util.List; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import org.jboss.resteasy.annotations.jaxrs.QueryParam; - -@Path("/weather") -public class WeatherForecastResource { - - @Inject - WeatherForecastService service; - - @GET - public WeatherForecast getForecast(@QueryParam String city, @QueryParam long daysInFuture) { // <1> - long executionStart = System.currentTimeMillis(); - List dailyForecasts = Arrays.asList( - service.getDailyForecast(LocalDate.now().plusDays(daysInFuture), city), - service.getDailyForecast(LocalDate.now().plusDays(daysInFuture + 1L), city), - service.getDailyForecast(LocalDate.now().plusDays(daysInFuture + 2L), city) - ); - long executionEnd = System.currentTimeMillis(); - return new WeatherForecast(dailyForecasts, executionEnd - executionStart); - } -} ----- -<1> If the `daysInFuture` query parameter is omitted, the three days weather forecast will start from the current day. -Otherwise, it will start from the current day plus the `daysInFuture` value. - -We're all done! Let's check if everything's working. - -First, run the application using: - -include::includes/devtools/dev.adoc[] - -Then, call `http://localhost:8080/weather?city=Raleigh` from a browser. -After six long seconds, the application will answer something like this: - -[source] ----- -{"dailyForecasts":["MONDAY will be cloudy in Raleigh","TUESDAY will be chilly in Raleigh","WEDNESDAY will be rainy in Raleigh"],"executionTimeInMs":6001} ----- - -[TIP] -==== -The response content may vary depending on the day you run the code. -==== - -You can try calling the same URL again and again, it will always take six seconds to answer. - -== Enabling the cache - -Now that your Quarkus application is up and running, let's tremendously improve its response time by caching the external meteorological service responses. -Update the `WeatherForecastService` class as follows: - -[source,java] ----- -package org.acme.cache; - -import java.time.LocalDate; - -import org.springframework.cache.annotation.Cacheable; -import org.springframework.stereotype.Component; - -@Component -public class WeatherForecastService { - - @Cacheable("weather-cache") // <1> - public String getDailyForecast(LocalDate date, String city) { - try { - Thread.sleep(2000L); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } - return date.getDayOfWeek() + " will be " + getDailyResult(date.getDayOfMonth() % 4) + " in " + city; - } - - private String getDailyResult(int dayOfMonthModuloFour) { - switch (dayOfMonthModuloFour) { - case 0: - return "sunny"; - case 1: - return "cloudy"; - case 2: - return "chilly"; - case 3: - return "rainy"; - default: - throw new IllegalArgumentException(); - } - } -} ----- -<1> We only added this annotation (and the associated import of course). - -Let's try to call `http://localhost:8080/weather?city=Raleigh` again. -You're still waiting a long time before receiving an answer. -This is normal since the server just restarted and the cache was empty. - -Wait a second! The server restarted by itself after the `WeatherForecastService` update? -Yes, this is one of Quarkus amazing features for developers called `live coding`. - -Now that the cache was loaded during the previous call, try calling the same URL. -This time, you should get a super fast answer with an `executionTimeInMs` value close to 0. - -Let's see what happens if we start from one day in the future using the `http://localhost:8080/weather?city=Raleigh&daysInFuture=1` URL. -You should get an answer two seconds later since two of the requested days were already loaded in the cache. - -You can also try calling the same URL with a different city and see the cache in action again. -The first call will take six seconds and the following ones will be answered immediately. - -Congratulations! You just added application data caching to your Quarkus application with a single line of code! - -== Supported features - -Quarkus provides compatibility with the following Spring Cache annotations: - -* `@Cacheable` -* `@CachePut` -* `@CacheEvict` - -Note that in this first version of the Spring Cache annotations extension, not all features of these annotations are supported -(with proper errors being logged when trying to use an unsupported feature). -However, additional features are planned for future releases. - -== More Spring guides - -Quarkus has more Spring compatibility features. See the following guides for more details: - -* xref:spring-di.adoc[Quarkus - Extension for Spring DI] -* xref:spring-web.adoc[Quarkus - Extension for Spring Web] -* xref:spring-security.adoc[Quarkus - Extension for Spring Security] -* xref:spring-data-jpa.adoc[Quarkus - Extension for Spring Data JPA] -* xref:spring-data-rest.adoc[Quarkus - Extension for Spring Data REST] -* xref:spring-cloud-config-client.adoc[Quarkus - Reading properties from Spring Cloud Config Server] -* xref:spring-boot-properties.adoc[Quarkus - Extension for Spring Boot properties] -* xref:spring-scheduled.adoc[Quarkus - Extension for Spring Scheduled] diff --git a/_versions/2.7/guides/spring-cloud-config-client.adoc b/_versions/2.7/guides/spring-cloud-config-client.adoc deleted file mode 100644 index 211054d44ed..00000000000 --- a/_versions/2.7/guides/spring-cloud-config-client.adoc +++ /dev/null @@ -1,155 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Reading properties from Spring Cloud Config Server - -include::./attributes.adoc[] - -This guide explains how your Quarkus application can read configuration properties at runtime from the https://cloud.spring.io/spring-cloud-config[Spring Cloud Config Server]. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. - -== Stand up a Config Server - -To stand up the Config Server required for this guide, please follow the instructions outlined https://github.com/spring-guides/gs-centralized-configuration#stand-up-a-config-server[here]. -The end result of that process is a running Config Server that will provide the `Hello world` value for a configuration property named `message` when the application querying the server is named `a-bootiful-client`. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: spring-cloud-config-quickstart -:create-app-extensions: spring-cloud-config-client -include::includes/devtools/create-app.adoc[] - -This command generates a project which imports the `spring-cloud-config-client` extension. - -If you already have your Quarkus project configured, you can add the `spring-cloud-config-client` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: spring-cloud-config-client -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-spring-cloud-config-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-spring-cloud-config-client") ----- - -== GreetingController - -First, create a simple `GreetingResource` JAX-RS resource in the -`src/main/java/org/acme/spring/cloud/config/client/GreetingResource.java` file that looks like: - -[source,java] ----- -package org.acme.spring.spring.cloud.config.client; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/hello") -public class GreetingResource { - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return "hello"; - } -} ----- - -As we want to use configuration properties obtained from the Config Server, we will update the `GreetingResource` to inject the `message` property. The updated code will look like this: - -[source,java] ----- -package org.acme.spring.spring.cloud.config.client; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.eclipse.microprofile.config.inject.ConfigProperty; - -@Path("/hello") -public class GreetingResource { - - @ConfigProperty(name = "message", defaultValue="hello default") - String message; - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return message; - } -} ----- - -== Configuring the application - -Quarkus provides various configuration knobs under the `quarkus.spring-cloud-config` root. For the purposes of this guide, our Quarkus application is going to be configured in `application.properties` as follows: - -[source,properties] ----- -# use the same name as the application name that was configured when standing up the Config Server -quarkus.application.name=a-bootiful-client -# enable retrieval of configuration from the Config Server - this is off by default -quarkus.spring-cloud-config.enabled=true -# configure the URL where the Config Server listens to HTTP requests - this could have been left out since http://localhost:8888 is the default -quarkus.spring-cloud-config.url=http://localhost:8888 ----- - -== Package and run the application - -Run the application with: - -include::includes/devtools/dev.adoc[] - -Open your browser to http://localhost:8080/greeting. - -The result should be: `Hello world` as it is the value obtained from the Spring Cloud Config server. - -== Run the application as a native executable - -You can of course create a native image using the instructions of the xref:building-native-image.adoc[Building a native executable guide]. - -== More Spring guides - -Quarkus has more Spring compatibility features. See the following guides for more details: - -* xref:spring-di.adoc[Quarkus - Extension for Spring DI] -* xref:spring-web.adoc[Quarkus - Extension for Spring Web] -* xref:spring-data-jpa.adoc[Quarkus - Extension for Spring Data JPA] -* xref:spring-data-rest.adoc[Quarkus - Extension for Spring Data REST] -* xref:spring-security.adoc[Quarkus - Extension for Spring Security] -* xref:spring-boot-properties.adoc[Quarkus - Extension for Spring Boot properties] -* xref:spring-cache.adoc[Quarkus - Extension for Spring Cache] -* xref:spring-scheduled.adoc[Quarkus - Extension for Spring Scheduled] - -[[spring-cloud-config-client-configuration-reference]] -== Spring Cloud Config Client Reference - -include::{generated-dir}/config/quarkus-spring-cloud-config-client.adoc[leveloffset=+1, opts=optional] - diff --git a/_versions/2.7/guides/spring-data-jpa.adoc b/_versions/2.7/guides/spring-data-jpa.adoc deleted file mode 100644 index e87c78448ac..00000000000 --- a/_versions/2.7/guides/spring-data-jpa.adoc +++ /dev/null @@ -1,625 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Extension for Spring Data API - -include::./attributes.adoc[] - -While users are encouraged to use Hibernate ORM with Panache for Relational Database access, Quarkus provides a compatibility layer for -Spring Data JPA repositories in the form of the `spring-data-jpa` extension. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `spring-data-jpa-quickstart` {quickstarts-tree-url}/spring-data-jpa-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: spring-data-jpa-quickstart -:create-app-extensions: resteasy,spring-data-jpa,resteasy-jackson,quarkus-jdbc-postgresql -include::includes/devtools/create-app.adoc[] - -This command generates a Maven project with a REST endpoint and imports the `spring-data-jpa` extension. - -If you already have your Quarkus project configured, you can add the `spring-data-jpa` extension -to your project by running the following command in your project base directory: - -[source,bash] ----- -./mvnw quarkus:add-extension -Dextensions="spring-data-jpa" ----- - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-spring-data-jpa - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-spring-data-jpa") ----- - -== Define the Entity - -Throughout the course of this guide, the following JPA Entity will be used: - -[source,java] ----- -package org.acme.spring.data.jpa; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; - -@Entity -public class Fruit { - - @Id - @GeneratedValue - private Long id; - - private String name; - - private String color; - - - public Fruit() { - } - - public Fruit(String name, String color) { - this.name = name; - this.color = color; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getColor() { - return color; - } - - public void setColor(String color) { - this.color = color; - } -} ----- - - -== Configure database access properties - -Add the following properties to `application.properties` to configure access to a local PostgreSQL instance. - -[source,properties] ----- -quarkus.datasource.db-kind=postgresql -quarkus.datasource.username=quarkus_test -quarkus.datasource.password=quarkus_test -quarkus.datasource.jdbc.url=jdbc:postgresql:quarkus_test -quarkus.datasource.jdbc.max-size=8 -quarkus.datasource.jdbc.min-size=2 -quarkus.hibernate-orm.database.generation=drop-and-create ----- - -This configuration assumes that PostgreSQL will be running locally. - -A very easy way to accomplish that is by using the following Docker command: - -[source,bash] ----- -docker run -it --rm=true --name quarkus_test -e POSTGRES_USER=quarkus_test -e POSTGRES_PASSWORD=quarkus_test -e POSTGRES_DB=quarkus_test -p 5432:5432 postgres:14.1 ----- - -If you plan on using a different setup, please change your `application.properties` accordingly. - -== Prepare the data - -To make it easier to showcase some capabilities of Spring Data JPA on Quarkus, some test data should be inserted into the database -by adding the following content to a new file named `src/main/resources/import.sql`: - -[source,sql] ----- -INSERT INTO fruit(id, name, color) VALUES (1, 'Cherry', 'Red'); -INSERT INTO fruit(id, name, color) VALUES (2, 'Apple', 'Red'); -INSERT INTO fruit(id, name, color) VALUES (3, 'Banana', 'Yellow'); -INSERT INTO fruit(id, name, color) VALUES (4, 'Avocado', 'Green'); -INSERT INTO fruit(id, name, color) VALUES (5, 'Strawberry', 'Red'); ----- - -Hibernate ORM will execute these queries on application startup. - -== Define the repository - -It is now time to define the repository that will be used to access `Fruit`. -In a typical Spring Data fashion create a repository like so: - -[source,java] ----- -package org.acme.spring.data.jpa; - -import org.springframework.data.repository.CrudRepository; - -import java.util.List; - -public interface FruitRepository extends CrudRepository { - - List findByColor(String color); -} ----- - -The `FruitRepository` above extends Spring Data's `org.springframework.data.repository.CrudRepository` which means that all of the latter's methods are -available to `FruitRepository`. -Additionally `findByColor` is defined whose purpose is to return all Fruit entities that match the specified color. - -== Update the JAX-RS resource - -With the repository in place, the next order of business is to create the JAX-RS resource that will use the `FruitRepository`. -Create `FruitResource` with the following content: - -[source,java] ----- -package org.acme.spring.data.jpa; - -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; - -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -import java.util.List; -import java.util.Optional; - -@Path("/fruits") -public class FruitResource { - - private final FruitRepository fruitRepository; - - public FruitResource(FruitRepository fruitRepository) { - this.fruitRepository = fruitRepository; - } - - @GET - public Iterable findAll() { - return fruitRepository.findAll(); - } - - - @DELETE - @Path("{id}") - public void delete(@PathParam long id) { - fruitRepository.deleteById(id); - } - - @POST - @Path("/name/{name}/color/{color}") - public Fruit create(@PathParam String name, @PathParam String color) { - return fruitRepository.save(new Fruit(name, color)); - } - - @PUT - @Path("/id/{id}/color/{color}") - public Fruit changeColor(@PathParam Long id, @PathParam String color) { - Optional optional = fruitRepository.findById(id); - if (optional.isPresent()) { - Fruit fruit = optional.get(); - fruit.setColor(color); - return fruitRepository.save(fruit); - } - - throw new IllegalArgumentException("No Fruit with id " + id + " exists"); - } - - @GET - @Path("/color/{color}") - public List findByColor(@PathParam String color) { - return fruitRepository.findByColor(color); - } -} - ----- - -`FruitResource` now provides a few REST endpoints that can be used to perform CRUD operation on `Fruit`. - -=== Note on Spring Web - -The JAX-RS resource can also be substituted with a Spring Web controller as Quarkus supports REST endpoint definition using Spring controllers. -See the xref:spring-web.adoc[Spring Web guide] for more details. - -== Update the test - -To test the capabilities of `FruitRepository` proceed to update the content of `FruitResourceTest` to: - -[source,java] ----- -package org.acme.spring.data.jpa; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.containsString; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.hamcrest.core.IsNot.not; - -@QuarkusTest -class FruitResourceTest { - - @Test - void testListAllFruits() { - //List all, should have all 3 fruits the database has initially: - given() - .when().get("/fruits") - .then() - .statusCode(200) - .body( - containsString("Cherry"), - containsString("Apple"), - containsString("Banana") - ); - - //Delete the Cherry: - given() - .when().delete("/fruits/1") - .then() - .statusCode(204) - ; - - //List all, cherry should be missing now: - given() - .when().get("/fruits") - .then() - .statusCode(200) - .body( - not(containsString("Cherry")), - containsString("Apple"), - containsString("Banana") - ); - - //Create a new Fruit - given() - .when().post("/fruits/name/Orange/color/Orange") - .then() - .statusCode(200) - .body(containsString("Orange")) - .body("id", notNullValue()) - .extract().body().jsonPath().getString("id"); - - //List all, Orange should be present now: - given() - .when().get("/fruits") - .then() - .statusCode(200) - .body( - not(containsString("Cherry")), - containsString("Apple"), - containsString("Orange") - ); - } - - @Test - void testFindByColor() { - //Find by color that no fruit has - given() - .when().get("/fruits/color/Black") - .then() - .statusCode(200) - .body("size()", is(0)); - - //Find by color that multiple fruits have - given() - .when().get("/fruits/color/Red") - .then() - .statusCode(200) - .body( - containsString("Apple"), - containsString("Strawberry") - ); - - //Find by color that matches - given() - .when().get("/fruits/color/Green") - .then() - .statusCode(200) - .body("size()", is(1)) - .body(containsString("Avocado")); - - //Update color of Avocado - given() - .when().put("/fruits/id/4/color/Black") - .then() - .statusCode(200) - .body(containsString("Black")); - - //Find by color that Avocado now has - given() - .when().get("/fruits/color/Black") - .then() - .statusCode(200) - .body("size()", is(1)) - .body( - containsString("Black"), - containsString("Avocado") - ); - } - -} ----- - -The test can be easily run by issuing: - -include::includes/devtools/test.adoc[] - -== Package and run the application - -Quarkus dev mode works with the defined repositories just like with any other Quarkus extension, greatly enhancing your productivity during the dev cycle. -The application can be started in dev mode as usual using: - -include::includes/devtools/dev.adoc[] - -== Run the application as a native binary - -You can of course create a native executable following the instructions of the xref:building-native-image.adoc[this guide]. - -== Supported Spring Data JPA functionalities - -Quarkus currently supports a subset of Spring Data JPA's features, namely the most useful and most commonly used features. - -An important part of this support is that all repository generation is done at build time thus ensuring that all supported features work correctly in native mode. -Moreover, developers know at build time whether or not their repository method names can be converted to proper JPQL queries. -This also means that if a method name indicates that a field should be used that is not part of the Entity, developers will get -the relevant error at build time. - -=== What is supported - -The following sections described the most important supported features of Spring Data JPA. - -==== Automatic repository implementation generation - -Interfaces that extend any of the following Spring Data repositories are automatically implemented: - -* `org.springframework.data.repository.Repository` -* `org.springframework.data.repository.CrudRepository` -* `org.springframework.data.repository.PagingAndSortingRepository` -* `org.springframework.data.jpa.repository.JpaRepository` - -The generated repositories are also registered as beans so they can be injected into any other bean. -Furthermore the methods that update the database are automatically annotated with `@Transactional`. - -==== Fine tuning of repository definition - -This allows user defined repository interfaces to cherry-pick methods from any of the supported Spring Data repository interfaces without having to extend those interfaces. -This is particularly useful when for example a repository needs to use some methods from `CrudRepository` but it's undesirable to expose the full list of methods of said interface. - -Assume for example that a `PersonRepository` that shouldn't extend `CrudRepository` but would like to use `save` and `findById` methods which are defined in said interface. -In such a case, `PersonRepository` would look like so: - -[source,java] ----- -package org.acme.spring.data.jpa; - -import org.springframework.data.repository.Repository; - -public interface PersonRepository extends Repository { - - Person save(Person entity); - - Optional findById(Person entity); -} ----- - -==== Customizing individual repositories using repository fragments - -Repositories can be enriched with additional functionality or override the default implementation of methods of the supported Spring Data repositories. -This is best shown with an example. - -A repository fragment is defined as so: - -[source,java] ----- -public interface PersonFragment { - - // custom findAll - List findAll(); - - void makeNameUpperCase(Person person); -} ----- - -The implementation of that fragment looks like this: - -[source,java] ----- -import java.util.List; - -import io.quarkus.hibernate.orm.panache.runtime.JpaOperations; - -public class PersonFragmentImpl implements PersonFragment { - - @Override - public List findAll() { - // do something here - return (List) JpaOperations.findAll(Person.class).list(); - } - - @Override - public void makeNameUpperCase(Person person) { - person.setName(person.getName().toUpperCase()); - } -} ----- - -Then the actual `PersonRepository` interface to be used would look like: - -[source,java] ----- -public interface PersonRepository extends JpaRepository, PersonFragment { - -} ----- - -==== Derived query methods - -Methods of repository interfaces that follow the Spring Data conventions can be automatically implemented (unless they fall into one of the unsupported cases listed later on). -This means that methods like the following will all work: - -[source,java] ----- -public interface PersonRepository extends CrudRepository { - - List findByName(String name); - - Person findByNameBySsn(String ssn); - - Optional findByNameBySsnIgnoreCase(String ssn); - - boolean existsBookByYearOfBirthBetween(Integer start, Integer end); - - List findByName(String name, Sort sort); - - Page findByNameOrderByJoined(String name, Pageable pageable); - - List findByNameOrderByAge(String name); - - List findByNameOrderByAgeDesc(String name, Pageable pageable); - - List findByAgeBetweenAndNameIsNotNull(int lowerAgeBound, int upperAgeBound); - - List findByAgeGreaterThanEqualOrderByAgeAsc(int age); - - List queryByJoinedIsAfter(Date date); - - Collection readByActiveTrueOrderByAgeDesc(); - - Long countByActiveNot(boolean active); - - List findTop3ByActive(boolean active, Sort sort); - - Stream findPersonByNameAndSurnameAllIgnoreCase(String name, String surname); -} ----- - -==== User defined queries - -User supplied queries contained in the `@Query` annotation. For example things like the following all work: - -[source,java] ----- -public interface MovieRepository extends CrudRepository { - - Movie findFirstByOrderByDurationDesc(); - - @Query("select m from Movie m where m.rating = ?1") - Iterator findByRating(String rating); - - @Query("from Movie where title = ?1") - Movie findByTitle(String title); - - @Query("select m from Movie m where m.duration > :duration and m.rating = :rating") - List withRatingAndDurationLargerThan(@Param("duration") int duration, @Param("rating") String rating); - - @Query("from Movie where title like concat('%', ?1, '%')") - List someFieldsWithTitleLike(String title, Sort sort); - - @Modifying - @Query("delete from Movie where rating = :rating") - void deleteByRating(@Param("rating") String rating); - - @Modifying - @Query("delete from Movie where title like concat('%', ?1, '%')") - Long deleteByTitleLike(String title); - - @Modifying - @Query("update Movie m set m.rating = :newName where m.rating = :oldName") - int changeRatingToNewName(@Param("newName") String newName, @Param("oldName") String oldName); - - @Modifying - @Query("update Movie set rating = null where title =?1") - void setRatingToNullForTitle(String title); - - @Query("from Movie order by length(title)") - Slice orderByTitleLength(Pageable pageable); -} ----- -All methods that are annotated with `@Modifying` will automatically be annotated with `@Transactional`. - -TIP: In Quarkus, `@Param` is optional when parameter names have been compiled to bytecode (which is active by default in generated projects). - -==== Naming Strategies - -Hibernate ORM maps property names using a physical naming strategy and an implicit naming strategy. If you wish to use Spring Boot's default naming strategies, the following properties need to be set: - -[source, properties] ----- -quarkus.hibernate-orm.physical-naming-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy -quarkus.hibernate-orm.implicit-naming-strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy ----- - -==== More examples - -An extensive list of examples can be seen in the https://github.com/quarkusio/quarkus/tree/main/integration-tests/spring-data-jpa[integration tests] directory which is located inside the Quarkus source code. - -=== What is currently unsupported - -* Methods of the `org.springframework.data.repository.query.QueryByExampleExecutor` interface - if any of these are invoked, a Runtime exception will be thrown. -* QueryDSL support. No attempt will be made to generate implementations of any of the QueryDSL related repositories. -* Customizing the base repository for all repository interfaces in the code base. -** In Spring Data JPA this is done by registering a class that extends `org.springframework.data.jpa.repository.support.SimpleJpaRepository` however in Quarkus this class -is not used at all (since all the necessary plumbing is done at build time). Similar support might be added to Quarkus in the future. -* Using `java.util.concurrent.Future` and classes that extend it as return types of repository methods. -* Native and named queries when using `@Query` -* https://github.com/spring-projects/spring-data-jpa/blob/main/src/main/asciidoc/jpa.adoc#entity-state-detection-strategies[Entity State-detection Strategies] -via `EntityInformation`. - -The Quarkus team is exploring various alternatives to bridging the gap between the JPA and Reactive worlds. - -== Important Technical Note - -Please note that the Spring support in Quarkus does not start a Spring Application Context nor are any Spring infrastructure classes run. -Spring classes and annotations are only used for reading metadata and / or are used as user code method return types or parameter types. - -== More Spring guides - -Quarkus has more Spring compatibility features. See the following guides for more details: - -* xref:spring-di.adoc[Quarkus - Extension for Spring DI] -* xref:spring-web.adoc[Quarkus - Extension for Spring Web] -* xref:spring-security.adoc[Quarkus - Extension for Spring Security] -* xref:spring-cloud-config-client.adoc[Quarkus - Reading properties from Spring Cloud Config Server] -* xref:spring-boot-properties.adoc[Quarkus - Extension for Spring Boot properties] -* xref:spring-cache.adoc[Quarkus - Extension for Spring Cache] -* xref:spring-scheduled.adoc[Quarkus - Extension for Spring Scheduled] -* xref:spring-data-rest.adoc[Quarkus - Extension for Spring Data REST] diff --git a/_versions/2.7/guides/spring-data-rest.adoc b/_versions/2.7/guides/spring-data-rest.adoc deleted file mode 100644 index 5270aba63c5..00000000000 --- a/_versions/2.7/guides/spring-data-rest.adoc +++ /dev/null @@ -1,444 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Extension for Spring Data REST - -include::./attributes.adoc[] -:extension-status: preview - -While users are encouraged to use REST Data with Panache for the REST data access endpoints generation, -Quarkus provides a compatibility layer for Spring Data REST in the form of the `spring-data-rest` extension. - - -include::./status-include.adoc[] - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `spring-data-rest-quickstart` {quickstarts-tree-url}/spring-data-rest-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: spring-data-rest-quickstart -:create-app-extensions: spring-data-rest,resteasy-jackson,quarkus-jdbc-postgresql -include::includes/devtools/create-app.adoc[] - -This command generates a project with the `spring-data-rest` extension. - -If you already have your Quarkus project configured, you can add the `spring-data-rest` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: spring-data-rest -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-spring-data-rest - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-spring-data-rest") ----- - -Furthermore, the following dependency needs to be added - -For the tests you will also need REST Assured. Add it to the build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.rest-assured - rest-assured - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.rest-assured:rest-assured") ----- - -Note: both `resteasy-jackson` and `resteasy-jsonb` are supported and can be interchanged. - -== Define the Entity - -Throughout the course of this guide, the following JPA Entity will be used: - -[source,java] ----- -package org.acme.spring.data.rest; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; - -@Entity -public class Fruit { - - @Id - @GeneratedValue - private Long id; - - private String name; - - private String color; - - - public Fruit() { - } - - public Fruit(String name, String color) { - this.name = name; - this.color = color; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getColor() { - return color; - } - - public void setColor(String color) { - this.color = color; - } -} ----- - - -== Configure database access properties - -Add the following properties to `application.properties` to configure access to a local PostgreSQL instance. - -[source,properties] ----- -quarkus.datasource.db-kind=postgresql -quarkus.datasource.username=quarkus_test -quarkus.datasource.password=quarkus_test -quarkus.datasource.jdbc.url=jdbc:postgresql:quarkus_test -quarkus.datasource.jdbc.max-size=8 -quarkus.hibernate-orm.database.generation=drop-and-create ----- - -This configuration assumes that PostgreSQL will be running locally. - -A very easy way to accomplish that is by using the following Docker command: - -[source,bash] ----- -docker run -it --rm=true --name quarkus_test -e POSTGRES_USER=quarkus_test -e POSTGRES_PASSWORD=quarkus_test -e POSTGRES_DB=quarkus_test -p 5432:5432 postgres:14.1 ----- - -If you plan on using a different setup, please change your `application.properties` accordingly. - -== Prepare the data - -To make it easier to showcase some capabilities of Spring Data REST on Quarkus, some test data should be inserted into the database -by adding the following content to a new file named `src/main/resources/import.sql`: - -[source,sql] ----- -INSERT INTO fruit(id, name, color) VALUES (1, 'Cherry', 'Red'); -INSERT INTO fruit(id, name, color) VALUES (2, 'Apple', 'Red'); -INSERT INTO fruit(id, name, color) VALUES (3, 'Banana', 'Yellow'); -INSERT INTO fruit(id, name, color) VALUES (4, 'Avocado', 'Green'); -INSERT INTO fruit(id, name, color) VALUES (5, 'Strawberry', 'Red'); ----- - -Hibernate ORM will execute these queries on application startup. - -== Define the repository - -It is now time to define the repository that will be used to access `Fruit`. -In a typical Spring Data fashion, create a repository like so: - -[source,java] ----- -package org.acme.spring.data.rest; - -import org.springframework.data.repository.CrudRepository; - -public interface FruitsRepository extends CrudRepository { -} ----- - -The `FruitsRepository` above extends Spring Data's `org.springframework.data.repository.CrudRepository` which means that all of the latter's methods are -available to `FruitsRepository`. - -The `spring-data-jpa` extension will generate an implementation for this repository. Then the `spring-data-rest` extension will generate a REST CRUD resource for it. - -== Update the test - -To test the capabilities of `FruitsRepository` proceed to update the content of `FruitsRepositoryTest` to: - -[source,java] ----- -package org.acme.spring.data.rest; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.containsString; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.hamcrest.core.IsNot.not; - -@QuarkusTest -class FruitsRepositoryTest { - - @Test - void testListAllFruits() { - //List all, should have all 3 fruits the database has initially: - given() - .accept("application/json") - .when().get("/fruits") - .then() - .statusCode(200) - .body( - containsString("Cherry"), - containsString("Apple"), - containsString("Banana") - ); - - //Delete the Cherry: - given() - .when().delete("/fruits/1") - .then() - .statusCode(204); - - //List all, cherry should be missing now: - given() - .accept("application/json") - .when().get("/fruits") - .then() - .statusCode(200) - .body( - not(containsString("Cherry")), - containsString("Apple"), - containsString("Banana") - ); - - //Create a new Fruit - given() - .contentType("application/json") - .accept("application/json") - .body("{\"name\": \"Orange\", \"color\": \"Orange\"}") - .when().post("/fruits") - .then() - .statusCode(201) - .body(containsString("Orange")) - .body("id", notNullValue()) - .extract().body().jsonPath().getString("id"); - - //List all, Orange should be present now: - given() - .accept("application/json") - .when().get("/fruits") - .then() - .statusCode(200) - .body( - not(containsString("Cherry")), - containsString("Apple"), - containsString("Orange") - ); - } -} - ----- - -The test can be easily run by issuing: - -include::includes/devtools/test.adoc[] - -== Package and run the application - -Quarkus dev mode works with the defined repositories just like with any other Quarkus extension, greatly enhancing your productivity during the dev cycle. -The application can be started in dev mode as usual using: - -include::includes/devtools/dev.adoc[] - -== Run the application as a native binary - -You can of course create a native executable following the instructions of the xref:building-native-image.adoc[Building native executables] guide. - -== Supported Spring Data REST functionalities - -Quarkus currently supports a subset of Spring Data REST features, namely the most useful and most commonly used features. - -=== What is supported - -The following sections describe the most important supported features of Spring Data REST. - -==== Automatic REST endpoint generation - -Interfaces that extend any of the following Spring Data repositories get automatically generated REST endpoints: - -* `org.springframework.data.repository.CrudRepository` -* `org.springframework.data.repository.PagingAndSortingRepository` -* `org.springframework.data.jpa.repository.JpaRepository` - -Endpoints generated from the above repositories expose five common REST operations: - -* `GET /fruits` - lists all entities or returns a page if `PagingAndSortingRepository` or `JpaRepository` is used. -* `GET /fruits/:id` - returns an entity by ID. -* `POST /fruits` - creates a new entity. -* `PUT /fruits/:id` - updates an existing entity or creates a new one with a specified ID (if allowed by the entity definition). -* `DELETE /fruits/:id` - deletes an entity by ID. - -There are two supported data types: `application/json` and `application/hal+json`. -The former is used by default, but it is highly recommended to specify which one you prefer with an `Accept` header. - -==== Exposing many entities - -If a database contains many entities, it might not be a great idea to return them all at once. -`PagingAndSortingRepository` allows the `spring-data-rest` extension to access data in chunks. - -Replace the `CrudRepository` with `PagingAndSortingRepository` in the `FruitsRepository`: - -[source,java] ----- -package org.acme.spring.data.rest; - -import org.springframework.data.repository.PagingAndSortingRepository; - -public interface FruitsRepository extends PagingAndSortingRepository { -} ----- - -Now the `GET /fruits` will accept three new query parameters: `sort`, `page` and `size`. - -|=== -| Query parameter | Description | Default value | Example values - -| `sort` -| Sorts the entities that are returned by the list operation -| "" -| `?sort=name` (ascending name), `?sort=name,-color` (ascending name and descending color) - -| `page` -| Zero indexed page number. Invalid value is interpreted as 0. -| 0 -| 0, 11, 100 - -| `size` -| Page size. Minimal accepted value is 1. Any lower value is interpreted as 1. -| 20 -| 1, 11, 100 -|=== - -For paged responses, `spring-data-rest` also returns a set of link headers that can be used to access other pages: first, previous, next and last. - -==== Fine tuning endpoints generation - -This allows user to specify which methods should be exposed and what path should be used to access them. -Spring Data REST provides two annotations that can be used: `@RepositoryRestResource` and `@RestResource`. -`spring-data-rest` extension supports the `exported`, `path` `collectionResourceRel` attributes of these annotations. - -Assume for example that fruits repository should be accessible by a `/my-fruits` path and only allow `GET` operation. -In such a case, `FruitsRepository` would look like so: - -[source,java] ----- -package org.acme.spring.data.rest; - -import java.util.Optional; - -import org.springframework.data.repository.CrudRepository; -import org.springframework.data.rest.core.annotation.RepositoryRestResource; -import org.springframework.data.rest.core.annotation.RestResource; - -@RepositoryRestResource(exported = false, path = "/my-fruits") -public interface FruitsRepository extends CrudRepository { - - @RestResource(exported = true) - Optional findById(Long id); - - @RestResource(exported = true) - Iterable findAll(); -} ----- - -`spring-data-rest` uses only a subset of the repository methods for data access. -It is important to annotate the correct method in order to customize its REST endpoint: - -|=== -|REST operation |CrudRepository |PagingAndSortingRepository and JpaRepository - -|Get by ID -|`Optional findById(ID id)` -|`Optional findById(ID id)` - -|List -|`Iterable findAll()` -|`Page findAll(Pageable pageable)` - -|Create -|` S save(S entity)` -|` S save(S entity)` - -|Update -|` S save(S entity)` -|` S save(S entity)` - -|Delete -|`void deleteById(ID id)` -|`void deleteById(ID id)` -|=== - -=== What is currently unsupported - -* Only the repository methods listed above are supported. No other standard or custom methods are supported. -* Only the `exposed`, `path` and `collectionResourceRel` annotation properties are supported. - -== Important Technical Note - -Please note that the Spring support in Quarkus does not start a Spring Application Context nor are any Spring infrastructure classes run. -Spring classes and annotations are only used for reading metadata and / or are used as user code method return types or parameter types. - -== More Spring guides - -Quarkus has more Spring compatibility features. See the following guides for more details: - -* xref:spring-data-jpa.adoc[Quarkus - Extension for Spring Data JPA] -* xref:spring-di.adoc[Quarkus - Extension for Spring DI] -* xref:spring-web.adoc[Quarkus - Extension for Spring Web] -* xref:spring-security.adoc[Quarkus - Extension for Spring Security] -* xref:spring-cloud-config-client.adoc[Quarkus - Reading properties from Spring Cloud Config Server] -* xref:spring-boot-properties.adoc[Quarkus - Extension for Spring Boot properties] -* xref:spring-cache.adoc[Quarkus - Extension for Spring Cache] -* xref:spring-scheduled.adoc[Quarkus - Extension for Spring Scheduled] diff --git a/_versions/2.7/guides/spring-di.adoc b/_versions/2.7/guides/spring-di.adoc deleted file mode 100644 index 2cee0cf3c16..00000000000 --- a/_versions/2.7/guides/spring-di.adoc +++ /dev/null @@ -1,339 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Quarkus Extension for Spring DI API - -include::./attributes.adoc[] - -While users are encouraged to use CDI annotations for injection, Quarkus provides a compatibility layer for Spring dependency injection in the form of the `spring-di` extension. - -This guide explains how a Quarkus application can leverage the well known Dependency Injection annotations included in the Spring Framework. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `spring-di-quickstart` {quickstarts-tree-url}/spring-di-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: spring-di-quickstart -:create-app-extensions: resteasy,spring-di -include::includes/devtools/create-app.adoc[] - -This command generates a project which imports the `spring-di` extension. - -If you already have your Quarkus project configured, you can add the `spring-di` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: spring-di -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-spring-di - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-spring-di") ----- - -== Add beans using Spring annotations - -Let's proceed to create some beans using various Spring annotations. - -First we will create a `StringFunction` interface that some of our beans will implement and which will be injected into another bean later on. -Create a `src/main/java/org/acme/spring/di/StringFunction.java` file and set the following content: - -[source,java] ----- -package org.acme.spring.di; - -import java.util.function.Function; - -public interface StringFunction extends Function { - -} ----- - -With the interface in place, we will add an `AppConfiguration` class which will use the Spring's Java Config style for defining a bean. -It will be used to create a `StringFunction` bean that will capitalize the text passed as parameter. -Create a `src/main/java/org/acme/spring/di/AppConfiguration.java` file with the following content: - -[source,java] ----- -package org.acme.spring.di; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class AppConfiguration { - - @Bean(name = "capitalizeFunction") - public StringFunction capitalizer() { - return String::toUpperCase; - } -} ----- -As a Spring developer, you might be tempted to add the `@ComponentScan` annotation in order to define specific packages to scan for additional beans. Do note that `@ComponentScan` is entirely unnecessary since Quarkus performs xref:cdi-reference.adoc#bean_discovery[bean discovery] only in `annotated` mode with no visibility boundaries. Moreover, note that the bean discovery in Quarkus happens at build time. -In the same vein, Quarkus does not support the Spring `@Import` annotation. - -Now we define another bean that will implement `StringFunction` using Spring's stereotype annotation style. -This bean will effectively be a no-op bean that simply returns the input as is. -Create a `src/main/java/org/acme/spring/di/NoOpSingleStringFunction.java` file and set the following content: - -[source,java] ----- -package org.acme.spring.di; - -import org.springframework.stereotype.Component; - -@Component("noopFunction") -public class NoOpSingleStringFunction implements StringFunction { - - @Override - public String apply(String s) { - return s; - } -} ----- - -Quarkus also provides support for injecting configuration values using Spring's `@Value` annotation. -To see that in action, first edit the `src/main/resources/application.properties` with the following content: - -[source,properties] ----- -# Your configuration properties -greeting.message = hello ----- - -Next create a new Spring bean in `src/main/java/org/acme/spring/di/MessageProducer.java` with the following content: - - -[source,java] ----- -package org.acme.spring.di; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; - -@Service -public class MessageProducer { - - @Value("${greeting.message}") - String message; - - public String getPrefix() { - return message; - } -} ----- - -The final bean we will create ties together all the previous beans. -Create a `src/main/java/org/acme/spring/di/GreeterBean.java` file and copy the following content: - -[source,java] ----- -package org.acme.spring.di; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -@Component -public class GreeterBean { - - private final MessageProducer messageProducer; - - @Autowired - @Qualifier("noopFunction") - StringFunction noopStringFunction; - - @Autowired - @Qualifier("capitalizeFunction") - StringFunction capitalizerStringFunction; - - @Value("${greeting.suffix:!}") - String suffix; - - public GreeterBean(MessageProducer messageProducer) { - this.messageProducer = messageProducer; - } - - public String greet(String name) { - final String initialValue = messageProducer.getPrefix() + " " + name + suffix; - return noopStringFunction.andThen(capitalizerStringFunction).apply(initialValue); - } -} ----- - -In the code above, we see that both field injection and constructor injection are being used (note that constructor injection does not need the `@Autowired` annotation since there is a single constructor). -Furthermore, the `@Value` annotation on `suffix` has also a default value defined, which in this case will be used since we have not defined `greeting.suffix` in `application.properties`. - - -=== Create the JAX-RS resource - -Create the `src/main/java/org/acme/spring/di/GreeterResource.java` file with the following content: - -[source,java] ----- -package org.acme.spring.di; - -import org.springframework.beans.factory.annotation.Autowired; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/greeting") -public class GreeterResource { - - @Autowired - GreeterBean greeterBean; - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return greeterBean.greet("world"); - } -} ----- - -== Update the test - -We also need to update the functional test to reflect the changes made to the endpoint. -Edit the `src/test/java/org/acme/spring/di/GreetingResourceTest.java` file and change the content of the `testHelloEndpoint` method to: - - -[source, java] ----- -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -public class GreetingResourceTest { - - @Test - public void testHelloEndpoint() { - given() - .when().get("/greeting") - .then() - .statusCode(200) - .body(is("HELLO WORLD!")); - } - -} ----- - -== Package and run the application - -Run the application with: - -include::includes/devtools/dev.adoc[] - -Open your browser to http://localhost:8080/greeting. - -The result should be: `HELLO WORLD!`. - -== Run the application as a native - -You can of course create a native image using instructions similar to xref:building-native-image.adoc[this] guide. - -== Important Technical Note - -Please note that the Spring support in Quarkus does not start a Spring Application Context nor are any Spring infrastructure classes run. -Spring classes and annotations are only used for reading metadata and / or are used as user code method return types or parameter types. -What that means for end users, is that adding arbitrary Spring libraries will not have any effect. Moreover Spring infrastructure -classes (like `org.springframework.beans.factory.config.BeanPostProcessor` , `org.springframework.context.ApplicationContext` for example) will not be executed. -Regarding the dependency injection in particular, Quarkus uses a Dependency Injection mechanism (called ArC) based on the https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html[Contexts and Dependency Injection for Java 2.0] specification. If you want to learn more about it we recommend you to read the xref:cdi.adoc[Quarkus introduction to CDI] and the xref:cdi-reference.adoc#arc-configuration-reference[CDI reference guide] -The various Spring Boot test features are not supported by Quarkus. For testing purposes, please, check the xref:getting-started-testing.adoc[Quarkus testing guide]. - -== Conversion Table - -The following table shows how Spring DI annotations can be converted to CDI and / or MicroProfile annotations. - -|=== -|Spring |CDI / MicroProfile |Comments - -|@Autowired -|@Inject -| - -|@Qualifier -|@Named -| - -|@Value -|@ConfigProperty -|@ConfigProperty doesn't support an expression language the way @Value does, but makes the typical use cases much easier to handle - -|@Component -|@Singleton -|By default Spring stereotype annotations are singleton beans - -|@Service -|@Singleton -|By default Spring stereotype annotations are singleton beans - -|@Repository -|@Singleton -|By default Spring stereotype annotations are singleton beans - -|@Configuration -|@ApplicationScoped -|In CDI a producer bean isn't limited to the application scope, it could just as well be @Singleton or @Dependent - -|@Bean -|@Produces -| - -|@Scope -| -|Doesn't have a one-to-one mapping to a CDI annotation. Depending on the value of @Scope, one of the @Singleton, @ApplicationScoped, @SessionScoped, @RequestScoped, @Dependent could be used - -|@ComponentScan -| -|Doesn't have a one-to-one mapping to a CDI annotation. It is not used in Quarkus because Quarkus does all classpath scanning at build time. - -|@Import -| -|Doesn't have a one-to-one mapping to a CDI annotation. -|=== - -== More Spring guides - -Quarkus has more Spring compatibility features. See the following guides for more details: - -* xref:spring-web.adoc[Quarkus - Extension for Spring Web] -* xref:spring-data-jpa.adoc[Quarkus - Extension for Spring Data JPA] -* xref:spring-data-rest.adoc[Quarkus - Extension for Spring Data REST] -* xref:spring-security.adoc[Quarkus - Extension for Spring Security] -* xref:spring-cloud-config-client.adoc[Quarkus - Reading properties from Spring Cloud Config Server] -* xref:spring-boot-properties.adoc[Quarkus - Extension for Spring Boot properties] -* xref:spring-cache.adoc[Quarkus - Extension for Spring Cache] -* xref:spring-scheduled.adoc[Quarkus - Extension for Spring Scheduled] diff --git a/_versions/2.7/guides/spring-scheduled.adoc b/_versions/2.7/guides/spring-scheduled.adoc deleted file mode 100644 index 9ba863c1027..00000000000 --- a/_versions/2.7/guides/spring-scheduled.adoc +++ /dev/null @@ -1,243 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Quarkus Extension for Spring Scheduling API - -include::./attributes.adoc[] - -While users are encouraged to use xref:scheduler.adoc#standard-scheduling[regular Quarkus scheduler], Quarkus provides a compatibility layer for Spring Scheduled in the form of the `spring-scheduled` extension. - -This guide explains how a Quarkus application can leverage the well known Spring Scheduled annotation to configure and schedule tasks. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* Some familiarity with the Spring Web extension - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `spring-scheduled-quickstart` {quickstarts-tree-url}/spring-scheduled-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: spring-scheduler-quickstart -:create-app-extensions: resteasy,spring-scheduled -include::includes/devtools/create-app.adoc[] - -This command generates a Maven project with a REST endpoint and adds the `spring-scheduled` extension. - -If you already have your Quarkus project configured, you can add the `spring-scheduled` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: spring-scheduled -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-spring-scheduled - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-spring-scheduled") ----- - -== Creating a scheduled job - -In the `org.acme.spring.scheduler` package, create the `CounterBean` class, with the following content: - -[source,java] ----- -package org.acme.spring.scheduler; - -import org.springframework.scheduling.annotation.Scheduled; - -import java.util.concurrent.atomic.AtomicInteger; -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped // <1> -public class CounterBean { - - private AtomicInteger counter = new AtomicInteger(); - - public int get() { // <2> - return counter.get(); - } - - @Scheduled(cron="*/5 * * * * ?") // <3> - void cronJob() { - counter.incrementAndGet(); //<4> - System.out.println("Cron expression hardcoded"); - } - - @Scheduled(cron = "{cron.expr}") //<5> - void cronJobWithExpressionInConfig() { - counter.incrementAndGet(); - System.out.println("Cron expression configured in application.properties"); - } - - @Scheduled(fixedRate = 1000) //<6> - void jobAtFixedRate() { - counter.incrementAndGet(); - System.out.println("Fixed Rate expression"); - } - - @Scheduled(fixedRateString = "${fixedRate.expr}") //<7> - void jobAtFixedRateInConfig() { - counter.incrementAndGet(); - System.out.println("Fixed Rate expression configured in application.properties"); - } -} ----- -<1> Declare the bean in the _application_ scope. Spring only detects @Scheduled annotations in beans. -<2> The `get()` method allows retrieving the current value. -<3> Use the Spring `@Scheduled` annotation with a cron-like expression to instruct Quarkus to schedule this method run. In this example we're scheduling a task to be executed at 10:15am every day. -<4> The code is pretty straightforward. Every day at 10:15am, the counter is incremented. -<5> Define a job with a cron-like expression `cron.expr` which is configurable in `application.properties`. -<6> Define a method to be executed at a fixed interval of time. The period is expressed in milliseconds. -<7> Define a job to be executed at a fixed interval of time `fixedRate.expr` which is configurable in `application.properties`. - -== Updating the application configuration file - -Edit the `application.properties` file and add the `cron.expr` and the `fixedRate.expr` configuration: -[source,properties] ----- -# The syntax used by Spring for cron expressions is the same as which is used by regular Quarkus scheduler. -cron.expr=*/5 * * * * ? -fixedRate.expr=1000 ----- - -== Creating the resource and the test - -Create the `CountResource` class with the following content: - -[source,java] ----- -package org.acme.spring.scheduler; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/count") -public class CountResource { - - @Inject - CounterBean counter; // <1> - - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return "count: " + counter.get(); // <2> - } -} ----- -<1> Inject the `CounterBean` -<2> Send back the current counter value - -We also need to update the tests. Edit the `CountResourceTest` class to match: - -[source, java] ----- -package org.acme.spring.scheduler; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.containsString; - -import org.junit.jupiter.api.Test; - -import io.quarkus.test.junit.QuarkusTest; - -@QuarkusTest -public class CountResourceTest { - - @Test - public void testHelloEndpoint() { - given() - .when().get("/count") - .then() - .statusCode(200) - .body(containsString("count")); // <1> - } - -} ----- -<1> Ensure that the response contains `count` - -== Package and run the application - -Run the application with: - -include::includes/devtools/dev.adoc[] - -In another terminal, run `curl localhost:8080/count` to check the counter value. -After a few seconds, re-run `curl localhost:8080/count` to verify the counter has been incremented. - -Observe the console to verify that the following messages has been displayed: -- `Cron expression hardcoded` -- `Cron expression configured in application.properties` -- `Fixed Rate expression` -- `Fixed Rate expression configured in application.properties` -These messages indicate that the executions of methods annotated with `@Scheduled` have been triggered. - -As usual, the application can be packaged using: - -include::includes/devtools/build.adoc[] - -And executed using `java -jar target/quarkus-app/quarkus-run.jar`. - -You can also generate the native executable with: - -include::includes/devtools/build-native.adoc[] - -== Using Property Expressions - -Quarkus supports the use of property expressions in the `application.properties` file so to externalize the configuration of the tasks you should store the properties in the `application.properties` file and use the -`fixedRateString`, `initialDelayString` params respectively. - -Note that this configuration is a build time configuration, the property expression will be resolved at build time. - -== Unsupported Spring Scheduled functionalities - -Quarkus currently only supports a subset of the functionalities that Spring @Scheduled provides with more features being planned. -Currently, the `fixedDelay` and `fixedDelayString` parameters are not supported, in other words, `@Scheduled` methods are always executed independently. - -== Important Technical Note - -Please note that the Spring support in Quarkus does not start a Spring Application Context nor are any Spring infrastructure classes run. -Spring classes and annotations are only used for reading metadata and / or are used as user code method return types or parameter types. -What that means for end users, is that adding arbitrary Spring libraries will not have any effect. Moreover Spring infrastructure -classes (like `org.springframework.beans.factory.config.BeanPostProcessor` for example) will not be executed. - - -== More Spring guides - -Quarkus has more Spring compatibility features. See the following guides for more details: - -* xref:spring-di.adoc[Quarkus - Extension for Spring DI] -* xref:spring-web.adoc[Quarkus - Extension for Spring Web] -* xref:spring-data-jpa.adoc[Quarkus - Extension for Spring Data JPA] -* xref:spring-data-rest.adoc[Quarkus - Extension for Spring Data REST] -* xref:spring-cloud-config-client.adoc[Quarkus - Reading properties from Spring Cloud Config Server] -* xref:spring-boot-properties.adoc[Quarkus - Extension for Spring Boot properties] -* xref:spring-cache.adoc[Quarkus - Extension for Spring Cache] -* xref:spring-security.adoc[Quarkus - Extension for Spring Security] diff --git a/_versions/2.7/guides/spring-security.adoc b/_versions/2.7/guides/spring-security.adoc deleted file mode 100644 index d834d124305..00000000000 --- a/_versions/2.7/guides/spring-security.adoc +++ /dev/null @@ -1,441 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Quarkus Extension for Spring Security API - -include::./attributes.adoc[] - -While users are encouraged to use xref:security.adoc#standard-security-annotations[Java standard annotations for security authorizations], Quarkus provides a compatibility layer for Spring Security in the form of the `spring-security` extension. - -This guide explains how a Quarkus application can leverage the well known Spring Security annotations to define authorizations on RESTful services using roles. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* Some familiarity with the Spring Web extension - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `spring-security-quickstart` {quickstarts-tree-url}/spring-security-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: spring-security-quickstart -:create-app-extensions: spring-web,spring-security,quarkus-elytron-security-properties-file,resteasy-jackson -include::includes/devtools/create-app.adoc[] - -This command generates a project which imports the `spring-web`, `spring-security` and `security-properties-file` extensions. - -If you already have your Quarkus project configured, you can add the `spring-web`, `spring-security` and `security-properties-file` extensions -to your project by running the following command in your project base directory: - -:add-extension-extensions: spring-web,spring-security,quarkus-elytron-security-properties-file,resteasy-jackson -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-spring-web - - - io.quarkus - quarkus-spring-security - - - io.quarkus - quarkus-elytron-security-properties-file - - - io.quarkus - quarkus-resteasy-jackson - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-spring-web") -implementation("io.quarkus:quarkus-spring-security") -implementation("io.quarkus:quarkus-elytron-security-properties-file") -implementation("io.quarkus:quarkus-resteasy-jackson") ----- - -For more information about `security-properties-file`, you can check out the guide of the xref:security-properties.adoc[quarkus-elytron-security-properties-file] extension. - -== GreetingController - -The Quarkus Maven plugin automatically generated a controller with the Spring Web annotations to define our REST endpoint (instead of the JAX-RS ones used by default). -First create a `src/main/java/org/acme/spring/web/GreetingController.java`, a controller with the Spring Web annotations to define our REST endpoint, as follows: - -[source,java] ----- -package org.acme.spring.security; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/greeting") -public class GreetingController { - - @GetMapping - public String hello() { - return "hello"; - } -} ----- - -== GreetingControllerTest - -Note that a test for the controller has been created as well: - -[source, java] ----- -package org.acme.spring.security; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -public class GreetingControllerTest { - - @Test - public void testHelloEndpoint() { - given() - .when().get("/greeting") - .then() - .statusCode(200) - .body(is("hello")); - } - -} ----- - -== Package and run the application - -Run the application with: - -include::includes/devtools/dev.adoc[] - -Open your browser to http://localhost:8080/greeting. - -The result should be: `{"message": "hello"}`. - -== Modify the controller to secure the `hello` method - -In order to restrict access to the `hello` method to users with certain roles, the `@Secured` annotation will be utilized. -The updated controller will be: - -[source,java] ----- -package org.acme.spring.security; - -import org.springframework.security.access.annotation.Secured; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/greeting") -public class GreetingController { - - @Secured("admin") - @GetMapping - public String hello() { - return "hello"; - } -} ----- - -The easiest way to setup users and roles for our example is to use the `security-properties-file` extension. This extension essentially allows users and roles to be defined in the main Quarkus configuration file - `application.properties`. -For more information about this extension check xref:security-properties.adoc[the associated guide]. -An example configuration would be the following: - -[source,properties] ----- -quarkus.security.users.embedded.enabled=true -quarkus.security.users.embedded.plain-text=true -quarkus.security.users.embedded.users.scott=jb0ss -quarkus.security.users.embedded.roles.scott=admin,user -quarkus.security.users.embedded.users.stuart=test -quarkus.security.users.embedded.roles.stuart=user ----- - -Note that the test also needs to be updated. It could look like: - -== GreetingControllerTest - -[source, java] ----- -package org.acme.spring.security; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -public class GreetingControllerTest { - - @Test - public void testHelloEndpointForbidden() { - given().auth().preemptive().basic("stuart", "test") - .when().get("/greeting") - .then() - .statusCode(403); - } - - @Test - public void testHelloEndpoint() { - given().auth().preemptive().basic("scott", "jb0ss") - .when().get("/greeting") - .then() - .statusCode(200) - .body(is("hello")); - } - -} ----- - -== Test the changes - -Access allowed:: - -Open your browser again to http://localhost:8080/greeting and introduce `scott` and `jb0ss` in the dialog displayed. -+ -The word `hello` should be displayed. - -Access forbidden:: - -Open your browser again to http://localhost:8080/greeting and let empty the dialog displayed. -+ -The result should be: -+ -[source] ----- -Access to localhost was denied -You don't have authorization to view this page. -HTTP ERROR 403 ----- - -== Run the application as a native executable - -You can generate the native executable with: - -include::includes/devtools/build-native.adoc[] - -== Supported Spring Security functionalities - -Quarkus currently only supports a subset of the functionalities that Spring Security provides with more features being planned. More specifically, Quarkus supports the security related features of role-based authorization semantics -(think of `@Secured` instead of `@RolesAllowed`). - -=== Annotations - -The table below summarizes the supported annotations: - -.Supported Spring Security annotations -|=== -|Name|Comments - -|@Secured -| - -|@PreAuthorize -|See next section for more details - -|=== - -==== @PreAuthorize - -Quarkus provides support for some of the most used features of Spring Security's `@PreAuthorize` annotation. -The expressions that are supported are the following: - -hasRole:: -+ -To test if the current user has a specific role, the `hasRole` expression can be used inside `@PreAuthorize`. -+ -Some examples are: `@PreAuthorize("hasRole('admin')")`, `@PreAuthorize("hasRole(@roles.USER)")` where the `roles` is a bean that could be defined like so: -+ -[source, java] ----- -import org.springframework.stereotype.Component; - -@Component -public class Roles { - - public final String ADMIN = "admin"; - public final String USER = "user"; -} ----- - -hasAnyRole:: - -In the same fashion as `hasRole`, users can use `hasAnyRole` to check if the logged in user has any of the specified roles. -+ -Some examples are: `@PreAuthorize("hasAnyRole('admin')")`, `@PreAuthorize("hasAnyRole(@roles.USER, 'view')")` - -permitAll:: Adding `@PreAuthorize("permitAll()")` to a method will ensure that that method is accessible by any user (including anonymous users). Adding it to a class will ensure that all public methods -of the class that are not annotated with any other Spring Security annotation will be accessible. - -denyAll:: Adding `@PreAuthorize("denyAll()")` to a method will ensure that that method is not accessible by any user. Adding it to a class will ensure that all public methods -of the class that are not annotated with any other Spring Security annotation will not be accessible to any user. - -isAnonymous:: When annotating a bean method with `@PreAuthorize("isAnonymous()")` the method will only be accessible if the current user is anonymous - i.e. a non logged in user. - -isAuthenticated:: When annotating a bean method with `@PreAuthorize("isAuthenticated()")` the method will only be accessible if the current user is a logged in user. Essentially the -method is only unavailable for anonymous users. - -#paramName == authentication.principal.username:: This syntax allows users to check if a parameter (or a field of the parameter) of the secured method is equal to the logged in username. -+ -Examples of this use case are: -+ -[source,java] ----- -public class Person { - - private final String name; - - public Person(String name) { - this.name = name; - } - - public String getName() { - return name; - } -} - -@Component -public class MyComponent { - - @PreAuthorize("#username == authentication.principal.username") <1> - public void doSomething(String username, String other){ - - } - - @PreAuthorize("#person.name == authentication.principal.username") <2> - public void doSomethingElse(Person person){ - - } -} ----- -<1> `doSomething` can be executed if the current logged in user is the same as the `username` method parameter -<2> `doSomethingElse` can be executed if the current logged in user is the same as the `name` field of `person` method parameter -+ -TIP: the use of `authentication.` is optional, so using `principal.username` has the same result. - -#paramName != authentication.principal.username:: This is similar to the previous expression with the difference being that the method parameter must be different than the logged in username. - -@beanName.method():: This syntax allows developers to specify that the execution of method of a specific bean will determine if the current user can access the secured method. -+ -The syntax is best explained with an example. -Let's assume that a `MyComponent` bean has been created like so: -+ -[source,java] ----- -@Component -public class MyComponent { - - @PreAuthorize("@personChecker.check(#person, authentication.principal.username)") - public void doSomething(Person person){ - - } -} ----- -+ -The `doSomething` method has been annotated with `@PreAuthorize` using an expression that indicates that method `check` of a bean named `personChecker` needs -to be invoked to determine whether the current user is authorized to invoke the `doSomething` method. -+ -An example of the `PersonChecker` could be: -+ -[source,java] ----- -@Component -public class PersonChecker { - - @Override - public boolean check(Person person, String username) { - return person.getName().equals(username); - } -} ----- -+ -Note that for the `check` method the parameter types must match what is specified in `@PreAuthorize` and that the return type must be a `boolean`. - -===== Combining expressions - -The `@PreAuthorize` annotations allows for the combination of expressions using logical `AND` / `OR`. Currently there is a limitation where only a single -logical operation can be used (meaning mixing `AND` and `OR` isn't allowed). - -Some examples of allowed expressions are: - -[source,java] ----- - - @PreAuthorize("hasAnyRole('user', 'admin') AND #user == principal.username") - public void allowedForUser(String user) { - - } - - @PreAuthorize("hasRole('user') OR hasRole('admin')") - public void allowedForUserOrAdmin() { - - } - - @PreAuthorize("hasAnyRole('view1', 'view2') OR isAnonymous() OR hasRole('test')") - public void allowedForAdminOrAnonymous() { - - } ----- - -Also to be noted that currently parentheses are not supported and expressions are evaluated from left to right when needed. - -== Important Technical Note - -Please note that the Spring support in Quarkus does not start a Spring Application Context nor are any Spring infrastructure classes run. -Spring classes and annotations are only used for reading metadata and / or are used as user code method return types or parameter types. -What that means for end users, is that adding arbitrary Spring libraries will not have any effect. Moreover Spring infrastructure -classes (like `org.springframework.beans.factory.config.BeanPostProcessor` for example) will not be executed. - -== Conversion Table - -The following table shows how Spring Security annotations can be converted to JAX-RS annotations. - -|=== -|Spring |JAX-RS |Comments - -|@Secured("admin") -|@RolesAllowed("admin") -| - -|=== - -== More Spring guides - -Quarkus has more Spring compatibility features. See the following guides for more details: - -* xref:spring-di.adoc[Quarkus - Extension for Spring DI] -* xref:spring-web.adoc[Quarkus - Extension for Spring Web] -* xref:spring-data-jpa.adoc[Quarkus - Extension for Spring Data JPA] -* xref:spring-data-rest.adoc[Quarkus - Extension for Spring Data REST] -* xref:spring-cloud-config-client.adoc[Quarkus - Reading properties from Spring Cloud Config Server] -* xref:spring-boot-properties.adoc[Quarkus - Extension for Spring Boot properties] -* xref:spring-cache.adoc[Quarkus - Extension for Spring Cache] -* xref:spring-scheduled.adoc[Quarkus - Extension for Spring Scheduled] diff --git a/_versions/2.7/guides/spring-web.adoc b/_versions/2.7/guides/spring-web.adoc deleted file mode 100644 index b7477e2f34b..00000000000 --- a/_versions/2.7/guides/spring-web.adoc +++ /dev/null @@ -1,530 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Quarkus Extension for Spring Web API - -include::./attributes.adoc[] - -While users are encouraged to use JAX-RS annotation for defining REST endpoints, Quarkus provides a compatibility layer for Spring Web in the form of the `spring-web` extension. - -This guide explains how a Quarkus application can leverage the well known Spring Web annotations to define RESTful services. - -== Prerequisites - -To complete this guide, you need: - -include::includes/devtools/prerequisites.adoc[] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `spring-web-quickstart` {quickstarts-tree-url}/spring-web-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: spring-web-quickstart -:create-app-extensions: spring-web,resteasy-jackson -include::includes/devtools/create-app.adoc[] - -This command generates a project which imports the `spring-web` extension. - -If you already have your Quarkus project configured, you can add the `spring-web` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: spring-web,resteasy-jackson -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-spring-web - - - io.quarkus - quarkus-resteasy-jackson - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-spring-web") -implementation("io.quarkus:quarkus-resteasy-jackson") ----- - -[IMPORTANT] -==== -`quarkus-spring-web` needs to be complemented with either `quarkus-resteasy-jackson` or `quarkus-resteasy-reactive-jackson` in order to work. -==== - -== GreetingController - -Create the `src/main/java/org/acme/spring/web/GreetingController.java` file, a controller with the Spring Web annotations to define our REST endpoint, as follows: - -[source,java] ----- -package org.acme.spring.web; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/greeting") -public class GreetingController { - - @GetMapping - public String hello() { - return "hello"; - } -} ----- - -== GreetingControllerTest - -Note that a test for the controller has been created as well: - -[source, java] ----- -package org.acme.spring.web; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -public class GreetingControllerTest { - - @Test - public void testHelloEndpoint() { - given() - .when().get("/greeting") - .then() - .statusCode(200) - .body(is("hello")); - } - -} ----- - -== Package and run the application - -Run the application with: - -include::includes/devtools/dev.adoc[] - -Open your browser to http://localhost:8080/greeting. - -The result should be: `{"message": "hello"}`. - -== Run the application as a native executable - -You can generate the native executable with: - -include::includes/devtools/build-native.adoc[] - -== Going further with an endpoint returning JSON - -The `GreetingController` above was an example of a very simple endpoint. In many cases however it is required to return JSON content. -The following example illustrates how that could be achieved using a Spring RestController: - -[source, java] ----- -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("/greeting") -public class GreetingController { - - @GetMapping("/{name}") - public Greeting hello(@PathVariable(name = "name") String name) { - return new Greeting("hello " + name); - } - - public static class Greeting { - private final String message; - - public Greeting(String message) { - this.message = message; - } - - public String getMessage(){ - return message; - } - } -} ----- - -The corresponding test could look like: - -[source, java] ----- -package org.acme.spring.web; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -public class GreetingControllerTest { - - @Test - public void testHelloEndpoint() { - given() - .when().get("/greeting/quarkus") - .then() - .statusCode(200) - .body("message", is("hello quarkus")); - } - -} ----- - -It should be noted that when using the Spring Web support in Quarkus, link:https://github.com/FasterXML/jackson[Jackson] is automatically added to the classpath and properly setup. - -== Adding OpenAPI and Swagger-UI - -You can add support for link:https://www.openapis.org/[OpenAPI] and link:https://swagger.io/tools/swagger-ui/[Swagger-UI] by using the `quarkus-smallrye-openapi` extension. - -Add the extension by running this command: - -[source,bash] ----- -./mvnw quarkus:add-extension -Dextensions="io.quarkus:quarkus-smallrye-openapi" ----- - -This will add the following to your `pom.xml`: - -[source,xml] ----- - - io.quarkus - quarkus-smallrye-openapi - ----- - -This is enough to generate a basic OpenAPI schema document from your REST Endpoints: - -[source,bash] ----- -curl http://localhost:8080/q/openapi ----- - -You will see the generated OpenAPI schema document: - -[source, yaml] ----- ---- -openapi: 3.0.1 -info: - title: Generated API - version: "1.0" -paths: - /greeting: - get: - responses: - "200": - description: OK - content: - '*/*': - schema: - type: string - /greeting/{name}: - get: - parameters: - - name: name - in: path - required: true - schema: - type: string - responses: - "200": - description: OK - content: - 'application/json': - schema: - $ref: '#/components/schemas/Greeting' -components: - schemas: - Greeting: - type: object - properties: - message: - type: string ----- - -Also see xref:openapi-swaggerui.adoc[the OpenAPI Guide] - -=== Adding MicroProfile OpenAPI Annotations - -You can use link:https://github.com/eclipse/microprofile-open-api[MicroProfile OpenAPI] to better document your schema, -example, adding the following to the class level of the `GreetingController`: - -[source, java] ----- -@OpenAPIDefinition( - info = @Info( - title="Greeting API", - version = "1.0.1", - contact = @Contact( - name = "Greeting API Support", - url = "http://exampleurl.com/contact", - email = "techsupport@example.com"), - license = @License( - name = "Apache 2.0", - url = "https://www.apache.org/licenses/LICENSE-2.0.html")) -) ----- - -And describe your endpoints like this: - -[source, java] ----- -@Tag(name = "Hello", description = "Just say hello") -@GetMapping(produces=MediaType.TEXT_PLAIN_VALUE) -public String hello() { - return "hello"; -} - -@GetMapping(value = "/{name}", produces=MediaType.APPLICATION_JSON_VALUE) -@Tag(name = "Hello to someone", description = "Just say hello to someone") -public Greeting hello(@PathVariable(name = "name") String name) { - return new Greeting("hello " + name); -} ----- - -will generate this OpenAPI schema: - -[source, yaml] ----- ---- -openapi: 3.0.1 -info: - title: Greeting API - contact: - name: Greeting API Support - url: http://exampleurl.com/contact - email: techsupport@example.com - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0.html - version: 1.0.1 -tags: -- name: Hello - description: Just say hello -- name: Hello to someone - description: Just say hello to someone -paths: - /greeting: - get: - tags: - - Hello - responses: - "200": - description: OK - content: - '*/*': - schema: - type: string - /greeting/{name}: - get: - tags: - - Hello to someone - parameters: - - name: name - in: path - required: true - schema: - type: string - responses: - "200": - description: OK - content: - '*/*': - schema: - $ref: '#/components/schemas/Greeting' -components: - schemas: - Greeting: - type: object - properties: - message: - type: string ----- - -=== Using Swagger UI - -Swagger UI is included by default when running in `Dev` or `Test` mode, and can optionally added to `Prod` mode. -See xref:openapi-swaggerui.adoc#use-swagger-ui-for-development[the Swagger UI] Guide for more details. - -Navigate to link:http://localhost:8080/q/swagger-ui/[localhost:8080/q/swagger-ui/] and you will see the Swagger UI screen: - -image:spring-web-guide-screenshot01.png[alt=Swagger UI] - -== Supported Spring Web functionalities - -Quarkus currently supports a subset of the functionalities that Spring Web provides. More specifically Quarkus supports the REST related features of Spring Web -(think of `@RestController` instead of `@Controller`). - -=== Annotations - -The table below summarizes the supported annotations: - -.Supported Spring Web annotation -|=== -|Name|Comments - -|@RestController -| - -|@RequestMapping -| -|@GetMapping -| -|@PostMapping -| -|@PutMapping -| -|@DeleteMapping -| -|@PatchMapping -| -|@RequestParam -| -|@RequestHeader -| -|@MatrixVariable -| -|@PathVariable -| -|@CookieValue -| -|@RequestBody -| -|@ResponseStatus -| -|@ExceptionHandler -|Can only be used in a @RestControllerAdvice class, not on a per-controller basis -|@RestControllerAdvice -|Only the @ExceptionHandler capability is supported -|=== - -=== Controller method return types - -The following method return types are supported: - -* Primitive types -* String (which will be used as a literal, no Spring MVC view support is provided) -* POJO classes which will be serialized via JSON -* `org.springframework.http.ResponseEntity` - -=== Controller method parameter types - -In addition to the method parameters that can be annotated with the appropriate Spring Web annotations from the previous table, -`javax.servlet.http.HttpServletRequest` and `javax.servlet.http.HttpServletResponse` are also supported. -For this to function however, users need to add the `quarkus-undertow` dependency. - -=== Exception handler method return types - -The following method return types are supported: - -* `org.springframework.http.ResponseEntity` -* `java.util.Map` - -Other return types mentioned in the Spring `https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/ExceptionHandler.html[ExceptionHandler javadoc]` are not supported. - -=== Exception handler method parameter types - -The following parameter types are supported, in arbitrary order: - -* An exception argument: declared as a general `Exception` or as a more specific exception. This also serves as a mapping hint if the annotation itself does not narrow the exception types through its `value()`. -* Request and/or response objects (typically from the Servlet API). You may choose any specific request/response type, e.g. `ServletRequest` / `HttpServletRequest`. To use Servlet API, the `quarkus-undertow` dependency needs to be added. - -Other parameter types mentioned in the Spring `https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/ExceptionHandler.html[ExceptionHandler javadoc]` are not supported. - -== Important Technical Note - -Please note that the Spring support in Quarkus does not start a Spring Application Context nor are any Spring infrastructure classes run. -Spring classes and annotations are only used for reading metadata and / or are used as user code method return types or parameter types. -What that means for end users, is that adding arbitrary Spring libraries will not have any effect. Moreover Spring infrastructure -classes (like `org.springframework.beans.factory.config.BeanPostProcessor` for example) will not be executed. - -== Conversion Table - -The following table shows how Spring Web annotations can be converted to JAX-RS annotations. - -|=== -|Spring |JAX-RS |Comments - -|@RestController -| -|There is no equivalent in JAX-RS. Annotating a class with @Path suffices - -|@RequestMapping(path="/api") -|@Path("/api") -| - -|@RequestMapping(consumes="application/json") -|@Consumes("application/json") -| - -|@RequestMapping(produces="application/json") -|@Produces("application/json") -| - -|@RequestParam -|@QueryParam -| - -|@PathVariable -|@PathParam -| - -|@RequestBody -| -|No equivalent in JAX-RS. Method parameters corresponding to the body of the request are handled in JAX-RS without requiring any annotation - -|@RestControllerAdvice -| -|No equivalent in JAX-RS - -|@ResponseStatus -| -|No equivalent in JAX-RS - -|@ExceptionHandler -| -|No equivalent annotation in JAX-RS. Exceptions are handled by implementing `javax.ws.rs.ext.ExceptionMapper` -|=== - -== More Spring guides - -Quarkus has more Spring compatibility features. See the following guides for more details: - -* xref:spring-di.adoc[Quarkus - Extension for Spring DI] -* xref:spring-data-jpa.adoc[Quarkus - Extension for Spring Data JPA] -* xref:spring-data-rest.adoc[Quarkus - Extension for Spring Data REST] -* xref:spring-security.adoc[Quarkus - Extension for Spring Security] -* xref:spring-cloud-config-client.adoc[Quarkus - Reading properties from Spring Cloud Config Server] -* xref:spring-boot-properties.adoc[Quarkus - Extension for Spring Boot properties] -* xref:spring-cache.adoc[Quarkus - Extension for Spring Cache] -* xref:spring-scheduled.adoc[Quarkus - Extension for Spring Scheduled] diff --git a/_versions/2.7/guides/status-include.adoc b/_versions/2.7/guides/status-include.adoc deleted file mode 100644 index 621cb9c7170..00000000000 --- a/_versions/2.7/guides/status-include.adoc +++ /dev/null @@ -1,20 +0,0 @@ -[NOTE] -==== -This technology is considered {extension-status}. - -ifeval::["{extension-status}" == "experimental"] -In _experimental_ mode, early feedback is requested to mature the idea. -There is no guarantee of stability nor long term presence in the platform until the solution matures. -Feedback is welcome on our https://groups.google.com/d/forum/quarkus-dev[mailing list] or as issues in our https://github.com/quarkusio/quarkus/issues[GitHub issue tracker]. -endif::[] -ifeval::["{extension-status}" == "preview"] -In _preview_, backward compatibility and presence in the ecosystem is not guaranteed. -Specific improvements might require changing configuration or APIs, and plans to become _stable_ are under way. -Feedback is welcome on our https://groups.google.com/d/forum/quarkus-dev[mailing list] or as issues in our https://github.com/quarkusio/quarkus/issues[GitHub issue tracker]. -endif::[] -ifeval::["{extension-status}" == "stable"] -Being _stable_, backward compatibility and presence in the ecosystem are taken very seriously. -endif::[] - -For a full list of possible statuses, check our https://quarkus.io/faq/#extension-status[FAQ entry]. -==== diff --git a/_versions/2.7/guides/stork-reference.adoc b/_versions/2.7/guides/stork-reference.adoc deleted file mode 100644 index c08622dbb64..00000000000 --- a/_versions/2.7/guides/stork-reference.adoc +++ /dev/null @@ -1,347 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Stork Reference Guide - -include::./attributes.adoc[] - -This guide is the companion from the xref:stork.adoc[Stork Getting Started Guide]. -It explains the configuration and usage of SmallRye Stork integration in Quarkus. - -== Supported clients - -The current integration of Stork supports: - -* the Reactive REST Client -* the gRPC clients - -Warning: The gRPC client integration does not support statistic-based load balancers. - -== Available service discovery and selection - -Check the https://smallrye.io/smallrye-stork[SmallRye Stork website] to find more about the provided service discovery and selection. - -== Using Stork in Kubernetes - -Stork provides a service discovery support for Kubernetes, which goes beyond what Kubernetes provides by default. -It looks for all the pods backing up a Kubernetes service, but instead of applying a round-robin (as Kubernetes would do), it gives you the option to select the pod using a Stork load-balancer. - -To use this feature, add the following dependency to your project: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.smallrye.stork - stork-service-discovery-kubernetes - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.smallrye.stork:stork-service-discovery-kubernetes") ----- - -For each service expected to be exposed as a Kubernetes Service, configure the lookup: - -[source, properties] ----- -stork.my-service.service-discovery=kubernetes -stork.my-service.service-discovery.k8s-namespace=my-namespace ----- - -Stork looks for the Kubernetes Service with the given name (`my-service` in the previous example) in the specified namespace. -Instead of using the Kubernetes Service IP directly and let Kubernetes handle the selection and balancing, Stork inspects the service and retrieves the list of pods providing the service. Then, it can select the instance. - -== Implementing a custom service discovery - -Stork is extensible, and you can implement your own service discovery mechanism. - -=== Dependency -To implement your Service Discovery Provider, make sure your project depends on Core and Configuration Generator. The former brings classes necessary to implement custom discovery, the latter contains an annotation processor that generates classes needed by Stork. - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.smallrye.stork - stork-core - - - io.smallrye.stork - stork-configuration-generator - - provided - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.smallrye.stork:stork-core") -compileOnly("io.smallrye.stork:stork-configuration-generator") ----- - -[NOTE] -==== -If the provider is located in an extension, the configuration generator should be declared in the -`annotationProcessorPaths` section of the runtime module using the default scope: - -[source,xml] ----- - - ... - - io.smallrye.stork - stork-configuration-generator - - ----- -==== - -=== Implementing a service discovery provider - -The custom provider is a factory that creates an `io.smallrye.stork.ServiceDiscovery` instance for each configured service using this service discovery provider. -A type, for example, `acme` identifies each provider. -This type is used in the configuration to reference the provider: - -[source, properties] ----- -stork.my-service.service-discovery=acme ----- - -The first step consists of implementing the `io.smallrye.stork.spi.ServiceDiscoveryProvider` interface: - -[source, java] ----- -package examples; - -import io.smallrye.stork.api.ServiceDiscovery; -import io.smallrye.stork.api.config.ServiceConfig; -import io.smallrye.stork.api.config.ServiceDiscoveryAttribute; -import io.smallrye.stork.api.config.ServiceDiscoveryType; -import io.smallrye.stork.spi.StorkInfrastructure; -import io.smallrye.stork.spi.ServiceDiscoveryProvider; - -@ServiceDiscoveryType("acme") // <1> -@ServiceDiscoveryAttribute(name = "host", - description = "Host name of the service discovery server.", required = true) // <2> -@ServiceDiscoveryAttribute(name = "port", - description = "Port of the service discovery server.", required = false) -public class AcmeServiceDiscoveryProvider // <3> - implements ServiceDiscoveryProvider { - - // <4> - @Override - public ServiceDiscovery createServiceDiscovery(AcmeServiceDiscoveryProviderConfiguration config, - String serviceName, - ServiceConfig serviceConfig, - StorkInfrastructure storkInfrastructure) { - return new AcmeServiceDiscovery(config); - } -} ----- - -This implementation is straightforward. - -<1> `@ServiceDiscoveryType` annotation defines the type of the service discovery provider. For each `ServiceDiscoveryProvider` annotated with this annotation, a configuration class will be generated. The name of the configuration class is constructed by appending `Configuration` to the name of the provider. -<2> Use `@ServiceDiscoveryAttribute` to define configuration properties for services configured with this service discovery provider. Configuration properties are gathered from all properties of a form: `stork.my-service.service-discovery.attr=value`. -<3> The provider needs to implement `ServiceDiscoveryType` typed by the configuration class. -<4> `createServiceDiscovery` method is the factory method. It receives the configuration and access to the name of the service and available infrastructure. - -Then, we need to implement the `ServiceDiscovery` interface: - -[source, java] ----- -package examples; - -import java.util.Collections; -import java.util.List; - -import io.smallrye.mutiny.Uni; -import io.smallrye.stork.api.ServiceDiscovery; -import io.smallrye.stork.api.ServiceInstance; -import io.smallrye.stork.impl.DefaultServiceInstance; -import io.smallrye.stork.utils.ServiceInstanceIds; - -public class AcmeServiceDiscovery implements ServiceDiscovery { - - private final String host; - private final int port; - - public AcmeServiceDiscovery(AcmeServiceDiscoveryProviderConfiguration configuration) { - this.host = configuration.getHost(); - this.port = Integer.parseInt(configuration.getPort()); - } - - @Override - public Uni> getServiceInstances() { - // Proceed to the lookup... - // Here, we just return a DefaultServiceInstance with the configured host and port - // The last parameter specifies whether the communication with the instance should happen over a secure connection - DefaultServiceInstance instance = - new DefaultServiceInstance(ServiceInstanceIds.next(), host, port, false); - return Uni.createFrom().item(() -> Collections.singletonList(instance)); - } -} ----- - -Again, this implementation is simplistic. -Typically, instead of creating a service instance with values from the configuration, you would connect to a service discovery backend, look for the service and build the list of service instances accordingly. -That's why the method returns a `Uni`. -Most of the time, the lookup is a remote operation. - -=== Using your service discovery - -In the project using it, don't forget to add the dependency on the module providing your implementation. -Then, in the configuration, just add: - -[source, properties] ----- -stork.my-service.service-discovery=acme -stork.my-service.service-discovery.host=localhost -stork.my-service.service-discovery.port=1234 ----- - -Then, Stork will use your implementation to locate the `my-service` service. - -== Implementing a custom service selection / load-balancer - -Stork is extensible, and you can implement your own service selection (load-balancer) mechanism. - -=== Dependency -To implement your Load Balancer Provider, make sure your project depends on Core and Configuration Generator. The former brings classes necessary to implement custom load balancer, the latter contains an annotation processor that generates classes needed by Stork. - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.smallrye.stork - stork-core - - - io.smallrye.stork - stork-configuration-generator - - provided - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.smallrye.stork:stork-core") -compileOnly("io.smallrye.stork:stork-configuration-generator") ----- - -[NOTE] -==== -Similar to custom discovery providers, if the provider is located in an extension, the configuration generator should be declared in the `annotationProcessorPaths` section of the runtime module using the default scope. -==== - -=== Implementing a load balancer provider - -Load balancer implementation consists of three elements: - -- `LoadBalancer` which is responsible for selecting service instances for a single Stork service -- `LoadBalancerProvider` which creates instances of `LoadBalancer` for a given load balancer _type_ -- `LoadBalancerProviderConfiguration` which is a configuration for the load balancer - - -A _type_, for example, `acme`, identifies each provider. -This _type_ is used in the configuration to reference the provider: - -[source, properties] ----- -stork.my-service.load-balancer=acme ----- - -Similarly to `ServiceDiscoveryProvider, a `LoadBalancerProvider` implementation needs to be annotated with `@LoadBalancerType` that defines the _type_. -Any configuration properties that the provider expects should be defined with `@LoadBalancerAttribute` annotations placed on the provider. -[source, java] ----- -package examples; - -import io.smallrye.stork.api.LoadBalancer; -import io.smallrye.stork.api.ServiceDiscovery; -import io.smallrye.stork.api.config.LoadBalancerAttribute; -import io.smallrye.stork.api.config.LoadBalancerType; -import io.smallrye.stork.spi.LoadBalancerProvider; - -@LoadBalancerType("acme") -@LoadBalancerAttribute(name = "my-attribute", - description = "Attribute that alters the behavior of the LoadBalancer") -public class AcmeLoadBalancerProvider implements - LoadBalancerProvider { - - @Override - public LoadBalancer createLoadBalancer(AcmeLoadBalancerProviderConfiguration config, - ServiceDiscovery serviceDiscovery) { - return new AcmeLoadBalancer(config); - } -} ----- - -Note, that similarly to the `ServiceDiscoveryProvider`, the `LoadBalancerProvider` interface takes a configuration class as a parameter. This configuration class is generated automatically by the _Configuration Generator_. -Its name is created by appending `Configuration` to the name of the provider class. - -The next step is to implement the `LoadBalancer` interface: - -[source, java] ----- -package examples; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Random; - -import io.smallrye.stork.api.LoadBalancer; -import io.smallrye.stork.api.NoServiceInstanceFoundException; -import io.smallrye.stork.api.ServiceInstance; - -public class AcmeLoadBalancer implements LoadBalancer { - - private final Random random; - - public AcmeLoadBalancer(AcmeLoadBalancerProviderConfiguration config) { - random = new Random(); - } - - @Override - public ServiceInstance selectServiceInstance(Collection serviceInstances) { - if (serviceInstances.isEmpty()) { - throw new NoServiceInstanceFoundException("No services found."); - } - int index = random.nextInt(serviceInstances.size()); - return new ArrayList<>(serviceInstances).get(index); - } -} ----- - -Again, this implementation is simplistic and just picks a random instance from the received list. - - -[source, text] ----- -examples.AcmeLoadBalancerProvider ----- - -=== Using your load balancer - -In the project using it, don't forget to add the dependency on the module providing your implementation. -Then, in the configuration, just add: - -[source, properties] ----- -stork.my-service.service-discovery=... -stork.my-service.load-balancer=acme ----- - -Then, Stork will use your implementation to select the `my-service` service instance. - - - - diff --git a/_versions/2.7/guides/stork.adoc b/_versions/2.7/guides/stork.adoc deleted file mode 100644 index 099d3391220..00000000000 --- a/_versions/2.7/guides/stork.adoc +++ /dev/null @@ -1,381 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Getting Started with SmallRye Stork -:extension-status: preview - -// Temporary until stork in in the BOM -:stork-version: 1.0.0.Beta1 -include::./attributes.adoc[] - -The essence of distributed systems resides in the interaction between services. -In modern architecture, you often have multiple instances of your service to share the load or improve the resilience by redundancy. -But how do you select the best instance of your service? -That's where https://smallrye.io/smallrye-stork[SmallRye Stork] helps. -Stork is going to choose the most appropriate instance. -It offers: - -* Extensible service discovery mechanisms -* Built-in support for Consul and Kubernetes -* Customizable client load-balancing strategies - -include::./status-include.adoc[] - -== Prerequisites - -:prerequisites-docker: -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this guide, we will build an application composed of: - -* A simple blue service exposed on port 9000 -* A simple red service exposed on port 9001 -* A REST Client calling the blue or red service (the selection is delegated to Stork) -* A REST endpoint using the REST client and calling the services -* The blue and red services are registered in https://www.consul.io/[Consul]. - -image::stork-getting-started-architecture.png[Architecture of the application,width=50%, align=center] - -For the sake of simplicity, everything (except Consul) will be running in the same Quarkus application. -Of course, each component will run in its own process in the real world. - -== Solution - -We recommend that you follow the instructions in the next sections and create the applications step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `stork-quickstart` {quickstarts-tree-url}/stork-quickstart[directory]. - -== Discovery and selection - -Before going further, we need to discuss discovery vs. selection. - -- Service discovery is the process of locating service instances. -It produces a list of service instances that is potentially empty (if no service matches the request) or contains multiple service instances. - -- Service selection, also called load-balancing, chooses the best instance from the list returned by the discovery process. -The result is a single service instance or an exception when no suitable instance can be found. - -Stork handles both discovery and selection. -However, it does not handle the communication with the service but only provides a service instance. -The various integrations in Quarkus extract the location of the service from that service instance. - -image::stork-process.png[Discovery and Selection of services,width=50%, align=center] - -== Bootstrapping the project - -Create a Quarkus project importing the quarkus-rest-client-reactive and quarkus-resteasy-reactive extensions using your favorite approach: - -:create-app-artifact-id: stork-quickstart -:create-app-extensions: quarkus-rest-client-reactive,quarkus-resteasy-reactive -include::includes/devtools/create-app.adoc[] - -In the generated project, also add the following dependencies: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.smallrye.stork - stork-service-discovery-consul - - - io.smallrye.reactive - smallrye-mutiny-vertx-consul-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.smallrye.stork:stork-service-discovery-consul") -implementation("io.smallrye.reactive:smallrye-mutiny-vertx-consul-client") ----- - -`stork-service-discovery-consul` provides an implementation of service discovery for Consul. -`smallrye-mutiny-vertx-consul-client` is a Consul client which we will use to register our services in Consul. - -== The Blue and Red services - -Let's start with the very beginning: the service we will discover, select and call. - -Create the `src/main/java/org/acme/services/BlueService.java` with the following content: - -[source, java] ----- -package org.acme.services; - -import io.quarkus.runtime.StartupEvent; -import io.vertx.mutiny.core.Vertx; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.event.Observes; - -@ApplicationScoped -public class BlueService { - - @ConfigProperty(name = "blue-service-port", defaultValue = "9000") int port; - - /** - * Start an HTTP server for the blue service. - * - * Note: this method is called on a worker thread, and so it is allowed to block. - */ - public void init(@Observes StartupEvent ev, Vertx vertx) { - vertx.createHttpServer() - .requestHandler(req -> req.response().endAndForget("Hello from Blue!")) - .listenAndAwait(port); - } -} ----- - -It creates a new HTTP server (using Vert.x) and implements our simple service when the application starts. -For each HTTP request, it sends a response with "Hello from Blue!" as the body. - -Following the same logic, create the `src/main/java/org/acme/services/RedService.java` with the following content: - -[source, java] ----- - -package org.acme.services; - -import io.quarkus.runtime.StartupEvent; -import io.vertx.mutiny.core.Vertx; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.event.Observes; - -@ApplicationScoped -public class RedService { - @ConfigProperty(name = "red-service-port", defaultValue = "9001") int port; - - /** - * Start an HTTP server for the red service. - * - * Note: this method is called on a worker thread, and so it is allowed to block. - */ - public void init(@Observes StartupEvent ev, Vertx vertx) { - vertx.createHttpServer() - .requestHandler(req -> req.response().endAndForget("Hello from Red!")) - .listenAndAwait(port); - } - -} ----- - -This time, it writes "Hello from Red!". - -== Service registration in Consul - -Now that we have implemented our services, we need to register them into Consul. - -NOTE: Stork is not limited to Consul and integrates with other service discovery mechanisms. - -Create the `src/main/java/org/acme/services/Registration.java` file with the following content: - -[source, java] ----- -package org.acme.services; - -import io.quarkus.runtime.StartupEvent; -import io.vertx.ext.consul.ServiceOptions; -import io.vertx.mutiny.ext.consul.ConsulClient; -import io.vertx.ext.consul.ConsulClientOptions; -import io.vertx.mutiny.core.Vertx; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.event.Observes; - -@ApplicationScoped -public class Registration { - - @ConfigProperty(name = "consul.host") String host; - @ConfigProperty(name = "consul.port") int port; - - @ConfigProperty(name = "blue-service-port", defaultValue = "9000") int red; - @ConfigProperty(name = "red-service-port", defaultValue = "9001") int blue; - - /** - * Register our two services in Consul. - * - * Note: this method is called on a worker thread, and so it is allowed to block. - */ - public void init(@Observes StartupEvent ev, Vertx vertx) { - ConsulClient client = ConsulClient.create(vertx, new ConsulClientOptions().setHost(host).setPort(port)); - - client.registerServiceAndAwait( - new ServiceOptions().setPort(blue).setAddress("localhost").setName("my-service").setId("blue")); - client.registerServiceAndAwait( - new ServiceOptions().setPort(red).setAddress("localhost").setName("my-service").setId("red")); - - } -} ----- - -When the application starts, it connects to Consul using the Vert.x Consul Client and registers our two instances. -Both registration uses the same name (`my-service`), but different ids to indicate that it's two instances of the same _service_. - -== The REST Client interface and the front end API - -So far, we didn't use Stork; we just scaffolded the services we will be discovering, selecting, and calling. - -We will call the services using the Reactive REST Client. -Create the `src/main/java/org/acme/MyService.java` file with the following content: - -[source, java] ----- -package org.acme; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; - -import javax.ws.rs.GET; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -/** - * The REST Client interface. - * - * Notice the `baseUri`. It uses `stork://` as URL scheme indicating that the called service uses Stork to locate and - * select the service instance. The `my-service` part is the service name. This is used to configure Stork discovery - * and selection in the `application.properties` file. - */ -@RegisterRestClient(baseUri = "stork://my-service") -public interface MyService { - - @GET - @Produces(MediaType.TEXT_PLAIN) - String get(); -} ----- - -It's a straightforward REST client interface containing a single method. However, note the `baseUri` attribute. -It starts with `stork://`. -It instructs the REST client to delegate the discovery and selection of the service instances to Stork. -Notice the `my-service` part in the URL. -It is the service name we will be using in the application configuration. - -It does not change how the REST client is used. -Create the `src/main/java/org/acme/FrontendApi.java` file with the following content: - -[source, java] ----- -package org.acme; - -import org.eclipse.microprofile.rest.client.inject.RestClient; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -/** - * A frontend API using our REST Client (which uses Stork to locate and select the service instance on each call). - */ -@Path("/api") -public class FrontendApi { - - @RestClient MyService service; - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String invoke() { - return service.get(); - } - -} ----- - -It injects and uses the REST client as usual. - -== Stork configuration - -The system is almost complete. We only need to configure Stork and the `Registration` bean. - -In the `src/main/resources/application.properties`, add: - -[source, properties] ----- -consul.host=localhost -consul.port=8500 - -stork.my-service.service-discovery=consul -stork.my-service.service-discovery.consul-host=localhost -stork.my-service.service-discovery.consul-port=8500 -stork.my-service.load-balancer=round-robin ----- - -The first two lines provide the Consul location used by the `Registration` bean. - -The other properties are related to Stork. -`stork.my-service.service-discovery` indicates which type of service discovery we will be using to locate the `my-service` service. -In our case, it's `consul`. -`stork.my-service.service-discovery.consul-host` and `stork.my-service.service-discovery.consul-port` configures the access to Consul. -Finally, `stork.my-service.load-balancer` configures the service selection. -In our case, we use a `round-robin`. - -== Running the application - -We're done! -So, let's see if it works. - -First, start Consul: - -[source, shell script] ----- -docker run --rm --name consul -p 8500:8500 -p 8501:8501 consul:1.7 agent -dev -ui -client=0.0.0.0 -bind=0.0.0.0 --https-port=8501 ----- - -If you start Consul differently, do not forget to edit the application configuration. - -Then, package the application: - -include::includes/devtools/build.adoc[] - -And run it: - -[source, shell script] ----- -> java -jar target/quarkus-app/quarkus-run.jar ----- - -In another terminal, run: - -[source, shell script] ----- -> curl http://localhost:8080/api -... -> curl http://localhost:8080/api -... -> curl http://localhost:8080/api -... ----- - -The responses alternate between `Hello from Red!` and `Hello from Blue!`. - -You can compile this application into a native executable: - -include::includes/devtools/build-native.adoc[] - -And start it with: - -[source, shell script] ----- -> ./target/stork-getting-started-1.0.0-SNAPSHOT-runner ----- - -== Going further - -This guide has shown how to use SmallRye Stork to discover and select your services. -You can find more about Stork in: - -- the xref:stork-reference.adoc[Stork reference guide], -- the https://smallrye.io/smallrye-stork[SmallRye Stork website]. diff --git a/_versions/2.7/guides/stylesheet/asciidoc-tabs.css b/_versions/2.7/guides/stylesheet/asciidoc-tabs.css deleted file mode 100644 index 8fd9ebe2fe8..00000000000 --- a/_versions/2.7/guides/stylesheet/asciidoc-tabs.css +++ /dev/null @@ -1,31 +0,0 @@ -.asciidoc-tabs-hidden { - display: none; -} - -.asciidoc-tabs-switch { - border-width: 1px 0 0 1px; - border-style: solid; - border-color: #aaa; - margin-bottom: -1px; - display: inline-block; -} - -.asciidoc-tabs-switch--item.selected { - background-color: #fff; - color: #0D1C2C; - font-weight: 600; - border-bottom: 1px solid #fff; -} - -.asciidoc-tabs-switch--item { - padding: 0.75rem 2.5rem; - background-color: #e4edf7; - color: #0D1C2C; - display: inline-block; - cursor: pointer; - border-right: 1px solid #aaa; -} - -.asciidoc-tabs-switch ~ .content pre.highlight { - margin-top: 0; -} \ No newline at end of file diff --git a/_versions/2.7/guides/stylesheet/config.css b/_versions/2.7/guides/stylesheet/config.css deleted file mode 100644 index f7b70fabae1..00000000000 --- a/_versions/2.7/guides/stylesheet/config.css +++ /dev/null @@ -1,159 +0,0 @@ -table.configuration-reference.tableblock { - border-collapse: separate; - border-spacing: 1px; - border: none; -} - -table.configuration-reference.tableblock span.icon { - color: #0D1C2C; -} - -table.configuration-reference.tableblock > thead > tr > th.tableblock { - background-color: transparent; - border: none; - color: white; - font-weight: bold; -} - -table.configuration-reference.tableblock > tbody > tr:nth-child(even) > th { - background: transparent; -} - -table.configuration-reference.tableblock > tbody > tr > th { - background-color: transparent; - font-size: 1rem; - height: 60px; - border: none; - border-bottom: 1px solid #4695eb; - vertical-align: bottom; -} - -table.configuration-reference.tableblock > tbody > tr:first-child > th { - height: 30px; -} -table.configuration-reference.tableblock > tbody > tr > th:nth-child(2), -table.configuration-reference.tableblock > tbody > tr > th:nth-child(3), -table.configuration-reference.tableblock > tbody > tr > td:nth-child(2), -table.configuration-reference.tableblock > tbody > tr > td:nth-child(3) { - text-align: right; -} - -table.configuration-reference.tableblock > tbody > tr > th:nth-child(2) p, -table.configuration-reference.tableblock > tbody > tr > th:nth-child(3) p { - font-weight: normal; - color: black; -} - -table.configuration-reference.tableblock > tbody > tr > th > p { - font-weight: bold; -} - -table.configuration-reference.tableblock > tbody > tr > td { - padding-left: 30px; - border: none; -} - -table.configuration-reference.tableblock > tbody > tr > td > .content > .paragraph .icon { - margin-left: -19px; - margin-top: 5px; - float: left; -} - -table.configuration-reference.tableblock .hidden { - display: none; -} - -table.configuration-reference.tableblock .configuration-highlight { - background-color: #4695eb; - color: black; -} - -table.configuration-reference.tableblock caption { - color: inherit; -} - -table.configuration-reference.tableblock .configuration-legend input { - float: center; -} - -table.configuration-reference.tableblock .description-collapsed { - height: 19px; - overflow: hidden; -} - -table.configuration-reference.tableblock .description-decoration { - height: 10px; - margin: 0px; - padding: 0px; - text-align: center; - - cursor: pointer; -} - -table.configuration-reference.tableblock .description-decoration i { - margin-right: 5px; -} - -table.configuration-reference.tableblock a.link-collapsible { - float: right; -} - -table.configuration-reference.tableblock a.link-collapsible i.fa { - margin: 0 4px; - font-size: 8px; -} - -table.configuration-reference.tableblock tr.row-collapsible td { - cursor: pointer; -} - -table.configuration-reference.tableblock td.tableblock > .content > :last-child { - margin-bottom: inherit; -} - -input#config-search-0 { - -webkit-appearance: none; - display: block; - width: 100%; - margin-top: 10px; - padding: 12px 24px; - transition: transform 250ms ease-in-out; - font-size: 14px; - line-height: 18px; - color: color(#4695eb a(0.8)); - background-color: transparent; - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath stroke='white' fill='white' d='M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E"); - background-repeat: no-repeat; - background-size: 18px 18px; - background-position: 98% center; - border: 1px solid #4695eb; - transition: all 250ms ease-in-out; - backface-visibility: hidden; - transform-style: preserve-3d; - letter-spacing: 1.5px; -} - -input#config-search-0:hover, -input#config-search-0:focus { - padding: 12px 2px; - outline: 0; - border: 1px solid transparent; - border-bottom: 1px dashed #4695eb; - border-radius: 0; - background-image: none; -} - -table.configuration-reference .configuration-legend p, -table.configuration-reference .configuration-legend input, -table.configuration-reference p, -table.configuration-reference pre code { - font-size: 1.2rem; -} - -table.configuration-reference.tableblock .description-decoration span, -table.configuration-reference.tableblock .description-decoration i { - font-size: 0.7rem; - color: #4695eb; -} - -.configuration-legend span.icon { color: #0D1C2C; } diff --git a/_versions/2.7/guides/tests-with-coverage.adoc b/_versions/2.7/guides/tests-with-coverage.adoc deleted file mode 100644 index 07a0660ce3f..00000000000 --- a/_versions/2.7/guides/tests-with-coverage.adoc +++ /dev/null @@ -1,456 +0,0 @@ - -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Measuring the coverage of your tests - -include::./attributes.adoc[] - -:toc: macro -:toclevels: 4 -:doctype: book -:icons: font -:docinfo1: - -:numbered: -:sectnums: -:sectnumlevels: 4 - - -Learn how to measure the test coverage of your application. This guide covers: - -* Measuring the coverage of your Unit Tests -* Measuring the coverage of your Integration Tests -* Separating the execution of your Unit Tests and Integration Tests -* Consolidating the coverage for all your tests - -Please note that code coverage is not supported in native mode. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] -* Having completed the xref:getting-started-testing.adoc[Testing your application guide] - -== Architecture - -The application built in this guide is just a JAX-RS endpoint (hello world) that relies on dependency injection to use a service. -The service will be tested with JUnit 5 and the endpoint will be annotated via a `@QuarkusTest` annotation. - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. However, you can go right to the completed example. -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `tests-with-coverage-quickstart` {quickstarts-tree-url}/tests-with-coverage-quickstart[directory]. - -== Starting from a simple project and two tests - -Let's start from an empty application created with the Quarkus Maven plugin: - -:create-app-artifact-id: tests-with-coverage-quickstart -:create-app-extensions: resteasy -include::includes/devtools/create-app.adoc[] - -Now we'll be adding all the elements necessary to have an application that is properly covered with tests. - -First, a JAX-RS resource serving a hello endpoint: - -[source,java] ----- -package org.acme.testcoverage; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/hello") -public class GreetingResource { - - private final GreetingService service; - - @Inject - public GreetingResource(GreetingService service) { - this.service = service; - } - - @GET - @Produces(MediaType.TEXT_PLAIN) - @Path("/greeting/{name}") - public String greeting(@PathParam("name") String name) { - return service.greeting(name); - } - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello() { - return "hello"; - } -} ----- - -This endpoint uses a greeting service: - -[source,java] ----- -package org.acme.testcoverage; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class GreetingService { - - public String greeting(String name) { - return "hello " + name; - } - -} ----- - -The project will also need a test: - -[source,java] ----- -package org.acme.testcoverage; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.Tag; - -import java.util.UUID; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -public class GreetingResourceTest { - - @Test - public void testHelloEndpoint() { - given() - .when().get("/hello") - .then() - .statusCode(200) - .body(is("hello")); - } - - @Test - public void testGreetingEndpoint() { - String uuid = UUID.randomUUID().toString(); - given() - .pathParam("name", uuid) - .when().get("/hello/greeting/{name}") - .then() - .statusCode(200) - .body(is("hello " + uuid)); - } -} ----- - -== Setting up Jacoco - -Now we need to add Jacoco to our project. To do this we need to add the following to the build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-jacoco - test - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -testImplementation("io.quarkus:quarkus-jacoco") ----- - -This Quarkus extension takes care of everything that would usually be done via the Jacoco Maven plugin, so no additional -config is required. - -WARNING: Using both the extension and the plugin requires special configuration, if you add both you will get lots of errors about classes -already being instrumented. The configuration needed is detailed below. - -== Running the tests with coverage - -Run `mvn verify`, the tests will be run and the results will end up in `target/jacoco-reports`. This is all that is needed, -the `quarkus-jacoco` extension allows Jacoco to just work out of the box. - -There are some config options that affect this: - -include::{generated-dir}/config/quarkus-jacoco-jacoco-config.adoc[opts=optional, leveloffset=+1] - -== Coverage for tests not using @QuarkusTest - -The Quarkus automatic Jacoco config will only work for tests that are annotated with `@QuarkusTest`. If you want to check -the coverage of other tests as well then you will need to fall back to the Jacoco maven plugin. - -In addition to including the `quarkus-jacoco` extension in your pom you will need the following config: - -[role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml -**** -[source,xml] ----- - - - - ... - - org.jacoco - jacoco-maven-plugin - - - default-prepare-agent - - prepare-agent - - - *QuarkusClassLoader <1> - ${project.build.directory}/jacoco-quarkus.exec - true - - - - default-prepare-agent-integration <2> - - prepare-agent-integration - - - *QuarkusClassLoader - ${project.build.directory}/jacoco-quarkus.exec - true - - - - - - - ----- -<1> This config tells it to ignore `@QuarkusTest` related classes, as they are loaded by `QuarkusClassLoader` -<2> This is only needed if you are using Failsafe to run integration tests -**** - -[role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle -**** -[source,gradle,subs=attributes+] ----- -plugins { - id 'jacoco' <1> -} - -test { - finalizedBy jacocoTestReport - jacoco { - excludeClassLoaders = ["*QuarkusClassLoader"] <2> - destinationFile = layout.buildDirectory.file("jacoco-quarkus.exec").get().asFile <2> - } - jacocoTestReport.enabled = false <3> -} ----- -<1> Add the `jacoco` gradle plugin -<2> This config tells it to ignore `@QuarkusTest` related classes, as they are loaded by `QuarkusClassLoader` -<3> Set this config to `false` if you are also using the `quarkus-jacoco` extension and have at least one `@QuarkusTest`. The default `jacocoTestReport` task can be skipped since `quarkus-jacoco` will generate the combined report of regular unit tests and `@QuarkusTest` classes since the execution data is recorded in the same file. -**** - -WARNING: This config will only work if at least one `@QuarkusTest` is being run. If you are not using `@QuarkusTest` then -you can simply use the Jacoco plugin in the standard manner with no additional config. - -=== Coverage for Integration Tests - -To get code coverage data from integration tests, the following need to be requirements need to be met: - -* The built artifact is a jar (and not a container or native binary). -* Jacoco needs to be configured in your build tool. -* The application must have been built with `quarkus.package.write-transformed-bytecode-to-build-output` set to `true` - -WARNING: Setting `quarkus.package.write-transformed-bytecode-to-build-output=true` should be done with a caution and only if subsequent builds are done in a clean environment - i.e. the build tool's output directory has been completely cleaned. - -In the `pom.xml`, you can add the following plugin configuration for Jacoco. This will append integration test data into the same destination file as unit tests, -re-build the Jacoco report after the integration tests are complete, and thus produce a comprehensive code-coverage report. - -[source, xml] ----- - - ... - - ... - - org.jacoco - jacoco-maven-plugin - - - default-prepare-agent-integration - - prepare-agent-integration - - - ${project.build.directory}/jacoco-quarkus.exec - true - - - - report-it - post-integration-test - - report - - - ${project.build.directory}/jacoco-quarkus.exec - ${project.build.directory}/jacoco-report - - - - - ... - - ... - ----- - -In order to run the integration tests as a jar with the Jacoco agent, add the following to your `pom.xml`. -[source, xml] ----- - - ... - - ... - - maven-failsafe-plugin - ${surefire-plugin.version} - - - - integration-test - verify - - - - org.jboss.logmanager.LogManager - ${maven.home} - ${argLine} - - - - - - ... - - ... - - ----- - -WARNING: Sharing the same value for `quarkus.test.arg-line` might break integration test runs that test different types of Quarkus artifacts. In such cases, the use of maven profiles is advised. - -== Setting coverage thresholds - -You can set thresholds for code coverage using the Jacoco Maven plugin. Note the element `${project.build.directory}/jacoco-quarkus.exec`. -You must set it matching your choice for `quarkus.jacoco.data-file`. - -[role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml -**** -[source,xml] ----- - - ... - - ... - - org.jacoco - jacoco-maven-plugin - ${jacoco.version} - - - jacoco-check - - check - - test - - ${project.build.directory}/jacoco-quarkus.exec - - - BUNDLE - - - LINE - COVEREDRATIO - 0.8 - - - BRANCH - COVEREDRATIO - 0.72 - - - - - - - - - ... - - ... - ----- -**** - -[role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle -**** -[source, gradle] ----- -jacocoTestCoverageVerification { - executionData.setFrom("$project.buildDir/jacoco-quarkus.exec") - violationRules { - rule { - limit { - counter = 'INSTRUCTION' - value = 'COVEREDRATIO' - minimum = 0.80 - } - limit { - counter = 'BRANCH' - value = 'COVEREDRATIO' - minimum = 0.72 - } - } - } -} -check.dependsOn jacocoTestCoverageVerification ----- - -Excluding classes from the verification task can be configured as following: - -[source,gradle] ----- -jacocoTestCoverageVerification { - afterEvaluate { <1> - classDirectories.setFrom(files(classDirectories.files.collect { <2> - fileTree(dir: it, exclude: [ - "org/example/package/**/*" <3> - ]) - })) - } -} ----- -<1> `classDirectories` needs to be read after evaluation phase in Gradle -<2> Currently, there is a bug in Gradle JaCoCo which requires the `excludes` to be specified in this manner - https://github.com/gradle/gradle/issues/14760. Once this issue is fixed, excludes -<3> Exclude all classes in `org/example/package` package -**** - -== Conclusion - -You now have all the information you need to study the coverage of your tests! -But remember, some code that is not covered is certainly not well tested. But some code that is covered is not necessarily *well* tested. Make sure to write good tests! diff --git a/_versions/2.7/guides/tooling.adoc b/_versions/2.7/guides/tooling.adoc deleted file mode 100644 index 534b118be5d..00000000000 --- a/_versions/2.7/guides/tooling.adoc +++ /dev/null @@ -1,34 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using our Tooling - -include::./attributes.adoc[] - -Quarkus comes with a toolchain enabling developers from live reload all the way down to deploying a Kubernetes application. In addition there are plugins and extensions to all major IDEs. - -In this guide, we will explore: - -* how to use xref:maven-tooling.adoc[Maven] as a build tool -* how to use xref:gradle-tooling.adoc[Gradle] as a build tool -* how to use the xref:cli-tooling.adoc[CLI] for your toolchain -* how to create and scaffold a new project -* how to deal with extensions -* how to enable live reload -* how to develop your application in your IDE -* how to compile your application natively -* how to setup Quarkus tools in xref:ide-tooling.adoc[Visual Studio Code, Eclipse IDE, Eclipse Che and IntelliJ] - -[[build-tool]] -== Choosing your build tool - -Quarkus comes with a toolchain to help you at all development stages. -You can use Maven or Gradle as build tool. -And we offer a CLI that is convenient to use (coming soon). - -* xref:maven-tooling.adoc[Maven] -* xref:gradle-tooling.adoc[Gradle] -* xref:cli-tooling.adoc[CLI] -* xref:ide-tooling.adoc[IDE] diff --git a/_versions/2.7/guides/transaction.adoc b/_versions/2.7/guides/transaction.adoc deleted file mode 100644 index 8d98c8f7f01..00000000000 --- a/_versions/2.7/guides/transaction.adoc +++ /dev/null @@ -1,247 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Transactions in Quarkus - -include::./attributes.adoc[] - -Quarkus comes with a Transaction Manager and uses it to coordinate and expose transactions to your applications. -Each extension dealing with persistence will integrate with it for you. -And you will explicitly interact with transactions via CDI. -This guide will walk you through all that. - -== Setting it up - -You don't need to worry about setting it up most of the time as extensions needing it will simply add it as a dependency. -Hibernate ORM for example will include the transaction manager and set it up properly. - -You might need to add it as a dependency explicitly if you are using transactions directly without Hibernate ORM for example. -Add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-narayana-jta - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-narayana-jta") ----- - -== Starting and stopping transactions: defining your boundaries - -You can define your transaction boundaries the easy way, or the less easy way :) - -=== Declarative approach - -The easiest way to define your transaction boundaries is to use the `@Transactional` annotation on your entry method (`javax.transaction.Transactional`). - -[source,java] ----- -@ApplicationScoped -public class SantaClausService { - - @Inject ChildDAO childDAO; - @Inject SantaClausDAO santaDAO; - - @Transactional // <1> - public void getAGiftFromSanta(Child child, String giftDescription) { - // some transaction work - Gift gift = childDAO.addToGiftList(child, giftDescription); - if (gift == null) { - throw new OMGGiftNotRecognizedException(); // <2> - } - else { - santaDAO.addToSantaTodoList(gift); - } - } -} ----- - -<1> This annotation defines your transaction boundaries and will wrap this call within a transaction. -<2> A `RuntimeException` crossing the transaction boundaries will rollback the transaction. - -`@Transactional` can be used to control transaction boundaries on any CDI bean at the method level or at the class level to ensure every method is transactional. -That includes REST endpoints. - -You can control whether and how the transaction is started with parameters on `@Transactional`: - -* `@Transactional(REQUIRED)` (default): starts a transaction if none was started, stays with the existing one otherwise. -* `@Transactional(REQUIRES_NEW)`: starts a transaction if none was started ; if an existing one was started, suspends it and starts a new one for the boundary of that method. -* `@Transactional(MANDATORY)`: fails if no transaction was started ; works within the existing transaction otherwise. -* `@Transactional(SUPPORTS)`: if a transaction was started, joins it ; otherwise works with no transaction. -* `@Transactional(NOT_SUPPORTED)`: if a transaction was started, suspends it and works with no transaction for the boundary of the method ; otherwise works with no transaction. -* `@Transactional(NEVER)`: if a transaction was started, raises an exception ; otherwise works with no transaction. - -`REQUIRED` or `NOT_SUPPORTED` are probably the most useful ones. -This is how you decide whether a method is to be running within or outside a transaction. -Make sure to check the JavaDoc for the precise semantic. - -The transaction context is propagated to all calls nested in the `@Transactional` method as you would expect (in this example `childDAO.addToGiftList()` and `santaDAO.addToSantaTodoList()`). -The transaction will commit unless a runtime exception crosses the method boundary. -You can override whether an exception forces the rollback or not by using `@Transactional(dontRollbackOn=SomeException.class)` (or `rollbackOn`). - -You can also programmatically ask for a transaction to be marked for rollback. -Inject a `TransactionManager` for this. - -[source,java] ----- -@ApplicationScoped -public class SantaClausService { - - @Inject TransactionManager tm; // <1> - @Inject ChildDAO childDAO; - @Inject SantaClausDAO santaDAO; - - @Transactional - public void getAGiftFromSanta(Child child, String giftDescription) { - // some transaction work - Gift gift = childDAO.addToGiftList(child, giftDescription); - if (gift == null) { - tm.setRollbackOnly(); // <2> - } - else { - santaDAO.addToSantaTodoList(gift); - } - } -} ----- - -<1> Inject the `TransactionManager` to be able to activate `setRollbackOnly` semantic. -<2> Programmatically decide to set the transaction for rollback. - - -=== Transaction Configuration - -Advanced configuration of the transaction is possible with the use of the `@TransactionConfiguration` annotation that is set in addition to the standard `@Transactional` annotation on your entry method or at the class level. - -The `@TransactionConfiguration` annotation allows to set a timeout property, in seconds, that applies to transactions created within the annotated method. - -This annotation may only be placed on the top level method delineating the transaction. -Annotated nested methods once a transaction has started will throw an exception. - -If defined on a class, it is equivalent to defining it on all the methods of the class marked with `@Transactional`. -The configuration defined on a method takes precedence over the configuration defined on a class. - -=== Reactive extensions - -If your `@Transactional`-annotated method returns a reactive value, such as: - -- `CompletionStage` (from the JDK) -- `Publisher` (from Reactive-Streams) -- Any type which can be converted to one of the two previous types using Reactive Type Converters - -then the behaviour is a bit different, because the transaction will not be terminated until the -returned reactive value is terminated. In effect, the returned reactive value will be listened to -and if it terminates exceptionally the transaction will be marked for rollback, and will be committed -or rolled-back only at termination of the reactive value. - -This allows your reactive methods to keep on working on the transaction asynchronously until their -work is really done, and not just until the reactive method returns. - -If you need to propagate your transaction context across your reactive pipeline, please see the -xref:context-propagation.adoc[Context Propagation guide]. - -=== API approach - -The less easy way is to inject a `UserTransaction` and use the various transaction demarcation methods. - -[source,java] ----- -@ApplicationScoped -public class SantaClausService { - - @Inject ChildDAO childDAO; - @Inject SantaClausDAO santaDAO; - @Inject UserTransaction transaction; - - public void getAGiftFromSanta(Child child, String giftDescription) { - // some transaction work - try { - transaction.begin(); - Gift gift = childDAO.addToGiftList(child, giftDescription); - santaDAO.addToSantaTodoList(gift); - transaction.commit(); - } - catch(SomeException e) { - // do something on Tx failure - transaction.rollback(); - } - } -} ----- - -[NOTE] -==== -You cannot use `UserTransaction` in a method having a transaction started by a `@Transactional` call. -==== - -== Configuring the transaction timeout -You can configure the default transaction timeout, the timeout that applies to all transactions managed by the transaction manager, via the property `quarkus.transaction-manager.default-transaction-timeout`, specified as a duration. - -include::duration-format-note.adoc[] - -The default value is 60 seconds. - -== Configuring transaction node name identifier - -Narayana, as the underlying transaction manager, has a concept of a unique node identifier. -This is important if you consider using XA transactions that involve multiple resources. - -The node name identifier plays a crucial part in the identification of a transaction. -The node name identifier is forged into the transaction id when the transaction is created. -Based on the node name identifier, the transaction manager is capable of recognizing the XA transaction -counterparts created in database or JMS broker. The identifier makes possible for the transaction manager -to roll back the transaction counterparts during recovery. - -The node name identifier needs to be unique per transaction manager deployment. -And the node identifier needs to be stable over the transaction manager restarts. - -The node name identifier may be configured via the property `quarkus.transaction-manager.node-name`. - -== Why always having a transaction manager? - -Does it work everywhere I want to?:: - -Yep, it works in your Quarkus application, in your IDE, in your tests, because all of these are Quarkus applications. -JTA has some bad press for some people. -I don't know why. -Let's just say that this is not your grandpa's JTA implementation. -What we have is perfectly embeddable and lean. - -Does it do 2 Phase Commit and slow down my app?:: - -No, this is an old folk tale. -Let's assume it essentially comes for free and let you scale to more complex cases involving several datasources as needed. - -I don't need transaction when I do read only operations, it's faster.:: - -Wrong. + -First off, just disable the transaction by marking your transaction boundary with `@Transactional(NOT_SUPPORTED)` (or `NEVER` or `SUPPORTS` depending on the semantic you want). + -Second, it's again fairy tale that not using transaction is faster. -The answer is, it depends on your DB and how many SQL SELECTs you are making. -No transaction means the DB does have a single operation transaction context anyways. + -Third, when you do several SELECTs, it's better to wrap them in a single transaction because they will all be consistent with one another. -Say your DB represents your car dashboard, you can see the number of kilometers remaining and the fuel gauge level. -By reading it in one transaction, they will be consistent. -If you read one and the other from two different transactions, then they can be inconsistent. -It can be more dramatic if you read data related to rights and access management for example. - -Why do you prefer JTA vs Hibernate's transaction management API:: - -Managing the transactions manually via `entityManager.getTransaction().begin()` and friends lead to a butt ugly code with tons of try catch finally that people get wrong. -Transactions are also about JMS and other database access, so one API makes more sense. - -It's a mess because I don't know if my JPA persistence unit is using `JTA` or `Resource-level` Transaction:: - -It's not a mess in Quarkus :) -Resource-level was introduced to support JPA in a non managed environment. -But Quarkus is both lean and a managed environment so we can safely always assume we are in JTA mode. -The end result is that the difficulties of running Hibernate ORM + CDI + a transaction manager in Java SE mode are solved by Quarkus. diff --git a/_versions/2.7/guides/upx.adoc b/_versions/2.7/guides/upx.adoc deleted file mode 100644 index ec3c32a767b..00000000000 --- a/_versions/2.7/guides/upx.adoc +++ /dev/null @@ -1,72 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// - -= Compressing native executables using UPX - -include::./attributes.adoc[] - -https://upx.github.io/[Ultimate Packer for eXecutables (UPX)] is a compression tool reducing the size of executables. -Quarkus can compress the produced native executable to reduce its size. -Such compression is interesting when: - -* building CLI tools, and you want to reduce the disk footprint, -* building small container images. - -Note that UPX compression: - -1. increases your build time, mainly if you use high-compression levels -2. increases the startup RSS usage of the application - -== System vs. Container - -The UPX compression requires: - -* the `upx` command to be available in the system `PATH`; -* or to have built the native executable using an in-container build. - -If you have the `upx` command available on your path, Quarkus uses it. -Otherwise, if you built the native image using an in-container build (using `quarkus.native.container-build=true`) and if the builder image provides the `upx` command, Quarkus compresses the executable from inside the container. - -If you are not in one of these cases, the compression fails. - -[IMPORTANT] -.upx is cross-platform. -==== -`upx` can compress executables using a different architecture and OS than your host machine. For example, `upx` on a MacOS X machine can compress a Linux 64bits executables. -==== - -== Configuring the UPX compression - -Then, in your application configuration, enable the compression by configuring the _compression level_ you want: - -[source, properties] ----- -quarkus.native.compression.level=5 ----- - -If the compression level is not set, the compression is disabled. -The compression will happen once the native executable is built and will replace the executable. - -== Compression level - -The compression level goes from 1 to 10: - -* `1`: faster compression -* `9`: better compression -* `10`: best compression (can be slow for big files) - -== Extra parameters - -You can pass extra parameter to upx, such as `--brute` or `--ultra-brute` using the `quarkus.native.compression.additional-args` parameter. -The value is a comma-separated list of arguments: - -[source, properties] ----- -quarkus.native.compression.level=3 -quarkus.native.compression.additional-args=--ultra-brute,-v ----- - -The exhaustive list of parameters can be found in https://github.com/upx/upx/blob/devel/doc/upx.pod[the UPX documentation]. \ No newline at end of file diff --git a/_versions/2.7/guides/validation.adoc b/_versions/2.7/guides/validation.adoc deleted file mode 100644 index 87e5a610fc7..00000000000 --- a/_versions/2.7/guides/validation.adoc +++ /dev/null @@ -1,439 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Validation with Hibernate Validator - -include::./attributes.adoc[] - -This guide covers how to use Hibernate Validator/Bean Validation for: - - * validating the input/output of your REST services; - * validating the parameters and return values of the methods of your business services. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -The application built in this guide is quite simple. The user fills a form on a web page. -The web page sends the form content to the `BookResource` as JSON (using Ajax). The `BookResource` validates the user input and returns the -_result_ as JSON. - -image:validation-guide-architecture.png[alt=Architecture] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `validation-quickstart` {quickstarts-tree-url}/validation-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: validation-quickstart -:create-app-extensions: resteasy,resteasy-jackson,hibernate-validator -include::includes/devtools/create-app.adoc[] - -This command generates a Maven structure importing the RESTEasy/JAX-RS, Jackson and Hibernate Validator/Bean Validation extensions. - -If you already have your Quarkus project configured, you can add the `hibernate-validator` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: hibernate-validator -include::includes/devtools/extension-add.adoc[] - -The result of this command is dependent on your build tool: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-hibernate-validator - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-hibernate-validator") ----- - -== Constraints - -In this application, we are going to test an elementary object, but we support complicated constraints and can validate graphs of objects. -Create the `org.acme.validation.Book` class with the following content: - -[source, java] ----- -package org.acme.validation; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.Min; - -public class Book { - - @NotBlank(message="Title may not be blank") - public String title; - - @NotBlank(message="Author may not be blank") - public String author; - - @Min(message="Author has been very lazy", value=1) - public double pages; -} ----- - -Constraints are added on fields, and when an object is validated, the values are checked. -The getter and setter methods are also used for JSON mapping. - -== JSON mapping and validation - -Create the following REST resource as `org.acme.validation.BookResource`: - -[source,java] ----- -package org.acme.validation; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/books") -public class BookResource { - - @Inject - Validator validator; <1> - - @Path("/manual-validation") - @POST - public Result tryMeManualValidation(Book book) { - Set> violations = validator.validate(book); - if (violations.isEmpty()) { - return new Result("Book is valid! It was validated by manual validation."); - } else { - return new Result(violations); - } - } -} ----- -<1> The `Validator` instance is injected via CDI. - -Yes it does not compile, `Result` is missing, but we will add it very soon. - -The method parameter (`book`) is created from the JSON payload automatically. - -The method uses the `Validator` instance to check the payload. -It returns a set of violations. -If this set is empty, it means the object is valid. -In case of failures, the messages are concatenated and sent back to the browser. - -Let's now create the `Result` class as an inner class: - -[source, java] ----- -public static class Result { - - Result(String message) { - this.success = true; - this.message = message; - } - - Result(Set> violations) { - this.success = false; - this.message = violations.stream() - .map(cv -> cv.getMessage()) - .collect(Collectors.joining(", ")); - } - - private String message; - private boolean success; - - public String getMessage() { - return message; - } - - public boolean isSuccess() { - return success; - } - -} ----- - -The class is very simple and only contains 2 fields and the associated getters and setters. -Because we indicate that we produce JSON, the mapping to JSON is made automatically. - -== REST end point validation - -While using the `Validator` manually might be useful for some advanced usage, -if you simply want to validate the parameters or the return value or your REST end point, -you can annotate it directly, either with constraints (`@NotNull`, `@Digits`...) -or with `@Valid` (which will cascade the validation to the bean). - -Let's create an end point validating the `Book` provided in the request: - -[source, java] ----- -@Path("/end-point-method-validation") -@POST -@Produces(MediaType.APPLICATION_JSON) -@Consumes(MediaType.APPLICATION_JSON) -public Result tryMeEndPointMethodValidation(@Valid Book book) { - return new Result("Book is valid! It was validated by end point method validation."); -} ----- - -As you can see, we don't have to manually validate the provided `Book` anymore as it is automatically validated. - -If a validation error is triggered, a violation report is generated and serialized as JSON as our end point produces a JSON output. -It can be extracted and manipulated to display a proper error message. - -== Service method validation - -It might not always be handy to have the validation rules declared at the end point level as it could duplicate some business validation. - -The best option is then to annotate a method of your business service with your constraints (or in our particular case with `@Valid`): - -[source, java] ----- -package org.acme.validation; - -import javax.enterprise.context.ApplicationScoped; -import javax.validation.Valid; - -@ApplicationScoped -public class BookService { - - public void validateBook(@Valid Book book) { - // your business logic here - } -} ----- - -Calling the service in your rest end point triggers the `Book` validation automatically: - -[source, java] ----- -@Inject BookService bookService; - -@Path("/service-method-validation") -@POST -public Result tryMeServiceMethodValidation(Book book) { - try { - bookService.validateBook(book); - return new Result("Book is valid! It was validated by service method validation."); - } catch (ConstraintViolationException e) { - return new Result(e.getConstraintViolations()); - } -} ----- - -Note that, if you want to push the validation errors to the frontend, you have to catch the exception and push the information yourselves -as they will not be automatically pushed to the JSON output. - -Keep in mind that you usually don't want to expose to the public the internals of your services -- and especially not the validated value contained in the violation object. - -== A frontend - -Now let's add the simple web page to interact with our `BookResource`. -Quarkus automatically serves static resources contained in the `META-INF/resources` directory. -In the `src/main/resources/META-INF/resources` directory, replace the `index.html` file with the content from this {quickstarts-blob-url}/validation-quickstart/src/main/resources/META-INF/resources/index.html[index.html] file in it. - -== Run the application - -Now, let's see our application in action. Run it with: - -include::includes/devtools/dev.adoc[] - -Then, open your browser to http://localhost:8080/: - -1. Enter the book details (valid or invalid) -2. Click on the _Try me..._ buttons to check if your data is valid using one of the methods we presented above. - -image:validation-guide-screenshot.png[alt=Application] - -The application can be packaged using: - -include::includes/devtools/build.adoc[] - -and executed using `java -jar target/quarkus-app/quarkus-run.jar`. - -You can also build the native executable using: - -include::includes/devtools/build-native.adoc[] - -== Going further - -=== Hibernate Validator extension and CDI - -The Hibernate Validator extension is tightly integrated with CDI. - -==== Configuring the ValidatorFactory - -Sometimes, you might need to configure the behavior of the `ValidatorFactory`, for instance to use a specific `ParameterNameProvider`. - -While the `ValidatorFactory` is instantiated by Quarkus itself, -you can very easily tweak it by declaring replacement beans that will be injected in the configuration. - -If you create a bean of the following types in your application, it will automatically be injected into the `ValidatorFactory` configuration: - - * `javax.validation.ClockProvider` - * `javax.validation.ConstraintValidator` - * `javax.validation.ConstraintValidatorFactory` - * `javax.validation.MessageInterpolator` - * `javax.validation.ParameterNameProvider` - * `javax.validation.TraversableResolver` - * `org.hibernate.validator.spi.properties.GetterPropertySelectionStrategy` - * `org.hibernate.validator.spi.nodenameprovider.PropertyNodeNameProvider` - * `org.hibernate.validator.spi.scripting.ScriptEvaluatorFactory` - -You don't have to wire anything. - -[WARNING] -==== -Obviously, for each listed type, you can declare only one bean. - -Most of the time, these beans should be declared as `@ApplicationScoped`. - -However, in the case of ``ConstraintValidator``s that are dependent of attributes of the constraint annotation -(typically when implementing the `initialize(A constraintAnnotation)` method), -use the `@Dependent` scope to make sure each annotation context has a separate instance of the `ConstraintValidator` bean. -==== - -==== Constraint validators as beans - -You can declare your constraint validators as CDI beans: - -[source,java] ----- -@ApplicationScoped -public class MyConstraintValidator implements ConstraintValidator { - - @Inject - MyService service; - - @Override - public boolean isValid(String value, ConstraintValidatorContext context) { - if (value == null) { - return true; - } - - return service.validate(value); - } -} ----- - -When initializing a constraint validator of a given type, -Quarkus will check if a bean of this type is available and, if so, it will use it instead of instantiating one. - -Thus, as demonstrated in our example, you can fully use injection in your constraint validator beans. - -[NOTE] -==== -Except in very specific situations, it is recommended to make the said beans `@ApplicationScoped`. -==== - -=== Validation and localization - -By default, constraint violation messages will be returned in the build system locale. - -You can configure this behavior by adding the following configuration in your `application.properties`: - -[source, properties] ----- -# The default locale to use -quarkus.default-locale=fr-FR ----- - -If you are using RESTEasy, in the context of a JAX-RS endpoint, Hibernate Validator will automatically resolve the optimal locale to use from the `Accept-Language` HTTP header, -provided the supported locales have been properly specified in the `application.properties`: - -[source, properties] ----- -# The list of all the supported locales -quarkus.locales=en-US,es-ES,fr-FR ----- - -=== Validation groups for REST endpoint or service method validation - -It's sometimes necessary to enable different validation constraints -for the same class when it's passed to a different method. - -For example, a `Book` may need to have a `null` identifier when passed to the `post` method -(because the identifier will be generated), -but a non-`null` identifier when passed to the `put` method -(because the method needs the identifier to know what to update). - -To address this, you can take advantage of validation groups. -Validation groups are markers that you put on your constraints in order to enable or disable them at will. - -First, define the `Post` and `Put` groups, which are just Java interfaces. - -[source, java] ----- -public interface ValidationGroups { - interface Post extends Default { // <1> - } - interface Put extends Default { // <1> - } -} ----- -<1> Make the custom groups extend the `Default` group. -This means that whenever these groups are enabled, the `Default` group is also enabled. -This is useful if you have constraints that you want validated in both the `Post` and `Put` method: -you can simply use the default group on those constraints, like on the `title` property below. - -Then add the relevant constraints to `Book`, assigning the right group to each constraint: - -[source, java] ----- -public class Book { - - @Null(groups = ValidationGroups.Post.class) - @NotNull(groups = ValidationGroups.Put.class) - public Long id; - - @NotBlank - public String title; - -} ----- - -Finally, add a `@ConvertGroup` annotation next to your `@Valid` annotation in your validated method. - -[source, java] ----- -@Path("/") -@POST -@Consumes(MediaType.APPLICATION_JSON) -public void post(@Valid @ConvertGroup(to = ValidationGroups.Post.class) Book book) { // <1> - // ... -} - -@Path("/") -@PUT -@Consumes(MediaType.APPLICATION_JSON) -public void put(@Valid @ConvertGroup(to = ValidationGroups.Put.class) Book book) { // <2> - // ... -} ----- -<1> Enable the `Post` group, meaning only constraints assigned to the `Post` (and `Default`) groups -will be validated for the `book` parameter of the `post` method. -In this case, it means `Book.id` must be `null` and `Book.title` must not be blank. -<2> Enable the `Put` group, meaning only constraints assigned to the `Put` (and `Default`) groups -will be validated for the `book` parameter of the `put` method. -In this case, it means `Book.id` must not be `null` and `Book.title` must not be blank. - -[[configuration-reference]] -== Hibernate Validator Configuration Reference - -include::{generated-dir}/config/quarkus-hibernate-validator.adoc[leveloffset=+1, opts=optional] diff --git a/_versions/2.7/guides/vertx-reference.adoc b/_versions/2.7/guides/vertx-reference.adoc deleted file mode 100644 index a12dfab3462..00000000000 --- a/_versions/2.7/guides/vertx-reference.adoc +++ /dev/null @@ -1,1040 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Vert.x Reference Guide - -include::./attributes.adoc[] - -https://vertx.io[Vert.x] is a toolkit for building reactive applications. -As described in the xref:quarkus-reactive-architecture.adoc[Quarkus Reactive Architecture], Quarkus uses Vert.x underneath. - -This guide is the companion to the xref:vertx.adoc[Using Eclipse Vert.x API from a Quarkus Application] guide. -It provides more advanced details about the usage and the configuration of the Vert.x instance used by Quarkus. - - -[#vertx-access] -== Accessing the Vert.x instance - -To access the managed Vert.x instance, add the `quarkus-vertx` extension to your project. -Note that this dependency may already be installed (as a transitive dependency). - -With this extension, you can retrieve the managed instance of Vert.x using either field or constructor injection: - -[source, java] ----- -@ApplicationScoped -public class MyBean { -// Field injection -@Inject Vertx vertx; - -// Constructor injection -MyBean(Vertx vertx) { - // ... -} - -} ----- - -You can inject either the: - -* `io.vertx.core.Vertx` instance exposing the _bare_ Vert.x API -* `io.vertx.mutiny.core.Vertx` instance exposing the _Mutiny_ API - -We recommend using the Mutiny variant as it integrates with the other reactive APIs provided by Quarkus. - -[TIP] -.Mutiny -==== -If you are not familiar with Mutiny, check xref:mutiny-primer.adoc[Mutiny - an intuitive reactive programming library]. -==== - -Documentation about the Vert.x Mutiny variant is available on https://smallrye.io/smallrye-mutiny-vertx-bindings. - -[[vertx-config]] -== Configuring the Vert.x instance - -You can configure the Vert.x instance from the `application.properties` file. -The following table lists the supported properties: - -include::{generated-dir}/config/quarkus-vertx-core.adoc[opts=optional, leveloffset=+1] - - -[[using-vertx-clients]] -== Using Vert.x clients - -In addition to Vert.x core, you can use most Vert.x ecosystem libraries. -Some Quarkus extension already wraps Vert.x libraries. - -=== Available APIs - -The following table lists the most used libraries from the Vert.x ecosystem. -To access these APIs, add the indicated extension or dependency to your project. -Refer to the associated documentation to learn how to use them. - -[cols="1,1,1",stripes=even,options=headers] -|=== -|API -|Extension or Dependency -|Documentation - -|AMQP Client -|`io.quarkus:quarkus-smallrye-reactive-messaging-amqp` (extension) -|https://quarkus.io/guides/amqp - -|Circuit Breaker -|`io.smallrye.reactive:smallrye-mutiny-vertx-circuit-breaker` (external dependency) -|https://vertx.io/docs/vertx-circuit-breaker/java/ - -|Consul Client -|`io.smallrye.reactive:smallrye-mutiny-vertx-consul-client` (external dependency) -|https://vertx.io/docs/vertx-consul-client/java/ - -|DB2 Client -|`io.quarkus:quarkus-reactive-db2-client` (extension) -|https://quarkus.io/guides/reactive-sql-clients - -|Kafka Client -|`io.quarkus:quarkus-smallrye-reactive-messaging-kafka` (extension) -|https://quarkus.io/guides/kafka - -|Mail Client -|`io.quarkus:quarkus-mailer` (extension) -|https://quarkus.io/guides/mailer - -|MQTT Client -|`io.quarkus:quarkus-smallrye-reactive-messaging-mqtt` (extension) -|https://quarkus.io/guides/mqtt - -|MS SQL Client -|`io.quarkus:quarkus-reactive-mssql-client` (extension) -|https://quarkus.io/guides/reactive-sql-clients - -|MySQL Client -|`io.quarkus:quarkus-reactive-mysql-client` (extension) -|https://quarkus.io/guides/reactive-sql-clients - -|Oracle Client -|`io.quarkus:quarkus-reactive-oracle-client` (extension) -|https://quarkus.io/guides/reactive-sql-clients - -|PostgreSQL Client -|`io.quarkus:quarkus-reactive-pg-client` (extension) -|https://quarkus.io/guides/reactive-sql-clients - -|RabbitMQ Client -|`io.smallrye.reactive:smallrye-mutiny-vertx-rabbitmq-client` (external dependency) -|https://vertx.io/docs/vertx-rabbitmq-client/java - -|Redis Client -|`io.quarkus:quarkus-redis-client` (extension) -|https://quarkus.io/guides/redis - -|Web Client -|`io.smallrye.reactive:smallrye-mutiny-vertx-web-client` (external dependency) -|https://vertx.io/docs/vertx-web-client/java/ - -|=== - -To learn more about the usage of the Vert.x Mutiny API, refer to https://smallrye.io/smallrye-mutiny-vertx-bindings. - -=== Example of usage - -This section gives an example using the Vert.x `WebClient`. -As indicated in the table above, add the following dependency to your project: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.smallrye.reactive - smallrye-mutiny-vertx-web-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.smallrye.reactive:smallrye-mutiny-vertx-web-client") ----- - -Now, in your code, you can create an instance of `WebClient`: - -[source, java] ----- -package org.acme.vertx; - - -import javax.annotation.PostConstruct; -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import io.smallrye.mutiny.Uni; -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -import io.vertx.mutiny.core.Vertx; -import io.vertx.mutiny.ext.web.client.WebClient; -import io.vertx.core.json.JsonObject; -import io.vertx.ext.web.client.WebClientOptions; - -@Path("/fruit-data") -public class ResourceUsingWebClient { - - private final WebClient client; - - @Inject - VertxResource(Vertx vertx) { - this.client = WebClient.create(vertx); - } - - @GET - @Produces(MediaType.APPLICATION_JSON) - @Path("/{name}") - public Uni getFruitData(@PathParam("name") String name) { - return client.getAbs("https://.../api/fruit/" + name) - .send() - .onItem().transform(resp -> { - if (resp.statusCode() == 200) { - return resp.bodyAsJsonObject(); - } else { - return new JsonObject() - .put("code", resp.statusCode()) - .put("message", resp.bodyAsString()); - } - }); - } - -} - ----- - -This resource creates a `WebClient` and, upon request, uses this client to invoke a remote HTTP API. -Depending on the result, the response is forwarded as received, or it creates a JSON object wrapping the error. -The `WebClient` is asynchronous (and non-blocking), to the endpoint returns a `Uni`. - -The application can also run as a native executable. -But, first, we need to instruct Quarkus to enable _ssl_ (if the remote API uses HTTPS). -Open the `src/main/resources/application.properties` and add: - -[source,properties] ----- -quarkus.ssl.native=true ----- - -Then, create the native executable with: - -include::includes/devtools/build-native.adoc[] - -[#using-vert-x-json] -== Using Vert.x JSON - -Vert.x APIs often rely on JSON. -Vert.x provides two convenient classes to manipulate JSON document: `io.vertx.core.json.JsonObject` and `io.vertx.core.json.JsonArray`. - -`JsonObject` can be used to map an object into its JSON representation and build an object from a JSON document: - -[source, java] ----- -// Map an object into JSON -Person person = ...; -JsonObject json = JsonObject.mapFrom(person); - -// Build an object from JSON -json = new JsonObject(); -person = json.mapTo(Person.class); ----- - -Note that these features use the mapper managed by the `quarkus-jackson` extension. -Refer to xref:rest-json.adoc#json[Jackson configuration] to customize the mapping. - - -JSON Object and JSON Array are both supported as Quarkus HTTP endpoint requests and response bodies (using classic RESTEasy and RESTEasy Reactive). -Consider these endpoints: - - -[source,java] ----- -package org.acme.vertx; - -import io.vertx.core.json.JsonObject; -import io.vertx.core.json.JsonArray; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -@Path("/hello") -@Produces(MediaType.APPLICATION_JSON) -public class VertxJsonResource { - - @GET - @Path("{name}/object") - public JsonObject jsonObject(@PathParam String name) { - return new JsonObject().put("Hello", name); - } - - @GET - @Path("{name}/array") - public JsonArray jsonArray(@PathParam String name) { - return new JsonArray().add("Hello").add(name); - } -} ----- - -http://localhost:8080/hello/Quarkus/object returns: - -[source, text] ----- -{"Hello":"Quarkus"} ----- - -http://localhost:8080/hello/Quarkus/array returns: - -[source, text] ----- -["Hello","Quarkus"] ----- - -This works equally well when the JSON content is a request body or is wrapped in a `Uni`, `Multi`, `CompletionStage` or `Publisher`. - -== Using verticles - -link:https://vertx.io/docs/vertx-core/java/#_verticles[Verticles] is "a simple, scalable, actor-like deployment and concurrency model" provided by _Vert.x_. -This model does not claim to be a strict actor-model implementation, but it shares similarities, especially concerning concurrency, scaling, and deployment. -To use this model, you write and _deploy_ verticles, communicating by sending messages on the event bus. - -You can deploy _verticles_ in Quarkus. -It supports: - -* _bare_ verticle - Java classes extending `io.vertx.core.AbstractVerticle` -* _Mutiny_ verticle - Java classes extending `io.smallrye.mutiny.vertx.core.AbstractVerticle` - -=== Deploying verticles - -To deploy verticles, use the `deployVerticle` method: - -[source, java] ----- -@Inject Vertx vertx; - -// ... -vertx.deployVerticle(MyVerticle.class.getName(), ar -> { }); -vertx.deployVerticle(new MyVerticle(), ar -> { }); ----- - -If you use the Mutiny-variant of Vert.x, be aware that the `deployVerticle` method returns a `Uni`, and you would need to trigger a subscription to make the actual deployment. - -NOTE: An example explaining how to deploy verticles during the initialization of the application will follow. - -=== Using @ApplicationScoped Beans as Verticle - -In general, Vert.x verticles are not CDI beans. -And so cannot use injection. -However, in Quarkus, you can deploy verticles as beans. -Note that in this case, CDI (Arc in Quarkus) is responsible for creating the instance. - -The following snippet provides an example: - -[source, java] ----- -package io.quarkus.vertx.verticles; - -import io.smallrye.mutiny.Uni; -import io.smallrye.mutiny.vertx.core.AbstractVerticle; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class MyBeanVerticle extends AbstractVerticle { - - @ConfigProperty(name = "address") String address; - - @Override - public Uni asyncStart() { - return vertx.eventBus().consumer(address) - .handler(m -> m.replyAndForget("hello")) - .completionHandler(); - } -} ----- - -You don't have to inject the `vertx` instance; instead, leverage the protected field from `AbstractVerticle`. - -Then, deploy the verticle instances with: - -[source, java] ----- -package io.quarkus.vertx.verticles; - -import io.quarkus.runtime.StartupEvent; -import io.vertx.mutiny.core.Vertx; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.event.Observes; - -@ApplicationScoped -public class VerticleDeployer { - - public void init(@Observes StartupEvent e, Vertx vertx, MyBeanVerticle verticle) { - vertx.deployVerticle(verticle).await().indefinitely(); - } -} ----- - -If you want to deploy every exposed `AbstractVerticle`, you can use: - -[source,java] ----- -public void init(@Observes StartupEvent e, Vertx vertx, Instance verticles) { - for (AbstractVerticle verticle : verticles) { - vertx.deployVerticle(verticle).await().indefinitely(); - } -} ----- - -=== Using multiple verticles instances - -When using `@ApplicationScoped`, you will get a single instance for your verticle. -Having multiple instances of verticles can be helpful to share the load among them. -Each of them will be associated with a different I/O thread (Vert.x event loop). - -To deploy multiple instances of your verticle, use the `@Dependent` scope instead of `@ApplicationScoped`: - -[source, java] ----- -package org.acme.verticle; - -import io.smallrye.mutiny.Uni; -import io.smallrye.mutiny.vertx.core.AbstractVerticle; - -import javax.enterprise.context.Dependent; -import javax.inject.Inject; - -@Dependent -public class MyVerticle extends AbstractVerticle { - - @Override - public Uni asyncStart() { - return vertx.eventBus().consumer("address") - .handler(m -> m.reply("Hello from " + this)) - .completionHandler(); - } -} ----- - -Then, deploy your verticle as follows: - -[source, java] ----- -package org.acme.verticle; - -import io.quarkus.runtime.StartupEvent; -import io.vertx.core.DeploymentOptions; -import io.vertx.mutiny.core.Vertx; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.event.Observes; -import javax.enterprise.inject.Instance; -import javax.inject.Inject; - -@ApplicationScoped -public class MyApp { - - void init(@Observes StartupEvent ev, Vertx vertx, Instance verticles) { - vertx - .deployVerticle(verticles::get, new DeploymentOptions().setInstances(2)) - .await().indefinitely(); - } -} - ----- - -The `init` method receives an `Instance`. -Then, you pass a supplier to the `deployVerticle` method. -The supplier is just calling the `get()` method. -Thanks to the `@Dependent` scope, it returns a new instance on every call. -Finally, you pass the desired number of instances to the `DeploymentOptions`, such as two in the previous example. -It will call the supplier twice, which will create two instances of your verticle. - -[#eventbus] -== Using the event bus - -Vert.x comes with a built-in https://vertx.io/docs/vertx-core/java/#event_bus[event bus] that you can use from your Quarkus application. -So, your application components (CDI beans, resources...) can interact using asynchronous events, thus promoting loose-coupling. - -With the event bus, you send _messages_ to _virtual addresses_. -The event bus offers three types of delivery mechanisms: - -- point-to-point - send the message, one consumer receives it. If several consumers listen to the address, a round-robin is applied; -- publish/subscribe - publish a message; all the consumers listening to the address are receiving the message; -- request/reply - send the message and expect a response. The receiver can respond to the message in an asynchronous fashion. - -All these delivery mechanisms are non-blocking and are providing one of the fundamental bricks to build reactive applications. - -=== Consuming events - -While you can use the Vert.x API to register consumers, Quarkus comes with declarative support. -To consume events, use the `io.quarkus.vertx.ConsumeEvent` annotation: - -[source, java] ----- -package org.acme.vertx; - -import io.quarkus.vertx.ConsumeEvent; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class GreetingService { - - @ConsumeEvent // <1> - public String consume(String name) { // <2> - return name.toUpperCase(); - } -} ----- -<1> If not set, the address is the fully qualified name of the bean; for instance, in this snippet, it's `org.acme.vertx.GreetingService`. -<2> The method parameter is the message body. If the method returns _something_, it's the message response. - -=== Configuring the address - -The `@ConsumeEvent` annotation can be configured to set the address: - -[source, java] ----- -@ConsumeEvent("greeting") // <1> -public String consume(String name) { - return name.toUpperCase(); -} ----- -<1> Receive the messages sent to the `greeting` address - -=== Asynchronous processing - -The previous examples use synchronous processing. -Asynchronous processing is also possible by returning either an `io.smallrye.mutiny.Uni` or a `java.util.concurrent.CompletionStage`: - -[source,java] ----- -package org.acme.vertx; - -import io.quarkus.vertx.ConsumeEvent; - -import javax.enterprise.context.ApplicationScoped; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionStage; -import io.smallrye.mutiny.Uni; - -@ApplicationScoped -public class GreetingService { - - @ConsumeEvent - public CompletionStage consume(String name) { - // return a CompletionStage completed when the processing is finished. - // You can also fail the CompletionStage explicitly - } - - @ConsumeEvent - public Uni process(String name) { - // return an Uni completed when the processing is finished. - // You can also fail the Uni explicitly - } -} ----- - -[TIP] -.Mutiny -==== -The previous example uses Mutiny reactive types. -If you are not familiar with Mutiny, check xref:mutiny-primer.adoc[Mutiny - an intuitive reactive programming library]. -==== - -=== Blocking processing - -By default, the code consuming the event must be _non-blocking_, as it's called on an I/O thread. -If your processing is blocking, use the `@io.smallrye.common.annotation.Blocking` annotation: - -[source, java] ----- -@ConsumeEvent(value = "blocking-consumer") -@Blocking -void consumeBlocking(String message) { - // Something blocking -} ----- - -Alternatively, you can use the `blocking` attribute from the `@ConsumeEvent` annotation: - -[source, java] ----- -@ConsumeEvent(value = "blocking-consumer", blocking = true) -void consumeBlocking(String message) { - // Something blocking -} ----- - -When using `@Blocking`, it ignores the value of the `blocking` attribute of `@ConsumeEvent`. - -=== Replying to messages - -The _return_ value of a method annotated with `@ConsumeEvent` is used to respond to the incoming message. -For instance, in the following snippet, the returned `String` is the response. - -[source, java] ----- -@ConsumeEvent("greeting") -public String consume(String name) { - return name.toUpperCase(); -} ----- - -You can also return a `Uni` or a `CompletionStage` to handle asynchronous reply: - -[source, java] ----- -@ConsumeEvent("greeting") -public Uni consume2(String name) { - return Uni.createFrom().item(() -> name.toUpperCase()).emitOn(executor); -} ----- - -[NOTE] -==== -You can inject an `executor` if you use the Context Propagation extension: -[source, code] ----- -@Inject Executor executor; ----- -==== - -=== Implementing fire and forget interactions - -You don't have to reply to received messages. -Typically, for a _fire and forget_ interaction, the messages are consumed, and the sender does not need to know about it. -To implement this pattern, your consumer method returns `void`. - -[source,java] ----- -@ConsumeEvent("greeting") -public void consume(String event) { - // Do something with the event -} ----- - -=== Dealing with messages - -Unlike the previous example using the _payloads_ directly, you can also use `Message` directly: - -[source, java] ----- -@ConsumeEvent("greeting") -public void consume(Message msg) { - System.out.println(msg.address()); - System.out.println(msg.body()); -} ----- - -=== Handling Failures - -If a method annotated with `@ConsumeEvent` throws an exception, then: - -* if a reply handler is set, then the failure is propagated back to the sender via an `io.vertx.core.eventbus.ReplyException` with code `ConsumeEvent#FAILURE_CODE` and the exception message, -* if no reply handler is set, then the exception is rethrown (and wrapped in a `RuntimeException` if necessary) and can be handled by the default exception handler, i.e. `io.vertx.core.Vertx#exceptionHandler()`. - -=== Sending messages - -Sending and publishing messages use the Vert.x event bus: - -[source, java] ----- -package org.acme.vertx; - -import io.smallrye.mutiny.Uni; -import io.vertx.mutiny.core.eventbus.EventBus; -import io.vertx.mutiny.core.eventbus.Message; -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/async") -public class EventResource { - - @Inject - EventBus bus; // <1> - - @GET - @Produces(MediaType.TEXT_PLAIN) - @Path("{name}") - public Uni greeting(@PathParam String name) { - return bus.request("greeting", name) // <2> - .onItem().transform(Message::body); - } -} ----- -<1> Inject the Event bus -<2> Send a message to the address `greeting`. Message payload is `name` - -The `EventBus` object provides methods to: - -1. `send` a message to a specific address - one single consumer receives the message. -2. `publish` a message to a specific address - all consumers receive the messages. -3. `request` a message and expect a reply - -[source, java] ----- -// Case 1 -bus.sendAndForget("greeting", name) -// Case 2 -bus.publish("greeting", name) -// Case 3 -Uni response = bus.request("address", "hello, how are you?") - .onItem().transform(Message::body); ----- - -=== Using codecs - -The https://vertx.io/docs/vertx-core/java/#event_bus[Vert.x Event Bus] uses codecs to _serialize_ and _deserialize_ objects. -Quarkus provides a default codec for local delivery. -So you can exchange objects as follows: - -[source, java] ----- -@GET -@Produces(MediaType.TEXT_PLAIN) -@Path("{name}") -public Uni greeting(@PathParam String name) { - return bus.request("greeting", new MyName(name)) - .onItem().transform(Message::body); -} - -@ConsumeEvent(value = "greeting") -Uni greeting(MyName name) { - return Uni.createFrom().item(() -> "Hello " + name.getName()); -} ----- - -If you want to use a specific codec, you need to set it on both ends explicitly: - -[source, java] ----- -@GET -@Produces(MediaType.TEXT_PLAIN) -@Path("{name}") -public Uni greeting(@PathParam String name) { - return bus.request("greeting", name, - new DeliveryOptions().setCodecName(MyNameCodec.class.getName())) // <1> - .onItem().transform(Message::body); -} - -@ConsumeEvent(value = "greeting", codec = MyNameCodec.class) // <2> -Uni greeting(MyName name) { - return Uni.createFrom().item(() -> "Hello "+name.getName()); -} ----- -<1> Set the name of the codec to use to send the message -<2> Set the codec to use to receive the message - -=== Combining HTTP and the event bus - -Let's revisit a greeting HTTP endpoint and use asynchronous message passing to delegate the call to a separated bean. -It uses the request/reply dispatching mechanism. -Instead of implementing the business logic inside the JAX-RS endpoint, we are sending a message. -Another bean consumes this message, and the response is sent using the _reply_ mechanism. - -In your HTTP endpoint class, inject the event bus and uses the `request` method to send a message to the event bus and expect a response: - -[source,java] ----- -package org.acme.vertx; - -import io.smallrye.mutiny.Uni; -import io.vertx.mutiny.core.eventbus.EventBus; -import io.vertx.mutiny.core.eventbus.Message; -import org.jboss.resteasy.annotations.jaxrs.PathParam; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -@Path("/bus") -public class EventResource { - - @Inject - EventBus bus; - - @GET - @Produces(MediaType.TEXT_PLAIN) - @Path("{name}") - public Uni greeting(@PathParam String name) { - return bus.request("greeting", name) // <1> - .onItem().transform(Message::body); // <2> - } -} ----- -<1> send the `name` to the `greeting` address and request a response -<2> when we get the response, extract the body and send it to the user - -NOTE: the HTTP method returns a `Uni`. -If you are using RESTEasy Reactive, `Uni` support is built-in. -If you are using _classic_ RESTEasy, you need to add the `quarkus resteasy-mutiny` extension to your project. - -We need a consumer listening on the `greeting` address. -This consumer can be in the same class or another bean such as: - -[source, java] ----- -package org.acme.vertx; - -import io.quarkus.vertx.ConsumeEvent; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class GreetingService { - - @ConsumeEvent("greeting") - public String greeting(String name) { - return "Hello " + name; - } - -} ----- - -This bean receives the name and returns the greeting message. - -With this in place, every HTTP request on `/bus/quarkus` sends a message to the event bus, waits for a reply, and when this one arrives, writes the HTTP response: - -[source,text] ----- -Hello Quarkus ----- - -To better understand, let's detail how the HTTP request/response has been handled: - -1. The request is received by the `greeting` method -2. a message containing the _name_ is sent to the event bus -3. Another bean receives this message and computes the response -4. This response is sent back using the reply mechanism -5. Once the reply is received by the sender, the content is written to the HTTP response - - -=== Bi-directional communication with browsers using SockJS - -The SockJS bridge provided by Vert.x allows browser applications and Quarkus applications to communicate using the event bus. -It connects both sides. -So, both sides can send messages received on the other side. -It supports the three delivery mechanisms. - -SockJS negotiates the communication channel between the Quarkus application and the browser. -If WebSockets are supported, it uses them; otherwise, it degrades to SSE, long polling, etc. - -So use SockJS, you need to configure the bridge, especially the addresses that will be used to communicate: - -[source, java] ----- -package org.acme.vertx; - -import io.vertx.core.Vertx; -import io.vertx.ext.bridge.PermittedOptions; -import io.vertx.ext.web.Router; -import io.vertx.ext.web.handler.sockjs.SockJSBridgeOptions; -import io.vertx.ext.web.handler.sockjs.SockJSHandler; - -import javax.enterprise.context.ApplicationScoped; -import javax.enterprise.event.Observes; -import javax.inject.Inject; -import java.util.concurrent.atomic.AtomicInteger; - -@ApplicationScoped -public class SockJsExample { - - @Inject - Vertx vertx; - - public void init(@Observes Router router) { - SockJSHandler sockJSHandler = SockJSHandler.create(vertx); - sockJSHandler.bridge(new SockJSBridgeOptions() - .addOutboundPermitted(new PermittedOptions().setAddress("ticks"))); - router.route("/eventbus/*").handler(sockJSHandler); - } - -} ----- - -This code configures the SockJS bridge to send all the messages targeting the `ticks` address to the connected browsers. -More detailled explanations about the configuration can be found on https://vertx.io/docs/vertx-web/java/#_sockjs_event_bus_bridge[the Vert.x SockJS Bridge documentation]. - -The browser must use the `vertx-eventbus` JavaScript library to consume the message: - -[source, html] ----- - - - - - SockJS example - Quarkus - - - - - - -

    SockJS Examples

    - -

    Last Tick:

    - - - - ----- - -[#native-transport] -== Native Transport - -IMPORTANT: Native transports are not supported in GraalVM produced binaries. - -Vert.x is capable of using https://netty.io/wiki/native-transports.html[Netty's native transports], which offers -performance improvements on specific platforms.To enable them, you must include the appropriate dependency for your -platform. It's usually a good idea to have both to keep your application platform agnostic. Netty is smart enough -to use the correct one, that includes none at all on unsupported platforms: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.netty - netty-transport-native-epoll - linux-x86_64 - - - - io.netty - netty-transport-native-kqueue - osx-x86_64 - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.netty:netty-transport-native-epoll::linux-x86_64") - -implementation("io.netty:netty-transport-native-kqueue::osx-x86_64") ----- - -You will also have to explicitly configure Vert.x to use the native transport. -In `application.properties` add: - -[source,properties] ----- -quarkus.vertx.prefer-native-transport=true ----- - -Or in `application.yml`: - -[source,yml] ----- -quarkus: - vertx: - prefer-native-transport: true ----- - -If all is well quarkus will log: - ----- -[io.qua.ver.cor.run.VertxCoreRecorder] (main) Vertx has Native Transport Enabled: true ----- - -=== Native Linux Transport - -On Linux you can enable the following socket options: - -* SO_REUSEPORT ----- -quarkus.http.so-reuse-port=true ----- -* TCP_QUICKACK ----- -quarkus.http.tcp-quick-ack=true ----- -* TCP_CORK ----- -quarkus.http.tcp-cork=true ----- -* TCP_FASTOPEN ----- -quarkus.http.tcp-fast-open=true ----- - -=== Native MacOS Transport - -On MacOS Sierra and above you can enable the following socket options: - -* SO_REUSEPORT ----- -quarkus.http.so-reuse-port=true ----- - - -== Listening to a Unix Domain Socket - -Listening on a Unix domain socket allows us to dispense with the overhead of TCP -if the connection to the quarkus service is established from the same host. This can happen -if access to the service goes through a proxy which is often the case -if you're setting up a service mesh with a proxy like Envoy. - -IMPORTANT: This will only work on platforms that support <>. - -Enable the appropriate <> and set the following -environment property: - ----- -quarkus.http.domain-socket=/var/run/io.quarkus.app.socket -quarkus.http.domain-socket-enabled=true ----- - -By itself this will not disable the tcp socket which by default will open on -`0.0.0.0:8080`. It can be explicitly disabled: - ----- -quarkus.http.host-enabled=false ----- - -These properties can be set through Java's `-D` command line parameter or -on `application.properties`. - -== Read only deployment environments - -In environments with read only file systems you may receive errors of the form: - -[source] ----- -java.lang.IllegalStateException: Failed to create cache dir ----- - -Assuming `/tmp/` is writable this can be fixed by setting the `vertx.cacheDirBase` property to point to a directory in `/tmp/` for instance in OpenShift by creating an environment variable `JAVA_OPTS` with the value `-Dvertx.cacheDirBase=/tmp/vertx`. \ No newline at end of file diff --git a/_versions/2.7/guides/vertx.adoc b/_versions/2.7/guides/vertx.adoc deleted file mode 100644 index 17c36a9d00d..00000000000 --- a/_versions/2.7/guides/vertx.adoc +++ /dev/null @@ -1,402 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using Eclipse Vert.x API from a Quarkus Application - -include::./attributes.adoc[] - -https://vertx.io[Vert.x] is a toolkit for building reactive applications. -As described in the xref:quarkus-reactive-architecture.adoc[Quarkus Reactive Architecture], Quarkus uses Vert.x underneath. - -image::quarkus-reactive-core.png[Quarkus Reactive Core,width=50%, align=center] - -Quarkus applications can access and use the Vert.x APIs. - -This guide presents how you can build a Quarkus application using: - -* the managed instance of Vert.x -* the Vert.x event bus -* the Vert.x Web Client - -It's an introductory guide. -The xref:vertx-reference.adoc[Vert.x reference guide] covers more advanced features such as verticles, and native transports. - -== Architecture - -We are going to build a simple application exposing four HTTP endpoints: - -1. `/vertx/lorem` returns the content from a small file -2. `/vertx/book` returns the content from a large file (a book) -3. `/vertx/hello` uses the Vert.x event bus to produce the response -4. `/vertx/web` uses the Vert.x Web Client to retrieve data from Wikipedia - -image::quarkus-vertx-guide-architecture.png[Architecture of the Vert.x guide,width=50%, align=center] - -== Solution - -We recommend that you follow the instructions in the following sections and create the application step by step. -However, you can go right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `vertx-quickstart` {quickstarts-tree-url}/vertx-quickstart[directory]. - -[TIP] -.Mutiny -==== -This guide uses the Mutiny API. -If you are not familiar with Mutiny, check xref:mutiny-primer.adoc[Mutiny - an intuitive, reactive programming library]. -==== - - -== Bootstrapping the application - -Click on https://code.quarkus.io/?a=quarkus-getting-started-vertx&nc=true&e=resteasy-reactive-jackson&e=vertx[this link] to configure your application. -It selected a few extensions: - -* `resteasy-reactive-jackson`, which also brings `resteasy-reactive`. We are going to use it to expose our HTTP endpoints. -* `vertx`, which provides access to the underlying managed Vert.x - -Click on the `Generate your application` button, download the zip file and unzip it. -Then, open the project in your favorite IDE. - -If you open the generated build file, you can see the selected extensions: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-resteasy-reactive-jackson - - - io.quarkus - quarkus-vertx - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-resteasy-reactive-jackson") -implementation("io.quarkus:quarkus-vertx") ----- - -While you are in your build file, add the following dependency: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.smallrye.reactive - smallrye-mutiny-vertx-web-client - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.smallrye.reactive:smallrye-mutiny-vertx-web-client") ----- - -This dependency provides the Vert.x Web Client, which we will be using to implement the `/web` endpoint. - - -== Accessing the managed Vert.x instance - -Create the `src/main/java/org/acme/VertxResource.java` file. -It will contain our HTTP endpoints. - -In this file, copy the following code: - -[source, java] ----- -package org.acme; - -import io.vertx.mutiny.core.Vertx; - -import javax.inject.Inject; -import javax.ws.rs.Path; - -@Path("/vertx") // <1> -public class VertxResource { - - private final Vertx vertx; - - @Inject // <2> - public VertxResource(Vertx vertx) { // <3> - this.vertx = vertx; // <4> - } -} ----- -<1> Declare the root HTTP path. -<2> We use constructor injection to receive the managed Vert.x instance. Field injection works too. -<3> Receives the Vert.x instance as a constructor parameter -<4> Store the managed Vert.x instance into a field. - -With this, we can start implementing the endpoints. - -== Using Vert.x Core API - -The injected Vert.x instance provides a set of APIs you can use. -The one we are going to use in this section is the Vert.x File System. -It provides a non-blocking API to access files. - - -In the `src/main/resource` directory, create a `lorem.txt` file with the following content: - -[source, text] ----- -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. ----- - -Then, in the `VertxResource` file add the following method: - -[source, java] ----- -@GET // <1> -@Path("/lorem") -public Uni readShortFile() { // <2> - return vertx.fileSystem().readFile("lorem.txt") // <3> - .onItem().transform(content -> content.toString(StandardCharsets.UTF_8)); // <4> -} ----- -<1> This endpoint handles HTTP `GET` request on path `/lorem` (so the full path will be `vertx/lorem`) -<2> As the Vert.x API is asynchronous, our method returns a `Uni`. The content is written into the HTTP response when the asynchronous operation represented by the Uni completes. -<3> We use the Vert.x file system API to read the created file -<4> Once the file is read, the content is stored in an in-memory buffer. We transform this buffer into a String. - -In a terminal, navigate to the root of the project and run: - -include::includes/devtools/dev.adoc[] - -In another terminal, run: - -[source, bash] ----- -> curl http://localhost:8080/vertx/lorem ----- - -You should see the content of the file printed in the console. - -IMPORTANT: Quarkus provides other ways to serve static files. This is an example made for the guide. - -== Using Vert.x stream capability - -Reading a file and storing the content in memory works for small files, but not big ones. -In this section, we will see how you can use Vert.x streaming capability. - -First, download https://www.gutenberg.org/files/2600/2600-0.txt[War and Peace] and store it in `src/main/resources/book.txt`. -It's a 3.2 Mb file, which, while not being huge, illustrates the purpose of streams. -This time, we will not accumulate the file's content in memory and write it in one batch, but read it chunk by chunk and write these chunks into the HTTP response one by one. - -So, you should have the following files in your project: - - -[source, text] ----- -. -├── mvnw -├── mvnw.cmd -├── pom.xml -├── README.md -├── src -│ └── main -│ ├── docker -│ │ ├── ... -│ ├── java -│ │ └── org -│ │ └── acme -│ │ └── VertxResource.java -│ └── resources -│ ├── application.properties -│ ├── book.txt -│ └── lorem.txt ----- - -Add the following method to the `VertxResource` class: - -[source, java] ----- -@GET -@Path("/book") -public Multi readLargeFile() { // <1> - return vertx.fileSystem().open("book.txt", // <2> - new OpenOptions().setRead(true) - ) - .onItem().transformToMulti(file -> file.toMulti()) // <3> - .onItem().transform(content -> content.toString(StandardCharsets.UTF_8)) // <4> - + "\n------------\n"); // <5> -} ----- -<1> This time, we return a Multi as we want to stream the chunks -<2> We open the file using the `open` method. It returns a `Uni` -<3> When the file is opened, we retrieve a `Multi` which will contain the chunks. -<4> For each chunk, we produce a String -<5> To visually see the chunks in the response, we append a separator - -Then, in a terminal, run: - -[source, bash] ----- -> curl http://localhost:8080/vertx/book ----- - -It should retrieve the book content. -In the output you should see the separator like: - -[source, text] ----- -... -The little princess had also left the tea table and followed Hélène. - -“Wait a moment, I’ll get my work.... Now then, what ------------- - are you -thinking of?” she went on, turning to Prince Hippolyte. “Fetch me my -workbag.” -... ----- - -== Using the event bus - -One of the core features of Vert.x is the https://vertx.io/docs/vertx-core/java/#event_bus[event bus]. -It provides a message-based backbone to your application. -So, you can have components interacting using asynchronous message passing, and so decouple your components. -You can send a message to a single consumer, or dispatch to multiple consumers, or implement a request-reply interaction, where you send a message (request) and expect a response. -This is what we are going to use in this section. -Our `VertxResource` will send a message containing a name to the `greetings` address. -Another component will receive the message and produce the "hello $name" response. -The `VertxResource` will receive the response and return it as the HTTP response. - -So, first, let's extend our `VertxResource` class with the following code: - - -[source, java] ----- -@Inject -EventBus bus; // <1> - -@GET -@Path("/hello") -public Uni hello(@QueryParam("name") String name) { // <2> - return bus.request("greetings", name) // <3> - .onItem().transform(response -> response.body()); // <4> -} ----- -<1> Inject the event bus. Alternatively you can use `vertx.eventBus()`. -<2> We receive a _name_ as a query parameter -<3> We use the `request` method to initiate the request-reply interaction. We send the name to the "greetings" address. -<4> When the response is received, we extract the body and return it as the HTTP response - -Now, we need the other side: the component receiving the name and replying. -Create the `src/main/java/org/acme/GreetingService.java` file with the following content: - -[source, java] ----- -package org.acme; - -import io.quarkus.vertx.ConsumeEvent; - -import javax.enterprise.context.ApplicationScoped; - -@ApplicationScoped // <1> -public class GreetingService { - - @ConsumeEvent("greetings") // <2> - public String hello(String name) { // <3> - return "Hello " + name; // <4> - } -} ----- -<1> Declaring a CDI Bean in the Application scope. Quarkus will create a single instance of this class. -<2> Use the `@ConsumeEvent` annotation to declare a consumer. It is possible to use the Vert.x API https://vertx.io/docs/vertx-core/java/#_acknowledging_messages_sending_replies[directly] too. -<3> Receive the message payload as a method parameter. The returned object will be the reply. -<4> Return the response. This response is sent back to the `VertxResource` class - -Let's try this. -In a terminal, run: - - -[source, bash] ----- -> curl "http://localhost:8080/vertx/hello?name=bob" ----- - -You should get the expected `Hello bob` message back. - -== Using Vert.x Clients - -So far, we have used the Vert.x Core API. -Vert.x offers much more. -It provides a vast ecosystem. -In this section, we will see how you can use the Vert.x Web Client, a reactive HTTP client. - -Note that some Quarkus extensions are wrapping Vert.x clients and manage them for you. -That's the case for the reactive data sources, Redis, mail... -That's not the case with the Web Client. - -Remember, at the beginning of the guide, we added the `smallrye-mutiny-vertx-web-client` dependency to our `pom.xml` file. -It's now time to use it. - -First, we need to create an instance of `WebClient`. -Extend the `VertxResource` class with the `client` field and the creation of the web client in the constructor: - -[source, java] ----- -private final Vertx vertx; -private final WebClient client; // <1> - -@Inject -public VertxResource(Vertx vertx) { - this.vertx = vertx; - this.client = WebClient.create(vertx); // <2> -} ----- -<1> Store the `WebClient`, so we will be able to use it in our HTTP endpoint -<2> Create the `WebClient`. Be sure to use the `io.vertx.mutiny.ext.web.client.WebClient` class - -Let's now implement a new HTTP endpoint that queries the Wikipedia API to retrieve the pages about Quarkus in the different languages. -Add the following method to the `VertxResource` class: - -[source, java] ----- -private static final String URL = "https://en.wikipedia.org/w/api.php?action=parse&page=Quarkus&format=json&prop=langlinks"; - -@GET -@Path("/web") -public Uni retrieveDataFromWikipedia() { // <1> - return client.getAbs(URL).send() // <2> - .onItem().transform(HttpResponse::bodyAsJsonObject) // <3> - .onItem().transform(json -> json.getJsonObject("parse") // <4> - .getJsonArray("langlinks")); -} ----- -<1> This endpoint returns a JSON Array. Vert.x provides a convenient way to manipulate JSON Object and Array. More details about these in xref:vertx-reference.adoc#using-vert-x-json[the reference guide]. -<2> Send a `GET` request to the Wikipedia API -<3> Once the response is received, extract it as a JSON Object -<4> Extract the `langlinks` array from the response. - -Then, invoke the endpoint using: - -[source, bash] ----- -> curl http://localhost:8080/vertx/web -[{"lang":"de","url":"https://de.wikipedia.org/wiki/Quarkus","langname":"German","autonym":"Deutsch","*":"Quarkus"},{"lang":"fr","url":"https://fr.wikipedia.org/wiki/Quarkus","langname":"French","autonym":"français","*":"Quarkus"}] ----- - -The response indicates that, in addition to the English page, there are a German and a French page about Quarkus on wikipedia. - -== Going further - -This guide introduced how you can use Vert.x APIs from a Quarkus application. -It's just a brief overview. -If you want to know more, check the xref:vertx-reference.adoc[reference guide about Vert.x in Quarkus]. - -As we have seen, the event bus is the connecting tissue of Vert.x applications. -Quarkus integrates it so different beans can interact with asynchronous messages. -This part is covered in the xref:reactive-event-bus.adoc[event bus documentation]. - -Learn how to implement highly performant, low-overhead database applications on Quarkus with the xref:reactive-sql-clients.adoc[Reactive SQL Clients]. diff --git a/_versions/2.7/guides/websockets.adoc b/_versions/2.7/guides/websockets.adoc deleted file mode 100644 index dcdc31adc77..00000000000 --- a/_versions/2.7/guides/websockets.adoc +++ /dev/null @@ -1,242 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Using WebSockets - -include::./attributes.adoc[] - -This guide explains how your Quarkus application can utilize web sockets to create interactive web applications. -Because it's the _canonical_ web socket application, we are going to create a simple chat application. - -== Prerequisites - -include::includes/devtools/prerequisites.adoc[] - -== Architecture - -In this guide, we create a straightforward chat application using web sockets to receive and send messages to the other connected users. - -image:websocket-guide-architecture.png[alt=Architecture] - -== Solution - -We recommend that you follow the instructions in the next sections and create the application step by step. -However, you can skip right to the completed example. - -Clone the Git repository: `git clone {quickstarts-clone-url}`, or download an {quickstarts-archive-url}[archive]. - -The solution is located in the `websockets-quickstart` {quickstarts-tree-url}/websockets-quickstart[directory]. - -== Creating the Maven project - -First, we need a new project. Create a new project with the following command: - -:create-app-artifact-id: websockets-quickstart -:create-app-extensions: websockets -include::includes/devtools/create-app.adoc[] - -This command generates the project (without any classes) and imports the `websockets` extension. - -If you already have your Quarkus project configured, you can add the `websockets` extension -to your project by running the following command in your project base directory: - -:add-extension-extensions: websockets -include::includes/devtools/extension-add.adoc[] - -This will add the following to your build file: - -[source,xml,role="primary asciidoc-tabs-target-sync-cli asciidoc-tabs-target-sync-maven"] -.pom.xml ----- - - io.quarkus - quarkus-websockets - ----- - -[source,gradle,role="secondary asciidoc-tabs-target-sync-gradle"] -.build.gradle ----- -implementation("io.quarkus:quarkus-websockets") ----- - -NOTE: If you only want to use the WebSocket client you should include `quarkus-websockets-client` instead. - -== Handling web sockets - -Our application contains a single class that handles the web sockets. -Create the `org.acme.websockets.ChatSocket` class in the `src/main/java` directory. -Copy the following content into the created file: - -[source,java] ----- -package org.acme.websockets; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import javax.enterprise.context.ApplicationScoped; -import javax.websocket.OnClose; -import javax.websocket.OnError; -import javax.websocket.OnMessage; -import javax.websocket.OnOpen; -import javax.websocket.server.PathParam; -import javax.websocket.server.ServerEndpoint; -import javax.websocket.Session; - -@ServerEndpoint("/chat/{username}") // <1> -@ApplicationScoped -public class ChatSocket { - - Map sessions = new ConcurrentHashMap<>(); // <2> - - @OnOpen - public void onOpen(Session session, @PathParam("username") String username) { - sessions.put(username, session); - } - - @OnClose - public void onClose(Session session, @PathParam("username") String username) { - sessions.remove(username); - broadcast("User " + username + " left"); - } - - @OnError - public void onError(Session session, @PathParam("username") String username, Throwable throwable) { - sessions.remove(username); - broadcast("User " + username + " left on error: " + throwable); - } - - @OnMessage - public void onMessage(String message, @PathParam("username") String username) { - if (message.equalsIgnoreCase("_ready_")) { - broadcast("User " + username + " joined"); - } else { - broadcast(">> " + username + ": " + message); - } - } - - private void broadcast(String message) { - sessions.values().forEach(s -> { - s.getAsyncRemote().sendObject(message, result -> { - if (result.getException() != null) { - System.out.println("Unable to send message: " + result.getException()); - } - }); - }); - } - -} ----- -<1> Configures the web socket URL -<2> Stores the currently opened web sockets - -== A slick web frontend - -All chat applications need a _nice_ UI, well, this one may not be that nice, but does the work. -Quarkus automatically serves static resources contained in the `META-INF/resources` directory. -Create the `src/main/resources/META-INF/resources` directory and copy this {quickstarts-blob-url}/websockets-quickstart/src/main/resources/META-INF/resources/index.html[index.html] file in it. - -== Run the application - -Now, let's see our application in action. Run it with: - -include::includes/devtools/dev.adoc[] - -Then open your 2 browser windows to http://localhost:8080/: - -1. Enter a name in the top text area (use 2 different names). -2. Click on connect -3. Send and receive messages - -image:websocket-guide-screenshot.png[alt=Application] - -As usual, the application can be packaged using: - -include::includes/devtools/build.adoc[] - -And executed using `java -jar target/quarkus-app/quarkus-run.jar`. - -You can also build the native executable using: - -include::includes/devtools/build-native.adoc[] - -You can also test your web socket applications using the approach detailed {quickstarts-blob-url}/websockets-quickstart/src/test/java/org/acme/websockets/ChatTest.java[here]. - -== WebSocket Clients - -Quarkus also contains a WebSocket client. You can call `ContainerProvider.getWebSocketContainer().connectToServer` to create a websocket connection. By default the `quarkus-websockets` artifact includes both client and server support however if you only want the client you can include `quarkus-websockets-client` instead. - -When you connect to the server you can either pass in the Class of the annotated client endpoint you want to use, or an instance of `javax.websocket.Endpoint`. If you -are using the annotated endpoint then you can use the exact same annotations as you can on the server, except it must be annotated with `@ClientEndpoint` instead of -`@ServerEndpoint`. - -The example below shows the client being used to test the chat endpoint above. - -[source,java] ----- -package org.acme.websockets; - -import java.net.URI; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.TimeUnit; - -import javax.websocket.ClientEndpoint; -import javax.websocket.ContainerProvider; -import javax.websocket.OnMessage; -import javax.websocket.OnOpen; -import javax.websocket.Session; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import io.quarkus.test.common.http.TestHTTPResource; -import io.quarkus.test.junit.QuarkusTest; - -@QuarkusTest -public class ChatTest { - - private static final LinkedBlockingDeque MESSAGES = new LinkedBlockingDeque<>(); - - @TestHTTPResource("/chat/stu") - URI uri; - - @Test - public void testWebsocketChat() throws Exception { - try (Session session = ContainerProvider.getWebSocketContainer().connectToServer(Client.class, uri)) { - Assertions.assertEquals("CONNECT", MESSAGES.poll(10, TimeUnit.SECONDS)); - Assertions.assertEquals("User stu joined", MESSAGES.poll(10, TimeUnit.SECONDS)); - session.getAsyncRemote().sendText("hello world"); - Assertions.assertEquals(">> stu: hello world", MESSAGES.poll(10, TimeUnit.SECONDS)); - } - } - - @ClientEndpoint - public static class Client { - - @OnOpen - public void open(Session session) { - MESSAGES.add("CONNECT"); - // Send a message to indicate that we are ready, - // as the message handler may not be registered immediately after this callback. - session.getAsyncRemote().sendText("_ready_"); - } - - @OnMessage - void message(String msg) { - MESSAGES.add(msg); - } - - } - -} ----- - - -== More WebSocket Information - -The Quarkus WebSocket implementation is an implementation of link:https://eclipse-ee4j.github.io/websocket-api/[Jakarta Websockets]. - - diff --git a/_versions/2.7/guides/writing-extensions.adoc b/_versions/2.7/guides/writing-extensions.adoc deleted file mode 100644 index 20eafc6d2d5..00000000000 --- a/_versions/2.7/guides/writing-extensions.adoc +++ /dev/null @@ -1,3142 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Writing Your Own Extension - -:numbered: -:sectnums: -:sectnumlevels: 4 -:toc: - -include::./attributes.adoc[] - -Quarkus extensions add a new developer focused behavior to the core offering, and consist of two distinct parts, buildtime augmentation and runtime container. The augmentation part is responsible for all metadata processing, such as reading annotations, XML descriptors etc. The output of this augmentation phase is recorded bytecode which is responsible for directly instantiating the relevant runtime services. - -This means that metadata is only processed once at build time, which both saves on startup time, and also on memory -usage as the classes etc that are used for processing are not loaded (or even present) in the runtime JVM. - -NOTE: This is an in-depth documentation, see the xref:building-my-first-extension.adoc[building my first extension] if you need an introduction. - -== Extension philosophy - -This section is a work in progress and gathers the philosophy under which extensions should be designed and written. - -=== Why an extension framework - -Quarkus’s mission is to transform your entire application including the libraries it uses, into an artifact that uses significantly less resources than traditional approaches. These can then be used to build native applications using GraalVM. -To do this you need to analyze and understand the full "closed world" of the application. -Without the full and complete context, the best that can be achieved is partial and limited generic support. -By using the Quarkus extension approach, we can bring Java applications in line with memory footprint constrained environments like Kubernetes or cloud platforms. - -The Quarkus extension framework results in significantly improved resource utilization even when GraalVM is not used (e.g. in HotSpot). -Let’s list the actions an extension performs: - -* Gather build time metadata and generate code -** This part has nothing to do with GraalVM, it is how Quarkus starts frameworks “at build time” -** The extension framework facilitates reading metadata, scanning classes as well as generating classes as needed -** A small part of the extension work is executed at runtime via the generated classes, while the bulk of the work is done at build time (called deployment time) -* Enforce opinionated and sensible defaults based on the close world view of the application (e.g. an application with no `@Entity` does not need to start Hibernate ORM) -* An extension hosts Substrate VM code substitution so that libraries can run on GraalVM -** Most changes are pushed upstream to help the underlying library run on GraalVM -** Not all changes can be pushed upstream, extensions host Substrate VM substitutions - which is a form of code patching - so that libraries can run -* Host Substrate VM code substitution to help dead code elimination based on the application needs -** This is application dependant and cannot really be shared in the library itself -** For example, Quarkus optimizes the Hibernate code because it knows it only needs a specific connection pool and cache provider -* Send metadata to GraalVM for example classes in need of reflection -** This information is not static per library (e.g. Hibernate) but the framework has the semantic knowledge and knows which classes need to have reflection (for example @Entity classes) - -=== Favor build time work over runtime work - -As much as possible favor doing work at build time (deployment part of the extension) as opposed to let the framework do work at startup time (runtime). -The more is done there, the smaller Quarkus applications using that extension will be and the faster they will load. - -=== How to expose configuration - -Quarkus simplifies the most common usages. -This means that its defaults might be different than the library it integrates. - -To make the simple experience easiest, unify the configuration in `application.properties` via SmallRye Config. -Avoid library specific configuration files, or at least make them optional: e.g. `persistence.xml` for Hibernate ORM is optional. - -Extensions should see the configuration holistically as a Quarkus application instead of focusing on the library experience. -For example `quarkus.database.url` and friends are shared between extensions as defining a database access is a shared task (instead of a `hibernate.` property for example). -The most useful configuration options should be exposed as `quarkus.[extension].` instead of the natural namespace of the library. -Less common properties can live in the library namespace. - -To fully enable the close world assumptions that Quarkus can optimize best, it is better to consider configuration options as build time settled vs overridable at runtime. -Of course properties like host, port, password should be overridable at runtime. -But many properties like enable caching or setting the JDBC driver can safely require a rebuild of the application. - -==== Static Init Config - -If the extension provides additional Config Sources and if these are required during Static Init, these must be registered with `StaticInitConfigSourceProviderBuildItem`. Configuration in Static Init does not scan for additional sources to avoid double initialization at application startup time. - -//// -=== API - -TODO: Describe where to put APIs -I wonder if that content should be in the technical aspects - -=== Substitution and recorders - -TODO: Describe where Substitutions and recorders should live -//// - -=== Expose your components via CDI - -Since CDI is the central programming model when it comes to component composition, frameworks and extensions should expose their components as beans that are easily consumable by user applications. -For example, Hibernate ORM exposes `EntityManagerFactory` and `EntityManager` beans, the connection pool exposes `DataSource` beans etc. -Extensions must register these bean definitions at build time. - -==== Beans backed by classes - -An extension can produce an <> to instruct the container to read a bean definition from a class as if it was part of the original application: - -.Bean Class Registered by `AdditionalBeanBuildItem` -[source%nowrap,java] ----- -@Singleton <1> -public class Echo { - - public String echo(String val) { - return val; - } -} ----- -<1> If a bean registered by an `AdditionalBeanBuildItem` does not specify a scope then `@Dependent` is assumed. - -All other beans can inject such a bean: - -.Bean Injecting a Bean Produced by an `AdditionalBeanBuildItem` -[source%nowrap,java] ----- -@Path("/hello") -public class ExampleResource { - - @Inject - Echo echo; - - @GET - @Produces(MediaType.TEXT_PLAIN) - public String hello(String foo) { - return echo.echo(foo); - } -} ----- - -And vice versa - the extension bean can inject application beans and beans provided by other extensions: - -.Extension Bean Injection Example -[source%nowrap,java] ----- -@Singleton -public class Echo { - - @Inject - DataSource dataSource; <1> - - @Inject - Instance> listsOfStrings; <2> - - //... -} ----- -<1> Inject a bean provided by other extension. -<2> Inject all beans matching the type `List`. - -[[bean_init]] -==== Bean initialization - -Some components may require additional initialization based on information collected during augmentation. -The most straightforward solution is to obtain a bean instance and call a method directly from a build step. -However, it is _illegal_ to obtain a bean instance during the augmentation phase. -The reason is that the CDI container is not started yet. -It's started during the <>. - -TIP: `BUILD_AND_RUN_TIME_FIXED` and `RUN_TIME` config roots can be injected in any bean. `RUN_TIME` config roots should only be injected after the bootstrap though. - -It is possible to invoke a bean method from a <> though. -If you need to access a bean in a `@Record(STATIC_INIT)` build step then is must either depend on the `BeanContainerBuildItem` or wrap the logic in a `BeanContainerListenerBuildItem`. -The reason is simple - we need to make sure the CDI container is fully initialized and started. -However, it is safe to expect that the CDI container is fully initialized and running in a `@Record(RUNTIME_INIT)` build step. -You can obtain a reference to the container via `CDI.current()` or Quarkus-specific `Arc.container()`. - -IMPORTANT: Don't forget to make sure the bean state guarantees the visibility, e.g. via the `volatile` keyword. - -NOTE: There is one significant drawback of this "late initialization" approach. -An _uninitialized_ bean may be accessed by other extensions or application components that are instantiated during bootstrap. -We'll cover a more robust solution in the <>. - -==== Default beans - -A very useful pattern of creating such beans but also giving application code the ability to easily override some of the beans with custom implementations, is to use -the `@DefaultBean` that Quarkus provides. -This is best explained with an example. - -Let us assume that the Quarkus extension needs to provide a `Tracer` bean which application code is meant to inject into its own beans. - -[source%nowrap,java] ----- -@Dependent -public class TracerConfiguration { - - @Produces - public Tracer tracer(Reporter reporter, Configuration configuration) { - return new Tracer(reporter, configuration); - } - - @Produces - @DefaultBean - public Configuration configuration() { - // create a Configuration - } - - @Produces - @DefaultBean - public Reporter reporter(){ - // create a Reporter - } -} ----- - -If for example application code wants to use `Tracer`, but also needs to use a custom `Reporter` bean, such a requirement could easily be done using something like: - - -[source%nowrap,java] ----- -@Dependent -public class CustomTracerConfiguration { - - @Produces - public Reporter reporter(){ - // create a custom Reporter - } -} ----- - -==== How to Override a Bean Defined by a Library/Quarkus Extension that doesn't use @DefaultBean - -Although `@DefaultBean` is the recommended approach, it is also possible for application code to override beans provided by an extension by marking beans as a CDI `@Alternative` and including `@Priority` annotation. -Let's show a simple example. -Suppose we work on an imaginary "quarkus-parser" extension and we have a default bean implementation: - -[source%nowrap,java] ----- -@Dependent -class Parser { - - String[] parse(String expression) { - return expression.split("::"); - } -} ----- - -And our extension also consumes this parser: - -[source%nowrap,java] ----- -@ApplicationScoped -class ParserService { - - @Inject - Parser parser; - - //... -} ----- - -Now, if a user or even some other extension needs to override the default implementation of the `Parser` the simplest solution is to use CDI `@Alternative` + `@Priority`: - -[source%nowrap,java] ----- -@Alternative <1> -@Priority(1) <2> -@Singleton -class MyParser extends Parser { - - String[] parse(String expression) { - // my super impl... - } -} ----- -<1> `MyParser` is an alternative bean. -<2> Enables the alternative. The priority could be any number to override the default bean but if there are multiple alternatives the highest priority wins. - -NOTE: CDI alternatives are only considered during injection and type-safe resolution. For example the default implementation would still receive observer notifications. - -[[synthetic_beans]] -==== Synthetic beans - -Sometimes it is very useful to be able to register a synthetic bean. -Bean attributes of a synthetic bean are not derived from a java class, method or field. -Instead, the attributes are specified by an extension. - -NOTE: Since the CDI container does not control the instantiation of a synthetic bean the dependency injection and other services (such as interceptors) are not supported. -In other words, it's up to the extension to provide all required services to a synthetic bean instance. - -There are several ways to register a <> in Quarkus. -In this chapter, we will cover a use case that can be used to initialize extension beans in a safe manner (compared to <>). - -The `SyntheticBeanBuildItem` can be used to register a synthetic bean: - -* whose instance can be easily produced through a <>, -* to provide a "context" bean that holds all the information collected during augmentation so that the real components do not need any "late initialization" because they can inject the context bean directly. - -.Instance Produced Through Recorder -[source%nowrap,java] ----- -@BuildStep -@Record(STATIC_INIT) -SyntheticBeanBuildItem syntheticBean(TestRecorder recorder) { - return SyntheticBeanBuildItem.configure(Foo.class).scope(Singleton.class) - .runtimeValue(recorder.createFoo("parameters are recorder in the bytecode")) <1> - .done(); -} ----- -<1> The string value is recorded in the bytecode and used to initialize the instance of `Foo`. - -."Context" Holder -[source%nowrap,java] ----- -@BuildStep -@Record(STATIC_INIT) -SyntheticBeanBuildItem syntheticBean(TestRecorder recorder) { - return SyntheticBeanBuildItem.configure(TestContext.class).scope(Singleton.class) - .runtimeValue(recorder.createContext("parameters are recorder in the bytecode")) <1> - .done(); -} ----- -<1> The "real" components can inject the `TestContext` directly. - -=== Some types of extensions - -There exist multiple stereotypes of extension, let's list a few. - -Bare library running:: -This is the less sophisticated extension. -It consists of a set of patches to make sure a library runs on GraalVM. -If possible, contribute these patches upstream, not in extensions. -Second best is to write Substrate VM substitutions, which are patches applied during native image compilation. - -Get a framework running:: -A framework at runtime typically reads configuration, scan the classpath and classes for metadata (annotations, getters etc), build a metamodel on top of which it runs, find options via the service loader pattern, prepare invocation calls (reflection), proxy interfaces, etc. + -These operations should be done at build time and the metamodel be passed to the recorder DSL that will generate classes that will be executed at runtime and boot the framework. - -Get a CDI portable extension running:: -The CDI portable extension model is very flexible. -Too flexible to benefit from the build time boot promoted by Quarkus. -Most extension we have seen do not make use of these extreme flexibility capabilities. -The way to port a CDI extension to Quarkus is to rewrite it as a Quarkus extension which will define the various beans at build time (deployment time in extension parlance). - -== Technical aspect - -[[bootstrap-three-phases]] -=== Three Phases of Bootstrap and Quarkus Philosophy - -There are three distinct bootstrap phases of a Quarkus app: - -Augmentation:: - This is the first phase, and is done by the <>. These processors have access to Jandex annotation - information and can parse any descriptors and read annotations, but should not attempt to load any application classes. The output of these - build steps is some recorded bytecode, using an extension of the ObjectWeb ASM project called Gizmo(ext/gizmo), that is used to actually bootstrap the application at runtime. Depending on the `io.quarkus.deployment.annotations.ExecutionTime` value of the `@io.quarkus.deployment.annotations.Record` annotation associated with the build step, - the step may be run in a different JVM based on the following two modes. - -Static Init:: - If bytecode is recorded with `@Record(STATIC_INIT)` then it will be executed from a static init method on the main - class. For a native executable build, this code is executed in a normal JVM as part of the native build - process, and any retained objects that are produced in this stage will be directly serialized into the native executable via an image mapped file. - This means that if a framework can boot in this phase then it will have its booted state directly written to the - image, and so the boot code does not need to be executed when the image is started. -+ -There are some restrictions on what can be done in this stage as the Substrate VM disallows some objects in the native executable. For example you should not attempt to listen on a port or start threads in this phase. In addition, it is disallowed to read run time configuration during static initialization. -+ -In non-native pure JVM mode, there is no real difference between Static and Runtime Init, except that Static Init is always executed first. This mode benefits from the same build phase augmentation as native mode as the descriptor parsing and annotation scanning are done -at build time and any associated class/framework dependencies can be removed from the build output jar. In servers like -WildFly, deployment related classes such as XML parsers hang around for the life of the application, using up valuable -memory. Quarkus aims to eliminate this, so that the only classes loaded at runtime are actually used at runtime. -+ -As an example, the only reason that a Quarkus application should load an XML parser is if the user is using XML in their -application. Any XML parsing of configuration should be done in the Augmentation phase. - -Runtime Init:: - If bytecode is recorded with `@Record(RUNTIME_INIT)` then it is executed from the application's main method. This code - will be run on native executable boot. In general as little code as possible should be executed in this phase, and should - be restricted to code that needs to open ports etc. - -Pushing as much as possible into the `@Record(STATIC_INIT)` phase allows for two different optimizations: - -1. In both native executable and pure JVM mode this allows the app to start as fast as possible since processing was done during build time. This also minimizes the classes/native code needed in the application to pure runtime related behaviors. - -2. Another benefit with native executable mode is that Substrate can more easily eliminate features that are not used. If features are directly initialized via bytecode, Substrate can detect that a method is never called and eliminate -that method. If config is read at runtime, Substrate cannot reason about the contents of the config and so needs to keep all features in case they are required. - - -=== Project setup - -Your extension project should be setup as a multi-module project with two submodules: - -1. A deployment time submodule that handles the build time processing and bytecode recording. - -2. A runtime submodule that contains the runtime behavior that will provide the extension behavior in the native executable or runtime JVM. - -Your runtime artifact should depend on `io.quarkus:quarkus-core`, and possibly the runtime artifacts of other Quarkus -modules if you want to use functionality provided by them. -Your deployment time module should depend on `io.quarkus:quarkus-core-deployment`, your runtime artifact, -and possibly the deployment artifacts of other Quarkus modules if you want to use functionality provided by them. - -[WARNING] -==== -Under no circumstances can the runtime module depend on a deployment artifact. This would result -in pulling all the deployment time code into runtime scope, which defeats the purpose of having the split. -==== - -==== Using Maven - -You will need to include the `io.quarkus:quarkus-bootstrap-maven-plugin` to generate the Quarkus extension descriptor included into the runtime artifact, if you are using the Quarkus parent pom it will automatically inherit the correct configuration. -Furthermore, you'll need to configure the `maven-compiler-plugin` to detect the `quarkus-extension-processor` annotation processor. - -TIP: You may want to use the `create-extension` mojo of `io.quarkus.platform:quarkus-maven-plugin` to create these Maven modules - see the next section. - -NOTE: By convention the deployment time artifact has the `-deployment` suffix, and the runtime artifact -has no suffix (and is what the end user adds to their project). - -[source%nowrap,xml] ----- - - - - io.quarkus - quarkus-core - - - - - - - io.quarkus - quarkus-bootstrap-maven-plugin - - - - - extension-descriptor - - - ${project.groupId}:${project.artifactId}-deployment:${project.version} - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - - io.quarkus - quarkus-extension-processor - - - - - - ----- - -NOTE: The above `maven-compiler-plugin` configuration requires version 3.5+. - -You will also need to configure the `maven-compiler-plugin` of the deployment module to detect the `quarkus-extension-processor` annotation processor. - -[source%nowrap,xml] ----- - - - io.quarkus - quarkus-core-deployment - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - - io.quarkus - quarkus-extension-processor - - - - - - ----- - -===== Create new Quarkus Core extension modules using Maven - -Quarkus provides `create-extension` Maven Mojo to initialize your extension project. - -It will try to auto-detect its options: - -* from `quarkus` (Quarkus Core) or `quarkus/extensions` directory, it will use the 'Quarkus Core' extension layout and defaults. -* with `-DgroupId=io.quarkiverse.[extensionId]`, it will use the 'Quarkiverse' extension layout and defaults. -* in other cases it will use the 'Standalone' extension layout and defaults. -* we may introduce other layout types in the future. - -TIP: You may not specify any parameter to use the interactive mode: `mvn io.quarkus.platform:quarkus-maven-plugin:{quarkus-version}:create-extension -N` - -As and example, let's add a new extension called `my-ext` to the Quarkus source tree: - -[source,bash, subs=attributes+] ----- -git clone https://github.com/quarkusio/quarkus.git -cd quarkus -mvn io.quarkus.platform:quarkus-maven-plugin:{quarkus-version}:create-extension -N \ - -DextensionId=my-ext \ - -Dname="My Extension" ----- - -NOTE: by default, the `groupId`, `version`, `quarkusVersion`, `namespaceId`, and `namespaceName` will be consistent with other Quarkus core extensions. - -The above sequence of commands does the following: - -* Creates four new Maven modules: -** `quarkus-my-ext-parent` in the `extensions/my-ext` directory -** `quarkus-my-ext` in the `extensions/my-ext/runtime` directory -** `quarkus-my-ext-deployment` in the `extensions/my-ext/deployment` directory; a basic `MyExtProcessor` class is generated in this module. -** `quarkus-my-ext-integration-test` in the `integration-tests/my-ext/deployment` directory; an empty JAX-RS Resource class and two test classes (for JVM mode and native mode) are generated in this module. -* Links these three modules where necessary: -** `quarkus-my-ext-parent` is added to the `` of `quarkus-extensions-parent` -** `quarkus-my-ext` is added to the `` of the Quarkus BOM (Bill of Materials) `bom/application/pom.xml` -** `quarkus-my-ext-deployment` is added to the `` of the Quarkus BOM (Bill of Materials) `bom/application/pom.xml` -** `quarkus-my-ext-integration-test` is added to the `` of `quarkus-integration-tests-parent` - -NOTE: You also have to fill the `quarkus-extension.yaml` file that describe your extension inside the runtime module `src/main/resources/META-INF` folder. - -This is the `quarkus-extension.yaml` of the `quarkus-agroal` extension, you can use it as an example: - -[source,yaml] ----- -name: "Agroal - Database connection pool" -metadata: - keywords: - - "agroal" - - "database-connection-pool" - - "datasource" - - "jdbc" - guide: "https://quarkus.io/guides/datasource" - categories: - - "data" - status: "stable" ----- - -TIP: The `name` parameter of the mojo is optional. -If you do not specify it on the command line, the plugin will derive it from `extensionId` by replacing dashes with spaces and uppercasing each token. -So you may consider omitting explicit `name` in some cases. - -// The following link should point to the mojo page once https://github.com/quarkusio/quarkusio.github.io/issues/265 is fixed -Please refer to https://github.com/quarkusio/quarkus/blob/{quarkus-version}/devtools/maven/src/main/java/io/quarkus/maven/CreateExtensionMojo.java[CreateExtensionMojo JavaDoc] for all the available options of the mojo. - -==== Using Gradle - -You will need to apply the `io.quarkus.extension` plugin in the `runtime` module of your extension project. -The plugin includes the `extensionDescriptor` task that will generate `META-INF/quarkus-extension.properties` and `META-INF/quarkus-extension.yml` files. -The plugin also enables the `io.quarkus:quarkus-extension-processor` annotation processor in both `deployment` and `runtime` modules. -The name of the deployment module can be configured in the plugin by setting the `deploymentArtifact` property. The property is set to `deployment` by default: - -[source,groovy,subs=attributes+] ----- -plugins { - id 'java' - id 'io.quarkus.extensions' -} - -quarkusExtension { - deploymentArtifact = 'deployment' -} - -dependencies { - implementation platform('io.quarkus:quarkus-bom:{quarkus-version}') -} ----- - -[WARNING] -==== -This plugin is still experimental, it does not validate the extension dependencies as the equivalent Maven plugin does. -==== - -=== Build Step Processors - -Work is done at augmentation time by _build steps_ which produce and consume _build items_. The build steps found in -the deployment modules that correspond to the extensions in the project build are automatically wired together and executed -to produce the final build artifact(s). - -==== Build steps - -A _build step_ is a non-static method which is annotated with the `@io.quarkus.deployment.annotations.BuildStep` annotation. -Each build step may <> items that are produced by earlier stages, and <> items that can be consumed by later stages. Build steps are normally only run when they produce a build item that is -ultimately consumed by another step. - -Build steps are normally placed on plain classes within an extension's deployment module. The classes are automatically -instantiated during the augment process and utilize <>. - -[id='build-items'] -==== Build items - -Build items are concrete, final subclasses of the abstract `io.quarkus.builder.item.BuildItem` class. Each build item represents -some unit of information that must be passed from one stage to another. The base `BuildItem` class may not itself be directly -subclassed; rather, there are abstract subclasses for each of the kinds of build item subclasses that _may_ be created: -<>, <>, and <>. - -Think of build items as a way for different extensions to communicate with one another. For example, a build item can: - -- expose the fact that a database configuration exists -- consume that database configuration (e.g. a connection pool extension or an ORM extension) -- ask an extension to do work for another extension: e.g. an extension wanting to define a new CDI bean and asking the ArC extension -to do so - -This is a very flexible mechanism. - -NOTE: `BuildItem` instances should be immutable, as the producer/consumer model does not allow for mutation to be correctly -ordered. This is not enforced but failure to adhere to this rule can result in race conditions. - -[id='simple-build-items'] -===== Simple build items - -Simple build items are final classes which extend `io.quarkus.builder.item.SimpleBuildItem`. Simple build items may only -be produced by one step in a given build; if multiple steps in a build declare that they produce the same simple build item, -an error is raised. Any number of build steps may consume a simple build item. A build step which consumes a simple -build item will always run _after_ the build step which produced that item. - -.Example of a single build item -[source%nowrap,java] ----- -/** - * The build item which represents the Jandex index of the application, - * and would normally be used by many build steps to find usages - * of annotations. - */ -public final class ApplicationIndexBuildItem extends SimpleBuildItem { - - private final Index index; - - public ApplicationIndexBuildItem(Index index) { - this.index = index; - } - - public Index getIndex() { - return index; - } -} ----- - - -[id='multi-build-items'] -===== Multi build items - -Multiple or "multi" build items are final classes which extend `io.quarkus.builder.item.MultiBuildItem`. Any number of -multi build items of a given class may be produced by any number of steps, but any steps which consume multi build items -will only run _after_ every step which can produce them has run. - -.Example of a multiple build item -[source%nowrap,java] ----- -public final class ServiceWriterBuildItem extends MultiBuildItem { - private final String serviceName; - private final List implementations; - - public ServiceWriterBuildItem(String serviceName, String... implementations) { - this.serviceName = serviceName; - // Make sure it's immutable - this.implementations = Collections.unmodifiableList( - Arrays.asList( - implementations.clone() - ) - ); - } - - public String getServiceName() { - return serviceName; - } - - public List getImplementations() { - return implementations; - } -} ----- - -.Example of multiple build item usage -[source%nowrap,java] ----- -/** - * This build step produces a single multi build item that declares two - * providers of one configuration-related service. - */ -@BuildStep -public ServiceWriterBuildItem registerOneService() { - return new ServiceWriterBuildItem( - Converter.class.getName(), - MyFirstConfigConverterImpl.class.getName(), - MySecondConfigConverterImpl.class.getName() - ); -} - -/** - * This build step produces several multi build items that declare multiple - * providers of multiple configuration-related services. - */ -@BuildStep -public void registerSeveralServices( - BuildProducer providerProducer -) { - providerProducer.produce(new ServiceWriterBuildItem( - Converter.class.getName(), - MyThirdConfigConverterImpl.class.getName(), - MyFourthConfigConverterImpl.class.getName() - )); - providerProducer.produce(new ServiceWriterBuildItem( - ConfigSource.class.getName(), - MyConfigSourceImpl.class.getName() - )); -} - -/** - * This build step aggregates all the produced service providers - * and outputs them as resources. - */ -@BuildStep -public void produceServiceFiles( - List items, - BuildProducer resourceProducer -) throws IOException { - // Aggregate all of the providers - - Map> map = new HashMap<>(); - for (ServiceWriterBuildItem item : items) { - String serviceName = item.getName(); - for (String implName : item.getImplementations()) { - map.computeIfAbsent( - serviceName, - (k, v) -> new LinkedHashSet<>() - ).add(implName); - } - } - - // Now produce the resource(s) for the SPI files - for (Map.Entry> entry : map.entrySet()) { - String serviceName = entry.getKey(); - try (ByteArrayOutputStream os = new ByteArrayOutputStream()) { - try (OutputStreamWriter w = new OutputStreamWriter(os, StandardCharsets.UTF_8)) { - for (String implName : entry.getValue()) { - w.write(implName); - w.write(System.lineSeparator()); - } - w.flush(); - } - resourceProducer.produce( - new GeneratedResourceBuildItem( - "META-INF/services/" + serviceName, - os.toByteArray() - ) - ); - } - } -} ----- - -[id='empty-build-items'] -===== Empty build items - -Empty build items are final (usually empty) classes which extend `io.quarkus.builder.item.EmptyBuildItem`. -They represent build items that don't actually carry any data, and allow such items to be produced and consumed -without having to instantiate empty classes. They cannot themselves be instantiated. - -.Example of an empty build item -[source%nowrap,java] ----- -public final class NativeImageBuildItem extends EmptyBuildItem { - // empty -} ----- - -Empty build items can represent "barriers" which can impose ordering between steps. They can also be used in -the same way that popular build systems use "pseudo-targets", which is to say that the build item can represent a -conceptual goal that does not have a concrete representation. - -.Example of usage of an empty build item in a "pseudo-target" style -[source%nowrap,java] ----- -/** - * Contrived build step that produces the native image on disk. The main augmentation - * step (which is run by Maven or Gradle) would be declared to consume this empty item, - * causing this step to be run. - */ -@BuildStep -@Produce(NativeImageBuildItem.class) -void produceNativeImage() { - // ... - // (produce the native image) - // ... -} ----- - -.Example of usage of an empty build item in a "barrier" style -[source%nowrap,java] ----- -/** - * This would always run after {@link #produceNativeImage()} completes, producing - * an instance of {@code SomeOtherBuildItem}. - */ -@BuildStep -@Consume(NativeImageBuildItem.class) -SomeOtherBuildItem secondBuildStep() { - return new SomeOtherBuildItem("foobar"); -} ----- - -[id='injection'] -==== Injection - -Classes which contain build steps support the following types of injection: - -- Constructor parameter injection -- Field injection -- Method parameter injection (for build step methods only) - -Build step classes are instantiated and injected for each build step invocation, and are discarded afterwards. State -should only be communicated between build steps by way of build items, even if the steps are on the same class. - -NOTE: Final fields are not considered for injection, but can be populated by way of constructor parameter injection -if desired. Static fields are never considered for injection. - -The types of values that can be injected include: - -- <> produced by previous build steps -- <> to produce items for subsequent build steps -- <> types -- Template objects for <> - -WARNING: Objects which are injected into a build step method or its class _must not_ be used outside of that method's -execution. - -NOTE: Injection is resolved at compile time via an annotation processor, -and the resulting code does not have permission to inject private fields or invoke private methods. - -[id='producing-values'] -==== Producing values - -A build step may produce values for subsequent steps in several possible ways: - -- By returning a <> or <> instance -- By returning a `List` of a multi build item class -- By injecting a `BuildProducer` of a simple or multi build item class -- By annotating the method with `@io.quarkus.deployment.annotations.Produce`, giving the class name of a -<> - -If a simple build item is declared on a build step, it _must_ be produced during that build step, otherwise an error -will result. Build producers which are injected into steps _must not_ be used outside of that step. - -Note that a `@BuildStep` method will only be called if it produces something that another consumer or the final output -requires. If there is no consumer for a particular item then it will not be produced. What is required will depend on -the final target that is being produced. For example, when running in developer mode the final output will not ask -for GraalVM-specific build items such as `ReflectiveClassBuildItem`, so methods that only produce these -items will not be invoked. - -[id='consuming-values'] -==== Consuming values - -A build step may consume values from previous steps in the following ways: - -- By injecting a <> -- By injecting an `Optional` of a simple build item class -- By injecting a `List` of a <> class -- By annotating the method with `@io.quarkus.deployment.annotations.Consume`, giving the class name of a -<> - -Normally it is an error for a step which is included to consume a simple build item that is not produced by any other -step. In this way, it is guaranteed that all of the declared values will be present and non-`null` when a step is run. - -Sometimes a value isn't necessary for the build to complete, but might inform some behavior of the build step if it is -present. In this case, the value can be optionally injected. - -NOTE: Multi build values are always considered _optional_. If not present, an empty list will be injected. - -[id='producing-weak-values'] -===== Weak value production - -Normally a build step is included whenever it produces any build item which is in turn consumed by any other build step. In this way, -only the steps necessary to produce the final artifact(s) are included, and steps which pertain to extensions which are -not installed or which only produce build items which are not relevant for the given artifact type are excluded. - -For cases where this is not desired behavior, the `@io.quarkus.deployment.annotations.Weak` annotation may be used. This -annotation indicates that the build step should not automatically be included solely on the basis of producing the annotated value. - -.Example of producing a build item weakly -[source%nowrap,java] ----- -/** - * This build step is only run if something consumes the ExecutorClassBuildItem. - */ -@BuildStep -void createExecutor( - @Weak BuildProducer classConsumer, - BuildProducer executorClassConsumer -) { - ClassWriter cw = new ClassWriter(Gizmo.ASM_API_VERSION); - String className = generateClassThatCreatesExecutor(cw); // <1> - classConsumer.produce(new GeneratedClassBuildItem(true, className, cw.toByteArray())); - executorClassConsumer.produce(new ExecutorClassBuildItem(className)); -} ----- -<1> This method (not provided in this example) would generate the class using the ASM API. - -Certain types of build items are generally always consumed, such as generated classes or resources. -An extension might produce a build item along with a generated class to facilitate the usage -of that build item. Such a build step would use the `@Weak` annotation on the generated class build item, while normally -producing the other build item. If the other build item is ultimately consumed by something, then the step would run -and the class would be generated. If nothing consumes the other build item, the step would not be included in the build -process. - -In the example above, `GeneratedClassBuildItem` would only be produced if `ExecutorClassBuildItem` is consumed by -some other build step. - -Note that when using <>, the implicitly generated class can be declared to be weak by -using the `optional` attribute of the `@io.quarkus.deployment.annotations.Record` annotation. - -.Example of using a bytecode recorder where the generated class is weakly produced -[source%nowrap,java] ----- -/** - * This build step is only run if something consumes the ExecutorBuildItem. - */ -@BuildStep -@Record(value = ExecutionTime.RUNTIME_INIT, optional = true) // <1> -ExecutorBuildItem createExecutor( // <2> - ExecutorTemplate executorTemplate, - ThreadPoolConfig threadPoolConfig -) { - - return new ExecutorBuildItem( - setupTemplate.setupRunTime( - shutdownContextBuildItem, - threadPoolConfig, - launchModeBuildItem.getLaunchMode() - ) - ); -} ----- -<1> Note the `optional` attribute. -<2> This example is using recorder proxies; see the section on <> for more information. - -==== Application Archives - -The `@BuildStep` annotation can also register marker files that determine which archives on the class path are considered -to be 'Application Archives', and will therefore get indexed. This is done via the `applicationArchiveMarkers`. For -example the ArC extension registers `META-INF/beans.xml`, which means that all archives on the class path with a `beans.xml` -file will be indexed. - -==== Using Thread's Context Class Loader - -The build step will be run with a TCCL that can load user classes from the deployment in a transformer-safe way. -This class loader only lasts for the life of the augmentation, and is discarded afterwards. -The classes will be loaded again in a different class loader at runtime. -This means that loading a class during augmentation does not stop it from being transformed when running in the development/test mode. - -==== Adding external JARs to the indexer with IndexDependencyBuildItem - -The index of scanned classes will not automatically include your external class dependencies. -To add dependencies, create a `@BuildStep` that produces `IndexDependencyBuildItem` objects, for a `groupId` and `artifactId`. - -NOTE: It is important to specify all the required artifacts to be added to the indexer. No artifacts are implicitly added transitively. - -The `Amazon Alexa` extension adds dependent libraries from the Alexa SDK that are used in Jackson JSON transformations, in order for the reflective classes to identified and included at `BUILD_TIME`. - -[source%nowrap,java] ----- - @BuildStep - void addDependencies(BuildProducer indexDependency) { - indexDependency.produce(new IndexDependencyBuildItem("com.amazon.alexa", "ask-sdk")); - indexDependency.produce(new IndexDependencyBuildItem("com.amazon.alexa", "ask-sdk-runtime")); - indexDependency.produce(new IndexDependencyBuildItem("com.amazon.alexa", "ask-sdk-model")); - indexDependency.produce(new IndexDependencyBuildItem("com.amazon.alexa", "ask-sdk-lambda-support")); - indexDependency.produce(new IndexDependencyBuildItem("com.amazon.alexa", "ask-sdk-servlet-support")); - indexDependency.produce(new IndexDependencyBuildItem("com.amazon.alexa", "ask-sdk-dynamodb-persistence-adapter")); - indexDependency.produce(new IndexDependencyBuildItem("com.amazon.alexa", "ask-sdk-apache-client")); - indexDependency.produce(new IndexDependencyBuildItem("com.amazon.alexa", "ask-sdk-model-runtime")); - } ----- - -With the artifacts added to the `Jandex` indexer, you can now search the index to identify classes implementing an interface, sub-classes of a specific class, or classes with a target annotation. - -For example, the `Jackson` extension uses code like below to search for annotations used in JSON deserialization, -and add them to the reflective hierarchy for `BUILD_TIME` analysis. - -[source%nowrap,java] ----- - - DotName JSON_DESERIALIZE = DotName.createSimple(JsonDeserialize.class.getName()); - - IndexView index = combinedIndexBuildItem.getIndex(); - - // handle the various @JsonDeserialize cases - for (AnnotationInstance deserializeInstance : index.getAnnotations(JSON_DESERIALIZE)) { - AnnotationTarget annotationTarget = deserializeInstance.target(); - if (CLASS.equals(annotationTarget.kind())) { - DotName dotName = annotationTarget.asClass().name(); - Type jandexType = Type.create(dotName, Type.Kind.CLASS); - reflectiveHierarchyClass.produce(new ReflectiveHierarchyBuildItem(jandexType)); - } - - } - ----- - -==== Visualizing build step dependencies - -It can occasionally be useful to see a visual representation of the interactions between the various build steps. For such cases, adding `-Djboss.builder.graph-output=build.dot` when building an application -will result in the creation of the `build.dot` file in the project's root directory. See link:https://graphviz.org/resources/[this] for a list of software that can open the file and show the actual visual representation. - -[[configuration]] -=== Configuration - -Configuration in Quarkus is based on SmallRye Config, an implementation of the MicroProfile Config specification. -All of the standard features of MP-Config are supported; in addition, there are several extensions which are made available -by the SmallRye Config project as well as by Quarkus itself. - -The value of these properties is configured in a `application.properties` file that follows the MicroProfile config format. - -Configuration of Quarkus extensions is injection-based, using annotations. - -==== Configuration Keys - -Leaf configuration keys are mapped to non-`private` fields via the `@io.quarkus.runtime.annotations.ConfigItem` annotation. - -NOTE: Though the SmallRye Config project is used for implementation, the standard `@ConfigProperty` annotation does not have the -same semantics that are needed to support configuration within extensions. - -Configuration keys are normally derived from the field names that they are tied to. This is done by de-camel-casing the name and then -joining the segments with hyphens (`-`). Some examples: - -* `bindAddress` becomes `bind-address` -* `keepAliveTime` becomes `keep-alive-time` -* `requestDNSTimeout` becomes `request-dns-timeout` - -The name can also be explicitly specified by giving a `name` attribute to the `@ConfigItem` annotation. - -NOTE: Though it is possible to override the configuration key name using the `name` attribute of `@ConfigItem`, -normally this should only be done in cases where (for example) the configuration key name is the same as a Java keyword. - -==== Configuration Value types - -The type of the field with the `@ConfigItem` annotation determines the conversion that is applied to it. Quarkus -extensions may use the full range of configuration types made available by SmallRye Config, which includes: - -* All primitive types and primitive wrapper types -* `String` -* Any type which has a constructor accepting a single argument of type `String` or `CharSequence` -* Any type which has a static method named `of` which accepts a single argument of type `String` -* Any type which has a static method named `valueOf` or `parse` which accepts a single argument of type `CharSequence` or `String` -* `java.time.Duration` -* `java.util.regex.Pattern` -* `java.nio.file.Path` -* `io.quarkus.runtime.configuration.MemorySize` to represent data sizes -* `java.net.InetSocketAddress`, `java.net.InetAddress` and `org.wildfly.common.net.CidrAddress` -* `java.util.Locale` where the string value is an IETF BCP 47 language tag -* `java.nio.charset.Charset` where the string value is a canonical name or an alias -* `java.time.ZoneId` where the string value is parsed via `java.time.ZoneId.of(String)` -* A `List` or `Optional` of any of the above types -* `OptionalInt`, `OptionalLong`, `OptionalDouble` - -In addition, custom converters may be registered by adding their fully qualified class name in file -`META-INF/services/org.eclipse.microprofile.config.spi.Converter`. - -Though these implicit converters use reflection, Quarkus will automatically ensure that they are loaded at the appropriate time. - -===== Optional Values - -If the configuration type is one of the optional types, then empty values are allowed for the configuration key; otherwise, -specification of an empty value will result in a configuration error which prevents the application from starting. This -is especially relevant to configuration properties of inherently emptiable values such as `List`, `Set`, and `String`. Such -value types will never be empty; in the event of an empty value, an empty `Optional` is always used. - -==== Configuration Default Values - -A configuration item can be marked to have a default value. The default value is used when no matching configuration key -is specified in the configuration. - -Configuration items with a primitive type (such as `int` or `boolean`) implicitly use a default value of `0` or `false`. The -sole exception to this rule is the `char` type which does not have an implicit default value. - -A property with a default value is not implicitly optional. If a non-optional configuration item with a default value -is explicitly specified to have an empty value, the application will report a configuration error and will not start. If -it is desired for a property to have a default value and also be optional, it must have an `Optional` type as described above. - -==== Configuration Groups - -Configuration values are always collected into grouping classes which are marked with the `@io.quarkus.runtime.annotations.ConfigGroup` -annotation. These classes contain a field for each key within its group. In addition, configuration groups can be nested. - -===== Optional Configuration Groups - -A nested configuration group may be wrapped with an `Optional` type. In this case, the group is not populated unless one -or more properties within that group are specified in the configuration. If the group is populated, then any required -properties in the group must also be specified otherwise a configuration error will be reported and the application will -not start. - -==== Configuration Maps - -A `Map` can be used for configuration at any position where a configuration group would be allowed. The key type of such a -map *must* be `String`, and its value may be either a configuration group class or a valid leaf type. The configuration -key segment following the map's key segment will be used as the key for map values. - -[id='configuration-roots'] -==== Configuration Roots - -Configuration roots are configuration groups that appear in the root of the configuration tree. A configuration property's full -name is determined by joining the string `quarkus.` with the hyphenated name of the fields that form the path from the root to the -leaf field. For example, if I define a configuration root group called `ThreadPool`, with a nested group in a field named `sizing` -that in turn contains a field called `minSize`, the final configuration property will be called `quarkus.thread-pool.sizing.min-size`. - -A configuration root's name can be given with the `name` property, or it can be inferred from the class name. If the latter, -then the configuration key will be the class name, minus any `Config` or `Configuration` suffix, broken up by camel-case, -lowercased, and re-joined using hyphens (`-`). - -A configuration root's class name can contain an extra suffix segment for the case where there are configuration -roots for multiple <>. Classes which correspond to the `BUILD_TIME` and `BUILD_AND_RUN_TIME_FIXED` -may end with `BuildTimeConfig` or `BuildTimeConfiguration`, classes which correspond to the `RUN_TIME` phase -may end with `RuntimeConfig`, `RunTimeConfig`, `RuntimeConfiguration` or `RunTimeConfiguration` while classes which correspond -to the `BOOTSTRAP` configuration may end with `BootstrapConfig` or `BootstrapConfiguration`. - -Note: The current implementation is still using injection site to determine the root set, so to avoid migration problems, it -is recommended that the injection site (field or parameter) have the same name as the configuration root class until -this change is complete. - -===== Configuration Root Phases - -Configuration roots are strictly bound by configuration phase, and attempting to access a configuration root from outside of its corresponding phase will result in an error. -A configuration root dictates when its contained keys are read from configuration, and when they are available to applications. The phases defined by `io.quarkus.runtime.annotations.ConfigPhase` are as follows: - -[cols="<3m,^1,^1,^1,^1,<8",options="header"] -|=== -| Phase name -| Read & avail. at build time -| Avail. at run time -| Read during static init -| Re-read during startup (native executable) -| Notes - -| BUILD_TIME -| ✓ -| ✗ -| ✗ -| ✗ -| Appropriate for things which affect build. - -| BUILD_AND_RUN_TIME_FIXED -| ✓ -| ✓ -| ✗ -| ✗ -| Appropriate for things which affect build and must be visible for run time code. Not read from config at run time. - -| BOOTSTRAP -| ✗ -| ✓ -| ✗ -| ✓ -| Used when runtime configuration needs to be obtained from an external system (like `Consul`), but details of that system need to be configurable (for example Consul's URL). The high level way this works is by using the standard Quarkus config sources (such as properties files, system properties, etc.) and producing `ConfigSourceProvider` objects which are subsequently taken into account by Quarkus when creating the final runtime `Config` object. - -| RUN_TIME -| ✗ -| ✓ -| ✓ -| ✓ -| Not available at build, read at start in all modes. - -|=== - -For all cases other than the `BUILD_TIME` case, the configuration root class and all of the configuration groups and types contained therein must be located in, or reachable from, the extension's run time artifact. Configuration roots of phase `BUILD_TIME` may be located in or reachable from either of the extension's run time or deployment artifacts. - -IMPORTANT: _Bootstrap_ configuration steps are executed during runtime-init *before* any of other runtime steps. This means that code executed as part of this step cannot access anything that gets initialized in runtime init steps (runtime synthetic CDI beans being one such example). - -==== Configuration Example - -[source%nowrap,java] ----- -import io.quarkus.runtime.annotations.ConfigItem; -import io.quarkus.runtime.annotations.ConfigGroup; -import io.quarkus.runtime.annotations.DefaultConverter - -import java.io.File; -import java.util.logging.Level; - -@ConfigGroup <1> -public class FileConfig { - - /** - * Enable logging to a file. - */ - @ConfigItem(defaultValue = "true") - boolean enable; - - /** - * The log format. - */ - @ConfigItem(defaultValue = "%d{yyyy-MM-dd HH:mm:ss,SSS} %h %N[%i] %-5p [%c{1.}] (%t) %s%e%n") - String format; - - /** - * The level of logs to be written into the file. - */ - @ConfigItem(defaultValue = "ALL") - Level level; - - /** - * The name of the file in which logs will be written. - */ - @ConfigItem(defaultValue = "application.log") - File path; - -} - -/** - * Logging configuration. - */ -@ConfigRoot(phase = ConfigPhase.RUN_TIME) <2> -public class LogConfiguration { - - // ... - - /** - * Configuration properties for the logging file handler. - */ - FileConfig file; -} - -public class LoggingProcessor { - // ... - - /** - * Logging configuration. - */ - <3> - LogConfiguration config; -} ----- - -A configuration property name can be split into segments. For example, a property name like -`quarkus.log.file.enable` can be split into the following segments: - -* `quarkus` - a namespace claimed by Quarkus which is a prefix for all `@ConfigRoot` classes, -* `log` - a name segment which corresponds to the `LogConfiguration` class annotated with `@ConfigRoot`, -* `file` - a name segment which corresponds to the `file` field in this class, -* `enabled` - a name segment which corresponds to `enable` field in `FileConfig` class annotated with `@ConfigGroup`. - -<1> The `FileConfig` class is annotated with `@ConfigGroup` to indicate that this is an aggregate -configuration object containing a collection of configurable properties, rather than being a simple configuration -key type. -<2> The `@ConfigRoot` annotation indicates that this object is a configuration root group, in this case one which -corresponds to a `log` segment. A class name is used to link configuration root group with the segment from a -property name. The `Configuration` part is stripped off from a `LogConfiguration` class name and the remaining `Log` -is lowercased to become a `log`. Since all `@ConfigRoot` annotated classes uses `quarkus` as a prefix, this finally -becomes `quarkus.log` and represents the properties which names begin with `quarkus.log.*`. -<3> Here the `LoggingProcessor` injects a `LogConfiguration` instance automatically by detecting the `@ConfigRoot` -annotation. - -A corresponding `application.properties` for the above example could be: - -[source%nowrap,properties] ----- -quarkus.log.file.enable=true -quarkus.log.file.level=DEBUG -quarkus.log.file.path=/tmp/debug.log ----- - -Since `format` is not defined in these properties, the default value from `@ConfigItem` will be used instead. - - -==== Enhanced conversion -You can use enhanced conversion of a config item by using the `@ConvertWith` annotation which accepts a `Converter` class object. -If the annotation is present on a config item, the implicit or custom built in converter in use will be overridden by the value provided. -To do, see the example below which converts `YES` or `NO` values to `boolean`. -[source%nowrap,java] ----- -@ConfigRoot -public class SomeConfig { - /** - * Config item with enhanced converter - */ - @ConvertWith(YesNoConverter.class) // <1> - @ConfigItem(defaultValue = "NO") - Boolean answer; - - - public static class YesNoConverter implements Converter { - - public YesNoConverter() {} - - @Override - public Boolean convert(String s) { - if (s == null || s.isEmpty()) { - return false; - } - - switch (s) { - case "YES": - return true; - case "NO": - return false; - } - - throw new IllegalArgumentException("Unsupported value " + s + " given"); - } - } -} ----- -<1> Override the default `Boolean` converter and use the provided converter which accepts a `YES` or `NO` config values. - - -The corresponding `application.properties` will look like. -[source%nowrap,properties] ----- -quarkus.some.answer=YES ----- - -[NOTE] -===== -Enum values (config items) are translated to skewed-case (hyphenated) by default. The table below illustrates an enum name and their canonical equivalence: - -|=== -|Java enum| Canonical equivalent - -|DISCARD -|discard - -|READ_UNCOMMITTED -|read-uncommitted - -|SIGUSR1 -|sigusr1 - -|JavaEnum -|java-enum - -|MAKING_LifeDifficult -|making-life-difficult - -|YeOldeJBoss -|ye-olde-jboss - -|camelCaseEnum -|camel-case-enum - -|=== - -To use the default behaviour which is based on implicit converter or a custom defined one add `@DefaultConverter` annotation to the configuration item -[source%nowrap,java] ----- -@ConfigRoot -public class SomeLogConfig { - /** - * The level of logs to be written into the file. - */ - @DefaultConverter // <1> - @ConfigItem(defaultValue = "ALL") - Level level; -} ----- -<1> Use the default converter (built in or a custom converter) to convert `Level.class` enum. -===== - - -=== Conditional Step Inclusion - -It is possible to only include a given `@BuildStep` under certain conditions. The `@BuildStep` annotation -has two optional parameters: `onlyIf` and `onlyIfNot`. These parameters can be set to one or more classes -which implement `BooleanSupplier`. The build step will only be included when the method returns -`true` (for `onlyIf`) or `false` (for `onlyIfNot`). - -The condition class can inject <> as long as they belong to -a build-time phase. Run time configuration is not available for condition classes. - -The condition class may also inject a value of type `io.quarkus.runtime.LaunchMode`. -Constructor parameter and field injection is supported. - -.An example of a conditional build step -[source%nowrap,java] ----- -@BuildStep(onlyIf = IsDevMode.class) -LogCategoryBuildItem enableDebugLogging() { - return new LogCategoryBuildItem("org.your.quarkus.extension", Level.DEBUG); -} - -static class IsDevMode implements BooleanSupplier { - LaunchMode launchMode; - - public boolean getAsBoolean() { - return launchMode == LaunchMode.DEVELOPMENT; - } -} ----- - -If you need to make your build step conditional on the presence or absence of another extension, you can -use <> for that. - -[id='bytecode-recording'] -=== Bytecode Recording - -One of the main outputs of the build process is recorded bytecode. This bytecode actually sets up the runtime environment. For example, in order to start Undertow, the resulting application will have some bytecode that directly registers all -Servlet instances and then starts Undertow. - -As writing bytecode directly is complex, this is instead done via bytecode recorders. At deployment time, -invocations are made on recorder objects that contain the actual runtime logic, but instead of these invocations -proceeding as normal they are intercepted and recorded (hence the name). This recording is then used to generate bytecode -that performs the same sequence of invocations at runtime. This is essentially a form of deferred execution where invocations -made at deployment time get deferred until runtime. - -Let's look at the classic 'Hello World' type example. To do this the Quarkus way we would create a recorder as follows: - -[source%nowrap,java] ----- -@Recorder -class HelloRecorder { - - public void sayHello(String name) { - System.out.println("Hello" + name); - } - -} ----- - -And then create a build step that uses this recorder: - -[source%nowrap,java] ----- -@Record(RUNTIME_INIT) -@BuildStep -public void helloBuildStep(HelloRecorder recorder) { - recorder.sayHello("World"); -} ----- - -When this build step is run nothing is printed to the console. This is because the `HelloRecorder` that is injected is -actually a proxy that records all invocations. Instead if we run the resulting Quarkus program we will see 'Hello World' -printed to the console. - -Methods on a recorder can return a value, which must be proxiable (if you want to return a non-proxiable item wrap it -in `io.quarkus.runtime.RuntimeValue`). These proxies may not be invoked directly, however they can be passed -into other recorder methods. This can be any recorder method, including from other `@BuildStep` methods, so a common pattern -is to produce `BuildItem` instances that wrap the results of these recorder invocations. - -For instance, in order to make arbitrary changes to a Servlet deployment Undertow has a `ServletExtensionBuildItem`, -which is a `MultiBuildItem` that wraps a `ServletExtension` instance. I can return a `ServletExtension` from a recorder -in another module, and Undertow will consume it and pass it into the recorder method that starts Undertow. - -At runtime the bytecode will be invoked in the order it is generated. This means that build step dependencies implicitly -control the order that generated bytecode is run. In the example above we know that the bytecode that produces a -`ServletExtensionBuildItem` will be run before the bytecode that consumes it. - -The following objects can be passed to recorders: - -- Primitives -- String -- Class objects -- Objects returned from a previous recorder invocation -- Objects with a no-arg constructor and getter/setters for all properties (or public fields) -- Objects with a constructor annotated with `@RecordableConstructor` with parameter names that match field names -- Any arbitrary object via the `io.quarkus.deployment.recording.RecorderContext#registerSubstitution(Class, Class, Class)` mechanism -- Arrays, Lists and Maps of the above - -==== Injecting Configuration into Recorders - -Configuration objects with phase `RUNTIME` or `BUILD_AND_RUNTIME_FIXED` can be injected into recorders via constructor -injection. Just create a constructor that takes the configuration objects the recorder needs. If the recorder has multiple -constructors you can annotate the one you want Quarkus to use with `@Inject`. If the recorder wants to inject runtime config -but is also used at static init time then it needs to inject a `RuntimeValue`, this value will only be set -when the runtime methods are being invoked. - -==== RecorderContext - -`io.quarkus.deployment.recording.RecorderContext` provides some convenience methods to enhance bytecode recording, -this includes the ability to register creation functions for classes without no-arg constructors, to register an object -substitution (basically a transformer from a non-serializable object to a serializable one and vice versa), and to create -a class proxy. This interface can be directly injected as a method parameter into any `@Record` method. - -Calling `classProxy` with a given class name will create a `Class` that can be passed into recorder -methods, and at runtime will be substituted with the class whose name was passed in to `classProxy`. This is basically a -convenience to avoid the need to explicitly load classes in the recorders. - -==== Printing step execution time - -At times, it can be useful to know how the exact time each startup task (which is the result of each bytecode recording) takes when the application is run. -The simplest way to determine this information is to launch the Quarkus application with the `-Dquarkus.debug.print-startup-times=true` system property. -The output will look something like: - -[source%nowrap] ----- -Build step LoggingResourceProcessor.setupLoggingRuntimeInit completed in: 42ms -Build step ConfigGenerationBuildStep.checkForBuildTimeConfigChange completed in: 4ms -Build step SyntheticBeansProcessor.initRuntime completed in: 0ms -Build step ConfigBuildStep.validateConfigProperties completed in: 1ms -Build step ResteasyStandaloneBuildStep.boot completed in: 95ms -Build step VertxHttpProcessor.initializeRouter completed in: 1ms -Build step VertxHttpProcessor.finalizeRouter completed in: 4ms -Build step LifecycleEventsBuildStep.startupEvent completed in: 1ms -Build step VertxHttpProcessor.openSocket completed in: 93ms -Build step ShutdownListenerBuildStep.setupShutdown completed in: 1ms ----- - -//// -TODO: config integration -//// -=== Contexts and Dependency Injection - -==== Extension Points - -As a CDI based runtime, Quarkus extensions often make CDI beans available as part of the extension behavior. -However, Quarkus DI solution does not support CDI Portable Extensions. -Instead, Quarkus extensions can make use of various xref:cdi-reference.adoc[Build Time Extension Points]. - -=== Quarkus Dev UI - -You can make your extension support the xref:dev-ui.adoc[Quarkus Dev UI] for a greater developer experience. - -=== Extension-defined endpoints - -Your extension can add additional, non-application endpoints to be served alongside endpoints -for Health, Metrics, OpenAPI, Swagger UI, etc. - -Use a `NonApplicationRootPathBuildItem` to define an endpoint: - -[source%nowrap,java] ----- -@BuildStep -RouteBuildItem myExtensionRoute(NonApplicationRootPathBuildItem nonApplicationRootPathBuildItem) { - return nonApplicationRootPathBuildItem.routeBuilder() - .route("custom-endpoint") - .handler(new MyCustomHandler()) - .displayOnNotFoundPage() - .build(); -} ----- - -Note that the path above does not start with a '/', indicating it is a relative path. The above -endpoint will be served relative to the configured non-application endpoint root. The non-application -endpoint root is `/q` by default, which means the resulting endpoint will be found at `/q/custom-endpoint`. - -Absolute paths are handled differently. If the above called `route("/custom-endpoint")`, the resulting -endpoint will be found at `/custom-endpoint`. - -If an extension needs nested non-application endpoints: - -[source%nowrap,java] ----- -@BuildStep -RouteBuildItem myNestedExtensionRoute(NonApplicationRootPathBuildItem nonApplicationRootPathBuildItem) { - return nonApplicationRootPathBuildItem.routeBuilder() - .nestedRoute("custom-endpoint", "deep") - .handler(new MyCustomHandler()) - .displayOnNotFoundPage() - .build(); -} ----- - -Given a default non-application endpoint root of `/q`, this will create an endpoint at `/q/custom-endpoint/deep`. - -Absolute paths also have an impact on nested endpoints. If the above called `nestedRoute("custom-endpoint", "/deep")`, -the resulting endpoint will be found at `/deep`. - -Refer to the xref:all-config.adoc#quarkus-vertx-http_quarkus.http.non-application-root-path[Quarkus Vertx HTTP configuration reference] -for details on how the non-application root path is configured. - -=== Extension Health Check - -Health checks are provided via the `quarkus-smallrye-health` extension. It provides both liveness and readiness checks capabilities. - -When writing an extension, it's beneficial to provide health checks for the extension, that can be automatically included without the developer needing to write their own. - -In order to provide a health check, you should do the following: - -- Import the `quarkus-smallrye-health` extension as an **optional** dependency in your runtime module so it will not impact the size of the application if -health check is not included. -- Create your health check following the xref:smallrye-health.adoc[SmallRye Health] guide. We advise providing only -readiness check for an extension (liveness check is designed to express the fact that an application is up and needs to be lightweight). -- Import the `quarkus-smallrye-health-spi` library in your deployment module. -- Add a build step in your deployment module that produces a `HealthBuildItem`. -- Add a way to disable the extension health check via a config item `quarkus..health.enabled` that should be enabled by default. - -Following is an example from the Agroal extension that provides a `DataSourceHealthCheck` to validate the readiness of a datasource. - -[source%nowrap,java] ----- -@BuildStep -HealthBuildItem addHealthCheck(AgroalBuildTimeConfig agroalBuildTimeConfig) { - return new HealthBuildItem("io.quarkus.agroal.runtime.health.DataSourceHealthCheck", - agroalBuildTimeConfig.healthEnabled); -} ----- - -=== Extension Metrics - -The `quarkus-micrometer` extension and the `quarkus-smallrye-metrics` extension provide support for collecting metrics. -As a compatibility note, the `quarkus-micrometer` extension adapts the MP Metrics API to Micrometer library primitives, so the `quarkus-micrometer` extension can be enabled without breaking code that relies on the MP Metrics API. -Note that the metrics emitted by Micrometer are different, see the `quarkus-micrometer` extension documentation for more information. - -NOTE: The compatibility layer for MP Metrics APIs will move to a different extension in the future. - -There are two broad patterns that extensions can use to interact with an optional metrics extension to add their own metrics: - -* Consumer pattern: An extension declares a `MetricsFactoryConsumerBuildItem` and uses that to provide a bytecode recorder to the metrics extension. When the metrics extension has initialized, it will iterate over registered consumers to initialize them with a `MetricsFactory`. This factory can be used to declare API-agnostic metrics, which can be a good fit for extensions that provide an instrumentable object for gathering statistics (e.g. Hibernate's `Statistics` class). - -* Binder pattern: An extension can opt to use completely different gathering implementations depending on the metrics system. An `Optional metricsCapability` build step parameter can be used to declare or otherwise initialize API-specific metrics based on the active metrics extension (e.g. "smallrye-metrics" or "micrometer"). This pattern can be combined with the consumer pattern by using `MetricsFactory::metricsSystemSupported()` to test the active metrics extension within the recorder. - -Remember that support for metrics is optional. Extensions can use an `Optional metricsCapability` parameter in their build step to test for the presence of an enabled metrics extension. Consider using additional configuration to control behavior of metrics. Datasource metrics can be expensive, for example, so additional configuration flags are used enable metrics collection on individual datasources. - -When adding metrics for your extension, you may find yourself in one of the following situations: - -1. An underlying library used by the extension is using a specific Metrics API directly (either MP Metrics, Micrometer, or some other). -2. An underlying library uses its own mechanism for collecting metrics and makes them available at runtime using its own API, e.g. Hibernate's `Statistics` class, or Vert.x `MetricsOptions`. -3. An underlying library does not provide metrics (or there is no library at all) and you want to add instrumentation. - -==== Case 1: The library uses a metrics library directly - -If the library directly uses a metrics API, there are two options: - -- Use an `Optional metricsCapability` parameter to test which metrics API is supported (e.g. "smallrye-metrics" or "micrometer") in your build step, and use that to selectively declare or initialize API-specific beans or build items. - -- Create a separate build step that consumes a `MetricsFactory`, and use the `MetricsFactory::metricsSystemSupported()` method within the bytecode recorder to initialize required resources if the desired metrics API is supported (e.g. "smallrye-metrics" or "micrometer"). - -Extensions may need to provide a fallback if there is no active metrics extension or the extension doesn't support the API required by the library. - -==== Case 2: The library provides its own metric API - -There are two examples of a library providing its own metrics API: - -- The extension defines an instrumentable object as Agroal does with `io.agroal.api.AgroalDataSourceMetrics`, or -- The extension provides its own abstraction of metrics, as Jaeger does with `io.jaegertracing.spi.MetricsFactory`. - -===== Observing instrumentable objects - -Let's take the instrumentable object (`io.agroal.api.AgroalDataSourceMetrics`) case first. In this case, you can do the following: - -- Define a `BuildStep` that produces a `MetricsFactoryConsumerBuildItem` that uses a `RUNTIME_INIT` or `STATIC_INIT` Recorder to define a `MetricsFactory` consumer. For example, the following creates a `MetricsFactoryConsumerBuildItem` if and only if metrics are enabled both for Agroal generally, and for a datasource specifically: -+ -[source%nowrap,java] ----- -@BuildStep -@Record(ExecutionTime.RUNTIME_INIT) -void registerMetrics(AgroalMetricsRecorder recorder, - DataSourcesBuildTimeConfig dataSourcesBuildTimeConfig, - BuildProducer datasourceMetrics, - List aggregatedDataSourceBuildTimeConfigs) { - - for (AggregatedDataSourceBuildTimeConfigBuildItem aggregatedDataSourceBuildTimeConfig : aggregatedDataSourceBuildTimeConfigs) { - // Create a MetricsFactory consumer to register metrics for a data source - // IFF metrics are enabled globally and for the data source - // (they are enabled for each data source by default if they are also enabled globally) - if (dataSourcesBuildTimeConfig.metricsEnabled && - aggregatedDataSourceBuildTimeConfig.getJdbcConfig().enableMetrics.orElse(true)) { - datasourceMetrics.produce(new MetricsFactoryConsumerBuildItem( - recorder.registerDataSourceMetrics(aggregatedDataSourceBuildTimeConfig.getName()))); - } - } -} ----- - -- The associated recorder should use the provided `MetricsFactory` to register metrics. For Agroal, this means using the `MetricFactory` API to observe `io.agroal.api.AgroalDataSourceMetrics` methods. For example: -+ -[source%nowrap,java] ----- -/* RUNTIME_INIT */ -public Consumer registerDataSourceMetrics(String dataSourceName) { - return new Consumer() { - @Override - public void accept(MetricsFactory metricsFactory) { - String tagValue = DataSourceUtil.isDefault(dataSourceName) ? "default" : dataSourceName; - AgroalDataSourceMetrics metrics = getDataSource(dataSourceName).getMetrics(); - - // When using MP Metrics, the builder uses the VENDOR registry by default. - metricsFactory.builder("agroal.active.count") - .description( - "Number of active connections. These connections are in use and not available to be acquired.") - .tag("datasource", tagValue) - .buildGauge(metrics::activeCount); - .... ----- - -The `MetricsFactory` provides a fluid builder for registration of metrics, with the final step constructing gauges or counters based on a `Supplier` or `ToDoubleFunction`. Timers can either wrap `Callable`, `Runnable`, or `Supplier` implementations, or can use a `TimeRecorder` to accumulate chunks of time. The underlying metrics extension will create appropriate artifacts to observe or measure the defined functions. - -===== Using a Metrics API-specific implementation - -Using metrics-API specific implementations may be preferred in some cases. Jaeger, for example, defines its own metrics interface, `io.jaegertracing.spi.MetricsFactory`, that it uses to define counters and gauges. A direct mapping from that interface to the metrics system will be the most efficient. In this case, it is important to isolate these specialized implementations and to avoid eager classloading to ensure the metrics API remains an optional, compile-time dependency. - -`Optional metricsCapability` can be used in the build step to selectively control initialization of beans or the production of other build items. The Jaeger extension, for example, can use the following to control initialization of specialized Metrics API adapters: -+ -[source%nowrap,java] ----- -/* RUNTIME_INIT */ -@BuildStep -@Record(ExecutionTime.RUNTIME_INIT) -void setupTracer(JaegerDeploymentRecorder jdr, JaegerBuildTimeConfig buildTimeConfig, JaegerConfig jaeger, - ApplicationConfig appConfig, Optional metricsCapability) { - - // Indicates that this extension would like the SSL support to be enabled - extensionSslNativeSupport.produce(new ExtensionSslNativeSupportBuildItem(Feature.JAEGER.getName())); - - if (buildTimeConfig.enabled) { - // To avoid dependency creep, use two separate recorder methods for the two metrics systems - if (buildTimeConfig.metricsEnabled && metricsCapability.isPresent()) { - if (metricsCapability.get().metricsSupported(MetricsFactory.MICROMETER)) { - jdr.registerTracerWithMicrometerMetrics(jaeger, appConfig); - } else { - jdr.registerTracerWithMpMetrics(jaeger, appConfig); - } - } else { - jdr.registerTracerWithoutMetrics(jaeger, appConfig); - } - } -} ----- - -A recorder consuming a `MetricsFactory` can use `MetricsFactory::metricsSystemSupported()` can be used to control initialization of metrics objects during bytecode recording in a similar way. - -==== Case 3: It is necessary to collect metrics within the extension code - -To define your own metrics from scratch, you have two basic options: Use the generic `MetricFactory` builders, or follow the binder pattern, and create instrumentation specific to the enabled metrics extension. - -To use the extension-agnostic `MetricFactory` API, your processor can define a `BuildStep` that produces a `MetricsFactoryConsumerBuildItem` that uses a `RUNTIME_INIT` or `STATIC_INIT` Recorder to define a `MetricsFactory` consumer. -+ -[source%nowrap,java] ----- -@BuildStep -@Record(ExecutionTime.RUNTIME_INIT) -MetricsFactoryConsumerBuildItem registerMetrics(MyExtensionRecorder recorder) { - return new MetricsFactoryConsumerBuildItem(recorder.registerMetrics()); -} ----- -+ -- The associated recorder should use the provided `MetricsFactory` to register metrics, for example -+ -[source%nowrap,java] ----- -final LongAdder extensionCounter = new LongAdder(); - -/* RUNTIME_INIT */ -public Consumer registerMetrics() { - return new Consumer() { - @Override - public void accept(MetricsFactory metricsFactory) { - metricsFactory.builder("my.extension.counter") - .buildGauge(extensionCounter::longValue); - .... ----- - -Remember that metrics extensions are optional. Keep metrics-related initialization isolated from other setup for your extension, and structure your code to avoid eager imports of metrics APIs. Gathering metrics can also be expensive. Consider using additional extension-specific configuration to control behavior of metrics if the presence/absence of metrics support isn't sufficient. - -=== Customizing JSON handling from an extension - -Extensions often need to register serializers and/or deserializers for types the extension provides. - -For this, both Jackson and JSON-B extensions provide a way to register serializer/deserializer from within an -extension deployment module. - -Keep in mind that not everybody will need JSON, so you need to make it optional. - -If an extension intends to provide JSON related customization, -it is strongly advised to provide customization for both Jackson and JSON-B. - -==== Customizing Jackson - -First, add an *optional* dependency to `quarkus-jackson` on your extension's runtime module. - -[source%nowrap,xml] ----- - - io.quarkus - quarkus-jackson - true - ----- - -Then create a serializer or a deserializer (or both) for Jackson, an example of which can be seen in the `mongodb-panache` extension. - -[source%nowrap,java] ----- -public class ObjectIdSerializer extends StdSerializer { - public ObjectIdSerializer() { - super(ObjectId.class); - } - @Override - public void serialize(ObjectId objectId, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) - throws IOException { - if (objectId != null) { - jsonGenerator.writeString(objectId.toString()); - } - } -} ----- - -Add a dependency to `quarkus-jackson-spi` on your extension's deployment module. - -[source%nowrap,xml] ----- - - io.quarkus - quarkus-jackson-spi - ----- - -Add a build step to your processor to register a Jackson module via the `JacksonModuleBuildItem`. -You need to name your module in a unique way across all Jackson modules. - -[source%nowrap,java] ----- -@BuildStep -JacksonModuleBuildItem registerJacksonSerDeser() { - return new JacksonModuleBuildItem.Builder("ObjectIdModule") - .add(io.quarkus.mongodb.panache.jackson.ObjectIdSerializer.class.getName(), - io.quarkus.mongodb.panache.jackson.ObjectIdDeserializer.class.getName(), - ObjectId.class.getName()) - .build(); -} ----- - -The Jackson extension will then use the produced build item to register a module within Jackson automatically. - -If you need more customization capabilities than registering a module, -you can produce a CDI bean that implements `io.quarkus.jackson.ObjectMapperCustomizer` via an `AdditionalBeanBuildItem`. -More info about customizing Jackson can be found on the JSON guide xref:rest-json.adoc#configuring-json-support[Configuring JSON support] - -==== Customizing JSON-B -First, add an *optional* dependency to `quarkus-jsonb` on your extension's runtime module. - -[source%nowrap,xml] ----- - - io.quarkus - quarkus-jsonb - true - ----- - -Then create a serializer and/or a deserializer for JSON-B, an example of which can be seen in the `mongodb-panache` extension. - -[source%nowrap,java] ----- -public class ObjectIdSerializer implements JsonbSerializer { - @Override - public void serialize(ObjectId obj, JsonGenerator generator, SerializationContext ctx) { - if (obj != null) { - generator.write(obj.toString()); - } - } -} ----- - -Add a dependency to `quarkus-jsonb-spi` on your extension's deployment module. - -[source%nowrap,xml] ----- - - io.quarkus - quarkus-jsonb-spi - ----- - -Add a build step to your processor to register the serializer via the `JsonbSerializerBuildItem`. - -[source%nowrap,java] ----- -@BuildStep -JsonbSerializerBuildItem registerJsonbSerializer() { - return new JsonbSerializerBuildItem(io.quarkus.mongodb.panache.jsonb.ObjectIdSerializer.class.getName())); -} ----- - -The JSON-B extension will then use the produced build item to register your serializer/deserializer automatically. - -If you need more customization capabilities than registering a serializer or a deserializer, -you can produce a CDI bean that implements `io.quarkus.jsonb.JsonbConfigCustomizer` via an `AdditionalBeanBuildItem`. -More info about customizing JSON-B can be found on the JSON guide xref:rest-json.adoc#configuring-json-support[Configuring JSON support] - -=== Integrating with Development Mode - -There are various APIS that you can use to integrate with development mode, and to get information about the current state. - -==== Handling restarts - -When Quarkus is starting the `io.quarkus.deployment.builditem.LiveReloadBuildItem` is guaranteed to be present that gives -information about this start, in particular: - -- Is this a clean start or a live reload -- If this is a live reload which changed files / classes triggered the reload - -It also provides a global context map you can use to store information between restarts, without needing to resort to -static fields. - -==== Triggering Live Reload - -Live reload is generally triggered by a HTTP request, however not all applications are HTTP applications and some extensions -may want to trigger live reload based on other events. To do this you need to implement `io.quarkus.dev.spi.HotReplacementSetup` -in your runtime module, and add a `META-INF/services/io.quarkus.dev.spi.HotReplacementSetup` that lists your implementation. - -On startup the `setupHotDeployment` method will be called, and you can use the provided `io.quarkus.dev.spi.HotReplacementContext` -to initiate a scan for changed files. - -=== Testing Extensions - -Testing of Quarkus extensions should be done with the `io.quarkus.test.QuarkusUnitTest` JUnit 5 extension. -This extension allows for Arquillian-style tests that test specific functionalities. -It is not intended for testing user applications, as this should be done via `io.quarkus.test.junit.QuarkusTest`. -The main difference is that `QuarkusTest` simply boots the application once at the start of the run, while `QuarkusUnitTest` deploys a custom -Quarkus application for each test class. - -These tests should be placed in the deployment module, if additional Quarkus modules are required for testing -their deployment modules should also be added as test scoped dependencies. - -Note that `QuarkusUnitTest` is in the `quarkus-junit5-internal` module. - -An example test class may look like: - -[source,java] ----- -package io.quarkus.health.test; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import javax.enterprise.inject.Instance; -import javax.inject.Inject; - -import org.eclipse.microprofile.health.Liveness; -import org.eclipse.microprofile.health.HealthCheck; -import org.eclipse.microprofile.health.HealthCheckResponse; -import io.quarkus.test.QuarkusUnitTest; -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.asset.EmptyAsset; -import org.jboss.shrinkwrap.api.spec.JavaArchive; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; - -import io.restassured.RestAssured; - -public class FailingUnitTest { - - @RegisterExtension // <1> - static final QuarkusUnitTest config = new QuarkusUnitTest() - .setArchiveProducer(() -> - ShrinkWrap.create(JavaArchive.class) // <2> - .addClasses(FailingHealthCheck.class) - .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml") - ); - - @Inject // <3> - @Liveness - Instance checks; - - @Test - public void testHealthServlet() { - RestAssured.when().get("/q/health").then().statusCode(503); // <4> - } - - @Test - public void testHealthBeans() { - List check = new ArrayList<>(); // <5> - for (HealthCheck i : checks) { - check.add(i); - } - assertEquals(1, check.size()); - assertEquals(HealthCheckResponse.State.DOWN, check.get(0).call().getState()); - } -} ----- - -<1> The `QuarkusUnitTest` extension must be used with a static field. If used with a non-static field, the test application is not started. -<2> This producer is used to build the application to be tested. It uses Shrinkwrap to create a JavaArchive to test -<3> It is possible to inject beans from our test deployment directly into the test case -<4> This method directly invokes the health check Servlet and verifies the response -<5> This method uses the injected health check bean to verify it is returning the expected result - -If you want to test that an extension properly fails at build time, use the `setExpectedException` method: - -[source,java] ----- - -package io.quarkus.hibernate.orm; - -import io.quarkus.runtime.configuration.ConfigurationException; -import io.quarkus.test.QuarkusUnitTest; -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.spec.JavaArchive; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; - -public class PersistenceAndQuarkusConfigTest { - - @RegisterExtension - static QuarkusUnitTest runner = new QuarkusUnitTest() - .setExpectedException(ConfigurationException.class) <1> - .withApplicationRoot((jar) -> jar - .addAsManifestResource("META-INF/some-persistence.xml", "persistence.xml") - .addAsResource("application.properties")); - - @Test - public void testPersistenceAndConfigTest() { - // should not be called, deployment exception should happen first: - // it's illegal to have Hibernate configuration properties in both the - // application.properties and in the persistence.xml - Assertions.fail(); - } - -} ----- - -<1> This tells JUnit that the Quarkus deployment should fail with a specific exception - - -=== Testing hot reload - -It is also possible to write tests that verify an extension works correctly in development mode and can correctly -handle updates. - -For most extensions this will just work 'out of the box', however it is still a good idea to have a smoke test to -verify that this functionality is working as expected. To test this we use `QuarkusDevModeTest`: - - -[source,java] ----- -public class ServletChangeTestCase { - - @RegisterExtension - final static QuarkusDevModeTest test = new QuarkusDevModeTest() - .setArchiveProducer(new Supplier() { - @Override - public JavaArchive get() { - return ShrinkWrap.create(JavaArchive.class) <1> - .addClass(DevServlet.class) - .addAsManifestResource(new StringAsset("Hello Resource"), "resources/file.txt"); - } - }); - - @Test - public void testServletChange() throws InterruptedException { - RestAssured.when().get("/dev").then() - .statusCode(200) - .body(is("Hello World")); - - test.modifySourceFile("DevServlet.java", new Function() { <2> - - @Override - public String apply(String s) { - return s.replace("Hello World", "Hello Quarkus"); - } - }); - - RestAssured.when().get("/dev").then() - .statusCode(200) - .body(is("Hello Quarkus")); - } - - @Test - public void testAddServlet() throws InterruptedException { - RestAssured.when().get("/new").then() - .statusCode(404); - - test.addSourceFile(NewServlet.class); <3> - - RestAssured.when().get("/new").then() - .statusCode(200) - .body(is("A new Servlet")); - } - - @Test - public void testResourceChange() throws InterruptedException { - RestAssured.when().get("/file.txt").then() - .statusCode(200) - .body(is("Hello Resource")); - - test.modifyResourceFile("META-INF/resources/file.txt", new Function() { <4> - - @Override - public String apply(String s) { - return "A new resource"; - } - }); - - RestAssured.when().get("file.txt").then() - .statusCode(200) - .body(is("A new resource")); - } - - @Test - public void testAddResource() throws InterruptedException { - - RestAssured.when().get("/new.txt").then() - .statusCode(404); - - test.addResourceFile("META-INF/resources/new.txt", "New File"); <5> - - RestAssured.when().get("/new.txt").then() - .statusCode(200) - .body(is("New File")); - - } -} ----- - -<1> This starts the deployment, your test can modify it as part of the test suite. Quarkus will be restarted between -each test method so every method starts with a clean deployment. - -<2> This method allows you to modify the source of a class file. The old source is passed into the function, and the updated -source is returned. - -<3> This method adds a new class file to the deployment. The source that is used will be the original source that is part -of the current project. - -<4> This method modifies a static resource - -<5> This method adds a new static resource - -=== Native Executable Support - -There Quarkus provides a lot of build items that control aspects of the native executable build. This allows for extensions -to programmatically perform tasks such as registering classes for reflection or adding static resources to the native -executable. Some of these build items are listed below: - -`io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem`:: - Includes static resources into the native executable. - -`io.quarkus.deployment.builditem.nativeimage.NativeImageResourceDirectoryBuildItem`:: - Includes directory's static resources into the native executable. - -`io.quarkus.deployment.builditem.nativeimage.RuntimeReinitializedClassBuildItem`:: -A class that will be reinitialized at runtime by Substrate. This will result in the static initializer running twice. - -`io.quarkus.deployment.builditem.nativeimage.NativeImageSystemPropertyBuildItem`:: -A system property that will be set at native executable build time. - -`io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBundleBuildItem`:: -Includes a resource bundle in the native executable. - -`io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem`:: -Registers a class for reflection in Substrate. Constructors are always registered, while methods and fields are optional. - -`io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem`:: -A class that will be initialized at runtime rather than build time. This will cause the build to fail if the class is initialized as part of the native executable build process, so care must be taken. - -`io.quarkus.deployment.builditem.nativeimage.NativeImageConfigBuildItem`:: -A convenience feature that allows you to control most of the above features from a single build item. - -`io.quarkus.deployment.builditem.NativeImageEnableAllCharsetsBuildItem`:: -Indicates that all charsets should be enabled in native image. - -`io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem`:: -A convenient way to tell Quarkus that the extension requires SSL and it should be enabled during native image build. -When using this feature, remember to add your extension to the list of extensions that offer SSL support automatically on the https://github.com/quarkusio/quarkus/blob/main/docs/src/main/asciidoc/native-and-ssl.adoc[native and ssl guide]. - -=== IDE support tips - -==== Writing Quarkus extensions in Eclipse - -The only particular aspect of writing Quarkus extensions in Eclipse is that APT (Annotation Processing Tool) is required as part of extension builds, which means you need to: - -- Install `m2e-apt` from https://marketplace.eclipse.org/content/m2e-apt -- Define this property in your `pom.xml`: `jdt_apt`, although if you rely on `io.quarkus:quarkus-build-parent` you will get it for free. -- If you have the `io.quarkus:quarkus-extension-processor` project open at the same time in your IDE (for example, if you have the Quarkus sources checked out and open in your IDE) you will need to close that project. Otherwise, Eclipse will not invoke the APT plugin that it contains. -- If you just closed the extension processor project, be sure to do `Maven > Update Project` on the other projects in order for Eclipse to pick up the extension processor from the Maven repository. - -=== Troubleshooting / Debugging Tips - -// This id was previously used for the "Dump the Generated Classes to the File System" section -[[dump-the-generated-classes-to-the-file-system]] -==== Inspecting the Generated/Transformed Classes - -Quarkus generates a lot of classes during the build phase and in many cases also transforms existing classes. -It is often extremely useful to see the generated bytecode and transformed classes during the development of an extension. - -If you set the `quarkus.package.fernflower.enabled` property to `true` then Quarkus will download and invoke the https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine[Fernflower decompiler] and dump the result in the `decompiled` directory of the build tool output (`target/decompiled` for Maven for example). - -NOTE: This property only works during a normal production build (i.e. not for dev mode/tests) and when `fast-jar` packaging type is used (the default behavior). - -There are also three system properties that allow you to dump the generated/transformed classes to the filesystem and inspect them later, for example via a decompiler in your IDE. - -- `quarkus.debug.generated-classes-dir` - to dump the generated classes, such as bean metadata -- `quarkus.debug.transformed-classes-dir` - to dump the transformed classes, e.g. Panache entities -- `quarkus.debug.generated-sources-dir` - to dump the ZIG files; ZIG file is a textual representation of the generated code that is referenced in the stack traces - -These properties are especially useful in the development mode or when running the tests where the generated/transformed classes are only held in memory in a class loader. - -For example, you can specify the `quarkus.debug.generated-classes-dir` system property to have these classes written out to disk for inspection in the development mode: - -[source,bash] ----- -./mvnw quarkus:dev -Dquarkus.debug.generated-classes-dir=dump-classes ----- - -NOTE: The property value could be either an absolute path, such as `/home/foo/dump` on a Linux machine, or a path relative to the user working directory, i.e. `dump` corresponds to the `{user.dir}/target/dump` in the dev mode and `{user.dir}/dump` when running the tests. - -You should see a line in the log for each class written to the directory: - -[source,text] ----- -INFO [io.qua.run.boo.StartupActionImpl] (main) Wrote /path/to/my/app/target/dump-classes/io/quarkus/arc/impl/ActivateRequestContextInterceptor_Bean.class ----- - -The property is also honored when running tests: - -[source,bash] ----- -./mvnw clean test -Dquarkus.debug.generated-classes-dir=target/dump-generated-classes ----- - -Analogously, you can use the `quarkus.debug.transformed-classes-dir` and `quarkus.debug.transformed-classes-dir` properties to dump the relevant output. - -==== Multi-module Maven Projects and the Development Mode - -It's not uncommon to develop an extension in a multi-module Maven project that also contains an "example" module. -However, if you want to run the example in the development mode then the `-DnoDeps` system property must be used in order to exclude the local project dependencies. -Otherwise, Quarkus attempts to monitor the extension classes and this may result in weird class loading issues. - -[source,bash] ----- -./mvnw compile quarkus:dev -DnoDeps ----- - -==== Indexer does not include your external dependency - -Remember to add `IndexDependencyBuildItem` artifacts to your `@BuildStep`. - -=== Sample Test Extension -We have an extension that is used to test for regressions in the extension processing. It is located in {quarkus-tree-url}/core/test-extension directory. In this section we touch on some of the tasks an extension -author will typically need to perform using the test-extension code to illustrate how the task could be done. - -==== Features and Capabilities - -===== Features - -A _feature_ represents a functionality provided by an extension. -The name of the feature gets displayed in the log during application bootstrap. - -.Example Startup Lines -[source,text] ----- -2019-03-22 14:02:37,884 INFO [io.quarkus] (main) Quarkus 999-SNAPSHOT started in 0.061s. -2019-03-22 14:02:37,884 INFO [io.quarkus] (main) Installed features: [cdi, test-extension] <1> ----- -<1> A list of features installed in the runtime image - -A feature can be registered in a <> method that produces a `FeatureBuildItem`: - -.TestProcessor#feature() -[source,java] ----- - @BuildStep - FeatureBuildItem feature() { - return new FeatureBuildItem("test-extension"); - } ----- - -The name of the feature should only contain lowercase characters, words are separated by dash; e.g. `security-jpa`. -An extension should provide at most one feature and the name must be unique. -If multiple extensions register a feature of the same name the build fails. - -The feature name should also map to a label in the extension's `devtools/common/src/main/filtered/extensions.json` entry so that -the feature name displayed by the startup line matches a label that one can used to select the extension when creating a project -using the Quarkus maven plugin as shown in this example taken from the xref:rest-json.adoc[Writing JSON REST Services] guide where the `resteasy-jackson` feature is referenced: - -[source,bash,subs=attributes+] ----- -mvn io.quarkus.platform:quarkus-maven-plugin:{quarkus-version}:create \ - -DprojectGroupId=org.acme \ - -DprojectArtifactId=rest-json \ - -DclassName="org.acme.rest.json.FruitResource" \ - -Dpath="/fruits" \ - -Dextensions="resteasy,resteasy-jackson" -cd rest-json ----- - -===== Capabilities - -A _capability_ represents a technical capability that can be queried by other extensions. -An extension may provide multiple capabilities and multiple extensions can provide the same capability. -By default, capabilities are not displayed to users. -Capabilities should be used when checking for the presence of an extension rather than class path based checks. - -Capabilities can be registered in a <> method that produces a `CapabilityBuildItem`: - -.TestProcessor#capability() -[source,java] ----- - @BuildStep - void capabilities(BuildProducer capabilityProducer) { - capabilityProducer.produce(new CapabilityBuildItem("org.acme.test-transactions")); - capabilityProducer.produce(new CapabilityBuildItem("org.acme.test-metrics")); - } ----- - -Extensions can consume registered capabilities using the `Capabilities` build item: - -.TestProcessor#doSomeCoolStuff() -[source,java] ----- - @BuildStep - void doSomeCoolStuff(Capabilities capabilities) { - if (capabilities.isPresent(Capability.TRANSACTIONS)) { - // do something only if JTA transactions are in... - } - } ----- - -Capabilities should follow the naming conventions of Java packages; e.g. `io.quarkus.security.jpa`. -Capabilities provided by core extensions should be listed in the `io.quarkus.deployment.Capability` enum and their name should always start with the `io.quarkus` prefix. - -==== Bean Defining Annotations -The CDI layer processes CDI beans that are either explicitly registered or that it discovers based on bean defining annotations as defined in https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.html#bean_defining_annotations[2.5.1. Bean defining annotations]. You can expand this set of annotations to include annotations your extension processes using a `BeanDefiningAnnotationBuildItem` as shown in this `TestProcessor#registerBeanDefinningAnnotations` example: - -.Register a Bean Defining Annotation -[source,java] ----- -import javax.enterprise.context.ApplicationScoped; -import org.jboss.jandex.DotName; -import io.quarkus.extest.runtime.TestAnnotation; - -public final class TestProcessor { - static DotName TEST_ANNOTATION = DotName.createSimple(TestAnnotation.class.getName()); - static DotName TEST_ANNOTATION_SCOPE = DotName.createSimple(ApplicationScoped.class.getName()); - -... - - @BuildStep - BeanDefiningAnnotationBuildItem registerX() { - <1> - return new BeanDefiningAnnotationBuildItem(TEST_ANNOTATION, TEST_ANNOTATION_SCOPE); - } -... -} - -/** - * Marker annotation for test configuration target beans - */ -@Target({ TYPE }) -@Retention(RUNTIME) -@Documented -@Inherited -public @interface TestAnnotation { -} - -/** - * A sample bean - */ -@TestAnnotation <2> -public class ConfiguredBean implements IConfigConsumer { - -... ----- -<1> Register the annotation class and CDI default scope using the Jandex `DotName` class. -<2> `ConfiguredBean` will be processed by the CDI layer the same as a bean annotated with the CDI standard @ApplicationScoped. - -==== Parsing Config to Objects -One of the main things an extension is likely to do is completely separate the configuration phase of behavior from the runtime phase. Frameworks often do parsing/load of configuration on startup that can be done during build time to both reduce the runtime dependencies on frameworks like xml parsers as well as reducing the startup time the parsing incurs. - -An example of parsing a XML config file using JAXB is shown in the `TestProcessor#parseServiceXmlConfig` method: -.Parsing an XML Configuration into Runtime XmlConfig Instance -[source,java] ----- - @BuildStep - @Record(STATIC_INIT) - RuntimeServiceBuildItem parseServiceXmlConfig(TestRecorder recorder) throws JAXBException { - RuntimeServiceBuildItem serviceBuildItem = null; - JAXBContext context = JAXBContext.newInstance(XmlConfig.class); - Unmarshaller unmarshaller = context.createUnmarshaller(); - InputStream is = getClass().getResourceAsStream("/config.xml"); <1> - if (is != null) { - log.info("Have XmlConfig, loading"); - XmlConfig config = (XmlConfig) unmarshaller.unmarshal(is); <2> -... - } - return serviceBuildItem; - } - ----- -<1> Look for a config.xml classpath resource -<2> If found, parse using JAXB context for `XmlConfig.class` - -[NOTE] -==== -If there was no /config.xml resource available in the build environment, then a null `RuntimeServiceBuildItem` would be returned and no subsequent logic based on a `RuntimeServiceBuildItem` being produced would execute. -==== - -Typically one is loading a configuration to create some runtime component/service as `parseServiceXmlConfig` is doing. We will come back to the rest of the behavior in `parseServiceXmlConfig` in the following <> section. - -If for some reason you need to parse the config and use it in other build steps in an extension processor, you would need to create an `XmlConfigBuildItem` to pass the parsed XmlConfig instance around. - -[TIP] -==== -If you look at the XmlConfig code you will see that it does carry around the JAXB annotations. If you don't want these in the runtime image, you could clone the XmlConfig instance into some POJO object graph and then replace XmlConfig with the POJO class. We will do this in <>. -==== - -==== Scanning Deployments Using Jandex -If your extension defines annotations or interfaces that mark beans needing to be processed, you can locate these beans using the Jandex API, a Java annotation indexer and offline reflection library. The following `TestProcessor#scanForBeans` method shows how to find the beans annotated with our `@TestAnnotation` that also implement the `IConfigConsumer` interface: - -.Example Jandex Usage -[source,java] ----- - static DotName TEST_ANNOTATION = DotName.createSimple(TestAnnotation.class.getName()); -... - - @BuildStep - @Record(STATIC_INIT) - void scanForBeans(TestRecorder recorder, BeanArchiveIndexBuildItem beanArchiveIndex, <1> - BuildProducer testBeanProducer) { - IndexView indexView = beanArchiveIndex.getIndex(); <2> - Collection testBeans = indexView.getAnnotations(TEST_ANNOTATION); <3> - for (AnnotationInstance ann : testBeans) { - ClassInfo beanClassInfo = ann.target().asClass(); - try { - boolean isConfigConsumer = beanClassInfo.interfaceNames() - .stream() - .anyMatch(dotName -> dotName.equals(DotName.createSimple(IConfigConsumer.class.getName()))); <4> - if (isConfigConsumer) { - Class beanClass = (Class) Class.forName(beanClassInfo.name().toString(), false, Thread.currentThread().getContextClassLoader()); - testBeanProducer.produce(new TestBeanBuildItem(beanClass)); <5> - log.infof("Configured bean: %s", beanClass); - } - } catch (ClassNotFoundException e) { - log.warn("Failed to load bean class", e); - } - } - } ----- -<1> Depend on a `BeanArchiveIndexBuildItem` to have the build step be run after the deployment has been indexed. -<2> Retrieve the index. -<3> Find all beans annotated with `@TestAnnotation`. -<4> Determine which of these beans also has the `IConfigConsumer` interface. -<5> Save the bean class in a `TestBeanBuildItem` for use in a latter RUNTIME_INIT build step that will interact with the bean instances. - -==== Interacting With Extension Beans -You can use the `io.quarkus.arc.runtime.BeanContainer` interface to interact with your extension beans. The following `configureBeans` methods illustrate interacting with the beans scanned for in the previous section: - -.Using CDI BeanContainer Interface -[source,java] ----- -// TestProcessor#configureBeans - @BuildStep - @Record(RUNTIME_INIT) - void configureBeans(TestRecorder recorder, List testBeans, <1> - BeanContainerBuildItem beanContainer, <2> - TestRunTimeConfig runTimeConfig) { - - for (TestBeanBuildItem testBeanBuildItem : testBeans) { - Class beanClass = testBeanBuildItem.getConfigConsumer(); - recorder.configureBeans(beanContainer.getValue(), beanClass, buildAndRunTimeConfig, runTimeConfig); <3> - } - } - -// TestRecorder#configureBeans - public void configureBeans(BeanContainer beanContainer, Class beanClass, - TestBuildAndRunTimeConfig buildTimeConfig, - TestRunTimeConfig runTimeConfig) { - log.info("Begin BeanContainerListener callback\n"); - IConfigConsumer instance = beanContainer.instance(beanClass); <4> - instance.loadConfig(buildTimeConfig, runTimeConfig); <5> - log.infof("configureBeans, instance=%s\n", instance); - } ----- -<1> Consume the `TestBeanBuildItem`s produced from the scanning build step. -<2> Consume the `BeanContainerBuildItem` to order this build step to run after the CDI bean container has been created. -<3> Call the runtime recorder to record the bean interactions. -<4> Runtime recorder retrieves the bean using its type. -<5> Runtime recorder invokes the `IConfigConsumer#loadConfig(...)` method passing in the configuration objects with runtime information. - -==== Manage Non-CDI Service -A common purpose for an extension is to integrate a non-CDI aware service into the CDI based Quarkus runtime. Step 1 of this task is to load any configuration needed in a STATIC_INIT build step as we did in <>. Now we need to create an instance of the service using the configuration. Let's return to the `TestProcessor#parseServiceXmlConfig` method to see how this can be done. - -.Creating a Non-CDI Service -[source,java] ----- -// TestProcessor#parseServiceXmlConfig - @BuildStep - @Record(STATIC_INIT) - RuntimeServiceBuildItem parseServiceXmlConfig(TestRecorder recorder) throws JAXBException { - RuntimeServiceBuildItem serviceBuildItem = null; - JAXBContext context = JAXBContext.newInstance(XmlConfig.class); - Unmarshaller unmarshaller = context.createUnmarshaller(); - InputStream is = getClass().getResourceAsStream("/config.xml"); - if (is != null) { - log.info("Have XmlConfig, loading"); - XmlConfig config = (XmlConfig) unmarshaller.unmarshal(is); - log.info("Loaded XmlConfig, creating service"); - RuntimeValue service = recorder.initRuntimeService(config); //<1> - serviceBuildItem = new RuntimeServiceBuildItem(service); //<3> - } - return serviceBuildItem; - } - -// TestRecorder#initRuntimeService - public RuntimeValue initRuntimeService(XmlConfig config) { - RuntimeXmlConfigService service = new RuntimeXmlConfigService(config); //<2> - return new RuntimeValue<>(service); - } - -// RuntimeServiceBuildItem - final public class RuntimeServiceBuildItem extends SimpleBuildItem { - private RuntimeValue service; - - public RuntimeServiceBuildItem(RuntimeValue service) { - this.service = service; - } - - public RuntimeValue getService() { - return service; - } -} ----- -<1> Call into the runtime recorder to record the creation of the service. -<2> Using the parsed `XmlConfig` instance, create an instance of `RuntimeXmlConfigService` and wrap it in a `RuntimeValue`. Use a `RuntimeValue` wrapper for non-interface objects that are non-proxiable. -<3> Wrap the return service value in a `RuntimeServiceBuildItem` for use in a RUNTIME_INIT build step that will start the service. - -===== Starting a Service -Now that you have recorded the creation of a service during the build phase, you need to record how to start the service at runtime during booting. You do this with a RUNTIME_INIT build step as shown in the `TestProcessor#startRuntimeService` method. - -.Starting/Stopping a Non-CDI Service -[source,java] ----- -// TestProcessor#startRuntimeService - @BuildStep - @Record(RUNTIME_INIT) - ServiceStartBuildItem startRuntimeService(TestRecorder recorder, ShutdownContextBuildItem shutdownContextBuildItem , // <1> - RuntimeServiceBuildItem serviceBuildItem) throws IOException { // <2> - if (serviceBuildItem != null) { - log.info("Registering service start"); - recorder.startRuntimeService(shutdownContextBuildItem, serviceBuildItem.getService()); // <3> - } else { - log.info("No RuntimeServiceBuildItem seen, check config.xml"); - } - return new ServiceStartBuildItem("RuntimeXmlConfigService"); //<4> - } - -// TestRecorder#startRuntimeService - public void startRuntimeService(ShutdownContext shutdownContext, RuntimeValue runtimeValue) - throws IOException { - RuntimeXmlConfigService service = runtimeValue.getValue(); - service.startService(); //<5> - shutdownContext.addShutdownTask(service::stopService); //<6> - } ----- -<1> We consume a ShutdownContextBuildItem to register the service shutdown. -<2> We consume the previously initialized service captured in `RuntimeServiceBuildItem`. -<3> Call the runtime recorder to record the service start invocation. -<4> Produce a `ServiceStartBuildItem` to indicate the startup of a service. See <> for details. -<5> Runtime recorder retrieves the service instance reference and calls its `startService` method. -<6> Runtime recorder registers an invocation of the service instance `stopService` method with the Quarkus `ShutdownContext`. - -The code for the `RuntimeXmlConfigService` can be viewed here: -{quarkus-blob-url}/core/test-extension/runtime/src/main/java/io/quarkus/extest/runtime/RuntimeXmlConfigService.java[RuntimeXmlConfigService.java] - -The testcase for validating that the `RuntimeXmlConfigService` has started can be found in the `testRuntimeXmlConfigService` test of `ConfiguredBeanTest` and `NativeImageIT`. - -==== Startup and Shutdown Events -The Quarkus container supports startup and shutdown lifecycle events to notify components of the container startup -and shutdown. There are CDI events fired that components can observe are illustrated in this example: - -.Observing Container Startup -[source,java] ----- -import io.quarkus.runtime.ShutdownEvent; -import io.quarkus.runtime.StartupEvent; - -public class SomeBean { - /** - * Called when the runtime has started - * @param event - */ - void onStart(@Observes StartupEvent event) { // <1> - System.out.printf("onStart, event=%s%n", event); - } - - /** - * Called when the runtime is shutting down - * @param event - */ - void onStop(@Observes ShutdownEvent event) { // <2> - System.out.printf("onStop, event=%s%n", event); - } -} ----- -<1> Observe a `StartupEvent` to be notified the runtime has started. -<2> Observe a `ShutdownEvent` to be notified when the runtime is going to shutdown. - -What is the relevance of startup and shutdown events for extension authors? We have already seen the use of a `ShutdownContext` -to register a callback to perform shutdown tasks in the <> section. These shutdown tasks would be called -after a `ShutdownEvent` had been sent. - -A `StartupEvent` is fired after all `io.quarkus.deployment.builditem.ServiceStartBuildItem` producers have been consumed. -The implication of this is that if an extension has services that application components would expect to have been -started when they observe a `StartupEvent`, the build steps that invoke the runtime code to start those services needs -to produce a `ServiceStartBuildItem` to ensure that the runtime code is run before the `StartupEvent` is sent. Recall that -we saw the production of a `ServiceStartBuildItem` in the previous section, and it is repeated here for clarity: - -.Example of Producing a ServiceStartBuildItem -[source,java] ----- -// TestProcessor#startRuntimeService - @BuildStep - @Record(RUNTIME_INIT) - ServiceStartBuildItem startRuntimeService(TestRecorder recorder, ShutdownContextBuildItem shutdownContextBuildItem, - RuntimeServiceBuildItem serviceBuildItem) throws IOException { -... - return new ServiceStartBuildItem("RuntimeXmlConfigService"); //<1> - } ----- -<1> Produce a `ServiceStartBuildItem` to indicate that this is a service starting step that needs to run before the `StartupEvent` is sent. - -==== Register Resources for Use in Native Image -Not all configuration or resources can be consumed at build time. If you have classpath resources that the runtime needs to access, you need to inform the build phase that these resources need to be copied into the native image. This is done by producing one or more `NativeImageResourceBuildItem` or `NativeImageResourceBundleBuildItem` in the case of resource bundles. Examples of this are shown in this sample `registerNativeImageResources` build step: - -.Registering Resources and ResourceBundles -[source,java] ----- -public final class MyExtProcessor { - @Inject - BuildProducer resource; - @Inject - BuildProducer resourceBundle; - - @BuildStep - void registerNativeImageResources() { - resource.produce(new NativeImageResourceBuildItem("/security/runtime.keys")); //<1> - - resource.produce(new NativeImageResourceBuildItem( - "META-INF/my-descriptor.xml")); //<2> - - resourceBundle.produce(new NativeImageResourceBuildItem("javax.xml.bind.Messages")); //<3> - } -} ----- -<1> Indicate that the /security/runtime.keys classpath resource should be copied into native image. -<2> Indicate that the `META-INF/my-descriptor.xml` resource should be copied into native image -<3> Indicate that the "javax.xml.bind.Messages" resource bundle should be copied into native image. - -==== Service files - -If you are using `META-INF/services` files you need to register the files as resources so that your native image can find them, -but you also need to register each listed class for reflection so they can be instantiated or inspected at run-time: - -[source,java] ----- -public final class MyExtProcessor { - - @BuildStep - void registerNativeImageResources(BuildProducer services) { - String service = "META-INF/services/" + io.quarkus.SomeService.class.getName(); - - // find out all the implementation classes listed in the service files - Set implementations = - ServiceUtil.classNamesNamedIn(Thread.currentThread().getContextClassLoader(), - service); - - // register every listed implementation class so they can be instantiated - // in native-image at run-time - services.produce( - new ServiceProviderBuildItem(io.quarkus.SomeService.class.getName(), - implementations.toArray(new String[0]))); - } -} ----- - -WARNING: `ServiceProviderBuildItem` takes a list of service implementation classes as parameters: if -you are not reading them from the service file, make sure that they correspond to the service file contents -because the service file will still be read and used at run-time. This is not a substitute for writing a service -file. - -NOTE: This only registers the implementation classes for instantiation via reflection (you will not be able -to inspect its fields and methods). If you need to do that, you can do it this way: - -[source,java] ----- -public final class MyExtProcessor { - - @BuildStep - void registerNativeImageResources(BuildProducer resource, - BuildProducer reflectionClasses) { - String service = "META-INF/services/" + io.quarkus.SomeService.class.getName(); - - // register the service file so it is visible in native-image - resource.produce(new NativeImageResourceBuildItem(service)); - - // register every listed implementation class so they can be inspected/instantiated - // in native-image at run-time - Set implementations = - ServiceUtil.classNamesNamedIn(Thread.currentThread().getContextClassLoader(), - service); - reflectionClasses.produce( - new ReflectiveClassBuildItem(true, true, implementations.toArray(new String[0]))); - } -} ----- - -While this is the easiest way to get your services running natively, it's less efficient than scanning the implementation -classes at build time and generating code that registers them at static-init time instead of relying on reflection. - -You can achieve that by adapting the previous build step to use a static-init recorder instead of registering -classes for reflection: - -[source,java] ----- -public final class MyExtProcessor { - - @BuildStep - @Record(ExecutionTime.STATIC_INIT) - void registerNativeImageResources(RecorderContext recorderContext, - SomeServiceRecorder recorder) { - String service = "META-INF/services/" + io.quarkus.SomeService.class.getName(); - - // read the implementation classes - Collection> implementationClasses = new LinkedHashSet<>(); - Set implementations = ServiceUtil.classNamesNamedIn(Thread.currentThread().getContextClassLoader(), - service); - for(String implementation : implementations) { - implementationClasses.add((Class) - recorderContext.classProxy(implementation)); - } - - // produce a static-initializer with those classes - recorder.configure(implementationClasses); - } -} - -@Recorder -public class SomeServiceRecorder { - - public void configure(List> implementations) { - // configure our service statically - SomeServiceProvider serviceProvider = SomeServiceProvider.instance(); - SomeServiceBuilder builder = serviceProvider.getSomeServiceBuilder(); - - List services = new ArrayList<>(implementations.size()); - // instantiate the service implementations - for (Class implementationClass : implementations) { - try { - services.add(implementationClass.getConstructor().newInstance()); - } catch (Exception e) { - throw new IllegalArgumentException("Unable to instantiate service " + implementationClass, e); - } - } - - // build our service - builder.withSomeServices(implementations.toArray(new io.quarkus.SomeService[0])); - ServiceManager serviceManager = builder.build(); - - // register it - serviceProvider.registerServiceManager(serviceManager, Thread.currentThread().getContextClassLoader()); - } -} ----- - - -==== Object Substitution -Objects created during the build phase that are passed into the runtime need to have a default constructor in order for them to be created and configured at startup of the runtime from the build time state. If an object does not have a default constructor you will see an error similar to the following during generation of the augmented artifacts: - -.DSAPublicKey Serialization Error -[source,text] ----- - [error]: Build step io.quarkus.deployment.steps.MainClassBuildStep#build threw an exception: java.lang.RuntimeException: Unable to serialize objects of type class sun.security.provider.DSAPublicKeyImpl to bytecode as it has no default constructor - at io.quarkus.builder.Execution.run(Execution.java:123) - at io.quarkus.builder.BuildExecutionBuilder.execute(BuildExecutionBuilder.java:136) - at io.quarkus.deployment.QuarkusAugmentor.run(QuarkusAugmentor.java:110) - at io.quarkus.runner.RuntimeRunner.run(RuntimeRunner.java:99) - ... 36 more ----- - -There is a `io.quarkus.runtime.ObjectSubstitution` interface that can be implemented to tell Quarkus how to handle such classes. An example implementation for the `DSAPublicKey` is shown here: - -.DSAPublicKeyObjectSubstitution Example -[source,java] ----- -package io.quarkus.extest.runtime.subst; - -import java.security.KeyFactory; -import java.security.NoSuchAlgorithmException; -import java.security.interfaces.DSAPublicKey; -import java.security.spec.InvalidKeySpecException; -import java.security.spec.X509EncodedKeySpec; -import java.util.logging.Logger; - -import io.quarkus.runtime.ObjectSubstitution; - -public class DSAPublicKeyObjectSubstitution implements ObjectSubstitution { - private static final Logger log = Logger.getLogger("DSAPublicKeyObjectSubstitution"); - @Override - public KeyProxy serialize(DSAPublicKey obj) { //<1> - log.info("DSAPublicKeyObjectSubstitution.serialize"); - byte[] encoded = obj.getEncoded(); - KeyProxy proxy = new KeyProxy(); - proxy.setContent(encoded); - return proxy; - } - - @Override - public DSAPublicKey deserialize(KeyProxy obj) { //<2> - log.info("DSAPublicKeyObjectSubstitution.deserialize"); - byte[] encoded = obj.getContent(); - X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(encoded); - DSAPublicKey dsaPublicKey = null; - try { - KeyFactory kf = KeyFactory.getInstance("DSA"); - dsaPublicKey = (DSAPublicKey) kf.generatePublic(publicKeySpec); - - } catch (NoSuchAlgorithmException | InvalidKeySpecException e) { - e.printStackTrace(); - } - return dsaPublicKey; - } -} ----- -<1> The serialize method takes the object without a default constructor and creates a `KeyProxy` that contains the information necessary to recreate the `DSAPublicKey`. -<2> The deserialize method uses the `KeyProxy` to recreate the `DSAPublicKey` from its encoded form using the key factory. - -An extension registers this substitution by producing an `ObjectSubstitutionBuildItem` as shown in this `TestProcessor#loadDSAPublicKey` fragment: - -.Registering an Object Substitution -[source,java] ----- - @BuildStep - @Record(STATIC_INIT) - PublicKeyBuildItem loadDSAPublicKey(TestRecorder recorder, - BuildProducer substitutions) throws IOException, GeneralSecurityException { -... - // Register how to serialize DSAPublicKey - ObjectSubstitutionBuildItem.Holder holder = new ObjectSubstitutionBuildItem.Holder( - DSAPublicKey.class, KeyProxy.class, DSAPublicKeyObjectSubstitution.class); - ObjectSubstitutionBuildItem keysub = new ObjectSubstitutionBuildItem(holder); - substitutions.produce(keysub); - - log.info("loadDSAPublicKey run"); - return new PublicKeyBuildItem(publicKey); - } ----- - -==== Replacing Classes in the Native Image -The Graal SDK supports substitutions of classes in the native image. An example of how one could replace the `XmlConfig/XmlData` classes with versions that have no JAXB annotation dependencies is shown in these example classes: - -.Substitution of XmlConfig/XmlData Classes Example -[source,java] ----- -package io.quarkus.extest.runtime.graal; -import java.util.Date; -import com.oracle.svm.core.annotate.Substitute; -import com.oracle.svm.core.annotate.TargetClass; -import io.quarkus.extest.runtime.config.XmlData; - -@TargetClass(XmlConfig.class) -@Substitute -public final class Target_XmlConfig { - - @Substitute - private String address; - @Substitute - private int port; - @Substitute - private ArrayList dataList; - - @Substitute - public String getAddress() { - return address; - } - - @Substitute - public int getPort() { - return port; - } - - @Substitute - public ArrayList getDataList() { - return dataList; - } - - @Substitute - @Override - public String toString() { - return "Target_XmlConfig{" + - "address='" + address + '\'' + - ", port=" + port + - ", dataList=" + dataList + - '}'; - } -} - -@TargetClass(XmlData.class) -@Substitute -public final class Target_XmlData { - - @Substitute - private String name; - @Substitute - private String model; - @Substitute - private Date date; - - @Substitute - public String getName() { - return name; - } - - @Substitute - public String getModel() { - return model; - } - - @Substitute - public Date getDate() { - return date; - } - - @Substitute - @Override - public String toString() { - return "Target_XmlData{" + - "name='" + name + '\'' + - ", model='" + model + '\'' + - ", date='" + date + '\'' + - '}'; - } -} ----- - -== Configuration reference documentation - -The configuration is an important part of each extension and therefore needs to be properly documented. -Each configuration property should have a proper Javadoc comment. - -While it is handy to have the documentation available when coding, this configuration documentation must also be available in the extension guides. -The Quarkus build automatically generates the configuration documentation for you based on the Javadoc comments but you need to explicitly include it in your guide. - -In this section, we will explain everything you need to know about the configuration reference documentation. - -=== Writing the documentation - -For each configuration property, you need to write some Javadoc explaining its purpose. - -[TIP] -==== -Always make the first sentence meaningful and self-contained as it is included in the summary table. -==== - -You can either use standard Javadoc comments or Asciidoc directly as a Javadoc comment. - -We assume you are familiar with writing Javadoc comments so let's focus on our Asciidoc support. -While standard Javadoc comments are perfectly fine for simple documentation (recommended even), -if you want to include tips, source code extracts, lists... Asciidoc comes in handy. - -Here is a typical configuration property commented with Asciidoc: - -[source,java] ----- -/** - * Class name of the Hibernate ORM dialect. The complete list of bundled dialects is available in the - * https://docs.jboss.org/hibernate/stable/orm/javadocs/org/hibernate/dialect/package-summary.html[Hibernate ORM JavaDoc]. - * - * [NOTE] - * ==== - * Not all the dialects are supported in GraalVM native executables: we currently provide driver extensions for PostgreSQL, - * MariaDB, Microsoft SQL Server and H2. - * ==== - * - * @asciidoclet - */ -@ConfigItem -public Optional dialect; ----- - -This is the simple case: you just have to write Asciidoc and mark the comment with the `@asciidoclet` tag. -This tag has two purposes: it is used as a marker for our generation tool but it is also used by the `javadoc` process for proper Javadoc generation. - -Now let's consider a more complicated example: - -[source,java] ----- -// @formatter:off -/** - * Name of the file containing the SQL statements to execute when Hibernate ORM starts. - * Its default value differs depending on the Quarkus launch mode: - * - * * In dev and test modes, it defaults to `import.sql`. - * Simply add an `import.sql` file in the root of your resources directory - * and it will be picked up without having to set this property. - * Pass `no-file` to force Hibernate ORM to ignore the SQL import file. - * * In production mode, it defaults to `no-file`. - * It means Hibernate ORM won't try to execute any SQL import file by default. - * Pass an explicit value to force Hibernate ORM to execute the SQL import file. - * - * If you need different SQL statements between dev mode, test (`@QuarkusTest`) and in production, use Quarkus - * https://quarkus.io/guides/config#configuration-profiles[configuration profiles facility]. - * - * [source,property] - * .application.properties - * ---- - * %dev.quarkus.hibernate-orm.sql-load-script = import-dev.sql - * %test.quarkus.hibernate-orm.sql-load-script = import-test.sql - * %prod.quarkus.hibernate-orm.sql-load-script = no-file - * ---- - * - * [NOTE] - * ==== - * Quarkus supports `.sql` file with SQL statements or comments spread over multiple lines. - * Each SQL statement must be terminated by a semicolon. - * ==== - * - * @asciidoclet - */ -// @formatter:on -@ConfigItem -public Optional sqlLoadScript; ----- - -A few comments on this one: - - * Every time you will need the indentation to be respected in the Javadoc comment (think list items spread on multiple lines or indented source code), - you will need to disable temporarily the automatic Eclipse formatter - (this, even if you don't use Eclipse as the formatter is included in our build). - To do so, use the `// @formatter:off`/`// @formatter:on` markers. - Note the fact that they are separate comments and there is a space after the `//` marker. This is required. - * As you can see, you can use the full power of Asciidoctor (except for the limitation below) - -[WARNING] -==== -You cannot use open blocks (`--`) in your Asciidoctor documentation. -All the other types of blocks (source, admonitions...) are supported. -==== - -[TIP] -==== -By default, the doc generator will use the hyphenated field name as the key of a `java.util.Map` configuration item. -To override this default and have a user friendly key (independent of implementation details), you may use the `io.quarkus.runtime.annotations.ConfigDocMapKey` annotation. -See the following example, -[source,java] ----- -@ConfigRoot -public class SomeConfig { - /** - * Namespace configuration. - */ - @ConfigItem(name = ConfigItem.PARENT) - @ConfigDocMapKey("cache-name") <1> - Map namespace; -} ----- -<1> This will generate a configuration map key named `quarkus.some."cache-name"` instead of `quarkus.some."namespace"`. -==== - -=== Writing section documentation - -If you wish to generate configuration section of a given `@ConfigGroup`, Quarkus has got you covered with the `@ConfigDocSection` annotation. -See the code example below: -[source,java] ----- -/** -* Config group related configuration. -* Amazing introduction here -*/ -@ConfigItem -@ConfigDocSection <1> -public ConfigGroupConfig configGroup; ----- -<1> This will add a section documentation for the `configGroup` config item in the generated documentation. -Section's title and introduction will be derived from the javadoc of the configuration item. The first sentence from the javadoc is considered as the section title and the remaining sentences used as section introduction. -You can also use the `@asciidoclet` tag as shown above. - -=== Generating the documentation - -Generating the documentation is easy: - - * Running `./mvnw clean install -DskipTests -DskipITs` will do. - * You can either do it globally or in a specific extension directory (e.g. `extensions/mailer`). - -The documentation is generated in the global `target/asciidoc/generated/config/` located at the root of the project. - -=== Including the documentation in the extension guide - -Now that you have generated the configuration reference documentation for your extension, you need to include it in your guide (and review it). - -This is simple, include the generated documentation in your guide: - -[source,asciidoc] ----- -\include::{generated-dir}/config/quarkus-your-extension.adoc[opts=optional, leveloffset=+1] ----- - -If you are interested in including the generated documentation for the config group, you can use the include statement below -[source,asciidoc] ----- -\include::{generated-dir}/config/hyphenated-config-group-class-name-with-runtime-or-deployment-namespace-replaced-by-config-group-namespace.adoc[opts=optional, leveloffset=+1] ----- - -For example, the `io.quarkus.vertx.http.runtime.FormAuthConfig` configuration group will be generated in a file named `quarkus-vertx-http-config-group-form-auth-config.adoc`. - - -A few recommendations: - - * `opts=optional` is mandatory as we don't want the build to fail if only part of the configuration documentation has been generated - * The documentation is generated with a title level of 2 (i.e. `==`). - You usually need to adjust it. - It can be done with `leveloffset=+N`. - -It is not recommended to include the whole configuration documentation in the middle of your guide as it's heavy. -If you have an `application.properties` extract with your configuration, just do as follows. - -First, include a tip just below your `application.properties` extract: - -[source, asciidoc] ----- -[TIP] -For more information about the extension configuration please refer to the <>. ----- - -Then, at the end of your documentation, include the extensive documentation: - -[source, asciidoc] ----- -[[configuration-reference]] -== Configuration Reference - -\include::{generated-dir}/config/quarkus-your-extension.adoc[opts=optional, leveloffset=+1] ----- - -Finally, generate the documentation and check it out. - -[[ecosystem-ci]] -== Continuous testing of your extension - -In order to make it easy for extension authors to test their extensions daily against the latest snapshot of Quarkus, Quarkus has introduced -the notion of Ecosystem CI. The Ecosystem CI link:https://github.com/quarkusio/quarkus-ecosystem-ci/blob/main/README.adoc[README] -has all the details on how to set up a GitHub Actions job to take advantage of this capability, while this link:https://www.youtube.com/watch?v=VpbRA1n0hHQ[video] provides an overview -of what the process looks like. - -== Publish your extension in registry.quarkus.io - -Before publishing your extension to the xref:tooling.adoc[Quarkus tooling], make sure that the following requirements are met: - -* The `quarkus-extension.yaml` file (in the extension's `runtime/` module) has the minimum metadata set: -** `name` -** `description` (unless you have it already set in the ``runtime/pom.xml``'s `` element, which is the recommended approach) - -* Your extension is published in Maven Central - -* Your extension repository is configured to use the <>. - -Then you must create a pull request adding a `your-extension.yaml` file in the `extensions/` directory in the link:https://github.com/quarkusio/quarkus-extension-catalog[Quarkus Extension Catalog]. The YAML must have the following structure: - -```yaml -group-id: -artifact-id: -``` - -That's all. Once the pull request is merged, a scheduled job will check Maven Central for new versions and update the xref:extension-registry-user.adoc[Quarkus Extension Registry]. - diff --git a/_versions/2.7/guides/writing-native-applications-tips.adoc b/_versions/2.7/guides/writing-native-applications-tips.adoc deleted file mode 100644 index b644ec4cb14..00000000000 --- a/_versions/2.7/guides/writing-native-applications-tips.adoc +++ /dev/null @@ -1,454 +0,0 @@ -//// -This guide is maintained in the main Quarkus repository -and pull requests should be submitted there: -https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc -//// -= Tips for writing native applications - -include::./attributes.adoc[] - -This guide contains various tips and tricks for getting around problems that might arise when attempting to run Java applications as native executables. - -Note that we differentiate two contexts where the solution applied might be different: - - * in the context of an application, you will rely on configuring the `native-image` configuration by tweaking your `pom.xml`; - * in the context of an extension, Quarkus offers a lot of infrastructure to simplify all of this. - -Please refer to the appropriate section depending on your context. - -== Supporting native in your application - -GraalVM imposes a number of constraints and making your application a native executable might require a few tweaks. - -=== Including resources - -By default, when building a native executable, GraalVM will not include any of the resources that are on the classpath into the native executable it creates. -Resources that are meant to be part of the native executable need to be configured explicitly. - -Quarkus automatically includes the resources present in `META-INF/resources` (the web resources) but, outside of this directory, you are on your own. - -[WARNING] -==== -Note that you need to be extremely careful here as anything in `META-INF/resources` will be exposed as static web resources. -So this directory is not a shortcut for "let's automatically include these resources in the native executable" and should only be used for static web resources. - -Other resources should be declared explicitly. -==== - -To include more resources in the native executable, the easiest way is to use the `quarkus.native.resources.includes` configuration property, -and its counterpart to exclude resources `quarkus.native.resources.excludes`. - -Both configuration properties support glob patterns. - -For instance, having the following properties in your `application.properties`: - -[source,properties] ----- -quarkus.native.resources.includes=foo/**,bar/**/*.txt -quarkus.native.resources.excludes=foo/private/** ----- - -will include: - -* all files in the `foo/` directory and its subdirectories except for files in `foo/private/` and its subdirectories, -* all text files in the `bar/` directory and its subdirectories. - -If globs are not sufficiently precise for your use case and you need to rely on regular expressions or if you prefer relying on the GraalVM infrastructure, -you can also create a `resources-config.json` (the most common location is within `src/main/resources`) JSON file defining which resources should be included: - -[source,json] ----- -{ - "resources": [ - { - "pattern": ".*\\.xml$" - }, - { - "pattern": ".*\\.json$" - } - ] -} ----- - -The patterns are valid Java regexps. -Here we include all the XML files and JSON files into the native executable. - -[NOTE] -==== -You can find more information about this topic in https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/Resources.md[the GraalVM documentation]. -==== - -The final order of business is to make the configuration file known to the `native-image` executable by adding the proper configuration to `application.properties`: - -[source,properties] ----- -quarkus.native.additional-build-args =-H:ResourceConfigurationFiles=resources-config.json ----- - -In the previous snippet we were able to simply use `resources-config.json` instead of specifying the entire path of the file simply because it was added to `src/main/resources`. -If the file had been added to another directory, the proper file path would have had to be specified manually. - -[TIP] -==== -Multiple options may be separated by a comma. For example, one could use: - -[source,properties] ----- -quarkus.native.additional-build-args =\ - -H:ResourceConfigurationFiles=resources-config.json,\ - -H:ReflectionConfigurationFiles=reflection-config.json ----- - -in order to ensure that various resources are included and additional reflection is registered. - -==== -If for some reason adding the aforementioned configuration to `application.properties` is not desirable, it is possible to configure the build tool to effectively perform the same operation. - -When using Maven, we could use the following configuration: - -[source,xml] ----- - - - native - - native - -H:ResourceConfigurationFiles=resources-config.json - - - ----- - -=== Registering for reflection - -When building a native executable, GraalVM operates with a closed world assumption. -It analyzes the call tree and removes all the classes/methods/fields that are not used directly. - -The elements used via reflection are not part of the call tree so they are dead code eliminated (if not called directly in other cases). -To include these elements in your native executable, you need to register them for reflection explicitly. - -This is a very common case as JSON libraries typically use reflection to serialize the objects to JSON: - -[source,java] ----- - public class Person { - private String first; - private String last; - - public String getFirst() { - return first; - } - - public void setFirst(String first) { - this.first = first; - } - - public String getLast() { - return last; - } - - public void setValue(String last) { - this.last = last; - } - } - - @Path("/person") - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public class PersonResource { - - private final Jsonb jsonb; - - public PersonResource() { - jsonb = JsonbBuilder.create(new JsonbConfig()); - } - - @GET - public Response list() { - return Response.ok(jsonb.fromJson("{\"first\": \"foo\", \"last\": \"bar\"}", Person.class)).build(); - } - } ----- - -If we were to use the code above, we would get an exception like the following when using the native executable: - -[source] ----- -Exception handling request to /person: org.jboss.resteasy.spi.UnhandledException: javax.json.bind.JsonbException: Can't create instance of a class: class org.acme.jsonb.Person, No default constructor found ----- - -or if you are using Jackson: - -[source] ----- -com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.acme.jsonb.Person and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ----- - -An even nastier possible outcome could be for no exception to be thrown, but instead the JSON result would be completely empty. - -There are two different ways to fix this type of issues. - -[#registerForReflection] -==== Using the @RegisterForReflection annotation - -The easiest way to register a class for reflection is to use the `@RegisterForReflection` annotation: - -[source,java] ----- -@RegisterForReflection -public class MyClass { -} ----- - -If your class is in a third-party jar, you can do it by using an empty class that will host the `@RegisterForReflection` for it. - -[source,java] ----- -@RegisterForReflection(targets={ MyClassRequiringReflection.class, MySecondClassRequiringReflection.class}) -public class MyReflectionConfiguration { -} ----- - -Note that `MyClassRequiringReflection` and `MySecondClassRequiringReflection` will be registered for reflection but not `MyReflectionConfiguration`. - -This feature is handy when using third-party libraries using object mapping features (such as Jackson or GSON): - -[source, java] ----- -@RegisterForReflection(targets = {User.class, UserImpl.class}) -public class MyReflectionConfiguration { - -} ----- - -==== Using a configuration file - -You can use a configuration file to register classes for reflection. - -As an example, in order to register all methods of class `com.acme.MyClass` for reflection, we create `reflection-config.json` (the most common location is within `src/main/resources`) - -[source,json] ----- -[ - { - "name" : "com.acme.MyClass", - "allDeclaredConstructors" : true, - "allPublicConstructors" : true, - "allDeclaredMethods" : true, - "allPublicMethods" : true, - "allDeclaredFields" : true, - "allPublicFields" : true - } -] ----- - -[NOTE] -==== -For more details on the format of this file, please refer to https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/Reflection.md[the GraalVM documentation]. -==== - -The final order of business is to make the configuration file known to the `native-image` executable by adding the proper configuration to `application.properties`: - -[source,properties] ----- -quarkus.native.additional-build-args =-H:ReflectionConfigurationFiles=reflection-config.json ----- - -In the previous snippet we were able to simply use `reflection-config.json` instead of specifying the entire path of the file simply because it was added to `src/main/resources`. -If the file had been added to another directory, the proper file path would have had to be specified manually. - -[TIP] -==== -Multiple options may be separated by a comma. For example, one could use: - -[source,properties] ----- -quarkus.native.additional-build-args =\ - -H:ResourceConfigurationFiles=resources-config.json,\ - -H:ReflectionConfigurationFiles=reflection-config.json ----- - -in order to ensure that various resources are included and additional reflection is registered. - -==== -If for some reason adding the aforementioned configuration to `application.properties` is not desirable, it is possible to configure the build tool to effectively perform the same operation. - -When using Maven, we could use the following configuration: - -[source,xml] ----- - - - native - - native - -H:ReflectionConfigurationFiles=reflection-config.json - - - ----- - -=== Delaying class initialization - -By default, Quarkus initializes all classes at build time. - -There are cases where the initialization of certain classes is done in a static block needs to be postponed to runtime. -Typically omitting such configuration would result in a runtime exception like the following: - -[source] ----- -Error: No instances are allowed in the image heap for a class that is initialized or reinitialized at image runtime: sun.security.provider.NativePRNG -Trace: object java.security.SecureRandom -method com.amazonaws.services.s3.model.CryptoConfiguration.(CryptoMode) -Call path from entry point to com.amazonaws.services.s3.model.CryptoConfiguration.(CryptoMode): ----- - -If you need to delay the initialization of a class, you can use the `--initialize-at-run-time=` configuration knob. - -It should be added to the `native-image` configuration using the `quarkus.native.additional-build-args` configuration property as shown in the examples above. - -[NOTE] -==== -You can find more information about all this in https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/ClassInitialization.md[the GraalVM documentation]. -==== - -[NOTE] -==== -When multiple classes or packages need to be specified via the `quarkus.native.additional-build-args` configuration property, the `,` symbol needs to be escaped. -An example of this is the following: - -[source,properties] ----- -quarkus.native.additional-build-args=--initialize-at-run-time=com.example.SomeClass\\,org.acme.SomeOtherClass ----- - -and in the case of using the Maven configuration instead of `application.properties`: - -[source,xml] ----- ---initialize-at-run-time=com.example.SomeClass\,org.acme.SomeOtherClass ----- -==== - -=== Managing Proxy Classes - -While writing native application you'll need to define proxy classes at image build time by specifying the list of interfaces that they implement. - -In such a situation, the error you might encounter is: - -[source] ----- -com.oracle.svm.core.jdk.UnsupportedFeatureError: Proxy class defined by interfaces [interface org.apache.http.conn.HttpClientConnectionManager, interface org.apache.http.pool.ConnPoolControl, interface com.amazonaws.http.conn.Wrapped] not found. Generating proxy classes at runtime is not supported. Proxy classes need to be defined at image build time by specifying the list of interfaces that they implement. To define proxy classes use -H:DynamicProxyConfigurationFiles= and -H:DynamicProxyConfigurationResources= options. ----- - -Solving this issue requires adding the `-H:DynamicProxyConfigurationResources=` option and to provide a dynamic proxy configuration file. -You can find all the information about the format of this file in https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/DynamicProxy.md#manual-configuration[the GraalVM documentation]. - -[[native-in-extension]] -== Supporting native in a Quarkus extension - -Supporting native in a Quarkus extension is even easier as Quarkus provides a lot of tools to simplify all this. - -[WARNING] -==== -Everything described here will only work in the context of Quarkus extensions, it won't work in an application. -==== - -=== Register reflection - -Quarkus makes registration of reflection in an extension a breeze by using `ReflectiveClassBuildItem`, thus eliminating the need for a JSON configuration file. - -To register a class for reflection, one would need to create a Quarkus processor class and add a build step that registers reflection: - -[source,java] ----- -public class SaxParserProcessor { - - @BuildStep - ReflectiveClassBuildItem reflection() { - // since we only need reflection to the constructor of the class, we can specify `false` for both the methods and the fields arguments. - return new ReflectiveClassBuildItem(false, false, "com.sun.org.apache.xerces.internal.parsers.SAXParser"); - } - -} ----- - -[NOTE] -==== -More information about reflection in GraalVM can be found https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/Reflection.md[here]. -==== - -=== Including resources - -In the context of an extension, Quarkus eliminates the need for a JSON configuration file by allowing extension authors to specify a `NativeImageResourceBuildItem`: - -[source,java] ----- -public class ResourcesProcessor { - - @BuildStep - NativeImageResourceBuildItem nativeImageResourceBuildItem() { - return new NativeImageResourceBuildItem("META-INF/extra.properties"); - } - -} ----- - -[NOTE] -==== -For more information about GraalVM resource handling in native executables please refer to https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/Resources.md[the GraalVM documentation]. -==== - - -== Delay class initialization - -Quarkus simplifies things by allowing extensions authors to simply register a `RuntimeInitializedClassBuildItem`. A simple example of doing so could be: - -[source,java] ----- -public class S3Processor { - - @BuildStep - RuntimeInitializedClassBuildItem cryptoConfiguration() { - return new RuntimeInitializedClassBuildItem(CryptoConfiguration.class.getCanonicalName()); - } - -} ----- - -Using such a construct means that a `--initialize-at-run-time` option will automatically be added to the `native-image` command line. - -[NOTE] -==== -For more information about `--initialize-at-run-time`, please read https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/ClassInitialization.md[the GraalVM documentation]. -==== - -=== Managing Proxy Classes - -Very similarly, Quarkus allows extensions authors to register a `NativeImageProxyDefinitionBuildItem`. An example of doing so is: - -[source,java] ----- -public class S3Processor { - - @BuildStep - NativeImageProxyDefinitionBuildItem httpProxies() { - return new NativeImageProxyDefinitionBuildItem("org.apache.http.conn.HttpClientConnectionManager", - "org.apache.http.pool.ConnPoolControl", "com.amazonaws.http.conn.Wrapped"); - } - -} ----- - -Using such a construct means that a `-H:DynamicProxyConfigurationResources` option will automatically be added to the `native-image` command line. - -[NOTE] -==== -For more information about Proxy Classes you can read https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/DynamicProxy.md[the GraalVM documentation]. -==== - -=== Logging with Native Image - -If you are using dependencies that require logging components such as Apache Commons Logging or Log4j and are experiencing a `ClassNotFoundException` when building the native executable, you can resolve this by excluding the logging library and adding the corresponding JBoss Logging adapter. - -For more details please refer to the xref:logging.adoc#logging-adapters[Logging guide].

    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%0DXO!lc^E_&V34V_&1a)P> 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�?s7^>aMN!3N%H7?dQj?64 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

  • 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 diff --git a/_versions/2.7/guides/images/kafka-qs-app-screenshot.png b/_versions/2.7/guides/images/kafka-qs-app-screenshot.png deleted file mode 100644 index c6e62cbe68318a402155c8bc55d6efafff10cbea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87162 zcmX_o1z40@*EXUE(kc>)AR>ZvNrzHO2qFw!($d{2C@l>lB_K6)x1fNuba!`)H2iBk z@Aq?E=OE0?6Z_eFt-Ce>uVr80Vc*3@Lqo%pd@1$@4Gmok4ed$=)^+#|0$<7szTL2T zscMUcMsN%D-xaF(Jq~!sLl;FAJC#>5e0rAV%y0EAbq$!E%;DX1;r4HS$TqU#)*UjW zT3JjGa}LmT8QkG+x+X&3lHZ}yG^Qx|x^X%(_x^{x1)|gAy5*6#pQ_6(Kjej*h9;)u zHyp^CV;mfYT@RL}`J2`-IDb7an%G$UR)h`(mG9@N%~jiD)?RnT8J{vi4API@xD{fn zjxYBG{2uu*2DyuyedklJspQ~JYgNr8%IGbwcwD)JLRk*HPwO>1{J2TJqR*g24^vn&9!u@K9 zP>#U0R6$cTvh8FdNcKUOT)?TYD@D}L;e5A+vU*`bzqq)#_4jWH1cFHX3f+#YHIevp#GtMv zOI~n?W$a11N4ECb|Gu$EpMU@U{o1u_uhS&(zC1ORu(RXz_Vx}H6BlPvBoePviTQ0( z_KN|Dq~G$f&~`re?b2#W6>26EGl2Z!B?66DgCQG z>j$K`*98Oxs}84JSNk&wy5hO(^W@Vc;wP4oNRwv>#A3wNcHbMffBE_PW(f%iA!Rca zu2i*(Guwm*X)HX9T|Y_fUsa@}q%3pT99tX6Rv7g4^(EH$hD5%3@W5p?JvIp+3+wf( z#|mZK8vpwYNmXllG0WpfNj!LE+GU+-f2z*a-AVz0z+^T0o$%$yj~};i+y4I<>JOUr z*|Xu7Ys%X0Wx+vqTiO|~;{S#;>;BL!df-bag0<_o_{ou&QN^nJhYx1FH^YNBOTQD< zmsfhz?(gsK=Trs!yJG~4uy8Wm-hKf?mX`0|zh{k;adL4<9bV6=krbIIB*(`z zEFlYO7IAUmb9QzfoP0zjcBgQB6CO5U$!P5eAvrmDbVS6hH7g!ujVAXaae04#{|AhW zxz+IxeJfuU4A0Nc`-FxPJb(WDTY7qULW0KJLt7F5_0Y!I2W)INGas8{0o;){te6z%2e+luC(dSTTX=(ZT`6)Yc_!2G>Qc!%#%rvs+7R8cp zW472&VK|qOUlkD%LDt+5@y8Ck)TFxbfLZkKgO4M#tK%Q|W}zKV-;7g+W*;^Zl}f#pr0e8XRl)2(Op^^_1fBNUjHg zJAY;(M@Ywpk=_OM!q?LnX8g-lS2bvZJj#Bv>ki+H=o%`HCNW#^Of&6E5oh(d5F!-} zMr-0Mww4~(*s57Xzx-_TaRH~CJ$m`3*|*XCvK!`PpJEFrB?y#H%|dd0TMTbot7F&K zyWce>>tG-tLlVuM=(Cdk8wUE<2FdLb;9FCO_uE-Jq`IG+ zp59K+lk`}l*GJPUUnVB_f@cc92K@*^ry~^_sV)-a=F_ZZjhy4ayS^{YGMmi0w;t8X%76Qv|1B+>^F1|^*? z!&pCur|VaAT3;b{4-PXOL%zQ0Snuy85cW)d=#vs8?u`wP<jDCL;4~9*x2Yp%%sL@yCgF=KVOjb z>G7*C#@;c6scV}PRgw4k9TZ_IR~q8p;|iW{3FUbE^BNN=y76T7)7y__W{!5};f35c zYc_m|h+)xzk?!HAGD_G!egUMy({H*>)mm<+wOuXqm9$1;OGIM6T8m05+)x`uDRvX($;?YNa}JO#xmEEwk_%rp{=wfdR96 zWghb~( z_pLM@DSX@c|5; z6|FKAjfIcD)cb<6dDV{HWPlC^$+v%Xp{RvIZ=%u~<2Qon!`sG>H_6F0mi98`l4aM2 z@|@T6Dpq<@u2M?`H;j+R7koci3p8rBUmpq)azD|KClgT|SR2f7-Ygr&zVCT{FsxeV zV*j-CC6;_bL&LKv&&zZ6WMQ~F^s5DCk6sW#_@r)XB9b_lIEdjmYXtp=VOfM{hFQrBa;(yN9@-G2TB*PA<=Jho z&!0(84%U_RXY^P}u`#5Ydspr3R(ib2I1G21Nwjsi;zz6P8GJAaeoap&QwX}C73#I% zZ#sIFnGWy$>6g2jkFoy!bc_G*)?~-0`}|JOfzUp)zD1v`wx{Ogj1qMH`?|tH6HVy+ zkAlPYR98X$MLW#q%;-_5t6XLy4d2~Qj}C^l$%NdTFp`+4E{d(^C1ASYToZ@4@*Pgt z65Qjq$o&;_gNm8k<$#V`8hBe9jWgh{T`p(Y?{AV?5>^{brF<`z?>5x6)b< zCYH9xak@jNKD+hWz!TX-z7KA~(w7(K&PTI;acp|mG4aVC@bkw*i?`mI;C(Ff z`B|oH;%7d4dJe zvm!+|W&VD^+2FH{VUeSWRhvo;A=?lLlU@3dD}p*?du>>A{?%2+F%=iI$XcPqQul2A zOl>-HB2CwENxLQrb@yF0J#67G{HPgEF* z%Pl4Y2Tjsl54X%FD#I!Ju*G*7xR8qw z8J!*Ns=Z#o|M)AEQk%(qv`Ej-l;>iu`CK>;hG8Cwlu9kDoGmpOL^d3x+5{MOCuz={ zq)QIpK^Vl>s3p?NZSwv68=2Yq@|87Sa(4a`U5A_x!2?7N2?EXi{GmGbF%(g%oAh$u zFKLA@W7wy#^N6SgJ72h^H%lr53DjF-GYAJ+Rj%Iy6P-iOr9hu*e-as90(`fjjIw2_bz zjlJ~sWsj`tJbwDQJqpS?EjfMtM^`cN0V)OH-QxndN!}2B`_F`J_Z{9~rKt1M!!#s4 zf$$k?gB=Q({3fN)yvJte|2$B%aj;)9W4uAw(ZO|s+O4`vY*Eh(p1@f#=Th6_1tYH zDR5Eevs-yRQ=Ll3lPIf*h(>HQ<5_M`)qOxuiq-Z|jhFljgGb_=%#eaK8GKdaSdvY@ zFZ+nCAnF52hend7!S63PovI4FI0Q(C=#m^}D~G|d`movAM!&M8&mB+A$D-gCjfW}S zcAneu-GA|k914eQX5_1QE;gM8w2QNSIaHyP2&L#Meb>+9c_9FE`|1N0mQauL6I54s zIo!(IT#pJ5e=aMF4=sWoif)GU{!*!N?|WDuSFJA2oYB$I{R0E%CaP=!?uNlgh0;jJ zghfRB%vCMnf%TOp5u!VYL~KmgCwpF=PIo5qD|cw$N=>~uDDb?)D??04DJLuYY2oG# zYdqCzyLaJ&&uCsX*7v^SA@2M}WCcsY4~eLV4u4Gh@edEL5oi)$==1@*FKX1Ou- zN=i_m3Obi03Bn0uv2bx0ngVVEgNs@{>+F<){;E8S$Vp30RjG9s(i0A0-W7LxOcwvEcahx(GlDVRQZ<0qlJW?Eckw+=&3oVF$Y*R*+nR# z;XN~>vrwntUr!(|uiv_166EjSV9cq6qF2fd09}Fftyz2|Ouf~{C#D=;QQ_zvBL9JK zxS+6*wYIJ<2gTE*W~_L6+S;>}U;H1lGX!QQ?{ggw3kN4>3x3EClg(^=Fh7H6)M3?O zkK6h4=MgLG>+h1-yWHRCu*1W{k4{e`laf9GH#Xy<&c+ha@We$T`%2#_khR|gBDeSV zZw!l|h(@M}sHi3mhZIaq7!M15zC>BWxPNrxS2|rF!-I&rP86}WrncoFCj}(J-Y=ub zmDcOuYuu#6I)h(r;G~3Q&3m{E&#h(FN~dJBaMVmW-NNUGfA5O-4;`_B;WRqzJuU=0 z!v4Gq2(m*BUVK;Jq=)^57D60>P(;|%AUZIkvlzGH?ECiVeCcrDSf|oanVGa8RFsSc zH|u6c@V$C0Cm>j7#Y4WZ9N*T~)@)cp6`vRz0z+WTIX64&9UDvHQpaLwD?}VrRUNNH zmH$lTdAS*J^iR0P%}u5nFC41;&sqg7EiIS?1Oxz$ipDpi74xrHT56Ny^OG=tQ&w#_ za0GH)q{0X&ptz(2u)@*t@!T@WOD!#Y{1=O7b@`9QmN?nKcuGi4-WonyUb%_ zW1~{Mp#J@MN&QB!RCs)R5Uj9AO=aH42e*i-^d7_+Jf`o2VVa*;K+WC>G&grQ2F^zX z!}oS}cjwQJanx8jo%i^0$=EApw3py4WbFE^k+k*H+86B&xG2GnFpwuN3!D{bq zV=Sr9>`i;Y0g#wJuW@`_-G$@>p~2GXY5>Rz&0D!%v9Zck+e@39(h?FMiE)`!SYtop z-HWM7fd2!P(zp?bI&4^YxOc_j!LCLXZ7i8xb^G+r6bw(mZCdo5jgoF9mt%w8GE-$V z=&ufg8CEApM}*KnT0Y$`3(>fJ`!=uD3>ppz^T4k>D2QE9b&$FDp*Cg!tQ$K(W_9SZ zN1u*=XI&L*$$uK zB^%SszA%Juh^gieYvWGl>aX;nGl1x zg$1*gR?=sgq~SBy8va-{VXK*j8{-w0v@9$IZ?GLOMM1ZDKuzs~$WcN_RV^Y4v;?7( zVi6E5LlZ&>B^JXq*Y345l$wvneEs@h)9LkVLb$M{{F<$Yf`W-hM^4p_+rI(Q%F}FG zVT!hdQqscFU|eq9y!qqr<~Tzcg|@bK`)!%&fm)hFK^`xcgL^hx8>;w}e67iua;e;; z?*^-x^2SPOSh!;cq84n*=Bt*Ipr}~wEwt?k`P$rL)j=~KD}4(vS-Ebj4>ZD`KYtdg zFgAZ53Xz~LGZ}oyz>qUy1C{FrE-vHldBgB2Yl$dl` z&qIS2qNIBNsp-%oF0Po{w6cn-_lMtKxqAIgg@vHU@nS4?Y|8L@2RY&K$w_!z+=s?l zodz$zO5h-Y0^7|bw1u|I%v=^{;UV`tA5l?x>$Tik8LyB_vGwusDN@VZn5-%I89FO5 zYsIq*YG0|B@l1oa%oolZUI6qIrQ&8>rq>6uBTet8w%fd8wL3eqzSvK`R8$*XEHfYH znwy)$!oqsM%$zUf8VG}$k0+O>U7rLzC-U=WtY=VrE0>d8u@e*!%y=Isy3fB!MwU*c zwy!;5zZA0wg7cSNZd7052m&K7j1rEdx~jh)b4= zai)}0)?hlBXF8mZDp4mr452{Kbc$4t&JU+^zMbLU=hNZ58-(ZP^ZvbYe+C`^jz+Wm zk$ax!CkFu`AqD`Kl=}uu)h4U+S+cjL<&p&CQ*8dY2uh?C4IJ7+rEi?23lr0f^7R!1 zL=?!A^h`wLAplM~yYchGL%p_$Vj5MrHD3^B5TolQ?6rqeHJp}H!AXMK`2#jg#6hMQ z#y&-Fh%L!Ejl=$yu=C$3{kGOlUznxSDk!FSA8-I%5j6*g0#0DCgkCyIC2a&CeMPx} z&7eIBosuvhAV4OLJ^fAEXsQMU?&8u?M0|XQ=fytdCrV+h>?^9yNiQPXBFC$zpR1W* z+ZuKCyiY0Wu5TDw)<%24z!6zhVi*?lMWnmtRF@sW+A?Fg1ZbFANa%Z$Eyxcq#Kf*m zdtM3xX1xUBOqqqqA$C7GJLoEh@oZ{pDzsl$GVJ{PW4r!RRzriFjg4)LH&kE`3yCat z+SNt9k|gN5GEzhhg7ffiG9X!?-ZN@{PpGn8j);qs1ZcT)csTr9p6CPM2GkV?bc?m| z*{_MgT^Fdi$KntW&~kAp*+@(Eg4_`i87V0%n*k?PR#Z}*@(GrJcBXm7q&vxx==4yv z#PC&-0g+>TK>q`p)#_g&!tGWxdR@5@p#l=G~J6Q|F~P`RF$`9^c8*deh#t zt5sUP^-hkKlqVVXC zAk`TTu3%cQ)St0GH5q7FwX=bx_$!z!P0$EdnQm(sm0HqI7<%XBM9089mIn{KP(&P# z&}qogpDDKtTH~OF=T_D7%2*i#I1%46GdV1$1U4NKWn192S2;>~fb8}4^>=_Zl~_&- zeZRbLg#xvEcxVLbPwnondnk4fHbr<;)Hl2r7#JAgF)#Y zv4F_pdBL+ysE6_z@3PmjSpn99$tJCjJG4u>o8iwBh)^ zl5QbspvWWe%+R1pipUdz2zC9Lq9T#wq&*206&3Vs;0&$z9VdQ313@tupqcYf^>elA z)J(U*vlxZZs=qj4K!ZtTw>cIK=m4M#s<{bY98seIqxv~Meot6f_}8cV9T7CrJl1p9 zz&ijUoPmQ7-tQNp_cI!iUK0g{h;E;S4_Pm&O zux@B=eF+r|4OmYmB4-G=FOk>Lkt>)KkDsiP&#Xzll#-&i9W_`@;UW!QSg5=xPzTv< z!+H5P&7Jl;)ql$8>{k0g-W-Y<`?UT;`0`l8dmU!QSKwLEZ^{Qv23?X02LAQ8)yG>p zJyz*;kB3cI7nBB{_X4xVZP;7v2&z5bySCh}^ag%C`dr@mW5?ZQ&e@S(>JJ~=9@n2s zq}Z0QbMQL+!RigUt4#O6Wcs_HUdtyM=#!T9=P^rN@%PVj?X!fLN`Jv2PrnryyavpH5a-{5`q3})P) zm0lmCB`MpRXh~HoCzI}66%B*74EJ4Wq%gBhz?_^;)B_(2O>wL@l`t!f{yd1Vh zON`3c8HsU}au7IQ8tzyD_K%2&08loibjG)D}84lW04>18)GyniiP#sKUcllhjF zMF%=)TYI~1M-0<(Ma-x$xP6A+lLW`Bv)qUuPfBzw1ftu~_@sYH05s8VK3)5Ba`ZLJ+9fDzs_LrNh z!~Hgb=EUQ1#xpxR%V|0k3@VeUH3~m5qjE|rQ7uqbg z&uI?~r@+dga547!`^B2ydG8T0<{^)5xO?yM$jC_5TBn-;*VBjOV^|Da>a<*wS>7p) znikZ(F;Nu{@W)~~bO(+2c52!^Ab|F315_Lwk)gs#zd+Zx;vev?DVVH3Tb>%*udxjZ zJt@})8;t1V$bb(x%eMWmx_Vaa5_oMt{_yeJT~78y?*VxPS~z}6O3K3G;y$dpzO)yP z;Nm`i<|SNzw#NbMbD?~^T9=h{q~23lPGFayufP9z#^(tqs5tyvD{Vh~PFe4U{8@Ko zsdG6hAJV)P-{sI{xwt^VUNhIFN&D)H7_{yy!#qc+;z3e%a$w}7cL}Y7Cc(w5 zNxb!SrEkKYVb)_Kc3Hl%%C8ssGyR7Wd_Wpk%+}VntX#=KR$fx1@h7j#!t0dzt=Zy^ zt7!vKk5cb76YqH;`+!74^c&84QppHNc+dr*4g8LUDZMzZ(=$?R5o~) zFfDHQHU5ApQK*)8cDCP*Qq18hN&r`a{~!&eVsvy=E%Xg^gq^)T-Jx97Zy6cr`Kwdr zH)$sT>*k1xQp`1b9a)k+W5+He7QzI5gHv$L~7ff94Y->P0`HW|qJ(H2R|>+*-L z>&sI;Q1Zw09OL;NnR$76fl=;^=!F(RUt(H@2I3+nArW(2RjCDC5VTD*cxn;=WI&MD z?a!dZNdQaDtl{8dvTWV_5iKqJw1K^>bEi3x1@nVXEUYyI-4mDdlX@3ldUktZkddGY z6gg}X$Rr7Tu%5qY+wTt58_FGZa&p?~;?{m!q~g3)S^0Q2Pbs%IpdiQou222i_3Lxn+n5c7Z$sHEr!*Y4CfYD5-LPKkPNrM) zB}SJEbU^tSPPN)-FXXn{-)dQ3x8mJ>W6 zf=V=&;Rln@$H5gyo>6zwpitOwu4-eJeA>}g%{C7_rX1x0!{)#{G{6081-wsxU{XG! zrw^R=I1PaTN10DwxGiM?|EUz~-#9)#MpFw7j`#EPQwsI-!-NLI18O|9Uno(cP-s!h zskNg6)kDTGqoK-s55C8{F6vG84zR?=MAdDpgDoENPv|9G_!I&v`CfDnAHE+L7(lm& zIvAyHSywjFq;|OP3XsaA#bhY=Mx~7$)XHC*71O_AbwRtHgKxl~Dw+^sEbh2laXRTt zQjkL4~wQq)DR4*Glg1uDDNmnpZ6 zZtr=rdZ|)9aG-Gr(1${>ngiww#_!Q8TN32j0w~fjJUIi^1%|~=2pU8VGEg?tcGJLt zW3?nq>40Zxj_$mQS=DRI$TqS9 zi5ehMjfN%Gdkd0G&*k!= zaj_ffNk~G{0`h1X!CqKc7&?b3Ji^jzYtX>Kp^OoRI0N>95Xqf}s6Q0{{ykBdye#b} z#=IzdwepWU9atk!`iR6)9S=;`o@@o$yPU=iFlA(8nKeJN=}8ood}KBkRo!Pc_@S;+ zZbp`rqy;V)w6h`O%h05xB-9Vk#FbT97cRnV`4Zt-60OmkEXC6>s_rpaTXS=`{?#}+ ztWU1wQO0h9&jEp90_r%ESD}%kcDUheyb8Me`?(01wxaS!n6zU9D0uI6KLGmHQEN# z!3yR96O5j-+@tPE_wW7}q2v#%<#8_zNQeFqU_GdomkAd&GnmEKVb-L~20>@Uj0>7K z3a?-Hd47-Y+DczK4omIK-S0u6p&*v_lo-jOx||k-qp-`af){%)zDoi+M5!LEe8>w} zZzV8SxbIu#`oRX8H^%Nn3pF)0 zFLcC!MUA_)RetZ8&mU_-t@-0p7n4kM|2~YI+Uw}3DBmACbgVd=dr6Xhjq(q!ob}oM zc&cds?$a%l&j&ysW6X7RdP4A9rD4}yR0{@ACd~DJ@{-+>pd`M<> zzsJ}o<+Zs6a$?8EsO@NlB_&h~IBc0r(it=Li%&W~-aCU+RM2xC8QD=`sP+zes$VJ{ zM#gbV6K5*G0dipvas=YtSZTI{dPhwDVa&A0c*{^;KFjgpv}dw|Yk^i>ewN_YWp>{h za|kTN{^=aX??-buCx189X&M3UeYeS&)Xo9AizzxImGQfyBMk&Mn#Xe5F0Kd}vf3~0 z`*TxurnJOCAC5c-qFlD>4h8+2b>AN5C*Cm`4!pwv!utZCxD03~V;e$;B7p$qf6iL% zK(V)i$JJBs=?TvISG-w`N~<-$wKZsVD9U%vg$TrZH6!l3MQVNxmDY( zionCUK|qkHS>w?3>lZ-jJUj#Qk-{q|6#sWa68b;bnlI#uAl-oW)x8mvy@uxd_0+4Q zCA4qfz8%91aLrHxyAx$90ia0%<_?KL^TAo5;kWB6jwC*iV7u&DPahecmx}-NlhfV`XA@<@$teWFH zQ0?gr@KTXWRy_2UEG4E)bk%o%5LQxDoci?Fd5)w{zgI6cmeB01N_9iaHU*91G&f`t)QeTrxFSP3fuJ3yat%ls{YbSEPRQs{UuxS4t*7ke_ zT8d@u?)BZ>-7|2@1P&8SrB*>*asp?$cm1Gt=O<3^-KT*Q6B@u1F&hAG19zKS%}icO zbesZrNUvlR`^-~ANW*5;{&0J1U)yOG12Du(KpM{TA>94}0dK(x91{tG_!P<%M&&1f zJSl*;FLZIFm$$6<<2^w2nG1!(?v0I$P^YU_Z3qWhtB3+EDm@#=IjpYPe^z0r&SSqWsQz^+5E%bN^K z?!;{q-@5gF(xRX=?=B!jfZxseC3DNmewmq>T-0lOr!LOU?>6n0#WZ9KhCvN^>Ehy2 z6sijUCMH&zbAgoc4X|8pWeU|q3Qu0SQ~5sS1*Lmba}WthRcZ;yr2xP|muG{L3d<@# z&uD?U-=ZS+^T@{fy82vuLoBUZ4J855??v=s+g0$&78G3%rz9362sjk*>!={96934kk0iei+-KpAA6YtZ(I>546D)-%+019#qndubBcNcmihE zK!J8LAi`U>Z=+f@EVzPV{r$bi2<2ZmZQzg9VD^+%nYx1bM#b3~J@Yx{%g6@Om_VmN64|fj-kO+oOLmWQ>lJg3SiOL&ENf|cgf4{`X ztLJxV9=Ke6_imZRqVvQeT-`eA1vm>J-PJ5{Ick;~Qxz3$Lcwk6@As9>oCh^<2{=QH z$1?q`yLaC=zAYH2>qP2~xf>g!A{x&jRg!%IZCTOe*`xe?K=%E>bJ-JXAmbvX?%CSi zT_9C1dUH4#Qit&DAgS~sVAwUF1uQYUb)U%l|Sc+eqrg9`Z>iPSeTiZzX4@Y1qum=+EzE#)*%8xH(Kq?scq zI{YxQO$=^HRh5i~eDTy3fq57fm(M!AB%vVUa5?v4!*WDy0+OF@l)G{=Rqtw+45keymM5esnrQJRS1&Fj{*5A`rDp zj@-l|8a4ld_*I=HZS7k5i5nZZU{8Sj_+NYge8Lg4a(2rOo3#E_JJOI}L9SfYQ`=oj zZhL$A-ASC{@(@8){vI1g7+d@=3=k|qEs@rH@UW&b-MeA3y_Fd|rF3 z6j*yIjE1<^hyAKSRd=bQ5SI_D$d1Tf(-x$Mv_lE+WwlB`HRCtGmx=*7yBUum1@hCP z;@n)QQ@pwAsz9QfDG4MmnnGkU`>X!4-~N|MxmjiFZx?Y!577(%dvT4kR(YaPpp0%U z_IyCaH1ZvRTV)~Fq>#+!msF@73;y*v5YWcgwC6^Bo-mc~N#NWUgU11b{~eAuQ8qy~ z(=;YdmiE5*zhCV_hDVtoyz}1);p7Me{N%c7_wQi$V0(z&0b!d}+`mwWB46TG0mZ}7 z@1m$bw8la1UMJd&r!;9;_1uD{uY- ziB^L?JDbyv4gdpy>C2sQ9OS$=Hc8dTaE1>SPD3jzNh+ zrd#|w4CP^%YP4+4CB);fu(5R^s16Y{B4=4(an7fk6>T6c^`?qPPkjV70rI_+z%uj# z7F%bo_>icmDE6+-j^Do@^YW@1?xONR!>oz2ekn+yTmnj=PC4Q8CP;yTXHB;|0e0AR zyt_?cLxCra2H*eSqXB6JskV8lwkA~hwQ`i0boKPexXegV&b8CQpfUh+u-y}Ysb1*;;a&vb!y=pY zoET~@B{?s_JcdXt@HNApug`PUD?Wj6f7^@Y`_X&Ik#gv_hN0U#g3I+YR1&pL5RLaS z5uM0`XkjCzqk?9iQ6~D@4vsiz-^0 zo39vGiKnABq(JgrO{;(LF1JM|$Tg+w1cHAEA=0k%)At6bgVh^&sIn?n_L``<48OPe zRTq8P4!G)taB1wx$>HHwo`HJ(VVyI+3+!XlMoV$)ZU=stmT~O@_G?5ahYXxQroF!) zeS&pdwvGxm!{9>D-~%Xf{eaw1;eg?M&1|F_)4%l<+`rniYFBOJPtQ+^4l3~V)zwun zd1W3eWG~aw(q3J}@n_zCWpgN%ja2&-6Vqu@)(21-mWtvAFJvhi4!{?=4T2rmNGL`4 z^0?bGOSR-NxMCR~=tmE6q0XW~mMFWtMukLb;T$6S*M|$1VTCgvoWXOO+uVHBpYaNZ zoaG%B)6=JA4fcQ(?Ck7P=Al`t1qBAum%Ty*K?YiREa-?at8U!l^2XrFp*)D}%%nN( z%M%hXKk0xtg~u797R*yI1Y+3YFnTm?ZU}ZFSk!ECfeHE%P|)rKpb}WZ&%lPj$z7e_ z-jLlXy^@l`M&$#55Q-;7g5g?!alisQ?wnRq{IDmKU~Vb6z2 z96;3TszztHPv1&*zC?UTuMv>4>WBa%%lQ@oLbOHo>SK6wBLs9I0Sjs#^n4(ry6^@R zsfKy84=kE^tqheag}H4u{XG$c4iH&U8EODO2Cy#xHbFuv(rF?5Md>N{4)-G4n!sE9 zn4C=M;o$*kZ&0*aP}>RA)b0X_|H#!v+0fq~3A;AJARGb>0g?=ATai#-z}ZI`(I_`@ zXU7Tx^}rz#c&y)}0!s1m(tspkgW^Kju$C>;6${p{!|N!P59#q)_*EM0cMt#;j41B( zMpeRgIRpYYxNouBu}xVenPM~z6H^F0dVkQM%X$b${BKfM0-gZ4#jy7sQV^)f#8?d3 z%-E$F6bIBM3dzXFMY_#_=!cMnhrL-vz?#tyYrvy8I;_9UI~dY10RV_mj#aguUjw^t z-aEL%!$Ae;L9wfCI0tpJ8I}l&-lLi+EGqDYi0|swK*WlaP1m>F+#hwF`FKDw>iMqp zrcc~Usy@Uxg-P{9ngHS8zy*8J9z1$<4OoQDU~F`>I2c{o{Zn0r9N?J&*aeL=D8b#R zNCn~tB0vHmoU7Ab7Z1Ckz}ZpBQ$pp{ZrpgndHWTrnhk#hC-5sc?TR6xq4jIgMn*;) zZbw!CV~-(j2s^Q65tcrv3$ieS+sm zD~720k%PL_rZTC2i+8Z>`af*cRQ61s2p18q$RuhtOe~pzDvyB~bl9?)w|&46F;G_i zSs2GpXfk+ceM_!YiG29|^#hX<$7Y#l=+tmY0P|8Sm5}+J1X7v(l5+w5N50(Otkd`e zguii5>c!6*L`+T+Z5X z)!pMZ`g|e7@pWce9QEKnAXIe&V%u8bTG4LdYSJK0ekIi5cuk&i&{#^t8|Xf8=_^I^ z(rmqDzwt4j;?R~!GzxBAY!smOu$JLm`!VLx9OaBUDrO76<~8OObE&&PDkqhCeBl~z zTUC_giIkdV+Ya}j+DBHTb9M`QuqZ6&fjM-?`Ba*ka-r=gpA;{Dx!0s(f9w6AOya&~ z`hf7)?Ys?v&(B2W;-sF)p)M1Hm;BS(_@>ZP!FYmtwU%w#-#u9lJhzjow~-YooQ@9W zEtP(*v&-8G3!8eBb$;Q8j@10qoeUhYyKBoGZ0eh5j>eQ9Cx$lz*SX^aKC`<#5VW*# zZZ<$+zEoC6@^3zCs_{z`$GBR_f1ge!JKfKjl-;gW8Z&1Jbqnh^6@KX4n0Z$8M^J5Q zfY1t0`n-4sFM`{xy={<^ef{9(S=C>?v#W0JCbIB7^UpsQg-)eKmmKC)9PRGMN;5gG zxKHvNZPq-pJc?@C&Sc+QoNX$r59ro*!u4|3mU;AcaX=(=_L5@b%Cm{Ig1xr)2seRC zR|`**hiI2%YhU&*CgurPIjswY2qe&@wYz`M=9JWUz-xiIkP|FQsH z|B3|-kfVHQdoGA{ZB>>rQCz>e+^5k9;<5zW+=WHLt1kVMzE?-iu6w(-qG(PAVxDW_ zAFTe^VY`MV&23f2km9*Oc=9m;wS-R+nl?+Gn=qx^`?FeUro*nA1Ul?@oou(H9L}xZ z&l~l>l9YE)_2e=Ot*iRF@k4rB>vHo}JV%Sq(9vq}6KB#2hHXzY z?sns^c6D{7jqa>(GmidYc(o?6cUI{7Z;Cb>$JZ#e4B<1Snc7-R($WQrBsI7DS1hCL z=+}>5`CRP8^p0$_sm!eP)q$xlyR()0`ePL{hiY8+8(w*~+BDTlPH}4t*%~EXA44;5 z_&o3a>gnz^xus@)T9HQkPK6`*aLKd#xHK4j@q-`cRjUQXH!0P!3H)-A)!|M~Q39KS z^z>0XI-Y+i1jWxdw$ZGdj!*60k@@gW|9t;+ylQ2*-||Hze?HA=Xrkfeb^w~4rRQxl z1qlL1E00KtvH;v0Gx~kbneJwwY!kmtj-%YnCMELd-_mF2jRg znl$CYtGfJWwRPB&OX~(dbxTO%{5Ka@ca~@F%*|W-ymOL-#9?4G{7C@XX_2(C*`wpru*B$fq%ddLm$%;Jyoqi_n)yJHMXvH< zP4s4eQ2LcL9eTB=RO{8I%BDY|B7%ufM)S+Ofg@j`>V3}2)6t(Hs7n{C0u1Y3(mC<* z)#p$B*?Xfnp(%9OK||ZubVgnEDr?kTx2n=^TVC3-qKy+gnpxg#8@Lo|-)}taeVp-0 z={KdHoUS8J6+8vet@U3O+ab)a*+--RhCCa11d^5vclbEBIj;yip702yg3+%Ss9p+0NtdGl!Z=^lWUhE^SGQaz- z=x%ltO~+iRje7d+MLWUe{nPm~p=5hI+2)bOn(q066OF0u!{u|2*H_hsW zTbCv$hFSt&>Dxhm%R+OcIYip zP}j0|jrp2xc_qxbgK(nO<@9;d_LMi<)nrk^Yc~5h&LRd^Ne3oBr3tgn(kKhX2?qX5 zy;Z!w_0Xiw{OxqytBMLe*AvHWEK&_;>GS&QGaaJ6wfu&Jde?5eMb z%)&mw^74=;bOUd`J-xgUaUE~{_SvkRMm3KWCs$mXbOmW*MKMw|Z>)@7Fv$OvkIRak zOX*>tOa>llbe_Ye8UzkMCnUH5y$Q*;JZgG`#_T8f!oB7BLIS@S5aOcJ(lhCD71*%? zU&l2MvCx4doS4Q=Dt~x@1ufR`3Bef#~X!cQgj~` z=Sfq+;o_&Y8+*7@TJyobW22(J+z~~?aNLd~64f0$jLplZLDjOSElEwHp{=b9F6832lguTJW<2SLzA3F1>D*sC4i zVR@Ck3T=5DsPFM2rSR8S1}1Ft<@}b_^au0Z|2~21AJk#8df)f)M-y6TPw!JQf<{=VLPd`ds^^PHeZ5N@ER-mj1#yap2ocbeUm{M&g% z+l-^o+wkR%YqkAx)k=HIG#9vmQtkf1at2$~Y4G~7GRceo&Sx1Sk^);O<=3q@-b@Zn zeG2Ymcx0&kRz_xkT24D-skE#j=i=f2)+1X?OibvI$fNwlOExoV0|SE% z)v$v=DeuKY|E5!MwnrZK#Fh%uQt2Y{#6VJquZ(bAe~Lv+Epb!d2Ux`qPJ(WVhcWv8 zdo21g)OSCa2)1`?DUv%aK0n&_nIQh}Lre1Tkc~#`1kgJE_tG<^Q=ay#pZt*P~JM*035c4}yy z<%It?u}p7j8pePbqqz$KhUEh0?yDfEFTBEhh1&EB(ili=m^w#7(l$2i@K=cLfC6N< zHV^<34BAINx2SlVsn9B~bD-m>6dGg!3JVKS+vJ|gmgMFJ0~tj9d7Cd><|lMPr!Q|_ zd#>?Ib#-Ds>kvu&;w=2cBTSrxATqS-4@wGz5Vr(mJxw%*)>xId3EnuWs;aty4J@$V z$w8p`35*!nS1Jc4IfUslAx1M8Gw%U0ev!9tso)QGIIY;6shUmI#(^#-U+>|LO5|)! z)pbB@3U(UKw$Ub^PjJ< z44HNF@o02BdkOO%*byNK{CrNrR%=i(cJz%NL(QBmqoo;*1^ep4uDs@!F} zpoE0MbiapMKJFWpoE!#D)uV&3!_{qMLp-X{EX8a|HYrmCchZ2tsMx; z!gO@|jMJxlnwtRR-jtQKRNS(ff43d@L*jFNDKMsVzERNL1e*)nnB^NagQcx5yVn)1 zQSz3?F;!Jn4L}al&pz_}{@x5UWhO|<&!0bKmGs*(bdOI+xIf_$ti7%+GottQ-2t3e zjM3E5W5-;d#PcH_{t6?8B3UUPEtu?}otLP4WQ>$D@RKBVnm8C|`>^icWnR zFzu)@WArwDU&`RV)-?a?Nx&Vchi7K>8sk-!M=$?8*|Wdn`c4;ax;Qs!WhzG4m0rEu zRCO>k6auRnXnfC!TgC}%l6iq4 zP%&%3!dCGL8X6kbqs>{la^*=NFc9Zgnm3Sc&$Y7)NJvP?PQr<1JN{yi;9Mg^n}#3; z+F}GBH@MZiruv&J-?kVsWXR%gn7w#IXF>NOkEa-;K^tJ?k;`8>BDz`pshs1(7!@LE z6X>=%Oj4XXazMsM1KwI$S)ns*0iU(aMOS9!f{by-B-}}@hxX4vBGv^^FFtS<=iMyE z0%2|!UxW*_e15$x4eP~gLEiF=cS$^wWbTbwVwbW?eZ|eX#gcq$`8J)EBMBA3DuNfo zT!%Li$oIfE>jC`5^H;A{K1bj2-g{c2Ls}oPZrWT5?)Pt$E)CuI}PLPu@jB zC6?_w;V2}e94CW{6#y`sE;*$79A!j45?ry@{bXraF6q1bZt+V?o5&gO{AGr2WwC*Q z!TRVwCN&rfw0H<1mUIhzHhf*Xw%aDz+J+kzsD@5H`{)3i55P64+qpV$3c<2I*zpKI zfBtO4_aJeR7lbpAT|%P16ih%z7Z=Nc6AR{VXkOi6+a%&7r`-{OzVGCdea5UYxTY~- z!g0v1XYM$?Z_5|dY%&aU=0AH<7XJXggNb7jx`t|6! zXZJo{t`xLOfTQrI`2lJL+5y=_W=vRI4lYJ`A_bjEr|!r-B4S-_`E@v5B90_j>_${j zdSu1T1II6ND0l4KNm;k>XE*@oPOG@-vbs8!i2-s73f4+rkv!bzO$=$Q{`fJ6jHh-r z{MfNR17;t6lOxgIH?51mI2)w4-~$IT$c6<=^`VsO5I2aVM260Edx!6OZ3 z&(=^^--(aPIMe!x%?-nFY2Z~6cBe2Bh+564KclGV$AO~oytFoEZ5kK-?Dv95LT;Mj z)K+%;TW*eYMNzc86wC=LR$p|T8ssC^5VU)Xaf3{ zvLT~F)z*}ZIo8mSrqM}I+&sQ^VZG|&tAMhW^SDRb(1T)KIWHMw{Oc>TU&!^2h}o^9+a4v zxH#c3!>~zF=7=T6UEG#by1Mw<+CbFBM;WF}2>CrBX71Te9F5yWMH2q&s>%m_2KG5N zdnWG|m6ve)$U8D}UqpoJgX80K8MbnGF*OOKMKiOoXsP1gPq6Q$$Bpo^%34$XI<<}B zjuLX2n!;k3c*2Z{xk+K_SMCAP3@?DC5fKp&m+IT6Z8^sGGcJ{rErlG}J7~sKUITQ! z5#6RbhQ)K|$&yivh8sGZF3?$YM;7Ihsg^`YpP&;zb{h^YRX28K&+s-Gw{D3lJ8#a4 zrWwGi{H^Ni-}YvIyK?0UDH_?Ae7cSbpT#O*5f{81i@L&Q1}F@?b@(ud>kLrc;onup z%&lNMH$(J5y6PMb*x~=^dV#ISsA&Qlw`E z1qJpuy?aWGrt{OZBspcia~CXlK#;@AQ?R~xBCRRpjG|N-xrv;IXMvD3@o~xBtz~c4 z3u^6;kCr((InR<@I`D?gj~Y%lv$eBpKS@ZqZl6qpb4cYT27+`NqehKluw#qmmPpLl z>4-uOXP9(@H8ys3we_FQG3YQsEg}Y_3__N@xa7~kPR}JrPLNrd`mS8NcDQ@uNb6m< zZcU-)$-aL-D=SOr{BGU8E%c^Txk>u>>g($TaS$7UQRwB!0y>9d`cB+(l#=tps&b=c z%a%z+FJCy>@|XSf^#^b-6*VJIG8=&hlKbGSSqWCBi`>+6kNM3wecNVsA`H!>d-;Fsc^clngx?6du; z6(MHbY^ry!$UiakatSpu39KS_Xj&O8Rul@|#WaR0{KXXyZClmUH6KI|vU1IuGA5gP zvAfADPzE!|G|3x(Xd#^|#pYmGx0#gdrKL_>cM;+qJlG2x42tr?+Hk&m>vYl!1n*1+ za@0{Za8iw@j6w~?Cmu$u{`}<&GNw-Chvbx$nnL5DnCj$VW3jX_(*J;p_=!{L4(MgH zUN%kU0-=%-h3f|!3LYu(zNHvi-loRpa8o>+a1|hC#(ZCX7!HFN%HH@@JT|Qk7Ix1o83l*pJSLu_!Goo3?VL4n;bL*2&#H7n0=4RjY!xErhP01JA-m zt<&=2>+L4NXGh5}jw)-BNYR9GslrL{IcLDb7`yKC$+>4|OMR~{Ie{)+DdmNbi9(0I zkLdCI#fw5H6`W;owCk^rMY+p-ms`4YSrWi0aN*Vj$L{mM`itkN7NC!(LEld}u?vm}Nso8eZrcH)rVG-9hP0O8$%bBo?rOQO{n1ndqe*XNZ zu&{v52AA%=?)%b$V-4e0RA5@Rm#dbbl$e zP)H=lUfh;N2m|b(><1H7ZF={&W{6kAX(mLj-FoU?F-J$#D>PnujzqP+btvem#o;B z;Aa&#eDpiL-I~X>?mYEt-o0xV92wVjchK**R!RAo{#8$>yos48G!rvBJ0n^_`eqc4 zy9rVYylbYzfn56VRHnjCDzX`$3H5^3 ztuJ00r7f32r)d-gbf_e>smnY(q9(_y!hLZP;SLnf^a~!Ev)qz##fa1h5-j2eajKvZPlX2@ zHAZ-hIj#&8Br4Dgct7nFms~IWW z4f{^q8y6RM>2UthE(!OD&jSYya?Uw8u<*jgCHYEOUpc&7vdX==Lv-~w~=Zd4onDG(_#4SlWT?1YQWn~d$0cvC+@HTu>G zJ{0=M_C7v7FRrc_YTLWYM}vZ7%9IwgKQo>j!8FJCM;`@+Hi}!cx%^yTF`^eQHT~fV zlZ5u&TW;lZHZ(TcURh=vWNkV@mYPdYK8X3ELF^y6!NkNw{a2&NH%;fB9m;GM``#)y zH#g*gziO)1)AIvkjna${4Jk~)xK6QML_nppv$7mT#`c}>Pn^%myK|>?l(}o!>O|7f zJEB8jZeH)w_|E&c^{d`@B38@59P#cB01C8G3)j3lcs>uMJ`X!Mto!}+uYYRaK?FN* z9&fG%s7telAQ)vs)tmVv^GtifBmCUj9XuC`CDAn7eYir%fAEKbAtf9m+into_zRRDa6v@trQH}JOD_5_kNa#SI zKAk-q79G{5xvYxftIa4&s40dBPdLm6OANYLdTU&emG_y*bEM!DHN(JW$S{}|`Chy@ zZ1(Kgg;KOUBJqGMUNL*l5rJaV2UI`Us?UT@)F1g2huS}O27IZms#;*U=k*F({o$V7 zW0p?Od+^{4o}(Z>Pi$l@4{ZVN+5i%X$~9D@Emip*Mcs&;!Tp?_-L|Q;Z9Zzb_}q=3 zN+LP{ibz5S;5Bm+OVb*aCY=?plKb7TX*Kx`{ubkEGQ0aOJQHc5HQKAHH+5l1;h0T7 zjB7VK(uZ){+!2c5a($?8 z6;A{RZ?atqEfp8U5(ag@rW()cZKHL~6#zry#^PDupF?DJf4_8NbDtXHQ=cD760 z-Hn$oPh42}y!pge&c<8nLcMgmb5G}*nyR!LH#c7`v9Wr^nE!AAyyG-CW2vz& zrwf-a4^L^FiM@th!jq-j%=s6xtiKfB_;X>ox#qP))n~bdG;JvIgw3!K;@N0a#oJU? za!q;WR`14X1vCLL?Gof&_J`yaysN0VL*E$%bNu#hv$&#Q6?08FqCFtg6y$53 zRK*-C#NLPa`^FXZ04w-!_NDI^TqV;O3zIM%X~F~W)Sb9$+fNYd)jc_SOgfeQ~XT|XwzrP`STw3-#7(l52EKdvyC=Rm# zTBGDQ%fIsng~xNu8Ah70Tp)jmCK&I8d`fPve^KiRhqb9-<-vhK;OHeq&ju!$#laPx zpBQgjzF6-`L5R0#dfBc$PK}$ntvD`ZE}KVQI{ji35A!amReT^ueT!f-N(E1%vK))> zO9P)uOrnz(-fnH7B~S5nuuy*RGMY;LRION5g`o?ku~@-8CV730DuwJKK4$QyJNBEc zC3AqxDcMB%O799wSBO1(j$IdT`*wv^-_;)L>uO!7f3s2D%%oER^m`LH^k#ZS#^i1? z^rOC$mx;8-6-R?#R~k6<{H04}JSw7FUj+pPyDQ7Gk>`nihJRz#%#>@_YLNvBD+=1K zdptcM@d88fJ>?+44RPkc1+YR6pjqqDD{P~NSu|m!v&1M1b5~)SMDh>rwGp9ZynRZr zIHy&wQ~zmOb8|nuyn3!|vBH2sh`Sb3vJg>e2C=Bxs}}q6lIvX8!e66AlSEJ2|F6T% zLs0dBEmhb;aOY3R%rza0AYQ@4sV>N7njdf9fzCi0WAhdZ<3q z(o)=p$z39Ap)2>KdZGJ8`@TzUk{BeQMfZ?<92OR4Kue?@b%?H++Ccht2XA=Lh3U_@ z3V>9CMaYSK_WZfwOF5(i9cj1`WA2WN)22pW0(Ug{&1d9<3?uk`dh5I>Cjk24na?{MTm7;2!j&tF;cynd@t|e|kz9{3Dlhc5#e|9%=iw&{Rc~cw8^so0uV1}_ z?${3~W!ttE+4qGwjX?7LRmw1co=^>G0nfX*7^+%FnHLDBqd_(*w&7S|JYc!VGhALM z^zLS4Y^6LlO1*$egTf(lR)?3D-S489jw%U^S<+4B(;VOo-op9Im&H75#u5FWpPugH z=fjXaak9wGOiOaTx#>?~BlU}U&qa$Csk?hjk5g70F|u)3D;z<#Bk~bLKMua(!7-yp zTdrDY>3uiA$6D@5-_75<()k=b?twz$)%6W?S9P_XY5AeDqCyP%T>rEUn!&tkAwhr< zQFmqK1*fxj?8$5NJ7FgrG;U2iz)VvN2DV+icoDNl>5EV0d-P~eK~;3-(2*nB-1v)? z)vr?e%b`mgv*lOS{I?9PrXX3k-@d5}!MuZA!j(eL1S@Ss7Zzi-0L*1Pe{PGLr+)bH z8K=7j1P0!(IQ!_s4kD1%7z(8!%m6Ls74y_OKp=S^cH+bdomFM`+^Q22WjmYiop^+Q z@bIz$T@$R_e}*f!<_CkZhEytFx~Xk$Z$F6n$kX>PVrzAu?!y0xMj+<#%qr6K*v0wu zV(s``mc$mOfU+|PadSjE-1yr~UfwS(W-YyL1G|F^ik#3Wtsd<*&Lj)xB)&I~S`~gnhp4EiebE-JK{*DE8auWFbEsRuzB|#Fz2!!VNA>3O=Rs7^;|d#` zo96c(x8C&k%+FJu+Y^MiqbX}Y^`O#I-n3BOAhE;Kvcr#$Y({p)0&q9L=+5vV0q%5z=f3}0J5 zeQ?>WNUy$Q17I82=0z+Dw5tD%H3hm*N*fk;%i?@fUo5YBd2}|V=@4)}#c8Cw$>!rT zXPh~sDHq`LPcPC0O$G4nkE>tL_Qht4OTd(&VUo6$v+~}FaW|V4 zUj8tf7^2cv5ZVVEU%!nye?p7(E)LH<2>2pe@P0IFe9+ux&s|M*U8`?KE{j+2Y;2eyKY=-YG?c(@`Zri*}kW)ZX-$UI9C*7lW&$o&WjQN`e-g8=2W9+v+b_gTJp$Zm>aDVBF(hB86VF zU8G`!PfnW!|8i8EmDRVYoHW%u4?f_t*7mEQT_aX1BWQ&E<#G5Q1!v1D&^QR64>@4vAmq|)8|=EuVIU0P25 zo%^Y5OP&M-BLuSz=>GiUXy3)O0~!3!v!UgCLkGQDZ>5>vVfTCETRHu_SO|! zU%);o;f(_X73-;F398hI%1_`b_@PUkJb!*aaNJRPwH^spx!UKhqje9A9Ga^DHDckd z9Y(Gc;;AznPWUK-+6&Z`22!jM0cimdUU={-@20eJGmz+H0|US3*G9~=Z2U60K0xHb zIxe}Pfk8UJFskMJ_hTI>Um5yCaj7-^5GXKhw!gf3{TkU{i#NPp^A}Peh6`!u%pD3p z{SaQPLYH~jZWh%%4msh^Z!V6lCeD3jx5C@cpT%YX&7nh=5O7(+6oTYKm;L`x8n#p9qaoDP(n6?9tnPvMU!RcNaPM1?zyDi`ac`_W zd`2bEk&228z()FC0)l1nYG8X&s-nOEGLRN-HI(iAi8NsArZ-96z&_&S(Fqve#f+rI zB)-Yg;_E2|KS&g3FI|!o-InWuS7L>~2X(Nm#F*<>3{s9-yx7*;v1pLPaAA zs@IQanWi&lv}SC&@avllWZDvPz}t84rV<0iU{DHRTfpQ9oumySDkwUI2U>mvQkJv2fp`)0W<(-Q!>E#hhxQfgZDwO^>}O_A*fjA+_or@o_fOz z^-PXqU6{K%(ZO53<|dpGZfxC~RQ=0Q-33F&;vFZx3n0~rfXPhC*^)`Dk1wlf-9`DftZ z!NXmj=iI-qj-d^=ZB92G`44y&7SwQbnV3a;(D30Bpit?D;OMv|_xkuG zK|88vj~^{O4+gz2h)d^tdZT%_Z-18$VTw)Ye; z)HL6)in9pctgv)u7%?f0SZ2TkMbI6vLs?T@e2j`c5DLnuR=%LlIvZ-8d4xwx{%>NQ%SJ<{KcC`z_ zv?OYY?o%%*GPj5RLS}>IIDP25J#MRG5+JS_%mQV9m2P4XBG6eJQ(;m;Wbg|J2riyX z@<)gY^u8-7sH5mF03Tt~m|kN{AzW1b=);3ae&#XG;u3}HP2YGzPF}tSf=t&weMAsb z9JW}N7LS@#!c*1eY=rQrZOz>eZ(&RTsjrm2R%%9%B!GqS-;?`&OWQi-)bAx&d#tu3)B*OjReDK>6 z?NeGP4w@?kc7>@bAK`=Fv8?fqemOw zB|(DvDsXP3F5%MjqSnHh1VTfhbibDWJve1O9dizeQk-wf&(^XsFGXQkTdSwNE7th7 zFr&nHf&7yvY>ElgkqWhBc-T;~I3-@Y39Q5f#ju%lBg|+oeh91?3%bOZlktQ9jMKWC z8u{sh(1*_i{6b%9g`GBoPbosa{{k7s6_RNldG;>LMWJ4uX0bH=UHLe1v?vQqGc2>$2}_%Jy)M$Prd#> z5E`>`m35S26JvCYYSww%)Hq#t;5*W zYtf9)Bq>wIv{GTx3HJ90pn{>vZn8UNbm0#i=V>64Kmg%i88XP&V?W}*u`R3vGEz4G z8R2{2celX~FhiwctHy#nmqlT;0dB_>^&##E{iQX!_2{t+U>$%-<3!!U|AW;K_PdwD z{7wHeqha=u|0|2Xb;_x({bv|lbb!f_-LmS#2SbP!=Pz8~ z+#4M(+S>1Z0k9HeuNJV3r_ohV%MBaox2tpC2UI&$8P3SHMP>(_qa{4}tI@{B#*wK2 zlqOmyiM;@6D4cE-s(ktKrDHk^rc8imSFT&9F=~|J*s){#fAi)S{swFn#3T14tG0PuxCBC6eRn%U%mvv4b9H>CuzVV32J=}1u|B%|2393X@8FSUjI`T z-MM0d8Od1+*~_*i*6+6LZyiQD5fiB#AFiBOOef}FPyx0|@irG) zz_S8#25Auf9jmnc8hcM;jF=I}# zy>FWw5D*|}NU$Va@ClL9U;ZkLqChdFktyPX2M_4hqyvfO-@HV{0F@r0pQe=H%y5=RD}N94D5&V>TBr^)NT zNDTx1u7h)ON@ZEn1E#=?m|tR4B^FS1@7Xh(ljU2|YEZgZLBNz{0~T@0OdBOP{WR6I z+vo70bG8|@*4dMCxoLT>&#Zojw^xrmWi>6X=6p}s(QeO*Rp*x?a)ERBmK@O(6p3h1#)N$ zhb>;R#5!QJ*uH={ryATXc1a1U%yFNl4X54Pw{L%sPq^x=piaUzG-yu448dGhUa|C= z7)K|$1Rh8aU~dT2h#6A^xGBc9PG5;=0GZ*Wbm1IG3Da}bN)_7ao!z#Nnyzg2mZ##)CFjmmjmZ%P(1MotM*)+GUZSTli{8!!e@h&yeVYh2jO1Te{{jo4y{KT0%Y{v^7~Y_ zhfJpQJ&QL#c(h_}{dA8Ygr3s}2CLX>8Dl8JB2`W#x zS{%F=mb=(d=sIwfnORo~I!Z)w2tU+i*?P<>q_hsTxFWbcxSRqlG0EKjDgb_$@4}cA znzYBow2h&K^7nsNSh-Ww1=827qN*3Bs;HYV>PcKPpNW^*{O8Y}8BDnr@yC3b!-eBA zGBP4jJ3klOUj$3oVaviWX$YM1IobR12&yHcfL#G&uC4_!$akXWmc1H>rc^#4k^G= z!ttJBBJx={9*TnhF-uNFR`MX}55)u+VmP*Q`q|-Z!xcgzz!SETiIo5D8fysq<0nXWsd9ve-{=e#8 z?-d=4E%aKu)`iXw`rCQpGil=7_1gCI7Ltkc)cdn@Ubcs7%~)lhC1Rj24Bc@M)f(JR zaP!!?D6{LgOseO*U1f6>T5e@ZX6)G$LJy31uI!Ss#L<5l5EsVDx9P3Zb}yqJzO(t4 z&avbt3iGb$G1zw-hCQEMzIV{m|8N0J9o3d; zO*m~Hqp###?NDxY0Hb+|L^9Ehf*P8lQxMLr0*Ru66sv2)T;QNlRKXto@#Fg>Siw!1 z?{;w4sBa1>E8lK&F7KKGK^3TmZ;H3kppL~{tJ8d`!aOD*%5-EQ`E@W+W!}7huX%qB zmAdx)Ujlnb%45wfpCNL~YJsgmGd7&003j>Twt<1Ri_|XQG+uq=cad3vMyT5*IU8XMegOs7x*VtZ zfXd~5qLG%S=A;-4qiyptZ{6C)TtTov5w8h$J=y2Q%@BzM>BR7EXIQkuaD4~Sf!44w zeV)p=wr8wfZO!=NOqE3iB9`5-(&QA(5L9VIiMZF5(W>%3e@eW+b;Kf5ZNQx4-fHE< z`~~(8#Xe>+eI2pbyrRTEdV7=ZpDuW-`g5W&8k@$F-C3Y61BVRJ7%?Igof!vJeXHnB z(dh|kg8p1Frf|D#*KHc}24oAsUl6YbpoxIg9nM$OgI{K7As{m-;48WC#Oqx~QBF8a z5%UGlPpq~D-q9R9cKEMb3CTuaSRH51yz7==2C6ngS5FmW25`-wMqM?+Z`As)Dv)=? z@@Z}%6^EMY#NTgZ?CtH>L$ynRCO|(7Jyt12nj|EK^srzg3wk>#&)nNvOl|Q#MoO}k z8@^zhDAZ`9$D!=P{%|$AD}AL|QS#dySGJ)uJ)N_$iy&hYO0HwcEBPs#bm0Q|zLP*{ zq4Kia&5)f4QjV9V)swo)AbCVkc0tD#CQ^*DM95;`Qgp_1;+f2OsQCo9a5L{`l@AA%hd*+tqmSKRnS^Arf;qZo9IOw(S7C-v&yES1@UIIlKLxl5A*T>RF0uOe z$GCH_*#Dtz6c#4U*j&ke8<{O9mc6>U`3QjMDS`u9EZSG|J$CdATC;le9U#DFswWE6 zVQl5);%V&cMCg3Hex4silyDpa0mK|G#OZ~ye8jW+Xbkv*&~H&APT^Co^z!misbMhW zui4PtH7+lm-Iqu<$eCP7cey!giN9ktKjSl~d1G3J!a z;pwv)Hy3_Iq`UT=d9U)xXM^@)YEf*{sCNJM%0)PP~LFzdD z=7j*!pzIP3M8gF=S=4p6&S|(>?9}Y7bxo6}pF{0rbJNE zc%a@x^)60M5oVjvj`ZZGiR?))qh51~Hso}9$*;Ndec}?&(QC3xLyspARTNAY9kRvv zgiljSnNc;&Vr{GV{h5rYL%;vI-W;Mwm%JD_#JoP@M^D*66_ZwVC26sbUc5L=wldV+ zN%SFRsa|v1yS3T=5}Dq;&p&0()X!#aDJT)%&g>;FdqAK|DQG0FH_rVJE240K zN9N`PX#QF$=e2Gg$x73neFf5Ie^HN(f63nBlnvj`$Srl~V;Kc4z)5ajWWmzN@^RTWDkWIW z8+d~eS6iCaDbCK3*_)IvZ2^RIE3_sj&SJ~N@9nFY9qg`$ZLH7%V`z>14{OHoF=lFN zYj29y3+gl0>NjwpE>)&Ys%XHO?lWgV(q$hJz%%(gxA-e z3xA6kvtwxUz8kCe#nml3PTKQ%%Hsm`ysU-~;_R8zLa&@smzh^f)`>6Yv4ng&q#!>`k4woYR6Yjh5nYxl~? z)#B1A+YOT=d|H!+dZd1~k_1@294HrXw>UjPPrJTpZ+U!0MTN%X!!Bm}>2>?gm|5a2 zkR#dT;%q0GRi@Ryxv+N6-o33ghnZfDt&K6+9A{!1*t*uLV!dVE=^vM`=f{PGhc~{R zzaOIT40!nr7ynHC)hr=ETV6Xic;Cm3hq@vAEWJu&!0$o8TT3@2JtMC4?>9iqb!SER z`0NZ9h(*-LVh`*pW|GQKMFt1eR+qua6^wLlU!d>Op5bZRSYYo6chnTt0wkS{Z<))^$3b`4)ch*$Hr@Q7%{t*T(3D{ z0^lQJ8Y~w3lvO)nJwg>34@k;35aSr#^?J?Yk@-=9Oy?-RC2?+clK+>~&@=q*!se#N zFvG(K{&h>q^I`d(FS>}m8YEotS6x28nADauya^B4bzbJ09qZTvlxy-A1u z{pZiAewpra=IN)byZ!&ei)acA!@8p`H|^hlr`Zrkxf+>swZZ?=FT$I({!%i+GaP@X z=F;W=^Vhel3zsi%Dzg*db@OnSs&h77ZTf6zD9|TZXHg-JY-T~2>WKDZHbcXQogB*8+OR||r$f8|@tY#nU znCUUUWl*I;yMXtBs5u2`-E-EKEfYu#Z%|&0^Zvabd?g(C^XseC`Ia$*ve3`xASa063U#i;3=6IuISoWkd(hwW35tM|K?21XlSKCd*-a zWWyPVJm!`b^MORU1$+s2O$yvQwEoy_EQ9-fx|t~m(5--Q=vc!>cqmbsFQWJ=I$jOCKuEY4fcbpBM2?xsKv&@BDp>e3qn2#S zhf^SCL}c^PEJkwXWt$uwbwKci$M`mNB{d2;8xI5Ab!wUC=V!VFZwYo{^v~^)BAIKr zG9njX75%X&Tp8jDCs5TOAVrjmx8XsWwBE|sl;)Imngq);&f+I1G5Z;A=;b$Kw~MUp zI0M@`7AhcjU;SUSFXE-(eo~ zLctV}Ep(9W6sEgScgyMK#Y7r{j|6ZMt8pSEy)y?ge$-E)d_?)tJ*plz6HU)*esMTY zpCKP-DBv9fXb74iEcf$UM7I+0+G6Ih>uWv)XOGVk=YYqrahGK`lO|8z8r@wUKnM(8 zPM~PWmNdqWJwlae4h%Hm_nYnJ)dOc8_vrzPxq>}_QqP_}17S4*-2qWvL{xzLTQ_Iu zR8RbCcBH0`03Z?o>(=R23-=SCigGb7-V^YO^6ekx2*@Vh zx5R>B7?%T)wG_w@+aDbK8;GAl+FiA3ZVDncuMsM-$cj$4JQ-RG_5gC@_fOCDb?p6{ z=G7wt>+OxgT!YpP+HMs6W~n^~3?|J&08Wk2#M)6{I`_`0J`c5=lOFvLMuEXmu&)6` z1ky#IyXcDj{bMXrB7ZVJ-C80MO$R+u*yz<7+$!yFP3*XtfJ@2oO;w}G>4Nq#iV|)& zvL1978)JT1%{*p;1|cIu+SoX^WTcn2`9yy55_6$yfMNpfs{X>wc2ycL38f?ariC>^ zUbWxWEGKx08P#F4ocbxqn$YO{5K8LeyrQqvk(1o5y%}^NqHDj=qkBR_6JRcUD%axc zqoptr5RGSfx%vx#tGKM^&wC=RfZHy`I0;OsJ2?bcKsa^(r9$MeLpDwHEU2e;O3o*J zfYaiSw2g1H{`c2@1eY$=Zdg&P4|=DERK)DwXT#^)mvT7LIyVwLrwVO z@S5(VT48+7@;J~$vE5MY)7%qOO=06Q!3!>u$(UzELAcgaiH_2zt%T+m3IyEA4m<)> zJTJ>e4_$Em9x)ZBi3`jhhLWh|G8iC zGF0^DF>(QOiInt4+N)2_;x!f*9|!7$(jjKV(1ToZrf(eL3rM54{M9Iu?;SE@idXgV z?6tvq7T=$v4C$=+$rmKbEbj9cL{9$VYLGV1D!_#4 z(9}8ap7G2FNc(ryf*9H1BauhRkW4R>Jqcr=#b|)F6J%dg7BI1=x?`$!hGfM!F?!k` zAs->$XX3R$Sri-^s__63;y%$-S5)jm1n}4RLaMuq!9R3Si?=659sp=D0sN~YfOD0> z-vc%t+rM9Gl4w~?PQ!Z?NJ5dDrW{326gd0^byF@4YwX5jR}L_qlA1RpwN zeP)^RZVF+)o74ntd<&F*VL5~om9ThW`YRl$MeEB}%Z|R{|6R7bk2nCBqWe>Z?ibvj z4mr>S-~t)~s0*v`4i&CTgzQ!`Gpo2FjkU>oAKdkoSdo@aB4zr7636#1--}$S|G^kC zIGpJL{iE#=(^$pjet-1x*)susj@eJY1>tqW@2{t_*D{=^c=T%qvULVS!8J%s7YmS@ zFnP@4BuNXh3dLI_FPEn0&AWHor<{7jD;Lun1hnTltOAB+x}GcRcpW|jc~R&up%GA4 z2&a?31POwWws#Y7Gh4r`1j7ZVlO0opvI;+{^%M3c@!IAG4NQJamCLQ5SO!lpZ2K%A?Rj3)>UG;vKQbrT8MuSwMIcj=lxA zY9OHEp*02l2Q3ry$DO=J1z(U!ND|WkV?~bC)Qq;DF0@6IlHCc##hZW47g0%Xk&dFU zF$3@zc|l)@t?^*5X$B1ul?Gl33q3qKs>C}Y^cJjGAy*>mTWOuNPFf>|iBJg;h~m=I z32Ij9VW!LiFXCK_`BPh?R*NfW5HX2llMRovY-#b#qE`Tm%TM5o#Ci z)4Bc5TZ$GQSe>X}%`e&dI9yV>dIb*yEZsfo(IA>2084JJu&Qq%L>Bf^L>mfVUQrNp zVMFgb)KbWA1$$45=XZd&K?Apw1x)_e0nG_7Y*-4RwRlLNggH*Psallh0y z!Mq{CI$E@4Z4x|aCjz^as0*2|`0diZzx2=`+id`{f+BzyzPtN8r^WHmcPK&+4Rsi@ zw)_b_vyqLq8dTVwK|w+HRuJK*cm~JM1P16m!8;6l`L{3>aHio8M5lv?8|f1gYMHn+ zFcQT*0e05gek4kzn2i-vG{v4y)geO?Euz$+Iuo!#^)ekhJ-o5WOWavPHzkPrxN-J2 zdv4-J1#OS%Pt3#nf@3de$wF4nk<7woq-8_ZmHi(*J?jA1X4yn?{E_okKtC&$ST9&e zs$+y_p*bVCT#W}!+*}2XnCZ4qp@&=bH0-A|dR64gzFYz8mJt)yf1RZ13Gop_7=>fA z?;>Yxr8wA}VF6N$`N``8uQ`Ee-lb@kJ{`D<-oLcCl#_y&j3J=>w6Civ6zBwXE<|qC zo%EAozu13?Qj8h*^!Y-8PfqR!4Tci-B7wg9^zq>4{Dsp?U0U;>iK6`Cl7=(>)4coc zNj76OnHg7~5ubOA9gg_gw-3Ch)AD69nd2x33+1nt%++Vny)4-X-My^oi zO-O<(Igd2RJ>IqsE{aq=w8qkZ-@c)`DIxVy)B!SgCZK4WE5(1>Ofqp+=Z!(3MqKd~ zY&`hr(LHtvGvbN@&dc~BjNgA~!A5_;n6IzBN-VD(Est`LW3bizY6WRh`xtH6?kT5q z67~L^o#(GMa%N5Yc}U;fovxj0Yq%l!V25^qgknU+#<%c`(ylXxqHj&Auc+{DZ2n1m+Bwx<|$7ZC-&C}F#z|*+`6q{kML5NdKx<$Y^(^8 zXQ`{nIp?vRLlQ^%(;6su85S(|Ck`IWq^a|Rl2BA+x#l6hhyFT-C22l=b=EBaw$#ua z$Ym94*Jzu;N_Oa}jrXZZ9<)6pomVczukhV(6-Gb$5QfH5j6B5LB4M5arK>Q+6BH%# zJLik;?c5GMIc4P`V=Bq!C?i^mQ^i#i8V6dmN)8?9_bGeB(4D0h93Ue?G$Dd!P~Y{$ zfr8KBTVQ0i=Aeb)U*E`Ee^tO1JSu>lp2U`Cxb6`&D+JrUcz|&cU_QeGU9uy1fXH;n_97{JXfVmgilbJZOco}Y8gaFPrAQIL zq9A=O$;S(yBGpFvQat&$iz-VT>{cTq?AD0=OA!5*+PJ(}LM_kyGm<&v@4rq+RFm)7 z;3Is4P)^I|Kz9%w4v`Z=6AYF|X+F)R=aTHuP77@b4V&M!A+4fIu5aiLn=Is0;IAVL zuboWlOPZSo?EUm(WA~>?kv6fy5X>^BafR!_Lt6??HbUJyqB$+9)%Va&qIbSMfju5!kefat+H^YBaHU$(WQ-K>%stmla&7_n=LTenBTqtx5oNffGT_#hA7w=)A3_lQxql0Q6SKnqL zGey3~=Xj=`(d4JW%_O0f&GWK=E#I z9Hv!nq{pR3P-I=m%F~yY7DQwY6BVAGVby?v>+Y14^wqg@h-A=(@sO~{<16@o!~tB!=Ix;5QdVlPQ?(Z+qcIQAyp-5bI|E5k*Ib}B!6YJfZMQ8eI!|9z8Tn;Wz|9l%6J6!x)DBjaevmw!5arQ^i8X|| zblM6=kHV2hB#AzQ=NzBd_`SOz;L_+48-*=nY-)q&2UPbwg{Ys~=^<69gy6Csw5iju zov5Dk(&%J#xh{Xk{Jx!fQW6J}!!G=RAP#p8IS-G7)n#wAR`l=ptxV-hxz&vkk0u@v zYpi(k49dTD%e6WEkH=fYqfjMbbD%XwpD=}lI%`k*lP5jMQn0fO#3!^PvXzcgTx1f^ zrY}5&Z{XssaIa`TKZu^9k~9YFCzP|)6GDi+q58%zqKv5|?@8gAjlt@lp|)xq`v66p ze4`+JhT1>9dUDpzojaY@X>{CWzJH-uxB_9+|3Qofw-v2Z=txiz7?U~vG?>g$B7)$X`P*zQ9%(t!nK0=YUSj* z27Z=NRAFXqKS?8{N2v`EjsFr%T$8e!sTY6)CD+}3GGc~p^Gma>7P z#bcNpnU@Qv2vm{(>lpGU>e;bEXHz9UA^*M`vDIm(yqLSuy?4#AC5G|Q7>bAXJbxGu zOj-(zJw+3zv8wfsPqFZ*ToUypr8xnq zn%dQL?nO9KE}#Wf1SN3hsPh@UcHjPkx@jkEGhFE@ab(MhusAgT!{V4abp!DQFkg6F zP*dYAIb=)-ZkAn%#N2CP%7oBCNPFo0p!4+>Xu2p5KyGp1Qy(+cpL#*}lku!sSp@|b z>|NgTfrT{=7}p{fm+2e;@{llBSaXZgbuncc-n?6>N4v<$wQN}aLely)uv{o)QUCEl z)IC8;!%I=;i|8ZTTRQWA$&;>KjqZ>{4^Lw6y1k$9x1b-OLvSPqQJtW<95kpCc(~X% zjYYvj)^7>@A~hcKTPKMLhDweWOOa|#hMhs^W@B4oo=3~bq^cK}J3xgL77)}2@XZ97 zmI6i$alyEtgrGJv*6c<;5=06?UZoABZ=tpnnkV5I$ZZ$AJM1VaO*&E+34b@r27uXF za!dV7+rQ*QKV#*bNX*;Me-}$>LE;aKoppGp0m0}D8}?6&BB1M44Zl5sjR$`;;`WO| z1&B8j@CF!E>Y!`JfkAy}c~8P$CuZ&@V7x0Wy#*tsy`oIT(|FtdE$(12c^4F`CoMcu z03rJj?-jou>{co0y8rk9h5Qs3hRjbXFnZ-1DF%Ma!(~oGCLmPvQP|TbmN`v)#kAf4mmNoPd|dry*+% zt&QF@j_-XBl=L@r@ehpodEKWt60jo<*6(eSW&YD|M6@VLfmWHa>;^diqqqAoUf3nD z+;=bpM;Dq&(#>hR+!%&>PDdG0o-~iaHIqZ5!*?1TUGMOq`=WkHa60+I;-_Ip9-i5q zvQ^jlUYG8_o^sE`oC~nM<(|d)1dt;wzj9{V)1W{I+>u=bAVlrp?=Fm8p@2*qmqp|w zh`;46-OA73M~xfk9;NcBkS;g4?cSRdy5Ykt+X0;jzgH-)(x=0plBEEr11r57e>@fD zN{|@ta0uw`ge9(S>ZL1JL|5g+k)luh%J8Cw|M(x<@C)`UxqSTi8`D<)LW*u8r#i4H zYJJ0g)NLFZ7rvG1j4Y`1WDl%@2O|Z*uI-v)JXcR7RD!K=MFbmud#1LgM)XG{KEY9v zq&Dx7^Y(@T1W!qb*x)A0yKv;?hxh}tAAXgJMxSFpjr%Uhl5D;11EE8h72(H7{oGD* zNh!3QuAzoHt?wN=(?x!!`Lux6??!UV8A=FkF!jtfx`?Mwujb9aOVx;iPtWWqeg9q@ zw%6lzHKuEqE~aN()P@h2$E015$<~daESV@iicv1|tX$@g0oBE?WH?QnkrWsj=!V2Z7ZqJoO>bs@ep=MMuLr+CwK?F@;WI}|vg80J!l@5j=k z<2OBVjygbRPQC!PQP#2BG?NqeV&&S$qA^^A%?Ib4W|uy#6o+G2GMUafjyi8XeKMvL zGRoANlJ%wg9*+i~6rsYwjRbNW0mn(+*`@3`x-nF4!bdU7=p5^%1mvJ^5gou6eYM| z<*W6Gi)Ga5gtJ7{&XzDr0O=+3I#XZ=UB0|F=BX%TZ!B<7&4+psj4D%ge{w|aL<$3! zoR^L|eqOaROWYAcWV@x5T38=@{Exq(Bz%rbj;+}r@xPd&ez1x+IPU0O%-1@Ob)Ql8 z8d^crg8tc))?$V=388@SxQI>55|H@Hd@F^%-e09D%Kuf}0mKQp=Z-*c@?( zk)B>*a?WSNY1jyJN1+D@6&Vv3XNmtb&sJv!X(=7e`Pd~lFeRo_US6KotIesZtx7$| zAgwL-6*d}g(`Do*8oOHD9jmGIzF|puKYmM%O-`4F3$+%Dy-I6yET0(Ni#TyRdXT)t z;gspPD|@tJe-&8{U?ElWdA*hr_Y(jO<;&aKgx3?m%@&St){eHlSkbpBVv<>Ggs*k$ z8w-XGvgUiS=rM##74T)4Z@00uPh-32PMecdH|Lb8un`tkc z0ai>x6@_Ebz+3Wa0m~0+eXE{&_R)A-ht#1&K-eGC-Gu{1_{7=dndXD#b=i7fSmK84#z(3EV9B;;y+Z#Fljmek`0GI7GZ-s?y41k0huGJ$6k0&cpR?Hwn+~iC zZ?4>OZt7nHj2RU}Cwag6Vc0P~^e;iv{1tvT%TY&h@U+6KduSg1`K!s8lIp`e@1#_df890G{KLbaSNBle@chQV8$Eow zZqIO(jcrQp@LwzruT!R)dsruv%Ip67m(Kt|#rJxfy3um3()oRYr6AhBye&WG@&w_f z;yed;63YnT^aQuRv+}s;RkmcUOpszy(%^45;W%7?e@B<7y?)!oLw7wkwcdW})-Ov* zLu|0s+FI-HlP&LK1{q4oZXW1ry)!oQ7~@t)N5>dfiz{MTN*P)^$%Ajz!XiQtMd&T1 zFz*!p4X|PBj$nWh+3)f&LD6ZrKRsp~Xbf3nC6xxplk9hC`D>x3Y-4TxbfWs48w=*3 zvtyzVANn0^E?jp}YY3wPHUwyx__IeH1r#CdVVMoJs8MgoVZ8;Ij8vO>&EcbjYGFW2 z>nOaR5U5Zcw7{bH5IsWIzoQW5&81|Naxi|)tM(w-5nvyZ92phpA6zR@T@Y<@8^&y6 z)Fx0mU}gdi73^e2JkoGM1TjGflw3l!|BGhfP%&H#`(c=B+-1(S9!XBl=8A}X^z?*l5+k2}R{DnJ}v9mT84s4ZOoX%Ov?aMr~uyq zT@JiB2+R{lY|JdCP)qdGU&;~#<S@1MlfOp5y_7S#%oR#dTA?;xxto^25PX?d84)eBg1PY0s;!y6cl zFHZ1=udpCu*0{u1VkI`e0i_|3O5tDAtlVYYrI5Il63X}V8rjMB|Hl1Tev^p?sLQEW zwVNRjYXpQCMMZ$_2oQeMs8I(utytStNvXXk77<&#rI-hrZ?7|9=7yx;0|NstCFkKt z!|s~jXRBxa|Koh@3CIHxQy%-8Ud8QcqKBRh3oC3I9^~f_02`)JZXs+x!e9BIGZA3~ zFjZ*O8G7^qLJ{mWD(6*9&k>*JMjD0)u!fo1V1aA>T|N?OcjhlYVrQwPnX(kRV}Z>> z?TF4>60~PeW=Y8j{3i?WMF1NR97QpDgfPz3OPYld7xf;Y7!y2GMy`q16Oim5uNNEwb<2l;K6>rXs^$s z#piGeKwm`bPLntyF3fF25yJHm{`gGQ#3&qZ1#xRAA>nRk(VmI*N*a_h&!kMbP(l*DpTo8HzVGL`pL?yhwf0*3B6XhU|2G`RcRH?LKWtatZ8Qkx zKhF6raD>M5?sQ`s$lNFA4Y`@Mo81M#C8c;IIW)(#w`H>!#~yZ3`HUrBLUg6+fsKV3 zbAFlT4^qF2MzHKuaVSxYkO0G{AUV*ZO-6mY>v85jGoSq+X-d}vp70zcXB+#RA@~Ae zYa&7TLPYWeE0q#yrzD`-my(eiR4j#vE64f#p7(#sL(JAQ-Kr+D$1sJozBt^qXJ2E_ z&LF<6wu(v-YRX+(j@jMY`t*Mlhs1om`)*00X?^Xy3}p2bM_>3~*vbSpKSFqsvtfRe z#~u6y@dC}h5pn+5-%ykeIkQc~O7ws@~FMI`a%VGM+$aUGh88A3zfkG;J4d9+dNeZHdxa%@_C%A*f9r zfCoam>zvyeit!FK+Bb-mBqdUdPiSZ-BTZFomExrX)j7&m4p>E-hj&*0%i!zj>9U4s z5uFY$9o@Nm_xip#7ww=Fp@g)LyR&SZIkcebPV;Tzv3q)<50w&HKw~!eEh0giwnBUZ zKg_|^v%o_V(Xw~8#ypJBlw&n&%}C0&0=lr^nIgji8q@Qfx~NXbJ)e-U5#!(qxX+?O z%Q2>KJ_>*_c4fQ&E{FlZ3Z=>Uf-vJV!4meP{-UredbLvlkS1C=fOEybC2xmtq#gas z`RHZj!hBkPf}1};Z#QChr&(Qu3op=*3!;cjq_2?sQiABHRUai;cN-2;1t+ir=m9qB z9bted7h8Tcqg(mcOlcW{%Yb(xf2Usj>*+utmdM^znmGsfF%KSv+=C-@9x^am zRwtG7t2b{lK~9uj4XJx_@te_P6G*>7TJZV7&%EBWBSbOYuDM{xT!$GPEg040j0Ov+ zYtT2Hbs75b1*#~C)RDss>Va?4Kr}<+D|Z&P5IJmn&hHO=g^rU9!E|GW4o%$)e8W5} ze>xAFC5pn1lC+nqIbWyyFy}KT6*}#Hb2P~?CGJ466Y|TMljMedz~4)9r`oq~oXP>Q z0%Av)yrcP1cjwtYX~c$!u^T19ND>V}cS$(>Ce({88=f(0kC8WEESjRT!n(?eJF57t1x+N=V}4Q8XmA0#C7P!K zekHkZJ(}eejr=$XVf~`!%>xKb5x+IdWV;#VW#%d{o;7*v(zV#N% z^A<^t@d2)O^SX+5k&g%Gh2%bfL(D7x*u}Np=D@Zxs-j2Fb7-iD*0~CPP%tlv>S4tB zkWnhi~JxT4BAN9!ryVy{f0yyJam)bf6Ox~HdG{UnJPYMB*Xs;C4 zTTLQRL9K&n?__;sf*cEFK0F$|DQ7pc#7_f@in<8p=;VvbdP?BeLArHTQ60z#h-Ro8 zn(G!k;%O^h)`2X%CKKNi5?KcgMfHw#mkdW)ZYmlQE~ieA=v1+%ao|w5tm9$)Z%ToSx zDxZ4GCtG-dIf~g5y7(rw#oDm2mfSd!uT|;P$&vDbhbNLGIgdHf!@9qrWF|$MhT+(* zCq$4*TA7p>WP}|!aKNbfQ}h?~Fzb!9v!+HDh%Sj_zBFE}Vx~!>)c=?A#6u(BzMV)z zsq#*dM%?6yUUHoFxl@3j+>*2D=Y7XDF+rdka7OAhBsM1pS~s`_My<03!RvmMQe}_a z6DB4fca8DECSA}1qn*vVcU^75hwxP5_J%>gCnx_1p3!Ni%Et25p9Ii`VT)g~o3;y) z8O)Hgs3sH~X;8@sHk;w6r0zO-_Uv`uOPA3zIWoDb4R{d>=%|tO3#ca3Zr+R^K23s! zE?$(w8!43tMrplZ0(LBS1Lc(<9$JF+U!#y+ihI#ThlJB@loitOn3_(@-EXz$Afv!; zfj0%u6a*DSQOEQg$=TPWZP+=y_SnBK|lKUxa1kZNsCEMyE{LD_^|BWUO< zkpjL0U-wr^fN@A8?w{S9I`?a^O3ojdM4g4~$h1cEd;X5`hbhO0{*iVV#1VHmsrFne zf!QhDW#|HdR~#2QWkW2e!&alC#XkTAJ(AC@Kdq%`cAY2OLMf>fZE+h6R3eorfdf}B zUbINoAT(Uf&y<>({6bV1yC{ZgrS!N$nMz)IFzA$gR-kd&ectp4vEnla9;~ZC#nsZh zx=`=@+^3<(*D-@fNE6U>W2m#H4PT-0fSh(YElz9-jGQG}*2)LTo1rkIfPgV;y@v2V zjnG6s61ER@MbQKBLO6ugP;kkSoRLF~e=y+97pddRU! zbS3g5HX2Fsy89VqM+AEsm((aLtElNIYto#Y_KBV={1(K)X5_c^2cQ`BBzH&g^7RGe zNTV)KB)WXxz~=r#uS#tBqD802KG2TSkuiEVh!!7Ck5Ea+q3e`aUf7F)n=t{K4}I(S z<&%sVnYl?-<(k>bbMvy=I_>^CY$&lD=a=dZwc8(H5 z#bR>8&p5^#JXB6=*Dd5?lnFl&AYqfo};nq8?hq0@zVWAYJnieqOKGF&J>~b zjF<;!+?q-ej4&Ye)5nHcx&sg&ysY&WIX0!vOPVI}THuOpQqkD5w1oe*Q2&Oek+sP0 z4>-NGb)P_JmIAcC9Q*zgr40lJhs8lk7R5uRQEHH5M@_Qg+rv2-^HR!p%?O~AMjYi0 zHlek(=AUuGuQ2GudSVGMBo2iwskHG*nbxR6HYgZ8K=-@robHV(*!*uT!0sn>s>HWDBYVn@a-No1*d1zg$>mO8AA8}yv?bzw+da8x4CD$OvF(ZctSrMH z9FP8fsh%)Jtl5*%c zBJ0dzC&~d(_Z+4LNErLc(Oyg`LFd2`1=Kni;VJ0B^)A;(KH7hf!Bn`Z$bGYhs z8D;D4Zu=|QU+=y(qF%9yo)X^7;sOUxZJW|r z|b*9kvicZpO#&UKqe)2HcyS`Nk16CmE?%8uq75mZ}X#BPk0qZn6VV>C(E zOZvMgcpo6$Oc0pR8tbXJ12`o2TuPyA=Hv{7QSkRN!9XV`5m6V2eBPm5qFHI;+1buX z&v7~qOvu5& z!h}f)?IXRvwc4EP!*ZS)Xgm33Nyu41e6@dkifl3 z^`)qO=DX(C*GYys#+s^FmK|~%b3}1CRO-i_x zNMZ=pRKUp3)!4Lxi(P6m>tkmYUH#O~2G1Yuf{QQsJOyJtR<7ZV3A;8PIzH;eo}wO0 z4y{r&wXn6D&F8E%Q}I_p$v27@nzNpmklPqI#&BqlwLG*6s@x{@LQ8F!U1r;z>R?;u zy)ZA*YsBqS|<9=7P44>&01!MM{h1Lwv3|pB4%_tiy+)1Z)}TyNzCPq_dHMFDtH2#&-|x5E zX`K{X)V=!!yXiaGjjW7h(o0}@T>mN?yW`2B{uiR)B+zkzA4_Uj)JH3{+sd2P2+vIg ztwnY@D!wSilaU_1j~|GbG3p-dmkvIEz>*7m?FT)3l8} z%DE)}j(B(RY z&XuMRtcaT=a0zNqiKK+v(QV>W^dC`+q+O%e5P<|;ly!m4)RTgF*%)Qf6XY~4`JFTRf&Y9UmyK(y%b+KUT~vV{Eb19Vt) zKlRQ%2R`5$=gN^p8lpHhK}v|{5a9z}4r9Pu>c;g^^SH}(+(SYhB)1UA zDm@4=^wq4aQR`cP5lvi~_!!0bZDz{ajUO*sgH0Rb^kE?<`x>JY24MPU42w+dtUIx0 z1o*}n%dvelo3H1REW6q7IfFmuxVVsyLgEK-s-ty{Q)JRw^##9}Pa3*cZxKac%m z%h5kra8%JT`g(3SKPzje#))BmSBFpq9Nja7Nc^A3&|VPMs5$2+>hp{zPukLJP{;qN z6)(X#rdt^qsO(bvM=ueuKnWeWOZn=O5+%zXwydJ;5dZ(CGWnhPUn&!}7J!Bf9|6}6 zTI)lLKQ!4E$=K7U`+#Bt+pS`G({A&wREN=gx$>->c zPowfL`%98YK%wc?x-iuWePM8K?Gl+W9`jMnmD~iLxlDw-eS7?+rbqXOT|YVFnxs^U zxQ-`_j0CHL_WLvxm9$!&yL34;q2F(E*Yl``L^2IxCx%BJ)Sk()y4l0tw>dO%I$Jp{ zTXg(T5u%C5^?@?jfD&xn8>)Bzr12|TYVgd(g&PvOXI7cYtF(q(Jq3}?YHDZVtGkJR ziCU!(kh1vn@o3<~RYryBqOn4TYv6TQO6UmEaU6K!XvBQ<)abeO#2wFUy;_u`&Bo9x z830tyE@O^!W;XCoKJzo^%JO&L0Vi&PK>B}xE6(BqTOV{zPd9iC05<>8VpX17@7AF5 z!a-tkZ_=b}_=me)zht6cyuKonP`Nfs2JU+~>J>-a20rOF6lIMl!+L(Xz$0x#Wvpw{ zYtW#JQwNB&V<9!AMkbBBD*L!E8O-)4UQ9f6^5iYSAwTwMz2*963ct*3VzV_dkmi`6 zWO4dv{JOYUvtp%p$QNdR>?arT;X+jLR$*U}6l~zZg?L>tG9r_#$N1UgoupNL9>LIx z4InB;`R+-N8szL_whGS3iP@9l?uM?~hNqDfgbCem7CpJV>YP={$|rpnlOd3q$M{&p z;-g3BMLz4tudMDgU@rgs@oFMi%%ck?bbks~--p6@Rnoj!qd02_&L*K}}uSxD}jB0GSIOd#WtWM2a-}k4t zoBC`gs*2MSv3bmeK8F;y1G_C4mJ~JeL{Jfu_DQ(%r!|`OhLoSS&rH_S0=_LEpIp2gY92o;zmh(1q5H zN`~j%Ew}7cH;z4@K4j>f+I~5j-)*LvH<>hcg1Uj_D~)~QM(pUgqsh94^@i75x2~J= zNOyyqou7XH8J%+Fl>bM|nJs*h^9Sr5_I%2@_wi_&aV;%%HHyfnHWjhV>{s#m`dOK7 z9-&3vyPifIJ~^SQ+Lr?!PhL5{_g=lLw=C7ZpHjYE{AFDjJ7yo9RLzXW&5=*KUH<8^ z*ksb4uYTUwm47E+0cLGjnkCzO6g$vb$X9y8`Wacd@7=z3*a?Fm zUn?|V+Ge=EkGsRA`{%3XzG0=h!>GEWxd`Q}Is$rNWy2jE>!qC2`}a4c3{V+-qrv`X zi#K7T`SZ1=K2M-3<@pr#e|~xWfagskYz{wn)fr$zhPug&YzZ~HPu>DkbV-hUg#F_j(UOy*lq zHF244!eGdoOL5!{j`aTh`>rh_&z(D0X?T@Zi@b4J0q z9tF?}$zB;BjPbQ03|h$z>b;*bW%`#eTxf>2@l6_tsnA19u?`uSJ2UgBecTTyIXC=6kf9RL zEm$nckD`UgD<;aHPtV%jQoBRX$z`tm8Cb7%Mk^x!5Xb{NF^^(9cRnP~2(kkfCI1P> zri%Z<*pfm-_do&Z2vOX?jKFAW=cX`zEmVy8#l^z`^@tdx%h?MHEozc+Tlt&CI8(&m zd1dtg&PWKiAqlxW6n`|uCt(IjY3AH*L=xpo%#87q+EnrS9Z>juN~tmR`H?fdUV{dd zSnEON&Fq~_ZctU#Z_q%a`5E?%g6UL}63IU{Y#>Ywc9nDkaB4oKjgYpI*FeW(F>zvZ z4l>II5wpB@R$itus7iQh)-%Vo=J)p$)D|;<+*CW5PQ7GGJ_UG&CDvIwD8;%u!Wv9IkcRuyH8SK1K-HX>V$gqLn>)F%A$U$smwIP zl+gtl_p}Ba{@{TrdF8Rt4_~VMG~erCRP`U)>8$X77$HDcqC#S?EOpoIz};B#yyo}0 z{&P{Y$`*}w&8Z5FNnYKio38HA=mHUB)EYZ}{4hV2>(3YV?Y3rvQt}A{6`PPbzK3DkRA>{f znim|VgHY`qgkiJv9KEOS7It2M+b?=!;q8#X{I0s6A|h!}EiZnE(#dn@-msacUS1i3 zVb5`OOE?!HHSHRJ(rh_?k8@u@DJtwQzy)`7gFpZXHE}rUtVI2>s5tUe& zY$;H6&vhXj8~ilAdw$v?mOx*ll1j!;CM>2f(c~>qg5R;*peQK34e&?MFIOTeh7G(x zY|pkBAi$eDYirj*pg=B%&#Ao{8YvQS@aya2J(%l-@>>pB|sf zFSe8Td=wu9MbzTA3QdZJU-9e3l5Zazf`1T5n0EK>-Qtdz%gpKhd40!XR1t14Y{`!s zi0+m02`EtM?V!KeA_O-m`$k7cS55^Wk?{|XXJSXY#$LKas4bHue%);R;&q{-o4&qS z1VgMWaL>GBi|uQ$Z!Hw@Y3_UxwE_De*8sO2lCYhv%K*PA|6h=eY+{0m;Ld{<9f6oU-ARNn%(5d-5Nhrh`6*O z$KWs50H741&+8bRn2ytfEF>{(CNM3n4U^*r zqB%KpNwbg(p(E*@=sNF4T)(#9ty#?vHHA;j&*vEi8x|Q{`n1iO9&dY2iK578J`Ju+ znr<~<(X4&>nxPGA*b}u@#uRjP$BQP89DRTl$*Ai*^Sr#qyamtCaYv7Kg26m?OgDNVN1$ctd#E-^&ypJemYYxY;mH}w@Vs?iNMI-s zs}MYdNS%c0qJkv?L-dehFosL}axUf97C;v=zZ{ROrs0B0l)1?e)7S{#z!wfZICeX8 zTu~YC%dfvqB(0q90@MKuU;R@zA-R*1fs;hCNI?KB{7-NqT*9@W5L}CkrVyP5Adesv z(mE6Cg*d6r&Eqp&TmXJ#Rx`u&SdbZ`+pMuS0j`mIi;&mdB@R~jC)ZK&0qI-?|Amve zhEOwak-~c)sBol^#N-~rmjs|OAOw-zQx^P=oD#wCWZ)mA6CEZzO}hij_cx~D$F~C@ zhNfF4K*k;dBHD((P*TrmYq@nKs)2qb>-d;)-sMDDp+ys|vB*vcjlwuLE#Y+Uuum5Z zx((-|a3KW^-Bu`49vQl2n9CK0fM+JhrzFjx$`Ww0pvd{CNh7Om2j{<>Q+lL(vg%S) z#d(xW{4Qk*8;#-?Qfy061=5iw@Dir+`?kOja0hjx8PdcM3=? z*qeIWwl)+1aFRmqzz7A*$W1zk>P*bQvz+==cys0G#s*x8Lp;0}lL~^6 zK@<%9*jkcFr9i%k2U80HjBKjNn(B=}hf{2DO^8+om0CdkIr-l_~HcukqYI-lZI3>UiEFhC=I0TAz)hO82e6htMg0olc8Y& zb(iiVZioiLF?8dItV~e^f}bg5TteNtLH26au5S9zm(E!DfLyyB{bN%IEkv${6wzbs z#EBN%L+l!QE3t!!^BZoDX#;PFmOD9lzwiqHU9#V)j z+9k?VO`u8=8;2Ymd#BV%aoNuO^IcCCM|rf>s8LE4IZ;IWw?^J{G$Jeit-|T-yZzAp^5Cc!73T}`O zMLRNjbc;EgRE#goIPmP{N+(Wz9jxIFknuHtXvus zxULxPh)dt)17pE{2#=pM+{^d4toUlRFtB;At*x@3m@H~3M zz$qvtMz2|OCH9G_4ecBkHYK10y4cB!*Vk6s%Jpl(p6mUeenTHZog*K zbYHBqTp3h>HsS8>c6a-{655b;(=;R*GiP88V{hatLJz{Mq{Q$OSF=SxL#hfg_XFfS zSXwzD#Uan5X!l!`PZ@cuDITMIhQW&+_`c`pv12YsOE|?BGLl=NRdSGi$M;ILuC6Zs zgtw(K?6KjUZI;oe!mp#?vB8ziI}u*DtwQD=arvXXT`F-^a`v!W=#Aqh>ZoLn_iJic z{h{~#v2zoqCfnsCyrGBZ#@h5-&P3ERt(HEZ&}A`-I)Zny`B6UCchA=|AzKs-Io-*1 zT24RqMd(4AQ;9JPl9P}s+OnLFEYP)#%$>mda=8-5{mWW4@VQ@u;Frl@=J(=El=ukv zM53vo=j`{|Kz}YMKK+XO-41Ub&u4jXt)Otn{kx#|ra7}_-J(5;UVejnR54Q=5%P9+l|}T8s9xINrfrKVB75}-IMet_vzCING6beVmAjcn2FZ29(sDUZBiPl zK;=WESR9>Thm2~%gl0f5bTQk*!ZM*Ww)9;EFfn?<&_+|LwK{hufnSMzJ7^J!P78C!@-xRaI4X4i4Qv zhWb6qKE6J^gVL~++X#UV2Ap=Rz~u!m-Y)|ji` z$jfVCdzNdW=OeTyK7Ek7%lv z*`VeP*U3yR&?b3`Q`3wm?N@WbS4;scI0e%Z6-n>&w=btL3?4C)1Ltb-PMQ>3DJ$80 z^w#I^{X(~0yvVC(sZ7EJ1UUq*3-nBonEMi$kVp#+#M=kg+xXJ+b%qVty|U%|s7sgH zCQsGZJ&)nbaG=kT)2DZ$YxBHV&GwOrOXJKCUu)~ysC`-3hT@p~+MvLbFWYwYt9j8& zCRRZ;Vu~DYojAj5tbW*@Gf{q5KK0(~mPg=@VveT`9JMab35 zz)Rg8Jx1BsbOE^M4Fx4-q|XRpm^+>h+QH^^$t(t%pz3;vy8{!fL|TLLN;hoSuF|Xio0oZSX)LAAL(~wM zmmvaJbg3*JV?^3C6#{8dW<_0MNtbZE6;m{&qN%6bx`h@SJ(OLX-|-$>Hum%qGLUPo zsAHJ{3wAcKBpBP&P_iI6prnHzbvm=Vo#|>#gcPJHbNEsZZ3*OsuFe zxZ!ALx6U#CHTR?t=Aa#++*#Di*WfNncd>wuhJLBI_CrEyG%EUT&1^PyOx}bM)gZUh&I)ufN0RkchXIxaCN878o9CZi5CP?6LFa_F>YwYN0 zC0^hY5=m#HBgHPU*Fc)@EB-b#U^pywSawRyFAo|43pPEco5%*DqB?V6jC+j17?%#B zdd9gsv&L0h84aK6vT8d7kW2~Ibb^C^1>+xu5JXIhE)O-|j|Rx%j396`6G{f0w@LFb zUXd8|@RZH^<|JtwGU^*YZ`}c25f8&Ys#gL5mB*&iZ`_B7pU5!}&y~$#$ zczdB6Nafqn<|>P3%d(15Bdf=$*H+>#X>HPI%13jvrpykP7(C03>(@SulpJ&;$KPTv z0-`Khw1b!yF)}TWT01SPa9$FgTf5bsgYn?v^4FXV-2geg0TrWi)wS<1-IZ_5YDNLv zfhA~MYn^*zsV8zSPZcNvC-;U`*SHy=C4GVK4}AY5iCjoqq7o)ZJ_Fli(6SHCAmL!L z;^=PN7@HgaKlsYT4KW)w&bdffm9r@E2P{_c9|||QtswXJzU9weav0C#O5%p)CWI}R zwl6U0Xm3@`T}>7n+un-2)}`LM$^8&wUSk#)QZH$uD2hgL!;2k?AVw)%@ea6wQ%kc+SJyT$7&~<(na$3mOtXrn ztIj;CXIpYn-@hB=4*x`EstPzIp|V6Vsk!O(>U9M56eczSIwbgxV0ro6y6X=8+C87P zEGXx`AT3!twUhR)>~Nj+LHGqe6hF&ob1s8zKGn*V$y-e3u4PPL^ZZVy&z-|XN>JHz z#|1X(wNV;PDD}M!Wx}hyk)NNC9* zefN2j+7c1TQ%vtY&8wt2FRioVUUXNZF#NLkp};92Wn_6yPQ#N=Hh|H98>f;SXYvdu zN`7&1(Kxa8k^A|ELzpWBH)^V=gotv>iXNgms7Td&32$}n*Zpili z+O)b!vQNzw`o7tHZ6;0(p~&0kc>nUHOX~q0P3$i?#@lyeKzW=`)c=!T?a*5L!g(tWQEsF>0IoAru9B8gHzJk&q%-NI|d*=6)q0ARF^ zD~>OTCk!@pl+zlcl)i`aCLYaiJZya3(!raOlD^LLS((=CtD9D6cKNvc;G<)9AAZz( zvVMNmE>|b{aorLiQREz!(`{+?=Wc^W`1I7f+z^PRMQNs;HxT=tBumGY({zFdf9wA1 zYYY%?(c06Yv%H>s>(r@i6;Rav{T>l_IeTZ)naSi0+T71%Y2BToRFx7q`p8V&ybyxz z(YjSlL9{=yGew-C!G21}JO@k47@Egp^RsA5%6*+z4n;DS>#M+oyt zf$8Jn*`CQx7I7PANdax9bl%luA?aT zj;qeu_lJmr)LuogIuC94>8UFWSg4e$&>yg#dEp>utFur)dyOsY>hv$tz4CTv{fJR5 zI{*9S84GjnG<%E|jjXx)8V|!YOKCa8Msp)O+o%lzQSKxL`N8-AV%e8oIjY>hbbL){ z+MRQa90t~|822cuW4+nerd+6*^WvPoAE!6t#R?#{wZl+|vmJQ>>c}ERnE0up(R0_; zdzX~1>ab?Nt?9=vuhV|rTe^%72V2_MPoMF>cN{pdYDZyZV#-DhpVg|S!yD0A_;@(H zw*~oth!$ZrbYsV`oOgHz1X%_p_&KqVSd%+^Rqd{R#Y{4pBQER_#2F5_{pX&o%$Zfm zp+<Lr4Gxljx$a-#B?{9{dbr zGNZ;_g4vO&7)0{DdjCEUHWzMKfr(h!MJh)6JG|@)2ybbDnr$4=O2I5#0kkAFl%^N3 zbkDD-Z=5O*m?g>$G%UKnU{Uc%49Z$-7F2WM$Vg{=UBF{3r7j&i9+)=Wb{i=dgt0Dt z_81QZSNkc=OrD2W)y4PIy7vv2$`J=C)v+Oo)MVM%V`ExLTm$OziYH)SL#L^LK(jwyJvVZ~((m*oO{)`NM3QpfNpxcE<5IKYW# zP#;pgrsw5t1->(6ehHmL_%`~HrVN;da^ymgI57zeP>2%?ND#+L<5W-_an!-nHNV}o z_FC2prmZp1uQVi-S29IULDlwy9#qH*x+i9*hM9U-X=cqo5pQ;M;Hn9{L|B@-Xq``M zo~2kv_aa<7MDq|jIGZ(oCypHpq?hK79ZHbLqU5$vFM!|BslRKbvRS1Vf@9&CiQNks zOD6iYtsx=BH#?O*#=0B1KjA5Ci!sq$9B<+MJv&SK4KrB-A3ODmHl^m1}8wz<< z&sKl2Jr)-SSk_q7=ZLRa--&p(+5VZR3vPxQ4?*EL_vwYCf+T9^u^?XrRc5@w2YM4o zL6Ls-+o*944q1F6-SzZ($IZQaL=_{p4B?|iGqx*lKOYN%o7kJ%=IV7HCZUtqDiNE8 zt5O&I7Xd$ZzVU{>bv{e#8ao*?*5qCeM9qW6A7q4x-~wa{P@W9K(Yu0$r6iFMJWWDM z8?sHYt3n^B;HsqXMf17^Un5hRcd@!rhe91>@w_uC_#0ssA@F8lZu%!SRmr=9q0jHt zqWMQ`I}&t(hw_S6Rys4^A7_6bdjH{m6bp{mQHIkg@IKgOogwrIG(5KPb40~3dbEn5 zL%Tvl8HAEUp)Cx(f{))K-hQTshgcE0cu<#kl31Gf_sF3|qqH2uB!2s)n`8qJ|D^%Y zGJA#5K)lJEBU)yYTA~t{??!zHpRL7N)``KkAB-uT zT7u@KpLuWP0gEzp^5pQ!i-!&k2UC)GE&tuScRRjBG1e1(e$aQ0`d<9g8A$3~!sU#% znWSDD#olPXeJEk49qX-QkiFkl4)Nberwkw6^*A)jv*4X-6>-t~zDhxK2!w+mzC10kd4DsPot8a^$bMPFCjZ z-m|BNe1e@inO{N@-v1@lL-X3^&+~{h_XmS2`^`S6Ll0VZ&NA9CP?(G(@`B2~vt#6K zph=G%-AVvp8TDMfZ~uOM`FYyf7Q3!ao#LahbT&=iy@%gy2yk;gJGlP3j@8uQO?bKw zMyR&wYeTQwoI^|-BIMqWT+S$edPpIG*LAEnblI}AnwbE#J^1uDrQmz0W3IlQGpD|8 zh}G&yAxAmtI-B%amW4f`7JO*I@CB*a*$wzK6r#!-l5z&JJ?r~(ACG3sXjz4_EAoKG zrQy$r>Bv<@YdyTi7yK4rT3fKZ64zo6EPQT8b9I_f`VNrQcM)mNgZ@7;RK+>kon-T*qA zQaVfxHL5g7zHlM%K3WcuFnC-lvy89ssV*BKqj*9aG;;Nr8y5PgDmd1d5i|frqWMGh z#`Ps>hpoOY-xhTF^5x1J4l$uY5Kr0c?wwVS#bIWPIQs|P@YjKo#fvU_UP98mV1&TC7LA)M9fjmWu!}X zcA#`?Mwr?-deEKdps_=273ep`i5bQOBqOzd<;LXL6_=x;hPIt$Wn~4i9b8cELB3#r zO_FQHIZyW{S(~4~fA2~}0x9v1?=rYikbns*6l~P0P_16Q135S%0F_10sf+ z9}TZ0FdPr#IyEF>12$Im%B(8tIZe34@0?iEr%wpX662Db-2ME_--#b}#ot{03NXFYMRFpyz;zBP z14ujzL`Y(p$e>GXFwdLTBJR9NI9e};{;;(A?j8~WWBn%<%+JqHa}qBOZ6NRsdK@L0 zO3Nesond4>(xkz_eWPnU@7L7$-+w-(eWK=UtJl^2{}*nbGp2)2wV^l~c#0t8P?Ww5 zBH{2SGc>SQIg1D9jtF=-r@tUsEkve;)OY$EM-r}N`mdaW{JHo##8)Ll*&(c07YSdI zQQRxgMF`$0A|#G)9uWIb9yGx;U|Lj0l-JR= z6Ym}9&gNZ*C_c$)&csK%Y3tTM`ede?Uh)A^2gl*|Z;Nb7Hm|huQBPjaVw*QTWK7{%A`hFZ8_2kw;#cYt7Bk`jQTo0utvFdH zj{RC;iNwp&@W~iIj{5t_?z+atO%3c*@qr*= z1(j~cC4p7e!Yu59-l+dZ-J>w8cPr&F6wo2+Xu%>Vj_+C96L*SGnBv_9=>#w%5q4Yj z3=!{vfP}r|vr5P+V{8Hr3owbIL1_&}mSq~-9({br^ z0%H(F44}kh|BJJX`$e%b$IAOrRj>F&VFjonc%ag8ai10AzN&4I{pMBY;4B$pfGDph zi7h459TAP|nWmty;c%&&3a_5=J^nE1dRLhiVC z-J#@He#q|V<`d{qs3AC4`#p@%oV{s7%)nb}x$}}P*iU9=J*s$WK8OcNpy5cP*l~ry zMFLIAoU!M^HR{)PGW_7n@ECElC|oxBK($7<>x}bKfn3Qv_c0lBa<_{F`sC@;MR1pg z4;`vaW)5BF`J7B*0B-eY%u<+x=2z}@(RI7H zZhlv-`axPq%`bT*5d`3pBXb0C9t5G`7<7L{<7%ntE`Y;=DidT?!EMe>tjgM|s~&bw zHE=#H4#xoiiTpr%XV9jk*)W3zIDWQ?^z%O6-FaDOp#G6_G9s=ecPs-~m3{fFl~1x#yX4+n< zENWQxkY=V3gLRPWEi#+{oV%M+Z)i&{fQ`-Zq~75>c8s%DGVXQ}UM8s+P^Sm)h?iXO zp5SAC=w{8c=*hS;c96);n#-tyoWKrefW*e|xVA%3U|={XJxYX*@J&E{A~v93!4)zh z?ykrIe*b)4W5jo(7|N3oUR$?{Pti#CqD*Vyu2FB+ES>k8QF2kltN(}tdiIsr2MYJ1 z)4RFKDNSd>02Q6~L`=*@#L?5x;OV_VOWuACDkV*OF=w}ye}?mA0e{BS0$r!&dVBkb z8n}MZSLt4+rX>V%rD(KjRbRxoZyzRhRR9vzq?b!V09!!1y${b*I#B%b^CCAr(a`v6 zp}zje%&-WKULGS~13z(dV+UL%+<0P{v<)?FLY>;@efP^TJRE!MSQ_+5ta7dQXU@=5 z{}K0QKam|%(`d^5Faq+9L|UO?4+1tvb=pR@#*OqWfGA|42w_K$cVYI-2U zCMa8~5eJL*on8Y$Gq~?z$V#dZIU77flgWn0I)5WKw^@8ka$%zQy>O(BF+5Yaji4Z> zW^Uoy4U*j8bbnIM8{E1-j``Q)oE}2xE9dy-tdwNP&tFEjp+z?PU8Y9o3SRn(S52c9 z$OK!QY2HZT-aSt-<7ZJphjSd2b9uB5`2mskr(_tbtd_F`%vTf&x*-%Xn_ShZ9wxr5 zSKBw`_t%7^_xDbIm~pa}LQFHard(CEzsP;!IY4Cl!m=End{s#LVndtOxgq9Gn$3>W ztKOgIhxAe^?G`0{C)Zc~`_0ve6m$JsYK1&h*+A3_TF-Z}`FtI77Qddw{1Sr$y*|-g zymh_$MYKobq?+;@ltW>J-1!qHjOCH3bbVvdQ*b?SX0MKqFW?p)!WBWUsql;|r8dZD?4(|sT&fIX z1I~W>1wq%Om-htS5BP4LvbX$2s&bX~dH_$p^z{2J!zWIdtC$yfN9c`8xb=jI0=gV~8BFj^*&-?EpadQ_C@ zh1Lx-Q?+8&f$P3SpO{$##?am$HR}Cv>(WN5#1`-43NE@`+>fb zhc&X_QFUV_GDqs!zbYC7?FM9LBQW5ZM3ppM^H&bMO~PVzZYe|+L7}%$3Th7M2L_7~ zc4}#^{;eMNEPDxbKpdnrd48!{`T3>Ga7{+L-W2^VA_T3RC%rl$SVcU`1cM>qQGl~8 z`e~g3ILuol^I9`ZUAgn5=UXsYe#=MR3oH|1umL+>C7qeCQ#OV8)US#DZ@0~FXXI=! z{(n^^wS3pz#oItnNfD1#M>T>Y4EDE}wvZVYJE$!AmP`y(>3NqC>DE?J zDJRh2Ho>Amjlgng2&w5B%aKyv;>PD%WPV!nkdTd8+1VOlFZgfJ`QCA=A-i@lBSPZ+ z#lwVHMPdlW7mPa2uzjUhfJ#M!Z)0s~5hU_WU7;J$wnqUF7#SKm{ZznxkBN%SAgU(6*yz@4}#l z7b1B;^Mqy?xr0lw0gF6`M)UoXR^L0)N+&IQAYig6Km1~tnMMypW%A6Y#=CXj`6JP; zaHL6I14S_!LCLQL#_H{OW%a`DjVj&@^@az*3H5wdD+gUaHhSZ>{e7t~rOv@R_ko}- z#$1;=oBC#N8UR9Y;q?h$a^_?tDJAjVLpno29YiRG!@6gcPOI!wOm0Ae{)&;A zj&L5p* zsMvUW)NzUx=uK?zWkt)1qUxL5z1HQRp+M3$e+`uA;`ADP9$Ok~w8IJCKLV|@=QI~7!NtYp0j4mTQ_J7O(agvcLd(FXyjO|# z2n&`vk9kt(n>MPj3T3c4jC)kgHXJMGL)EHAe??Xj_3AB6HGS$!@W8J8AOSs9e;%m0 zc1?fwH_F)}4u_cLGXed|*$kOo^lFx2+epa&NjZAJ}>)L5oD6a286AvSa` z>BW6tV`V|0KEpoX>;x6=OhGb7SEI0|%DCsX^W0Hob4>F$QEtK}b5$BF|2UO~BKPc@ z|0oMup1a*fGF`2_^6g8R>8fU0=_|Z4v*FrN_7D}NQ+1^G zUr)l}hCE$n(8qF2q${^G|Fr$@qN2`@gZ?8!SVg9#o_+~eVg#+Pa9`0TyWLC2MCFM- zftX-Uj0|?SWVJ7Sf2Zqfv*M2*M?(Z8dwtQV`H}DQfC;cP04a0pPNC!R&W3-akd%z6 z`(9(96Q~c?;W7VlX+SGgPcC-HU9Zf+|2@hh&@=}b)n8{?vqAaQnjUL-Y6BnNK$b9f z+_Mn}OBSsTC$vD|uio33A{#?~dj4LJ1-e%Js@^vtgPHNPe}eZnBG!oQE0y25fQ zYvnwA^|?z4*)4Trzy94THu5-1@}#}5I$VEpWCRKR?<@Sg)EEDV&%YY=8npD7@p$h$ z!Rd4W#WN0Xv-Ymis2?!BsbBj$sV___d(&78{wpp-5DzKpzuNomw@K zVF8)$x2p#K=jDj1;r1t^RjuQPL-;IG=_f;5=nRf8{dI0~=lFzmv`q`BpoV*TmNm6a zIk6%E-xPNXscEk%w72P%21nt*M#poSbV_MPO$!sh?)VDiCo`%5zA~E^bVgnQ_a;_x z&Yj#1zxrfXF1P-R_51!Gdbt3?{rN0+EIC-^rF<=+`2zY(?Mw(TjyeZTLQjd+j z@fI7uucI3_lDmVZqvRI&kNegDbFOffh$M4OMTw4;O^2=h{ts9G2wU4m96WMY zko!#r5t*)iTRoR-76WGmmrUF_)un?;h}()Sj6$C%I@NI3JxjUz6npso=@3cg>gd$kK;R@fk;7YC3N`<(QpGOeE#}Xf_lc7 zJmn5uR9-v^1n*nWs|%~X>r>(*q1W)GszbTwVsxovJ!vv6?=vsPoB~E}8(Y)mh!7P6 zmw!~PNw_>{ThN6^9n603R;n|iz_L-Fslj{NoY2%C>Gm;sxX#(w^Rwpu<$vGbCc#?g zukfgV*jb-5nlFx-@_Jpinw_1wg}S!+)P#;&8gaR~pSC4OHr0xo9TE0rwaLmZUmoVY zS$+1)fH&TGbsr%1{KGKl*t~!?$EsKt2Mtp)RRtQSn3+Rdh|Hxt{sz`s|N9j>n(Z)R zCxJ_8`Qgqx0ojADhMX7I8|HuHzK5SY?!Ilr{fkJADG<9i*n#>+HWCG50mrS(oWObD z2D(NY)^EyvunI()1F3ZI)|{OBxR+Z5$RbZg99}42T~9EtVIw8cj_~jseDsj@eak8JfX*xeY{y_%(Y^oit%X)YQ-# zq7d(~Mnrx@MYZSJoXt!MdJGwq_;JbaalCukiOkN}L|&DI!Lfg25FG*{pSe#-Oko#f zesCS1+|q01%5w0;h?|iiAsMhqY@`NUO-eSs>VQDM1XgDH-c}ftg-8Gtgpo}?YZqhX z(=C2y1-L)6qV!I#o;GjeZ!AZ_d{zQu-A{rQxwk5p=ZMK!BC{46jV@4!Q z)1H&|auXa^!!T5(P#z(aR{ZF!!k4Q8=#y z+;kSNv-0zM^=X&UeZgf^ykbKrB3^V3RI*l~J5`ndx5OpiY%mA?%A!IL8DFIp1XHrpva%e_2O~^ zZ0KC4;Pf|Q0-i|&-Fhfpf#80qV*;CP${u)MWJN#+=xqG%lYBEvRj`*$+f zqE8&ya7CG7G}d1dcM*&wdV#LYwU3GKt=-+WtB}(e9lv?NybD?j9fnwrZ?!d9p{1oo zJJxdIT@(-6XJ2K)9%48UN*)vxP{Ng-+4pGQHw8LtcXE8oI16L%swHI#BC2KLrzCK| z1)YR31JcfDREA!z)(b#@mZjp=bUwCLG5+oq=7R*NF?A~+Uhpl!t{`p1yKKYTou}8U zVap8)R_N?+9pQ}H151l29&4mLKBS7y-%f7XwoQ^_c{DQLkEmx~`WlhS1bEp!T8VGb zpDPI%8+g))>+w{+|LrMB^Cl`hwd&qh&dtdQ0;r&gyICIJMZ4!>kn-8N;a9=QCDD$t z78-T_<`$M%JvwKuDJ09a4zIfl_+3^}p|^a7D5`mBQd}a<6K6mFNOw`YU1w}9$VQN` zbpHIwC9hxrr!Svh4g)1|V6L=6K6n+C(D2Z-J__fRlUtr}V$&7lgAhtcC}vJ1WpVGI zeUYIOmeD&XY{D-u+%>1eMBNYv1X5f8cA&&+P*M`{kDE!Kapd~wb?em5h!oP`+ zKQ%Sg$S*(Sa3KI9>SbkWp4e%ZFE}i4c6(e~X03z7xS$V>$|_@q*VVMNbzEL@_Vd97 zF*z`KrWsB4NOYVT8FggtJ(-U-w70NPuEOGih`9VFL!>;dVK4P|?G`LM5w^U;)r!-M z?va=nimglE9=S7dzC*X?$)S7q=8`+1iJ4yHlB9SPO(hCkFg*e9I6`D)P`BQ!6_690 zcltyeOGbyO0l3llo@m|!YCy)+4L^9~bJD>(L&7FFd$sldl*CU0G}_DQ5z=bRyHB6S zu!h9h4$>uYKB%%%FKxJiO8}%*5Humg9^Q6X`5L`ZX#TZ;@ZGx`IDgylBbH-m5x;3s zf-zAMlsN|YO4&;)OvGqPt|$@XFKOes{XpoiqMssw@YDx%SLk2{1EVMiJK4d0lv@EJ zBWQlk-Mh_!z0imW>L*eLN-tXYvreJ>$4(qotd(>Rx)?;fzOZZpQYvIX13KY95lu3I z06b-O=>;^4JX9!p(9u}pk0s~SbagoJgR_Un7(6cg0hJw5ogOXvea;*7NgdCt{l#dR zx6bN~;X=b7+}hyo$9*X3j=$qb_ow;`I_HSbSwRVFiML3uA2J`Y1#7sU$aeGq(jpX% zkiX7q_tJhaUD+3?XT^5Wd!xu;7S9N@n-0kg$Ij_tHRU?v*zedZ1r(vF!d9l;{ycS+ z4$L@%65YytDCtDP^jyLP>I@;F6*#0;x5ayStYByx zrJ%$I0^%~iMUbnzyEWw!;AhmraiLsk93L6%YShcMWRwt~0IEN=#7-8Q@n|M{psCr~uuGZb$?6ZWH5) z`2R5 z@dwIOX7fN{J}mNYIM{im8)kAAS6{i+X|p*np|kOUE1`zBVg+Y3+|}jR-QlVQk+Dwf5JAV-F7=?V%m>`OuR?%>jwIzJqt}wELjkLH(4v)%bSd&+?WGblTy?6m7ao z1iB>s4S^1n_K8b(jfa25YKUuw4b;1Qg}o!SEC~Uw9RZdxOvwQyX7pfe$y= zLBB%gOGKYv5NT?FySkH3*Z`x$U8OP(qHQUTR5}3~wsdC$iM=Xo;f5BLVMP(8b;jRa z?OCSJ9mv%oL9{}ow(-R82;nvhnv76FB}xdIQj3G-6wkBQ9%gxPS%+Rw4R4TuDZFhE z3k60jnRs*={f1tjojY#RCB`K3DT)ZnDnwVdHj7VOgEAsa1g}rg#HsKf9dVjaOM+W= zI_x@Y)~3l@3eS4s+os1$WAUZ8`31z8+hCp5-v<{x3Camd>($eYuz88O!qrZ%UF-1d zN01YVXz}gbpX@puGos;e*Z;4xGY`i)f8V|qG^(M7XjR$}k+e*uWo)5UR1`%eY1KB7 zmdR)=t%{UZTO&m%ZAy!!kjB!!lS(Q@n^d0H#eARR`8~_;kLNqb_c(@e-}mSKeBSTt zeO>2yUg!0ud&HteFjt~1!r+(K{PNbZjz;G{*zbPf%-sROiDFAgA0-3jL`2wThcaFe zO(WcA@2s=t+!Sh4d)?N8^G*Mw1^CtvO-26l@D(mhfRNf0t^Z}9+TW<#W*(_<;964f zI}_<83y#lf3tbj_Ves%RJlz`jo2TUR1cS^Ab#-+$(jI&+pCMRUL{qA(?nEi_RFU7K zL!Va|r6_P?#Gqe)b;=CcH++qAyTF*awn?`my#jYut@`G2mz`4R8Jsypm!g9*G9Ac0 zHqqM0PT698S#+I?v)U1{9FXMZVg7n|{{$uv;o-bjH=i$O_pOdFf_(D0cnR#Cu$R5! zHfN4wOkE9q0Kp&JgSKpmBRFti_Iot$>758p3-n~yRh9+lsa|ALGnD%>f9Y8m6>xVT zPEjr~zfWDTz(7n}K<8e&%{A5{vnyk8Av*5z@;0428}6~$IVfw2t54Q~#|l&qV)8*r z@9s=!%sc6d6)*`2b`RU{4sWNfE;@PCR$Bp4#AIpA*lxCyY&nq8+`FFxb(SWol4H|u zzaDnPA>Mv>9%CoBpx7?Dux7RQ77o-yg`S@G(+o-I)yE!3j|5oBCSbutDQ{WY8rjv3 z{reY%Z)69#n|6>d3pwSHqtBEY^_jN!p9?%uP|&M)Z|jnSU^AQoTQSc);8z`_8>8E~ z35EOhqKRMpq{gA>W%$~}l5H2O0*(~<+H8ndm`B6&%D3TjwKWK05Y&YTZNOSCa{fc3 z&ffjv9wk9wP!MLaP9@nK@!>G+B(QR>iU0;lm50$JK!1d9Zl)db!Z@${%(>cdWs zI)ffVR93dE^Ssw?w}1d(mE`V?`1YsN3U1q-8N^an?-MgKh`(i|Z zH$j@`aEI_n6pt)w{4%aD@caV}fzHDqqZt=kjU-D$z%Y=|I$J!wzLIz3PFEVE>R7%| zYi*UrAW9ychg%4xo6xPd+=9nf4`!56LTv+mYYUnOz$_yExM;Ymz8$}ODf~XvcOL+Zn*JL*>e{)ZxWy_GIokOapPf_6T zHnP97dM6qUnmCB_DU?k1FAS5&NS0yy#=;F@vWlVM*z~I!<4%8@d}x z7k6KFv~>A!Mr*#`40sdOaqUwrYn!hLdS)&MBE17;QY{sU7Oq=@4N=t7mWyo2hRTiw z)^5;0EN3PP;ZzYAxI!k;@yMe_qIFyH`|mQJ6+lXZldkWK3u7>|U{{xJq+fou6fii- zKnjgYxM_m)Lk0*lqiyl|kL?C{m2~aatqHA_ZM78wRyzQ?KY8+Gf`{8xPtz2dbNOa= zoKV4Is_?QR^2*68-qt$9N8K%u+eR8ny$+MO4CDyeuNJaCS@kkPm4co77$#yX(m`|{ zKcfz@?9adNldETYiBla#LzDG9{bq5CWNQ0i9yw#|f}4iL#`Z+^L+T@nJaOp|U7_y> zT?(ZpYZw1KvCCTy%xJQPsD#AH35NDx9Cyw=Z(AH^@0m{Z4(HDx&LGr>_{`~-7UKwM zK?}5H@fLBq5bVTq?GzHBg#0l=pv8>m3Jkn#sVh!X$6yzJ%{ir#x_2gD| zn^-P_-|ZuL0+6^!z=T$&1)$lS1M|1GdnYr(IRb zbFyybS^d4^#YTu4R9JsOpkPvvQ8Dz10r0_;x03phz~yzm@7ONZ_;9P#gQ#|Qz3e&x zY_kIpUz0JT9tK=dCWenBCnqyFu&P_1G0}zU*M4VJgBunPw%FP~ydaf*dW9$KgvBG~ zC?4-EP+5HBm;cH0VXV4ogdEm-%{6PuJusDq0}z?OBZv~{P!+fc`f`y{K!i3z{r zBdR(!%r=V~OG}Bm%U`5~SE=cnOfpKPCJs?PH8~-c*U$v#k~vG>0BMFy=8?RH3zL~k ztL8tX<#DE0mmy1^1&*FZ#LJr78Af0#>U4_A!z@avBe>2W=fOyc;LI{XWbn72jR)N( zt$tDYeb3A}Hi#ro3OXaqiKEW0Lx$^7>6|j#COIGpI}G6=yoTgDTltJ^x3-wbJ6w2k z>h-9u(^h%@DR|e6wY33Q53rCp@Gj-$C1gI|hDa2I34O@V_>5Ra7fL@NmzH_b<<`KK zD1M_UTBD3(mUlOre*e?o@{KDmJ%0Rn!983A@?f877L|UXl204ri$^_ey1l5R&hu%~ z(KRPhQp9x$9{`I7+TaD&BS)?uoVIm!qFzqolEcBQNQo_CtSA4MyPY!oC))B1rVKgs zy3+RAVXRu(6yL<)%UcyY*?ld#dE!~hy)`QGDcve2Ap&^y?){6J+DODEWK#y-YB%|y zVtNe`oaFnOgQq$?@CQh`PLh?c;>5ep&fTdu-tetW=>9)1%{0#X`z`%IUxwL^A3taj zzJM=*mmXmD6I4Tmu{awcrOEAG;o%-7l^=VKyK(iZ@eh7&xpp0>=6eY3Yywzy&u`-) zm%rN|?$}CcmY0`T&^*5{?+*3D_O)aMZeGK@zjAIRA3S)GiL*|xhH++Q)7y49?GfDm zMH;-SbDSR^5UCDe$3JZkGn6Lm^yBeM7nMJIwsZH^*oCQbVq1~4@aC^(#m1U4eSTGG zW!%v7wzI~qqN0@iWV_s&_@E*gCSCjMAH8eioNOx3V?u?2Alu=4^6gsF zijTg6N0UcQE*%!TZ*|WVi~EjsD(e|`@_H$8P0QLk=kSoT@3haX%)OVB@~LW`--slD z`#D?wcAY#VZ<$Nj@-@3wVD=j@>v3-M(KRU;K}0*)ts80;{l50)oXKt3nQWbSRy)9P z*FJp`9w>ILShu5X&Qfe7SXCj-pZ^Gxn1&W^$i9LFPcFT=?TvMjQTe7B6|BSL$8PcrGS8QpGuZSCm<`Grjp zXHPtBe<>pyezeb$A4jNa{~p%x^Vj~m#?F*BWmu8Mkx;>)oS>t<} z4fXQB^v>bJ76W;|&=2YTn2f8MK74C46WfLtnY9KbIPbdko~P;X$`k*-s6RMN%EpEt zVuG*FG>&i&+@IsDbKbRndR*NNhg-=8^8y2?y5GZi>|oI*F8pTX8(!zQe_>8`c4<{r z{jP=M-ve>C?a<+?L)x@Gp+yLJ`;vV=CAjGkP480*Sp9-W*0y94R zWzLwKV&@<8_9u`R0m`R6sIj)R#4;*5=ibKGC%T)d3f{&4Zd}iCVVD#F@L8i1M--I^ z#hkSF;5fA|cVKI!W}J3&*4{ju4tOP^cfefCe5#A=jQX*YmKr87S{AQI2rFp~rR-K- zPjV|q9Ebo8Tp~Ky)Olz-F?>f?Mwd*Z{reR@5il%fY862dphptltVM&s+fX(`8Vb6D zpGg^=2nL^(?P%3%-_PA5xfpHGB`O{9smeb&>P6>350;yT*BYhe&oxKa*P=N9ZT> z-MDT+cyM^i{3tVpI0mw}YS(Aht$_=#>^45Fb&#`o>tbYC}? zu1l!Esa-fTFXHw>=xcW0p%g&YJZRoDv(&&zkNt_9!48FPzO^d%WZ{V*_RQ+snL206z0j$)in zA||#*V6=vU3!|J8qiXVbF_I+={e$twMTa^@xSwmgy5kRA?EbHewA+~ry%w8x2vJWX zMf-zNOWed2R)NL)aJWRcPM9FQ0hz5cdPoyGEe&d_KTA@)Yj-aNaCd=siHgZ5PGEPW z33@8>q<%M$P%yP{I8VhQx^UR7EA`|@6hTeIE%`l^VOz-n8qWa~G7~%&zTg!s!p&dm zygv_RBr>c|O`)}RKdc@=@flcI3fSm?RqmZRV7_AV%)|wQ&g1uJZ&g9m!U~fYgjP% zt7)9G5j_v&YdAzIi3uv0Mb^=gwd{C}yB?^i$#Uz=NoSPihAme;;(Cne4WN|g?p)Y|?gCRzg*XmL(cF^ZCv?apGA zKR0kWyYoM!cdF|3T<`ZWb4SIir}()Z=`Z%0|2@~uXkPVc#=}U2|4*))zKNLWdGxe| zKm<$kAh3ny=0{92fv4d~TBl#D;y)5A6y7V^GSV?V%5Dtv~rj}*wW8PY$L`_ zdDOP$h)vpIup{p7I)n|AJ_hP93YQ~Uky;ts$CtEMD8K?{-M&2~zoVvRjqq=JCH(S9mnp2+B)TgQXtW@_!xN8yvN5pl*?9zk2Vrdv!1FW# zSW;Ct8)Rr;K)8kdO-F-PhX865V z6x{vVy?Hq^hBeK;mU+vJOC7&OC6MEAT70pUH+~>VlMb2nZNmJu+XrQ>Sm4pBLKr zIy>m!tog;^JRu!LN4|>rOs~(87eM7&uidS4MI zyWRa-fngB7raySVC1jqE#!J8hMd7so4N9AcN{ROCZeHsci-(rr3EA)Z_zvRqf`4=% zLjZ~5`Irv{Kig-o)pSym!|w)O`f%%EqdQgvsu~ns9<`2lh#OX1aU>xq!@wTYp$kxpHel%Cro)U2+2$@6RPB&!G4}m z-ww$8T*M$KO*Sz(yXWHz=bhf%2W}VAdPe=%DM0~;D080QI53`oEM{6_qx^35rI=xL zE)mrOT~AktRs8yjFMY^jWaK%A(NiYZ3J$;7s=JqM?hftxs`~FE061k@3a6!-Vztb5 zitJoZNiqxNO&XVK4T>;$#Vd8_bBb&_+!m&7xg5|9RFmNF*k2KmPOZgbuV@5D1gag^`%yUOa1H>b46 z@Im+DbG#tQV;z5~ZMuXu8g9U8cA@sTgdS!;h1tfYw>VP&>5mlO^ZR+@N2|&%D(ks;G>%u@TRX1s4c9TzdB(6s7&a>SEZJFsVw2XyB8sa1u1p!l4gBvLe1$m&C)TzmKHQQr`xs5CKZz=lD`WwR#b*Nbu#CO5PkUA&bin9 z_{KPQ$zciEQ~)qyJEoYUMI6TIN;B42!VS-1$xGX>Oe93Be(~0=w9yOp6y+BZGuqA{ zL=)y{8r6awvPQfDcmSfNzZ!VmVf&NoJV~lNAxLG3qFaFoYZln_P|=4Lap_8v-ux7y zavv>5Df{T<^0P}dMv6-h+l2RX$HvZb&slN8fz&0^$|;7&P4I7q5e0>~)gCOaV5WU% z+KjVcjMsy=hRx3at@Pcg-0_?1wD@8F>`eECl3_5C%u3~uL&T%I#m%XfS?*cHF_~2V zg}E_bNI&v6O)RSXC5S`tfhe?@94Hkdx)C9sH-=RP>I9S`{@5hs)uBJuNnRIF&OA^Q>|9( z>ej!4ZM^txW6gg@tnc`HBLw|n`eWEb;-mWL%SClhuf>aRh)pzoK&Ux_K}q_dcG9`O zbj6A+f9s`j; zkbxcNWvu-!zB`iKVk-p*ykp-!Llqm_KRkiJ@E=iG&u$Oucqdva5)fYq6zEM^Md0l6 zDuPDygK*EXa(bPy-ZkFV)}4ivl{kVqr&KcG22LA()qeBz_$SRrYl!3EBo#Zk-|((dje&Xjj`&5rk=q#;}6a289jFnz~T zDjIPpTOWV03%#rnDw>?0ZWK;*!A^Si8RezScSA(8*~%YFA@Da;m;bzeI<;u6=3$^y zwo@{kBZ#jxH2?sc;+X3P$jUHD3gOrxZ2T1ARnNDdw!mfd}pwa(t8ou7X>?(q98CJlwXxvTccWe<+VDvv} z_$Z%&rlvdPL`>fmlM!qid)dA==ke|$i%Ab6BXx!jy?^v;x`FM}io!^VB5=5Ttw60m ztU>G*0^^2!F$;e&k)Te-O@1RITL~jEadAuO1w@2zPKCvqGg?}cd*g;ga5SX;*p#$o zfVP;HOis{v^M>9MHx?tHcnF&vnfyg!Wd%kJ&>YG#ACvd1zND-jsBF;HeHWlEEsgyv z6~pP{jv4zH!hn@VXFuFR;;Q*j5ExUxN4?4s-yz7lri$Gno;D0ng|3^{BMFTccz+Iw zgh4L`N?DY6IvjBb0$*${Q-wl&s6%B622XP?5sNgG9dn&hLS(wo5O5C6m+-u(o-=?# zByI8IEwG|UHnZrJIQnURRCKWXRt2?oVXHl%p&O`G8GG)OoJTE=I|Yf)rd91HZE?XY zMMkh@rSG4=s8~Uv?M54mQ4Rqu{SJ>m5U!|GVKj$X4CnLrulOzZN_MsqN!Oy#tsG2J zO~4=RI=lb!!cV#P??wk)vTha}vSZgSYlLCJ%R3q-ejS4Jn}-v0`2hhSGb1eVgn+>& z3xw{l81|=q~bRw97 zYPsTR+O~7&u?X?Yk{m*NDe+MnJaOg$pt-c%k382xR>H#ME^}Ts@A;{vnpxGwk_ReTnqz|R zSA|yRB8MX*WmCjYKGuP;=}&N+$i93z>dvfH9Nq`NbaBlpw}$6Kee!y%4&*nE2=7l- zFKspfu@vS1NYWGhC1e68LTAbXi&oQ~zR|6%A!&$wlL5Dh*h@N?uwWoX=TF;K>OSxu zRWZ@Y-kM(fmb4G#!tDt{^>00RBYrAm>~Eu0CrNK1@n5N3s-zqYn(`gN$_t05O7QRqI9}M0>{411dUn+jZ;(E!)SB}`qJA0_6ve(*@ zdy?3R2R=3L3sjm=I2*{cFkM^} z;D}u)qm74l#eVj!eok2p>%VGkO^If4V%6xDW>_dt?m2Al_aLq z+QVaGt^4D-{&LSTWQpAe4on+8>1DL6M8EA3n`Lx4_r1`}CB8!D`QH7f<;)|$PAo8s z{VD3;!I8}scYQGSS)P%X+lS>2wMiW|n;CuUE3_!BgJ-Qmn1qMqdfXSCjMvPoJ%lH^ zab6VwUm(a}?!kk$hDk*Rho1!$dZId1K+>LiZ=dyT)F_#sW;Js7PHy$++M-Um+BD2# z7%<<8%$amM_U^AqCDnSxEw^5oRCH#xu@-IHhAXG4&G{B{S+QgJ{=Jcr(@NKF@EPed z@AeJtlZ@(-F`n#1M1+Ltpj~G}_iVp?Y?>%%n@m07*@m}m>oXB?0gN)rgq~6vx`J+P z6xc6as68h;_U_RmuvZKPE}PW$*k<1obyY}h@6b|138gt`JI`|B<$N|6qMj_R*mcM8vLM8Mm7?F#)?Iio%ba)G|) zV2(JM-$57I%TGePvEOnaidIz~J0<>CxX`0-2#t))1BjRYai9~D#~sojN4(dW)lcta z@2ml_8n@VUI-^Q~=4NAx=ixu|9=Ri4|D+?<)Y2?@G1Y;E4lXx0H?Kg#)~IQVzUgIo z=;YDweaB&p+)0f{}!{|bFfNtb!^W*C#V z$eltqcOME@&aR6CVHc%0nfGxNY>-cuPtAiq-o>U!5^_l1a_I3=t%Z2wQeu-twnTIW zmn*6OY2YgDSx&f4cN3EjuR=jLx^R<6q zuhbW@8?R<(ZzRD=A@ETQ=9dPc6cJFtY1vf}J<3nDK{7Is5wnX1?y002|EKb!0q&`p z^$dxSF*^Om({KV7^Jk!$C^e{|#I}`!bqVg~{gT?wcG(M#5HzrwN4V=;%TvGUrK|t^ zw#(opT@iTAMOi7%UpKulHEyuCo!Mdc)Ol5>Qd6aw1k50$;|ewj#{&79^`-?68<}kg zYfyw>eec-GHZsCX7BO6d;F_#aiU#qg6JB)kVCmJSDx(#mUB{$P2blfE#xlXWxb3<3 z!%-2Y0-kwy5pP_Bw@N3Mi-I2$FA@rM_vJyW1}R;dyDKR&NCG%ybf+G#IXvj1f!XNMg+<1inZ;d2$Y`MaOeW`*Bh4`Z*T4o=&^Y zu|kyMd1s!WgEH*SH-!R@ZYJUp)e3+`Y-1 z+@1DAZ;UQFfD`Q%xY$iMqN!iX*!`Oj$!6o{vUBibcr}mwYuEIat$~uUI`2B8^aC5U zj9=3{Mu^a=VsNwpC(ew^^~mKFt@e$Z@*2eRb=$)l;Y^vQ>t=PSDG=>NPh+k9t7?0b zpXUx+WEEX;XZYF0zULpI#rJ~Ze|lhdraSEREN5rupki1+JF|A>534RqJ9>UWLEjbo z53gvIx9mdu%^BMMDQRGx6H8AZRW4(bhI}KHS+soVQj@s2xZuasSFTdIT^4g@aQQ=3Vv_y2zjv+Nw7KxJo0-wf}EpiNK7?E&%` z7-WIU)@_>_8WU`;r);KKrWO`Q-=X`+Q8uCaX__jDJI&B7cNY<8hj@t?A z@tLlxLmej4m;k$cgxlY-<>$<84IKNC(H9UW6z8~0}I`ug0$)vXI_ z9=vgF_=5@?h>%GWKBkTfY<$zyDEs&^V?AyR>DKrLH$rV=O$O|4cy$j)3)^2uyTsea z&fTlt@SB*q<`vW9XdHa`@$1~Zo&Nou^+IEzrMy|Gff|T-PLP zL+ki(`NVjgRJ0QVEE+z|aY5<)≠mY5+l(6~EtBM;hO;)IQ!J?jVkyo4@Vf-SDk6!oHkNINGz}GvfJz4u6NOYg8RL znp$DEm-pJKcjFaQI064Ijqz&u#2zDWsWtqIgLhD`{!Zo%?`3ZpH#vctu;GVLeVsPu zv)$a@A1!XY$Pf7xn6)SW{jPmuJN3wEypi#j@t=#Ur;==Z;r^cQy{ELFYWVNBG1eM` zrE8U@>wy)%jeqcCsn^MS4(2^pH{N@P?cB$^d1K@|!~{dyMR*0yUiP1_=X~tP`HiDj zp4%m_jn_fa5qI#_+l&E3; zzn*CM=$j4C$R_3f`G#xJ*u&~mWW#&SHf+2SjWAD>9Vh=?EY_i)&(A+f<$hvv$IaP;VAQ_X<4%2Jh)d(wT(_H?wUyG9O&lZH@pOKCn8rIP z9pK1tI^3wQsW4gw`&8ofaq`8#l{Qg8wLF!U=IZmRL{H&^@Av*=4>nwP(SZswqBuCl z?&Nd(&_Zp}S@II(1lri-H{jBsfPk#jG0}~GJjroYdKUgikmI*jR6SY~QXQG=X?lda z*+yD{UV;A|+^?e6-* z6&mACn|v=UfA*>Tzx#HB2#mC6Hg;*(b8~$Kv49g`oZWiYB+Z}fSK{3g{J6D}e}so=2Y@R+zn{xpCm;cO zpfjs;*X2IW-J(~iw|8Q|h(Y#W9_OY6^nY;qa#R0H6K4O)U!|Jr-Jil#!uo*EhnMuq zd-K2kv+KedjuoBzQ;I%5Ui{bY>q+8HCi$qzST z)q(EBI;ybw&=YmDRqmcyb~wP_|H{F7)nWc0#$PsgF;Id3*;tOVNc?T)hW`OK C=t33% diff --git a/_versions/2.7/guides/images/kafka-qs-architecture.png b/_versions/2.7/guides/images/kafka-qs-architecture.png deleted file mode 100644 index 3209c223de2b428b78cf54bdd3d20c560ac961cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144238 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̐J{y+iCg*4;!^?jUEsIW0|v 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

    (gP({IS#_Z5xtfd@9WSZQhZZ22^8hat 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 P00000NkvXXu0mjf_?gt$ diff --git a/_versions/2.7/guides/images/blocking-threads.png b/_versions/2.7/guides/images/blocking-threads.png deleted file mode 100644 index 474f3648898b737db69217df351383c363ae41fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378536 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䮁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%0ALT| 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