package org.prevayler.demos.demo2;
import com.thoughtworks.xstream.XStream;
import org.prevayler.Prevayler;
import org.prevayler.PrevaylerFactory;
import org.prevayler.demos.demo2.business.Account;
import org.prevayler.demos.demo2.business.AccountEntry;
import org.prevayler.demos.demo2.business.Bank;
import org.prevayler.foundation.serialization.XStreamSerializer;
public class MainXStream {
public static void main(String[] args) throws Exception {
out("A snapshot using XStream's XML serialization will be taken every 20 seconds...");
PrevaylerFactory factory = new PrevaylerFactory();
factory.configurePrevalenceDirectory("demo2XStream");
factory.configureSnapshotSerializer(new XStreamSerializer() {
protected XStream createXStream() {
XStream xstream = new XStream();
xstream.alias("bank", Bank.class); //This mapping is optional. It just makes the XML in the snapshot file look prettier.
xstream.alias("account", Account.class);
xstream.alias("accountEntry", AccountEntry.class);
return xstream;
}
});
factory.configurePrevalentSystem(new Bank());
Prevayler prevayler = factory.create();
Main.startSnapshots(prevayler);
}
private static void out(String message) {
System.out.println(message);
}
}