Commit Graph

347 Commits

Author SHA1 Message Date
Rossen Stoyanchev 70fd33236f Upgrade to reactor 1.1 RC1 2014-04-25 12:27:36 -04:00
Juergen Hoeller 566e0fb317 AspectJ 1.8 final used in build and also declared as recommended user version now
Issue: SPR-11212
2014-04-21 21:22:12 +02:00
Juergen Hoeller 47c57a84c5 Hessian 4.0.7 (May 2010) superseded by 4.0.33 (Dec 2012) as new baseline
Issue: SPR-11396
2014-04-17 20:59:29 +02:00
Juergen Hoeller 4612559446 Automated tests against Hibernate ORM 4.3 and Hibernate Validator 5
Issue: SPR-11704
2014-04-17 16:24:10 +02:00
Stephane Nicoll 713dd60fa7 JMS annotation-driven endpoints.
This commit adds the support of JMS annotated endpoint. Can be
activated both by @EnableJms or <jms:annotation-driven/> and
detects methods of managed beans annotated with @JmsListener,
either directly or through a meta-annotation.

Containers are created and managed under the cover by a registry
at application startup time. Container creation is delegated to a
JmsListenerContainerFactory that is identified by the containerFactory
attribute of the JmsListener annotation. Containers can be
retrieved from the registry using a custom id that can be specified
directly on the annotation.

A "factory-id" attribute is available on the container element of
the XML namespace. When it is present, the configuration defined at
the namespace level is used to build a JmsListenerContainerFactory
that is exposed with the value of the "factory-id" attribute. This can
be used as a smooth migration path for users having listener containers
defined at the namespace level. It is also possible to migrate all
listeners to annotated endpoints and yet keep the
<jms:listener-container> or <jms:jca-listener-container> element to
share the container configuration.

The configuration can be fine-tuned by implementing the
JmsListenerConfigurer interface which gives access to the registrar
used to register endpoints. This includes a programmatic registration
of endpoints in complement to the declarative approach. A default
JmsListenerContainerFactory can also be specified to be used if no
containerFactory has been set on the annotation.

Annotated methods can have flexible method arguments that are similar
to what @MessageMapping provides. In particular, jms listener endpoint
methods can fully use the messaging abstraction, including convenient
header accessors. It is also possible to inject the raw
javax.jms.Message and the Session for more advanced use cases. The
payload can be injected as long as the conversion service is able to
convert it from the original type of the JMS payload. By
default, a DefaultJmsHandlerMethodFactory is used but it can be
configured further to support additional method arguments or to
customize conversion and validation support.

The return type of an annotated method can also be an instance of
Spring's Message abstraction. Instead of just converting the payload,
such response type allows to communicate standard and custom headers.

The JmsHeaderMapper infrastructure from Spring integration has also
been migrated to the Spring framework. SimpleJmsHeaderMapper is based
on SI's DefaultJmsHeaderMapper. The simple implementation maps all
JMS headers so that the generated Message abstraction has all the
information stored in the protocol specific message.

Issue: SPR-9882
2014-04-17 09:16:06 +02:00
Rossen Stoyanchev 6cb9a144db Expand static resource handling mechanism
An initial commit with expanded support for static resource handling:

- Add ResourceResolver strategy for resolving a request to a Resource
  along with a few implementations.

- Add PublicResourceUrlProvider to get URLs for client-side use.

- Add ResourceUrlEncodingFilter and
  PublicResourceUrlProviderExposingInterceptor along with initial
  MVC Java config support.

Issue: SPR-10933
2014-04-16 23:42:44 -04:00
Juergen Hoeller 7bc2168aa7 Default use of target 1.8 for Spring test compilation
Issue: SPR-11699
2014-04-16 12:54:20 +02:00
Juergen Hoeller 9e1631db03 Dropped JCache RC repo (now unused); minor dependency upgrades
Issue: SPR-11640
2014-04-09 17:43:23 +02:00
Stephane Nicoll 0bdece700f Update to JCache 1.0.0 final
Issue: SPR-11640
2014-04-08 15:17:54 +02:00
Stephane Nicoll 47a4327193 Add JSR-107 cache annotations support
This commit adds support for the JSR-107 cache annotations alongside
the Spring's cache annotations, that is @CacheResult, @CachePut,
@CacheRemove and @CacheRemoveAll as well as related annotations
@CacheDefaults, @CacheKey and @CacheValue.

Spring's caching configuration infrastructure detects the presence of
the JSR-107 API and Spring's JCache implementation. Both
@EnableCaching and the cache namespace are able to configure the
required JCache infrastructure when necessary. Both proxy mode
and AspectJ mode are supported.

As JSR-107 permits the customization of the CacheResolver to use for
both regular and exception caches, JCacheConfigurer has been
introduced as an extension of CachingConfigurer and permits to define
those.

If an exception is cached and should be rethrown, it is cloned and
the call stack is rewritten so that it matches the calling thread each
time. If the exception cannot be cloned, the original exception is
returned.

Internally, the interceptors uses Spring's caching abstraction by default
with an adapter layer when a JSR-107 component needs to be called.
This is the case for CacheResolver and CacheKeyGenerator.

The implementation uses Spring's CacheManager abstraction behind the
scene. The standard annotations can therefore be used against any
CacheManager implementation.

Issue: SPR-9616
2014-04-07 12:07:20 +02:00
Andy Wilkinson fd5672cba1 Update Java EE spec dependencies
This commit updates a number of dependencies upon Java EE specs to
use the preferred artifacts. Part of this change has been to move
to new API artifacts for both JSTL and JavaMail. In both cases these
new API jars are genuine API jars, i.e. they no longer contain an
implementation. Where needed, implementation dependencies have been
added.
2014-04-02 15:33:39 +02:00
Rossen Stoyanchev 59703981c4 Upgrade to reactor 1.1.0 snapshots
Issue: SPR-11636
2014-04-01 22:05:10 -04:00
Stephane Nicoll dcf5f4a6a3 javax.annotation.Priority alternative to @Order
This commit rationalizes the use of @Order so that the standard
@Priority annotation can be used instead. The handling of both
annotations are now defined in OrderUtils.

This also updates the link to the JavaEE API so that we refer to
JavaEE7 instead of JavaEE6.

Issue: SPR-11639
2014-04-01 14:30:47 +02:00
Stephane Nicoll 5fe8f52c02 Add support for @Priority
This commit adds support for @Priority to filter multiple candidates
for autowiring. When multiple candidates are available for a given
bean, the bean annotated with @Primary is used. If none exists, the
one with the higher value for the @Priority annotation is used. If
two beans have the same priority a NoUniqueBeanDefinitionException
is thrown, just as if two beans are annotated with @Primary.

The underlying code for #getBean and #resolveDependency has been
merged as this feature is available for both dependency injection
and bean lookup by type.

Issue: SPR-10548
2014-03-31 15:49:10 +02:00
Juergen Hoeller ea1e27efa2 Require Jackson 2.0+, EhCache 2.5+, Quartz 2.1.4+
Issue: SPR-11262
2014-03-27 21:59:23 +01:00
Juergen Hoeller e3035363a6 Maintenance version updates, excludes for overlapping dependencies (PR #499) 2014-03-26 18:15:23 +01:00
Arjen Poutsma f2f355e76c Improved StAX<->SAX bridge
Improved the SAX to StAX (and vice-versa) bridge exposed via StaxUtils.
The old integration had some issues with namespace declaration
attributes, brought to light in a XMLUnit upgrade.

Issue: SPR-11549
2014-03-25 20:58:58 +01:00
Juergen Hoeller ea5911f628 Upgraded to AspectJ 1.8.0 RC2 2014-03-24 14:36:25 +01:00
Sam Brannen 5ab0433543 Introduce Tiles version constants in Gradle build 2014-03-24 13:33:48 +01:00
Juergen Hoeller 4e24e079a8 Upgraded to Tiles 3.0.3 2014-03-24 11:52:42 +01:00
Juergen Hoeller ad09f1b5ec Upgraded embedded ASM version to 5.0
Issue: SPR-11239
2014-03-20 01:06:22 +01:00
Sebastien Deleuze fb600857df Document locale convention in Tiles def file names
In Tiles v3 integration, underscores in filenames are
intended to identify the definition locale. This behavior
is now documented in order to avoid unexpected results
with filenames like tiles_definitions.xml.

This commit also updates Tiles v2 references to Tiles v3
in the Spring reference documentation.

Issue: SPR-11491
2014-03-17 21:37:37 -04:00
Rossen Stoyanchev 918e21fd8f Upgrade to reactor 1.0.1.RELEASE 2014-03-17 17:10:53 -04:00
Juergen Hoeller 658a44a620 Upgraded to Apache HttpClient 4.3.3 and Jetty 9.1.3 2014-03-11 12:57:27 +01:00
Sam Brannen e865d63c29 Ensure Gradle does not execute inner classes as tests 2014-03-07 17:31:44 +01:00
Juergen Hoeller 213d9c4a51 Consistent dependencies on official JTA 1.2 and JMS 1.1 API jars 2014-03-06 14:19:48 +01:00
Sam Brannen cf3b2b1a4d Simplify test includes & excludes in Gradle build
This commit aligns our include and exclude filters for test classes
with Gradle's standard patterns. Specifically, our patterns now end
with ".class" instead of ".*".

The aforementioned change makes the exclusion of inner classes
unnecessary. Thus, patterns for test classes ending with "TestCase" or
"TestSuite" have been deleted.

Furthermore, the include and exclude patterns previously used in the
spring-test module made it impossible for the
FailingBeforeAndAfterMethodsTests class in the 'testng' package to ever
be executed by the build. This has been addressed by renaming our JUnit
and TestNG variants of FailingBeforeAndAfterMethodsTests and moving the
TestNG variant into the 'junit' package so that it can be picked with
our standard include pattern for JUnit-based tests.
2014-03-06 00:06:50 +01:00
Juergen Hoeller d30128396e Upgraded to Hibernate 4.2.10 2014-03-05 22:42:03 +01:00
Sam Brannen fa44224430 Aggregate JUnit and TestNG test reports
Prior to this commit, the test results for JUnit tests overwrote the
results for TestNG tests in the HTML test report generated by the
Gradle build.

This commit addresses this problem by introducing a new
'aggregateTestReports' task in the spring-test module and making the
'check' task depend on it.

To see aggregated reports in the spring-test module, execute either
`gradle build` or `gradle check`. Executing `gradle test` alone will
not trigger test report aggregation.

Issue: SPR-11509
2014-03-04 13:18:42 +01:00
Juergen Hoeller bc5af2c6b6 Upgraded to Hibernate 4.2.9 2014-02-28 14:00:00 +01:00
Juergen Hoeller 0616cbccd6 Upgraded JSP build dependency to 2.2 2014-02-26 15:44:50 +01:00
Sam Brannen 019d29c991 Delete work-around for Ant 1.8 in Gradle build
Ant 1.9.2 is packaged with Gradle since release 1.10. Since the Spring
Framework build now uses Gradle 1.11, there is no longer a need for the
"javac1.7" build compiler work-around for the spring-oxm module.
2014-02-26 13:58:04 +01:00
Sam Brannen 76cc6db5fc Upgrade to TestNG 6.8.8
Issue: SPR-11482
2014-02-25 15:26:16 +01:00
Andy Wilkinson 7c4fbec1cd Make version of JasperReports consistent
Ensure that context-support and webmvc depend upon the same version
of JasperReports
2014-02-24 10:56:14 -08:00
Juergen Hoeller bda8f2b4cf Upgraded to Jetty 9.1.2 and Guava 16.0.1 2014-02-13 01:09:16 +01:00
Juergen Hoeller 3716a8ef7d Upgraded to Gradle 1.11 2014-02-12 18:29:14 +01:00
Rossen Stoyanchev 891ec56607 Upgrade to Tomcat 8.0.3 2014-02-12 11:06:51 -05:00
Rossen Stoyanchev dfe2234781 Upgrade to Undertow 1.0 Final (WildFly 8 Final) 2014-02-12 11:06:51 -05:00
Juergen Hoeller 8ae3aa7f59 Upgraded to Commons Logging 1.1.3 2014-02-12 00:13:16 +01:00
Juergen Hoeller 74ad2081aa Upgraded to JasperReports 5.5.1 2014-02-09 01:08:45 +01:00
Juergen Hoeller 631b07aef8 Upgraded to Commons FileUpload 1.3.1 2014-02-07 17:23:31 +01:00
Sam Brannen b8ed2f4967 Ensure all tests are executed in the Gradle build
Prior to this commit several test classes named "*Test" were not
recognized as tests by the Gradle build. This is due to the configured
inclusion of '**/*Tests.*' which follows Spring's naming convention for
test classes.

This commit addresses this issue by:

 - Renaming real test classes consistently to "*Tests".
 - Renaming internal test classes to "*TestCase".
 - Renaming @WebTest to @WebTestStereotype.
 - Disabling broken tests in AnnoDrivenStaticEntityMockingControlTest.
 - Modifying the Gradle build configuration so that classes ending in
   either "*Tests" or "*Test" are considered test classes.

Issue: SPR-11384
2014-02-03 23:16:47 +01:00
Juergen Hoeller d55c22ec85 Upgraded to Apache HttpComponents HttpClient 4.3.2
Issue: SPR-11383
2014-02-03 16:02:05 +01:00
Juergen Hoeller 1b0ce200e0 Consistent use of ${hibernate4Version} in build.gradle 2014-01-27 21:41:31 +01:00
Juergen Hoeller e0fd54b8c2 Upgraded SLF4J, JOpt, JRuby, Commons Pool & Commons DBCP to latest versions 2014-01-26 00:12:21 +01:00
Juergen Hoeller 98e890aae3 Consistently switched optional dependencies to scope 'optional' 2014-01-25 17:20:54 +01:00
Juergen Hoeller 4b282a965c Further reordering of dependencies 2014-01-25 17:13:34 +01:00
Juergen Hoeller 9154871a45 Raised all dependencies to latest possible maintenance releases; introduced additional library version variables; consistently grouped dependency scopes 2014-01-25 16:24:10 +01:00
Sam Brannen eab69dbeec Upgrade XStream to 1.4.6 2014-01-25 15:14:07 +01:00
Sam Brannen d404473bc5 Introduce xstreamVersion constant in Gradle build 2014-01-25 13:33:27 +01:00