Commit Graph
321 Commits
Author SHA1 Message Date
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 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
Juergen Hoeller 341db8b2f3 LocaleChangeInterceptor validates locale values in order to prevent XSS vulnerability (SPR-7779)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3924 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-26 20:30:30 +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
Arjen Poutsma 38282a38bf SPR-6902 - @ResponseBody does not work with @ExceptionHandler
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3898 50f2f4bb-b051-0410-bef5-90022cba6387
2011-01-10 12:26: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
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
Arjen Poutsma cbdec821c4 SPR-7706 - 304 responses should not have non-0 Content-Length
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3824 50f2f4bb-b051-0410-bef5-90022cba6387
2010-12-20 16:32:58 +00:00
Arjen Poutsma bcad0df063 SPR-7707 - Unexpected behavior with class-level @RequestMappings
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3793 50f2f4bb-b051-0410-bef5-90022cba6387
2010-11-08 14:56:35 +00:00
Costin Leau 810bb4a441 SPR-7703
- minor performance improvements to servlet and portlet handlers


git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3792 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-31 17:46:15 +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 6ea12936c8 AbstractJasperReportsView only sets locale model attributes if not present already
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3775 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-20 05:22:43 +00:00
Juergen Hoeller 92a3c025e8 reintroduced getHandler(request, cache) in deprecated form (after removing it in 3.0.4)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3768 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-15 14:05:22 +00:00
Juergen Hoeller 2e9fe246e7 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3757 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-14 00:30:07 +00:00
Arjen Poutsma ff620e1f60 SPR-5367 - PathVariable mappings are greedy over hard coded mappings
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3750 50f2f4bb-b051-0410-bef5-90022cba6387
2010-10-13 12:03:26 +00:00
Chris Beams 32c08d1b3f Review recent documentation and default servlet changes
- Relocate and fix typos in interface-based @RequestMapping tip (SPR-7537)
- Fix typos in constructor-arg 'name' disambiguation section (SPR-7443)
- Polish whitespace in DefaultServletHttpRequestHandler (SPR-7553)

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3689 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-15 08:45:21 +00:00
Jeremy Grelle 41c5c62d2e SPR-7553 - DefaultServletHttpRequestHandler fails on Google App Engine
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3679 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-13 19:58:26 +00:00
Juergen Hoeller 383b4c68a2 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3666 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-08 22:53:39 +00:00
Juergen Hoeller 25a6ffa75f polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3644 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-06 21:20:03 +00:00
Juergen Hoeller ba1e4c2d10 extended synchronization for methodResolverCache (SPR-7525)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3643 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-06 20:41:50 +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 be6a363e70 fixed EvalTag's EvaluationContext caching (SPR-7482)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3624 50f2f4bb-b051-0410-bef5-90022cba6387
2010-09-01 13:33:45 +00:00
Arjen Poutsma 7778cd8aed SPR-7490 - Reverting RedirectView to it's 3.0.3 version
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3614 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-25 09:00:09 +00:00
Arjen Poutsma 000b904f7d SPR-7316 - writeAcceptCharset now also set to false when using mvc namespace.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3613 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-23 14:53:00 +00:00
Arjen Poutsma 2d3eeeb4ea SPR-7471 - Regression in redirect URL encoding
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3607 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-19 08:54:42 +00:00
Juergen Hoeller 6e2e676581 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3601 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-16 21:24:21 +00:00
Juergen Hoeller 162a2b535a polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3600 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-16 20:39:28 +00:00
Juergen Hoeller 71c052155e consistent converting and escaping of label values (following AbstractMultiCheckedElementTag's SPR-7174)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3599 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-16 20:39:14 +00:00
Juergen Hoeller fded7496d5 renamed "mapping-order" to "order"; added "cache-period"
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3598 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-16 19:04:51 +00:00
Juergen Hoeller 628eff0773 return 404 in case of no media type found
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3597 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-16 19:02:12 +00:00
Juergen Hoeller 8a43bf4949 polishing
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3580 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-15 21:17:39 +00:00
Juergen Hoeller 3f7c46e16d revised handler method resolution, in particular with respect to generic interfaces (SPR-7355)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3579 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-15 21:12:54 +00:00
Juergen Hoeller 0c98b55bc1 revised DispatcherServlet's last-modified handling to properly work with scoped controllers; added HEAD support to ResourceHttpRequestHandler
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3573 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-12 22:54:24 +00:00
Juergen Hoeller 93b98f48ed refined logging of handler objects in order to avoid early access to scoped proxies (SPR-7456)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3571 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-12 22:14:20 +00:00
Juergen Hoeller 39787d0745 fixed JSP EvalTag to render null result as empty String instead of "null" String (SPR-7459)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3568 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-12 18:41:24 +00:00
Arjen Poutsma 2dccb96f85 SPR-7427 - URL in a redirect is not escaped by RedirectView
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3564 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-11 11:44:44 +00:00
Juergen Hoeller 385b21fc27 changed contentLength() from int to long
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3550 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-09 15:58:07 +00:00
Juergen Hoeller 1e389ddcc7 fixed package-info
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3549 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-08 23:31:48 +00:00
Juergen Hoeller 3f23b8f258 revised ResourceHttpRequestHandler (SPR-7116)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3548 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-08 23:25:49 +00:00
Chris Beams e820dda201 Clarify ServletException is thrown when no view is resolved (SPR-7339)
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3530 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-07 13:57:07 +00:00
Jeremy Grelle 66fc997f5d SPR-7116 - javadocs
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3518 50f2f4bb-b051-0410-bef5-90022cba6387
2010-08-02 22:37:14 +00:00
Jeremy Grelle c7f1a2fd76 SPR-7116 - Simplified (removed gzip and white-listing) and completed XML namespace config.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3516 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-31 01:09:40 +00:00
Jeremy Grelle 9406f95807 SPR-7116 further work in progress. Added white-listing by media type, checking MIME type from the ServletContext, and some additional validations.
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3512 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-29 00:01:13 +00:00
Jeremy Grelle 5e2f7c9c6f SPR-7116 work in progress. ResourceHttpRequestHandler is now functionally equivalent to the Spring JS ResourceServlet, with the exception of the resource concatenation feature (which will be deferred for reconsideration in 3.1).
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3510 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-27 04:45:43 +00:00
Arjen Poutsma df00d608e2 SPR-7381 - HTTP headers returned as part of ResponseEntity(MultiValueMap<String, String> headers, HttpStatus statusCode) are ignored when using this constructor
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3488 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-16 13:47:19 +00:00
Arjen Poutsma 5592c72b25 SPR-7345 - HTTP 405 (Method not supported) returned when 404 Status (Not Found) was expected
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3487 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-16 10:06:19 +00:00
Arjen Poutsma 4852217b79 SPR-7346 - @RequestHeader negation expressions (e.g. !Accept=text/plain) are not applied
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3484 50f2f4bb-b051-0410-bef5-90022cba6387
2010-07-15 08:49:18 +00:00