Commit Graph

8089 Commits

Author SHA1 Message Date
Artem Bilan
d0af90db62 Another fix for failing tests
* `JmsOutboundGatewayTests`: just increase timeouts. Looks like embedded ActiveMQ Broker takes more time to interact on high-loaded builds
* `TcpOutboundGatewayTests`: Rework the race condition fix to the atomic `remoteTimeout`  change using mocks
2015-10-21 19:04:01 -04:00
Artem Bilan
aa3e3c7098 Fix some failing tests
* Modify `ControlBusTests.testControlHeaderChannelReaper()` do not rely on the `timeout`.
Make artificial expiration for the entry in the `registry` to allow `reaper` to remove it according the test logic.
* Fix race condition around `gateway.setRemoteTimeout(5000);` in the `TcpOutboundGatewayTests`.
 The problem was that the gateway is called concurrently and `setRemoteTimeout` might be changed before the `handleMessage()` even for the first attempt.
2015-10-21 17:15:23 -04:00
Artem Bilan
8637f86d74 Increase timeouts for JMS tests
The `ExtractRequestReplyPayloadTests` uses `3000` for `reply-timeout`.
This value might not be enough on high-loaded environment such a CI Server:
https://build.spring.io/browse/INT-B41-450

* Increase the timeouts for adapters to the `10000` to have more chances to pass on the CI.
* Some simple code polishing for the `ExtractRequestReplyPayloadTests`
2015-10-21 16:11:04 -04:00
Artem Bilan
152f46719a INT-3858: Doc File Inbound scanner and filter
JIRA: https://jira.spring.io/browse/INT-3858

PR Comments
2015-10-21 15:39:03 -04:00
Gary Russell
3118596427 INT-3860: TCP - Fix Port Conflicts
JIRA: https://jira.spring.io/browse/INT-3860

Similar to INT-3794, if some other process is bound to all adapters

    $ lsof -i tcp -nP | grep 9000
    java       6604 grussell  380u  IPv6 0x407e749ec47fa337      0t0  TCP *:9000 (LISTEN)

The socket utils reports that the localhost is available for binding; however, the test then
binds to all adapters.

1. Where (easily) possible, change tests to use port=0 and let the OS choose.
2. For other tests, use high-numbered ports.
3. Change tests to explicitly bind to localhost (like the utility did).
4. Fix `tcpOutboundGatewayInsideChain` test to use the correct port.

Polishing - Fix Travis

Bind SOLingerTests to localhost.

Since we're using port 0, we have to wait until listening before calling getPort().
2015-10-20 18:17:05 -04:00
Gary Russell
b3571a1705 INT-3857: Avoid ctor Injection in Aggregator FB
JIRA: https://jira.spring.io/browse/INT-3857

Setter injection avoids early instantiation of FB properties.

Enhance aggregator parser tests to include several new properties to
check coverage in FB.

Clean up other tests.

Polishing - PR Comments
2015-10-20 16:35:07 -04:00
Artem Bilan
56374212d1 INT-3853: Fix ${} resolution for Ann & XML mix
JIRA: https://jira.spring.io/browse/INT-3853

Previously the placeholder definitions for the Messaging Annotation weren't be resolved
if we use `<context:property-placeholder>` instead of `@PropertySource`.

Fix `MessagingAnnotationPostProcessor` and its "kindergarten" to use
`beanFactory.resolveEmbeddedValue()` instead of `environment.resolvePlaceholders()`.
2015-10-19 16:33:52 -04:00
Gary Russell
6d9e36e47f Spring Framework 4.2.2; AMQP 1.5.1 2015-10-16 16:24:56 -04:00
Artem Bilan
e1e89915ce INT-3855: Docs: File adapters - Java & DSL Config
JIRA: https://jira.spring.io/browse/INT-3855

PR Comments
2015-10-16 16:20:16 -04:00
Gary Russell
2fb039004d INT-3852: Support ObjectName Customization
JIRA: https://jira.spring.io/browse/INT-3852

Custom object names in `@IntegrationManagedResource` were ignored.

Some EIP objects were wrapped with their `Lifecycle` in order to expose
a single MBean with all attributes and operations.

This process "hid" the annotation so the object namer failed to detect the
presence of a custom object name or the other attributes.

Also, update the `@IntegrationManagedResource` to use the Spring 4.2 `@AliasFor` annotation.

INT-3852: Polishing

Polishing - Test with Proxy
2015-10-14 15:24:44 -04:00
Artem Bilan
ccc1568b89 INT-2541: Fix @ManagedResource JMX registration
JIRA: https://jira.spring.io/browse/INT-2541

The `IntegrationMBeanExporter` doesn't register any `@ManagedResource` automatically.
Its `autoDetection` is disabled by default.
Hence such a components like `AbstractMessageGroupStore`
or `WireTap` aren't exposed to the JMX by the `IntegrationMBeanExporter`.
From other side `MBeanExporterHelper` aims to help to avoid duplicate exposing if
an `MBeanExporter` is presented in the CTX.
But `MBeanExporterHelper` did that unconditionally just for the whole `org.springframework.integration` package.
Therefore components which aren't EIP ones aren't exposed to the JMX at all.

* Fix `MBeanExporterHelper` to deal for exclusion based on the `@IntegrationManagedResource` annotation.
* Remove `@IntegrationManagedResource` from those components which aren't EIP.
* Make some polishing in the JMX tests.
2015-10-13 12:32:07 -04:00
Artem Bilan
f049541b00 INT-3809: Improve SimpleIncrIdGenerator JavaDoc
JIRA: https://jira.spring.io/browse/INT-3809
2015-10-12 11:22:53 -04:00
Gary Russell
4d57acb45e INT-3851: Docs - Fix Typo
JIRA: https://jira.spring.io/browse/INT-3851
2015-10-12 09:19:01 -04:00
Artem Bilan
d21b42dbcf Java & DSL Config for the QueueChannel
Also fix some typos in the `mongodb.adoc`
2015-10-09 15:51:37 -04:00
Artem Bilan
bbfde40694 INT-3850: Fix SpEL usage in the CacheWritingMH
JIRA: https://jira.spring.io/browse/INT-3850

**Cherry-pick to 4.1.x, 4.0.x, 3.0.x**
2015-10-09 12:50:48 -04:00
Gary Russell
b6467e1329 INT-3849: Fix File Inbound Adapter Regression
JIRA: https://jira.spring.io/browse/INT-3849

A file inbound adapter with just a `filter` attribute (no implied filter attributes)
did not get its filter injected.

The parser took an early exit from the filter configuration if none of the implied
filter attributes were specified.

Work around is to explicitly set `ignore-hidden="true"`.
2015-10-09 11:03:02 -04:00
Artem Bilan
dd14e6142b INT-3844: Upgrade to Reactor-2.0.6
JIRA: https://jira.spring.io/browse/INT-3844
2015-10-07 14:10:00 -04:00
Artem Bilan
4034930f16 INT-3848: ERROR log for the null beanName
JIRA: https://jira.spring.io/browse/INT-3848

When the `ConsumerEndpointFactoryBean` is created programmatically
the `beanName` property may be missed and the `catch` for the `NPE`
just hides an issue with the `DEBUG` log message.

Add check for the `null` on the `bean` and log the issue on ERROR level.

**Cherry-pick to the 4.1.x, 4.0.x and 3.0.x**
2015-10-07 12:51:17 -04:00
Gary Russell
aa7f4e02ed INT-3841: Fix New Test
New test channel remains as a listener on the connection factory.
2015-10-07 10:47:27 -04:00
Artem Bilan
e1166fd6d0 INT-3841: Fix NPE in the AmqpChannelFactoryBean
JIRA: https://jira.spring.io/browse/INT-3841

Previously the `isPubSub` was as `Boolean` object and `null` by default.
Convert it to the primitive to achieve the `false` logic by default as expected.
2015-10-07 10:08:02 -04:00
Gary Russell
1ad51b8051 Fix Stomp Test Race Condition
Test wasn't waiting until the adapter was subscribed after restart.
2015-10-07 09:21:51 -04:00
Gary Russell
0fd5f5ced8 Header Enricher Docs: JavaConfig and DSL samples 2015-10-01 18:13:58 -04:00
Gary Russell
b2d04bf7de AMQP Docs: Add JavaConfig and DSL samples 2015-10-01 14:33:49 -04:00
Gary Russell
d09431a951 (S)FTP Docs: Fix PDF Overflows
Also use space instead of tab in code snippets.
2015-10-01 12:49:11 -04:00
Artem Bilan
1a0cbf0494 INT-3840: Fix RollbackLocalFilterTests
JIRA: https://jira.spring.io/browse/INT-3840

* In addition: fix some typos in the `SftpInboundRemoteFileSystemSynchronizerTests`

**Cherry-pick to 4.1.x**
2015-09-30 19:20:44 -04:00
Gary Russell
3fe71ed77c INT-3827: Fix Test Case
Clean up file before/after.
2015-09-29 16:41:51 -04:00
Artem Bilan
4f979f91aa INT-3829: Fix typos in the endpoint.adoc
JIRA: https://jira.spring.io/browse/INT-3839
2015-09-29 14:14:33 -04:00
Gary Russell
0d721739e9 INT-3827: ResettableFileListFilter
JIRA: https://jira.spring.io/browse/INT-3827

Provide a hook to enable removing a file from an `AcceptOnceFileListFilter`,
for example after a message processing failure.

Make the `CompositeFileListFilter` a `ReversibleFileListFilter` so it can
delegate to any of its composed filters that are reversible.

INT-3827: Polishing - PR Comments
2015-09-29 13:59:51 -04:00
Gary Russell
4c171a54ed INT-3835: Fix ERROR_CHANNEL Constant in Reference
JIRA: https://jira.spring.io/browse/INT-3835
2015-09-29 13:46:51 -04:00
Artem Bilan
7a5c9438e3 INT-3836: Upgrade to spring-social-twitter-1.1.1
JIRA: https://jira.spring.io/browse/INT-3836

Nothing changed from the module perspective - only tests to apply a new API.
2015-09-28 18:46:42 -04:00
Gary Russell
6ca1aab8d1 INT-3831: MessageGatewaySupport Statistics
JIRA: https://jira.spring.io/browse/INT-3831

Implement `MessageSourceMetrics` in MGS.
2015-09-28 18:06:19 -04:00
Gary Russell
934c36509c Fix Exponential Representation in Reference Manual
Asciidoc interprets the asterisks in 2**31 as formatting (bold).

Change to `^`.
2015-09-28 18:02:36 -04:00
Gary Russell
4ab2c158b3 INT-3837: TCP GW - Propagate Socket Timeout
JIRA: https://jira.spring.io/browse/INT-3837

INT-3103 introduced exception propagation to waiting gateway threads.

However, `SocketTimeoutException`s were not propagated (in all cases
since 4.2 and for single-use sockets since 3.0).
2015-09-28 10:11:23 -04:00
Artem Bilan
c23aa70ec8 INT-3829: Honor @Profile on Messaging @Beans
JIRA: https://jira.spring.io/browse/INT-3829

Alongside with the `@Bean` definition we can use, for example, `@Profile` `@Conditional` annotation.
And the final bean won't be populated to the context.

When messaging annotations are present on `@Bean`s, a second bean for the endpoint consumer
is created.

Previously, the `MessagingAnnotationPostProcessor` did not check if the `@Bean` was present;
hence we ended up with a `NoSuchBeanDefinitionException`

* Add appropriate `try...catch(NoSuchBeanDefinitionException)` to the `AbstractMethodAnnotationPostProcessor` and
`InboundChannelAdapterAnnotationPostProcessor` to skip further endpoint processing if the bean does not exist.

Add DEBUG message for the skipped beans

Polishing
2015-09-23 11:03:07 -04:00
Yi EungJun
a9f50d32e4 Add InputStream to FileWritingMH JavaDoc
InputStream has been supported since 247232bdde.
2015-09-22 11:55:19 -04:00
Gary Russell
a47810935e INT-3824: Fix PDF Line Overflows
JIRA: https://jira.spring.io/browse/INT-3824
2015-09-22 11:41:04 -04:00
Gary Russell
13b40376c0 INT-3826: Fix @EnableIntegrationManagement
JIRA: https://jira.spring.io/browse/INT-3826

Application Context would not initialize with annotation without attributes.

Defaults were wrong; metrics factory bean name.

Make `IntegrationManagementConfigurer` more robust for the external options
2015-09-22 11:38:57 -04:00
Eric Bottard
9505420ae8 Fix grammar error in doco 2015-09-22 10:35:24 +02:00
Spring Buildmaster
af66aa0064 [artifactory-release] Next development version 2015-09-09 12:29:56 -07:00
Spring Buildmaster
b80fa8fa6e [artifactory-release] Release version 4.2.0.RELEASE 2015-09-09 12:29:50 -07:00
Artem Bilan
da65c1620b AggrIntegrationTests: increase receive timeout
https://build.spring.io/browse/INT-B41-JOB1-415
2015-09-09 14:57:13 -04:00
Artem Bilan
d8fc94602c INT-3820: Fix MethodInvokerHelper for the Proxy
JIRA: https://jira.spring.io/browse/INT-3820

Some Proxy may be based on the specif non-user classes and advised with
the provided end-user interfaces.
The best sample is `@Repository` from Spring Data projects.
In this case the `MessagingMethodInvokerHelper` just missed the user interfaces
to consider for the candidate methods or thrown an `Exception` like `NoSuchMethodError`.

* Add `((Advised) targetObject).getProxiedInterfaces()` for the scanning algorithm
* Move the `UniqueMethodFilter` to the internal `Set<Method>` to allow iteration
and filtering for methods from the `targetClass` as well as from all those user interfaces
* Add Spring JPA repository test-case
* Polishing form some time-weak tests

Revert MessagingMethodInvokerHelper

INT-3820: Simple Proxy Interface Method Matching

No-risk solution for INT-3820.

Instead of considering all interfaces on the proxy, only look at proxy interfaces
for a single matching method name if we find no candidate or fallback methods.

Consider the complete solution for 4.3.

Add `Message<?>` method distinguishing
2015-09-09 14:33:38 -04:00
Gary Russell
ca62f18a7b INT-3815: Update to Spring AMQP 1.5.0.RELEASE
JIRA: https://jira.spring.io/browse/INT-3814
2015-09-09 14:25:51 -04:00
Artem Bilan
cb318f59ee INT-3821: Description for MessagingException ctor
JIRA: https://jira.spring.io/browse/INT-3821

The `MessagingException` provides an empty String for its `NestedRuntimeException`
for those ctors which are without `description` argument.

The `NestedRuntimeException` uses `NestedExceptionUtils.buildMessage` for `getMessage()` implementation
and the algorithm there is based on the `message != null` condition to build the first part of the nested
cascade. In the case of empty String we end up with useless ";" part in the StackTrace logs.

Fix Framework classes to use the `MessagingException` ctor with particular description.
2015-09-08 22:55:52 -04:00
Artem Bilan
f607f83bf2 INT-3804: WatchServiceDirScan: Add OVERFLOW Event
JIRA: https://jira.spring.io/browse/INT-3804

INT-3804: Polishing

Fix race conditions.
2015-09-04 17:07:46 -04:00
Gary Russell
4f648a7e4f INT-3818: Multipart Pass Through Converter
JIRA: https://jira.spring.io/browse/INT-3818

INT-3818: Fix Pre JDK8 Syntax

Polishing - PR Comments

Add author name
2015-09-03 21:00:56 -04:00
Artem Bilan
f26bfd5b33 Upgrade to SF-4.2.1.RELEASE
Increase `refreshTimeout` for `GroovyScriptExecutingMessageProcessorTests`
to avoid timing issue for the first `Thread.sleep(20)`
2015-09-01 21:07:44 -04:00
Artem Bilan
c86141cff7 INT-3813: HTTP module improvements
JIRA: https://jira.spring.io/browse/INT-3813
2015-09-01 12:50:44 -04:00
Artem Bilan
f3a8f04f68 Upgrade to SF-4.2.1.BUILD-SNAPSHOT 2015-08-31 15:19:27 -04:00
Gary Russell
3069dd746f Revert Address.equals() Test
Address.equals() fails with the Spring IO compatibility build.
2015-08-31 14:24:45 -04:00