Commons Configuration XMLConfigurationの値をMapにうつす方法 2008/01/09

Commons Configuration - Java Configuration API

CommonsのConfigurationって好きなライブラリのひとつです。
アプリケーションのコンフィギュレーションで使わせてもらっています。

XMLConfigurationで設定した値をMapにして使いまわしたかったので調べてみました。

XMLConfigurationの値をMapにうつす方法

MapConfigurationを作成して、ConfigurationUtilsを使ってcopyします。
思ったより簡単にできる!!

サンプルコード

import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.ConfigurationUtils;
import org.apache.commons.configuration.MapConfiguration;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.tree.DefaultExpressionEngine;

public class Sample {

public static void main(String[] args) throws ConfigurationException {
XMLConfiguration xmlConfiguration = new XMLConfiguration();

// {
// DefaultExpressionEngine defaultExpressionEngine = new DefaultExpressionEngine();
// xmlConfiguration.setExpressionEngine(defaultExpressionEngine);
// }
xmlConfiguration.setProperty("aaa.bbb", "ok");
StringWriter writer = new StringWriter();
xmlConfiguration.save(writer);
System.out.println(xmlConfiguration.getString("aaa.bbb"));
Map map = new HashMap();
MapConfiguration mapConfiguration = new MapConfiguration(map);
ConfigurationUtils.copy(xmlConfiguration, mapConfiguration);
System.out.println(writer);
System.out.println(map);

}

}


結果

ok
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration>
<aaa>
<bbb>ok</bbb>
</aaa>
</configuration>

{aaa.bbb=ok}

:

匿名

コメント書けるかテスト

ugo.nakawaka

コメントテスト2