Commit Graph

156 Commits

Author SHA1 Message Date
Juergen Hoeller
8174f3bfca Polishing
(cherry picked from commit 29a9461)
2016-10-12 18:10:04 +02:00
Juergen Hoeller
b344c927bd Polishing
(cherry picked from commit 040d131)
2016-09-13 22:59:09 +02:00
Juergen Hoeller
458d49bdb8 Polishing
(cherry picked from commit acbb254)
2016-08-31 01:31:06 +02:00
Juergen Hoeller
2a9ca66cee Restored hard reference cache in TransactionAspectSupport for 4.2.8
Issue: SPR-14511
Issue: SPR-14609
2016-08-24 14:52:52 +02:00
Juergen Hoeller
74f64696b3 TransactionAspectSupport avoids hard references to transaction manager beans
Issue: SPR-14511
(cherry picked from commit 67176e2)
2016-07-26 21:49:17 +02:00
Juergen Hoeller
23135b19b3 Fixed ConcurrentMap declaration 2016-07-26 00:27:42 +02:00
Juergen Hoeller
29e8ba3efc Polishing
(cherry picked from commit cc93c2a)
2016-07-26 00:09:35 +02:00
Juergen Hoeller
c627c408a0 Aspect actually applies in PersistenceExceptionTranslationPostProcessorTests
Issue: SPR-14457
(cherry picked from commit 52f46c7)
2016-07-15 17:08:27 +02:00
Stephane Nicoll
d73f91eaf0 Polish
Closes gh-1097
(cherry picked from commit 037746d)
2016-07-01 15:40:06 +02:00
Juergen Hoeller
833ed7168e Add missing package-info files for common packages
Issue: SPR-14420
(cherry picked from commit 66ec1c1)
2016-06-30 21:43:29 +02:00
Juergen Hoeller
e219576414 Defensive catching of any Throwable subclasses instead of just Error
Issue: SPR-14329
Issue: SPR-14323
(cherry picked from commit a9fda3e)
2016-06-04 00:27:24 +02:00
Juergen Hoeller
bf3dee9492 Polishing 2016-05-03 18:47:33 +02:00
Juergen Hoeller
85675fbe2e Consistent SmartLifecycle implementations
Issue: SPR-14233
(cherry picked from commit f83cbff)
2016-05-02 14:07:32 +02:00
Juergen Hoeller
3829a77894 Polishing
(cherry picked from commit 74608e6)
2016-04-12 16:09:48 +02:00
Juergen Hoeller
e9382b2c0b SimpleTransactionScope properly suspends and resumes scoped objects
Issue: SPR-14148
(cherry picked from commit 831f09c)
2016-04-12 16:09:43 +02:00
Juergen Hoeller
b7890ca28e Consistent license header
(cherry picked from commit 537193a)
2016-04-11 21:14:05 +02:00
Juergen Hoeller
2ea7fcde3e Polishing
(cherry picked from commit 9af12d2)
2016-03-24 17:17:58 +01:00
Johnny Lim
2defb6555e Fix broken Javadoc related to < and > 2015-11-12 11:22:08 +01:00
Juergen Hoeller
760bc719f2 Polishing 2015-11-09 15:03:14 +01:00
Juergen Hoeller
d5efe4f983 Detect event listener methods behind interface proxies as well
Issue: SPR-13650
2015-11-09 15:00:03 +01:00
Juergen Hoeller
e35855f9b5 Avoid expensive annotation retrieval algorithm if no annotations present in the first place
Issue: SPR-13621
2015-11-05 12:26:54 +01:00
Sam Brannen
d5ee787e1e Migrate JUnit 3 tests to JUnit 4
This commit migrates all remaining tests from JUnit 3 to JUnit 4, with
the exception of Spring's legacy JUnit 3.8 based testing framework that
is still in use in the spring-orm module.

Issue: SPR-13514
2015-09-27 21:17:51 +02:00
Juergen Hoeller
ebe128e940 Polishing 2015-09-24 00:33:14 +02:00
Sam Brannen
164bed5c3f Use implicit aliases in @TransactionalEventListener 2015-08-28 20:04:52 +02:00
Stephane Nicoll
a3f39d5257 Add missing 4.2 XSDs
Issue: SPR-13300
2015-08-01 09:50:36 +02:00
Sam Brannen
725292081e Introduce 'value' alias for 'attribute' in @AliasFor
SPR-11512 introduced support for annotation attribute aliases via
@AliasFor, requiring the explicit declaration of the 'attribute'
attribute. However, for aliases within an annotation, this explicit
declaration is unnecessary.

This commit improves the readability of alias pairs declared within an
annotation by introducing a 'value' attribute in @AliasFor that is an
alias for the existing 'attribute' attribute. This allows annotations
such as @ContextConfiguration from the spring-test module to declare
aliases as follows.

public @interface ContextConfiguration {

     @AliasFor("locations")
     String[] value() default {};

     @AliasFor("value")
     String[] locations() default {};

    // ...
}

Issue: SPR-13289
2015-07-29 15:27:06 +02:00
Juergen Hoeller
14f27bda37 Prefer use of "Java EE" over "J2EE" 2015-07-27 15:32:56 +02:00
Juergen Hoeller
f06581f5b8 Polishing 2015-07-22 14:20:12 +02:00
Juergen Hoeller
edd6e76b9f Polishing 2015-07-21 22:58:34 +02:00
Juergen Hoeller
a8fb551b1c Allow for overriding of computeTransactionAttribute
Issue: SPR-13246
2015-07-17 15:24:24 +02:00
Sam Brannen
f300325b1b Polishing 2015-07-08 15:08:29 +02:00
Stephane Nicoll
bf786c3176 Support for multiple events per method
In addition to specifying the event type to listen to via a method
parameter, any @EventListener annotated method can now alternatively
define the event type(s) to listen to via the "classes" attributes (that
is aliased to "value").

Something like

@EventListener({FooEvent.class, BarEvent.class})
public void handleFooBar() { .... }

Issue: SPR-13156
2015-07-08 14:51:07 +02:00
Sam Brannen
6c530b7bfb Delete trailing whitespace in XML files 2015-06-19 17:14:10 +02:00
Juergen Hoeller
f1c7dc4f4b Introduced SimpleTransactionScope (analogous to SimpleThreadScope)
Issue: SPR-13085
2015-06-18 00:29:46 +02:00
Juergen Hoeller
9f64230131 TransactionAttributeSourcePointcut pointcut skips target classes with TransactionalProxy marker (e.g. Spring Data proxies)
This 4.2 commit also makes TransactionProxyFactoryBean expose the TransactionalProxy marker and refines SpringProxy marker handling.

Issue: SPR-13109
2015-06-17 13:02:26 +02:00
Sam Brannen
d9f18f7355 Polish AnnotationTransactionAttributeSourceTests 2015-06-16 21:36:13 +01:00
Sam Brannen
32c17bf540 Revise method and parameter names in annotation support
In AnnotatedElementUtils, all methods pertaining to merging annotation
attributes have been renamed to "getMerged*()" and "findMerged*()"
accordingly. Existing methods such as getAnnotationAttributes(..) have
been deprecated in favor of the more descriptive "merged" variants.
This aligns the naming conventions in AnnotatedElementUtils with those
already present in AnnotationReadingVisitorUtils.

The use of "annotationType" as a variable name for the fully qualified
class name of an annotation type has been replaced with
"annotationName" in order to improve the readability and intent of the
code base.

In MetaAnnotationUtils.AnnotationDescriptor, getMergedAnnotation() has
been renamed to synthesizeAnnotation(), and the method is now
overridden in UntypedAnnotationDescriptor to always throw an
UnsupportedOperationException in order to avoid potential run-time
ClassCastExceptions.

Issue: SPR-11511
2015-06-14 00:34:40 +02:00
Sam Brannen
6b7c1d72e8 Introduce alias for 'value' attribute in @Transactional
Issue: SPR-11393
2015-06-12 22:35:20 +02:00
Sam Brannen
6fc388315e Polish Javadoc for @Transactional 2015-06-12 21:59:44 +02:00
Sam Brannen
9afcd17c71 Introduce getAnnotationAttributes(..,Class) in AnnoElUtils 2015-05-29 21:36:00 +02:00
Juergen Hoeller
b4095c3e1d Class identity comparisons wherever possible
Issue: SPR-12926
2015-05-20 14:34:16 +02:00
Stephane Nicoll
cf391f5ce1 polish
Remove unused imports
2015-05-19 08:49:01 +02:00
Sam Brannen
122d3476d9 Polish Javadoc for condition annotation attributes 2015-04-24 01:38:13 +02:00
Sam Brannen
ad6bea1cda Support abstract, bridge, & interface methods in AnnotatedElementUtils
This commit introduces support for finding annotations on abstract,
bridge, and interface methods in AnnotatedElementUtils.

 - Introduced dedicated findAnnotationAttributes() methods in
   AnnotatedElementUtils that provide first-class support for
   processing methods, class hierarchies, interfaces, bridge methods,
   etc.

 - Introduced find/get search algorithm dichotomy in
   AnnotatedElementUtils which is visible in the public API as well as
   in the internal implementation. This was necessary in order to
   maintain backwards compatibility with the existing API (even though
   it was undocumented).

 - Reverted all recent changes made to the "get semantics" search
   algorithm in AnnotatedElementUtils in order to ensure backwards
   compatibility, and reverted recent changes to
   JtaTransactionAnnotationParser and SpringTransactionAnnotationParser
   accordingly.

 - Documented internal AnnotatedElementUtils.Processor<T> interface.

 - Enabled failing tests and introduced
   findAnnotationAttributesFromBridgeMethod() test in
   AnnotatedElementUtilsTests.

 - Refactored ApplicationListenerMethodAdapter.getCondition() and
   enabled failing test in TransactionalEventListenerTests.

 - AnnotationUtils.isInterfaceWithAnnotatedMethods() is now package
   private.

Issue: SPR-12738, SPR-11514, SPR-11598
2015-04-24 00:55:48 +02:00
Sam Brannen
8ece1b145c Introduce failing/ignored tests for SPR-12738
Issue: SPR-12738
2015-04-23 01:33:46 +02:00
Sam Brannen
7f0f04dfe3 Support annotations on interfaces in AnnotatedElementUtils
This commit introduces support in AnnotatedElementUtils for finding
annotations declared on interfaces at the type level.

NB: this commit does not include support for finding annotations
declared on interface methods.

In order to maintain backward compatibility with @Transactional
annotation attribute processing, a new getAnnotationAttributes() method
has been added to AnnotatedElementUtils that provides a flag to control
whether interfaces should be searched.
SpringTransactionAnnotationParser and JtaTransactionAnnotationParser
have been updated accordingly to ensure that interfaces are not
unintentionally searched in the @Transactional resolution process.

This commit also introduces additional tests and updates TODOs for
SPR-12738.

Issue: SPR-12944, SPR-12738
2015-04-23 01:33:37 +02:00
Sam Brannen
b9b0b78fa1 Support n meta-annotation levels on methods in AnnotationUtils
Prior to this commit, the search algorithm used by the
findAnnotation(Method, Class) method in AnnotationUtils only found
direct annotations or direct meta-annotations (i.e., one level of
meta-annotations).

This commit reworks the search algorithm so that it supports arbitrary
levels of meta-annotations on methods. To make this possible, a new
findAnnotation(AnnotatedElement, Class) method has been introduced in
AnnotationUtils.

This fix also allows for the @Ignore'd tests in
TransactionalEventListenerTests to be re-enabled.

Issue: SPR-12941
2015-04-22 02:26:24 +02:00
Sam Brannen
8a1f9f8aa3 Fix typo in exception message 2015-04-21 19:54:48 +02:00
Stephane Nicoll
ca91956bdb Do not retain BeanFactory ref
This is a rework of fd7153f that also now clears the reference to the
BeanFactory when the context is disposed.

Issue: SPR-12518
2015-04-20 17:05:59 +02:00
Juergen Hoeller
13659d645b Consistent support for @Order annotation as alternative to Ordered interface
Issue: SPR-12806
2015-03-13 18:18:33 +01:00