package cz.nkp.differ.cmdline;
import cz.nkp.differ.compare.io.ImageProcessor;
import cz.nkp.differ.compare.io.ImageProcessorResult;
import cz.nkp.differ.compare.io.SerializableImageProcessorResult;
import cz.nkp.differ.compare.io.SerializableImageProcessorResults;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.xml.transform.stream.StreamResult;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
public class Main {
public static void main(String[] args) throws Exception {
ApplicationContext context =
new ClassPathXmlApplicationContext(new String[]{"appCtx-differ-cmdline.xml"});
ImageProcessor processor = (ImageProcessor) context.getBean("imageProcessor");
Jaxb2Marshaller marshaller = (Jaxb2Marshaller) context.getBean("jaxb2Marshaller");
File file1 = new File(args[0]);
File file2 = new File(args[1]);
ImageProcessorResult[] results = processor.processImages(file1, file2);
List<SerializableImageProcessorResult> resultsForSerialization = new ArrayList<SerializableImageProcessorResult>();
for (ImageProcessorResult result : results) {
resultsForSerialization.add(SerializableImageProcessorResult.create(result, false));
}
SerializableImageProcessorResults serializableResults = new SerializableImageProcessorResults(resultsForSerialization);
StreamResult streamResult = new StreamResult(System.out);
marshaller.marshal(serializableResults, streamResult);
}
}