package org.apache.wicket.persistence.provider; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import org.apache.wicket.util.io.IOUtils; import org.jabox.environment.Environment; import org.jabox.model.DefaultConfiguration; import com.thoughtworks.xstream.XStream; public class ConfigXstreamDao { private static XStream getXStream() { XStream xstream = new XStream(); xstream.alias("config", DefaultConfiguration.class); return xstream; } public static void persist(DefaultConfiguration config) { XStream xstream = getXStream(); String xml = xstream.toXML(config); try { File dir = Environment.getBaseDirFile(); File file = new File(dir, "config.xml"); FileWriter writer = new FileWriter(file); writer.write(xml); writer.close(); } catch (IOException e) { e.printStackTrace(); } } public static DefaultConfiguration getConfig() { XStream xstream = getXStream(); File dir = Environment.getBaseDirFile(); File file = new File(dir, "config.xml"); FileInputStream is = null; try { is = new FileInputStream(file); DefaultConfiguration config = (DefaultConfiguration) xstream.fromXML(is); return config; } catch (FileNotFoundException e) { DefaultConfiguration config = new DefaultConfiguration(); ConfigXstreamDao.persist(config); return config; }finally { if (is != null) IOUtils.closeQuietly(is); } } }