Release Notes - Spring Framework - Version 3.1 M2 - HTML format

Sub-task

  • [SPR-6749] - Optimize GenericConversionService.findConverterForClassPair
  • [SPR-8031] - Resolve remaining SPR-7508 TODO items
  • [SPR-8215] - Move code into trunk
  • [SPR-8216] - Create a version of ServletAnnotationControllerTests that runs with HandlerMethod infrastructure
  • [SPR-8217] - Update MVC namespace to use HandlerMethod infrastructure
  • [SPR-8218] - Update Spring Web documentation following HandlerMethod changes
  • [SPR-8234] - Adapt the existing WebArgumentResolver to the new HandlerMethodArgumentResolver interface from the MVC namespace
  • [SPR-8305] - Introduce PropertySources#getPropertyAsClass

Bug

  • [SPR-6688] - ResourceDatabasePopulator does not regard escaped ' charachters
  • [SPR-7699] - Problem by invoking method NamedParameterJdbcTemplate.query() if parameter contains a array
  • [SPR-7715] - "Dynamic" spelled "Dymaic" typo section 1.3
  • [SPR-7839] - DataBinder/BeanWrapper regression: Binding to a nested Map property fails in 3.0.5, works in 3.0.4
  • [SPR-7901] - ConfigurationClassEnhancer prevents BeanFactory from being GCd
  • [SPR-7946] - Mapped interceptors are not applied to current handler
  • [SPR-7974] - @Feature methods do not accept @Value-annotated parameters
  • [SPR-7981] - CacheAspectSupport race-condition issue
  • [SPR-7994] - Rome is marked as required dependency for spring-web artifact
  • [SPR-8006] - Cache new future - unexpected behaviour when cache elements expire
  • [SPR-8015] - Caching abstraction treats single method argument as array
  • [SPR-8023] - Cache Abstraction - Expired cache elements cause return value null instead of calling method
  • [SPR-8037] - property-placeholder XSD is invalid and causes validation errors when used with attributes that worked in 3.0 like 'location'
  • [SPR-8054] - Since the introduction of nested "beans" element, "id" is no longer of type xsd:ID
  • [SPR-8059] - @RequestMapping in controllers fails to identify correct method while multiple params={"paramA=xxx","paramB=yyy"}
  • [SPR-8078] - Build fails against IcedTea6 on Ubuntu
  • [SPR-8080] - javaconf + @Autowired + @PostConstruct + deep context import bug
  • [SPR-8086] - Spring ORM 3_0_5 does not set the JPA timeout in milliseconds
  • [SPR-8094] - Mapped interceptors are lost from AbstractUrlHandlerMapping
  • [SPR-8125] - Correct SQL error codes for Sybase in sql-error-codes.xml
  • [SPR-8174] - SpEL varargs invocations can fail if primitives involved
  • [SPR-8175] - ExtendedBeanInfo Passes Empty Property Name to PropertyDescriptor Causing IntrospectionException: bad property name
  • [SPR-8200] - Visibility mismatch in ConfigurationClassPostProcessor#processConfigBeanDefinitions
  • [SPR-8211] - SPEL Property Accessors called out of order
  • [SPR-8228] - SPEL - Spring Expression Language Problem Issue
  • [SPR-8238] - NullPointerException if DefaultKeyGenerator if one argument is null
  • [SPR-8245] - System environment related tests fail on Windows
  • [SPR-8247] - A direct match in AbstractHandlerMethodMapping can ignore other more specific matches
  • [SPR-8248] - RequestMappingHandlerMethodMapping can't combine type and method @RequestMapping annotations when method is in parent class only
  • [SPR-8255] - Non-empty type-level URL combined with method-level empty URL results in URL with trailing slash in RequestMappingHandlerMethodMapping
  • [SPR-8268] - Typo in documentation
  • [SPR-8269] - BeanFactoryPostProcessor breaks default post-processing of @Configuration classes
  • [SPR-8289] - when using <mvc:resources> you have to add a BeanNameUrlHandlerMapping to your servlet config or @Controllers will be ignored
  • [SPR-8334] - duplicate CacheManager classes
  • [SPR-8363] - ViewControllerBeanDefinitionParser causes java.lang.NoSuchMethodError: java.lang.String.isEmpty()
  • [SPR-8364] - Conversion service in Spring 3.1 removes items from Lists in Maps causing Spring Security exceptions
  • [SPR-8393] - AnnotatedBeanDefinitionReader's constructor should inherit Environment of supplied BeanDefinitionRegistry
  • [SPR-8394] - Nesting level type index not respected when binding to fields
  • [SPR-8443] - Spring Web dependency on rome should be optional

New Feature

  • [SPR-2692] - RedirectView with more flexible URL-building
  • [SPR-5937] - Add spring:url feature to FreeMarker macros
  • [SPR-5943] - PackagesToScan and LocalContainerEntityManagerFactoryBean
  • [SPR-6486] - Access URI template variables in view
  • [SPR-6544] - Provide StandardMultipartResolver based on Servlet 3.0 Part API
  • [SPR-6717] - Support destroy scripts in DataSourceInitializer
  • [SPR-6909] - Add support for data binding from URI template variables to JavaBeans
  • [SPR-7353] - Add equivalent of JAX-RS @Produces to Spring MVC
  • [SPR-7354] - Add equivalent of JAX-RS @Consumes to Spring MVC
  • [SPR-7364] - JDBC data source initializer should be able to execute PL/SQL with embedded statements
  • [SPR-7960] - TestContext framework should support declarative configuration of bean definition profiles
  • [SPR-8079] - Support injection against setter methods with non-void return types
  • [SPR-8100] - Support Hibernate 3.6.x
  • [SPR-8114] - Support automatic detection of close methods
  • [SPR-8186] - Automatically detect and register nested @Configuration classes
  • [SPR-8205] - Scheduled tasks should allow a reference to a Trigger bean in XSD
  • [SPR-8214] - Provide HandlerMethod-based implementations of HandlerMapping, HandlerAdapter, and HandlerExceptionResolver
  • [SPR-8252] - Allow ref= as well as <bean/> for <mvc:interceptor/>
  • [SPR-8260] - Introduce @Role annotation
  • [SPR-8262] - Provide @Configuration support for scheduled tasks
  • [SPR-8310] - Provide @Configuration support for configuring Spring @MVC
  • [SPR-8311] - Provide @Configuration support for async method execution
  • [SPR-8313] - Provide @Configuration support for annotation-based transaction management
  • [SPR-8317] - Provide @Configuration support for enabling load-time weaving (@EnableLoadTimeWeaving)

Task

  • [SPR-4935] - Doc: @Autowired not working in BeanFactoryPostProcessor
  • [SPR-7406] - Document @RequestHeader and @RequestParam coercion semantics
  • [SPR-8030] - Deprecate JUnit 3.8 base classes in the TestContext framework
  • [SPR-8090] - Fix broken tests in Log4jWebConfigurerTests
  • [SPR-8092] - Clean up ignored ORM tests
  • [SPR-8093] - Install jmxremote_optional.jar in JVM used for Spring CI builds
  • [SPR-8256] - Correct Cache Abstraction documentation
  • [SPR-8399] - Add "What's new in Spring 3.1" to reference docs

Improvement

  • [SPR-5073] - [AnnotationMethodHandlerAdapter] Allow beans from context to be valid as handler method arguments
  • [SPR-5087] - expose ServletHandlerMethodInvoker/Resolver to application code
  • [SPR-5187] - Be able to register a global (web-context wide) custom MessageCodesResolver
  • [SPR-6180] - Upgrade Apache HttpClient to version 4.0
  • [SPR-6184] - Provide TestContext support for @Configuration classes
  • [SPR-6334] - JdbcTemplate batch update - Managing batchSize inferior to the number of rows to be updated
  • [SPR-6437] - @MVC should provide an "onBind" hook prior to automatic validation
  • [SPR-6472] - @MVC should provide a way to invoke custom code at preBind stage
  • [SPR-6601] - <jdbc:script /> does not allow you to specify statement delimiters.
  • [SPR-6620] - Converters that call back into the conversion system are dependent on GenericConversionService instead of the core strategy such as ConversionService interface
  • [SPR-6693] - @ExceptionHandler methods should support naked beans as return values
  • [SPR-6702] - Explicitly set response Content-Type in @ResponseBody
  • [SPR-6709] - JSR-303 @Valid validation is not invoked for @RequestBody controller method arguments
  • [SPR-6740] - Spring MVC Binding Lifecycle differs between @RequestBody arguments and plain JavaBean arguments
  • [SPR-6782] - mvc:view-controller has too low priority
  • [SPR-6822] - Having GET and POST methods for the same URL on different classes causes error when using annotation-driven
  • [SPR-6922] - Deprecate SimpleJdbcTemplate in favor of JdbcTemplate
  • [SPR-6928] - Support JSR 303 for REST
  • [SPR-6932] - Support for single value responses using ContentNegotiatingViewResolver
  • [SPR-6952] - MediaType Quality not being factored into mvc Content Negotiation
  • [SPR-6996] - Allow mvc:interceptor to have a ref to a bean
  • [SPR-7202] - Better exception when annotated calling controller methods
  • [SPR-7213] - Per-Controller MessageConverter
  • [SPR-7290] - Extend JdbcTemplate to allow larger batch updates
  • [SPR-7326] - TestContext should generate cache keys based on all metadata that uniquely identify ApplicationContext configuration
  • [SPR-7346] - @RequestHeader negation expressions (e.g. !Accept=text/plain) are not applied
  • [SPR-7390] - TypeDescriptor.forElementType() does not work for TypeDescriptor obtained via TypeDescriptor.valueOf()
  • [SPR-7408] - HandlerInterceptor improvement - insufficient context (no handler method) information
  • [SPR-7439] - JSON (jackson) @RequestBody marshalling throws awkward exception
  • [SPR-7442] - CastorMarshaller should have suppressXMLDeclaration
  • [SPR-7477] - Support lazy initialization for jee:jndi-lookup
  • [SPR-7543] - Automatically expose @PathVariables in the Model
  • [SPR-7564] - GeneratedKeyHolder.getKey returns NULL with postgres
  • [SPR-7597] - Construct org.springframework.core.convert.TypeDescriptor programatically for collections
  • [SPR-7637] - ExceptinHandler method behaves differently than request handler
  • [SPR-7672] - Support configuring Servlet container in Spring using Servlet 3.0 programmatic config
  • [SPR-7792] - Make it easier to customize or extend the HandlerAdapter for annotated methods
  • [SPR-7804] - JibxMarshaller supports method returns true for classes not in the configured binding
  • [SPR-7805] - Add support for package binding in the JibxMashaller
  • [SPR-7832] - Allow target access in Cache Key SpEL
  • [SPR-7933] - SessionFactoryUtils.convertHibernateAccessException() improperly swallows underlying HibernateException
  • [SPR-7971] - Cache KeyGenerator.extract() should allow to use the bean identity
  • [SPR-7973] - Process @ImportResource with current ResourceLoader
  • [SPR-7987] - Support Quartz 1.8.x or better
  • [SPR-8005] - GenericTypeResolver's getTypeVariableMap(...) and resolveType(...) should be public
  • [SPR-8007] - Cache support - extend key features
  • [SPR-8033] - Allow other delimiters in profile XML attribute
  • [SPR-8062] - BindException method signatures still use raw types
  • [SPR-8076] - Introduce HibernateExceptionTranslator
  • [SPR-8107] - MapPropertySource constructor should have public visibility
  • [SPR-8185] - Allow child ApplicationContext to inherit parent Environment
  • [SPR-8203] - Introduce a reserved default profile name
  • [SPR-8207] - Relax requirement for transaction manager name/reference in EnableTransactionManagement
  • [SPR-8295] - Extension for CastorMarshaller - additional marshaller properties
  • [SPR-8296] - Extension for CastorMarshaller - additional unmarshaller properties
  • [SPR-8298] - cache mutable operations should not return values
  • [SPR-8306] - ConversionServiceFactory.addDefaultConverters() should add symetric converters
  • [SPR-8307] - Allow recursive use of @ComponentScan
  • [SPR-8314] - Provide @Configuration support for PropertySource registration (@PropertySource)
  • [SPR-8320] - Add option to register configuration classes via Class<?> in AnnotationConfigWebApplicationContext
  • [SPR-8322] - Add Environment.getProperty(String name, Class<T> targetType, T defaultValue);
  • [SPR-8327] - Documentation for @BeanAge
  • [SPR-8328] - Introduce ResourcePropertySource
  • [SPR-8350] - When using Java-based configuration, nested ViewResolvers in ContentNegotiatingViewResolver may require bean initialization
  • [SPR-8352] - Consolidate support for HandlerInterceptor and MappedInterceptor types in AbstractHandlerMapping
  • [SPR-8354] - Introduce AbstractEnvironment#customizePropertySources
  • [SPR-8358] - Support introspection of nested classes with ClassMetadata
  • [SPR-8366] - Support "contextInitializerClasses" init-param for FrameworkServlet
  • [SPR-8389] - Allow convenient addition of custom Converter types against ConfigurableEnvironment / ConfigurablePropertyResolver
  • [SPR-8391] - Reference Documentation, Chapter 15 - WebMVC, minor issues
  • [SPR-8839] - @ExceptionHandler should be able to return ResponseEntity

Refactoring

  • [SPR-5072] - Refactor AnnotationMethodHandlerAdapter to allow easier customisation of arg and return value types

Pruning

  • [SPR-8223] - Eliminate EarlyBeanReferenceProxy use in @Feature method parameters
  • [SPR-8226] - Remove support for @FeatureConfiguration; @Feature methods

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.