code: public void backup(final File storageDir) throws BackupException
     {
        LOG.info("Start to backup lucene indexes of the workspace '"+workspaceName+"'");
        try
        {
           final File indexDir = getIndexDirectory();
  
           SecurityHelper.doPrivilegedIOExceptionAction(new PrivilegedExceptionAction<Void>()
           {
              public Void run() throws IOException
              {
                 if (!indexDir.exists())
                 {
                    throw new IOException("Can't backup index. Directory " + indexDir.getCanonicalPath()
                       + " doesn't exists");
                 }
                 else
                 {
                    File destZip = new File(storageDir, getStorageName() + ".zip");
                    DirectoryHelper.compressDirectory(indexDir, destZip);
                 }
  
                 return null;
              }
           });
        }
        catch (RepositoryConfigurationException e)
        {
           throw new BackupException(e);
        }
        catch (IOException e)
        {
           throw new BackupException(e);
        }
     }
docs: {@inheritDoc}}