From 7d29cf7f0204db37b17537f3fa4a882eb306217e Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Thu, 21 Oct 2021 14:17:35 -0400 Subject: [PATCH] Fix double `the` typo in docs --- src/reference/asciidoc/aggregator.adoc | 2 +- src/reference/asciidoc/channel-adapter.adoc | 2 +- src/reference/asciidoc/content-enrichment.adoc | 2 +- src/reference/asciidoc/gemfire.adoc | 2 +- src/reference/asciidoc/http.adoc | 4 ++-- src/reference/asciidoc/jdbc.adoc | 2 +- src/reference/asciidoc/jpa.adoc | 2 +- src/reference/asciidoc/mail.adoc | 2 +- src/reference/asciidoc/mqtt.adoc | 2 +- src/reference/asciidoc/polling-consumer.adoc | 2 +- src/reference/asciidoc/router.adoc | 2 +- src/reference/asciidoc/samples.adoc | 4 ++-- src/reference/asciidoc/sftp.adoc | 2 +- src/reference/asciidoc/transactions.adoc | 2 +- 14 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/reference/asciidoc/aggregator.adoc b/src/reference/asciidoc/aggregator.adoc index d81885d3e2..5d1a247428 100644 --- a/src/reference/asciidoc/aggregator.adoc +++ b/src/reference/asciidoc/aggregator.adoc @@ -888,7 +888,7 @@ The reaper is a `Runnable`. In the preceding example, the message group store's expire method is called every ten seconds. The timeout itself is 30 seconds. -NOTE: It is important to understand that the 'timeout' property of `MessageGroupStoreReaper` is an approximate value and is impacted by the the rate of the task scheduler, since this property is only checked on the next scheduled execution of the `MessageGroupStoreReaper` task. +NOTE: It is important to understand that the 'timeout' property of `MessageGroupStoreReaper` is an approximate value and is impacted by the rate of the task scheduler, since this property is only checked on the next scheduled execution of the `MessageGroupStoreReaper` task. For example, if the timeout is set for ten minutes but the `MessageGroupStoreReaper` task is scheduled to run every hour and the last execution of the `MessageGroupStoreReaper` task happened one minute before the timeout, the `MessageGroup` does not expire for the next 59 minutes. Consequently, we recommend setting the rate to be at least equal to the value of the timeout or shorter. diff --git a/src/reference/asciidoc/channel-adapter.adoc b/src/reference/asciidoc/channel-adapter.adoc index eed2c03b98..0613d44da3 100644 --- a/src/reference/asciidoc/channel-adapter.adoc +++ b/src/reference/asciidoc/channel-adapter.adoc @@ -96,7 +96,7 @@ The following example shows the configuration of two pollers: ---- ==== -In the the first configuration, the polling task is invoked once per poll, and, during each task (poll), the method (which results in the production of the message) is invoked once, based on the `max-messages-per-poll` attribute value. +In the first configuration, the polling task is invoked once per poll, and, during each task (poll), the method (which results in the production of the message) is invoked once, based on the `max-messages-per-poll` attribute value. In the second configuration, the polling task is invoked 10 times per poll or until it returns 'null', thus possibly producing ten messages per poll while each poll happens at one-second intervals. However, what happens if the configuration looks like the following example: diff --git a/src/reference/asciidoc/content-enrichment.adoc b/src/reference/asciidoc/content-enrichment.adoc index e5e4abbcd9..999e39fd6e 100644 --- a/src/reference/asciidoc/content-enrichment.adoc +++ b/src/reference/asciidoc/content-enrichment.adoc @@ -226,7 +226,7 @@ This sub-element is a convenience, and is the equivalent of specifying the follo ---- ==== -Starting with version 4.1, you can now override the registry's configured reaper delay so that the the channel mapping is retained for at least the specified time, regardless of the reaper delay. +Starting with version 4.1, you can now override the registry's configured reaper delay so that the channel mapping is retained for at least the specified time, regardless of the reaper delay. The following example shows how to do so: ==== diff --git a/src/reference/asciidoc/gemfire.adoc b/src/reference/asciidoc/gemfire.adoc index 92c86c9e42..0a3557f869 100644 --- a/src/reference/asciidoc/gemfire.adoc +++ b/src/reference/asciidoc/gemfire.adoc @@ -192,7 +192,7 @@ As described in EIP, a https://www.enterpriseintegrationpatterns.com/MessageStor This can be useful when dealing with components that have a capability to buffer messages (`QueueChannel`, `Aggregator`, `Resequencer`, and others) if reliability is a concern. In Spring Integration, the `MessageStore` strategy interface also provides the foundation for the https://www.enterpriseintegrationpatterns.com/StoreInLibrary.html[claim check] pattern, which is described in EIP as well. -Spring Integration's Gemfire module provides `GemfireMessageStore`, which is an implementation of both the the `MessageStore` strategy (mainly used by the `QueueChannel` and `ClaimCheck` patterns) and the `MessageGroupStore` strategy (mainly used by the `Aggregator` and `Resequencer` patterns). +Spring Integration's Gemfire module provides `GemfireMessageStore`, which is an implementation of both the `MessageStore` strategy (mainly used by the `QueueChannel` and `ClaimCheck` patterns) and the `MessageGroupStore` strategy (mainly used by the `Aggregator` and `Resequencer` patterns). The following example configures the cache and region by using the `spring-gemfire` namespace (not to be confused with the `spring-integration-gemfire` namespace): diff --git a/src/reference/asciidoc/http.adoc b/src/reference/asciidoc/http.adoc index 428dee79ba..e08355d2c0 100644 --- a/src/reference/asciidoc/http.adoc +++ b/src/reference/asciidoc/http.adoc @@ -372,7 +372,7 @@ The default value is `pass:[*]`. This property controls the value of the actual response's `Access-Control-Expose-Headers` header. * `method`: The HTTP request methods to allow: `GET`, `POST`, `HEAD`, `OPTIONS`, `PUT`, `PATCH`, `DELETE`, `TRACE`. Methods specified here overrides those in `supported-methods`. -* `allow-credentials`: Set to `true` if the the browser should include any cookies associated to the domain of the request or `false` if it should not. +* `allow-credentials`: Set to `true` if the browser should include any cookies associated to the domain of the request or `false` if it should not. An empty string ("") means undefined. If `true`, the pre-flight response includes the `Access-Control-Allow-Credentials=true` header. The default value is `true`. @@ -697,7 +697,7 @@ The whole `queryString` can also be presented as a `uri-variable`, as the follow In this case, you must manually provide the URL encoding. For example, you can use the `org.apache.http.client.utils.URLEncodedUtils#format()` for this purpose. -As mentioned earlier, a manually built `MultiValueMap` can be converted to the the `List` `format()` method argument by using the following Java Streams snippet: +As mentioned earlier, a manually built `MultiValueMap` can be converted to the `List` `format()` method argument by using the following Java Streams snippet: ==== [source,java] diff --git a/src/reference/asciidoc/jdbc.adoc b/src/reference/asciidoc/jdbc.adoc index 1c340c6d59..2104626051 100644 --- a/src/reference/asciidoc/jdbc.adoc +++ b/src/reference/asciidoc/jdbc.adoc @@ -392,7 +392,7 @@ Spring Integration ships with some sample scripts that can be used to initialize In the `spring-integration-jdbc` JAR file, you can find scripts in the `org.springframework.integration.jdbc` package. It provides an example create and an example drop script for a range of common database platforms. A common way to use these scripts is to reference them in a https://docs.spring.io/spring/docs/current/spring-framework-reference/html/jdbc.html#jdbc-intializing-datasource[Spring JDBC data source initializer]. -Note that the scripts are provided as samples and as specifications of the the required table and column names. +Note that the scripts are provided as samples and as specifications of the required table and column names. You may find that you need to enhance them for production use (for, example, by adding index declarations). [[jdbc-message-store-generic]] diff --git a/src/reference/asciidoc/jpa.adoc b/src/reference/asciidoc/jpa.adoc index 5279544f01..f47c2d7553 100644 --- a/src/reference/asciidoc/jpa.adoc +++ b/src/reference/asciidoc/jpa.adoc @@ -725,7 +725,7 @@ Null values returned by the iterator are ignored. It defaults to `false`. Applies only if you did not specify the `flush-size` attribute. If this attribute is set to `true`, `flush-size` is implicitly set to `1`, if no other value configured it. -<14> Set this attribute to a value greater than '0' if you want to flush the persistence context immediately after persist, merge or delete operations and do not want to rely on the the `flushMode` of the `EntityManager`. +<14> Set this attribute to a value greater than '0' if you want to flush the persistence context immediately after persist, merge or delete operations and do not want to rely on the `flushMode` of the `EntityManager`. The default value is set to `0`, which means "'no flush'". This attribute is geared towards messages with `Iterable` payloads. For instance, if `flush-size` is set to `3`, then `entityManager.flush()` is called after every third entity. diff --git a/src/reference/asciidoc/mail.adoc b/src/reference/asciidoc/mail.adoc index 5ff06f6f7d..84d061d311 100644 --- a/src/reference/asciidoc/mail.adoc +++ b/src/reference/asciidoc/mail.adoc @@ -138,7 +138,7 @@ The `close()` on the `IntegrationMessageHeaderAccessor.CLOSEABLE_RESOURCE` heade Starting with version 5.4, it is possible now to return a `MimeMessage` as is without any conversion or eager content loading. This functionality is enabled with this combination of options: no `headerMapper` provided, the `simpleContent` property is `false` and the `autoCloseFolder` property is `false`. The `MimeMessage` is present as the payload of the Spring message produced. -In this case, the only header populated is the above mentioned `IntegrationMessageHeaderAccessor.CLOSEABLE_RESOURCE` for the folder which must be closed when processing of the the `MimeMessage` is complete. +In this case, the only header populated is the above mentioned `IntegrationMessageHeaderAccessor.CLOSEABLE_RESOURCE` for the folder which must be closed when processing of the `MimeMessage` is complete. [[mail-mapping]] === Inbound Mail Message Mapping diff --git a/src/reference/asciidoc/mqtt.adoc b/src/reference/asciidoc/mqtt.adoc index efc8babdda..e250a9ef8f 100644 --- a/src/reference/asciidoc/mqtt.adoc +++ b/src/reference/asciidoc/mqtt.adoc @@ -306,7 +306,7 @@ The default is `false` (the send blocks until delivery is confirmed). <12> When `async` and `async-events` are both `true`, an `MqttMessageSentEvent` is emitted (See <>). It contains the message, the topic, the `messageId` generated by the client library, the `clientId`, and the `clientInstance` (incremented each time the client is connected). When the delivery is confirmed by the client library, an `MqttMessageDeliveredEvent` is emitted. -It contains the the `messageId`, the `clientId`, and the `clientInstance`, enabling delivery to be correlated with the send. +It contains the `messageId`, the `clientId`, and the `clientInstance`, enabling delivery to be correlated with the send. Any `ApplicationListener` or an event inbound channel adapter can received these events. Note that it is possible for the `MqttMessageDeliveredEvent` to be received before the `MqttMessageSentEvent`. The default is `false`. diff --git a/src/reference/asciidoc/polling-consumer.adoc b/src/reference/asciidoc/polling-consumer.adoc index 136b53e6d1..e11942bd88 100644 --- a/src/reference/asciidoc/polling-consumer.adoc +++ b/src/reference/asciidoc/polling-consumer.adoc @@ -167,7 +167,7 @@ You can even return a different message .Thread safety [IMPORTANT] ==== -If an advice mutates the the, you should not configure the poller with a `TaskExecutor`. +If an advice mutates the, you should not configure the poller with a `TaskExecutor`. If an advice mutates the source, such mutations are not thread safe and could cause unexpected results, especially with high frequency pollers. If you need to process poll results concurrently, consider using a downstream `ExecutorChannel` instead of adding an executor to the poller. ==== diff --git a/src/reference/asciidoc/router.adoc b/src/reference/asciidoc/router.adoc index b139cee2e2..f36b042bbf 100644 --- a/src/reference/asciidoc/router.adoc +++ b/src/reference/asciidoc/router.adoc @@ -732,7 +732,7 @@ messagingTemplate.convertAndSend(controlBus, "@'simpleRouter.handler'.addRecipie From the application start up the `simpleRouter`, has only one `channel1` recipient. But after the `addRecipient` command, `channel2` recipient is added. -It is a "`registering an interest in something that is part of the message`" use case, when we may be interested in messages from the router at some time period, so we are subscribing to the the `recipient-list-router` and, at some point, decide to unsubscribe. +It is a "`registering an interest in something that is part of the message`" use case, when we may be interested in messages from the router at some time period, so we are subscribing to the `recipient-list-router` and, at some point, decide to unsubscribe. Because of the runtime management operation for the ``, it can be configured without any `` from the start. In this case, the behavior of `RecipientListRouter` is the same when there is no one matching recipient for the message. diff --git a/src/reference/asciidoc/samples.adoc b/src/reference/asciidoc/samples.adoc index 5b571d221c..eea34bf98f 100644 --- a/src/reference/asciidoc/samples.adoc +++ b/src/reference/asciidoc/samples.adoc @@ -7,7 +7,7 @@ Samples now have a dedicated GitHub repository. Sample development also has its own lifecycle, which is not dependent on the lifecycle of the framework releases, although the repository is still tagged with each major release for compatibility reasons. The great benefit to the community is that we can now add more samples and make them available to you right away without waiting for the next release. -Having its own GitHub repository that is not tied to the the actual framework is also a great benefit. +Having its own GitHub repository that is not tied to the actual framework is also a great benefit. You now have a dedicated place to suggest samples as well as report issues with existing samples. You can also submit a sample to us as a Pull Request. If we believe your sample adds value, we would be more then glad to add it to the 'samples' repository, properly crediting you as the author. @@ -70,7 +70,7 @@ The Project Lead is Artem Bilan. ==== Code Contribution Process -For the actual code contribution process, read the the Contributor Guidelines for Spring Integration. +For the actual code contribution process, read the Contributor Guidelines for Spring Integration. They apply for the samples project as well. You can find them at https://github.com/spring-projects/spring-integration/blob/main/CONTRIBUTING.md diff --git a/src/reference/asciidoc/sftp.adoc b/src/reference/asciidoc/sftp.adoc index a7d5b69137..eb74e3fdc6 100644 --- a/src/reference/asciidoc/sftp.adoc +++ b/src/reference/asciidoc/sftp.adoc @@ -1211,7 +1211,7 @@ By default, the `rename-expression` is `headers['file_renameTo']`. This expression must not evaluate to null or an empty `String`. If necessary, any remote directories needed are created. The payload of the result message is `Boolean.TRUE`. -The the `file_remoteDirectory` header holds the original remote directory, and the `file_remoteFile` header holds the filename. +The `file_remoteDirectory` header holds the original remote directory, and the `file_remoteFile` header holds the filename. The `file_renameTo` header holds the new path. Starting with version 5.5.6, the `remoteDirectoryExpression` can be used in the `mv` command for convenience. diff --git a/src/reference/asciidoc/transactions.adoc b/src/reference/asciidoc/transactions.adoc index 66b388b8ee..3bdcfcf214 100644 --- a/src/reference/asciidoc/transactions.adoc +++ b/src/reference/asciidoc/transactions.adoc @@ -68,7 +68,7 @@ In other words, we need to expose some transaction configuration, but only enoug ==== Poller Transaction Support Spring Integration provides transactional support for pollers. -Pollers are a special type of component because, within a poller task, we can call `receive()` against a resource that is itself transactional, thus including the `receive()` call in the the boundaries of the transaction, which lets it be rolled back in case of a task failure. +Pollers are a special type of component because, within a poller task, we can call `receive()` against a resource that is itself transactional, thus including the `receive()` call in the boundaries of the transaction, which lets it be rolled back in case of a task failure. If we were to add the same support for channels, the added transactions would affect all downstream components starting with the `send()` call. That provides a rather wide scope for transaction demarcation without any strong reason, especially when Spring already provides several ways to address the transactional needs of any component downstream. However the `receive()` method being included in a transaction boundary is the "`strong reason`" for pollers.