Releases: spring-projects/spring-framework
Releases · spring-projects/spring-framework
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