[seasar-dev:443] Re: [S2JMS] JMS Message のバインド

Koichi Kobayashi koichik @ improvement.jp
2006年 6月 26日 (月) 05:00:05 JST


小林 (koichik) です.

Date:    Sun, 25 Jun 2006 11:42:43 +0900
From:    KOMORI Yusuke <y-komori @ nifty.ne.jp>
To:      seasar-dev @ ml.seasar.org
Subject: [seasar-dev:442] Re: [S2JMS] JMS Message のバインド

>  ちょっとややこしかったのでまとめてみましたが、
> 以下のような対応にするということですよね。
> 
> ExternalContext  JMSMessage
> ---------------  ----------
> header     --+-   header
>              +-   property
> 
> parameter  ----   payload

です.

>  ペイロードが MapMessage 以外の場合は、ペイロード自体が "payload" とい
> う名前で parameter に格納され、MapMessage の場合は、名前と値のセットがそ
> のまま parameter に格納されるということですよね。

MapMessage の場合も "payload" でペイロード自体 (Map) が
格納されます.

>  問題ないと思います。

そんなわけで (どんなわけで?),修正しました.

> > そうなると JMS Message の Header と Property は request の
> > Header としてアクセスすることになります.
> > JMS Message の Header 属性は JMS というプレフィックスを持つので,
> > Property と同じ名前空間で使っても問題はない気もしますが,
> > JMS で始まるプロパティを持ちたくはないだろうと思うので,従来同様
> > JMS で始まらない名前でもアクセスできるようにしたいところ.

これはやめました.
S2JMS-Core の MessageSender#send() にメッセージヘッダやプロパティを
引数で渡す Map で指定できるようにしたのですが,その場合に JMS で
始まっていないと無条件にプロパティ扱いにしたことと揃えるためです.


> > 必要なら @Binding アノテーションでプレフィックス付きの名前を
> > 指定することができるし.

これは外部コンテキストではできませんでした.
@Binding アノテーションを付けると外部コンテキストではなく
コンテナに登録されているコンポーネントをバインドできないと
その時点で例外となり,外部コンポーネントが参照されません.
これについては S2 の仕様を確認ということで.

>  アノテーションなしでマッピングできるのはずいぶんと楽になりますよね。

@OnMessage アノテーションが残ってますけどね.(^^;

-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"koichik @ improvement.jp"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



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