import java.util.Map.Entry;
import java.util.concurrent.TimeUnit;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+
import net.pterodactylus.reactor.Reaction;
import net.pterodactylus.reactor.engine.Engine;
import net.pterodactylus.reactor.loader.Chain.Parameter;
import net.pterodactylus.reactor.loader.Chain.Part;
import org.apache.log4j.Logger;
-import org.simpleframework.xml.Serializer;
-import org.simpleframework.xml.core.Persister;
import com.google.common.base.Predicate;
import com.google.common.collect.Maps;
/* now parse all XML files. */
Map<String, Chain> chains = new HashMap<String, Chain>();
for (File xmlFile : xmlFiles) {
- Serializer serializer = new Persister();
- logger.debug(String.format("Reading %s...", xmlFile.getPath()));
- Chain chain = serializer.read(Chain.class, xmlFile);
+
+ /* parse XML file. */
+ Chain chain = parseXmlFile(xmlFile);
/* dump chain */
logger.debug(String.format(" Enabled: %s", chain.enabled()));
}
}
+ //
+ // STATIC METHODS
+ //
+
+ /**
+ * Parses the given XML file into a {@link Chain}.
+ *
+ * @param xmlFile
+ * The XML file to parse
+ * @return The parsed chain
+ */
+ private static Chain parseXmlFile(File xmlFile) {
+ try {
+ JAXBContext context = JAXBContext.newInstance(Chain.class);
+ Unmarshaller unmarshaller = context.createUnmarshaller();
+ logger.debug(String.format("Reading %s...", xmlFile.getPath()));
+ return (Chain) unmarshaller.unmarshal(xmlFile);
+ } catch (JAXBException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
}