diff --git a/src/reference/asciidoc/aggregator.adoc b/src/reference/asciidoc/aggregator.adoc index 34db5e67f9..0921a97f5f 100644 --- a/src/reference/asciidoc/aggregator.adoc +++ b/src/reference/asciidoc/aggregator.adoc @@ -97,7 +97,7 @@ However, there are better solutions, less coupled to the API, for implementing t 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). This method is invoked for aggregating messages as follows: -* If the argument is a `java.util.Collection`, and the parameter type T is assignable to `Message`, the whole list of messages accumulated for aggregation is sent to the aggregator. +* If the argument is a `java.util.Collection` and the parameter type T is assignable to `Message`, the whole list of messages accumulated for aggregation is sent to the aggregator. * 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. * 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. @@ -142,7 +142,7 @@ public interface ReleaseStrategy { 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. This method is invoked after the arrival of each new message, to decide whether the group is complete or not, as follows: -* If the argument is a `java.util.List`, and the parameter type `T` is assignable to `Message`, the whole list of messages accumulated in the group is sent to the method. +* If the argument is a `java.util.List` and the parameter type `T` is assignable to `Message`, the whole list of messages accumulated in the group is sent to the method. * 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. * The method must return `true` if the message group is ready for aggregation or false otherwise. @@ -197,7 +197,7 @@ IMPORTANT: To facilitate discarding of late-arriving messages, the aggregator mu This can eventually cause out-of-memory conditions. To avoid such situations, you should consider configuring a `MessageGroupStoreReaper` to remove the group metadata. 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. -For information about configuring a reaper, see "`<>`". +For information about configuring a reaper, see <>. Spring Integration provides an implementation for `ReleaseStrategy`: `SimpleSequenceSizeReleaseStrategy`. 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 This was expensive when removing individual messages from large groups (an O(n) linear scan was required). 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. If you have messages that are expensive to hash, consider using some other collection type. -As discussed in "`<>`", a `SimpleMessageGroupFactory` is provided so that you can select the `Collection` that best suits your needs. +As discussed in <>, a `SimpleMessageGroupFactory` is provided so that you can select the `Collection` that best suits your needs. You can also provide your own factory implementation to create some other `Collection>`. 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 Changes to groups are thread safe. A `LockRegistry` is used to obtain a lock for the resolved correlation ID. A `DefaultLockRegistry` is used by default (in-memory). -For synchronizing updates across servers, where a shared `MessageGroupStore` is being used, you must configure a shared lock registry. +For synchronizing updates across servers where a shared `MessageGroupStore` is being used, you must configure a shared lock registry. [[aggregator-java-dsl]] ==== Configuring an Aggregator in Java DSL -See "`<>`" for how to configure an aggregator in Java DSL. +See <> for how to configure an aggregator in Java DSL. [[aggregator-xml]] ===== Configuring an Aggregator with XML @@ -349,7 +349,7 @@ Optional. <6> A reference to a `MessageGroupStore` used to store groups of messages under their correlation key until they are complete. Optional. By default, it is a volatile in-memory store. -See "`<>`" for more information. +See <> for more information. <7> The order of this aggregator when more than one handle is subscribed to the same `DirectChannel` (use for load-balancing purposes). Optional. <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 It used to obtain a `Lock` based on the `groupId` for concurrent operations on the `MessageGroup`. By default, an internal `DefaultLockRegistry` is used. Use of a distributed `LockRegistry`, such as the `ZookeeperLockRegistry`, ensures only one instance of the aggregator can operate on a group concurrently. -See "`<>`", "`<>`", and "`<>`" for more information. +See <>, <>, and <> for more information. <21> A timeout (in milliseconds) to force the `MessageGroup` complete when the `ReleaseStrategy` does not release the group when the current message arrives. 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. 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 You can, however, conditionally set it to zero (or a negative value) by using an expression. See `group-timeout-expression` for information. The action taken during the completion depends on the `ReleaseStrategy` and the `send-partial-group-on-expiry` attribute. -See "`<>`" for more information. +See <> for more information. It is mutually exclusive with 'group-timeout-expression' attribute. <22> The SpEL expression that evaluates to a `groupTimeout` with the `MessageGroup` as the `#root` evaluation context object. 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 ====== Aggregator and Group Timeout Starting with version 4.0, two new mutually exclusive attributes have been introduced: `group-timeout` and `group-timeout-expression` (see the earlier description). -See "`<>`". +See <>. 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. For this purpose, the `groupTimeout` option lets scheduling the `MessageGroup` be forced to complete, as the following example shows: @@ -634,7 +634,7 @@ If the release strategy still does not release the group, it is expired. 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`. Otherwise, it is discarded. -There is a difference between `groupTimeout` behavior and `MessageGroupStoreReaper` (see "`<>`"). +There is a difference between `groupTimeout` behavior and `MessageGroupStoreReaper` (see <>). The reaper initiates forced completion for all `MessageGroup` s in the `MessageGroupStore` periodically. The `groupTimeout` does it for each `MessageGroup` individually if a new message does not arrive during the `groupTimeout`. 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) { ---- ==== -See "`<>`" and "`<>`" for more information. +See <> and <> for more information. NOTE: Starting with version 4.2, the `AggregatorFactoryBean` is available to simplify Java configuration for the `AggregatingMessageHandler`. @@ -761,7 +761,7 @@ public interface MessageGroupCallback { 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). 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). -For more detail, see "`<>`". +For more detail, see <>. You can call the `expireMessageGroups` method with a timeout value. 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. Some `MessageStore` implementations allow using the same physical resources, by partitioning the data. For example, the `JdbcMessageStore` has a `region` property, and the `MongoDbMessageStore` has a `collectionName` property. -For more information about the `MessageStore` interface and its implementations, see "`<>`". +For more information about the `MessageStore` interface and its implementations, see <>. ===== diff --git a/src/reference/asciidoc/amqp.adoc b/src/reference/asciidoc/amqp.adoc index 703230db56..e589df4e86 100644 --- a/src/reference/asciidoc/amqp.adoc +++ b/src/reference/asciidoc/amqp.adoc @@ -71,7 +71,7 @@ The user application is responsible for acknowledgement. `NONE` means no acknowledgements (`autoAck`). `AUTO` means the adapter's container acknowledges when the downstream flow completes. Optional (defaults to AUTO). -See "`<>`". +See <>. <5> Extra AOP Advices to handle cross-cutting behavior associated with this inbound channel adapter. Optional. <6> Flag to indicate that channels created by this component are transactional. @@ -260,7 +260,7 @@ public class AmqpJavaApplication { === Polled Inbound Channel Adapter Version 5.0.1 introduced a polled channel adapter, letting you fetch individual messages on demand -- for example, with a `MessageSourcePollingTemplate` or a poller. -See "`<>`" for more information. +See <> for more information. It does not currently support XML configuration. @@ -347,7 +347,7 @@ If this option is not specified and an external `amqp-template` is provided, no You must either specify this option or configure a default `exchange` and `routingKey` on that template, if you anticipate cases when no `replyTo` property exists in the request message. -See the note in "`<>`" about configuring the `listener-container` attribute. +See the note in <> about configuring the `listener-container` attribute. ==== Configuring with Java Configuration @@ -974,7 +974,7 @@ When `true` (the default), the connection is established (if it does not already it) when the first message is sent. ==== -See also "`<>`" for more information. +See also <> for more information. [IMPORTANT] .RabbitTemplate @@ -1194,7 +1194,7 @@ The entire message was converted (serialized) and sent to RabbitMQ. Now, you can set the `extract-payload` attribute (or `setExtractPayload()` when using Java configuration) to `true`. 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. This arrangement lets AMQP-backed channels be used with non-serializable payloads (perhaps with another message converter, such as the `Jackson2JsonMessageConverter`). -See "`<>`" for more about the default mapped headers. +See <> for more about the default mapped headers. You can modify the mapping by providing custom mappers that use the `outbound-header-mapper` and `inbound-header-mapper` attributes. You can now also specify a `default-delivery-mode`, which is used to set the delivery mode when there is no `amqp_deliveryMode` header. By default, Spring AMQP `MessageProperties` uses `PERSISTENT` delivery mode. @@ -1314,7 +1314,7 @@ The `org.springframework.amqp.support.AmqpHeaders` class identifies the default * `amqp_clusterId` * `amqp_contentEncoding` * `amqp_contentLength` -* `content-type` (see "`<>`") +* `content-type` (see <>) * `amqp_correlationId` * `amqp_delay` * `amqp_deliveryMode` @@ -1418,7 +1418,7 @@ This is because the template "`borrows`" a channel from the cache for each send One solution is to start a transaction before the splitter, but transactions are expensive in RabbitMQ and can reduce performance several hundred fold. To solve this problem in a more efficient manner, starting with version 5.1, Spring Integration provides the `BoundRabbitChannelAdvice` which is a `HandleMessageAdvice`. -See "`<>`". +See <>. 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). The following example shows how to use `BoundRabbitChannelAdvice`: diff --git a/src/reference/asciidoc/changes-1.0-2.0.adoc b/src/reference/asciidoc/changes-1.0-2.0.adoc index b04bd42cf0..b0d7702523 100644 --- a/src/reference/asciidoc/changes-1.0-2.0.adoc +++ b/src/reference/asciidoc/changes-1.0-2.0.adoc @@ -18,7 +18,7 @@ This guide includes many samples. ===== Conversion Service and Converter You can now benefit from the conversion service support provided with Spring while configuring many Spring Integration components, such as a http://www.eaipatterns.com/DatatypeChannel.html[Datatype channel]. -See "`<>`" and "`<>`". +See <> and <>. Also, the SpEL support mentioned in the previous point also relies upon the conversion service. Therefore, you can register converters once and take advantage of them anywhere you use SpEL expressions. @@ -30,14 +30,14 @@ Spring Integration (which uses a lot of scheduling) now builds upon these. In fact, Spring Integration 1.0 had originally defined some of the components (such as `CronTrigger`) that have now been migrated into Spring 3.0's core API. Now you can benefit from reusing the same components within the entire application context (not just Spring Integration configuration). We also greatly simplified configuration of Spring Integration pollers by providing attributes for directly configuring rates, delays, cron expressions, and trigger references. -See "`<>`" for sample configurations. +See <> for sample configurations. [[rest-support]] ===== `RestTemplate` and `HttpMessageConverter` Our outbound HTTP adapters now delegate to Spring's `RestTemplate` for executing the HTTP request and handling its response. This also means that you can reuse any custom `HttpMessageConverter` implementations. -See "`<>`" for more details. +See <> for more details. [[new-eip]] ==== Enterprise Integration Pattern Additions @@ -48,7 +48,7 @@ Also in 2.0, we have added support for even more of the patterns described in Ho ===== Message History We now provide support for the http://www.eaipatterns.com/MessageHistory.html[message history] pattern, letting you keep track of all traversed components, including the name of each channel and endpoint as well as the timestamp of that traversal. -See "`<>`" for more details. +See <> for more details. [[new-message-store]] ===== Message Store @@ -56,7 +56,7 @@ See "`<>`" for more details. We now provide support for the http://www.eaipatterns.com/MessageStore.html[message store] pattern. The message store provides a strategy for persisting messages on behalf of any process whose scope extends beyond a single transaction, such as the aggregator and the resequencer. Many sections of this guide include samples of how to use a message store, as it affects several areas of Spring Integration. -See "`<>`", "`<>`", "`<>`", "`<>`", "`<>`", and "`<>`" for more details. +See <>, <>, <>, <>, <>`", and <> for more details. [[new-claim-check]] ===== Claim Check @@ -64,14 +64,14 @@ See "`<>`", "`<>`", "`<>`", "`< We have added an implementation of the http://www.eaipatterns.com/StoreInLibrary.html[claim check] pattern. The idea behind the claim check pattern is that you can exchange a message payload for a "`claim ticket`". This lets you reduce bandwidth and avoid potential security issues when sending messages across channels. -See "`<>`" for more details. +See <> for more details. [[new-control-bus]] ===== Control Bus We have provided implementations of the http://www.eaipatterns.com/ControlBus.html[control bus] pattern, which lets you use messaging to manage and monitor endpoints and channels. The implementations include both a SpEL-based approach and one that runs Groovy scripts. -See "`<>`" and "`<>`" for more details. +See <> and <> for more details. [[new-adapters]] ==== New Channel Adapters and Gateways @@ -82,39 +82,39 @@ We have added several new channel adapters and messaging gateways in Spring Inte ===== TCP and UDP Adapters We have added channel adapters for receiving and sending messages over the TCP and UDP internet protocols. -See "`<>`" for more details. +See <> for more details. See also the following blog: http://blog.springsource.com/2010/03/29/using-udp-and-tcp-adapters-in-spring-integration-2-0-m3/["`Using UDP and TCP Adapters in Spring Integration 2.0 M3`"]. [[new-twitter]] ===== Twitter Adapters -Twitter adapters provides support for sending and receiving Twitter Status updates as well as Direct Messages. -You can also perform Twitter Searches with an inbound Channel Adapter. +Twitter adapters provides support for sending and receiving Twitter status updates as well as direct messages. +You can also perform Twitter Searches with an inbound channel adapter. See https://github.com/spring-projects/spring-integration-extensions/tree/master/spring-integration-social-twitter[Spring Integration Social Twitter] for more details. [[new-xmpp]] ===== XMPP Adapters The new XMPP adapters support both chat messages and presence events. -See "`<>`" for more details. +See <> for more details. [[new-ftp]] ===== FTP and FTPS Adapters Inbound and outbound file transfer support over FTP and FTPS is now available. -See "`<>`" for more details. +See <> for more details. [[new-sftp]] ===== SFTP Adapters Inbound and outbound file transfer support over SFTP is now available. -See "`<>`" for more details. +See <> for more details. [[new-feed]] ===== Feed Adapters We have also added channel adapters for receiving news feeds (ATOM and RSS). -See "`<>`" for more details. +See <> for more details. [[new-other]] ==== Other Additions @@ -124,33 +124,33 @@ Spring Integration adds a number of other features. This section describes them. ===== Groovy Support Spring Integration 2.0 added Groovy support, letting you use the Groovy scripting language to provide integration and business logic. -See "`<>`" for more details. +See <> for more details. [[new-map-transformer]] ===== Map Transformers These symmetrical transformers convert payload objects to and from `Map` objects. -See "`<>`" for more details. +See <> for more details. [[new-json-transformer]] ===== JSON Transformers These symmetrical transformers convert payload objects to and from JSON. -See "`<>`" for more details. +See <> for more details. [[new-serialize-transformer]] ===== Serialization Transformers These symmetrical transformers convert payload objects to and from byte arrays. They also support the serializer and deserializer strategy interfaces that Spring 3.0.5 added. -See "`<>`" for more details. +See <> for more details. [[new-refactoring]] ==== Framework Refactoring The core API went through some significant refactoring to make it simpler and more usable. Although we anticipate that the impact to developers should be minimal, you should read through this document to find what was changed. -Specifically, you should read "`<>`", "`<>`", "`<>`", "`<>`", and "`<>`". +Specifically, you should read <>, <>, <>, <>, and <>. If you directly depend on some of the core components (`Message`, `MessageHeaders`, `MessageChannel`, `MessageBuilder`, and others), you need to update any import statements. We restructured some packaging to provide the flexibility we needed for extending the domain model while avoiding any cyclical dependencies (it is a policy of the framework to avoid such "`tangles`"). diff --git a/src/reference/asciidoc/changes-2.0-2.1.adoc b/src/reference/asciidoc/changes-2.0-2.1.adoc index 96cce12850..81b4338754 100644 --- a/src/reference/asciidoc/changes-2.0-2.1.adoc +++ b/src/reference/asciidoc/changes-2.0-2.1.adoc @@ -20,7 +20,7 @@ Now you have the ability to use any scripting language that supports JSR-223 inc * Python and Jython * Groovy -For further details, see "`<>`". +For further details, see <>. [[x2.1-new-gemfire-support]] ===== GemFire Support @@ -28,7 +28,7 @@ For further details, see "`<>`". Spring Integration provides support for http://www.vmware.com/products/application-platform/vfabric-gemfire/overview.html[GemFire] by providing inbound adapters for entry and continuous query events, an outbound adapter to write entries to the cache, and http://static.springsource.org/spring-integration/api/org/springframework/integration/store/MessageStore.html[`MessageStore`] and http://static.springsource.org/spring-integration/api/org/springframework/integration/store/MessageGroupStore.html[`MessageGroupStore`] implementations. Spring integration leverages the http://www.springsource.org/spring-gemfire[Spring Gemfire] project, providing a thin wrapper over its components. -For further details, see "`<>`". +For further details, see <>. [[x2.1-new-amqp-support]] ===== AMQP Support @@ -36,21 +36,21 @@ For further details, see "`<>`". Spring Integration 2.1 added several channel adapters for receiving and sending messages by using the http://www.amqp.org/[Advanced Message Queuing Protocol] (AMQP). Furthermore, Spring Integration also provides a point-to-point message channel and a publish-subscribe message channel, both of which are backed by AMQP Exchanges and Queues. -For further details, see "`<>`". +For further details, see <>. [[x2.1-new-mongodb-support]] ===== MongoDB Support As of version 2.1, Spring Integration provides support for http://www.mongodb.org/[MongoDB] by providing a MongoDB-based `MessageStore`. -For further details, see "`<>`". +For further details, see <>. [[x2.1-new-redis-support]] ===== Redis Support As of version 2.1, Spring Integration supports http://redis.io/[Redis], an advanced key-value store, by providing a Redis-based `MessageStore` as well as publish-subscribe messaging adapters. -For further details, see "`<>`". +For further details, see <>. [[x2.1-new-resource-support]] ===== Support for Spring's Resource abstraction @@ -58,7 +58,7 @@ For further details, see "`<>`". In version 2.1, we introduced a new resource inbound channel adapter that builds upon Spring's resource abstraction to support greater flexibility across a variety of actual types of underlying resources, such as a file, a URL, or a classpath resource. Therefore, it is similar to but more generic than the file inbound channel adapter. -For further details, see "`<>`". +For further details, see <>. [[x2.1-new-stored-proc-support]] ===== Stored Procedure Components @@ -81,7 +81,7 @@ The stored procedure components also support SQL functions for the following dat * Oracle * PostgreSQL -For further details, see "`<>`". +For further details, see <>. [[x2.1-new-xpath-filter-support]] ===== XPath and XML Validating Filter @@ -91,7 +91,7 @@ It is part of the `XML` module. The XPath filter lets you filter messages by using XPath Expressions. We also added documentation for the XML validating filter. -For more details, see "`<>`" and "`<>`". +For more details, see <> and <>. [[x2.1-new-payload-enricher-support]] ===== Payload Enricher @@ -100,7 +100,7 @@ Since Spring Integration 2.1, we added the payload enricher. A payload enricher defines an endpoint that typically passes a http://static.springsource.org/spring-integration/api/org/springframework/integration/Message.html[`Message`] to the exposed request channel and then expects a reply message. The reply message then becomes the root object for evaluation of expressions to enrich the target payload. -For further details, see "`<>`". +For further details, see <>. [[x2.1-new-ftp-outbound-gateway]] ===== FTP and SFTP Outbound Gateways @@ -110,7 +110,7 @@ These two gateways let you directly execute a limited set of remote commands. For instance, you can use these outbound gateways to list, retrieve, and delete remote files and have the Spring Integration message flow continue with the remote server's response. -For further details, see "`<>`" and "`<>`". +For further details, see <> and <>. [[x2.1-new-ftp-session-caching]] ===== FTP Session Caching @@ -120,7 +120,7 @@ As of version 2.1, we have exposed more flexibility with regards to session mana Specifically, we deprecated the `cache-sessions` attribute (which is available via the XML namespace support). As an alternative, we added the `sessionCacheSize` and `sessionWaitTimeout` attributes on the `CachingSessionFactory`. -For further details, see "`<>`" and "`<>`". +For further details, see <> and <>. [[x2.1-framework-refactorings]] ==== Framework Refactoring diff --git a/src/reference/asciidoc/changes-2.1-2.2.adoc b/src/reference/asciidoc/changes-2.1-2.2.adoc index d1d6b48161..6949163aed 100644 --- a/src/reference/asciidoc/changes-2.1-2.2.adoc +++ b/src/reference/asciidoc/changes-2.1-2.2.adoc @@ -13,13 +13,13 @@ Version 2.2 added a number of new components. ===== `RedisStore` Inbound and Outbound Channel Adapters Spring Integration now has `RedisStore` Inbound and Outbound Channel Adapters, letting you write and read `Message` payloads to and from Redis collections. -For more information, see "`<>`" and "`<>`". +For more information, see <> and <>. [[x2.2-mongo-adapters]] ===== MongoDB Inbound and Outbound Channel Adapters Spring Integration now has MongoDB inbound and outbound channel adapters, letting you write and read `Message` payloads to and from a MongoDB document store. -For more information, see "`<>`" and "`<>`". +For more information, see <> and <>. [[x2.2-jpa]] ===== JPA Endpoints @@ -32,7 +32,7 @@ The JPA Adapter includes the following components: * <> * <> -For more information, see "`<>`". +For more information, see <>. [[x2.2-general]] ==== General Changes @@ -58,7 +58,7 @@ In addition, we added three standard advice classes for this purpose: * `MessageHandlerCircuitBreakerAdvice` * `ExpressionEvaluatingMessageHandlerAdvice` -For more information, see "`<>`". +For more information, see <>. [[x2.2-transaction-sync]] ===== Transaction Synchronization and Pseudo Transactions @@ -68,7 +68,7 @@ This allows for synchronizing such operations as renaming files by an inbound ch In addition, you can enable these features when no "`real`" transaction is present, by means of a `PseudoTransactionManager`. -For more information, see "`<>`". +For more information, see <>. [[x2.2-file-adapter]] ===== File Adapter: Improved File Overwrite and Append Handling @@ -82,7 +82,7 @@ Now you can specify the following options: * `FAIL` * `IGNORE` -For more information, see "`<>`". +For more information, see <>. [[x2.2-outbound-gateways]] ===== Reply-Timeout Added to More Outbound Gateways @@ -116,7 +116,7 @@ When using the stored procedure components of the Spring Integration JDBC Adapte Doing so lets you specify the stored procedures to be invoked at runtime. For example, you can provide stored procedure names that you would like to execute through message headers. -For more information, see "`<>`". +For more information, see <>. ====== JMX Support @@ -136,7 +136,7 @@ You can now provide only a select query by using the request message as a source ===== JDBC Support: Channel-specific Message Store Implementation We added a new message channel-specific message store implementation, providing a more scalable solution using database-specific SQL queries. -For more information, see "`<>`". +For more information, see <>. [[x2.2-shutdown]] ===== Orderly Shutdown @@ -154,7 +154,7 @@ Doing so can improve performance of the gateway. ===== `ObjectToJsonTransformer` By default, the `ObjectToJsonTransformer` now sets the `content-type` header to `application/json`. -For more information, see "`<>`". +For more information, see <>. [[httpChanges]] ===== HTTP Support diff --git a/src/reference/asciidoc/changes-2.2-3.0.adoc b/src/reference/asciidoc/changes-2.2-3.0.adoc index 91abbfb048..6ce308b364 100644 --- a/src/reference/asciidoc/changes-2.2-3.0.adoc +++ b/src/reference/asciidoc/changes-2.2-3.0.adoc @@ -18,26 +18,26 @@ Upon parsing of the HTTP inbound endpoint, either a new `IntegrationRequestMappi To achieve flexible request mapping configuration, Spring Integration provides the `` child element for `` and the ``. Both HTTP inbound endpoints are now fully based on the request mapping infrastructure that was introduced with Spring MVC 3.1. For example, multiple paths are supported on a single inbound endpoint. -For more information see "`<>`". +For more information see <>. [[x3.0-spel-customization]] ===== Spring Expression Language (SpEL) Configuration We added a new `IntegrationEvaluationContextFactoryBean` to allow configuration of custom `PropertyAccessor` implementations and functions for use in SpEL expressions throughout the framework. -For more information, see "`<>`". +For more information, see <>. [[x3.0-spel-functions]] ===== SpEL Functions Support To customize the SpEL `EvaluationContext` with static `Method` functions, we introduced the `` component. We also added two built-in functions: `#jsonPath` and `#xpath`. -For more information, see "`<>`". +For more information, see <>. [[x3.0-spel-property-accessors]] ===== SpEL PropertyAccessors Support To customize the SpEL `EvaluationContext` with `PropertyAccessor` implementations, we added the `` component. -For more information, see "`<>`". +For more information, see <>. [[x3.0-redis-new-components]] ===== Redis: New Components @@ -59,7 +59,7 @@ For more information, "`see <>`". You can now instruct the framework to store reply channels and error channels in a registry for later resolution. This is useful for cases where the `replyChannel` or `errorChannel` might be lost (for example, when serializing a message). -See "`<>`" for more information. +See <> for more information. [[x3.0-configurable-mongo-MS]] ===== MongoDB support: New `ConfigurableMongoDbMessageStore` @@ -68,19 +68,19 @@ In addition to the existing `eMongoDbMessageStore`, we introduced a new `Configu This provides a more robust and flexible implementation of `MessageStore` for MongoDB. It does not have backward compatibility with the existing store, but we recommend using it for new applications. Existing applications can use it, but messages in the old store are not available. -See "`<>`" for more information. +See <> for more information. [[x3.0-syslog]] ===== Syslog Support Building on the 2.2 `SyslogToMapTransformer`, Spring Integration 3.0 introduces `UDP` and `TCP` inbound channel adapters especially tailored for receiving SYSLOG messages. -For more information, see "`<>`". +For more information, see <>. [[x3.0-tail]] ===== `tail` Support We added file inbound channel adapters that use the `tail` command to generate messages when lines are added to the end of text files. -See "`<>`". +See <>. [[x3.0-jmx]] ===== JMX Support @@ -92,7 +92,7 @@ It permits simple transformation to, for example, JSON. The `IntegrationMBeanExporter` now allows the configuration of a custom `ObjectNamingStrategy` by using the `naming-strategy` attribute. -For more information, see "`<>`". +For more information, see <>. [[x3.0-tcp-events]] ===== TCP/IP Connection Events and Connection Management @@ -112,19 +112,19 @@ It lets applications broadcast to all open connections, among other uses. Finally, the connection factories also provide a new method called `closeConnection(String connectionId)`, which lets applications explicitly close a connection by using its ID. -For more information see "`<>`". +For more information see <>. [[x3.0-inbound-script]] ===== Inbound Channel Adapter Script Support The `` now supports using `` and `