Skip to content

Releases: spring-projects/spring-framework

3.1 RC1 Release

17 Jan 15:46
Compare
Choose a tag to compare

⭐ New Features

  • Refactor AnnotationUtils#findAllAnnotationAttributes to accommodate non-default class loader [SPR-8752] #13394
  • Support 'destroy method inference' for @Bean methods [SPR-8751] #13393
  • Allow for setting of custom KeyGenerator in <cache:annotation-driven /> XML namespace [SPR-8730] #13372
  • Expose BEST_MATCHING_PATTERN_ATTRIBUTE with RequestMappingHandlerMapping [SPR-8712] #13354
  • Clarify stereotype and exception translation Javadoc [SPR-8691] #13333
  • Clarify BeanFactory#containsBean Javadoc [SPR-8690] #13332
  • UriTemplate takes wrong approach at encoding substituted template variables [SPR-8662] #13304
  • Throw a more specific exception for a missing part in a multipart request, providing access to the name of the missing part [SPR-8642] #13284
  • Introduce a generic method for invoking any non-public method in ReflectionTestUtils [SPR-8633] #13275
  • ContentNegotiatingViewResolver should be able to follow redirect:views [SPR-8611] #13254
  • Make JDBC namespace more placeholder and SpEL friendly [SPR-8592] #13236
  • Maybe typo in the reference document [SPR-8591] #13235
  • Add generic composite servlet filter [SPR-8585] #13229
  • Typo in Spring Document [SPR-8579] #13223
  • Would be useful to have getContentAsString method in MockPageContext [SPR-8575] #13219
  • Document Lifecycle.stop() method synchronous or asynchronous behaviour [SPR-8570] #13214
  • Spring embedded database fails to execute script after encoding changes [SPR-8562] #13206
  • ContextCache should be keyed by MergedContextConfiguration instead of String [SPR-8549] #13193
  • Introduce ConfigurableEnvironment#addActiveProfile(String) [SPR-8548] #13192
  • Register JndiPropertySource by default in StandardServletEnvironment [SPR-8545] #13189
  • Add support for load time weaving in JBoss AS7 [SPR-8533] #13177
  • Add support for arguments of type javax.servlet.http.Part [SPR-8532] #13176
  • MockHttpServletResponse API is incompatible with Servlet 3.0 HttpServletResponse [SPR-8529] #13173
  • Please allow disabling of Cache in EhCacheFactoryBean [SPR-8504] #13150
  • JavaMailSenderImpl should re-use protocol from mail session when creating transport instance [SPR-8501] #13147
  • Tasks created using task:scheduled-tasks never start if default-lazy-init="true" [SPR-8498] #13144
  • Make BeanFactoryLocator aware of autowiring (and primary flag) [SPR-8489] #13135
  • Allow access to named sections of a multipart request body [SPR-8483] #13129
  • Provide PropertySource implementation for command line arguments [SPR-8482] #13128
  • When a cache can not be found from a @Cacheable annotation, no exception should be thrown to increase flexibility. [SPR-8477] #13123
  • Use 400 Bad request instead of 500 when JSON payload is well formed but has an invalid structure [SPR-8476] #13122
  • CollectionToObjectConverter uses the first element of a collection even when the collection could be assigned to an Object [SPR-8465] #13111
  • Introduce Registration objects in Spring MVC Java-based configuration API [SPR-8454] #13100
  • SpringOXM CastorMarshaller tests [SPR-8453] #13099
  • Expose statusCodes field in SimpleMappingExceptionResolver as a read-only map. [SPR-8452] #13098
  • SimpleUrlHandlerMapping Warning logs on startup [SPR-8449] #13095
  • MVC handler exceptions missing context [SPR-8447] #13093
  • spring:eval tag doesn't support dot(.) operator for accessing map values [SPR-8444] #13090
  • Resolve ${...} placeholders in @PropertySource resource locations [SPR-8442] #13088
  • Allow RedirectView to expose a bookmarkable URL [SPR-8431] #13077
  • LocalContainerEntityManagerFactoryBean#setPackagesToScan should accept String... [SPR-8427] #13073
  • AnnotationConfigContextLoader should not restrict the name of default configuration classes to ContextConfiguration [SPR-8395] #13042
  • Update documentation of TransactionCallback.doInTransaction() [SPR-8390] #13037
  • Introduce a DelegatingSmartContextLoader [SPR-8387] #13034
  • Introduce SmartContextLoader SPI [SPR-8386] #13033
  • Need support for Quartz 2.0 [SPR-8359] #13006
  • Spring OXM CastorMarshaller unmarshalling methods [SPR-8341] #12989
  • Spring OXM schema improvement for CastorMarshaller [SPR-8309] #12958
  • Support Quartz 2.0.x [SPR-8275] #12923
  • Support for better schemaName auto-detection in the TableMetaDataProvider [SPR-8270] #12918
  • Allow default ParameterNameDiscoverer such that works by default for BeanFactory [SPR-8184] #12835
  • Introduce @EnableAspectJAutoProxy (equivalent to aop:aspectj-autoproxy) [SPR-8138] #12789
  • Support Hibernate 4.0.x [SPR-8096] #12751
  • Register JndiPropertySource by default in StandardPortletEnvironment [SPR-8038] #12693
  • Not specifying a multipart resolver for a multipart POST of files results in org.springframework.web.bind.MissingServletRequestParameterException [SPR-8001] #12656
  • HDIV and Spring MVC integration [SPR-7943] #12598
  • Checking for @XmlRootElement annotation should be made optional in Jaxb2Marshaller [SPR-7931] #12586
  • Better handling of 204 No Content in RestTemplate [SPR-7911] #12566
  • Allow custom request mapping conditions [SPR-7812] #12468
  • @PathVariable and @ModelAttribute incompatibility prevent me from having a nice "update" handler [SPR-7608] #12264
  • Support for JDK 7's JDBC 4.1 (JSR-TBD) [SPR-7579] #12235
  • Support for JDK 7's concurrency and collections updates (JSR-166y) [SPR-7578] #12234
  • Improvement to JDBC Named Parameter Replacement Strategy [SPR-7476] #12134
  • Views: setModelKey, setRenderedAttributes should be consistent [SPR-7210] #11869
  • ConfigurableWebBindingInitializer should provide setAutoGrowNestedPaths method [SPR-7038] [#1170...
Read more

3.0.6 Release

17 Jan 15:46
Compare
Choose a tag to compare

⭐ New Features

  • Invalid MIME-type causes a 500 error [SPR-7712] #12368
  • Required annotation processing can't be skipped by using bean definition meta element [SPR-8617] #13260
  • Allow read and connect timeouts and request headers to be set on SimpleHttpInvokerRequestExecutor [SPR-8615] #13258
  • Allow the read and connect timeout to be set on SimpleClientHttpRequestFactory [SPR-8614] #13257
  • ExposeInvocationInterceptor should always be highest precedence [SPR-8544] #13188
  • Add setInstanceName and setInstanceId methods into LocalTaskExecutorThreadPool [SPR-8542] #13186
  • CollectionToObjectConverter uses the first element of a collection even when the collection could be assigned to an Object [SPR-8538] #13182
  • ResourceHttpRequestHandler should check for directory traversal [SPR-8515] #13160
  • Type conversion not applied on @Resource annotation [SPR-8480] #13126
  • Javadocs on CustomDateEditor misleading [SPR-7759] #12415
  • ConcurrentModificationException in DefaultListableBeanFactory when using your own bean factory to register beans [SPR-7757] #12413
  • improve the process of finding actual methods for servlet and portlet handlers [SPR-7703] #12359
  • Reduce footprint due to BeanDefinitions [SPR-7491] #12149
  • Double EL expression evaluation in JSP MessageTag [SPR-5308] #9981

🪲 Bug Fixes

  • Problem using SpringBeanAutowiringInterceptor with @Value annotation in a Stateless Session Bean [SPR-8621] #13264
  • RedirectView always sends 302s in HTTP/1.0 (default) mode [SPR-8612] #13255
  • PersistenceAnnotationBeanPostProcessor does not operate on the most specific persistence annotation declaration [SPR-8594] #13238
  • Can not inject primitive values from property file using @Value annotation into servlet [SPR-8574] #13218
  • subelement in throws BeanDefinitionParsingException [SPR-8563] #13207
  • Synchronisation during performance tests - TypeDescriptor [SPR-8559] #13203
  • MapToMapConverter invalidly returns source map for empty maps [SPR-8554] #13198
  • @PathVariable incorrect matching [SPR-8543] #13187
  • Backport JUnit 4 and @Rule execution order change to 3.0.x [SPR-8537] #13181
  • ConfigurationClassPostProcessor throws IllegalStateException when its postProcessBeanDefinitionRegistry is called with different registries [SPR-8527] #13171
  • org.springframework.transaction bundle is missing import of org.jboss.resource.work [SPR-8505] #13151
  • Non-fatal exception thrown/logged by TypeConverterDelegate [SPR-8499] #13145
  • GenericConverter specifies Set getConvertibleTypes(), but ConvertiblePair doesn't override hashCode and equals. [SPR-8459] #13105
  • CachingConnectionFactory too eagerly Session.commit [SPR-8437] #13083
  • Concurrency problem in CachingConnectionFactory on closing Session [SPR-8436] #13082
  • By default, there is broken conversion String -> ContextResource [SPR-8383] #13030
  • RmiInvocationWrapper methods must not be declared as idempotent for Weblogic cluster [SPR-8369] #13016
  • Debug logging forces instantiation of scoped beans [SPR-8297] #12945
  • ExceptionDepthComparator handle comparison of exact object is incorrect [SPR-8231] #12880
  • Spring ORM 3_0_5 does not set the JPA timeout in milliseconds [SPR-8086] #12741
  • ConcurrentModificationException at Autowired [SPR-7956] #12611
  • BeanDefinitionVisitor does not actually visit factory method names [SPR-7953] #12608
  • Annotation based injection into non public base classes does not work [SPR-7900] #12555
  • Problem with FormattingConversionService [SPR-7875] #12532
  • Accept-Charset header with '*' results in java.nio.charset.IllegalCharsetNameException [SPR-7869] #12526
  • FormHttpMessageConverter.read() always ignores post data when processing request (from Tomcat) [SPR-7845] #12502
  • DataBinder should be able to define a different strategy for BeanWrapperImpl how autogrowing should handle gaps in collection properties [SPR-7842] #12498
  • HttpHeaders.getEtag() mangles the value [SPR-7834] #12490
  • StringUtils incorrectly interprets UNIX-style hidden directories as file extensions [SPR-7828] #12484
  • ConversionService broken since 3.0.4 [SPR-7816] #12472
  • EhCacheManagerFactoryBean should close stream obtained from configLocation [SPR-7813] #12469
  • ServletRequestDataBinder does not bind MultipartFile with HiddenHttpMethodFilter and Multipart Request [SPR-7795] #12451
  • FormHttpMessageConverter does not honor the charset in the content type when writing a form and uses a wrong default charset [SPR-7789] #12445
  • @RequestParam - wanting List getting List [SPR-7781] #12437
  • Vulnerability in LocaleChangeInterceptor [SPR-7779] #12435
  • Wrong data-type resolution using custom Converter [SPR-7766] #12422
  • MediaType incorrectly calls the toString() method instead of name() method causing RestTemplate on Android to fail [SPR-7729] #12385
  • 304 responses should not have non-0 Content-Length [SPR-7706] #12362
  • Missing package imprts in bundle org.springframework.aspects [SPR-7702] #12358
  • Problem by invoking method NamedParameterJdbcTemplate.query() if parameter contains a array [SPR-7699] #12355
  • NullPointerException in InjectionMetadata [SPR-7686] #12342
  • AbstractBindingResult.hashCode() throws NullPointerException [SPR-7682] #12338
  • Unresolved thread safety issue in AutowiredAnnotationBeanPostProcessor.AutowiredMethodElement [SPR-7635] #12291
  • ThreadLocal leaking in AbstractBeanFactory and XmlBeanDefinitionReader [SPR-7441] #12099

3.1 M2 Release

17 Jan 15:46
Compare
Choose a tag to compare

⭐ New Features

  • @ExceptionHandler should be able to return ResponseEntity [SPR-8839] #13481
  • Reference Documentation, Chapter 15 - WebMVC, minor issues [SPR-8391] #13038
  • Allow convenient addition of custom Converter types against ConfigurableEnvironment / ConfigurablePropertyResolver [SPR-8389] #13036
  • Support "contextInitializerClasses" init-param for FrameworkServlet [SPR-8366] #13013
  • Support introspection of nested classes with ClassMetadata [SPR-8358] #13005
  • Introduce AbstractEnvironment#customizePropertySources [SPR-8354] #13001
  • Consolidate support for HandlerInterceptor and MappedInterceptor types in AbstractHandlerMapping [SPR-8352] #12999
  • When using Java-based configuration, nested ViewResolvers in ContentNegotiatingViewResolver may require bean initialization [SPR-8350] #12997
  • Introduce ResourcePropertySource [SPR-8328] #12977
  • Documentation for @BeanAge [SPR-8327] #12976
  • Add Environment.getProperty(String name, Class targetType, T defaultValue); [SPR-8322] #12971
  • Add option to register configuration classes via Class<?> in AnnotationConfigWebApplicationContext [SPR-8320] #12968
  • Provide @Configuration support for enabling load-time weaving (@EnableLoadTimeWeaving) [SPR-8317] #12965
  • Provide @Configuration support for PropertySource registration (@PropertySource) [SPR-8314] #12962
  • Provide @Configuration support for annotation-based transaction management [SPR-8313] #12961
  • Provide @Configuration support for async method execution [SPR-8311] #12959
  • Allow recursive use of @ComponentScan [SPR-8307] #12956
  • ConversionServiceFactory.addDefaultConverters() should add symetric converters [SPR-8306] #12955
  • Provide @Configuration support for configuring Spring @MVC [SPR-8310] #12953
  • cache mutable operations should not return values [SPR-8298] #12946
  • Extension for CastorMarshaller - additional unmarshaller properties [SPR-8296] #12944
  • Extension for CastorMarshaller - additional marshaller properties [SPR-8295] #12943
  • Provide @Configuration support for scheduled tasks [SPR-8262] #12910
  • Introduce @Role annotation [SPR-8260] #12908
  • Allow ref= as well as for mvc:interceptor/ [SPR-8252] #12900
  • Provide HandlerMethod-based implementations of HandlerMapping, HandlerAdapter, and HandlerExceptionResolver [SPR-8214] #12864
  • Relax requirement for transaction manager name/reference in EnableTransactionManagement [SPR-8207] #12857
  • Scheduled tasks should allow a reference to a Trigger bean in XSD [SPR-8205] #12855
  • Introduce a reserved default profile name [SPR-8203] #12852
  • Automatically detect and register nested @Configuration classes [SPR-8186] #12837
  • Allow child ApplicationContext to inherit parent Environment [SPR-8185] #12836
  • Support automatic detection of close methods [SPR-8114] #12768
  • MapPropertySource constructor should have public visibility [SPR-8107] #12761
  • Support Hibernate 3.6.x [SPR-8100] #12755
  • Support injection against setter methods with non-void return types [SPR-8079] #12734
  • Introduce HibernateExceptionTranslator [SPR-8076] #12731
  • BindException method signatures still use raw types [SPR-8062] #12717
  • Allow other delimiters in profile XML attribute [SPR-8033] #12688
  • Cache support - extend key features [SPR-8007] #12662
  • Support Quartz 1.8.x or better [SPR-7987] #12642
  • Process @ImportResource with current ResourceLoader [SPR-7973] #12628
  • Cache KeyGenerator.extract() should allow to use the bean identity [SPR-7971] #12626
  • TestContext framework should support declarative configuration of bean definition profiles [SPR-7960] #12615
  • SessionFactoryUtils.convertHibernateAccessException() improperly swallows underlying HibernateException [SPR-7933] #12588
  • Allow target access in Cache Key SpEL [SPR-7832] #12488
  • Add support for package binding in the JibxMashaller [SPR-7805] #12461
  • JibxMarshaller supports method returns true for classes not in the configured binding [SPR-7804] #12460
  • Make it easier to customize or extend the HandlerAdapter for annotated methods [SPR-7792] #12448
  • Support configuring Servlet container in Spring using Servlet 3.0 programmatic config [SPR-7672] #12328
  • ExceptinHandler method behaves differently than request handler [SPR-7637] #12293
  • Construct org.springframework.core.convert.TypeDescriptor programatically for collections [SPR-7597] #12253
  • GeneratedKeyHolder.getKey returns NULL with postgres [SPR-7564] #12221
  • Automatically expose @PathVariables in the Model [SPR-7543] #12200
  • Support lazy initialization for jee:jndi-lookup [SPR-7477] #12135
  • CastorMarshaller should have suppressXMLDeclaration [SPR-7442] #12100
  • JSON (jackson) @RequestBody marshalling throws awkward exception [SPR-7439] #12097
  • HandlerInterceptor improvement - insufficient context (no handler method) information [SPR-7408] #12066
  • TypeDescriptor.forElementType() does not work for TypeDescriptor obtained via TypeDescriptor.valueOf() [SPR-7390] #12048
  • JDBC data source initializer should be able to execute PL/SQL with embedded statements [SPR-7364] #12022
  • Add equivalent of JAX-RS @Consumes to Spring MVC [SPR-7354] #12013
  • Add equivalent of JAX-RS @Produces to Spring MVC [SPR-7353] #12012
  • @RequestHeader negation expressions (e.g. !Accept=text/plain) are not applied [SPR-7346] #12005
  • TestContext should generate cache keys based on all metadata that uniquely identify ApplicationContext configuration [SPR-7326] #11984
  • Extend JdbcTemplate to allow larger batch updates [SPR-7290] #11949
  • Per-Controller MessageConverter [SPR-7213] [#11872](https://github.com/spring-projects/spring-framework/...
Read more

3.1 M1 Release

17 Jan 15:46
Compare
Choose a tag to compare

⭐ New Features

  • Ability to specify supported media types on FormHttpMessageConverter [SPR-7929] #12584
  • FormattingConversionServiceFactoryBean enhancements [SPR-7912] #12567
  • Sending large payloads with RestTemplate results in an OutOfMemoryError [SPR-7909] #12564
  • Revise testing chapter based on internal review [SPR-7849] #12506
  • Improve readability and formatting of the Container Extension Points section of the reference manual [SPR-7848] #12505
  • Make it easier to register custom Formatters [SPR-7732] #12388
  • Error handling in scheduled tasks [SPR-7723] #12379
  • Add ETag version of WebRequest.checkNotModified() [SPR-7695] #12351
  • Document how SpEL defaulting syntax differs from PropertyPlaceholder defaulting [SPR-7674] #12330
  • Improve exception handling in PropertyPlaceholderConfigurer [SPR-7510] #12167
  • Add environment abstraction and support bean definition profiles [SPR-7508] #12165
  • Make it easier to add new Message Converters to AnnotationMethodHandlerAdapter [SPR-7504] #12161
  • Introduce interceptors for RestTemplate [SPR-7494] #12152
  • c: (constructor) namespace [SPR-7470] #12128
  • Allow custom WebArgumentResolvers to be configured using the mvc namespace [SPR-7327] #11986
  • Provide high-level cache API in Spring container [SPR-7308] #11967
  • Add @ComponentScan annotation [SPR-7194] #11848
  • @ResponseBody does not work with @ExceptionHandler [SPR-6902] #11567
  • Add human-readable descriptions for statuc codes in HttpStatus [SPR-6614] #11280
  • mvc:annotation-driven should allow overriding all WebBindingInitializer properties [SPR-6506] #11172
  • RestTemplate cannot support OAuth [SPR-6143] #10811
  • LoadTimeWeaver for WebSphere [SPR-4331] #9010
  • update for JMX remote connectors [SPR-977] #5689

🪲 Bug Fixes

  • Unable to configure MappingJacksonHttpMessageConverter created by AnnotationDrivenBeanDefinitionParser [SPR-7924] #12579
  • Returning EmptyHolder from Cache causes ClassCastException [SPR-7736] #12392
  • Unexpected behavior with class-level @RequestMappings [SPR-7707] #12363
  • jUnit 4 and @Rule execution order [SPR-7705] #12361

3.0.5 Release

17 Jan 15:46
Compare
Choose a tag to compare

⭐ New Features

  • Documentation of AnnotationConfigApplicationContext default constructor [SPR-8577] #13221
  • StringToCollectionConverter does not trim parsed collection elements [SPR-7657] #12313
  • XStreamMarshaller - Add support for configuring XStream with aliases by class (type) and also defining multiple attributes for the same class. [SPR-7636] #12292
  • @Bean cannot be used on static factory methods but error message does not inform of you of that [SPR-7628] #12284
  • add Serializer/Deserializer strategy interfaces and default implementation [SPR-7627] #12283
  • SybaseMaxValueIncrementer doesn't work with non-enterprise Sybase db [SPR-7623] #12279
  • Enable ability to specify interface types in Jdbc4NativeJdbcExtractor [SPR-7613] #12269
  • Provide a way to use a native JDBC extractor for metadata processing in SimpleJdbcInsert [SPR-7611] #12267
  • jdbc:datasource lacks 'name' attribute or related mechanism [SPR-7604] #12260
  • Add ability to add to beginning of TestExecutionListener list in TestContextManager [SPR-7595] #12251
  • HttpStatusCodeException should contain response body [SPR-7591] #12247
  • AnnotationSessionFactoryBean postProcessConfiguration() should not be final [SPR-7581] #12237
  • Make it easier to override the TableMetaDataProvider for SimpleJdbcInsert and CallMetaDataProvider for SimpleJdbcCall [SPR-7556] #12213
  • Provide name of errant SQL script when EmbeddedDatabase population fails [SPR-7546] #12203
  • Make UriTemplate Serializable [SPR-7541] #12198
  • Allow Class-relative resource loading in GenericXmlApplicationContext [SPR-7530] #12188
  • Improve log statement "not eligible for getting processed by all BeanPostProcessors" to be more informative [SPR-7524] #12182
  • SpEL cannot project on an non-list collection (seems unnecessarily restrictive) [SPR-7493] #12151
  • Typos, formatting issues, minor wording changes, minor fixes in code samples [SPR-7416] #12074
  • @Async support in spring-aspects with AspectJ [SPR-7369] #12027

🪲 Bug Fixes

  • RestTemplate API is misleading when it comes to url variable passing [SPR-7667] #12323
  • SqlParameter name lower case conversion in CallMetaDataContext causes error. [SPR-7658] #12314
  • 'default-merge' attribute value does not propagate to collection elements [SPR-7656] #12312
  • Thread safety issue in InjectionMetaData affecting setter methods annotated with @Resource tags [SPR-7642] #12298
  • Spring EL method resolver fails on vararg calls [SPR-7633] #12289
  • SpEL: Conversion of collection method parameters fails [SPR-7631] #12287
  • Major performance slowdown in AnnotationUtils.findAnnotation [SPR-7630] #12286
  • NullPointerException in error path of ConstructorResolver when constructing a @Bean from a factory method [SPR-7629] #12285
  • AbstractStaxContentHandler sets NamespaceContext on every start/end element [SPR-7621] #12277
  • StaxEventContentHandler does not set Location for StartDocument event [SPR-7620] #12276
  • SpEL: Resolving values from Map works different after PropertyAccessor is cached [SPR-7614] #12270
  • ClassUtils.isAssignable should be commutative for wrapper and primitive types [SPR-7610] #12266
  • Embedded database support in trouble shutting down Derby [SPR-7602] #12258
  • View returned from @ExceptionHandler does not take into account response content type [SPR-7586] #12242
  • PropertyPlaceholderHelper#findPlaceholderEndIndex does not work for custom placeholderPrefix [SPR-7574] #12231
  • AspectJExpressionPointcut does not use the right classloader when initializing the pointcut parser [SPR-7570] #12227
  • ResourceHttpRequestHandlerTests.modified() fails on Windows due to millisecond precision [SPR-7565] #12222
  • Inconsistent behaviour in AbstractApplicationEventMulticaster listener caching [SPR-7563] #12220
  • Changes in resource loading for 3.0.4 breaks for zipped files [SPR-7559] #12216
  • JMS integration with Tibco causes deadlock due to commitIfNecessary in AbstractPollingMessageListenerContainer [SPR-7558] #12215
  • MockHttpSession throws ConcurrentModificationException when removing attributes in a loop [SPR-7557] #12214
  • DefaultServletHttpRequestHandler fails on Google App Engine [SPR-7553] #12210
  • PropertiesLoaderSupport assumes file-based Resources [SPR-7547] #12204
  • DispatcherPortlet should not throw a permanent UnavailableException when no handlermapping can be found [SPR-7542] #12199
  • End user access to files in WEB-INF directory through DispatcherPortlet [SPR-7540] #12197
  • EmbeddedDatabaseFactory fails to shutdown database if population fails [SPR-7536] #12193
  • Possible regression in "redirect" views between Spring 3.0.2 and Spring 3.0.4 [SPR-7532] #12190
  • Synchronization in AnnotationMethodHandlerAdapter [SPR-7525] #12183
  • Registering null singleton results in BNFE on context refresh [SPR-7523] #12181
  • SpEL regression with ArrayList to int array conversion [SPR-7519] #12177
  • DefaultMessageListenerContainer may hang on shutdown [SPR-7511] #12168
  • JdbcTemplate failed to get data from StoredProc by using column alias [SPR-7506] #12163
  • JaxWsPortClientInterceptor gets an incorrect PortName [SPR-7505] #12162
  • Memory leak in serializable bean factory management [SPR-7502] #12159
  • SQLErrorCodesFactory classloader issues [SPR-7497] #12155
  • Problem with URL encoding in org.springframework.web.servlet.view.RedirectView.RedirectView(String url) [SPR-7490] #12148
  • StackOverflowError, ClassCastException and other issues with ConversionService [SPR-7488] #12146
  • CLOB handling does not work with PostgreSQL [SPR-7487] #12145
  • Optional @RequestParam with required=false no longer works in Spring 3.0.4 (compared to 3.0.2) when Controller extends interface [SPR-7483] #12141
  • Exception (SpelEvaluationException: EL1021E) when using spring:eval with Jetty [SPR-7482] #12140
  • Setup of JMS message listener invoker failed for destination when upgrading from 3.0.2 to 3.0.4 [SPR-7478] [#12136](https://githu...
Read more

3.0.4 Release

17 Jan 15:46
Compare
Choose a tag to compare

⭐ New Features

  • SpringTemplateLoader returns -1 for lastModified which breaks caching [SPR-7454] #12112
  • The PortletWrappingController in spring-mvc-portlet is not supporting EventHandling for JSR268 wrapped portlets [SPR-7430] #12088
  • Reason to break PropertiesFactoryBean contract from 2.5 to 3.0 [SPR-7428] #12086
  • JaxWsPortProxyFactoryBean should autodetect properties from @WebService annotation [SPR-7412] #12070
  • AutodetectCapableMBeanInfoAssembler still refers to raw java.lang.Class type [SPR-7405] #12063
  • PropertyResourceConfigurer.convertPropertyValue should also include propertyName in the method signature for better handling of property value conversion [SPR-7386] #12044
  • JDBC data source initializer should ignore empty strings [SPR-7363] #12021
  • SpEL: support for inline list expressions [SPR-7335] #11994
  • HandlerExceptionResolvers should prevent caching of response [SPR-7334] #11993
  • Transaction names should use the concrete class name [SPR-7317] #11975
  • RestTemplate does not handle null uri template parameters [SPR-7314] #11972
  • Improve spring:eval to use beans [SPR-7312] #11971
  • Expose MessageSource through Hibernate Validator 4.1's ResourceBundleLocator [SPR-7307] #11966
  • o.s.http.client.SimpleClientHttpRequestFactory does not allow to specify a java.net.Proxy [SPR-7305] #11964
  • Upgrade the net.sf.ehcache restriction to [1.3,3.0) in the MANIFEST.MF [SPR-7302] #11961
  • Marshaller properties - cast needed [SPR-7292] #11951
  • @CookieValue values are not URL decoded [SPR-7286] #11945
  • Map properties do not auto-grow like Lists do when binding [SPR-7285] #11944
  • Add ResourceHttpRequestHandler for efficiently serving static resouces [SPR-7116] #11776
  • Access JSR-303 validation contraint attributes in localized messages [SPR-6730] #11396
  • UrlResource should support lastModified() for http URLs [SPR-5465] #10138
  • Support MultipartFile-array property [SPR-2784] #7471

🪲 Bug Fixes

  • CronTrigger causes StackOverflowError [SPR-7807] #12463
  • @RequestParam fails when ConfigurableWebBindingInitializer has both messageCodesResolver and conversionService [SPR-7590] #12246
  • AbstractXmlStreamReader getAttributeValue(String, String) does not handle null namespaceURI properly [SPR-7474] #12132
  • Regression in redirect URL encoding [SPR-7471] #12129
  • Dirty writes and SimpleThreadScope leaking across contexts [SPR-7463] #12121
  • spring:eval displays 'null' when expression evaluates to null [SPR-7459] #12117
  • Problems with URL handling to scoped controllers [SPR-7456] #12114
  • Spring can't find lower visibility constructor if a public default constructor exits [SPR-7453] #12111
  • Regression in ResourceDatabasePopulator: no longer supports newlines within statement properly [SPR-7449] #12107
  • Transactional attribute is not resolved on CgLib proxies created by FactoryBeans [SPR-7448] #12106
  • AopProxyUtils.ultimateTargetClass returns null if candidate parameter is not a TargetClassAware [SPR-7447] #12105
  • PropertyPlaceHolderConfigurer valueSeparator is not a configurable property and breaks compatibility with older configuration [SPR-7429] #12087
  • Concurrent prototype creation causes NullPointerException [SPR-7423] #12081
  • SpEL evaluator cannot convert method parameters even if the TypeConverter can [SPR-7410] #12068
  • Portlet EventRequest - An attribute added into the model inside an EventHandling method is not avilable in render method [SPR-7407] #12065
  • @Autowired does not pick up <task:executor ... /> [SPR-7403] #12061
  • Random ClassCastException when creating prototype-bean with nested map property [SPR-7398] #12056
  • HibernateException is thrown during borrow connection after any query execution in RowMapper [SPR-7393] #12051
  • GenericTypeResolver returns Object for parameterized parameters [SPR-7389] #12047
  • Cron expressions use months based at 0-11 (should be 1-12) [SPR-7384] #12042
  • HTTP headers returned as part of ResponseEntity(MultiValueMap<String, String> headers, HttpStatus statusCode) are ignored when using this constructor [SPR-7381] #12039
  • WeakReferenceMonitor has race condition [SPR-7373] #12031
  • DefaultMessageListenerContainer transacted session race condition if no messages for a while when using shared/cached sessions [SPR-7366] #12024
  • JmsResourceHolder.commit should not ignores IllegalStateException [SPR-7360] #12018
  • BeanWrapper Binding with ConversionService: Annotation-driven type conversion rules not applied to List elements [SPR-7348] #12007
  • HTTP 405 (Method not supported) returned when 404 Status (Not Found) was expected [SPR-7345] #12004
  • SpEL: concurrency issue with StandardEvaluationContext initialization [SPR-7343] #12002
  • @ExceptionHandler doesn't work on CGLib-proxied controller in Portlet MVC [SPR-7337] #11996
  • Error message formatting fails if a JSR 303 @Pattern definition contains special characters [SPR-7329] #11988
  • SpEL: 'select last' operator for maps has inconsistent behavior [SPR-7323] #11981
  • remove "Accept-Charset" header from response, generated by @ResponseBody [SPR-7316] #11974
  • GenericConversionService tries to convert equal types [SPR-7304] #11963
  • @ExceptionHandler did not take RequestToViewNameTranslator into resolution process [SPR-7298] #11957
  • AnnotationMethodHandlerAdapter does not inject MultipartHttpServletRequest when wrapped by HiddenHttpMethodFilter [SPR-7296] #11955
  • ConversionService fails to convert String to Resource List values within Map structures in 3.0.3 [SPR-7295] #11954
  • mvc:annotation-driven's checks for JSR-303 and JAXB2 fail in an OSGi environment [SPR-7291] #11950
  • StackOverflowError when converting nested Lists [SPR-7289] #11948
  • SimpleApplicationEventMulticaster does not filter ApplicationEvents correctly [SPR-5974] #10642

📔 Documentation

  • Split IoC chapter DocBook XML into multiple files [SPR-7467] [#12125](https://g...
Read more

3.0.3 Release

17 Jan 15:46
Compare
Choose a tag to compare

⭐ New Features

  • Conversion from String to MediaType should not fail with default ConversionService [SPR-7282] #11941
  • Logging performance bottleneck in DispatcherServlet / UrlPathHelper [SPR-7269] #11928
  • TypeMismatchException instead of IllegalArgumentException: argument type mismatch for wrong RequestBody [SPR-7263] #11922
  • Consider add to "aspectj-autoproxy" tag attribute "exposeProxy" [SPR-7261] #11920
  • Improve JavaDoc of TaskScheduler interface [SPR-7253] #11912
  • form:hidden tag should allow most (All?) of the same HTML attributes as form:input [SPR-7249] #11908
  • JavaMailSenderImpl should report failedMessages in the event of a network error [SPR-7245] #11904
  • DataSourceUtils does not respect c3p0 TimeoutException [SPR-7226] #11885
  • Introduce convenient boolean configuration attribute for enabling auto-refresh of Tiles definitions [SPR-7225] #11884
  • Avoid EntityManager close() exception through isOpen() check [SPR-7215] #11874
  • Extend HttpMessage interface to expose requestURL [SPR-7211] #11870
  • Spring cannot load xml files from jars when wildcards used [SPR-7198] #11857
  • Spring 3 classpath scanning fails on JBoss AS 6.0.0.M3 [SPR-7197] #11856
  • Add configuration option to control creation of new consumers in DefaultMessageListenerContainer [SPR-7189] #11849
  • MockHttpServletResponse remembers only one include URL. [SPR-7188] #11847
  • DataSourceUtils.prepareConnectionForTransaction can throw SQLException when calls con.setTransactionIsolation(definition.getIsolationLevel()) [SPR-7184] #11843
  • Radiobutton/Checkboxes tag doesn't utilize ConversionService for label rendering [SPR-7174] #11833
  • SpEL: bean references in expressions [SPR-7173] #11832
  • Add getLastTask() method to o.sf.util.StopWatch (and fix a couple of typos) [SPR-7134] #11793
  • Filter out non-autowire candidates for calls to getBean(Class<?>) [SPR-7120] #11780
  • Refactor InternalResourceView to expose getRequestDispatcher for overriding [SPR-7118] #11778
  • Add ability for CNVR to search view names that use file extensions [SPR-7117] #11777
  • Cache results of Converter lookup in GenericConversionService to improve performance [SPR-7110] #11770
  • Optimize ObjectToStringConverter to ensure copies are not made when source is already a String [SPR-7109] #11769
  • AbstractApplicationContext.close() could be more forgiving of exceptions [SPR-7106] #11766
  • Improve conversion system logging [SPR-7105] #11765
  • Cache the annotation-driven converters created from a AnnotationFormatterFactory to improve performance [SPR-7104] #11764
  • SpEL: extend set of characters allowed for an identifier [SPR-7100] #11760
  • Make formatter value configurable through Spring EL/Property PlaceHolder [SPR-7087] #11747
  • Add ignoreJafMediaTypes to ContentNegotiatingViewResolver [SPR-7081] #11741
  • ConversionService cannot override existing Resource editors [SPR-7079] #11739
  • Add support in AopUtils for obtaining target class transitively when target is an AopProxy [SPR-7074] #11734
  • MappingJacksonJsonView.renderedAttributes to be made visible to subclasses [SPR-7070] #11730
  • Need the Ability to Determine if a JMS Listener has Created a Consumer for a Destination [SPR-7065] #11725
  • Allows for on-the-fly persistence units merge without using hardcoded jar urls [SPR-7055] #11689
  • More expected exception tweaks for SpEL expression method invocations [SPR-6941] #11606
  • Add support for WebServiceFeature's to JaxWsPortProxyFactoryBean [SPR-5712] #10382

🪲 Bug Fixes

  • Spring aspects depends on javax.persistence/persistence-api 1.0. Conflicts with ROO including hibernate-jpa-2.0-api [SPR-7284] #11943
  • Conversion service is attempting to convert types that should not be converted [SPR-7283] #11942
  • GenericConversionService canConvert() throws NPE for void.class [SPR-7281] #11940
  • SimpleAliasRegistry.canonicalName can produce an endless loop [SPR-7274] #11933
  • Spring failed to start Circular SmartLifecycle dependencies [SPR-7266] #11925
  • AutowireUtils requires ObjectFactory to be Serializable [SPR-7264] #11923
  • ResponseStatus.reason() ignored for @ExceptionHandler methods [SPR-7259] #11918
  • <form:errors path="*"/> generates span with incorrect id: [SPR-7258] #11917
  • AbstractMarshaller incorrectly expects DOMResult to already have a node [SPR-7257] #11916
  • spring context wrongly created when using aliases [SPR-7254] #11913
  • Tiles 2.2.1 EL AttributeEvaluator not being setup correctly. EL doesn't work in Tiles definitions [SPR-7251] #11910
  • Spring ORM with JPA 2.0 and Eclipselink throws ClassCastException. [SPR-7247] #11906
  • EL expressions with chained map indexes in some cases fail to evaluate [SPR-7244] #11903
  • CronSequenceGenerator should fail to parse invlid ranges of hours etc (e.g. months 11-13) [SPR-7239] #11898
  • NamedParameterJdbcTemplate has the potential to leak memory [SPR-7237] #11896
  • @Transactional can't resolve by @Qualifier PlatformTransactionManager created in @Configuration classes [SPR-7232] #11891
  • Tomcat does not shutdown correctly when using @Scheduled [SPR-7231] #11890
  • Db2CallMetaDataProvider.metaDataSchemaNameToUse throws NPE if the DatabaseMetaData has no username [SPR-7228] #11887
  • GC problem when having Spring jars in a higher ClassLoader without using clearClassLoader [SPR-7227] #11886
  • mvc:annotation-driven intends to autodetect JodaTime 1.3 but accidentally includes earlier versions as well [SPR-7222] #11881
  • Spring XML bean definition parser interprets tags that are not in the beans namespace [SPR-7218] #11877
  • SpEL: Elvis operator throwing NPE in case of an empty base expression [SPR-7209] #11868
  • Ref Doc still contains a section about ServerSessionMessageListenerContainer [SPR-7207] #11866
  • AbstractApplicationEventMulticaster returns multiple instances of same listener for getApplicationListeners() [SPR-7204] [#11863](https://github.c...
Read more

3.0.2 Release

17 Jan 15:46
Compare
Choose a tag to compare

⭐ New Features

  • MappingJacksonJsonView should add headers for no-caching [SPR-7031] #11693
  • Support for HttpEntity<?> in @MVC [SPR-7018] #11680
  • RestTemplate fails to convert properly for Generic Type Container with MappingJacksonHttpMessageConverter [SPR-7002] #11667
  • Performance improvement for TransactionSynchronizationManager.getSynchronizations() [SPR-6999] #11664
  • Provide mechanism for injecting a Serializable Provider or ObjectFactory via XML [SPR-6998] #11663
  • Auto-growing of collections should be implemented for collection writing as well as reading [SPR-6984] #11649
  • org.springframework.core.TypeDescriptor.getAnnotations() should return the method annotation when it wraps the return parameter of the Method [SPR-6979] #11644
  • GenericTypeResolver does not properly handle array parameter types [SPR-6977] #11642
  • Add debug log for HttpMessageConverter usage [SPR-6976] #11641
  • JaxWsPortClientInterceptor gives errors with wsdl service names, not actual endpoints [SPR-6971] #11636
  • Introduce HttpEntity [SPR-6969] #11634
  • SpEL support for bean property access via square brackets [SPR-6968] #11633
  • SimpleJdbcCall.returningResultSet() should accept RowMapper instead of ParameterizedRowMapper [SPR-6963] #11628
  • RestTemplate should not encode fragments (#'s) [SPR-6946] #11611
  • @ResponseBody with method that return void throws "Could not resolve view exception". [SPR-6935] #11600
  • Making org.springframework.scheduling.support.CronSequenceGenerator a public class [SPR-6920] #11585
  • WebContentInterceptor restricting HTTP request methods by default [SPR-6919] #11584
  • JibxMarshaller - provide access to jibx's writeDocType [SPR-6907] #11572
  • HibernateJpaDialect does not allow ConnectionManager to eagerly release Connection for long-running Session [SPR-6895] #11560
  • Improve documentation for JavaConfig's use of CGLIB for all @Configuration annotated classes [SPR-6885] #11551
  • Portlet pom states dependency to spring-asm twice [SPR-6881] #11547
  • form:error tag generates HTML id which contains [ and ], when bound to indexed property [SPR-6862] #11528
  • HiddenHttpMethodFilter does not support multipart requests [SPR-6594] #11260
  • Allow for using MultiValueMap in GET request for mapping multiple request params [SPR-6021] #10690
  • Multipart/mixed requests using RestTemplate [SPR-5904] #10573
  • RestTemplate - access to Request Headers [SPR-5866] #10535
  • Improve error messaging when factory-method is not found [SPR-5475] #10148
  • Add LocalSessionFactoryBean.validateDatabaseSchema() [SPR-3212] #7898

🪲 Bug Fixes

  • @DateTimeFormat causes exception when used with Direct Field Access bean binding [SPR-7809] #12465
  • GenericConversionService ignores converters for arrays [SPR-7462] #12120
  • @Value annotation in Validator triggers Exception when resolving. [SPR-7196] #11855
  • @ResponseStatus: The reason value is not used. [SPR-7060] #11720
  • [doc][spel] Documentation refers to TemplatedParserContext. Class is TemplateParserContext [SPR-7059] #11719
  • Constructor injection is not working properly for collections unless the type of collection is specified [SPR-7058] #11718
  • MVC 3 not forwarding "/" path in WebSphere 7 [SPR-7052] #11713
  • InputStream never closed when using JasperReports 3.x [SPR-7048] #11709
  • XML MarshallingView assumes non-null value for object to be marshalled. [SPR-7047] #11708
  • ContextLoader requires servlet-api 2.5 [SPR-7044] #11706
  • Spring Form Tags cause AccessControlException on Google App Engine [SPR-7042] #11704
  • XmlBeans UnMarshalling - does not work with RequestBody annotation [SPR-7034] #11696
  • Strange MANIFEST.MF and extra jar file inside org.springframework.web.struts jar artifact [SPR-7033] #11695
  • NPE in RuntimeTestWalker [SPR-7032] #11694
  • OptionWriter.renderFromMap fails when map key is null [SPR-7024] #11686
  • Validation for nested properties is buggy [SPR-7019] #11681
  • NPE when attempting to expose JaxWs Port Proxy via mbean exporter [SPR-7011] #11676
  • Spring ignores @Transaction due to double proxying [SPR-7009] #11674
  • AnnotationMethodHandlerAdapter gives priority to media type order over quality when selecting a method [SPR-7000] #11665
  • Memory leak using TransactionDelegate and transaction.commit() [SPR-6991] #11656
  • Spring web's tag library removes "[" and "]" in the path attribute for input (and possibly others). [SPR-6989] #11654
  • Incorrect OSGi dependencies in 3.0.1 RELEASE [SPR-6985] #11650
  • Dispatcher fails to invoke handler method when request method conflicts with request path [SPR-6978] #11643
  • JPA 2.0 support not enabled for OpenJPA (and others?) [SPR-6975] #11640
  • Proxy created for intercept-methods doesn't respect autowire-candidate attribute [SPR-6974] #11639
  • AbstractHttpMessageConverter canWrite logic the wrong way round?? [SPR-6970] #11635
  • Problem with Spring 3.0 when DispatcherServlet is decladed as a Spring bean itself [SPR-6964] #11629
  • Exceptions thrown from an ActionRequest are not handled via @ExceptionHandler [SPR-6959] #11624
  • when combining mvc:annotation-driven and DataBinder.initdirectfieldaccess, conversion problems cause ConversionFailedException instead of being handled by the DataBinder [SPR-6953] #11618
  • Conversion creates collection with invalid elements for @Controller bind target [SPR-6950] #11615
  • NullPointerException from DefaultListableBeanFactory caused by BeanConfigurerSupport [SPR-6947] #11612
  • XStreamMarshaller + JsonHierarchicalStreamDriver + JsonWriter.DROP_ROOT_MODE produce empty output [SPR-6939] #11604
  • AnnotationMethodHandlerAdapter should take into account request accept header ordering [SPR-6934] #11599
  • NPE if BeanPostProcessor returns null [SPR-6926] #11591
  • Spring 3.0.1 cannot concatenate Spring with SpEL ...
Read more

3.0.1 Release

17 Jan 15:46
Compare
Choose a tag to compare

⭐ 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...
Read more

3.0 GA Release

17 Jan 15:46
Compare
Choose a tag to compare

⭐ 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