Commit Graph
647 Commits
Author SHA1 Message Date
Keith Donald c5425d0f43 broke out to top-level class for readability
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4456 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-05 08:37:08 +00:00
Keith Donald 89096b46b8 removed dependency on java.beans
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4455 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-05 08:29:14 +00:00
Keith Donald 911eb5fca8 javadoc and polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4454 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-05 07:14:34 +00:00
Keith Donald b58386da08 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4451 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-05 05:46:27 +00:00
Keith Donald a34147a53d revised TypeDescriptor NULL and element/mapKey/mapValue type semantics
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4450 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-05 04:43:18 +00:00
Keith Donald 4ee2900296 added TypeDescriptor resolveCollectionElement and Map key/value types
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4445 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-04 05:38:51 +00:00
Chris Beams 976955f6ad Fix system environment tests on all platforms
Issue: SPR-8245

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4430 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-03 05:16:35 +00:00
Keith Donald b93a2b121d broke out pkg private classes from TypeDescriptor to improve manageability and testability
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4429 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-03 03:09:05 +00:00
Keith Donald 21e2dd87c9 more tests; several assertions for the programmer
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4428 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-03 02:18:22 +00:00
Keith Donald 0b33eb8842 javadoc polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4427 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-03 02:01:28 +00:00
Keith Donald 6af117037f more tests
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4426 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-03 01:55:41 +00:00
Keith Donald f13b99f4ea javadoc
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4425 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-03 00:51:17 +00:00
Keith Donald c7cae10364 simplified TypeDescriptor usage and updated use of the API across BeanWrapper and SpEL; collapsed PropertyTypeDescriptor into TypeDescriptor for simplicity and ease of use; improved docs
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4424 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-02 23:37:19 +00:00
Chris Beams 569e6a4c37 Introduce ConfigurableConversionService interface
Consolidates ConversionService and ConverterRegistry interfaces;
implemented by GenericConversionService.

ConfigurablePropertyResolver#getConversionService now returns this
new type (hence so too does
ConfigurableEnvironment#getConversionService). This allows for
convenient addition / removal of Converter instances from Environment's
existing ConversionService.  For example:

    ConfigurableApplicationContext ctx = new ...
    ConfigurableEnvironment env = ctx.getEnvironment();
    env.getConversionService().addConverter(new FooConverter());

Issue: SPR-8389

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4406 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-02 06:50:42 +00:00
Chris Beams 3d91946b73 Polish ConfigurablePropertyResolver Javadoc
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4405 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-02 06:50:00 +00:00
Chris Beams 4c66a044d5 Revert "Introduce Ordered#NOT_ORDERED"
This reverts commit da914bcfb4 and also
removes the use of Ordered#NOT_ORDERED from EnableTransactionManagement
and ProxyTransactionManagementConfiguration in favor of defaulting to
Ordered#LOWEST_PRIORITY, which is actually the default that results
when no 'order' attribute is specified in XML.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4404 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-02 06:49:15 +00:00
Sam Brannen f70fd0965d [SPR-8388] Cleared up confusing documentation regarding PropertyResolver and Environment.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4403 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-01 21:05:23 +00:00
Sam Brannen d81b19e958 [SPR-8388] Improved documentation on default registered PropertyEditors; fixed typos and grammar in JavaDoc; suppressed warnings due to generics; etc.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4402 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-01 20:54:48 +00:00
Sam Brannen 98202beb7a fixed typos
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4395 50f2f4bb-b051-0410-bef5-90022cba6387
2011-06-01 12:55:26 +00:00
Chris Beams 55707983a1 Ignore failing tests on Windows
Attempt to access and modify the system environment works on OS X /
Linux but not under Windows. Does not represent any real failure for
production code - the need to modify the system environment is a
testing concern only, and one we can probably live without, considering
the losing battle necessary to make such a hack cross-platform.

Issue: SPR-8245

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4392 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-31 10:58:24 +00:00
Chris Beams a38c086e62 Fix failing system environment tests on Windows
Issue: SPR-8245

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4390 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-31 06:42:06 +00:00
Chris Beams 2a896753d4 Polish PropertySource and Environment Javadoc
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4363 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-25 10:52:03 +00:00
Keith Donald fbf43508f1 Revised converter search algorithm to favor super classes before interface hierarchy
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4361 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-24 22:20:54 +00:00
Keith Donald 7d7e8ef7fb SPR-6749
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4360 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-24 19:40:14 +00:00
Keith Donald 8b9196ab7c polish
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4359 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-24 18:32:01 +00:00
Keith Donald 115348b6be added null binding check for primitives for all conversion results; polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4358 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-24 17:53:18 +00:00
Keith Donald c3a037d7be added new ConverterRegistry operation; polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4356 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-24 03:47:50 +00:00
Keith Donald 00bcadcbe5 added symmetry to ToString converters: SPR-8306
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4355 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-23 23:00:43 +00:00
Sam Brannen 1b71b04a3b Added Eclipse project dependency on org.springframework.asm
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4354 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-23 17:18:14 +00:00
Keith Donald 02d58b6a97 SPR-8364
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4348 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-23 07:38:27 +00:00
Keith Donald 888da26094 revised findCommonElement handling within TypeDescriptor.forObject(Object); we now fully introspect the collection elements to resolve the common type. We also support nested introspection e.g. collections of collections. Object.class is used to indicate no common type, and TypeDescriptor.NULL is used to indicate a null element value
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4347 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-23 05:21:02 +00:00
Keith Donald c9789d3a37 moved applyIndexedObject internal, now invoked inside forObject static factory method
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4346 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-23 01:08:18 +00:00
Keith Donald c42976ba7a SPR-8364
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4345 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-22 19:10:40 +00:00
Chris Beams a9530596bf Guard against null in #visitInnerClass
Issue: SPR-8358,SPR-8186

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4344 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-21 01:39:50 +00:00
Chris Beams 0181ed3213 Introduce ClassMetadata#getMemberClassNames
ClassMetadata implementations can now introspect their member (nested)
classes. This will allow for automatic detection of nested
@Configuration types in SPR-8186.

Issue: SPR-8358,SPR-8186

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4342 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-21 01:20:03 +00:00
Chris Beams 2b6bcf470c Rename {DefaultWeb=>StandardServlet}Environment
Issue: SPR-8348

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4338 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-20 03:55:56 +00:00
Chris Beams cf19ecc5a7 Rename {Default=>Standard}Environment
Issue: SPR-8348

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4337 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-20 03:53:37 +00:00
Chris Beams 74cd20abeb Polish Environment-related Javadoc
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4336 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-20 03:50:41 +00:00
Chris Beams 3fcb25c1c6 Introduce AbstractEnvironment#customizePropertySources
This new hook in the AbstractEnvironment lifecycle allows for more
explicit and predictable customization of property sources by
subclasses.  See Javadoc and existing implementations for detail.

Issue: SPR-8354

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4335 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-20 03:50:14 +00:00
Chris Beams ebea9ec66c Introduce reserved default profile support
AbstractEnvironment and subclasses now register a reserved default
profile named literally 'default' such that with no action on the part
of the user, beans defined against the 'default' profile will be
registered - if no other profiles are explicitly activated.

For example, given the following three files a.xml, b.xml and c.xml:

    a.xml
    -----
    <beans> <!-- no 'profile' attribute -->
        <bean id="a" class="com.acme.A"/>
    </beans>

    b.xml
    -----
    <beans profile="default">
        <bean id="b" class="com.acme.B"/>
    </beans>

    c.xml
    -----
    <beans profile="custom">
        <bean id="c" class="com.acme.C"/>
    </beans>

bootstrapping all of the files in a Spring ApplicationContext as
follows will result in beans 'a' and 'b', but not 'c' being registered:

    ApplicationContext ctx = new GenericXmlApplicationContext();
    ctx.load("a.xml");
    ctx.load("b.xml");
    ctx.load("c.xml");
    ctx.refresh();
    ctx.containsBean("a"); // true
    ctx.containsBean("b"); // true
    ctx.containsBean("c"); // false

whereas activating the 'custom' profile will result in beans 'a' and
'c', but not 'b' being registered:

    ApplicationContext ctx = new GenericXmlApplicationContext();
    ctx.load("a.xml");
    ctx.load("b.xml");
    ctx.load("c.xml");
    ctx.getEnvironment().setActiveProfiles("custom");
    ctx.refresh();
    ctx.containsBean("a"); // true
    ctx.containsBean("b"); // false
    ctx.containsBean("c"); // true

that is, once the 'custom' profile is activated, beans defined against
the the reserved default profile are no longer registered. Beans not
defined against any profile ('a') are always registered regardless of
which profiles are active, and of course beans registered
against specific active profiles ('c') are registered.

The reserved default profile is, in practice, just another 'default
profile', as might be added through calling env.setDefaultProfiles() or
via the 'spring.profiles.default' property.  The only difference is that
the reserved default is added automatically by AbstractEnvironment
implementations.  As such, any call to setDefaultProfiles() or value set
for the 'spring.profiles.default' will override the reserved default
profile.  If a user wishes to add their own default profile while
keeping the reserved default profile as well, it will need to be
explicitly redeclared, e.g.:

    env.addDefaultProfiles("my-default-profile", "default")

The reserved default profile(s) are determined by the value returned
from AbstractEnvironment#getReservedDefaultProfiles().  This protected
method may be overridden by subclasses in order to customize the
set of reserved default profiles.

Issue: SPR-8203

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4334 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-20 03:49:15 +00:00
Chris Beams cd38a828d2 Remove AbstractEnvironment#getPropertyResolver
Method is obsolete now that Environment (thus AbstractEnvironment as
well) implements the ConfigurablePropertyResolver interface.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4333 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-20 03:48:19 +00:00
Chris Beams 71d713b604 Consolidate Environment tests
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4332 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-20 03:47:48 +00:00
Oliver Gierke 11383f27fb SPR-8336 - Fixed broken test case.
Converted the test to JUnit 4.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4309 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-14 06:44:51 +00:00
Oliver Gierke 6f41d8c68d SPR-8336 - Added constructor to AnnotationTypeFilter to allow matching interfaces as well.
Reviewed by Chris.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4308 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-14 06:22:44 +00:00
Sam Brannen 9ce25bc5e4 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4291 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-11 20:09:08 +00:00
Chris Beams f9783127e9 Introduce ResourcePropertySource
Allows convenient creation of a Properties-based PropertySource from a
Spring Resource object or resource location string such as
"classpath:com/myco/app.properties" or "file:/path/to/file.properties"

Issue: SPR-8328

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4288 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-11 13:28:05 +00:00
Chris Beams 3f7d5120c9 Support 'required properties' precondition
Users may now call #setRequiredProperties(String...) against the
Environment (via its ConfigurablePropertyResolver interface) in order
to indicate which properties must be present.

Environment#validateRequiredProperties() is invoked by
AbstractApplicationContext during the refresh() lifecycle to perform
the actual check and a MissingRequiredPropertiesException is thrown
if the precondition is not satisfied.

Issue: SPR-8323

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4285 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-11 07:36:04 +00:00
Chris Beams 26e6c9f1df Pull up default getProperty variants to base class
Issue: SPR-8322

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4284 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-11 07:35:16 +00:00
Chris Beams 11cf5f0d3b Add default-value getProperty convenience variants
Issue: SPR-8322

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4283 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-11 06:09:06 +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