てきとうなメモ

本の感想とか技術メモとか

PropertiesConfiguration

commons-configurationのPropertiesConfigurationとjava.util.Propertiesの仕様が異なるためにはまってしまった。

値が空白(\u0020)を含む場合、バックスラッシュでエスケープする必要があるのだが、PropertiesConfigurationでは行末の空白はバックスラッシュでエスケープできない。なぜなら、設定ファイルの行を単純にtrimした後にparseしているので、

key = value\<space>

としても最後の空白が消されて複数行に渡るプロパティとみなされてしまう。

Propertiesはそんなことはなく、上記の設定ファイルで値の最後が空白になる

PropertiesConfigurationだと以下のように\uXXXX形式にしなければならない。めんどうだな

key = value\u0020