Commit Graph

145 Commits

Author SHA1 Message Date
Gary Russell
a9ec7c8107 INT-3133 Doc Polishing 2013-09-24 17:36:42 -04:00
Artem Bilan
19dd45a98a INT-3133: Add <spel-property-accessors> Support
* Add <spel-property-accessors> to configure a list of beans
that implement `org.springframework.expression.PropertyAccessor`
* Add `SpelPropertyAccessorRegistrar` to manage a list of PropertyAccessors
for Integration infrastructure
* Refactoring for `SpelFunctionRegistrar` and `IntegrationEvaluationContextFactoryBean`
to fix the issue when there is no `SpelFunctionRegistrar`(`SpelPropertyAccessorRegistrar`)
in the child AC, but there is one in the parent.
Previously the inheritance did't work for that reason.
* Now parent/child logic moved to `IntegrationEvaluationContextFactoryBean`
* Add documentation

JIRA: https://jira.springsource.org/browse/INT-3133

INT-3133: Rebasing, polishing and documentation

INT-3133: PropertyAccessors override support

* `@Ignore` `SOLingerTests#finReceivedNioLinger()` test

INT-3133: Change JavaDoc link to 3.0.0.RC1

Polishing

- Remove duplicate check - last bean def wins
- Doc Polishing
2013-09-24 16:55:08 -04:00
Artem Bilan
7517963be2 INT-3027: Headers Enrichment for <enricher>
* Add `<header>` sub-element to `<enricher>`
* Refactoring of `EnricherParser`
* Add Headers Enrichment logic to `ContentEnricher`
* Add tests
* What's new and Content Enricher's `<header>` note

JIRA: https://jira.springsource.org/browse/INT-3027

INT-3027: Addressing PR comments

INT-3027: add NPE asserts to map properties

INT-3027: add overwrite & type to enricher header

Move `HeaderValueMessageProcessor` hierarchy to 'transformer.support' package

INT-3027: Make header's overwrite=true by default

Doc Polishing
2013-09-24 12:55:06 -04:00
Artem Bilan
09be87551b INT-2867: Add Script Support to inbound-c-a
* Add `<script>` and `<expression>` to `<int:inbound-channel-adapter>`
* Refactoring for `DefaultInboundChannelAdapterParser`
* Introduce `ScriptExecutingMessageSource` to allow scripts' `MessageProcessor`
implementations work as a source for polling endpoint

JIRA: https://jira.springsource.org/browse/INT-2867

INT-2867: documentation

In addition the tests for Lifecycle attributes

Polishing
2013-09-19 16:55:32 -04:00
Artem Bilan
417c848c0b INT-3129: FTP local-filename-generator-expression
* Add `local-filename-generator-expression` attribute to FTP and SFTP Outbound Gateway
* Refactoring for `(S)FtpOutboundGatewayParser`
* Add `local-filename-generator-expression` tests
* Add 'What's New' and attribute description

JIRA: https://jira.springsource.org/browse/INT-3129

Polishing

Doc Polishing

Assert attribute is only set for get/mget

Move tests to the get gateways
2013-09-18 13:40:59 -04:00
Gunnar Hillert
bbf93e1385 INT-3029 JPA: Support Iterables for Persist/Merge
* Add test cases
* Add documentation

Jira: https://jira.springsource.org/browse/INT-3029

INT-3029 Update copyright year

Doc Polishing
2013-09-18 10:41:47 -04:00
Artem Bilan
7f34f8c919 INT-2739: StoredProc: 'row-mapper' as a Bean Ref
* Convert `row-mapper` attribute of stored procedure components
to bean reference
* Class name is also supported for backward compatibility

JIRA: https://jira.springsource.org/browse/INT-2739
2013-09-16 17:39:27 -04:00
Artem Bilan
937ac9647a INT-3092, INT-3042: Doc: Jacksons, Resequencer
JIRA: https://jira.springsource.org/browse/INT-3042
https://jira.springsource.org/browse/INT-3092
2013-09-16 13:55:30 -04:00
Artem Bilan
cd256204d0 INT-3075: Note regarding HTTP Status Code
JIRA: https://jira.springsource.org/browse/INT-3075
2013-09-16 12:34:16 -04:00
Gary Russell
4abeebdb3a INT-3132 Add minSubscribers to Pub/SubChannel
Send is deemed to be successful if sent to at least this
number of subscribers (default 0).

Note: when using a task executor, if there is at least one
subscriber, a send is always good, regardless of success
or failure of invoking the handler.

Polishing - Docs - PR Comments
2013-09-05 09:12:17 -04:00
Artem Bilan
93f61160e2 INT-1639: Add <spel-function> support
* add `<spel-function>` XSD element
* add `SpelFunctionParser`
* add `SpelFunctionRegistrar` to avoid introducing some confused 'Method'-bean
* add `SpelFunctionRegistrar` collaboration with `IntegrationEvaluationContextFactoryBean`
* some refactoring for `IntegrationEvaluationContextFactoryBean`
* polishing some failed tests after this change

JIRA: https://jira.springsource.org/browse/INT-1639

INT-1639: SpelFunctionParser use BeanClassLoader

INT-1639: Inherit 'functions' from parent AC

INT-1639: Document the <spel-function>

INT-1639: 'NoSuchBeanDefinitionException' fix

Polishing
2013-09-04 18:43:00 -04:00
Gunnar Hillert
16cb95fedd INT-2917 Doc: Add "Requirements" Chapter
Also addresses:

* INT-3128 Remove old SpringSource logo

INT-2917 Fix versions

INT-2917 Polishing

INT-2917 Fixed wording
2013-09-03 14:55:29 -04:00
Pid
5212ea13ef INT-3124 Add JMX MBean Tree Inbound Adapter
Add an MBeanTreePollingMessageSource that produces a graph of simple objects representing the JMX tree (INT-3124).

The DefaultMBeanObjectConverter converts MBean objects into a graph of Lists, Maps and arrays or primitives.

Formatting tidy, per feedback.

Feedback incorporated: split setter/attributes, more tests, inner bean constructor, logging changes.

Overloaded setter methods with different parameter types are now named separately, the endpoint attributes reflect this and tests are added to reflect this.

An inner bean can be supplied to provide an alternative MBeanObjectConverter.

Log a warning instead of a more destructive UnsupportedOperationException where there's incomplete parsing in the DefaultMBeanObjectConverter and add a trace level for exception debugging.

Minor test change and doc/reference update

Added attribute filter interface as suggested. Three implementations are provided 'all', 'named only' and 'not named'

actually add notnamedfield filter (doh).

Polishing
2013-09-03 13:06:01 -04:00
Gary Russell
693a1e17a0 INT-3119 Add Documentation Re SpEL Customization
- Custom PropertyAccessors
- Custom Functions

Polishing - PR Comments
2013-09-03 10:15:54 -04:00
Gary Russell
b63768ec32 INT-2995 Fix Leftover Docbook Conflict Marker 2013-08-30 19:05:36 -04:00
Artem Bilan
4609b861d1 INT-2995: Fix HttpHeaders inconsistency
Previously, 'If-Modified-Since' and 'If-Unmodified-Since' HTTP headers were incorrectly processed
within from/to HTTP headers mapping, because Spring-Web `HttpHeaders` has a confusing method name, see:
https://jira.springsource.org/browse/SPR-10600

* fix 'If-Modified-Since' and 'If-Unmodified-Since' processing independently from `HttpHeaders`
* add fallback to formatted string for date ware HTTP headers
* add Spring Integration HTTP proxy scenario test

JIRA: https://jira.springsource.org/browse/INT-2995
2013-08-30 16:28:14 -04:00
Eric Bottard
7dabe1334c Fix Reference Manual Typo 2013-08-29 09:59:27 -04:00
Artem Bilan
afe56ca6d5 INT-2243: Delayer: Add 'expression' Support
Previously, the `<delayer>` provided a `delay-header-name` attribute.
In complex cases there was need to precede it with `<header-enricher>`.

* Add support for an 'expression' attribute and sub-element
* Deprecate `delay-header-name`
* Make `DelayHandler.DelayedMessageWrapper` *public* to allow access for Messages in the Store
* Add tests
* Add 'What's new' section
* Polishing Delayer's doc regarding new abilities

JIRA: https://jira.springsource.org/browse/INT-2243, https://jira.springsource.org/browse/INT-3049

INT-2243: ban delay-header-name with expression

INT-2243 Polishing

INT-2243: fall-back to default on Eval Exception

INT-2243: DelayedMessageWrapper refactoring

* Make `DelayedMessageWrapper` Spring Data Mongo mapping compatible.
In terms of Spring Data - add Persistence Constructor

INT-2243 add 'ignore-expression-failures' support

* Add `ignore-expression-failures` to the `<delayer>`
* Add tests for `ignore-expression-failures`
* Add a note to the RM
* Describe SpEL side-effects for `DelayHandler`

Doc Polishing
2013-08-20 16:54:42 -04:00
Gary Russell
573c692957 INT-2994 Advice Chain Config via Annotations
Allow configuration of request handler advice chain using

- ServiceActivator
- Filter
- Splitter
- Transformer

annotations.

Also, with splitter, allow setting discardWithinAdvice (See
INT-2938).

INT-2994 Polishing: PR Comments

- Change adviceChain attribute to an array
- Use a boolean for the discardWithinAdvice attribute

INT-2994 Handler Advice Doc Polishing

Add a paragraph about Advice Order.
2013-08-20 12:10:25 -04:00
Artem Bilan
70886b2543 INT-2822: 'requires-reply' for Outbound Gateways
* Add `requires-reply` attribute for all adapters outbound gateways as `true` by default
* WS-outbound-gateway is still without it, because it has its own specific attribute `ignore-empty-responses`
* Make `requires-reply` as `false` by default for `jdbc:stored-proc-outbound-gateway` inasmuch as `jdbc:stored-proc-outbound-adapter`
doesn't have ability to configure `returning-resultset`
* add parser tests for `requires-reply`

JIRA: https://jira.springsource.org/browse/INT-2822

INT-2822 'requires-reply' for ws:outbound-gateway

Default false.

INT-2822: Polishing after rebase

INT-2822: deprecate 'ignore-empty-responses'

* Add 'requires-reply' section into What's New

INT-2822: remove 'ignore-empty-responses' from RM

INT-2822: Polishing after rebase

INT-2822: Rebased and polished

INT-2822: Rebased and polished

Add WARN within deprecated `AbstractWebServiceOutboundGateway#setIgnoreEmptyResponses`

Revert 'ignore-empty-responses'; Doc Polishing
2013-08-19 13:48:31 -04:00
Gary Russell
28943357f4 INT-2901 Add Namespace Prefix
Avoid confusion with the core header enricher.
2013-08-18 23:15:19 -04:00
Gary Russell
d5b607a396 INT-2901 Fix Mail HeaderEnricher Doc
The move from attributes to child elements was not reflected
in the reference manual.
2013-08-18 14:47:51 -04:00
Artem Bilan
41fe514469 INT-3067 Xslt method=text StringResult coercion
Previously there was a need to add `result-type="StringResult"`
to <int-xml:xslt-transformer> for xslt output `method='text'`
in case payload was non-standard type (e.g. `File`), if we wanted to get
result as text.

* Add coercion to `StringResult` code, if `Transformer`'s property `method` is 'text' and there is no explicit `resultFactory` provided.
* Add documentation to reference manual

JIRA: https://jira.springsource.org/browse/INT-3067
2013-08-17 13:17:08 -04:00
Gary Russell
0699fdc6cf INT-1807 Add Mechanism For Headers with TCP
TCP streams have no standard message structure. Therefore, the
TCP implementation previously only transferred the message
payload.

If someone wanted to convey header information, they would have
to write their own wrapper and/or use Java serialization for
the entire message.

This change provides a strategy to allow users to determine
which headers are transferred, and how.

A MessageConvertingMessageMapper is now provided that invokes
any MessageConverter. A MapMessageConverter is provided that
converts the payload, and selected heades to a Map with two
entries ("payload") and ("headers").

A MapJsonSerializer is provided that converts a Map to/from
JSON. Jackson can't delimit multiple objects in a stream
so another serializer is required to encode/decode structure.
A ByteArrayLfSerializer is used by default, inserting a
linefeed between JSON objects.

The combination of these elements now allows header
information to be transferred over TCP. Of course, users
can implment their own (de)serializer to format the
bits on the wire exactly as needed by their application.

INT-1807 Polishing

Add a test that uses a Map MessageConverter with a
Java (de)serializer.

INT-1807: Polishing

INT-1807: Rebased and polished

Change `MapJsonSerializer` to use `JsonObjectMapper` abstraction

Doc Polishing
2013-08-16 16:54:00 -04:00
Gary Russell
4832130ef2 INT-3082 (S)FTP Remove Deprecated 'cache-sessions'
The 'cache-sessions' attribute was deprecated in 2.1 in favor
of using a configured CachingConnectionFactory to provide more
flexibility, such as setting the cache size.

Remove the attribute from the schemas.

Update tests.

Add docs.

Update Migration Guide on the project Wiki.
2013-08-16 13:12:46 -04:00
Gary Russell
77bdbed9a7 INT-3064 Change MessageHeaders.Id Strategy
Use `com.eaio.uuid` by default and document how to replace
the default strategy.

Provide JDK and a simple incrementing incrementing implementation.

Add code to detect multiple contexts in the same classloaded using
the same strategy.

Add code to detect multiple IdGenerator beans and emit a WARN
instead of DEBUG, which is the case for no beans.
2013-08-15 16:11:18 -04:00
Gary Russell
93aa1f5cd4 INT-3090 Document File IGNORE and Temporary File
IGNORE applies to the temporary and final file names.
2013-08-14 18:17:57 -04:00
Gary Russell
5cbdfe9e43 INT-3099 Add IMAP Idle Application Events
Allow an application to be informed of problems on the IMAP idle
thread by emitting an event containing the exception.

Introduce IntegrationApplicationEvent hierarchy for all
events emitted by SI components.

INT-3099 Polishing (PR Comments)

Separate TCP events into discrete subclasses.
2013-08-14 17:42:57 -04:00
Gary Russell
754273b0a0 INT-3102 Document File DirectoryScanner Limitation
Must be prototype if used in multiple places.
2013-08-14 17:31:48 -04:00
Gary Russell
54e24ce97d INT-3030 Add Error Channel to RMI Inbound Gateway
INT-3030 Polishing; Docs, Tests

Add test cases for error channel support.

Dynamically discover available RMI port.

Add What's New and `<important/>` to reference.
2013-08-13 17:56:57 -04:00
Michael Bannister
ef3feb687b INT-3105 Add 'task-executor' to JMS MDCA
Add task-attribute to int-jms:message-driven-channel-adapter.

Polishing

Fix white space; add author tags; use class name in parser.
2013-08-12 17:16:26 -04:00
Gary Russell
9f3eba1f0a INT-3061 Update Reference Copyright 2013-08-07 18:55:45 -04:00
Artem Bilan
7d96dc7969 INT-2865: Stored Procedure SqlReturnType support
JIRA: https://jira.springsource.org/browse/INT-2865
2013-07-15 00:35:53 -04:00
Gary Russell
d1d367a97f INT-2938 Filter - Provide Option for Discard
Provide an option to determine whether or not the discard
(and exception throwing if configured) occurs within the
advice chain (default), or after it completes.

INT-2938 Filter Discard Advice Option - Schema

Schema, parser, tests for option on filter element.

INT-2938 Polishing - PR Comments + Doc

INT-2938 Add to "What's New"

INT-2938 Polishing - Javadoc Typo

while merging: simplified to use boolean var only
2013-05-23 12:07:26 -04:00
Gary Russell
fe3e4a26db INT-3026 Header Enrichment Using Gateways
Add link to wiki page to reference doc.
2013-05-21 14:53:47 -04:00
Artem Bilan
ecf15a9834 INT-2755: Support 'id' For <chain> Child Elements
* Introduce XSD 'id' attribute for all `<chain>` sub-components
* Register `<chain>` sub-components as Beans with names based on `<chain>` 'id'
* Generate aliases for sub-components based on element 'id'
* Add `<chain>` parser test to check sub-components as Beans within `BeanFactory`
* Ignore `NestedChainParserTests` as abnormal and confused for SI-configs
* Now `<chain>` sub-components are trackable by `MessageHistory`
* Now `<chain>` sub-components are eligible for JMX export
* Polishing some failed tests

https://jira.springsource.org/browse/INT-2755
https://jira.springsource.org/browse/INT-2321

INT-2755: Register as Beans only if 'id' provided

INT-2755: Set 'componentName' for handlers with 'id'

When components within `<chain>` are configured with an 'id' attribute
the 'componentName' of the handler is  constructed as:
chainHandler.componentName + '.' + handler.componentName.
Otherwise it is as was before.

INT-2755: Polishing

INT-2755: changes according PR's comments

* Add INFO about preference of `id` attribute for `<chain>` in the `ChainParser`
* Change `<chain>`'s sub-components `id` generation algorithm
* Configure `<chain>`'s sub-component `componentName` in the `ChainParser` instead of in the `MessageHandlerChain`
* Add `componentName` property to the `JpaOutboundGatewayFactoryBean`
* Add a note to the Reference Manual

INT-2755: Localize duplicate 'id' within chain

INT-2755: remove child beans aliasing

* Polishing tests
* Polishing docs

INT-2755 Polishing: Handle Nested Chain Bean Names

Previously named beans within a nested chain did not get unique
bean names.

INT-2755: Polishing nested chains

Doc Polishing
2013-05-21 12:26:27 -04:00
Gary Russell
f2fef2a7e9 INT-2855 File Tailing Inbound Channel Adapter
Two implementations:

  - native 'tail' command (e.g. tail -F -n 0 /foo/bar)
  - Apache commons-io Tailer

Further changes:

 - Add documentation to section "what's new"
 - Add a JUnit @Rule so the OSDFTMP test doesn't fail on Windows
2013-05-20 11:16:00 -04:00
Gary Russell
81bfaeb8a9 INT-3002 Fix Content-Type Mapping
https://jira.springsource.org/browse/INT-3002

The AMQP outbound endpoint behaves differently when configured
as a gateway compared to when it is configured an adapter.

With the adapter, the header mapper is invoked after the message
converter (via the MPP callback).

With the gateway, the mapper is invoked before the converter.

The SimpleMessageConverter unconditionally sets the content-type,
overriding any mapped content type.

Change the code to invoke the header mapper after the converter
to match the adapter logic.

Remove the TODO. The method now exists, but Using a MPP in the
gateway case does not provide access to headers on the reply.

Add test cases.
2013-05-07 13:24:57 -04:00
Artem Bilan
bb77f508ec INT-2455: Support HTTP Outbound 'encode-uri' Flag
The `<http:outbound-channel-adapter>` and `<http:outbound-gateway>` now provide
an `encode-uri` option that controls whether the request uri is encoded
(default `true`).

It can be useful in some scenarios with a non standard URL, e.g. RabbitMQ REST API:
'http://foo.RabbitMQ.com/api/queues/%2f/bar.queue' where we must not
encode the '%'.

https://jira.springsource.org/browse/INT-2455

INT-2455: Polishing based on PR comments

INT-2455: 'encode-uri' in the Reference Manual
2013-04-30 11:48:53 -04:00
Artem Bilan
a103e43c6a INT-2831: Add Jackson 2 support
Add Jackson 2 support while retaining backward compatibility as much as possible.

Introduce a new abstraction for JSON conversion.

JIRA: https://jira.springsource.org/browse/INT-2831

INT-2831: Polishing

* remove `JsonObjectMapperFactoryBean`
* add @Deprecated constructors to `ObjectToJsonTransformer` and `JsonToObjectTransformer`

Polishing

Docs, compiler warnings.
2013-04-30 09:33:19 -04:00
Gunnar Hillert
88165c8881 INT-2980 Jdbc Message Store: Polling Wrong Message
* Add Join to JDBC Query
* Add MySql-specific tests
* INT-2987 - MessageStore MySQL - Support Fractional Seconds
  - Update MySql Connector version to 5.1.24
  - Add DDL scripts for MySql versions 5.6.4 and higher

INT-2980 - Check also for Regions

* Add test

INT-2980/INT-2987 - Add Documentation

INT-2980 - Doc: Add info to What's New Section
2013-04-24 11:21:21 -04:00
Gary Russell
14a7953ff6 INT-2892 Add 'local-filter' to (S)FTP Adapters
Allow the replacement of the default AcceptOnceFileListFilter.
2013-04-24 00:11:28 -04:00
Gary Russell
7908655883 INT-2982 Add Syslog Inbound Channel Adapter
* Supports UDP/TCP syslog messages.
* See docbook patch for more information.

For reference see: https://jira.springsource.org/browse/INT-2982
2013-04-23 23:36:36 -04:00
Gary Russell
c224d445ac INT-2981 - Add Rename (mv) to (S)FTP Gateway
* (S)FTP Change Commands, Options to Enums
* INT-2981 Add Support For 'mv' To File/Remote/GW
* INT-2981 (S)FTP Namespace Support and Docs
* INT-2981 Create Remote Dirs if Needed
* INT-2981 Add 'mv' Command to What's New
* INT-2981 Polishing - PR Comments
* Add javadocs to enums.
* Polish schemas to use an enumerated type for available gateway commands
2013-04-16 16:26:29 -04:00
Artem Bilan
6b7ae6ceed INT-2720: UriTemplate Support for S-WS Transports
Remove deprecation in the WS module

JIRA: https://jira.springsource.org/browse/INT-2720
      https://jira.springsource.org/browse/INT-2530

INT-2720: Polishing after rebase

INT-2720: Add a note to the Reference Manual

Polishing <authorgroup> to avoid extra whitespace before name

INT-2720: Pr comments & polishing

* Revert removed public API
* Revert tabs in What's new
* Change real URL to fake to allow for tests to work off-line
* Add smackx dependency to avoid error messages in logs
2013-04-10 09:54:34 -04:00
Artem Bilan
4473e565a5 INT-2971: AMPQ 'header-mapper' XSD Polishing
* Change expected type from the `HeaderMapper` to the `AmqpHeaderMapper`
* Add 'header-mapper' mutually exclusivity failing tests
* Change AMQP doc to reference `AmqpHeaderMapper` not `HeaderMapper`

JIRA: https://jira.springsource.org/browse/INT-2971

INT-2971 Polishing

Polish schema docs; add info about STANDARD_*_HEADERS.
2013-04-09 10:00:11 -04:00
Gary Russell
d54a88f528 INT-2939 LoggingHandler Improvements
- Don't evaluate expression if the log level is not enabled
- Add mutually exclusive assertions (already protected by the parser
  but not for programmatic configuration).

INT-2944 Document <logging-channel-adapter/>

Add reference sub-chapter.

INT-2939 Polishing - PR Comments

- remove unnecessary cast.
- add setter for level changes.

Polishing

* Change setter to use enum.
* Add getter for current level.
* Rename method to 'createLogMessage'.
2013-04-03 00:11:17 -04:00
Gary Russell
e8333ae737 Fix Typo in Reference
s/Adivce/Advice/
2013-03-26 11:48:35 -04:00
Gunnar Hillert
26e41c8858 INT-2960 - Remove deprecated 'xpath-selector'
For reference see: https://jira.springsource.org/browse/INT-2960

* Remove 'xpath-selector' from XML Schema
* Remove parser class
* Remove tests
* Remove respective reference documentation
2013-03-14 15:48:20 -04:00
Gunnar Hillert
06831b9e22 INT-2882 Upgrade DocBook Reference Plugin to 0.2.6
For reference see: https://jira.springsource.org/browse/INT-2882

* Verify spacing
* Ensure all source code samples are typed: e.g. <programlisting language="xml">
* Ensure source code fits space in PDF format
2013-03-12 18:45:25 -04:00