@Override
  protected void startProcessHandler(
      DBRProgressMonitor monitor,
      final MySQLDatabaseExportInfo arg,
      ProcessBuilder processBuilder,
      Process process) {
    super.startProcessHandler(monitor, arg, processBuilder, process);

    String outFileName =
        GeneralUtils.replaceVariables(
            outputFilePattern,
            new GeneralUtils.IVariableResolver() {
              @Override
              public String get(String name) {
                switch (name) {
                  case VARIABLE_DATABASE:
                    return arg.getDatabase().getName();
                  case VARIABLE_HOST:
                    return arg.getDatabase()
                        .getDataSource()
                        .getContainer()
                        .getConnectionConfiguration()
                        .getHostName();
                  case VARIABLE_TABLE:
                    final Iterator<MySQLTableBase> iterator =
                        arg.getTables() == null ? null : arg.getTables().iterator();
                    if (iterator != null && iterator.hasNext()) {
                      return iterator.next().getName();
                    } else {
                      return "null";
                    }
                  case VARIABLE_TIMESTAMP:
                    return RuntimeUtils.getCurrentTimeStamp();
                  default:
                    System.getProperty(name);
                }
                return null;
              }
            });

    File outFile = new File(outputFolder, outFileName);
    boolean isFiltering = removeDefiner;
    Thread job =
        isFiltering
            ? new DumpFilterJob(monitor, process.getInputStream(), outFile)
            : new DumpCopierJob(
                monitor,
                MySQLMessages.tools_db_export_wizard_monitor_export_db,
                process.getInputStream(),
                outFile);
    job.start();
  }
 @Override
 public void init(IWorkbench workbench, IStructuredSelection selection) {
   super.init(workbench, selection);
   objectsPage = new MySQLExportWizardPageObjects(this);
   settingsPage = new MySQLExportWizardPageSettings(this);
 }
 @Override
 public void addPages() {
   addPage(objectsPage);
   addPage(settingsPage);
   super.addPages();
 }