ひがやすを技術ブログ

電通国際情報サービスのプログラマ

AutoNaming

Seasar2.4からAutoNaming(コンポーネント名の命名規則)が次のようになっています。
rootPackageName:xxx
middlePackageName:web, logic, dao, logic, dto
implementationPackageName=impl
implementaionSuffixName=Impl
middlePackageNameの後ろにimplementationPackageNameで指定したもの以外がきた場合、パッケージ名_がコンポーネントのPrefixにつきます。
クラス名からimplementaionSuffixNameは取り除かれ、コンポーネント名の先頭は小文字になります。
このルールに従うとクラス名とコンポーネント名の対応は次のようになります。
xxx.web.add.AddAction:add_addAction
xxx.logic.impl.AbcLogic:abcLogic
xxx.dao.EmployeeDao:employeeDao
HOT deployでもこの命名規約を使って動いています。今後、HOT deployに対応したプロダクトがいろいろ出てくることを考えると、この命名規則は、一元管理する必要があります。いろんなフレームワークに設定を分散させてはいけません。
そのため、autonaming.diconを作って、そこに設定を記述し、命名規約を守る必要のあるフレームワークは、このファイルをincludeして使うようにしたいと思います。
今あるDefaultAutoNamingもこのルールにあったシンプルなものにします。
また、今のAutoNamingのAPIは、String defineName(String packageName, String shortClassName);という実装者に都合のいいインターフェースになってしまっているので、このさい、使う側にとって使いやすいように、String defineName(String className)に変更し、すっきりさせたいと思います。
よろしくお願いします。