S2JMS開発記 - ファーストバージョンコミットしました
すみません、お待たせしております。
S2JMS-Containerの基本動作が確認できたので、とりあえずコミットしました。(S2JCAの使い方間違っていて動作確認にかなり手間取ってしまいました・・・)
細かい動作確認はまだまだですが、まずは動作イメージが誤ってないか、確認してもらいたいです。(>こばやしさん)
以下のパッケージが今のところS2JMS-Containerのソースが入っているパッケージです。
- s2jms-core
テストクラス、というか、動作確認用のクラスはこちら。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内で例外が発生した場合のハンドリング検討や、ペイロードやプロパティのバインドについてのテストクラス作成、等々、やらなきゃいけないことはまだまだありますね。
残作業は別途整理する予定です。