Commit Graph

4174 Commits

Author SHA1 Message Date
Chris Beams fb059b3491 Introduce @EnableScheduling
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4266 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:09:24 +00:00
Chris Beams f8d97b009d Introduce @EnableAsync
Introduce @EnableAsync#order

AsyncAnnotationBeanPostProcessor's 'order' property is now mutable;
@EnableAsync's 'order()' attribute allows for setting it, but must
have a default value, thus uses the new Ordered#NOT_ORDERED
constant - a reserved negative number very unlikely to be otherwise
used that may be interpreted as 'not ordered', useful in annotation
defaulting scenarios where null is not an option.

Introduce first working cut of AsyncConfiguration

Remove AsyncCapability

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4265 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:08:53 +00:00
Chris Beams f6a4366ebd Introduce @Role
As a mechanism for setting the 'role' hint on BeanDefinitions created
via component-scanning or @Bean methods.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4264 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:08:10 +00:00
Chris Beams da914bcfb4 Introduce Ordered#NOT_ORDERED
To provide a reasonable default value for annotations that expose
int-returning #order attributes.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4263 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:07:41 +00:00
Chris Beams a091eb1c86 Introduce ReflectionUtils#getUniqueDeclaredMethods
This change is in support of certain polymorphism cases in
@Configuration class inheritance hierarchies.  Consider the following
scenario:

@Configuration
public abstract class AbstractConfig {
    public abstract Object bean();
}

@Configuration
public class ConcreteConfig {
    @Override
    @Bean
    public BeanPostProcessor bean() { ... }
}

ConcreteConfig overrides AbstractConfig's #bean() method with a
covariant return type, in this case returning an object of type
BeanPostProcessor.  It is critically important that the container
is able to detect the return type of ConcreteConfig#bean() in order
to instantiate the BPP at the right point in the lifecycle.

Prior to this change, the container could not do this.
AbstractAutowireCapableBeanFactory#getTypeForFactoryMethod called
ReflectionUtils#getAllDeclaredMethods, which returned Method objects
for both the Object and BeanPostProcessor signatures of the #bean()
method.  This confused the implementation sufficiently as not to
choose a type for the factory method at all.  This means that the
BPP never gets detected as a BPP.

The new method being introduced here, #getUniqueDeclaredMethods, takes
covariant return types into account, and filters out duplicates,
favoring the most specific / narrow return type.

Additionally, it filters out any CGLIB 'rewritten' methods, which
is important in the case of @Configuration classes, which are
enhanced by CGLIB.  See the implementation for further details.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4262 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:07:25 +00:00
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 36734d011a Remove unused MethodMetadata#getMethodReturnType
Introduced to support checking return types on @Bean methods but never
actually used.  May be reintroduced as necessary in the future.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4248 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 18:59:26 +00:00
Chris Beams 6c63e682a0 Introduce PropertyResolver#getPropertyAsClass
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4247 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 18:59:05 +00:00
Chris Beams 0b06055095 Rename Property{SourcesProperty}ResolverTests
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4246 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 18:58:41 +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
Sam Brannen 0613ced0b2 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4244 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 15:35:40 +00:00
Sam Brannen ab05ddc486 [SPR-6184] Simplifying ContextLoader implmementation:
- Removed AbstractGenericContextLoader's createGenericApplicationContext() method.
- AnnotationConfigContextLoader now uses an AnnotatedBeanDefinitionReader instead of working with an AnnotationConfigApplicationContext.
- AnnotationConfigContextLoader now uses the supplied GenericApplicationContext to load configuration classes.


git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4243 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 12:05:56 +00:00
Rossen Stoyanchev 4bb26a9878 Resolve custom args after annotated args, set PATH_WITHIN_HANDLER_MAPPING attribute, and rename resolver for @ExceptionHandler methods
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4242 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-03 15:39:13 +00:00
Rossen Stoyanchev 18e98329db SPR-6909 Include URI template vars in data binding
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4241 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-26 11:54:54 +00:00
Chris Beams bb4f48dcb3 Automatically close SessionFactory objects
SessionFactory objects created by
SessionFactoryBuilderSupport#buildSessionFactory are now DisposableBean
proxies that call SessionFactory#close and release any threadlocal
DataSource object.

This is the same behavior that has always occurred during LSFBean and
ASFBean destruction lifecycles (and still does). This destruction logic
has now been factored out into
SessionFactoryBuilderSupport#closeHibernateSessionFactory such that all
SFB types can reuse it easily.

Note that LSFBean and ASFBean are subclasses, respectively, of SFBuilder
and ASFBuilder and they each must disable the DisposableBean proxying in
order to avoid duplicate attempts at closing the SessionFactory. See
the implementations of wrapSessionFactoryIfNeccesary() for details.

Issue: SPR-8114

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4240 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-26 10:15:30 +00:00
Chris Beams 999100e7a2 Fix typo in aop reference documentation
Issue: SPR-8268

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4239 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-26 07:44:40 +00:00
Rossen Stoyanchev 99a4e3bc0e SPR-7543 Add @PathVariables to the model
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4236 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-21 15:18:45 +00:00
Arjen Poutsma b8438b7396 Buffering RequestFactory that allows for multiple response body reads.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4235 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-21 15:09:44 +00:00
Rossen Stoyanchev ef6efa3f6f Remove consumes from @RequestMapping
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4234 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-21 14:54:55 +00:00
Rossen Stoyanchev ff1b05cd94 SPR-8247 review changes
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4233 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-21 11:40:24 +00:00
Arjen Poutsma d4f714010e added toString to HttpEntity
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4232 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-21 11:39:20 +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
Rossen Stoyanchev 4992938ee4 SPR-8247
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4229 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-20 21:41:17 +00:00
Rossen Stoyanchev 6aaff404ab SPR-8255
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4228 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-20 08:43:57 +00:00
Rossen Stoyanchev aae28ee298 SPR-8214 review unit tests
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4227 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-15 18:42:58 +00:00
Rossen Stoyanchev 6f8fa24e59 SPR-8248
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4226 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-15 06:42:18 +00:00
Thomas Risberg 9c39084b62 SPR-6922 deprecated SimpleJdbcTemplate/SimpleJdbcOperations/SimpleJdbcDaoSupport in favor of JdbcTemplate/NamedParameterJdbcTemplate and related interfaces support classes
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4225 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-14 18:44:40 +00:00
Rossen Stoyanchev 1660ec4b0e SPR-8214 Javadoc and polish
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4224 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-13 23:15:19 +00:00
Sam Brannen fd2c472058 Added Apache Commons HTTP JARs to the Eclipse classpath.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4223 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-12 21:58:38 +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
Rossen Stoyanchev 19fdaaa74a SWF-8214 javadoc updates
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4218 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-12 13:23:14 +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
Rossen Stoyanchev ef1ce7d990 SPR-8094
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4216 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-12 10:46:57 +00:00
Arjen Poutsma ce8a55209e SPR-6180 - Upgrade Apache HttpClient to version 4.0
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4215 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-12 07:55:38 +00:00