Commit Graph

953 Commits

Author SHA1 Message Date
Chris Beams c61a0aeb83 Consolidate annotation processing constants
Consolidating internal bean name and aspect class name constats within
AnnotationConfigUtils to allow access from both the context.config
and context.annotation packages without creating a relationship between
the two of them (they are unrelated leaf nodes in the packaging
currently).

The .transaction module does not have a similar utils class and already
has a relationship from transaction.config -> transaction.annotation,
so placing the constants in .annotation.TransactionManagementCapability
to be referenced by .config.AnnotationDrivenBeanDefinitionParser

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4261 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:06:37 +00:00
Chris Beams 528ae46f9f Introduce ImportSelector interface
Allows @Enable* a layer of indirection for deciding which @Configuration
class(es) to @Import.

The @Import annotation may now accept @Configuration class literals
and/or ImportSelector class literals.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4260 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:06:02 +00:00
Chris Beams 7ef92dccfa Introduce ImportAware interface
@Configuration classes may implement ImportAware in order to be injected
with the AnnotationMetadata of their @Import'ing class.

Includes the introduction of a new PriorityOrdered
ImportAwareBeanPostProcessor that handles injection of the
importing class metadata.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4259 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:05:42 +00:00
Chris Beams 56b5ea610c Process all meta and local @Import declarations
Includes the introduction of AnnotationUtils#findAllAnnotationAttributes
to support iterating through all annotations declared on a given type
and interrogating each for the presence of a meta-annotation. See tests
for details.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4258 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:05:15 +00:00
Chris Beams 0fa00811d7 Provide dedicated @ComponentScan processing
@ComponentScan is now checked for explicitly and handled immediately
when parsing @Configuration classes.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4257 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:04:35 +00:00
Chris Beams 962eea2d35 Delegate ComponentScanBDP environment to scanner
Enables @Profile filtering within ComponentScanBeanDefinitionParser

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4256 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:04:11 +00:00
Chris Beams c892028705 Remove "Feature" support introduced in 3.1 M1
Feature-related support such as @Feature, @FeatureConfiguration,
and FeatureSpecification types will be replaced by framework-provided
@Configuration classes and convenience annotations such as
@ComponentScan (already exists), @EnableAsync, @EnableScheduling,
@EnableTransactionManagement and others.

Issue: SPR-8012,SPR-8034,SPR-8039,SPR-8188,SPR-8206,SPR-8223,
SPR-8225,SPR-8226,SPR-8227

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4255 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:03:52 +00:00
Chris Beams e6f3fd2de0 Rename ConfigurationClassMethod => BeanMethod
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4254 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:01:56 +00:00
Chris Beams 84ace01244 Revert deprecation of BDRU#registerWithGeneratedName
The overloading necessary to preserve the new signature as well as
the old causes ambiguities leading to deprecation warnings in some
caller scenarios.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4253 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:01:35 +00:00
Chris Beams 8bc5338de6 Prevent empty calls to ACAC #register and #scan
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4252 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:01:11 +00:00
Chris Beams 791206060e Add comment on DisposableBean use in @Configuration
Issue: SPR-7901

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4251 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:00:55 +00:00
Chris Beams e21da602b7 Polish Javadoc
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4250 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:00:38 +00:00
Chris Beams e8d1df5037 Fix generics and serialization warnings
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4249 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:00:14 +00:00
Chris Beams 0b1f42ef66 Update MockEnvironment / MockPropertySource types
Reflecting signature changes in getProperty() methods

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4245 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 18:57:41 +00:00
Costin Leau f42da75682 SPR-8238
+ add NPE test

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4231 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-21 08:07:12 +00:00
Costin Leau bff57c7925 SPR-8238
+ add handling for null arguments to prevent NPE in default key generation

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4230 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-21 08:00:42 +00:00
Micha Kiener fb40ff59ab SPR-6416, adding basic conversation object tests, improving the access time of the conversation object
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4222 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-12 19:51:50 +00:00
Micha Kiener c3db0f1abc SPR-6416, adding repository timeout setting tests
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4221 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-12 18:11:18 +00:00
Micha Kiener 41045f3b19 SPR-6416, adding conversation manager test
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4220 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-12 16:02:46 +00:00
Micha Kiener 57e7223cde SPR-6416, reshaping removal of hierarchical conversations and adding repository test
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4219 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-12 14:53:09 +00:00
Micha Kiener ab4a3568b1 SPR-6416, initial commit for the conversation management
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4217 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-12 13:21:18 +00:00
Sam Brannen b953ffc0be polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4176 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-04 22:05:49 +00:00
Chris Beams 30fc529379 Touch up ApplicationContextInitializer Javadoc
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4172 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-04 14:57:51 +00:00
Chris Beams 1dd763da18 Make ConfigurationClassBeanDefinitionReader public
Issue: SPR-8200

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4171 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-04 14:14:17 +00:00
Rossen Stoyanchev 3473219bad Predictable index position for BindingResult keys and parameter annotation convenience methods in MethodParameter
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4149 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-31 14:16:37 +00:00
Sam Brannen 2bee329d1e [SPR-8089] Added TODOs.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4126 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-28 19:01:33 +00:00
Sam Brannen 956905a88d [SPR-8089] re-ignoring JMX tests that require the presence of jmxremote_optional.jar.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4124 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-28 18:38:34 +00:00
Sam Brannen 607d73b161 [SPR-8089] re-ignoring JMX tests that require the presence of jmxremote_optional.jar.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4123 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-28 18:26:30 +00:00
Sam Brannen 6a134d83f3 [SPR-8091] developer notes
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4121 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-28 18:09:14 +00:00
Costin Leau a143e244e4 SPR-7971
+ add target object to KeyGenerator


git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4120 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-28 18:09:04 +00:00
Sam Brannen 18b5440a9e [SPR-8089] cleaning up ignored and broken JMX tests; suppressing warnings; using generics where feasible; documented the jmxremote_optional.jar requirement in AbstractMBeanServerTests.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4119 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-28 17:57:01 +00:00
Costin Leau 9fe871635b SPR-8007
+ add more logging

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4115 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-28 12:10:26 +00:00
Costin Leau a653a50be8 SPR-8007
SPR-7832
+ expose the invocation params through the cache root object
+ update javadocs


git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4114 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-28 11:36:05 +00:00
Chris Beams d1c5bb0160 Eliminate warnings in .validation package
Issue: SPR-8062

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4103 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-18 06:47:12 +00:00
Chris Beams ea5f28a8fd Remove TODOs related to profile logging
Issue: SPR-8031, SPR-7508, SPR-8057

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4097 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-15 12:57:43 +00:00
Chris Beams 01ecc6600b @Feature methods accept @Value-annotated params
Previously errors were being raised when trying to inject @Value
annotated paramaters such as:

@Feature
public FeatureSpec feature(@Value("#{environment['foo']}") String foo) {
    return new FeatureSpec(foo);
}

This is not so much because dependency resolution of @Value-annotated
types was failing, but rather because the 'early bean reference'
proxying mechanism was throwing an exception if any final type was
detected as a parameter. This is of course because final types are
non-subclassable by CGLIB.  On review, however, it's obvious that
certain final types must be allowed for injection.  @Value injection
is an obvious one, but the rarer case of a Spring bean of type String
or int is another.

The explicit guard against final types as parameters to @Feature methods
has been removed. Final types are still checked for, however, and if
found, no proxing is attempted.  The dependency is immediately resolved
against the current BeanFactory and injected into the @Feature method.

This means that @Value injection, @Qualifier injection, etc all work
as expected, but does mean that premature bean instantiation may occur
if a user unwittingly injects non-String, non-primitive final bean types
as @Feature method parameters.

Issue: SPR-7974

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4094 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-15 07:09:49 +00:00
Chris Beams 807a960709 Deregister @Configuration CGLIB callbacks
CGLIB-enhanced @Configuration subclasses now implement DisposableBean
such that Enhancer.registerStaticCallbacks(subclass, null) is invoked
on container shutdown. This ensures that garbage collection can work
properly and avoids memory consumption issues for applications that
create and destroy many application contexts within the same JVM.

Issue: SPR-7901

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4090 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-14 09:20:19 +00:00
Chris Beams c4d13f6db9 Fix context:property-placeholder XSD type hierarchy
context:property-placeholder extends 'propertyPlaceholder' type
defintion once again.  This relationship was inadvertently removed in
3.1 M1, and the effect was that XML tooling would raise errors on
use of attributes like 'location'.

The updated schema has also been published to

    http://www.springframework.org/schema/context/spring-context-3.1.xsd

Issue: SPR-8037

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4088 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-13 19:12:50 +00:00
Chris Beams 5b14af2625 Process @ImportResource with current ResourceLoader
Issue: SPR-7973

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4085 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-12 12:24:38 +00:00
Chris Beams 8b98044d03 Test injection of Environment on @Feature methods
Issue: SPR-7975

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4084 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-12 12:24:20 +00:00
Chris Beams 6b616956fc Test injection of special types on @Feature methods
Prove that injection of special container types such as ResourceLoader,
BeanFactory, etc already works with the current implementation of
@Feature methods.

Issue: SPR-7975

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4082 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-11 12:40:51 +00:00
Chris Beams 9156a9d8f6 Polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4076 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-10 14:08:58 +00:00
Costin Leau 1eb54b700d SPR-8015
+ update default key generator strategy to improve compatibility for implicit declaration on one arg method
+ updated docs


git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4066 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-06 17:13:24 +00:00
Costin Leau e4261b936a + fix bug that prevented internal expression cache from being used
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4065 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-06 17:06:28 +00:00
Costin Leau 040b5397ce SPR-8006
+ fix contains/get race-condition of caches (by adding an extra cache call)

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4064 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-06 12:27:46 +00:00
Costin Leau fbc4c37946 + update copyright headers
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4063 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-06 11:53:12 +00:00
Costin Leau 580d8024fd SPR-8006
SPR-8023
- remove unneeded method


git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4062 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-06 11:43:25 +00:00
Costin Leau 8062b4ad59 SPR-8008
SPR-8023
+ fix bug in Ehcache cache that considered expired entries for key checks

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4061 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-06 11:36:36 +00:00
Juergen Hoeller 41245cd566 fixed scheduling tests
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3995 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-10 23:04:40 +00:00
Juergen Hoeller 637117c51a exceptions thrown by @Scheduled methods will be propagated to a registered ErrorHandler (SPR-7723)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3994 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-10 22:50:16 +00:00