DBFlute: 区分値定義を別リソースから取得

@about 0.8.2
> DBFLUTE-337 {Java/C#}: 
> 区分値定義を別リソースから取得できるようにする

https://www.seasar.org/issues/browse/DBFLUTE-337
でかなり細かく書いていますが、ここでも書きます。

とにかく区分値を
http://dbflute.sandbox.seasar.org/ja/view/exampledb/EARoot/EA1.html
のように、ERDのノートに区分値を定義して下さい。
そして、ERDツールでどうにかしてこれらのノートの文字列が
含まれたテキストファイルに出力して下さい。形式は問いません。
(改行情報が残っている必要があります)

EAであれば、簡単にXMLに出力することが可能なので、
実際にこの機能を利用したdbflute-mysql-exampleでは
そのようにしています。
https://www.seasar.org/svn/sandbox/dbflute/trunk/dbflute-mysql-example

で、そのテキストファイルを「classificationResource.dfprop」
という名前でdfpropに配置して下さい。
そうするとDBFluteが勝手にそのファイルをパースして、
区分値を認識します。これでおしまいです。
classificationDefinition.dfpropの完全代替、そして、
classificationDeployementMap.dfpropの一部代替となります。
dbflute-mysql-exampleをぜひ見てみて下さい。
明示的な定義をしていないのにEntityやCBで区分値が利用できています。

今までは、DBFluteに認識させるためにERDでも定義して
classificationDefinition.dfpropでも定義して、と管理が冗長でした。
しかしこの機能で、ERD上で定義した区分値が「定義としての大元」と
することができます。定義がDBFluteへ直結します。
たんなるテキストファイルの強引パースなので、別に元がERDで
なければならないというわけではありません。要は指定された
フォーマットの文字列を含んだテキストファイルであればよいので、
別のドキュメントから生成しても良いかと思います。
自分はDB設計時に必ずERDのノート上に区分値を定義していて、
仕様策定者やプログラマやDB設計者などがERD上でやり取り、
(仕様の意識合わせなど)がしやすいようにとそうしています。
ERDは二人以上の人が意識合わせをするのに本当に良いモデルです。
複数のドキュメントを見ながら話すのはあまり効率よくありません。
(現場からはかなり好評です)
ということでこの機能の紹介としてERDドリブンを利用しています。
皆さんのプロジェクトに合った形で利用して頂ければと思います。