[Seasar-user:21445] アスペクト適用の完全クラス名一致での指定方法について

Hiroshi Yamamoto [E-MAIL ADDRESS DELETED]
2012年 9月 2日 (日) 23:11:40 JST


山元と申します。
いつもお世話になっております。

アスペクトの適用対象外のクラスを指定したのですが、
意図したとおりにならなかったため、ご教授いただきたく願います。

<initMethod name="addIgnoreClassPattern">
	<arg>"hoge.action"</arg>
	<arg>"IndexAction"</arg>
</initMethod>

上記がdiconファイルでの指定を抜粋したものですが、
この指定で、意図しないクラスまで対象外となる場合がありました。

調べたところ、パッケージ名違いで、同じ名前のクラスの場合に発生するようでした。

hoge.action.IndexAction
hoge.action.fuga.IndexAction

どういった比較になっているのかseasarのソースを確認させていただいたところ

org.seasar.framework.container.autoregister.ClassPattern#isAppliedPackageName

において、パッケージ名の比較が startsWith で行われているため、
こういった動作になるということが分かったのですが、
完全クラス名一致での指定の方法が分かりませんでした。

こういった場合はどのように指定を行えばいいでしょうか。

以上、よろしくおねがいいたします。


Seasar-user メーリングリストの案内