Releases: spring-projects/spring-framework
Releases · spring-projects/spring-framework
3.0.1 Release
⭐ New Features
- Push the Java 5 simplifications in SimpleJdbcTemplate up to JdbcTemplate [SPR-6858] #11524
- Documentation on Spring-Struts 1 integration needs to be updated [SPR-6855] #11521
- add varags constructor for ClassPathXmlApplicationContext and FileSystemXmlApplicationContext [SPR-6849] #11515
- HttpMessageConverter read and write methods have restrictive type annotations [SPR-6848] #11514
- Improve documentation on "Instantiation using an instance factory method" [SPR-6846] #11512
- factory-method - improve error message when method is not static [SPR-6837] #11503
- Add setStripTrailingSlash to DefaultRequestToViewNameTranslator [SPR-6830] #11496
- Allow SpEl expressions to be evaluated from JSPs [SPR-6827] #11493
- Update PagedListHolder with generics [SPR-6825] #11491
@Transactional
("transactionManager") and logging [SPR-6811] #11477@Transactional
("transactionManager") and error handling [SPR-6810] #11476- AbstractRoutingDataSource should only use defaultTargetDataSource on key null and should fail-fast on a non-existing key [SPR-6809] #11475
- Hibernate cache SPI integration -> LocalRegionFactoryProxy does not implement Hibernate 3.5's getDefaultAccessType() [SPR-6805] #11471
- form input tag disabled attribute only works for string input [SPR-6790] #11456
- Use of non-existing JmsTemplate constructor in documentation's sample code [SPR-6789] #11455
- The class MediaType has a natural ordering that is inconsistent with equals, which is generally recommended or should otherwise at least be indicated in the javadoc [SPR-6788] #11454
- Improve message error when the MarshallingView modelKey attribute is not valid [SPR-6785] #11451
- BeanNameAutoProxyCreator does not work if the given beanNames are ses [SPR-6774] #11440
- HttpMessageConverter should accept Class<? extends T> on can read [SPR-6771] #11437
- Need detailed log for start and stop Lifecycle beans [SPR-6769] #11435
- LinkedMultiValueMap should implement Serializable [SPR-6765] #11431
- ReflectiveMethodResolver should provide a MethodFilter strategy [SPR-6764] #11430
- Enable more control of StandardEvaluationContext strategies [SPR-6763] #11429
- Use "cyclic" instead of "recursive" in BeanDefinitionStoreException "Detected recursive loading of class path resource" [SPR-6755] #11421
- A matched null "default converter" results in a confusing log message [SPR-6746] #11412
- Could not autowire field of type org.springframework.web.context.request.WebRequest [SPR-6727] #11393
- DataBinder setAutoGrowNestedPaths call should work reliably [SPR-6718] #11384
- Spring 3.0 not compatible with Hibernate 3.5 beta3 [SPR-6705] #11371
- It is necessary to add support UUID type in Spring MVC (WebDataBinder) [SPR-6696] #11362
- SpringORM - Scoped proxies for EntityManager injected with
@PersistenceContext
[SPR-6684] #11350 - Spring beans in singleton scope are ignoring default component-scan scoped-proxy configuration [SPR-6683] #11349
- Spring AOP proxies with annotation based pointcuts are not serializable [SPR-6681] #11347
- Spring beans annotated with
@Transactional
are not serializable [SPR-6680] #11346 - Provide PersistenceAnnotationBeanPostProcessor without JNDI dependency. [SPR-6679] #11345
@Scheduled
annotation should support property placeholder values [SPR-6670] #11336- Add support for
@Scheduled
as a meta-annotation [SPR-6669] #11335 - Make comment prefix configurable in ResourceDatabasePopulator [SPR-6667] #11333
- Allowing a flexible reference to JBoss Work Manager [SPR-6648] #11314
- Make interface signature check optional in PersistenceExceptionTranslationInterceptor so it can translate all exceptions [SPR-6630] #11296
- Have ConversionFailedException store/expose the failed value [SPR-6629] #11295
- make private methods protected in DefaultLifecycleProcessor for extension [SPR-6617] #11283
- Map SQL Error code 50200 in H2 to CannotAcquireLockException [SPR-6612] #11278
- SpEL expression evaluation should rethrow (not wrap) RuntimeExceptions [SPR-6610] #11276
- java.lang.Object should count as a simple property, at least from the autowiring perspective [SPR-6600] #11266
- Make spring-aop required for spring-context (in spring-context POM) [SPR-6578] #11244
- MarshallingView auto detect model with Jaxb2Marshaller chooses the wrong object [SPR-6577] #11243
- MimeMailHelper mail address header fields are not encoded [SPR-6530] #11196
- Allow ContentNegotiatingViewResolver to be strict ant return a 406 if no view found [SPR-6467] #11133
- Add full support for JPA 2.0 PersistenceUnitInfo [SPR-6408] #11074
- Property Placeholder does not work for "concurrency" attribute for the jms namespace [SPR-6232] #10900
- TilesConfigurer does not support the new configuration model of Tiles 2.2 [SPR-6097] #10765
- Support late detection of ApplicationListener interface in objects returned from
@Bean
methods [SPR-6060] #10728 - Support Hessian 4.0.1 with Spring 3.0 [SPR-6041] #10710
- Generic getObjectType on FactoryBean should not be generic [SPR-5982] #10650
- Support Tiles 2.2 for Velocity and FreeMarker purposes [SPR-5609] #10280
- Provide BeanDefinitionRegistryPostProcessor lifecycle hook [SPR-5595] #10266
- Explain difference between and pros/cons of dependency injection vs dependency lookup [SPR-3786] #8466
- Reference manual - mention JSR-250 lifecycle annotations alongside other lifecycle mechanisms [SPR-3773] #8453
🪲 Bug Fixes
- org.springframework.web.servlet.tags.form.TagIdGenerator doesn't remove characters [] and double-quotes [SPR-5382] #10055
- RestTemplate throws IllegalArgumentException when HTTP status is not in the HttpStatus enum [SPR-6752] #11418
- TransactionSynchronizationUtils.unwrapResourceIfNecessary() does not unwrap OSGi service proxies [SPR-7368] #12026
- The MANIFESTs are importing packages from Spring di...
3.0 GA Release
⭐ New Features
- Spring Framework fails to find bean property if the setter contains more than one capital after the word set (e.g., setTEmailAddr) [SPR-7388] #12046
- Extract URL construction logic out of UrlTag [SPR-6828] #11494
- Dependency Validation for Beans via JSR303 Validation Specification [SPR-6565] #11231
- Index HTML multi-page reference documentation files by section id instead of chapter and section number. [SPR-6550] #11216
- Custom DataBinder Hook [SPR-6534] #11200
- Add hook in NamespaceHandlerSupport to allow version checking etc before parsing an element [SPR-6526] #11192
- AnnotationMethodHandlerAdapter should also implement Ordered interface [SPR-6516] #11182
- Spring Framework 3.0.0 binding should include Joda as a dependency in the POM [SPR-6512] #11178
- Add Formatter support to generic collections [SPR-6504] #11170
- Update JRuby support to JRuby 1.4 [SPR-6492] #11158
- Lenient property name casing (beyond standard JavaBeans conventions) [SPR-6491] #11157
- JSR-330 support for component detection is inconsistent [SPR-6465] #11131
- Spring does not detect nested JBoss RollbackException [SPR-6450] #11116
- InstrumentableClassLoader interface changed in GlassFish v3 [SPR-6152] #10820
- New annotation syntax for sheduling [SPR-5329] #10002
- Allow default values to be specified for System properties in ResourceEditor [SPR-4622] #9299
- MultipartHttpServletRequest cannot handle multiple file inputs with same name-attribute [SPR-3964] #8644
🪲 Bug Fixes
- Spring ConversionService does not work with SpEL [SPR-6563] #11229
- SpringValidatorAdapter.validateValue() is wrong [SPR-6557] #11223
- DataBinder.setRequiredFields is broken [SPR-6552] #11218
- Property injection fails for arrays of enums if there is more than 1 value [SPR-6547] #11213
- Does not auto-start FactoryBean if it implements SmartLifecycle [SPR-6545] #11211
- Spring's Maven Central compatible .poms contain numerous repository definitions that hurt user build performance [SPR-6541] #11207
- ConversionService#canConvert(Class, Class) matches for Collection-based conversions even if conversion between underlying element types is not supported [SPR-6537] #11203
- DateTimeFormatAnnotationFormatterFactory calls String.isEmpty(), which exists only in JDK1.6+ [SPR-6529] #11195
- PathVariables of type double [SPR-6528] #11194
- SpEL context is wrong in method parameter resolution [SPR-6525] #11191
- AbstractPlatformTransactionManager breaks in 3.0.0.RC3 [SPR-6521] #11187
- JSR-303 example in the current documentation [SPR-6517] #11183
- Spring does not start SmartLifecycle bean if it is lazy-init [SPR-6515] #11181
- Backward compatibility issue in class org.springframework.beans.factory.config.PropertyPlaceholderConfigurer [SPR-6514] #11180
- LocalSessionFactoryBean schema update doesn't work with Hibernate v3.2 [SPR-6509] #11175
@since
missing on JBossLoadTimeWeaver [SPR-6507] #11173- Broken
@RequestMapping
inheritance [SPR-6502] #11168 - Path-binding does not work when conversionService is used and the last path element is of array type [SPR-6501] #11167
- Eclipse projects don't compile due to change in Groovy dependency from 1.6.3 to 1.6.5 [SPR-6495] #11161
- Regression about the suppport of the tag [SPR-6493] #11159
- Spring formatters applied by to all numeric types [SPR-6490] #11156
- Typo "
@PathVariabe
" in MVC section of reference guide [SPR-6487] #11153 @RequestMapping
handled incorrectly when value contains "." (dot) character [SPR-6482] #11148- GenericTypeAwarePropertyDescriptor warns when creating java.security.SecureRandom bean [SPR-6399] #11065
- Inadequate implementation of GenericConversionService.findConverterByClassPair(Class, Class) [SPR-6297] #10963
📔 Documentation
- Doc: mvc:annotation-driven incompatible to override strategy of handler mappings [SPR-6524] #11190
- Document new mvc namespace [SPR-6404] #11070
- Document
@Configuration
classes and AnnotationConfig[Web]ApplicationContext [SPR-6187] #10855 - mention the difference between mvn central and EBR artifacts [SPR-6092] #10760
- Doc:
@Transactional
is inherited [SPR-5322] #9995
3.0 RC3 Release
⭐ New Features
- Make filterModel() in MappingJacksonJsonView more lenient [SPR-6470] #11136
- Add namespace support for "phase" on JMS listener-container [SPR-6460] #11126
- Hibernate support does not support Hibernate 3.2 (only 3.3) [SPR-6459] #11125
- Make private method in TransactionAwareConnectionFactoryProxy to match TransactionAwareDataSource [SPR-6438] #11104
- BeanPropertyRowMapper should provide static newInstance methods [SPR-6433] #11099
- Add an option to disable the automatic creation of nested path in DataBinder and subclasses [SPR-6430] #11096
- Add mvc namespace element for registering Parameterizable View Controllers [SPR-6413] #11079
- Provide localized field name in JSR-303 validation messages [SPR-6407] #11073
- StringToClassConverter missing [SPR-6406] #11072
- Create org.springframework.context.support.ConversionServiceFactoryBean [SPR-6397] #11063
- Add support for the HIbernate RegionFactory cache API to LocalSessionFactoryBean [SPR-6387] #11053
- Quartz SchedulerFactoryBean delayed start [SPR-6382] #11048
- Need more flexibility around conversion strategies and how to bootstrap different conversion strategies. [SPR-6381] #11047
- mvc:annotation-driven does not register javax.validation.Valdiator by default with the application context ? [SPR-6377] #11044
- Register sensible default HTTP Message Converters based on what is available in the classpath [SPR-6375] #11042
- Add a EntityConverter for mapping between entity identifiers and entity references [SPR-6374] #11040
- Do not require bound classes or context for Jaxb2Marshaller [SPR-6372] #11038
- Jaxb2Marshaller should use AnnotationUtils [SPR-6371] #11037
- mvc namespace should support adding HandlerInterceptors [SPR-6352] #11018
- ResourceDatabasePopulator is too verbose when reporting ignored failures [SPR-6348] #11014
- improve existing LTW to not depend on proprietary/mock jars [SPR-6333] #10999
- location parsing might incorrectly rely on the URL API [SPR-6332] #10998
- Phased Lifecycle Stop [SPR-5507] #10179
- Spring MVC Interceptor Documentation [SPR-5158] #9831
- Ability to restrict HandlerInterceptors to specific controller paths [SPR-4015] #8695
🪲 Bug Fixes
- Application context does not properly handle non-running SmartLifecyle beans [SPR-6572] #11238
- ConversionService does not support List to Iterable [SPR-6478] #11144
- ConversionService does not support List to Object [SPR-6477] #11143
- ConversionService does not support Map to Object [SPR-6476] #11142
- ContentNegotiatingViewResolver can not handle View implementations returning null as content type [SPR-6466] #11132
- Named constructor args cannot be overridden by child bean definitions [SPR-6463] #11129
- TaskExecutor not initialized in task namespace [SPR-6444] #11110
- mvc:interceptors configuration is not aware of 'p' namespace [SPR-6414] #11080
- CXF integration broken in Spring 3 RC2 [SPR-6412] #11078
- Regression: Cannot import XML bean documents using classpath*: pseudo URLs [SPR-6411] #11077
- Behavior of Bean loading changed in RC2 (Incompatible to Apache CXF) [SPR-6410] #11076
- Regression: HibernateTransactionManager.doBegin fails with java.lang.IllegalStateException: Already value [org.springframework.jdbc.datasource.ConnectionHolder [SPR-6409] #11075
- Incorrent H2 versions in reference documentation, section 12.8.6 [SPR-6403] #11069
- Spring manifest forbids CGLib 2.2.0 from being used [SPR-6401] #11067
- CGLIB version should be aligned in Manifest to allow usage of 2.2.0 in OSGI [SPR-6400] #11066
- When binding directly to fields (binder.initDirectFieldAccess()),
@DateTimeFormat
fails [SPR-6396] #11062 - BeanDefinitions are no longer singletons by default which breaks apache cxf [SPR-6391] #11057
- AbstractJasperReportsView doc is out of date [SPR-6390] #11056
- task:executor/ cannot be used as an inner bean [SPR-6388] #11054
- MappingJacksonHttpMessageConverter ignores supported media types property [SPR-6386] #11052
- RC2: Issue with RequestMethod.GET differs from M2 [SPR-6378] #11045
- PropertyPlaceholder Value not resolved with ExecutorBeanDefinitionParser ("Invalid pool-size value [${task.executors}]") [SPR-6368] #11034
- Cannot import bean definitions using classpath*: resource location [SPR-6366] #11032
- spring-jdbc.xsd script element claims resource patterns can be used for any SQL resource location but this is only supported for initialize-database tag [SPR-6365] #11031
- TransactionTemplate leaks transactions when TransactionCallback propagates undeclared checked exception [SPR-6361] #11027
- NPE in AbstractApplicationContext finishRefresh when initialized via Spring DM [SPR-6356] #11022
- ApplicationContext very slow to shutdown with bean of type org.springframework.scheduling.quartz.SchedulerFactoryBean [SPR-6354] #11020
- classpath*: is no longer finding resources with [SPR-6351] #11017
- Converting from String to Properties with leading/trailing whitespace results in ConversionFailedException [SPR-6350] #11016
- Formatting subsystem contains Java 6 API dependency [SPR-6349] #11015
- NoSuchMethodException in DerbyEmbeddedDatabaseConfigurer [SPR-6346] #11012
- ResourceDatabasePopulator does not handle comments properly when ignoring failures [SPR-6345] #11011
- InitDestroyAnnotationBeanPostProcessor is flipping the initialization order [SPR-6344] #11010
- PathVariable resolution does not work properly [SPR-6280] #10947
- OracleLobHandler: Temporary LOBs don't get freed and eat TEMP tablespace [SPR-6209] #10877
- NullPointerException when using
@CookieValue
annotation [SPR-5802] #10472
📔 Documentation
- Doc: spring-agent.jar has changed name [SPR-6469] #11135
- Update docs to use 3.0 JavaDoc links for references...
3.0 RC2 Release
⭐ New Features
- PathMatchingResourcePatternResolver inconsistently throws IOException in case of non-existing resources [SPR-7365] #12023
- Setting validationMode to NONE in org.springframework.beans.factory.xml.XmlBeanDefinitionReader disables namespace support [SPR-6336] #11002
- Introduce portable NumberFormat annotation [SPR-6331] #10997
- Rename
@ImportXml
->@ImportResource
and allow for usage of non-XML BeanDefinitionReader types [SPR-6328] #10994 - Introduce portable
@DateTimeFormat
annotation [SPR-6313] #10979 - Tiles 2.1 support in Spring 3.0 is not compatible with Tomcat 5.5 [SPR-6309] #10975
- Spring Expression Language creates systemProperties bean calling System.getProperties() which in enterprise shared containers is locked down [SPR-6308] #10974
- Quartz scheduler should not start until context is refreshed [SPR-6307] #10973
- Add mvc namespace for simplifying setup of Spring MVC [SPR-6306] #10972
- Wrapped Hibernate SQLGrammarException loses the potential SQL statement that caused the exception [SPR-6304] #10970
- Add more logging to RestTemplate [SPR-6303] #10969
- Support
@RequestHeader
on HttpHeaders parameters [SPR-6301] #10967 - AbstractExcelView doesn't work with POI 3.5 [SPR-6298] #10964
- CompositeStringExpression doesn't use the ConversionService [SPR-6278] #10945
- Spring Aspects to provide DataAccessException translation for direct EntityManager usage [SPR-6275] #10942
- Spring Aspects to provide basic static mock test functionality [SPR-6274] #10941
- Consider introducing Printer/Parser specializations of Formatter [SPR-6272] #10939
- Register converters for util.Date/util.Calendar as well as Joda DateTime types in DefaultConversionService [SPR-6271] #10938
- Upgrade to new version of javax.el [SPR-6265] #10933
- Add namespace support for ErrorHandler on MessageListener containers [SPR-6240] #10908
- Reintroduce Struts support [SPR-6236] #10904
- Add facility to EhCacheFactorybean for registering event listeners [SPR-6234] #10902
- [spel] performance for property access is less than ideal [SPR-6230] #10898
- Let StringArrayPropertyEditor trim resulting array values [SPR-6195] #10863
- MockServletContext hardcoded to return 2.5 for servlet version [SPR-6194] #10862
- Use var-args instead of String[] to set allowed, disallowed, and required fields in DataBinder [SPR-6174] #10842
- Support
@ImportResource
within@Configuration
classes [SPR-6158] #10826 - Update the documentation to include the advice of using within() together with lone kinded pointcuts [SPR-6123] #10791
- Expose setter for ConversionService to be set in a DataBinder, or publicly available property [SPR-6108] #10776
- FrameworkServlet does not need parent to be WebApplicationContext [SPR-6102] #10770
- Add support for JodaTime for new UI formatting API [SPR-6085] #10753
- Convention-based formatting/parsing methods for simple objects [SPR-6074] #10742
- Improve method naming in MethodParameter class [SPR-6055] #10724
- Add support for arrays in EL Selections and Projections [SPR-6051] #10720
- ApplicationListener callbacks to be supported for inner beans as well [SPR-6049] #10718
- [JPA] [EclipseLink] - Spring filters various packages in JPA temp class loader, prevent weaving of any models in these packages [SPR-6040] #10709
- HSQLDB+Quarz using data source causes "Unexpected token: FOR in statement " exception [SPR-6038] #10707
- Data Binder: Auto-grow collections as needed to support nested property binding [SPR-6033] #10702
- Data Binder: Add support for auto-instantiating null values in nested paths [SPR-6032] #10701
- Overriding DocumentDefaultsDefinitions retrieval from root element attributes [SPR-6010] #10678
- Load-Time Weaving does not work in JBoss AS 5 [SPR-5764] #10434
- Provide dedicated ApplicationContext implementations for use with (JavaConfig)
@Configuration
classes [SPR-5682] #10353 - Support BeanFactory#getBean(Class requiredType) [SPR-5529] #10200
- Spring expression: please provide additional convenience operators for comparisons [SPR-5518] #10189
- Spring MVC views.properties uses xl.(class) syntax [SPR-5430] #10104
- Spring inconsistently resolves an overloaded setter method [SPR-4931] #9606
- Add name attribute to XML namespaces that want to support it (through parser base class) [SPR-4783] #9460
- AbstractJmsListeningContainer should provide an easy way to start the container after the ApplicationContext has been fully initialized [SPR-4716] #9393
- Improve context-property-placeholder configurablity [SPR-4661] #9338
- ArgPreparedStatementSetter: extract setValue(ps, position, value) [SPR-3978] #8658
- extract JdbcTemplate.newArgPreparedStatementSetter(args) [SPR-3977] #8657
- Make it easier to disallow bean definition overriding [SPR-3734] #8415
- scope (& similar attributes) on abstract beans should be inherited in child beans, or not permitted [SPR-3542] #8225
- Thread safe date format/parse API [SPR-2300] #6989
- Circular dependence forbidding cannot be easily configured. [SPR-2048] #6741
🪲 Bug Fixes
- Multiple constructor-arg with same index=0 withing the same bean element does not throw exception [SPR-6329] #10995
- Regression: ResourceEditor in 3.0 does not ignore unresolvable placeholders, but it did in 2.5.6 [SPR-6321] #10987
- ModelAndViewAssert.assertViewName() is not nullsafe [SPR-6300] #10966
- Spring:url tag should not use application/x-www-form-urlencoded encoding [SPR-6296] #10962
- Documentation Inconsistency - Required version of Tiles [SPR-6293] #10959
- RequestContextListener initializes Log4J ahead of call to Log4jConfigListener [SPR-6288] #10955
- getenv.* : Access denied (java.lang.RuntimePermission getenv.*) [SPR-6287] #10954
- scope of javax.servlet in portlet pom is compile instead of provided [SPR-62...
3.0 RC1 Release
⭐ New Features
- Change in documentation [SPR-6768] #11434
- GenericConversionService calls initGenericConverters from constructor [SPR-6149] #10817
@ResponseStatus
annotation is ignored in an@Controller
redirect (RedirectView) [SPR-6144] #10812- Add ErrorHandler strategy for MessageListener containers [SPR-6142] #10810
- Allow for the sourceType TypeDescriptor to be provided along with the targetType TypeDescriptor when executing type conversions [SPR-6140] #10808
- Introduce uniform GenericConverter interface within the GenericConversionService implementation [SPR-6139] #10807
- Revise core.convert Converter SPI to not a throw checked Exception for the typed convert method [SPR-6138] #10806
- Be able to specify a default content type when no extension is used in ContentNegotiatingViewResolver [SPR-6130] #10798
- Upgrade the Spring JSP tag libraries to JSP 2.0 [SPR-6114] #10782
- Add listeners alias for
@TestExecutionListeners
' value attribute [SPR-6104] #10772 - MVC Annotation Inheritance [SPR-6093] #10761
@SessionAttributes
to be exposed in model even when not referenced in current handler method [SPR-6084] #10752- Provide support for javax.inject.Provider<> style injection for
@Value
and@Autowired
[SPR-6079] #10747 - Fill implicit model with session-backed data for portlets render phase [SPR-6071] #10739
- upgrade to CGLIB 2.2 [SPR-6061] #10729
- ClassUtils.forName() does not support multi-dimensional arrays [SPR-6057] #10726
- CronTriggerBean.afterPropertiesSet method throws a ParseException, should be an Exception, like in InitializingBean interface. [SPR-6048] #10717
- Ability to configure a XStream subclass on XStreamMarshaller [SPR-6037] #10706
- Validation: Initial support for dependency injection of a JSR-303 Validator [SPR-6035] #10704
- SystemPropertyUtils does not resolve placeholders recursively [SPR-6025] #10694
- EmbeddedDatabaseBuilder should load data.sql instead of test-data.sql by default [SPR-6020] #10689
- Support parsing without namespace awareness in BeanDefinitionParserDelegate and DefaultBeanDefinitionDocumentReader [SPR-6017] #10686
- Add Formatter support to DataBinder [SPR-6015] #10684
- Ability to associate a Formatter with a class by using the
@Formatted
annotated [SPR-6013] #10682 - UI Formatter SPI as an alternative to PropertyEditors [SPR-6012] #10681
- Improve CastorMarshaller support for loading class descriptors [SPR-6003] #10671
- notice.txt should contain a different email [SPR-5993] #10661
- InitDestroyAnnotationBeanPostProcessor should have static logger because it's Serializable [SPR-5962] #10630
- Commons Logging should not be "compile" scope in Maven POMs [SPR-5956] #10624
- Allow non-standard attributes in tags [SPR-5931] #10600
- Revise reference manual coverage for SimpleJdbcCall and the use of default parameter values [SPR-5929] #10598
- MBeanExporter.setExcludedBeans does not work properly on FactoryBeans [SPR-5926] #10595
- Add support to externalize values for "defaultValue" in method parameters. [SPR-5922] #10591
- Slight Improvement for Main JavaDoc in RedirectView [SPR-5910] #10579
- Allow MBeanServerFactoryBean to specify PlatformMBeanServer explicitly [SPR-5909] #10578
- HessianException is not converted to RemoteAccessConnection on HTTP 400 [SPR-5897] #10566
- AbstractBeanDefinitionParser.parseInternal() cannot return null [SPR-5872] #10542
- "primary" bean definitions in child context should take preference over those in parent context [SPR-5871] #10541
- ManagedOperation can not be used on getter [SPR-5859] #10528
- When using
@ManagedOperation
on a method, allow overriding methods in that subclass,to be exposed as an operation. [SPR-5813] #10483 - GenericApplicationListenerAdapter#getGenericEventType as a general purpose utility [SPR-5799] #10469
- Provide a non-
@Component-sterotype
annotation that tags a bean class to be scanned fro@Bean
annotations [SPR-5795] #10465 - PropertyOverrideConfigurer ignores some invalid keys but not others [SPR-5792] #10462
- PersistenceUnitReader#determinePersistenceUnitRootUrl returns wrong root url on JBoss 5, causing no detection of entity beans [SPR-5784] #10454
- Patch so that CronTriggerBean can take a start delay [SPR-5727] #10397
- PropertyEditor support for binding of open enums (Enum<?>) [SPR-5644] #10315
- Full support for JPA 2.0 [SPR-5586] #10257
- Full support for JSF 2.0 [SPR-5585] #10256
- Property placeholder defaulting in resources path [SPR-5508] #10180
- Modify RedirectView to allow 301 Permanent Redirects [SPR-5468] #10141
- Integrating validation into the
@MVC
request lifecycle [SPR-5417] #10091 - JpaTransactionManager does not support transaction timeouts [SPR-5195] #9868
- Spring component scanning does not work within JBoss EJB container [SPR-5120] #9793
@RequestMapping-based
controllers do not work for JDK proxies with annotated interfaces [SPR-5084] #9757- Spring JMX Annotation inheritance support is inconsistent (or at least difficult in some situations) [SPR-5039] #9714
- Add support for default values in property placeholder syntax [SPR-4785] #9462
- Support for JUnit 4.7
@Rule
(was: message checking with@ExpectedException
) [SPR-4643] #9320 - Allow
@ManagedXYZ
on interfaces [SPR-3635] #8316 - Support for declarative validation (Hibernate Validator, anticipating JSR 303) [SPR-69] #4803
🪲 Bug Fixes
- slf4j dependency in spring-orm should be optional [SPR-6185] #10853
@ResponseBody
with returned String results in unresolvable view ServletException [SPR-6148] #10816- Spring complains that it needs to be started with agent when it actually is started that way [SPR-6147] #10815
- ClassCastException in WebRequestDataBinder with MultipartRequest [SPR-6136] [#10804](https://github.com/spring...
3.0 M4 Release
⭐ New Features
- Add transactionManager property to
@Transactional
configuration [SPR-6283] #10950 - Add support for the
@WebServiceProvider
to the SimpleJaxWsServiceExporter [SPR-5988] #10656 - BufferedImageHttpMessageConverter doesn't work on Google AppEngine [SPR-5975] #10643
- Enable AbstractRequestLoggingFilter implementations to access the request body [SPR-5961] #10629
- Allow SimpleMappingExceptionResolver to Resolve HTTP Status Codes [SPR-5953] #10621
- MarshallingHttpMessageConverter should not require both marshaller and unmarshaller [SPR-5942] #10611
- HttpMessageConverter selection as a result of
@ResponseBody
should consider the requested content type [SPR-5923] #10592 - Simplify domain object dependency injection through use of generics [SPR-5920] #10589
- TestContext/ContextConfiguration: inherit loader, not just locations. [SPR-5916] #10585
- Add support for multiple TransactionManagers using
@Transactional
annotation [SPR-5896] #10565 - Reference Doc section 16.11.4 can include the new
@RequestBody
from 18.2.1.2 [SPR-5894] #10563 - Spelling mistake in ContentNegotiatingViewResolver JavaDoc [SPR-5885] #10555
- accessibility feature on bean definitions [SPR-5882] #10552
- primitive vs wrapper objects abiguity inside the container [SPR-5881] #10550
- Add support for content negotiation based on a request parameter value [SPR-5870] #10539
- JSON formatting view for Spring MVC [SPR-5853] #10522
- XstreamMarshaller does not support field aliasing [SPR-5838] #10508
- RestTemplate - postForObject() method [SPR-5836] #10506
- MethodInvokingJobDetailFactoryBean does not set the result in JobContext [SPR-5831] #10501
- JSON HttpMessageConverter [SPR-5823] #10493
- support the new conversion system into the core container APIs [SPR-5817] #10487
- support non-lenient constructor injection [SPR-5816] #10486
- Custom regex matching for
@PathVariable
[SPR-5812] #10482 - Make HttpMessageConverterExtractor top level class [SPR-5808] #10478
- Quartz dependency in context-support POM should be optional [SPR-5803] #10473
- org.hibernate.annotations.Entity ignored by AnnotationSessionFactoryBean [SPR-5787] #10457
- BufferedImageHttpMessageConverter [SPR-5782] #10452
- Rearrange logic in ServletHandlerMethodInvoker.getModelAndView() [SPR-5768] #10438
- Misleading error message in HandlerMethodInvoker.resolveRequestBody() [SPR-5767] #10437
@ResponseBody
[SPR-5766] #10436- XStreamMarshaller can not activate XStream automatic annotations detection feature [SPR-5760] #10430
- Handling of spaces and underscores in AbstractBeanPropertyRowMapper [SPR-5758] #10428
@Configurable
BeanCurrentlyInCreationException logging causing confusion [SPR-5752] #10422- Allow XStreamMarshaller subclasses to customise XStream object [SPR-5746] #10416
- Support lazy initialization within Jaxb2 OXM classes [SPR-5745] #10415
@Required
doesn't play nice with@Configuration
and@Bean
[SPR-5744] #10414- Integrate Derby into embedded database support [SPR-5738] #10408
- Correct compiler settings in spring-parent pom.xml to allow build with Maven [SPR-5735] #10405
- JavaDocs are hard to read with fully qualified names for java.lang, java.util and other non-Spring classes [SPR-5734] #10404
- When no type conversion strategy is found on a
@Controller
handler method bind target, a 500 error code should be returned not a 400. [SPR-5732] #10402 - Provide an JDBC Namespace to easily set up embedded database [SPR-5728] #10398
- Reduce cumulative JAR payload required for DI-only use cases (particularly ANTLR) [SPR-5721] #10391
- Add execute(Object[] values) method to StoredProcedure [SPR-5696] #10366
- Add TilesViewResolver to enable fallback if tiles definition does not exist [SPR-5689] #10359
- SPEL: Introduce a new null-safe access operator for properties [SPR-5664] #10335
- Reload the application context for each test in a class with a class level annotation [SPR-5640] #10311
- Portlet-version of
@ExceptionHandler
[SPR-5633] #10304 - WebDataBinder type conversion failures should result in 400, not 500 [SPR-5622] #10293
- Write documentation for Spring 3.0 new annotations [SPR-5455] #10128
- TilesConfigurer class no longer works with Tiles 2.1.1 [SPR-5411] #10084
- Make Tiles 2 easier to configure in Spring MVC [SPR-5406] #10079
- SpringExpressionsParser doesn't work with newer version of ANTLR [SPR-5343] #10016
- Move
@ManagedMetric
annotation to Spring JMX [SPR-5256] #9930 - Problem when working with RichFaces (JSF) integrated into the spring with javax.faces.STATE_SAVING_METHOD=client. [SPR-5181] #9854
- Discrepancy between sql parsing in SimpleJdbcTemplate and NamedParameterJdbcTemplate when doing batchUpdates [SPR-5162] #9835
- Injected HttpServletRequest object in session-scoped bean should transparently access current request [SPR-5135] #9808
- XML import should support patterns for relative paths as well [SPR-5015] #9690
- Return 405 instead of 404 when HTTP method is not supported [SPR-4927] #9602
- SimpleJdbcInsert needs to understand synonyms! [SPR-4782] #9459
- consider a simplified SimpleJdbcCall.execuFunction( Class returnType, Object... params ) [SPR-4739] #9416
- Support for
@DirtiesContext
at the test class level [SPR-4702] #9379 - Add single checkbox input macro for Velocity and Freemarker [SPR-4700] #9377
- Serialization of HibernateTransactionManager fails [SPR-4662] #9339
@RequestMapping
narrowing based on presence of command object [SPR-4368] #9046- Configuration namespace for scheduling [SPR-4359] #9037
- Add support for a TestDatabaseFactory to s...
3.0 M3 Release
⭐ New Features
- Add value alias for
@ContextConfiguration
's locations attribute [SPR-5713] #10383 - Subclasses of SpringJUnit4ClassRunner should be able to configure the default ContextLoader class [SPR-5710] #10380
- Request header filtering in
@RequestMapping
[SPR-5690] #10360 - Expose model object in RequestContext with public getter [SPR-5686] #10356
- improve thread-safety for entity/namespace resolvers [SPR-5679] #10350
- Allow EclipseLink 2.0.0.M1 in Spring-ORM [SPR-5676] #10347
- mergePropertiesIntoMap only works with String [SPR-5669] #10340
- avoid synchronization when AspectJExpressionPointcut.getShadowMatch hits cache [SPR-5668] #10339
- Request: lazy-init or 'only-if-needed' option for stereotype
@Component
source-annotated component-scan definitions [SPR-5662] #10333 @Property
annotation to "autowire" properties [SPR-5659] #10330- Support placeholders in
@Resource
annotation configurations [SPR-5656] #10327 - Mismatch between Javadoc and method signture BeanWrapper.getPropertyDescriptor(String) - throws clause [SPR-5650] #10321
- Support use of
@Qualifier
in conjunction with@Bean
methods [SPR-5643] #10314 - portlet global session ignored by by JSF request wrapper [SPR-5637] #10308
@RequestMapping
matching should be insensitive to trailing slashes [SPR-5636] #10307- OXM does not permit targetClass and mapping file for CastorMarshaller [SPR-5634] #10305
- Implicit /** mapping on type-level
@RequestMapping
[SPR-5631] #10302 - Extend Multiple
@PathVariable
Selection to allow delimeters other than / [SPR-5630] #10301 - Support use of
@Primary
and@Lazy
during component-scanning [SPR-5629] #10300 - Allow for exceptions to be annotated with a
@ResponseStatus
annotation [SPR-5625] #10296 - A default HandlerExceptionResolver that resolves standard Spring exceptions [SPR-5624] #10295
- Set Content-Type response header for Hessian services [SPR-5621] #10292
- spring:url tag should use htmlEscape instead of escapeXml for entity encoding [SPR-5605] #10276
- Eager validation for missing destroy methods [SPR-5602] #10273
- Make naming of
@Configuration
class processing-related artifacts consistent [SPR-5600] #10271 - Hook
@Configuration
class processing into context:component-scan/ and context:annotation-config/ through AnnotationConfigUtils#registerAnnotationConfigProcessors [SPR-5599] #10270 - Improve support for
@Aspect-annotated
@Configuration
classes by relaxing constraints in AbstractAspectJAdvisorFactory#isAspect() [SPR-5598] #10269 - Consolidate
@ScopedProxy
->@Scope
[SPR-5594] #10265 - Provide
@Lazy
annotation [SPR-5591] #10262 - Provide
@Primary
annotation [SPR-5590] #10261 - BeanPropertyRowMapper should default primitive property when receiving null value from result [SPR-5588] #10259
- Change MapSqlParameterSource to SqlParameterSource in executeFunction and executeObject methods [SPR-5570] #10241
- metadata clients cannot identify the source of a value type [SPR-5562] #10233
- xml value-type hard to determine for list/set or maps from the metadata [SPR-5556] #10227
- ConstructorArgumentValues returns collections with different order [SPR-5554] #10225
- Support
@Scope
(proxyMode) during component-scanning/autowiring lifecycle [SPR-5550] #10221 - Revise beans XSD for 3.0 [SPR-5549] #10220
- add support for arrays inside the xml configuration ( element) [SPR-5543] #10214
- Add XML HttpMessageConverters [SPR-5539] #10210
- Add unregisterManagedResource to MBeanExportOperations interface [SPR-5517] #10188
- Support Hessian 3.2.1 [SPR-5469] #10142
- XStreamMarshaller.setImplicitCollection(Map) is insufficient [SPR-5449] #10086
- Ordering of ServletContextAware and ApplicationContextAware callbacks makes testing FreeMarkerView (and similar classes) impossible [SPR-5398] #10071
- Scanned components don't have the ability of being "primary" candidates [SPR-5155] #9828
- Use field or parameter name as default value for
@Qualifier
[SPR-5152] #9825 - Spring TestContext Framework not compatible with JUnit 4.5 [SPR-5145] #9818
- Add DuplicateKeyException to DAO exception hierachy [SPR-5125] #9798
- AnnotationUtils.findAnnotation() should look for annotations on annotations [SPR-5085] #9758
- FreeMarkerView should support AllHttpScopesHashModel (analogous to FreeMarkerServlet in FreeMarker 2.3.14) [SPR-4962] #9637
- Adding hook into SQL State based exception translation [SPR-4899] #9575
- [Performance] CachedIntrospectionResults has wrong approach to caching. [SPR-4876] #9552
- AnnotationMethodHandlerAdapter should treat String return type with
@ModelAttribute
as model attribute instead of view name [SPR-4867] #9543 - Allow annotated methods on a Controller to be marked as exception handlers [SPR-4677] #9354
@RequestMapping
methods returning null have an implicit ModelAndView created [SPR-4518] #9195- When using request mappings at the type-level like /hotels/*, it should be possible to define a controller handler method for the root like /hotels [SPR-4494] #9172
@Autowired
dependencies and external configuration [SPR-4447] #9125- Comprehensive REST Support [SPR-4419] #9097
- org.springframework.jdbc.object.StoredProcedure is an abstract class, although it may be allowed to be used as a concrete class after the jira change SPR-3898 [SPR-3987] #8667
- Provide a concrete implementation of MappingSqlQuery (say RowMappingSqlQuery) which can be injected a RowMapper, so that we can put it in a config file [SPR-3986] #8666
- Enable custom default value for
@Transactional
's rollbackFor argument [SPR-3027] #7713 - Subclass DataIntegrityViolationException to represent main constraint types and translate SQL exceptons into appropriate subclass [SPR-2977] #7663
🪲 Bug Fixes
- AopUtils.getTargetClass assumes cglib proxies are always proxying classes [SPR-5694] [#10364](https...
3.0 M2 Release
⭐ New Features
- Improvement to ConstructorResolver [SPR-5522] #10193
- Spring expression: please improve getValue() in CompositeStringExpression [SPR-5466] #10139
- Add AtomView sample to PetClinic [SPR-5460] #10133
- Spring expression: ReflectionUtils don't respect boolean getters starting with 'is' [SPR-5450] #10123
- ReflectionUtils.findMethod does not find methods for Object.class [SPR-5434] #10108
- RequestParam can't properly parse an optional boolean parameter [SPR-5410] #10083
- TypeUtils.isAssignable should return true for ParametrizedType assignable to Object [SPR-5390] #10063
- MarshallingView should override AbstractView instead of AbstractUrlBasedView [SPR-5380] #10053
- Collection type resolver considering only lower bound of wildcard [SPR-5344] #10017
- ExecutorCompletionService for Spring TaskExecutor [SPR-5341] #10014
- Rationalise ThreadPoolTaskExecutor and ScheduledExecutorFactoryBean [SPR-5337] #10010
- HibernateClinic in PetClinic sample should use constructor-injection instead of field injection [SPR-5326] #9999
- AOP PointCuts: ProceedingJointPoint provides the synthetic(bridge) and not the real method [SPR-5317] #9990
- PropertyValue does not copy the converted semantics of a given pv [SPR-5293] #9966
- Migrate OXM from Spring-WS to Spring Core [SPR-5259] #9933
- Prototype application context event listeners are not notified within the events [SPR-5248] #9922
- Prototype beans that implement ApplicationListener shouldn't be created during container initialization [SPR-5247] #9921
- ApplicationListener notifications to reflect Ordered interface [SPR-5240] #9914
- util:constant can't read static inner enums [SPR-5210] #9883
- #springUrl does not run encodeURL() [SPR-5134] #9807
- Genericize ApplicationListener [SPR-4610] #9287
- Portlet 2.0 (JSR 286) support in Spring MVC [SPR-4259] #8937
- ApplicationListener beans eagerly instantiated even when marked as lazy-init [SPR-4054] #8733
- Asynchronous execution of ApplicationListeners through annotation [SPR-3876] #8556
- AsynchronousExecutionInterceptor [SPR-3528] #8211
- Nicer handling of Java 5 enums by the Spring MVC form taglib. [SPR-3389] #8072
- util:property-path like functionality for the p-namespace [SPR-3360] #8044
- Add JDK 5 Generics support to HibernateTemplate's returned Lists [SPR-3128] #7814
- Improvement for handling checkboxes in web forms (patch included) [SPR-2733] #7421
- Provide out of the box implementation of the thread scope [SPR-2581] #7270
- ApplicationEventMulticaster should efficiently dispatch according to event type and source [SPR-2572] #7261
🪲 Bug Fixes
- RestTemplate should encode the url variables [SPR-5516] #10187
- NPE when passing null as a request to RestTemplate.postForLocation [SPR-5515] #10186
- Buggy reuse of list in prototype, when using shorthand definition in xml. [SPR-5512] #10184
- ModelAndView.getModel method garbages wasCleared state [SPR-5505] #10177
- Alias chaining does not work with
@Qualifier
and@Autowired
[SPR-5501] #10173 - Error in javadoc for org.springframework.web.portlet.mvc.AbstractFormController [SPR-5478] #10151
- AnnotationMetadataReadingVisitor doesn't consider annotation method returning classes [SPR-5477] #10150
- Multi-dimensional array brakes HTTP invokers remoting [SPR-5473] #10146
- Possible NPE in JmsUtils.buildExceptionMessage and JmsException.getMessage [SPR-5470] #10143
- Spring expression: NPE in org.springframework.expression.spel.ast.Ternary [SPR-5441] #10115
- grammatical error in LobHandler javadoc [SPR-5440] #10114
- org.springframework.expression: Bug in TemplateAwareExpressionParser when expressionString contains '}' [SPR-5438] #10112
- JoinPoint and Singature toString, toShortString, and toLongString don't return useful information [SPR-5437] #10111
@RequestMapping
type-level params not taken into account consistently [SPR-5421] #10095- Infinite loop in bean creation when placeholder used for bean name [SPR-5419] #10093
- BridgeMethodResolver is unable to locate bridged method for hibernate Cglib-wrapped class implementing a generic interface [SPR-5414] #10088
- SpringBeanAutowiringInterceptor.autowireBean() has wrong signature [SPR-5412] #10085
- DefaultLobHandler should honour "wrapAsLob" for getting data too [SPR-5376] #10049
- SPEL PropertyOrFieldReference not threadsafe [SPR-5374] #10047
@Qualifier
no longer works in 3.0 [SPR-5355] #10028- AbstractResource.exists() doesn't close connection correctly on a not found http url [SPR-5338] #10011
- manager.sh classpath for petclinic should be updated (patch included) [SPR-5335] #10008
- PropertyPlaceholderConfigurer always tries to replace maps due to incorrect modification check in BeanDefinitionVisitor [SPR-5318] #9991
- StackOverflowError when using MessageListenerAdapter without delegate [SPR-5309] #9982
- spring-test-2.5.6.jar incompatible with junit distribution from SpringSource Enterprise Bundle Repository [SPR-5291] #9964
- spring-context manifest import-package of javax.annotation;version="[1. 0.0, 2.0.0)" conflicts with provided system bundle javax.annotation; version="0.0.0" [SPR-5290] #9963
- WebsphereUowTransactionManager and UOWManager wrap checked exceptions if declared to roll back [SPR-5270] #9943
- PathMatchingResourcePatternResolver(ClassLoader classLoader) [SPR-5264] #9937
📔 Documentation
- Update Pet Clinic to use HSQL as an embedded database [SPR-5429] #10103
3.0 M1 Release
⭐ New Features
- WorkManagerTaskExecutor implements also Executor interface [SPR-6210] #10878
- JSP tag for building URLs with URI templates [SPR-5298] #9971
- Improve bundlor templates [SPR-5250] #9924
- Atom and RSS View [SPR-5249] #9923
- Default value for
@RequestParam
[SPR-5237] #9911 - Scope SPI support for EL binding [SPR-5224] #9898
- Revise ContextLoader / ContextLoaderListener relationship [SPR-5056] #9731
- JRuby 1.1: org.jruby.Ruby method renames break Spring's scripting support [SPR-4743] #9420
- Introducing Expression Language Support [SPR-4] #4739
🪲 Bug Fixes
- Fetching _eventId throws uncaught ClassCastException if it is not a String [SPR-5349] #10022
- AnnotationSessionFactoryBean.scanPackages() creates scanning pattern incorrectly [SPR-5324] #9997
- TLDs must be located under META-INF [SPR-5299] #9972
- JmsUtils.buildExceptionMessage throws NPE if the linked exception doesn't have a message [SPR-5275] #9948
- Bug in translating SQLException using Error Codes [SPR-5272] #9945