Skip to content

Commit 997183b

Browse files
Jay Bryantartembilan
Jay Bryant
authored andcommitted
Removed the troublesome backticks
Removed the backticks that were making links not render. Fixed a few typoes, too. Integrating feedback from Artem Artem caught some errors that I had made (and that my editor, Atom, had made - grrr). I fixed them. Thanks, Artem. :) Removing duplicate content I caught that duplicate content somehow got added to preface.adoc. I removed one set of it to make that content not be duplicated. * Fix `jdbc.adoc` typos
1 parent 5c1c82e commit 997183b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+633
-610
lines changed

src/reference/asciidoc/aggregator.adoc

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ However, there are better solutions, less coupled to the API, for implementing t
9797
In general, any POJO can implement the aggregation algorithm if it provides a method that accepts a single `java.util.List` as an argument (parameterized lists are supported as well).
9898
This method is invoked for aggregating messages as follows:
9999

100-
* If the argument is a `java.util.Collection<T>`, and the parameter type T is assignable to `Message`, the whole list of messages accumulated for aggregation is sent to the aggregator.
100+
* If the argument is a `java.util.Collection<T>` and the parameter type T is assignable to `Message`, the whole list of messages accumulated for aggregation is sent to the aggregator.
101101
* If the argument is a non-parameterized `java.util.Collection` or the parameter type is not assignable to `Message`, the method receives the payloads of the accumulated messages.
102102
* If the return type is not assignable to `Message`, it is treated as the payload for a `Message` that is automatically created by the framework.
103103

@@ -142,7 +142,7 @@ public interface ReleaseStrategy {
142142
In general, any POJO can implement the completion decision logic if it provides a method that accepts a single `java.util.List` as an argument (parameterized lists are supported as well) and returns a boolean value.
143143
This method is invoked after the arrival of each new message, to decide whether the group is complete or not, as follows:
144144

145-
* If the argument is a `java.util.List<T>`, and the parameter type `T` is assignable to `Message`, the whole list of messages accumulated in the group is sent to the method.
145+
* If the argument is a `java.util.List<T>` and the parameter type `T` is assignable to `Message`, the whole list of messages accumulated in the group is sent to the method.
146146
* If the argument is a non-parametrized `java.util.List` or the parameter type is not assignable to `Message`, the method receives the payloads of the accumulated messages.
147147
* The method must return `true` if the message group is ready for aggregation or false otherwise.
148148

@@ -197,7 +197,7 @@ IMPORTANT: To facilitate discarding of late-arriving messages, the aggregator mu
197197
This can eventually cause out-of-memory conditions.
198198
To avoid such situations, you should consider configuring a `MessageGroupStoreReaper` to remove the group metadata.
199199
The expiry parameters should be set to expire groups once a point has been reach after after which late messages are not expected to arrive.
200-
For information about configuring a reaper, see "`<<reaper>>`".
200+
For information about configuring a reaper, see <<reaper>>.
201201

202202
Spring Integration provides an implementation for `ReleaseStrategy`: `SimpleSequenceSizeReleaseStrategy`.
203203
This implementation consults the `SEQUENCE_NUMBER` and `SEQUENCE_SIZE` headers of each arriving message to decide when a message group is complete and ready to be aggregated.
@@ -215,7 +215,7 @@ The 4.3 release changed the default `Collection` for messages in a `SimpleMessag
215215
This was expensive when removing individual messages from large groups (an O(n) linear scan was required).
216216
Although the hash set is generally much faster to remove, it can be expensive for large messages, because the hash has to be calculated on both inserts and removes.
217217
If you have messages that are expensive to hash, consider using some other collection type.
218-
As discussed in "`<<message-group-factory>>`", a `SimpleMessageGroupFactory` is provided so that you can select the `Collection` that best suits your needs.
218+
As discussed in <<message-group-factory>>, a `SimpleMessageGroupFactory` is provided so that you can select the `Collection` that best suits your needs.
219219
You can also provide your own factory implementation to create some other `Collection<Message<?>>`.
220220

221221
The following example shows how to configure an aggregator with the previous implementation and a `SimpleSequenceSizeReleaseStrategy`:
@@ -269,12 +269,12 @@ If you have a custom header name you would like to use for correlation, you can
269269
Changes to groups are thread safe.
270270
A `LockRegistry` is used to obtain a lock for the resolved correlation ID.
271271
A `DefaultLockRegistry` is used by default (in-memory).
272-
For synchronizing updates across servers, where a shared `MessageGroupStore` is being used, you must configure a shared lock registry.
272+
For synchronizing updates across servers where a shared `MessageGroupStore` is being used, you must configure a shared lock registry.
273273

274274
[[aggregator-java-dsl]]
275275
==== Configuring an Aggregator in Java DSL
276276

277-
See "`<<java-dsl-aggregators>>`" for how to configure an aggregator in Java DSL.
277+
See <<java-dsl-aggregators>> for how to configure an aggregator in Java DSL.
278278

279279
[[aggregator-xml]]
280280
===== Configuring an Aggregator with XML
@@ -349,7 +349,7 @@ Optional.
349349
<6> A reference to a `MessageGroupStore` used to store groups of messages under their correlation key until they are complete.
350350
Optional.
351351
By default, it is a volatile in-memory store.
352-
See "`<<message-store>>`" for more information.
352+
See <<message-store>> for more information.
353353
<7> The order of this aggregator when more than one handle is subscribed to the same `DirectChannel` (use for load-balancing purposes).
354354
Optional.
355355
<8> Indicates that expired messages should be aggregated and sent to the 'output-channel' or 'replyChannel' once their containing `MessageGroup` is expired (see https://docs.spring.io/spring-integration/api/org/springframework/integration/store/MessageGroupStore.html#expireMessageGroups-long[`MessageGroupStore.expireMessageGroups(long)`]).
@@ -407,7 +407,7 @@ Note that the actual time to expire an empty group is also affected by the reape
407407
It used to obtain a `Lock` based on the `groupId` for concurrent operations on the `MessageGroup`.
408408
By default, an internal `DefaultLockRegistry` is used.
409409
Use of a distributed `LockRegistry`, such as the `ZookeeperLockRegistry`, ensures only one instance of the aggregator can operate on a group concurrently.
410-
See "`<<redis-lock-registry>>`", "`<<gemfire-lock-registry>>`", and "`<<zk-lock-registry>>`" for more information.
410+
See <<redis-lock-registry>>, <<gemfire-lock-registry>>, and <<zk-lock-registry>> for more information.
411411
<21> A timeout (in milliseconds) to force the `MessageGroup` complete when the `ReleaseStrategy` does not release the group when the current message arrives.
412412
This attribute provides a built-in time-based release strategy for the aggregator when there is a need to emit a partial result (or discard the group) if a new message does not arrive for the `MessageGroup` within the timeout.
413413
When a new message arrives at the aggregator, any existing `ScheduledFuture<?>` for its `MessageGroup` is canceled.
@@ -417,7 +417,7 @@ Doing so effectively disables the aggregator, because every message group is imm
417417
You can, however, conditionally set it to zero (or a negative value) by using an expression.
418418
See `group-timeout-expression` for information.
419419
The action taken during the completion depends on the `ReleaseStrategy` and the `send-partial-group-on-expiry` attribute.
420-
See "`<<agg-and-group-to>>`" for more information.
420+
See <<agg-and-group-to>> for more information.
421421
It is mutually exclusive with 'group-timeout-expression' attribute.
422422
<22> The SpEL expression that evaluates to a `groupTimeout` with the `MessageGroup` as the `#root` evaluation context object.
423423
Used for scheduling the `MessageGroup` to be forced complete.
@@ -610,7 +610,7 @@ In the preceding example, the root object of the SpEL evaluation context is the
610610
====== Aggregator and Group Timeout
611611

612612
Starting with version 4.0, two new mutually exclusive attributes have been introduced: `group-timeout` and `group-timeout-expression` (see the earlier description).
613-
See "`<<aggregator-xml>>`".
613+
See <<aggregator-xml>>.
614614
In some cases, you may need to emit the aggregator result (or discard the group) after a timeout if the `ReleaseStrategy` does not release when the current message arrives.
615615
For this purpose, the `groupTimeout` option lets scheduling the `MessageGroup` be forced to complete, as the following example shows:
616616

@@ -634,7 +634,7 @@ If the release strategy still does not release the group, it is expired.
634634
If `send-partial-result-on-expiry` is `true`, existing messages in the (partial) `MessageGroup` are released as a normal aggregator reply message to the `output-channel`.
635635
Otherwise, it is discarded.
636636

637-
There is a difference between `groupTimeout` behavior and `MessageGroupStoreReaper` (see "`<<aggregator-xml>>`").
637+
There is a difference between `groupTimeout` behavior and `MessageGroupStoreReaper` (see <<aggregator-xml>>).
638638
The reaper initiates forced completion for all `MessageGroup` s in the `MessageGroupStore` periodically.
639639
The `groupTimeout` does it for each `MessageGroup` individually if a new message does not arrive during the `groupTimeout`.
640640
Also, the reaper can be used to remove empty groups (empty groups are retained in order to discard late messages if `expire-groups-upon-completion` is false).
@@ -699,7 +699,7 @@ public MessageHandler aggregator(MessageGroupStore jdbcMessageGroupStore) {
699699
----
700700
====
701701

702-
See "`<<aggregator-api>>`" and "`<<annotations_on_beans>>`" for more information.
702+
See <<aggregator-api>> and <<annotations_on_beans>> for more information.
703703

704704
NOTE: Starting with version 4.2, the `AggregatorFactoryBean` is available to simplify Java configuration for the `AggregatingMessageHandler`.
705705

@@ -761,7 +761,7 @@ public interface MessageGroupCallback {
761761
The callback has direct access to the store and the message group so that it can manage the persistent state (for example, by entirely removing the group from the store).
762762

763763
The `MessageGroupStore` maintains a list of these callbacks, which it applies, on demand, to all messages whose timestamps are earlier than a time supplied as a parameter (see the `registerMessageGroupExpiryCallback(..)` and `expireMessageGroups(..)` methods, described earlier).
764-
For more detail, see "`<<reaper>>`".
764+
For more detail, see <<reaper>>.
765765

766766
You can call the `expireMessageGroups` method with a timeout value.
767767
Any message older than the current time minus this value is expired and has the callbacks applied.
@@ -805,5 +805,5 @@ Messages with the same correlation key are stored in the same message group.
805805
Some `MessageStore` implementations allow using the same physical resources, by partitioning the data.
806806
For example, the `JdbcMessageStore` has a `region` property, and the `MongoDbMessageStore` has a `collectionName` property.
807807
808-
For more information about the `MessageStore` interface and its implementations, see "`<<message-store>>`".
808+
For more information about the `MessageStore` interface and its implementations, see <<message-store>>.
809809
=====

src/reference/asciidoc/amqp.adoc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ The user application is responsible for acknowledgement.
7171
`NONE` means no acknowledgements (`autoAck`).
7272
`AUTO` means the adapter's container acknowledges when the downstream flow completes.
7373
Optional (defaults to AUTO).
74-
See "`<<amqp-inbound-ack>>`".
74+
See <<amqp-inbound-ack>>.
7575
<5> Extra AOP Advices to handle cross-cutting behavior associated with this inbound channel adapter.
7676
Optional.
7777
<6> Flag to indicate that channels created by this component are transactional.
@@ -260,7 +260,7 @@ public class AmqpJavaApplication {
260260
=== Polled Inbound Channel Adapter
261261

262262
Version 5.0.1 introduced a polled channel adapter, letting you fetch individual messages on demand -- for example, with a `MessageSourcePollingTemplate` or a poller.
263-
See "`<<deferred-acks-message-source>>`" for more information.
263+
See <<deferred-acks-message-source>> for more information.
264264

265265
It does not currently support XML configuration.
266266

@@ -347,7 +347,7 @@ If this option is not specified and an external `amqp-template` is provided, no
347347
You must either specify this option or configure a default `exchange` and `routingKey` on that template,
348348
if you anticipate cases when no `replyTo` property exists in the request message.
349349

350-
See the note in "`<<amqp-inbound-channel-adapter>>`" about configuring the `listener-container` attribute.
350+
See the note in <<amqp-inbound-channel-adapter>> about configuring the `listener-container` attribute.
351351

352352
==== Configuring with Java Configuration
353353

@@ -974,7 +974,7 @@ When `true` (the default), the connection is established (if it does not already
974974
it) when the first message is sent.
975975
====
976976

977-
See also "`<<async-service-activator>>`" for more information.
977+
See also <<async-service-activator>> for more information.
978978

979979
[IMPORTANT]
980980
.RabbitTemplate
@@ -1194,7 +1194,7 @@ The entire message was converted (serialized) and sent to RabbitMQ.
11941194
Now, you can set the `extract-payload` attribute (or `setExtractPayload()` when using Java configuration) to `true`.
11951195
When this flag is `true`, the message payload is converted and the headers are mapped, in a manner similar to when you use channel adapters.
11961196
This arrangement lets AMQP-backed channels be used with non-serializable payloads (perhaps with another message converter, such as the `Jackson2JsonMessageConverter`).
1197-
See "`<<amqp-message-headers>>`" for more about the default mapped headers.
1197+
See <<amqp-message-headers>> for more about the default mapped headers.
11981198
You can modify the mapping by providing custom mappers that use the `outbound-header-mapper` and `inbound-header-mapper` attributes.
11991199
You can now also specify a `default-delivery-mode`, which is used to set the delivery mode when there is no `amqp_deliveryMode` header.
12001200
By default, Spring AMQP `MessageProperties` uses `PERSISTENT` delivery mode.
@@ -1314,7 +1314,7 @@ The `org.springframework.amqp.support.AmqpHeaders` class identifies the default
13141314
* `amqp_clusterId`
13151315
* `amqp_contentEncoding`
13161316
* `amqp_contentLength`
1317-
* `content-type` (see "`<<amqp-content-type>>`")
1317+
* `content-type` (see <<amqp-content-type>>)
13181318
* `amqp_correlationId`
13191319
* `amqp_delay`
13201320
* `amqp_deliveryMode`
@@ -1418,7 +1418,7 @@ This is because the template "`borrows`" a channel from the cache for each send
14181418
One solution is to start a transaction before the splitter, but transactions are expensive in RabbitMQ and can reduce performance several hundred fold.
14191419

14201420
To solve this problem in a more efficient manner, starting with version 5.1, Spring Integration provides the `BoundRabbitChannelAdvice` which is a `HandleMessageAdvice`.
1421-
See "`<<handle-message-advice>>`".
1421+
See <<handle-message-advice>>.
14221422
When applied before the splitter, it ensures that all downstream operations are performed on the same channel and, optionally, can wait until publisher confirmations for all sent messages are received (if the connection factory is configured for confirmations).
14231423
The following example shows how to use `BoundRabbitChannelAdvice`:
14241424

0 commit comments

Comments
 (0)