Depending on timing, it was possible the event the test
case was waiting for would never happen. With no timeout
the selector will block until the next IO event occurs,
and there is none in this test.
Adding a call to factory.close() forces a wakeup of
the selector, which will force the harvest to occur.
This is a test-only problem.
When using NIO, a Map of connections is maintained (keyed
by the SocketChannel) and used to manage registrations
for NIO events, timeouts etc.
When a connection is closed, the corresponding entry
should be removed from the map. The code to do this
is in AbstractConnectionFactory.processNioSelections().
However, if no socket timeout (soTimeout) has been set,
or it was explicitly set to 0, connections are not
removed from the map. This was because the timeout
logic and map cleanup is done in the same iteration
loop.
Now, if soTimeout is not set, the clean up loop
operates every nioHarvestInterval milliseconds
(default 2000), we don't want to run it on
every selector event.
In addition, it runs if the selectionCount is
zero - this might occur when a socket
is closed, when the selector.wakeup() is called.
INT-2519 Polishing
Rename connections field in NIO connection factories. Name
collision caused TestUtils problem on some platforms.
Pool based on algorithm used for spring-integration-file
CachingSessionFactory introduced by INT-2146. Refactored
that code to use the common SimplePool.
One difference to the previous implementation is the
ability to change the pool size dynamically.
If the size is reduced and more than the new size are
in use, items are closed as they are returned until
the pool size is as requested.
Initial commit.
Allow Pool Size Changes
Factor out Pool
Polishing
Pool Tests
Default forever
Javadocs, File
Polishing
INT-1871 PR Polishing
* Consistent/cleaner method names
* Track checkouts; reject release of 'foreign' objects.
* Add 'getAllocatedCount()'
* Move What's new in 2.1 to history.
* Add What's new in 2.2 section.
* Add note about caching connections in TCP
INT-2538 Polishing
PR Review comment.
Previously, when a client connection factory was used by
both an inbound and outbound adapter, the socket timeout
defaulted to 10 seconds.
This was inappropriate because, often, collaborating
channel adapters are used for aysnchronous messaaging and,
even when used for request/response, it is generatlly not
appropriate to timeout the socket due to a lack of recent
send activity.
Add 2.2 versions of module schemas.
JMX is already covered by an existing pull request.
INT-2536 Schema Check
Bump version for schema check in
AbstractIntegrationNamespaceHandler.
INT-2536 Remove Schema Versions
Some test config files had 2.1 versioned schemas.
Previously, ForkUtil only captured stdout from the forked
process.
Now both stdout and stderr are captured and echoed to
the corresponding PrintStream of the calling process.
Also removed the 200ms delay between each stdout line
captured.
* Update **build.gradle** and change the *springVersion* property to **3.1.1.RELEASE**
* Due to change in Spring 3.1, add missing method **getRawStatusCode()** in *org.springframework.integration.http.outbound.CookieTests*
* Upgrade Gradle Wrapper
* Remove deprecation warnings
* Fix Sonar Build
Depends on: https://github.com/SpringSource/gradle-plugins/pull/1
INT-2512 - Improve declaration of optional and provided dependencies
INT-2512 - Reverted Bundlor Plugin Version Number.
With that change the Spring Integration specific part of the code changes is decoupled from the Bundlor pull request:
https://github.com/SpringSource/gradle-plugins/pull/1
.
Once the Bundlor plugin is updated and released, I can bump the version number (Only then, though all deprecation warnings will be gone).
INT-2512 - Code Review
**Do we really want to add mavenlocal() permanently? I usually add it locally when I need it**
Sorry my bad. Forgot to remove my local addition.
**snapshot?**
The Bundlor plugin relies on Snapshot releases for the Gradle plugin (I reverted the DocBook version).
**mixed leading tabs and spaces**
Removed every single leading space. Unfortunately, there were lots of spaces. Took a while. I hope this looks much better.
**Why are we removing this? Don't we need a local install any more?**
The Maven install logic is now handled by the customized/extended "maven" plugin in **publish-maven.gradle**. This is how Chris has set it up for the Spring Framework.
INT-2512 - Remove mavenLocal()
Change 'build/jacoco.exec' to '${buildDir.name}/jacoco.exec'.
ExtendedSession, with the listNames() method was introduced
in 2.1.1 (INT-2492) to support mget commands on the gateway.
This was to avoid breaking any user implementations of Session
in a point release. However, we documented this was temporary
and the interfaces would be consolidated in 2.2., and
ExtendedSession would be removed.
This is that consolidation.
Channel creation logic for channels that are not explicitly defined but identified via an 'input-channel' attribute on the corresponding endpoint is now done by ChannelInitializer - an InitializingBean implementation.
This bean plays a role of pre-instantiator since it is instantiated and initialized as the very first bean of all SI beans using AbstractIntegrationNamespaceHandler
INT-2434-v3 polishing
INT-2434-v3 polishing, changed ChannelCreatingFactoryBean from BeanFactoryPostProcessor to BeanFactoryAware
INT-2434 polishing
fix the test
changed the default name of the CHANNEL_CREATOR_BEAN_NAME to a simple name
added additional test
changed ChannelCreatingFactoryBean from FactoryBean to InitializingBean and renamed it to ChannelInitializer
INT-2434 added test validating how automatic channel creation can be disabled
INT-2434 polished based on the latest PR comments
INT-2434-v3 polishing based on comments and discussions with @markfisher and @garyrussell. Added support for disabling aut-creatioin of channels
INT-2434-v3 polished based on @garyrussell last comments
INT-2434-v3 final polishing
Added bean resolver to ContentEnricher
INT-2451 Polishing - PR Review Comments
Disallow bean resolution in the name expression for content enricher
properties - the name expressions can only resolve to payload
properties. Value expressions can resolve to beans and bean properties.