Previously, the UDP inbound adapter was incorrectly using
the default task scheduler (taskScheduler) to run its main
receive activity. Once a packet is read, it is handed off
to another thread for message processing, using a configured
(or default) task executor.
We should not hold on to a scheduler thread permanently; the
default scheduler has only 10 threads and one user's app
stopped working when using 10 inbound adapters.
The work around was to define an explicit 'taskScheduler'
bean with more threads.
The problem reported by INT-2630 was more extensive. For example,
the unconditional parameter conversion causes arrays to be copied
unnecessarily.
The BeanFactoryTypeConverter now does a no-op conversion whenever
the source type is assignable to the target type.
This effectively reverts to the Spring 3.0 behavior, where this
assertion resulted in the argument not being added to the
argsRequiringConversion array.
Polishing
Add a couple more tests
Pseudo transaction support means some projects now
need a transitive dependency to spring-tx. Previously
the project was marked as optional in the POM.
Improve performance.
For NIO sockets, a pair of PipedInput/OutputStreams are
used to transfer data from the reading thread to the
assembling thread.
The stream used the default buffer size (1024) which was
inefficient for large messages.
This change uses the underlying socket's receiveBufferSize
attribute to set the size of the piped stream, allowing
for more efficient data transfer.
Also adjusts the mocks in the deadlock detection test
to ensure the received data is larger than the pipe
buffer size.
* make 'Groovy Control Bus' similar to 'Expression Control Bus'
* add tests about `abstract` & `prototype` Beans
* fix about lost `groovy.lang.Script#println()` functionality in the `GroovyControlBusFactoryBean$ManagedBeansBinding`
* polishing `GroovyControlBusDelayerManagementTest` to show abilities & fixes with this issue
JIRA: https://jira.springsource.org/browse/INT-2631
INT-2631: polishing according to PR comments
Spring-expression 3.1 unconditionally converts all arguments for
method calls; MessageHeaders and MessageHistory do not have
no-arg constructors and the MapToMapConverter always attempts
conversion, in case any elements require conversion.
We are exploring a Spring 3.1 change but, in the meantime, we
have a detour in BeanFactoryTypeConverter in that we
can skip conversion of these types.
Previously, the timeouts in @Gateway method annotations always
overrode the default timeout if specified in, say, XML.
Now, the @Gateway timeouts are applied only if
* The equivalent default was not set
* The annotation value is something other than the default (Long.MIN_VALUE)
Note: This is a breaking change for one scenario:
<int:gateway ... default-reply-timeout=1000 ... />
where the interface has a method annotated with @Gateway(replyTimeout=Long.MIN_VALUE)
In other words, when the user wants a default timeout on the gateway
but wants to override it for just the annotated method and happened to use
the new default value.
The @Gateway annotation does not allow us to detect whether its
attribute value came from the default or was explicitly set.
The work-around for this breaking change is to use a different negative
number to configure an infinite timeout:
@Gateway(replyTimeout=-1)
* Add beginShutdown() and endShutdown() to OrderlyShutdownCapable
* JMS/AMQP stop listener containers
* TCP (server side)
** after beginShutdown() disallow new connections, drop (log) new messages
** after endShutdown() close server socket
* HTTP (server side)
** after beginShutdown() disallow any new requests (503 Service Unavailable)
* Docbook updates
** What's new section
** Orderly Shutdown section.
* Fix docs don't mention the need to add **amqp_** prefix to headers in order to have *DefaultAmqpHeaderMapper* add it to the message
* List all available standard AMQP Headers from class *AmqpHeaders*
For reference see: https://jira.springsource.org/browse/INT-2454
* fix Missing documentation of "enableDaemonThread" property of the SFTP session factory
* Reference documentation clean-up
* Document all properties of the DefaultSftpSessionFactory
* Add *disposition-expression* to the inbound file adapter. This allows for operations such as *payload.delete()*, *payload.renameTo()* after the file is processed.
* The result of executing the expression (if any) is sent to the disposition-result-channel.
* Rework Http Inbound Gateway chapter, as it contains a link to a non-existing chapter
* Improve/rephrase/update chapter
* Add more relevant links to samples and external documentation
* <int-jmx:mbean-exporter...> doesn't exist in XSD v2.1 --> Should be **mbean-export**
* Convert tabs to spaces
* Fix code listings that go beyond margins
* Fixed several spelling errors
* Improve consistency
* Improve column layout of tables
For reference see: https://jira.springsource.org/browse/INT-2596
INT-2596 - PR Review
* Rephrased and clarified 3 paragraphs in the JMX chapter of the reference documentation
* add delegation to `BeanDefinitionReaderUtils.generateBeanName(definition, parserContext.getRegistry(), parserContext.isNested())`
in the `AbstractBeanDefinitionParser#resolveId()` implementations when it is necessary.
* remove redundant `shouldGenerateId()` & `shouldGenerateIdAsFallback()` when they don't make sense.
* additional simple polishing in the affected classes.
* remove TODO & forced 'id' attribute from JpaOutboundGatewayTests-context.xml to check that this solution works as was booked.
JIRA: https://jira.springsource.org/browse/INT-2607