private void unimportPagesFromWiki(
      Collection<XarEntry> pages, String wiki, PackageConfiguration configuration) {
    WikiReference wikiReference = new WikiReference(wiki);

    XWikiContext xcontext = getXWikiContext();
    for (XarEntry xarEntry : pages) {
      DocumentReference documentReference =
          this.resolver.resolve(xarEntry.getDocumentReference(), wikiReference);
      try {
        XWikiDocument document =
            getXWikiContext().getWiki().getDocument(documentReference, xcontext);

        if (!document.isNew()) {
          String language = xarEntry.getLanguage();
          if (language != null) {
            document = document.getTranslatedDocument(language, xcontext);
            getXWikiContext().getWiki().deleteDocument(document, xcontext);
          } else {
            getXWikiContext().getWiki().deleteAllDocuments(document, xcontext);
          }
        }
      } catch (XWikiException e) {
        this.logger.error("Failed to delete document [" + documentReference + "]", e);
      }
    }
  }
  @Override
  public List<XarEntry> getEntries(File xarFile) throws IOException {
    List<XarEntry> documents = null;

    FileInputStream fis = new FileInputStream(xarFile);
    ZipArchiveInputStream zis = new ZipArchiveInputStream(fis);

    try {
      for (ZipArchiveEntry zipEntry = zis.getNextZipEntry();
          zipEntry != null;
          zipEntry = zis.getNextZipEntry()) {
        if (!zipEntry.isDirectory()) {
          try {
            XarPageLimitedHandler documentHandler =
                new XarPageLimitedHandler(this.componentManager);

            parseDocument(zis, documentHandler);

            if (documents == null) {
              documents = new ArrayList<XarEntry>();
            }

            XarEntry xarEntry = documentHandler.getXarEntry();
            xarEntry.setEntryName(zipEntry.getName());

            documents.add(xarEntry);
          } catch (NotADocumentException e) {
            // Impossible to know that before parsing
          } catch (Exception e) {
            this.logger.error("Failed to parse document [" + zipEntry.getName() + "]", e);
          }
        }
      }
    } finally {
      zis.close();
    }

    return documents != null ? documents : Collections.<XarEntry>emptyList();
  }