오랜만에 살펴보는 3.0 개발현황.

아직도 M2가 마무리되지 않고 있다. 여러번 추가 이슈가 등록이 되어 처리되고 있고, 이슈에 등록되지 않은 다양한 기능의 추가와 polishing, 문서작업 등이 계속 올라오고 있는 중이다. 최근에 "M2 release를 위한 준비"라는 코멘트를 가진 commit이 있었으니 조만간 출시되리라 기대해본다.

사실 M2에서 가장 바라는 것이 있다면 최신 기능에 대해서 업데이트된 레퍼런스 문서가 포함되는 것과 새로운 3.0의 기능들이 충실하게 사용된 샘플이다. 2.0시절에 등장했던 맛보기 샘플 같은 것이라도 만들어주면 안될까.

최근 유겐의 작업은 주로 코드의 Java5로 업그레이드 또는 Java5의 신기술을 활용한 API추가, 그런 과정에서 새롭게 발견된 버그 픽스, 코드 정리하기 등등이다. M3에서 새로운 기능을 많이 추가하기 위해서 M2에서 기존 코드를 안정적이고 탄탄하게 다져놓으려는 의도인 듯 하다.

그리고 스프링에서 공식적으로 사용하는 Hibernate의 버전이 3.3으로 바뀌었다.

지난 12월 M1 공개이후 두달 이상을 끌고 있는 M2 작업이 어서 마무리 되었으면 좋겠다.

아래는 현재까지 M2의 변경된 기능에 대해서 최신 change log에 나온 내용이다. 여기에 추가해서 최근에 RestTemplate 기능이 포함됐다. REST 방식의 호출을 하는 client코드를 만들 때 사용할 수 있는 스프링 template 스타일의 기능이다. 내부적으로 OXM 추상레이어를 사용해서 동작하도록 설계되어있다. 

Changes in version 3.0.0.M2 (2009-02-20)
—————————————-

* refined OSGi version constraints for "javax.annotation" and "junit.framework"
* revised expression parser API design
* added SimpleThreadScope implementation
* "systemProperties" bean is not considered a default match for type Properties anymore
* registered plain singletons will be fully matched according to their qualifiers
* @Qualifier value matching takes chained aliases of target beans into account as well
* SimpleAliasRegistry’s "getAliases" method returns transitive aliases now
* pre-converted property values are preserved more eagerly for re-created beans
* ASM-based AnnotationMetadata fully resolves class arguments and enums into Java types
* ProceedingJoinPoint resolves parameter names using ASM-based parameter name discovery
* MethodInvocations and ProceedingJoinPoints always expose original method (not bridge)
* bridge method resolution works with Hibernate-generated CGLIB proxies as well
* generic collection type resolution respects upper bound (e.g. ? extends Number) as well
* TypeUtils detects variations of ParameterizedType/GenericArrayType assignability as well
* ReflectionUtils findMethod detects methods on "java.lang.Object" as well
* UrlResource eagerly closes HTTP connections in case of "getInputStream()" failure
* PathMatchingResourcePatternResolver avoids NPE when initialized with null ClassLoader
* all "taskExecutor" bean properties now accept any "java.util.concurrent.Executor"
* added "Future submit(Runnable)" and "Future submit(Callable)" to AsyncTaskExecutor
* SimpleAsyncTaskExecutor supports a custom "java.util.concurrent.ThreadFactory"
* SchedulingTaskExecutor interface extends AsyncTaskExecutor now
* added ThreadPoolExecutorFactoryBean (exposing the native ExecutorService interface)
* added ExecutorServiceAdapter class as a standard wrapper for a Spring TaskExecutor
* reduced backport-concurrent support to TaskExecutor adapters
* added @Async annotation and AsyncAnnotationAdvisor (namespace support coming in M3)
* EJB 3.1′s @Asynchronous annotation gets detected and supported by default as well
* ApplicationListener beans get obtained on demand, supporting non-singletons as well
* ApplicationListeners will be called in the order according to the Ordered contract
* generified ApplicationListener interface, narrowing the event type to be received
* introduced SmartApplicationListener interface for supported event/source types
* generified Transaction/Hibernate/Jdo/JpaCallback with generic "doInXxx" return type
* HibernateOperations uses generic parameter/return types where possible
* JdoOperations uses generic parameter/return types where possible (following JDO 2.1)
* removed "flush" operation from JdoDialect (fully relying on JDO 2.0+ compliance now)
* added JDO 2.1 compliant StandardPersistenceManagerProxy/SpringPersistenceManagerProxy
* Spring-created EntityManagers support JPA 2.0 draft API ("unwrap", "getQueryBuilder")
* Spring initiates JPA 2.0 query timeout with remaining Spring transaction timeout
* added support for WebSphere’s ResourceAdapter-managed messaging transactions
* made SpringBeanAutowiringInterceptor callback signature compatible with WebSphere
* WebSphereUowTransactionManager preserves original exception in case of rollback
* added "flush()" method to TransactionStatus and TransactionSynchronization interfaces
* test context manager automatically flushes transactions before rolling back
* DefaultLobHandler uses explicit Blob/Clob access for reading when "wrapAsLob"=true
* fixed JmsException/JmsUtils to fully avoid NPEs in case of cause messages being null
* fixed MessageListenerAdapter’s "getSubscriptionName()" to work without delegate as well
* fixed HTTP invoker to support resolution of multi-level primitive array classes again
* introduced OXM support package (originating from Spring Web Services)
* introduced OXM-based MarshallingMessageConverter for JMS
* introduced OXM-based MarshallingView for Spring MVC
* refined @PathVariable handling in MVC handler methods
* updated Spring Portlet MVC infrastructure and mocks for Portlet API 2.0
* added resource and event methods to Portlet HandlerAdapter/HandlerInterceptor
* added resolveException method for resource requests to HandlerExceptionResolver
* introduced Resource/EventAwareController subinterfaces of Portlet Controller
* introduced @Action/@Render/@Resource/@EventMapping annotations for Portlet MVC
* added @RequestHeader support for Portlet MVC
* introduced @CookieValue annotation for Servlet and Portlet MVC handler methods
* @RequestMapping type-level param constraints taken into account consistently
* optional boolean parameters in MVC handler methods resolve to "false" if not present
* "url" macro in "spring.ftl" performs standard Servlet URL encoding automatically

Related posts:

  1. Spring 3.0 (52) 반쪽짜리 3.0 RC1 공개
  2. Spring 3.0 (46) Spring 3.0 M4 릴리스
  3. 미리 보는 Spring 3.0.1의 변경사항
  4. Spring 3.0 (6) – R561 Portlet 2.0 API, @CookieValue
  5. Spring 3.0 (56) @Bean 사용의 주의사항
  6. Spring 3.0.1 mvc:annotation-driven 이 몰래 하는 짓
  7. Spring 3.0 (8) Core 모듈의 선택 라이브러리 분석
  8. Spring Framework 3.0.3 릴리스 & 의존 라이브러리
  9. Spring 3.0 EL (Spel)을 이용한 AssertThrows 확장 (2)
  10. Spring 3.0 (23) Web.Portlet 모듈 선택라이브러리 분석
  11. S1A 2008 셋째날 – Spring JavaConfig
  12. Spring 3.0 (44) Spring 3.0과 JEE6
  13. Spring 3.0 (3) R-543 Portlet Mocks, MVC 등등
  14. Spring 3.0 EL (Spel)을 이용한 AssertThrows 확장 (1)
  15. Spring 3.0 (14) Context Support 모듈의 선택 라이브러리 분석

Facebook comments:

to “Spring 3.0 (28) R-669 Update”

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha