最終的にメッセージをキューに入れるアクティビティの単体テストを書きました。メッセージがそのキューに入れられるとすぐに、メッセージ駆動型Beanが処理を開始します。しかし、単体テストでMDBをテストしたくありません。 OpenEJBにそれらを無視するようにどのように伝えることができますか?MDBを無視するようにOpenEJBに伝えます
私はいくつかのプロパティでのOpenEJBを設定します。
p.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.openejb.client.LocalInitialContextFactory");
p.setProperty("openejb.deployments.classpath.include", ".*");
p.setProperty("openejb.localcopy", "false");
// Messaging
p.put("MyJmsResourceAdapter",
"new://Resource?type=ActiveMQResourceAdapter");
// Do not start the ActiveMQ broker
p.put("MyJmsResourceAdapter.BrokerXmlConfig", "");
p.put("MyJmsConnectionFactory",
"new://Resource?type=javax.jms.ConnectionFactory");
p.put("MyJmsConnectionFactory.ResourceAdapter", "MyJmsResourceAdapter");
p.put("queue/MyQueue",
"new://Resource?type=javax.jms.Queue");
私はopenejb.deployments.classpath.exclude
を設定する必要があります知っているが、私は右の値を把握することはできません。私のクラスの名前は例えば
p.setProperty("openejb.deployments.classpath.exclude", "org.example.mdb.*");
をorg.example.mdb.MyMDB
。
このプロパティは、クラスパス内の個々のクラスをフィルタリングせず、実際のクラスパス自体をフィルタリングします。私。 jarファイルとディレクトリは、展開される「モジュール」になります。個々のクラスにinclude/excludeを行うには、同様の機能が必要です。信じられないほど役に立つだろう。 –