アノテーションの書き換え


Issue178に対処した。
Issue178はLucyでいうところのコンポジットアノテーションのバグと思われます。
まだ完全に同様の現象が再現できていないので、もしかしたら昨日の段階であれば
コンストラクタインジェクションの途中のjarだった可能性もあります。
id:tan_go238さん、このエントリ、最後のjarでためしていただけないでしょうかm(_ _)m?


Lucyではjavassistによってアノテーションを置き換えることが出来ます。
この機能は例えば@Parent、@Childというアノテーションがあった場合に擬似的に
@Childを@Parentの子供とみなして値を引き渡したい場合に使います。
これによって既存アノテーションの値を上書きすることができます。
複数のアノテーションを自分好みのアノテーションにまとめる、そんな使い方です。


まだエクスペリメンタルな印象の強い実装ですが、今回の修正で徐々にまともになってきました。
パフォーマンス観点では今の実装はまだまだでしょう。そのうちテコ入れが必要になります。
アノテーションで指定できる値の範囲のうち、String、Class、配列、アノテーション、プリミティブな値、Enum
カバーしました。
(あとは使い勝手がわるいので、その改善は必要だと思われる。)


制約としては、lucy-aopjavassistのjarが必要なことです。
次のバージョンのLucyには入ります。


というわけで、今日のSNAPSHOTリリース。
commonsとLucy、そして、Lucy-ext(といってもTx用のインタセプタだけ。)をあげておきます。


commons 0.5.1-SNAPSHOT

lucy-core 0.5.1-SNAPSHOT


lucy-aop 0.5.1-SNAPSHOT


lucy-tx-interceptor

他にもlucy-envとかlucy-autoregisterとかリリースしてるのあるけど、また後日説明ということで。