@Override
 public void postWikiPage(
     TaskRepository repository, TracWikiPage newPage, IProgressMonitor monitor)
     throws CoreException {
   monitor.beginTask(Messages.TracWikiHandler_Upload_Wiki_Page, IProgressMonitor.UNKNOWN);
   try {
     String pageName = newPage.getPageInfo().getPageName();
     String content = newPage.getContent();
     Map<String, Object> attributes = new HashMap<String, Object>();
     attributes.put("comment", newPage.getPageInfo().getComment()); // $NON-NLS-1$
     attributes.put("author", newPage.getPageInfo().getAuthor()); // $NON-NLS-1$
     boolean success =
         getTracWikiClient(repository).putWikipage(pageName, content, attributes, monitor);
     if (success) {
       return;
     } else {
       throw new CoreException(
           TracCorePlugin.toStatus(
               new TracException("Failed to upload wiki page. No further information available."),
               repository)); //$NON-NLS-1$
     }
   } catch (TracException e) {
     throw new CoreException(TracCorePlugin.toStatus(e, repository));
   } finally {
     monitor.done();
   }
 }
 @Override
 public TracWikiPage getWikiPage(
     TaskRepository repository, String pageName, IProgressMonitor monitor) throws CoreException {
   monitor.beginTask(Messages.TracWikiHandler_Download_Wiki_Page, IProgressMonitor.UNKNOWN);
   try {
     TracWikiPage page = getTracWikiClient(repository).getWikiPage(pageName, monitor);
     return page;
   } catch (TracException e) {
     throw new CoreException(TracCorePlugin.toStatus(e, repository));
   } finally {
     monitor.done();
   }
 }
 @Override
 public String[] downloadAllPageNames(TaskRepository repository, IProgressMonitor monitor)
     throws CoreException {
   monitor.beginTask(Messages.TracWikiHandler_Download_Wiki_Page_Names, IProgressMonitor.UNKNOWN);
   try {
     String[] names = getTracWikiClient(repository).getAllWikiPageNames(monitor);
     return names;
   } catch (TracException e) {
     throw new CoreException(TracCorePlugin.toStatus(e, repository));
   } finally {
     monitor.done();
   }
 }
 @Override
 public TracWikiPageInfo[] getPageHistory(
     TaskRepository repository, String pageName, IProgressMonitor monitor) throws CoreException {
   monitor.beginTask(
       Messages.TracWikiHandler_Retrieve_Wiki_Page_History, IProgressMonitor.UNKNOWN);
   try {
     TracWikiPageInfo[] versions =
         getTracWikiClient(repository).getWikiPageInfoAllVersions(pageName, monitor);
     return versions;
   } catch (TracException e) {
     throw new CoreException(TracCorePlugin.toStatus(e, repository));
   } finally {
     monitor.done();
   }
 }