Commit Graph

1054 Commits

Author SHA1 Message Date
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 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
Juergen Hoeller e116123f3e polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3993 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-10 22:19:10 +00:00
Chris Beams 53bf88ebaa Further compensation for STS version mismatch
Current STS version of Spring (3.0.5) does not contain
the BeanUtils.instantiateClass(Class<?>, Class<T>) signature
that was added in 3.1.0, therefore NoSuchMethodErrors are
being thrown when STS classloads and delegates to
3.1.0 NamespaceHandler and BeanDefinitionParser implementations
on the user project classpath.

In this case, it's AbstractSpecificationBeanDefinitionParser
doing the calling to the unknown new method.  In this specific
example, reverting back to the old single-arg signature is actually
not a problem, because it does accept Class<T> and returns an
instance of type T, which was the desired behavior in the first
place.

The newer signature remains in order to accommodate callers
who do not know the generic type of the Class to be instantiated
(i.e. Class<?>), but do know the type that it should be assignable
to -- this becomes the second argument Class<T>, and an instance
of type T is returned (if indeed it is assignable to the specified
type; otherwise IllegalArgumentException.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3992 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-10 17:59:26 +00:00
Juergen Hoeller 27766b7fab renamed AbstractPropertyPlaceholderConfigurer to PlaceholderConfigurerSupport
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3987 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-10 02:01:02 +00:00
Juergen Hoeller 541f8595ab renamed AbstractPropertyPlaceholderConfigurer to PlaceholderConfigurerSupport
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3985 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-10 01:55:11 +00:00
Juergen Hoeller c16e01cb14 removed ConversionService/TypeConverter convenience methods in order to restore 3.0's SPI (for backwards compatibility with implementers)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3984 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-10 01:36:57 +00:00
Chris Beams 1a751de04f Further compensations for STS; binary compat fixes
Defensively catch NoSuchMethodError when calling BDPD.getEnvironment()
and supply a DefaultEnvironment if not available.

Replace the single-arg constructor for BDPD and deprecate, preserving
binary compat particularly for Spring Integration who instantiates
this class directly, which is unusual.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3982 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-10 00:30:30 +00:00
Chris Beams 3fbe9d5a55 Fix STS compatibility issues; other improvements
Revert changes to ParserContext, ReaderContext, and XmlReaderContext

    These changes cause cross-version incompatibilities at tooling time
    -- for instance, an STS version that ships with Spring 3.0.5
    classloads the ParserContext defined in that version, whereas it
    classloads NamespaceHandlers and BeanDefinitionParsers (by default)
    from the user application classpath, which may be building against
    3.1.0. If so, the changes introduced to these types in 3.1.0 are
    incompatible with expectations in the 3.0.5 world and cause all
    manner of problems.  In this case, it was NoSuchMethodError due to
    the newly-added XmlReaderContext.getProblemReporter() method; also
    IncompatibleClassChangeError due to the introduction of the
    ComponentRegistrar interface on ParserContext.

    Each of these problems have been mitigated, though the solutions
    are not ideal. The method mentioned has been removed, and instead
    the problemReporter field is now accessed reflectively.
    ParserContext now no longer implements ComponentRegistrar, and
    rather a ComponentRegistrarAdapter class has been introduced that
    passes method calls through to a ParserContext delegate.

Introduce AbstractSpecificationBeanDefinitionParser

    AbstractSpecificationBeanDefinitionParser has been introduced in
    order to improve the programming model for BeanDefinitionParsers
    that have been refactored to the new FeatureSpecification model.
    This new base class and it's template method implementation of
    parse/doParse ensure that common concerns like (1) adapting a
    ParserContext into a SpecificationContext, (2) setting source and
    source name on the specification, and (3) actually executing the
    specification are all managed by the base class.  The subclass
    implementation of doParse need only actually parse XML, populate
    and return the FeatureSpecification object.  This change removed
    the many duplicate 'createSpecificationContext' methods that had
    been lingering.

Minor improvement to BeanDefinitionReaderUtils API

    Introduced new BeanDefinitionReaderUtils#registerWithGeneratedName
    variant that accepts BeanDefinition as opposed to
    AbstractBeanDefinition, as BeanDefinition is all that is actually
    necessary to satisfy the needs of the method implementation. The
    latter variant accepting AbstractBeanDefinition has been deprecated
    but remains intact and delegates to the new variant in order to
    maintain binary compatibility.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3980 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-09 16:44:26 +00:00
Arjen Poutsma 000346972b Fixing compilation error with javac.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3970 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-09 09:39:29 +00:00
Chris Beams 975e44079f Revert signature change in BDRU.registerWithGeneratedName
This change broke binary compatibility as evidenced by running
the greenhouse test suite and finding that Spring Integration's
AbstractConsumerEndpointParser.parseInternal fails with
NoSuchMethodError when trying to invoke.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3969 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-09 06:57:24 +00:00
Chris Beams 437a753e26 Sync pom.xml deps with ivy.xml changes since 3.0.5
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3968 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-09 06:56:53 +00:00
Chris Beams adc9400905 Include license.txt and notice.txt in module JARs
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3967 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-09 06:56:40 +00:00
Chris Beams 8fcce02cde Add FeatureMethodErrorTests
Capture common mistakes with @Feature method declarations and ensure
that useful error messages are produced.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3966 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-09 06:54:02 +00:00
Sam Brannen 79c72a96f3 polishing JavaDoc
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3963 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-08 22:08:38 +00:00
Chris Beams f8a4dfa5da Rename ExecutorContext => SpecificationContext
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3961 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-08 19:08:41 +00:00
Chris Beams df4edc1c73 Rename spring.{profile}.active => {profiles}
Same for spring.profiles.default

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3960 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-08 19:07:46 +00:00
Chris Beams 9fd86f589f Extract ProblemCollector interface
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3959 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-08 19:07:03 +00:00
Chris Beams dc22760978 Introduce FeatureSpecification support
Introduce FeatureSpecification interface and implementations

    FeatureSpecification objects decouple the configuration of
    spring container features from the concern of parsing XML
    namespaces, allowing for reuse in code-based configuration
    (see @Feature* annotations below).

    * ComponentScanSpec
    * TxAnnotationDriven
    * MvcAnnotationDriven
    * MvcDefaultServletHandler
    * MvcResources
    * MvcViewControllers

Refactor associated BeanDefinitionParsers to delegate to new impls above

    The following BeanDefinitionParser implementations now deal only
    with the concern of XML parsing.  Validation is handled by their
    corresponding FeatureSpecification object.  Bean definition creation
    and registration is handled by their corresponding
    FeatureSpecificationExecutor type.

    * ComponentScanBeanDefinitionParser
    * AnnotationDrivenBeanDefinitionParser (tx)
    * AnnotationDrivenBeanDefinitionParser (mvc)
    * DefaultServletHandlerBeanDefinitionParser
    * ResourcesBeanDefinitionParser
    * ViewControllerBeanDefinitionParser

Update AopNamespaceUtils to decouple from XML (DOM API)

    Methods necessary for executing TxAnnotationDriven specification
    (and eventually, the AspectJAutoProxy specification) have been
    added that accept boolean arguments for whether to proxy
    target classes and whether to expose the proxy via threadlocal.

    Methods that accepted and introspected DOM Element objects still
    exist but have been deprecated.

Introduce @FeatureConfiguration classes and @Feature methods

    Allow for creation and configuration of FeatureSpecification objects
    at the user level.  A companion for @Configuration classes allowing
    for completely code-driven configuration of the Spring container.

    See changes in ConfigurationClassPostProcessor for implementation
    details.

    See Feature*Tests for usage examples.

    FeatureTestSuite in .integration-tests is a JUnit test suite designed
    to aggregate all BDP and Feature* related tests for a convenient way
    to confirm that Feature-related changes don't break anything.
    Uncomment this test and execute from Eclipse / IDEA. Due to classpath
    issues, this cannot be compiled by Ant/Ivy at the command line.

Introduce @FeatureAnnotation meta-annotation and @ComponentScan impl

    @FeatureAnnotation provides an alternate mechanism for creating
    and executing FeatureSpecification objects.  See @ComponentScan
    and its corresponding ComponentScanAnnotationParser implementation
    for details.  See ComponentScanAnnotationIntegrationTests for usage
    examples

Introduce Default[Formatting]ConversionService implementations

    Allows for convenient instantiation of ConversionService objects
    containing defaults appropriate for most environments.  Replaces
    similar support originally in ConversionServiceFactory (which is now
    deprecated). This change was justified by the need to avoid use
    of FactoryBeans in @Configuration classes (such as
    FormattingConversionServiceFactoryBean). It is strongly preferred
    that users simply instantiate and configure the objects that underlie
    our FactoryBeans. In the case of the ConversionService types, the
    easiest way to do this is to create Default* subtypes. This also
    follows convention with the rest of the framework.

Minor updates to util classes

    All in service of changes above. See diffs for self-explanatory
    details.

    * BeanUtils
    * ObjectUtils
    * ReflectionUtils

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3954 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-08 14:42:33 +00:00
Chris Beams 6a68b44ca9 Make ObjectUtils.addObjectToArray() generic
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3951 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-08 13:01:29 +00:00
Costin Leau 91ecefdaa1 renamed EhcacheCacheManager to EhCacheCacheManager
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3949 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-07 17:45:29 +00:00
Costin Leau 61d1324dc9 renamed EhcacheCacheManager to EhCacheCacheManager
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3948 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-07 17:44:41 +00:00
Costin Leau 1f92a12c1e moved cache abstraction from context.support to context
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3947 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-07 17:41:25 +00:00
Keith Donald ded88e3a7b added support for Instant and MutableDateTime binding to JodaTime formatting system; allow for use of @DateTimeFormat on any ReadableInstant field
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3941 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-04 20:17:52 +00:00
Keith Donald 2c0cb96fbf reordered interface operations for clarity
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3940 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-04 18:20:05 +00:00
Keith Donald 39a2ec31a1 SPR-7875
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3939 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-04 18:17:30 +00:00
Costin Leau 5e08586261 SPR-7887
+ add javadoc on JBoss LTW for usage on JBoss 6.0

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3935 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-01 10:19:23 +00:00
Costin Leau e1cd8ac5f1 SPR-4331
LTW for WebSphere


git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3933 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-01 10:17:42 +00:00
Rossen Stoyanchev 26c92551dd SPR-7912 Add tests for FormattingConversionServiceFactoryBean, update reference docs, and remove mvc:formatters
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3928 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-27 11:26:19 +00:00
Rossen Stoyanchev 27df774e38 SPR-7912 Introduce FormatterRegistrar interface and FormattingConversionServiceFactoryBean enhancements.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3927 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-26 22:20:49 +00:00
Rossen Stoyanchev 174f609be4 SPR-7732, SPR-6506, SPR-7191 MVC Namespace improvements to the annotation-driven element - custom message converters, formatters, and message codes resolver.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3920 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-25 17:49:57 +00:00
Juergen Hoeller 7512a85355 added tests with error in BindingResult (SPR-7809)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3909 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-18 21:39:08 +00:00
Keith Donald 7d9e728c55 array autogrow on set e.g. array[0]=foo
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3887 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-07 17:28:18 +00:00
Chris Beams 5a7d2a91ba Introduce ApplicationContextInitializer interface
Designed primarily for use in conjunction with web applications
to provide a convenient mechanism for configuring the container
programmatically.

ApplicationContextInitializer implementations are specified through the
new "contextInitializerClasses" servlet context parameter, then detected
and invoked by ContextLoader in its customizeContext() method.

In any case, the semantics of ApplicationContextInitializer's
initialize(ConfigurableApplicationContext) method require that
invocation occur *prior* to refreshing the application context.

ACI implementations may also implement Ordered/PriorityOrdered and
ContextLoader will sort instances appropriately prior to invocation.

Specifically, this new support provides a straightforward way to
programmatically access the container's Environment for the purpose
of adding, removing or otherwise manipulating PropertySource objects.

See Javadoc for further details.

Also note that ApplicationContextInitializer semantics overlap to
some degree with Servlet 3.0's notion of ServletContainerInitializer
classes. As Spring 3.1 development progresses, we'll likely see
these two come together and further influence one another.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3882 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-07 09:57:57 +00:00
Keith Donald 97033d66fb switched to better encapsulated convert(Object, TypeDescriptor) where possible
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3880 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-07 05:57:25 +00:00
Keith Donald d3d7951265 added forNestedType(MethodParameter) for resolution of nested parameter types for collection, array, and map parameter types
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3875 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-06 21:59:34 +00:00
Sam Brannen 22e377580c Changed slf4j.jcl dependency from 1.5.6 to 1.5.3 for consistency with build.versions.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3874 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-06 20:05:22 +00:00
Keith Donald 66814f1235 forNestedType usage clarification
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3873 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-06 18:33:50 +00:00
Keith Donald 6756901e84 temp added ignore on 2 new failing tests until time to investigate
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3871 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-06 12:00:51 +00:00
Keith Donald 14f1bb5e67 temp added ignore on 2 new failing tests until time to investigate
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3870 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-06 11:41:30 +00:00
Chris Beams 1f8637d944 Introduce and integrate JndiPropertySource
DefaultWebEnvironment automatically adds a JndiPropertySource if
a "jndiPropertySourceEnabled" property is detected in any of the
other other default property sources.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3869 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-06 07:43:29 +00:00
Chris Beams 480aa5d993 Document createEnvironment() methods
in AbstractApplicationContext and SpringContextResourceAdapter

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3866 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-05 22:25:42 +00:00
Chris Beams d29eae3ba0 Remove dead code
* removed registerStandardBeanFactoryPostProcessors() methods
* removed commented-out test from PropertyResourceConfigurerTests

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3864 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-05 22:24:55 +00:00
Chris Beams 3aaa6cf23a Refactor PropertyPlaceholderConfigurer hierarchy
PropertySourcesPlaceholderConfigurer accommodates recent changes in
Environment and PropertySource APIs, e.g. no longer assuming enumerability
of property names.

PSPC reuses as much functionality as possible from
AbstractPropertyPlaceholderConfigurer, but overrides
postProcessBeanFactory() and defines its own variation on
processProperties() in order to accept a PropertyResolver rather than
a PropertySource.

AbstractPropertyPlaceholderConfigurer introduces doProcessProperties()
method to encapsulate that which is actually common, such as the
visiting of each bean definition once a StringValueResolver has been
created in the subclass.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3863 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-05 22:24:37 +00:00
Chris Beams 835a3f8d64 Refactor Environment and PropertySource
* Environment now extends PropertyResolver
* Environment no longer exposes resolver and sources
* PropertySource is String,Object instead of String,String
* PropertySource no longer assumes enumerability of property names
* Introduced EnumerablePropertySource for those that do have enumerable property names

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3862 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-05 22:24:14 +00:00
Juergen Hoeller ad67d91646 fixed AbstractBindingResult to avoid NPE in "hashCode()" if target is null (SPR-7682)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3857 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-05 19:42:35 +00:00
Keith Donald ddc3cab014 spr7816
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3848 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-05 06:23:04 +00:00
Keith Donald 1e2a8083a1 TypeDescriptor cleanup and general polishing; fixed a number of bugs related to TypeDescriptor usage in client code across beans and spel packages
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3846 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-05 05:49:33 +00:00
Chris Beams d00b49dca5 Introduce "Aware" superinterface
All existing *Aware interfaces have been refactored to extend this
new marker interface, serving two purposes:

    * Easy access to a type hierarchy that can answer the question
      "What *Aware interfaces are available?", without requiring
      text-based searches. Also clearly excludes false positives like
      TargetClassAware and ParamAware, which while similarly named,
      are not semantically similar to traditional *Aware interfaces
      in Spring.

    * Minor potential performance improvements in
      AbstractAutowireCapableBeanFactory and
      ApplicationContextAwareProcessor. Both have blocks of sequential
      instanceof checks in order to invoke any *Aware interface callback
      methods. For a bean that implements none of these interfaces,
      the whole sequence can be avoided by guarding first with
          if (bean instanceof Aware) {
              ...
          }

Implementors of custom *Aware-style interfaces (and presumably
the BeanPostProcessors that handle them), are encouraged to refactor to
extending this interface for consistency with the framework as well as
the points above.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3840 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-03 10:13:57 +00:00
Chris Beams 1ac7b56caf M1 cut of environment, profiles and property work (SPR-7508)
Decomposed Environment interface into PropertySources, PropertyResolver
objects

    Environment interface and implementations are still present, but
    simpler.

    PropertySources container aggregates PropertySource objects;
    PropertyResolver provides search, conversion, placeholder
    replacement. Single implementation for now is
    PropertySourcesPlaceholderResolver

Renamed EnvironmentAwarePropertyPlaceholderConfigurer to
PropertySourcesPlaceholderConfigurer

    <context:property-placeholder/> now registers PSPC by default, else
    PPC if systemPropertiesMode* settings are involved

Refined configuration and behavior of default profiles

    See Environment interface Javadoc for details

Added Portlet implementations of relevant interfaces:

    * DefaultPortletEnvironment
    * PortletConfigPropertySource, PortletContextPropertySource
    * Integrated each appropriately throughout Portlet app contexts

Added protected 'createEnvironment()' method to AbstractApplicationContext

    Subclasses can override at will to supply a custom Environment
    implementation.  In practice throughout the framework, this is how
    Web- and Portlet-related ApplicationContexts override use of the
    DefaultEnvironment and swap in DefaultWebEnvironment or
    DefaultPortletEnvironment as appropriate.

Introduced "stub-and-replace" behavior for Servlet- and Portlet-based
PropertySource implementations

    Allows for early registration and ordering of the stub, then
    replacement with actual backing object at refresh() time.

    Added AbstractApplicationContext.initPropertySources() method to
    support stub-and-replace behavior. Called from within existing
    prepareRefresh() method so as to avoid impact with
    ApplicationContext implementations that copy and modify AAC's
    refresh() method (e.g.: Spring DM).

    Added methods to WebApplicationContextUtils and
    PortletApplicationContextUtils to support stub-and-replace behavior

Added comprehensive Javadoc for all new or modified types and members

Added XSD documentation for all new or modified elements and attributes

    Including nested <beans>, <beans profile="..."/>, and changes for
    certain attributes type from xsd:IDREF to xsd:string

Improved fix for detecting non-file based Resources in
PropertiesLoaderSupport (SPR-7547, SPR-7552)

    Technically unrelated to environment work, but grouped in with
    this changeset for convenience.

Deprecated (removed) context:property-placeholder
'system-properties-mode' attribute from spring-context-3.1.xsd

    Functionality is preserved for those using schemas up to and including
    spring-context-3.0.  For 3.1, system-properties-mode is no longer
    supported as it conflicts with the idea of managing a set of property
    sources within the context's Environment object. See Javadoc in
    PropertyPlaceholderConfigurer, AbstractPropertyPlaceholderConfigurer
    and PropertySourcesPlaceholderConfigurer for details.

Introduced CollectionUtils.toArray(Enumeration<E>, A[])

Work items remaining for 3.1 M2:

    Consider repackaging PropertySource* types; eliminate internal use
    of SystemPropertyUtils and deprecate

    Further work on composition of Environment interface; consider
    repurposing existing PlaceholderResolver interface to obviate need
    for resolve[Required]Placeholder() methods currently in Environment.

    Ensure configurability of placeholder prefix, suffix, and value
    separator when working against an AbstractPropertyResolver

    Add JNDI-based Environment / PropertySource implementatinos

    Consider support for @Profile at the @Bean level

    Provide consistent logging for the entire property resolution
    lifecycle; consider issuing all such messages against a dedicated
    logger with a single category.

    Add reference documentation to cover the featureset.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3839 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-03 09:04:34 +00:00
Sam Brannen 924b8e11ea [SPR-7850][SPR-7851] Upgraded to JUnit 4.8.1 and TestNG 5.12.1; added changelog entries for 3.1.0.M1.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3838 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-30 08:00:58 +00:00
Chris Beams 7ac69dff5f Normalize indentation of Apache license URL
In accordance with recommendations at
http://www.apache.org/licenses/LICENSE-2.0.html.

A number of classes had strayed from this format, now all
are the same.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3831 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-22 21:40:19 +00:00
Chris Beams 2a4e1c98da Eliminate reserved 'default' profile (SPR-7778)
There is no longer a reserved default profile named 'default'. Rather,
users must explicitly specify a default profile or profiles via

    ConfigurableEnvironment.setDefaultProfiles(String...)
        - or -
    spring.profile.default="pD1,pD2"

Per above, the setDefaultProfile(String) method now accepts a variable
number of profile names (one or more).  This is symmetrical with the
existing setActiveProfiles(String...) method.

A typical scenario might involve setting both a default profile as a
servlet context property in web.xml and then setting an active profile
when deploying to production.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3809 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-08 07:59:25 +00:00
Chris Beams d469bf1387 Polish JavaDoc
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3808 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-08 07:58:47 +00:00
Chris Beams 7daf7da08b Add Hamcrest 1.1 as test-time dependency for .context
Provides a richer set of Matcher implementations than JUnit's hamcrest
package.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3807 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-07 06:56:55 +00:00
Chris Beams c2996bebcd Use dot notation rather than camel case for profile props (SPR-7508)
Before this change, the following properties could be used to manipulate
Spring profile behavior:

    -DspringProfiles=p1,p2
    -DdefaultSpringProfile=pD

These properties have been renamed to follow usual Java conventions for
property naming:

    -Dspring.profile.active=p1,p2
    -Dspring.profile.default=pD



git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3806 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-05 20:14:26 +00:00
Chris Beams f455b1e89a Support default profile (SPR-7508, SPR-7778)
'default' is now a reserved profile name, indicating
that any beans defined within that profile will be registered
unless another profile or profiles have been activated.

Examples below are expressed in XML, but apply equally when
using the @Profile annotation.

EXAMPLE 1:

        <beans>
            <beans profile="default">
                <bean id="foo" class="com.acme.EmbeddedFooImpl"/>
            </beans>
            <beans profile="production">
                <bean id="foo" class="com.acme.ProdFooImpl"/>
            </beans>
        </beans>

    In the case above, the EmbeddedFooImpl 'foo' bean will be
    registered if:
        a) no profile is active
        b) the 'default' profile has explicitly been made active

    The ProdFooImpl 'foo' bean will be registered if the 'production'
    profile is active.

EXAMPLE 2:

        <beans profile="default,xyz">
            <bean id="foo" class="java.lang.String"/>
        </beans>

    Bean 'foo' will be registered if any of the following are true:
        a) no profile is active
        b) 'xyz' profile is active
        c) 'default' profile has explicitly been made active
        d) both (b) and (c) are true

Note that the default profile is not to be confused with specifying no
profile at all.  When the default profile is specified, beans are
registered only if no other profiles are active; whereas when no profile
is specified, bean definitions are always registered regardless of which
profiles are active.

The default profile may be configured programmatically:

    environmnent.setDefaultProfile("embedded");

or declaratively through any registered PropertySource, e.g. system properties:

    -DdefaultSpringProfile=embedded

Assuming either of the above, example 1 could be rewritten as follows:

        <beans>
            <beans profile="embedded">
                <bean id="foo" class="com.acme.EmbeddedFooImpl"/>
            </beans>
            <beans profile="production">
                <bean id="foo" class="com.acme.ProdFooImpl"/>
            </beans>
        </beans>

It is unlikely that use of the default profile will make sense in
conjunction with a statically specified 'springProfiles' property.
For example, if 'springProfiles' is specified as a web.xml context
param, that profile will always be active for that application,
negating the possibility of default profile bean definitions ever
being registered.

The default profile is most useful for ensuring that a valid set of
bean definitions will always be registered without forcing users
to explictly specify active profiles.  In the embedded vs. production
examples above, it is assumed that the application JVM will be started
with -DspringProfiles=production when the application is in fact in
a production environment.  Otherwise, the embedded/default profile bean
definitions will always be registered.


git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3804 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-01 09:01:58 +00:00
Chris Beams e5fb701466 Remove obsolete ConfigurationClassPostProcessor.getOrder()
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3802 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-01 08:36:12 +00:00
Chris Beams 6e9e1f0946 Minor post-merge cleanup
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3783 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-25 19:54:01 +00:00
Chris Beams 45e5b46fc2 Merge 3.1.0 development branch into trunk
Branch in question is 'env' branch from git://git.springsource.org/sandbox/cbeams.git; merged into
git-svn repository with:

    git merge -s recursive -Xtheirs --no-commit env

No merge conflicts, but did need to

    git rm spring-build

prior to committing.

With this change, Spring 3.1.0 development is now happening on SVN
trunk. Further commits to the 3.0.x line will happen in an as-yet
uncreated SVN branch.  3.1.0 snapshots will be available
per the usual nightly CI build from trunk.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3782 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-25 19:48:20 +00:00
Juergen Hoeller e91ae9573e polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3780 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-20 21:15:22 +00:00
Ramnivas Laddad 0856315864 Fixed configuration of AnnotationAsyncExecutionAspect (was incorrectly under the same name as that for transaction management aspect)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3773 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-17 22:33:30 +00:00
Juergen Hoeller 708f816053 added mode="proxy"/"aspectj" and proxy-target-class options to task namespace; switched to concise names for async aspects
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3770 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-15 20:50:23 +00:00
Juergen Hoeller d0846425f5 fixed @Value injection to correctly cache temporary null results for non-singleton beans (SPR-7614)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3762 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-14 19:49:29 +00:00
Juergen Hoeller a52450e21a fixed @Value injection to correctly cache temporary null results for non-singleton beans (SPR-7614)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3760 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-14 19:40:36 +00:00
Juergen Hoeller 1a3d05d990 fixed JodaTimeContextHolder to use a non-inheritable ThreadLocal and expose a reset method (SPR-7441); use of remove() even when being called with a null argument
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3736 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-11 18:55:21 +00:00
Juergen Hoeller 8e823bcf78 SpEL MapAccessor consistently rejects "target.key" style access to Maps if no such key is found (SPR-7614)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3729 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-10 20:22:15 +00:00
Juergen Hoeller 89f3436596 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3725 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-10 18:31:43 +00:00
Juergen Hoeller 2062b44c16 optimized @Bean error messages (SPR-7628, SPR-7629)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3724 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-10 18:31:03 +00:00
Juergen Hoeller f3e7fd9bc9 fixed ApplicationContext event processing for repeated invocations to non-singleton listener beans (SPR-7563)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3705 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-01 22:16:21 +00:00
Juergen Hoeller 6d8f287810 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3669 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-09 09:04:40 +00:00
Chris Beams 6cb152cc09 Allow class-relative resource loading in GenericXmlApplicationContext (SPR-7530)
Before:

    - new GenericXmlApplicationContext("com/acme/path/to/resource.xml");

    - GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
      ctx.load("com/acme/path/to/resource.xml");
      ctx.refresh();

After:

    - The above remain supported, as well as new class-relative variants

    - import com.acme.path.to.Foo;
      new GenericXmlApplicationContext(Foo.class, "resource.xml");

    - import com.acme.path.to.Foo;
      GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
      ctx.load(Foo.class, "resource.xml");
      ctx.refresh();

These changes are generally aligned with signatures long available in
ClassPathXmlApplicationContext. As GenericXmlApplicationContext is
intended to be a more flexible successor to CPXAC (and FSXAC), it's
important that all the same conveniences are available.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3660 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-08 15:30:48 +00:00
Juergen Hoeller 0a295603db added bean type to post-processing log statement (SPR-7524)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3642 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-06 20:06:48 +00:00
Juergen Hoeller 68597b9359 avoid failures in case of manually registered null instance (SPR-7523)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3641 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-06 19:47:16 +00:00
Juergen Hoeller c2a1d571d8 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3629 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-01 18:41:10 +00:00
Juergen Hoeller da758771fa consistent use of JDK 1.5's ThreadLocal.remove() over ThreadLocal.set(null), preventing leaks (SPR-7441)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3627 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-01 17:17:25 +00:00
Chris Beams 9b68accbce Fix memory leak in serializable bean factory management (SPR-7502)
GenericApplicationContext and AbstractRefreshableApplicationContext
implementations now call DefaultListableBeanFactory.setSerializationId()
only upon successful refresh() instead of on instantiation of the
context, as was previously the case with GAC.

DLBF.setSerializationId() adds the beanFactory to the *static*
DLBF.serializableFactories map, and while calling close() on the
application context removes entries from that map, it does so only if
the context is currently active (i.e. refresh() has been called).

Also, cancelRefresh() has been overridden in GAC just as it has been
in ARAC to accomodate the possibility of a BeansException being thrown.
In this case, the beanFactory serializationId will be nulled out and
the beanFactory removed from the serializableFactories map.

The SerializableBeanFactoryMemoryLeakTests test case provides full
coverage of these scenarios.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3615 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-27 10:53:20 +00:00
Ben Hale 82e5f5f5d6 Publishing license and notice files
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3612 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-23 13:17:31 +00:00
Arjen Poutsma 750dc01862 Prepping for 3.0.5
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3611 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-19 11:04:04 +00:00
Juergen Hoeller 56f7b00dff polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3594 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-15 23:04:19 +00:00
Juergen Hoeller d2a5c927ce lazy creation of MessageFormats
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3593 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-15 23:04:02 +00:00
David Syer 122d313f9c SPR-7463: switched to instance variable
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3576 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-14 11:09:42 +00:00
Juergen Hoeller 4e33c7d442 Spring's constructor resolution consistently finds non-public multi-arg constructors (SPR-7453)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3565 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-11 19:24:30 +00:00
Juergen Hoeller 74ac938aac AutodetectCapableMBeanInfoAssembler signature consistently refers to Class<?> (SPR-7405)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3514 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-29 20:29:32 +00:00
Juergen Hoeller 250c3546b9 TaskExecutorFactoryBean (as used by task:executor) exposes full ThreadPoolTaskExecutor type (SPR-7403)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3511 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-28 17:39:03 +00:00
Juergen Hoeller 085449cf1e fixed @PathVariable regression in combination with ConversionService usage on DataBinder
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3504 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-26 20:14:57 +00:00
Juergen Hoeller 63bfe5e8e4 Spring field error arguments include actually declared annotation attributes in alphabetical order (SPR-6730)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3496 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-21 14:24:10 +00:00
Chris Beams 3f51f1dc14 Fix dependency issues in .context pom and .classpath
Hibernate validator had been updated to 4.1.0 in the ivy metadata, but
not yet reflected in the .classpath file.  The pom.xml had been updated
but there was a typo - scope read 'coompile', instead of 'compile'.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3495 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-21 12:04:06 +00:00
Juergen Hoeller 038ee9ff86 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3492 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-20 20:02:43 +00:00
Juergen Hoeller 424e10e173 JSR-303 Pattern message resolvable through Spring MessageSource (despite special characters; SPR-7329)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3491 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-20 20:02:23 +00:00
David Syer 5252d9c1ec Fix hibernate-validatin version
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3490 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-20 15:41:41 +00:00
David Syer b1c2d1ea2c SPR-7384: switch to using 1-12 for month numbers
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3489 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-20 15:25:00 +00:00
Juergen Hoeller 3d06c7229c BeanWrapper preserves annotation information for individual array/list/map elements (SPR-7348)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3482 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-12 20:56:22 +00:00
Juergen Hoeller 6b55137d3e JSP EvalTag resolves "@myBeanName" references in expressions against the WebApplicationContext (SPR-7312); for consistency, expressions in an ApplicationContext support the same syntax against the local BeanFactory
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3479 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-12 19:36:26 +00:00
Chris Beams 49ae2e809d attempted to repro SPR-7318 to no avail
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3467 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-28 22:57:26 +00:00
Juergen Hoeller 0d6536ca53 added "validationMessageSource" property to LocalValidatorFactoryBean, for Spring-based messages (SPR-7307)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3466 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-28 22:08:31 +00:00
Juergen Hoeller 9fb510c139 turned formatter implementations non-final
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3451 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-23 19:34:29 +00:00
Juergen Hoeller 391ecafe55 fixed order
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3435 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-20 19:11:51 +00:00
Juergen Hoeller 9e57fc0ff9 added test for invalid binding to ClassLoader
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3434 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-20 19:11:36 +00:00
Arjen Poutsma 7f54fe732f Upgrading version to 3.0.4
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3428 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-15 14:18:29 +00:00
Juergen Hoeller d693442474 smarter guessing of the element type (SPR-7283)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3420 50f2f4bb-b051-0410-bef5-90022cba6387
2010-06-14 23:26:44 +00:00