Seasar ύX

2.2.10
-------------------------------------------------------------------------------
org.seasar.extension.dbcp.impl pbP[W
* maxPoolSize vpeB 0 ݒ肳ꂽꍇ̓RlNVv[Ȃ悤 ConnectionPoolImpl NXC܂D
* gUNVIɃt[RlNVҋ@ĂXbhւ notify() RĂ̂C܂ (thanks for KUDO Kazuki)D

org.seasar.extension.unit
* DataTable m assert ŎsƂɁCe[û\悤 S2TestCase C܂ (thanks for NAKAMURA Toshihiro)D
* DataRow rƂŁCassert ɎsJĂSẴJr悤 S2TestCase C܂ (thanks for NAKAMURA Toshihiro)D
* S2TestCase  test() Ƃ\bh݂ꍇ setUp()  tearDown() 2xĂ΂ĂC܂ (thanks for NAKAMURA Toshihiro)D

org.seasar.framework.aop.javassist pbP[W
* AspectWeaver NX EnhancedClassGenerator NXɂāCClass#getPackage()  null Ԃꍇ NullPointerException ĂC܂D

org.seasar.framework.container pbP[W
* S2Container C^tF[X findComponents(), findComponentDefs() \bhǉ܂D
* TooManyComponentRegistrationDef C^tF[Xǉ܂D
* TooManyRuntimeRegistrationException NX ComponentDef ێ悤ɏC܂D

org.seasar.framework.container.assembler pbP[W
* AssemblerFactory NXǉ܂D
* AutoConstructorAssembler, DefaultConstructorAssembler, ExpressionConstructorAssembler, ManualConstructorAssembler NX final Cq폜܂D

org.seasar.framework.container.deployer pbP[W
* VOg̃R|[lg̃RXgN^OԂꍇ SingletonComponentDeployer  CyclicReferenceRuntimeException X[C܂ (thanks for FUKUZAWA Susumu)D
* AssemblerFactory gp悤 AbstractComponentDeployer NXC܂D
* CX^XJX^}CYł悤 ComponentDeployerFactory NXC܂D

org.seasar.framework.container.factory pbP[W
* AspectTagHandler, ComponentsTagHandler, ComponentTagHandler, DestroyTagHandler, InitMethodTagHandler, MetaTagHandler, PropertyTagHandler NX̒ōsĂCX^X\bhƂĐ؂o܂D
* AbstractS2ContainerBuilder NXǉCXmlS2ContainerBuilder NX͂̔hNXƂȂ悤ɏC܂D
* CircularIncludeRuntimeException Oǉ܂D
* PathResolver C^tF[XCSimplePathResolver NXǉ܂D
* ResourceResolver C^tF[XCClassPathResourceResolver NXǉ܂D
* Reiт̐JX^}CYł悤 S2ContainerFactory NXC܂D

org.seasar.framework.container.impl pbP[W
* S2ContainerBehavior NXǉ܂D
* TooManyRegistrationComponentDef NX TooManyRegistrationComponentDefImpl Ƀl[܂D
* S2ContainerBehavior NXgp悤 S2ContainerImpl NXC܂D


2.2.9
-------------------------------------------------------------------------------
lib tH_
* jta.jar  jta-1_0_1B-classes.zip l[̂ɒu܂D

org.seasar.extension.dbcp pbP[W
* ConnectionWrapper C^tF[X init() \bh init(boolean) ɕύX܂D̈͂̃RlNV JTA gUNVɎQĂ (enlistResource Ă) ꍇ true w肳܂D

org.seasar.extension.dbcp.impl pbP[W
* JTA gUNVJnO ConnectionPoolImpl `FbNAEgꂽ ConnectionWrapperImpl (activePool ɕێ)  JTA gUNV close() Ă΂ꂽꍇ (txActivePool 菜Ƃ邪݂Ȃ)  freePool ɖ߂ȂC܂D
* JTA gUNV setAutoCommit(true)Ccommit()Crollback()CsetSavePoint()Ăяoꂽꍇ SQLException X[悤ɏC܂D

org.seasar.extension.jta pbP[W
org.seasar.extension.jta.xa pbP[W
*  XAResouce gUNVɎQĂꍇ 2PC ɂ prepare tF[YŁCr XAResouce OX[ꍇɌ㑱 XAResource [obNȂC܂D
*  XAResouce gUNVɎQĂꍇ 2PC ɂ prepare tF[YŁCŌ XAResouce ɑ΂Ă prepare s킸 onePhase R~bgs Last resource commit optimization ܂Dprepare  onePhase R~bg郊\[X Transaction ɍŏ enlist ꂽ\[XɂȂ܂D


2.2.8
-------------------------------------------------------------------------------
org.seasar.extension.dbcp pbP[W
* ConnectionWrapper C^tF[X cleanup() \bhǉ܂D̃\bh ConnectionPool  ConnectionWrapper v[ɖ߂ۂɌĂяo܂D

org.seasar.extension.dbcp.impl pbP[W
* JTAgUNVJnĂȂꍇɃRlNV擾̉ۂw肷 allowLocalTx vpeBǉ܂DallowLocalTx  false ̏ꍇCJTA gUNVJnɃRlNV擾悤Ƃ IllegalStateException X[܂DallowLocalTx ̃ftHgl true łD
* RlNVv[Ƀ`FbNCۂ ConnectionWrapper  cleanup() \bhĂяo悤 ConnectionPoolImpl NXC܂D
* close() Ăяoꂽۂɘ_RlNVN[ỸOo͂悤 ConnectionWrapperImpl C܂D
* ConnectionWrapperImpl  cleanup() \bhǉ܂D̃\bhĂяoƓԂN[Yɐݒ肵܂ (_close  true ɂ)D

org.seasar.extension.tx pbP[W
* NotSupportedInterceptor ǉ܂D
* OɃgUNVR~bg܂̓[obN邱Ƃwł悤 AbstractTxInterceptorCRequiredInterceptorCRequiredNewInterceptor C܂D

org.seasar.extension.unit pbP[W
* S2TestCase ɃftHgRXgN^ǉ܂D

org.seasar.exception pbP[W
* SSQLException ɃRXgN^ǉ܂D
* SIllegasArgumentException ǉ܂D

src tH_
* j2ee.dicon  ConnectionPoolImpl ̒` allowLocalTx ̐ݒǉ܂Dݒl true ŏ]Ɠ܂D
* EJB̃ReiǗgUNV (CMT) ƌ݊̃gUNVEC^[Zv^񋟂 ejbtx.dicon ǉ܂D


2.2.7
-------------------------------------------------------------------------------
org.seasar.extension.dbcp.impl pbP[W
* ConnectionPoolImpl NX NullPointerExcpetion C܂D

org.seasar.framework.aop.javassist pbP[W
* v~eBu^̃\bhɓKp MethodInterceptor  null Ԃꍇ NullPointerException Ȃ悤 EnhancedClassGenerator NXC܂D


2.2.6
-------------------------------------------------------------------------------
org.seasar.extension.jdbc pbP[W
* PropertyType C^tF[X setColumnName() \bhǉ܂D

org.seasar.extension.jdbc.impl pbP[W
* PropertyTypeImpl NX setColumnName() \bhǉ܂D


2.2.5
-------------------------------------------------------------------------------
org.seasar.extension.jta pbP[W
* [obN Synchronization#beforeCompletion() \bhĂяoȂ悤 TransactionImpl NXC܂D

org.seasar.framework.aop.javassist pbP[W
* Javassist  CtClass#toClasss() gȂ悤 AbstractGenerator() NXC܂D
* java.*  V[ꂽpbP[WȊÕNXGnXۂɃNXɃvtBbNXtȂ悤 AspectWeaver NXC܂D
* java.*  V[ꂽpbP[W̉ftHg (pbP[WXR[v) ̃RXgN^I[o[ChȂ悤 EnhancedClassGenerator NXC܂D



2.2.4
-------------------------------------------------------------------------------
org.seasar.extension.dataset.impl pbP[W
* l𕶎Ƃďo悤 XlsWriter NXC܂D

org.seasar.extension.dataset.states pbP[W
* insert Ńe[ǔɃuN悤 CreatedState C܂D

org.seasar.extension.mock.servlet pbP[W
* MockServletContextImpl NXgetResourcePaths(String) \bh܂D

org.seasar.framework.container.factory pbP[W
* S2ContainerFactory  ClassLoader n郁\bhǉ܂B



2.2.3
-------------------------------------------------------------------------------
org.seasar.framework.util pbP[W
* DatabaseMetaDataUtil NXP[XZVeBuȂ̂ɃP[XZVeBuȂƂJDBC DriverɑΉ悤ɏC܂D
* DateConversionUtil NXŃP[wł悤ɏC܂D



2.2.2
-------------------------------------------------------------------------------
org.seasar.framework.aop.interceptors pbP[W
* PrototypeDelegateInterceptor NXǉ܂D

test.org.seasar.framework.aop.interceptors pbP[W
* PrototypeDelegateInterceptorTest NXǉ܂D
* InterceptorsAllTests NX PrototypeDelegateInterceptorTest NX܂߂悤ɏC܂D

examples.aop.prototypedelegateinterceptor pbP[W
* PrototypeDelegateInterceptor NXgTvǉ܂D



2.2.1
-------------------------------------------------------------------------------
org.seasar.framework.aop.javassist pbP[W
* MethodInvocationClassGenerator NX fromObject()EtoObject() \bh AbstractGenerator NXɈړCl^̃v~eBu^ϊۂɂ͑Ή郉bp[^ɃLXĝł͂ȂCjava.lang.Number ^ɃLXgR[h𐶐悤ɏC܂D
* ߂l^ւ̕ϊs悤 EnhancedClassGenerator NX createTargetMethodSource() \bhC܂D

org.seasar.framework.beans.impl pbP[W
* NumberConversionUtil NXg悤 PropertyDescImpl NXC܂DCӂ Number ^v~eBu^֕ϊ邱Ƃo悤ɂȂ܂D

org.seasar.framework.util pbP[W
* NumberConversionUtil NXǉ܂D



2.2.0
-------------------------------------------------------------------------------
org.seasar.framework.aop pbP[W
* S2MethodInvocation C^tF[Xǉ܂D

org.seasar.framework.aop.impl pbP[W
* MethodInvocationImpl NXy폜z܂D
* NestedMethodInvocation NXǉ܂D

org.seasar.framework.aop.interceptors pbP[W
* S2MethodInvocation C^tF[Xg悤 AbstractInterceptor NXC܂D
* NextedMethodInvocation NXg悤 InterceptorChain NXC܂D

org.seasar.framework.aop.javassist pbP[W
* Javassist 𗘗p AspectWeaver NXǉ܂D

org.seasar.framework.aop.proxy pbP[W
* AspectWeaver NXg悤 AopProxy NXC܂D
* AopProxy NX generateClass() \bhǉ܂D

org.seasar.framework.container pbP[W
* ComponentDef C^tF[X getConcreteClass() \bhǉ܂D̃\bh́CR|[lgCX^X邽߂̃NXԂ܂D

org.seasar.framework.container.assembler pbP[W
* ComponentDef#getConcreteClass() 擾NXgăR|[lgCX^X悤 AbstractConstructorAssemberEAutoConstructorAssemblerEManualConstructorAssember NXC܂D

org.seasar.framework.container.impl pbP[W
* ComponentDefImpl NX getConcreteClass() \bhǉ܂D̃\bh́CR|[lg`ɃAXyNgݒ肳ĂȂ΃R|[lg`ɐݒ肳ꂽNX (getComponentClass() Ɠ) CAXyNgݒ肳Ă΃GnXꂽNXԂ܂D
* SimpleComponentDef NX getConcreteClass() \bhǉ܂D̃\bh́CɃR|[lg`ɐݒ肳ꂽNX (getComponentClass() \bh̖߂l) Ԃ܂D

org.seasar.framework.container.util pbP[W
* AopProxyUtil NXǉ܂D

org.seasar.framework.util pbP[W
* ByteConverterUtil NXǉ܂D
* ClassUtil NX getWrapperClass(Class)EgetWrapperClassIfPrimitive(Class) \bhǉ܂D̃\bh́Cv~eBu^ɑΉ郉bp[^Ԃ܂D
* ClassUtil NX getSimpleClassName(Class) \bhǉ܂D̃\bh́Č^z̏ꍇɁCjava.lang.Object[] ̂悤ȖOԂ܂ (J2SE 5.0  Class#getSimpleName() )D
