S2JMS開発記 - ファーストバージョンコミットしました

すみません、お待たせしております。

S2JMS-Containerの基本動作が確認できたので、とりあえずコミットしました。(S2JCAの使い方間違っていて動作確認にかなり手間取ってしまいました・・・)

細かい動作確認はまだまだですが、まずは動作イメージが誤ってないか、確認してもらいたいです。(>こばやしさん)

以下のパッケージが今のところS2JMS-Containerのソースが入っているパッケージです。

テストクラス、というか、動作確認用のクラスはこちら。ActiveMQ を動作させた状態で動かします。(S2JCAまわりのDicon定義についてはS2JCAのサンプルから引っ張ってきたので、おかしなところがないかちょっと不安。。。)

中を見てもらえればわかると思いますが、S2JMS の MessageSender を利用して TextMessage を1個送信しています。

送信したMessage は JmsContainerImpl が受信し、JmsContainerImpl にセットされたPOJO(ここではJmsContainerTestAction)に対してペイロードをバインド後、@MessageHandler でアノテートされたメソッドをコールしているという感じです。

S2JMS-Container として必要なDicon定義はこれだけ。

<component name="testAction" class="org.seasar.jms.core.container.JmsContainerTestAction" />
<component class="org.seasar.jms.core.container.impl.JmsContainerImpl">
  <property name="messageHandler">testAction</property>
</component>

それにしても、非同期処理がからむとJUnitを使ったテストってやりにくいですねぇ・・・。

まだまだ叩き台レベルなので、POJO内で例外が発生した場合のハンドリング検討や、ペイロードやプロパティのバインドについてのテストクラス作成、等々、やらなきゃいけないことはまだまだありますね。

残作業は別途整理する予定です。