Fix double the typo in docs

This commit is contained in:
Artem Bilan
2021-10-21 14:17:35 -04:00
parent 78366e7b00
commit 7d29cf7f02
14 changed files with 16 additions and 16 deletions

View File

@@ -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.

View File

@@ -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:

View File

@@ -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:
====

View File

@@ -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):

View File

@@ -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<String, String>` can be converted to the the `List<NameValuePair>` `format()` method argument by using the following Java Streams snippet:
As mentioned earlier, a manually built `MultiValueMap<String, String>` can be converted to the `List<NameValuePair>` `format()` method argument by using the following Java Streams snippet:
====
[source,java]

View File

@@ -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]]

View File

@@ -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.

View File

@@ -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

View File

@@ -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 <<mqtt-events>>).
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`.

View File

@@ -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.
====

View File

@@ -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 `<recipient-list-router>`, it can be configured without any `<recipient>` from the start.
In this case, the behavior of `RecipientListRouter` is the same when there is no one matching recipient for the message.

View File

@@ -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

View File

@@ -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.

View File

@@ -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.