Commit Graph

213 Commits

Author SHA1 Message Date
Keith Donald
1e39b0bbbc implemented collection/map converter conditional matching checks; updated SpEL to reflect this behavior 2011-06-07 20:00:28 +00:00
Keith Donald
5e3a5202fb restored TypeDescriptor getElementType, getMapKeyType, and getMapValueType compatibility; StringToCollection and Array Converters are now conditional and check targetElementType if present; TypeDesciptor#isAssignable no longer bothers with element type and map key/value types in checking assignability for consistency elsewhere; improved javadoc 2011-06-07 02:51:44 +00:00
Keith Donald
cfb387383b broke out to top-level class for readability 2011-06-05 08:37:08 +00:00
Keith Donald
c09227a712 removed dependency on java.beans 2011-06-05 08:29:14 +00:00
Keith Donald
9ece4a88a9 perform narrowing in reflective property accessor read methods as well 2011-06-05 06:01:48 +00:00
Keith Donald
c306afed63 polishing 2011-06-05 05:46:27 +00:00
Keith Donald
c84cccf06d revised TypeDescriptor NULL and element/mapKey/mapValue type semantics 2011-06-05 04:43:18 +00:00
Keith Donald
5db1687d29 added TypeDescriptor resolveCollectionElement and Map key/value types 2011-06-04 05:38:51 +00:00
Keith Donald
6f146737f4 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 2011-06-02 23:37:19 +00:00
Keith Donald
79f9d1cfc6 moved applyIndexedObject internal, now invoked inside forObject static factory method 2011-05-23 01:08:18 +00:00
Andy Clement
f8a2dd3f65 SPR-8211: property accessor ordering correction and removal of unnecessary duplicates 2011-05-12 16:40:44 +00:00
Andy Clement
580f35f6ee SFW-8228 2011-05-11 23:41:30 +00:00
Andy Clement
2f733bedc5 SFW-8224: distance can be used when computing method matches in ReflectiveMethodResolver 2011-05-11 21:44:24 +00:00
Andy Clement
9202224bca SPR-8174: varargs and primitive handling in SpEL 2011-04-01 21:59:25 +00:00
Andy Clement
b9d07b9c47 SPR-7840: comparator dealing with nulls 2011-04-01 18:51:35 +00:00
Juergen Hoeller
cd584afe93 removed ConversionService/TypeConverter convenience methods in order to restore 3.0's SPI (for backwards compatibility with implementers) 2011-02-10 01:24:08 +00:00
Chris Beams
2f7c2230f0 Include license.txt and notice.txt in module JARs 2011-02-09 06:56:40 +00:00
Chris Beams
b4fea47d5c 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
2011-02-08 14:42:33 +00:00
Keith Donald
71e60f4551 Favor convertValue(Object, TypeDescriptor) where possible and TypedValue(Object); check with Andy on Selection and Projection TypedValue usage 2011-01-07 06:32:21 +00:00
Keith Donald
4c9731d572 added forNestedType(MethodParameter) for resolution of nested parameter types for collection, array, and map parameter types 2011-01-06 21:59:34 +00:00
Keith Donald
01c98c3bfb added initial support for handling unknown nested type values when converting collections; now favor factory method for constructing nested type descriptors for clarity (made constructor private); improved javadoc 2011-01-06 05:14:49 +00:00
Keith Donald
818bd841fe method naming improvements; applyIndexObject call for array indexing 2011-01-05 16:54:03 +00:00
Keith Donald
39e0c29d19 TypeDescriptor cleanup and general polishing; fixed a number of bugs related to TypeDescriptor usage in client code across beans and spel packages 2011-01-05 05:49:33 +00:00
Chris Beams
9f5fd3afcf 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.
2010-12-22 21:40:19 +00:00
Juergen Hoeller
a0fead1880 revised TypedValue toString representation (SPR-7569) 2010-10-10 21:29:18 +00:00
Juergen Hoeller
1cd77e2a15 polishing 2010-10-10 20:11:53 +00:00
Juergen Hoeller
5be9473136 initialize cache Maps early, turning them into final fields 2010-10-10 20:11:44 +00:00
Juergen Hoeller
7553b76f15 SpEL method invocations prefer method with fewest parameters (e.g. no-arg over vararg; SPR-7633) 2010-10-10 19:23:01 +00:00
Juergen Hoeller
c33df5977a pass full TypeDescriptor context through to ConversionService calls (SPR-7519) 2010-09-08 17:26:02 +00:00
Juergen Hoeller
055c343ce0 SpEL supports projection on any kind of Collection (SPR-7493) 2010-09-01 21:55:39 +00:00
Juergen Hoeller
61fcef1471 polishing 2010-08-12 18:42:13 +00:00
Juergen Hoeller
58b07f586d SpEL passes full collection type context to ConversionService (SPR-7410) 2010-08-07 17:54:23 +00:00
Juergen Hoeller
263fabb0fc 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 2010-07-12 19:36:26 +00:00
Andy Clement
f5ced9be38 SPR-7335: support for expression inline lists and array construction 2010-07-06 21:00:54 +00:00
Andy Clement
88560fd910 SPR-7343: StandardEvaluationContext not threadsafe in its lazy initialization 2010-07-02 16:08:25 +00:00
Andy Clement
6de707d8e0 polish 2010-07-02 16:07:13 +00:00
Andy Clement
0c1424acb6 polish 2010-07-02 16:06:59 +00:00
Sam Brannen
db7531be60 [SPR-7323] SpEL 'select last' operator now works consistently with maps. 2010-06-26 21:10:20 +00:00
Juergen Hoeller
9e4140e549 growCollection fails for element type Object as well; prefer use of getElementTypeDescriptor() 2010-06-23 21:00:28 +00:00
Andy Clement
569cb91573 javadoc fix 2010-06-21 22:13:49 +00:00
Andy Clement
5801af9ef5 SPR-7244: double indexing with a collection of different types of element 2010-05-28 20:31:16 +00:00
Andy Clement
101d8381ef SPR-7209: parsing poorly formed Elvis expressions 2010-05-18 18:44:40 +00:00
Andy Clement
2b0655b459 SPR-6941 2010-05-06 00:26:13 +00:00
Andy Clement
f53621a86f SPR-7173, SPR-7100 2010-05-05 23:52:01 +00:00
Keith Donald
64d6a42dfd improved conversion system logging, collection converter simplification/polish, several optimizations, annotation-driven formatting caching 2010-04-17 04:43:28 +00:00
Andy Clement
bf1a95c771 SPR-7100: '_' supported as first char of identifier 2010-04-16 21:10:23 +00:00
Juergen Hoeller
52179d8bfb fixed TemplateParserContext documentation (SPR-7059) 2010-04-01 10:59:58 +00:00
Juergen Hoeller
65b0a8fcb2 revised BeanTypeDescriptor into core PropertyTypeDescriptor; consider method annotations for return type (SPR-6979) 2010-03-24 16:27:33 +00:00
Andy Clement
d932c043da SPR-6984: auto grow collections on write through indexer 2010-03-15 18:15:48 +00:00
Juergen Hoeller
0cb7e4dcb3 made getName() public; added isNullSafe() accessor (SPR-6980) 2010-03-14 22:19:56 +00:00