@Override
 public void execute() throws Exception {
   try {
     BackupWriter backupWriter = getBackupWriter();
     backupWriter.write(getPath());
   } catch (MigratorException exception) {
     throw exception;
   } catch (Exception exception) {
     throw new DumpException(exception);
   }
 }
  @Override
  protected void init() throws Exception {
    super.init();

    BackupWriter backupWriter = new BackupWriter();
    for (BackupWriterListener listener : getListeners()) {
      backupWriter.addListener(listener);
    }
    backupWriter.setFormat(getFormat());
    backupWriter.setFormatAttributes(getFormatAttributes());
    backupWriter.setFormatFactory(createFormatFactory());
    backupWriter.setInspectionManager(createInspectionManager());
    backupWriter.setMetaDataSpec(getMetaDataSpec());
    backupWriter.setMigrationModes(getMigrationModes());
    backupWriter.setQueryLimit(getQueryLimit());
    backupWriter.setQuerySpecs(getQuerySpecs());
    backupWriter.setSourceSpec(getSourceSpec());
    backupWriter.setSourceSessionFactory(createSourceSessionFactory());
    backupWriter.setTimeZone(getTimeZone());
    backupWriter.setThreads(getThreads() != null ? getThreads() : THREADS);
    backupWriter.setValueFormatRegistryResolver(createValueFormatRegistryResolver());
    setBackupWriter(backupWriter);
  }