@Override public WikiDescriptor copy(String fromWikiId, String newWikiId, String newWikiAlias, boolean copyHistory, boolean copyRecycleBin, boolean failOnExist) throws WikiManagerException { WikiDescriptor newWiki = create(newWikiId, newWikiAlias, failOnExist); wikiCopier.copyDocuments(fromWikiId, newWikiId, copyHistory); if (copyRecycleBin) { wikiCopier.copyDeletedDocuments(fromWikiId, newWikiId); } observationManager.notify(new WikiCopiedEvent(fromWikiId, newWikiId), fromWikiId, xcontextProvider.get()); return newWiki; }
@Override protected void runInternal() throws Exception { WikiProvisioningJobRequest request = getRequest(); if (!(request.getProvisioningJobParameter() instanceof String)) { throw new Exception("The provisioning parameter is not a valid String."); } XWikiContext xcontext = xcontextProvider.get(); String wikiId = request.getWikiId(); String templateId = (String) request.getProvisioningJobParameter(); // Set the user actually doing the action in the context xcontext.setUserReference(request.getProvisioningUser()); try { observationManager.notify(new WikiProvisioningEvent(wikiId), wikiId, xcontext); wikiCopier.copyDocuments(templateId, wikiId, false); observationManager.notify(new WikiProvisionedEvent(wikiId), wikiId, xcontext); observationManager.notify(new WikiCopiedEvent(templateId, wikiId), templateId, xcontext); } catch (WikiManagerException e) { logger.error("Failed to provision wiki [{}] from template [{}].", wikiId, templateId, e); observationManager.notify(new WikiProvisioningFailedEvent(wikiId), wikiId, xcontext); } }