[Seasar-user:6119] Re: S2RMIでHotDeployが出来ない

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 2月 12日 (月) 00:00:20 JST


小林 (koichik) です.

Date:    Sun, 11 Feb 2007 19:13:37 +0900
From:    "Masanobu Shimura" <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:6117] Re: S2RMIでHotDeployが出来ない

> CoolDeployするものは、HotDeployするものと勘違いしていました。

COOL と HOT で同じ動きになるべきなのですが,現状では
そうなっていません.

COOL deploy の場合はクラス名からコンポーネント名を
求めて自動登録するのですが,HOT deploy の場合は逆に
コンポーネント名からクラスの FQN を求めることが多く,
パッケージ名が規約に従っていないとクラスを見つけることが
できません.

例えば COOL deploy では

GolfTrxServiceImpl -> golfTrxService
VdrTrxLogic        -> vdrTrxLogic

のようにクラス名からコンポーネント名を求めますが,
HOT deploy では逆に,コンポーネント名のサフィックス
(Service や Logic) を小文字化してルートパッケージに
加えることでクラス名を求める (場合が多い) ため,

golfTrxService -> <org.seasar.golf>.[service].impl.GolfTrxServiceImpl
vdrTrxLogic    -> <org.seasar.golf.uexample>.[logic].VdrTrxLogic

などとなります.
<...> がルートパッケージ名で,[...] がコンポーネント名の
サフィックスです.

現状では,上記のように HOT では登録されないクラスが
COOL で登録される他,HOT はコンポーネント名から最初に
見つけたコンポーネントのみが登録されるのに対し,COOL では
見つかったクラスが全て登録されるため,TooMany〜 に
なりやすかったりします.

このような違いがあるのは問題なので,なんとかしたいと
思ってます.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




Seasar-user メーリングリストの案内