S2Strutsでwebパッケージにpackage-info.javaを置くとエラーになる

S2Strutsで、Actionクラスを配置しているwebパッケージにpackage-info.javaを置くと、こんなエラーが出て、アプリケーションが起動しない。

致命的: action: null
org.seasar.framework.exception.EmptyRuntimeException: [ESSR0007]suffixはnullあるいは空であってはいけません
	at org.seasar.framework.convention.impl.NamingConventionImpl.fromSuffixToPackageName(NamingConventionImpl.java:441)
	at org.seasar.framework.convention.impl.NamingConventionImpl.fromClassNameToComponentName(NamingConventionImpl.java:464)
	at org.seasar.struts.lessconfig.config.rule.impl.SubApplicationActionFormNamingRule.toActionFormName(SubApplicationActionFormNamingRule.java:39)
        (略)

package-info.javaは、Java5から導入された仕組みなので対応してなさそう。

NamingConventionImplを拡張して、package-infoっていう名前のクラスは除外するようにしたらうまく動いた。

public class NamingConventionImpl extends
        org.seasar.framework.convention.impl.NamingConventionImpl
{
    @Override
    public String fromClassNameToComponentName( String className )
    {
        if( className.endsWith( "package-info" ) )
        {
            // package-info.javaは無視
            return null;
        }
        return super.fromClassNameToComponentName( className );
    }
}

このクラスのパッケージは、「~.impl」の下に置かないとダメ。
たぶん、クラス名がImplで終わっているので、Seasarは、そのインターフェースを探そうとするが、implパッケージの下に無くて困っている様子。

最後に、convention.diconのクラス指定を、拡張したクラスに変更すればOK。