PageRenderTime 37ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/java/CmdLineBlamer.java

https://bitbucket.org/jwalton/confluence-blame
Java | 98 lines | 74 code | 21 blank | 3 comment | 7 complexity | 0bd9b7dc6ffa73fd5d142c51b01c942e MD5 | raw file
  1. import java.io.File;
  2. import java.io.FileWriter;
  3. import java.io.IOException;
  4. import java.io.Writer;
  5. import java.util.ArrayList;
  6. import java.util.Arrays;
  7. import java.util.Collections;
  8. import java.util.List;
  9. import javax.xml.parsers.ParserConfigurationException;
  10. import com.atlassian.labs.fedex19.blame.Blame;
  11. import com.atlassian.labs.fedex19.blame.Blamer;
  12. import com.atlassian.labs.fedex19.blame.OutputPage;
  13. import com.atlassian.labs.fedex19.blame.Revision;
  14. import com.atlassian.labs.fedex19.blame.SFThing;
  15. import com.atlassian.labs.fedex19.blame.StorageFormatTokens;
  16. import com.megginson.sax.XMLWriter;
  17. import org.apache.commons.io.FileUtils;
  18. import org.xml.sax.SAXException;
  19. public class CmdLineBlamer
  20. {
  21. public static void main(String[] args) throws Exception
  22. {
  23. List<File> files;
  24. if (args.length == 0)
  25. {
  26. files = Arrays.asList(new File("src/test/sample/first").listFiles());
  27. Collections.sort(files);
  28. // files = files.subList(1, 3);
  29. }
  30. else
  31. {
  32. files = new ArrayList<File>();
  33. for (String s : args)
  34. {
  35. files.add(new File(s));
  36. }
  37. }
  38. // blameAsListsOfLines(files);
  39. new CmdLineBlamer().blameAsSfThings(files);
  40. }
  41. static void blameAsListsOfLines(Iterable<File> files) throws IOException
  42. {
  43. List<Revision<String>> revisions = new ArrayList<Revision<String>>();
  44. for (File f : files)
  45. {
  46. revisions.add(new Revision<String>(FileUtils.readLines(f)));
  47. }
  48. for (Blame<String> b : Blamer.blame(revisions))
  49. {
  50. System.out.println(b.getRevision() + ": " + b.getContent());
  51. }
  52. }
  53. void blameAsSfThings(Iterable<File> files) throws IOException, ParserConfigurationException, SAXException
  54. {
  55. List<Revision<SFThing>> revisions = new ArrayList<Revision<SFThing>>();
  56. for (File f : files)
  57. {
  58. StorageFormatTokens sft = StorageFormatTokens.byWordFragments();
  59. revisions.add(new Revision<SFThing>(
  60. sft.parse(FileUtils.readFileToString(f))));
  61. }
  62. for (Blame<SFThing> b : Blamer.blame(revisions))
  63. {
  64. System.out.println(b.getRevision() + ": " + b.getContent());
  65. }
  66. Writer w;
  67. w = new FileWriter("/tmp/a.xhtml");
  68. // w = new OutputStreamWriter(System.out);
  69. XMLWriter xw = new XMLWriter(w);
  70. OutputPage op = new OutputPage(xw);
  71. op.startHtmlBody();
  72. op.writeBlamed(Blamer.blame(revisions));
  73. op.writeRevisionKey(xw);
  74. op.endHtmlBody();
  75. w.close();
  76. }
  77. }