From 1f9b099dfb4e4e57248d07de28ebc2f9878b9794 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Basl=C3=A9?= Date: Thu, 16 Nov 2023 12:03:09 +0100 Subject: [PATCH 1/7] Extract recurring asciidoc links to attributes This commit extract spring-related links and recurring external links into asciidoctor attributes to be used by the Antora toolchain. It notably homogenizes links to: - IETF RFCs - Java Community Process JSRs - the Java API Documentation (on the Java 17 version) - Kotlin documentations (on the Kotlinlang.org version) - the Spring Boot reference guide (on the `html` version) This commit also reworks most link attributes to follow a Project-Category-Misc syntax. For example, spring-boot-docs rather than docs-spring-boot. Closes gh-26864 --- framework-docs/antora.yml | 76 ++++++++++++++++--- framework-docs/modules/ROOT/nav.adoc | 2 +- .../modules/ROOT/pages/appendix.adoc | 10 +-- .../modules/ROOT/pages/attributes.adoc | 30 ++++---- .../pages/core/aop-api/extensibility.adoc | 2 +- .../ROOT/pages/core/aop-api/targetsource.adoc | 2 +- .../pages/core/aop/aspectj-programmatic.adoc | 2 +- .../ROOT/pages/core/aop/ataspectj.adoc | 2 +- .../ROOT/pages/core/aop/ataspectj/advice.adoc | 4 +- .../pages/core/aop/ataspectj/pointcuts.adoc | 6 +- .../ROOT/pages/core/aop/resources.adoc | 2 +- .../ROOT/pages/core/aop/using-aspectj.adoc | 17 ++--- .../modules/ROOT/pages/core/aot.adoc | 20 ++--- .../ROOT/pages/core/appendix/xml-custom.adoc | 2 +- .../ROOT/pages/core/appendix/xsd-schemas.adoc | 6 +- .../pages/core/beans/annotation-config.adoc | 12 +-- .../custom-autowire-configurer.adoc | 2 +- .../beans/annotation-config/resource.adoc | 2 +- .../modules/ROOT/pages/core/beans/basics.adoc | 14 ++-- .../pages/core/beans/classpath-scanning.adoc | 8 +- .../core/beans/context-introduction.adoc | 18 ++--- .../core/beans/context-load-time-weaver.adoc | 2 +- .../factory-method-injection.adoc | 2 +- .../factory-properties-detailed.adoc | 2 +- .../ROOT/pages/core/beans/environment.adoc | 16 ++-- .../pages/core/beans/factory-extension.adoc | 8 +- .../ROOT/pages/core/beans/factory-scopes.adoc | 6 +- .../ROOT/pages/core/beans/introduction.adoc | 4 +- .../core/beans/java/bean-annotation.adoc | 2 +- .../java/composing-configuration-classes.adoc | 8 +- .../beans/java/instantiating-container.adoc | 2 +- .../ROOT/pages/core/databuffer-codec.adoc | 2 +- .../modules/ROOT/pages/core/expressions.adoc | 2 +- .../modules/ROOT/pages/core/null-safety.adoc | 12 +-- .../modules/ROOT/pages/core/resources.adoc | 10 +-- .../modules/ROOT/pages/core/spring-jcl.adoc | 2 +- .../pages/core/validation/beans-beans.adoc | 6 +- .../pages/core/validation/beanvalidation.adoc | 8 +- .../pages/core/validation/conversion.adoc | 4 +- .../ROOT/pages/core/validation/format.adoc | 2 +- .../ROOT/pages/core/validation/validator.adoc | 4 +- .../pages/data-access/jdbc/connections.adoc | 2 +- .../ROOT/pages/data-access/jdbc/core.adoc | 2 +- .../jdbc/embedded-database-support.adoc | 4 +- .../pages/data-access/orm/introduction.adoc | 4 +- .../ROOT/pages/data-access/orm/jpa.adoc | 6 +- .../modules/ROOT/pages/data-access/oxm.adoc | 6 +- .../modules/ROOT/pages/data-access/r2dbc.adoc | 6 +- .../application-server-integration.adoc | 2 +- .../transaction/declarative/annotations.adoc | 4 +- .../transaction/declarative/aspectj.adoc | 3 +- .../declarative/tx-propagation.adoc | 2 +- .../pages/data-access/transaction/event.adoc | 2 +- framework-docs/modules/ROOT/pages/index.adoc | 2 +- .../pages/integration/cache/annotations.adoc | 12 +-- .../modules/ROOT/pages/integration/email.adoc | 2 +- .../ROOT/pages/integration/jms/annotated.adoc | 2 +- .../jms/jca-message-endpoint-manager.adoc | 8 +- .../ROOT/pages/integration/jms/namespace.adoc | 4 +- .../ROOT/pages/integration/jms/receiving.adoc | 2 +- .../ROOT/pages/integration/jms/using.adoc | 2 +- .../pages/integration/jmx/notifications.adoc | 2 +- .../ROOT/pages/integration/jmx/resources.adoc | 6 +- .../ROOT/pages/integration/observability.adoc | 2 +- .../ROOT/pages/integration/rest-clients.adoc | 6 +- .../ROOT/pages/integration/scheduling.adoc | 8 +- .../modules/ROOT/pages/languages/kotlin.adoc | 10 +-- .../pages/languages/kotlin/annotations.adoc | 6 +- .../languages/kotlin/bean-definition-dsl.adoc | 8 +- .../languages/kotlin/classes-interfaces.adoc | 2 +- .../pages/languages/kotlin/coroutines.adoc | 28 +++---- .../pages/languages/kotlin/extensions.adoc | 8 +- .../languages/kotlin/getting-started.adoc | 2 +- .../pages/languages/kotlin/null-safety.adoc | 10 +-- .../pages/languages/kotlin/requirements.adoc | 4 +- .../pages/languages/kotlin/resources.adoc | 20 ++--- .../languages/kotlin/spring-projects-in.adoc | 36 ++++----- .../ROOT/pages/languages/kotlin/web.adoc | 16 ++-- .../modules/ROOT/pages/overview.adoc | 34 ++++----- .../modules/ROOT/pages/rsocket.adoc | 40 +++++----- .../integration-junit-jupiter.adoc | 8 +- .../testing/annotations/integration-meta.adoc | 2 +- .../annotation-activeprofiles.adoc | 2 +- ...annotation-contextcustomizerfactories.adoc | 2 +- .../annotation-contexthierarchy.adoc | 2 +- .../annotation-dirtiescontext.adoc | 2 +- .../annotation-dynamicpropertysource.adoc | 2 +- .../annotation-recordapplicationevents.adoc | 2 +- .../annotation-testexecutionlisteners.adoc | 2 +- .../annotation-webappconfiguration.adoc | 2 +- .../modules/ROOT/pages/testing/resources.adoc | 4 +- .../pages/testing/spring-mvc-test-client.adoc | 2 +- .../server-defining-expectations.adoc | 6 +- .../server-filters.adoc | 2 +- .../server-htmlunit/mah.adoc | 4 +- .../server-htmlunit/webdriver.adoc | 4 +- .../server-performing-requests.adoc | 2 +- .../server-resources.adoc | 4 +- .../server-setup-steps.adoc | 6 +- .../vs-end-to-end-integration-tests.adoc | 2 +- .../vs-streaming-response.adoc | 2 +- .../testing/testcontext-framework/aot.adoc | 14 ++-- .../application-events.adoc | 4 +- .../ctx-management/context-customizers.adoc | 2 +- .../dynamic-property-sources.adoc | 2 +- .../ctx-management/env-profiles.adoc | 2 +- .../ctx-management/hierarchies.adoc | 2 +- .../ctx-management/javaconfig.adoc | 6 +- .../testcontext-framework/executing-sql.adoc | 12 +-- .../key-abstractions.adoc | 2 +- .../parallel-test-execution.adoc | 2 +- .../testcontext-framework/tel-config.adoc | 2 +- .../testing/testcontext-framework/tx.adoc | 6 +- .../modules/ROOT/pages/testing/unit.adoc | 12 +-- .../ROOT/pages/testing/webtestclient.adoc | 8 +- .../modules/ROOT/pages/web-reactive.adoc | 2 +- .../modules/ROOT/pages/web/integration.adoc | 8 +- .../modules/ROOT/pages/web/webflux-cors.adoc | 8 +- .../ROOT/pages/web/webflux-functional.adoc | 4 +- .../pages/web/webflux-reactive-libraries.adoc | 2 +- .../modules/ROOT/pages/web/webflux-view.adoc | 10 +-- .../ROOT/pages/web/webflux-webclient.adoc | 4 +- .../web/webflux-webclient/client-testing.adoc | 2 +- .../modules/ROOT/pages/web/webflux.adoc | 6 +- .../web/webflux/ann-rest-exceptions.adoc | 2 +- .../ROOT/pages/web/webflux/caching.adoc | 4 +- .../ROOT/pages/web/webflux/config.adoc | 24 +++--- .../web/webflux/controller/ann-advice.adoc | 2 +- .../controller/ann-methods/arguments.adoc | 2 +- .../controller/ann-methods/jackson.adoc | 2 +- .../ann-methods/matrix-variables.adoc | 2 +- .../ann-methods/modelattrib-method-args.adoc | 2 +- .../controller/ann-methods/requestparam.adoc | 2 +- .../controller/ann-methods/return-types.adoc | 2 +- .../controller/ann-modelattrib-methods.adoc | 2 +- .../webflux/controller/ann-validation.adoc | 2 +- .../pages/web/webflux/dispatcher-handler.adoc | 14 ++-- .../modules/ROOT/pages/web/webflux/http2.adoc | 2 +- .../ROOT/pages/web/webflux/new-framework.adoc | 14 ++-- .../pages/web/webflux/reactive-spring.adoc | 36 ++++----- .../ROOT/pages/web/webflux/security.adoc | 2 +- .../modules/ROOT/pages/web/webmvc-cors.adoc | 8 +- .../ROOT/pages/web/webmvc-view/mvc-feeds.adoc | 2 +- .../pages/web/webmvc-view/mvc-jackson.adoc | 2 +- .../ROOT/pages/web/webmvc-view/mvc-jsp.adoc | 4 +- .../pages/web/webmvc-view/mvc-script.adoc | 10 +-- .../modules/ROOT/pages/web/webmvc.adoc | 6 +- .../ROOT/pages/web/webmvc/filters.adoc | 2 +- .../ROOT/pages/web/webmvc/mvc-ann-async.adoc | 10 +-- .../web/webmvc/mvc-ann-rest-exceptions.adoc | 2 +- .../ROOT/pages/web/webmvc/mvc-caching.adoc | 8 +- .../webmvc/mvc-config/message-converters.adoc | 25 +++--- .../web/webmvc/mvc-config/path-matching.adoc | 2 +- .../webmvc/mvc-config/static-resources.adoc | 6 +- .../ROOT/pages/web/webmvc/mvc-controller.adoc | 2 +- .../web/webmvc/mvc-controller/ann-advice.adoc | 2 +- .../mvc-controller/ann-exceptionhandler.adoc | 2 +- .../mvc-controller/ann-methods/arguments.adoc | 2 +- .../mvc-controller/ann-methods/jackson.adoc | 2 +- .../ann-methods/matrix-variables.adoc | 2 +- .../ann-methods/modelattrib-method-args.adoc | 2 +- .../ann-methods/requestparam.adoc | 2 +- .../ann-methods/return-types.adoc | 2 +- .../ann-modelattrib-methods.adoc | 2 +- .../mvc-controller/ann-requestmapping.adoc | 10 +-- .../webmvc/mvc-controller/ann-validation.adoc | 2 +- .../ROOT/pages/web/webmvc/mvc-http2.adoc | 2 +- .../ROOT/pages/web/webmvc/mvc-security.adoc | 2 +- .../ROOT/pages/web/webmvc/mvc-servlet.adoc | 4 +- .../pages/web/webmvc/mvc-servlet/config.adoc | 2 +- .../webmvc/mvc-servlet/exceptionhandlers.adoc | 2 +- .../web/webmvc/mvc-servlet/multipart.adoc | 2 +- .../web/webmvc/mvc-servlet/viewresolver.adoc | 4 +- .../ROOT/pages/web/websocket/fallback.adoc | 24 +++--- .../ROOT/pages/web/websocket/server.adoc | 6 +- .../stomp/authentication-token-based.adoc | 6 +- .../web/websocket/stomp/authorization.adoc | 2 +- .../pages/web/websocket/stomp/enable.adoc | 2 +- .../websocket/stomp/handle-broker-relay.adoc | 2 +- .../web/websocket/stomp/message-flow.adoc | 12 +-- .../ROOT/partials/web/forwarded-headers.adoc | 2 +- .../modules/ROOT/partials/web/web-uris.adoc | 4 +- .../ROOT/partials/web/websocket-intro.adoc | 2 +- 183 files changed, 611 insertions(+), 558 deletions(-) diff --git a/framework-docs/antora.yml b/framework-docs/antora.yml index 642ecd19f6cd..121996a15ef5 100644 --- a/framework-docs/antora.yml +++ b/framework-docs/antora.yml @@ -18,15 +18,73 @@ asciidoc: # FIXME: The package is not renamed chomp: 'all' include-java: 'example$docs-src/main/java/org/springframework/docs' - spring-framework-main-code: 'https://github.com/spring-projects/spring-framework/tree/main' + spring-site: 'https://spring.io' + spring-site-blog: '{spring-site}/blog' + spring-site-cve: "{spring-site}/security" + spring-site-guides: '{spring-site}/guides' + spring-site-projects: '{spring-site}/projects' + spring-site-tools: "{spring-site}/tools" + spring-org: 'spring-projects' + spring-repo: "{spring-org}/spring-framework" + spring-github-org: "https://github.com/{spring-org}" + spring-framework-github: "https://github.com/{spring-repo}" + spring-framework-code: '{spring-framework-github}/tree/main' + spring-framework-issues: '{spring-framework-github}/issues' + issues-old: 'https://jira.spring.io/browse' + spring-framework-wiki: '{spring-framework-github}/wiki' + # Docs docs-site: 'https://docs.spring.io' - docs-spring: "{docs-site}/spring-framework/docs/{spring-version}" - docs-spring-framework: '{docs-site}/spring-framework/docs/{spring-version}' - api-spring-framework: '{docs-spring-framework}/javadoc-api/org/springframework' - docs-graalvm: 'https://www.graalvm.org/22.3/reference-manual' - docs-spring-boot: '{docs-site}/spring-boot/docs/current/reference' + spring-framework-docs-root: '{docs-site}/spring-framework/docs' + spring-framework-api: '{spring-framework-docs-root}/{spring-version}/javadoc-api/org/springframework' + spring-framework-api-kdoc: '{spring-framework-docs-root}/{spring-version}/kdoc-api' + spring-framework-reference: '{spring-framework-docs-root}/{spring-version}/reference' + # + # Other Spring portfolio projects + spring-boot-docs: '{docs-site}/spring-boot/docs/current/reference/html' + spring-boot-issues: '{spring-github-org}/spring-boot/issues' + # TODO add more projects / links or just build up on {docs-site}? + # TODO rename the below using new conventions docs-spring-gemfire: '{docs-site}/spring-gemfire/docs/current/reference' docs-spring-security: '{docs-site}/spring-security/reference' - gh-rsocket: 'https://github.com/rsocket' - gh-rsocket-extensions: '{gh-rsocket}/rsocket/blob/master/Extensions' - gh-rsocket-java: '{gh-rsocket}/rsocket-java{gh-rsocket}/rsocket-java' \ No newline at end of file + docs-spring-session: '{docs-site}/spring-session/reference' + # + # External projects URLs and related attributes + aspectj-site: 'https://www.eclipse.org/aspectj' + aspectj-docs: "{aspectj-site}/doc/released" + aspectj-api: "{aspectj-docs}/runtime-api" + aspectj-docs-devguide: "{aspectj-docs}/devguide" + aspectj-docs-progguide: "{aspectj-docs}/progguide" + assertj-docs: 'https://assertj.github.io/doc' + baeldung-blog: 'https://www.baeldung.com' + bean-validation-site: 'https://beanvalidation.org' + graalvm-docs: 'https://www.graalvm.org/22.3/reference-manual' + hibernate-validator-site: 'https://hibernate.org/validator/' + jackson-docs: 'https://fasterxml.github.io' + jackson-github-org: 'https://github.com/FasterXML' + java-api: 'https://docs.oracle.com/en/java/javase/17/docs/api' + java-tutorial: 'https://docs.oracle.com/javase/tutorial' + JSR: 'https://www.jcp.org/en/jsr/detail?id=' + kotlin-site: 'https://kotlinlang.org' + kotlin-docs: '{kotlin-site}/docs' + kotlin-api: '{kotlin-site}/api/latest' + kotlin-coroutines-api: '{kotlin-site}/api/kotlinx.coroutines' + kotlin-github-org: 'https://github.com/Kotlin' + kotlin-issues: 'https://youtrack.jetbrains.com/issue' + reactive-streams-site: 'https://www.reactive-streams.org' + reactive-streams-spec: 'https://github.com/reactive-streams/reactive-streams-jvm/blob/master/README.md#specification' + reactor-github-org: 'https://github.com/reactor' + reactor-site: 'https://projectreactor.io' + rsocket-github-org: 'https://github.com/rsocket' + rsocket-java: '{rsocket-github-org}/rsocket-java' + rsocket-java-code: '{rsocket-java}/tree/master/' + rsocket-protocol-extensions: '{rsocket-github-org}/rsocket/tree/master/Extensions' + rsocket-site: 'https://rsocket.io' + rfc-site: 'https://datatracker.ietf.org/doc/html' + sockjs-client: 'https://github.com/sockjs/sockjs-client' + sockjs-protocol: 'https://github.com/sockjs/sockjs-protocol' + sockjs-protocol-site: "https://sockjs.github.io/sockjs-protocol" + stackoverflow-site: 'https://stackoverflow.com' + stackoverflow-questions: '{stackoverflow-site}/questions' + stackoverflow-spring-tag: "{stackoverflow-questions}/tagged/spring" + stackoverflow-spring-kotlin-tags: "{stackoverflow-spring-tag}+kotlin" + testcontainers-site: 'https://www.testcontainers.org' \ No newline at end of file diff --git a/framework-docs/modules/ROOT/nav.adoc b/framework-docs/modules/ROOT/nav.adoc index 9dd9bcd2d244..6f026c550e71 100644 --- a/framework-docs/modules/ROOT/nav.adoc +++ b/framework-docs/modules/ROOT/nav.adoc @@ -438,4 +438,4 @@ ** xref:languages/groovy.adoc[] ** xref:languages/dynamic.adoc[] * xref:appendix.adoc[] -* https://github.com/spring-projects/spring-framework/wiki[Wiki] \ No newline at end of file +* {spring-framework-wiki}[Wiki] \ No newline at end of file diff --git a/framework-docs/modules/ROOT/pages/appendix.adoc b/framework-docs/modules/ROOT/pages/appendix.adoc index c6c7d9d89815..4f3229f94ef8 100644 --- a/framework-docs/modules/ROOT/pages/appendix.adoc +++ b/framework-docs/modules/ROOT/pages/appendix.adoc @@ -8,7 +8,7 @@ within the core Spring Framework. [[appendix-spring-properties]] == Spring Properties -{api-spring-framework}/core/SpringProperties.html[`SpringProperties`] is a static holder +{spring-framework-api}/core/SpringProperties.html[`SpringProperties`] is a static holder for properties that control certain low-level aspects of the Spring Framework. Users can configure these properties via JVM system properties or programmatically via the `SpringProperties.setProperty(String key, String value)` method. The latter may be @@ -25,7 +25,7 @@ The following table lists all currently supported Spring properties. | `spring.beaninfo.ignore` | Instructs Spring to use the `Introspector.IGNORE_ALL_BEANINFO` mode when calling the JavaBeans `Introspector`. See -{api-spring-framework}++/beans/StandardBeanInfoFactory.html#IGNORE_BEANINFO_PROPERTY_NAME++[`CachedIntrospectionResults`] +{spring-framework-api}++/beans/StandardBeanInfoFactory.html#IGNORE_BEANINFO_PROPERTY_NAME++[`CachedIntrospectionResults`] for details. | `spring.expression.compiler.mode` @@ -36,7 +36,7 @@ xref:core/expressions/evaluation.adoc#expressions-compiler-configuration[Spring | Instructs Spring to ignore operating system environment variables if a Spring `Environment` property -- for example, a placeholder in a configuration String -- isn't resolvable otherwise. See -{api-spring-framework}++/core/env/AbstractEnvironment.html#IGNORE_GETENV_PROPERTY_NAME++[`AbstractEnvironment`] +{spring-framework-api}++/core/env/AbstractEnvironment.html#IGNORE_GETENV_PROPERTY_NAME++[`AbstractEnvironment`] for details. | `spring.jdbc.getParameterType.ignore` @@ -47,12 +47,12 @@ See the note in xref:data-access/jdbc/advanced.adoc#jdbc-batch-list[Batch Operat | Instructs Spring to ignore a default JNDI environment, as an optimization for scenarios where nothing is ever to be found for such JNDI fallback searches to begin with, avoiding the repeated JNDI lookup overhead. See -{api-spring-framework}++/jndi/JndiLocatorDelegate.html#IGNORE_JNDI_PROPERTY_NAME++[`JndiLocatorDelegate`] +{spring-framework-api}++/jndi/JndiLocatorDelegate.html#IGNORE_JNDI_PROPERTY_NAME++[`JndiLocatorDelegate`] for details. | `spring.objenesis.ignore` | Instructs Spring to ignore Objenesis, not even attempting to use it. See -{api-spring-framework}++/objenesis/SpringObjenesis.html#IGNORE_OBJENESIS_PROPERTY_NAME++[`SpringObjenesis`] +{spring-framework-api}++/objenesis/SpringObjenesis.html#IGNORE_OBJENESIS_PROPERTY_NAME++[`SpringObjenesis`] for details. | `spring.test.aot.processing.failOnError` diff --git a/framework-docs/modules/ROOT/pages/attributes.adoc b/framework-docs/modules/ROOT/pages/attributes.adoc index 177a6ae44107..d5eadd684f0b 100644 --- a/framework-docs/modules/ROOT/pages/attributes.adoc +++ b/framework-docs/modules/ROOT/pages/attributes.adoc @@ -1,20 +1,20 @@ // Spring Portfolio -:docs-site: https://docs.spring.io -:docs-spring-boot: {docs-site}/spring-boot/docs/current/reference -:docs-spring-gemfire: {docs-site}/spring-gemfire/docs/current/reference -:docs-spring-security: {docs-site}/spring-security/reference +// :docs-site: https://docs.spring.io +// :docs-spring-boot: {docs-site}/spring-boot/docs/current/reference +// :docs-spring-gemfire: {docs-site}/spring-gemfire/docs/current/reference +// :docs-spring-security: {docs-site}/spring-security/reference // spring-asciidoctor-backends Settings :chomp: default headers packages :fold: all // Spring Framework -:docs-spring-framework: {docs-site}/spring-framework/docs/{spring-version} -:api-spring-framework: {docs-spring-framework}/javadoc-api/org/springframework -:docs-java: {docdir}/../../main/java/org/springframework/docs -:docs-kotlin: {docdir}/../../main/kotlin/org/springframework/docs -:docs-resources: {docdir}/../../main/resources -:spring-framework-main-code: https://github.com/spring-projects/spring-framework/tree/main -// Third-party Links -:docs-graalvm: https://www.graalvm.org/22.3/reference-manual -:gh-rsocket: https://github.com/rsocket -:gh-rsocket-extensions: {gh-rsocket}/rsocket/blob/master/Extensions -:gh-rsocket-java: {gh-rsocket}/rsocket-java +// :docs-spring-framework: {docs-site}/spring-framework/docs/{spring-version} +// :api-spring-framework: {docs-spring-framework}/javadoc-api/org/springframework +// :docs-java: {docdir}/../../main/java/org/springframework/docs +// :docs-kotlin: {docdir}/../../main/kotlin/org/springframework/docs +// :docs-resources: {docdir}/../../main/resources +// :spring-framework-main-code: {spring-framework}/tree/main +// // Third-party Links +// :docs-graalvm: https://www.graalvm.org/22.3/reference-manual +// :gh-rsocket: https://github.com/rsocket +// :gh-rsocket-extensions: {gh-rsocket}/rsocket/blob/master/Extensions +// :gh-rsocket-java: {gh-rsocket}/rsocket-java diff --git a/framework-docs/modules/ROOT/pages/core/aop-api/extensibility.adoc b/framework-docs/modules/ROOT/pages/core/aop-api/extensibility.adoc index 8882dfd2da52..6d6f423a6f2e 100644 --- a/framework-docs/modules/ROOT/pages/core/aop-api/extensibility.adoc +++ b/framework-docs/modules/ROOT/pages/core/aop-api/extensibility.adoc @@ -12,5 +12,5 @@ support for new custom advice types be added without changing the core framework The only constraint on a custom `Advice` type is that it must implement the `org.aopalliance.aop.Advice` marker interface. -See the {api-spring-framework}/aop/framework/adapter/package-summary.html[`org.springframework.aop.framework.adapter`] +See the {spring-framework-api}/aop/framework/adapter/package-summary.html[`org.springframework.aop.framework.adapter`] javadoc for further information. diff --git a/framework-docs/modules/ROOT/pages/core/aop-api/targetsource.adoc b/framework-docs/modules/ROOT/pages/core/aop-api/targetsource.adoc index fdb41e7b4d18..f174ce954015 100644 --- a/framework-docs/modules/ROOT/pages/core/aop-api/targetsource.adoc +++ b/framework-docs/modules/ROOT/pages/core/aop-api/targetsource.adoc @@ -119,7 +119,7 @@ The following listing shows an example configuration: Note that the target object (`businessObjectTarget` in the preceding example) must be a prototype. This lets the `PoolingTargetSource` implementation create new instances -of the target to grow the pool as necessary. See the {api-spring-framework}/aop/target/AbstractPoolingTargetSource.html[javadoc of +of the target to grow the pool as necessary. See the {spring-framework-api}/aop/target/AbstractPoolingTargetSource.html[javadoc of `AbstractPoolingTargetSource`] and the concrete subclass you wish to use for information about its properties. `maxSize` is the most basic and is always guaranteed to be present. diff --git a/framework-docs/modules/ROOT/pages/core/aop/aspectj-programmatic.adoc b/framework-docs/modules/ROOT/pages/core/aop/aspectj-programmatic.adoc index 1a243d51c361..28664394da12 100644 --- a/framework-docs/modules/ROOT/pages/core/aop/aspectj-programmatic.adoc +++ b/framework-docs/modules/ROOT/pages/core/aop/aspectj-programmatic.adoc @@ -52,7 +52,7 @@ Kotlin:: ---- ====== -See the {api-spring-framework}/aop/aspectj/annotation/AspectJProxyFactory.html[javadoc] for more information. +See the {spring-framework-api}/aop/aspectj/annotation/AspectJProxyFactory.html[javadoc] for more information. diff --git a/framework-docs/modules/ROOT/pages/core/aop/ataspectj.adoc b/framework-docs/modules/ROOT/pages/core/aop/ataspectj.adoc index 952aca1f76c3..4380293f2f1b 100644 --- a/framework-docs/modules/ROOT/pages/core/aop/ataspectj.adoc +++ b/framework-docs/modules/ROOT/pages/core/aop/ataspectj.adoc @@ -4,7 +4,7 @@ @AspectJ refers to a style of declaring aspects as regular Java classes annotated with annotations. The @AspectJ style was introduced by the -https://www.eclipse.org/aspectj[AspectJ project] as part of the AspectJ 5 release. Spring +{aspectj-site}[AspectJ project] as part of the AspectJ 5 release. Spring interprets the same annotations as AspectJ 5, using a library supplied by AspectJ for pointcut parsing and matching. The AOP runtime is still pure Spring AOP, though, and there is no dependency on the AspectJ compiler or weaver. diff --git a/framework-docs/modules/ROOT/pages/core/aop/ataspectj/advice.adoc b/framework-docs/modules/ROOT/pages/core/aop/ataspectj/advice.adoc index 30f2bc8dc099..55c3b9146650 100644 --- a/framework-docs/modules/ROOT/pages/core/aop/ataspectj/advice.adoc +++ b/framework-docs/modules/ROOT/pages/core/aop/ataspectj/advice.adoc @@ -482,7 +482,7 @@ The `JoinPoint` interface provides a number of useful methods: * `getSignature()`: Returns a description of the method that is being advised. * `toString()`: Prints a useful description of the method being advised. -See the https://www.eclipse.org/aspectj/doc/released/runtime-api/org/aspectj/lang/JoinPoint.html[javadoc] for more detail. +See the {aspectj-api}/org/aspectj/lang/JoinPoint.html[javadoc] for more detail. [[aop-ataspectj-advice-params-passing]] === Passing Parameters to Advice @@ -730,7 +730,7 @@ of determining parameter names, an exception will be thrown. flag for `javac`. Recommended approach on Java 8+. `AspectJAdviceParameterNameDiscoverer` :: Deduces parameter names from the pointcut expression, `returning`, and `throwing` clauses. See the - {api-spring-framework}/aop/aspectj/AspectJAdviceParameterNameDiscoverer.html[javadoc] + {spring-framework-api}/aop/aspectj/AspectJAdviceParameterNameDiscoverer.html[javadoc] for details on the algorithm used. [[aop-ataspectj-advice-params-names-explicit]] diff --git a/framework-docs/modules/ROOT/pages/core/aop/ataspectj/pointcuts.adoc b/framework-docs/modules/ROOT/pages/core/aop/ataspectj/pointcuts.adoc index 34386f80393d..3b1ef29d767a 100644 --- a/framework-docs/modules/ROOT/pages/core/aop/ataspectj/pointcuts.adoc +++ b/framework-docs/modules/ROOT/pages/core/aop/ataspectj/pointcuts.adoc @@ -36,9 +36,9 @@ Kotlin:: The pointcut expression that forms the value of the `@Pointcut` annotation is a regular AspectJ pointcut expression. For a full discussion of AspectJ's pointcut language, see -the https://www.eclipse.org/aspectj/doc/released/progguide/index.html[AspectJ +the {aspectj-docs-progguide}/index.html[AspectJ Programming Guide] (and, for extensions, the -https://www.eclipse.org/aspectj/doc/released/adk15notebook/index.html[AspectJ 5 +{aspectj-docs}/adk15notebook/index.html[AspectJ 5 Developer's Notebook]) or one of the books on AspectJ (such as _Eclipse AspectJ_, by Colyer et al., or _AspectJ in Action_, by Ramnivas Laddad). @@ -392,7 +392,7 @@ method that takes no parameters, whereas `(..)` matches any number (zero or more The `({asterisk})` pattern matches a method that takes one parameter of any type. `(*,String)` matches a method that takes two parameters. The first can be of any type, while the second must be a `String`. Consult the -https://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html[Language +{aspectj-docs-progguide}/semantics-pointcuts.html[Language Semantics] section of the AspectJ Programming Guide for more information. The following examples show some common pointcut expressions: diff --git a/framework-docs/modules/ROOT/pages/core/aop/resources.adoc b/framework-docs/modules/ROOT/pages/core/aop/resources.adoc index e95cb1f99559..ab723c056921 100644 --- a/framework-docs/modules/ROOT/pages/core/aop/resources.adoc +++ b/framework-docs/modules/ROOT/pages/core/aop/resources.adoc @@ -2,7 +2,7 @@ = Further Resources :page-section-summary-toc: 1 -More information on AspectJ can be found on the https://www.eclipse.org/aspectj[AspectJ website]. +More information on AspectJ can be found on the {aspectj-site}[AspectJ website]. _Eclipse AspectJ_ by Adrian Colyer et. al. (Addison-Wesley, 2005) provides a comprehensive introduction and reference for the AspectJ language. diff --git a/framework-docs/modules/ROOT/pages/core/aop/using-aspectj.adoc b/framework-docs/modules/ROOT/pages/core/aop/using-aspectj.adoc index bdf6d01b7076..8694443677db 100644 --- a/framework-docs/modules/ROOT/pages/core/aop/using-aspectj.adoc +++ b/framework-docs/modules/ROOT/pages/core/aop/using-aspectj.adoc @@ -136,7 +136,7 @@ using Spring in accordance with the properties of the annotation". In this conte "initialization" refers to newly instantiated objects (for example, objects instantiated with the `new` operator) as well as to `Serializable` objects that are undergoing deserialization (for example, through -https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html[readResolve()]). +{java-api}/java.base/java/io/Serializable.html[readResolve()]). [NOTE] ===== @@ -168,14 +168,13 @@ Kotlin:: You can find more information about the language semantics of the various pointcut types in AspectJ -https://www.eclipse.org/aspectj/doc/next/progguide/semantics-joinPoints.html[in this -appendix] of the https://www.eclipse.org/aspectj/doc/next/progguide/index.html[AspectJ -Programming Guide]. +{aspectj-docs-progguide}/semantics-joinPoints.html[in this appendix] of the +{aspectj-docs-progguide}/index.html[AspectJ Programming Guide]. ===== For this to work, the annotated types must be woven with the AspectJ weaver. You can either use a build-time Ant or Maven task to do this (see, for example, the -https://www.eclipse.org/aspectj/doc/released/devguide/antTasks.html[AspectJ Development +{aspectj-docs-devguide}/antTasks.html[AspectJ Development Environment Guide]) or load-time weaving (see xref:core/aop/using-aspectj.adoc#aop-aj-ltw[Load-time Weaving with AspectJ in the Spring Framework]). The `AnnotationBeanConfigurerAspect` itself needs to be configured by Spring (in order to obtain a reference to the bean factory that is to be used to configure new objects). If you @@ -399,7 +398,7 @@ The focus of this section is on configuring and using LTW in the specific contex Spring Framework. This section is not a general introduction to LTW. For full details on the specifics of LTW and configuring LTW with only AspectJ (with Spring not being involved at all), see the -https://www.eclipse.org/aspectj/doc/released/devguide/ltw.html[LTW section of the AspectJ +{aspectj-docs-devguide}/ltw.html[LTW section of the AspectJ Development Environment Guide]. The value that the Spring Framework brings to AspectJ LTW is in enabling much @@ -421,7 +420,7 @@ who typically are in charge of the deployment configuration, such as the launch Now that the sales pitch is over, let us first walk through a quick example of AspectJ LTW that uses Spring, followed by detailed specifics about elements introduced in the example. For a complete example, see the -https://github.com/spring-projects/spring-petclinic[Petclinic sample application]. +{spring-github-org}/spring-petclinic[Petclinic sample application]. [[aop-aj-ltw-first-example]] @@ -621,7 +620,7 @@ java -javaagent:C:/projects/xyz/lib/spring-instrument.jar com.xyz.Main ---- The `-javaagent` is a flag for specifying and enabling -https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html[agents +{java-api}/java.instrument/java/lang/instrument/package-summary.html[agents to instrument programs that run on the JVM]. The Spring Framework ships with such an agent, the `InstrumentationSavingAgent`, which is packaged in the `spring-instrument.jar` that was supplied as the value of the `-javaagent` argument in @@ -721,7 +720,7 @@ The AspectJ LTW infrastructure is configured by using one or more `META-INF/aop. files that are on the Java classpath (either directly or, more typically, in jar files). The structure and contents of this file is detailed in the LTW part of the -https://www.eclipse.org/aspectj/doc/released/devguide/ltw-configuration.html[AspectJ reference +{aspectj-docs-devguide}/ltw-configuration.html[AspectJ reference documentation]. Because the `aop.xml` file is 100% AspectJ, we do not describe it further here. diff --git a/framework-docs/modules/ROOT/pages/core/aot.adoc b/framework-docs/modules/ROOT/pages/core/aot.adoc index 7c2a5ddd0920..cba6785e6d58 100644 --- a/framework-docs/modules/ROOT/pages/core/aot.adoc +++ b/framework-docs/modules/ROOT/pages/core/aot.adoc @@ -17,7 +17,7 @@ Applying such optimizations early implies the following restrictions: * The beans defined in your application cannot change at runtime, meaning: ** `@Profile`, in particular profile-specific configuration needs to be chosen at build time. ** `Environment` properties that impact the presence of a bean (`@Conditional`) are only considered at build time. -* Bean definitions with instance suppliers (lambdas or method references) cannot be transformed ahead-of-time (see related https://github.com/spring-projects/spring-framework/issues/29555[spring-framework#29555] issue). +* Bean definitions with instance suppliers (lambdas or method references) cannot be transformed ahead-of-time (see related {spring-framework-issues}/29555[spring-framework#29555] issue). * Make sure that the bean type is as precise as possible. TIP: See also the xref:core/aot.adoc#aot.bestpractices[] section. @@ -27,7 +27,7 @@ A Spring AOT processed application typically generates: * Java source code * Bytecode (usually for dynamic proxies) -* {api-spring-framework}/aot/hint/RuntimeHints.html[`RuntimeHints`] for the use of reflection, resource loading, serialization, and JDK proxies. +* {spring-framework-api}/aot/hint/RuntimeHints.html[`RuntimeHints`] for the use of reflection, resource loading, serialization, and JDK proxies. NOTE: At the moment, AOT is focused on allowing Spring applications to be deployed as native images using GraalVM. We intend to support more JVM-based use cases in future generations. @@ -35,7 +35,7 @@ We intend to support more JVM-based use cases in future generations. [[aot.basics]] == AOT engine overview -The entry point of the AOT engine for processing an `ApplicationContext` arrangement is `ApplicationContextAotGenerator`. It takes care of the following steps, based on a `GenericApplicationContext` that represents the application to optimize and a {api-spring-framework}/aot/generate/GenerationContext.html[`GenerationContext`]: +The entry point of the AOT engine for processing an `ApplicationContext` arrangement is `ApplicationContextAotGenerator`. It takes care of the following steps, based on a `GenericApplicationContext` that represents the application to optimize and a {spring-framework-api}/aot/generate/GenerationContext.html[`GenerationContext`]: * Refresh an `ApplicationContext` for AOT processing. Contrary to a traditional refresh, this version only creates bean definitions, not bean instances. * Invoke the available `BeanFactoryInitializationAotProcessor` implementations and apply their contributions against the `GenerationContext`. @@ -81,7 +81,7 @@ Once this part completes, the `BeanFactory` contains the bean definitions that a [[aot.bean-factory-initialization-contributions]] == Bean Factory Initialization AOT Contributions -Components that want to participate in this step can implement the {api-spring-framework}/beans/factory/aot/BeanFactoryInitializationAotProcessor.html[`BeanFactoryInitializationAotProcessor`] interface. +Components that want to participate in this step can implement the {spring-framework-api}/beans/factory/aot/BeanFactoryInitializationAotProcessor.html[`BeanFactoryInitializationAotProcessor`] interface. Each implementation can return an AOT contribution, based on the state of the bean factory. An AOT contribution is a component that contributes generated code that reproduces a particular behavior. @@ -261,7 +261,7 @@ If you are registering bean definitions programmatically, consider using `RootBe The container is able to choose the most appropriate constructor to use based on several candidates. However, this is not a best practice and flagging the preferred constructor with `@Autowired` if necessary is preferred. -In case you are working on a code base that you can't modify, you can set the {api-spring-framework}/beans/factory/support/AbstractBeanDefinition.html#PREFERRED_CONSTRUCTORS_ATTRIBUTE[`preferredConstructors` attribute] on the related bean definition to indicate which constructor should be used. +In case you are working on a code base that you can't modify, you can set the {spring-framework-api}/beans/factory/support/AbstractBeanDefinition.html#PREFERRED_CONSTRUCTORS_ATTRIBUTE[`preferredConstructors` attribute] on the related bean definition to indicate which constructor should be used. [[aot.bestpractices.factory-bean]] === FactoryBean @@ -379,7 +379,7 @@ For instance, GraalVM needs to know ahead of time if a component uses reflection Similarly, classpath resources are not shipped in a native image unless specified explicitly. Consequently, if the application needs to load a resource, it must be referenced from the corresponding GraalVM native image configuration file. -The {api-spring-framework}/aot/hint/RuntimeHints.html[`RuntimeHints`] API collects the need for reflection, resource loading, serialization, and JDK proxies at runtime. +The {spring-framework-api}/aot/hint/RuntimeHints.html[`RuntimeHints`] API collects the need for reflection, resource loading, serialization, and JDK proxies at runtime. The following example makes sure that `config/app.properties` can be loaded from the classpath at runtime within a native image: [tabs] @@ -417,7 +417,7 @@ It is also possible to register an implementation statically by adding an entry [[aot.hints.reflective]] === `@Reflective` -{api-spring-framework}/aot/hint/annotation/Reflective.html[`@Reflective`] provides an idiomatic way to flag the need for reflection on an annotated element. +{spring-framework-api}/aot/hint/annotation/Reflective.html[`@Reflective`] provides an idiomatic way to flag the need for reflection on an annotated element. For instance, `@EventListener` is meta-annotated with `@Reflective` since the underlying implementation invokes the annotated method using reflection. By default, only Spring beans are considered and an invocation hint is registered for the annotated element. @@ -431,7 +431,7 @@ If components other than Spring beans need to be processed, a `BeanFactoryInitia [[aot.hints.register-reflection-for-binding]] === `@RegisterReflectionForBinding` -{api-spring-framework}/aot/hint/annotation/RegisterReflectionForBinding.html[`@RegisterReflectionForBinding`] is a specialization of `@Reflective` that registers the need for serializing arbitrary types. +{spring-framework-api}/aot/hint/annotation/RegisterReflectionForBinding.html[`@RegisterReflectionForBinding`] is a specialization of `@Reflective` that registers the need for serializing arbitrary types. A typical use case is the use of DTOs that the container cannot infer, such as using a web client within a method body. `@RegisterReflectionForBinding` can be applied to any Spring bean at the class level, but it can also be applied directly to a method, field, or constructor to better indicate where the hints are actually required. @@ -467,7 +467,7 @@ include-code::./SpellCheckServiceTests[tag=hintspredicates] With `RuntimeHintsPredicates`, we can check for reflection, resource, serialization, or proxy generation hints. This approach works well for unit tests but implies that the runtime behavior of a component is well known. -You can learn more about the global runtime behavior of an application by running its test suite (or the app itself) with the {docs-graalvm}/native-image/metadata/AutomaticMetadataCollection/[GraalVM tracing agent]. +You can learn more about the global runtime behavior of an application by running its test suite (or the app itself) with the {graalvm-docs}/native-image/metadata/AutomaticMetadataCollection/[GraalVM tracing agent]. This agent will record all relevant calls requiring GraalVM hints at runtime and write them out as JSON configuration files. For more targeted discovery and testing, Spring Framework ships a dedicated module with core AOT testing utilities, `"org.springframework:spring-core-test"`. @@ -499,4 +499,4 @@ io.spring.runtimehintstesting.SampleReflectionRuntimeHintsTests#lambda$shouldReg There are various ways to configure this Java agent in your build, so please refer to the documentation of your build tool and test execution plugin. The agent itself can be configured to instrument specific packages (by default, only `org.springframework` is instrumented). -You'll find more details in the {spring-framework-main-code}/buildSrc/README.md[Spring Framework `buildSrc` README] file. +You'll find more details in the {spring-framework-code}/buildSrc/README.md[Spring Framework `buildSrc` README] file. diff --git a/framework-docs/modules/ROOT/pages/core/appendix/xml-custom.adoc b/framework-docs/modules/ROOT/pages/core/appendix/xml-custom.adoc index a0ccd3cb33b4..5ca36a86567b 100644 --- a/framework-docs/modules/ROOT/pages/core/appendix/xml-custom.adoc +++ b/framework-docs/modules/ROOT/pages/core/appendix/xml-custom.adoc @@ -765,7 +765,7 @@ want to add an additional attribute to the existing bean definition element. By way of another example, suppose that you define a bean definition for a service object that (unknown to it) accesses a clustered -https://jcp.org/en/jsr/detail?id=107[JCache], and you want to ensure that the +{JSR}107[JCache], and you want to ensure that the named JCache instance is eagerly started within the surrounding cluster. The following listing shows such a definition: diff --git a/framework-docs/modules/ROOT/pages/core/appendix/xsd-schemas.adoc b/framework-docs/modules/ROOT/pages/core/appendix/xsd-schemas.adoc index 38bccafbe276..0752b210d7ac 100644 --- a/framework-docs/modules/ROOT/pages/core/appendix/xsd-schemas.adoc +++ b/framework-docs/modules/ROOT/pages/core/appendix/xsd-schemas.adoc @@ -66,13 +66,13 @@ developer's intent ("`inject this constant value`"), and it reads better: [[xsd-schemas-util-frfb]] ==== Setting a Bean Property or Constructor Argument from a Field Value -{api-spring-framework}/beans/factory/config/FieldRetrievingFactoryBean.html[`FieldRetrievingFactoryBean`] +{spring-framework-api}/beans/factory/config/FieldRetrievingFactoryBean.html[`FieldRetrievingFactoryBean`] is a `FactoryBean` that retrieves a `static` or non-static field value. It is typically used for retrieving `public` `static` `final` constants, which may then be used to set a property value or constructor argument for another bean. The following example shows how a `static` field is exposed, by using the -{api-spring-framework}/beans/factory/config/FieldRetrievingFactoryBean.html#setStaticField(java.lang.String)[`staticField`] +{spring-framework-api}/beans/factory/config/FieldRetrievingFactoryBean.html#setStaticField(java.lang.String)[`staticField`] property: [source,xml,indent=0,subs="verbatim,quotes"] @@ -109,7 +109,7 @@ to be specified for the bean reference, as the following example shows: You can also access a non-static (instance) field of another bean, as described in the API documentation for the -{api-spring-framework}/beans/factory/config/FieldRetrievingFactoryBean.html[`FieldRetrievingFactoryBean`] +{spring-framework-api}/beans/factory/config/FieldRetrievingFactoryBean.html[`FieldRetrievingFactoryBean`] class. Injecting enumeration values into beans as either property or constructor arguments is diff --git a/framework-docs/modules/ROOT/pages/core/beans/annotation-config.adoc b/framework-docs/modules/ROOT/pages/core/beans/annotation-config.adoc index c369aaa71514..5646f153fefb 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/annotation-config.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/annotation-config.adoc @@ -17,7 +17,7 @@ No matter the choice, Spring can accommodate both styles and even mix them toget It is worth pointing out that through its xref:core/beans/java.adoc[JavaConfig] option, Spring lets annotations be used in a non-invasive way, without touching the target components' source code and that, in terms of tooling, all configuration styles are supported by -https://spring.io/tools[Spring Tools] for Eclipse, Visual Studio Code, and Theia. +{spring-site-tools}[Spring Tools] for Eclipse, Visual Studio Code, and Theia. **** An alternative to XML setup is provided by annotation-based configuration, which relies @@ -62,11 +62,11 @@ configuration (notice the inclusion of the `context` namespace): The `` element implicitly registers the following post-processors: -* {api-spring-framework}/context/annotation/ConfigurationClassPostProcessor.html[`ConfigurationClassPostProcessor`] -* {api-spring-framework}/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.html[`AutowiredAnnotationBeanPostProcessor`] -* {api-spring-framework}/context/annotation/CommonAnnotationBeanPostProcessor.html[`CommonAnnotationBeanPostProcessor`] -* {api-spring-framework}/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.html[`PersistenceAnnotationBeanPostProcessor`] -* {api-spring-framework}/context/event/EventListenerMethodProcessor.html[`EventListenerMethodProcessor`] +* {spring-framework-api}/context/annotation/ConfigurationClassPostProcessor.html[`ConfigurationClassPostProcessor`] +* {spring-framework-api}/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.html[`AutowiredAnnotationBeanPostProcessor`] +* {spring-framework-api}/context/annotation/CommonAnnotationBeanPostProcessor.html[`CommonAnnotationBeanPostProcessor`] +* {spring-framework-api}/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.html[`PersistenceAnnotationBeanPostProcessor`] +* {spring-framework-api}/context/event/EventListenerMethodProcessor.html[`EventListenerMethodProcessor`] [NOTE] ==== diff --git a/framework-docs/modules/ROOT/pages/core/beans/annotation-config/custom-autowire-configurer.adoc b/framework-docs/modules/ROOT/pages/core/beans/annotation-config/custom-autowire-configurer.adoc index 34d63d008483..0ca89cd0ab46 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/annotation-config/custom-autowire-configurer.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/annotation-config/custom-autowire-configurer.adoc @@ -1,7 +1,7 @@ [[beans-custom-autowire-configurer]] = Using `CustomAutowireConfigurer` -{api-spring-framework}/beans/factory/annotation/CustomAutowireConfigurer.html[`CustomAutowireConfigurer`] +{spring-framework-api}/beans/factory/annotation/CustomAutowireConfigurer.html[`CustomAutowireConfigurer`] is a `BeanFactoryPostProcessor` that lets you register your own custom qualifier annotation types, even if they are not annotated with Spring's `@Qualifier` annotation. The following example shows how to use `CustomAutowireConfigurer`: diff --git a/framework-docs/modules/ROOT/pages/core/beans/annotation-config/resource.adoc b/framework-docs/modules/ROOT/pages/core/beans/annotation-config/resource.adoc index b3457b78833b..370471e57d0e 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/annotation-config/resource.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/annotation-config/resource.adoc @@ -84,7 +84,7 @@ Kotlin:: NOTE: The name provided with the annotation is resolved as a bean name by the `ApplicationContext` of which the `CommonAnnotationBeanPostProcessor` is aware. The names can be resolved through JNDI if you configure Spring's -{api-spring-framework}/jndi/support/SimpleJndiBeanFactory.html[`SimpleJndiBeanFactory`] +{spring-framework-api}/jndi/support/SimpleJndiBeanFactory.html[`SimpleJndiBeanFactory`] explicitly. However, we recommend that you rely on the default behavior and use Spring's JNDI lookup capabilities to preserve the level of indirection. diff --git a/framework-docs/modules/ROOT/pages/core/beans/basics.adoc b/framework-docs/modules/ROOT/pages/core/beans/basics.adoc index 57e51a6f1e9f..9c579a7c926a 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/basics.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/basics.adoc @@ -12,8 +12,8 @@ between those objects. Several implementations of the `ApplicationContext` interface are supplied with Spring. In stand-alone applications, it is common to create an instance of -{api-spring-framework}/context/support/ClassPathXmlApplicationContext.html[`ClassPathXmlApplicationContext`] -or {api-spring-framework}/context/support/FileSystemXmlApplicationContext.html[`FileSystemXmlApplicationContext`]. +{spring-framework-api}/context/support/ClassPathXmlApplicationContext.html[`ClassPathXmlApplicationContext`] +or {spring-framework-api}/context/support/FileSystemXmlApplicationContext.html[`FileSystemXmlApplicationContext`]. While XML has been the traditional format for defining configuration metadata, you can instruct the container to use Java annotations or code as the metadata format by providing a small amount of XML configuration to declaratively enable support for these @@ -24,7 +24,7 @@ more instances of a Spring IoC container. For example, in a web application scen simple eight (or so) lines of boilerplate web descriptor XML in the `web.xml` file of the application typically suffices (see xref:core/beans/context-introduction.adoc#context-create[Convenient ApplicationContext Instantiation for Web Applications]). -If you use the https://spring.io/tools[Spring Tools for Eclipse] (an Eclipse-powered +If you use the {spring-site-tools}[Spring Tools for Eclipse] (an Eclipse-powered development environment), you can easily create this boilerplate configuration with a few mouse clicks or keystrokes. @@ -61,10 +61,10 @@ For information about using other forms of metadata with the Spring container, s annotation-based configuration metadata. * xref:core/beans/java.adoc[Java-based configuration]: define beans external to your application classes by using Java rather than XML files. To use these features, see the - {api-spring-framework}/context/annotation/Configuration.html[`@Configuration`], - {api-spring-framework}/context/annotation/Bean.html[`@Bean`], - {api-spring-framework}/context/annotation/Import.html[`@Import`], - and {api-spring-framework}/context/annotation/DependsOn.html[`@DependsOn`] annotations. + {spring-framework-api}/context/annotation/Configuration.html[`@Configuration`], + {spring-framework-api}/context/annotation/Bean.html[`@Bean`], + {spring-framework-api}/context/annotation/Import.html[`@Import`], + and {spring-framework-api}/context/annotation/DependsOn.html[`@DependsOn`] annotations. Spring configuration consists of at least one and typically more than one bean definition that the container must manage. XML-based configuration metadata configures these diff --git a/framework-docs/modules/ROOT/pages/core/beans/classpath-scanning.adoc b/framework-docs/modules/ROOT/pages/core/beans/classpath-scanning.adoc index c872157a60c9..85d354a82c6e 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/classpath-scanning.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/classpath-scanning.adoc @@ -191,7 +191,7 @@ Kotlin:: ====== For further details, see the -https://github.com/spring-projects/spring-framework/wiki/Spring-Annotation-Programming-Model[Spring Annotation Programming Model] +{spring-framework-wiki}/Spring-Annotation-Programming-Model[Spring Annotation Programming Model] wiki page. @@ -315,7 +315,7 @@ entries in the classpath. When you build JARs with Ant, make sure that you do no activate the files-only switch of the JAR task. Also, classpath directories may not be exposed based on security policies in some environments -- for example, standalone apps on JDK 1.7.0_45 and higher (which requires 'Trusted-Library' setup in your manifests -- see -https://stackoverflow.com/questions/19394570/java-jre-7u45-breaks-classloader-getresources). +{stackoverflow-questions}/19394570/java-jre-7u45-breaks-classloader-getresources). On JDK 9's module path (Jigsaw), Spring's classpath scanning generally works as expected. However, make sure that your component classes are exported in your `module-info` @@ -743,7 +743,7 @@ Kotlin:: If you do not want to rely on the default bean-naming strategy, you can provide a custom bean-naming strategy. First, implement the -{api-spring-framework}/beans/factory/support/BeanNameGenerator.html[`BeanNameGenerator`] +{spring-framework-api}/beans/factory/support/BeanNameGenerator.html[`BeanNameGenerator`] interface, and be sure to include a default no-arg constructor. Then, provide the fully qualified class name when configuring the scanner, as the following example annotation and bean definition show. @@ -840,7 +840,7 @@ possibly also declaring a custom scoped-proxy mode. NOTE: To provide a custom strategy for scope resolution rather than relying on the annotation-based approach, you can implement the -{api-spring-framework}/context/annotation/ScopeMetadataResolver.html[`ScopeMetadataResolver`] +{spring-framework-api}/context/annotation/ScopeMetadataResolver.html[`ScopeMetadataResolver`] interface. Be sure to include a default no-arg constructor. Then you can provide the fully qualified class name when configuring the scanner, as the following example of both an annotation and a bean definition shows: diff --git a/framework-docs/modules/ROOT/pages/core/beans/context-introduction.adoc b/framework-docs/modules/ROOT/pages/core/beans/context-introduction.adoc index 5fbc77c42b98..ac5192b0357f 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/context-introduction.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/context-introduction.adoc @@ -4,7 +4,7 @@ As discussed in the xref:web/webmvc-view/mvc-xslt.adoc#mvc-view-xslt-beandefs[chapter introduction], the `org.springframework.beans.factory` package provides basic functionality for managing and manipulating beans, including in a programmatic way. The `org.springframework.context` package adds the -{api-spring-framework}/context/ApplicationContext.html[`ApplicationContext`] +{spring-framework-api}/context/ApplicationContext.html[`ApplicationContext`] interface, which extends the `BeanFactory` interface, in addition to extending other interfaces to provide additional functionality in a more application framework-oriented style. Many people use the `ApplicationContext` in a completely @@ -269,7 +269,7 @@ file format but is more flexible than the standard JDK based `ResourceBundleMessageSource` implementation. In particular, it allows for reading files from any Spring resource location (not only from the classpath) and supports hot reloading of bundle property files (while efficiently caching them in between). -See the {api-spring-framework}/context/support/ReloadableResourceBundleMessageSource.html[`ReloadableResourceBundleMessageSource`] +See the {spring-framework-api}/context/support/ReloadableResourceBundleMessageSource.html[`ReloadableResourceBundleMessageSource`] javadoc for details. @@ -485,8 +485,8 @@ This means that the `publishEvent()` method blocks until all listeners have fini One advantage of this synchronous and single-threaded approach is that, when a listener receives an event, it operates inside the transaction context of the publisher if a transaction context is available. If another strategy for event publication becomes necessary, e.g. asynchronous event processing by default, -see the javadoc for Spring's {api-spring-framework}/context/event/ApplicationEventMulticaster.html[`ApplicationEventMulticaster`] interface -and {api-spring-framework}/context/event/SimpleApplicationEventMulticaster.html[`SimpleApplicationEventMulticaster`] implementation +see the javadoc for Spring's {spring-framework-api}/context/event/ApplicationEventMulticaster.html[`ApplicationEventMulticaster`] interface +and {spring-framework-api}/context/event/SimpleApplicationEventMulticaster.html[`SimpleApplicationEventMulticaster`] implementation for configuration options which can be applied to a custom "applicationEventMulticaster" bean definition. In these cases, ThreadLocals and logging context are not propagated for the event processing. See xref:integration/observability.adoc#observability.application-events[the `@EventListener` Observability section] @@ -529,7 +529,7 @@ notify appropriate parties. NOTE: Spring's eventing mechanism is designed for simple communication between Spring beans within the same application context. However, for more sophisticated enterprise integration needs, the separately maintained -https://projects.spring.io/spring-integration/[Spring Integration] project provides +{spring-site-projects}/spring-integration/[Spring Integration] project provides complete support for building lightweight, https://www.enterpriseintegrationpatterns.com[pattern-oriented], event-driven architectures that build upon the well-known Spring programming model. @@ -742,11 +742,11 @@ Be aware of the following limitations when using asynchronous events: * If an asynchronous event listener throws an `Exception`, it is not propagated to the caller. See - {api-spring-framework}/aop/interceptor/AsyncUncaughtExceptionHandler.html[`AsyncUncaughtExceptionHandler`] + {spring-framework-api}/aop/interceptor/AsyncUncaughtExceptionHandler.html[`AsyncUncaughtExceptionHandler`] for more details. * Asynchronous event listener methods cannot publish a subsequent event by returning a value. If you need to publish another event as the result of the processing, inject an - {api-spring-framework}/context/ApplicationEventPublisher.html[`ApplicationEventPublisher`] + {spring-framework-api}/context/ApplicationEventPublisher.html[`ApplicationEventPublisher`] to publish the event manually. * ThreadLocals and logging context are not propagated by default for the event processing. See xref:integration/observability.adoc#observability.application-events[the `@EventListener` Observability section] @@ -1040,7 +1040,7 @@ and JMX support facilities. Application components can also interact with the ap server's JCA `WorkManager` through Spring's `TaskExecutor` abstraction. See the javadoc of the -{api-spring-framework}/jca/context/SpringContextResourceAdapter.html[`SpringContextResourceAdapter`] +{spring-framework-api}/jca/context/SpringContextResourceAdapter.html[`SpringContextResourceAdapter`] class for the configuration details involved in RAR deployment. For a simple deployment of a Spring ApplicationContext as a Jakarta EE RAR file: @@ -1050,7 +1050,7 @@ all application classes into a RAR file (which is a standard JAR file with a dif file extension). . Add all required library JARs into the root of the RAR archive. . Add a -`META-INF/ra.xml` deployment descriptor (as shown in the {api-spring-framework}/jca/context/SpringContextResourceAdapter.html[javadoc for `SpringContextResourceAdapter`]) +`META-INF/ra.xml` deployment descriptor (as shown in the {spring-framework-api}/jca/context/SpringContextResourceAdapter.html[javadoc for `SpringContextResourceAdapter`]) and the corresponding Spring XML bean definition file(s) (typically `META-INF/applicationContext.xml`). . Drop the resulting RAR file into your diff --git a/framework-docs/modules/ROOT/pages/core/beans/context-load-time-weaver.adoc b/framework-docs/modules/ROOT/pages/core/beans/context-load-time-weaver.adoc index 73579b414ded..25943592c078 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/context-load-time-weaver.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/context-load-time-weaver.adoc @@ -44,7 +44,7 @@ weaver instance. This is particularly useful in combination with xref:data-access/orm/jpa.adoc[Spring's JPA support] where load-time weaving may be necessary for JPA class transformation. Consult the -{api-spring-framework}/orm/jpa/LocalContainerEntityManagerFactoryBean.html[`LocalContainerEntityManagerFactoryBean`] +{spring-framework-api}/orm/jpa/LocalContainerEntityManagerFactoryBean.html[`LocalContainerEntityManagerFactoryBean`] javadoc for more detail. For more on AspectJ load-time weaving, see xref:core/aop/using-aspectj.adoc#aop-aj-ltw[Load-time Weaving with AspectJ in the Spring Framework]. diff --git a/framework-docs/modules/ROOT/pages/core/beans/dependencies/factory-method-injection.adoc b/framework-docs/modules/ROOT/pages/core/beans/dependencies/factory-method-injection.adoc index 108202c40ac7..21b1f4a1f25e 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/dependencies/factory-method-injection.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/dependencies/factory-method-injection.adoc @@ -99,7 +99,7 @@ container, lets you handle this use case cleanly. **** You can read more about the motivation for Method Injection in -https://spring.io/blog/2004/08/06/method-injection/[this blog entry]. +{spring-site-blog}/2004/08/06/method-injection/[this blog entry]. **** diff --git a/framework-docs/modules/ROOT/pages/core/beans/dependencies/factory-properties-detailed.adoc b/framework-docs/modules/ROOT/pages/core/beans/dependencies/factory-properties-detailed.adoc index ae7874fa329f..a31499d5e267 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/dependencies/factory-properties-detailed.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/dependencies/factory-properties-detailed.adoc @@ -51,7 +51,7 @@ XML configuration: The preceding XML is more succinct. However, typos are discovered at runtime rather than design time, unless you use an IDE (such as https://www.jetbrains.com/idea/[IntelliJ -IDEA] or the https://spring.io/tools[Spring Tools for Eclipse]) +IDEA] or the {spring-site-tools}[Spring Tools for Eclipse]) that supports automatic property completion when you create bean definitions. Such IDE assistance is highly recommended. diff --git a/framework-docs/modules/ROOT/pages/core/beans/environment.adoc b/framework-docs/modules/ROOT/pages/core/beans/environment.adoc index 571688d20c51..0e236078d4f1 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/environment.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/environment.adoc @@ -1,7 +1,7 @@ [[beans-environment]] = Environment Abstraction -The {api-spring-framework}/core/env/Environment.html[`Environment`] interface +The {spring-framework-api}/core/env/Environment.html[`Environment`] interface is an abstraction integrated in the container that models two key aspects of the application environment: xref:core/beans/environment.adoc#beans-definition-profiles[profiles] and xref:core/beans/environment.adoc#beans-property-source-abstraction[properties]. @@ -118,7 +118,7 @@ situation B. We start by updating our configuration to reflect this need. [[beans-definition-profiles-java]] === Using `@Profile` -The {api-spring-framework}/context/annotation/Profile.html[`@Profile`] +The {spring-framework-api}/context/annotation/Profile.html[`@Profile`] annotation lets you indicate that a component is eligible for registration when one or more specified profiles are active. Using our preceding example, we can rewrite the `dataSource` configuration as follows: @@ -599,17 +599,17 @@ Kotlin:: In the preceding snippet, we see a high-level way of asking Spring whether the `my-property` property is defined for the current environment. To answer this question, the `Environment` object performs -a search over a set of {api-spring-framework}/core/env/PropertySource.html[`PropertySource`] +a search over a set of {spring-framework-api}/core/env/PropertySource.html[`PropertySource`] objects. A `PropertySource` is a simple abstraction over any source of key-value pairs, and -Spring's {api-spring-framework}/core/env/StandardEnvironment.html[`StandardEnvironment`] +Spring's {spring-framework-api}/core/env/StandardEnvironment.html[`StandardEnvironment`] is configured with two PropertySource objects -- one representing the set of JVM system properties (`System.getProperties()`) and one representing the set of system environment variables (`System.getenv()`). NOTE: These default property sources are present for `StandardEnvironment`, for use in standalone -applications. {api-spring-framework}/web/context/support/StandardServletEnvironment.html[`StandardServletEnvironment`] +applications. {spring-framework-api}/web/context/support/StandardServletEnvironment.html[`StandardServletEnvironment`] is populated with additional default property sources including servlet config, servlet -context parameters, and a {api-spring-framework}/jndi/JndiPropertySource.html[`JndiPropertySource`] +context parameters, and a {spring-framework-api}/jndi/JndiPropertySource.html[`JndiPropertySource`] if JNDI is available. Concretely, when you use the `StandardEnvironment`, the call to `env.containsProperty("my-property")` @@ -663,7 +663,7 @@ Kotlin:: In the preceding code, `MyPropertySource` has been added with highest precedence in the search. If it contains a `my-property` property, the property is detected and returned, in favor of any `my-property` property in any other `PropertySource`. The -{api-spring-framework}/core/env/MutablePropertySources.html[`MutablePropertySources`] +{spring-framework-api}/core/env/MutablePropertySources.html[`MutablePropertySources`] API exposes a number of methods that allow for precise manipulation of the set of property sources. @@ -672,7 +672,7 @@ property sources. [[beans-using-propertysource]] == Using `@PropertySource` -The {api-spring-framework}/context/annotation/PropertySource.html[`@PropertySource`] +The {spring-framework-api}/context/annotation/PropertySource.html[`@PropertySource`] annotation provides a convenient and declarative mechanism for adding a `PropertySource` to Spring's `Environment`. diff --git a/framework-docs/modules/ROOT/pages/core/beans/factory-extension.adoc b/framework-docs/modules/ROOT/pages/core/beans/factory-extension.adoc index a82606dc0e9b..86d3a9911157 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/factory-extension.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/factory-extension.adoc @@ -22,8 +22,8 @@ in which these `BeanPostProcessor` instances run by setting the `order` property You can set this property only if the `BeanPostProcessor` implements the `Ordered` interface. If you write your own `BeanPostProcessor`, you should consider implementing the `Ordered` interface, too. For further details, see the javadoc of the -{api-spring-framework}/beans/factory/config/BeanPostProcessor.html[`BeanPostProcessor`] -and {api-spring-framework}/core/Ordered.html[`Ordered`] interfaces. See also the note on +{spring-framework-api}/beans/factory/config/BeanPostProcessor.html[`BeanPostProcessor`] +and {spring-framework-api}/core/Ordered.html[`Ordered`] interfaces. See also the note on xref:core/beans/factory-extension.adoc#beans-factory-programmatically-registering-beanpostprocessors[programmatic registration of `BeanPostProcessor` instances]. [NOTE] @@ -272,8 +272,8 @@ which these `BeanFactoryPostProcessor` instances run by setting the `order` prop However, you can only set this property if the `BeanFactoryPostProcessor` implements the `Ordered` interface. If you write your own `BeanFactoryPostProcessor`, you should consider implementing the `Ordered` interface, too. See the javadoc of the -{api-spring-framework}/beans/factory/config/BeanFactoryPostProcessor.html[`BeanFactoryPostProcessor`] -and {api-spring-framework}/core/Ordered.html[`Ordered`] interfaces for more details. +{spring-framework-api}/beans/factory/config/BeanFactoryPostProcessor.html[`BeanFactoryPostProcessor`] +and {spring-framework-api}/core/Ordered.html[`Ordered`] interfaces for more details. [NOTE] ==== diff --git a/framework-docs/modules/ROOT/pages/core/beans/factory-scopes.adoc b/framework-docs/modules/ROOT/pages/core/beans/factory-scopes.adoc index 8243d755d1e1..8d8e3d0ceab3 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/factory-scopes.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/factory-scopes.adoc @@ -51,7 +51,7 @@ The following table describes the supported scopes: NOTE: A thread scope is available but is not registered by default. For more information, see the documentation for -{api-spring-framework}/context/support/SimpleThreadScope.html[`SimpleThreadScope`]. +{spring-framework-api}/context/support/SimpleThreadScope.html[`SimpleThreadScope`]. For instructions on how to register this or any other custom scope, see xref:core/beans/factory-scopes.adoc#beans-factory-scopes-custom-using[Using a Custom Scope]. @@ -559,7 +559,7 @@ To integrate your custom scopes into the Spring container, you need to implement `org.springframework.beans.factory.config.Scope` interface, which is described in this section. For an idea of how to implement your own scopes, see the `Scope` implementations that are supplied with the Spring Framework itself and the -{api-spring-framework}/beans/factory/config/Scope.html[`Scope`] javadoc, +{spring-framework-api}/beans/factory/config/Scope.html[`Scope`] javadoc, which explains the methods you need to implement in more detail. The `Scope` interface has four methods to get objects from the scope, remove them from @@ -629,7 +629,7 @@ Kotlin:: ---- ====== -See the {api-spring-framework}/beans/factory/config/Scope.html#registerDestructionCallback[javadoc] +See the {spring-framework-api}/beans/factory/config/Scope.html#registerDestructionCallback[javadoc] or a Spring scope implementation for more information on destruction callbacks. The following method obtains the conversation identifier for the underlying scope: diff --git a/framework-docs/modules/ROOT/pages/core/beans/introduction.adoc b/framework-docs/modules/ROOT/pages/core/beans/introduction.adoc index 84fce22f428d..755192d355c4 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/introduction.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/introduction.adoc @@ -13,10 +13,10 @@ construction of classes or a mechanism such as the Service Locator pattern. The `org.springframework.beans` and `org.springframework.context` packages are the basis for Spring Framework's IoC container. The -{api-spring-framework}/beans/factory/BeanFactory.html[`BeanFactory`] +{spring-framework-api}/beans/factory/BeanFactory.html[`BeanFactory`] interface provides an advanced configuration mechanism capable of managing any type of object. -{api-spring-framework}/context/ApplicationContext.html[`ApplicationContext`] +{spring-framework-api}/context/ApplicationContext.html[`ApplicationContext`] is a sub-interface of `BeanFactory`. It adds: * Easier integration with Spring's AOP features diff --git a/framework-docs/modules/ROOT/pages/core/beans/java/bean-annotation.adoc b/framework-docs/modules/ROOT/pages/core/beans/java/bean-annotation.adoc index dd35cefa9d33..4e089707ac84 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/java/bean-annotation.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/java/bean-annotation.adoc @@ -552,7 +552,7 @@ Sometimes, it is helpful to provide a more detailed textual description of a bea be particularly useful when beans are exposed (perhaps through JMX) for monitoring purposes. To add a description to a `@Bean`, you can use the -{api-spring-framework}/context/annotation/Description.html[`@Description`] +{spring-framework-api}/context/annotation/Description.html[`@Description`] annotation, as the following example shows: [tabs] diff --git a/framework-docs/modules/ROOT/pages/core/beans/java/composing-configuration-classes.adoc b/framework-docs/modules/ROOT/pages/core/beans/java/composing-configuration-classes.adoc index 638c8736b34f..11bdc1e25a87 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/java/composing-configuration-classes.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/java/composing-configuration-classes.adoc @@ -225,7 +225,7 @@ Also, be particularly careful with `BeanPostProcessor` and `BeanFactoryPostProce through `@Bean`. Those should usually be declared as `static @Bean` methods, not triggering the instantiation of their containing configuration class. Otherwise, `@Autowired` and `@Value` may not work on the configuration class itself, since it is possible to create it as a bean instance earlier than -{api-spring-framework}/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.html[`AutowiredAnnotationBeanPostProcessor`]. +{spring-framework-api}/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.html[`AutowiredAnnotationBeanPostProcessor`]. ==== The following example shows how one bean can be autowired to another bean: @@ -338,7 +338,7 @@ modularity, but determining exactly where the autowired bean definitions are dec still somewhat ambiguous. For example, as a developer looking at `ServiceConfig`, how do you know exactly where the `@Autowired AccountRepository` bean is declared? It is not explicit in the code, and this may be just fine. Remember that the -https://spring.io/tools[Spring Tools for Eclipse] provides tooling that +{spring-site-tools}[Spring Tools for Eclipse] provides tooling that can render graphs showing how everything is wired, which may be all you need. Also, your Java IDE can easily find all declarations and uses of the `AccountRepository` type and quickly show you the location of `@Bean` methods that return that type. @@ -519,7 +519,7 @@ profile has been enabled in the Spring `Environment` (see xref:core/beans/enviro for details). The `@Profile` annotation is actually implemented by using a much more flexible annotation -called {api-spring-framework}/context/annotation/Conditional.html[`@Conditional`]. +called {spring-framework-api}/context/annotation/Conditional.html[`@Conditional`]. The `@Conditional` annotation indicates specific `org.springframework.context.annotation.Condition` implementations that should be consulted before a `@Bean` is registered. @@ -570,7 +570,7 @@ Kotlin:: ---- ====== -See the {api-spring-framework}/context/annotation/Conditional.html[`@Conditional`] +See the {spring-framework-api}/context/annotation/Conditional.html[`@Conditional`] javadoc for more detail. diff --git a/framework-docs/modules/ROOT/pages/core/beans/java/instantiating-container.adoc b/framework-docs/modules/ROOT/pages/core/beans/java/instantiating-container.adoc index 3a1d9b9176cc..137bfe28398b 100644 --- a/framework-docs/modules/ROOT/pages/core/beans/java/instantiating-container.adoc +++ b/framework-docs/modules/ROOT/pages/core/beans/java/instantiating-container.adoc @@ -278,7 +278,7 @@ init-param): NOTE: For programmatic use cases, a `GenericWebApplicationContext` can be used as an alternative to `AnnotationConfigWebApplicationContext`. See the -{api-spring-framework}/web/context/support/GenericWebApplicationContext.html[`GenericWebApplicationContext`] +{spring-framework-api}/web/context/support/GenericWebApplicationContext.html[`GenericWebApplicationContext`] javadoc for details. diff --git a/framework-docs/modules/ROOT/pages/core/databuffer-codec.adoc b/framework-docs/modules/ROOT/pages/core/databuffer-codec.adoc index a66ade956c27..afa9a50dc96a 100644 --- a/framework-docs/modules/ROOT/pages/core/databuffer-codec.adoc +++ b/framework-docs/modules/ROOT/pages/core/databuffer-codec.adoc @@ -56,7 +56,7 @@ alternate between read and write. == `PooledDataBuffer` As explained in the Javadoc for -https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html[ByteBuffer], +{java-api}/java.base/java/nio/ByteBuffer.html[ByteBuffer], byte buffers can be direct or non-direct. Direct buffers may reside outside the Java heap which eliminates the need for copying for native I/O operations. That makes direct buffers particularly useful for receiving and sending data over a socket, but they're also more diff --git a/framework-docs/modules/ROOT/pages/core/expressions.adoc b/framework-docs/modules/ROOT/pages/core/expressions.adoc index 9b02cc49a82b..13aaedd89be8 100644 --- a/framework-docs/modules/ROOT/pages/core/expressions.adoc +++ b/framework-docs/modules/ROOT/pages/core/expressions.adoc @@ -11,7 +11,7 @@ EL, to name a few -- the Spring Expression Language was created to provide the S community with a single well supported expression language that can be used across all the products in the Spring portfolio. Its language features are driven by the requirements of the projects in the Spring portfolio, including tooling requirements -for code completion support within the https://spring.io/tools[Spring Tools for Eclipse]. +for code completion support within the {spring-site-tools}[Spring Tools for Eclipse]. That said, SpEL is based on a technology-agnostic API that lets other expression language implementations be integrated, should the need arise. diff --git a/framework-docs/modules/ROOT/pages/core/null-safety.adoc b/framework-docs/modules/ROOT/pages/core/null-safety.adoc index e43ad7d0f41b..8e2fe8ed42be 100644 --- a/framework-docs/modules/ROOT/pages/core/null-safety.adoc +++ b/framework-docs/modules/ROOT/pages/core/null-safety.adoc @@ -5,14 +5,14 @@ Although Java does not let you express null-safety with its type system, the Spr provides the following annotations in the `org.springframework.lang` package to let you declare nullability of APIs and fields: -* {api-spring-framework}/lang/Nullable.html[`@Nullable`]: Annotation to indicate that a +* {spring-framework-api}/lang/Nullable.html[`@Nullable`]: Annotation to indicate that a specific parameter, return value, or field can be `null`. -* {api-spring-framework}/lang/NonNull.html[`@NonNull`]: Annotation to indicate that a specific +* {spring-framework-api}/lang/NonNull.html[`@NonNull`]: Annotation to indicate that a specific parameter, return value, or field cannot be `null` (not needed on parameters, return values, and fields where `@NonNullApi` and `@NonNullFields` apply, respectively). -* {api-spring-framework}/lang/NonNullApi.html[`@NonNullApi`]: Annotation at the package level +* {spring-framework-api}/lang/NonNullApi.html[`@NonNullApi`]: Annotation at the package level that declares non-null as the default semantics for parameters and return values. -* {api-spring-framework}/lang/NonNullFields.html[`@NonNullFields`]: Annotation at the package +* {spring-framework-api}/lang/NonNullFields.html[`@NonNullFields`]: Annotation at the package level that declares non-null as the default semantics for fields. The Spring Framework itself leverages these annotations, but they can also be used in any @@ -37,7 +37,7 @@ these annotations can be used by an IDE (such as IDEA or Eclipse) to provide use warnings related to null-safety in order to avoid `NullPointerException` at runtime. They are also used to make Spring APIs null-safe in Kotlin projects, since Kotlin natively -supports https://kotlinlang.org/docs/null-safety.html[null-safety]. More details +supports {kotlin-docs}/null-safety.html[null-safety]. More details are available in the xref:languages/kotlin/null-safety.adoc[Kotlin support documentation]. @@ -46,7 +46,7 @@ are available in the xref:languages/kotlin/null-safety.adoc[Kotlin support docum [[jsr-305-meta-annotations]] == JSR-305 meta-annotations -Spring annotations are meta-annotated with https://jcp.org/en/jsr/detail?id=305[JSR 305] +Spring annotations are meta-annotated with {JSR}305[JSR 305] annotations (a dormant but widespread JSR). JSR-305 meta-annotations let tooling vendors like IDEA or Kotlin provide null-safety support in a generic way, without having to hard-code support for Spring annotations. diff --git a/framework-docs/modules/ROOT/pages/core/resources.adoc b/framework-docs/modules/ROOT/pages/core/resources.adoc index 3bfc74aeb33f..5fd279ab5c66 100644 --- a/framework-docs/modules/ROOT/pages/core/resources.adoc +++ b/framework-docs/modules/ROOT/pages/core/resources.adoc @@ -37,7 +37,7 @@ such as a method to check for the existence of the resource being pointed to. Spring's `Resource` interface located in the `org.springframework.core.io.` package is meant to be a more capable interface for abstracting access to low-level resources. The following listing provides an overview of the `Resource` interface. See the -{api-spring-framework}/core/io/Resource.html[`Resource`] javadoc for further details. +{spring-framework-api}/core/io/Resource.html[`Resource`] javadoc for further details. [source,java,indent=0,subs="verbatim,quotes"] @@ -104,7 +104,7 @@ resource (if the underlying implementation is compatible and supports that functionality). Some implementations of the `Resource` interface also implement the extended -{api-spring-framework}/core/io/WritableResource.html[`WritableResource`] interface +{spring-framework-api}/core/io/WritableResource.html[`WritableResource`] interface for a resource that supports writing to it. Spring itself uses the `Resource` abstraction extensively, as an argument type in @@ -143,7 +143,7 @@ Spring includes several built-in `Resource` implementations: For a complete list of `Resource` implementations available in Spring, consult the "All Known Implementing Classes" section of the -{api-spring-framework}/core/io/Resource.html[`Resource`] javadoc. +{spring-framework-api}/core/io/Resource.html[`Resource`] javadoc. @@ -763,7 +763,7 @@ Kotlin:: ---- ====== -See the {api-spring-framework}/context/support/ClassPathXmlApplicationContext.html[`ClassPathXmlApplicationContext`] +See the {spring-framework-api}/context/support/ClassPathXmlApplicationContext.html[`ClassPathXmlApplicationContext`] javadoc for details on the various constructors. @@ -903,7 +903,7 @@ entries in the classpath. When you build JARs with Ant, do not activate the `fil switch of the JAR task. Also, classpath directories may not get exposed based on security policies in some environments -- for example, stand-alone applications on JDK 1.7.0_45 and higher (which requires 'Trusted-Library' to be set up in your manifests. See -https://stackoverflow.com/questions/19394570/java-jre-7u45-breaks-classloader-getresources). +{stackoverflow-questions}/19394570/java-jre-7u45-breaks-classloader-getresources). On JDK 9's module path (Jigsaw), Spring's classpath scanning generally works as expected. Putting resources into a dedicated directory is highly recommendable here as well, diff --git a/framework-docs/modules/ROOT/pages/core/spring-jcl.adoc b/framework-docs/modules/ROOT/pages/core/spring-jcl.adoc index 768af0c34345..67e9d1d31756 100644 --- a/framework-docs/modules/ROOT/pages/core/spring-jcl.adoc +++ b/framework-docs/modules/ROOT/pages/core/spring-jcl.adoc @@ -9,7 +9,7 @@ known as _JUL_ or `java.util.logging`) if neither Log4j 2.x nor SLF4J is availab Put Log4j 2.x or Logback (or another SLF4J provider) in your classpath, without any extra bridges, and let the framework auto-adapt to your choice. For further information see the -https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-logging[Spring +{spring-boot-docs}/features.html#features.logging[Spring Boot Logging Reference Documentation]. [NOTE] diff --git a/framework-docs/modules/ROOT/pages/core/validation/beans-beans.adoc b/framework-docs/modules/ROOT/pages/core/validation/beans-beans.adoc index bc69769349c3..a68dbf43f8ac 100644 --- a/framework-docs/modules/ROOT/pages/core/validation/beans-beans.adoc +++ b/framework-docs/modules/ROOT/pages/core/validation/beans-beans.adoc @@ -51,7 +51,7 @@ A JavaBean is a class with a default no-argument constructor and that follows a naming convention where (for example) a property named `bingoMadness` would have a setter method `setBingoMadness(..)` and a getter method `getBingoMadness()`. For more information about JavaBeans and the specification, see -https://docs.oracle.com/javase/8/docs/api/java/beans/package-summary.html[javabeans]. +{java-api}/java.desktop/java/beans/package-summary.html[javabeans]. One quite important class in the beans package is the `BeanWrapper` interface and its corresponding implementation (`BeanWrapperImpl`). As quoted from the javadoc, the @@ -249,7 +249,7 @@ behavior can be achieved by registering custom editors of type `java.beans.PropertyEditor`. Registering custom editors on a `BeanWrapper` or, alternatively, in a specific IoC container (as mentioned in the previous chapter), gives it the knowledge of how to convert properties to the desired type. For more about -`PropertyEditor`, see https://docs.oracle.com/javase/8/docs/api/java/beans/package-summary.html[the javadoc of the `java.beans` package from Oracle]. +`PropertyEditor`, see {java-api}/java.desktop/java/beans/package-summary.html[the javadoc of the `java.beans` package from Oracle]. A couple of examples where property editing is used in Spring: @@ -355,7 +355,7 @@ com Note that you can also use the standard `BeanInfo` JavaBeans mechanism here as well (described to some extent -https://docs.oracle.com/javase/tutorial/javabeans/advanced/customization.html[here]). The +{java-tutorial}/javabeans/advanced/customization.html[here]). The following example uses the `BeanInfo` mechanism to explicitly register one or more `PropertyEditor` instances with the properties of an associated class: diff --git a/framework-docs/modules/ROOT/pages/core/validation/beanvalidation.adoc b/framework-docs/modules/ROOT/pages/core/validation/beanvalidation.adoc index ef6bbb8630e8..387bf83192a6 100644 --- a/framework-docs/modules/ROOT/pages/core/validation/beanvalidation.adoc +++ b/framework-docs/modules/ROOT/pages/core/validation/beanvalidation.adoc @@ -2,7 +2,7 @@ = Java Bean Validation The Spring Framework provides support for the -https://beanvalidation.org/[Java Bean Validation] API. +{bean-validation-site}[Java Bean Validation] API. @@ -72,7 +72,7 @@ Kotlin:: ====== A Bean Validation validator then validates instances of this class based on the declared -constraints. See https://beanvalidation.org/[Bean Validation] for general information about +constraints. See {bean-validation-site}[Bean Validation] for general information about the API. See the https://hibernate.org/validator/[Hibernate Validator] documentation for specific constraints. To learn how to set up a bean validation provider as a Spring bean, keep reading. @@ -317,7 +317,7 @@ XML:: To be eligible for Spring-driven method validation, target classes need to be annotated with Spring's `@Validated` annotation, which can optionally also declare the validation groups to use. See -{api-spring-framework}/validation/beanvalidation/MethodValidationPostProcessor.html[`MethodValidationPostProcessor`] +{spring-framework-api}/validation/beanvalidation/MethodValidationPostProcessor.html[`MethodValidationPostProcessor`] for setup details with the Hibernate Validator and Bean Validation providers. [TIP] @@ -472,7 +472,7 @@ Max.degrees=You cannot provide more than {1} {0} The default `LocalValidatorFactoryBean` configuration suffices for most cases. There are a number of configuration options for various Bean Validation constructs, from message interpolation to traversal resolution. See the -{api-spring-framework}/validation/beanvalidation/LocalValidatorFactoryBean.html[`LocalValidatorFactoryBean`] +{spring-framework-api}/validation/beanvalidation/LocalValidatorFactoryBean.html[`LocalValidatorFactoryBean`] javadoc for more information on these options. diff --git a/framework-docs/modules/ROOT/pages/core/validation/conversion.adoc b/framework-docs/modules/ROOT/pages/core/validation/conversion.adoc index 49deddde0c33..37c62169572f 100644 --- a/framework-docs/modules/ROOT/pages/core/validation/conversion.adoc +++ b/framework-docs/modules/ROOT/pages/core/validation/conversion.adoc @@ -19,8 +19,8 @@ of the field). This is done as a convenience to aid developers when targeting er More information on the `MessageCodesResolver` and the default strategy can be found in the javadoc of -{api-spring-framework}/validation/MessageCodesResolver.html[`MessageCodesResolver`] and -{api-spring-framework}/validation/DefaultMessageCodesResolver.html[`DefaultMessageCodesResolver`], +{spring-framework-api}/validation/MessageCodesResolver.html[`MessageCodesResolver`] and +{spring-framework-api}/validation/DefaultMessageCodesResolver.html[`DefaultMessageCodesResolver`], respectively. diff --git a/framework-docs/modules/ROOT/pages/core/validation/format.adoc b/framework-docs/modules/ROOT/pages/core/validation/format.adoc index 920e2a44d970..4ac313d3f298 100644 --- a/framework-docs/modules/ROOT/pages/core/validation/format.adoc +++ b/framework-docs/modules/ROOT/pages/core/validation/format.adoc @@ -139,7 +139,7 @@ Kotlin:: ====== The Spring team welcomes community-driven `Formatter` contributions. See -https://github.com/spring-projects/spring-framework/issues[GitHub Issues] to contribute. +{spring-framework-issues}[GitHub Issues] to contribute. diff --git a/framework-docs/modules/ROOT/pages/core/validation/validator.adoc b/framework-docs/modules/ROOT/pages/core/validation/validator.adoc index 8e3b060b54f1..17fa6402d3ba 100644 --- a/framework-docs/modules/ROOT/pages/core/validation/validator.adoc +++ b/framework-docs/modules/ROOT/pages/core/validation/validator.adoc @@ -96,7 +96,7 @@ Kotlin:: The `static` `rejectIfEmpty(..)` method on the `ValidationUtils` class is used to reject the `name` property if it is `null` or the empty string. Have a look at the -{api-spring-framework}/validation/ValidationUtils.html[`ValidationUtils`] javadoc +{spring-framework-api}/validation/ValidationUtils.html[`ValidationUtils`] javadoc to see what functionality it provides besides the example shown previously. While it is certainly possible to implement a single `Validator` class to validate each @@ -193,7 +193,7 @@ Kotlin:: Validation errors are reported to the `Errors` object passed to the validator. In the case of Spring Web MVC, you can use the `` tag to inspect the error messages, but you can also inspect the `Errors` object yourself. More information about the -methods it offers can be found in the {api-spring-framework}/validation/Errors.html[javadoc]. +methods it offers can be found in the {spring-framework-api}/validation/Errors.html[javadoc]. Validators may also get locally invoked for the immediate validation of a given object, not involving a binding process. As of 6.1, this has been simplified through a new diff --git a/framework-docs/modules/ROOT/pages/data-access/jdbc/connections.adoc b/framework-docs/modules/ROOT/pages/data-access/jdbc/connections.adoc index 7ebb4a44a68f..54d0c1243f61 100644 --- a/framework-docs/modules/ROOT/pages/data-access/jdbc/connections.adoc +++ b/framework-docs/modules/ROOT/pages/data-access/jdbc/connections.adoc @@ -199,7 +199,7 @@ participating in Spring managed transactions. It is generally preferable to writ own new code by using the higher level abstractions for resource management, such as `JdbcTemplate` or `DataSourceUtils`. -See the {api-spring-framework}/jdbc/datasource/TransactionAwareDataSourceProxy.html[`TransactionAwareDataSourceProxy`] +See the {spring-framework-api}/jdbc/datasource/TransactionAwareDataSourceProxy.html[`TransactionAwareDataSourceProxy`] javadoc for more details. diff --git a/framework-docs/modules/ROOT/pages/data-access/jdbc/core.adoc b/framework-docs/modules/ROOT/pages/data-access/jdbc/core.adoc index 60b6eea8fb96..a427ecc5fe93 100644 --- a/framework-docs/modules/ROOT/pages/data-access/jdbc/core.adoc +++ b/framework-docs/modules/ROOT/pages/data-access/jdbc/core.adoc @@ -51,7 +51,7 @@ corresponding to the fully qualified class name of the template instance (typica The following sections provide some examples of `JdbcTemplate` usage. These examples are not an exhaustive list of all of the functionality exposed by the `JdbcTemplate`. -See the attendant {api-spring-framework}/jdbc/core/JdbcTemplate.html[javadoc] for that. +See the attendant {spring-framework-api}/jdbc/core/JdbcTemplate.html[javadoc] for that. [[jdbc-JdbcTemplate-examples-query]] === Querying (`SELECT`) diff --git a/framework-docs/modules/ROOT/pages/data-access/jdbc/embedded-database-support.adoc b/framework-docs/modules/ROOT/pages/data-access/jdbc/embedded-database-support.adoc index eaa86da5f268..f9855a33c84d 100644 --- a/framework-docs/modules/ROOT/pages/data-access/jdbc/embedded-database-support.adoc +++ b/framework-docs/modules/ROOT/pages/data-access/jdbc/embedded-database-support.adoc @@ -83,7 +83,7 @@ Kotlin:: ---- ====== -See the {api-spring-framework}/jdbc/datasource/embedded/EmbeddedDatabaseBuilder.html[javadoc for `EmbeddedDatabaseBuilder`] +See the {spring-framework-api}/jdbc/datasource/embedded/EmbeddedDatabaseBuilder.html[javadoc for `EmbeddedDatabaseBuilder`] for further details on all supported options. You can also use the `EmbeddedDatabaseBuilder` to create an embedded database by using Java @@ -288,7 +288,7 @@ You can extend Spring JDBC embedded database support in two ways: connection pool to manage embedded database connections. We encourage you to contribute extensions to the Spring community at -https://github.com/spring-projects/spring-framework/issues[GitHub Issues]. +{spring-framework-issues}[GitHub Issues]. diff --git a/framework-docs/modules/ROOT/pages/data-access/orm/introduction.adoc b/framework-docs/modules/ROOT/pages/data-access/orm/introduction.adoc index bfb3e3c532ac..d44aca0c20d7 100644 --- a/framework-docs/modules/ROOT/pages/data-access/orm/introduction.adoc +++ b/framework-docs/modules/ROOT/pages/data-access/orm/introduction.adoc @@ -58,8 +58,8 @@ The benefits of using the Spring Framework to create your ORM DAOs include: TIP: For more comprehensive ORM support, including support for alternative database technologies such as MongoDB, you might want to check out the -https://projects.spring.io/spring-data/[Spring Data] suite of projects. If you are -a JPA user, the https://spring.io/guides/gs/accessing-data-jpa/[Getting Started Accessing +{spring-site-projects}/spring-data/[Spring Data] suite of projects. If you are +a JPA user, the {spring-site-guides}/gs/accessing-data-jpa/[Getting Started Accessing Data with JPA] guide from https://spring.io provides a great introduction. diff --git a/framework-docs/modules/ROOT/pages/data-access/orm/jpa.adoc b/framework-docs/modules/ROOT/pages/data-access/orm/jpa.adoc index b9fc4279fc3f..9c7a0a4da7fb 100644 --- a/framework-docs/modules/ROOT/pages/data-access/orm/jpa.adoc +++ b/framework-docs/modules/ROOT/pages/data-access/orm/jpa.adoc @@ -157,7 +157,7 @@ The `LoadTimeWeaver` interface is a Spring-provided class that lets JPA `ClassTransformer` instances be plugged in a specific manner, depending on whether the environment is a web container or application server. Hooking `ClassTransformers` through an -https://docs.oracle.com/javase/6/docs/api/java/lang/instrument/package-summary.html[agent] +{java-api}/java.instrument/java/lang/instrument/package-summary.html[agent] is typically not efficient. The agents work against the entire virtual machine and inspect every class that is loaded, which is usually undesirable in a production server environment. @@ -541,8 +541,8 @@ way of auto-configuring an `EntityManagerFactory` setup for Hibernate or Eclipse respectively. Note that those provider adapters are primarily designed for use with Spring-driven transaction management (that is, for use with `JpaTransactionManager`). -See the {api-spring-framework}/orm/jpa/JpaDialect.html[`JpaDialect`] and -{api-spring-framework}/orm/jpa/JpaVendorAdapter.html[`JpaVendorAdapter`] javadoc for +See the {spring-framework-api}/orm/jpa/JpaDialect.html[`JpaDialect`] and +{spring-framework-api}/orm/jpa/JpaVendorAdapter.html[`JpaVendorAdapter`] javadoc for more details of its operations and how they are used within Spring's JPA support. diff --git a/framework-docs/modules/ROOT/pages/data-access/oxm.adoc b/framework-docs/modules/ROOT/pages/data-access/oxm.adoc index 3cbe3a502e70..5bc8fcdfda96 100644 --- a/framework-docs/modules/ROOT/pages/data-access/oxm.adoc +++ b/framework-docs/modules/ROOT/pages/data-access/oxm.adoc @@ -36,8 +36,8 @@ simpler. [[oxm-consistent-interfaces]] === Consistent Interfaces -Spring's O-X mapping operates through two global interfaces: {api-spring-framework}/oxm/Marshaller.html[`Marshaller`] and -{api-spring-framework}/oxm/Unmarshaller.html[`Unmarshaller`]. These abstractions let you switch O-X mapping frameworks +Spring's O-X mapping operates through two global interfaces: {spring-framework-api}/oxm/Marshaller.html[`Marshaller`] and +{spring-framework-api}/oxm/Unmarshaller.html[`Unmarshaller`]. These abstractions let you switch O-X mapping frameworks with relative ease, with little or no change required on the classes that do the marshalling. This approach has the additional benefit of making it possible to do XML marshalling with a mix-and-match approach (for example, some marshalling performed using JAXB @@ -557,7 +557,7 @@ set the `supportedClasses` property on the `XStreamMarshaller`, as the following Doing so ensures that only the registered classes are eligible for unmarshalling. Additionally, you can register -{api-spring-framework}/oxm/xstream/XStreamMarshaller.html#setConverters(com.thoughtworks.xstream.converters.ConverterMatcher...)[custom +{spring-framework-api}/oxm/xstream/XStreamMarshaller.html#setConverters(com.thoughtworks.xstream.converters.ConverterMatcher...)[custom converters] to make sure that only your supported classes can be unmarshalled. You might want to add a `CatchAllConverter` as the last converter in the list, in addition to converters that explicitly support the domain classes that should be supported. As a diff --git a/framework-docs/modules/ROOT/pages/data-access/r2dbc.adoc b/framework-docs/modules/ROOT/pages/data-access/r2dbc.adoc index a4f7814a61f3..e75c0aac80f6 100644 --- a/framework-docs/modules/ROOT/pages/data-access/r2dbc.adoc +++ b/framework-docs/modules/ROOT/pages/data-access/r2dbc.adoc @@ -95,7 +95,7 @@ parameter to database bind marker translation. run. * `….namedParameters(false)`: Disable named parameter expansion. Enabled by default. -TIP: Dialects are resolved by {api-spring-framework}/r2dbc/core/binding/BindMarkersFactoryResolver.html[`BindMarkersFactoryResolver`] +TIP: Dialects are resolved by {spring-framework-api}/r2dbc/core/binding/BindMarkersFactoryResolver.html[`BindMarkersFactoryResolver`] from a `ConnectionFactory`, typically by inspecting `ConnectionFactoryMetadata`. + You can let Spring auto-discover your `BindMarkersFactory` by registering a @@ -120,7 +120,7 @@ the reactive sequence to aid debugging. The following sections provide some examples of `DatabaseClient` usage. These examples are not an exhaustive list of all of the functionality exposed by the `DatabaseClient`. -See the attendant {api-spring-framework}/r2dbc/core/DatabaseClient.html[javadoc] for that. +See the attendant {spring-framework-api}/r2dbc/core/DatabaseClient.html[javadoc] for that. [[r2dbc-DatabaseClient-examples-statement]] ==== Executing Statements @@ -752,7 +752,7 @@ the same time, have this client participating in Spring managed transactions. It preferable to integrate a R2DBC client with proper access to `ConnectionFactoryUtils` for resource management. -See the {api-spring-framework}/r2dbc/connection/TransactionAwareConnectionFactoryProxy.html[`TransactionAwareConnectionFactoryProxy`] +See the {spring-framework-api}/r2dbc/connection/TransactionAwareConnectionFactoryProxy.html[`TransactionAwareConnectionFactoryProxy`] javadoc for more details. diff --git a/framework-docs/modules/ROOT/pages/data-access/transaction/application-server-integration.adoc b/framework-docs/modules/ROOT/pages/data-access/transaction/application-server-integration.adoc index eb94d9516959..4e865292cdd4 100644 --- a/framework-docs/modules/ROOT/pages/data-access/transaction/application-server-integration.adoc +++ b/framework-docs/modules/ROOT/pages/data-access/transaction/application-server-integration.adoc @@ -7,7 +7,7 @@ the JTA `UserTransaction` and `TransactionManager` objects) autodetects the loca the latter object, which varies by application server. Having access to the JTA `TransactionManager` allows for enhanced transaction semantics -- in particular, supporting transaction suspension. See the -{api-spring-framework}/transaction/jta/JtaTransactionManager.html[`JtaTransactionManager`] +{spring-framework-api}/transaction/jta/JtaTransactionManager.html[`JtaTransactionManager`] javadoc for details. Spring's `JtaTransactionManager` is the standard choice to run on Jakarta EE application diff --git a/framework-docs/modules/ROOT/pages/data-access/transaction/declarative/annotations.adoc b/framework-docs/modules/ROOT/pages/data-access/transaction/declarative/annotations.adoc index 2ce54174913c..c8a83923b5cf 100644 --- a/framework-docs/modules/ROOT/pages/data-access/transaction/declarative/annotations.adoc +++ b/framework-docs/modules/ROOT/pages/data-access/transaction/declarative/annotations.adoc @@ -85,7 +85,7 @@ subclass-level annotation. When a POJO class such as the one above is defined as a bean in a Spring context, you can make the bean instance transactional through an `@EnableTransactionManagement` annotation in a `@Configuration` class. See the -{api-spring-framework}/transaction/annotation/EnableTransactionManagement.html[javadoc] +{spring-framework-api}/transaction/annotation/EnableTransactionManagement.html[javadoc] for full details. In XML configuration, the `` tag provides similar convenience: @@ -262,7 +262,7 @@ is modified) to support `@Transactional` runtime behavior on any kind of method. | XML Attribute| Annotation Attribute| Default| Description | `transaction-manager` -| N/A (see {api-spring-framework}/transaction/annotation/TransactionManagementConfigurer.html[`TransactionManagementConfigurer`] javadoc) +| N/A (see {spring-framework-api}/transaction/annotation/TransactionManagementConfigurer.html[`TransactionManagementConfigurer`] javadoc) | `transactionManager` | Name of the transaction manager to use. Required only if the name of the transaction manager is not `transactionManager`, as in the preceding example. diff --git a/framework-docs/modules/ROOT/pages/data-access/transaction/declarative/aspectj.adoc b/framework-docs/modules/ROOT/pages/data-access/transaction/declarative/aspectj.adoc index 58a65cafff62..af4de5b40077 100644 --- a/framework-docs/modules/ROOT/pages/data-access/transaction/declarative/aspectj.adoc +++ b/framework-docs/modules/ROOT/pages/data-access/transaction/declarative/aspectj.adoc @@ -57,8 +57,7 @@ transaction semantics given by the class annotation (if present). You can annota regardless of visibility. To weave your applications with the `AnnotationTransactionAspect`, you must either build -your application with AspectJ (see the -https://www.eclipse.org/aspectj/doc/released/devguide/index.html[AspectJ Development +your application with AspectJ (see the {aspectj-docs-devguide}/index.html[AspectJ Development Guide]) or use load-time weaving. See xref:core/aop/using-aspectj.adoc#aop-aj-ltw[Load-time weaving with AspectJ in the Spring Framework] for a discussion of load-time weaving with AspectJ. diff --git a/framework-docs/modules/ROOT/pages/data-access/transaction/declarative/tx-propagation.adoc b/framework-docs/modules/ROOT/pages/data-access/transaction/declarative/tx-propagation.adoc index cf4bceac371b..b41fd48f0d51 100644 --- a/framework-docs/modules/ROOT/pages/data-access/transaction/declarative/tx-propagation.adoc +++ b/framework-docs/modules/ROOT/pages/data-access/transaction/declarative/tx-propagation.adoc @@ -75,6 +75,6 @@ that it can roll back to. Such partial rollbacks let an inner transaction scope trigger a rollback for its scope, with the outer transaction being able to continue the physical transaction despite some operations having been rolled back. This setting is typically mapped onto JDBC savepoints, so it works only with JDBC resource -transactions. See Spring's {api-spring-framework}/jdbc/datasource/DataSourceTransactionManager.html[`DataSourceTransactionManager`]. +transactions. See Spring's {spring-framework-api}/jdbc/datasource/DataSourceTransactionManager.html[`DataSourceTransactionManager`]. diff --git a/framework-docs/modules/ROOT/pages/data-access/transaction/event.adoc b/framework-docs/modules/ROOT/pages/data-access/transaction/event.adoc index 8d34460168fe..62749a4d5842 100644 --- a/framework-docs/modules/ROOT/pages/data-access/transaction/event.adoc +++ b/framework-docs/modules/ROOT/pages/data-access/transaction/event.adoc @@ -63,7 +63,7 @@ For the former, listeners are guaranteed to see the current thread-bound transac Since the latter uses the Reactor context instead of thread-local variables, the transaction context needs to be included in the published event instance as the event source. See the -{api-spring-framework}/transaction/reactive/TransactionalEventPublisher.html[`TransactionalEventPublisher`] +{spring-framework-api}/transaction/reactive/TransactionalEventPublisher.html[`TransactionalEventPublisher`] javadoc for details. ==== diff --git a/framework-docs/modules/ROOT/pages/index.adoc b/framework-docs/modules/ROOT/pages/index.adoc index a99335c230ea..8982e5b36060 100644 --- a/framework-docs/modules/ROOT/pages/index.adoc +++ b/framework-docs/modules/ROOT/pages/index.adoc @@ -19,7 +19,7 @@ xref:integration.adoc[Integration] :: REST Clients, JMS, JCA, JMX, Email, Tasks, Scheduling, Caching, Observability, JVM Checkpoint Restore. xref:languages.adoc[Languages] :: Kotlin, Groovy, Dynamic Languages. xref:testing/appendix.adoc[Appendix] :: Spring properties. -https://github.com/spring-projects/spring-framework/wiki[Wiki] :: What's New, +{spring-framework-wiki}[Wiki] :: What's New, Upgrade Notes, Supported Versions, additional cross-version information. Rod Johnson, Juergen Hoeller, Keith Donald, Colin Sampaleanu, Rob Harrop, Thomas Risberg, diff --git a/framework-docs/modules/ROOT/pages/integration/cache/annotations.adoc b/framework-docs/modules/ROOT/pages/integration/cache/annotations.adoc index aa1d408df829..9e64fc1447ff 100644 --- a/framework-docs/modules/ROOT/pages/integration/cache/annotations.adoc +++ b/framework-docs/modules/ROOT/pages/integration/cache/annotations.adoc @@ -67,7 +67,7 @@ To provide a different default key generator, you need to implement the The default key generation strategy changed with the release of Spring 4.0. Earlier versions of Spring used a key generation strategy that, for multiple key parameters, considered only the `hashCode()` of parameters and not `equals()`. This could cause -unexpected key collisions (see https://jira.spring.io/browse/SPR-10237[SPR-10237] +unexpected key collisions (see {issues-old}/SPR-10237[SPR-10237] for background). The new `SimpleKeyGenerator` uses a compound key for such scenarios. If you want to keep using the previous key strategy, you can configure the deprecated @@ -566,7 +566,7 @@ switching to `aspectj` mode in combination with compile-time or load-time weavin NOTE: For more detail about advanced customizations (using Java configuration) that are required to implement `CachingConfigurer`, see the -{api-spring-framework}/cache/annotation/CachingConfigurer.html[javadoc]. +{spring-framework-api}/cache/annotation/CachingConfigurer.html[javadoc]. [[cache-annotation-driven-settings]] .Cache annotation settings @@ -575,7 +575,7 @@ required to implement `CachingConfigurer`, see the | XML Attribute | Annotation Attribute | Default | Description | `cache-manager` -| N/A (see the {api-spring-framework}/cache/annotation/CachingConfigurer.html[`CachingConfigurer`] javadoc) +| N/A (see the {spring-framework-api}/cache/annotation/CachingConfigurer.html[`CachingConfigurer`] javadoc) | `cacheManager` | The name of the cache manager to use. A default `CacheResolver` is initialized behind the scenes with this cache manager (or `cacheManager` if not set). For more @@ -583,19 +583,19 @@ required to implement `CachingConfigurer`, see the attribute. | `cache-resolver` -| N/A (see the {api-spring-framework}/cache/annotation/CachingConfigurer.html[`CachingConfigurer`] javadoc) +| N/A (see the {spring-framework-api}/cache/annotation/CachingConfigurer.html[`CachingConfigurer`] javadoc) | A `SimpleCacheResolver` using the configured `cacheManager`. | The bean name of the CacheResolver that is to be used to resolve the backing caches. This attribute is not required and needs to be specified only as an alternative to the 'cache-manager' attribute. | `key-generator` -| N/A (see the {api-spring-framework}/cache/annotation/CachingConfigurer.html[`CachingConfigurer`] javadoc) +| N/A (see the {spring-framework-api}/cache/annotation/CachingConfigurer.html[`CachingConfigurer`] javadoc) | `SimpleKeyGenerator` | Name of the custom key generator to use. | `error-handler` -| N/A (see the {api-spring-framework}/cache/annotation/CachingConfigurer.html[`CachingConfigurer`] javadoc) +| N/A (see the {spring-framework-api}/cache/annotation/CachingConfigurer.html[`CachingConfigurer`] javadoc) | `SimpleCacheErrorHandler` | The name of the custom cache error handler to use. By default, any exception thrown during a cache related operation is thrown back at the client. diff --git a/framework-docs/modules/ROOT/pages/integration/email.adoc b/framework-docs/modules/ROOT/pages/integration/email.adoc index 610fda7c8797..1fa72f65161b 100644 --- a/framework-docs/modules/ROOT/pages/integration/email.adoc +++ b/framework-docs/modules/ROOT/pages/integration/email.adoc @@ -26,7 +26,7 @@ interface. A simple value object that encapsulates the properties of a simple ma as `from` and `to` (plus many others) is the `SimpleMailMessage` class. This package also contains a hierarchy of checked exceptions that provide a higher level of abstraction over the lower level mail system exceptions, with the root exception being -`MailException`. See the {api-spring-framework}/mail/MailException.html[javadoc] +`MailException`. See the {spring-framework-api}/mail/MailException.html[javadoc] for more information on the rich mail exception hierarchy. The `org.springframework.mail.javamail.JavaMailSender` interface adds specialized diff --git a/framework-docs/modules/ROOT/pages/integration/jms/annotated.adoc b/framework-docs/modules/ROOT/pages/integration/jms/annotated.adoc index edda9de3d387..a0ffb80fb0a3 100644 --- a/framework-docs/modules/ROOT/pages/integration/jms/annotated.adoc +++ b/framework-docs/modules/ROOT/pages/integration/jms/annotated.adoc @@ -64,7 +64,7 @@ You can customize the listener container factory to use for each annotation or y configure an explicit default by implementing the `JmsListenerConfigurer` interface. The default is required only if at least one endpoint is registered without a specific container factory. See the javadoc of classes that implement -{api-spring-framework}/jms/annotation/JmsListenerConfigurer.html[`JmsListenerConfigurer`] +{spring-framework-api}/jms/annotation/JmsListenerConfigurer.html[`JmsListenerConfigurer`] for details and examples. If you prefer xref:integration/jms/namespace.adoc[XML configuration], you can use the `` diff --git a/framework-docs/modules/ROOT/pages/integration/jms/jca-message-endpoint-manager.adoc b/framework-docs/modules/ROOT/pages/integration/jms/jca-message-endpoint-manager.adoc index 23ce156526d3..70942ae58dd7 100644 --- a/framework-docs/modules/ROOT/pages/integration/jms/jca-message-endpoint-manager.adoc +++ b/framework-docs/modules/ROOT/pages/integration/jms/jca-message-endpoint-manager.adoc @@ -64,9 +64,9 @@ In some environments, you can instead obtain the entire `ResourceAdapter` object (by using ``). The Spring-based message listeners can then interact with the server-hosted `ResourceAdapter`, which also use the server's built-in `WorkManager`. -See the javadoc for {api-spring-framework}/jms/listener/endpoint/JmsMessageEndpointManager.html[`JmsMessageEndpointManager`], -{api-spring-framework}/jms/listener/endpoint/JmsActivationSpecConfig.html[`JmsActivationSpecConfig`], -and {api-spring-framework}/jca/support/ResourceAdapterFactoryBean.html[`ResourceAdapterFactoryBean`] +See the javadoc for {spring-framework-api}/jms/listener/endpoint/JmsMessageEndpointManager.html[`JmsMessageEndpointManager`], +{spring-framework-api}/jms/listener/endpoint/JmsActivationSpecConfig.html[`JmsActivationSpecConfig`], +and {spring-framework-api}/jca/support/ResourceAdapterFactoryBean.html[`ResourceAdapterFactoryBean`] for more details. Spring also provides a generic JCA message endpoint manager that is not tied to JMS: @@ -74,7 +74,7 @@ Spring also provides a generic JCA message endpoint manager that is not tied to for using any message listener type (such as a JMS `MessageListener`) and any provider-specific `ActivationSpec` object. See your JCA provider's documentation to find out about the actual capabilities of your connector, and see the -{api-spring-framework}/jca/endpoint/GenericMessageEndpointManager.html[`GenericMessageEndpointManager`] +{spring-framework-api}/jca/endpoint/GenericMessageEndpointManager.html[`GenericMessageEndpointManager`] javadoc for the Spring-specific configuration details. NOTE: JCA-based message endpoint management is very analogous to EJB 2.1 Message-Driven Beans. diff --git a/framework-docs/modules/ROOT/pages/integration/jms/namespace.adoc b/framework-docs/modules/ROOT/pages/integration/jms/namespace.adoc index be6cb7b45cbd..8ecda386a372 100644 --- a/framework-docs/modules/ROOT/pages/integration/jms/namespace.adoc +++ b/framework-docs/modules/ROOT/pages/integration/jms/namespace.adoc @@ -113,7 +113,7 @@ as the following example shows: ---- The following table describes all available attributes. See the class-level javadoc -of the {api-spring-framework}/jms/listener/AbstractMessageListenerContainer.html[`AbstractMessageListenerContainer`] +of the {spring-framework-api}/jms/listener/AbstractMessageListenerContainer.html[`AbstractMessageListenerContainer`] and its concrete subclasses for more details on the individual properties. The javadoc also provides a discussion of transaction choices and message redelivery scenarios. @@ -254,7 +254,7 @@ The following table describes the available configuration options for the JCA va | `activation-spec-factory` | A reference to the `JmsActivationSpecFactory`. The default is to autodetect the JMS - provider and its `ActivationSpec` class (see {api-spring-framework}/jms/listener/endpoint/DefaultJmsActivationSpecFactory.html[`DefaultJmsActivationSpecFactory`]). + provider and its `ActivationSpec` class (see {spring-framework-api}/jms/listener/endpoint/DefaultJmsActivationSpecFactory.html[`DefaultJmsActivationSpecFactory`]). | `destination-resolver` | A reference to the `DestinationResolver` strategy for resolving JMS `Destinations`. diff --git a/framework-docs/modules/ROOT/pages/integration/jms/receiving.adoc b/framework-docs/modules/ROOT/pages/integration/jms/receiving.adoc index ff47edf51210..81388f3ae0f5 100644 --- a/framework-docs/modules/ROOT/pages/integration/jms/receiving.adoc +++ b/framework-docs/modules/ROOT/pages/integration/jms/receiving.adoc @@ -76,7 +76,7 @@ containers that ships with Spring (in this case, `DefaultMessageListenerContaine ---- See the Spring javadoc of the various message listener containers (all of which implement -{api-spring-framework}/jms/listener/MessageListenerContainer.html[MessageListenerContainer]) +{spring-framework-api}/jms/listener/MessageListenerContainer.html[MessageListenerContainer]) for a full description of the features supported by each implementation. diff --git a/framework-docs/modules/ROOT/pages/integration/jms/using.adoc b/framework-docs/modules/ROOT/pages/integration/jms/using.adoc index db342992e03e..027098cbc205 100644 --- a/framework-docs/modules/ROOT/pages/integration/jms/using.adoc +++ b/framework-docs/modules/ROOT/pages/integration/jms/using.adoc @@ -234,7 +234,7 @@ use a proper cache level in such a case. This container also has recoverable capabilities when the broker goes down. By default, a simple `BackOff` implementation retries every five seconds. You can specify a custom `BackOff` implementation for more fine-grained recovery options. See -{api-spring-framework}/util/backoff/ExponentialBackOff.html[`ExponentialBackOff`] for an example. +{spring-framework-api}/util/backoff/ExponentialBackOff.html[`ExponentialBackOff`] for an example. NOTE: Like its sibling (xref:integration/jms/using.adoc#jms-mdp-simple[`SimpleMessageListenerContainer`]), `DefaultMessageListenerContainer` supports native JMS transactions and allows for diff --git a/framework-docs/modules/ROOT/pages/integration/jmx/notifications.adoc b/framework-docs/modules/ROOT/pages/integration/jmx/notifications.adoc index 78e197acbbb4..4811434a9c70 100644 --- a/framework-docs/modules/ROOT/pages/integration/jmx/notifications.adoc +++ b/framework-docs/modules/ROOT/pages/integration/jmx/notifications.adoc @@ -246,7 +246,7 @@ instance. The `NotificationPublisherAware` interface supplies an instance of a which the bean can then use to publish `Notifications`. As stated in the javadoc of the -{api-spring-framework}/jmx/export/notification/NotificationPublisher.html[`NotificationPublisher`] +{spring-framework-api}/jmx/export/notification/NotificationPublisher.html[`NotificationPublisher`] interface, managed beans that publish events through the `NotificationPublisher` mechanism are not responsible for the state management of notification listeners. Spring's JMX support takes care of handling all the JMX infrastructure issues. diff --git a/framework-docs/modules/ROOT/pages/integration/jmx/resources.adoc b/framework-docs/modules/ROOT/pages/integration/jmx/resources.adoc index 369ccbf2c19c..7e6164bc86e6 100644 --- a/framework-docs/modules/ROOT/pages/integration/jmx/resources.adoc +++ b/framework-docs/modules/ROOT/pages/integration/jmx/resources.adoc @@ -6,10 +6,8 @@ This section contains links to further resources about JMX: * The https://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html[JMX homepage] at Oracle. -* The https://jcp.org/aboutJava/communityprocess/final/jsr003/index3.html[JMX - specification] (JSR-000003). -* The https://jcp.org/aboutJava/communityprocess/final/jsr160/index.html[JMX Remote API - specification] (JSR-000160). +* The {JSR}003[JMX specification] (JSR-000003). +* The {JSR}160[JMX Remote API specification] (JSR-000160). * The http://mx4j.sourceforge.net/[MX4J homepage]. (MX4J is an open-source implementation of various JMX specs.) diff --git a/framework-docs/modules/ROOT/pages/integration/observability.adoc b/framework-docs/modules/ROOT/pages/integration/observability.adoc index 53a59abf8fcf..16832f42a110 100644 --- a/framework-docs/modules/ROOT/pages/integration/observability.adoc +++ b/framework-docs/modules/ROOT/pages/integration/observability.adoc @@ -7,7 +7,7 @@ Metrics can help you to track error rates, usage patterns, performance, and more Traces provide a holistic view of an entire system, crossing application boundaries; you can zoom in on particular user requests and follow their entire completion across applications. Spring Framework instruments various parts of its own codebase to publish observations if an `ObservationRegistry` is configured. -You can learn more about {docs-spring-boot}/html/actuator.html#actuator.metrics[configuring the observability infrastructure in Spring Boot]. +You can learn more about {spring-boot-docs}/actuator.html#actuator.metrics[configuring the observability infrastructure in Spring Boot]. [[observability.list]] diff --git a/framework-docs/modules/ROOT/pages/integration/rest-clients.adoc b/framework-docs/modules/ROOT/pages/integration/rest-clients.adoc index 0ce1a984b00d..9350587756f7 100644 --- a/framework-docs/modules/ROOT/pages/integration/rest-clients.adoc +++ b/framework-docs/modules/ROOT/pages/integration/rest-clients.adoc @@ -344,7 +344,7 @@ The `spring-web` module contains the `HttpMessageConverter` interface for readin Concrete implementations for the main media (MIME) types are provided in the framework and are, by default, registered with the `RestClient` and `RestTemplate` on the client side and with `RequestMappingHandlerAdapter` on the server side (see xref:web/webmvc/mvc-config/message-converters.adoc[Configuring Message Converters]). Several implementations of `HttpMessageConverter` are described below. -Refer to the {api-spring-framework}/http/converter/HttpMessageConverter.html[`HttpMessageConverter` Javadoc] for the complete list. +Refer to the {spring-framework-api}/http/converter/HttpMessageConverter.html[`HttpMessageConverter` Javadoc] for the complete list. For all converters, a default media type is used, but you can override it by setting the `supportedMediaTypes` property. [[rest-message-converters-tbl]] @@ -384,7 +384,7 @@ When you need further control (for cases where custom JSON serializers/deseriali By default, this converter supports `application/json`. | `MappingJackson2XmlHttpMessageConverter` -| An `HttpMessageConverter` implementation that can read and write XML by using https://github.com/FasterXML/jackson-dataformat-xml[Jackson XML] extension's `XmlMapper`. +| An `HttpMessageConverter` implementation that can read and write XML by using {jackson-github-org}/jackson-dataformat-xml[Jackson XML] extension's `XmlMapper`. You can customize XML mapping as needed through the use of JAXB or Jackson's provided annotations. When you need further control (for cases where custom XML serializers/deserializers need to be provided for specific types), you can inject a custom `XmlMapper` through the `ObjectMapper` property. By default, this converter supports `application/xml`. @@ -401,7 +401,7 @@ You can also set the message converters to use explicitly, by using `messageConv ==== Jackson JSON Views -To serialize only a subset of the object properties, you can specify a https://www.baeldung.com/jackson-json-view-annotation[Jackson JSON View], as the following example shows: +To serialize only a subset of the object properties, you can specify a {baeldung-blog}/jackson-json-view-annotation[Jackson JSON View], as the following example shows: [source,java,indent=0,subs="verbatim"] ---- diff --git a/framework-docs/modules/ROOT/pages/integration/scheduling.adoc b/framework-docs/modules/ROOT/pages/integration/scheduling.adoc index 344e365d34ae..cc8e0e2cd577 100644 --- a/framework-docs/modules/ROOT/pages/integration/scheduling.adoc +++ b/framework-docs/modules/ROOT/pages/integration/scheduling.adoc @@ -282,8 +282,8 @@ You can pick and choose the relevant annotations for your application. For examp if you need only support for `@Scheduled`, you can omit `@EnableAsync`. For more fine-grained control, you can additionally implement the `SchedulingConfigurer` interface, the `AsyncConfigurer` interface, or both. See the -{api-spring-framework}/scheduling/annotation/SchedulingConfigurer.html[`SchedulingConfigurer`] -and {api-spring-framework}/scheduling/annotation/AsyncConfigurer.html[`AsyncConfigurer`] +{spring-framework-api}/scheduling/annotation/SchedulingConfigurer.html[`SchedulingConfigurer`] +and {spring-framework-api}/scheduling/annotation/AsyncConfigurer.html[`AsyncConfigurer`] javadoc for full details. If you prefer XML configuration, you can use the `` element, @@ -722,7 +722,7 @@ In the preceding configuration, a `queue-capacity` value has also been provided. The configuration of the thread pool should also be considered in light of the executor's queue capacity. For the full description of the relationship between pool size and queue capacity, see the documentation for -https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html[`ThreadPoolExecutor`]. +{java-api}/java.base/java/util/concurrent/ThreadPoolExecutor.html[`ThreadPoolExecutor`]. The main idea is that, when a task is submitted, the executor first tries to use a free thread if the number of active threads is currently less than the core size. If the core size has been reached, the task is added to the queue, as long as its @@ -1093,7 +1093,7 @@ we need to set up the `SchedulerFactoryBean`, as the following example shows: More properties are available for the `SchedulerFactoryBean`, such as the calendars used by the job details, properties to customize Quartz with, and a Spring-provided JDBC DataSource. See -the {api-spring-framework}/scheduling/quartz/SchedulerFactoryBean.html[`SchedulerFactoryBean`] +the {spring-framework-api}/scheduling/quartz/SchedulerFactoryBean.html[`SchedulerFactoryBean`] javadoc for more information. NOTE: `SchedulerFactoryBean` also recognizes a `quartz.properties` file in the classpath, diff --git a/framework-docs/modules/ROOT/pages/languages/kotlin.adoc b/framework-docs/modules/ROOT/pages/languages/kotlin.adoc index c6beb7f4a6ca..4184525d7fb8 100644 --- a/framework-docs/modules/ROOT/pages/languages/kotlin.adoc +++ b/framework-docs/modules/ROOT/pages/languages/kotlin.adoc @@ -2,9 +2,9 @@ = Kotlin :page-section-summary-toc: 1 -https://kotlinlang.org[Kotlin] is a statically typed language that targets the JVM +{kotlin-site}[Kotlin] is a statically typed language that targets the JVM (and other platforms) which allows writing concise and elegant code while providing -very good https://kotlinlang.org/docs/reference/java-interop.html[interoperability] +very good {kotlin-docs}/java-interop.html[interoperability] with existing libraries written in Java. The Spring Framework provides first-class support for Kotlin and lets developers write @@ -13,13 +13,13 @@ Most of the code samples of the reference documentation are provided in Kotlin in addition to Java. The easiest way to build a Spring application with Kotlin is to leverage Spring Boot and -its https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-kotlin.html[dedicated Kotlin support]. -https://spring.io/guides/tutorials/spring-boot-kotlin/[This comprehensive tutorial] +its{spring-boot-docs}/boot-features-kotlin.html[dedicated Kotlin support]. +{spring-site-guides}/tutorials/spring-boot-kotlin/[This comprehensive tutorial] will teach you how to build Spring Boot applications with Kotlin using https://start.spring.io/#!language=kotlin&type=gradle-project[start.spring.io]. Feel free to join the #spring channel of https://slack.kotlinlang.org/[Kotlin Slack] or ask a question with `spring` and `kotlin` as tags on -https://stackoverflow.com/questions/tagged/spring+kotlin[Stackoverflow] if you need support. +{stackoverflow-spring-kotlin-tags}[Stackoverflow] if you need support. diff --git a/framework-docs/modules/ROOT/pages/languages/kotlin/annotations.adoc b/framework-docs/modules/ROOT/pages/languages/kotlin/annotations.adoc index 4a724caf0115..813d2c106b3b 100644 --- a/framework-docs/modules/ROOT/pages/languages/kotlin/annotations.adoc +++ b/framework-docs/modules/ROOT/pages/languages/kotlin/annotations.adoc @@ -1,7 +1,7 @@ [[kotlin-annotations]] = Annotations -The Spring Framework also takes advantage of https://kotlinlang.org/docs/reference/null-safety.html[Kotlin null-safety] +The Spring Framework also takes advantage of {kotlin-docs}/null-safety.html[Kotlin null-safety] to determine if an HTTP parameter is required without having to explicitly define the `required` attribute. That means `@RequestParam name: String?` is treated as not required and, conversely, `@RequestParam name: String` is treated as being required. @@ -20,9 +20,9 @@ type `Car` may or may not exist. The same behavior applies to autowired construc NOTE: If you use bean validation on classes with properties or a primary constructor parameters, you may need to use -https://kotlinlang.org/docs/reference/annotations.html#annotation-use-site-targets[annotation use-site targets], +{kotlin-docs}/annotations.html#annotation-use-site-targets[annotation use-site targets], such as `@field:NotNull` or `@get:Size(min=5, max=15)`, as described in -https://stackoverflow.com/a/35853200/1092077[this Stack Overflow response]. +{stackoverflow-site}/a/35853200/1092077[this Stack Overflow response]. diff --git a/framework-docs/modules/ROOT/pages/languages/kotlin/bean-definition-dsl.adoc b/framework-docs/modules/ROOT/pages/languages/kotlin/bean-definition-dsl.adoc index 68949a9bf0bc..53ee46dd29c6 100644 --- a/framework-docs/modules/ROOT/pages/languages/kotlin/bean-definition-dsl.adoc +++ b/framework-docs/modules/ROOT/pages/languages/kotlin/bean-definition-dsl.adoc @@ -51,7 +51,7 @@ the constructor parameters will be autowired by type: ---- In order to allow a more declarative approach and cleaner syntax, Spring Framework provides -a {docs-spring-framework}/kdoc-api/spring-context/org.springframework.context.support/-bean-definition-dsl/index.html[Kotlin bean definition DSL] +a {spring-framework-api-kdoc}/spring-context/org.springframework.context.support/-bean-definition-dsl/index.html[Kotlin bean definition DSL] It declares an `ApplicationContextInitializer` through a clean declarative API, which lets you deal with profiles and `Environment` for customizing how beans are registered. @@ -104,10 +104,10 @@ as the following example shows: ---- NOTE: Spring Boot is based on JavaConfig and -https://github.com/spring-projects/spring-boot/issues/8115[does not yet provide specific support for functional bean definition], +{spring-boot-issues}/8115[does not yet provide specific support for functional bean definition], but you can experimentally use functional bean definitions through Spring Boot's `ApplicationContextInitializer` support. -See https://stackoverflow.com/questions/45935931/how-to-use-functional-bean-definition-kotlin-dsl-with-spring-boot-and-spring-w/46033685#46033685[this Stack Overflow answer] -for more details and up-to-date information. See also the experimental Kofu DSL developed in https://github.com/spring-projects/spring-fu[Spring Fu incubator]. +See {stackoverflow-questions}/45935931/how-to-use-functional-bean-definition-kotlin-dsl-with-spring-boot-and-spring-w/46033685#46033685[this Stack Overflow answer] +for more details and up-to-date information. See also the experimental Kofu DSL developed in {spring-github-org}/spring-fu[Spring Fu incubator]. diff --git a/framework-docs/modules/ROOT/pages/languages/kotlin/classes-interfaces.adoc b/framework-docs/modules/ROOT/pages/languages/kotlin/classes-interfaces.adoc index 5dd4520dd9f5..604563704a50 100644 --- a/framework-docs/modules/ROOT/pages/languages/kotlin/classes-interfaces.adoc +++ b/framework-docs/modules/ROOT/pages/languages/kotlin/classes-interfaces.adoc @@ -12,7 +12,7 @@ compiler flag to be enabled during compilation. (For completeness, we neverthele running the Kotlin compiler with its `-java-parameters` flag for standard Java parameter exposure.) You can declare configuration classes as -https://kotlinlang.org/docs/reference/nested-classes.html[top level or nested but not inner], +{kotlin-docs}/nested-classes.html[top level or nested but not inner], since the later requires a reference to the outer class. diff --git a/framework-docs/modules/ROOT/pages/languages/kotlin/coroutines.adoc b/framework-docs/modules/ROOT/pages/languages/kotlin/coroutines.adoc index 17becb7aa151..ff64c052e542 100644 --- a/framework-docs/modules/ROOT/pages/languages/kotlin/coroutines.adoc +++ b/framework-docs/modules/ROOT/pages/languages/kotlin/coroutines.adoc @@ -1,21 +1,21 @@ [[coroutines]] = Coroutines -Kotlin https://kotlinlang.org/docs/reference/coroutines-overview.html[Coroutines] are Kotlin +Kotlin {kotlin-docs}/coroutines-overview.html[Coroutines] are Kotlin lightweight threads allowing to write non-blocking code in an imperative way. On language side, suspending functions provides an abstraction for asynchronous operations while on library side -https://github.com/Kotlin/kotlinx.coroutines[kotlinx.coroutines] provides functions like -https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/async.html[`async { }`] -and types like https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html[`Flow`]. +{kotlin-github-org}/kotlinx.coroutines[kotlinx.coroutines] provides functions like +{kotlin-coroutines-api}/kotlinx-coroutines-core/kotlinx.coroutines/async.html[`async { }`] +and types like {kotlin-coroutines-api}/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html[`Flow`]. Spring Framework provides support for Coroutines on the following scope: -* https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-deferred/index.html[Deferred] and https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html[Flow] return values support in Spring MVC and WebFlux annotated `@Controller` +* {kotlin-coroutines-api}/kotlinx-coroutines-core/kotlinx.coroutines/-deferred/index.html[Deferred] and {kotlin-coroutines-api}/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html[Flow] return values support in Spring MVC and WebFlux annotated `@Controller` * Suspending function support in Spring MVC and WebFlux annotated `@Controller` -* Extensions for WebFlux {docs-spring-framework}/kdoc-api/spring-webflux/org.springframework.web.reactive.function.client/index.html[client] and {docs-spring-framework}/kdoc-api/spring-webflux/org.springframework.web.reactive.function.server/index.html[server] functional API. -* WebFlux.fn {docs-spring-framework}/kdoc-api/spring-webflux/org.springframework.web.reactive.function.server/co-router.html[coRouter { }] DSL +* Extensions for WebFlux {spring-framework-api-kdoc}/spring-webflux/org.springframework.web.reactive.function.client/index.html[client] and {spring-framework-api-kdoc}/spring-webflux/org.springframework.web.reactive.function.server/index.html[server] functional API. +* WebFlux.fn {spring-framework-api-kdoc}/spring-webflux/org.springframework.web.reactive.function.server/co-router.html[coRouter { }] DSL * Suspending function and `Flow` support in RSocket `@MessageMapping` annotated methods -* Extensions for {docs-spring-framework}/kdoc-api/spring-messaging/org.springframework.messaging.rsocket/index.html[`RSocketRequester`] +* Extensions for {spring-framework-api-kdoc}/spring-messaging/org.springframework.messaging.rsocket/index.html[`RSocketRequester`] @@ -53,17 +53,17 @@ For input parameters: * If laziness is not needed, `fun handler(mono: Mono)` becomes `fun handler(value: T)` since a suspending functions can be invoked to get the value parameter. * If laziness is needed, `fun handler(mono: Mono)` becomes `fun handler(supplier: suspend () -> T)` or `fun handler(supplier: suspend () -> T?)` -https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html[`Flow`] is `Flux` equivalent in Coroutines world, suitable for hot or cold stream, finite or infinite streams, with the following main differences: +{kotlin-coroutines-api}/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/index.html[`Flow`] is `Flux` equivalent in Coroutines world, suitable for hot or cold stream, finite or infinite streams, with the following main differences: * `Flow` is push-based while `Flux` is push-pull hybrid * Backpressure is implemented via suspending functions -* `Flow` has only a https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/collect.html[single suspending `collect` method] and operators are implemented as https://kotlinlang.org/docs/reference/extensions.html[extensions] -* https://github.com/Kotlin/kotlinx.coroutines/tree/master/kotlinx-coroutines-core/common/src/flow/operators[Operators are easy to implement] thanks to Coroutines +* `Flow` has only a {kotlin-coroutines-api}/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/collect.html[single suspending `collect` method] and operators are implemented as {kotlin-docs}/extensions.html[extensions] +* {kotlin-github-org}/kotlinx.coroutines/tree/master/kotlinx-coroutines-core/common/src/flow/operators[Operators are easy to implement] thanks to Coroutines * Extensions allow to add custom operators to `Flow` * Collect operations are suspending functions -* https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/map.html[`map` operator] supports asynchronous operation (no need for `flatMap`) since it takes a suspending function parameter +* {kotlin-coroutines-api}/kotlinx-coroutines-core/kotlinx.coroutines.flow/map.html[`map` operator] supports asynchronous operation (no need for `flatMap`) since it takes a suspending function parameter -Read this blog post about https://spring.io/blog/2019/04/12/going-reactive-with-spring-coroutines-and-kotlin-flow[Going Reactive with Spring, Coroutines and Kotlin Flow] +Read this blog post about {spring-site-blog}/2019/04/12/going-reactive-with-spring-coroutines-and-kotlin-flow[Going Reactive with Spring, Coroutines and Kotlin Flow] for more details, including how to run code concurrently with Coroutines. @@ -170,7 +170,7 @@ class CoroutinesViewController(banner: Banner) { [[webflux-fn]] == WebFlux.fn -Here is an example of Coroutines router defined via the {docs-spring-framework}/kdoc-api/spring-webflux/org.springframework.web.reactive.function.server/co-router.html[coRouter { }] DSL and related handlers. +Here is an example of Coroutines router defined via the {spring-framework-api-kdoc}/spring-webflux/org.springframework.web.reactive.function.server/co-router.html[coRouter { }] DSL and related handlers. [source,kotlin,indent=0] ---- diff --git a/framework-docs/modules/ROOT/pages/languages/kotlin/extensions.adoc b/framework-docs/modules/ROOT/pages/languages/kotlin/extensions.adoc index d7da3aee5328..6af9b086ae9f 100644 --- a/framework-docs/modules/ROOT/pages/languages/kotlin/extensions.adoc +++ b/framework-docs/modules/ROOT/pages/languages/kotlin/extensions.adoc @@ -1,11 +1,11 @@ [[kotlin-extensions]] = Extensions -Kotlin https://kotlinlang.org/docs/reference/extensions.html[extensions] provide the ability +Kotlin {kotlin-docs}/extensions.html[extensions] provide the ability to extend existing classes with additional functionality. The Spring Framework Kotlin APIs use these extensions to add new Kotlin-specific conveniences to existing Spring APIs. -The {docs-spring-framework}/kdoc-api/[Spring Framework KDoc API] lists +The {spring-framework-api-kdoc}/[Spring Framework KDoc API] lists and documents all available Kotlin extensions and DSLs. NOTE: Keep in mind that Kotlin extensions need to be imported to be used. This means, @@ -13,8 +13,8 @@ for example, that the `GenericApplicationContext.registerBean` Kotlin extension is available only if `org.springframework.context.support.registerBean` is imported. That said, similar to static imports, an IDE should automatically suggest the import in most cases. -For example, https://kotlinlang.org/docs/reference/inline-functions.html#reified-type-parameters[Kotlin reified type parameters] -provide a workaround for JVM https://docs.oracle.com/javase/tutorial/java/generics/erasure.html[generics type erasure], +For example, {kotlin-docs}/inline-functions.html#reified-type-parameters[Kotlin reified type parameters] +provide a workaround for JVM {java-tutorial}/java/generics/erasure.html[generics type erasure], and the Spring Framework provides some extensions to take advantage of this feature. This allows for a better Kotlin API `RestTemplate`, for the new `WebClient` from Spring WebFlux, and for various other APIs. diff --git a/framework-docs/modules/ROOT/pages/languages/kotlin/getting-started.adoc b/framework-docs/modules/ROOT/pages/languages/kotlin/getting-started.adoc index c53a37351ded..26cf9aa412b6 100644 --- a/framework-docs/modules/ROOT/pages/languages/kotlin/getting-started.adoc +++ b/framework-docs/modules/ROOT/pages/languages/kotlin/getting-started.adoc @@ -2,7 +2,7 @@ = Getting Started The easiest way to learn how to build a Spring application with Kotlin is to follow -https://spring.io/guides/tutorials/spring-boot-kotlin/[the dedicated tutorial]. +{spring-site-guides}/tutorials/spring-boot-kotlin/[the dedicated tutorial]. diff --git a/framework-docs/modules/ROOT/pages/languages/kotlin/null-safety.adoc b/framework-docs/modules/ROOT/pages/languages/kotlin/null-safety.adoc index dc1a3f0257b8..96070d163f42 100644 --- a/framework-docs/modules/ROOT/pages/languages/kotlin/null-safety.adoc +++ b/framework-docs/modules/ROOT/pages/languages/kotlin/null-safety.adoc @@ -1,20 +1,20 @@ [[kotlin-null-safety]] = Null-safety -One of Kotlin's key features is https://kotlinlang.org/docs/reference/null-safety.html[null-safety], +One of Kotlin's key features is {kotlin-docs}/null-safety.html[null-safety], which cleanly deals with `null` values at compile time rather than bumping into the famous `NullPointerException` at runtime. This makes applications safer through nullability declarations and expressing "`value or no value`" semantics without paying the cost of wrappers, such as `Optional`. (Kotlin allows using functional constructs with nullable values. See this -https://www.baeldung.com/kotlin-null-safety[comprehensive guide to Kotlin null-safety].) +{baeldung-blog}/kotlin-null-safety[comprehensive guide to Kotlin null-safety].) Although Java does not let you express null-safety in its type-system, the Spring Framework provides xref:languages/kotlin/null-safety.adoc[null-safety of the whole Spring Framework API] via tooling-friendly annotations declared in the `org.springframework.lang` package. By default, types from Java APIs used in Kotlin are recognized as -https://kotlinlang.org/docs/reference/java-interop.html#null-safety-and-platform-types[platform types], +{kotlin-docs}/java-interop.html#null-safety-and-platform-types[platform types], for which null-checks are relaxed. -https://kotlinlang.org/docs/reference/java-interop.html#jsr-305-support[Kotlin support for JSR-305 annotations] +{kotlin-docs}/java-interop.html#jsr-305-support[Kotlin support for JSR-305 annotations] and Spring nullability annotations provide null-safety for the whole Spring Framework API to Kotlin developers, with the advantage of dealing with `null`-related issues at compile time. @@ -30,7 +30,7 @@ API nullability declaration could evolve even between minor releases and that mo be added in the future. NOTE: Generic type arguments, varargs, and array elements nullability are not supported yet, -but should be in an upcoming release. See https://github.com/Kotlin/KEEP/issues/79[this discussion] +but should be in an upcoming release. See {kotlin-github-org}/KEEP/issues/79[this discussion] for up-to-date information. diff --git a/framework-docs/modules/ROOT/pages/languages/kotlin/requirements.adoc b/framework-docs/modules/ROOT/pages/languages/kotlin/requirements.adoc index 80a2b48fc15a..19c0ae9e38bb 100644 --- a/framework-docs/modules/ROOT/pages/languages/kotlin/requirements.adoc +++ b/framework-docs/modules/ROOT/pages/languages/kotlin/requirements.adoc @@ -9,9 +9,9 @@ and https://search.maven.org/artifact/org.jetbrains.kotlin/kotlin-reflect[`kotli to be present on the classpath. They are provided by default if you bootstrap a Kotlin project on https://start.spring.io/#!language=kotlin&type=gradle-project[start.spring.io]. -WARNING: Kotlin https://kotlinlang.org/docs/inline-classes.html[inline classes] are not yet supported. +WARNING: Kotlin {kotlin-docs}/inline-classes.html[inline classes] are not yet supported. -NOTE: The https://github.com/FasterXML/jackson-module-kotlin[Jackson Kotlin module] is required +NOTE: The {jackson-github-org}/jackson-module-kotlin[Jackson Kotlin module] is required for serializing or deserializing JSON data for Kotlin classes with Jackson, so make sure to add the `com.fasterxml.jackson.module:jackson-module-kotlin` dependency to your project if you have such need. It is automatically registered when found in the classpath. diff --git a/framework-docs/modules/ROOT/pages/languages/kotlin/resources.adoc b/framework-docs/modules/ROOT/pages/languages/kotlin/resources.adoc index a99666581818..567719b78dca 100644 --- a/framework-docs/modules/ROOT/pages/languages/kotlin/resources.adoc +++ b/framework-docs/modules/ROOT/pages/languages/kotlin/resources.adoc @@ -4,9 +4,9 @@ We recommend the following resources for people learning how to build applications with Kotlin and the Spring Framework: -* https://kotlinlang.org/docs/reference/[Kotlin language reference] +* {kotlin-docs}[Kotlin language reference] * https://slack.kotlinlang.org/[Kotlin Slack] (with a dedicated #spring channel) -* https://stackoverflow.com/questions/tagged/spring+kotlin[Stackoverflow, with `spring` and `kotlin` tags] +* {stackoverflow-spring-kotlin-tags}[Stackoverflow, with `spring` and `kotlin` tags] * https://play.kotlinlang.org/[Try Kotlin in your browser] * https://blog.jetbrains.com/kotlin/[Kotlin blog] * https://kotlin.link/[Awesome Kotlin] @@ -34,12 +34,12 @@ The following Github projects offer examples that you can learn from and possibl The following list categorizes the pending issues related to Spring and Kotlin support: * Spring Framework -** https://github.com/spring-projects/spring-framework/issues/20606[Unable to use WebTestClient with mock server in Kotlin] -** https://github.com/spring-projects/spring-framework/issues/20496[Support null-safety at generics, varargs and array elements level] +** {spring-framework-issues}/20606[Unable to use WebTestClient with mock server in Kotlin] +** {spring-framework-issues}/20496[Support null-safety at generics, varargs and array elements level] * Kotlin -** https://youtrack.jetbrains.com/issue/KT-6380[Parent issue for Spring Framework support] -** https://youtrack.jetbrains.com/issue/KT-5464[Kotlin requires type inference where Java doesn't] -** https://youtrack.jetbrains.com/issue/KT-20283[Smart cast regression with open classes] -** https://youtrack.jetbrains.com/issue/KT-14984[Impossible to pass not all SAM argument as function] -** https://youtrack.jetbrains.com/issue/KT-15125[Support JSR 223 bindings directly via script variables] -** https://youtrack.jetbrains.com/issue/KT-6653[Kotlin properties do not override Java-style getters and setters] +** {kotlin-issues}/KT-6380[Parent issue for Spring Framework support] +** {kotlin-issues}/KT-5464[Kotlin requires type inference where Java doesn't] +** {kotlin-issues}/KT-20283[Smart cast regression with open classes] +** {kotlin-issues}/KT-14984[Impossible to pass not all SAM argument as function] +** {kotlin-issues}/KT-15125[Support JSR 223 bindings directly via script variables] +** {kotlin-issues}/KT-6653[Kotlin properties do not override Java-style getters and setters] diff --git a/framework-docs/modules/ROOT/pages/languages/kotlin/spring-projects-in.adoc b/framework-docs/modules/ROOT/pages/languages/kotlin/spring-projects-in.adoc index 4118859a1585..3f302101a21c 100644 --- a/framework-docs/modules/ROOT/pages/languages/kotlin/spring-projects-in.adoc +++ b/framework-docs/modules/ROOT/pages/languages/kotlin/spring-projects-in.adoc @@ -21,10 +21,10 @@ member function of Spring beans that are proxied by CGLIB, which can quickly become painful and is against the Kotlin principle of keeping code concise and predictable. NOTE: It is also possible to avoid CGLIB proxies for configuration classes by using `@Configuration(proxyBeanMethods = false)`. -See {api-spring-framework}/context/annotation/Configuration.html#proxyBeanMethods--[`proxyBeanMethods` Javadoc] for more details. +See {spring-framework-api}/context/annotation/Configuration.html#proxyBeanMethods--[`proxyBeanMethods` Javadoc] for more details. Fortunately, Kotlin provides a -https://kotlinlang.org/docs/reference/compiler-plugins.html#kotlin-spring-compiler-plugin[`kotlin-spring`] +{kotlin-docs}/compiler-plugins.html#kotlin-spring-compiler-plugin[`kotlin-spring`] plugin (a preconfigured version of the `kotlin-allopen` plugin) that automatically opens classes and their member functions for types that are annotated or meta-annotated with one of the following annotations: @@ -59,7 +59,7 @@ within the primary constructor, as in the following example: class Person(val name: String, val age: Int) ---- -You can optionally add https://kotlinlang.org/docs/reference/data-classes.html[the `data` keyword] +You can optionally add {kotlin-docs}/data-classes.html[the `data` keyword] to make the compiler automatically derive the following members from all properties declared in the primary constructor: @@ -80,12 +80,12 @@ As the following example shows, this allows for easy changes to individual prope Common persistence technologies (such as JPA) require a default constructor, preventing this kind of design. Fortunately, there is a workaround for this -https://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-hell["`default constructor hell`"], -since Kotlin provides a https://kotlinlang.org/docs/reference/compiler-plugins.html#kotlin-jpa-compiler-plugin[`kotlin-jpa`] +{stackoverflow-questions}/32038177/kotlin-with-jpa-default-constructor-hell["`default constructor hell`"], +since Kotlin provides a {kotlin-docs}/compiler-plugins.html#kotlin-jpa-compiler-plugin[`kotlin-jpa`] plugin that generates synthetic no-arg constructor for classes annotated with JPA annotations. If you need to leverage this kind of mechanism for other persistence technologies, you can configure -the https://kotlinlang.org/docs/reference/compiler-plugins.html#how-to-use-no-arg-plugin[`kotlin-noarg`] +the {kotlin-docs}/compiler-plugins.html#how-to-use-no-arg-plugin[`kotlin-noarg`] plugin. NOTE: As of the Kay release train, Spring Data supports Kotlin immutable class instances and @@ -98,7 +98,7 @@ does not require the `kotlin-noarg` plugin if the module uses Spring Data object == Injecting Dependencies Our recommendation is to try to favor constructor injection with `val` read-only (and -non-nullable when possible) https://kotlinlang.org/docs/reference/properties.html[properties], +non-nullable when possible) {kotlin-docs}/properties.html[properties], as the following example shows: [source,kotlin,indent=0] @@ -137,13 +137,13 @@ as the following example shows: In Java, you can inject configuration properties by using annotations (such as pass:q[`@Value("${property}")`)]. However, in Kotlin, `$` is a reserved character that is used for -https://kotlinlang.org/docs/reference/idioms.html#string-interpolation[string interpolation]. +{kotlin-docs}/idioms.html#string-interpolation[string interpolation]. Therefore, if you wish to use the `@Value` annotation in Kotlin, you need to escape the `$` character by writing pass:q[`@Value("\${property}")`]. NOTE: If you use Spring Boot, you should probably use -https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-typesafe-configuration-properties[`@ConfigurationProperties`] +{spring-boot-docs}/boot-features-external-config.html#boot-features-external-config-typesafe-configuration-properties[`@ConfigurationProperties`] instead of `@Value` annotations. As an alternative, you can customize the property placeholder prefix by declaring the @@ -177,14 +177,14 @@ that uses the `${...}` syntax, with configuration beans, as the following exampl [[checked-exceptions]] == Checked Exceptions -Java and https://kotlinlang.org/docs/reference/exceptions.html[Kotlin exception handling] +Java and {kotlin-docs}/exceptions.html[Kotlin exception handling] are pretty close, with the main difference being that Kotlin treats all exceptions as unchecked exceptions. However, when using proxied objects (for example classes or methods annotated with `@Transactional`), checked exceptions thrown will be wrapped by default in an `UndeclaredThrowableException`. To get the original exception thrown like in Java, methods should be annotated with -https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-throws/index.html[`@Throws`] +{kotlin-api}/jvm/stdlib/kotlin.jvm/-throws/index.html[`@Throws`] to specify explicitly the checked exceptions thrown (for example `@Throws(IOException::class)`). @@ -194,7 +194,7 @@ to specify explicitly the checked exceptions thrown (for example `@Throws(IOExce Kotlin annotations are mostly similar to Java annotations, but array attributes (which are extensively used in Spring) behave differently. As explained in the -https://kotlinlang.org/docs/reference/annotations.html[Kotlin documentation] you can omit +{kotlin-docs}/annotations.html[Kotlin documentation] you can omit the `value` attribute name, unlike other attributes, and specify it as a `vararg` parameter. To understand what that means, consider `@RequestMapping` (which is one of the most widely @@ -240,13 +240,13 @@ be matched, not only the `GET` method. == Declaration-site variance Dealing with generic types in Spring applications written in Kotlin may require, for some use cases, to understand -Kotlin https://kotlinlang.org/docs/generics.html#declaration-site-variance[declaration-site variance] +Kotlin {kotlin-docs}/generics.html#declaration-site-variance[declaration-site variance] which allows to define the variance when declaring a type, which is not possible in Java which supports only use-site variance. For example, declaring `List` in Kotlin is conceptually equivalent to `java.util.List` because `kotlin.collections.List` is declared as -https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/[`interface List : kotlin.collections.Collection`]. +{kotlin-api}/jvm/stdlib/kotlin.collections/-list/[`interface List : kotlin.collections.Collection`]. This needs to be taken into account by using the `out` Kotlin keyword on generic types when using Java classes, for example when writing a `org.springframework.core.convert.converter.Converter` from a Kotlin type to a Java type. @@ -267,7 +267,7 @@ class ListOfAnyConverter : Converter, CustomJavaList<*>> { ---- NOTE: Spring Framework does not leverage yet declaration-site variance type information for injecting beans, -subscribe to https://github.com/spring-projects/spring-framework/issues/22313[spring-framework#22313] to track related +subscribe to {spring-framework-issues}/22313[spring-framework#22313] to track related progresses. @@ -280,7 +280,7 @@ The recommended testing framework is https://junit.org/junit5/[JUnit 5] along wi https://mockk.io/[Mockk] for mocking. NOTE: If you are using Spring Boot, see -https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-kotlin-testing[this related documentation]. +{spring-boot-docs}/features.html#features.kotlin.testing[this related documentation]. [[constructor-injection]] @@ -289,7 +289,7 @@ https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-featu As described in the xref:testing/testcontext-framework/support-classes.adoc#testcontext-junit-jupiter-di[dedicated section], JUnit Jupiter (JUnit 5) allows constructor injection of beans which is pretty useful with Kotlin in order to use `val` instead of `lateinit var`. You can use -{api-spring-framework}/test/context/TestConstructor.html[`@TestConstructor(autowireMode = AutowireMode.ALL)`] +{spring-framework-api}/test/context/TestConstructor.html[`@TestConstructor(autowireMode = AutowireMode.ALL)`] to enable autowiring for all parameters. NOTE: You can also change the default behavior to `ALL` in a `junit-platform.properties` @@ -386,7 +386,7 @@ class SpecificationLikeTests { [[kotlin-webtestclient-issue]] === `WebTestClient` Type Inference Issue in Kotlin -Due to a https://youtrack.jetbrains.com/issue/KT-5464[type inference issue], you must +Due to a {kotlin-issues}/KT-5464[type inference issue], you must use the Kotlin `expectBody` extension (such as `.expectBody().isEqualTo("toys")`), since it provides a workaround for the Kotlin issue with the Java API. diff --git a/framework-docs/modules/ROOT/pages/languages/kotlin/web.adoc b/framework-docs/modules/ROOT/pages/languages/kotlin/web.adoc index 0b44ce3c7432..459b49103a5f 100644 --- a/framework-docs/modules/ROOT/pages/languages/kotlin/web.adoc +++ b/framework-docs/modules/ROOT/pages/languages/kotlin/web.adoc @@ -8,9 +8,9 @@ Spring Framework comes with a Kotlin router DSL available in 3 flavors: -* WebMvc.fn DSL with {docs-spring-framework}/kdoc-api/spring-webmvc/org.springframework.web.servlet.function/router.html[router { }] -* WebFlux.fn <> DSL with {docs-spring-framework}/kdoc-api/spring-webflux/org.springframework.web.reactive.function.server/router.html[router { }] -* WebFlux.fn <> DSL with {docs-spring-framework}/kdoc-api/spring-webflux/org.springframework.web.reactive.function.server/co-router.html[coRouter { }] +* WebMvc.fn DSL with {spring-framework-api-kdoc}/spring-webmvc/org.springframework.web.servlet.function/router.html[router { }] +* WebFlux.fn <> DSL with {spring-framework-api-kdoc}/spring-webflux/org.springframework.web.reactive.function.server/router.html[router { }] +* WebFlux.fn <> DSL with {spring-framework-api-kdoc}/spring-webflux/org.springframework.web.reactive.function.server/co-router.html[coRouter { }] These DSL let you write clean and idiomatic Kotlin code to build a `RouterFunction` instance as the following example shows: @@ -79,12 +79,12 @@ mockMvc.get("/person/{name}", "Lee") { == Kotlin Script Templates Spring Framework provides a -https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/view/script/ScriptTemplateView.html[`ScriptTemplateView`] -which supports https://www.jcp.org/en/jsr/detail?id=223[JSR-223] to render templates by using script engines. +{spring-framework-api}/web/servlet/view/script/ScriptTemplateView.html[`ScriptTemplateView`] +which supports {JSR}223[JSR-223] to render templates by using script engines. By leveraging `scripting-jsr223` dependencies, it is possible to use such feature to render Kotlin-based templates with -https://github.com/Kotlin/kotlinx.html[kotlinx.html] DSL or Kotlin multiline interpolated `String`. +{kotlin-github-org}/kotlinx.html[kotlinx.html] DSL or Kotlin multiline interpolated `String`. `build.gradle.kts` [source,kotlin,indent=0] @@ -126,10 +126,10 @@ project for more details. [[kotlin-multiplatform-serialization]] == Kotlin multiplatform serialization -As of Spring Framework 5.3, https://github.com/Kotlin/kotlinx.serialization[Kotlin multiplatform serialization] is +As of Spring Framework 5.3, {kotlin-github-org}/kotlinx.serialization[Kotlin multiplatform serialization] is supported in Spring MVC, Spring WebFlux and Spring Messaging (RSocket). The builtin support currently targets CBOR, JSON, and ProtoBuf formats. -To enable it, follow https://github.com/Kotlin/kotlinx.serialization#setup[those instructions] to add the related dependency and plugin. +To enable it, follow {kotlin-github-org}/kotlinx.serialization#setup[those instructions] to add the related dependency and plugin. With Spring MVC and WebFlux, both Kotlin serialization and Jackson will be configured by default if they are in the classpath since Kotlin serialization is designed to serialize only Kotlin classes annotated with `@Serializable`. With Spring Messaging (RSocket), make sure that neither Jackson, GSON or JSONB are in the classpath if you want automatic configuration, diff --git a/framework-docs/modules/ROOT/pages/overview.adoc b/framework-docs/modules/ROOT/pages/overview.adoc index b0ed76a7d869..cb03d79d9c0d 100644 --- a/framework-docs/modules/ROOT/pages/overview.adoc +++ b/framework-docs/modules/ROOT/pages/overview.adoc @@ -57,18 +57,18 @@ competition with Spring, they are in fact complementary. The Spring programming model does not embrace the Jakarta EE platform specification; rather, it integrates with carefully selected individual specifications from the traditional EE umbrella: -* Servlet API (https://jcp.org/en/jsr/detail?id=340[JSR 340]) -* WebSocket API (https://www.jcp.org/en/jsr/detail?id=356[JSR 356]) -* Concurrency Utilities (https://www.jcp.org/en/jsr/detail?id=236[JSR 236]) -* JSON Binding API (https://jcp.org/en/jsr/detail?id=367[JSR 367]) -* Bean Validation (https://jcp.org/en/jsr/detail?id=303[JSR 303]) -* JPA (https://jcp.org/en/jsr/detail?id=338[JSR 338]) -* JMS (https://jcp.org/en/jsr/detail?id=914[JSR 914]) +* Servlet API ({JSR}340[JSR 340]) +* WebSocket API ({JSR}356[JSR 356]) +* Concurrency Utilities ({JSR}236[JSR 236]) +* JSON Binding API ({JSR}367[JSR 367]) +* Bean Validation ({JSR}303[JSR 303]) +* JPA ({JSR}338[JSR 338]) +* JMS ({JSR}914[JSR 914]) * as well as JTA/JCA setups for transaction coordination, if necessary. The Spring Framework also supports the Dependency Injection -(https://www.jcp.org/en/jsr/detail?id=330[JSR 330]) and Common Annotations -(https://jcp.org/en/jsr/detail?id=250[JSR 250]) specifications, which application +({JSR}330[JSR 330]) and Common Annotations +({JSR}250[JSR 250]) specifications, which application developers may choose to use instead of the Spring-specific mechanisms provided by the Spring Framework. Originally, those were based on common `javax` packages. @@ -89,7 +89,7 @@ and can run on servers (such as Netty) that are not Servlet containers. Spring continues to innovate and to evolve. Beyond the Spring Framework, there are other projects, such as Spring Boot, Spring Security, Spring Data, Spring Cloud, Spring Batch, among others. It’s important to remember that each project has its own source code repository, -issue tracker, and release cadence. See https://spring.io/projects[spring.io/projects] for +issue tracker, and release cadence. See {spring-site-projects}[spring.io/projects] for the complete list of Spring projects. @@ -125,17 +125,17 @@ clean code structure with no circular dependencies between packages. == Feedback and Contributions For how-to questions or diagnosing or debugging issues, we suggest using Stack Overflow. Click -https://stackoverflow.com/questions/tagged/spring+or+spring-mvc+or+spring-aop+or+spring-jdbc+or+spring-r2dbc+or+spring-transactions+or+spring-annotations+or+spring-jms+or+spring-el+or+spring-test+or+spring+or+spring-orm+or+spring-jmx+or+spring-cache+or+spring-webflux+or+spring-rsocket?tab=Newest[here] +{stackoverflow-spring-tag}+or+spring-mvc+or+spring-aop+or+spring-jdbc+or+spring-r2dbc+or+spring-transactions+or+spring-annotations+or+spring-jms+or+spring-el+or+spring-test+or+spring+or+spring-orm+or+spring-jmx+or+spring-cache+or+spring-webflux+or+spring-rsocket?tab=Newest[here] for a list of the suggested tags to use on Stack Overflow. If you're fairly certain that there is a problem in the Spring Framework or would like to suggest a feature, please use -the https://github.com/spring-projects/spring-framework/issues[GitHub Issues]. +the {spring-framework-issues}[GitHub Issues]. If you have a solution in mind or a suggested fix, you can submit a pull request on -https://github.com/spring-projects/spring-framework[Github]. However, please keep in mind +{spring-framework-github}[Github]. However, please keep in mind that, for all but the most trivial issues, we expect a ticket to be filed in the issue tracker, where discussions take place and leave a record for future reference. -For more details see the guidelines at the {spring-framework-main-code}/CONTRIBUTING.md[CONTRIBUTING], +For more details see the guidelines at the {spring-framework-code}/CONTRIBUTING.md[CONTRIBUTING], top-level project page. @@ -145,15 +145,15 @@ top-level project page. == Getting Started If you are just getting started with Spring, you may want to begin using the Spring -Framework by creating a https://projects.spring.io/spring-boot/[Spring Boot]-based +Framework by creating a {spring-site-projects}/spring-boot/[Spring Boot]-based application. Spring Boot provides a quick (and opinionated) way to create a production-ready Spring-based application. It is based on the Spring Framework, favors convention over configuration, and is designed to get you up and running as quickly as possible. You can use https://start.spring.io/[start.spring.io] to generate a basic project or follow -one of the https://spring.io/guides["Getting Started" guides], such as -https://spring.io/guides/gs/rest-service/[Getting Started Building a RESTful Web Service]. +one of the {spring-site-guides}["Getting Started" guides], such as +{spring-site-guides}/gs/rest-service/[Getting Started Building a RESTful Web Service]. As well as being easier to digest, these guides are very task focused, and most of them are based on Spring Boot. They also cover other projects from the Spring portfolio that you might want to consider when solving a particular problem. diff --git a/framework-docs/modules/ROOT/pages/rsocket.adoc b/framework-docs/modules/ROOT/pages/rsocket.adoc index 86846ae5cfdd..402c213898df 100644 --- a/framework-docs/modules/ROOT/pages/rsocket.adoc +++ b/framework-docs/modules/ROOT/pages/rsocket.adoc @@ -23,7 +23,7 @@ while the above interactions are called "request streams" or simply "requests". These are the key features and benefits of the RSocket protocol: -* https://www.reactive-streams.org/[Reactive Streams] semantics across network boundary -- +* {reactive-streams-site}/[Reactive Streams] semantics across network boundary -- for streaming requests such as `Request-Stream` and `Channel`, back pressure signals travel between requester and responder, allowing a requester to slow down a responder at the source, hence reducing reliance on network layer congestion control, and the need @@ -38,9 +38,9 @@ the amount of state required. * Fragmentation and re-assembly of large messages. * Keepalive (heartbeats). -RSocket has {gh-rsocket}[implementations] in multiple languages. The -{gh-rsocket-java}[Java library] is built on https://projectreactor.io/[Project Reactor], -and https://github.com/reactor/reactor-netty[Reactor Netty] for the transport. That means +RSocket has {rsocket-github-org}[implementations] in multiple languages. The +{rsocket-java}[Java library] is built on {reactor-site}/[Project Reactor], +and {reactor-github-org}/reactor-netty[Reactor Netty] for the transport. That means signals from Reactive Streams Publishers in your application propagate transparently through RSocket across the network. @@ -50,8 +50,8 @@ through RSocket across the network. === The Protocol One of the benefits of RSocket is that it has well defined behavior on the wire and an -easy to read https://rsocket.io/about/protocol[specification] along with some protocol -{gh-rsocket}/rsocket/tree/master/Extensions[extensions]. Therefore it is +easy to read {rsocket-site}/about/protocol[specification] along with some protocol +{rsocket-protocol-extensions}[extensions]. Therefore it is a good idea to read the spec, independent of language implementations and higher level framework APIs. This section provides a succinct overview to establish some context. @@ -96,18 +96,18 @@ and therefore only included in the first message on a request, i.e. with one of Protocol extensions define common metadata formats for use in applications: -* {gh-rsocket-extensions}/CompositeMetadata.md[Composite Metadata]-- multiple, +* {rsocket-protocol-extensions}/CompositeMetadata.md[Composite Metadata]-- multiple, independently formatted metadata entries. -* {gh-rsocket-extensions}/Routing.md[Routing] -- the route for a request. +* {rsocket-protocol-extensions}/Routing.md[Routing] -- the route for a request. [[rsocket-java]] === Java Implementation -The {gh-rsocket-java}[Java implementation] for RSocket is built on -https://projectreactor.io/[Project Reactor]. The transports for TCP and WebSocket are -built on https://github.com/reactor/reactor-netty[Reactor Netty]. As a Reactive Streams +The {rsocket-java}[Java implementation] for RSocket is built on +{reactor-site}/[Project Reactor]. The transports for TCP and WebSocket are +built on {reactor-github-org}/reactor-netty[Reactor Netty]. As a Reactive Streams library, Reactor simplifies the job of implementing the protocol. For applications it is a natural fit to use `Flux` and `Mono` with declarative operators and transparent back pressure support. @@ -117,7 +117,7 @@ features and leaves the application programming model (e.g. RPC codegen vs other higher level, independent concern. The main contract -{gh-rsocket-java}/blob/master/rsocket-core/src/main/java/io/rsocket/RSocket.java[io.rsocket.RSocket] +{rsocket-java-code}/rsocket-core/src/main/java/io/rsocket/RSocket.java[io.rsocket.RSocket] models the four request interaction types with `Mono` representing a promise for a single message, `Flux` a stream of messages, and `io.rsocket.Payload` the actual message with access to data and metadata as byte buffers. The `RSocket` contract is used @@ -127,7 +127,7 @@ requests with. For responding, the application implements `RSocket` to handle re This is not meant to be a thorough introduction. For the most part, Spring applications will not have to use its API directly. However it may be important to see or experiment with RSocket independent of Spring. The RSocket Java repository contains a number of -{gh-rsocket-java}/tree/master/rsocket-examples[sample apps] that +{rsocket-java-code}/rsocket-examples[sample apps] that demonstrate its API and protocol features. @@ -152,7 +152,7 @@ Spring Boot 2.2 supports standing up an RSocket server over TCP or WebSocket, in the option to expose RSocket over WebSocket in a WebFlux server. There is also client support and auto-configuration for an `RSocketRequester.Builder` and `RSocketStrategies`. See the -https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-rsocket[RSocket section] +{spring-boot-docs}/messaging.html#messaging.rsocket[RSocket section] in the Spring Boot reference for more details. Spring Security 5.2 provides RSocket support. @@ -222,7 +222,7 @@ established transparently and used. For data, the default mime type is derived from the first configured `Decoder`. For metadata, the default mime type is -{gh-rsocket-extensions}/CompositeMetadata.md[composite metadata] which allows multiple +{rsocket-protocol-extensions}/CompositeMetadata.md[composite metadata] which allows multiple metadata value and mime type pairs per request. Typically both don't need to be changed. Data and metadata in the `SETUP` frame is optional. On the server side, @@ -534,7 +534,7 @@ Kotlin:: ====== Extra metadata values can be added if using -{gh-rsocket-extensions}/CompositeMetadata.md[composite metadata] (the default) and if the +{rsocket-protocol-extensions}/CompositeMetadata.md[composite metadata] (the default) and if the values are supported by a registered `Encoder`. For example: [tabs] @@ -663,8 +663,8 @@ Kotlin:: ====== `RSocketMessageHandler` supports -{gh-rsocket-extensions}/CompositeMetadata.md[composite] and -{gh-rsocket-extensions}/Routing.md[routing] metadata by default. You can set its +{rsocket-protocol-extensions}/CompositeMetadata.md[composite] and +{rsocket-protocol-extensions}/Routing.md[routing] metadata by default. You can set its xref:rsocket.adoc#rsocket-metadata-extractor[MetadataExtractor] if you need to switch to a different mime type or register additional metadata mime types. @@ -954,7 +954,7 @@ xref:rsocket.adoc#rsocket-requester-server[Server Requester] for details. == MetadataExtractor Responders must interpret metadata. -{gh-rsocket-extensions}/CompositeMetadata.md[Composite metadata] allows independently +{rsocket-protocol-extensions}/CompositeMetadata.md[Composite metadata] allows independently formatted metadata values (e.g. for routing, security, tracing) each with its own mime type. Applications need a way to configure metadata mime types to support, and a way to access extracted values. @@ -965,7 +965,7 @@ in annotated handler methods. `DefaultMetadataExtractor` can be given `Decoder` instances to decode metadata. Out of the box it has built-in support for -{gh-rsocket-extensions}/Routing.md["message/x.rsocket.routing.v0"] which it decodes to +{rsocket-protocol-extensions}/Routing.md["message/x.rsocket.routing.v0"] which it decodes to `String` and saves under the "route" key. For any other mime type you'll need to provide a `Decoder` and register the mime type as follows: diff --git a/framework-docs/modules/ROOT/pages/testing/annotations/integration-junit-jupiter.adoc b/framework-docs/modules/ROOT/pages/testing/annotations/integration-junit-jupiter.adoc index 3bc6e18d1a2c..4944779c3b44 100644 --- a/framework-docs/modules/ROOT/pages/testing/annotations/integration-junit-jupiter.adoc +++ b/framework-docs/modules/ROOT/pages/testing/annotations/integration-junit-jupiter.adoc @@ -82,7 +82,7 @@ Kotlin:: See xref:testing/testcontext-framework/ctx-management.adoc[Context Management] as well as the javadoc for -{api-spring-framework}/test/context/junit/jupiter/SpringJUnitConfig.html[`@SpringJUnitConfig`] +{spring-framework-api}/test/context/junit/jupiter/SpringJUnitConfig.html[`@SpringJUnitConfig`] and `@ContextConfiguration` for further details. [[integration-testing-annotations-junit-jupiter-springjunitwebconfig]] @@ -157,9 +157,9 @@ Kotlin:: See xref:testing/testcontext-framework/ctx-management.adoc[Context Management] as well as the javadoc for -{api-spring-framework}/test/context/junit/jupiter/web/SpringJUnitWebConfig.html[`@SpringJUnitWebConfig`], -{api-spring-framework}/test/context/ContextConfiguration.html[`@ContextConfiguration`], and -{api-spring-framework}/test/context/web/WebAppConfiguration.html[`@WebAppConfiguration`] +{spring-framework-api}/test/context/junit/jupiter/web/SpringJUnitWebConfig.html[`@SpringJUnitWebConfig`], +{spring-framework-api}/test/context/ContextConfiguration.html[`@ContextConfiguration`], and +{spring-framework-api}/test/context/web/WebAppConfiguration.html[`@WebAppConfiguration`] for further details. [[integration-testing-annotations-testconstructor]] diff --git a/framework-docs/modules/ROOT/pages/testing/annotations/integration-meta.adoc b/framework-docs/modules/ROOT/pages/testing/annotations/integration-meta.adoc index 20bb7976d6a0..78164ab07744 100644 --- a/framework-docs/modules/ROOT/pages/testing/annotations/integration-meta.adoc +++ b/framework-docs/modules/ROOT/pages/testing/annotations/integration-meta.adoc @@ -305,5 +305,5 @@ Kotlin:: ====== For further details, see the -https://github.com/spring-projects/spring-framework/wiki/Spring-Annotation-Programming-Model[Spring Annotation Programming Model] +{spring-framework-wiki}/Spring-Annotation-Programming-Model[Spring Annotation Programming Model] wiki page. diff --git a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-activeprofiles.adoc b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-activeprofiles.adoc index 6b3d521b492b..31299b96bd07 100644 --- a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-activeprofiles.adoc +++ b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-activeprofiles.adoc @@ -74,6 +74,6 @@ and registering it by using the `resolver` attribute of `@ActiveProfiles`. See xref:testing/testcontext-framework/ctx-management/env-profiles.adoc[Context Configuration with Environment Profiles], xref:testing/testcontext-framework/support-classes.adoc#testcontext-junit-jupiter-nested-test-configuration[`@Nested` test class configuration], and the -{api-spring-framework}/test/context/ActiveProfiles.html[`@ActiveProfiles`] javadoc for +{spring-framework-api}/test/context/ActiveProfiles.html[`@ActiveProfiles`] javadoc for examples and further details. diff --git a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-contextcustomizerfactories.adoc b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-contextcustomizerfactories.adoc index 497ef55afe12..0dc49e7bec52 100644 --- a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-contextcustomizerfactories.adoc +++ b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-contextcustomizerfactories.adoc @@ -40,6 +40,6 @@ Kotlin:: By default, `@ContextCustomizerFactories` provides support for inheriting factories from superclasses or enclosing classes. See xref:testing/testcontext-framework/support-classes.adoc#testcontext-junit-jupiter-nested-test-configuration[`@Nested` test class configuration] and the -{api-spring-framework}/test/context/ContextCustomizerFactories.html[`@ContextCustomizerFactories` +{spring-framework-api}/test/context/ContextCustomizerFactories.html[`@ContextCustomizerFactories` javadoc] for an example and further details. diff --git a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-contexthierarchy.adoc b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-contexthierarchy.adoc index f136a4da5c99..66aedbcb9fd0 100644 --- a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-contexthierarchy.adoc +++ b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-contexthierarchy.adoc @@ -70,6 +70,6 @@ If you need to merge or override the configuration for a given level of the cont hierarchy within a test class hierarchy, you must explicitly name that level by supplying the same value to the `name` attribute in `@ContextConfiguration` at each corresponding level in the class hierarchy. See xref:testing/testcontext-framework/ctx-management/hierarchies.adoc[Context Hierarchies] and the -{api-spring-framework}/test/context/ContextHierarchy.html[`@ContextHierarchy`] javadoc +{spring-framework-api}/test/context/ContextHierarchy.html[`@ContextHierarchy`] javadoc for further examples. diff --git a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-dirtiescontext.adoc b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-dirtiescontext.adoc index 39c27a8f1600..12d361deca8a 100644 --- a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-dirtiescontext.adoc +++ b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-dirtiescontext.adoc @@ -257,6 +257,6 @@ Kotlin:: For further details regarding the `EXHAUSTIVE` and `CURRENT_LEVEL` algorithms, see the -{api-spring-framework}/test/annotation/DirtiesContext.HierarchyMode.html[`DirtiesContext.HierarchyMode`] +{spring-framework-api}/test/annotation/DirtiesContext.HierarchyMode.html[`DirtiesContext.HierarchyMode`] javadoc. diff --git a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-dynamicpropertysource.adoc b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-dynamicpropertysource.adoc index 003175517ccf..4c6e37863c36 100644 --- a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-dynamicpropertysource.adoc +++ b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-dynamicpropertysource.adoc @@ -6,7 +6,7 @@ _dynamic_ properties to be added to the set of `PropertySources` in the `Environ an `ApplicationContext` loaded for an integration test. Dynamic properties are useful when you do not know the value of the properties upfront – for example, if the properties are managed by an external resource such as for a container managed by the -https://www.testcontainers.org/[Testcontainers] project. +{testcontainers-site}[Testcontainers] project. The following example demonstrates how to register a dynamic property: diff --git a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-recordapplicationevents.adoc b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-recordapplicationevents.adoc index fbd7f0cf03f2..73365f75e1bd 100644 --- a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-recordapplicationevents.adoc +++ b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-recordapplicationevents.adoc @@ -9,6 +9,6 @@ _Spring TestContext Framework_ to record all application events that are publish The recorded events can be accessed via the `ApplicationEvents` API within tests. See xref:testing/testcontext-framework/application-events.adoc[Application Events] and the -{api-spring-framework}/test/context/event/RecordApplicationEvents.html[`@RecordApplicationEvents` +{spring-framework-api}/test/context/event/RecordApplicationEvents.html[`@RecordApplicationEvents` javadoc] for an example and further details. diff --git a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-testexecutionlisteners.adoc b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-testexecutionlisteners.adoc index 3e9505d15235..370d1e7d5865 100644 --- a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-testexecutionlisteners.adoc +++ b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-testexecutionlisteners.adoc @@ -39,7 +39,7 @@ Kotlin:: By default, `@TestExecutionListeners` provides support for inheriting listeners from superclasses or enclosing classes. See xref:testing/testcontext-framework/support-classes.adoc#testcontext-junit-jupiter-nested-test-configuration[`@Nested` test class configuration] and the -{api-spring-framework}/test/context/TestExecutionListeners.html[`@TestExecutionListeners` +{spring-framework-api}/test/context/TestExecutionListeners.html[`@TestExecutionListeners` javadoc] for an example and further details. If you discover that you need to switch back to using the default `TestExecutionListener` implementations, see the note in xref:testing/testcontext-framework/tel-config.adoc#testcontext-tel-config-registering-tels[Registering `TestExecutionListener` Implementations]. diff --git a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-webappconfiguration.adoc b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-webappconfiguration.adoc index a367a0ee9451..2c3d1ac328dc 100644 --- a/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-webappconfiguration.adoc +++ b/framework-docs/modules/ROOT/pages/testing/annotations/integration-spring/annotation-webappconfiguration.adoc @@ -80,6 +80,6 @@ Kotlin:: Note that `@WebAppConfiguration` must be used in conjunction with `@ContextConfiguration`, either within a single test class or within a test class hierarchy. See the -{api-spring-framework}/test/context/web/WebAppConfiguration.html[`@WebAppConfiguration`] +{spring-framework-api}/test/context/web/WebAppConfiguration.html[`@WebAppConfiguration`] javadoc for further details. diff --git a/framework-docs/modules/ROOT/pages/testing/resources.adoc b/framework-docs/modules/ROOT/pages/testing/resources.adoc index c7b3c247dc10..9b6b5d61b99f 100644 --- a/framework-docs/modules/ROOT/pages/testing/resources.adoc +++ b/framework-docs/modules/ROOT/pages/testing/resources.adoc @@ -8,7 +8,7 @@ See the following resources for more information about testing: * https://testng.org/[TestNG]: A testing framework inspired by JUnit with added support for test groups, data-driven testing, distributed testing, and other features. Supported in the xref:testing/testcontext-framework.adoc[Spring TestContext Framework] -* https://assertj.github.io/doc/[AssertJ]: "Fluent assertions for Java", +* {assertj-docs}[AssertJ]: "Fluent assertions for Java", including support for Java 8 lambdas, streams, and numerous other features. * https://en.wikipedia.org/wiki/Mock_Object[Mock Objects]: Article in Wikipedia. * http://www.mockobjects.com/[MockObjects.com]: Web site dedicated to mock objects, a @@ -24,7 +24,7 @@ See the following resources for more information about testing: * https://www.dbunit.org/[DbUnit]: JUnit extension (also usable with Ant and Maven) that is targeted at database-driven projects and, among other things, puts your database into a known state between test runs. -* https://www.testcontainers.org/[Testcontainers]: Java library that supports JUnit +* {testcontainers-site}[Testcontainers]: Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. * https://sourceforge.net/projects/grinder/[The Grinder]: Java load testing framework. diff --git a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-client.adoc b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-client.adoc index a223a9f4ca35..e8c56ed11fc0 100644 --- a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-client.adoc +++ b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-client.adoc @@ -211,5 +211,5 @@ configuration. Check for the support for code completion on static members. == Further Examples of Client-side REST Tests Spring MVC Test's own tests include -{spring-framework-main-code}/spring-test/src/test/java/org/springframework/test/web/client/samples[example +{spring-framework-code}/spring-test/src/test/java/org/springframework/test/web/client/samples[example tests] of client-side REST tests. diff --git a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-defining-expectations.adoc b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-defining-expectations.adoc index e581e32b1905..27dbf6ed50f5 100644 --- a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-defining-expectations.adoc +++ b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-defining-expectations.adoc @@ -184,7 +184,7 @@ Kotlin:: + [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] ---- - // Not possible in Kotlin until https://youtrack.jetbrains.com/issue/KT-22208 is fixed + // Not possible in Kotlin until {kotlin-issues}/KT-22208 is fixed ---- ====== @@ -192,7 +192,7 @@ Note that common expectations are always applied and cannot be overridden withou creating a separate `MockMvc` instance. When a JSON response content contains hypermedia links created with -https://github.com/spring-projects/spring-hateoas[Spring HATEOAS], you can verify the +{spring-github-org}/spring-hateoas[Spring HATEOAS], you can verify the resulting links by using JsonPath expressions, as the following example shows: [tabs] @@ -220,7 +220,7 @@ Kotlin:: ====== When XML response content contains hypermedia links created with -https://github.com/spring-projects/spring-hateoas[Spring HATEOAS], you can verify the +{spring-github-org}/spring-hateoas[Spring HATEOAS], you can verify the resulting links by using XPath expressions: [tabs] diff --git a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-filters.adoc b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-filters.adoc index 7b379b88cde5..b292ec168a3e 100644 --- a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-filters.adoc +++ b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-filters.adoc @@ -18,7 +18,7 @@ Kotlin:: + [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] ---- - // Not possible in Kotlin until https://youtrack.jetbrains.com/issue/KT-22208 is fixed + // Not possible in Kotlin until {kotlin-issues}/KT-22208 is fixed ---- ====== diff --git a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-htmlunit/mah.adoc b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-htmlunit/mah.adoc index 145fbb6b809d..7ef8a8dbcfbf 100644 --- a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-htmlunit/mah.adoc +++ b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-htmlunit/mah.adoc @@ -113,7 +113,7 @@ Kotlin:: ====== Finally, we can verify that a new message was created successfully. The following -assertions use the https://assertj.github.io/doc/[AssertJ] library: +assertions use the {assertj-docs}[AssertJ] library: [tabs] ====== @@ -268,7 +268,7 @@ Kotlin:: + [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] ---- - // Not possible in Kotlin until https://youtrack.jetbrains.com/issue/KT-22208 is fixed + // Not possible in Kotlin until {kotlin-issues}/KT-22208 is fixed ---- ====== diff --git a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-htmlunit/webdriver.adoc b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-htmlunit/webdriver.adoc index 392ae27a8cbd..2c9bff2f937d 100644 --- a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-htmlunit/webdriver.adoc +++ b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-htmlunit/webdriver.adoc @@ -362,7 +362,7 @@ annotation to look up our submit button with a `css` selector (*input[type=submi -- Finally, we can verify that a new message was created successfully. The following -assertions use the https://assertj.github.io/doc/[AssertJ] assertion library: +assertions use the {assertj-docs}[AssertJ] assertion library: -- [tabs] @@ -562,7 +562,7 @@ Kotlin:: + [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] ---- - // Not possible in Kotlin until https://youtrack.jetbrains.com/issue/KT-22208 is fixed + // Not possible in Kotlin until {kotlin-issues}/KT-22208 is fixed ---- ====== diff --git a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-performing-requests.adoc b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-performing-requests.adoc index ba8ac3772dc3..0d6bcab7ca33 100644 --- a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-performing-requests.adoc +++ b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-performing-requests.adoc @@ -159,7 +159,7 @@ Kotlin:: + [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] ---- - // Not possible in Kotlin until https://youtrack.jetbrains.com/issue/KT-22208 is fixed + // Not possible in Kotlin until {kotlin-issues}/KT-22208 is fixed ---- ====== diff --git a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-resources.adoc b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-resources.adoc index 7444c1038fb1..cb9c8e97e8d6 100644 --- a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-resources.adoc +++ b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-resources.adoc @@ -3,9 +3,9 @@ :page-section-summary-toc: 1 The framework's own tests include -{spring-framework-main-code}/spring-test/src/test/java/org/springframework/test/web/servlet/samples[ +{spring-framework-code}/spring-test/src/test/java/org/springframework/test/web/servlet/samples[ many sample tests] intended to show how to use MockMvc on its own or through the -{spring-framework-main-code}/spring-test/src/test/java/org/springframework/test/web/servlet/samples/client[ +{spring-framework-code}/spring-test/src/test/java/org/springframework/test/web/servlet/samples/client[ WebTestClient]. Browse these examples for further ideas. diff --git a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-setup-steps.adoc b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-setup-steps.adoc index 2ec41f725a57..e179a8364a27 100644 --- a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-setup-steps.adoc +++ b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/server-setup-steps.adoc @@ -25,7 +25,7 @@ Kotlin:: + [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] ---- - // Not possible in Kotlin until https://youtrack.jetbrains.com/issue/KT-22208 is fixed + // Not possible in Kotlin until {kotlin-issues}/KT-22208 is fixed ---- ====== @@ -53,11 +53,11 @@ Kotlin:: + [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] ---- - // Not possible in Kotlin until https://youtrack.jetbrains.com/issue/KT-22208 is fixed + // Not possible in Kotlin until {kotlin-issues}/KT-22208 is fixed ---- ====== See the javadoc for -{api-spring-framework}/test/web/servlet/setup/ConfigurableMockMvcBuilder.html[`ConfigurableMockMvcBuilder`] +{spring-framework-api}/test/web/servlet/setup/ConfigurableMockMvcBuilder.html[`ConfigurableMockMvcBuilder`] for a list of all MockMvc builder features or use the IDE to explore the available options. diff --git a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/vs-end-to-end-integration-tests.adoc b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/vs-end-to-end-integration-tests.adoc index 9b26c80f2370..a2027b67ce62 100644 --- a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/vs-end-to-end-integration-tests.adoc +++ b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/vs-end-to-end-integration-tests.adoc @@ -21,7 +21,7 @@ for rendering JSON, XML, and other formats through `@ResponseBody` methods. Alternatively, you may consider the full end-to-end integration testing support from Spring Boot with `@SpringBootTest`. See the -{docs-spring-boot}/html/spring-boot-features.html#boot-features-testing[Spring Boot Reference Guide]. +{spring-boot-docs}/spring-boot-features.html#boot-features-testing[Spring Boot Reference Guide]. There are pros and cons for each approach. The options provided in Spring MVC Test are different stops on the scale from classic unit testing to full integration testing. To be diff --git a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/vs-streaming-response.adoc b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/vs-streaming-response.adoc index c5c3e7dc5a2c..d7524499dadc 100644 --- a/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/vs-streaming-response.adoc +++ b/framework-docs/modules/ROOT/pages/testing/spring-mvc-test-framework/vs-streaming-response.adoc @@ -33,6 +33,6 @@ Java:: `WebTestClient` can also connect to a live server and perform full end-to-end integration tests. This is also supported in Spring Boot where you can -{docs-spring-boot}/html/spring-boot-features.html#boot-features-testing-spring-boot-applications-testing-with-running-server[test a running server]. +{spring-boot-docs}/spring-boot-features.html#boot-features-testing-spring-boot-applications-testing-with-running-server[test a running server]. diff --git a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/aot.adoc b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/aot.adoc index 0ce800ca2278..337eb71c655f 100644 --- a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/aot.adoc +++ b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/aot.adoc @@ -52,13 +52,13 @@ To provide test-specific runtime hints for use within a GraalVM native image, yo the following options. * Implement a custom - {api-spring-framework}/test/context/aot/TestRuntimeHintsRegistrar.html[`TestRuntimeHintsRegistrar`] + {spring-framework-api}/test/context/aot/TestRuntimeHintsRegistrar.html[`TestRuntimeHintsRegistrar`] and register it globally via `META-INF/spring/aot.factories`. -* Implement a custom {api-spring-framework}/aot/hint/RuntimeHintsRegistrar.html[`RuntimeHintsRegistrar`] +* Implement a custom {spring-framework-api}/aot/hint/RuntimeHintsRegistrar.html[`RuntimeHintsRegistrar`] and register it globally via `META-INF/spring/aot.factories` or locally on a test class - via {api-spring-framework}/context/annotation/ImportRuntimeHints.html[`@ImportRuntimeHints`]. -* Annotate a test class with {api-spring-framework}/aot/hint/annotation/Reflective.html[`@Reflective`] or - {api-spring-framework}/aot/hint/annotation/RegisterReflectionForBinding.html[`@RegisterReflectionForBinding`]. + via {spring-framework-api}/context/annotation/ImportRuntimeHints.html[`@ImportRuntimeHints`]. +* Annotate a test class with {spring-framework-api}/aot/hint/annotation/Reflective.html[`@Reflective`] or + {spring-framework-api}/aot/hint/annotation/RegisterReflectionForBinding.html[`@RegisterReflectionForBinding`]. * See xref:core/aot.adoc#aot.hints[Runtime Hints] for details on Spring's core runtime hints and annotation support. @@ -71,12 +71,12 @@ that are not specific to particular test classes, favor implementing ==== If you implement a custom `ContextLoader`, it must implement -{api-spring-framework}/test/context/aot/AotContextLoader.html[`AotContextLoader`] in +{spring-framework-api}/test/context/aot/AotContextLoader.html[`AotContextLoader`] in order to provide AOT build-time processing and AOT runtime execution support. Note, however, that all context loader implementations provided by the Spring Framework and Spring Boot already implement `AotContextLoader`. If you implement a custom `TestExecutionListener`, it must implement -{api-spring-framework}/test/context/aot/AotTestExecutionListener.html[`AotTestExecutionListener`] +{spring-framework-api}/test/context/aot/AotTestExecutionListener.html[`AotTestExecutionListener`] in order to participate in AOT processing. See the `SqlScriptsTestExecutionListener` in the `spring-test` module for an example. diff --git a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/application-events.adoc b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/application-events.adoc index 14cf022a8891..b27d2d98c5b5 100644 --- a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/application-events.adoc +++ b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/application-events.adoc @@ -24,7 +24,7 @@ To use `ApplicationEvents` in your tests, do the following. to an `@Autowired` field in the test class. The following test class uses the `SpringExtension` for JUnit Jupiter and -https://assertj.github.io/doc/[AssertJ] to assert the types of application events +{assertj-docs}[AssertJ] to assert the types of application events published while invoking a method in a Spring-managed component: // Don't use "quotes" in the "subs" section because of the asterisks in /* ... */ @@ -88,6 +88,6 @@ Kotlin:: ====== See the -{api-spring-framework}/test/context/event/ApplicationEvents.html[`ApplicationEvents` +{spring-framework-api}/test/context/event/ApplicationEvents.html[`ApplicationEvents` javadoc] for further details regarding the `ApplicationEvents` API. diff --git a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/context-customizers.adoc b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/context-customizers.adoc index 1979482042cf..9a5e920b4eed 100644 --- a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/context-customizers.adoc +++ b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/context-customizers.adoc @@ -29,7 +29,7 @@ You can register `ContextCustomizerFactory` implementations explicitly for a tes subclasses, and its nested classes by using the `@ContextCustomizerFactories` annotation. See xref:testing/annotations/integration-spring/annotation-contextcustomizerfactories.adoc[annotation support] and the javadoc for -{api-spring-framework}/test/context/ContextCustomizerFactories.html[`@ContextCustomizerFactories`] +{spring-framework-api}/test/context/ContextCustomizerFactories.html[`@ContextCustomizerFactories`] for details and examples. diff --git a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/dynamic-property-sources.adoc b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/dynamic-property-sources.adoc index ad418ef4cdfc..4705d57cbe64 100644 --- a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/dynamic-property-sources.adoc +++ b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/dynamic-property-sources.adoc @@ -11,7 +11,7 @@ integration test. ==== The `@DynamicPropertySource` annotation and its supporting infrastructure were originally designed to allow properties from -https://www.testcontainers.org/[Testcontainers] based tests to be exposed easily to +{testcontainers-site}[Testcontainers] based tests to be exposed easily to Spring integration tests. However, this feature may also be used with any form of external resource whose lifecycle is maintained outside the test's `ApplicationContext`. ==== diff --git a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/env-profiles.adoc b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/env-profiles.adoc index bb868bf5fae4..f1d52d53c03a 100644 --- a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/env-profiles.adoc +++ b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/env-profiles.adoc @@ -478,7 +478,7 @@ programmatically instead of declaratively -- for example, based on: To resolve active bean definition profiles programmatically, you can implement a custom `ActiveProfilesResolver` and register it by using the `resolver` attribute of `@ActiveProfiles`. For further information, see the corresponding -{api-spring-framework}/test/context/ActiveProfilesResolver.html[javadoc]. +{spring-framework-api}/test/context/ActiveProfilesResolver.html[javadoc]. The following example demonstrates how to implement and register a custom `OperatingSystemActiveProfilesResolver`: diff --git a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/hierarchies.adoc b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/hierarchies.adoc index c92ebb9064b2..22953ed289cb 100644 --- a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/hierarchies.adoc +++ b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/hierarchies.adoc @@ -235,6 +235,6 @@ NOTE: If you use `@DirtiesContext` in a test whose context is configured as part context hierarchy, you can use the `hierarchyMode` flag to control how the context cache is cleared. For further details, see the discussion of `@DirtiesContext` in xref:testing/annotations/integration-spring/annotation-dirtiescontext.adoc[Spring Testing Annotations] and the -{api-spring-framework}/test/annotation/DirtiesContext.html[`@DirtiesContext`] javadoc. +{spring-framework-api}/test/annotation/DirtiesContext.html[`@DirtiesContext`] javadoc. -- diff --git a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/javaconfig.adoc b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/javaconfig.adoc index cfd0cedfe235..af460ea84f06 100644 --- a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/javaconfig.adoc +++ b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/ctx-management/javaconfig.adoc @@ -51,8 +51,8 @@ The term "`component class`" can refer to any of the following: of a single constructor without the use of Spring annotations. See the javadoc of -{api-spring-framework}/context/annotation/Configuration.html[`@Configuration`] and -{api-spring-framework}/context/annotation/Bean.html[`@Bean`] for further information +{spring-framework-api}/context/annotation/Configuration.html[`@Configuration`] and +{spring-framework-api}/context/annotation/Bean.html[`@Bean`] for further information regarding the configuration and semantics of component classes, paying special attention to the discussion of `@Bean` Lite Mode. ==== @@ -62,7 +62,7 @@ TestContext framework tries to detect the presence of default configuration clas Specifically, `AnnotationConfigContextLoader` and `AnnotationConfigWebContextLoader` detect all `static` nested classes of the test class that meet the requirements for configuration class implementations, as specified in the -{api-spring-framework}/context/annotation/Configuration.html[`@Configuration`] javadoc. +{spring-framework-api}/context/annotation/Configuration.html[`@Configuration`] javadoc. Note that the name of the configuration class is arbitrary. In addition, a test class can contain more than one `static` nested configuration class if desired. In the following example, the `OrderServiceTest` class declares a `static` nested configuration class diff --git a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/executing-sql.adoc b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/executing-sql.adoc index b7ff759e6101..b3bd66ff7c7f 100644 --- a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/executing-sql.adoc +++ b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/executing-sql.adoc @@ -29,7 +29,7 @@ integration test methods. scripts and is mainly intended for internal use within the framework. However, if you require full control over how SQL scripts are parsed and run, `ScriptUtils` may suit your needs better than some of the other alternatives described later. See the -{api-spring-framework}/jdbc/datasource/init/ScriptUtils.html[javadoc] for individual +{spring-framework-api}/jdbc/datasource/init/ScriptUtils.html[javadoc] for individual methods in `ScriptUtils` for further details. `ResourceDatabasePopulator` provides an object-based API for programmatically populating, @@ -38,7 +38,7 @@ resources. `ResourceDatabasePopulator` provides options for configuring the char encoding, statement separator, comment delimiters, and error handling flags used when parsing and running the scripts. Each of the configuration options has a reasonable default value. See the -{api-spring-framework}/jdbc/datasource/init/ResourceDatabasePopulator.html[javadoc] for +{spring-framework-api}/jdbc/datasource/init/ResourceDatabasePopulator.html[javadoc] for details on default values. To run the scripts configured in a `ResourceDatabasePopulator`, you can invoke either the `populate(Connection)` method to run the populator against a `java.sql.Connection` or the `execute(DataSource)` method @@ -392,8 +392,8 @@ local `@SqlConfig` attributes do not supply an explicit value other than `""`, ` The configuration options provided by `@Sql` and `@SqlConfig` are equivalent to those supported by `ScriptUtils` and `ResourceDatabasePopulator` but are a superset of those provided by the `` XML namespace element. See the javadoc of -individual attributes in {api-spring-framework}/test/context/jdbc/Sql.html[`@Sql`] and -{api-spring-framework}/test/context/jdbc/SqlConfig.html[`@SqlConfig`] for details. +individual attributes in {spring-framework-api}/test/context/jdbc/Sql.html[`@Sql`] and +{spring-framework-api}/test/context/jdbc/SqlConfig.html[`@SqlConfig`] for details. [[testcontext-executing-sql-declaratively-tx]] ==== Transaction management for `@Sql` @@ -415,8 +415,8 @@ behavior by setting the `transactionMode` attribute of `@SqlConfig` (for example scripts should be run in an isolated transaction). Although a thorough discussion of all supported options for transaction management with `@Sql` is beyond the scope of this reference manual, the javadoc for -{api-spring-framework}/test/context/jdbc/SqlConfig.html[`@SqlConfig`] and -{api-spring-framework}/test/context/jdbc/SqlScriptsTestExecutionListener.html[`SqlScriptsTestExecutionListener`] +{spring-framework-api}/test/context/jdbc/SqlConfig.html[`@SqlConfig`] and +{spring-framework-api}/test/context/jdbc/SqlScriptsTestExecutionListener.html[`SqlScriptsTestExecutionListener`] provide detailed information, and the following example shows a typical testing scenario that uses JUnit Jupiter and transactional tests with `@Sql`: diff --git a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/key-abstractions.adoc b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/key-abstractions.adoc index 04e5e9ce4aa8..6910ce06fb9e 100644 --- a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/key-abstractions.adoc +++ b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/key-abstractions.adoc @@ -10,7 +10,7 @@ in turn, manages a `TestContext` that holds the context of the current test. The and delegates to `TestExecutionListener` implementations, which instrument the actual test execution by providing dependency injection, managing transactions, and so on. A `SmartContextLoader` is responsible for loading an `ApplicationContext` for a given test -class. See the {api-spring-framework}/test/context/package-summary.html[javadoc] and the +class. See the {spring-framework-api}/test/context/package-summary.html[javadoc] and the Spring test suite for further information and examples of various implementations. [[testcontext]] diff --git a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/parallel-test-execution.adoc b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/parallel-test-execution.adoc index 1a3c642f6261..6cb00cbcc75f 100644 --- a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/parallel-test-execution.adoc +++ b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/parallel-test-execution.adoc @@ -40,7 +40,7 @@ for details. WARNING: Parallel test execution in the Spring TestContext Framework is only possible if the underlying `TestContext` implementation provides a copy constructor, as explained in -the javadoc for {api-spring-framework}/test/context/TestContext.html[`TestContext`]. The +the javadoc for {spring-framework-api}/test/context/TestContext.html[`TestContext`]. The `DefaultTestContext` used in Spring provides such a constructor. However, if you use a third-party library that provides a custom `TestContext` implementation, you need to verify that it is suitable for parallel test execution. diff --git a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/tel-config.adoc b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/tel-config.adoc index 2c2c749b88cb..754d490563b0 100644 --- a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/tel-config.adoc +++ b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/tel-config.adoc @@ -29,7 +29,7 @@ by default, exactly in the following order: You can register `TestExecutionListener` implementations explicitly for a test class, its subclasses, and its nested classes by using the `@TestExecutionListeners` annotation. See xref:testing/annotations.adoc[annotation support] and the javadoc for -{api-spring-framework}/test/context/TestExecutionListeners.html[`@TestExecutionListeners`] +{spring-framework-api}/test/context/TestExecutionListeners.html[`@TestExecutionListeners`] for details and examples. .Switching to default `TestExecutionListener` implementations diff --git a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/tx.adoc b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/tx.adoc index d144ddc2f771..f34ad15f9457 100644 --- a/framework-docs/modules/ROOT/pages/testing/testcontext-framework/tx.adoc +++ b/framework-docs/modules/ROOT/pages/testing/testcontext-framework/tx.adoc @@ -216,7 +216,7 @@ Support for `TestTransaction` is automatically available whenever the `TransactionalTestExecutionListener` is enabled. The following example demonstrates some of the features of `TestTransaction`. See the -javadoc for {api-spring-framework}/test/context/transaction/TestTransaction.html[`TestTransaction`] +javadoc for {spring-framework-api}/test/context/transaction/TestTransaction.html[`TestTransaction`] for further details. [tabs] @@ -355,7 +355,7 @@ of `PlatformTransactionManager` within the test's `ApplicationContext`, you can qualifier by using `@Transactional("myTxMgr")` or `@Transactional(transactionManager = "myTxMgr")`, or `TransactionManagementConfigurer` can be implemented by an `@Configuration` class. Consult the -{api-spring-framework}/test/context/transaction/TestContextTransactionUtils.html#retrieveTransactionManager-org.springframework.test.context.TestContext-java.lang.String-[javadoc +{spring-framework-api}/test/context/transaction/TestContextTransactionUtils.html#retrieveTransactionManager-org.springframework.test.context.TestContext-java.lang.String-[javadoc for `TestContextTransactionUtils.retrieveTransactionManager()`] for details on the algorithm used to look up a transaction manager in the test's `ApplicationContext`. @@ -668,7 +668,7 @@ Kotlin:: ====== See -https://github.com/spring-projects/spring-framework/blob/main/spring-test/src/test/java/org/springframework/test/context/junit/jupiter/orm/JpaEntityListenerTests.java[JpaEntityListenerTests] +{spring-framework-code}/spring-test/src/test/java/org/springframework/test/context/junit/jupiter/orm/JpaEntityListenerTests.java[JpaEntityListenerTests] in the Spring Framework test suite for working examples using all JPA lifecycle callbacks. ===== diff --git a/framework-docs/modules/ROOT/pages/testing/unit.adoc b/framework-docs/modules/ROOT/pages/testing/unit.adoc index f137331a5138..d2ce8648b0e9 100644 --- a/framework-docs/modules/ROOT/pages/testing/unit.adoc +++ b/framework-docs/modules/ROOT/pages/testing/unit.adoc @@ -112,16 +112,16 @@ categories: The `org.springframework.test.util` package contains several general purpose utilities for use in unit and integration testing. -{api-spring-framework}/test/util/AopTestUtils.html[`AopTestUtils`] is a collection of +{spring-framework-api}/test/util/AopTestUtils.html[`AopTestUtils`] is a collection of AOP-related utility methods. You can use these methods to obtain a reference to the underlying target object hidden behind one or more Spring proxies. For example, if you have configured a bean as a dynamic mock by using a library such as EasyMock or Mockito, and the mock is wrapped in a Spring proxy, you may need direct access to the underlying mock to configure expectations on it and perform verifications. For Spring's core AOP -utilities, see {api-spring-framework}/aop/support/AopUtils.html[`AopUtils`] and -{api-spring-framework}/aop/framework/AopProxyUtils.html[`AopProxyUtils`]. +utilities, see {spring-framework-api}/aop/support/AopUtils.html[`AopUtils`] and +{spring-framework-api}/aop/framework/AopProxyUtils.html[`AopProxyUtils`]. -{api-spring-framework}/test/util/ReflectionTestUtils.html[`ReflectionTestUtils`] is a +{spring-framework-api}/test/util/ReflectionTestUtils.html[`ReflectionTestUtils`] is a collection of reflection-based utility methods. You can use these methods in testing scenarios where you need to change the value of a constant, set a non-`public` field, invoke a non-`public` setter method, or invoke a non-`public` configuration or lifecycle @@ -135,7 +135,7 @@ callback method when testing application code for use cases such as the followin * Use of annotations such as `@PostConstruct` and `@PreDestroy` for lifecycle callback methods. -{api-spring-framework}/test/util/TestSocketUtils.html[`TestSocketUtils`] is a simple +{spring-framework-api}/test/util/TestSocketUtils.html[`TestSocketUtils`] is a simple utility for finding available TCP ports on `localhost` for use in integration testing scenarios. @@ -155,7 +155,7 @@ server for the port it is currently using. === Spring MVC Testing Utilities The `org.springframework.test.web` package contains -{api-spring-framework}/test/web/ModelAndViewAssert.html[`ModelAndViewAssert`], which you +{spring-framework-api}/test/web/ModelAndViewAssert.html[`ModelAndViewAssert`], which you can use in combination with JUnit, TestNG, or any other testing framework for unit tests that deal with Spring MVC `ModelAndView` objects. diff --git a/framework-docs/modules/ROOT/pages/testing/webtestclient.adoc b/framework-docs/modules/ROOT/pages/testing/webtestclient.adoc index 16a44856931c..0a10a3c17221 100644 --- a/framework-docs/modules/ROOT/pages/testing/webtestclient.adoc +++ b/framework-docs/modules/ROOT/pages/testing/webtestclient.adoc @@ -51,7 +51,7 @@ Kotlin:: ====== For Spring MVC, use the following which delegates to the -{api-spring-framework}/test/web/servlet/setup/StandaloneMockMvcBuilder.html[StandaloneMockMvcBuilder] +{spring-framework-api}/test/web/servlet/setup/StandaloneMockMvcBuilder.html[StandaloneMockMvcBuilder] to load infrastructure equivalent to the xref:web/webmvc/mvc-config.adoc[WebMvc Java config], registers the given controller(s), and creates an instance of xref:testing/spring-mvc-test-framework.adoc[MockMvc] to handle requests: @@ -84,7 +84,7 @@ infrastructure and controller declarations and use it to handle requests via moc and response objects, without a running server. For WebFlux, use the following where the Spring `ApplicationContext` is passed to -{api-spring-framework}/web/server/adapter/WebHttpHandlerBuilder.html#applicationContext-org.springframework.context.ApplicationContext-[WebHttpHandlerBuilder] +{spring-framework-api}/web/server/adapter/WebHttpHandlerBuilder.html#applicationContext-org.springframework.context.ApplicationContext-[WebHttpHandlerBuilder] to create the xref:web/webflux/reactive-spring.adoc#webflux-web-handler-api[WebHandler chain] to handle requests: @@ -130,7 +130,7 @@ Kotlin:: ====== For Spring MVC, use the following where the Spring `ApplicationContext` is passed to -{api-spring-framework}/test/web/servlet/setup/MockMvcBuilders.html#webAppContextSetup-org.springframework.web.context.WebApplicationContext-[MockMvcBuilders.webAppContextSetup] +{spring-framework-api}/test/web/servlet/setup/MockMvcBuilders.html#webAppContextSetup-org.springframework.web.context.WebApplicationContext-[MockMvcBuilders.webAppContextSetup] to create a xref:testing/spring-mvc-test-framework.adoc[MockMvc] instance to handle requests: @@ -442,7 +442,7 @@ Kotlin:: TIP: When you need to decode to a target type with generics, look for the overloaded methods that accept -{api-spring-framework}/core/ParameterizedTypeReference.html[`ParameterizedTypeReference`] +{spring-framework-api}/core/ParameterizedTypeReference.html[`ParameterizedTypeReference`] instead of `Class`. diff --git a/framework-docs/modules/ROOT/pages/web-reactive.adoc b/framework-docs/modules/ROOT/pages/web-reactive.adoc index b7ef832ffa33..e5290659e5dc 100644 --- a/framework-docs/modules/ROOT/pages/web-reactive.adoc +++ b/framework-docs/modules/ROOT/pages/web-reactive.adoc @@ -2,7 +2,7 @@ = Web on Reactive Stack This part of the documentation covers support for reactive-stack web applications built -on a https://www.reactive-streams.org/[Reactive Streams] API to run on non-blocking +on a {reactive-streams-site}/[Reactive Streams] API to run on non-blocking servers, such as Netty, Undertow, and Servlet containers. Individual chapters cover the xref:web/webflux.adoc#webflux[Spring WebFlux] framework, the reactive xref:web/webflux-webclient.adoc[`WebClient`], support for xref:web-reactive.adoc#webflux-test[testing], diff --git a/framework-docs/modules/ROOT/pages/web/integration.adoc b/framework-docs/modules/ROOT/pages/web/integration.adoc index 6d362d916ae7..55276ff2bcb2 100644 --- a/framework-docs/modules/ROOT/pages/web/integration.adoc +++ b/framework-docs/modules/ROOT/pages/web/integration.adoc @@ -35,7 +35,7 @@ context"). This section details how you can configure a Spring container (a `WebApplicationContext`) that contains all of the 'business beans' in your application. Moving on to specifics, all you need to do is declare a -{api-spring-framework}/web/context/ContextLoaderListener.html[`ContextLoaderListener`] +{spring-framework-api}/web/context/ContextLoaderListener.html[`ContextLoaderListener`] in the standard Jakarta EE servlet `web.xml` file of your web application and add a `contextConfigLocation` `` section (in the same file) that defines which set of Spring XML configuration files to load. @@ -62,7 +62,7 @@ Further consider the following `` configuration: If you do not specify the `contextConfigLocation` context parameter, the `ContextLoaderListener` looks for a file called `/WEB-INF/applicationContext.xml` to load. Once the context files are loaded, Spring creates a -{api-spring-framework}/web/context/WebApplicationContext.html[`WebApplicationContext`] +{spring-framework-api}/web/context/WebApplicationContext.html[`WebApplicationContext`] object based on the bean definitions and stores it in the `ServletContext` of the web application. @@ -78,7 +78,7 @@ The following example shows how to get the `WebApplicationContext`: ---- The -{api-spring-framework}/web/context/support/WebApplicationContextUtils.html[`WebApplicationContextUtils`] +{spring-framework-api}/web/context/support/WebApplicationContextUtils.html[`WebApplicationContextUtils`] class is for convenience, so you need not remember the name of the `ServletContext` attribute. Its `getWebApplicationContext()` method returns `null` if an object does not exist under the `WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE` @@ -142,7 +142,7 @@ Configuration-wise, you can define `SpringBeanFacesELResolver` in your JSF A custom `ELResolver` works well when mapping your properties to beans in `faces-config.xml`, but, at times, you may need to explicitly grab a bean. -The {api-spring-framework}/web/jsf/FacesContextUtils.html[`FacesContextUtils`] +The {spring-framework-api}/web/jsf/FacesContextUtils.html[`FacesContextUtils`] class makes this easy. It is similar to `WebApplicationContextUtils`, except that it takes a `FacesContext` parameter rather than a `ServletContext` parameter. diff --git a/framework-docs/modules/ROOT/pages/web/webflux-cors.adoc b/framework-docs/modules/ROOT/pages/web/webflux-cors.adoc index 845976b8e02c..4de277efa7ea 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux-cors.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux-cors.adoc @@ -47,7 +47,7 @@ rejected. No CORS headers are added to the responses of simple and actual CORS r and, consequently, browsers reject them. Each `HandlerMapping` can be -{api-spring-framework}/web/reactive/handler/AbstractHandlerMapping.html#setCorsConfigurations-java.util.Map-[configured] +{spring-framework-api}/web/reactive/handler/AbstractHandlerMapping.html#setCorsConfigurations-java.util.Map-[configured] individually with URL pattern-based `CorsConfiguration` mappings. In most cases, applications use the WebFlux Java configuration to declare such mappings, which results in a single, global map passed to all `HandlerMapping` implementations. @@ -60,7 +60,7 @@ class- or method-level `@CrossOrigin` annotations (other handlers can implement The rules for combining global and local configuration are generally additive -- for example, all global and all local origins. For those attributes where only a single value can be accepted, such as `allowCredentials` and `maxAge`, the local overrides the global value. See -{api-spring-framework}/web/cors/CorsConfiguration.html#combine-org.springframework.web.cors.CorsConfiguration-[`CorsConfiguration#combine(CorsConfiguration)`] +{spring-framework-api}/web/cors/CorsConfiguration.html#combine-org.springframework.web.cors.CorsConfiguration-[`CorsConfiguration#combine(CorsConfiguration)`] for more details. [TIP] @@ -108,7 +108,7 @@ a finite set of values instead to provide a higher level of security. == `@CrossOrigin` [.small]#xref:web/webmvc-cors.adoc#mvc-cors-controller[See equivalent in the Servlet stack]# -The {api-spring-framework}/web/bind/annotation/CrossOrigin.html[`@CrossOrigin`] +The {spring-framework-api}/web/bind/annotation/CrossOrigin.html[`@CrossOrigin`] annotation enables cross-origin requests on annotated controller methods, as the following example shows: @@ -363,7 +363,7 @@ Kotlin:: [.small]#xref:web/webmvc-cors.adoc#mvc-cors-filter[See equivalent in the Servlet stack]# You can apply CORS support through the built-in -{api-spring-framework}/web/cors/reactive/CorsWebFilter.html[`CorsWebFilter`], which is a +{spring-framework-api}/web/cors/reactive/CorsWebFilter.html[`CorsWebFilter`], which is a good fit with <>. NOTE: If you try to use the `CorsFilter` with Spring Security, keep in mind that Spring diff --git a/framework-docs/modules/ROOT/pages/web/webflux-functional.adoc b/framework-docs/modules/ROOT/pages/web/webflux-functional.adoc index 3e3cb23c9f86..35a5b50588cd 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux-functional.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux-functional.adoc @@ -122,7 +122,7 @@ Most applications can run through the WebFlux Java configuration, see xref:web/w `ServerRequest` and `ServerResponse` are immutable interfaces that offer JDK 8-friendly access to the HTTP request and response. -Both request and response provide https://www.reactive-streams.org[Reactive Streams] back pressure +Both request and response provide {reactive-streams-site}[Reactive Streams] back pressure against the body streams. The request body is represented with a Reactor `Flux` or `Mono`. The response body is represented with any Reactive Streams `Publisher`, including `Flux` and `Mono`. @@ -350,7 +350,7 @@ ServerResponse.created(location).build() ====== Depending on the codec used, it is possible to pass hint parameters to customize how the -body is serialized or deserialized. For example, to specify a https://www.baeldung.com/jackson-json-view-annotation[Jackson JSON view]: +body is serialized or deserialized. For example, to specify a {baeldung-blog}/jackson-json-view-annotation[Jackson JSON view]: [tabs] ====== diff --git a/framework-docs/modules/ROOT/pages/web/webflux-reactive-libraries.adoc b/framework-docs/modules/ROOT/pages/web/webflux-reactive-libraries.adoc index 45ac4fcd581d..b4b8cc533b3a 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux-reactive-libraries.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux-reactive-libraries.adoc @@ -11,7 +11,7 @@ encoding or decoding HTTP messages). For annotated controllers, WebFlux transparently adapts to the reactive library chosen by the application. This is done with the help of the -{api-spring-framework}/core/ReactiveAdapterRegistry.html[`ReactiveAdapterRegistry`], which +{spring-framework-api}/core/ReactiveAdapterRegistry.html[`ReactiveAdapterRegistry`], which provides pluggable support for reactive library and other asynchronous types. The registry has built-in support for RxJava 3, Kotlin coroutines and SmallRye Mutiny, but you can register others, too. diff --git a/framework-docs/modules/ROOT/pages/web/webflux-view.adoc b/framework-docs/modules/ROOT/pages/web/webflux-view.adoc index 491a064f3ffd..288fc1a38c52 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux-view.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux-view.adoc @@ -209,7 +209,7 @@ sections of the Spring MVC documentation. The Spring Framework has a built-in integration for using Spring WebFlux with any templating library that can run on top of the -https://www.jcp.org/en/jsr/detail?id=223[JSR-223] Java scripting engine. +{JSR}223[JSR-223] Java scripting engine. The following table shows the templating libraries that we have tested on different script engines: [%header] @@ -221,7 +221,7 @@ The following table shows the templating libraries that we have tested on differ |https://www.embeddedjs.com/[EJS] |https://openjdk.java.net/projects/nashorn/[Nashorn] |https://www.stuartellis.name/articles/erb/[ERB] |https://www.jruby.org[JRuby] |https://docs.python.org/2/library/string.html#template-strings[String templates] |https://www.jython.org/[Jython] -|https://github.com/sdeleuze/kotlin-script-templating[Kotlin Script templating] |https://kotlinlang.org/[Kotlin] +|https://github.com/sdeleuze/kotlin-script-templating[Kotlin Script templating] |{kotlin-site}[Kotlin] |=== TIP: The basic rule for integrating any other script engine is that it must implement the @@ -312,7 +312,7 @@ The `render` function is called with the following parameters: * `String template`: The template content * `Map model`: The view model * `RenderingContext renderingContext`: The - {api-spring-framework}/web/servlet/view/script/RenderingContext.html[`RenderingContext`] + {spring-framework-api}/web/servlet/view/script/RenderingContext.html[`RenderingContext`] that gives access to the application context, the locale, the template loader, and the URL (since 5.0) @@ -404,8 +404,8 @@ The following example shows how compile a template: ---- Check out the Spring Framework unit tests, -{spring-framework-main-code}/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/script[Java], and -{spring-framework-main-code}/spring-webflux/src/test/resources/org/springframework/web/reactive/result/view/script[resources], +{spring-framework-code}/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/script[Java], and +{spring-framework-code}/spring-webflux/src/test/resources/org/springframework/web/reactive/result/view/script[resources], for more configuration examples. diff --git a/framework-docs/modules/ROOT/pages/web/webflux-webclient.adoc b/framework-docs/modules/ROOT/pages/web/webflux-webclient.adoc index effa703ab605..448ff3db92d8 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux-webclient.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux-webclient.adoc @@ -12,8 +12,8 @@ decode request and response content on the server side. `WebClient` needs an HTTP client library to perform requests with. There is built-in support for the following: -* https://github.com/reactor/reactor-netty[Reactor Netty] -* https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpClient.html[JDK HttpClient] +* {reactor-github-org}/reactor-netty[Reactor Netty] +* {java-api}/java.net.http/java/net/http/HttpClient.html[JDK HttpClient] * https://github.com/jetty-project/jetty-reactive-httpclient[Jetty Reactive HttpClient] * https://hc.apache.org/index.html[Apache HttpComponents] * Others can be plugged via `ClientHttpConnector`. diff --git a/framework-docs/modules/ROOT/pages/web/webflux-webclient/client-testing.adoc b/framework-docs/modules/ROOT/pages/web/webflux-webclient/client-testing.adoc index 8b1393cc52b6..febbb5498272 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux-webclient/client-testing.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux-webclient/client-testing.adoc @@ -5,7 +5,7 @@ To test code that uses the `WebClient`, you can use a mock web server, such as the https://github.com/square/okhttp#mockwebserver[OkHttp MockWebServer]. To see an example of its use, check out -{spring-framework-main-code}/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/WebClientIntegrationTests.java[`WebClientIntegrationTests`] +{spring-framework-code}/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/WebClientIntegrationTests.java[`WebClientIntegrationTests`] in the Spring Framework test suite or the https://github.com/square/okhttp/tree/master/samples/static-server[`static-server`] sample in the OkHttp repository. diff --git a/framework-docs/modules/ROOT/pages/web/webflux.adoc b/framework-docs/modules/ROOT/pages/web/webflux.adoc index a9487c93739b..cbf487481cb8 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux.adoc @@ -7,12 +7,12 @@ The original web framework included in the Spring Framework, Spring Web MVC, was purpose-built for the Servlet API and Servlet containers. The reactive-stack web framework, Spring WebFlux, was added later in version 5.0. It is fully non-blocking, supports -https://www.reactive-streams.org/[Reactive Streams] back pressure, and runs on such servers as +{reactive-streams-site}/[Reactive Streams] back pressure, and runs on such servers as Netty, Undertow, and Servlet containers. Both web frameworks mirror the names of their source modules -({spring-framework-main-code}/spring-webmvc[spring-webmvc] and -{spring-framework-main-code}/spring-webflux[spring-webflux]) and co-exist side by side in the +({spring-framework-code}/spring-webmvc[spring-webmvc] and +{spring-framework-code}/spring-webflux[spring-webflux]) and co-exist side by side in the Spring Framework. Each module is optional. Applications can use one or the other module or, in some cases, both -- for example, Spring MVC controllers with the reactive `WebClient`. diff --git a/framework-docs/modules/ROOT/pages/web/webflux/ann-rest-exceptions.adoc b/framework-docs/modules/ROOT/pages/web/webflux/ann-rest-exceptions.adoc index d8fb4a7291c2..f775e28e2ade 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/ann-rest-exceptions.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/ann-rest-exceptions.adoc @@ -5,7 +5,7 @@ A common requirement for REST services is to include details in the body of error responses. The Spring Framework supports the "Problem Details for HTTP APIs" -specification, https://www.rfc-editor.org/rfc/rfc7807.html[RFC 7807]. +specification, {rfc-site}/rfc7807.html[RFC 7807]. The following are the main abstractions for this support: diff --git a/framework-docs/modules/ROOT/pages/web/webflux/caching.adoc b/framework-docs/modules/ROOT/pages/web/webflux/caching.adoc index 5da8d201aedf..a01e743b5edf 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/caching.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/caching.adoc @@ -19,14 +19,14 @@ This section describes the HTTP caching related options available in Spring WebF == `CacheControl` [.small]#xref:web/webmvc/mvc-caching.adoc#mvc-caching-cachecontrol[See equivalent in the Servlet stack]# -{api-spring-framework}/http/CacheControl.html[`CacheControl`] provides support for +{spring-framework-api}/http/CacheControl.html[`CacheControl`] provides support for configuring settings related to the `Cache-Control` header and is accepted as an argument in a number of places: * xref:web/webflux/caching.adoc#webflux-caching-etag-lastmodified[Controllers] * xref:web/webflux/caching.adoc#webflux-caching-static-resources[Static Resources] -While https://tools.ietf.org/html/rfc7234#section-5.2.2[RFC 7234] describes all possible +While {rfc-site}/rfc7234#section-5.2.2[RFC 7234] describes all possible directives for the `Cache-Control` response header, the `CacheControl` type takes a use case-oriented approach that focuses on the common scenarios, as the following example shows: diff --git a/framework-docs/modules/ROOT/pages/web/webflux/config.adoc b/framework-docs/modules/ROOT/pages/web/webflux/config.adoc index 69e2f8195784..f2c9796bf49f 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/config.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/config.adoc @@ -348,18 +348,18 @@ Kotlin:: more readers and writers, customize the default ones, or replace the default ones completely. For Jackson JSON and XML, consider using -{api-spring-framework}/http/converter/json/Jackson2ObjectMapperBuilder.html[`Jackson2ObjectMapperBuilder`], +{spring-framework-api}/http/converter/json/Jackson2ObjectMapperBuilder.html[`Jackson2ObjectMapperBuilder`], which customizes Jackson's default properties with the following ones: -* https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/DeserializationFeature.html#FAIL_ON_UNKNOWN_PROPERTIES[`DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES`] is disabled. -* https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/MapperFeature.html#DEFAULT_VIEW_INCLUSION[`MapperFeature.DEFAULT_VIEW_INCLUSION`] is disabled. +* {jackson-docs}/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/DeserializationFeature.html#FAIL_ON_UNKNOWN_PROPERTIES[`DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES`] is disabled. +* {jackson-docs}/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/MapperFeature.html#DEFAULT_VIEW_INCLUSION[`MapperFeature.DEFAULT_VIEW_INCLUSION`] is disabled. It also automatically registers the following well-known modules if they are detected on the classpath: -* https://github.com/FasterXML/jackson-datatype-joda[`jackson-datatype-joda`]: Support for Joda-Time types. -* https://github.com/FasterXML/jackson-datatype-jsr310[`jackson-datatype-jsr310`]: Support for Java 8 Date and Time API types. -* https://github.com/FasterXML/jackson-datatype-jdk8[`jackson-datatype-jdk8`]: Support for other Java 8 types, such as `Optional`. -* https://github.com/FasterXML/jackson-module-kotlin[`jackson-module-kotlin`]: Support for Kotlin classes and data classes. +* {jackson-github-org}/jackson-datatype-joda[`jackson-datatype-joda`]: Support for Joda-Time types. +* {jackson-github-org}/jackson-datatype-jsr310[`jackson-datatype-jsr310`]: Support for Java 8 Date and Time API types. +* {jackson-github-org}/jackson-datatype-jdk8[`jackson-datatype-jdk8`]: Support for other Java 8 types, such as `Optional`. +* {jackson-github-org}/jackson-module-kotlin[`jackson-module-kotlin`]: Support for Kotlin classes and data classes. @@ -549,7 +549,7 @@ See xref:web/webflux-view.adoc[View Technologies] for more on the view technolog [.small]#xref:web/webmvc/mvc-config/static-resources.adoc[See equivalent in the Servlet stack]# This option provides a convenient way to serve static resources from a list of -{api-spring-framework}/core/io/Resource.html[`Resource`]-based locations. +{spring-framework-api}/core/io/Resource.html[`Resource`]-based locations. In the next example, given a request that starts with `/resources`, the relative path is used to find and serve static resources relative to `/static` on the classpath. Resources @@ -598,8 +598,8 @@ Kotlin:: See also xref:web/webflux/caching.adoc#webflux-caching-static-resources[HTTP caching support for static resources]. The resource handler also supports a chain of -{api-spring-framework}/web/reactive/resource/ResourceResolver.html[`ResourceResolver`] implementations and -{api-spring-framework}/web/reactive/resource/ResourceTransformer.html[`ResourceTransformer`] implementations, +{spring-framework-api}/web/reactive/resource/ResourceResolver.html[`ResourceResolver`] implementations and +{spring-framework-api}/web/reactive/resource/ResourceTransformer.html[`ResourceTransformer`] implementations, which can be used to create a toolchain for working with optimized resources. You can use the `VersionResourceResolver` for versioned resource URLs based on an MD5 hash @@ -685,7 +685,7 @@ for fine-grained control, e.g. last-modified behavior and optimized resource res [.small]#xref:web/webmvc/mvc-config/path-matching.adoc[See equivalent in the Servlet stack]# You can customize options related to path matching. For details on the individual options, see the -{api-spring-framework}/web/reactive/config/PathMatchConfigurer.html[`PathMatchConfigurer`] javadoc. +{spring-framework-api}/web/reactive/config/PathMatchConfigurer.html[`PathMatchConfigurer`] javadoc. The following example shows how to use `PathMatchConfigurer`: [tabs] @@ -746,7 +746,7 @@ The WebFlux Java config allows you to customize blocking execution in WebFlux. You can have blocking controller methods called on a separate thread by providing an `AsyncTaskExecutor` such as the -{api-spring-framework}/core/task/VirtualThreadTaskExecutor.html[`VirtualThreadTaskExecutor`] +{spring-framework-api}/core/task/VirtualThreadTaskExecutor.html[`VirtualThreadTaskExecutor`] as follows: [tabs] diff --git a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-advice.adoc b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-advice.adoc index 362425369283..cf77c0ca8409 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-advice.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-advice.adoc @@ -64,6 +64,6 @@ Kotlin:: The selectors in the preceding example are evaluated at runtime and may negatively impact performance if used extensively. See the -{api-spring-framework}/web/bind/annotation/ControllerAdvice.html[`@ControllerAdvice`] +{spring-framework-api}/web/bind/annotation/ControllerAdvice.html[`@ControllerAdvice`] javadoc for more details. diff --git a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/arguments.adoc b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/arguments.adoc index 87cb4522b2aa..4c0215ad403b 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/arguments.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/arguments.adoc @@ -114,7 +114,7 @@ and others) and is equivalent to `required=false`. | Any other argument | If a method argument is not matched to any of the above, it is, by default, resolved as a `@RequestParam` if it is a simple type, as determined by - {api-spring-framework}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty], + {spring-framework-api}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty], or as a `@ModelAttribute`, otherwise. |=== diff --git a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/jackson.adoc b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/jackson.adoc index fe3db7c7d560..1def0f1794fe 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/jackson.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/jackson.adoc @@ -8,7 +8,7 @@ Spring offers support for the Jackson JSON library. [.small]#xref:web/webmvc/mvc-controller/ann-methods/jackson.adoc[See equivalent in the Servlet stack]# Spring WebFlux provides built-in support for -https://www.baeldung.com/jackson-json-view-annotation[Jackson's Serialization Views], +{baeldung-blog}/jackson-json-view-annotation[Jackson's Serialization Views], which allows rendering only a subset of all fields in an `Object`. To use it with `@ResponseBody` or `ResponseEntity` controller methods, you can use Jackson's `@JsonView` annotation to activate a serialization view class, as the following example shows: diff --git a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/matrix-variables.adoc b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/matrix-variables.adoc index b5a5bd9753c5..02d4555997dd 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/matrix-variables.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/matrix-variables.adoc @@ -3,7 +3,7 @@ [.small]#xref:web/webmvc/mvc-controller/ann-methods/matrix-variables.adoc[See equivalent in the Servlet stack]# -https://tools.ietf.org/html/rfc3986#section-3.3[RFC 3986] discusses name-value pairs in +{rfc-site}/rfc3986#section-3.3[RFC 3986] discusses name-value pairs in path segments. In Spring WebFlux, we refer to those as "`matrix variables`" based on an https://www.w3.org/DesignIssues/MatrixURIs.html["`old post`"] by Tim Berners-Lee, but they can be also be referred to as URI path parameters. diff --git a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/modelattrib-method-args.adoc b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/modelattrib-method-args.adoc index 8cccf3b7d0d4..35abbbd828ee 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/modelattrib-method-args.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/modelattrib-method-args.adoc @@ -197,7 +197,7 @@ controller method xref:web/webmvc/mvc-controller/ann-validation.adoc[Validation] TIP: Using `@ModelAttribute` is optional. By default, any argument that is not a simple value type as determined by -{api-spring-framework}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty] +{spring-framework-api}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty] _AND_ that is not resolved by any other argument resolver is treated as an `@ModelAttribute`. diff --git a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/requestparam.adoc b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/requestparam.adoc index 2752035758fd..372c4bfaa6be 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/requestparam.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/requestparam.adoc @@ -74,7 +74,7 @@ When a `@RequestParam` annotation is declared on a `Map` or Note that use of `@RequestParam` is optional -- for example, to set its attributes. By default, any argument that is a simple value type (as determined by -{api-spring-framework}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty]) +{spring-framework-api}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty]) and is not resolved by any other argument resolver is treated as if it were annotated with `@RequestParam`. diff --git a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/return-types.adoc b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/return-types.adoc index 7752ee485377..750cdf443660 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/return-types.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/return-types.adoc @@ -75,7 +75,7 @@ generally supported for all return values. | Other return values | If a return value remains unresolved in any other way, it is treated as a model attribute, unless it is a simple type as determined by - {api-spring-framework}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty], + {spring-framework-api}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty], in which case it remains unresolved. |=== diff --git a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-modelattrib-methods.adoc b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-modelattrib-methods.adoc index bf8d7afa04e9..fab54b23073a 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-modelattrib-methods.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-modelattrib-methods.adoc @@ -75,7 +75,7 @@ Kotlin:: ====== NOTE: When a name is not explicitly specified, a default name is chosen based on the type, -as explained in the javadoc for {api-spring-framework}/core/Conventions.html[`Conventions`]. +as explained in the javadoc for {spring-framework-api}/core/Conventions.html[`Conventions`]. You can always assign an explicit name by using the overloaded `addAttribute` method or through the name attribute on `@ModelAttribute` (for a return value). diff --git a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-validation.adoc b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-validation.adoc index 8b0c069db657..584b0f870294 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-validation.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/controller/ann-validation.adoc @@ -17,7 +17,7 @@ raise `MethodArgumentNotValidException` in case of validation errors. If you wan the errors in the controller method instead, you can declare an `Errors` or `BindingResult` method parameter immediately after the validated parameter. -Second, if https://beanvalidation.org/[Java Bean Validation] is present _AND_ other method +Second, if {bean-validation-site}[Java Bean Validation] is present _AND_ other method parameters, e.g. `@RequestHeader`, `@RequestParam`, `@PathVariable` have `@Constraint` annotations, then method validation is applied to all method arguments, raising `HandlerMethodValidationException` in case of validation errors. You can still declare an diff --git a/framework-docs/modules/ROOT/pages/web/webflux/dispatcher-handler.adoc b/framework-docs/modules/ROOT/pages/web/webflux/dispatcher-handler.adoc index b0919fd8fdab..a621320538ae 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/dispatcher-handler.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/dispatcher-handler.adoc @@ -12,7 +12,7 @@ This model is flexible and supports diverse workflows. It is also designed to be a Spring bean itself and implements `ApplicationContextAware` for access to the context in which it runs. If `DispatcherHandler` is declared with a bean name of `webHandler`, it is, in turn, discovered by -{api-spring-framework}/web/server/adapter/WebHttpHandlerBuilder.html[`WebHttpHandlerBuilder`], +{spring-framework-api}/web/server/adapter/WebHttpHandlerBuilder.html[`WebHttpHandlerBuilder`], which puts together a request-processing chain, as described in xref:web/webflux/reactive-spring.adoc#webflux-web-handler-api[`WebHandler` API]. Spring configuration in a WebFlux application typically contains: @@ -144,9 +144,9 @@ as a `HandlerResult`, along with some additional context, and passed to the firs | 100 | `ViewResolutionResultHandler` -| `CharSequence`, {api-spring-framework}/web/reactive/result/view/View.html[`View`], - {api-spring-framework}/ui/Model.html[Model], `Map`, - {api-spring-framework}/web/reactive/result/view/Rendering.html[Rendering], +| `CharSequence`, {spring-framework-api}/web/reactive/result/view/View.html[`View`], + {spring-framework-api}/ui/Model.html[Model], `Map`, + {spring-framework-api}/web/reactive/result/view/Rendering.html[Rendering], or any other `Object` is treated as a model attribute. See also xref:web/webflux/dispatcher-handler.adoc#webflux-viewresolution[View Resolution]. @@ -202,13 +202,13 @@ the list of configured `ViewResolver` implementations. trailing slash, and resolve it to a `View`. The same also happens when a view name was not provided (for example, model attribute was returned) or an async return value (for example, `Mono` completed empty). -* {api-spring-framework}/web/reactive/result/view/Rendering.html[Rendering]: API for +* {spring-framework-api}/web/reactive/result/view/Rendering.html[Rendering]: API for view resolution scenarios. Explore the options in your IDE with code completion. * `Model`, `Map`: Extra model attributes to be added to the model for the request. * Any other: Any other return value (except for simple types, as determined by -{api-spring-framework}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty]) +{spring-framework-api}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty]) is treated as a model attribute to be added to the model. The attribute name is derived -from the class name by using {api-spring-framework}/core/Conventions.html[conventions], +from the class name by using {spring-framework-api}/core/Conventions.html[conventions], unless a handler method `@ModelAttribute` annotation is present. The model can contain asynchronous, reactive types (for example, from Reactor or RxJava). Prior diff --git a/framework-docs/modules/ROOT/pages/web/webflux/http2.adoc b/framework-docs/modules/ROOT/pages/web/webflux/http2.adoc index 39f080c10178..1b5a9e643a7e 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/http2.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/http2.adoc @@ -6,4 +6,4 @@ HTTP/2 is supported with Reactor Netty, Tomcat, Jetty, and Undertow. However, there are considerations related to server configuration. For more details, see the -https://github.com/spring-projects/spring-framework/wiki/HTTP-2-support[HTTP/2 wiki page]. +{spring-framework-wiki}/HTTP-2-support[HTTP/2 wiki page]. diff --git a/framework-docs/modules/ROOT/pages/web/webflux/new-framework.adoc b/framework-docs/modules/ROOT/pages/web/webflux/new-framework.adoc index e9b72f23173e..b03cefb04bbe 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/new-framework.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/new-framework.adoc @@ -38,13 +38,13 @@ code, it becomes important to control the rate of events so that a fast producer overwhelm its destination. Reactive Streams is a -https://github.com/reactive-streams/reactive-streams-jvm/blob/master/README.md#specification[small spec] -(also https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/Flow.html[adopted] in Java 9) +{reactive-streams-spec}[small spec] +(also {java-api}/java.base/java/util/concurrent/Flow.html[adopted] in Java 9) that defines the interaction between asynchronous components with back pressure. For example a data repository (acting as -https://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/org/reactivestreams/Publisher.html[Publisher]) +{reactive-streams-site}/reactive-streams-1.0.1-javadoc/org/reactivestreams/Publisher.html[Publisher]) can produce data that an HTTP server (acting as -https://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/org/reactivestreams/Subscriber.html[Subscriber]) +{reactive-streams-site}/reactive-streams-1.0.1-javadoc/org/reactivestreams/Subscriber.html[Subscriber]) can then write to the response. The main purpose of Reactive Streams is to let the subscriber control how quickly or how slowly the publisher produces data. @@ -63,10 +63,10 @@ low-level. Applications need a higher-level and richer, functional API to compose async logic -- similar to the Java 8 `Stream` API but not only for collections. This is the role that reactive libraries play. -https://github.com/reactor/reactor[Reactor] is the reactive library of choice for +{reactor-github-org}/reactor[Reactor] is the reactive library of choice for Spring WebFlux. It provides the -https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Mono.html[`Mono`] and -https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Flux.html[`Flux`] API types +{reactor-site}/docs/core/release/api/reactor/core/publisher/Mono.html[`Mono`] and +{reactor-site}/docs/core/release/api/reactor/core/publisher/Flux.html[`Flux`] API types to work on data sequences of 0..1 (`Mono`) and 0..N (`Flux`) through a rich set of operators aligned with the ReactiveX https://reactivex.io/documentation/operators.html[vocabulary of operators]. Reactor is a Reactive Streams library and, therefore, all of its operators support non-blocking back pressure. diff --git a/framework-docs/modules/ROOT/pages/web/webflux/reactive-spring.adoc b/framework-docs/modules/ROOT/pages/web/webflux/reactive-spring.adoc index 4be5c9b4311c..13d527592cc8 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/reactive-spring.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/reactive-spring.adoc @@ -13,7 +13,7 @@ request handling, on top of which concrete programming models such as annotated controllers and functional endpoints are built. * For the client side, there is a basic `ClientHttpConnector` contract to perform HTTP requests with non-blocking I/O and Reactive Streams back pressure, along with adapters for -https://github.com/reactor/reactor-netty[Reactor Netty], reactive +{reactor-github-org}/reactor-netty[Reactor Netty], reactive https://github.com/jetty-project/jetty-reactive-httpclient[Jetty HttpClient] and https://hc.apache.org/[Apache HttpComponents]. The higher level xref:web/webflux-webclient.adoc[WebClient] used in applications @@ -26,7 +26,7 @@ deserialization of HTTP request and response content. [[webflux-httphandler]] == `HttpHandler` -{api-spring-framework}/http/server/reactive/HttpHandler.html[HttpHandler] +{spring-framework-api}/http/server/reactive/HttpHandler.html[HttpHandler] is a simple contract with a single method to handle a request and a response. It is intentionally minimal, and its main and only purpose is to be a minimal abstraction over different HTTP server APIs. @@ -39,7 +39,7 @@ The following table describes the supported server APIs: | Netty | Netty API -| https://github.com/reactor/reactor-netty[Reactor Netty] +| {reactor-github-org}/reactor-netty[Reactor Netty] | Undertow | Undertow API @@ -59,7 +59,7 @@ The following table describes the supported server APIs: |=== The following table describes server dependencies (also see -https://github.com/spring-projects/spring-framework/wiki/What%27s-New-in-the-Spring-Framework[supported versions]): +{spring-framework-wiki}/What%27s-New-in-the-Spring-Framework[supported versions]): |=== |Server name|Group id|Artifact name @@ -213,7 +213,7 @@ Kotlin:: *Servlet Container* To deploy as a WAR to any Servlet container, you can extend and include -{api-spring-framework}/web/server/adapter/AbstractReactiveWebInitializer.html[`AbstractReactiveWebInitializer`] +{spring-framework-api}/web/server/adapter/AbstractReactiveWebInitializer.html[`AbstractReactiveWebInitializer`] in the WAR. That class wraps an `HttpHandler` with `ServletHttpHandlerAdapter` and registers that as a `Servlet`. @@ -224,9 +224,9 @@ that as a `Servlet`. The `org.springframework.web.server` package builds on the xref:web/webflux/reactive-spring.adoc#webflux-httphandler[`HttpHandler`] contract to provide a general-purpose web API for processing requests through a chain of multiple -{api-spring-framework}/web/server/WebExceptionHandler.html[`WebExceptionHandler`], multiple -{api-spring-framework}/web/server/WebFilter.html[`WebFilter`], and a single -{api-spring-framework}/web/server/WebHandler.html[`WebHandler`] component. The chain can +{spring-framework-api}/web/server/WebExceptionHandler.html[`WebExceptionHandler`], multiple +{spring-framework-api}/web/server/WebFilter.html[`WebFilter`], and a single +{spring-framework-api}/web/server/WebHandler.html[`WebHandler`] component. The chain can be put together with `WebHttpHandlerBuilder` by simply pointing to a Spring `ApplicationContext` where components are xref:web/webflux/reactive-spring.adoc#webflux-web-handler-api-special-beans[auto-detected], and/or by registering components @@ -438,7 +438,7 @@ The following table describes the available `WebExceptionHandler` implementation | `ResponseStatusExceptionHandler` | Provides handling for exceptions of type - {api-spring-framework}/web/server/ResponseStatusException.html[`ResponseStatusException`] + {spring-framework-api}/web/server/ResponseStatusException.html[`ResponseStatusException`] by setting the response to the HTTP status code of the exception. | `WebFluxResponseStatusExceptionHandler` @@ -459,15 +459,15 @@ The `spring-web` and `spring-core` modules provide support for serializing and deserializing byte content to and from higher level objects through non-blocking I/O with Reactive Streams back pressure. The following describes this support: -* {api-spring-framework}/core/codec/Encoder.html[`Encoder`] and -{api-spring-framework}/core/codec/Decoder.html[`Decoder`] are low level contracts to +* {spring-framework-api}/core/codec/Encoder.html[`Encoder`] and +{spring-framework-api}/core/codec/Decoder.html[`Decoder`] are low level contracts to encode and decode content independent of HTTP. -* {api-spring-framework}/http/codec/HttpMessageReader.html[`HttpMessageReader`] and -{api-spring-framework}/http/codec/HttpMessageWriter.html[`HttpMessageWriter`] are contracts +* {spring-framework-api}/http/codec/HttpMessageReader.html[`HttpMessageReader`] and +{spring-framework-api}/http/codec/HttpMessageWriter.html[`HttpMessageWriter`] are contracts to encode and decode HTTP message content. * An `Encoder` can be wrapped with `EncoderHttpMessageWriter` to adapt it for use in a web application, while a `Decoder` can be wrapped with `DecoderHttpMessageReader`. -* {api-spring-framework}/core/io/buffer/DataBuffer.html[`DataBuffer`] abstracts different +* {spring-framework-api}/core/io/buffer/DataBuffer.html[`DataBuffer`] abstracts different byte buffer representations (e.g. Netty `ByteBuf`, `java.nio.ByteBuffer`, etc.) and is what all codecs work on. See xref:core/databuffer-codec.adoc[Data Buffers and Codecs] in the "Spring Core" section for more on this topic. @@ -485,7 +485,7 @@ xref:web/webflux/config.adoc#webflux-config-message-codecs[HTTP message codecs]. [[webflux-codecs-jackson]] === Jackson JSON -JSON and binary JSON (https://github.com/FasterXML/smile-format-specification[Smile]) are +JSON and binary JSON ({jackson-github-org}/smile-format-specification[Smile]) are both supported when the Jackson library is present. The `Jackson2Decoder` works as follows: @@ -549,7 +549,7 @@ for the actual parsing to a `Flux` and then simply collects the parts into By default, the `DefaultPartHttpMessageReader` is used, but this can be changed through the `ServerCodecConfigurer`. For more information about the `DefaultPartHttpMessageReader`, refer to the -{api-spring-framework}/http/codec/multipart/DefaultPartHttpMessageReader.html[javadoc of `DefaultPartHttpMessageReader`]. +{spring-framework-api}/http/codec/multipart/DefaultPartHttpMessageReader.html[javadoc of `DefaultPartHttpMessageReader`]. On the server side where multipart form content may need to be accessed from multiple places, `ServerWebExchange` provides a dedicated `getMultipartData()` method that parses @@ -643,11 +643,11 @@ is not useful for correlating log messages that belong to a specific request. Th WebFlux log messages are prefixed with a request-specific ID by default. On the server side, the log ID is stored in the `ServerWebExchange` attribute -({api-spring-framework}/web/server/ServerWebExchange.html#LOG_ID_ATTRIBUTE[`LOG_ID_ATTRIBUTE`]), +({spring-framework-api}/web/server/ServerWebExchange.html#LOG_ID_ATTRIBUTE[`LOG_ID_ATTRIBUTE`]), while a fully formatted prefix based on that ID is available from `ServerWebExchange#getLogPrefix()`. On the `WebClient` side, the log ID is stored in the `ClientRequest` attribute -({api-spring-framework}/web/reactive/function/client/ClientRequest.html#LOG_ID_ATTRIBUTE[`LOG_ID_ATTRIBUTE`]) +({spring-framework-api}/web/reactive/function/client/ClientRequest.html#LOG_ID_ATTRIBUTE[`LOG_ID_ATTRIBUTE`]) ,while a fully formatted prefix is available from `ClientRequest#logPrefix()`. diff --git a/framework-docs/modules/ROOT/pages/web/webflux/security.adoc b/framework-docs/modules/ROOT/pages/web/webflux/security.adoc index 4c448e3cba7b..fcb982d254cb 100644 --- a/framework-docs/modules/ROOT/pages/web/webflux/security.adoc +++ b/framework-docs/modules/ROOT/pages/web/webflux/security.adoc @@ -4,7 +4,7 @@ [.small]#xref:web/webmvc/mvc-security.adoc[See equivalent in the Servlet stack]# -The https://spring.io/projects/spring-security[Spring Security] project provides support +The {spring-site-projects}/spring-security[Spring Security] project provides support for protecting web applications from malicious exploits. See the Spring Security reference documentation, including: diff --git a/framework-docs/modules/ROOT/pages/web/webmvc-cors.adoc b/framework-docs/modules/ROOT/pages/web/webmvc-cors.adoc index 3a8596d8250a..a8e7bb148b64 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc-cors.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc-cors.adoc @@ -76,7 +76,7 @@ rejected. No CORS headers are added to the responses of simple and actual CORS r and, consequently, browsers reject them. Each `HandlerMapping` can be -{api-spring-framework}/web/servlet/handler/AbstractHandlerMapping.html#setCorsConfigurations-java.util.Map-[configured] +{spring-framework-api}/web/servlet/handler/AbstractHandlerMapping.html#setCorsConfigurations-java.util.Map-[configured] individually with URL pattern-based `CorsConfiguration` mappings. In most cases, applications use the MVC Java configuration or the XML namespace to declare such mappings, which results in a single global map being passed to all `HandlerMapping` instances. @@ -89,7 +89,7 @@ class- or method-level `@CrossOrigin` annotations (other handlers can implement The rules for combining global and local configuration are generally additive -- for example, all global and all local origins. For those attributes where only a single value can be accepted, e.g. `allowCredentials` and `maxAge`, the local overrides the global value. See -{api-spring-framework}/web/cors/CorsConfiguration.html#combine-org.springframework.web.cors.CorsConfiguration-[`CorsConfiguration#combine(CorsConfiguration)`] +{spring-framework-api}/web/cors/CorsConfiguration.html#combine-org.springframework.web.cors.CorsConfiguration-[`CorsConfiguration#combine(CorsConfiguration)`] for more details. [TIP] @@ -108,7 +108,7 @@ To learn more from the source or make advanced customizations, check the code be == `@CrossOrigin` [.small]#xref:web/webflux-cors.adoc#webflux-cors-controller[See equivalent in the Reactive stack]# -The {api-spring-framework}/web/bind/annotation/CrossOrigin.html[`@CrossOrigin`] +The {spring-framework-api}/web/bind/annotation/CrossOrigin.html[`@CrossOrigin`] annotation enables cross-origin requests on annotated controller methods, as the following example shows: @@ -385,7 +385,7 @@ as the following example shows: [.small]#xref:web/webflux-cors.adoc#webflux-cors-webfilter[See equivalent in the Reactive stack]# You can apply CORS support through the built-in -{api-spring-framework}/web/filter/CorsFilter.html[`CorsFilter`]. +{spring-framework-api}/web/filter/CorsFilter.html[`CorsFilter`]. NOTE: If you try to use the `CorsFilter` with Spring Security, keep in mind that Spring Security has {docs-spring-security}/servlet/integrations/cors.html[built-in support] for diff --git a/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-feeds.adoc b/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-feeds.adoc index 68714b3dfe5c..d12bf374fa40 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-feeds.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-feeds.adoc @@ -102,7 +102,7 @@ cookies or other HTTP headers. The feed is automatically written to the response object after the method returns. For an example of creating an Atom view, see Alef Arendsen's Spring Team Blog -https://spring.io/blog/2009/03/16/adding-an-atom-view-to-an-application-using-spring-s-rest-support[entry]. +{spring-site-blog}/2009/03/16/adding-an-atom-view-to-an-application-using-spring-s-rest-support[entry]. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-jackson.adoc b/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-jackson.adoc index fd8f53404349..3b38ac877447 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-jackson.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-jackson.adoc @@ -31,7 +31,7 @@ serializers and deserializers for specific types. [.small]#xref:web/webflux-view.adoc#webflux-view-httpmessagewriter[See equivalent in the Reactive stack]# `MappingJackson2XmlView` uses the -https://github.com/FasterXML/jackson-dataformat-xml[Jackson XML extension's] `XmlMapper` +{jackson-github-org}/jackson-dataformat-xml[Jackson XML extension's] `XmlMapper` to render the response content as XML. If the model contains multiple entries, you should explicitly set the object to be serialized by using the `modelKey` bean property. If the model contains a single entry, it is serialized automatically. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-jsp.adoc b/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-jsp.adoc index 1e37619d3932..d926842b3581 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-jsp.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-jsp.adoc @@ -44,7 +44,7 @@ Spring tags have HTML escaping features to enable or disable escaping of charact The `spring.tld` tag library descriptor (TLD) is included in the `spring-webmvc.jar`. For a comprehensive reference on individual tags, browse the -{api-spring-framework}/web/servlet/tags/package-summary.html#package.description[API reference] +{spring-framework-api}/web/servlet/tags/package-summary.html#package.description[API reference] or see the tag library description. @@ -745,7 +745,7 @@ The HTML would be as follows: The `spring-form.tld` tag library descriptor (TLD) is included in the `spring-webmvc.jar`. For a comprehensive reference on individual tags, browse the -{api-spring-framework}/web/servlet/tags/form/package-summary.html#package.description[API reference] +{spring-framework-api}/web/servlet/tags/form/package-summary.html#package.description[API reference] or see the tag library description. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-script.adoc b/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-script.adoc index 27fac970a199..adc87d900352 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-script.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc-view/mvc-script.adoc @@ -5,7 +5,7 @@ The Spring Framework has a built-in integration for using Spring MVC with any templating library that can run on top of the -https://www.jcp.org/en/jsr/detail?id=223[JSR-223] Java scripting engine. We have tested the following +{JSR}223[JSR-223] Java scripting engine. We have tested the following templating libraries on different script engines: [%header] @@ -17,7 +17,7 @@ templating libraries on different script engines: |https://www.embeddedjs.com/[EJS] |https://openjdk.java.net/projects/nashorn/[Nashorn] |https://www.stuartellis.name/articles/erb/[ERB] |https://www.jruby.org[JRuby] |https://docs.python.org/2/library/string.html#template-strings[String templates] |https://www.jython.org/[Jython] -|https://github.com/sdeleuze/kotlin-script-templating[Kotlin Script templating] |https://kotlinlang.org/[Kotlin] +|https://github.com/sdeleuze/kotlin-script-templating[Kotlin Script templating] |{kotlin-site}[Kotlin] |=== TIP: The basic rule for integrating any other script engine is that it must implement the @@ -174,7 +174,7 @@ The render function is called with the following parameters: * `String template`: The template content * `Map model`: The view model * `RenderingContext renderingContext`: The - {api-spring-framework}/web/servlet/view/script/RenderingContext.html[`RenderingContext`] + {spring-framework-api}/web/servlet/view/script/RenderingContext.html[`RenderingContext`] that gives access to the application context, the locale, the template loader, and the URL (since 5.0) @@ -265,8 +265,8 @@ template engine configuration, for example). The following example shows how to ---- Check out the Spring Framework unit tests, -{spring-framework-main-code}/spring-webmvc/src/test/java/org/springframework/web/servlet/view/script[Java], and -{spring-framework-main-code}/spring-webmvc/src/test/resources/org/springframework/web/servlet/view/script[resources], +{spring-framework-code}/spring-webmvc/src/test/java/org/springframework/web/servlet/view/script[Java], and +{spring-framework-code}/spring-webmvc/src/test/resources/org/springframework/web/servlet/view/script[resources], for more configuration examples. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc.adoc b/framework-docs/modules/ROOT/pages/web/webmvc.adoc index d75c3c842500..6b1c2ee5d992 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc.adoc @@ -7,18 +7,18 @@ Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, "Spring Web MVC," comes from the name of its source module -({spring-framework-main-code}/spring-webmvc[`spring-webmvc`]), +({spring-framework-code}/spring-webmvc[`spring-webmvc`]), but it is more commonly known as "Spring MVC". Parallel to Spring Web MVC, Spring Framework 5.0 introduced a reactive-stack web framework whose name, "Spring WebFlux," is also based on its source module -({spring-framework-main-code}/spring-webflux[`spring-webflux`]). +({spring-framework-code}/spring-webflux[`spring-webflux`]). This chapter covers Spring Web MVC. The xref:testing/unit.adoc#mock-objects-web-reactive[next chapter] covers Spring WebFlux. For baseline information and compatibility with Servlet container and Jakarta EE version ranges, see the Spring Framework -https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions[Wiki]. +{spring-framework-wiki}/Spring-Framework-Versions[Wiki]. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/filters.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/filters.adoc index 27629d92a77b..77c222a5c65c 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/filters.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/filters.adoc @@ -84,7 +84,7 @@ See xref:web/webmvc/mvc-caching.adoc[HTTP Caching]. This filter has a `writeWeakETag` parameter that configures the filter to write weak ETags similar to the following: `W/"02a2d595e6ed9a0b24f027f2b63b134d6"` (as defined in -https://tools.ietf.org/html/rfc7232#section-2.3[RFC 7232 Section 2.3]). +{rfc-site}/rfc7232#section-2.3[RFC 7232 Section 2.3]). In order to support xref:web/webmvc/mvc-ann-async.adoc[asynchronous requests] this filter must be mapped with `DispatcherType.ASYNC` so that the filter can delay and successfully generate an diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-async.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-async.adoc index 8f4c06f25b56..11816910ad7e 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-async.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-async.adoc @@ -137,7 +137,7 @@ Here is a very concise overview of Servlet asynchronous request processing: asynchronously produced return value from the `Callable`. For further background and context, you can also read -https://spring.io/blog/2012/05/07/spring-mvc-3-2-preview-introducing-servlet-3-async-support[the +{spring-site-blog}/2012/05/07/spring-mvc-3-2-preview-introducing-servlet-3-async-support[the blog posts] that introduced asynchronous request processing support in Spring MVC 3.2. @@ -165,11 +165,11 @@ processing (instead of `postHandle` and `afterCompletion`). `HandlerInterceptor` implementations can also register a `CallableProcessingInterceptor` or a `DeferredResultProcessingInterceptor`, to integrate more deeply with the lifecycle of an asynchronous request (for example, to handle a timeout event). See -{api-spring-framework}/web/servlet/AsyncHandlerInterceptor.html[`AsyncHandlerInterceptor`] +{spring-framework-api}/web/servlet/AsyncHandlerInterceptor.html[`AsyncHandlerInterceptor`] for more details. `DeferredResult` provides `onTimeout(Runnable)` and `onCompletion(Runnable)` callbacks. -See the {api-spring-framework}/web/context/request/async/DeferredResult.html[javadoc of `DeferredResult`] +See the {spring-framework-api}/web/context/request/async/DeferredResult.html[javadoc of `DeferredResult`] for more details. `Callable` can be substituted for `WebAsyncTask` that exposes additional methods for timeout and completion callbacks. @@ -399,7 +399,7 @@ Applications can also return `Flux` or `Observable>`. TIP: Spring MVC supports Reactor and RxJava through the -{api-spring-framework}/core/ReactiveAdapterRegistry.html[`ReactiveAdapterRegistry`] from +{spring-framework-api}/core/ReactiveAdapterRegistry.html[`ReactiveAdapterRegistry`] from `spring-core`, which lets it adapt from multiple reactive libraries. For streaming to the response, reactive back pressure is supported, but writes to the @@ -420,7 +420,7 @@ across multiple threads. The Micrometer https://github.com/micrometer-metrics/context-propagation#context-propagation-library[Context Propagation] library simplifies context propagation across threads, and across context mechanisms such as `ThreadLocal` values, -Reactor https://projectreactor.io/docs/core/release/reference/#context[context], +Reactor {reactor-site}/docs/core/release/reference/#context[context], GraphQL Java https://www.graphql-java.com/documentation/concerns/#context-objects[context], and others. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-rest-exceptions.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-rest-exceptions.adoc index 245e370d5200..66bfbc0e7650 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-rest-exceptions.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-rest-exceptions.adoc @@ -5,7 +5,7 @@ A common requirement for REST services is to include details in the body of error responses. The Spring Framework supports the "Problem Details for HTTP APIs" -specification, https://www.rfc-editor.org/rfc/rfc7807.html[RFC 7807]. +specification, {rfc-site}/rfc7807[RFC 7807]. The following are the main abstractions for this support: diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-caching.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-caching.adoc index f011bad15660..2ae6c92f6c96 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-caching.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-caching.adoc @@ -19,16 +19,16 @@ This section describes the HTTP caching-related options that are available in Sp == `CacheControl` [.small]#xref:web/webflux/caching.adoc#webflux-caching-cachecontrol[See equivalent in the Reactive stack]# -{api-spring-framework}/http/CacheControl.html[`CacheControl`] provides support for +{spring-framework-api}/http/CacheControl.html[`CacheControl`] provides support for configuring settings related to the `Cache-Control` header and is accepted as an argument in a number of places: -* {api-spring-framework}/web/servlet/mvc/WebContentInterceptor.html[`WebContentInterceptor`] -* {api-spring-framework}/web/servlet/support/WebContentGenerator.html[`WebContentGenerator`] +* {spring-framework-api}/web/servlet/mvc/WebContentInterceptor.html[`WebContentInterceptor`] +* {spring-framework-api}/web/servlet/support/WebContentGenerator.html[`WebContentGenerator`] * xref:web/webmvc/mvc-caching.adoc#mvc-caching-etag-lastmodified[Controllers] * xref:web/webmvc/mvc-caching.adoc#mvc-caching-static-resources[Static Resources] -While https://tools.ietf.org/html/rfc7234#section-5.2.2[RFC 7234] describes all possible +While {rfc-site}/rfc7234#section-5.2.2[RFC 7234] describes all possible directives for the `Cache-Control` response header, the `CacheControl` type takes a use case-oriented approach that focuses on the common scenarios: diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-config/message-converters.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-config/message-converters.adoc index 1ead038524e0..fb1abadc4aca 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-config/message-converters.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-config/message-converters.adoc @@ -5,14 +5,13 @@ You can set the `HttpMessageConverter` instances to use in Java configuration, replacing the ones used by default, by overriding -{api-spring-framework}/web/servlet/config/annotation/WebMvcConfigurer.html#configureMessageConverters-java.util.List-[`configureMessageConverters()`]. +{spring-framework-api}/web/servlet/config/annotation/WebMvcConfigurer.html#configureMessageConverters-java.util.List-[`configureMessageConverters()`]. You can also customize the list of configured message converters at the end by overriding -{api-spring-framework}/web/servlet/config/annotation/WebMvcConfigurer.html#extendMessageConverters-java.util.List-[`extendMessageConverters()`]. +{spring-framework-api}/web/servlet/config/annotation/WebMvcConfigurer.html#extendMessageConverters-java.util.List-[`extendMessageConverters()`]. TIP: In a Spring Boot application, the `WebMvcAutoConfiguration` adds any `HttpMessageConverter` beans it detects, in addition to default converters. Hence, in a -Boot application, prefer to use the -https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-config/message-converters.html[HttpMessageConverters] +Boot application, prefer to use the {spring-boot-docs}/web.html#web.servlet.spring-mvc.message-converters[HttpMessageConverters] mechanism. Or alternatively, use `extendMessageConverters` to modify message converters at the end. @@ -60,24 +59,24 @@ Kotlin:: ====== In the preceding example, -{api-spring-framework}/http/converter/json/Jackson2ObjectMapperBuilder.html[`Jackson2ObjectMapperBuilder`] +{spring-framework-api}/http/converter/json/Jackson2ObjectMapperBuilder.html[`Jackson2ObjectMapperBuilder`] is used to create a common configuration for both `MappingJackson2HttpMessageConverter` and `MappingJackson2XmlHttpMessageConverter` with indentation enabled, a customized date format, and the registration of -https://github.com/FasterXML/jackson-module-parameter-names[`jackson-module-parameter-names`], +{jackson-github-org}/jackson-module-parameter-names[`jackson-module-parameter-names`], Which adds support for accessing parameter names (a feature added in Java 8). This builder customizes Jackson's default properties as follows: -* https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/DeserializationFeature.html#FAIL_ON_UNKNOWN_PROPERTIES[`DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES`] is disabled. -* https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/MapperFeature.html#DEFAULT_VIEW_INCLUSION[`MapperFeature.DEFAULT_VIEW_INCLUSION`] is disabled. +* {jackson-docs}/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/DeserializationFeature.html#FAIL_ON_UNKNOWN_PROPERTIES[`DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES`] is disabled. +* {jackson-docs}/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/MapperFeature.html#DEFAULT_VIEW_INCLUSION[`MapperFeature.DEFAULT_VIEW_INCLUSION`] is disabled. It also automatically registers the following well-known modules if they are detected on the classpath: -* https://github.com/FasterXML/jackson-datatype-joda[jackson-datatype-joda]: Support for Joda-Time types. -* https://github.com/FasterXML/jackson-datatype-jsr310[jackson-datatype-jsr310]: Support for Java 8 Date and Time API types. -* https://github.com/FasterXML/jackson-datatype-jdk8[jackson-datatype-jdk8]: Support for other Java 8 types, such as `Optional`. -* https://github.com/FasterXML/jackson-module-kotlin[`jackson-module-kotlin`]: Support for Kotlin classes and data classes. +* {jackson-github-org}/jackson-datatype-joda[jackson-datatype-joda]: Support for Joda-Time types. +* {jackson-github-org}/jackson-datatype-jsr310[jackson-datatype-jsr310]: Support for Java 8 Date and Time API types. +* {jackson-github-org}/jackson-datatype-jdk8[jackson-datatype-jdk8]: Support for other Java 8 types, such as `Optional`. +* {jackson-github-org}/jackson-module-kotlin[`jackson-module-kotlin`]: Support for Kotlin classes and data classes. NOTE: Enabling indentation with Jackson XML support requires https://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.codehaus.woodstox%22%20AND%20a%3A%22woodstox-core-asl%22[`woodstox-core-asl`] @@ -86,7 +85,7 @@ dependency in addition to https://search.maven.org/#search%7Cga%7C1%7Ca%3A%22jac Other interesting Jackson modules are available: * https://github.com/zalando/jackson-datatype-money[jackson-datatype-money]: Support for `javax.money` types (unofficial module). -* https://github.com/FasterXML/jackson-datatype-hibernate[jackson-datatype-hibernate]: Support for Hibernate-specific types and properties (including lazy-loading aspects). +* {jackson-github-org}/jackson-datatype-hibernate[jackson-datatype-hibernate]: Support for Hibernate-specific types and properties (including lazy-loading aspects). The following example shows how to achieve the same configuration in XML: diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-config/path-matching.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-config/path-matching.adoc index eff9db98d660..989ad29c0c5a 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-config/path-matching.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-config/path-matching.adoc @@ -5,7 +5,7 @@ You can customize options related to path matching and treatment of the URL. For details on the individual options, see the -{api-spring-framework}/web/servlet/config/annotation/PathMatchConfigurer.html[`PathMatchConfigurer`] javadoc. +{spring-framework-api}/web/servlet/config/annotation/PathMatchConfigurer.html[`PathMatchConfigurer`] javadoc. The following example shows how to customize path matching in Java configuration: diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-config/static-resources.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-config/static-resources.adoc index adb887831e97..e56686152863 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-config/static-resources.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-config/static-resources.adoc @@ -4,7 +4,7 @@ [.small]#xref:web/webflux/config.adoc#webflux-config-static-resources[See equivalent in the Reactive stack]# This option provides a convenient way to serve static resources from a list of -{api-spring-framework}/core/io/Resource.html[`Resource`]-based locations. +{spring-framework-api}/core/io/Resource.html[`Resource`]-based locations. In the next example, given a request that starts with `/resources`, the relative path is used to find and serve static resources relative to `/public` under the web application @@ -64,8 +64,8 @@ See also xref:web/webmvc/mvc-caching.adoc#mvc-caching-static-resources[HTTP caching support for static resources]. The resource handler also supports a chain of -{api-spring-framework}/web/servlet/resource/ResourceResolver.html[`ResourceResolver`] implementations and -{api-spring-framework}/web/servlet/resource/ResourceTransformer.html[`ResourceTransformer`] implementations, +{spring-framework-api}/web/servlet/resource/ResourceResolver.html[`ResourceResolver`] implementations and +{spring-framework-api}/web/servlet/resource/ResourceTransformer.html[`ResourceTransformer`] implementations, which you can use to create a toolchain for working with optimized resources. You can use the `VersionResourceResolver` for versioned resource URLs based on an MD5 hash diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller.adoc index 112361f7dba1..e893eaa75832 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller.adoc @@ -47,7 +47,7 @@ Kotlin:: In the preceding example, the method accepts a `Model` and returns a view name as a `String`, but many other options exist and are explained later in this chapter. -TIP: Guides and tutorials on https://spring.io/guides[spring.io] use the annotation-based +TIP: Guides and tutorials on {spring-site-guides}[spring.io] use the annotation-based programming model described in this section. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-advice.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-advice.adoc index 46726f71ad24..90f206a7c44d 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-advice.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-advice.adoc @@ -62,7 +62,7 @@ Kotlin:: The selectors in the preceding example are evaluated at runtime and may negatively impact performance if used extensively. See the -{api-spring-framework}/web/bind/annotation/ControllerAdvice.html[`@ControllerAdvice`] +{spring-framework-api}/web/bind/annotation/ControllerAdvice.html[`@ControllerAdvice`] javadoc for more details. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-exceptionhandler.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-exceptionhandler.adoc index 73af9fa6ce46..1e0fa2173b79 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-exceptionhandler.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-exceptionhandler.adoc @@ -271,7 +271,7 @@ see xref:web/webmvc/mvc-ann-rest-exceptions.adoc[Error Responses] | Any other return value | If a return value is not matched to any of the above and is not a simple type (as determined by - {api-spring-framework}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty]), + {spring-framework-api}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty]), by default, it is treated as a model attribute to be added to the model. If it is a simple type, it remains unresolved. |=== diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/arguments.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/arguments.adoc index d1509896fea8..4e3b30ea3c09 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/arguments.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/arguments.adoc @@ -135,7 +135,7 @@ and others) and is equivalent to `required=false`. | Any other argument | If a method argument is not matched to any of the earlier values in this table and it is a simple type (as determined by - {api-spring-framework}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty]), + {spring-framework-api}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty]), it is resolved as a `@RequestParam`. Otherwise, it is resolved as a `@ModelAttribute`. |=== diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/jackson.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/jackson.adoc index 3ea43c3e9713..b0522fdb773c 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/jackson.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/jackson.adoc @@ -8,7 +8,7 @@ Spring offers support for the Jackson JSON library. [.small]#xref:web/webflux/controller/ann-methods/jackson.adoc#webflux-ann-jsonview[See equivalent in the Reactive stack]# Spring MVC provides built-in support for -https://www.baeldung.com/jackson-json-view-annotation[Jackson's Serialization Views], +{baeldung-blog}/jackson-json-view-annotation[Jackson's Serialization Views], which allow rendering only a subset of all fields in an `Object`. To use it with `@ResponseBody` or `ResponseEntity` controller methods, you can use Jackson's `@JsonView` annotation to activate a serialization view class, as the following example shows: diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/matrix-variables.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/matrix-variables.adoc index 83171fc4f036..c96b15a35297 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/matrix-variables.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/matrix-variables.adoc @@ -3,7 +3,7 @@ [.small]#xref:web/webflux/controller/ann-methods/matrix-variables.adoc[See equivalent in the Reactive stack]# -https://tools.ietf.org/html/rfc3986#section-3.3[RFC 3986] discusses name-value pairs in +{rfc-site}/rfc3986#section-3.3[RFC 3986] discusses name-value pairs in path segments. In Spring MVC, we refer to those as "`matrix variables`" based on an https://www.w3.org/DesignIssues/MatrixURIs.html["`old post`"] by Tim Berners-Lee, but they can be also be referred to as URI path parameters. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/modelattrib-method-args.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/modelattrib-method-args.adoc index 02e314974ab1..0e15b5448cc3 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/modelattrib-method-args.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/modelattrib-method-args.adoc @@ -242,5 +242,5 @@ xref:web/webmvc/mvc-controller/ann-validation.adoc[Validation]. TIP: Using `@ModelAttribute` is optional. By default, any parameter that is not a simple value type as determined by -{api-spring-framework}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty] +{spring-framework-api}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty] _AND_ that is not resolved by any other argument resolver is treated as an `@ModelAttribute`. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/requestparam.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/requestparam.adoc index ae5e3a0ed4c7..3486beeb3b07 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/requestparam.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/requestparam.adoc @@ -75,7 +75,7 @@ then the map is populated with the request parameter values for each given param Note that use of `@RequestParam` is optional (for example, to set its attributes). By default, any argument that is a simple value type (as determined by -{api-spring-framework}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty]) +{spring-framework-api}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty]) and is not resolved by any other argument resolver, is treated as if it were annotated with `@RequestParam`. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/return-types.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/return-types.adoc index 266d6ee1aaae..79f4588dbedc 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/return-types.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/return-types.adoc @@ -98,7 +98,7 @@ supported for all return values. | Other return values | If a return value remains unresolved in any other way, it is treated as a model attribute, unless it is a simple type as determined by - {api-spring-framework}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty], + {spring-framework-api}/beans/BeanUtils.html#isSimpleProperty-java.lang.Class-[BeanUtils#isSimpleProperty], in which case it remains unresolved. |=== diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-modelattrib-methods.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-modelattrib-methods.adoc index 0f58a97dd8d6..c034514f2760 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-modelattrib-methods.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-modelattrib-methods.adoc @@ -76,7 +76,7 @@ Kotlin:: NOTE: When a name is not explicitly specified, a default name is chosen based on the `Object` -type, as explained in the javadoc for {api-spring-framework}/core/Conventions.html[`Conventions`]. +type, as explained in the javadoc for {spring-framework-api}/core/Conventions.html[`Conventions`]. You can always assign an explicit name by using the overloaded `addAttribute` method or through the `name` attribute on `@ModelAttribute` (for a return value). diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-requestmapping.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-requestmapping.adoc index 932c2f6b1419..aab730895f72 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-requestmapping.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-requestmapping.adoc @@ -104,8 +104,8 @@ at the end of a path. `PathPattern` also restricts the use of `+**+` for matchin path segments such that it's only allowed at the end of a pattern. This eliminates many cases of ambiguity when choosing the best matching pattern for a given request. For full pattern syntax please refer to -{api-spring-framework}/web/util/pattern/PathPattern.html[PathPattern] and -{api-spring-framework}/util/AntPathMatcher.html[AntPathMatcher]. +{spring-framework-api}/web/util/pattern/PathPattern.html[PathPattern] and +{spring-framework-api}/util/AntPathMatcher.html[AntPathMatcher]. Some example patterns: @@ -226,8 +226,8 @@ some external configuration. When multiple patterns match a URL, the best match must be selected. This is done with one of the following depending on whether use of parsed `PathPattern` is enabled for use or not: -* {api-spring-framework}/web/util/pattern/PathPattern.html#SPECIFICITY_COMPARATOR[`PathPattern.SPECIFICITY_COMPARATOR`] -* {api-spring-framework}/util/AntPathMatcher.html#getPatternComparator-java.lang.String-[`AntPathMatcher.getPatternComparator(String path)`] +* {spring-framework-api}/web/util/pattern/PathPattern.html#SPECIFICITY_COMPARATOR[`PathPattern.SPECIFICITY_COMPARATOR`] +* {spring-framework-api}/util/AntPathMatcher.html#getPatternComparator-java.lang.String-[`AntPathMatcher.getPatternComparator(String path)`] Both help to sort patterns with more specific ones on top. A pattern is more specific if it has a lower count of URI variables (counted as 1), single wildcards (counted as 1), @@ -296,7 +296,7 @@ Many common path extensions are allowed as safe by default. Applications with cu negotiation to avoid having a `Content-Disposition` header added for those extensions. See xref:web/webmvc/mvc-config/content-negotiation.adoc[Content Types]. -See https://pivotal.io/security/cve-2015-5211[CVE-2015-5211] for additional +See {spring-site-cve}/cve-2015-5211[CVE-2015-5211] for additional recommendations related to RFD. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-validation.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-validation.adoc index a1528b55343f..923e024f8648 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-validation.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-validation.adoc @@ -17,7 +17,7 @@ raise `MethodArgumentNotValidException` in case of validation errors. If you wan the errors in the controller method instead, you can declare an `Errors` or `BindingResult` method parameter immediately after the validated parameter. -Second, if https://beanvalidation.org/[Java Bean Validation] is present _AND_ other method +Second, if {bean-validation-site}[Java Bean Validation] is present _AND_ other method parameters, e.g. `@RequestHeader`, `@RequestParam`, `@PathVariable` have `@Constraint` annotations, then method validation is applied to all method arguments, raising `HandlerMethodValidationException` in case of validation errors. You can still declare an diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-http2.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-http2.adoc index 17a10e537f7f..da03fba9b4a1 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-http2.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-http2.adoc @@ -8,7 +8,7 @@ Servlet 4 containers are required to support HTTP/2, and Spring Framework 5 is c with Servlet API 4. From a programming model perspective, there is nothing specific that applications need to do. However, there are considerations related to server configuration. For more details, see the -https://github.com/spring-projects/spring-framework/wiki/HTTP-2-support[HTTP/2 wiki page]. +{spring-framework-wiki}/HTTP-2-support[HTTP/2 wiki page]. The Servlet API does expose one construct related to HTTP/2. You can use the `jakarta.servlet.http.PushBuilder` to proactively push resources to clients, and it diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-security.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-security.adoc index 5b6aca1f70ad..446ae42c0414 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-security.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-security.adoc @@ -4,7 +4,7 @@ [.small]#xref:web/webflux/security.adoc[See equivalent in the Reactive stack]# -The https://spring.io/projects/spring-security[Spring Security] project provides support +The {spring-site-projects}/spring-security[Spring Security] project provides support for protecting web applications from malicious exploits. See the Spring Security reference documentation, including: diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet.adoc index 173ee07e6797..189ae02988e1 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet.adoc @@ -70,7 +70,7 @@ NOTE: In addition to using the ServletContext API directly, you can also extend NOTE: For programmatic use cases, a `GenericWebApplicationContext` can be used as an alternative to `AnnotationConfigWebApplicationContext`. See the -{api-spring-framework}/web/context/support/GenericWebApplicationContext.html[`GenericWebApplicationContext`] +{spring-framework-api}/web/context/support/GenericWebApplicationContext.html[`GenericWebApplicationContext`] javadoc for details. The following example of `web.xml` configuration registers and initializes the `DispatcherServlet`: @@ -111,7 +111,7 @@ the lifecycle of the Servlet container, Spring Boot uses Spring configuration to bootstrap itself and the embedded Servlet container. `Filter` and `Servlet` declarations are detected in Spring configuration and registered with the Servlet container. For more details, see the -https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-embedded-container[Spring Boot documentation]. +{spring-boot-docs}/web.html#web.servlet.embedded-container[Spring Boot documentation]. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/config.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/config.adoc index 64fcc6e1be63..2a8950c073fe 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/config.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/config.adoc @@ -8,7 +8,7 @@ Applications can declare the infrastructure beans listed in xref:web/webmvc/mvc- that are required to process requests. The `DispatcherServlet` checks the `WebApplicationContext` for each special bean. If there are no matching bean types, it falls back on the default types listed in -{spring-framework-main-code}/spring-webmvc/src/main/resources/org/springframework/web/servlet/DispatcherServlet.properties[`DispatcherServlet.properties`]. +{spring-framework-code}/spring-webmvc/src/main/resources/org/springframework/web/servlet/DispatcherServlet.properties[`DispatcherServlet.properties`]. In most cases, the xref:web/webmvc/mvc-config.adoc[MVC Config] is the best starting point. It declares the required beans in either Java or XML and provides a higher-level configuration callback API to diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/exceptionhandlers.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/exceptionhandlers.adoc index 23e8587b3bde..01cab7f3b7ed 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/exceptionhandlers.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/exceptionhandlers.adoc @@ -19,7 +19,7 @@ The following table lists the available `HandlerExceptionResolver` implementatio | A mapping between exception class names and error view names. Useful for rendering error pages in a browser application. -| {api-spring-framework}/web/servlet/mvc/support/DefaultHandlerExceptionResolver.html[`DefaultHandlerExceptionResolver`] +| {spring-framework-api}/web/servlet/mvc/support/DefaultHandlerExceptionResolver.html[`DefaultHandlerExceptionResolver`] | Resolves exceptions raised by Spring MVC and maps them to HTTP status codes. See also alternative `ResponseEntityExceptionHandler` and xref:web/webmvc/mvc-ann-rest-exceptions.adoc[Error Responses]. diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/multipart.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/multipart.adoc index 44844ba9a06b..d23200eb2a91 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/multipart.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/multipart.adoc @@ -75,7 +75,7 @@ This resolver variant uses your Servlet container's multipart parser as-is, potentially exposing the application to container implementation differences. By default, it will try to parse any `multipart/` content type with any HTTP method but this may not be supported across all Servlet containers. See the -{api-spring-framework}/web/multipart/support/StandardServletMultipartResolver.html[`StandardServletMultipartResolver`] +{spring-framework-api}/web/multipart/support/StandardServletMultipartResolver.html[`StandardServletMultipartResolver`] javadoc for details and configuration options. ==== diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/viewresolver.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/viewresolver.adoc index b6728feb674f..27daeeb49137 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/viewresolver.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-servlet/viewresolver.adoc @@ -32,7 +32,7 @@ The following table provides more details on the `ViewResolver` hierarchy: | Convenient subclass of `UrlBasedViewResolver` that supports `InternalResourceView` (in effect, Servlets and JSPs) and subclasses such as `JstlView`. You can specify the view class for all views generated by this resolver by using `setViewClass(..)`. - See the {api-spring-framework}/web/reactive/result/view/UrlBasedViewResolver.html[`UrlBasedViewResolver`] + See the {spring-framework-api}/web/reactive/result/view/UrlBasedViewResolver.html[`UrlBasedViewResolver`] javadoc for details. | `FreeMarkerViewResolver` @@ -103,7 +103,7 @@ Servlet/JSP engine. Note that you may also chain multiple view resolvers, instea == Content Negotiation [.small]#xref:web/webflux/dispatcher-handler.adoc#webflux-multiple-representations[See equivalent in the Reactive stack]# -{api-spring-framework}/web/servlet/view/ContentNegotiatingViewResolver.html[`ContentNegotiatingViewResolver`] +{spring-framework-api}/web/servlet/view/ContentNegotiatingViewResolver.html[`ContentNegotiatingViewResolver`] does not resolve views itself but rather delegates to other view resolvers and selects the view that resembles the representation requested by the client. The representation can be determined from the `Accept` header or from a diff --git a/framework-docs/modules/ROOT/pages/web/websocket/fallback.adoc b/framework-docs/modules/ROOT/pages/web/websocket/fallback.adoc index f565c2250a10..d929c7f985fd 100644 --- a/framework-docs/modules/ROOT/pages/web/websocket/fallback.adoc +++ b/framework-docs/modules/ROOT/pages/web/websocket/fallback.adoc @@ -23,20 +23,20 @@ change application code. SockJS consists of: -* The https://github.com/sockjs/sockjs-protocol[SockJS protocol] +* The {sockjs-protocol}[SockJS protocol] defined in the form of executable -https://sockjs.github.io/sockjs-protocol/sockjs-protocol-0.3.3.html[narrated tests]. -* The https://github.com/sockjs/sockjs-client/[SockJS JavaScript client] -- a client library for use in browsers. +{sockjs-protocol-site}/sockjs-protocol-0.3.3.html[narrated tests]. +* The {sockjs-client}[SockJS JavaScript client] -- a client library for use in browsers. * SockJS server implementations, including one in the Spring Framework `spring-websocket` module. * A SockJS Java client in the `spring-websocket` module (since version 4.1). SockJS is designed for use in browsers. It uses a variety of techniques to support a wide range of browser versions. For the full list of SockJS transport types and browsers, see the -https://github.com/sockjs/sockjs-client/[SockJS client] page. Transports +{sockjs-client}[SockJS client] page. Transports fall in three general categories: WebSocket, HTTP Streaming, and HTTP Long Polling. For an overview of these categories, see -https://spring.io/blog/2012/05/08/spring-mvc-3-2-preview-techniques-for-real-time-updates/[this blog post]. +{spring-site-blog}/2012/05/08/spring-mvc-3-2-preview-techniques-for-real-time-updates/[this blog post]. The SockJS client begins by sending `GET /info` to obtain basic information from the server. After that, it must decide what transport @@ -130,13 +130,13 @@ The preceding example is for use in Spring MVC applications and should be includ configuration of a xref:web/webmvc/mvc-servlet.adoc[`DispatcherServlet`]. However, Spring's WebSocket and SockJS support does not depend on Spring MVC. It is relatively simple to integrate into other HTTP serving environments with the help of -{api-spring-framework}/web/socket/sockjs/support/SockJsHttpRequestHandler.html[`SockJsHttpRequestHandler`]. +{spring-framework-api}/web/socket/sockjs/support/SockJsHttpRequestHandler.html[`SockJsHttpRequestHandler`]. On the browser side, applications can use the -https://github.com/sockjs/sockjs-client/[`sockjs-client`] (version 1.0.x). It +{sockjs-client}[`sockjs-client`] (version 1.0.x). It emulates the W3C WebSocket API and communicates with the server to select the best transport option, depending on the browser in which it runs. See the -https://github.com/sockjs/sockjs-client/[sockjs-client] page and the list of +{sockjs-client}[sockjs-client] page and the list of transport types supported by browser. The client also provides several configuration options -- for example, to specify which transports to include. @@ -183,7 +183,7 @@ but can be configured to do so. In the future, it may set it by default. See {docs-spring-security}/features/exploits/headers.html#headers-default[Default Security Headers] of the Spring Security documentation for details on how to configure the setting of the `X-Frame-Options` header. You can also see -https://github.com/spring-projects/spring-security/issues/2718[gh-2718] +{spring-github-org}/spring-security/issues/2718[gh-2718] for additional background. ==== @@ -219,7 +219,7 @@ The XML namespace provides a similar option through the `` ele NOTE: During initial development, do enable the SockJS client `devel` mode that prevents the browser from caching SockJS requests (like the iframe) that would otherwise be cached. For details on how to enable it see the -https://github.com/sockjs/sockjs-client/[SockJS client] page. +{sockjs-client}[SockJS client] page. @@ -231,7 +231,7 @@ from concluding that a connection is hung. The Spring SockJS configuration has a called `heartbeatTime` that you can use to customize the frequency. By default, a heartbeat is sent after 25 seconds, assuming no other messages were sent on that connection. This 25-second value is in line with the following -https://tools.ietf.org/html/rfc6202[IETF recommendation] for public Internet applications. +{rfc-site}/rfc6202[IETF recommendation] for public Internet applications. NOTE: When using STOMP over WebSocket and SockJS, if the STOMP client and server negotiate heartbeats to be exchanged, the SockJS heartbeats are disabled. @@ -248,7 +248,7 @@ should consider customizing the settings according to your specific needs. HTTP streaming and HTTP long polling SockJS transports require a connection to remain open longer than usual. For an overview of these techniques, see -https://spring.io/blog/2012/05/08/spring-mvc-3-2-preview-techniques-for-real-time-updates/[this blog post]. +{spring-site-blog}/2012/05/08/spring-mvc-3-2-preview-techniques-for-real-time-updates/[this blog post]. In Servlet containers, this is done through Servlet 3 asynchronous support that allows exiting the Servlet container thread, processing a request, and continuing diff --git a/framework-docs/modules/ROOT/pages/web/websocket/server.adoc b/framework-docs/modules/ROOT/pages/web/websocket/server.adoc index 5fc4da352e64..c9e6fa2b5d8f 100644 --- a/framework-docs/modules/ROOT/pages/web/websocket/server.adoc +++ b/framework-docs/modules/ROOT/pages/web/websocket/server.adoc @@ -84,13 +84,13 @@ The preceding example is for use in Spring MVC applications and should be includ in the configuration of a xref:web/webmvc/mvc-servlet.adoc[`DispatcherServlet`]. However, Spring's WebSocket support does not depend on Spring MVC. It is relatively simple to integrate a `WebSocketHandler` into other HTTP-serving environments with the help of -{api-spring-framework}/web/socket/server/support/WebSocketHttpRequestHandler.html[`WebSocketHttpRequestHandler`]. +{spring-framework-api}/web/socket/server/support/WebSocketHttpRequestHandler.html[`WebSocketHttpRequestHandler`]. When using the `WebSocketHandler` API directly vs indirectly, e.g. through the xref:web/websocket/stomp.adoc[STOMP] messaging, the application must synchronize the sending of messages since the underlying standard WebSocket session (JSR-356) does not allow concurrent sending. One option is to wrap the `WebSocketSession` with -{api-spring-framework}/web/socket/handler/ConcurrentWebSocketSessionDecorator.html[`ConcurrentWebSocketSessionDecorator`]. +{spring-framework-api}/web/socket/handler/ConcurrentWebSocketSessionDecorator.html[`ConcurrentWebSocketSessionDecorator`]. @@ -315,7 +315,7 @@ As of Spring Framework 4.1.5, the default behavior for WebSocket and SockJS is t only same-origin requests. It is also possible to allow all or a specified list of origins. This check is mostly designed for browser clients. Nothing prevents other types of clients from modifying the `Origin` header value (see -https://tools.ietf.org/html/rfc6454[RFC 6454: The Web Origin Concept] for more details). +{rfc-site}/rfc6454[RFC 6454: The Web Origin Concept] for more details). The three possible behaviors are: diff --git a/framework-docs/modules/ROOT/pages/web/websocket/stomp/authentication-token-based.adoc b/framework-docs/modules/ROOT/pages/web/websocket/stomp/authentication-token-based.adoc index 3ab57f8c878e..3bacb4a4907f 100644 --- a/framework-docs/modules/ROOT/pages/web/websocket/stomp/authentication-token-based.adoc +++ b/framework-docs/modules/ROOT/pages/web/websocket/stomp/authentication-token-based.adoc @@ -1,7 +1,7 @@ [[websocket-stomp-authentication-token-based]] = Token Authentication -https://github.com/spring-projects/spring-security-oauth[Spring Security OAuth] +{spring-github-org}/spring-security-oauth[Spring Security OAuth] provides support for token based security, including JSON Web Token (JWT). You can use this as the authentication mechanism in Web applications, including STOMP over WebSocket interactions, as described in the previous @@ -11,13 +11,13 @@ At the same time, cookie-based sessions are not always the best fit (for example in applications that do not maintain a server-side session or in mobile applications where it is common to use headers for authentication). -The https://tools.ietf.org/html/rfc6455#section-10.5[WebSocket protocol, RFC 6455] +The {rfc-site}/rfc6455#section-10.5[WebSocket protocol, RFC 6455] "doesn't prescribe any particular way that servers can authenticate clients during the WebSocket handshake." In practice, however, browser clients can use only standard authentication headers (that is, basic HTTP authentication) or cookies and cannot (for example) provide custom headers. Likewise, the SockJS JavaScript client does not provide a way to send HTTP headers with SockJS transport requests. See -https://github.com/sockjs/sockjs-client/issues/196[sockjs-client issue 196]. +{sockjs-client}/issues/196[sockjs-client issue 196]. Instead, it does allow sending query parameters that you can use to send a token, but that has its own drawbacks (for example, the token may be inadvertently logged with the URL in server logs). diff --git a/framework-docs/modules/ROOT/pages/web/websocket/stomp/authorization.adoc b/framework-docs/modules/ROOT/pages/web/websocket/stomp/authorization.adoc index 5866ec3dc521..95af447e597e 100644 --- a/framework-docs/modules/ROOT/pages/web/websocket/stomp/authorization.adoc +++ b/framework-docs/modules/ROOT/pages/web/websocket/stomp/authorization.adoc @@ -6,7 +6,7 @@ Spring Security provides {docs-spring-security}/servlet/integrations/websocket.html#websocket-authorization[WebSocket sub-protocol authorization] that uses a `ChannelInterceptor` to authorize messages based on the user header in them. Also, Spring Session provides -https://docs.spring.io/spring-session/reference/web-socket.html[WebSocket integration] +{docs-spring-session}/web-socket.html[WebSocket integration] that ensures the user's HTTP session does not expire while the WebSocket session is still active. diff --git a/framework-docs/modules/ROOT/pages/web/websocket/stomp/enable.adoc b/framework-docs/modules/ROOT/pages/web/websocket/stomp/enable.adoc index 8ff62f4c6752..433043984338 100644 --- a/framework-docs/modules/ROOT/pages/web/websocket/stomp/enable.adoc +++ b/framework-docs/modules/ROOT/pages/web/websocket/stomp/enable.adoc @@ -91,7 +91,7 @@ and xref:web/websocket/stomp/authentication.adoc[Authentication] for more inform For more example code see: -* https://spring.io/guides/gs/messaging-stomp-websocket/[Using WebSocket to build an +* {spring-site-guides}/gs/messaging-stomp-websocket/[Using WebSocket to build an interactive web application] -- a getting started guide. * https://github.com/rstoyanchev/spring-websocket-portfolio[Stock Portfolio] -- a sample application. diff --git a/framework-docs/modules/ROOT/pages/web/websocket/stomp/handle-broker-relay.adoc b/framework-docs/modules/ROOT/pages/web/websocket/stomp/handle-broker-relay.adoc index 8db28f6dd504..8a59bd83f937 100644 --- a/framework-docs/modules/ROOT/pages/web/websocket/stomp/handle-broker-relay.adoc +++ b/framework-docs/modules/ROOT/pages/web/websocket/stomp/handle-broker-relay.adoc @@ -59,7 +59,7 @@ The following example shows the XML configuration equivalent of the preceding ex ---- The STOMP broker relay in the preceding configuration is a Spring -{api-spring-framework}/messaging/MessageHandler.html[`MessageHandler`] +{spring-framework-api}/messaging/MessageHandler.html[`MessageHandler`] that handles messages by forwarding them to an external message broker. To do so, it establishes TCP connections to the broker, forwards all messages to it, and then forwards all messages received from the broker to clients through their diff --git a/framework-docs/modules/ROOT/pages/web/websocket/stomp/message-flow.adoc b/framework-docs/modules/ROOT/pages/web/websocket/stomp/message-flow.adoc index 275ab0a27bd0..1c4e3adb52c0 100644 --- a/framework-docs/modules/ROOT/pages/web/websocket/stomp/message-flow.adoc +++ b/framework-docs/modules/ROOT/pages/web/websocket/stomp/message-flow.adoc @@ -7,18 +7,18 @@ connected clients. This section describes the flow of messages on the server sid The `spring-messaging` module contains foundational support for messaging applications that originated in https://spring.io/spring-integration[Spring Integration] and was later extracted and incorporated into the Spring Framework for broader use across many -https://spring.io/projects[Spring projects] and application scenarios. +{spring-site-projects}[Spring projects] and application scenarios. The following list briefly describes a few of the available messaging abstractions: -* {api-spring-framework}/messaging/Message.html[Message]: +* {spring-framework-api}/messaging/Message.html[Message]: Simple representation for a message, including headers and payload. -* {api-spring-framework}/messaging/MessageHandler.html[MessageHandler]: +* {spring-framework-api}/messaging/MessageHandler.html[MessageHandler]: Contract for handling a message. -* {api-spring-framework}/messaging/MessageChannel.html[MessageChannel]: +* {spring-framework-api}/messaging/MessageChannel.html[MessageChannel]: Contract for sending a message that enables loose coupling between producers and consumers. -* {api-spring-framework}/messaging/SubscribableChannel.html[SubscribableChannel]: +* {spring-framework-api}/messaging/SubscribableChannel.html[SubscribableChannel]: `MessageChannel` with `MessageHandler` subscribers. -* {api-spring-framework}/messaging/support/ExecutorSubscribableChannel.html[ExecutorSubscribableChannel]: +* {spring-framework-api}/messaging/support/ExecutorSubscribableChannel.html[ExecutorSubscribableChannel]: `SubscribableChannel` that uses an `Executor` for delivering messages. Both the Java configuration (that is, `@EnableWebSocketMessageBroker`) and the XML namespace configuration diff --git a/framework-docs/modules/ROOT/partials/web/forwarded-headers.adoc b/framework-docs/modules/ROOT/partials/web/forwarded-headers.adoc index 37cbba42d8bf..9ba46a5f832a 100644 --- a/framework-docs/modules/ROOT/partials/web/forwarded-headers.adoc +++ b/framework-docs/modules/ROOT/partials/web/forwarded-headers.adoc @@ -2,7 +2,7 @@ As a request goes through proxies such as load balancers the host, port, and scheme may change, and that makes it a challenge to create links that point to the correct host, port, and scheme from a client perspective. -https://tools.ietf.org/html/rfc7239[RFC 7239] defines the `Forwarded` HTTP header +{rfc-site}/rfc7239[RFC 7239] defines the `Forwarded` HTTP header that proxies can use to provide information about the original request. diff --git a/framework-docs/modules/ROOT/partials/web/web-uris.adoc b/framework-docs/modules/ROOT/partials/web/web-uris.adoc index d6e94cec95dc..a8bde952e68e 100644 --- a/framework-docs/modules/ROOT/partials/web/web-uris.adoc +++ b/framework-docs/modules/ROOT/partials/web/web-uris.adoc @@ -240,9 +240,9 @@ Kotlin:: `UriComponentsBuilder` exposes encoding options at two levels: -* {api-spring-framework}/web/util/UriComponentsBuilder.html#encode--[UriComponentsBuilder#encode()]: +* {spring-framework-api}/web/util/UriComponentsBuilder.html#encode--[UriComponentsBuilder#encode()]: Pre-encodes the URI template first and then strictly encodes URI variables when expanded. -* {api-spring-framework}/web/util/UriComponents.html#encode--[UriComponents#encode()]: +* {spring-framework-api}/web/util/UriComponents.html#encode--[UriComponents#encode()]: Encodes URI components _after_ URI variables are expanded. Both options replace non-ASCII and illegal characters with escaped octets. However, the first option diff --git a/framework-docs/modules/ROOT/partials/web/websocket-intro.adoc b/framework-docs/modules/ROOT/partials/web/websocket-intro.adoc index 339aea089be8..8598a214be91 100644 --- a/framework-docs/modules/ROOT/partials/web/websocket-intro.adoc +++ b/framework-docs/modules/ROOT/partials/web/websocket-intro.adoc @@ -1,7 +1,7 @@ [[introduction-to-websocket]] = Introduction to WebSocket -The WebSocket protocol, https://tools.ietf.org/html/rfc6455[RFC 6455], provides a standardized +The WebSocket protocol, {rfc-site}/rfc6455[RFC 6455], provides a standardized way to establish a full-duplex, two-way communication channel between client and server over a single TCP connection. It is a different TCP protocol from HTTP but is designed to work over HTTP, using ports 80 and 443 and allowing re-use of existing firewall rules. From 366681fc95787637ac509e23e40b4070e4b7767c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Basl=C3=A9?= Date: Tue, 21 Nov 2023 11:28:45 +0100 Subject: [PATCH 2/7] revert attribute of JIRA link, this section should have been removed on main --- .../modules/ROOT/pages/integration/cache/annotations.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework-docs/modules/ROOT/pages/integration/cache/annotations.adoc b/framework-docs/modules/ROOT/pages/integration/cache/annotations.adoc index 9e64fc1447ff..c699123e6bc6 100644 --- a/framework-docs/modules/ROOT/pages/integration/cache/annotations.adoc +++ b/framework-docs/modules/ROOT/pages/integration/cache/annotations.adoc @@ -67,7 +67,7 @@ To provide a different default key generator, you need to implement the The default key generation strategy changed with the release of Spring 4.0. Earlier versions of Spring used a key generation strategy that, for multiple key parameters, considered only the `hashCode()` of parameters and not `equals()`. This could cause -unexpected key collisions (see {issues-old}/SPR-10237[SPR-10237] +unexpected key collisions (see https://jira.spring.io/browse/SPR-10237[SPR-10237] for background). The new `SimpleKeyGenerator` uses a compound key for such scenarios. If you want to keep using the previous key strategy, you can configure the deprecated From e481fb2149ffdc1b472cd56fae9cd383e4baf459 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Basl=C3=A9?= Date: Tue, 21 Nov 2023 11:29:51 +0100 Subject: [PATCH 3/7] review: fold attribute, inline spring-repo, remove issues-old --- framework-docs/antora.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework-docs/antora.yml b/framework-docs/antora.yml index 121996a15ef5..a7fd63f2d8a9 100644 --- a/framework-docs/antora.yml +++ b/framework-docs/antora.yml @@ -17,6 +17,7 @@ asciidoc: # FIXME: the copyright is not removed # FIXME: The package is not renamed chomp: 'all' + fold: 'all' include-java: 'example$docs-src/main/java/org/springframework/docs' spring-site: 'https://spring.io' spring-site-blog: '{spring-site}/blog' @@ -25,9 +26,8 @@ asciidoc: spring-site-projects: '{spring-site}/projects' spring-site-tools: "{spring-site}/tools" spring-org: 'spring-projects' - spring-repo: "{spring-org}/spring-framework" spring-github-org: "https://github.com/{spring-org}" - spring-framework-github: "https://github.com/{spring-repo}" + spring-framework-github: "https://github.com/{spring-org}/spring-framework" spring-framework-code: '{spring-framework-github}/tree/main' spring-framework-issues: '{spring-framework-github}/issues' issues-old: 'https://jira.spring.io/browse' From c771d63a24dd7d420c208af409545b7ec2398bc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Basl=C3=A9?= Date: Tue, 21 Nov 2023 11:36:11 +0100 Subject: [PATCH 4/7] review: (actually) remove issues-old attribute --- framework-docs/antora.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/framework-docs/antora.yml b/framework-docs/antora.yml index a7fd63f2d8a9..41f2780cdf82 100644 --- a/framework-docs/antora.yml +++ b/framework-docs/antora.yml @@ -30,7 +30,6 @@ asciidoc: spring-framework-github: "https://github.com/{spring-org}/spring-framework" spring-framework-code: '{spring-framework-github}/tree/main' spring-framework-issues: '{spring-framework-github}/issues' - issues-old: 'https://jira.spring.io/browse' spring-framework-wiki: '{spring-framework-github}/wiki' # Docs docs-site: 'https://docs.spring.io' From 21c016fe3ecbd8c07903d74397f3d4432148157e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Basl=C3=A9?= Date: Tue, 21 Nov 2023 11:38:00 +0100 Subject: [PATCH 5/7] Remove now irrelevant src/docs/asciidoc folder --- .../docs/asciidoc/anchor-rewrite.properties | 9 - .../asciidoc/images/DataAccessException.png | Bin 8884 -> 0 bytes .../docs/asciidoc/images/aop-proxy-call.png | Bin 3511 -> 0 bytes .../images/aop-proxy-plain-pojo-call.png | Bin 2548 -> 0 bytes .../docs/asciidoc/images/container-magic.png | Bin 8673 -> 0 bytes .../images/message-flow-broker-relay.png | Bin 80126 -> 0 bytes .../images/message-flow-simple-broker.png | Bin 65382 -> 0 bytes .../asciidoc/images/mvc-context-hierarchy.png | Bin 64492 -> 0 bytes .../asciidoc/images/mvc-context-hierarchy.svg | 612 ------- .../asciidoc/images/oxm-exceptions.graffle | 1619 ----------------- .../docs/asciidoc/images/oxm-exceptions.png | Bin 28027 -> 0 bytes .../src/docs/asciidoc/images/prototype.png | Bin 83478 -> 0 bytes .../src/docs/asciidoc/images/singleton.png | Bin 85523 -> 0 bytes .../images/spring-mvc-and-webflux-venn.png | Bin 104380 -> 0 bytes .../src/docs/asciidoc/images/tx.png | Bin 82811 -> 0 bytes .../docs/asciidoc/images/tx_prop_required.png | Bin 40355 -> 0 bytes .../asciidoc/images/tx_prop_requires_new.png | Bin 48060 -> 0 bytes .../docs/asciidoc/index-docinfo-header.html | 9 - .../docs/asciidoc/spring-framework.adocbook | 26 - 19 files changed, 2275 deletions(-) delete mode 100644 framework-docs/src/docs/asciidoc/anchor-rewrite.properties delete mode 100644 framework-docs/src/docs/asciidoc/images/DataAccessException.png delete mode 100644 framework-docs/src/docs/asciidoc/images/aop-proxy-call.png delete mode 100644 framework-docs/src/docs/asciidoc/images/aop-proxy-plain-pojo-call.png delete mode 100644 framework-docs/src/docs/asciidoc/images/container-magic.png delete mode 100644 framework-docs/src/docs/asciidoc/images/message-flow-broker-relay.png delete mode 100644 framework-docs/src/docs/asciidoc/images/message-flow-simple-broker.png delete mode 100644 framework-docs/src/docs/asciidoc/images/mvc-context-hierarchy.png delete mode 100644 framework-docs/src/docs/asciidoc/images/mvc-context-hierarchy.svg delete mode 100644 framework-docs/src/docs/asciidoc/images/oxm-exceptions.graffle delete mode 100644 framework-docs/src/docs/asciidoc/images/oxm-exceptions.png delete mode 100644 framework-docs/src/docs/asciidoc/images/prototype.png delete mode 100644 framework-docs/src/docs/asciidoc/images/singleton.png delete mode 100644 framework-docs/src/docs/asciidoc/images/spring-mvc-and-webflux-venn.png delete mode 100644 framework-docs/src/docs/asciidoc/images/tx.png delete mode 100644 framework-docs/src/docs/asciidoc/images/tx_prop_required.png delete mode 100644 framework-docs/src/docs/asciidoc/images/tx_prop_requires_new.png delete mode 100644 framework-docs/src/docs/asciidoc/index-docinfo-header.html delete mode 100644 framework-docs/src/docs/asciidoc/spring-framework.adocbook diff --git a/framework-docs/src/docs/asciidoc/anchor-rewrite.properties b/framework-docs/src/docs/asciidoc/anchor-rewrite.properties deleted file mode 100644 index e1e20afb8446..000000000000 --- a/framework-docs/src/docs/asciidoc/anchor-rewrite.properties +++ /dev/null @@ -1,9 +0,0 @@ -aot=core.aot -aot-basics=core.aot.basics -aot-refresh=core.aot.refresh -aot-bean-factory-initialization-contributions=core.aot.bean-factory-initialization-contributions -aot-bean-registration-contributions=core.aot.bean-registration-contributions -aot-hints=core.aot.hints -aot-hints-import-runtime-hints=core.aot.hints.import-runtime-hints -aot-hints-reflective=core.aot.hints.reflective -aot-hints-register-reflection-for-binding=core.aot.hints.register-reflection-for-binding \ No newline at end of file diff --git a/framework-docs/src/docs/asciidoc/images/DataAccessException.png b/framework-docs/src/docs/asciidoc/images/DataAccessException.png deleted file mode 100644 index 746f17399b995fa3e45cf0ac7c12a255abfd105b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8884 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 diff --git a/framework-docs/src/docs/asciidoc/images/aop-proxy-plain-pojo-call.png b/framework-docs/src/docs/asciidoc/images/aop-proxy-plain-pojo-call.png deleted file mode 100644 index 8ece077d34456a89d8864c95e3a97784f2c52cf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2548 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 V?Yfd<4A(UWv>xfISE{~v{U6xW!2|#R diff --git a/framework-docs/src/docs/asciidoc/images/message-flow-broker-relay.png b/framework-docs/src/docs/asciidoc/images/message-flow-broker-relay.png deleted file mode 100644 index 3cf93fa1439c63b39564c06008e1a07d508307de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80126 zcma%jWl$Vjv~J@T+zBp$;K5xI+}+)s;O>Or?(XjH5G1$+cXti019#3j_tyLSy1Ht* zd-im#z4r3;?Fmzm6GuiQKm-5)SyDno2>_tp001Hf9uoY-awJ;@`~l_kRZ;~W9)5LO zehYky?<}g}tZZ-Q>}Kd_3Ygp3+nO>s89SPq+BsR+J6}Te2mk;nASoiO;+}c7ZmxqV z`4RYQu8a^&>?zJ;Bur0==!$i9W^Qj@V-DxVeR(^_i_On_zoGam8qp{(?3TO>lavg4 z<^hD(p6E~d%=4Z@LYbE3;hGX`ZfVQ$7!CTLGxpsrI2r}`zdL(~qBr`|1JYxu@p{X{(TxqDhQMKO!42CVfp``;YvX@zH(!sG4hYU^GM$};qkccFUs=s zXZ{5I_r}-4TG*U})wT?N*#J38c5g#}(kcZlCBE98o9+IeygdI)XpTz%h>zHbc~2~K zd;AP%H0+Zg&h_^{VS?G^ z#=~CUZwSzA{*X^`xpO4P04*);)6)|X5lkRyQvNQv(=1}daUBs6eBi6Z0J()LpHEIfLE+?d6OD`@oc;s$^*^S1W5dAw zh(>`BHVIVn`1uGTw2v^CUmL|*I3pdRp z>yw98IRE1)nDyN}cepIZ7oPg9-(PG+q{`q+wVKzTJ33@D1oKl+U;t=Kd;Owape-!S zg)>0~t7xE0Cd><8jFngP*=r`CWPg28ceAH6#t7|Hrcv{%+{Q2z?!p83yRcL!fPS5GVS1|doeH)k$EzB-9v!z3Wi z#C&tCw=n@yx2}NVxqVJQ)#Y+?^FZfmpu+b@4#~}%*!asw@gOGZGyL30^!ZyAh{7qm z_{A@E%!`Y&`N~wUN@l`V-ZO{ZM>}@?ZEfe0#qgviQ#A5XZg9ov@jVtl@iAfCi5 z_T`;8d17anE?YA+P-1WII~P}P^qlEhws(sov-b@9bG;`n{#S-=M!Ab1P%phdATjJl zz^i!FcLvsWMouyQhTz}sU>DgpHL44hQO=!C`iv+AjiEU}hx+muR$dw?J&-DqTU~rG zJyh1>IbeqAXj~=n?94p0x8s5F%>qe*g(sn#eG^WG)K{k@yw+ltIDv zy3;>Vy5+iNZ*?0^?NNyBaQ^>JU?wv4!QM`nPd8c-!9>b%P2A3~*}oqnF=+>5ZgZ2s zk@f@fM>v-o#{KcN{6cv?wK(vXYKf}2q_am@qS)!Q6ckiXSFC95ObSs{G&>2RHevtU)}^B@YjF;1m+ z6aw%kmoH0tmJT+}j8{UJ{iYlDfl^eIR_HF5togE7QoGUHjk|QtdF@8oLq<`8FcRXQ5xeK7dH?Yf9}ery`EDiZ6uT`UB4Whzy$b=K z4Od9h%M53gOw3?rrqc0yIQds-<*G~v<_tpK1v@b~hTY!=qV>9Y8+v}C$pVXUd* z$p9&%3W5qFQY22#Kb7$z-4+6fb+#Be>zBl4Pcow9wnUHghcJM4?4rYowA$j?H`oe7 zlIAf4Vm+PS_<9HxPhFA!Q`mPUEu*sqY^3_p;Iv;cN>CU1o$qubtj?7~lL_WW0~>sL zc(@DU0ZOeJi6nQ7&(D7HKK3L_JuS7hwfsAkRY_%nntq`XUjQJHALJG6z@+=*f(LQk z1&grq%#2~lQLw(yk-0mxzw)(+Hqz%KA!bHm!qm?Ehq=SVs{#KwnweiuCg%bfm+$+( z0N@vIjfXU&86xeN;lL=FfCvTzKoR?qa6*0o@AYsSRE-6cx_j=KH0I`g{m+#N=7}#( zX7M=$_L~iE@QqH&oE&}kb^lOtVP==$)DI;n*mj?UtLQB!xu%;#^L{EG<1X$SX;A_H zac-sVjqQc11#Dm{uMvhz`S;bv<-%^)Nsdo%_G)ln%rzATijtsw_iSEJ&hyKDE0|i8 zT3VE`;+0!{aG{`6CgRBp)L0IaCq)~6?nilMjnKJ=OKAY%PHKJSax*CxD5`HE0pLx@ zVW%G_(BkhyMNv-mVUfr#RTTnCGkkdkTmJLidoOM;bK8Fh8aszuV7`#>@Fc&(r8o08 zwewJ|@%A4kHYz5$8|vV-FvF!t3>ek)Wtg$KcIlo=MhiSM{J%TBK&I!4j1mRyHEaf3Kcf|ARCEu+jFME42# zjY&u2)!ADy07I*I0pJTE8yQHoi zJkkCY-_j;}^C9IpCBmBVjPE2}%3{LvBcBpwNUDO|#CNJvnzA%SW7c5Ck|e*o-V3pJsw+!pP| zLeg*9lT+XTUk`63JwnN$thg?NZ(9vBC=(QtQVk2yYs;$D_trbDy#l-m*OXDVvx@Ly z-$EWi#rRH>Zsmg7kNj#&IPi^zNMhOF%e;xrACFIWvyd@eb;=e2cZ3HDn(PMf~ z!H#!{_!~ zTvK!Y#8tVzE~8lS4ob5rgQM-oVOg3kBM6J@VzXs~e8r`(En8Qr1?j9dn9QL z#ZsQXyO4VH6&x*Ug&MFexwxTn18DnZdL9`$lN85k_|ca|#qfZ?BD}s_6ULx`=jGD` zWaaSP${YD~cy(!ImqnxDJj;?*gO19iF5TM(j$3TB>fp*nxyS)x&$c9bUG({F$|{R@ z8zXp$G#Hwrw65b~pa9`twv7&|=53UFJN?`>Z4A2ag=xAtH{_etiB_6Sr((8+BCBXg zI0EjIiyv2948Bc$0{MP%VzJ-so*0$-EE#rwr13^FJ=b{ag&f{FuY9bnc3CDjn&zk%c=^{v_W(G$_TGedl$-qU0gy+)Z)cz_yQbsc5#l^N z%s%+g3)AFjA(5U;?Rra;uhif&@Q1EIUsWZ#gRFx7uj8i4HyD8C(L1P&^|zRwMyl7b zo{=7PMOs(WhdnBfD+E8nm+wqDbAFS7ZVGlppV1S7D+@h z5$PCeZ19;RWjhk3rb(>o(E)$VziAw~m?Pi)RZ}{C<;`dH;1x|dKS)!kdv|kWbZOB=G{cS$?SnHTX>mvNDmfyJmS?Rlm>Y!6XbDshGBjWBb^9!P_8tazw0??N z9<0RqsYFTj*}x6yRjESt91WBBdc_BG0b;6-$Myo95w7x1?5x-o1uiS&0f*xckSG!4MX< z@wem_=9(F>>k(p}C(Kw9Q5;&@$(ArA<*jS)kI|MZV7;WOy9`*lrspC6LNn88yy_+8 z(88;u&ws@vL(Ds~njG&IoA)&ik>``pXvEaA7PMRlUT&WX8;(8ZqY@H-w_5^$AdAhe zY?L;yt&0i|$czZ*zRt=SDZt9MKACSlfA}R&mkueLaZ`+Xz2G^(RG5 z-S>S3rj8R7vp|-hZI1Zu13Nd+U*j6i%u#D9mi4O$MM?J3lW171uki{Wg5@s0G0IfV zW{ImRx)7c0S=9*4(>=16oJ?g_Vsp4DSy}q(Yq@_fM`!4enU{X!4cgkWTQAEiKK{+| zlka7&U4V?n+A5l`jC*GNzE9wN!f<~l`OLA(6M0d#x;oy-$hytAqxy+)Q&uqv6Ty_< z2e_4UrRKbIE>^va&lJV2V9>23h&p_6c6`9ePq*tk$K-ljmkoYG$G>wr+$;9mbx_tM zW15d-$Pw^4IXGBQb7}r0`TOYJ$$oH2f5UJ4B&hbtIT~ye%gtA+v{Nug+ygW za4P`Cq%M*PKkED5Mj7)nsCK}sf4LuM^3rK_u%|woa+;&W93Jg?v$E8*r$OWNnz&!2 z!@0|;f&&ziub&**43}syDZnvHWN4TAz@u&LC)s}Ie7&XU9+LeB7Co-{@^TEm8|9sK zjcEVslbN1`APi>$mZPu7U5cFHg$4Zk9~erGA%V?BPFB{UVd{R@0y2-(4q^(HA_ao{ zR40#3iax9qTe+lTZ8?>lDhrO3VixDpwk|%~@eixJB;SmKS#Y2LApfCgl+Zn)hXY_PF*Ujv7|KUu=Xi)#R?Oj%f#5Lo&r=E9 zR2cQubr-`M1RrEPp35O5D?n3wk|vw`p5YkrHKK`$fAD)gu+~x1$-Ph9udV!rHbjym zQJmk~jGF1xkH?5}7tHQgS2(`3*$}VFyYJSifR!rB(Po7S>EPZ8|wQ=_%^Z9^bx9)*yn%%jovNAF% zYPIn9!hK9a)0z33t>Dci2LdEm@1GbYSoAuz>`%K}aI41rvwy|23LvB4TZ?CkMdL=jb$ud3+C@s#60!(C`BHjAV5oVkJ_Z))W{jO*WqxDEWl zYcYOUWXAy-o@)(Jqsa;L$6g1uWHtZ|HuE~`J(6MK24y2My=B9=f&Gt_OwJz&U-eWj zV0mLg1`a^PkfTNv*71Dty?CbLG3l7>$G1F0qI=g=FPuN z!yy3kq9T2%v615$kh(2oc8>48p;*u{E+>`aLc2tGycMc-NE)pw3bf^)FwROBoRh!+ z{47M(vYzpOOb6{qI}-~@=IHM+$9FHgEtdG|vn3xx{31boAY6`*_WDRyH+arPriP3S zFnqf>myh{`RPI^O|2BPgdr87bETv`r>15-6(rB0E(h=EV*yUZ*4N=Mg=&dds{z1P; zW_jwG93x?{%aS7yzs}UPz6as&1?d*QHlF5sqQML+`IlyWwcLwO8L8PH=ga324b z6)$u?-K-XVWg{mB%Rm_!eb@8l1jLI#Ch}(qCa~fgFvEU0YPLVEfk2Wa(AW~kAw*Gz z29gR;xW-u+Q53l0^WInqe*Cdt>^4wm+6}o0_mK-80ta2z`N&a#|L2p*b6FU`4*id* z#i7SVb3qd=xRQ+5@bZ~GHr=7YJ8*fPZU%vC4O~`^XMwSn{1WftXABEq4Ka4a#;I5I zx6w1W7Rgt`1FWo0L&6_kcUL4oB>=2zE7(QFbtZB!jHY6KhKh=C@eo zThl^walOlpZ*z=GO71ns zZBd7!T(3s*zVBqXn)r1o=CiWLEhjGbJeF(Fb$SCLeDy`~eLqIL5s+42n`+CT=zjb= zK#BzO0q`%i5VXH|I*K@c1QA|n_E;NT(?uWy7NzV zB?N6wZD-zhv01i?&L2#0tV=?)n7F!OS zQDjFQ_qvN=0H8^>&3j1+XO@g4fhB7@flmj^G-o%vbZUL$QwDPgvmrfxZdm~ZXx5d) z|8PH_XC4gfbOb#7^Amkgk+_gu^CQNLR(#WZ)7&)4jgWxS+;U;6uj}&xp(-G=8tra4 zggC?2c(KU_-t#5cvc=Z?K(ylu_{u$O1_D$~1%asGlKLs;oQhoN4!(rwM!KX8e-wn>`^tBtEMr+|& z3IGCcYabtSq<#RY`Ge)Sel@P7fw4&hx>D0$zNfO>-MYV=uX7T`U<=L4Zf-T+TSpkK z7i6Ys>!sezi=S6ul?)`|uX2IIJ@qL@nz)x zXthIr%zJyx9SOf$0QQ8y>B(UATj*CqFgs1YJ;pwFQ z2~ZG^oL06@LHkkn%L5z8T?O?>dPZvDlCbed^xzWALgbQyRM$V^a53sqCMb1iCy1yM z@ig8*JHb?3SOEaH;Vi1}t@P(zc&b-KJ-x8hrALy3PjrQ&d;}HjFXSEJbE!nA0)p-t zXFgIY_s;c{r5ow7@X#g-d*k%@M zP~(nVo9}vfBr#I-+dNH?Rx*MiRO@K&^Qm)8V&CO7-~GJMCErC~#C4&|G8qdWm^s$K z8Lf{s2?fxqJzt-gbRF{}A4KM~8VC8M1>Qu08t~D)?AzZ=;4+GQTzt*fu zP1g@uQft;+hos?1U;0{MKtvqXd|7nR@ypkn>bz*P(eLxxmY(_@RM7;Ox@K@V3YDCM zjtif@&dRp5cR=F;u*Bs@1E6u&%+yx402u%4SHD?kD!PuVD*D@-pa511z)oE zA%H!VpWLUoFy_?iThQr_eqJu70MJIv?|hqcfDmc=IXR2Ue_N*=IP?uFWUhcbJ2u#Od4x>zCnQsq{537%6`F-e1ZdFe zU5-H<<*x2;k&o^=LrBKiSyuB-ODVP&QppZkDCv(B#IDf?L}Je*s0HI>u=^<0V~jcg z_zypFEe+}We~s+p6SOk}0L_ZnY{*Rf&J2jL+YwPJnk9b-YYa)`}Q?rZ(9w-VkPJ#LH*K~D%pTtpCMohAVb*v)h zsA33lQtmJ)FnXgjyF45K*u>3uQ&TMS>aztl#y-{^>z+qqMZR$}+vymbbl7BT$o*>8 zrgobhJyThpGx=)&7uA#{<6XkXX-!GZp)Hr@Seds4(|2Q*w@d{R;Ckr~a?yhlAgm)^ zmws~;lRfmjO5*=!4!aKzk<0ujMg}wu6=t6(INDtd9?n$oX1+h|Ak>7(2~fNsvvs2D zpV~z#x$*luzF%eQwP+@#?g5K0FfKt34o%A5aq6c^hY`ivQPrlTIDbbY zuDkQ2ITG%`mST(sC!#2yd=;ZR>c7S<`44Hzc|ULbVzF77D61ZAj3>K6<>p3UF!wZR zLKpeeu6lmaS9^2xJ>@PctiIVLaf5fd_SyVrxP`|)6yCAxy*a0{m`&xYu@%SKesy&1 z(61Fu)<5GL&u%a2IceyZW*f>&Jsl-3`$*xKCHEOzTIPK_iP?=dyWuk}&OKF-UbFCnHTgu6qbj9<6ow(=&K^3%~x z0UZ8)7p%MjmD{oPViD6^iG7nx+Wee#%g+r%1k-Y6e)W>m^J00a7I73fr&fTpzk6%6 z_-9KS&*=9L5wLEjpU+7ao7T97FlcW-F?c?Oz(wjoT~tk%NwG3_C_>p;^Eq;*)>^dm zrQPYCf6g^FoORZ>m zEvEhLrvgFq;nTlnh`~7(lz9cS;6I+)26@?d5I0&Xd|W zd}b{y>t^#EDCx}IOMg2FZ|t0Edeb@l#DZi!V`6B+SMoejiZrFRE*(Xa*vv34CwF(> zz50H+bdz|`VP;k z?z#3|Sj}o7iuc#7x~^+a>X?aX<<0Hp6|JE1b0ehAz&L~ZGx-5=gW9Ymp92!D%|#*Q z_X>H*h8ObfB;VL`yl&|V*2)sfGE#A9pm$;{qMFr8p8x43>!4o%iD;D2xu83i|9!F+svs zB60owB-kVa3GR-BUn9K|5Al7jq9vz68Nv3AIRy=fh}O+uLf9WtU4=n?Vmhj!>Dr=T z;bB^_5)baojX|E;DD9K)#MDMfzmb!1PM%!+MH7N~aF$Jj+D4+k0HQ+7czH?mo1t8p zgxm0vYbiDWNX>oQsvbhxkS0OrF1th(S*{w(!|_SU(*iCn zVxAfXI%kX30m0kIAYYo#bT2s_JC4%~Kk+WKEgWYQo3D=RBX49h?HqC`Yk zfusNs6KKze>X|v>z83Ih`1sY$xfKqXJX#MQRKDXSQ;t?hJa&c;Eoti3)ZBdE8vr#i zF|k^B5Euw4D?6cPbJXOmsAeI=Yg&;SzZ>j_+J@>@s z|7}4JyP2%DIuN3m?+k=tev*j=Ig+z-$H}NOPDojnlrnp;el)k-$ic);tywI{h(m@o zE&H5!z1R(0{~nTB1u?@6p&~K`a~_1PFH*T5zjm;1PSg` zUmoC zA}m^pS#g&S$=%YS9_hyd_H}1#nv=Bp8I10nP7>gIm_`6}j-cPgN|SX3o$$YypP9PS z6Rmzvg8B61QRBk{f#(4`P(301bwNbrKL>c81zlaBU<6EG(49IaWA5FZTCMt*llW%%^-_?u&|w*wyM=OC^RGY|nHHi-r-yzcQ8-6qLq{jT<*C>nnfL zE`H1Ji~TF(;2`Cy9W_%Ky3#UtzDPHs&$sq15oDoPLX7im()UWGo5QYxh`g~{3X%S%Vce8y^^GbJKahRi>-3A9rUQl&_l0sv^q zRr#Pmjr>V_(leH;G_=}&S`BsHuCS`vzEl!BPCX_V0>ER^VUE3;cv&CAlp_g+;vPzB zi0pY%g$pDl5+z03Gx5PitrU(WLCVlgk56R;^~A?385$aPnR=+Gs%9)@%9SLHAiuYn z)}{O5Fh%eF`uC_%t8#R7Oy~1(*E zqTr8>jSYcUi>w#OgPz#GK3U0{c98Cxg1GC0lsZ0-TPZdXIB!)rQUQ7iJni^|^`<1= zPW!5~^^I+tOuu!C^gvNNc~z&gOO)ijknenbC*pJj{LlWrc;DE6kI7?{40ykaSkC?8 zb%DmfwgM;Y3)|M#1_qb$IvtE3@K^Bg;6OiJ{q^X~%p^R1*Q8IDpj1**tM8a6(H+cIDgbg|)e_4s6t0{~x^)_i@oblfgK1a?A} z5dz_p9o#vG5fF3YnO%-Xfw1WQFLqOCoPH6Qi}Lbwl!&bIUNRda=?4#v-D<;6$kvk^ zF=liwPo_hI$e6sUj4gEZk)7>_bIaN!Mo7@9^>GP9r5>jxAJ~)n{c*RStTAn`tT2zPG2%Rtj=d-%S?*LacG{@spk;uS`=a^G)v|a{4-lyQY^ut^&JI z{`YG|6n9pW)Oy*V>$x;cT>b8d&pQE`(OtX4#|gMoXJxW5!ZT5Ac76i;TJq`k>PPRd zvNq^3ZgR@fv;F2s!Q6z$?eb zMw`+|nJ{d!!iit_7ZdG@ZWwWMcgviL9T|+?b2^-4S2WujjspuxRM+atoPOeq_e3xI zA`2ioTH%o&LN`@cQ=t6jf6RG*Y&mw}l4)S|cX8(;mUrldrY(+>d_?H(O(>FHcHB*)b6` zH|K>{Uz)<=zCwAh3f|q0R(JrUn{GE&9VhbDq~~#mN66~&<%=>q`yp_dA5dGd9beZ+ z?8*cLg0Jjn4yJDg!2?&kqOv*Umx{-pG0+a zyEZ!5(g{U{+kPR(CC7&bw~ELV4u|zLeEeMQDJG@=FucAHb%w@DLci?H5HvG;`Z&~w zdr5u~vfp{TzLo?DIMSBS5F099-2LzqFjMrj<0VOO2K~B`4!ClAKrR;6JnN7l1B5j9 za#*KC5}~>d9|bShqm2bTyd8?EB=z*=M{Is=lzfplzR}mglY-2R`infeA8fX_$-7l8 z22Oqdjy(cGs>u`p5Rfkd<-e2_acL4iPJJop{r(nT4UOjGj-v~^^LkjphXRv?QHgVg zJn4J;I@tCzWi1JU#w^RF3=p!cuWCnz00fVFj$eZ4gp3g=@P@DJ&hS|{T~ZdPp}^S_>!7Ptc16XZy8maxg|ug(B( z%s2_5wm)O^4i^m*ANzj*24CDZ`3lN=MJ&x9vgN=H34G9yF^StZ+V9zXanZxpIOt zkcJA^C}5!VsVG6!9|N9dk;=2U7n~sQHGL zzYdb8MmhEfYJTIGwz)u2}8Gl2$ z)te~3^j1QTg7D9>Fh%qPN zS8Z^{<680g{kqNHWNn@V&CP@FudS$fxvUm{jX?|ySNsVDNEyu?0pNr0W?g;EEuA=z zraCzWR`=Z$qykC9ifD!gHU$I}fS9GjiD_R8)};WNhxHO8VEwAVDx_c8rJVrS!!gH- z2v~8a-1*(}Mp@|}<;VXS3OH|jpJ*(a?<97l24hxi_}&TZXwEH$itf<%jwwIDBSwzm z5946MYS9<~LJD6_^HA+)g;OzdsPRgdWdelDRnP`>_1xG{#}Cibj5VBYMe9j;zy|Ic z*uae@(QRyOY;SKzC2@b>0>W(R<#xHk zRGxzzqbpKG=VxExWkrxt0Y=x#B3C`nq^KmS{ljen35Y=>1QcLrMux+m+2Sdm6mX1N2%fG?>}wS@e@a1q9=Ec{GmQTv5AL@FKPT z;2sS*07I^;s&aKhCD<4ks%pyeR6#8!A?Q$~{4{Nq_g4dI$&=St6U5T6pbAb zJ$Ua5dfI2$>Zd(OkKV8>eFeiC4*WNxVfd%UAN&qFT%Nw$#ujF0G`x5?xD??f$-x2; z;tH3%$P@-Zt41W0e`{rG5R}F8imE;fT4}fnu(jv7--rc~%T<BTUX=Dt1Y zPykzr?W$+RoB)wXdo$ZElk{7nb{mZ5tO!p`&yiCYn!iwT!u>3ghiVHpB{tQ}=V8Zd zm9Gsje`glO-MVm;;HotCMQRde5{_8@RcE>yy{_lenx6E@mok-;O}}^0#Mk(wt*T4& zXXcE_ree&`S}w$cQC*2)-L7bb+#=+0A=|WK$>*ydmc0k!C=Px_bcHO};92z;jd!AD zrJ?+mnomF)$x5bAQ*rjF@0a3yQN6KqTj^def4)Ftq>18jv+~T@{JBztH)H&w+4NaE zWWJE3FR_Hqtdn#i5Zl z?W%Brtu7(nB(Zk>SJ1A$7ed_0#XM$o+=KFiJ~h z_x(`v%$JdOLvWV0+*v`4U0aM~aE#0Gh!b>?ZyVHj%5Ujkx+1&q?I$?LFg=+oOG``B z)6^5(60KrRQ#xUMIFA5>lUVi*OveQ!W*`UYU3bO&G6#82nsE0P`an} zhmhJ4XW?l+*{80iG7({qv!TL*MG6w1iT%_MUa~XIZQUjE^0WY!z5az)d920xn(a9g z4%F>%<~ZBsti2D$@!HqX7o*okZF4mizC~n3or^Kc`4UMD zMKwjG(n9OLNg1n&`}5xVO=f<~gx}fF)CCK=qrjKnlIw~B0$Z8+8M{6J!|Mm_`1K^9?l)%Z-e+6m ztVrxo((S_E)L2kJm{J1`G9wKpBoL>=Bo!$^1?gY=H54iqYyKGMHCjy2czPz|)LJft%OBL}M1RC}DzBAGH9ztU%+oW1T_QBtT&uS|9rN2c~ zKb`+z=B!)^XBO2%YZmxhO#T_CosM>;ZD~xrzTHA4o5gS;YQ3fv$mMds!DwJon;;{Q z(`9{sw5N_2iobo_Y>GMU#P^we0R`)-2H6|kS7u>a6?_{-YQO&k2BiG)DGQ>7-Iv87 z?RtOcp~*$jtIw@i!#zy3qB#9G_S`)_PK%3kxIOvW>meo{<^;_ zd)IHwIv}*rlsY!7K{AoTweb1JAGYLbBDOm6t4qvoB;{6}%;D)p{PT_7XMNa=clc{l zH9xq7^O9&j^Q^AjTTs!6si~2SoakVi--F=#{0`))Ptb^3Jk4fJ4P#K6$DV|Q2u_R4 zR}(yZhAhFo%*@Ri)TO4ME0|a=9Cn0T>2D4<#p;(xB3SHEaRr_vtE-Hpe(LxxyBFN%lm^ zP$TXDZJjS4V}A|*+M?H-tw%w0Y2IYFlM?C0Fd9L`%Zf8>_3_Q|(=_|R1YxZd??aAL z_gMZ|60e)yA7yF&&jmn~Q@MHV&{AkCC1e;mdeiJ0DmM}JT`TX13l1_3YKLF_0reN& zuGRwr6kG(#;FEEbf{*T%Ic)2)`UnH$b)j&y&OPETf|2f`k{+_>t)bLp7_|qRNe#7b zcm^(Spj4h+MH-b!Q`LH=k|wyIB%B%}nMyM%kqfJ0ApmHX zv_~?EY|oRD?O`8u|Bm{*&aD_05o@>39MbZIBdZHL_Ldt$#YQ)!I$dz~tUn#WJe-A# zT!EZ(UTr-D0QPJa3B4-4Oje0E7jxQjb634yBPTjO-70(nfCUpuXdr(u67C196_IFq zKouidyLWFjcF^3%N7%u{vleKb#>bnZV{I~rC&=96TLNCYw{bZ|-e#g`7IsB4;XCJ+ zzSa`;-Ez*kj5?FLY9 zHn@`aItoL+qHMWV!g~#6j!%8@7dIebY?DA(x#&WXDMyPB` zOHE6zKNY0vQN_WD`IcXSi6LXRRrwaQqZi4OLw#;hL&MnWupn6O-ujMZCF@ps#ydmK z0*e6P1>jH z?RZ|k)_x;xRXbzXbXhLW`(eNNK`=EQ%;PQJaGm$EL56p%qwsKN?(llylK8pS1L+pT z0Doz7mu5mu>(N2%F5)b$lg!wuA&AiQf@BXj%Zyq|Z@bB^{#l%%=Hp;eHLbw?;k096 zRO{=qXycV4aYF>~j+7m`Q%ex=NoK=4^l+an+eI&vCvS3g>vKC)$>m3`uDpqfw#g4&~77BWC~vHbl}vVxDFXEAb={6vxuYdQ;gc!BWWqd09;9mzhJuW_gNB zsff}Qxpgo1lMNoGc0u3I{AZ>RsyPDO1YzoAkTPWn{iRgWoxZ2#V&LZE)h8qwZVbVq zu-{*nQHTObH_6E3-1kSZ>F6rP$H!M{R##W2(pXCh^5cKRx?CAPoh!D#XHhXU8x!?t z`MIJCFB{aUzC|N@=#Ot;Quny~S>~Q{Wd-{+Pyzt?WChnwfP>T!+kw2G?Jpd<$wEU%`bk((`UMi6jUEzFPLD=5Jv9oLT?Ka=IRXhU2~AIlD4n@Kk(i zd8G#hgy!2nPu(yvo<8oKif^%e|L*&I=qe5JXv+%1t zOW8$icQz&+J(!}_P0C1jz+MMwG`16tDtUZF zvSD0apB7@yhMRiDX248bK_Qnc<%7|*NDhn$V5<2ob4UzFFjLS@dKrpSoj`gK;% z!ofAWwP5-AFwzMkhwYb}x6_|487M_X$(7_HLX%X6XG)fauT3_4_0LB@NG3DogN?nyp1hscG3Ly-1P2}__V`|gydC+Q`WMZQn;mNEGzBSe>HB5@n8@a zAy_E3WbC8%GI5rwIY5bWSFL6>_dj%fWmr{R)a?dAx)G#7x{*{`kdkg`>F$n02_hgR z-Q6YKpmcXP(s}6SaJTPwzx(g*Up#O)&)R#hIoDWoj5(G*S(B;28)mJqM-0a`bJDB` z@PAx?`%ea@-FnMoGF$NIZ$)@oOWK?*v}kDQDzm|Vh>X08|Qo%=W2E#G1F7z*5IK_S!x>HS4fz7VZ8*LhAd{-;a9ElVc9^vd?f>!bJVL%Jy*e3Y^@qaBVGOxBkP zpsbr&x?7a;95rxkWpO>09^A$oJ^Kj?Jq+S;1pW-p4!meLU~RQbRBb{RFQ|0}-Q?5S2cRy$M?jsCMi%bvhL!Y+XC<@Wv4(x_YC!kF2T!tfpSdjef+Qm;$%HYc4UF z)<-1qk)E%n8(p%1v%j8evMx1UF-(z=K{jBP>&I` z;nR@{G`_hc!{mByHh`vFefsSF#)aFJk11AP%NXG6nlM z@0EL83$u(qz91ocYHqW@)#$By=Q{Rw(Unk)S_|V)NIh67_QOysH7liaG-v1g1u3z3 zA-|c@1_H!T!)9CDughU$qTWY5Dp=nP?WmVA$U=C%o>44ACy(%{qDsx|=9J+sGwUX& zr{n&7sg<$a!@H)YCh8SVaiWN>_^{13(y=2QJlMcjkuW42|33b%hjbM4G zmh0)u4G|9Lf_5zUR8d0bN~9Z~Q!w--mo}*ys6X_0HhQ9oG=K$Bkh(T#uv0CjRC5_L*-RhG>v?Hx$Gr|HT3uK$ zPYBNCjR&dfXp1l*y@xb|VGmbk)&`B6bUE4~w2A@?yX47%6a@f)Pd2kOZ(49(uDN^p z!^`iJqwnv9Ik@^4_UyH8)0B9i_L8S}%%x?$U+^|YhnYFiRZ3g*n$naOz3uwE+4uQ@ zxdn5g@F&2*IWju2(U}?9tDLM=PE(S{ zLY&Pb{zHgfIy!~9NU9y@mIl;%AB*0q-f=GU-9ub1tTpWwRc1lj;qt?;Y(=+I8@+`k zkH_1yqlFs9bbcPA?(Ye_PYk!c7g>GDKl(-pZ3)BNo-#dC_CFEQ;U#1&dAirQTw(v< zw^&G0jXa-p(TyhK>1E!Eb@{?3Io(jBzhfvots;?*ZUiSn&BMMfKH1}6wpBvgv+u@6 zNH!Toa4_P+bCfNgkBdUdp!h?v!$aV&6MW@0DZ8HYa+`Jbyj+Q z3vLL;mqfQNO)=c=gsC$946P{^a3Ay^oY#eQg8v-|`K`h(A8UYb7 z($sB!?cX_nyZb!fa@bf@%?_;Z%42bHxFk+8eJcHKMEJ$sy~4Vzxi`hS@`PB#`uIem z3QtMYM)@N`44Y-r=o-aW2GrNX97VeiXIM!$JF8q+CZo&l&?dN8mH{9vu&<$|OmPs> z@d3U?zR*mSf60qzqTk8U%V_Z|njXp7<}2U*yRU-u=aPlbrbGxX9URk*gROcgneS{y z)206)VL`6d@wlHE+io7J7$|s(lulO#F|~-Z~%S!CV@RqSh&aejd`ckBFsf8M+#JKDLrkPq#?J{D+f_U#c0`ThGhSjk30 zKv46$hQC79oTE&WxfHb!~7o4`oOa1?(y*xhMqP5)w8A2li6i5 zE|K6?K#H4=m}_Z9Aq+TWf^AQHMam#sd-JNKcKJy$>=%?%>9a}_4y4@fKKE^s5P=;p z$6E|^^v4qV*|hu3Ac`RD5>bnmYl^9IxUXf0?|lZPJVk)#fdbPF+(aVhC*l5wZ3(QK z$Hg9rOgU_XzN)V7@`+%lKV401F1h5XZo?Q>Ws2BA8eiG`bVp*~0X4txHoT`cZi|0L zn}-Wz$+v}W&s+UwO4OM(E6~x<9_m{uW?lsr&;5~nWGFn5M4uQN9a!j@TI$Qb0Mafi zQNy-=IeTG{IF?zr6weYK@R-*rF&!?}m0G3tpo$<q|U0SfZqlHybe)PW9uyf|^?9XK@ zEXdQEak3n*?P9G|6uE??Bry?D@#XfL_&2pbM*1RcXLxx_3|oUiQd6<7#R5Cg|D zLqL%!@~uy@933{;h&i^a$`F^6lf&-EA1pR8JFB7Nf(+4ESW&;Q|DIB=wXm|ca;&0t zU3}JcP3H{n_AxVMeK_bbb_`2O*z&L8U{=ZjfX_|pdiwYI+xr^)CVKBhjMiUgatGg& z3;1Wqs~?(0`d{@t*snDA7(pO7N_l1oxfefH1t3X-3kRtB6L(yOkcw8;&MmYVTHH`> ztD{CCr}v?9o{*>7fo6I*|{fCL|IdlPmpCAyr-+TRF{Y}GT!F4W1Qsf9zUlZ zsGf(TJJ`=HjK790*a4Fltia~k#mo0K$UtY~ijsTdDF;i8$W);E zF;z?DXZF0?Rfka0}juK|od$-a4{@>FS zmfvzt?{iGCijJ>Y?4JIx_$l9a;RCzmCt?d5M&5YE^)k!x@v7#lZmJ2IL8LXd(ZjGVx@DMf-1-=j{#GsN;qNK3C4Xh=(n=3kx>t@D;g-MCcI8`41a~+@A*2G zonCbS9M?zCm}FgKtzjdQH033?8JzM{HoL>|Vx7Ogf4YEsBoUWnK07Ye(^$%~({*7MXsSCFC8HyQZghZyOpNp9jF0hd2wM69`!BI0=nKVjLayMUWI$ zR#tXWiUhy%9lxPsXSWAMcOYzm2Y6G3d~O}e%mWX;v2b~8hl;fYgd;8bTq4DqOxk*3 zU9Uv%pJXJq@Z^|^w0hCYAe??V49%-o1Ns+Eti2Xy21GCKmBrqEme=K){suqz2gZa2 z8U6DWiIC+pHZE?UgdmRC+VJYC@BOfrW`*vA{rXP=2N1$BMBfuVUnlhrR@U z^X8h1_$9$FMy~9XFSXa^lA{c&J~Ls>Sb%Bu;RcF@h1F2gC2)nDt(`r!FXVk~Gnpq7 z6r3NdC}pT{Q2Og4Fh@|n@2c(ZPC;M#s^xO`Qu`E89G!V{uKee4mxsNGqrus3xe4pf zTMcX)Bzk%ZicEgydH-UOdswveJ7tU+vVvWMvzgg!TF2IcqtLYK-LE11`SM8nsSzD7 zK1ZU--1dcQ&0JW$yF_7Gjlxzz68LwufQb&wt^4!*%CDT1Cv-l@e6X}Lb975d(k$2q zI=BLd^QO!ASn#aHku--0(uX*I2KC(KR2wNhJ(GTY{r&xegP&CWCg1-1PIXm=EmWY0^P&SoUmxwSwzcr*h=c3gR0&dXhakI8!SiseXF+5_-p_{M;2!wxlXs#<#Pf^I z_w_{F#vic=%h{LraH)dY%|C;Y9~6B*J)r9+0}EG`-MMnOYA|X_t3aSa?|2 zzEbF6bnjAq^?OV~x_`L5{{c>vjltuB^XPO`rc1F$NQiTCVQJZ`vv-fvGakb5$!=`V zwCDV==Dik3W;fNI_Xn@qLQBT;fUmU{^IAX}fUl*mG zXo+@VL;^eWT!uZ=Im?7M3T=($kpw^VaN-BX=J={^1HUIG??TvW>~6#s`b{j)~Q za4Xcuqy#@KgDi>v@~D{68|%jvPxoK}GF1dK3ky0bs*|JRLX|O6a89yZj>J^`Ph8H- zF(iL@nGdM!64Zv2LD(vMJZ2r|t%rS}tqZ{G{H!lhasX=Jw*rkozs>Pl3yM6L6H3FD zt;UCB1i(M1T>g2Tk(SC2UHkD@<7A_7XhnJ2AoZ(HaLAl>kNGjL2`bulScIS6{Dt+r zf1zs$DB;$Z+b_-VotNnI_+yK?($doQ%*{1`;?5R#=&TwjUQ=VL0|kg6$^b7rJG&Ir z7vN-WE`EEJ7;hTS)WPI&ekzgiQF+BP9}(=NWWabb_b4%6x& zZy{p=E|BAK&`=D&bdg0IfYR||dg56Yztui2izBWOn+D#WQdz_ck9JSPHpHgcd1G8n z03P_MsQB8CQMRNxF&taWU>A&8a6_EIWj^|oR+gI#?O)6W5+fxSC8R&vCKl!a4waRM zb}c6>nuQH7nSi zkK^Uznd%kh@oPH?P($6nt?JW{j|+Ur(RiPlX*KOQ^UT}2_nujfrLo;r(`J{}uJMS_ zGDr!PR?tzw*U(UzF%!(44(;wiKeCW%IkQE-6iIy6(n=xPCvo^}@XNfSSGU6#()}F= ze5#np$m1?7@k+&NOz|b)GP*B{eV_5Y$4EZJf1FTx_sO)NZ0b7@^KfbW zms+xXv6M#ot#N1JuQ=a+Ew{I^+L`TcDh?M?&J;$P-u?S@eSJNW%E!*aGVMZ%3{m{d zl2BJySCA{ZcQKuMtuoRgFSO|DqwjMRJ3su$86(ZWFe2~m!FDT|gC6#VKtXT`<|U#X zs`TEr&lWbA-u7OdH!oTyF8*%YsRoSOWD@AMNUtmn zpe8ro4+w_2PX%?iS`|`J<*Do=2I@?Vap7eS_V^T-ave+RF|t4c#hxFzl+|fy7XmK} zTc?rm>#GvtNz~U;hPSZuKHc2oJ0;60>8eFL?e`v|?TVA?rrb6-@V(`oRU3ZwFUNwO zQeckt_V$+VQ$Zw-n9UYPl9vj=7L#T@_|l!4MbzZs;&xW#A^NsvWx7}OYxoD>=gGD} z;qtt}vUVdC#aCOn0p|)SYI&^zq88o}LS7%n8y?yTt2@JEL-2R(9?KtR;XlyfP!h(6 zmRQOrc)RY3qX59v#L8YQ20XS(`H|5;PpZ4qPa}(a-bFUD{g)V4jr767vf2rn_vg)V zsgMFMY$YF0^4AareJrq*!)d6FA#*O4 zIGRMp^b+7eN!lB#I7X8w(&l`x+nkB-ybCWsHaKn%A6gOMbu5A#ET^4-%_Qwtay+dt zK8y{DSz=wj+A!s`8UUu>t z^VYRT*8e!PkDSG-)ZpwTGpiSQvomaPMGF+DLzlb1=a_DOfsb;ABWFwHgM}I96Je{_ z_K{Q5A!7Ge@Cn9sWZu z{G7?%Q2NymHj~;L^#HDZ-7v_;$!N|uxTVhRS`?3cWbP7><>QMpT3O0 zovRRJ{yu(93c0MP_+`T}4l+3GS0ULT%Ar zf(mS{K06#M^8@{Us2_T@OzV0S{RSbg1}%xD`P_;i*7ynSb{89gKa$#zFmFzXwzi4_ zd94#b6b5GMfEP$05K~)$fHxqK^Pm@62V%yd)&l(S7FQxyOZ)m zV*)IAGW=ldJLlAdZ}e$*QH2>^el*(C@rc-)`YtnheZ08H0mGcI^C8StBt#e|aeJVj ztRA?ewN@-7!X(}+ev$PH1G)B{pWsE8H$qTCd%0|Gf?f+o=J>)0cF0O}%5vmLJLK&3 zQg%c_L}G#Q9gYK@JsM{w(QV`#>;2+iT3|vzUD_L7FxKO*zqxeKG#sMv1S`~0x_$%dgCMI-NpzP>73}d z;u>&dFh+dZszfj$-3yC@vP0KP%I#Ni%OcCmLv4^H-UEw{Rf2zW`!W|59X$=~9CC#U z9FRT~qCiTkVJ9`ZMtm%#loyXV6w!SXj8kmI!=h_q^|x$f#yK;?z#p?`8C&e3NcU z5!e|&sifuaE*PwY(@MM4M~;1O!6K)pp(*;cFjK1ee7Bnkb}S{`P=nPg5pY8wjmQ~J zt2vfF?q&n_o3t7re)P0&v_CoU#3)OZn50P|Sh5v8ZMyLE^sKX&r;B|$A7TgFqQKm9 z?h6i@U<3pS7kyYN1ev}M*S6}+0UxL;50ry^ zh5s~=hYp=%Xd6ByU?IQ3y0Io%Vscr47rEaZgZYc;U+&Q?jYgS$Db46F>EUpH6>s`7 zQ%JyLJj>o1F8se6-7WETZuUL4^6_asKctq5?B70D9FviiRW|sH3}K%{4X&gJA-;|5 zy?=_Au6B0Hm$0wSL%l6A(to_92OmMHAzGb;240GI;g9d-l?ENKZ=wAE1CyULT@UOn z|6Rq8{QUgdbg>XGOt{Z!cuz<8sErOnfrfwO42g=eJ@qG>3l0_9;Q)u_#xK0@ZH7wr zcALt2jUQO<3Qffcve!E>^zd5U=W1?A8Gm7}TE9L}6{zo{*)^feyT7zlQW^)*T`yQ;D3}MsEqk%635E=5nZKM2 z%#*T_^1I?zoN=?++?tF=1yDLFGdNfeJbAmivyOTyz8a z9@;RZI=%ev`{qvNgXy2IjV#UT;8*e9T#Yp5rTs_(O%Jir^>*tq6?ka?N-dpckHtoh zMQ*E&quHdZeP5sWv!6K@_p@q|#Y~ldHFHvVaQda$^;>Vx3qc&%rqf_2;CA%;UtU)d zy182@T3lS@CXSGUEvNE|iDdp7*O9Zv;uO~r8kzdxeVjUTw|K3fml5_6)otlFk5n@c z9|MH+XZ~75LbK&_2iA519=+|-p4}**^!+CmX&U$a#J7hkDA`=@?I`(G`h0rxW~WPuji1olus9Ifd2WW+`iGl!f$Kg?9TDzpW^&C ziq>%;fQsb{7&fR^|(GtPEFMrF|W|7F&oPe0yEj?ZoGdZ-MD~G zlVXN+73Xx52dF+xj2(}55u)SK4B5@1uNR;Jk^72n<;KZmh|GZBVfrXKv@wn{@~}8;|TGv9q!2Pe(kJ z*B~P%k6j5q_-)3jN0^-8;5k=*n>P4=xGW|n=6?ot13xrIb;+9N)bEAY=Vnuy4I5aL zfAM4EOvmbi&AQ%8n*q-ynd8CIsk(n!JTso?%S(4WzR_mrd1X``m=Sh$(}+kln=k^! z0OWJotuJB;&KH^A2nRdz9QEKE?Ro3(ZnSPDND{7(B;f!=k-r{mvxb@t`NJo(LHRa8 zAF+Wz_!#)l2>!K{)aUaT@KL;NK3eJ!-sre30Ejm(C^)>Dxje4PNZUN~U?Di1`U)TL zWp6zDO$-A!ckLkFzsSBX9#!>QU70y^xpna_zL{$sSOwu|m%R3S?6q{GgyKlCu+dV9?=@xF4B{mEd{WRxBsAd3eka5FbM z^({*HYObBy`yoxx)^=>2uAMc`cUo|yAe>fLcIl{&q5JdCcr_5L`rp>kD|kko7#MH* z=I>)=;J105yBA`Rl1P!I{G#E>Rzt^+Iw^R?^O&qKS|5FCHCU~`guZVoVOcCl1mq^V z?ymP9mFQb5kai7A*e0Hr;?RTz1nYrIM`7WvR0t{>n)l`2#@1G?^RB|bqMg{@gUZ}p z5;yeEri<1_s@#WHI*2}Ke=e>%T*y3*>h@wYI4gfNT(}(7ifqJ+mmJGtkj=;`6Stow zrVki7O4?MHuo=5KoMOn%kbX@h?0O2zzhU79E zZuGvX$Qf)qEIGUMB<-3;LFQ@a3}z6z^Ys`k>MOiXE}mmeEESKvF6CGR&s|tz|Fy*{`XHd=`aET;jU)TCoj?x$7LyI_CU zaPr;d==|jAW`p`aWHEkIQ6Xh)+Uf&3oBQYHjFBS5%e(+qmnNg!$#VH4nxh@AeTOMV z)Oqk4Qrgwllp_${_B9B@1HaO_tJ)0j#uOj#|BiC88;CTu`bq^V#kW~{vOn7X%B(TZ zG$3@JdT2HvfRzf77{KRl4=dNN4X`zUWDls3y1BltZ)gCI<}j3#lf$4#8w~5e$|4wv z`Y_0>HkM&gCtfhIht8H*`gj5YfR$#~rFMwG&J(zeYd3IBzaI+j5d-Q&M;r2Bs2@%? z*YQ&M^dolLQvQr) zqUykCzW({}$~kpfk&T7A*xEiwdt!1YE-nuEoh=?B8A0rNvfT9hx2QZ)@V{M!0FSw8 z_1{M0j_1YI`X-{G6}d{;v1F>Z?~MT43oKkynVl6@V@VI8Nzs>?;M{KUG<0^ znR1bf?+?m1`4(A_TLk~LhmnyH1PdeQ+e2NQoeux)S=IzxN3Rmi*3wpduS2#iS$qz-*yte{s_Yppt@Y}Qf z=MISC?Vv?O8gX3fCwzL5eq(M28=IlAVRlvxUYeh9p>i`umew&KUh{Ock*m)8_?Rck z|2v6=F)V5~^!y|!-J`|tlLP3^5+^8dvxMI;o9LAs^U5^pItpc(R2fy2%WisE4R)`! zwZR%Qku&}fo4!wToN`~Xi~~~Re=)JFYp6ac`I0qO=EC?aSfGOg@#S@)V;{xpYz|GE zx7}W(mhg(cqJ<`V3L*iu+N}2@@rYUL?I;~OFM(6X`{9T-2X^P+N@4K~KUaCBOjSlG z=IKw0qttgtrURjPsw0~>C!p>UV2`r*xT^>cOo}D(?mMseCT}?ikG=aX({mJYT_0I~ zb$m7nvHJ15Cu|Bck&k}RleqoH^0xgeUPXw!-Ei5SUV^X9Q=|z8xq!3M*RZu;DeULw zeyLkdo*EhnYD|d!)zzHIatR=)bBvRtJKR%C6~INvE-lsB&IakHF*gk0?SB^6B*D==;OyA(00F|>jRjX ztYjg@9W2kC(;^Ca6Ro@U3p{guK`$wpJx}K@ef@gB6E%CG!vmrz5U0tK(jIPTehb#~ zPKh`?c0L6Whr@M5-P zxYt)HeqWp^+=VtS%4@tvy?;TYm}Bj)8%o~da$#oA-Hp+ksvC^giZkT;d2K29jlR#e|FI#jSKxHnmm;O&@|^Y zI#^$P{iDBMn)l%e12I`nLt9&W#rYMggrlQle8{a2Eb+49W8sv%ynMuuAN}~8q2Fef z)g{?*l!}MPGBtM*;5XX5Z#p|WIsPlT7%S<3#1;CAqdM|Qhkf#{an4cj@EPo?;e&t_ zDSp)+NWyGg-PyX+Y!RR}jJnLk5D319Sb!G4cKLASJwa4#E>ZN?;I-C)hJL2DsX@E|{JMx>H6QtJpYe?J7t0I4 zZ#S}=!)W=g8^QMLyu8eK4UCxn0M%mz7Om?D2{Z~>;J4%Q{TVM5KKC^rl(XW!sLbsJ zWWs$5P-r8xKeGFr;Sg?cvg#X)1bpFf9gCl;1AXo$zfUG&^ zvjx32Qmr7tzS7K13U|}VhrWz>%!4fYO+tpbchwm4CK8rg*QT0?Ko(i;!B&T!+yD?O zDHk3Jv7YR%Gs>wCys;Qbai*n-a^22UjEm{Ef9?#|B_obltrADFwzdX-{cq*$DaU+v z?{80dW_sI*31^GT{$zvw8o7`c1C%vy8-JA`c&6Pw?_-YTK###0QQ4@&{4l5iyFOk5 zt)uj5JM6*GjW#Q`t>~cKhgti-TxlI)@@u9<1~`M|0RPrgt|dQzi1kEcL341PBX zzjcjlW9YUHHG8Cs83=r@%F15@J(^OB9(>nH?`%E$zotd){EmHX!{jeVd269pmSzBU z;jlvJhyatvM@|4JB^olX|AGgFhl`d4&yHd@2VP&oM%LmU*(AZkez-`9{DHu>GF(ZqiVD+`5Nfw++lf_y~ z5?-6V<)(|fi(MWvOfh6CH61IGt3k)mqwM+ixL_^*!7}`3C zL=-GXgGgEA!U_22u|y#O5rqmaY>KJdot)d4x||=VD1ghOAFBpvCGBvBdY@ncOb_6C z*B{*T1{klo`}H@Kf1J+v0!*f3{&iXc79^!6qiy< z(b;57p;}LHc$Wsc$AHzPYtRVj?OVs$GOZL$)PI#-H!BjyeB#B|@OhH06>1XElvDkH zQTuDazk7Wg&VROc?%bK`OtFE5>{vPDX6Wv{B`q$9pB-DO1m4&c?CQ7URBz4M6;LV) zbC`{cbcRWy@TZ~ze>u;j9u{$F;6I8uadEN$um9c0?Yx5zF=u&rl^59MTUti~`CGOtWyZ;m+}@ zf3Iv@i`8D%J<32&-t{9&49*Oov+|>WOmjSIKaCTkNE8~7Wo%racU2jYb9sFo-#~kb zIc0uV&76OUe@$p$B0n)PLB#K3;oxw()L|s)&Os}yEMplKFtUHdyl#6DJ>unJTCy=-)6G@tC0UYAw{{llB8>@ z0Y6WhNm2L2?8A(<%2pY(RNj+uYuK6IkRDtk7JHxO*32Ll9_3Crvtl9@13D@o9jt=r zulptr9tiI$d+n2Vu$Y1k*c)@zEo-L&_!)Z6`w`Wk8*VQ1*ah4tYB4;f5s`}O%1>l) z(dbVvgk+RFJnklA8Fib);ynF^_C!V#1GmS0E6RweWeDLIK3cwgYtJF;1Y|lyO8s%? zQ7^Y+Bk)_z6WPtc^WMl(w7}`7;>#ue24D4(><1k1>5aHST-%{Im0Syihvpp2x!uJf z1VQ+LcS-rsf*0zPhmbRg3S%2yZ&0U0MMVXYvHuikAT66T%&u);Qd-Eq{i;ZyH4`B@ zpMCRHV2P3xgIUt3w;!_=t&B@3wR6hpTz3J_gP(S{o+NB_eABc(E+ zREseW{AR{!rNEi1wle~7?zB(@`vx|3pjwW*_nGBoZVOtz&pzrzA*1=v!o3~X6RgVl0${V5aMJE%WQUSuvNkU55<6_YGsgj4*jh{wJ+Fo6S< zo+L3`3qF|KF?(0JjV6Ue3^TmPp?|{#mVsaRo=s8%-`y+KnGz;Qu1QwE91faDi%c%D z8xM0(SiccC*z!v>IEAzE^>%PFg28OZ0#+Rly3Kwl{>|mPpA6USdwlwLb!>!U*pyTB z(Q~p+w_mFM@pH6)NE`2a&k1Cu%)6d+M>P=rDucHCmHC^~-(!xY&yv7oVnV;R=3eja z>CS5U{)}EDD0qc^UFH=k;*8aoOhjjpSl-CDe?xdBm^xknRhnFxGStlidfI!SEdsnd z*qK78AZVgH5oz)4I}}4<$P2P7<(-eua;?_*Si2ulddr(M&4wjUk&Y^X%t}m%~@kF zP^C#RRAhQ6L0aMzz&vEUvAUN4`l9VF*Y)Sk>r#Gxsc^iAgnq(R?Z;)@bBM8_NKPwA zB3rF}(?oN~&$B+BoUTox&W10}bLBLVtCYG>BMtnv8()rj?EI~L z^JKw2QlDG65xMtGgC)f_6XKq9_&o1N$NhHy)gG_i!%!It^)Ynpq@$9uTn?3g`v30q za?g&)G)EfP^hlfpLXlW5cAg|zv=`Q5#o>XRUTJB-qz{MiT++wkRkB9Jh)mU^8*`yM zM-hxXLidf*Dz)K(Rhvk-2{wn{#jnP!5om;#ORn5Czt7y{Y1jp${9-K!wPWVa zz~>0_vZF65Gp%+9iTYd6V0W&>mIiyqEzZEaW{g}BS{d|bV=KF;ryBDG6%;^5@@Upy zh=}W+QN$d+U!{TkeTT*QY>0+-(9v=6SG2^|g~zD$^LE4!#sX1CYt}UZ1Sq1T-rV-P zy``}P?o%oSyK&#j6Uc`5*B*ygM!4MU>&M@i*eg=#pY|P&=#bV5yW@lQ0AuaPJ>`Vo zu((aJv#<-F-R*k(OKZm5TyJ}c)8%R;JC7Q@;_nFy`*>`p_i~X?0zcPT#fOK7cXT}e zI~>?$FDvFhTFYLXq5X=k<^QtCR}T!u{xlD;fR4zFrgH|~cxJ>eDFO}qd=|5htr zR(MZ*_{PU%b*FBw{G;tKO0}<96 z$~GPVOU^xC4w3a$l@nRFy@eS^30m)tl9^E_T-`blHSe8u`x!j)n%sWeA1t?o5X^WUmt z&iV!B?DDvsWLG(N2u)K+P0_Jo8T1r$T@kiJK7U!8X`g&nDKKxLf_6~P^QPVKR3URl zV%HMm+sAzwZm)SG%eVpKZ)6XsANT)vcS0|&=>OSz}ui7%hjgZVt0}~SyB_$;v zpGOcK4w$&EKK`pbsO9+q%|T%)iJCYSy>y;^stEgl zh``bMRK=6#M{bThJm5SqT0A_Xn2rTE-Ez@+zQFdHX(b@hav?7BI!F~u#Saw)Rn=&D zWyM;!9JG4^*`}{AF;G!a`5pfT)z`a??1Id`7;y-mxv$x|mxju=K$lsKE%Cgw!J4uT z7J6<$+1!l^v%O|vG=AQxunvxT0uf0sN*Y&jcDB=@4W;G2-!H*-x4lvMa%iwbhx&14 zR6=|Rhd_n!v^*y^Eg>O6V`HPwwHz208=Z)tSlPf}ZEI_b|NFmnxdcP*$6_jR6vY^Z8XK(-R{dKY=Jo@)zHEnd`+J9Z zZ3@Z>hU(JQ75e%d9B*XR5%*n5=|-uc#7-OfW_RY;p2|B{o=ZDVsRrSC#L_MxEk9I! zn_3cjrlX7^;Wm5)ZXIK#4K88va<34Cf0w0OFO;5%hg6YmO-C% z!C&JcBO}97gc70{rkM%NOv1HkHPjt;@kMC0)C3KWzj-mzcx-Q6@6Kg}9hM_Y@0&^V z)Ven#2RrT1;5FImxNTVr4R`mP2>6R=?$xr-mn=awC4DuwCy-L)Sot*<@=CvJV#f^sr}8sS zs!OFkajO|#)W?@iKMdD-s)wM)=!^j6?n>$vbXGb*jB1z8J4PBFvA+^43{2W3Grt~7nd+8 z%l{~D?G`BXx;`ofRiY)lyTi#fAZ-LDwP)CaqPp#ye-HZKU6uUVaF9eNWBD$mdBdgd zD_!=D)e;O@C|QhbkkxU2v|1cNdxJzc0VXD9iEWcRbQNr!NPcVFdoWX~zQhTR=hF6{ zP{(w5WF!QW{I{R4LNre9{%2nV{s{i5%W~A5>j8v(tAkGIm{{EAN{NddP|c|+^#F>2 z!QGMhSO(c!qaf)Zv_GK6-10T3pfCOj>fz@nsA=sxZ)M&=4G?S71uPak2$omqS-nfo zd*$;OW#H=yW&T$SU>MTkdbqQ>nS0*LoRpdx5*&} zXDk7~m8hdAp`3`(2?6VRE5A32nCBo>_STOzkTQYYpxx*09FvS+x80}7j$ZYCcxG(k(Fj~~0+ zyuDvHn*}A4%*=;U#_*8M-GowB9X}=QM9AvvZmc|pSZ)l~y5t@t`M^98_K>+KclS%X z2^AC+V(ArUCnrn3dX!FAn+_Ef6@eAAR-Zekp#)ZZR2U8zD{AhidPr1PVABTJgm-pz z1-U!lj-`*PHqhm+wS|8tBl2W9@zoe1xWaT>VXA@7 zdjF?IJg!$*Tp?Od-elYlO~nh*3D5?qf{f1b9jUy8{-4=dUQSM@@vILZ$tU1>ZnCoG zBl@qo0&I24ZWhf}($)KS$$t8z-|7()jjgY(*1dUFJHNQd?}hNeg8w%Z9mW5}@3)-T zU^icF3vFeWiApg%K0cGUPO7|rPF~~pPx+r*U2Sb_ysi%Z$*1zp(9rg$d=;=ghdNrCMwcy7p^$`x z4!XG4{Zqrmnf_i3;R4?@OM07F&Y zxez#$tE|Ut-Wu}-mGdH85Xe)hW~D+hXV2IeI}J_u;$riOaii;@hNRg`cD~$`7Rfzt zwKr4?^8!{|e#~NPav-O{;p-X_BQPbis>A*=ij#Kkv3xN{6geA;5dUeV&U)?}28j;@ z0$RYYFE#0hiF5L0= zzW2F*Tps?IXLn|I=FHi1&U`<`$S8N`;^@c$4(c<7(Pr<#QRQnLrUdG&On!bo$P)x6 z>TH)m5tveN08a6b^73*;y6JxnO7`y_X{fv-3J1q;WJE+R`?be|>4Ib|lz+S+Y;a1z zDQ-vg|JdSw297a;E{CsPzRW)O`VZ1w|5`2zet{dffU*LeWWm!iYW3tcAN%h+B=)_6 zKwVN+#<%R-rLRr_r!rG($ETUrJjYhi*@x4ic1kW)8409l&gP!39%_Cc#|Fd+SV*FSNRPd6wPyyT=9Fk!6tyW9Ejg_J{--eep$ zRXi3$bDG}BN>-})3wmhDbc?o!ZJ>ldD*|u1)CM4!#d<^{a;NqBG~C$GWfaSdw>I6l zqIG`usoct{t-S(8gXb3)pu1BlxE6hg`Zp`v{Og>sR|`sB9%?-|<7QkW$4YUl0%YB= z%Qv0VCn*`<=EJKZ_Mv1<7%7u(lFyB}rnQlNnW_iQuWS3-oBXx+>=VVN4aq`Lo_qbu zjd)R{ceFdrP*6}FZf}2EOj3!6v|Wq;`#lwXI*i1*XT-T@eP|YU00on7g($C9+7cem zWZSZ79H+m%ke=s9uo2Nk(oBfyi=XEKLTCTh==4TDJ6B{$wwM03)S&x#+f?(R+nDyx zOsCvYtkZzWc@sG0jHc{Cp%8FtSo#h^@cZWf#_#<-vAWkyH{0o~#`?#>$3hJ*-LhVu zJ6qKw&swQ097KEtVUs8jB01-4nY|)>x#g9aVjnjzy6%aQiIU(*aTiDqsE%|y-yQ@X z_P|Mc>`>Mpfl$ms9#q@;Cu4m$Kqy${?D3Z2e+A*9 zd-o2gKvcW%bbrx$BL}hp9b$v%Sg4RRa_X2@y1^S`CAfp-ze+W`Pd>Z82~noxw-4=J zgugkd5Kzg+t}JTDKd)wt@zx!;;b`~#J`u9+|CVQ<2u3@%^R`;{|HW0iA!we06YGpv zy*MiLcp%4r%hJ+>nNsDv@k!gZda#u%iT@}fjozVgn;u(Pj9d7N&~oF zp7(Aui@r>DORaiKQRwqtod7^}%4iSul|DN$e=}#lJAy$=zNV42>&cMb> zFpf%Td4AeQ{_r*g#agJOJ)l^hYxZz8yJ)x66EGFzZizIlm|;`lpVQ zpzTYB(C)q4+SOmE8cvCHm%kSQLC|55$bk7WM^LBmwd0GD%M*RYB-b~m44iLDm`lQdW0r|?)-Ps(( zHnHTs{O(BoaGc9_M^EaX?92GbbvnQ9XoqXbe0cVaOADd=<~$qedA`)2$I16^W+%K| zETma=HSd_EIIUJ}{x+Gx?#T`o4|=AnE8g5~^|D&lZ+`aTlAxx&cbyE_C)fKH%Boc`DZ$WCp+7dZx3ekkT<#5 zIX6o&8r{Jusog)WMel)z#|LX}lIjV%{xVis`dlu|0;%m5g(!-xKCC)3eYH~=aZ1^B9vl1t}D)N)>d#`At*Psrn6iV-cOpoE%|Uu zByK(lNa{~Ee^XNH`azBM>8<01|C}cc@b;2?TI%M{*@SkBhw_VrZv=j4w;lnhI*7pM z6}v(~eRraSfeg$3Klp!vkH{<>vN2fY4IMSV>b!iNKpYeGyUWq(+&Y_5kSY$c`t0o$FlCWXmYQ&Z(0ND`tWCIFNa4||aql~!0?O+EMH+~kEhA?B6YjaF z3c`+? zH3W}upfxG%hsb-wMfF17k z1Sa<4gqtO9dUIa)M5jUZ>(c#q8{%!}2?#$97Ml0ir*>MsGd#?aI?es!nF@IhM5l?g}SyE9sq;^vn?kAC3D&wsX7Md-7q*gl(XlyINYLAY&Tzv}v z$gz|sG|Y&$JYRDJL1QYMdZ?k+!(8=>N!Zx=Qc-_Fky~GAHaUYc%AV}_GEiMQoA`>y!AuU2T+QCNa-X5Dg41NYwaXS0_PQYe2Ceyk~N;g|}K z!~Z>A+Fn(%Ip#IC>g}g02KndD=FqmSBF|^Q4>IObVI6jy7Gom$N>^wlI)?kij>FZ*(b`8${cZcurj_RfXxU4YZL&)8mL!;Mq=g-5!R zPxBI~azT>{TkF|_+dSz{s>!M&qQr9J{M#`y?>^p~#iJ!I2TYKE=QlKD#RjPEcpen_ z%JJl~Vjr)*m9NQvtD~O%aBcK@-39*J;rzivV^|V zoTfS9GJEeO7bBAK!(`ue&TiV0h^w3hR&agNIt5AlH^h1Y(e~G3sE7x@mmnl<*rV*a ziP75L1zZh3X=!Fne_f4zrfYhiSmvYAhXlZ(!QhIGs9$K4!C(kXP)Z4 z{H=_k!H5QmIGM#QY*&OhF*xvrZ00clA|U3X`~gn(TJsg1UnaU5921icw_vO$(p|h5 z9w8nLAo~(Pg$FYgK4MKM=dH50A6l83;u8^BSX+~T^gvMiTw&I?x3j~l`+FZ8c{C0o zo~?;2sOa9^Co2YB$HzHCFcg3IjNX284F^B``ffEJ`i?}CQV#d05$>1brdxAYI z16&e5>(y$dVQj%dcp%QV$>%z)gF#Twkl>F0v1=4Qz_i;l|h6Klzz!cs&YWP2xVxNTZ`du>^&3vzx?D3i8*XGh^n_n~HMk#^Z@6RV1=v1%(V0yy zV&q!kEvf5CS~K#nkWB=5%d1;Ak2~+>M0op?pdU zABA@;bmlBZxeIGwHWIKbF1zC<2SZr?{r&4eIQP(~Uh(B?DRs{b=eJfZL~#;$`EYNE zN5BlDkITh^Cx@{C{YH!SN7QIi?AWF4nrvo*hDNXasKxMrPud{n22@iWc0KLszpb9b zNBW~0R0te1@yKZ&&ncmolZif?b>*jTA_6*R{D19oNB%}5$B6pq=&GndL4Dl6RSc;8 z0oM$YQr3rsNs7Cm`$UGY*Ia=Lxr|JIhOlB-W$a_Z$aK3`d1PtTPTx@i30$Vo4eY`V zE?uSE@F7Z*y?Of;-CeqzXSCVxF9}o;BiH<{duoHcqd#0+g+4K10dm;p*PU|#oDi0Rrdaa z);9D~n(cwvpqrzy5;6j zg7U?0$iQ)-upV7S2K4IXY)DES&03B7Jea);zVyEXn^= zcZFFCoilj9JdclInsJ;n(V1D`K)7RP-PKrp;ijZj0FT2ZfbXX{N+;e@5j!ll;g+H_ z(}YPZ=rAH?t25deo8K7tlr6!-&;O4VuBJ8#dW_~36kPC(fwD|6QwXT^xYz}=42_&< z+Nxp<+>%^Y>#jb^N>U*JVv1uOLsOG3=8_{E%hDBfTuKX{D&vKKSE(7thuRfb!7K`n zX}(Oqki?wp>f?&*6O1h7*+_tfH!p!qF7}#KL<)X=V9oTGz=+$?o{)TLsdd$1ceJrr z4mfdfs2lAzlPAXbj3JF4QeWB55^>s0zrKi0r);bpG(Y*WzzPLbU9xBAzS2=!=*_i8 z=e|Jl_p&N5J38}V%!i!+ieRil$jiBf1`umL&3W-!DI)nrHRFr+*Z?mhcOA~SC(dBI z*HV&hYmU$UCEvasVWp?m-*vRC63)Ld0AmWo@@6xT$52~cXyOnvuNQ4fhM9GrkN?F;c-dZRm)B16Rd@nCr}sPjuuH?h|hg#6LI&QuC8J8qIPu0 z)WNEq#V;0q8h_J-78teGWZPDNa`d+b9!GF~n6Z!um6!*}fRIf9Xi1xO{7gDajwb%BSGEmh{9GYAEPrk2z zrwG9$;Q?oC>^FRs+1cW0O$7!29IE2uXQ6_gFtNZFbLDHi)tASC#$glB`L21&DdP%lYy9mxI}TsiP!uPC0&r_<(XBi26qr4ig253j_vx1V)zr=tDw zx!4$4hRYFD=OTr&dsaXu*n=Mgv6N;j7iyHk&;dqDFD-ZXTlzgMb=p_);e_RFmGTEE ztAkS%H?fll^9Pfxby(9)(1KRe1`gnr@UjzavlQNo3GBN>Iwjb}U;Ou|Sw=zI;MyqY z)|eo7er|5pv2lIPak8_M5)>KB?u#~zM^xVT3(eZMJ$rnJsX3>}c%( z4EXLR4#QhG3|55qW+8m$!FX?_E|q-0jnrI<1V^#stKoWaQ@#;L-xv1{pLD;=xsAPm zbM0(75!uinoiF{aJyU5~5YOOg&oO1!W{)Vk9}d{vdx#DyVaXHEPt@wX=4YQGN&TkU zGc!|56DpefxNYD*kWHW1w>&I#wogwh_-A5+5JnfY>jZ&i1-XQ~zyVWkn9EMv)X*QL z{^8m3-{=gD%=%mkv=!{HUY>ARMFdEiGm8Va&J!o53TA|v zQUdAg=cbb40o&n8X~`JEnqppI{U6GLiFcgQq(-rPY%ptkKzE^8=d*HBxrAjd#`_%m z++T=>m}n}6nM|&4GZrd>-vDA&%O3L<31SaF3A*C~!728B(JI(brPR`(DQD+Xo=HaX zK{wavDZ%PAx)pYrkQc0^ZDW2_G*>Is`Hh9h=a3cvcqQV-A2Wm)8u+a$!bh7J0331# z=W0e5YYko{%tPOOZh8U4wf~ea$sbBi)_tv@;CjdaGWcwHoDkJIkboE+f@g+p(+^6$ zoJr5g8Es&I70bMrGxW1=%My7^JbvAz4d>Bf0>43KY`}$ZBT2bFw z1B0lG(tZc7o4r)8nTA?V-i$L>#E5hAfI1*wo-(R)SB>tML4k&5U~KJW0NQiB3;5Ap z;G&G)gdeXvICv%?a#L7W5RkfkYx=OoW_aaJ+yTuh3F5je`(C7g0S_pts}KQVwGSpJ z(H~yQx|%LsMA56gzydg#X;C~2{f1(ghiOmg5>+v`?7gqS*|z8p zigw;u5I?{%`iSNgAyC1lM~quv?`6Ht+g4m`)!_#R;t@(GVg=LdtzHFXWd`*-QN#Jz zl;Vrg?7o&1R00n%H;OT~o0I+_N(ip$k#-H=X*BJ+U|T5PdCp%}Q`xK3HT=z%96Ikv zaKd`MPSClxE-L7deG}}6s{kENl%7%I+5WDWRHJNbJ%NS4W>^sMOjx}))hpg2AAnsx zE-+SSv&ox4(q=i3egQ3(9V8>9PrgxH0qVrdwj}v#gL;WC7E-$qDSDduT9*ae5dgsCVZm95n6axr%lMU+ zB)L)6Y!4gIftp_U`@)jZPpmnsJeXZE(auxbFH(D?xpAJkB6~n(^`+-x6rp(E)AN;4 zlIr4&69lfC*t+mCc}YZ5b2eSrt8O%?fSFp0SVt&@_|Yap8E<~6!NZOI^%&dQ^=_wP zZBq?`Yu$5skiyN{57xXP5|x#&$A7=5Gok~Pu~;t9eInX?hVG%E3gojft+1O^XR;zN z#?Wrf_MyCH=tk;JQ5zSC!QHEJ$qOs7cZLft|03WyRy@kw=ZyRC9@$8DG6a{JfKA`R z)^>G2$6XDPGSC+HAU!%K+FdooY%IstGQ_3{mp*REeX2s z+cSC<)xqZ7GE-%~{yx~ghi;D(&QDzn=jf=W*G$}g*^7Kg4lp~sxSeW3W{#2AVrqXS zoYyZs$Gpzy1*6RKM+8E?rin~X3vwma&%C7O9`ouK2^(W82m1$5IE0C5?TMRTy)v)O zt~BY;hBLk!mme&}!#$^%->S$`XmouJ14oI1Kejf9+U$4*LOgt}h6*M_!#&u$-w=KD8eJSPtg4XGC>r|~=OZuLiwLOnp#NiLS|tnFDi=LrHwS(B2u+K=&mpR!v7 zu5mOsZ$FYgQ=o@)urm(*Zg1`?jRcmGc-^V?yzZao-cdLm8uQ%xbA3IhmObMs@9RHz z&?N%UtN?t1Tv%8DDH%#>0-7IhkFLHSmVT_t&fQ*KHlw`MetCTOb}bGa_|fkQdF)QO z-2Tc33Jx#`SVF?XZB9Nu*+3R@iy+v_{|rwdTJ7NT$JLSB?cWU$IR<|*JWNc7C8X6g zHM}+pUym26w9qQ9a3whCay<21@Zk%SY;-@yoo!w(_i(gOJk?X|7dL5Xy*>#-#nB*Y z)xZKMSmT#<47nHsChzA#LcFr7Y80523Yr9+pPvJtKr&Ss=?wYLo{{JJ|J+WW96o&b z05VpZ7|iSUy(zbz7b)mp?NpPd+TrgnOMFfumKj0BxELGB9(55I%jzY9HP7+=W_p4QNHyfE((P5lQ^+s=R@ zXwX^03v65P!aLh*l9+-a;5Ifbpur88n&|HCe#tpydjewMDN!^@pwb-=508XIuRR1SOO*KMJxHH{ z2Ns|$PsR&QZ?0rQRM5N4B&DV5xuDt~KD>O{CB-~x-($kzU<`Hu&`AfBxkA_5*_oK`PiwHqge+`q9?1iPmsr5qXng$me6rquoe%_3 zQPdb-fl@j!AR5H~w)gfRZkptvsi2b5=re~z;9)nuF9;rkqa8tz1hJ6&-y-#b>gsBc z0=_q%!OqOQyd+L}$qiC-{@aHb?43d=Vi1=9d0~db|NDco_pYaT%wAd(#++^5L3pc? zCwsu<7)>kZppWs+@-3;(*&6`%?LXqg%weIUI)a^9%vw_JL(t?)BOflc+3#zn;PGoo zI@V<-%Vs=`77foP=4mWlR;%lgsD#Eo5@-m?XP zKEnd2WBS*>;DD9X#F}jx*F*BC>rGW?I|(JLv^@T_($%8)mAk@r4iiS`6w=G~ z*9=W>tK4@Xgdk4?hE)8a;tc~)U7u{z?$!?~(V;P}^8~k{`V0;Yey1bSHkozJm0_Az z^{{b|W~HiGygM_=FsfPWU&FARXne2>xOv{uLZFMBiKQ(NX_f8Z>sK06#I0thgMK;o z@=)-eTS}P=sbC(>?FW-kmI^!c<+*9A%R&`*NBXwbpf- z%jo`j5dUCGf7fgpvxXboY=uSabQ@$1-!B-ubw=mBll?6wqU=FQz4}e#!&wow<_*Up znY~eko}i)Tc7avJ?LN1X!yE>-p_F=uBN7wNCNcu=n&8tn4|dw;{lVu0*^M*?9ILAD z_N-Js%CzP}E~m%8)ykqRX}rMxg6bBNXWPLMa&`tX0?^M zZ;=2oF^$C@c_YwHL?8E^_?nK0c!4$zVSSD3m2=hPOZ%sc3YMuOZW4`PokH#>9xeP@ zudd_*COxt>ee+qJQ0Xi=*S9H#*M~In<>q6^XGbgkIoxW__CW@vX`vBY&wtL z59o;or;Vbn8N4pe~?|2Raw1(gSJ5#k|ANKyDHTG-)VXa^e@Sdk&=)~>e_pIrG-8u0IM6UP=(8sDLm%#oDrwo|iqnMZ*^ z)6CS`ukDw16XLX`;8UW%9!QdW^rieg;OSJ&L zl4JASsz0~ngT!VMpc)mWrKVmwKI-K?P`}z`YaG{>VyV@$g2nXB6((cBE8=N{@3rG7 zG?1+0{Ia}WQ>@c-)&wcj`LOJ%hFieIp<$22?{v#kq5kpE#3T11On%~xW!5=0w4+p` z{eh8UZe6*4Bi=OhBT7zrwZD?kk<6ohDx|HBzY066?gu{PUU_%F3bvigI!8ozj3Ey@ zglCi*a*VLMeO@ub_koS6UQOCh6GtAE?tQlb156L0hX>_D5!F(c&@F zhn~~dKXGylTYR{()@1mQP~yB^;o>#>)nCta#-~6%sPw-1Y#EmI~sM1s-|ef#&EVDpLUIPrZNcF(3V64}oJ)448*@Q$x{7f0Sy?98t}i!EA( zfjM5Pch`M|hW$|AFPp(|5~2lFT+!t-ns8)!=F;Zx#KVxq5?WRu0-()A^%tjK6bdMx z=+{?Z)x*VG_vv`Yq_H5cmbMb5qc&xq{f@O)Xm9y3G3!~3AU0)K0|vZ2&}+}Y z?59m3<;;p344ZVV?cH6O`$UIFl9BWgG1kSZY0V#U-gv*r zsY@GbXcq6C_?(+(Q#{|au@v*lznsU$OZF@g^)*I%iq9;lJCyVy9fuzfS=5W8xV(W_ z74x*8<-`V2p4tQ9hitqWU|QI`S!Gg{uQ~VClb7*PWP&#d0`ItaQC^iHJwCD8yY7>B z;i>e^$5*)wfxicP*m<)pF#hB@gfpBMu@cYE?-YpbK@q@vONNr%Ni;(2>1 zv}JvP&7EA@>nqu=o15I?WO7KehgI`0<5=xW9FihM;-b82lSh_{%nBwISqiw<`i>;#wn04i~lHc1K+Ld7e;oIZ1Zz#et zPTG6Y8?01qVJ|rE?zx0>o_nzcpV>H{rw7ZSVpIwog5O^GOBcn>uWt-V5 z>S3iJ>T;IXyF?$|h&3uN9(~kJ;rvK_EE`Qxgb*D+KqHi-o-sNCiZM{dh^addU@?^O3o~F zz57KJr+PDQU1T?BP?2C=WTL{wa>Jqc=;nkHqKewD^SJJNXEAa=I~V2*g&32WP~`|i zP22PRJY2ghn~5rtOjV~)nnDq)+UZBTyGb-l#a7=#7bMY$zNqCf@9v_Uuv&R^CWhqV z3R0QUNS?0?yAwG=j|160P%9_Xw#{7Gq_REkUJCBGjPV*rIUXICPo@>sd(8={=sqoD zj^Wlpy-jH~+!uz&`UlZxw8nP#yb1}(_Cyv=hQ7nG`?tB{okt9I)@At(=1wU~W7a3< zfp+hCSHDdLLydojhmr7ZE3KYgiRUan@AH^cABdwvY=-VCry*RZ} zBS~DijlU7d8tWGHO=|Ch$mse(Deg4lVI1N^UB9E{d^CE?5d>>n9IxsxUsLuJNYhWC zGwn0Mi)lHVamTfbIOczu(p9L%5^w~fNMlF0P1aU-N-EtQ+}7Gzb;x#YxbI%OO`b4g zyvQqbwlrmYT^Xj3L<2-geYV4;0gB#EPeYHJ8adxwuku--M|s&k*K9UXEMbdY3_0yk zNCChndQtw?FAWL$}q=}vn}G&_*vc(1M3+*37`?Lo-Ex2OW`fvfbdH=O5#-5=aVVC*fBpuR5OGTQ!a39^`Ol3uPn*EQL_IOsAlI_F#pLZ6f-`1^L+CL1N#jO73vi z;>*ziJ><=0N3Xw{PCxQHeJ_F2AkdtFpgjAg!e={@y3AO<0YXGK7w=X$D};x4$Lh3D z23lIZO*bFu*~^<*lK6FHQ2q4Wis}~$3-~OSqxr55oF0a!0it&zYJleA;tOT7% z%1Y@zC1M_HFhBJ$+Y#1$`{kv{J?WPr*EPI_X{yo$w=79pIt-j!+pgBMul+Kcu3i|+ zZ%!)RI5vn9sKmDOf>T_CN#ag?9Jg;#E!9jfv)g^OCIZQz3{o!li02%e3gaY9W4p=T z9#Diwga3`J@c6fuUP(GF<~~1jBiGn}O?+Gtw0vW!-#=TkfTeADa_e8Je}wcTcudW( zzu)(E%SF1yicv8+s7cErbyFr~Sbi&=yiyo2-GufehPw;h=avXjiO7HA@*o96zLQ=j z#var^ly_D4t_C8-zlZ}UczJ5Lo;KG8$V&2O!dYrwj?fWBCS(T+4c13R>RH-MONC z&~rugZ1;8n?&v)+&@tN9>Ud;bzQ9mmS=+rB7!~eM6csH}g>RDe+;=5Dds1*>kPEUM z{13I%Ww73~uP!RS0S3BM$K3!`ruw;u9)?B#J(+wxmeEwlt1JcV4JeWdK~R$vK(ugU z?Fp+i`)P;|J;^}f2(T5HuLv~BLlKfiR=Yrx-uw$Aj5>SLBEka%%J`~!#Nq&DyMb;= zil$5GM|*iLQ3rU9o)ye8#KM?lr@o?$S4e)*I596&V~U&CUF^&$fxh78&zhMF^}(eb zHwe^?EOdlle)6YzruQQL_(qS=B4i}=u~5$Ti(mu`*3$8t5rQg_hS_XkcE#dK27Es& zj}l3cI_RCh3WEU8t7Kw@BsS;pc6Cx=TTKiw26yMVn4Dkv|ZGENUugOn9b(I zK9@=o4hW5EY1?QRW%k*sXFbqMQGfX=S-&23v#azvlSYmj01BzB%m~;-ey%>+t*KPF z8AMeG6XTZuSiKo1vZYW)075fM(>Jz#QZl6YKYGJX6$tLq4R?*dUf)#{BWz1DilHiy zD5V_jT3_4gNx~ik&zGYK{)o!@#-kYNc&nX!-EYdPv--dV_|q-7t_!Rq2nx1(r9M*E z7u;dCN~4~I*}R}O$$|%dXE-_(6rKNSzSEDPQGiK@0e+{u7&V&s1$Tr_9?e=Zg4S?; zYfpj2)wvybHJDO}fEy$;*Ji@S zC&0=3IQ8;96X5p?w)G(<*2y>%@T)w5WjFcoEo$EbehUlzv_UsEfpAOXg^+M|`N!j4 zxJ(~x1bitM&EE2BJ-fCs)0js@l?0*J>~NVoZwyxVOC)1x25s;6M;Z(S0IHlrDWw=1 z!K>eB!0424Vg_L)m3I;cKy(tZ71W_DIG+OS`yO+a_>#Ai)5~c|mCpjeD0hXm;mJ9n zlL;K+eY)~)ZSRA@;FyQu*nC(wE1JXMphBss*Z9(2%D^9<`ZPUv`#>DAX1S-lT3m;z z@he1NOP%rfo?TZP5NC#FFC`AwisFlzdVK7~?hC-#obN0n+54Cjp&B@M8?&;XuKS?X zVd^W=^r2>#l7#fAV6k-Rd9Qc|ug};j!!#$WZSZbnIg)?YhApwXcqsDWkI(+`Z?@|p zm(fuBOZ4k>;i0R;oVZj+g0Rt@YUY~t*0xHEc(U5hfcL4~0(SD<9}fxs*lt=mt+Rqi zY^?O;Om2HAA~~=@_GZ12QrHF6k5QD*Jzr^d(a71EIvfjE1PK_|A|vLBE*4E^KCDAS zsvp_b-zblUb&On8z8PP>t+bOvFK{O<&xu!-B;2<1^LZ=M z>z<7xD=7hejCG~+JWKC0OgP$YBZnEo)+b$@j~=slZkHPDBAi&YwdcVI+2>IyWY36P-{;^t<~UmY(heFQxpQjh}rRc5NpCB3xtKoI#A8 z6pOvG3R>MWR=?BIl-kEmtjcHK8P^j#uf_?#qd2+GOnzrq=w4fB42@kBXx>~aI~eii zmvQsaN;mxJ3z{G?^Gx})eYpq#)(F!eV3 znb;?1b$nQ{`*H4qK(vxdLckR3uQ*m9no%TqXZT`-h|tHN zV4T42z;|n#0Z0wU*e$Lxd`&8c?y|4yCLEW+_btA1zVhPm7nw|~A?txyS(uPhh+Z<3 zj~`uZ=jhqx)T7c-TJ;>ssS4W82LLqG8*3Y7%Qr@t?1&b;hlgH~gT*s+bv0dY1d_>y zNw=f7L=$e#V}smmHKkYQ7w~WFl=hlBJ?tF*&QS*3pg~{wR%&2xvX7sNP8)nWOdG(c z`+6a>C60Rb|8P}Z!6-=b!XIvN>kO=FZ_TBp=*$c=K4Z*y!;8j};^L(ma}`iSx0~Uw zT4Mc}o$TjKkNFv3P&ue{{()OTla`-Zq6qhAmwXC;ZeeDLLwej$OBTWABibTn;JVC<=0@ z6u&0Dp!2ItHfwHb8mSIp#t!p)n`E3LUBprjWGd7XTIK$!6d1g5;6cUGH7R2%%3PF7 z*L~dY^Fjs$Px@lGBb^jdFxmtr=S5L+ks}Y7UX0Mxug>F{aCGz+GWMHtn`GcNJSzR&zcwgF&Q+i9S;Mq;f&a9#d~um z_bjhkPn<2y8hPGAXoS`=cD>4FcU>zVV5dn)PvkbsQ!Us_1i9Coxr;uBABE*{M&E3Rz6?Y8%-FdH?=h3+8_VP#{{s0~!Lg*HwoL(!;oc%WHUQ+{}{e8IVesx@53WbgEae6L25nGtE`#ykl1k%pPQ*Tieyk za;%a5K4?Esq6Gvw|E|$zUS(KQ%D_?ZEAqs7E1Oqdc+Z^-omfs7HYNROM5-XC^;cc5 zT9qux##UZV$Y+_BU3HI@VGr@a=|p7Jb3)pE@R@csFBwpU%cQz@{Yq;Q@jACBRD{cA ziv*6cGv7$e?n&Xs4d{y<^;qQBxjZx@B79*U4svx*(<;y9_>peIV_9CfdSQGL@(H1W zUjB%^m|;dn^i(?OC-FC@TfLG8%lhh`A-f_UMI4MI8S|3XZ4PQ&!my3_ofp`{FvU=< zv5dG{nN@peiZgiI(v$&B2{m{>HPxY%8kvN4k;=&mbee}3Cz5T;?Y9zj6cH?*4IRER z_m>a$5=P&p`@A22Mg85Fh2>l*nij6#DOfX+39KOil$ZUPAwww@dQOfD54QauAh}{> zAY}9{9}J->4+Vy5<}u@omfx$&8KH?e+*>Imu@mD{+EzKFqvxjUJG_0HS4i=0Vb%2a zV7Php(g%2e!mP=ng{4IpN~|phKN!+pHQ{+>JzF$SZo@->1SpGNHcL!Y9%mfQ44af6 z4fjaUp{0h7R4V-JmdV)pNZ!~wDN7_K=CGY_S*@v}vZ`PT_cc`FM#%v+_j=vOydVh? z4t~gZZc$ERJ3({L$eh5m^+MmC`#AjYKJR;12P^7XDE!;k>oUmz0Ox>&=BKhYf5W~s zq~r7{PN=r=&tjeqE#PcrxDeEfS3yj+vZPWSEm=L7qmH2-=10Yz;_LAgPCr+`n;e1* zq(0u*WB5_gCwhSLwdc?D^C=-}$>HBVygVfsLu#$sb!>4?Gx!xZhDaP&_jsE(z4KY>b2}zUcP$mY&_k71a;;H z_9eSU@xu&1LX-2wX_+z5nJ8ViD#hn=`jvkP`HWHZUkMtJ_g|b+Pp=s1s-F#PD!vO; zwWi9IDUUE&-CA|!Z9T4xeOh*?ADaKaT!0|6g7oc;vLYObvb-~02+$YCkNiA+<#q7U zKIrzG9#4>+*ZthnAQ5@^HYWZ@eLc&f`;(jvnYv=mdV}e*8`}ZBwv&OM9)XL;YK(3D zOF2tov<+9?0J91`-o-*vc3NYhw9mg62bRah&!)@Xdl~o`O7-Q(f0f$izPevvbu;{2 zLaUqDqg5cX&}OnV8X3<;`5DbLCmKt6xQxpx%w{0e{U#zTl}$8)J+tUC>9^~1I#O#c z5)kSm&8)XRxqwIBC?AFl?0il^##$rDv1mWqZKPeL4cQH-Q06nWKmEgQAz=3HVhx`l zRH+Pq`gU@$D6v0DxqX-`_1N)x0Ddc(Ok4Vd+`5J_#F(%1?l@YfspW|q_r1piSM4|L zT%MN5#r$!-H$_a>e+Qn1VVxF3bDY6@^L2wVso{i9T=$LW6(J$(^9HCu=H(<`d={Df z@|Sh{KQIn{4-qVc{`7GBdAH82u;vp%Gzhd;?%Y|oX-C?mD6@emjmcPG*kgI~o4mi0 z9SX>HKfN#3v1Ugs;N0;VU3GH^jvmjYB$1$HeWPNqGGUYq-@%IMLTt19n7sPd^JM26 z*D(s3@F4dHr$ji9wHy8LD6RIqkS?e*RC0now-M)W?Z~sQL@OwJE9WWMs!= zWFJqt+YI8@lX3)!d;h|oaPBQXzKD22)Uag5Wa`luf&Eq28LbvN-VCJgCuH|1J^X4F z)TVl&^54D^>%los`zm6yzfSNa?UsFQe8-KYX2l5c@UkcKnqMTk-aKayOJmn`rJ^K)dY+Zge%**k<4Hmr=Q!rE?eThh7zIc*q01=-pnfB(C&> z(^_ZGDUPFXoleYQiIvj3?a1dZ(N#uDZS_A%q=7hAA9nW;Gs5WmSaexgD{hTh_1B@^ z#?J))6mPCGYEs{Z>1Z}ur~7Ck8Bh0mb$!`v=g|#J4xaY@kA9GxJ0s34%IsqY{b`<- zK)7pCdwKAN=fQS@+Mj~pROmDRXM!-D6AojOhUb95fxjc;XzkRW0+as>8x4HI0(~|_ z-2Y~#rs`Xx_%EeyFWe}wzL1Ln8;^{~G<|iGo3#nPgMrn9WZT?K5Nz?&U&e$_w{1~{ zzrc1gnD!0g*U5ev!*@goGyjjxaOtM1tqpm4ysM98#J$HpPBwo&Z=;7kEaCahPMym? z)_0h_yJ1Uy_1K{xso!;Q?gM@XEt1F4F|zC+BcH)}-!VCixAM~T4T49mz%)R@0PdpvEu}MHm+)Rb%lYs!=wF8`LIyO8s48IsRZQeQSoYqA1;^S zWeVXyCJE>@;MSoAnQ1!2ew??Q#0R7;<&>Aql?=MOQcE$f1ExfMG!AA=oBQ!BJ$eHN zzH-|dym^pmC;5+(^3NLqQKq2j+p~a+HZW$Rd%emGfLEK`^c_6qmKGzm96WYtq!(V3 zLrc(wNl7t!pFIXSCGfw*klU=Rob~>t^2y*|n(=GpGPgo-nNx_gxu$Uf7AJqv;}WzL zLw%b)rY1tGKfE>wk$M{D*fsul3P}{Vzlt(*t9$HlqP_I~J7DteRMcTOgn?xy!?DRP^Ws#y~nebleKf)D`L~}WKdYX9-FW?V+3mB| zD4JNs&(Tz1pv2O3;@$qcuM5f3b{elo*H5~BaAU~E%$&@UGeaiq|9KMpJF5Mb__m_E zwA^YJQA|T(>Mj}DOeDhAep|HIc?M%B>;U4xAT2<~pdEx0=bcXtWF-CY9#f;$Aa;2PXrf(LgC?(R07 z=Y419n?KX5*In!W>3jQ}I#qS*?Akl$FdM)GwGRBH#PkBeKG(y|%zXO2c)imZj%5$e zw}U9;Jx;#U4C7E|*2$`W9TMO#D)T^F1gv#E}D%$BCl z82q>_?9@D{G3M>C$(=-HA>jO8s9zlJ;y-2#kmMxU@}Nryu(;c=-&y*k{C>!u1RWd0 z-O-!hvEM9yM4;x&c>d8Ibn(n=k=<=wwOL|v#!~gqaOKwsNJ(3w|8DNYnO*u3 zi?pBu9+?YUXKr6*F!a0!@*8I@BrL-~6M@BvCei0O!-0-M1#Zf+&jgTNTK(G9MMZ3t z3=>Wfb|;GJ95z6hC90Jx24QBPuU(wpsrwyRx-uNJTIy+>AdbmsUFn-D3|Bs7UEMVn zlj75Ucs~M40mh;|Qr)Z{)+txDhFOJ1SD+(VS!+~kv3O2VNDrNL68xiK^2c23dK-Dl z8atz+AhY5%p%C&E0=~;g*}0>DJ(riPd$hgAJqF-9w7K)hD=kQf!*##P8HsN<-|r#o zB=wrn@XdUL3V2YmCQlH2^Q9?9;%z|+W%*~V6&-x%OcZ1~>fPtfEa=u6|3%Uk6I%xqj|Cq9heY(!AzyXDL_w#a z-W{u~ws?vrjDu~In0&r|8Hv>Dt)q2zj;MB)my+~sISoDXw~g@Rv=AI3Kk<#?6A+45 zPlX-fx-*QW`R|$sg)a5laY5#jb<^id`6$L4a`3tRG%4V7H?cs6dE`9W8vN3_(&-R6 zVJ1#Vk;%BOIXyQfFKb}WRn1H-t2$vZ;wpsZ80PQ>n@)|?+v=N35>z5&C9lWGMNUpG z@b7v7@pGUaTm{J70!C8EDCB2r7mgeynwnv&<&_sK4qmFkj&)`?C1pFe{odARIfTly z;nS!G?Smx&uak2hGP)0Vw+r5b$1L`N&yXvOuQh@>4L{>_{J-f0S64e&hyIJ^^$Yhq z=>~%5r6UKe*ZU_vV_a;s1}YK?3gQAE!Niq2qULW;C6yTg(;6jBV)?e1IFjGIs&?C6 zU9m}PiFHGSj8uo0hxy&JqYbw8eWbX?G!7(C+ago_%lq4h8O;CuBN(t8Z(v_NJv%{X znrx)VgLQMQNWvA>$Uyshn&ouM z>J23MXD+$fdAa#QAfmuXb=SY%uhY$a+ScyXYN^G=C=O?h_=%{{i6ubbvp?viwiQ0GbGCqH6O9j^h zzCgM*vJJNLMBw{z)ez$yl)te5>n1u=ipBU!b2iTLBCt;c#ZmiqGLKe~ZOP$8rPRvB zPaGDG8%1J3s-C8+Z##X9gq+^sBR+IAVvzN+2~j^6ZcKJ=-{CwvTxId5@wM#Hx@hDk zZewF(Yu0$6D1BSDw%ETr5HfmT*Cj&x+X&mkq@a8qRUxUkhA2z-jwQ-2NFwS7tNpjs z7Ss!z+jsxMtUmz8U`b-hOYGa`Cflg_Fab=6uLV!zNW?-x{pEg7*KuJ5NJ1xYN+sj- zKI zqjsAzMnV4NshlxSz8Jg*&59-Cp+iJBqe!Itp(OdI2~=kYJ2-86}1s7nHUjg<25H$RNI zU1w9Pf2sfhm)q`l$hIW&vtCO>eZwS&p#C!WngG*T=P!Q*rZYpo^PY_hwjZE7dRD7Aslbsqq_r0-Viwrt-E4~?};;vg<8CLjZlQ^P6%54cCnTga_V4zFp$ z&D7OT%YJ$=7X5;Zt3@#6_dY1e?{4E*n`=#T*0yB)0rl|W!_1b+`AyR*6lGZQnRbNg z#!{lmowC+t>h5*qw)z^|*KC6au zrhhLhdUJ4xN9v>F^V*OPHK<@(`=fO?IttF`w=QDce-<_s$Pe0V#r#X1_ch({m|Ge* z#Ye%AkyC+Y@1zd(B61|4N&G|1+Pn>; z2l0=gL$E!Tl$5Ifi6CExFsyA^v8_3TNBfi@bj(Ms>q)wyR+~wlCy)75ekSx<=3s5$ zut#jET6fb$u|KBph?X&gliP1SCQ4Q_@H2GY6IlQhwc(onpRmv^I^ePr zUM%{_3^=R4`1?#G)AFjwe;a(ua@ES_Pv#Dp)Bivd0)dsh4l5yF>j!sQ|7YH!;^I|-04U^XaJ%$fwtn5~#i+<`K)iX8U;ueo=9NOY z02!ApHQNo0$T}ecvhbH4o}GCT)COxLcT_W$e^J52c1+XvaNyoqMW~8|kC{uL|K)cy zrT4`1z-g|~a?H%5CZ*uR^A5GbR79T@KpH`A53N3LYewn!yBy|U$KjRCIJ7wQQNf6w zhNrZhnTU3~*F)PN7Zg1NFr!Jbz?GkB12WZEvm`K$u9A#H0%;&G@z3i0zf3!?CX4Ao ze0fa(kU4K)XhXMnf7Ih{2zu)e-_nfO%uC8^@R`mgCggPaTKvKN&JCki$P0tc3~~|` z&4-WqGa}ZZnmKiCU%=dbEFnZAF==XFR1H6>QBmP=&(#geX<8K^?RrtM)460iLw?kK z?kW}nkG^bQl8h00dM_8LhIhIfv*)ul;<0a<1CK?ixeMMQ{u6rV=bnwH8KS5AO+QLs zSvu63WK$JtOH3mUv5{z+JXd#rdlSl!^hsL>gZ${9XL0;XTU2302*l!d+IDVKrfP-< z$a$b^no>`+qDx>u8n&py0i=A+H^-HM91~lt5w*@vP7$)hbY)tkl_f=E_W%3BxyCDd zGZEY(ElPf7OJJB-q?N|!g#q&d%H@#`Z?xE~^GUDWFMdmCNwF(ly)nuqg?&?h}6!>gc*zDM(0Os&%=qKsPiqXM~pn^AyNo* zAHhThOe7v0kXxFx)LP8PLl?RHXDmgbItp(qL+7s82PP_tv-I8J;WDf6Zx(dPyZE{Z z2@u01XLyyriri2jq~!&!Cfy&K<8tTI(R@ZgayG2AT)o}V+6ts^O(|x(>k(UO&5*0ir z3I&tTm6-y++;Rher2g{CPXBaF}*KimRxjEyJv2j z_lFM@(oQ^vF|vQV{B`H1X0j9Bj-4>y1AoSSo;NlZCG8&6K6##hy&)l!1_Bh=BnjO8 zOW)^S02g;ciKCjIlhoosXiAga)4^oa%4Q33TKw$aqu$+J-$*}#%s4|0eSLN9w1mgU zQ`j!L6C%=hG6MOb640G$av@k!R}6RsIv3_IzIte0@P3W%L03Gz~Za zU@bj)_pTTdV1#o&wlkW{m*nCYe`#kFEC5K^tZy)bp{Vaq{)@eT++8_XmXC-KfinYW zn{<|%(m*3YulTJ^SxB|R-ZFD=d)(lhd@&sjW}sIbh7fc~G8jHSSI?74&eHKVR(rr* z1o!zmXFc=H-fn1Xupc?{&$DkYhCzE8Z<_;I!z zFQUKLmLMNUNAt&}_XahvhIch|-=%6FyWOd4(i=@Jjf|9rj?+dfFK=MY+a`=9 znZ_-OGP`}ypgXV~2UGk&Drqfl+_C-iZtw$|xX35fy}Rw9t&{QbHt&^gzS`Pa+_-XN zdB*;7Nkf^Vc-p@@sVvgK<#8DXcG(#{Gp=AW2gf7A#5)mGXc5$(cC29@BjwqYWJW0> zy(o(P9H@|p#DNFxj3Z{G_=K$#dlx>(45=4U^@3o!;MFRYXXTZ&_mskh69W5m2GK9l*ASxsNQVah2~BaEv~iuj)AuLLAO z=JGBmOV4wT=|Ge9Fgp$Rz zsU)K-!R3{`w*toZKHb5)lB-uo*|}M^v#LV#FA5a10u4`p-nexR_h7G0^IvO@H%xA# z$jl5l2@$`0o%Uva;FoDnS@6`s@g)P831ODes=m>S;JWZCa|}w5kRd?y%rj*ANrpc9 z`IKo|Es-U=GwBpd<<;e-=e$5YaKzU(K_ zHyeQr6hPQP?^@CvBkIu63$pRaLD5Pp7Lzr`;JbERPn79~z_8cJA$tHjY>yNQel7*uR#XgGN8}1Y)FG)0TI-x}XfRMk1$HN6GAbs$b_}Q5_dMh9M zmB(r`yGf?r`@%)`$t|dGys9?7t&Yoj07dP$iEFahe^V*@va_Sj4*)rhj?>gofOOT~ zLIY|NST#QoXcS5T0O3E!3nRomhEV5OD-%ncCf^r>KP?8B2d|Dk77x=?p0G7|PyUv> z@pxSBnjE(b3T@S?!NPiI4*M|iiLF$qEt2@itfi)!>xPb}_p)G}9AsfS{rRqAmt%Ji z)uojIw}Qx}4KbY9P(kl_SE4>^r}2FFClL!>?DjXk5zkKMqND2|YBR3`5Q1$cRDJ4f z;b9Ulu}L=D}1w9GqMC`jOxs3&SL4Q6`^GJRt)lk8MCt{AH06!6lHg#e8C7@Pec z_GL&=z{=nSj#z_H>uX0DWaYQ@w5@`-%Dt}Q!DdppK=AgVwDs+sEwYz?ykc@)>olI+ z21`E5#dSh4hO={A@zRvpyv$r2md*Atk9#lYb{m}^@+3O&7GT}|Tiq@*T5Y172gk=y zBifiRk8f4??8W*_FR%bW%@#rSDVlNB_YsM}#9p``WE7pMajn?~wLM}b@*#kf5h5O^ zpIKQ3&alCxQV6DYcCW{aY;0_`yU5TYX^_!d-hSDRXUAyhsWs2pBX;e+_gJR%lAd?x zL_#KyJt*+9-vXNj2xlgaUdSj|AG&I}9?g=GFgd2CeEX+;2#~Zpd;2~TQQ2Akj{ol^ zN!N24wGX=IU!+ZjFRqSnv~tO=TaY69lz;?* zQsNR)9e*d{34U87xFhyU<@`KFh@PtQ7DD`(EiC);%&l}7^WV@TaUuo`jg|s>kJg+It$!Jtvp{Jk4V{c~*q( zm=Rvx={B3|OOjZ}VLMrpI}F=eS-{lUK zQ1&6P!uO;o?KeIz7UIMAzhf_j5Q31`a9wk)m3~(Ls$f;n#J}_U<`;i_V!k(L+|^>S zs*ubM6e9|Fg~E2->RnF+HHj)u76_UE0k^saR|QEtOej$tAbU+gCS!A{iu7Y}Gm*UB zfSs(3skEzPmh4nVi7dC*O=V?kbfB5s#^F`qNxR zAgsK~R<>a?-dNRuN*YO_f2C%l@hD>Vn3?_|`^v22!F zl@B68Gi!WfRVYxqCEzli3lYE#$y}>(T0B4f3j0>6NU2T~u)#&*0;Ks4_=|gjpq?a6 z+_dZqcD@})h2hM)CfP8wSMa_t8tlm?)_B9g@)3K9`H^BiBWM{#unslbgq0 zm6s<<^%S^A@XW0BmdmOW_67$CKW9p6S^WV-tLXOGZVe5eC%&+Kcu5ZM;D< zd!Kyq04FT1=+u?f#G6WI2xxdBrjM!+0ljs!nTQq?IjP)Fl>%9gt8UWIo2GloH_!c- z^wZ3RAyi?a2W)O>yl0)&#xKD{M=Xf>EZR3!ViPl8K&v6&{n%RV+?yYea0vT#Rmk0? z?|Fwegvt;{>m)JoZ<~dIcyz2G8TR`=^b)bs_}>m;hzY~YC5S&+<;b8?3CTOXuZm4F z0w91`DPb~50F^mMCFa|E`~MpYAeb>jp&1|=1`#0huErflrH@ta1tpd6J9Lh+13s85 zXUIU%;T0*fzz56aPwmSgaY`C~8j)FV`WSW%wbN_pP+A}!ENiAfL-*Ud%_5d0ib`{D zJGBjElC*4;cIuNfArQ3gAweE;b?NI zR;PBx7dBnE@K%{1D#GDmVFr}8VOK{1AYDWsX-1n@WF$8MPhe)~J7f-Bb8XIBPb>dM zG~dfaUujz>e8t$l<6Qb2rH!GddG}2&@1c-X>18zmkL`fV2=9}cQnES~Y_Xt3s=s4* zHlA;hmf<1+GOxg+_I$CtI=&Z}IxxU`r)#*w{pOtmWqq~dnpN(XX4co*k1C%gL$K!n zhr=qN7k4{S)Uc~Yq5}@Acs;5p_?G!eZzX}UDYp6_jVI^D@8}tiSI%iRzUfgREwo$S z4zwF$B@PZiuY#y%~`7}XVazh@a05{h_(wS zVOW@=Ukn{pmN^a+LsppL-7hf>hS-S9dos%oEp*Dn&vN+VUp5$c$A4lh*t8@kXH~|v z=cdwsJtrEEeh8eI?{AMk za&ef{oz5mZ4z?o^K>6KYP`4mdDgM&foA>av_{ay{0x5M zo9lINlcQVYHnrGJXl0u}yG`Y9e626x1IYK7?$+xsl)HxFu2P(lB8B|ns%TjGPE3^@ zE%6k`alVkfAHev+4qrJmz@eQpG{6w)AfFuGt727izKgG3q!J+0UB3XF4=v}Y(``gB zX94tk##lb4;swlnOtpValZ9Q<75Wd@KeI8*Bc)Y-ZBBK?`IHaSPCP}}aV#lPFeNwo zk$@Hxx&(zKdwu1@zu+eyVzq0A{59-Ax7CGi>9%ur+FP4>CX7oRM6h-DM#9kj8VIN; zdTR7`R}Ua@rqqMz+UM`9+cvCTRqxVT4F4Kkiy zJE6Cl=Bib52iD9A{4*Y}B6<=qKEcDw%F>;)5>v$)@uoFpH4JOv%-1VhT5hD-WL#h9 zF8xJ=>oVFT#I`e2GH#W5mn2#)8jz&+S=_Xzudgp>Pnr&Ez-Uv4F#Kz7ScR`UxpA#o z_~X%wuygu-D}r z3M%zFTqSf@MkuefnmtA8z1<=lsUn{%16Y$Zzh7b0sUKyG!)d1l(P&CE>eA)>Pn*U@ zp%utpKOl&N^^(;K0aB>%d9P`n!+)53xS{Qa-UV<53EWueeTp?*^VfnCKIG05P%Via zy7zRPfOKbk{TKjCMIQ4oQEMA8N^;EW#&dogm7MielyRBcRcj$AT@Gn{$@$JElP?)_ zdw}12!Fs!osX}#qRAs%~Dg)$y&{kQwY7Cdos^4QIb?PJ!1EFQ zE0AWRmk_0k``W5ZGXO7B-S)-Qz)r`)gg4}C1B}_{oaMQp<>95mhrky|FvaU&QAt&! zOR`(jtG{)4x;=RU^?=$wyhx(I!%RkqkfoOyp}+U}s`ZW0`k9)JOg>j_Xh)`5Z#b6* zDKgTvj{T-7O@bGHeWzR=`r#C<2@1Krtysu+tw9omQ;kZ(`g^-Ln1(h}Gue~aDZCUn z@$XH(@B`IPCAH(BhMwvN5hI}R`YiLTs>I`{SkCK^lFfiz3tUxr92 zsws{zM0qm(1YuK7cb9eINa3FE6g*YJ8p#!y$!Nt4H&3+KTlSuKGRna!YPs?6Q`1^1 zY?i%R>Zd1n+1-D`11u0lm#q)HIgi{7vy_rBjN-(q-n9+EnSXPX$dc809%SvD$Y`4gD2)$JIVXkTIZhZ*Iq>{&r3aH47-bqHN5>+O+!+#)v_#Q& zig{B8gMDxjQ?yIFF68Dfx8%$!TW{L;3Y+jHG<+%Vzf?+!1Kz| zf$E(YJu8YWiuTERy8hOW;ol>1+(1!8jP1v*N||POKzOiQqc+(Pqcm{Yn^+1$*nVLf z`7i=9@0;}`;n^&e38`h;0XjsYsdoQjiYAjRp$}aS1_4HU6FwOvX$zvYAse#Dagq{V zfX1Fdviv1NM}_qsRJT2inhuz}*KDq?n-%ERx$2y~1@z9!!yzdk`m^|q$14(+(#f=9 zVxy(UDdtQ&c+>A6(9N67U)X%!HrBCODX5q#s8Asb=34CQi=2OZ;+sJ`HB;5mY%a;N0E-oK?*%Aq5o`l&J|9+FH4~|)x%kM&LIxbyZ%!y2<`*2e zXAkq8*5`ssN%QdtN^0niMi-k!#LHWc4(~}vn(m6>0K$+K>-qb46w=KPb&vrIYlD?T zmD?)C?1Y2!ktFw=^s6(46})GPi2lF4R)7f3=ud@AWN|`m$nj|2RQ!kX5`vSzup;+A z&d*EW`9tL>=VnILWJalw_T;V6kgT-gUGF#4>Y^x4RE`nh1K@7&r{#8Hc;$+pO6psP z>2jvg)a#WroeH(KrI~4uex%s68;RnVBfrIN+^?nc;idC323g)`7h`{_&vT)k@Nscx zd`ZEmEu&3LqEGR=1$~TUrhPY-SGhK+0EWM)jw5&e+4PYS%boC0V_Ck9B8buVBPnk! zS&`hurl9&}{Z9H{2#eK55<>Grg_!Nd#;WaQM(590HG)JgWo#m&@ zjvJA+2__%6y|wlg(J!H#O^P^pK_T(4A%kBw^fQw(GZU*+!@6@($VG!-knxO7O=sJb zU(WBWNu|hDHyxhT4=;M3Ot_`ztr>e~@OEC_-c_nx8mt$8M>eTH96n*ch`4&ai>;Sy z(l?W8MwV2}=y=*di_Y)#ft$*cVijctWTKgt&^{Dj+^8i5XLu?>R1}UoRW`?VT%Jr5 zlmMR>=cjY#)Tu0y+1~bLVAjS2?!whLmb{!T{%)5+R=@06b*+?IzLLr!acA|Nm<)nU zC9zbHqIT^U2V=o9mrU;Zj3`*f)Ag zfVbK)0+fH|fhL{g@K-~tFTr}rE}!H0@$*k?_tuF+HRWxyf!Pb6KsrY-gGRExUKz zdV+Z=dH&|_kY1Fn=%688>NLl1lakteYt8T8)acY#2ia99#%7rVeeUQA?sKmiuhzdg z3lzn39CW=+SWAaW;UIQnKmZLLzOwQY-XktNx#*t&v6d$G5} zKGWD{jBI$J%4D0ztBZN%A{;HTN|FVg2nEyqW(7X=Ipe3G@;d7Xfw~#bI0i>&$p~Wl zKrtY^+BIm&RS%68hIM}UkIhs!)+vMBy-ga+VDVNDDJX|N7j00OhPX#$3BMtPThh;Z ze!rE34v>2KnnPhX_pX&wk*MeV+4rNiFBf!9A1HU6=q-CHOQ@};4cabz9830k{muU4 zzAk&)M&|+47D}UsIS#U3sm$cxW7OSR`E@lYo-b;6ytd(fefSb$W2jD8_uD$o|JT=w z_g^*DG&DXWm${?v>meWvj<5O|a2q-3N{pnEsjL$zhIr-~A*FI6%AM5O)<3r*2Kt&3)N$31ze=r(BVVzNnr(Apbn_Vpf z8wCvltg?uclYx;dh;N~DwDkI$Fb!)Sh4MRgzF6M?on)iYr8+-_c6u@PV6tPY{J|RX z6M_i|DEu0)4grsTcYRgkw02(obFPD#Q3mnHoZs_VsOU6!3=f^kGVf-CYq`f}xbZ z+xJuUqHY`#@3{Ej@m7wLm<-x1lIIA>Z&FN&pLQH9@QR(z-s*+KAMI*c?{0^ql=+oR zGS^%9O0C$Gm$i=cAwqIZpX~H~C9X+0+sy5mV6A=WfZ3rz?Ys5X-JNF5MnoF{yVr(R zqk|-P0I)QAE(`c*9m4(g@Z;{)y!n-~Y>U2K!2UGEJn8Rtg#S8&vR|EHmZPg%Rg}97 zxKk;!%{DTy+dbrgHAO+@|DEi6&`i2cpNbxB=t+|h&U4~d>iX4lJEGVm@A3~DzMF4J zOGR1^Pm45PeB4#ZwE2$HjIt!^cB@Kvf&&lDnLXMych7E`;SyYGG5^+P|8}YW-l}hE zYeNMG9ssKA-Wh1xGWy+1b!lKHg`IJcl-GCVguk ztq1C7AH~jZn6%}y@Xtr`G~?Zw-c81NPDNL|>6ggHdHSp-;}Qa0W*Le{vFy0cBD_h$M&O zG`O{o5|a%|Oe>I?AlJgn_x4Fo$f;rG?A40U9Z}s&6Yec~jjxl$d+Sgsge{VWb+q&l zziy_Ub@ms|!p>&8naT;2(aX(Jku_3UlTA@~g6M2h5t-kqDVw`c!de%4(?SG3cWj^8 zCfEoH__n-KuE&`Yr*{a*Ap<71@ojPtvBdbAEcx|*>h6eplCSp0ffAAd+I(a=sr(F05V%5rptL-j5R(&1^0S&knkrGJn;Lyzi&h^-PKK}m9&0w^Xw#y2rtoQg-(uUdS2 z7<>ML8#n4ed~@0Vfts57X%paWmb{!F-*z+j~Ke3H$ww!GWDEl?*X0sIeU@{ zus^ei-%HgO31ISeAgczc^W87wOWe*{(CM_r{l?Sx7yg*%Dv|_Cn1*lP2!J!=y5oo` zVfF`ciBrtfq`|gv&bHz=5c@n>h<9bshyCZe`T4$=x^V@)WD#h`)ljgcLFw2KfRo|6 zzus@-BW-OqIs-|P2g_A^*l-gdr`(6vcl9S8O3;?+l5N!JLel$Jt`uII#XHeRDCIKW zG7U9=rrnu_F{0RbHsqrRQOC&B?@WI6O!+O>Z~9QtnggqI)ko9SM;>z|afRJ=r(RE| z?PiwX`RGp;2i%^H=!uEduM294k6Z%$LR?q-AN2`>2qj0tcj5DLC0~-n(cEV-URbC? z5F7&%buZc$M`Ou9d;x&Mb~bDhO2E@gs-?UWLA{%)nS6P@mSkSm(DF=#!!nQNY8Z zShqUJrR0m*o*n(Nw72GW)-kCImSs6a2o7=#EbJo3xzZ-ex#K+vGYr|UNk5iKjla{}N`7^Ik zv1j{Yu~2ZFNteLX9HE6nlL9H@u`HZeKL!Q>dWW2O^_RVxp)t|!$P=Jp&qe@1F0>*e zh2L(N{vBpJ9GI-&($bev4gEP5c;Y^=JhC|0w>mm>c6F(%b8XtSEl1Q=x8!Z_U6I8Z zitrbBsp)~n7p{^L%BOkf`A=hwF$OaRcx_h!w@hBa5k1t0^; zB^?X=mvGS`C_JnF{saIUYDLok`_RsOYm(L?)c*fgn#-Fq>e!#?zB$|bQVvN)A?F_T zY(!v*k-Sbs+mEsuBrirG#`UQ-o6OOa_CXPlk5cGtv5J8g;``jM4TOX#6QHyX&HKL& z*pO2&4HOhThd^|75l(H7v7o7f_3$XTqQv?Jkj}AsX_6j*&M4j&~ zzEs%G!0IaKY!*wx0C^1`5rips=^cT{^Mk^qok?&dz35P4TqR^X2vD)_Ki%&zL-tm# zpDeqZjioK>-5LMOYq)(C9mx+UjNp6R*y}BNsVju8$wBKHxU8|h^9>ur9cDJ zgd0!)v^GY_^0DniRUFx=Lk5f|Qf?u>u4%4=A(!nSIB=@mBh#)HzramEQ8qIz!N36v z2x!PmeT5xSXSt!_Mi%}<#Pjh_KmESWmzASN9@=+dDa1A%xY+*Iv%{}vuEL8p1D#MO zVj*BbmlCaHn~V~O67gr6?T2HBK@+BpoAnI7pO(KXVLLvI${STm^CLjlts*{C*dlYR zNNUCh70~~QRG(^rg=c(32vyIe0oQ7&_wv@xhi1CIww8PZ-->^T})6hw4C|J6{ z^Y9opR-oC}%-b@i&#$mRu!F}xbnjbHLA{F4Er?Dtu7sOXZCI7ij@M8u0I(oWY&tOG zeDNn}n=CeTE&A_GooX?4_h$;3mpPF>nigBWYs=+aFQ|^N1s z=OYG7t%v9AD?Abb-Si%c;cqg4<4O=0`dKu4*LM?F3nyALfkzdc6gjl{;Yg5R%G@xs zTFck)Yxnt3MaiV02jlO%Ep06Z_4zbmyEJv*?>5vV0^b?PTJKid=KHlWCFm*NP2%CH z1RGkoqg6`oJ+Ga66^cJpHme? zj}Rdf&$`WW;AIk@TR*-)%9-sS#Ovu@Kk4U} zxaOjSoUG}j-rB}OgZl(UCYH`V(~QoD^?Qxvy6inp5o~sAhB3Q|g<(3%{PrM?4cLhd z35a2lC2_xazR3K)sIa3sL!ujPOjZaeC9J23LuMX1hyum4-C^E_Jf-X7s10-!Qm$+9 z=$^@eQEWiCKc>CGWhRZ93;>cRdKORix33>F5H4ThXg>&jjGirY|D-|Z`Qq^M{3kMl zpH}!XL;xcu?mez@Z~oozTl0Q`lt#orRLA*UvvFu>2CuzYk#y4eRXn{Is5|l2>fo0$ zoKanT$))V?ZNK+p*-D9`t$bSsFP0aPIcLs7?AqqE<S10~BQHJt!1N}gZjl7vo z%(Ji3@X}GE838|Q-F$9x=h&zw;1EiPzb{GV4p*_%^)fCt7EXN!EBT{FHWOSwF1OsK?l!u~ zEZ5Dh7XE&Fzq(@JWu4P8A%6gygu1U2!kN`;{@P*V#T8`lh9^WOVrd=^-a{$Of1Mae zzG-QEXV*!;)Jgq}UC01~M9J=&AWQFb`R>5;TOT12;k=b?qCn49Sgx6+^PqY}h}?_m zV)xJ?Q*deu5-e0+){}!dT#U*YrCZjVcs3k>7~1XDN53h93X`dzHuh^W^tWihIfrb~ z`eaF5O6+1o5cMd&g|NqkL15&oQt@9to~>MO(Kj*JQiV=E^e zOwqvF%74Ux642-BgkQZ~bdc|A<+F9-E$24W;msjH9-OzgvRO3yi5hV#-v}_t>`u`j zIB9h(cM$~f@1%gVn24H-znGX$WqhF#U!U>y@T(vrVqiJ*k+@R>BB1s#p)yUMm`Ptl zW=IbR$NeBop(n9?T`UwLxaIr%%$@e@6I4g)8=3^EReFPhl$3+JdsVFi$gwUg+|?g} z)7#VIK*+_$W*rEJ23?ZNdc99X44zd?Msujby3HZH4td-Q@YJneJ}yE=gco1QhE8xN zNY>X)`!@P`m~Ow~b#&_eW+rGcx|?o&IjKAUd#)-waC_NwINpi3hiRbzm4npuAzq^} zn|Q(NkPQojt6Y1io68R^_rZGmr&fEOM$u2Y=ObTl`fc4o|FXRtI0wtuB@9#YA#ql0u)qm6cwIs0ItUz>P{g$vYnEk!&#L^@ENlno%pctrp>Iwx9@?6DbSJ8v@jNBB`{*YnIz5kMU8ameRJ}a zpOM1+0j%Qa^%Uqi$NWC8?oIK>*bC#UUmt0;#0jwP_bW$kv7HbLp0H8ErR{!l8z-r$ zZScjf&@?;K*VZI}CT|U+_RG>e5@a28?be!qXDqa$FiCRdbM^y2ePFF?ok>G-IvauD zUrjfjr09g@;_4R{OJIkw&2j$3&sRJ=yjeVdRhSUc--C3YVpccf_+Q~W?piURpbn0{ zWAXq^qlBh|d8pc_s*QHMu6Ck+-m3TjFdlPn9k6$~r;`2-#qf2t)@oE~!uBxt$duSN znc@>Tyy{mJ?=g7|bP6GXP)k)_ygyRHY>v13-uzoFC-L{aBjX>B9wK(!Syi*dG2E-= zPCutcZfS|UTYogB>H1<63#A^tX68<1w@VAk2xb2IR zK?w{f^;2BJzJq;JEz7!t9T!F-Pi7y7f5|3OOSIN|{rEBKDKVJ%u4*}@f@@risq;2mzpEp1M7(uIKKpC8bA9JLP+`L1=k*CK3-t* zkNe)ri0^Gk7=+B1Dx%1jYSZYgM53ctLL<3>^T#Ci?!T=rQ_=AAcrE{+oxNcqqtSk4 z1Ag!au~fCa=us~qBeatj_8*8EUjJY^tJeBSIv|5XpZLKDX3 zu;k?xC*up7ol!~wM*cA$zNXNhBKB(uGC&LYma`&j_0!z1IgmLad^D-&F8)!omw831 ztPi|vT^WExghfx&7Ee=N#o8wEBxpi7FT&icWI0WYI&Lv}Wci3y4}Y8VM46K93vn!d z%Xfy_Dk3zcIoKCJzLX?K!*mCznw8$n^|olmsETxTv{Q3(Y)^z*Fx!0EuSPnvC$ng+ z^1ZP-fqlo~HaJVIs?q7aSb8^=(4OK~X%;zav{Z19Y~Gm7>rYO`7*PeHm92EOmfT$q zPN(e`NWFtfL%+_o{_Ne3;7Jhjr1COYHVC!z7J@AFd@DG5^5>KRA~o)sN#&)f5>`9? z|A~VSB~YiPrbf+#|E&2jcbM+ELC*-^+39wgF9yseT(R-4v0V}UI&^oIkZler!%V^` zHe@d72>Xm1EK^lpJ~J}|9RPkr;4r~JLyJjBaJrj-r^$UNLa$=(n>Vy`hbx3kC`gg8 zKs)hT@)@fKWYid^Tg~UsrBi$e)Y%{3{UN^U3|1gPo4nGQRl@= z%g7h1B^1n<&~q$y8KH43Qbfa~irUfoTdWnS4bwfa5*v1JZSD9JZ(z_t|AhY_Pg781 zDTDl}+vvONLQ*9*mRE+8dF>1fW1!d9dJ3dT|L!ERe;|1uHZF(IQhYhbs-HDtOd18 zKoJXNW#us<2{&3wx3H!jj6k z+S;{NHR=BYH>3Z5;$~<`)GsoPC;J%E7G#*-UZTioD@6NBQETYL%JaxHoM6gC`{;03 z!6ueCwqkf*_3oTfTz0IW(!6O07_5EvND=ZsmbgI@(2>x%siGlOem}y+@}TvQn?$KJ z!zt+E#3+4{{O+4Ifl15mQ{{Z_6(lxl0QUjSjH`Mwb#{t?N) zD>QK%I`V8im?ML$78a*51iQQ=6R#zKC0#;>Cr?ojZmJd+siUkglA_$NQYs~pL?6{Qg2MrT4ojr4c-Yd?1n)Bikb}D8 z5+11#$6AaIBi@rE#ZjU{-jE1>r%~Y*AO0y*ylv*!r7``fMCfwNIytga$8wR2V|)E? z2}P2L?bU8{9`@2BRYymM_w6w#_!-sN=`SoSY;!Ehh2i^6G?$Ryqk8;{l)%B^;o<&1 zyF2D@F0rhueLrGg;blg9ub0I{-Eu#Q0ss_>1n26OVyKm9WQ4}lqG=sNIl=w)#PFJ9knw*>* z8(R&E*c49Omnlo(hUA(zaS%e56pRX#hKY537X$e@?N+^ZhC#jCN;w&s%e#M9Oiaw% zj50K2cYlAu`(82BZGqDGSnDw0^HO8zkYtM4PC&S^SRs}N9HBY9x-~0E{TqrnVFVWnylo^9^(Hh>^S%<{H}GiHQjsX8IRJN`qW)KW0Kzu^yRmx=*Urt;!H#kh#PL=Cb z=vTc`Qo_Z>J-oQkP*Sq5K74{zCU3L4rbHVu(bIdr@+QcXNe=*c(m)`xEfCBM>m+&h zV03!{L9%w+*Gy1^?h||1%}>xxKuCx{ATZ%a?j7b6(9Ow#hP^pZo0<@4C~l8S4O^CwiPXU;}D9=fmEl zxBo3tc_WziJi)~p$paab$u>9fMuK0ds5ln-iQaY^a8@(cX1YA80|xabh+JzISwUsC z>?Z%XaFZ4uoOB-6f%``y@+Nb?jLPJVFYBXzhuc*$?&mE^R+|ssc zPEM65$q++smrP8*UBS3lmI{CXH`?uDJp@=T-`v1L5jQ5hFd#CN*i3ep7MHnc1k{7P zuJF%~m%bRwp#|9QtmMxMvagvPQX6MPe5jC=%dE>d1fSfD2u1%>srgPFl+dHj8h<|fN4Jl`%y|Uo#lJZpu1};JAbta6mo%VbgZ;ZhXUC~ogQ4M8@)wH4j5h(w<@k%zw z{c8owt@72xRMEveX2jI^I4X+h@6e)VrpJ0AtHDaT3K#d`zYhp0P}4TjNC-lSp#oJ_hu=w@0d;XVbhjwJfrde`# z;{mLLc4U|GSxyohBkC)v#SjB|HIJkr^>XjHBCDkC+`rhF#FWbnG%Hg~gCHcv&vci? z)kWzLWKh9vy#xbT7#oi-SCm`>9%BGUn7Fn?4{5iVcawq= z%a2qi>gPL#%;qr3Ab{c#V+3@($bmqh!w2H71ssg3w#19?<6M%ToNfz z`&;-o)7u=Qh9B;HzRex{(u#?9kn2+0Oo|T7lihr<&>7HtG$$xBUZ7c4SLYPfWb|^H zO9Kz(>GFGdB^uhuXazW4Xz7%_Tjf3NxyKIx*i0`8%@_ICZEB9hLeG;S+SO1hSJmng99lNqjZKjDG;eAO3mTHIF@ z3YskK4mgG@uJ37B+@}byimpQnb+ls}<_0OT)) z@J>heV;>Y(kTj@CwzyMm=VKM$J}DTt&&^kO0A8UInjRFamhJE!$dYzg4A2V~=w&ub zyOy9F#dOg}OUb|%n$J^%OI!i~g3Wg?E1;#(mH!mICzm zcr_W6tXrp_jVlA8m(|UTW-16Bv|VU*{JA97m7&jhb|g-FJ;!YKguQ9Kr-|tyNPVQP zBFoC@)ZLV`7e?rflU~Tt(Vz#{7wO9PN~5jj#mMx;skl;`#uZ=AQ9UB7&V^ z(CO1!#AflHyu=vhc$>Po?Jgwb9mj?DhsSi8Qvbq~0BQ+YoKf9C&t#h|$e)Lq?mV%J z=PGcm4ecU^ea+Ry43|C2ognF}0yDySeP-cPDnFaiSc}KDeb%k+RD@^r!BOR>=+q_D zuhydfN4=Gj}(M`Du1blKFr?zb|Hov?aJV~e7xIeMRu=@@B%E49d zCb{ysrr#L;sVc&CQ|Rdxg@Fav1Au-UQo*3=SpIl+i>2 zD^qUSJw#~qlQB$4p&fG4X z;$S#!GR2!zxIv^&N9al%0N@>g2LxP|F5eIZ3|Odi+pcT>`7I!3zNUBfLU#>vk+yH* zUt0J=>bvUBu!s4(O73WkahzQ=Y63GBtYz^4w^Na>VgXZAO79J2 zw^Z9ahoHGHnCW*vTpk-hP+{{l=_|je-A%Kb(h%2nvYp=N&n`8QA`-MLxm2Z$;6fP0C7LSv8;KB`^P2HhA4m$y^+$sQoLf18*KQ2n& zxfsk%1^HIJwI=T$rSq6L&qn?E%E|tKLBAvW&6ityMcYxk^ER49+%^m+(PRhQ^K?B& z?mn^ZE9x0 zD=s@;IrkcaW@)l`^)gRSzio~cWOX_G7k|h?89PJy!fS6;!grQ>BQ^)bOHGEdym$yN zFgTdeDyjp1gHF8brZ8tEM}*|hxQ`dozcE2a)uDt?-%Yd1cP(-$JYKJ%SHvt&!U3u> zANFr;uZAe!-W{B}v4T!A?yA04#O=$fVluKZ`d=ZhR%Uhc7H6>@Cb5vb!UQd0m63!< zEnl|2WcG>#d{2WyF4~;~`tI@){K1f6P?$nZ1*Pv!Kf&#nBm@NmoW6I$jk@mq^f+N! z&ognYM_}Vl(&I+kUM_)PCEb@^*bl{Eg)$uDj|cP6on@* zmn-#i*sCm#t{Ish0VatfxqYtUWu=hDRV|m+t=>bcxD*|~#;2}tOaNiCyQ6f$2QASzCjD zbY33PV0sF7sYAKdYp>WRjSB14%kvjdLz_1nN~$gs$O9FoWy1v{I%hQohCDVGYRqYJ z0v2+SmxpL;?a3Hsd5Y)RJm;^yUhPlH>e`B+KQnkLZMxuj6z&8_Ol__DEDhp19Zl5) z0GdAA>LqfI5M=MSuDf8z6F8aD_II2Xwq&tG@diHkI@5eo0cfUR?@?_8aK9>y)ogBL zJy46{X0C+UIykyA4RDoJY8tTU-G8TK%RftSCTy!GZ>k!R%^v+s@8cx%03s>z{rDd{ z4c@18d7iA8sCd7c8nkFh(2NO)io`wm#}VfPUu=W>m{XkvLfx{Oyu78`o1#|I2)Q)R4DAKRiCp%180*e*DoP(=uB z1OlB2Z zM?;vh{xt2r_Btv^(|SjIrBPkwq<9aIS)A&hZJ@Oba$H$_6g9t{bi|1kqtAt;K5eNI zqr<}E^Tfn&g{H@l#>q#9tgW{nZLj@E4Di*^a8k2Or*v${Y&{FUxqbg#u>=(l*nCip zO>x*=k6*KYIL3xabWwPp6QC&}jEPF*p!NbN8H#PZdfab&dM<-W()%Vfzxms5UDWe2p)#iEh}{_c6S8 zH`_Vn;^h~xJ0jH@B?-LuwEDwqd z2>G6MVlG7)u7({CTV)^!s`ybv0(iYWiU$bcV$r)0F&=6U@XEl!Pog@jU!qCU*8iHu zLN^Nu!{N@0*=RZ!WxNmIg=F|0Fz5A`|QN=?Mr&QL-Mxt0C@; zPS07ni|nB2IT5i5WFsMSdwUSfiBDgN0s7(q<{jpXv*6KDg&Rx0nNk2gj`Lp#yJsQO zFAer6Kk1}6BS_+Qp&VEM{+#QPFu0`s>++7rNm9cBRf!$ax27#q>4X@SWBgJdn;zYt z8dOs&m?s>;y+8HMaRDcOH5nM%0HcP z)cZ(hFXMnhJjBd||6l|KLH~Y4P)Sa`q<>_)Qo~(v_^TCg>#R zKw2nvB4Tm(_aDyd!zCV4c6HsdFV>hu-I-YmIcL7vv%Z<7Jwd+UY1#bOlt4W8H!vlR zpJBdNFa2vl61jX0U1d!U8Yxf#E`una$x?i4E)@!t@h`?e5*b!yHnh@ai;Yh zj#l0yP8^^%ihx;DJM7gIF4evz0_S$fd{BwZACK@E*L4BLsYbGryc$XKuhEUX5bQL@ z(m_Sv-Hg2g6DKV(7z8*F5)&)0QX{>))Uzteao8u3uftK9?7s`yl zV_Sx23E}$I8HMnLltNn=Y^r&i{3ZBDo=olm8%cIim$&}g&P*O;qrDCuvDURj&Ex9J zd`ctmMs*I*Mr4MqRS1;VE}Unq5f~(A>Ro&xe52wL%tF%tODnE#sKg2C#6o-#0@oT} zrZg*IVhxb>PP1N|eD`MoN~?VLcC{}7<9-(NW(0&3BTTHX5udo(B%+mv1-n)obm2gH z$U*10~vlfdmD5_rZ@)9NSh#>%z4MH!A)>>k3|7eOR$zM(hWmtI{>bujoFo`0DxQV~LH3@F0;o`U;<7fjqrNVF_QL_HU0)+10MBtYYX=IC!*$a#A4`WOLs^QWrq}?~? zAfkoXaO6qXRaJ-A#CFs=$L{4Cv8VCFAF38f6QyGov+jLgDC>foUk^v==v&Z}4G?i# zpfIicFuO|<$@24EmER}}-bS!O{`i6U zyx(-QK^KeFNrGkman2U|UgNnD(y;L%(DEgY^sktraXtKXXod|LcqTkZ<>#HVnMBXW zS1S4zwTZM837eA8P0cs^Z5pw&FxdM)gwf=5tiZPtD_c0sd?)w3?b>o!}bTExVctDo>%W6QFdHd&n% zPwR(@lAjA}xdm(B)j2bkr2;GJx|ou$=)sCLoC+?|=wWg45l{4f)RJK0NtGWz9k)u( z>)}#U-(~KV=Bk>m^kf^D!|QKqrpy*D{SVI|Z=HYAXb?G;AnvSsH3Bpsqz~0|J1^Ik z9_GAYKQmh{-$(uF4VadZ+O7t7a_(%Rt$L%^oF5Vf`OLCkPn3A;WX3s5r5{brGfSSv zXd#J9_ERSz!*&#~IgoU*j$TXh=6u6wKk30fg?_u%N8$W{_Sd|UMJbuAmcl&#EXv6| zE2mTSV|DK*T|O5&QdOj~-avX{!!?%XB?q&h>)>j3hvm~a**oX?!F#`*`mZt(THACL z)6c=+!cG3`Fosl_IgpkbxG;8GV88Xu#O{2&)~oTAA<$v`*O~maZ&zw15U5Wz&lJUa zyBw}TBx;J@AolxkFlt<8py%2{P45?cw22D@&SVU6b)ByTj}!Xcg1Rjw%5yz=2W}kB z?qtmxcepjcPi4;6u*)PPU{CRg2x3wa+jb76VziCsGh92e%UOX3Th53LxWoZNg(zJ; zDe+7#bVMmu>B~AfWQxv~m)5DW1}DGavxNsEEr>qp-@^r=oT$G3LS{waF|UM<*zSJ^;7(QnGRMQKPZ?>)3$`1n_<_{L|fBh7^b z3NjCpW~j}`*--MF88pjz_%Ob@eSgQ*au4TEoj$dKf$1;S3^XJV4OAmQehSTMYx6zn zEHKDZWLMw%)yhR|#7+L9G*?^JcYAf43{f2{hNStiv1f9%zHv97?JhjO&7`f+xR-a{ zS3g3y<(0vfes918by82-3pHF=iP6i`h_3O*T@^XFb36LplXYP|t8BB2T82r~e59h} zVFfy(vWJOWYKar%`X%V-EkjA#iE>2ut|B>^(xmQIIOpLWSNUt8J#p<_pwT4VgNa;9 z83(XOI&#i)X&qD1XK}rro1>pQug_;`tK%=N$I^iuFK^9sN!J^*DocDNPh#EY+-y|Y zZFChQD(7&@ExiXfG={nll7*>O#G5hUBO2DTphac@%ZS{kkF9%{jy!8z# z_VYFzi-;1Lt()m0Od9Dt9OU%58TiGjs{Gy1@o3HGv;JL&$SyBg!j!}j`X&wmBTPBd zNNsdva?WGfnUE(hu<9;HWedN~8ZVd*M-0H{Him17i3_x%^=Y)S(VNYv$AWb>PkUut zcnGJ^b;JChjzKrM(WzY*sk>yX6QDSw#KB*W$;C>Sf4b2u4*7onHRgI-4^+w+TF)E< zRogh~kN@($>r56t9#(cmN^I?A$!bop;Zb#L&YwhY2Pw}49e230k5p{1*8aKJJza06 zVV{)Jf#UJDT>ogj%Mrgose~Jg$L>s5nKZjBK6>;hmR7=pdqt=@%iyi|qZsqzaTPsD z^5%p#1tx(6%j7X*ea+liK5*@+aikzjXFIg<5mj%SGuwwA>)K3JdJRiU%kAYC zJSI)nMyeR6#R7*iY`f=oB4I@*nB|~~hN8E!IgbP#z1)OQvGb2Lb|3dCcVA2rI&WTXS*|6-=u2Hlr>iySX?An^z%KD zT|5!2urtNg(H^4>7db#S1Ie5^#h2)t^LbYj?kQ(wRsG(kJt-G6htW;&w`g^fX2JrD zg+{HTqf@0{QI@#q;?X{ecj|91{Pc4qc@IbP{GLbaf=k+b0@qr@PZ(~HSBH6C{>+ZI zBpnF|@VvmXE$;CvBQqZuOF^Edf>OC>#KPC`Cn>L14_smCBtch*>xCs!wyl%9SV$Zx z@4El++Hpp2PF_tzAyiAaT7rYAqVjgIJNIlSdsFHu^qWh$ z&LCCqi;B0JHmHs0Z1}1k#rSAwR!bHrny8uh9s=R|k~&7AU<|_%U0kNo!_96TpXlp8~TkP%OpyQ7_lJ zF?z2zlaN;@28ekHb9a>rK2LXXErTqB7ZksE`HS}wQspAjD+U``cW`FgI?n#uNdH-i zzFML?FZvP9OVUsFS(((0R#uSSNnT0rXZQZrenZ@aT6oDT8y3YQbMOWHn19#bU_Rx{ zB^&ztvultHI-E?yRJV)aYFi5R@u+yQwTUXpNoadlo>f9Zg>EE)b3_H)vt@Hpk~TFL zlA@+wvAOKC<{bK+RpXo^z@z56r*{}`XqS9a9NX!1*DUVgz;IRJx_z$B&mjJq{wfXO z6`|R0;qd&M+G5IZ5D~4oCNP0tuXHx|8u#gV3ll?*WW2%QRyJ?i`5!Ed1El5I7}p%_ z6p^#~vB=nOGr6-Uy=MCj<*Z5#BxS9AVV#bld_?lwmh&9FI1OQ^oALN^HXvJ57SQy2 zlk%#ZHJNM5LlqnXLbQwXstR4;LED@t?ZuD$zBmTGhH}IH?)U6{44dp#_DX-qcRQ58 zsOoQ0(-9+Z1NsU^;5elXl)eTk+%c_)-{${K&3y4O$lwcW(DlMbE_{nF7*JhW=6i|h z(!*$l-NOmhmIcobrh!6n0X}M{@Hyl-o(st5@*5e3#tefac`dzki%jN0FefSpC_Wth zo>~mI#!ylL0LyPLX%S&@DK~~EC=1K|Y?46e7x=T|2Vm&mtM+K{3$K|?Bhm#q33TN0 z712O4nrmzN9{ha(gUI{uK@2otlj!dcn50d&m^xz4 zlJ4h&{(fQrMgN{=>-L^o*opn;7uas^=R&pT7Gn>|{Jncw0T|N0q_g25F~h8P zy}kRXU5@6;r?s-s{et2-|IUB^F82P-HX@mKWQouwjDhF&o7a}(jK(%NxrX|&ypT?Oz4S!3LPV>}=Db-NIu-Pl=iR?L$MA8e zOW3r0gn4NAn}NZ)b@k#*t(F;GF4fHJ6OxYG;qmH5s&NYeOLaM3`dvvEE_ZcamoQrA z5=>j9B&*!kDTYmbZwtgVvI2Z+ez7M729G{lYX1D%y~e-!a2S+hmsp>^x|>dntpoDT z_SA#de(n+GGyK=0m?5t01vA;(2V%sm-s?}nt0ojbNbtbmwfU$dQ3%)lrp1$$f&ALY zs6`@W$_mHdlQ$5Y3SJ}`U+xz^|EaE1sl_-%D9+|~?25oqi6fRjQjqc50l`fAYC1(v zhR3|mi+jk6+oa@rZDqM@E`ogGX1y;9$&LZi0|21fxrb+eH!SJH8}q6nx7JKi1pe1A zhQ(%S$JtMJKVN!|AYiavb9Mo<34-?KpJ{=lUDoQG0b#6_9J_ucZc8r`CZph8WGQ(G zjMhKs{S`stumxy3L-3H6ar@`EEqlnEsv{n8*;Br%k0Jk)U zhUX*N3q@`I0z=yM(z*W)UubFD;DuY@RcfgS=~H78p;QXEN50G5?I$#9@e)Fp>WX@nvvUT&ED+38W*PK%P-*?Kil#!-c>-)fT*yQI~;To{sdy zwRnv)s1Ij)7upFsUmU(}CLZ8(Edj;cn7}LvaJapq@y zm*buH`vb5Dqf4iTK@RqPsUn{pK7)-?e=|pehRGw97S*K&lvcgfa&$Ya`CN}N`G&Qc zcCKqwlk8US9NzJ?Gbu6+>8@0tZG=ks2=IrahO2~k|Ihn{7|~4}u7@97@UM7J8mEHH zD*TI^-=F!Vf^x(l?K5H$7G0bc?fn;m6YdS}8>Zp0OqQ(Ocl4q%70aFVu~$O0Cyx6p zuTHk)yt!4X>(?$~xo(S&Mc)iy4Fz~sAxFHAdzvDN=Ga~pky6NaoW;sobvXD|JO5;v z|0vm0%EE3}wo-PlM_4h2_Lh0P>sR9R*AIUu!6*T&L#2b|fRs2vb=>>Y`N7C$L<9*0 zoTgK0S0)=NTEd|#8&8=W4gc5*je+$0o;#Ox_*i~7eilJEHterDHSOzM%{WKbxHR&t z)h!>t3#a4t1}BG6UYFLMUmu-VKc$><7khyrBFUS-Z~q$e zI$$K`e7JK?KidnX=srR7MM`0KQEb``Y520UX24|Ye7~k~73B2Vem`MUGOPbPnGm`- z{ivCSr#R!=0OsTbGm8FK)eFGIg`xl63b=P~jN$JmBO~MguD@pv)mTZ`?&QutxDK)d zOD2p=O#|zr?zc!U?H&96x0tAni-7N5++KHHp>|qZTfw^8+KEBso5gzAZmcUmV^03h zT_Yl3D3Ds@ZSnz;-Eg*1_XQ4UXTG@xuJZSqJ$1DZN{9dhz8h~T`uhXm z>rhzZ|9^9_01AH&9(^LIIG*oAQ&axE*@a5YO$vwa#Fy+jSeMre@A2bv#OS}?8nRH0 zcG-yfBV#^zdriYEkx&p57k7bJ{-3M%_V%W7?L5%a6JMrxF$w73mx?d6j66K*EPg8f zx8&jCUMztAhYz7~TK%a8G4a8sCS^Q?PG z!qNVXGr>MeCEiTbNpJ)nBd^0jUMv!d4wc~H;gObJu(0_jIjkoyo}3>b;X(7$$*JL; zq@opTkD&&WgOCeh6!Oy~-;wb-Aju`o1DhewzHvjm=uV!aUe-k$sxhU4j3zw-U6 z5GJG?5%jEe5s678K(GAW$P-BlIkKy(dfO<;%8Ie}jLLLT?bXKrR`3v5-)}c-TiaY| z$nip}=a>Qn-^!t5|FzdB9^THGuR}8?$d&Bqwr*g~hN5&N8zDp;qpYlqaomVd5}!bZ3jFCmE5?+3CXDoazbJsMw`}apo49UljAETmPsjBLh>7sd$sQ*du`AZ}2)SLfG zXlUroO$9#if1;xvi z*ql+b_I$9|^#S#CY=!2|Qrxp4arVuL?FNcwdy7VtFp4~b4Y9i?W_ zsh4nxiyPL=?40?V6^)LL&O@m*x|#k{BhQ&VTTP2!+1S{`&YAM2$?@tuD|!|VE_?S~a>m@y#_UL~_} ziTg-NB_NolXz81{$RwU^-rl|ECN2@HGhIBfb(%8ywh`V{ZSrqS16)MX5PB!CLpC5; zLkeK}xDOi;sWvu(RK&_f+OaFJKHoIcNU-)<$1w@| yx}_Qae=OLqsP?}a0ka7p`@h(*|1U-Q{tgG}YO|TQ>e}`9Ka}Ow!PRoFL;pV!Z1F7s diff --git a/framework-docs/src/docs/asciidoc/images/message-flow-simple-broker.png b/framework-docs/src/docs/asciidoc/images/message-flow-simple-broker.png deleted file mode 100644 index 9afd54f57c23db5d535bee398bc3461e2e87b69c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65382 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 - - -image/svg+xmlPage-1DispatcherServlet -Servlet WebApplicationContext -(containing controllers, view resolvers,and other web-related beans) -Controllers -ViewResolver -HandlerMapping -Root WebApplicationContext -(containing middle-tier services, datasources, etc.) -Services -Repositories -Delegates if no bean found - \ No newline at end of file diff --git a/framework-docs/src/docs/asciidoc/images/oxm-exceptions.graffle b/framework-docs/src/docs/asciidoc/images/oxm-exceptions.graffle deleted file mode 100644 index 4b72bf45285b..000000000000 --- a/framework-docs/src/docs/asciidoc/images/oxm-exceptions.graffle +++ /dev/null @@ -1,1619 +0,0 @@ - - - - - ActiveLayerIndex - 0 - ApplicationVersion - - com.omnigroup.OmniGraffle - 137.11.0.108132 - - AutoAdjust - - BackgroundGraphic - - Bounds - {{0, 0}, {756, 553}} - Class - SolidGraphic - ID - 2 - Style - - shadow - - Draws - NO - - stroke - - Draws - NO - - - - CanvasOrigin - {0, 0} - ColumnAlign - 1 - ColumnSpacing - 36 - CreationDate - 2009-09-11 10:15:26 -0400 - Creator - Thomas Risberg - DisplayScale - 1 0/72 in = 1 0/72 in - GraphDocumentVersion - 6 - GraphicsList - - - Class - LineGraphic - FontInfo - - Font - Helvetica - Size - 18 - - ID - 42 - Points - - {334.726, 144} - {394.042, 102.288} - - Style - - stroke - - HeadArrow - FilledArrow - TailArrow - 0 - - - - - Class - LineGraphic - FontInfo - - Font - Helvetica - Size - 18 - - ID - 41 - Points - - {489.5, 143.713} - {430.452, 102.287} - - Style - - stroke - - HeadArrow - FilledArrow - TailArrow - 0 - - - - - Class - LineGraphic - FontInfo - - Font - Helvetica - Size - 18 - - Head - - ID - 4 - - ID - 40 - Points - - {230, 217} - {275.683, 175.337} - - Style - - stroke - - HeadArrow - FilledArrow - TailArrow - 0 - - - - - Class - LineGraphic - FontInfo - - Font - Helvetica - Size - 18 - - Head - - ID - 4 - - ID - 39 - Points - - {430.381, 216.81} - {329.369, 175.19} - - Style - - stroke - - HeadArrow - FilledArrow - TailArrow - 0 - - - Tail - - ID - 5 - - - - Bounds - {{56, 217}, {249, 30}} - Class - ShapedGraphic - FontInfo - - Font - Helvetica - Size - 18 - - ID - 6 - Shape - Rectangle - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 -{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\deftab720 -\pard\pardeftab720\qc - -\f0\fs36 \cf0 MarshallingFailureException} - - - - Bounds - {{325.5, 217}, {283.5, 30}} - Class - ShapedGraphic - FontInfo - - Font - Helvetica - Size - 18 - - ID - 5 - Shape - Rectangle - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 -{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\deftab720 -\pard\pardeftab720\qc - -\f0\fs36 \cf0 UnmarshallingFailureException} - - - - Bounds - {{184, 145}, {217, 30}} - Class - ShapedGraphic - FontInfo - - Font - Helvetica - Size - 18 - - ID - 4 - Shape - Rectangle - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 -{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\deftab720 -\pard\pardeftab720\qc - -\f0\fs36 \cf0 MarshallingException} - - - - Bounds - {{430, 145}, {239, 30}} - Class - ShapedGraphic - FontInfo - - Font - Helvetica - Size - 18 - - ID - 3 - Shape - Rectangle - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 -{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\deftab720 -\pard\pardeftab720\qc - -\f0\fs36 \cf0 ValidationFailureException} - - - - Bounds - {{294, 72}, {244, 30}} - Class - ShapedGraphic - FontInfo - - Font - Helvetica - Size - 18 - - ID - 1 - Shape - Rectangle - Style - - Text - - Text - {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 -{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\deftab720 -\pard\pardeftab720\qc - -\f0\i\fs36 \cf0 XmlMappingException} - - Wrap - NO - - - GridInfo - - GuidesLocked - NO - GuidesVisible - YES - HPages - 1 - ImageCounter - 1 - KeepToScale - - Layers - - - Lock - NO - Name - Layer 1 - Print - YES - View - YES - - - LayoutInfo - - Animate - NO - circoMinDist - 18 - circoSeparation - 0.0 - layoutEngine - dot - neatoSeparation - 0.0 - twopiSeparation - 0.0 - - LinksVisible - NO - MagnetsVisible - NO - MasterSheets - - ModificationDate - 2009-09-11 10:38:54 -0400 - Modifier - Thomas Risberg - NotesVisible - NO - Orientation - 2 - OriginVisible - NO - PageBreaks - YES - PrintInfo - - NSBottomMargin - - float - 41 - - NSLeftMargin - - float - 18 - - NSOrientation - - int - 1 - - NSPaperSize - - size - {792, 612} - - NSRightMargin - - float - 18 - - NSTopMargin - - float - 18 - - - PrintOnePage - - QuickLookPreview - - JVBERi0xLjMKJcTl8uXrp/Og0MTGCjQgMCBvYmoKPDwgL0xlbmd0aCA1IDAgUiAvRmls - dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGVlk1vG0cMhu/zK3h0Dx4Ph/N5rZsA - DRCgqdW0V0GVGhkryZGdoj+/L2e1q4W1cloLhhZrfr0PORx/pU/0lRw+OSaKUei4pt9p - T84m135oS3f3z0yrZ+L2eV7RrbPx9Nfz0ymAQYAN3f2yPq7WTy/flh0dt0jhU2ppoidf - hIIkWu3o7ucd00+HVoRPPFgEriRJTG/hRwupgwVnUYtTDBksxI1ZhION5Csqb3mCGfLk - c56pQeyD3P267pYv27/X94fucNzu1i/H7Uo1+BooRCYfAonrZTJ9AJPHntD9Q6vO0cM9 - BPdJbvVLsaIIDZAhv/kr5wfoBltvwNYRuDrAnngGThTADb4/LohLC3+L79tSbQwZDDMt - oO49W4eEi425+WPXfVw+PW33f737RxuwPex/oMUjvVsg2ZtNDeJIciEPyoO+STGjDLXj - AHLNbqpDZ2RORwwol6S2hr5Swi7aUpVMr8SflNDN53PdkzLeilWj9d7ly1DLbvsnenrY - v19uu2/H9Ws05jtouKDlioYz0KjkzbRPIxq1a2ianY7I0OJraHz1PZq5Jkc0WWqkbFqT - z2g+Lo/PX5Zd9/+7bMQjKkQkPYbt6bqc3lZFT20HSVenNmXrkcK3k/e63R6nMpZxcJsm - s9jQzW/73VnVlT59b4Sxwpqy8PYEw6yJamb/ZYC5YM2pIt1IrxWxWBdlZuomXZrTYy6O - 5GTMx5HCabNSOKDiZIvDNOxIpNjowZdzsTVxNd0waG1P6zpv51CELXtsH8nZuhJzc85W - cvV4x9anINQhYLUpKY6MJNwCfsHbS+8NAn/A7+Ps/I8enKOtjNg7I3LKx4VtFtQwycfI - x6Uw3k3ynb2brNOSNXN4PI6j9hLbNRUrSQ9gwVC5gpA6qT4H6zP2i0qT4kszxWNI1UgW - 6x2msYMdOOutU2zOIKYFzfleB6CzMXqosMTY9lpYnw3dqjaDyjkb9gU2VlAkk2yDr9lN - 5c8CD3oRYOWIzQzYuFYxGTHhlcu2ZqhtFEwQZZJxgWEVJ48rRG3Ra5GId9hBudUVgutp - hZBtKNI35sIblV3noJts9GAnmLaiHMZ8zM4G36gP+YxeA5FTbSTmvLWXw207NwgiwWaf - wCKgOimYP8DoORSvhDWCYN2Ggk3eODD+OVBbNAFDg3fQrBwxoCXjQNRoGpsk/TzMeb/N - YfRoHHB8W22nfE2zL+1AnPJRYyOpn4gLb1SrKj79C2PwIN4KZW5kc3RyZWFtCmVuZG9i - ago1IDAgb2JqCjkyNgplbmRvYmoKMiAwIG9iago8PCAvVHlwZSAvUGFnZSAvUGFyZW50 - IDMgMCBSIC9SZXNvdXJjZXMgNiAwIFIgL0NvbnRlbnRzIDQgMCBSIC9NZWRpYUJveCBb - MCAwIDc1NiA1NTNdCj4+CmVuZG9iago2IDAgb2JqCjw8IC9Qcm9jU2V0IFsgL1BERiAv - VGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdIC9Db2xvclNwYWNlIDw8IC9DczIg - MTggMCBSCi9DczEgNyAwIFIgPj4gL0ZvbnQgPDwgL0YxLjAgMTkgMCBSIC9GMi4wIDIw - IDAgUiA+PiAvWE9iamVjdCA8PCAvSW0yIDEwIDAgUgovSW0zIDEyIDAgUiAvSW00IDE0 - IDAgUiAvSW01IDE2IDAgUiAvSW0xIDggMCBSID4+ID4+CmVuZG9iagoxMCAwIG9iago8 - PCAvTGVuZ3RoIDExIDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dp - ZHRoIDUyMiAvSGVpZ2h0IDEwNCAvQ29sb3JTcGFjZQoyMSAwIFIgL1NNYXNrIDIyIDAg - UiAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh - bQp4Ae3QMQEAAADCoPVPbQhfiEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB - AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg - wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM - GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB - AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg - wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM - GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB - AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg - wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM - GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB - AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg - wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM - GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB - AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg - wIABAwYMGDBgwIABAwYMvAMDfE4AAQplbmRzdHJlYW0KZW5kb2JqCjExIDAgb2JqCjcz - NAplbmRvYmoKMTIgMCBvYmoKPDwgL0xlbmd0aCAxMyAwIFIgL1R5cGUgL1hPYmplY3Qg - L1N1YnR5cGUgL0ltYWdlIC9XaWR0aCA0NzggL0hlaWdodCAxMDQgL0NvbG9yU3BhY2UK - MjQgMCBSIC9TTWFzayAyNSAwIFIgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9G - bGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt0DEBAAAAwqD1T+1pCYhAYcCAAQMGDBgwYMCA - AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw - YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG - DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA - AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw - YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG - DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA - AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw - YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG - DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA - AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw - YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG - DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA - AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYOADA0auAAEKZW5kc3RyZWFtCmVuZG9iagox - MyAwIG9iago2NzQKZW5kb2JqCjE0IDAgb2JqCjw8IC9MZW5ndGggMTUgMCBSIC9UeXBl - IC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggNjEyIC9IZWlnaHQgMTA0IC9D - b2xvclNwYWNlCjI3IDAgUiAvU01hc2sgMjggMCBSIC9CaXRzUGVyQ29tcG9uZW50IDgg - L0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dCBAAAAAMOg+VNf4AiFUGHA - gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY - MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED - BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA - gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY - MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED - BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA - gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY - MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED - BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA - gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY - MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED - BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA - gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY - MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED - BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA - gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY - MGDAgAEDBgwYMGDAgIE/MOn+AAEKZW5kc3RyZWFtCmVuZG9iagoxNSAwIG9iago4NTYK - ZW5kb2JqCjE2IDAgb2JqCjw8IC9MZW5ndGggMTcgMCBSIC9UeXBlIC9YT2JqZWN0IC9T - dWJ0eXBlIC9JbWFnZSAvV2lkdGggNTQyIC9IZWlnaHQgMTA0IC9Db2xvclNwYWNlCjMw - IDAgUiAvU01hc2sgMzEgMCBSIC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxh - dGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg9U9tCy+IQGHAgAEDBgwYMGDAgAED - BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA - gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY - MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED - BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA - gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY - MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED - BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA - gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY - MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED - BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA - gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY - MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED - BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA - gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY - MGDAgAEDBgy8BwaUrgABCmVuZHN0cmVhbQplbmRvYmoKMTcgMCBvYmoKNzYxCmVuZG9i - ago4IDAgb2JqCjw8IC9MZW5ndGggOSAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUg - L0ltYWdlIC9XaWR0aCA1MzIgL0hlaWdodCAxMDQgL0NvbG9yU3BhY2UKMzMgMCBSIC9T - TWFzayAzNCAwIFIgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29k - ZSA+PgpzdHJlYW0KeAHt0DEBAAAAwqD1T20KP4hAYcCAAQMGDBgwYMCAAQMGDBgwYMCA - AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw - YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG - DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA - AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw - YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG - DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA - AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw - YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG - DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA - AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw - YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG - DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA - AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw - YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMDAa2CIfgABCmVuZHN0 - cmVhbQplbmRvYmoKOSAwIG9iago3NDcKZW5kb2JqCjIyIDAgb2JqCjw8IC9MZW5ndGgg - MjMgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggNTIyIC9I - ZWlnaHQgMTA0IC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9CaXRzUGVyQ29tcG9uZW50 - IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7Z3tT1PZFsZBCqXvLZS2 - 9GVaTgvtaSmdY4sFCtM2bXhHFISpM0LQqhkYkNHYSAZ1MIwSiSI4EF6iyBDRgEPAECVG - zfxrd53CvXOFcrD3fto96/lATDYmez/rl7XXaTlrZWWh0AF0AB1AB9ABdAAdQAfQAXQA - Hfh/HMhGZaADaREB5z/xj3JQGeHAPxE9AQH+CiD2KICzCwS5qIxzQCCA0LJQHAdDkoM9 - CPKEwvw9iVDEO7AfSqEwD+AGHI5hYZ+D3Nw8gEAkFkskEqlUKkNlgAMQSAinWCzKz2dp - 4GaBBSEH7gTAACCQyuRyhVKpQmWIA0qlQi6XAQ9igGGPhSOuiCQIkA9YDmRyhUpVUKhW - FxVpNFoU8Q5oNEVFanVhgUqlkMtYFiAvwBWRGgU2I7AJgeVACRRotLpivd5gNJpQxDtg - NBr0+mKdVgM0KJMsQFpgUUjxEJEEAQoEiRQ4AAyAAZPZYimhrKgMcIAqsVjMJuABYAAW - pBK2XEiNQjZbIwhFkBBUhRqdHiigrKVldgdNO50uFNEOOJ007bCXlVopoEGv0xSqIC2I - hGzdeDgpQEoAEPIlMoVKrdWbLJStjHaWuz0ehmFOogh3AILo8bjLnXSZjbKY9Fq1SiGD - rJArSHE/QEqAYlGcBMFgpkodLreH8Vae8lfXgAIogh1gI1jtP1XpZTxul6OUMhuSKIih - bEyRFLIhJeSLpXKVWmcwW+2uCsbnrw7UBUPhSCQSRRHtAIQwHArWBar9PqbCZbeaDTq1 - Si4V50NSOHg97KUECYCgNVhstJvxVQWC4Wh9Y1NLa9tpFOEOtLW2NDXWR8PBQJWPcdM2 - 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 - Wlpmd9C00+lCEe2A00nTDntZqZWymE16naZQJZdJRADCoXqR/etWSApQNEJWkMqVBWqN - Vm8wAg2WEsqKygAHqBILUGA06LUadYFSLoWMwN4NKVLCPgpwQYghLSgLCgEGXbEeeDCa - UMQ7YAQG9MU6wKAQOJBJxHA1HAVCVnYyK8CzZJIFhUoFNKiLijQaLYp4BzSaoiI1UKBS - KZIcQLGYBOHAhwn7rz4kURDkQloAFiRSmVyuUCpVqAxxQKlUyOUyqQTyAZsQoEY4kZ0a - BLgfICuwdSNbLuSLxICDRCqVylAZ4AAEEsIpFosAA8gHLAdHg8CWjXssAAxAA+CQlAhF - vAP7oRSyFOQKjuUg+QjBsnAiJydHwOKAyjAHAIIcNh1w5oP9aoFNDEka2N8Hwf9EZYAD - e9FM/oQA/yfYX/MP+H1UxjnwNZHH30EH0AF0AB1AB9ABdAAdQAfQAXTgaAf+BYU9EtcK - ZW5kc3RyZWFtCmVuZG9iagoyMyAwIG9iagoyNzE5CmVuZG9iagoyOCAwIG9iago8PCAv - TGVuZ3RoIDI5IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRo - IDYxMiAvSGVpZ2h0IDEwNCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvQml0c1BlckNv - bXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2d7U9T2RaH - BQql7y2U03LaTutpS3taS+fYaoXitKRNESm+oDh1FIJWzVSLHY2NzaAOxlEi8Q1HghhF - xohGHSKGqDGjmX/trl3MnTt290jvyf101+8DMfvI/vDkyVq7B9hrwwYMEkACSAAJIAEk - gASQABJAAkgACSCB/wWBOgwSWD+B2hSEfev/TgMGCYgR+FuVejBnPaqt+QV7ymSNGCSw - XgIyGThDdPuqZmXD1vRqksub16LAIIFqBD47Ipc3gY0g2tcs+2xYY2MT6KVQKlUqlVqt - 1mCQQHUCYAh4olQqmpuJZ1+xjCjWAB0SBAO91BqtVqfXGzBIQJyAXq/TajVgmhI0W7Os - WsMsKwY1jBim0eoMhpZWo7GtjWFMGCRQjQDDtLUZja0tBoNOqyGWQS2DhllFMlLFSBEj - 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 - WX1DQ4OMiIZBAusjAHo1kBImXsM+n8pIMSt7Rr4BAt+KQQLVCaxpUv4K5vzbonX9A74B - gwTWS2BdTuF/QgJIAAkgASSABJAAEkACSAAJIAEkUDuBfwFWtww3CmVuZHN0cmVhbQpl - bmRvYmoKMjkgMCBvYmoKMzAwNwplbmRvYmoKMzEgMCBvYmoKPDwgL0xlbmd0aCAzMiAw - IFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCA1NDIgL0hlaWdo - dCAxMDQgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0JpdHNQZXJDb21wb25lbnQgOCAv - RmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHtnetPU+kWxrkUer9B2S29TMtu - ueyW0tlSLFCclrQBykXkOnUUghTNwICMxkYyqINhlEgUwYFwiSJDRAMOAUOUGDXzr521 - CzlzhLKZnk/nvHs9H4zJWz+sZ/1ca+1e3pWWhkIH0AF0AB1AB9ABdAAdQAfQAXTg/9GB - dJRAHEiJTvAk429looh14O8sZ0DS/wEkB2SAHyJRFkoQDohEkG4OlNMASbBxAEa2WCw5 - kBRFpAOH6RWLs+E/ASByCh+HbGRlZQMYUplMLpcrFAolilAHILmQYplMKpFwhPDzwcGR - Cf0E0AAwFEqVSq3RaFEEO6DRqFUqJTAiA0AO+DihvSTggLrBsaFUqbXanFydLi+PovQo - Ih2gqLw8nS43R6tVq5QcH1A/oL0kx4OrHFzh4NjQABmU3pBvNJrMZguKSAfMZpPRmG/Q - U0CIJsEHlA8OjyQPLwk4YOCQK4ANQAO4sFhttgLajiLUAbrAZrNagBEABPhQyLnxIzke - 6dzMIZZC4dDmUgYjkEHbC4uKSxjG6XShiHPA6WSYkuKiQjsNhBgNVK4WyodUzM2mx4sH - lA6AQyJXqrU6vdFiox1FjLPU7fGwLHsGRaADkFiPx13qZIoctM1i1Ou0aiVUjyxRkt4C - pQMGUlkCDpOVLixxuT1secVZX1U1yI8izAEuq1W+sxXlrMftKimkraYEHjIYTZMUj3Qo - HRKZQqXVGUxWe7GrjPX6qvznAsHaUCgURhHnAKS1Nhg456/yedkyV7HdajLotCqFTALF - 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 - YQ5wWa3yna0oZz1uV0khzbUVrRr6SrLSAbUDiodYIk/gYbTYaEcR4yx1ezwsy55BEegA - JNbjcZc6mSIHbbMYE3DIJWIoHUfHDviSKcylgIdUrlRpcymD0WK10fbCouIShnE6XSji - HHA6GaakuKjQTtusFqOBytWqlHIpwHFsJuW+gQzFIzMrG6qHQqXJ0VF6o8kMhNgKaDuK - UAfoAhuQYTYZ9ZQuR6NSQOXg+kqS0nGIBzQXGZQPTU4uAGLINwIjZguKSAfMwIUx3wBo - 5AIbSrkM2spJcKSlJ6pHVrYkwYdaqwVCdHl5FKVHEekAReXl6YAMrVadYAMG0gQcR94K - O/xpSwIPURaUD+BDrlCqVGqNRosi2AGNRq1SKRVyqBtc4YCZIyM9ORzQW6B6cLMpN35I - pDJARK5QKJQoQh2A5EKKZTIpoAF1g2PjZDi40fSADwAECAFEEpKiiHTgML1ijows0als - JB5dOD4yMjMzRRwiKAE4AGBkcmWDt24cTh9cAUkQwr0eBP8SRagDBxlO/AlJ/zcA/+Qv - 8HqUIBz4JzTga9ABdAAdQAfQAXQAHUAH0AF0AB3433PgX6y7qcQKZW5kc3RyZWFtCmVu - ZG9iagozMiAwIG9iagoyNzYyCmVuZG9iagoyNSAwIG9iago8PCAvTGVuZ3RoIDI2IDAg - UiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDQ3OCAvSGVpZ2h0 - IDEwNCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvQml0c1BlckNvbXBvbmVudCA4IC9G - aWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2d/U8T2RfGeSn0fToD7bRM222Z - Uui0lO4IWAFdIBAUAV9Q3LorBK2ahQW7GhubRV0Mq8RGEVwIL1FkiWjAJWCIErOa/de+ - Z4rZXaEdvt2f7iTn+cFoLiaH58Nz723pnJOTg0IH0AF0AB1AB9ABdAAdQAfQgf/mQC5K - IQ5kxRe+p7x/lI8i1oF/KOUBtP8D8g5Z+H5UqgKUIhxQqQCXBHo/wCm2O2AL1WrNjrQo - Ih34jEetLoQfQkC8D9/PbAsKCgGsVqfT6/UGg8GIItQBgAOIdDqtRiMRlucrwc2H/RjQ - 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 - KjV28CWuS69cQdl18MXu28Q12JYtKLvu29g5n8Du+HIlZdM5Px+nXhA42UKupGymXkjz - iHBiDYGDaTKWlNXEGpw2ReBEKbmSspg2hZPiiBsFt09B2UyKwymPxI1x3Keg7KY84oRW - IsewyhSVzYRWaTA6TlcmcIpyppKymK6cg5PRiZt9Ll9QNpPRga4UXp3RJM1Gd/FeXyAY - EqtrD4br6kENKMIckKjUhQ/WVouhYMDn5aXB2YwJJmcX7h2dnQN081QFao0+hZdzuvmy - csFfGQyFRFE8gCLQAQATCgUr/UJ5Ge92cim4eo26QJW3e7gyfMgKwgt4tXojxRSzNs7p - cvMeb3mFTxD8/gCKOAf8fkHwVZR7Pbzb5eRsbDFDGfUwN1u1Z+q99Ak6CC/szZBeA0UX - mVkrZ3cAYXcp70ER6gBf6gayDjtnZc1FNGWA5Er7cprofsYLm7MO4ksXFQNgWwkHjB1O - FJEOOIArV2IDtMXA1qjXwbacCW5Obiq9cLVK8TUxDBA2Wywsa0UR6QDLWixmIMswphRb - uFCl4H4x8eLvDzan8KoKIL7AV28wUpSJphkUwQ7QtImijAY95FYKLpy5ebnp4cLeDOmV - 7lbS8avR6gCx3mAwGFGEOgBwAJFOpwW0kFuJbWa40tVqhy8ABsKAOCUtikgHPuNRS2QL - VPuyTV2dJb55+fn5KgkxSgEOANh8Kbayuf3X+ZsiLH09CP4nilAHdgil/szNeN7+zfWL - v8DXoxThwBfY8B/oADqADqAD6AA6gA6gA+gAOpCFA/8DclEtHwplbmRzdHJlYW0KZW5k - b2JqCjI2IDAgb2JqCjI1NTgKZW5kb2JqCjM0IDAgb2JqCjw8IC9MZW5ndGggMzUgMCBS - IC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggNTMyIC9IZWlnaHQg - MTA0IC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9CaXRzUGVyQ29tcG9uZW50IDggL0Zp - bHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7Z3rT1PpFsZBCqX3Fnqjl2nZbaG7 - pXS2LZZSmLZpwx1REKbOCEGrZmBARmMjGdTBMEokiuBAuESRIaIBh4AhSoya86+dtQvn - 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 - kC48a6HuVQ+qfWqL2gpNPaa2q21qF9+OqgPlHcOclYkLrNtl9Sn2YGOa3spJV2aL4N/C - L4b/pV5hC9c0NPkPTbi5jGkJ3xHcNnCHlP/DX7MDDd4KZW5kc3RyZWFtCmVuZG9iagoz - NyAwIG9iago3OTIKZW5kb2JqCjcgMCBvYmoKWyAvSUNDQmFzZWQgMzYgMCBSIF0KZW5k - b2JqCjM4IDAgb2JqCjw8IC9MZW5ndGggMzkgMCBSIC9OIDMgL0FsdGVybmF0ZSAvRGV2 - aWNlUkdCIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae1XiTvU2xs/YwnZ - 953JPoylsSY72UNIlqwzjG0GM3bZomyhRIgsIZHsW0KSkq0ikiSUJFfRvT9Kda97ht99 - +j2/5/YfdL7Pe87nvO857znfed/n+3kHAFacvo2NJQ0AgEAMJdmaGCAdnZyRdDOAHtAC - Btize2LJwZQ1cMlP2tYzgKCYnqJN7I8a3DcdqHu3Sc2SPdrIp7lelPyTTf+oWXDeZCwA - CDRUeJDg4QBQcUHMhd/DMhTstYe1KJhkb2sI19hAYcLvYpqTFOy1i/f5UnBEaHAoAPRQ - ABc2mETBxRCf9QrY1adS9OFYPNQzSACwjwPr64kDgFUD6tE4AhFixDmIbXEEHAUvQIwh - BIbBe+42ytsyeROP28HRCIoQMAVhwBtEARtgC6wBEhiCIBAIhQSxJZwZwVEG9mpAFSIT - gAEKUJBAHyhBpAQf1E/8q+36dwTy0LMfCIWnIIEZIAIs3EfxGbH7KIBIeNaeXQHaggAB - oGBM//3OPLs+/+2OSgBQ4g/tsBH5ATCg/HY8P3TOvQBkwpgIon/o5L8DoOQFQMM7bBgp - fG8v4p+BGtABRsAO+OBtUUAFvrEVcIX3TwC5oAb0gefgdwQzQhZhhvBDZCAaEJOIb1QS - VNZUMVQ1VDPU+6m1qUnUNdSvaYRonGjyaaZp+Wldaa/Sru5T3he3b4ROgC6Arpeek96f - /h6DMEM0w8z+Q/uLGRGMeMYnTJpM1cw8zGeZt1mILG9Z3Vhn2BzYptgd2Gc43DiWOYM4 - v3GlcfNz1/Lo8kzxEvjo+Sr5DfmXBFIE0YKTQnHCKOFpkRRRTdGPyKoDbmL8YtPilyQc - JYUk30jdkA6XMURxoJZkO+Sy0D7yegrCCt8VXyndPViNOa8crYJXdVAzVdfSwByS1ZQ8 - LKZ1QFtcR1pXQU9NX9/A2tDdKOTIGeNikzbTcbN1C1ZLzNETVvHWNTZTtjR2qva+x0sc - ph3Znaycs1yeuHK5ubhXemx46WCzca991PHZvu/9jQOqCHTEgKCJkMOk6lDusDPhXyKJ - UcsxHqfm4lzj5xOxp1eTyWd2UrLSRNObz5lmLmafusCfcyv35CVEfk2hXREobijxLOMu - H604W2VQjbjeX3umzrKeu2Ghqb4lvs22Q+YW6Jrt7uwt6Ivp9xgwfYB5iBxmHUWMbT3+ - OL7y9O3U0vTyzOrsp7lvC/SveZdklrVX7FcJa2kfr28M//5xk/uzzrb/t8I/h3d2fuXC - r1z4lQu/vgv//134wRtbU/+tG+R+6EA0JI44KL4/4S5/aBPa5ddgyLcUzsMDX8iLFC7E - QoZBgv/lSjScY3b59SBk0D2kvsuc+pCfA6GVwqp7Hsi7M29AhhxLAuGwx8GVYK9O2KMz - QI2A5QWsCAhUMzTGtM10ovQZDF8YcUzjLNqstew8HEmc69wneTx58XyB/CSBCMFYodPC - qSKZoheRhQdKxCrFayQaJC9JxUp7y1iilGUF5ajk3qPH5TsVShVTlIgHj2O0laVU2FS+ - qr5RG1Pv0Cg7lK5JPuyqZaKtpCOgS6P7QW9N/zeD94YrRu+OvDVeMnltumi2YP7KYs7y - 5dEXVjPWqzZfbRnthOzRx7UdrE64OQY5JTifdyk/2eza7/bUfcFjzXMbS4vj8BbxkcOr - +xr52fi7BvgHhhOSiNlBVcG3Q8ZJy+TvYRzhMhE6kXZRftHxMXmnbsT2xT2Ln0h4nDhy - ejDpXnLfme6znSmtqY1pN9NrMqrOlWeWZJ3O9jlvfkExhzPn88WXuX15lZfS8gkFxwpV - Lwtc/qvoZXHXlfySsFK7MqVylvK1q8MV1ZVnqrDX9KtFqr9fn6vpqb1yI67O7aZuvWj9 - TsNCY19TeXNii1erQZtYO1X7YkdfZ+mtuC7X21rdgt1fe2Z6O+/k94XfdehXvUd3b2ag - 7n7cA5tB8cHNh4NDhcOBIzqjbKNvxtoepTw2ekL15M74qYlDE1tPWyaDp+SnVp9VT3s/ - F3s+P1P8wnoWMdv6Ej8nMDf2KmEeM/92oWDRYvGv141vsEs8S71vfZaZl9veua7QrNS9 - t3//fbXiN4vf/li7/MHgwyqMvwKVC3UaTQftEh0HvR4DYX8R4xDTFosEqy1bAvtNjlRO - LJcOrC3+w/OIt4Yvmd9dQFOQW3BDaES4SiRBVFC0HXkMuXYgRUxMrEfcUfwPiSxJlOSA - lLvUV+k8GQOZDdQVWQvZL3LX0HbyCPl6BRdFBsV2JdxB9oN3MCRlSeXnKhmqOqq/q1Wp - O2owavQeCtGU0Hx+OENLR5tGe0gnW/e4nqDeon61QaAhxvCLUe+RZGMzE1aTKdNGs3Rz - bwtdSwHLzaOPrWqtk23cjx2y5bJdtxuyrzye6RBxwsPRzEnZWchln8v6yRmYM3XueR5x - nr5ex7AoHAI3493ok4r38NXwY/V7538nID8wiGBMFCFuBfUHZ4U4kSRJn8g9oWlh9uHI - 8LWIzsjkKOtoweh3MUOn6mKz4oLj7RJUE3kTv55+mdSbXH4m6ax3immqbOp8Wl66eQbI - aDsXkInMfJaVka2fvXW+7oJnDm/O6MWMXPM8+rzBS2fzjQqoC/oLEy7rwozqLo65onnl - S0lLKaFMumyxvPiqQwVbxTDMKt2q7Wst1cTrMtdf16TXKtfO3kiqk6ubvHmqXqJ+rCGs - UbjxfhOxmae5tyWglbd1oC24Xbh9qCO8U6zz8a2YLpmuyduJ3fLdL3oyerV71++U9dne - pb7b1u9zj+/e0EDMffT9Vw+yB/Vh/LWoIqlbaTb2oel86SsZFhiFmByZc1mesDGxm3Ik - c+K5zLjRPCw8n3if8rXzFwjECLoJ6QmLi9CKrIgOIyMPSB14KpYorij+UiJdUkNyWeqi - tL70ukwxyhz1Rfa6nCOaHn1L3k+BX2FIMUoJpfTiYDpGE7OqfFnFXJVFdVwtD8ZdSGP+ - UIWmz2HZwx+0mrRDddR1vun26hXohxhYGEoY/mU0faTJON0EZ6ptxmu2YT5sUWEZe5Rs - 5WftYeNw7KitoZ2mvdJxaQfhE5yO+52A02fnDy6zJx+6trtVul/wiPckeDljTXFq3uI+ - 7D47+DXfF34T/iMBA4HdhDZifdC14NKQAtJ5clro6bDocHJEYGRgFCGaGBN0Kig2OC4k - npRASiSfDk0KTYbF6dmIFNdUwzRUOmv6ZsbsubuZ1VmZ2eTzThd0cyQvMl78lDuV13Wp - JD+pAF9ocVmpiKtou3juSn/JtdL0sqByu6smFZqV8lXIa1zVdNVfr3+oWaydvDFYd/tm - fX15Q25jYVNpc2VLTWt9W0t7Z0dPZ/+twa6x2xPd0z0vexfvfL/L2698z2rA737yg9LB - 2w+fDX0aYRqVHjN85PY46knReM/E/CRiSvyZ8bTv8/SZuhePZjfmOF6pzDssRL7OWapb - frCysPr1A9e64iezP7CbsZ/zt5u+jfz5dmcHALKPMmaXERDM2wDQLUFSgMTABP8fbh7Y - 2dnZghnivrPzJzdACIX/Ddo0yhkKZW5kc3RyZWFtCmVuZG9iagozOSAwIG9iagoyNjM0 - CmVuZG9iagoyNyAwIG9iagpbIC9JQ0NCYXNlZCAzOCAwIFIgXQplbmRvYmoKNDAgMCBv - YmoKPDwgL0xlbmd0aCA0MSAwIFIgL04gMyAvQWx0ZXJuYXRlIC9EZXZpY2VSR0IgL0Zp - bHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7VeJO9TbGz9jCdn3nck+jKWxJjvZ - Q0iWrDOMbQYzdtmibKFEiCwhkexbQpKSrSKSJJQkV9G9P0p1r3uG3336Pb/n9h90vs97 - zue87znvOd953+f7eQcAVpy+jY0lDQCAQAwl2ZoYIB2dnJF0M4Ae0AIG2LN7YsnBlDVw - yU/a1jOAoJieok3sjxrcNx2oe7dJzZI92sinuV6U/JNN/6hZcN5kLAAINFR4kODhAFBx - QcyF38MyFOy1h7UomGRvawjX2EBhwu9impMU7LWL9/lScERocCgA9FAAFzaYRMHFEJ/1 - CtjVp1L04Vg81DNIALCPA+vriQOAVQPq0TgCEWLEOYhtcQQcBS9AjCEEhsF77jbK2zJ5 - E4/bwdEIihAwBWHAG0QBG2ALrAESGIIgEAiFBLElnBnBUQb2akAVIhOAAQpQkEAfKEGk - BB/UT/yr7fp3BPLQsx8IhacggRkgAizcR/EZsfsogEh41p5dAdqCAAGgYEz//c48uz7/ - 7Y5KAFDiD+2wEfkBMKD8djw/dM69AGTCmAiif+jkvwOg5AVAwztsGCl8by/in4Ea0AFG - wA744G1RQAW+sRVwhfdPALmgBvSB5+B3BDNCFmGG8ENkIBoQk4hvVBJU1lQxVDVUM9T7 - qbWpSdQ11K9phGicaPJppmn5aV1pr9Ku7lPeF7dvhE6ALoCul56T3p/+HoMwQzTDzP5D - +4sZEYx4xidMmkzVzDzMZ5m3WYgsb1ndWGfYHNim2B3YZzjcOJY5gzi/caVx83PX8ujy - TPES+Oj5KvkN+ZcEUgTRgpNCccIo4WmRFFFN0Y/IqgNuYvxi0+KXJBwlhSTfSN2QDpcx - RHGglmQ75LLQPvJ6CsIK3xVfKd09WI05rxytgld1UDNV19LAHJLVlDwspnVAW1xHWldB - T01f38Da0N0o5MgZ42KTNtNxs3ULVkvM0RNW8dY1NlO2NHaq9r7HSxymHdmdrJyzXJ64 - crm5uFd6bHjpYLNxr33U8dm+7/2NA6oIdMSAoImQw6TqUO6wM+FfIolRyzEep+biXOPn - E7GnV5PJZ3ZSstJE05vPmWYuZp+6wJ9zK/fkJUR+TaFdEShuKPEs4y4frThbZVCNuN5f - e6bOsp67YaGpviW+zbZD5hbomu3u7C3oi+n3GDB9gHmIHGYdRYxtPf44vvL07dTS9PLM - 6uynuW8L9K95l2SWtVfsVwlraR+vbwz//nGT+7POtv+3wj+Hd3Z+5cKvXPiVC7++C/// - XfjBG1tT/60b5H7oQDQkjjgovj/hLn9oE9rl12DItxTOwwNfyIsULsRChkGC/+VKNJxj - dvn1IGTQPaS+y5z6kJ8DoZXCqnseyLszb0CGHEsC4bDHwZVgr07YozNAjYDlBawICFQz - NMa0zXSi9BkMXxhxTOMs2qy17DwcSZzr3Cd5PHnxfIH8JIEIwVih08KpIpmiF5GFB0rE - KsVrJBokL0nFSnvLWKKUZQXlqOTeo8flOxVKFVOUiAePY7SVpVTYVL6qvlEbU+/QKDuU - rkk+7Kploq2kI6BLo/tBb03/N4P3hitG7468NV4yeW26aLZg/spizvLl0RdWM9arNl9t - Ge2E7NHHtR2sTrg5BjklOJ93KT/Z7Nrv9tR9wWPNcxtLi+PwFvGRw6v7GvnZ+LsG+AeG - E5KI2UFVwbdDxknL5O9hHOEyETqRdlF+0fExeaduxPbFPYufSHicOHJ6MOlect+Z7rOd - Ka2pjWk302syqs6VZ5Zknc72OW9+QTGHM+fzxZe5fXmVl9LyCQXHClUvC1z+q+hlcdeV - /JKwUrsypXKW8rWrwxXVlWeqsNf0q0Wqv1+fq+mpvXIjrs7tpm69aP1Ow0JjX1N5c2KL - V6tBm1g7VftiR19n6a24LtfbWt2C3V97Zno77+T3hd916Fe9R3dvZqDuftwDm0Hxwc2H - g0OFw4EjOqNso2/G2h6lPDZ6QvXkzvipiUMTW09bJoOn5KdWn1VPez8Xez4/U/zCehYx - 2/oSPycwN/YqYR4z/3ahYNFi8a/XjW+wSzxLvW99lpmX2965rtCs1L23f/99teI3i9/+ - WLv8weDDKoy/ApULdRpNB+0SHQe9HgNhfxHjENMWiwSrLVsC+02OVE4slw6sLf7D84i3 - hi+Z311AU5BbcENoRLhKJEFUULQdeQy5diBFTEysR9xR/A+JLEmU5ICUu9RX6TwZA5kN - 1BVZC9kvctfQdvII+XoFF0UGxXYl3EH2g3cwJGVJ5ecqGao6qr+rVak7ajBq9B4K0ZTQ - fH44Q0tHm0Z7SCdb97ieoN6ifrVBoCHG8ItR75FkYzMTVpMp00azdHNvC11LAcvNo4+t - aq2TbdyPHbLlsl23G7KvPJ7pEHHCw9HMSdlZyGWfy/rJGZgzde55HnGevl7HsCgcAjfj - 3eiTivfw1fBj9XvnfycgPzCIYEwUIW4F9QdnhTiRJEmfyD2haWH24cjwtYjOyOQo62jB - 6HcxQ6fqYrPiguPtElQTeRO/nn6Z1JtcfibprHeKaaps6nxaXrp5BshoOxeQicx8lpWR - rZ+9db7ugmcOb87oxYxc8zz6vMFLZ/ONCqgL+gsTLuvCjOoujrmieeVLSUspoUy6bLG8 - +KpDBVvFMMwq3artay3VxOsy11/XpNcq187eSKqTq5u8eapeon6sIaxRuPF+E7GZp7m3 - JaCVt3WgLbhduH2oI7xTrPPxrZguma7J24nd8t0vejJ6tXvX75T12d6lvtvW73OP797Q - QMx99P1XD7IH9WH8tagiqVtpNvah6XzpKxkWGIWYHJlzWZ6wMbGbciRz4rnMuNE8LDyf - eJ/ytfMXCMQIugnpCYuL0IqsiA4jIw9IHXgqliiuKP5SIl1SQ3JZ6qK0vvS6TDHKHPVF - 9rqcI5oefUveT4FfYUgxSgml9OJgOkYTs6p8WcVclUV1XC0Pxl1IY/5QhabPYdnDH7Sa - tEN11HW+6fbqFeiHGFgYShj+ZTR9pMk43QRnqm3Ga7ZhPmxRYRl7lGzlZ+1h43DsqK2h - naa90nFpB+ETnI77nYDTZ+cPLrMnH7q2u1W6X/CI9yR4OWNNcWre4j7sPjv4Nd8XfhP+ - IwEDgd2ENmJ90LXg0pAC0nlyWujpsOhwckRgZGAUIZoYE3QqKDY4LiSelEBKJJ8OTQpN - hsXp2YgU11TDNFQ6a/pmxuy5u5nVWZnZ5PNOF3RzJC8yXvyUO5XXdakkP6kAX2hxWamI - q2i7eO5Kf8m10vSyoHK7qyYVmpXyVchrXNV01V+vf6hZrJ28MVh3+2Z9fXlDbmNhU2lz - ZUtNa31bS3tnR09n/63BrrHbE93TPS97F+98v8vbr3zPasDvfvKD0sHbD58NfRphGpUe - M3zk9jjqSdF4z8T8JGJK/JnxtO/z9Jm6F49mN+Y4XqnMOyxEvs5Zqlt+sLKw+vUD17ri - J7M/sJuxn/O3m76N/Pl2ZwcAso8yZpcREMzbANAtQVKAxMAE/x9uHtjZ2dmCGeK+s/Mn - N0AIhf8N2jTKGQplbmRzdHJlYW0KZW5kb2JqCjQxIDAgb2JqCjI2MzQKZW5kb2JqCjI0 - IDAgb2JqClsgL0lDQ0Jhc2VkIDQwIDAgUiBdCmVuZG9iago0MiAwIG9iago8PCAvTGVu - Z3RoIDQzIDAgUiAvTiAzIC9BbHRlcm5hdGUgL0RldmljZVJHQiAvRmlsdGVyIC9GbGF0 - ZURlY29kZSA+PgpzdHJlYW0KeAHtV4k71NsbP2MJ2fedyT6MpbEmO9lDSJasM4xtBjN2 - 2aJsoUSILCGR7FtCkpKtIpIklCRX0b0/SnWve4bfffo9v+f2H3S+z3vO57zvOe8533nf - 5/t5BwBWnL6NjSUNAIBADCXZmhggHZ2ckXQzgB7QAgbYs3tiycGUNXDJT9rWM4CgmJ6i - TeyPGtw3Hah7t0nNkj3ayKe5XpT8k03/qFlw3mQsAAg0VHiQ4OEAUHFBzIXfwzIU7LWH - tSiYZG9rCNfYQGHC72KakxTstYv3+VJwRGhwKAD0UAAXNphEwcUQn/UK2NWnUvThWDzU - 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 - qu1rLdXE6zLXX9ek1yrXzt5IqpOrm7x5ql6ifqwhrFG48X4TsZmnubcloJW3daAtuF24 - fagjvFOs8/GtmC6Zrsnbid3y3S96Mnq1e9fvlPXZ3qW+29bvc4/v3tBAzH30/VcPsgf1 - Yfy1qCKpW2k29qHpfOkrGRYYhZgcmXNZnrAxsZtyJHPiucy40TwsPJ94n/K18xcIxAi6 - CekJi4vQiqyIDiMjD0gdeCqWKK4o/lIiXVJDclnqorS+9LpMMcoc9UX2upwjmh59S95P - gV9hSDFKCaX04mA6RhOzqnxZxVyVRXVcLQ/GXUhj/lCFps9h2cMftJq0Q3XUdb7p9uoV - 6IcYWBhKGP5lNH2kyTjdBGeqbcZrtmE+bFFhGXuUbOVn7WHjcOyoraGdpr3ScWkH4ROc - jvudgNNn5w8usycfura7Vbpf8Ij3JHg5Y01xat7iPuw+O/g13xd+E/4jAQOB3YQ2Yn3Q - teDSkALSeXJa6Omw6HByRGBkYBQhmhgTdCooNjguJJ6UQEoknw5NCk2GxenZiBTXVMM0 - VDpr+mbG7Lm7mdVZmdnk804XdHMkLzJe/JQ7ldd1qSQ/qQBfaHFZqYiraLt47kp/ybXS - 9LKgcrurJhWalfJVyGtc1XTVX69/qFmsnbwxWHf7Zn19eUNuY2FTaXNlS01rfVtLe2dH - T2f/rcGusdsT3dM9L3sX73y/y9uvfM9qwO9+8oPSwdsPnw19GmEalR4zfOT2OOpJ0XjP - xPwkYkr8mfG07/P0mboXj2Y35jheqcw7LES+zlmqW36wsrD69QPXuuInsz+wm7Gf87eb - vo38+XZnBwCyjzJmlxEQzNsA0C1BUoDEwAT/H24e2NnZ2YIZ4r6z8yc3QAiF/w3aNMoZ - CmVuZHN0cmVhbQplbmRvYmoKNDMgMCBvYmoKMjYzNAplbmRvYmoKMjEgMCBvYmoKWyAv - SUNDQmFzZWQgNDIgMCBSIF0KZW5kb2JqCjQ0IDAgb2JqCjw8IC9MZW5ndGggNDUgMCBS - IC9OIDEgL0FsdGVybmF0ZSAvRGV2aWNlR3JheSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+ - PgpzdHJlYW0KeAGFUk9IFFEc/s02EoSIQYV4iHcKCZUprKyg2nZ1WZVtW5XSohhn37qj - szPTm9k1xZMEXaI8dQ+iY3Ts0KGbl6LArEvXIKkgCDx16PvN7OoohG95O9/7/f1+33tE - bZ2m7zspQVRzQ5UrpaduTk2Lgx8pRR3UTlimFfjpYnGMseu5kr+719Zn0tiy3se1dvv2 - PbWVZWAh6i22txD6IZFmAB+ZnyhlgLPAHZav2D4BPFgOrBrwI6IDD5q5MNPRnHSlsi2R - U+aiKCqvYjtJrvv5uca+i7WJg/5cj2bWjr2z6qrRTNS090ShvA+uRBnPX1T2bDUUpw3j - nEhDGinyrtXfK0zHEZErEEoGUjVkuZ9qTp114HUYu126k+P49hClPslgqIm16bKZHYV9 - AHYqy+wQ8AXo8bJiD+eBe2H/W1HDk8AnYT9kh3nWrR/2F65T4HuEPTXgzhSuxfHaih9e - LQFD91QjaIxzTcTT1zlzpIjvMdQZmPdGOaYLMXeWqhM3gDthH1mqZgqxXfuu6iXuewJ3 - 0+M70Zs5C1ygHElysRXZFNA8CVgUfYuwSQ48Ps4eVeB3qJjAHLmJ3M0o9x7VERtno1KB - VnqNV8ZP47nxxfhlbBjPgH6sdtd7fP/p4xV117Y+PPmNetw5rr2dG1VhVnFlC93/xzKE - j9knOabB06FZWGvYduQPmsxMsAwoxH8FPpf6khNV3NXu7bhFEsxQPixsJbpLVG4p1Oo9 - g0qsHCvYAHZwksQsWhy4U2u6OXh32CJ6bflNV7Lrhv769nr72vIebcqoKSgTzbNEZpSx - W6Pk3Xjb/WaREZ84Or7nvYpayf5JRRA/hTlaKvIUVfRWUNbEb2cOfhu2flw/pef1Qf08 - CT2tn9Gv6KMRvgx0Sc/Cc1Efo0nwsGkh4hKgioMz1E5UY40D4inx8rRbZJH9D0AZ/WYK - ZW5kc3RyZWFtCmVuZG9iago0NSAwIG9iago3MDQKZW5kb2JqCjE4IDAgb2JqClsgL0lD - Q0Jhc2VkIDQ0IDAgUiBdCmVuZG9iago0NiAwIG9iago8PCAvTGVuZ3RoIDQ3IDAgUiAv - TiAzIC9BbHRlcm5hdGUgL0RldmljZVJHQiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+Pgpz - dHJlYW0KeAHtV4k71NsbP2MJ2fedyT6MpbEmO9lDSJasM4xtBjN22aJsoUSILCGR7FtC - kpKtIpIklCRX0b0/SnWve4bfffo9v+f2H3S+z3vO57zvOe8533nf5/t5BwBWnL6NjSUN - AIBADCXZmhggHZ2ckXQzgB7QAgbYs3tiycGUNXDJT9rWM4CgmJ6iTeyPGtw3Hah7t0nN - kj3ayKe5XpT8k03/qFlw3mQsAAg0VHiQ4OEAUHFBzIXfwzIU7LWHtSiYZG9rCNfYQGHC - 72KakxTstYv3+VJwRGhwKAD0UAAXNphEwcUQn/UK2NWnUvThWDzUM0gAsI8D6+uJA4BV - A+rROAIRYsQ5iG1xBBwFL0CMIQSGwXvuNsrbMnkTj9vB0QiKEDAFYcAbRAEbYAusARIY - giAQCIUEsSWcGcFRBvZqQBUiE4ABClCQQB8oQaQEH9RP/Kvt+ncE8tCzHwiFpyCBGSAC - LNxH8Rmx+yiASHjWnl0B2oIAAaBgTP/9zjy7Pv/tjkoAUOIP7bAR+QEwoPx2PD90zr0A - ZMKYCKJ/6OS/A6DkBUDDO2wYKXxvL+KfgRrQAUbADvjgbVFABb6xFXCF908AuaAG9IHn - 4HcEM0IWYYbwQ2QgGhCTiG9UElTWVDFUNVQz1PuptalJ1DXUr2mEaJxo8mmmaflpXWmv - 0q7uU94Xt2+EToAugK6XnpPen/4egzBDNMPM/kP7ixkRjHjGJ0yaTNXMPMxnmbdZiCxv - Wd1YZ9gc2KbYHdhnONw4ljmDOL9xpXHzc9fy6PJM8RL46Pkq+Q35lwRSBNGCk0Jxwijh - aZEUUU3Rj8iqA25i/GLT4pckHCWFJN9I3ZAOlzFEcaCWZDvkstA+8noKwgrfFV8p3T1Y - jTmvHK2CV3VQM1XX0sAcktWUPCymdUBbXEdaV0FPTV/fwNrQ3SjkyBnjYpM203GzdQtW - S8zRE1bx1jU2U7Y0dqr2vsdLHKYd2Z2snLNcnrhyubm4V3pseOlgs3GvfdTx2b7v/Y0D - qgh0xICgiZDDpOpQ7rAz4V8iiVHLMR6n5uJc4+cTsadXk8lndlKy0kTTm8+ZZi5mn7rA - n3Mr9+QlRH5NoV0RKG4o8SzjLh+tOFtlUI243l97ps6ynrthoam+Jb7NtkPmFuia7e7s - LeiL6fcYMH2AeYgcZh1FjG09/ji+8vTt1NL08szq7Ke5bwv0r3mXZJa1V+xXCWtpH69v - DP/+cZP7s862/7fCP4d3dn7lwq9c+JULv74L//9d+MEbW1P/rRvkfuhANCSOOCi+P+Eu - f2gT2uXXYMi3FM7DA1/IixQuxEKGQYL/5Uo0nGN2+fUgZNA9pL7LnPqQnwOhlcKqex7I - uzNvQIYcSwLhsMfBlWCvTtijM0CNgOUFrAgIVDM0xrTNdKL0GQxfGHFM4yzarLXsPBxJ - nOvcJ3k8efF8gfwkgQjBWKHTwqkimaIXkYUHSsQqxWskGiQvScVKe8tYopRlBeWo5N6j - x+U7FUoVU5SIB49jtJWlVNhUvqq+URtT79AoO5SuST7sqmWiraQjoEuj+0FvTf83g/eG - K0bvjrw1XjJ5bbpotmD+ymLO8uXRF1Yz1qs2X20Z7YTs0ce1HaxOuDkGOSU4n3cpP9ns - 2u/21H3BY81zG0uL4/AW8ZHDq/sa+dn4uwb4B4YTkojZQVXBt0PGScvk72Ec4TIROpF2 - UX7R8TF5p27E9sU9i59IeJw4cnow6V5y35nus50pramNaTfTazKqzpVnlmSdzvY5b35B - MYcz5/PFl7l9eZWX0vIJBccKVS8LXP6r6GVx15X8krBSuzKlcpbytavDFdWVZ6qw1/Sr - Raq/X5+r6am9ciOuzu2mbr1o/U7DQmNfU3lzYotXq0GbWDtV+2JHX2fprbgu19ta3YLd - X3tmejvv5PeF33XoV71Hd29moO5+3AObQfHBzYeDQ4XDgSM6o2yjb8baHqU8NnpC9eTO - +KmJQxNbT1smg6fkp1afVU97Pxd7Pj9T/MJ6FjHb+hI/JzA39iphHjP/dqFg0WLxr9eN - b7BLPEu9b32WmZfb3rmu0KzUvbd//3214jeL3/5Yu/zB4MMqjL8ClQt1Gk0H7RIdB70e - A2F/EeMQ0xaLBKstWwL7TY5UTiyXDqwt/sPziLeGL5nfXUBTkFtwQ2hEuEokQVRQtB15 - DLl2IEVMTKxH3FH8D4ksSZTkgJS71FfpPBkDmQ3UFVkL2S9y19B28gj5egUXRQbFdiXc - QfaDdzAkZUnl5yoZqjqqv6tVqTtqMGr0HgrRlNB8fjhDS0ebRntIJ1v3uJ6g3qJ+tUGg - Icbwi1HvkWRjMxNWkynTRrN0c28LXUsBy82jj61qrZNt3I8dsuWyXbcbsq88nukQccLD - 0cxJ2VnIZZ/L+skZmDN17nkecZ6+XsewKBwCN+Pd6JOK9/DV8GP1e+d/JyA/MIhgTBQh - bgX1B2eFOJEkSZ/IPaFpYfbhyPC1iM7I5CjraMHodzFDp+pis+KC4+0SVBN5E7+efpnU - m1x+Jumsd4ppqmzqfFpeunkGyGg7F5CJzHyWlZGtn711vu6CZw5vzujFjFzzPPq8wUtn - 840KqAv6CxMu68KM6i6OuaJ55UtJSymhTLpssbz4qkMFW8UwzCrdqu1rLdXE6zLXX9ek - 1yrXzt5IqpOrm7x5ql6ifqwhrFG48X4TsZmnubcloJW3daAtuF24fagjvFOs8/GtmC6Z - rsnbid3y3S96Mnq1e9fvlPXZ3qW+29bvc4/v3tBAzH30/VcPsgf1Yfy1qCKpW2k29qHp - fOkrGRYYhZgcmXNZnrAxsZtyJHPiucy40TwsPJ94n/K18xcIxAi6CekJi4vQiqyIDiMj - D0gdeCqWKK4o/lIiXVJDclnqorS+9LpMMcoc9UX2upwjmh59S95PgV9hSDFKCaX04mA6 - RhOzqnxZxVyVRXVcLQ/GXUhj/lCFps9h2cMftJq0Q3XUdb7p9uoV6IcYWBhKGP5lNH2k - yTjdBGeqbcZrtmE+bFFhGXuUbOVn7WHjcOyoraGdpr3ScWkH4ROcjvudgNNn5w8usycf - ura7Vbpf8Ij3JHg5Y01xat7iPuw+O/g13xd+E/4jAQOB3YQ2Yn3QteDSkALSeXJa6Omw - 6HByRGBkYBQhmhgTdCooNjguJJ6UQEoknw5NCk2GxenZiBTXVMM0VDpr+mbG7Lm7mdVZ - mdnk804XdHMkLzJe/JQ7ldd1qSQ/qQBfaHFZqYiraLt47kp/ybXS9LKgcrurJhWalfJV - yGtc1XTVX69/qFmsnbwxWHf7Zn19eUNuY2FTaXNlS01rfVtLe2dHT2f/rcGusdsT3dM9 - L3sX73y/y9uvfM9qwO9+8oPSwdsPnw19GmEalR4zfOT2OOpJ0XjPxPwkYkr8mfG07/P0 - mboXj2Y35jheqcw7LES+zlmqW36wsrD69QPXuuInsz+wm7Gf87ebvo38+XZnBwCyjzJm - lxEQzNsA0C1BUoDEwAT/H24e2NnZ2YIZ4r6z8yc3QAiF/w3aNMoZCmVuZHN0cmVhbQpl - bmRvYmoKNDcgMCBvYmoKMjYzNAplbmRvYmoKMzMgMCBvYmoKWyAvSUNDQmFzZWQgNDYg - MCBSIF0KZW5kb2JqCjQ4IDAgb2JqCjw8IC9MZW5ndGggNDkgMCBSIC9OIDMgL0FsdGVy - bmF0ZSAvRGV2aWNlUkdCIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae1X - iTvU2xs/YwnZ953JPoylsSY72UNIlqwzjG0GM3bZomyhRIgsIZHsW0KSkq0ikiSUJFfR - vT9Kda97ht99+j2/5/YfdL7Pe87nvO857znfed/n+3kHAFacvo2NJQ0AgEAMJdmaGCAd - nZyRdDOAHtACBtize2LJwZQ1cMlP2tYzgKCYnqJN7I8a3DcdqHu3Sc2SPdrIp7lelPyT - Tf+oWXDeZCwACDRUeJDg4QBQcUHMhd/DMhTstYe1KJhkb2sI19hAYcLvYpqTFOy1i/f5 - UnBEaHAoAPRQABc2mETBxRCf9QrY1adS9OFYPNQzSACwjwPr64kDgFUD6tE4AhFixDmI - bXEEHAUvQIwhBIbBe+42ytsyeROP28HRCIoQMAVhwBtEARtgC6wBEhiCIBAIhQSxJZwZ - wVEG9mpAFSITgAEKUJBAHyhBpAQf1E/8q+36dwTy0LMfCIWnIIEZIAIs3EfxGbH7KIBI - eNaeXQHaggABoGBM//3OPLs+/+2OSgBQ4g/tsBH5ATCg/HY8P3TOvQBkwpgIon/o5L8D - oOQFQMM7bBgpfG8v4p+BGtABRsAO+OBtUUAFvrEVcIX3TwC5oAb0gefgdwQzQhZhhvBD - ZCAaEJOIb1QSVNZUMVQ1VDPU+6m1qUnUNdSvaYRonGjyaaZp+Wldaa/Sru5T3he3b4RO - gC6Arpeek96f/h6DMEM0w8z+Q/uLGRGMeMYnTJpM1cw8zGeZt1mILG9Z3Vhn2BzYptgd - 2Gc43DiWOYM4v3GlcfNz1/Lo8kzxEvjo+Sr5DfmXBFIE0YKTQnHCKOFpkRRRTdGPyKoD - bmL8YtPilyQcJYUk30jdkA6XMURxoJZkO+Sy0D7yegrCCt8VXyndPViNOa8crYJXdVAz - VdfSwByS1ZQ8LKZ1QFtcR1pXQU9NX9/A2tDdKOTIGeNikzbTcbN1C1ZLzNETVvHWNTZT - tjR2qva+x0scph3Znaycs1yeuHK5ubhXemx46WCzca991PHZvu/9jQOqCHTEgKCJkMOk - 6lDusDPhXyKJUcsxHqfm4lzj5xOxp1eTyWd2UrLSRNObz5lmLmafusCfcyv35CVEfk2h - XREobijxLOMuH604W2VQjbjeX3umzrKeu2Ghqb4lvs22Q+YW6Jrt7uwt6Ivp9xgwfYB5 - iBxmHUWMbT3+OL7y9O3U0vTyzOrsp7lvC/SveZdklrVX7FcJa2kfr28M//5xk/uzzrb/ - t8I/h3d2fuXCr1z4lQu/vgv//134wRtbU/+tG+R+6EA0JI44KL4/4S5/aBPa5ddgyLcU - zsMDX8iLFC7EQoZBgv/lSjScY3b59SBk0D2kvsuc+pCfA6GVwqp7Hsi7M29AhhxLAuGw - x8GVYK9O2KMzQI2A5QWsCAhUMzTGtM10ovQZDF8YcUzjLNqstew8HEmc69wneTx58XyB - /CSBCMFYodPCqSKZoheRhQdKxCrFayQaJC9JxUp7y1iilGUF5ajk3qPH5TsVShVTlIgH - j2O0laVU2FS+qr5RG1Pv0Cg7lK5JPuyqZaKtpCOgS6P7QW9N/zeD94YrRu+OvDVeMnlt - umi2YP7KYs7y5dEXVjPWqzZfbRnthOzRx7UdrE64OQY5JTifdyk/2eza7/bUfcFjzXMb - S4vj8BbxkcOr+xr52fi7BvgHhhOSiNlBVcG3Q8ZJy+TvYRzhMhE6kXZRftHxMXmnbsT2 - xT2Ln0h4nDhyejDpXnLfme6znSmtqY1pN9NrMqrOlWeWZJ3O9jlvfkExhzPn88WXuX15 - lZfS8gkFxwpVLwtc/qvoZXHXlfySsFK7MqVylvK1q8MV1ZVnqrDX9KtFqr9fn6vpqb1y - I67O7aZuvWj9TsNCY19TeXNii1erQZtYO1X7YkdfZ+mtuC7X21rdgt1fe2Z6O+/k94Xf - dehXvUd3b2ag7n7cA5tB8cHNh4NDhcOBIzqjbKNvxtoepTw2ekL15M74qYlDE1tPWyaD - p+SnVp9VT3s/F3s+P1P8wnoWMdv6Ej8nMDf2KmEeM/92oWDRYvGv141vsEs8S71vfZaZ - l9veua7QrNS9t3//fbXiN4vf/li7/MHgwyqMvwKVC3UaTQftEh0HvR4DYX8R4xDTFosE - qy1bAvtNjlROLJcOrC3+w/OIt4Yvmd9dQFOQW3BDaES4SiRBVFC0HXkMuXYgRUxMrEfc - UfwPiSxJlOSAlLvUV+k8GQOZDdQVWQvZL3LX0HbyCPl6BRdFBsV2JdxB9oN3MCRlSeXn - KhmqOqq/q1WpO2owavQeCtGU0Hx+OENLR5tGe0gnW/e4nqDeon61QaAhxvCLUe+RZGMz - E1aTKdNGs3RzbwtdSwHLzaOPrWqtk23cjx2y5bJdtxuyrzye6RBxwsPRzEnZWchln8v6 - yRmYM3XueR5xnr5ex7AoHAI3493ok4r38NXwY/V7538nID8wiGBMFCFuBfUHZ4U4kSRJ - n8g9oWlh9uHI8LWIzsjkKOtoweh3MUOn6mKz4oLj7RJUE3kTv55+mdSbXH4m6ax3immq - bOp8Wl66eQbIaDsXkInMfJaVka2fvXW+7oJnDm/O6MWMXPM8+rzBS2fzjQqoC/oLEy7r - wozqLo65onnlS0lLKaFMumyxvPiqQwVbxTDMKt2q7Wst1cTrMtdf16TXKtfO3kiqk6ub - vHmqXqJ+rCGsUbjxfhOxmae5tyWglbd1oC24Xbh9qCO8U6zz8a2YLpmuyduJ3fLdL3oy - erV71++U9dnepb7b1u9zj+/e0EDMffT9Vw+yB/Vh/LWoIqlbaTb2oel86SsZFhiFmByZ - c1mesDGxm3Ikc+K5zLjRPCw8n3if8rXzFwjECLoJ6QmLi9CKrIgOIyMPSB14KpYorij+ - UiJdUkNyWeqitL70ukwxyhz1Rfa6nCOaHn1L3k+BX2FIMUoJpfTiYDpGE7OqfFnFXJVF - dVwtD8ZdSGP+UIWmz2HZwx+0mrRDddR1vun26hXohxhYGEoY/mU0faTJON0EZ6ptxmu2 - YT5sUWEZe5Rs5WftYeNw7KitoZ2mvdJxaQfhE5yO+52A02fnDy6zJx+6trtVul/wiPck - eDljTXFq3uI+7D47+DXfF34T/iMBA4HdhDZifdC14NKQAtJ5clro6bDocHJEYGRgFCGa - GBN0Kig2OC4knpRASiSfDk0KTYbF6dmIFNdUwzRUOmv6ZsbsubuZ1VmZ2eTzThd0cyQv - Ml78lDuV13WpJD+pAF9ocVmpiKtou3juSn/JtdL0sqByu6smFZqV8lXIa1zVdNVfr3+o - WaydvDFYd/tmfX15Q25jYVNpc2VLTWt9W0t7Z0dPZ/+twa6x2xPd0z0vexfvfL/L2698 - z2rA737yg9LB2w+fDX0aYRqVHjN85PY46knReM/E/CRiSvyZ8bTv8/SZuhePZjfmOF6p - zDssRL7OWapbfrCysPr1A9e64iezP7CbsZ/zt5u+jfz5dmcHALKPMmaXERDM2wDQLUFS - gMTABP8fbh7Y2dnZghnivrPzJzdACIX/Ddo0yhkKZW5kc3RyZWFtCmVuZG9iago0OSAw - IG9iagoyNjM0CmVuZG9iagozMCAwIG9iagpbIC9JQ0NCYXNlZCA0OCAwIFIgXQplbmRv - YmoKMyAwIG9iago8PCAvVHlwZSAvUGFnZXMgL01lZGlhQm94IFswIDAgNzU2IDU1M10g - L0NvdW50IDEgL0tpZHMgWyAyIDAgUiBdID4+CmVuZG9iago1MCAwIG9iago8PCAvVHlw - ZSAvQ2F0YWxvZyAvUGFnZXMgMyAwIFIgL1ZlcnNpb24gLzEuNCA+PgplbmRvYmoKNTEg - MCBvYmoKPDwgL0xlbmd0aCA1MiAwIFIgL0xlbmd0aDEgNzE3MiAvRmlsdGVyIC9GbGF0 - ZURlY29kZSA+PgpzdHJlYW0KeAG9WXtYlNW6f9f3fXNBUG4Kw3Vm+BiugwgooJiMOMNF - TFEUGfMygCCSGClSlhK7dJd4OVtNbWtHs4s7JXME0gG2Ru7c6a6dVrub2043szpPPtU5 - dWqHzJzf+mYk7dn1+EdPfM87613X97d+77vW960FMSIKoDYSyVLTWNVEa2gAJa9AWmta - mg2bP5+0l4hNIxKX1TUtaQz+4C9/I5JcRMMClixbXff11rzpRCNeJNIa6murFn+jX9ZN - FHYJ/bPrURAwMOIOovBo5OPrG5vvtm1UP4O8BXnLsjtqqkJygxzItyEf11h1d5N25bDv - kX8SecPyqsbahPzouchjfEppumNlM3tGqEP+K+QLmlbUNv35geUZRLqxwHcOZQwP/wsg - Na1AaqOxvhKlWPkRflSv08TrdK8qIVFB1BANRAsh8qNh5I/xhys5TN2XBqJxPwWpTlCS - qo0ipXTSE3nehVzgqXuO57LqJQpyN3q+FvPQp4eL4M6fSP20mfbQEdh5GnoSLaRH6Cxr - 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 - MlwC69SfSnRJSF6IRc4SqO+P2at/PmaJ/iSkw1t1KBktjukPxizTb491sd2d+m0xLoY+ - W73Jqhh0PaZvTN6pX5yh1E/b6RI6OvXjUV9h8ddn5xr142Iu6dMTXVqGfFrMNH1Kxt/1 - 8eiIZgYMarIE66NjtusnoCo2xpY4AdLHDrE9lML2dJqm6nuhYrpdJcm5O13s3q7ipAyT - i91jyS5O2plcnGhKnqY3JRcmJkKvOKNZp7lNM1mTqUnFBW2CxqiJ0ozUhmiDtCO0Adph - Wq1W42LPdObr1X2sg/JBS0eXVq1VudizKJT62GGl8PBxraQVtKQd6fJ8gH/mMBrpYh3d - CAxGUI6pFU3tYoexFnjRYYseoYwNRKkIQoTxj2H+SwLTCgghJ9vsUtP6sJZ8XX7IpODx - hdaf+3EoNdd+U3/+T8dinDtxF+M8FGPHtRcUT4z9WnPdNeVn0+ZVqKotSE0tnbW6q6Wp - oU65xpNttQ7c5jk3tuBata3aYDja0OS7o0xwVNfU83ukqlpnk1xrdTbIVsPRFqUfL76u - uo5Xt8jWo1Rnm115tM5Sa+1ssbTY+HVmV3XBigU32NowZGtFwb+xVcAHW8FtVSv9fmJr - Aa+u5rYWcFsLuK1qS7Vii0/etrS8YGUzohNXfbhqSyp3lsycV4kbbbvVxQ7w+79V9P+8 - rYdICmVuZHN0cmVhbQplbmRvYmoKNTIgMCBvYmoKNDM3MQplbmRvYmoKNTMgMCBvYmoK - PDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Bc2NlbnQgNzcwIC9DYXBIZWlnaHQgNzI3 - IC9EZXNjZW50IC0yMzAgL0ZsYWdzIDk2Ci9Gb250QkJveCBbLTkzMyAtNDgxIDE1NzEg - MTEzOF0gL0ZvbnROYW1lIC9YUUlGU1crSGVsdmV0aWNhLU9ibGlxdWUgL0l0YWxpY0Fu - Z2xlCi0xMiAvU3RlbVYgMCAvTWF4V2lkdGggMTUwMCAvWEhlaWdodCA1MzEgL0ZvbnRG - aWxlMiA1MSAwIFIgPj4KZW5kb2JqCjU0IDAgb2JqClsgNjY3IDAgMCAwIDAgMCAwIDAg - ODMzIDAgMCAwIDAgMCAwIDAgMCAwIDAgNjY3IDAgMCAwIDAgMCAwIDAgMCA1NTYgMCA1 - MDAKMCA1NTYgMCA1NTYgMCAyMjIgMCAwIDIyMiA4MzMgNTU2IDU1NiA1NTYgMCAwIDAg - Mjc4IDAgMCAwIDUwMCBdCmVuZG9iagoxOSAwIG9iago8PCAvVHlwZSAvRm9udCAvU3Vi - dHlwZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9YUUlGU1crSGVsdmV0aWNhLU9ibGlxdWUg - L0ZvbnREZXNjcmlwdG9yCjUzIDAgUiAvV2lkdGhzIDU0IDAgUiAvRmlyc3RDaGFyIDY5 - IC9MYXN0Q2hhciAxMjAgL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nCj4+CmVuZG9i - ago1NSAwIG9iago8PCAvTGVuZ3RoIDU2IDAgUiAvTGVuZ3RoMSA5OTcyIC9GaWx0ZXIg - L0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ab16e3iU1bX32vu9ziWTmcncM5PJZDIzmdxD - SMiQQMaQhHsMBCFBggkQCAg1YIyiwkGFIhGpQrkIPVS05RKKGUIKAxQ/ykHR1lPxitdW - j2i1T/N4Tg/aVpiZb+13Qgo+/fr5R5/OO/u+373X+q2199qXFwgAaGEdcBBeuKK9C54n - 4zHnFXRrF/Z0Zz7+xfi9AGQaALd8cdeSFYaP/uNXAHwUQK1dsnz14rJtr8wH0J0HMF7u - 7Ghf9Kf/XX4SwHMQ3y/vxAx1llSE6Y8wnd25ovu+RRUqC0AWj+l5y+9a2F4WHVuO6TZM - F69ov69LfkD9V0w/genM77Wv6Jj7wMPbMB3BdFbXXXd3000clmW9ienGrlUdXb945Hsl - AN5spO9VzCP4sJ8WRFiFYR2Mxhyq5F33uOuR4ZAH4Vs5yaSIgQQyqDBUgwbbZL8U0EEq - 6MGAcSOkgQnMSj5yJZwFvXAGcoR14OCLwA2QeBfdeyyM35b4TLgA+viKxP9wlfgGogQn - aby6Cs7C47AH+pHigxjPgfmwC14my+AkmQeD8DbJgEKUDw9RmAavkETiNVgMP8H63XAO - tsNRpCsHViAV02AL8SXux3QY4wtgfeIZyIYK+D6cgRC2ugWGEocSx7B0JtwGfXAY3/81 - 8dKjfFriucRl5HQGtrkeS15LTEv0I3f5UAONmLsetcLHvZfoBBtUInU/gh/DPvgl/JE8 - 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 - VrXe1Nemkb5W1fydvmpYY6tYXwuU977VVysrXsD6amV9tbK+FoQXKH0xCOqWNtXc3Y3a - iVfbeLWc0xSZPGNuM37B0VIbJfvZffc98H8BcaX7nAplbmRzdHJlYW0KZW5kb2JqCjU2 - IDAgb2JqCjY2ODkKZW5kb2JqCjU3IDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRv - ciAvQXNjZW50IDc3MCAvQ2FwSGVpZ2h0IDcyNyAvRGVzY2VudCAtMjMwIC9GbGFncyAz - MgovRm9udEJCb3ggWy05NTEgLTQ4MSAxNDQ1IDExMjJdIC9Gb250TmFtZSAvWFlVVFBT - K0hlbHZldGljYSAvSXRhbGljQW5nbGUgMAovU3RlbVYgOTggL01heFdpZHRoIDE1MDAg - L1N0ZW1IIDg1IC9YSGVpZ2h0IDUzMSAvRm9udEZpbGUyIDU1IDAgUiA+PgplbmRvYmoK - NTggMCBvYmoKWyA2NjcgNjExIDAgMCAwIDAgMCAwIDgzMyAwIDAgMCAwIDAgMCAwIDcy - MiA2NjcgMCAwIDAgMCAwIDAgMCAwIDAgMCA1NTYgMAo1MDAgNTU2IDU1NiAwIDU1NiA1 - NTYgMjIyIDAgMCAyMjIgODMzIDU1NiA1NTYgNTU2IDAgMzMzIDUwMCAyNzggNTU2IDAg - MCA1MDAKXQplbmRvYmoKMjAgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1Ry - dWVUeXBlIC9CYXNlRm9udCAvWFlVVFBTK0hlbHZldGljYSAvRm9udERlc2NyaXB0b3IK - NTcgMCBSIC9XaWR0aHMgNTggMCBSIC9GaXJzdENoYXIgNjkgL0xhc3RDaGFyIDEyMCAv - RW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjEgMCBvYmoKPDwgL1Rp - dGxlIChVbnRpdGxlZCkgL0F1dGhvciAoVGhvbWFzIFJpc2JlcmcpIC9DcmVhdG9yIChP - bW5pR3JhZmZsZSkgL1Byb2R1Y2VyCihNYWMgT1MgWCAxMC41LjggUXVhcnR6IFBERkNv - bnRleHQpIC9DcmVhdGlvbkRhdGUgKEQ6MjAwOTA5MTExNDQwMzFaMDAnMDAnKQovTW9k - RGF0ZSAoRDoyMDA5MDkxMTE0NDAzMVowMCcwMCcpID4+CmVuZG9iagp4cmVmCjAgNTkK - MDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDQ5MjUyIDAwMDAwIG4gCjAwMDAwMDEwNDEg - MDAwMDAgbiAKMDAwMDAzNjY3MiAwMDAwMCBuIAowMDAwMDAwMDIyIDAwMDAwIG4gCjAw - MDAwMDEwMjIgMDAwMDAgbiAKMDAwMDAwMTE0NSAwMDAwMCBuIAowMDAwMDIxNzk2IDAw - MDAwIG4gCjAwMDAwMDUyMDQgMDAwMDAgbiAKMDAwMDAwNjEzMiAwMDAwMCBuIAowMDAw - MDAxMzY3IDAwMDAwIG4gCjAwMDAwMDIyODQgMDAwMDAgbiAKMDAwMDAwMjMwNCAwMDAw - MCBuIAowMDAwMDAzMTYxIDAwMDAwIG4gCjAwMDAwMDMxODEgMDAwMDAgbiAKMDAwMDAw - NDIyMCAwMDAwMCBuIAowMDAwMDA0MjQwIDAwMDAwIG4gCjAwMDAwMDUxODQgMDAwMDAg - biAKMDAwMDAzMTA0NSAwMDAwMCBuIAowMDAwMDQxNjkwIDAwMDAwIG4gCjAwMDAwNDkw - NzcgMDAwMDAgbiAKMDAwMDAzMDE4MCAwMDAwMCBuIAowMDAwMDA2MTUxIDAwMDAwIG4g - CjAwMDAwMDkwNDQgMDAwMDAgbiAKMDAwMDAyNzM4NSAwMDAwMCBuIAowMDAwMDE1MjI0 - IDAwMDAwIG4gCjAwMDAwMTc5NTYgMDAwMDAgbiAKMDAwMDAyNDU5MCAwMDAwMCBuIAow - MDAwMDA5MDY1IDAwMDAwIG4gCjAwMDAwMTIyNDYgMDAwMDAgbiAKMDAwMDAzNjYzNSAw - MDAwMCBuIAowMDAwMDEyMjY3IDAwMDAwIG4gCjAwMDAwMTUyMDMgMDAwMDAgbiAKMDAw - MDAzMzg0MCAwMDAwMCBuIAowMDAwMDE3OTc3IDAwMDAwIG4gCjAwMDAwMjA4NjAgMDAw - MDAgbiAKMDAwMDAyMDg4MSAwMDAwMCBuIAowMDAwMDIxNzc2IDAwMDAwIG4gCjAwMDAw - MjE4MzIgMDAwMDAgbiAKMDAwMDAyNDU2OSAwMDAwMCBuIAowMDAwMDI0NjI3IDAwMDAw - IG4gCjAwMDAwMjczNjQgMDAwMDAgbiAKMDAwMDAyNzQyMiAwMDAwMCBuIAowMDAwMDMw - MTU5IDAwMDAwIG4gCjAwMDAwMzAyMTcgMDAwMDAgbiAKMDAwMDAzMTAyNSAwMDAwMCBu - IAowMDAwMDMxMDgyIDAwMDAwIG4gCjAwMDAwMzM4MTkgMDAwMDAgbiAKMDAwMDAzMzg3 - NyAwMDAwMCBuIAowMDAwMDM2NjE0IDAwMDAwIG4gCjAwMDAwMzY3NTUgMDAwMDAgbiAK - MDAwMDAzNjgxOSAwMDAwMCBuIAowMDAwMDQxMjgwIDAwMDAwIG4gCjAwMDAwNDEzMDEg - MDAwMDAgbiAKMDAwMDA0MTUzNiAwMDAwMCBuIAowMDAwMDQxODczIDAwMDAwIG4gCjAw - MDAwNDg2NTIgMDAwMDAgbiAKMDAwMDA0ODY3MyAwMDAwMCBuIAowMDAwMDQ4OTA5IDAw - MDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgNTkgL1Jvb3QgNTAgMCBSIC9JbmZvIDEgMCBS - IC9JRCBbIDxmOTA3NjFiZGExNmY3ZTJlMDkyMjA2Mjg3ZmQ4ZjAzYT4KPGY5MDc2MWJk - YTE2ZjdlMmUwOTIyMDYyODdmZDhmMDNhPiBdID4+CnN0YXJ0eHJlZgo0OTQ2MAolJUVP - RgoxIDAgb2JqCjw8L0F1dGhvciAoVGhvbWFzIFJpc2JlcmcpL0NyZWF0aW9uRGF0ZSAo - RDoyMDA5MDkxMTE0MTUwMFopL0NyZWF0b3IgKE9tbmlHcmFmZmxlIDUuMS4xKS9Nb2RE - YXRlIChEOjIwMDkwOTExMTQzODAwWikvUHJvZHVjZXIgKE1hYyBPUyBYIDEwLjUuOCBR - dWFydHogUERGQ29udGV4dCkvVGl0bGUgKFVudGl0bGVkKT4+CmVuZG9iagp4cmVmCjEg - MQowMDAwMDUwNzk4IDAwMDAwIG4gCnRyYWlsZXIKPDwvSUQgWzxmOTA3NjFiZGExNmY3 - ZTJlMDkyMjA2Mjg3ZmQ4ZjAzYT4gPGY5MDc2MWJkYTE2ZjdlMmUwOTIyMDYyODdmZDhm - MDNhPl0gL0luZm8gMSAwIFIgL1ByZXYgNDk0NjAgL1Jvb3QgNTAgMCBSIC9TaXplIDU5 - Pj4Kc3RhcnR4cmVmCjUwOTkzCiUlRU9GCg== - - QuickLookThumbnail - - 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 - AdQB+wIkAk8CewKpAtkDCgM9A3IDqQPiBBwEWQSXBNcFGQVdBaIF6gYzBn4GywcaB2sH - vggTCGoIwwkdCXoJ2Qo5CpwLAQtnC9AMOgynDRYNhg35Dm4O5Q9eD9kQVhDVEVYR2RJe - EuYTbxP7FIkVGRWqFj8W1RdtGAgYpBlDGeQahxssG9Qcfh0pHdcehx86H+4gpSFeIhki - 1yOWJFglHCXjJqsndihDKRIp5Cq3K44sZi1ALh0u/C/eMMExpzKQM3o0ZzVWNkg3PDgy - OSo6JTsiPCE9Iz4nPy5ANkFBQk9DX0RxRYVGnEe1SNFJ70sPTDJNV05/T6lQ1VIEUzVU - aFWeVtdYEVlOWo5b0F0UXltfpGDwYj5jj2TiZjdnj2jpakZrpW0Hbmtv0nE7cqd0FXWF - dvh4bnnme2B83X5df9+BY4LqhHOF/4eOiR+KsoxIjeGPfJEZkrmUXJYBl6mZU5sAnK+e - YaAVocyjhqVCpwGowqqFrEyuFa/gsa6zf7VStyi5ALrbvLi+mMB7wmDESMYyyCDKD8wB - zfbP7tHo0+XV5Nfm2erb8d374AjiF+Qo5j3oVOpt7InuqPDK8u71Ffc++Wr7mf3K//9j - dXJ2AAAAAAAAAQAAAAAAAAEAAwAHAAsAEQAYACAAKQA0AEEATgBdAG4AgACUAKkAwADY - APIBDQEqAUkBaQGLAa8B1AH7AiQCTwJ7AqkC2QMKAz0DcgOpA+IEHARZBJcE1wUZBV0F - ogXqBjMGfgbLBxoHawe+CBMIagjDCR0JegnZCjkKnAsBC2cL0Aw6DKcNFg2GDfkObg7l - D14P2RBWENURVhHZEl4S5hNvE/sUiRUZFaoWPxbVF20YCBikGUMZ5BqHGywb1Bx+HSkd - 1x6HHzof7iClIV4iGSLXI5YkWCUcJeMmqyd2KEMpEinkKrcrjixmLUAuHS78L94wwTGn - MpAzejRnNVY2SDc8ODI5KjolOyI8IT0jPic/LkA2QUFCT0NfRHFFhUacR7VI0UnvSw9M - Mk1XTn9PqVDVUgRTNVRoVZ5W11gRWU5ajlvQXRReW1+kYPBiPmOPZOJmN2ePaOlqRmul - bQdua2/ScTtyp3QVdYV2+HhueeZ7YHzdfl1/34FjguqEc4X/h46JH4qyjEiN4Y98kRmS - uZRclgGXqZlTmwCcr55hoBWhzKOGpUKnAajCqoWsTK4Vr+CxrrN/tVK3KLkAutu8uL6Y - wHvCYMRIxjLIIMoPzAHN9s/u0ejT5dXk1+bZ6tvx3fvgCOIX5CjmPehU6m3sie6o8Mry - 7vUV9z75avuZ/cr//2N1cnYAAAAAAAABAAAAAAAAAQADAAcACwARABgAIAApADQAQQBO - AF0AbgCAAJQAqQDAANgA8gENASoBSQFpAYsBrwHUAfsCJAJPAnsCqQLZAwoDPQNyA6kD - 4gQcBFkElwTXBRkFXQWiBeoGMwZ+BssHGgdrB74IEwhqCMMJHQl6CdkKOQqcCwELZwvQ - DDoMpw0WDYYN+Q5uDuUPXg/ZEFYQ1RFWEdkSXhLmE28T+xSJFRkVqhY/FtUXbRgIGKQZ - QxnkGocbLBvUHH4dKR3XHocfOh/uIKUhXiIZItcjliRYJRwl4yarJ3YoQykSKeQqtyuO - LGYtQC4dLvwv3jDBMacykDN6NGc1VjZINzw4MjkqOiU7IjwhPSM+Jz8uQDZBQUJPQ19E - cUWFRpxHtUjRSe9LD0wyTVdOf0+pUNVSBFM1VGhVnlbXWBFZTlqOW9BdFF5bX6Rg8GI+ - Y49k4mY3Z49o6WpGa6VtB25rb9JxO3KndBV1hXb4eG555ntgfN1+XX/fgWOC6oRzhf+H - jokfirKMSI3hj3yRGZK5lFyWAZepmVObAJyvnmGgFaHMo4alQqcBqMKqhaxMrhWv4LGu - s3+1UrcouQC627y4vpjAe8JgxEjGMsggyg/MAc32z+7R6NPl1eTX5tnq2/Hd++AI4hfk - KOY96FTqbeyJ7qjwyvLu9RX3Pvlq+5n9yv//WFlaIAAAAAAAAPbVAAEAAAAA0ytYWVog - AAAAAAAAAHoAAAB+AAAAaG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAagAAABwAQwBvAHAA - eQByAGkAZwBoAHQAIAAoAGMAKQAgAFgALQBSAGkAdABlACwAIAAyADAAMAAxAC0AMgAw - ADAANwAuACAAQQBsAGwAIABSAGkAZwBoAHQAcwAgAFIAZQBzAGUAcgB2AGUAZAAuAAB2 - Y2d0AAAAAAAAAAAAAwEAAAIAAAFtAtkERgWyBx8Iiwn4C2QM0Q49D6oRFhKDE+8VXBZh - F2cYbBlyGncbfRyCHYgejR+TIJkhniKkI6kkryWWJn0nZShMKTMqGysCK+ks0S24Lp8v - hzBuMVUyPTMmNBA0+jXjNs03tzigOYo6cztdPEc9MD4aPwQ/7UDsQetC6UPoROdF5Ubk - R+JI4UngSt5L3UzcTdpO2U/qUPpSC1McVCxVPVZOV15Yb1mAWpBboVyyXcJe01/gYOxh - +WMFZBJlHmYrZzdoRGlQal1ramx2bYNuj2+lcLtx0XLmc/x1EnYodz54U3lpen97lXyr - fcB+1n/SgM+By4LHg8OEwIW8hriHtIiwia2KqYuljKGNno6Cj2aQSpEvkhOS95PclMCV - pJaJl22YUZk1mhqa/pvcnLqdl551n1OgMKEOoeyiyqOnpIWlY6ZBpx6n/Kjdqb2qnat+ - rF6tP64frv+v4LDAsaGygbNitEK1IrYCtuG3wLifuX66Xbs8vBu8+r3Zvri/l8B2wVbC - NcMHw9nErMV+xlDHI8f1yMfJmcpsyz7MEMzjzbXOh89E0ALQv9F80jnS9tOz1HDVLdXq - 1qfXZdgi2N/ZnNpP2wHbtNxn3Rrdzd6A3zLf5eCY4Uvh/uKw42PkFuS+5WbmDea1513o - BOis6VTp/Oqj60vr8+ya7ULt6gAAAS4CWwOJBLcF5AcSCEAJbQqbC8kM9g4kD1IQgBGt - EogTYxQ+FRkV9BbOF6kYhBlfGjobFRvwHMsdpR6AHxsftiBRIOwhhyIiIr0jWCPzJI4l - KSXEJl8m+ieVKEIo8CmdKksq+CumLFMtAS2uLlsvCS+2MGQxETG/MnIzJTPYNIs1PjXy - NqU3WDgLOL45cTokOtg7izw+PQQ9yT6PP1VAG0DhQadCbEMyQ/hEvkWERklHD0fVSLBJ - ikplSz9MGkz1Tc9Oqk+EUF9ROVIUUu9TyVSkVY1Wd1dgWElZM1ocWwZb71zZXcJerF+V - YH5haGJRYylkAWTZZbBmiGdgaDhpD2nnar9rl2xvbUZuHm72b8JwjnFZciVy8XO9dIl1 - VHYgdux3uHiEeU96G3rne8l8rH2OfnB/U4A1gReB+oLcg76EoYWDhmWHSIgqiN+JlYpK - iwCLtYxrjSCN1o6Lj0GP9pCskWGSF5LMk4uUSpUIlceWhpdEmAOYwpmAmj+a/pu8nHud - Op34nrOfbaAnoOGhnKJWoxCjyqSFpT+l+aazp26oKKjiqYqqM6rbq4OsK6zUrXyuJK7N - r3WwHbDFsW6yFrK+s2u0F7TEtXC2HbbJt3a4IrjPuXu6KLrUu4G8LbzavYu+Pb7vv6DA - UsEDwbXCZsMYw8nEe8Usxd7Gj8dBAAABPAJ4A7QE8AYsB2gIpAngCxwMWA2UDtAQDBFI - EoQTZxRJFSwWDhbxF9MYthmYGnsbXhxAHSMeBR7oH8ogeCEmIdMigSMvI9wkiiU4JeYm - kydBJ+8onClKKfgqqCtYLAgsuS1pLhkuyS95MCkw2jGKMjoy6jOaNEo1DjXRNpU3WDgc - ON85ozpmOyo77TyxPXQ+Nz77P75AmEFxQktDJEP+RNdFsUaKR2RIPUkXSfBKykujTH1N - c05pT2BQVlFNUkNTOlQwVSdWHVcTWApZAFn3Wu1b21zIXbZepF+RYH9hbWJaY0hkNmUj - ZhFm/2fsaNpp0mrLa8RsvG21bq5vpnCfcZhykHOJdIJ1enZzd2x4bHltem57b3xvfXB+ - cX9ygHKBc4J0g3SEdYV2hneHXYhDiSmKD4r1i9uMwY2njo2Pc5BZkT+SJZMLk/GU1ZW6 - lp6Xg5hnmUuaMJsUm/mc3Z3CnqafiqBvoVOiR6M6pC2lIKYUpwen+qjtqeGq1KvHrLut - rq6hr5SwmbGfsqSzqbSutbO2uLe9uMK5x7rNu9K8173cvuG//MEXwjPDTsRpxYTGn8e7 - yNbJ8csMzCfNQ85ez3nQm9G90t/UAdUj1kbXaNiK2azaztvw3RLeNN9W4HjikuSs5sbo - 4Or67RTvL/FJ82P1ffeX+bH7y/3l//8AAHNmMzIAAAAAAAEN+QAAB+QAAAIBAAAMYwAA - 9SH////2AAABX////RUAARx2 - - ReadOnly - NO - RowAlign - 1 - RowSpacing - 36 - SheetTitle - Canvas 1 - SmartAlignmentGuidesActive - YES - SmartDistanceGuidesActive - YES - UniqueID - 1 - UseEntirePage - - VPages - 1 - WindowInfo - - CurrentSheet - 0 - ExpandedCanvases - - - name - Canvas 1 - - - Frame - {{218, 52}, {999, 826}} - ListView - - OutlineWidth - 142 - RightSidebar - - ShowRuler - - Sidebar - - SidebarWidth - 120 - VisibleRegion - {{-54, -59}, {864, 672}} - Zoom - 1 - ZoomValues - - - Canvas 1 - 1 - 1 - - - - saveQuickLookFiles - YES - - diff --git a/framework-docs/src/docs/asciidoc/images/oxm-exceptions.png b/framework-docs/src/docs/asciidoc/images/oxm-exceptions.png deleted file mode 100644 index 8515e7c4887aa443e7966f6dc865038a8eb4bb2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28027 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 A=Kufz diff --git a/framework-docs/src/docs/asciidoc/images/singleton.png b/framework-docs/src/docs/asciidoc/images/singleton.png deleted file mode 100644 index 591520ec1dcc6cad3a02b2a6a7ce0c3410fdbc71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85523 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 diff --git a/framework-docs/src/docs/asciidoc/images/spring-mvc-and-webflux-venn.png b/framework-docs/src/docs/asciidoc/images/spring-mvc-and-webflux-venn.png deleted file mode 100644 index 6e0eeab744d4fc06d5315072a9da91815a79cef0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104380 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%0D>fHS=#@hC z$ja|#`vLB_^Lk0QOcb-{GAZ9&sb8M$7Rea|f>=Qa-n+9RF~#L@#WH1d>;;xjBdKnA zdqt#6vh%FAU>i2$i~&NDf=^(sa|ryiV#5aM+KP#8552}f7nI}|mNfo7P2Kv#l4V!k)LVjca`DY5PtEl0-BIak8CQ2^V|RxffXW@~_XBSa z=*YCTSW)4pl?4E@H@=O>$slx!3KF?}N#1x3s&}s|z}*tz7%51RtfKE{&HzvckG^Bf zsBSnCi9{>_(Bd+$y636cpZ#}nRWrVR4q!3L0g$BCIjb_pv)g0=6lQc8_GQV)bPOA!vWGzsjHl;na9% zLu&+Toi02e*g_A5k5E%AtLASyAOv%QdRo+^~74I7O%{fgpAQ0PoMM z889Lz_E&C>;yPv0DaBbDG|!64C9+(zbK?VVEZZCAPDRpWNs|dS!f!3!RIS^J(>*fB z+dwNKMZyZfibNENC0 zmB5al*8TpwDo`LbDXDFuR(IyI=1q9$iUC;~uFBtk^Gjd$> z{dVPj?=1PpyYv4vdmqRW#u!CvXDr_ILt*e(37Ie<<$HGA{MynjeyS;wrbwDBNoMf5 z8Jo%xBjCJfKqj_MzzapfcyjiUx6Nz}Gi zY}*^K52Uf&v}M=KwZ#@XcO(|)JTBg8S=2P`=D!=lL>heM11^A%AHDhOZM7bkQ&ALI zR#a6(;rzcn_IyDo8sFuDJ0^BCqNiRSZYbHmxPDRsfxM6J`Pav*C5Ka0Raur5Rdc%J zr60Zg)tUlD#x`@c&rJYkRP0(CwiJR8=NtgZiUaY0KS+;~G6(<=Sh^)ElA@}LggF34 z=H_Kz&irDrE<14JE@B8r3#UDL_ov@)(^OT}9Ga$SPEY05FQPnNu{kIZ#7Y1VR8|sHRg#e8jQPc-<|r{j&^BIOl^@KBQ_u9F0HHWkd)I4A zzp5geDyuH;-@a3l77a&MuHW^|?n=AbxZsK*1CwOivg<1ph?f0v+9G7vc|mZ?w#%ym z`$}tfR0JWy296o>kLw1sb;8k35=64g_y6$&qyG8ajM){{{`I>niVYix=f11@XUMi; z0|3~Rb?DLK)BEtRr+vR_+wKQms_4}rV`#^;ET2j^E3d9zxjBDTUR5~4MqM)I|GT_@UIBk^T1njUSrU&=U@+5_@yz${)5wZ>+4EFraO>B$sVOR&L0fyS>5= zo0m+!=!!Hr5X0V7k#2tbQ(?rQ?!<&kx+GSIj7Ggf9IEfS?y28@SFn0V(WVN0NUAeZ zyz!R5FDNFCyM8g@i7}b>x#CoU35rW_M#84-Yk{m^XyEwkZ@O^Sf97wTdgFylufFBH zA-&?9s621O*I!Pb_uWri?)>=k&u8MOZpR=?fUQT{kH7Dsd%pkuD+^zmI(f(H8^)eD zEF(THQnPRQ+>bw-F~{%wU;7_d^u*S=}$W(0sue(GP407fAg~0vu5{B z2o**WFTG?WwIRK20s!B>ZvM>AMs?Bl@2TlL`PxBt!~g(Eb6;@r71RIs(?1{lRka^= z8$WVj=M2tl0OXXy?>+mcC#QWOXLO(Xk58{3+x9>wKM^Q{lAtv(Sw$kZs6Y@SOoNsd z1_m~R`Kq}D762r-6pPU~noa5;BV_4*hN9JYcUO(kGGroNDZ(qGF5rP@DDP=&~zB+Se4=rRE zEOEduXT0>�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 W{axHN!6Om?0000IBV9Nv(J7$ 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 diff --git a/framework-docs/src/docs/asciidoc/images/tx_prop_required.png b/framework-docs/src/docs/asciidoc/images/tx_prop_required.png deleted file mode 100644 index 218790aca6351fea6a1154a725271452e16d74a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40355 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�xArjG;*L9a!*%gnl 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 z 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 rsz`nQ=|eu*f8QFy;I>#NnMSV#R2DnxSW diff --git a/framework-docs/src/docs/asciidoc/index-docinfo-header.html b/framework-docs/src/docs/asciidoc/index-docinfo-header.html deleted file mode 100644 index 485f2e4e9803..000000000000 --- a/framework-docs/src/docs/asciidoc/index-docinfo-header.html +++ /dev/null @@ -1,9 +0,0 @@ -

diff --git a/framework-docs/src/docs/asciidoc/spring-framework.adocbook b/framework-docs/src/docs/asciidoc/spring-framework.adocbook deleted file mode 100644 index e020f7337c2d..000000000000 --- a/framework-docs/src/docs/asciidoc/spring-framework.adocbook +++ /dev/null @@ -1,26 +0,0 @@ -:noheader: -:toc: -:toclevels: 4 -:tabsize: 4 -include::attributes.adoc[] -= Spring Framework Documentation -Rod Johnson; Juergen Hoeller; Keith Donald; Colin Sampaleanu; Rob Harrop; Thomas Risberg; Alef Arendsen; Darren Davison; Dmitriy Kopylenko; Mark Pollack; Thierry Templier; Erwin Vervaet; Portia Tung; Ben Hale; Adrian Colyer; John Lewis; Costin Leau; Mark Fisher; Sam Brannen; Ramnivas Laddad; Arjen Poutsma; Chris Beams; Tareq Abedrabbo; Andy Clement; Dave Syer; Oliver Gierke; Rossen Stoyanchev; Phillip Webb; Rob Winch; Brian Clozel; Stephane Nicoll; Sebastien Deleuze; Jay Bryant; Mark Paluch - -NOTE: This documentation is also available in {docs-spring-framework}/reference/html/index.html[HTML] format. - -[[legal]] -== Legal - -Copyright © 2002 - 2023 VMware, Inc. All Rights Reserved. - -Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically. - -include::overview.adoc[leveloffset=+1] -include::core.adoc[leveloffset=+1] -include::testing.adoc[leveloffset=+1] -include::data-access.adoc[leveloffset=+1] -include::web.adoc[leveloffset=+1] -include::web-reactive.adoc[leveloffset=+1] -include::integration.adoc[leveloffset=+1] -include::languages.adoc[leveloffset=+1] -include::appendix.adoc[leveloffset=+1] From fe605cf708ea42d9be5525888404fcddadac892c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Basl=C3=A9?= Date: Tue, 21 Nov 2023 11:56:16 +0100 Subject: [PATCH 6/7] fixup: convert the correct JIRA issue to a gh link, keep the other one --- .../modules/ROOT/pages/integration/cache/annotations.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework-docs/modules/ROOT/pages/integration/cache/annotations.adoc b/framework-docs/modules/ROOT/pages/integration/cache/annotations.adoc index c699123e6bc6..a455ac6ef278 100644 --- a/framework-docs/modules/ROOT/pages/integration/cache/annotations.adoc +++ b/framework-docs/modules/ROOT/pages/integration/cache/annotations.adoc @@ -67,7 +67,7 @@ To provide a different default key generator, you need to implement the The default key generation strategy changed with the release of Spring 4.0. Earlier versions of Spring used a key generation strategy that, for multiple key parameters, considered only the `hashCode()` of parameters and not `equals()`. This could cause -unexpected key collisions (see https://jira.spring.io/browse/SPR-10237[SPR-10237] +unexpected key collisions (see {spring-framework-issues}/14870[spring-framework#14870] for background). The new `SimpleKeyGenerator` uses a compound key for such scenarios. If you want to keep using the previous key strategy, you can configure the deprecated From a4425b2a6cb0c6c149072c94c64b5cb38adb6fd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Basl=C3=A9?= Date: Tue, 21 Nov 2023 15:49:53 +0100 Subject: [PATCH 7/7] remove redundant attributes.adoc --- .../modules/ROOT/pages/attributes.adoc | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 framework-docs/modules/ROOT/pages/attributes.adoc diff --git a/framework-docs/modules/ROOT/pages/attributes.adoc b/framework-docs/modules/ROOT/pages/attributes.adoc deleted file mode 100644 index d5eadd684f0b..000000000000 --- a/framework-docs/modules/ROOT/pages/attributes.adoc +++ /dev/null @@ -1,20 +0,0 @@ -// Spring Portfolio -// :docs-site: https://docs.spring.io -// :docs-spring-boot: {docs-site}/spring-boot/docs/current/reference -// :docs-spring-gemfire: {docs-site}/spring-gemfire/docs/current/reference -// :docs-spring-security: {docs-site}/spring-security/reference -// spring-asciidoctor-backends Settings -:chomp: default headers packages -:fold: all -// Spring Framework -// :docs-spring-framework: {docs-site}/spring-framework/docs/{spring-version} -// :api-spring-framework: {docs-spring-framework}/javadoc-api/org/springframework -// :docs-java: {docdir}/../../main/java/org/springframework/docs -// :docs-kotlin: {docdir}/../../main/kotlin/org/springframework/docs -// :docs-resources: {docdir}/../../main/resources -// :spring-framework-main-code: {spring-framework}/tree/main -// // Third-party Links -// :docs-graalvm: https://www.graalvm.org/22.3/reference-manual -// :gh-rsocket: https://github.com/rsocket -// :gh-rsocket-extensions: {gh-rsocket}/rsocket/blob/master/Extensions -// :gh-rsocket-java: {gh-rsocket}/rsocket-java