JIRA: https://jira.springsource.org/browse/INT-3284
* Introduce `IntegrationConfigurationBeanFactoryPostProcessor`, `IntegrationConfigurationInitializer`
* Apply `IntegrationConfigurationInitializer` and 'spring.factories' for HTTP and Security modules
INT-3284: Address PR's comments
JIRA: https://jira.springsource.org/browse/INT-3287
* Fix package tangle (INT-3287)
* Apply `IntegrationConfigurationInitializer` for `MBeanExporterHelper`
* Previously, there was a separate `ChannelSecurityInterceptorBeanPostProcessor`
for each `ChannelSecurityInterceptor` whereas now, there is one `ChannelSecurityInterceptorBeanPostProcessor`
that processes all interceptors
INT-3284 Refactoring around config package tangle
When `MHE` was moved to spring-messaging, 2 constructors were
dropped. INT-3246 worked around it but it had undesirable
side-effects. Constructors have been added back in
spring-messaging so this commit reverts to using those
constructors.
JIRA: https://jira.springsource.org/browse/INT-3271
Use `Arrays.asList()` instead of `Collections.arrayToList()` in
places where a generic type needs to be supplied by the caller.
This maintains compile-time compatibility with both Spring 3 and 4,
where Spring 4 added the generic type to the utility class.
The four occurrences where this was needed are not impacted
by the fact that `Arrays.asList()` returns an unmodifiable list.
This commit updates Spring Integration to depend upon Spring 4, making
use of the message types that have moved from Spring Integration into
Spring's new spring-messaging module.
The default message converter no longer supports conversion of a
message that is null, throwing an IllegalArgumentException if an
attempt is made to convert null. Furthermore, GenericMessagingTemplate
does not support sending null, again throwing an
IllegalArgumentException. Previously, MessagingTemplate had no-oped an
attempt to send null.
ConcurrentAggregatorTests and AggregatorTests both had a single test
that was specifically testing the behaviour of an aggregator that
returns null for its message. These tests have been removed.
CorrelatingMessageHandlerTests have been updated to specify some
additional behaviour for its mocks so that null messages are not
returned.
These are the only functional changes that have been made. All other
changes are simply for moving to the repackaged and/or renamed types.
In the move to being part of core Spring, a number of constants and
header accessor methods have moved from MessageHeaders to
MessageHeaderAccessor. This commit continues this pattern for
the enterprise integration headers that are specific to Spring
Integration. A new class, EiMessageHeaderAccessor, has been created.
This class provides constants and methods for working with SI-specific
headers. The main code and tests have been updated to use this new
class.
Add the ability to inject the class name of the xslt transformer
implementation.
https://jira.springsource.org/browse/INT-2768
-add @author to java docs
-updat copywrite year to current year
add new test and check for class name that it exists.
-fix xslt payload transformer and test for unknown class name, will
now default to the jre default transformer.
Allow modification of context property accessors and
functions.
Polishing
- Fix tests to ensure the EvaluationContextFactoryBean is
available when necessary.
Polishing - Use Utility for ALL EvaluationContexts
Add Test Showing Custom Function
See SpelTransformerIntegrationTests-context.xml
Polishing
Polishing -fix Remote Sync
Polishing - Emit WARN if No BeanFactory
Polishing - Do Not Override ConversionService
Kludge to Prevent Warning When No BeanFactory
Expressions for method invoking in the MessagingMethodInvokerHelper
don't need a BeanFactory - suppress the warning.
Polishing - PR Comments - Invert Boolean
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
INT-2964 - JavaDoc: <emphasis> should be <em>
INT-2964 - JavaDoc: <p/> should be <p>
INT-2964 - JavaDoc polishing
* <li></li> should be wrapped in <ul></ul>
* wrap code snippets in {@code myCode()}
* change <code>false</false> to <code>false</code>
INT-2964 - Polish - Fix more JavaDoc errors
* Mockito-all dependency causes JavaDoc error. Change dependency to Mockito-Core.
* BeanDefinitionParserDelegate constructor now prefers an Environment. Circumvent this
preference by directly getting BeanDefinitionParserDelegate from the associated ParserContext
Copy schemas, cleanup whitespace, update spring.schemas files,
update version in AbstractIntegrationNamespaceHandler.
For each schema compared the 2.2 version with the 3.0 version
(diff -w), ensuring the only difference is the import of
3.0 schemas (where appropriate) instead of 2.2.
* Ensure that no deprecation warnings occur
* Spring Integration builds with all tests successfully for Spring 3.1.2.RELEASE and 3.0.7.RELEASE (Except Spring Integration HTTP)
For reference see: https://jira.springsource.org/browse/INT-2689
INT-2694 - Fix Http Test Failures with Spring 3.0
As part of INT-2689, fix Http Test Failures in the Spring Integration Http Module when using Spring 3.0.7.RELEASE
For reference see: https://jira.springsource.org/browse/INT-2694
* 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
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.
* MessageChannel was moved from core to the base package.
* ChannelResolver moved from core to support.
* TcpConnectionInterceptorFactoryChain was incorrect.
This is a significant update to the build system, including the changes
listed below. README.md has been updated with instructions on the most
important day-to-day commands.
- Eliminate buildSrc submodule
In favor of using the new bundlor and docbook-reference plugins. The
net effect is a large reduction in number of lines of build code.
Common docbook resources, stylesheets, etc are stored directly in the
docbook plugin.
This means that --recursive is no longer required when cloning and
there will never be a need to use `git submodule` commands. README
files have been updated to reflect.
Use of the new bundlor plugin also means the removal of template.mf
files from the source tree in favor of an inline approach. See
build.gradle for details. Bundlor 'import templates' are built up
programmatically and kept physically close to gradle dependency
declarations, leading to more convenience when changing these values
and hopefully fewer errors / version inconsistencies over time.
Certain tests depended on the presence of template.mf files, all of
which have recently been removed from the source tree in favor of the
new bundlor plugin which allows for inlining bundlor configuration
within the Gradle build script. These tests now create temp files
using the java.io.File API instead.
- Upgrade to Gradle 1.0-milestone-6
The m6 release is significantly faster when resolving dependencies
and has a number of valuable new features over the earlier m3
version. Review the release notes for Gradle 1.0-milestone-6 online
for full details.
- Switch to repo.springsource.org repository
Previously the project build declared as many repositories as
necessary to resolve all project dependencies.
Now depending on a single 'virtual repository' defined within the
SpringSource Artifactory instance at http://repo.springsource.org.
Currently, the virtual repository in use is 'libs-milestone', which
allows for the resolution of all "milestone-or-better" versions of
all S2 and third-party dependencies.
Should snapshot dependencies become required, this value may be
changed from 'libs-milestone' to 'libs-snapshot'. To build only
against GA releases, change the value to 'libs-release'.
- New build plan(s)
Spring Integration build plans have been updated to use the
Artifactory Bamboo plugin and publish to repo.springsource.org.
Build plans have names like 2.1.x to reflect the version under
development, not necessarily the name of the branch, as this may
change over time and across major releases.
- Improve release process
As mentioned above, Spring Integration will now use the Artifactory
Bamboo plugin to publish releases and also use Artifactory's support
for pushing builds directly into Maven Central via oss.sonatype.org.
Generate poms that contain all necessary fields for onboarding at
Maven central (scm, developers, organization, licenses, etc).
Generate -source and -javadoc poms to comply with Maven Central
onboarding rules (and for general good practice anyway).
Generation of PGP signatures, sha1 and md5 checksums are all handled
automatically by Artifactory. These are also requirements for
automated entry into Maven Central.
- Remove source-level pom generation
Automatic generation of Maven poms suitable for use in building
Spring Integration is no longer supported. Generation and
publication of poms for the purpose of dependency management remains
supported.
Sonar support has to date depended on these poms, but will be
switched over to use the Gradle Sonar plugin shortly.
- Eliminate docs subproject
Move docs/src to the root of the project and eliminate docs as a
formal subproject. This simplifies the build in a number of ways,
including removing the need for distinguishing between 'subprojects'
and 'javaprojects' as well as allowing users to build both 'api' and
'reference' docs without qualifying with a ':docs' prefix.
Also rename the src/info directory to src/dist to better reflect that
these files are packaged with the distribution. For example, the
readme.txt there is really the distribution readme, distinct from the
README.md at the root of the project which is for building from source,
etc.