Javaで型安全にプロパティファイルにアクセスするには。その3

ponto (https://github.com/mitoma/ponto)の機能をちょっとずつ増やしています。
githubで一人開発をしていると圧倒的な自作自演感があるのですが、これはこれで結構楽しいです。

最近追加した機能は以下2点

プロパティファイルって、環境毎に切り替えたい値って結構ありますよね。DB接続文字列だったりホスト名だったり。
Ruby on Rails ではそういう時、環境変数RAILS_ENV=production みたいなのを与えてやって、読み込む設定ファイルを切り替えるっていうことをしていて、それが便利なので Ponto にも組み込んでみました。デフォルトでは PONTO_ENV という環境変数によって、プロパティファイルを読み込んで、そのキーに書かれた値を上書きします。

例えば ponto.properties というプロパティファイルを読み込むクラスを生成して PONTO_ENV=production で実行してやると ponto_production.properties というプロパティファイルも読み込み ponto.properties よりも優先してするようになります。

先日追加した、プロパティファイルの値をint, longなどに型変換して取得できる機能の強化です。
今まではプロパティファイルのなかで value._int=hogehoge と記述していたら盛大に実行時エラーになっていたのですが、これじゃやっぱり型安全性に乏しい感あるよなということでコンパイル時に検査をするようにしました。プロパティファイルをクラス生成後に書き換えたり、先の環境変数で読み込んだプロパティファイルで上書きする機能を使うと結局実行時にエラーでるよなという話もあるので、このあたりはどのへんまで検査するかのバランスが難しいです。


あと、コンパイルエラーが出た時mavenだとコンソールにエラーが出ない件が最悪感漂います。うーん。
そもそもいつリリースするか、バージョン 0.0.1 でリリースするか 0.1.0 か 1.0.0 かで悶々しています。

  • その他
    • ウクライナ情勢、調べれば調べるほどロシアあんまり悪くないように思えるし欧米が邪悪な感じする。
    • 高橋選手、怪我で世界選手権欠場。このまま引退となってほしくないですね。
    • 佐村河内先生、ちょっとアウト感漂う会見でしたね。今回、一番割り食ったの高橋選手なのに一言もないのはひどいですね。