package hudson.plugins.dependencyanalyzer.persistence; import hudson.model.AbstractBuild; import hudson.plugins.dependencyanalyzer.result.BuildResult; import hudson.util.XStream2; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import com.thoughtworks.xstream.XStream; /** * Utility class to persist analysis result into the build root directory. * */ public class BuildResultSerializer { public static final String RESULT_FILE_NAME = "dependencies-analysis.xml"; private static final XStream stream = new XStream2(); /** * Serialize into an xml file the result into a given directory */ public static void serialize(File directory, BuildResult result) throws IOException { FileWriter writer = new FileWriter(getFile(directory)); stream.toXML(result, writer); writer.flush(); writer.close(); } /** * Deserialize the result for the passed directory * */ public static BuildResult deserialize(File directory) throws IOException { FileReader reader = new FileReader(getFile(directory)); BuildResult result = (BuildResult) stream.fromXML(reader); return result; } private static File getFile(File directory) { File fileName = new File(directory, RESULT_FILE_NAME); return fileName; } }