* @throws IOException when something went wrong.
*/
protected RevisionController getRevisionController() throws RevisionControlException, ExecutionException {
if (revisionController == null) {
File publicationDir = publication.getDirectory();
RCEnvironment rcEnvironment;
try {
File servletContext = publication.getServletContext();
rcEnvironment = RCEnvironment.getInstance(servletContext.getCanonicalPath());
} catch (IOException e) {
throw new RevisionControlException(e);
}
File rcmlDirectory = new File(publicationDir, rcEnvironment.getRCMLDirectory());
File backupDirectory = new File(publicationDir, rcEnvironment.getBackupDirectory());
revisionController =
new RevisionController(
rcmlDirectory.getAbsolutePath(),
backupDirectory.getAbsolutePath(),