public List<Modification> parse(String svnLogOutput, String path, SAXBuilder builder) {
        try {
            Document document = builder.build(new StringReader(svnLogOutput));
            return parseDOMTree(document, path);
        } catch (Exception e) {
            throw bomb("Unable to parse svn log output: " + svnLogOutput, e);
        }
    }
@Test
    public void shouldParseBJCruiseLogCorrectly() {
        String firstChangeLog = """
                <?xml version="1.0"?>
                <log>
                <logentry
                   revision="11238">
                <author>yxchu</author>
                <date>2008-10-21T14:00:16.598195Z</date>
                <paths>
                <path
                   action="M">/trunk/test/unit/card_selection_test.rb</path>
                <path
                   action="M">/trunk/test/functional/cards_controller_quick_add_test.rb</path>
                <path
                   action="M">/trunk/app/controllers/cards_controller.rb</path>
                </paths>
                <msg>#2761, fix random test failure and add quick add card type to session</msg>
                </logentry>
                </log>""";

        String secondChangeLog = """
                <?xml version="1.0"?>
                <log>
                <logentry
                   revision="11239">
                <author>yxchu</author>
                <date>2008-10-21T14:00:36.209014Z</date>
                <paths>
                <path
                   action="M">/trunk/test/unit/card_selection_test.rb</path>
                </paths>
                <msg>still fix test</msg>
                </logentry>
                <logentry
                   revision="11240">
                <author>yxchu</author>
                <date>2008-10-21T14:00:47.614448Z</date>
                <paths>
                <path
                   action="M">/trunk/test/unit/card_selection_test.rb</path>
                </paths>
                <msg>fix test remove messaging helper</msg>
                </logentry>
                </log>""";

        SvnLogXmlParser parser = new SvnLogXmlParser();
        List<Modification> mods = parser.parse(firstChangeLog, ".", new SAXBuilder());
        assertThat(mods.get(0).getUserName()).isEqualTo("yxchu");

        List<Modification> mods2 = parser.parse(secondChangeLog, ".", new SAXBuilder());
        assertThat(mods2.size()).isEqualTo(2);
    }