Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Jul 27, 2012
  1. Sam Brannen

    Support TransactionManagementConfigurer in the TCF

    sbrannen authored
    Currently the Spring TestContext Framework looks up a
    PlatformTransactionManager bean named "transactionManager". The exact
    name of the bean can be overridden via @TransactionConfiguration or
    @Transactional; however, the bean will always be looked up 'by name'.
    
    The TransactionManagementConfigurer interface that was introduced in
    Spring 3.1 provides a programmatic approach to specifying the
    PlatformTransactionManager bean to be used for annotation-driven
    transaction management, and that bean is not required to be named
    "transactionManager". However, as of Spring 3.1.2, using the
    TransactionManagementConfigurer on a @Configuration class has no effect
    on how the TestContext framework looks up the transaction manager.
    Consequently, if an explicit name or qualifier has not been specified,
    the bean must be named "transactionManager" in order for a transactional
    integration test to work.
    
    This commit addresses this issue by refactoring the
    TransactionalTestExecutionListener so that it looks up and delegates to
    a single TransactionManagementConfigurer as part of the algorithm for
    determining the transaction manager.
    
    Issue: SPR-9604
  2. Sam Brannen

    Support single, unqualified tx manager in the TCF

    sbrannen authored
    TransactionalTestExecutionListener currently requires that the
    PlatformTransactionManager bean be named "transactionManager" by
    default. Otherwise, the bean name can only be overridden via the
    transactionManager attribute of @TransactionConfiguration or the value
    attribute of @Transactional.
    
    However, if there is only a single PlatformTransactionManager in the
    test's ApplicationContext, then the requirement to specify the exact
    name of that bean (or to name it exactly "transactionManager") is often
    superfluous.
    
    This commit addresses this issue by refactoring the
    TransactionalTestExecutionListener so that it is comparable to the
    algorithm for determining the transaction manager used in
    TransactionAspectSupport for "production" code. Specifically, the TTEL
    now uses the following algorithm to retrieve the transaction manager.
    
     - look up by type and qualifier from @Transactional
     - else, look up by type and explicit name from
       @TransactionConfiguration
     - else, look up single bean by type
     - else, look up by type and default name from @TransactionConfiguration
    
    Issue: SPR-9645
Commits on Jul 26, 2012
  1. Sam Brannen
  2. Sam Brannen

    Support named dispatchers in MockServletContext

    sbrannen authored
    Currently the getNamedDispatcher(String) method of MockServletContext
    always returns null. This poses a problem in certain testing scenarios
    since one would always expect at least a default Servlet to be present.
    This is specifically important for web application tests that involve
    the DefaultServletHttpRequestHandler which attempts to forward to the
    default Servlet after retrieving it by name. Furthermore, there is no
    way to register a named RequestDispatcher with the MockServletContext.
    
    This commit addresses these issues by introducing the following in
    MockServletContext.
    
     - a new defaultServletName property for configuring the name of the
       default Servlet, which defaults to "default"
     - named RequestDispatchers can be registered and unregistered
     - a MockRequestDispatcher is registered for the "default" Servlet
       automatically in the constructor
     - when the defaultServletName property is set to a new value the
       the current default RequestDispatcher is unregistered and replaced
       with a MockRequestDispatcher for the new defaultServletName
    
    Issue: SPR-9587
Commits on Jul 25, 2012
  1. Use a default for INTROSPECT_TYPE_LEVEL_MAPPING

    Rossen Stoyanchev authored
    Usually this request attribute is set for all sub-classes of
    AbstractUrlHandlerMapping and therefore whenever
    AnnotationMethodHandlerAdapter is used. However, having a
    default value to fall back on in AnnotationMethodHandlerAdapter
    is still appropriate in general and also considering the Javadoc
    of HandlerMapping.INTROSPECT_TYPE_LEVEL_MAPPING.
    
    Issue: SPR-9629
  2. Improve tests for detection of @MVC annotations

    Rossen Stoyanchev authored
    Issue: SPR-9601
Commits on Jul 24, 2012
  1. Sam Brannen

    Fix typo in MockFilterChain

    sbrannen authored
Commits on Jul 21, 2012
  1. Add ContentNegotiationManagerFactoryBean

    Rossen Stoyanchev authored
    The new FactoryBean facilitates the creation of a
    ContentNegotiationManager in XML configuration.
    
    Issue: SPR-8420
  2. Add options to configure content negotiation

    Rossen Stoyanchev authored
    The MVC Java config and the MVC namespace now support options to
    configure content negotiation. By default both support checking path
    extensions first and the "Accept" header second. For path extensions
    .json, .xml, .atom, and .rss are recognized out of the box if the
    Jackson, JAXB2, or Rome libraries are available. The ServletContext
    and the Java Activation Framework may be used as fallback options
    for path extension lookups.
    
    Issue: SPR-8420
Commits on Jul 20, 2012
  1. Add exclude patterns for mapped interceptors

    Rossen Stoyanchev authored
    Add the ability provide exclude patterns for mapped interceptors in the
    MVC namespace and in the MVC Java config.
    
    Issue: SPR-6570
  2. Fix issue with failing test from previous commit

    Rossen Stoyanchev authored
    Issue: SPR-9611
  3. Ensure async Callables are in sync with the call stack

    Rossen Stoyanchev authored
    After this change each call stack level pushes and pops an async
    Callable to ensure the AsyncExecutionChain is in sync with the
    call stack. Before this change, a controller returning a "forward:"
    prefixed string caused the AsyncExecutionChain to contain a
    extra Callables that did not match the actual call stack.
    
    Issue: SPR-9611
Commits on Jul 18, 2012
  1. Sam Brannen
  2. Create StandardServletAsyncWebRequest via reflection

    Rossen Stoyanchev authored
    Issue: SPR-9500
  3. Parameterize DeferredResult

    Rossen Stoyanchev authored
    Issue: SPR-9579
Commits on Jul 17, 2012
  1. Fix typos in Spring MVC chapter of reference docs

    Rossen Stoyanchev authored
Commits on Jul 16, 2012
  1. Sam Brannen

    Merge pull request #108 from rwinch/SPR-9594

    sbrannen authored
    * SPR-9594:
      Fix minor issue in MockHttpServletRequest
  2. Rob Winch Sam Brannen

    Fix minor issue in MockHttpServletRequest

    rwinch authored sbrannen committed
    Previously MockHttpServletRequest#sendRedirect did not set the HTTP status
    or the Location header. This does not conform to the HttpServletRequest
    interface.
    
    MockHttpServletRequest will now:
    
      - Set the HTTP status to 302 on sendRedirect
      - Set the Location header on sendRedirect
      - Ensure the Location header and getRedirectedUrl are kept in synch
    
    Issue: SPR-9594
Commits on Jul 10, 2012
  1. Update section on exception handling MVC chapter

    Rossen Stoyanchev authored
    Update section on exception handling in Spring MVC chapter to include
    more guidance on exception handling when implementing a REST API.
    
    Issue: SPR-9290
  2. Add BindException to DefaultHandlerExceptionResolver

    Rossen Stoyanchev authored
    Previously DefaultHandlerExceptionResolver did not handle BindException
    but after this change it does. A BindException is raised when an
    @ModelAttribute annotated argument is not followed by a BindingResult
    argument. Hence this is unlikely to affect browser rendering.
    For programmatic clients however this change ensures an unhandled
    BindException is at least turned into a 400 error.
    
    Issue: SPR-9310
  3. Move feed message converters ahead of jackson/jaxb2

    Rossen Stoyanchev authored
    The Atom/RSS message converters are now registered ahead of the
    Jackson and the JAXB2 message converters by default. Since the Atom
    and RSS converters convert to and from very specific object types
    Feed and Channel respectively, that shouldn't introduce any regressions
    and will work more intuitively when the requested media type is "*/*".
    
    Issue: SPR-9054
  4. Chris Beams

    Merge pull request #104 from poutsma/SPR-9536

    cbeams authored
    * SPR-9576:
      Include **/*.aj files in *-sources.jar files
  5. Rob Winch Chris Beams

    Include **/*.aj files in *-sources.jar files

    rwinch authored cbeams committed
    Previously only **/*.java sources files were included in the sources
    jars. This is not ideal for the spring-aspects jar nor does it match
    prior versions of the sources jars.
    
    Now **/*.aj files are included in addition to the **/*.java files.
    
    Issue: SPR-9576
  6. Fix issue with incorrect class import

    Rossen Stoyanchev authored
    Issue: SPR-9112
Commits on Jul 9, 2012
  1. Add support for global @ExceptionHandler methods

    Rossen Stoyanchev authored
    Before this change @ExceptionHandler methods could be located in and
    apply locally within a controller. The change makes it possible to have
    such methods applicable globally regardless of the controller that
    raised the exception.
    
    The easiest way to do that is to add them to a class annotated with
    `@ExceptionResolver`, a new annotation that is also an `@Component`
    annotation (and therefore works with component scanning). It is also
    possible to register classes containing `@ExceptionHandler` methods
    directly with the ExceptionHandlerExceptionResolver.
    
    When multiple `@ExceptionResolver` classes are detected, or registered
    directly, the order in which they're used depends on the the `@Order`
    annotation (if present) or on the value of the order field (if the
    Ordered interface is implemented).
    
    Issue: SPR-9112
Commits on Jul 6, 2012
  1. Juergen Hoeller

    preparations for 3.2 M2

    jhoeller authored
  2. Juergen Hoeller

    added "jtaTransactionManager" property to Hibernate 4 LocalSessionFac…

    jhoeller authored unknown committed
    …toryBean/Builder
    
    Issue: SPR-9480
  3. Juergen Hoeller

    reintroduced static DEFAULT_CHARSET field

    jhoeller authored unknown committed
     Issue: SPR-9487
  4. Chris Beams

    Resolve nested placeholders via PropertyResolver

    cbeams authored
    Prior to this change, PropertySourcesPropertyResolver (and therefore
    all AbstractEnvironment) implementations failed to resolve nested
    placeholders as in the following example:
    
        p1=v1
        p2=v2
        p3=${v1}:{$v2}
    
    Calls to PropertySource#getProperty for keys 'p1' and 'v1' would
    successfully return their respective values, but for 'p3' the return
    value would be the unresolved placeholders. This behavior is
    inconsistent with that of PropertyPlaceholderConfigurer.
    
    PropertySourcesPropertyResolver #getProperty variants now resolve any
    nested placeholders recursively, throwing IllegalArgumentException for
    any unresolvable placeholders (as is the default behavior for
    PropertyPlaceholderConfigurer). See SPR-9569 for an enhancement that
    will intoduce an 'ignoreUnresolvablePlaceholders' switch to make this
    behavior configurable.
    
    This commit also improves error output in
    PropertyPlaceholderHelper#parseStringValue by including the original
    string in which an unresolvable placeholder was found.
    
    Issue: SPR-9473, SPR-9569
Commits on Jul 5, 2012
  1. Fix minor issue in HandlerMethod

    Rossen Stoyanchev authored
    Before this change HandlerMethod used ClassUtils.getUserClass(Class<?>)
    to get the real user class, and not one generated by CGlib. However it
    failed to that under all circumstances. This change fixes that.
    
    Issue: SPR-9490
  2. Add defaultCharset field to StringHttpMessageConverter

    Rossen Stoyanchev authored
    Before this change the StringHttpMessageConverter used a fixed charset
    "ISO-8859-1" if the requested content type did not specify one. This
    change adds a defaultCharset field and a constructor to configure it in
    StringHttpMessageConverter.
    
    Issue: SPR-9487
Commits on Jul 4, 2012
  1. Juergen Hoeller

    preparations for 3.2 M2

    jhoeller authored
  2. Juergen Hoeller

    polishing

    jhoeller authored
  3. Juergen Hoeller

    DispatcherPortlet does not forward event exceptions to the render pha…

    jhoeller authored
    …se by default
    
    Issue: SPR-9287
  4. Juergen Hoeller

    moved getInputStream() not-null requirement to InputStreamSource itse…

    jhoeller authored
    …lf; removed misleading "throws IllegalStateException" declaration
    
    Issue: SPR-9561
Something went wrong with that request. Please try again.