public boolean run(Collection<SubversionSCM.External> externals, Result changeLog) throws IOException, InterruptedException { boolean changelogFileCreated = false; final SVNClientManager manager = SubversionSCM.createSvnClientManager(); try { SVNLogClient svnlc = manager.getLogClient(); TransformerHandler th = createTransformerHandler(); th.setResult(changeLog); SVNXMLLogHandler logHandler = new SVNXMLLogHandler(th); // work around for http://svnkit.com/tracker/view.php?id=175 th.setDocumentLocator(DUMMY_LOCATOR); logHandler.startDocument(); for (ModuleLocation l : scm.getLocations(build)) { changelogFileCreated |= buildModule(l.getURL(), svnlc, logHandler); } for (SubversionSCM.External ext : externals) { changelogFileCreated |= buildModule(getUrlForPath(build.getWorkspace().child(ext.path)), svnlc, logHandler); } if (changelogFileCreated) { logHandler.endDocument(); } return changelogFileCreated; } finally { manager.dispose(); } }
public State(UnmarshallingContext context) throws SAXException { result = dom.createUnmarshaller(context); handler.setResult(result); // emulate the start of documents try { handler.setDocumentLocator(context.getLocator()); handler.startDocument(); declarePrefixes(context, context.getAllDeclaredPrefixes()); } catch (SAXException e) { context.handleError(e); throw e; } }