Search in sources :

Example 6 with ProgressNullMonitorListener

use of org.pentaho.di.core.ProgressNullMonitorListener in project pentaho-kettle by pentaho.

the class RepositoryExporter method exportAllObjectsInternal.

private synchronized List<ExportFeedback> exportAllObjectsInternal(ProgressMonitorListener monitorOuter, String xmlFilename, RepositoryDirectoryInterface root, String exportType, boolean feedback) throws KettleException {
    this.feedbackList.clear();
    // deal with monitor
    ProgressMonitorDecorator monitor;
    if (monitorOuter == null) {
        monitor = new ProgressMonitorDecorator(new ProgressNullMonitorListener());
    } else {
        monitor = new ProgressMonitorDecorator(monitorOuter);
    }
    monitor.beginTask(BaseMessages.getString(PKG, "Repository.Exporter.Monitor.BeginTask"), 104);
    FileObject output = KettleVFS.getFileObject(xmlFilename);
    ExportFeedback feed = new ExportFeedback();
    feed.setItemName(BaseMessages.getString(PKG, "Repository.Exporter.Feedback.CreateExportFile", xmlFilename));
    feed.setSimpleString(true);
    this.feedbackList.add(feed);
    ExportWriter writer = null;
    try {
        // prepare export
        writer = new ExportWriter(output);
        monitor.worked(4);
        monitor.subTask(BaseMessages.getString(PKG, "Repository.Exporter.Monitor.ConnectToRepository"));
        root = ((null == root) ? repository.loadRepositoryDirectoryTree() : root);
        ExportType type = ExportType.valueOf(exportType.toUpperCase());
        switch(type) {
            case ALL:
                {
                    exportTransformations(monitor, root, writer, feedback);
                    monitor.worked(50);
                    exportJobs(monitor, root, writer, feedback);
                    monitor.worked(50);
                    break;
                }
            case TRANS:
                {
                    exportTransformations(monitor, root, writer, feedback);
                    monitor.worked(100);
                    break;
                }
            case JOBS:
                {
                    exportJobs(monitor, root, writer, feedback);
                    monitor.worked(100);
                    break;
                }
            default:
                {
                    // this will never happens
                    throw new KettleException("Unsupported export type: " + type);
                }
        }
        monitor.subTask(BaseMessages.getString(PKG, "Repository.Exporter.Monitor.SavingResultFile"));
    } finally {
        try {
            if (writer != null) {
                writer.close();
            }
        } catch (Exception e) {
            log.logDebug(BaseMessages.getString(PKG, "Repository.Exporter.Exception.CloseExportFile", xmlFilename));
        }
    }
    if (monitor != null) {
        monitor.done();
    }
    return this.feedbackList;
}
Also used : KettleException(org.pentaho.di.core.exception.KettleException) FileObject(org.apache.commons.vfs2.FileObject) ProgressNullMonitorListener(org.pentaho.di.core.ProgressNullMonitorListener) KettleException(org.pentaho.di.core.exception.KettleException) FileSystemException(org.apache.commons.vfs2.FileSystemException) IOException(java.io.IOException) UnsupportedEncodingException(java.io.UnsupportedEncodingException)

Aggregations

ProgressNullMonitorListener (org.pentaho.di.core.ProgressNullMonitorListener)6 RowMetaInterface (org.pentaho.di.core.row.RowMetaInterface)5 KettleStepException (org.pentaho.di.core.exception.KettleStepException)4 BaseStepMeta (org.pentaho.di.trans.step.BaseStepMeta)3 StepMeta (org.pentaho.di.trans.step.StepMeta)3 MetaverseAnalyzerException (org.pentaho.metaverse.api.MetaverseAnalyzerException)3 HashMap (java.util.HashMap)2 IOException (java.io.IOException)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 FileObject (org.apache.commons.vfs2.FileObject)1 FileSystemException (org.apache.commons.vfs2.FileSystemException)1 KettleException (org.pentaho.di.core.exception.KettleException)1