달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
일민이가 지난주에 호주에서 한국에 들어왔는데, 아직 얼굴은 보지 못하고 있다.
매번 저녁 약속에 다른 약속들이 잡혀서, 그 모임들에 참가 하는라 바쁘다.

아직도 11월인데, 송년회를 한다나, 여의도에서 만나기로 했는데, 다른 사람들이랑 모임이 시작되어서 힘들다고 한다. 이유도 여러 가지 이지만, 아직도 한국에서 그를 찾는 사람들이 많아서 일거다.

암튼 이번주 토요일에 보기로 했는데, 저녁보다는 아침 일찍이 만나야 할 거 같다. 예전 처럼 아침 먹으면서,  여러 가지 이야기를 할 수 있을 거라 생각이 된다. 이제는 아이들 이야기를 할 수 있을 정도로 일민이도 자격을 갖추었으니까... 얼마전에 일민이 아들이 돌이었다고 한다.

다음 동영상은 일민이가 IBM의 DeveloperWorks에 올린 동영상 강좌이다.
올린지 시간이 꽤 지났는데, 최근에서야 보았다.


'공부하는 것' 카테고리의 다른 글

New ASP.NET Chart Control  (1) 2008.12.04
SQL Server Express Network 연결 설정 방법  (0) 2008.12.02
6 New ASP.NET Dynamic Data Videos  (0) 2008.11.06
Spring 3.0 Preview  (0) 2008.10.21
Silverlight 2 Released  (0) 2008.10.15
:
Posted by 행복상자
2008. 11. 8. 08:02

Spring Framework 2.5.6 Released 좋아하는 것2008. 11. 8. 08:02

지난 10월 30일에 Spring Framewrk 2.5.6버전이 릴리즈 되었다.
지금 내가 하고 있는 프로젝트는 Spring 2.5.5를 기반으로 개발하고 있는데, 현재 개발자 테스트를 시작하고 있는 중이다. 프로젝트 종료가 올해말로 예정되어 있기 때문에 현재 구성되어 있는 개발 환경을 바꾸지 않고 올해 말까지 진행 하기로 하였다. 

그래도 변경된 부분을 살펴봐야 하기에 로그를 살펴 보았는데, 여느때 보다는 수정된 목록들의 개수가 적었다. 그 만큼 많은 부분들이 안정되어 간다는 말일 거다.

Changes in version 2.5.6 (2008-10-31)
-------------------------------------

General
* removed outdated EAR support from sample applications
* upgraded to AspectJ 1.6.2 (retaining compatibility with AspectJ 1.5.x and 1.6.x)
* upgraded to EHCache 1.5.0 (retaining compatibility with EHCache 1.2 and higher)
* upgraded to TestNG 5.8 (retaining compatibility with TestNG 5.5 and higher)
* upgraded to OpenJPA 1.1.0 (retaining compatibility with OpenJPA 1.0.x as well as 1.2.0)
* upgraded to EclipseLink 1.0.1 (EclipseLinkJpaVendorAdapter requires EclipseLink 1.0.0+ now)

Package org.springframework.aop
* AbstractAutoProxyCreator (as used by "aop:config") correctly ignores null bean instances
* "aop:aspect" doesn't insist on aspect bean reference to be specified when just containing declare-parents elements
* "bean" pointcut matches exposed FactoryBean products only; "&..." syntax supported for matching FactoryBean itself

Package org.springframework.beans
* BeanUtils skips conventional editor check for array classes (in order to not break AspectJ weaving)
* BeanWrapper's introspection resolves bridge methods to find setter method for getter method with covariant return type
* TypeMismatchException message differentiates between editor with inappropriate value returned versus no editor at all
* containing bean definition is exposed to ParserContext for BeanDefinitionDecorators as well
* BeanDefinition objects are considered equal even if their originating resource objects are different
* AbstractFactoryBean's early singleton proxy handles equals, hashCode and toString calls locally (avoiding eager init)
* PropertyPathFactoryBean logs a warning if the target bean is still in creation at the time of obtaining the property
* exposed public "copyRegisteredEditorsTo" method on ConfigurableBeanFactory interface
* fixed corner case in AbstractBeanDefinition where a ClassCastException could arise in "getBeanClass(Name)"
* DefaultSingletonBeanRegistry eagerly cleans up cached dependency information when destroying a bean
* AbstractBeanFactory rejects getBean request with arguments in case of a pre-existing singleton of same name as well
* AbstractAutowireCapableBeanFactory preserves possible matches hint in property exception
* SmartInstantiationAwareBeanPostProcessor's "determineCandidateConstructors" is only invoked for non-null bean Class
* ServiceLocatorFactoryBean handles equals and hashCode based on proxy object identity
* factored out "createBeanDefinition" template method in BeanDefinitionParserDelegate
* turned visibility of BeanDefinitionParserDelegate's "checkNameUniqueness" method to protected
* XML list/set/map elements (in both the beans and the util namespace) support nested description element

Package org.springframework.cache
* EhCacheFactoryBean obtains decorated Ehcache instead of raw Cache, honoring pre-configured cache decorators
* removed useless "diskStorePath" property from EhCacheFactoryBean (ignored by all current EHCache versions anyway)

Package org.springframework.context
* DefaultMessageSourceResolvable and FieldError implement "equals" and "hashCode" such that all fields are respected
* ClassPathBeanDefinitionScanner performs trace/debug logging during class resource introspection
* ClassPathBeanDefinitionScanner ignores same class found multiple times in the classpath (i.e. equal bean definition)
* component-scan preserves original source of scanned bean definitions, for silently ignoring already scanned classes
* annotation-config registers PersistenceAnnotationBeanPostProcessor independent from client bundle's class loader
* added CUSTOM value to FilterType enumeration

Package org.springframework.core
* ClassPathResource uses cleaned path for relative resources as well
* PathMatchingResourcePatternResolver considers URL protocol "vfszip" as jar file (to search JBoss-managed jars)
* GenericCollectionTypeResolver correctly resolves collection element type even when target bean is a collection itself

Package org.springframework.ejb
* SpringBeanAutowiringInterceptor calls "InvocationContext.proceed()" in order to invoke subsequent interceptors as well

Package org.springframework.instrument
* ShadowingClassLoader excludes "net.sf.cglib." package from shadowing by default

Package org.springframework.jdbc
* provided Jdbc4SqlXmlHandler as default implementation of the SqlXmlHandler interface
* added SqlValue class to "jdbc.support" package, with SqlXmlValue derived from SqlValue instead of SqlTypeValue
* SQLErrorCodesFactory always loads its "sql-error-codes.xml" files from Spring's class loader (-> static singleton)
* added "transientDataAccessResourceCodes" category to "sql-error-codes.xml", with default codes for DB2 and Sybase
* SQLErrorCodeSQLExceptionTranslator applies default SQLExceptionSubclassTranslator after error code translation only
* SQLErrorCodeSQLExceptionTranslator is able to work without fallback SQLState translation as well
* SQLExceptionSubclassTranslator translates SQLFeatureNotSupportedException to InvalidDataAccessApiUsageException
* SQLStateSQLExceptionTranslator returns TransientDataAccessResourceException for well-known vendor-specific SQL states
* factored out AbstractFallbackSQLExceptionTranslator base class for consistent "fallbackTranslator" capabilities
* CallableStatementCreatorFactory strictly honors "SqlParameter.isInputValueProvided" (allowing for statement caching)
* JdbcTemplate passes full Calendar argument to JDBC driver even in case of no SQL type specified
* JdbcTemplate does not call the costly "Statement.getWarnings()" unless ignoreWarnings=false or debug logging is on
* added "checkFullyPopulated" setting to BeanPropertyRowMapper, for validating that all bean properties have been mapped

Package org.springframework.jms
* JmsException message and logged JMSException message explicitly includes linked exception now if not already contained
* SingleConnectionFactory only calls "Connection.stop()" on reset when the shared Connection has actually been started
* SingleConnectionFactory explicitly creates Queue/TopicConnection when first call is createQueue/TopicConnection method
* CachingConnectionFactory explicitly creates Queue/TopicSession when first call is createQueue/TopicConnection method
* CachingConnectionFactory's JMS Session proxies implement SessionProxy interface, allowing for access to target Session
* CachingConnectionFactory rolls back cached transacted JMS Sessions on logical close if no commit/rollback was issued
* CachingConnectionFactory explicitly closes cached JMS Sessions on Connection close
* CachingConnectionFactory's cached producers pass on "disableMessageID" and "disableMessageTimestamp" properties
* CachingConnectionFactory also caches MessageConsumers (controlled through "cacheConsumers" property)
* AbstractJmsListeningContainer eagerly clears shared JMS Connection after releasing, avoiding repeated close exceptions
* revised DefaultMessageListenerContainer to correctly work with non-JMS transaction manager and CACHE_CONNECTION level
* DefaultMessageListenerContainer supports a stop notification callback for unlimited maxMessagesPerTask as well now
* introduced SubscriptionNameProvider interface for message listener objects suggesting default subscription names
* "jms:listener-container" uses actual message listener object's class name as default subscription name

Package org.springframework.jmx
* fixed NotificationListenerHolder to correctly handle multiple specified object names
* added "allowEagerInit" property to MBeanExporter, for autodetecting lazy-init beans and FactoryBean-produced objects
* added "environment" property to MBeanClientInterceptor and NotificationListenerRegistar, allowing for JMX env entries
* added "refreshOnConnectFailure" property to MBeanClientInterceptor, allowing for reconnect in case of I/O failure

Package org.springframework.mail
* ConfigurableMimeFileTypeMap explicitly closes the InputStream that it uses for "mime.types" resource reading

Package org.springframework.mock
* SimpleNamingContextBuilder supports "deactivate()"+"activate()", with the standard JNDI provider exposed inbetween

Package org.springframework.orm
* HibernateTemplate detects Spring-managed transactional Session even with SessionFactory proxy and allowCreate=false
* HibernateTemplate's "loadAll" operation selects distinct root entities (avoiding duplicate entries in result list)
* HibernateTemplate translates Hibernate's DataException into a Spring DataIntegrityViolationException (for consistency)
* fixed HibernateTransactionManager's "earlyFlushBeforeCommit" feature to apply to the outermost transaction only
* added "packagesToScan" property to Hibernate AnnotationSessionFactoryBean, for autodetection of @Entity classes
* HibernateJpaDialect checks "EntityManager.getDelegate()" as well to find Hibernate Session (for Seam compatibility)
* added "persistenceXmlLocation" property to DefaultPersistenceUnitManager, as alternative to "persistenceXmlLocations"
* @PersistenceContext of type TRANSACTION allows returned Query objects to be parameterized and executed as well
* @PersistenceContext for default EntityManagerFactory lookup works even in an @Configurable Hibernate entity

Package org.springframework.remoting
* added "interceptors" property to RemoteExporter, allowing for registering custom AOP interceptors before the endpoint
* RmiClientInterceptor always logs connect failure at warn level, even when debug logging (incl. stacktrace) is active
* JndiRmiClientInterceptor skips narrowing for RmiInvocationHandler stubs (fixing a regression in 2.5.4)
* Hessian/Burlap service exporters explicitly close input and output streams now (not relying on servlet container)
* Simple/CommonsHttpInvokerRequestExecutor set the current locale according to LocaleContextHolder as HTTP lang header
* JaxWsPortProxyFactoryBean exposes the JAX-WS BindingProvider interface in the Spring-generated proxy as well

Package org.springframework.scheduling
* SchedulerFactoryBean populates scheduler context first before satisfying SchedulerContextAware on a given JobFactory
* SchedulerFactoryBean uses bean name as default scheduler name (when "schedulerName" property not explicitly specified)
* SchedulerFactoryBean does not accept a pre-registered Scheduler instance in the Quartz SchedulerRepository anymore
* SchedulerFactoryBean does not expose the Spring-created/managed Scheduler to the Quartz SchedulerRepository anymore
* added "exposeSchedulerInRepository" flag to SchedulerFactoryBean, for explicit exposure to the SchedulerRepository
* introduced SchedulerAccessorBean for registering jobs/triggers/listeners on an existing Quartz Scheduler instance
* ScheduledExecutorFactoryBean uses Runnable decorator for logging exceptions that lead to termination of execution

Package org.springframework.test
* SpringJUnit4ClassRunner skips execution of test classes with non-matching @IfProfileValue annotation completely

Package org.springframework.transaction
* AbstractPlatformTransactionManager resumes after any kind of inner begin failure (not just after TransactionException)
* TransactionSynchronizationManager interaction gets logged at trace level only (minimizing debug log per transaction)
* JotmFactoryBean sets "defaultTimeout" value as actual JOTM default (even if no transaction timeout specified at all)

Package org.springframework.util
* fixed "StringUtils.delete" to prevent an eternal loop in case of the pattern being empty
* "StringUtils.cleanPath" preserves leading slash if given in original path
* "FileSystemUtils.copyRecursively" ignores 'special' files (i.e. neither a regular file nor a directory)

Package org.springframework.web
* HttpRequestHandlerServlet propagates HTTP request locale into Spring's LocaleContextHolder
* revised "WebUtils.extractFilenameFromUrlPath" to search actual URI part only even when given a URL with query string
* Log4jNestedDiagnosticContextFilter/Interceptor explicitly remove the NDC stack if depth=0 after the "NDC.pop()" call
* fixed FacesWebRequest's "getParameterValues" implementation to use "ExternalContext.getRequestParameterValuesMap"
* PortletContextResource cleans given path (analogous to ServletContextResource)
* Servlet/PortletContextResource accept path with leading "/../" part as well (as accepted by most servlet containers)
* DispatcherServlet removes error-view-driven servlet request attributes after rendering (for Tomcat compatibility)
* exposed "getParamName()" method on LocaleChangeInterceptor and ThemeChangeInterceptor
* added "cacheSecondsForSessionAttributeHandlers" property to Servlet/Portlet AnnotationMethodHandlerAdapter
* AnnotationMethodHandlerAdapter exposes special ModelMap that removes BindingResult if target attribute gets replaced
* Servlet AnnotationMethodHandlerAdapter always takes first exact @RequestMapping path match as best path match
* @MVC handler methods, model attribute methods and init binder methods allow for overriding a generic superclass method
* @ModelAttribute annotated handler method arguments can resolve to a null value as well (when contained in the model)
* standard method argument subtypes (such as a Principal subclass) fail with a descriptive exception if incompatible
* Portlet AbstractCommandController falls back to lazy command creation if session timed out after action phase
* ByteArray/StringMultipartFileEditor do not log warning but rather include root cause in IllegalArgumentException
* InternalResourceView's "preventDispatchLoop" checks against the same request's URI only (for Portlet compatibility)
* made RedirectView's "renderMergedOutputModel" implementation non-final
* VelocityConfigurer exposes ServletContext as VelocityEngine attribute (analogous to the standard VelocityViewServlet)
* revised XsltView to specify full resource URI as StreamSource system id, for properly resolving relative paths
* officially deprecated AbstractXsltView in favor of XsltView and its more flexible "locateSource" mechanism
* revised error logging during XSLT processing to properly log compilation errors before an eventual fatal exception
* moved internal TransformerUtils helper class to generic "org.springframework.util.xml" package





:
Posted by 행복상자
2008. 10. 21. 22:58

Spring 3.0 Preview 공부하는 것2008. 10. 21. 22:58

오늘 Spring Framework 사이트에 들어갔더니, Spring 3.0에 대한 소식이 올라와 있었다.
아직은 2.5를 많이들 사용하고 있는데, 벌써 3.0이라니, 사실은 벌써 여러곳에서 관련 기능들에 대해서 소개해 주고 있지만, 한국에 제대로 번역된 책은 Spring in Action SE2 이 한권 뿐이다. 국내 저자가 출판한 2.5 기반의 책도 있지만 사실 이책은 Spring MVC에 대한 설명을 주로하고 전체적으로 다룬 책은 아직도 없다. (희색 표지에 붉은 색 그림이 있는 책을 본적이 있을 거다.)
일민이가, 책을 쓴다고 했던 것은 작년인데, 1.2에서 2.0 그리고 2.5로 Spring Framework은 버전업이 되고 있는데, 이 친구의 책이 나오려면 아직도 먼 이야기 있것 같다. 또 Spring Framwork 3.0이 나오려고 하니 말이다. 

오늘 올라온 글은 사실 광고와 다름 없다. Spring 3.0에 대해서 11월 13일 파리에서 소개할 테니 오고 싶은 사람은 공짜로 오라는 글이다. "Spring 3.0 in Paris"라는 제목의 글인데,
3.0버전에 대한 preview를 소개할 것과, upgrade 방법과 Annotation base의 Component 모델에 대해서 Juergen Hoeller 라는 사람이 소개하는 한다는 것과 Peter Cooper-Ellis 는 Spring Source 의  제품 로드맵과 Open Source Project에 대해서 설명할 예정이다.  

그러나, 이번에 열리는 SpringOne Americas 2008 에서 더욱 자세히 설명되고 공개될 거라 생각이 든다. 정말 가보고 싶은 conference인데.... 올해도 못가니 많이 아쉽다.

 
:
Posted by 행복상자
간만에 Spring-DM 사이트(www.springframework.org)에 들어갔더니 사이트가 여러모로 개편이 많이 되어 있었다.

현재 안정화 버전은 Spring-DM ver. 1.1.1로 제공되고 있고, Spring-DM을 이용하여 개발에 참조할수 있는 어러가지 관련 글들의 링크들이 올라와 있었다.

아래는 http://springosgi.googlepages.com/ 에 올라와 있는 글인데 Spring-DM을 시작하는 방법들을 소개하고 있어서 가져왔다.
화면 스크린 샷도 같이 있어서 이해하는데 도움이 많이 될수 있을 것 같다.

Table of Contents
I. Spring-DM Getting Started
    1. Prepare Eclipse/Spring-DM environment

    1.1 Prerequisite

    1.2 Create Spring-DM Target Platform project structure

    1.3 Configure Maven using Eclipse External Tools

    1.4 Test Spring-DM Target Platform

    1.5 Creta Spring-DM User Library (class path)

2. Logging and Tracing with Eclipse PDE and Log4J

    2.1 Configure Logging and Tracing with Log4J

    2.2 Configure Eclipse PDE Tracing

3. Implement Simple Spring-DM service

    3.1 Create Spring-DM service project

    3.2 Implement Spring-DM service

    3.3 Configure Spring-DM service

    3.4 Deploy Spring-DM service

    3.5 Package Spring-DM service

4. Integration Testing with Spring-DM

    4.1 Develop Integration Test

5. Develop and deploy Spring-MVC (OSGi-fied) project

    5.1 Create web project as Eclipse plug-in project

    5.2 Define OSGi specific deployment configuration

    5.3 Deploy Spring-MVC project into Spring-DM Target Platform.

6. Develop and deploy JSF based application

         6.1 Create and deploy JSF project as Eclipse plug-in project
:
Posted by 행복상자