Project

General

Profile

« Previous | Next » 

Revision 3087df1b

Added by Cherian Mathew over 8 years ago

#5297 Refactor ProgressMonitorController, Add Remoting Progress monitor

#5297 Add progress monitor service, Add test services

#5297 Add monit import method

#5297 Update no. of work units

#5297 Add new thread class for remoting monitors

#5297 Add owner field to monitor thread and user checks in service

#5297 Add javadoc

View differences:

cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/service/IOServiceImpl.java
14 14
import java.io.IOException;
15 15
import java.nio.file.Files;
16 16
import java.nio.file.Path;
17
import java.util.UUID;
17 18

  
18 19
import org.springframework.beans.factory.annotation.Autowired;
19 20
import org.springframework.beans.factory.annotation.Qualifier;
20 21
import org.springframework.stereotype.Service;
21 22
import org.springframework.transaction.annotation.Transactional;
22 23

  
24
import eu.etaxonomy.cdm.api.service.ProgressMonitorManager;
25
import eu.etaxonomy.cdm.api.service.util.RemotingProgressMonitorThread;
26
import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
27
import eu.etaxonomy.cdm.common.monitor.RemotingProgressMonitor;
23 28
import eu.etaxonomy.cdm.io.common.CdmApplicationAwareDefaultExport;
24 29
import eu.etaxonomy.cdm.io.common.CdmApplicationAwareDefaultImport;
25 30
import eu.etaxonomy.cdm.io.common.ExportResult;
......
46 51
    @Qualifier("defaultImport")
47 52
    CdmApplicationAwareDefaultImport cdmImport;
48 53

  
54
    @Autowired
55
    ProgressMonitorManager<IRemotingProgressMonitor> progressMonitorManager;
56

  
49 57

  
50 58

  
51 59
    /* (non-Javadoc)
......
58 66
    }
59 67

  
60 68

  
69
    @Override
70
    public UUID monitImportData(final IImportConfigurator configurator, final byte[] importData, final SOURCE_TYPE type) {
71
        final IRemotingProgressMonitor monitor = new RemotingProgressMonitor();
72
        RemotingProgressMonitorThread monitThread = new RemotingProgressMonitorThread(monitor) {
73
            @Override
74
            public Object doRun(IRemotingProgressMonitor monitor) {
75
                configurator.setProgressMonitor(monitor);
76
                ImportResult result = importData(configurator, importData, type);
77
                for(byte[] report : result.getReports()) {
78
                    monitor.addReport(new String(report));
79
                }
80
                return result;
81
            }
82
        };
83
        UUID uuid = progressMonitorManager.registerMonitor(monitor);
84
        monitThread.setPriority(3);
85
        monitThread.start();
86
        return uuid;
87
    }
61 88

  
62 89
    @Override
63 90
    public ImportResult importData(IImportConfigurator configurator, byte[] importData, SOURCE_TYPE type) {

Also available in: Unified diff