Commit Graph

8200 Commits

Author SHA1 Message Date
Artem Bilan
6beaa2e89a Fix JMS tests for ActiveMQ-5.13.0 2016-01-07 18:40:40 -05:00
Artem Bilan
ada3f00aa9 Upgrade to ActiveMQ-5.13.0 2016-01-07 15:15:23 -05:00
Gary Russell
b8b7c1ec1c INT-3929: MessagingGateway Annotation Detection
JIRA: https://jira.spring.io/browse/INT-3929
2016-01-07 14:11:06 -05:00
Gary Russell
d684dc4d0e INT-3902: XML: SmartLifecycle, Order Attributes
JIRA: https://jira.spring.io/browse/INT-3902

Polishing

Polishing - PR Comments

Introduce `RouterFactoryBean.setSendTimeout` and deprecate `setTimeout`
2016-01-07 14:08:32 -05:00
Artem Bilan
74cbc58698 INT-3926: Add <poller> for all outbound tags
JIRA: https://jira.spring.io/browse/INT-3926

* Add `<poller>` for all `<outbound-adapter(gateway)>`
* Add/modify tests for `<queue>` as an input channel and particular `<poller>`
* Move XSD from the `xml` package to the `config` level to achieve the consistency throughout the project.
2016-01-07 12:16:40 -05:00
Artem Bilan
afc286a66a INT-3927: Docs for IntegrationComponentScan
JIRA: https://jira.spring.io/browse/INT-3927

PR Comments
2016-01-07 11:59:15 -05:00
Artem Bilan
5b7c5b4b72 Merge branch 'INT-3922' 2016-01-06 17:05:05 -05:00
Gary Russell
019470c769 INT-3922: Router FB - outputChannelName
JIRA: https://jira.spring.io/browse/INT-3922
2016-01-06 17:04:36 -05:00
Gary Russell
11ba07e3e3 INT-3890: AMQP: Content-Type Conversion Outbound
JIRA: https://jira.spring.io/browse/INT-3890
2016-01-06 12:31:09 -05:00
Artem Bilan
fec2a36f42 INT-3916: Don't Use CTOR Injection in FactoryBean
JIRA: https://jira.spring.io/browse/INT-3916

The `JpaOutboundGatewayFactoryBean` used CTOR injection for the `JpaExecutor`.
That one, in turn, uses CTOR injection for the `EntityManagerFactory`.

Such a dependency may cause the `early bean instantiating` in case of `AbstractAutowireCapableBeanFactory.getSingletonFactoryBeanForTypeCheck()`.
And we end up with the `BeanCurrentlyInCreationException`.

Therefore no one `FactoryBean` should use CTOR injection if there is a potential hierarchical dependency.

NOTE: there is no tests on the matter, since we don't change the components behavior.
The `JPA` sample application will be changed to the Boot to track this fix.

**Cherry-pick to 4.2.x**

Address PR comments and fix other `FactoryBean`s for the same issue, when it is reasonable

Polishing

Address PR comments

Make setter `setSockJsTaskScheduler` as `public`
2016-01-06 12:02:26 -05:00
Artem Bilan
2be12160e9 INT-3726: Support Path for FileHeaders.FILENAME
JIRA: https://jira.spring.io/browse/INT-3726

Since the `FileHeaders.FILENAME` header is relaxed String, we can use any value there.
For example some use-cases (e.g. unzipping) would like to use the relative path together with the file name
to restore the original directory structure in the target directory using `FileWritingMessageHandler`.

Use `resultFile.getParentFile().mkdirs()` in the `FileWritingMessageHandler` to recreate the directory hierarchy before the target file manipulating.

Add Documentation

Address PR comments
2016-01-05 17:08:03 -05:00
Gary Russell
2f56bb1329 INT-3899: Defer Poller Creation Until start()
JIRA: https://jira.spring.io/browse/INT-3899

Previously, within `AbstractPollingEndpoint`, the `Poller` object was
created from `afterPropertiesSet()` as well as `start()` if previously `stopped()`
(`this.initialized == false`).

This precluded modification of the advice chain (e.g. in tests when using
`autoStartup == false`).

Move the poller creation to `start()` so that it is always created then, and does
not require a previous `stop()` to change the advice chain.
2016-01-05 14:43:28 -05:00
Gary Russell
eb34d5c9e6 Reference Copyright -> 2016 2016-01-05 12:10:11 -05:00
Artem Bilan
2546ac3d52 INT-3924: Fix RedisQueueInboundGateway
JIRA: https://jira.spring.io/browse/INT-3924

* The `RedisQueueInboundGateway` and `RedisQueueMessageDrivenEndpoint` used `MICROSECONDS` for the wait for stop condition.
  - Change to `MILLISECONDS`
* Both of them may pick up data from the Redis List even after the `stop()`.
  - Add `rightPush()` to the `RedisQueueInboundGateway` to emulate `rollback`.
  - Even if we have `rollback` there we may "steal" messages after the `context.stop()` causing unexpected race condition.
     So change the logic between `stopTimeout` and `receiveTimeout` to `max`, thus we wait for stop more than for `rightPop`.
* Some attributes have been missed for the XML configuration.
  - add `stop-timeout` and `recovery-interval` attributes to the XSD and parsers code.
  - adjust `RedisQueueGatewayIntegrationTests` to use those new attributes.
* Some tests needed polishing:
  - Rework `RedisStoreOutboundChannelAdapterIntegrationTests` to be based on `@ContextConfiguration` for better performance
  - `RedisChannelParserTests` used to `mock` channels for the same Redis topic. Change of of them to different name to avoid `Dispatcher has no subscribers`
    from the `testPubSubChannelUsage()` when the second `SubscribableRedisChannel` doesn't have subscribers.
* Polishing for `redis.adoc`

Address PR comments

* Rework logic to the `Math.min(this.stopTimeout, this.receiveTimeout)` on the adapter/gateway `stop()`
* Fix JavaDocs and `redis.adoc` to describe `stopTimeout` properly.
* Rework `RedisQueueGatewayIntegrationTests` to be based on the `randomUUID` for the queue name to send and receive.

Address PR comments.
2016-01-04 16:43:45 -05:00
Artem Bilan
f5781bfff8 INT-3918: Use MockMvc instead of Sun HttpServer
JIRA: https://jira.spring.io/browse/INT-3918
2016-01-04 15:21:03 -05:00
Marcin Pilaczynski
8bf8caa22e INT-3883: UDP: destination and socket expressions
JIRA: https://jira.spring.io/browse/INT-3883

UDP Outbound Channel Adapter is able to use given UDP Inbound Adapters
server socket (outgoing packets will have source port same as incoming
packets destination port).

* Introduce `destinationExpression` instead of hard-coded `host/port` logic in the `DatagramPacketMessageMapper`
* Make `UnicastSendingMessageHandler.destinationExpression` mutually exclusive with `host/port` pair
* Move `socketExpression` to the setter as it is absolutely different option from the `destination`
* Make `UnicastSendingMessageHandler` expressions logic based on the `requestMessage`

INT-3883 Code review fixes.

Further polishing

Polishing according PR comments

Rework the String socket address logic just to the expected `URI` style.
Accept `2016` for changed classes.
2016-01-04 14:31:40 -05:00
Gary Russell
41c48548f1 Fix AsciiDoctor Conversion Problems 2016-01-01 11:25:42 -05:00
Artem Bilan
1bd955bef0 @Publisher and @Gateway JavaDocs
PR Comments

Additional info

Polishing
2015-12-30 13:13:01 -05:00
Artem Bilan
f7e04918c5 SocketUtils: Fix the multi port function for 0
https://build.spring.io/browse/INT-B43-47
2015-12-28 18:49:27 -05:00
Artem Bilan
287173bc67 Fix TCP tests to use 0 port
https://build.spring.io/browse/INT-MJATS41-495
https://build.spring.io/browse/INT-AT42SIO-16

Can be backported to `4.2.x` on demand
2015-12-28 18:22:07 -05:00
Gary Russell
d71236ee76 (S)FTP Doc Polishing 2015-12-25 10:46:42 -05:00
Artem Bilan
66d02a6b95 Fix compatibility with IO Platform
https://build.spring.io/browse/INT-MJATS41-492

The SI-4.3 has been upgraded to openJpa-2.4.0 for Class Transformation on Java 8 support.
 The Spring IO is still on openJpa-2.3.0.
 Using version in the agent pattern isn't good idea to distinguish the proper jar, because IO does version re-mapping at runtime.
 Change the pattern to consider version as is, but don't match other openJpa jars (transitive required dependencies) in the classpath, e.g. `openjpa-persistence-jdbc` .
2015-12-24 11:13:03 -05:00
Artem Bilan
6e32deb60f Upgrade some dependencies for 4.3 2015-12-23 09:47:14 -05:00
Artem Bilan
59eb565296 Fix handler-advice.adoc
Cherry-pick to `4.2.x`
2015-12-22 18:16:25 -05:00
Gary Russell
6bc619dc22 INT-3921: SimplePollSkipAdvice
JIRA: https://jira.spring.io/browse/INT-3921

Polishing - PR Comments

Also increased some timeouts in JsonPathTests (and fixed a loop counter).
2015-12-21 14:37:23 -05:00
Gary Russell
ed874ea84a TCP ConnectionFactoryTests Race Condition
Wait for events.
2015-12-21 11:38:55 -05:00
Gary Russell
0458220756 TCP ConnectionFactoryTests Diagnostics
https://build.spring.io/browse/INT-SONAR-1582/
2015-12-20 16:07:01 -05:00
Artem Bilan
b7aa54a016 INT-2456: Polish http.adoc
JIRA: https://jira.spring.io/browse/INT-2456

Note: I don't see reason to extract separate paragraphs for gateway/adapter pairs.
2015-12-16 18:48:04 -05:00
Gary Russell
758a6bdab1 INT-3914: Add CompoundTriggerAdvice
JIRA: https://jira.spring.io/browse/INT-3914
2015-12-16 15:08:52 -05:00
Gary Russell
b5ec73b638 INT-3915: Possible Memory Leak in FileChannelCache
JIRA: https://jira.spring.io/browse/INT-3915

Close the redundant `FileChannel` when Map collision occurs.
2015-12-15 19:53:15 -05:00
Gary Russell
aca5646181 Retry Advice Test Polishing
Clean up and add test with recovery.
2015-12-15 19:49:58 -05:00
grafjo
52e690bc89 Fix sftp.adoc typos 2015-12-15 19:49:02 -05:00
Gary Russell
180ada63b0 INT-3912: TCP Server Listening Event
JIRA: https://jira.spring.io/browse/INT-3912

Polishing - PR Comments
2015-12-15 10:15:13 -05:00
Artem Bilan
471d08250d Add MulticastRule to Check the NIC for Tests
Add `skip` variable

Polishing

Tests failed after installing VirtualBox.

Further polishing to skip `vboxnet` NICs.

Also explicitly set the multicast socket `interface` (instead of `networkInterface`)
to address a specic IPAddress if a NIC has multiple bindings.

Add `@MulticastRule` to `DatagramPacketMulticastSendingHandlerTests` (separate into
new test file).

Fix tests to use the rule's NIC.
2015-12-14 18:17:27 -05:00
Artem Bilan
68c0df5286 INT-3911: Restore removed @Deprecated
JIRA: https://jira.spring.io/browse/INT-3911

Deffer the removal to `5.0`
2015-12-14 12:35:00 -05:00
Artem Bilan
8a82585121 INT-3908: Fix NPE in the AbstractAggrMGProcessor
JIRA: https://jira.spring.io/browse/INT-3908

**Cherry-pick to ALL**
2015-12-14 12:06:08 -05:00
Artem Bilan
ddcca027f1 RedisStoreTest: increase timeouts 2015-12-14 12:02:18 -05:00
Artem Bilan
69c98c4aad INT-3909 @Ignore ClientWebSocketContainerTests
https://jira.spring.io/browse/INT-3909
2015-12-14 11:37:28 -05:00
Artem Bilan
7da183f8ed INT-3834: Upgrade to Smack-4.1.5
JIRA: https://jira.spring.io/browse/INT-3834
2015-12-09 12:09:25 -05:00
Gary Russell
0fc1f555e7 Test FTP Server - Let OS Choose Port 2015-12-09 11:29:06 -05:00
Artem Bilan
c810aaae12 INT-3897: Fix deadlock in the StompMessageHandler
JIRA: https://jira.spring.io/browse/INT-3897

The `StompMessageHandler` synchronized on the `sessionHandler` during `connectIfNecessary()`
performing mutually exclusive connect operation in the `StompSessionManager`.
Since the last one synchronizes on all `sessionHandler`s during its own operations, we end up with the deadlock
waiting for the `connectSemaphore`.

Change synchronization monitor object to the `connectSemaphore` accomplishing the same desired mutually exclusive connect logic
in the `StompMessageHandler`.

**Cherry-pick to 4.2.x**
2015-12-09 10:50:53 -05:00
Artem Bilan
5bc3208096 INT-3832: Upgrade to JsonPath-2.1.0
JIRA: https://jira.spring.io/browse/INT-3832
2015-12-08 19:30:44 -05:00
Artem Bilan
cf528c0b5d INT-3665: Remove Deprecations and Resolve Issues
https://jira.spring.io/browse/INT-3665

Fixes according Travis report

Introduce `...ExpressionString(String)` setter

Some further fixes and polishing

Address PR comments
2015-12-08 16:48:29 -05:00
Artem Bilan
84fdd98428 INT-3904: Fix NPE in the JsonPropertyAccessor
JIRA: https://jira.spring.io/browse/INT-3904

When we use the same expression several times, the SpEL engine cache an `accessor` after the first use.
The next evaluation just bypass `canRead()` and in case of JSON that mean that we don't check that the income has the field or not.
For this case the `read()` must return `TypedValue.NULL` instead of just `null`.
2015-12-08 15:55:54 -05:00
Gary Russell
d16cd9748c INT-799: Remove Core Deps from s-i-test
JIRA: https://jira.spring.io/browse/INT-799

Some test classes (e.g. `TestUtils`) were duplicated in core to avoid cyclic
dependency.

Now that core messaging has been moved to spring-messaging, it is possible
to remove the dependencies on `spring-integration-core` from `spring-integration-test`.

A few minor test cases have been moved to `spring-integration-core`.

The simple polishing to the `build.gradle` and `ServiceActivatorOnMockitoMockTests`
2015-12-07 20:39:00 -05:00
Gary Russell
5850022bfe Fix Python Scripting Javadoc 2015-12-07 15:48:57 -05:00
Gary Russell
255247ca9a Code Polishing (Sonar)
- remove redundant modifiers
- overridable methods called from ctors

Polishing - PR Comments
2015-12-07 15:39:13 -05:00
Gary Russell
ddb4321e1d INT-3900: Fix Doc
QOS > 0, not > 1.
2015-12-07 14:23:04 -05:00
Gary Russell
9fff767f71 INT-3900: MQTT: Don't Unsubscribe if !cleanSession
JIRA: https://jira.spring.io/browse/INT-3900

The message-driven adapter should not unsubscribe if `cleanSession` is
`false`.

INT-3900: MQTT: Changes for 4.3 Only

Doc Polishing
2015-12-07 14:10:24 -05:00
Gary Russell
e3d6f3fb6c INT-3884: Javadoc Fixes 2015-11-29 20:39:09 -05:00