Commit Graph

568 Commits

Author SHA1 Message Date
Chris Beams fc3ccd1052 Expose return-value-handlers in mvc namespace
Mirroring the MvcConfigurer#addCustomReturnValueHandlers callback which
allows for providing a list of HandlerMethodReturnValueHandler types

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4271 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:13:44 +00:00
Chris Beams 9e0b7303b4 Rename RequestMapping types for concision
Remove 'Method' from RequestMappingHandlerMethodMapping and
RequestMappingHandlerMethodAdapter

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4270 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:13:05 +00:00
Chris Beams 210e278ce0 Rename DataBinderFactory subtypes for concision
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4269 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:12:14 +00:00
Chris Beams 078222d807 Introduce @EnableMvcConfiguration
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4268 50f2f4bb-b051-0410-bef5-90022cba6387
2011-05-06 19:11:19 +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
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
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
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
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
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
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
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
Rossen Stoyanchev 148a1378af Add UriTemplateServletHandlerMethodTests
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4214 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-11 17:18:07 +00:00
Rossen Stoyanchev 8246d7023d Add UriTemplateServletHandlerMethodTests
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4213 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-11 17:17:51 +00:00
Rossen Stoyanchev 68a7e5b3e2 SPR-8234 Switch to strongly typed custom argument resolvers property
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4212 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-11 15:50:04 +00:00
Rossen Stoyanchev 69189ef12b SPR-8234 Argument resolver and return value handler configuration improvements
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4210 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-11 12:37:33 +00:00
Rossen Stoyanchev 238a2bc815 Fix issues encountered in Greenhouse
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4208 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-10 06:01:11 +00:00
Arjen Poutsma ca89d6e123 SPR-7354 - Added equivalent of JAX-RS @Consumes to Spring MVC
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4198 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-08 13:33:58 +00:00
Arjen Poutsma a37c85f4fc SPR-7354 - Added equivalent of JAX-RS @Consumes to Spring MVC
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4197 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-08 12:06:53 +00:00
Arjen Poutsma adc5aa7a69 SPR-7354 - Added equivalent of JAX-RS @Consumes to Spring MVC
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4196 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-08 11:12:54 +00:00
Arjen Poutsma 7717b8cb5a SPR-7354 - Added equivalent of JAX-RS @Consumes to Spring MVC
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4195 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-08 10:50:45 +00:00
Arjen Poutsma 16bae7e143 SPR-7354 - Added equivalent of JAX-RS @Consumes to Spring MVC
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4194 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-08 09:26:17 +00:00
Rossen Stoyanchev bdc1544091 Javadoc updates
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4193 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-07 22:16:41 +00:00
Rossen Stoyanchev c0692e2ddf ModelAndViewContainer related refinements
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4192 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-07 18:09:28 +00:00
Rossen Stoyanchev cf6046e2dc SPR-8217 adding one class missed on last checkin
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4190 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-06 20:33:10 +00:00
Rossen Stoyanchev 64fbd3740d SPR-8217 update MVC namespace to use HandlerMethod infrastructure
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4189 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-06 20:28:47 +00:00
Rossen Stoyanchev 5338b4f012 Configurable arg resolvers and return value handlers
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4188 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-06 16:55:21 +00:00
Rossen Stoyanchev bc794c1304 Replace ModelAndViewContainer parameter with Object
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4187 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-06 15:30:19 +00:00
Rossen Stoyanchev 26f332b600 SPR-8216 Replicate ServletAnnotationControllerTests for HandlerMethod infrastructure
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4186 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-06 15:30:01 +00:00
Rossen Stoyanchev 674fd869b5 SPR-8215 Fix issue with tests compiling
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4185 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-06 11:52:18 +00:00
Rossen Stoyanchev cd93c27598 SPR-8215 Move HandlerMethod code into trunk
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4184 50f2f4bb-b051-0410-bef5-90022cba6387
2011-04-06 11:30:59 +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
Rossen Stoyanchev 8f5dc17ebc SPR-6932 Add option to extract value from single-key models in MappingJacksonJsonView
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4058 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-04 14:19:14 +00:00
Rossen Stoyanchev ffb76a6046 SPR-2692 Add URI template support to RedirectView
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4057 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-03 15:54:29 +00:00
Rossen Stoyanchev a9ddca1100 Improve docs for MvcDefaultServletHandler container feature.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4056 50f2f4bb-b051-0410-bef5-90022cba6387
2011-03-01 14:32:34 +00:00
Rossen Stoyanchev 00fde776d2 SPR-7976 Add MvcInterceptors features.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4030 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-22 16:13:04 +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
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 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 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
Rossen Stoyanchev 0d06b35924 SPR-7327 Add minOccurs=0 to sub-elements of mvc:annotation-driven and add more tests
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3938 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-03 22:56:13 +00:00
Rossen Stoyanchev 5c337da704 SPR-7327 add <mvc:argument-resolvers> namespace element
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3937 50f2f4bb-b051-0410-bef5-90022cba6387
2011-02-03 15:22:00 +00:00
Rossen Stoyanchev 9d7b43149b Remove code for parsing mvc:formatters (SPR-7732)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3932 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-31 21:30:48 +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