Skip to content

Releases: spring-projects/spring-framework

3.0 M4 Release

17 Jan 15:47
Compare
Choose a tag to compare

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

3.0 M3 Release

17 Jan 15:47
Compare
Choose a tag to compare

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

3.0 M2 Release

17 Jan 15:47
Compare
Choose a tag to compare

⭐ 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

17 Jan 14:07
Compare
Choose a tag to compare

⭐ 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