Lucy 0.5.2-gaをリリースしました.
LucyとLucy拡張機能をリリースしました.
今回のリリースの目玉は、設定ファイルなどに書いたコンポーネント定義をモックとしてテスト時に置き換える機能です.
設定ファイルにコンポーネント定義書いちゃうと、なかなか置き換えしにくいのでこの機能をつけました.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE lucy-config PUBLIC "-//LUCY//DTD LUCY//EN" "http://www.lucy.org/dtd/lucy-config.dtd"> <lucy-config> <component class="lucy.examples.example9.impl.MessageSenderImpl" instance="singleton"> <inject method="inject">header</inject> </component> <component name="header" class="lucy.examples.example9.impl.HeaderImpl" instance="singleton" /> </lucy-config>
で、このheaderという名前のついたコンポーネントを置き換えたいとします.
こんな感じで置き換えます.
ひとつ制約があって、コンポーネントの取得が始まってしまうと、もう置き換え不可能なので
それ以前に置き換える感じ.TestCaseのsetupメソッドとかが、置き換えするポイントとしては適切でしょう.
public class Main { public static void main(String[] args) { Lucy lucy = LucyBootstrap.init("lucy/examples/example9/example9.xml"); try { /** * Before get component, you can swap component for testing purpose. */ lucy.pretend("header", PretendHeader.class); /** * Testing component for Header is using. */ MessageSender sender = lucy.get(MessageSender.class); sender.send("hogehoge"); } finally { lucy.destroy(); } } }
まだブラッシュアップは必要ですが、こんな感じで設定ファイルの一部だけコンポーネントを置き換えることが出来ます.
サンプルは下記ので試せます
以下リリース詳細。
Lucy 0.5.2-ga
Lucy-ext 0.5.2-ga
新機能
- T2で作ったRequest/Session/Applicationのスコープ拡張を移植する
バグフィックス
- Scope機能でキャストで失敗する
maven2
以下からどうぞ.
http://maven.t2framework.org/maven2/org/t2framework/ioc/lucy-autoregister/0.5.2-ga/
http://maven.t2framework.org/maven2/org/t2framework/ioc/lucy-common-interceptor/0.5.2-ga/
http://maven.t2framework.org/maven2/org/t2framework/ioc/lucy-env/0.5.2-ga/
http://maven.t2framework.org/maven2/org/t2framework/ioc/lucy-scopes/0.5.2-ga/
http://maven.t2framework.org/maven2/org/t2framework/ioc/lucy-tx-interceptor/0.5.2-ga/
(追記)
よねさんがLucy+SwingとAppletのサンプルを作ってくれましたが、これはT2のサンプルに入れちゃいました.