diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java index 8f8961048e40ffb3b7c3a9783e36d6d557bfff90..1b0eea1e19d7e24ff87de7bf18f653122ffdc0e7 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/Job.java @@ -22,12 +22,12 @@ import cz.it4i.fiji.haas.JobManager.JobManager4Job; import cz.it4i.fiji.haas.JobManager.JobSynchronizableFile; import cz.it4i.fiji.haas.data_transfer.Synchronization; import cz.it4i.fiji.haas_java_client.HaaSClient; -import cz.it4i.fiji.haas_java_client.HaaSClient.UploadingFile; import cz.it4i.fiji.haas_java_client.HaaSFileTransfer; import cz.it4i.fiji.haas_java_client.JobInfo; import cz.it4i.fiji.haas_java_client.JobState; import cz.it4i.fiji.haas_java_client.ProgressNotifier; import cz.it4i.fiji.haas_java_client.TransferFileProgressForHaaSClient; +import cz.it4i.fiji.haas_java_client.UploadingFile; import cz.it4i.fiji.scpclient.TransferFileProgress; /*** * TASK - napojit na UI @@ -50,22 +50,29 @@ public class Job { private static final String JOB_IS_UPLOADED = "job.uploaded"; - public static boolean isJobPath(Path p) { - return isValidPath(p); + public static boolean isValidJobPath(Path path) { + try { + getJobId(path); + } catch (NumberFormatException e) { + return false; + } + return Files.isRegularFile(path.resolve(JOB_INFO_FILENAME)); } private static Logger log = LoggerFactory.getLogger(cz.it4i.fiji.haas.Job.class); private Path jobDir; - private Supplier<HaaSClient> haasClientSupplier; + private final Supplier<HaaSClient> haasClientSupplier; - // private JobState state; - // private Boolean needsDownload; private JobInfo jobInfo; + private Long jobId; + private PropertyHolder propertyHolder; - private JobManager4Job jobManager; + + private final JobManager4Job jobManager; + private Synchronization synchronization; @@ -146,7 +153,7 @@ public class Job { } - public boolean canBeDownload() { + public boolean canBeDownloaded() { return Boolean.parseBoolean(getProperty(JOB_CAN_BE_DOWNLOADED)); } @@ -416,16 +423,6 @@ public class Job { jobInfo = getHaaSClient().obtainJobInfo(getId()); } - private static boolean isValidPath(Path path) { - - try { - getJobId(path); - } catch (NumberFormatException e) { - return false; - } - return Files.isRegularFile(path.resolve(JOB_INFO_FILENAME)); - } - private static long getJobId(Path path) { return Long.parseLong(path.getFileName().toString()); } diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java index 0bb11806e120ae263f0c6de22b4d22050ee86b9e..862562e515eac0d1d48d6e81e87a5557f20324eb 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/JobManager.java @@ -12,7 +12,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import cz.it4i.fiji.haas_java_client.HaaSClient; -import cz.it4i.fiji.haas_java_client.JobState; import cz.it4i.fiji.haas_java_client.Settings; import cz.it4i.fiji.haas_java_client.SynchronizableFileType; @@ -22,18 +21,17 @@ public class JobManager implements Closeable { boolean remove(Job job); } - @SuppressWarnings("unused") private static Logger log = LoggerFactory.getLogger(cz.it4i.fiji.haas.JobManager.class); - private Path workDirectory; + private final Path workDirectory; private Collection<Job> jobs; private HaaSClient haasClient; - private Settings settings; + private final Settings settings; - private JobManager4Job remover = new JobManager4Job() { + private final JobManager4Job remover = new JobManager4Job() { @Override public boolean remove(Job job) { @@ -47,32 +45,18 @@ public class JobManager implements Closeable { } public Job createJob() throws IOException { - Job job; - if (jobs == null) { - jobs = new LinkedList<>(); - } - jobs.add(job = new Job(remover, settings.getJobName(), workDirectory, this::getHaasClient)); - return job; + Job result; + initJobsIfNecessary(); + jobs.add(result = new Job(remover, settings.getJobName(), workDirectory, this::getHaasClient)); + return result; } public Collection<Job> getJobs() { - if (jobs == null) { - jobs = new LinkedList<>(); - try { - Files.list(this.workDirectory).filter(p -> Files.isDirectory(p) && Job.isJobPath(p)).forEach(p -> { - jobs.add(new Job(remover, p, this::getHaasClient)); - }); - } catch (IOException e) { - log.error(e.getMessage(), e); - } - } + initJobsIfNecessary(); return Collections.unmodifiableCollection(jobs); } - public JobState getState(long id) { - return getHaasClient().obtainJobInfo(id).getState(); - } - + @Override public void close() { jobs.forEach(job -> job.close()); } @@ -84,9 +68,22 @@ public class JobManager implements Closeable { return haasClient; } + private void initJobsIfNecessary() { + if (jobs == null) { + jobs = new LinkedList<>(); + try { + Files.list(this.workDirectory).filter(p -> Files.isDirectory(p) && Job.isValidJobPath(p)).forEach(p -> { + jobs.add(new Job(remover, p, this::getHaasClient)); + }); + } catch (IOException e) { + log.error(e.getMessage(), e); + } + } + } + public static class JobSynchronizableFile { - private SynchronizableFileType type; - private long offset; + private final SynchronizableFileType type; + private final long offset; public JobSynchronizableFile(SynchronizableFileType type, long offset) { this.type = type; diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/PropertyHolder.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/PropertyHolder.java index b57471fe24dcf5f9fa16d430b00ef68f93e98a64..9a369111477ec5169109d3d57538f25e2117868a 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/PropertyHolder.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/PropertyHolder.java @@ -9,7 +9,7 @@ import java.nio.file.StandardOpenOption; import java.util.Properties; public class PropertyHolder { - private Path storage; + private final Path storage; private Properties properties; public PropertyHolder(Path storage) { diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/UploadingFileFromResource.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/UploadingFileFromResource.java index 429ab37d49a6b3143be2e07f55fd28d60af3700b..50dc5f975b892e94245b41327f182050a93ec078 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/UploadingFileFromResource.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/UploadingFileFromResource.java @@ -4,14 +4,17 @@ import java.io.IOException; import java.io.InputStream; import java.time.Instant; -import cz.it4i.fiji.haas_java_client.HaaSClient.UploadingFile; +import cz.it4i.fiji.haas_java_client.UploadingFile; public class UploadingFileFromResource implements UploadingFile { - private String fileName; - private String base; + private final String fileName; + + private final String base; + + private final long lastTime; + private Long length; - private long lastTime; public UploadingFileFromResource(String base, String fileName) { this.base = base; diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/PersistentIndex.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/PersistentIndex.java index 9a66b392b7c6956a42080565fa038e46eb96ddc4..0a3049c93589c41392f4aa3463a21ac2ae7ab9a9 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/PersistentIndex.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/PersistentIndex.java @@ -17,49 +17,49 @@ public class PersistentIndex<T> { public static final Logger log = LoggerFactory.getLogger(cz.it4i.fiji.haas.data_transfer.PersistentIndex.class); - private Path workingFile; + private final Path workingFile; - private Set<T> files = new LinkedHashSet<>(); + private final Set<T> indexedFiles = new LinkedHashSet<>(); - private Function<String, T> fromString; + private final Function<String, T> fromStringConvertor; - public PersistentIndex(Path workingFile,Function<String, T> fromString) throws IOException { + public PersistentIndex(Path workingFile,Function<String, T> fromStringConvertor) throws IOException { this.workingFile = workingFile; - this.fromString = fromString; - loadFromFile(); + this.fromStringConvertor = fromStringConvertor; + loadFromWorkingFile(); } - public synchronized void storeToFile() throws IOException { + public synchronized void storeToWorkingFile() throws IOException { try (BufferedWriter bw = Files.newBufferedWriter(workingFile)) { - for (T file : files) { + for (T file : indexedFiles) { bw.write(file.toString() + "\n"); } } } public synchronized boolean insert(T file) { - return files.add(file); + return indexedFiles.add(file); } public synchronized void remove(T p) { - files.remove(p); + indexedFiles.remove(p); } public synchronized void fillQueue(Queue<T> toUpload) { - toUpload.addAll(files); + toUpload.addAll(indexedFiles); } public synchronized void clear() throws IOException { - files.clear(); - storeToFile(); + indexedFiles.clear(); + storeToWorkingFile(); } public synchronized boolean contains(Path file) { - return files.contains(file); + return indexedFiles.contains(file); } - private void loadFromFile() throws IOException { - files.clear(); + private void loadFromWorkingFile() throws IOException { + indexedFiles.clear(); if(Files.exists(workingFile)) { try (BufferedReader br = Files.newBufferedReader(workingFile)) { String line; @@ -71,7 +71,7 @@ public class PersistentIndex<T> { } private void processLine(String line) { - files.add(fromString.apply(line)); + indexedFiles.add(fromStringConvertor.apply(line)); } diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/PersistentSynchronizationProcess.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/PersistentSynchronizationProcess.java index 7966cb2dd039435f6ee228e82d45366b0b42e9a7..1811451cef1cbc4d292853c87c0d33bdc4ce4655 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/PersistentSynchronizationProcess.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/PersistentSynchronizationProcess.java @@ -34,21 +34,21 @@ public abstract class PersistentSynchronizationProcess<T> { private final static String INIT_TRANSFER_ITEM = "init transfer"; - private PersistentIndex<T> index; + private final PersistentIndex<T> index; - private Queue<T> toProcessQueue = new LinkedBlockingQueue<T>(); + private final Queue<T> toProcessQueue = new LinkedBlockingQueue<T>(); - private Set<Thread> runningTransferThreads = Collections.synchronizedSet(new HashSet<>()); + private final Set<Thread> runningTransferThreads = Collections.synchronizedSet(new HashSet<>()); - private SimpleThreadRunner runner; + private final SimpleThreadRunner runner; - private Supplier<HaaSFileTransfer> fileTransferSupplier; + private final Supplier<HaaSFileTransfer> fileTransferSupplier; - private Runnable processFinishedNotifier; + private final Runnable processFinishedNotifier; private ProgressNotifier notifier; - private AtomicInteger runningProcessCounter = new AtomicInteger(); + private final AtomicInteger runningProcessCounter = new AtomicInteger(); public PersistentSynchronizationProcess(ExecutorService service, Supplier<HaaSFileTransfer> fileTransferSupplier, Runnable processFinishedNotifier, Path indexFile, Function<String, T> convertor) throws IOException { @@ -69,7 +69,7 @@ public abstract class PersistentSynchronizationProcess<T> { runner.runIfNotRunning(this::doProcess); } finally { startFinished = true; - index.storeToFile(); + index.storeToWorkingFile(); } } @@ -121,7 +121,7 @@ public abstract class PersistentSynchronizationProcess<T> { notifier.addItem(item); try { processItem(tr, p); - fileUploaded(p); + fileTransfered(p); } catch (InterruptedIOException e) { toProcessQueue.clear(); interrupted = true; @@ -149,10 +149,10 @@ public abstract class PersistentSynchronizationProcess<T> { } } - private void fileUploaded(T p) { + private void fileTransfered(T p) { try { index.remove(p); - index.storeToFile(); + index.storeToWorkingFile(); } catch (IOException e) { log.error(e.getMessage(), e); } diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/SimpleThreadRunner.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/SimpleThreadRunner.java index 4a8237bac110f78b02120388162e2a202ea0b25d..3b1dea3f3acaecf0552551f1d4722d178b08d2ef 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/SimpleThreadRunner.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/SimpleThreadRunner.java @@ -5,8 +5,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; public class SimpleThreadRunner { - private ExecutorService service; - private AtomicBoolean reRun = new AtomicBoolean(false); + private final ExecutorService service; + private final AtomicBoolean reRun = new AtomicBoolean(false); public SimpleThreadRunner(ExecutorService service) { this.service = service; diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/Synchronization.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/Synchronization.java index 54795aa5d1bb6626487ff8a5442280ec60f0c162..5e17ff9db7f13120247a1f4c460ca06886732abb 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/Synchronization.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/data_transfer/Synchronization.java @@ -19,9 +19,9 @@ import java.util.stream.StreamSupport; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import cz.it4i.fiji.haas_java_client.HaaSClient.UploadingFile; import cz.it4i.fiji.haas_java_client.HaaSFileTransfer; import cz.it4i.fiji.haas_java_client.ProgressNotifier; +import cz.it4i.fiji.haas_java_client.UploadingFile; import cz.it4i.fiji.haas_java_client.UploadingFileImpl; public class Synchronization implements Closeable{ @@ -34,22 +34,23 @@ public class Synchronization implements Closeable{ private static final String FILE_INDEX_DOWNLOADED_FILENAME = ".downloaded"; - private Path workingDirectory; + private final Path workingDirectory; - private Function<String,Path> pathResolver = name -> workingDirectory.resolve(name); + private final Function<String,Path> pathResolver; - private PersistentIndex<Path> filesDownloaded; + private final PersistentIndex<Path> filesDownloaded; - private PersistentSynchronizationProcess<Path> uploadProcess; + private final PersistentSynchronizationProcess<Path> uploadProcess; - private P_PersistentDownloadProcess downloadProcess; + private final P_PersistentDownloadProcess downloadProcess; - private ExecutorService service; + private final ExecutorService service; public Synchronization(Supplier<HaaSFileTransfer> fileTransferSupplier, Path workingDirectory, Runnable uploadFinishedNotifier, Runnable downloadFinishedNotifier) throws IOException { this.service = Executors.newFixedThreadPool(2); this.workingDirectory = workingDirectory; + this.pathResolver = name -> workingDirectory.resolve(name); this.filesDownloaded = new PersistentIndex<>(workingDirectory.resolve(FILE_INDEX_DOWNLOADED_FILENAME), pathResolver); this.uploadProcess = createUploadProcess(fileTransferSupplier, service, uploadFinishedNotifier); @@ -90,6 +91,7 @@ public class Synchronization implements Closeable{ this.downloadProcess.resume(); } + @Override public void close() { service.shutdown(); uploadProcess.shutdown(); @@ -164,7 +166,7 @@ public class Synchronization implements Closeable{ protected void processItem(HaaSFileTransfer tr, String file) throws InterruptedIOException { filesDownloaded.insert(workingDirectory.resolve(file)); try { - filesDownloaded.storeToFile(); + filesDownloaded.storeToWorkingFile(); } catch (IOException e) { log.error(e.getMessage(), e); } diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/JFXPanel.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/JFXPanel.java index 47b5b56362af087df974dc6c415e52dc8e914f08..05c0770707c03659437e10ea7a44bedd24ccf4b7 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/JFXPanel.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/JFXPanel.java @@ -20,7 +20,7 @@ public class JFXPanel<T extends Parent> extends javafx.embed.swing.JFXPanel { @SuppressWarnings("unused") private static Logger log = LoggerFactory.getLogger(cz.it4i.fiji.haas.ui.JFXPanel.class); - private T control; + private final T control; public JFXPanel(Supplier<T> fxSupplier) { Platform.setImplicitExit(false); diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ObservableValueAdapter.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ObservableValueAdapter.java index e06944a29f196186c71e00b41f3f163931a70418..25f9414960d10c44e809272f9403bcf0b5b2177a 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ObservableValueAdapter.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ObservableValueAdapter.java @@ -10,11 +10,11 @@ import javafx.beans.value.ObservableValue; public class ObservableValueAdapter<S, T> implements ObservableValue<T> { - private ObservableValue<S> adapted; + private final ObservableValue<S> adapted; - private Function<S, T> transformation; + private final Function<S, T> transformation; - private Map<ChangeListener<? super T>, ChangeListener<? super S>> mapOfListeners = new HashMap<>(); + private final Map<ChangeListener<? super T>, ChangeListener<? super S>> mapOfListeners = new HashMap<>(); public ObservableValueAdapter(ObservableValue<S> decorated, Function<S, T> map) { this.adapted = decorated; diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ObservableValueRegistry.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ObservableValueRegistry.java index e65c179f5007ff55b5080377a6c75aea61c5c0c9..54af7f42dc79c816fa6f4716f2e9c7fe2aae54be 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ObservableValueRegistry.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/ObservableValueRegistry.java @@ -9,56 +9,63 @@ import java.util.function.Function; import java.util.stream.Collectors; import cz.it4i.fiji.haas.ui.UpdatableObservableValue.UpdateStatus; -import javafx.beans.value.ObservableValue; -public abstract class ObservableValueRegistry<T,V extends UpdatableObservableValue<T>> { +public abstract class ObservableValueRegistry<K, V extends UpdatableObservableValue<K>> { - private Function<T,UpdateStatus> updateFunction; - private Consumer<T> removeConsumer; - private Function<T, Object> stateProvider; + private Function<K, UpdateStatus> updateFunction; + + private final Consumer<K> removeConsumer; + private final Function<K, Object> stateProvider; - public ObservableValueRegistry(Function<T, UpdateStatus> updateFunction,Function<T,Object> stateProvider, - Consumer<T> removeConsumer) { + private final Map<K, V> map = new LinkedHashMap<>(); + + public ObservableValueRegistry(Function<K, UpdateStatus> updateFunction, Function<K, Object> stateProvider, + Consumer<K> removeConsumer) { this.updateFunction = updateFunction; this.stateProvider = stateProvider; - this.removeConsumer = t-> { - removeConsumer.accept(t); - remove(t); + this.removeConsumer = k -> { + removeConsumer.accept(k); + remove(k); }; - } - - private Map<T,V> map = new LinkedHashMap<>(); - public V addIfAbsent(T value) { - V uov = map.computeIfAbsent(value, v-> constructObservableValue(v, updateFunction, stateProvider)); + public V addIfAbsent(K key) { + V uov = map.computeIfAbsent(key, k -> constructObservableValue(k)); return uov; } - - abstract protected V constructObservableValue(T v, Function<T, UpdateStatus> updateFunction, Function<T, Object> stateProvider) ; - public UpdatableObservableValue<T> get(T value) { - return map.get(value); + public V get(K key) { + return map.get(key); } - + public Collection<V> getAllItems() { - return map.values().stream().map(val->(V)val).collect(Collectors.toList()); - } - - protected ObservableValue<T> remove(T value) { - return map.remove(value); + return map.values().stream().map(val -> val).collect(Collectors.toList()); } public void update() { - for (UpdatableObservableValue<T> value : new LinkedList<>(map.values())) { - if(value.update() == UpdateStatus.Deleted) { + for (V value : new LinkedList<>(map.values())) { + if (value.update() == UpdateStatus.Deleted) { removeConsumer.accept(value.getValue()); } } } - protected void setUpdateFunction(Function<T, UpdateStatus> updateFunction) { + abstract protected V constructObservableValue(K k); + + protected V remove(K key) { + return map.remove(key); + } + + protected void setUpdateFunction(Function<K, UpdateStatus> updateFunction) { this.updateFunction = updateFunction; } + + protected Function<K, UpdateStatus> getUpdateFunction() { + return updateFunction; + } + + protected Function<K, Object> getStateProvider() { + return stateProvider; + } } diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/TableViewContextMenu.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/TableViewContextMenu.java index 2ea1c0d8d1a907e74bd43dc65c0630291dbb3552..146f5bd9ea329fbc91135e110619ea833e8fbfef 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/TableViewContextMenu.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/TableViewContextMenu.java @@ -23,10 +23,9 @@ public class TableViewContextMenu<T> { public final static Logger log = LoggerFactory.getLogger(cz.it4i.fiji.haas.ui.TableViewContextMenu.class); - private final Collection<P_Updetable<?>> items = new LinkedList<>(); - private final Collection<P_MenuItemWithColumnIndex> itemsWithColumnIndex = new LinkedList<>(); + private final Collection<P_Updatable<T>> items = new LinkedList<>(); - private TableView<T> tableView; + private final TableView<T> tableView; private int columnIndex = -1; @@ -39,9 +38,9 @@ public class TableViewContextMenu<T> { } public void addItem(String text, BiConsumer<T, Integer> eventHandler, BiPredicate<T, Integer> enableHandler) { - itemsWithColumnIndex.add(new P_MenuItemWithColumnIndex(text, eventHandler, enableHandler)); + items.add(new P_MenuItemWithColumnIndex(text, eventHandler, enableHandler)); } - + public void addItem(String text, Consumer<T> eventHandlerOn, Consumer<T> eventHandlerOff, Predicate<T> enableHandler, Function<T, Boolean> property) { items.add(new P_CheckMenuItem(text, eventHandlerOff, eventHandlerOn, enableHandler, property)); @@ -65,9 +64,8 @@ public class TableViewContextMenu<T> { public void handle(ContextMenuEvent event) { T requestedItem = getRequestedItem(); updateColumnIndex(event.getSceneX()); - int column = getRequestedColumn(); - items.forEach(item -> item.updateEnable(requestedItem)); - itemsWithColumnIndex.forEach(item -> item.updateEnable(requestedItem, column)); + int columnIndex = getRequestedColumn(); + items.forEach(item -> item.updateEnable(requestedItem, columnIndex)); } private void updateColumnIndex(double sceneX) { @@ -89,42 +87,45 @@ public class TableViewContextMenu<T> { return cm; } - private class P_Updetable<I extends MenuItem> { - - private I item; - private Predicate<T> enableHandler; - - - public P_Updetable(I item, Predicate<T> enableHandler) { + private interface P_Updatable<T> { + public void updateEnable(T selected, int columnIndex); + } + + private class P_UpdatableImpl<I extends MenuItem> implements P_Updatable<T> { + + private final I item; + private final Predicate<T> enableHandler; + + public P_UpdatableImpl(I item, Predicate<T> enableHandler) { this.item = item; this.enableHandler = enableHandler; getOrCreateContextMenu().getItems().add(getItem()); } - public void updateEnable(T selected) { + @Override + public void updateEnable(T selected, int columnIndex) { item.setDisable(!enableHandler.test(selected)); } - + protected I getItem() { return item; } } - - private class P_MenuItem extends P_Updetable<MenuItem>{ + + private class P_MenuItem extends P_UpdatableImpl<MenuItem> { public P_MenuItem(String text, Consumer<T> eventHandler, Predicate<T> enableHandler) { super(new MenuItem(text), enableHandler); - getItem().setOnAction(e -> eventHandler.accept(getRequestedItem())); - } } - private class P_MenuItemWithColumnIndex { + private class P_MenuItemWithColumnIndex implements P_Updatable<T> { + + private final MenuItem item; - private MenuItem item; - private BiPredicate<T, Integer> enableHandler; + private final BiPredicate<T, Integer> enableHandler; public P_MenuItemWithColumnIndex(String text, BiConsumer<T, Integer> eventHandler, BiPredicate<T, Integer> enableHandler) { @@ -134,23 +135,24 @@ public class TableViewContextMenu<T> { getOrCreateContextMenu().getItems().add(item); } + @Override public void updateEnable(T selected, int column) { item.setDisable(!enableHandler.test(selected, column)); } } - private class P_CheckMenuItem extends P_Updetable<CheckMenuItem>{ - - private Function<T, Boolean> property; + private class P_CheckMenuItem extends P_UpdatableImpl<CheckMenuItem> { + + private final Function<T, Boolean> property; public P_CheckMenuItem(String text, Consumer<T> eventHandlerOff, Consumer<T> eventHandlerOn, - Predicate<T> enableHandler, Function<T,Boolean> property) { + Predicate<T> enableHandler, Function<T, Boolean> property) { super(new CheckMenuItem(text), enableHandler); this.property = property; getItem().setOnAction(e -> { boolean selected = getItem().isSelected(); - if(selected) { + if (selected) { eventHandlerOn.accept(getRequestedItem()); } else { eventHandlerOff.accept(getRequestedItem()); @@ -159,11 +161,11 @@ public class TableViewContextMenu<T> { } @Override - public void updateEnable(T selected) { - super.updateEnable(selected); + public void updateEnable(T selected, int columnIndex) { + super.updateEnable(selected, columnIndex); getItem().setSelected(property.apply(selected)); } - + } } diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/UpdatableObservableValue.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/UpdatableObservableValue.java index 4116da697e01d538211eee84d879f538e4160b26..d5c8551f02a9e2e38ecfed2a31bbf903a0b5880f 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/UpdatableObservableValue.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/UpdatableObservableValue.java @@ -16,10 +16,13 @@ public class UpdatableObservableValue<T> extends ObservableValueBase<T> { Deleted, Updated, NotUpdated } - private T wrapped; - private Function<T, UpdateStatus> updateFunction; + private final T wrapped; + + private final Function<T, UpdateStatus> updateFunction; + + private final Function<T, Object> stateProvider; + private Object oldState; - private Function<T, Object> stateProvider; public UpdatableObservableValue(T wrapped, Function<T, UpdateStatus> updateFunction, Function<T, Object> stateProvider) { diff --git a/haas-imagej-client/src/test/java/cz/it4i/fiji/haas/TestUploadingData.java b/haas-imagej-client/src/test/java/cz/it4i/fiji/haas/TestUploadingData.java index 353d55a2b48b4d9af94331f8ad7ec50c3860325e..54a0420d58064d14153593ce5e82ef0381de3bef 100644 --- a/haas-imagej-client/src/test/java/cz/it4i/fiji/haas/TestUploadingData.java +++ b/haas-imagej-client/src/test/java/cz/it4i/fiji/haas/TestUploadingData.java @@ -5,7 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import cz.it4i.fiji.haas.UploadingFileFromResource; -import cz.it4i.fiji.haas_java_client.HaaSClient.UploadingFile; +import cz.it4i.fiji.haas_java_client.UploadingFile; public class TestUploadingData { private static Logger log = LoggerFactory.getLogger(TestUploadingData.class); diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java index d49c73da4e421a944c86cdbeb38e082dd02bd9e5..f66413be66a01f81ee4baa4a4f83a8ff7468120d 100644 --- a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java +++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java @@ -123,19 +123,9 @@ public class HaaSClient { }; } - public interface UploadingFile { - InputStream getInputStream() throws IOException; - - String getName(); - - long getLength() throws IOException; - - long getLastTime(); - } - static public class SynchronizableFiles { - private Collection<TaskFileOffsetExt> files = new LinkedList<>(); + private final Collection<TaskFileOffsetExt> files = new LinkedList<>(); public void addFile(long taskId, SynchronizableFileType type, long offset) { TaskFileOffsetExt off = new TaskFileOffsetExt(); @@ -190,18 +180,18 @@ public class HaaSClient { private FileTransferWsSoap fileTransfer; - private Integer timeOut; + private final Integer timeOut; - private Long templateId; + private final Long templateId; - private Long clusterNodeType; + private final Long clusterNodeType; - private String projectId; + private final String projectId; - private Map<Long, P_FileTransferPool> filetransferPoolMap = new HashMap<>(); + private final Map<Long, P_FileTransferPool> filetransferPoolMap = new HashMap<>(); - private Settings settings; + private final Settings settings; public HaaSClient(Settings settings) { this.settings = settings; @@ -251,14 +241,17 @@ public class HaaSClient { return WS_STATE2STATE.get(info.getState()); } + @Override public java.util.Calendar getStartTime() { return info.getStartTime(); }; + @Override public java.util.Calendar getEndTime() { return info.getEndTime(); }; + @Override public Calendar getCreationTime() { return info.getCreationTime(); }; @@ -300,6 +293,7 @@ public class HaaSClient { FileTransferMethodExt ft = pool.obtain(); try { return new HaaSFileTransferImp(ft, getScpClient(ft), progress) { + @Override public void close() { super.close(); try { @@ -431,32 +425,38 @@ public class HaaSClient { } public static class P_ProgressNotifierDecorator implements ProgressNotifier { - private ProgressNotifier notifier; + private final ProgressNotifier notifier; public P_ProgressNotifierDecorator(ProgressNotifier notifier) { this.notifier = notifier; } + @Override public void setTitle(String title) { notifier.setTitle(title); } + @Override public void setCount(int count, int total) { notifier.setCount(count, total); } + @Override public void addItem(Object item) { notifier.addItem(item); } + @Override public void setItemCount(int count, int total) { notifier.setItemCount(count, total); } + @Override public void itemDone(Object item) { notifier.itemDone(item); } + @Override public void done() { notifier.done(); } @@ -481,7 +481,6 @@ public class HaaSClient { public P_FileTransferPool(long jobId) { this.factory = () -> getFileTransfer().getFileTransferMethod(jobId, getSessionID()); this.destroyer = val -> getFileTransfer().endFileTransfer(jobId, val, sessionID); - ; } public synchronized FileTransferMethodExt obtain() throws RemoteException, ServiceException { diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSFileTransfer.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSFileTransfer.java index 2cf9b14969f30fb9cb8404e4bb0f8cb125ee4d76..fc7ebc2b82d16cff5afca7dc4384c6a648ec73e1 100644 --- a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSFileTransfer.java +++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSFileTransfer.java @@ -5,7 +5,6 @@ import java.io.InterruptedIOException; import java.nio.file.Path; import java.util.List; -import cz.it4i.fiji.haas_java_client.HaaSClient.UploadingFile; import cz.it4i.fiji.scpclient.TransferFileProgress; public interface HaaSFileTransfer extends Closeable { @@ -14,7 +13,7 @@ public interface HaaSFileTransfer extends Closeable { @Override void close(); - void upload(UploadingFile files) throws InterruptedIOException; + void upload(UploadingFile file) throws InterruptedIOException; void download(String files, Path workDirectory) throws InterruptedIOException; diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSFileTransferImp.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSFileTransferImp.java index 9aa4698c4d8fe5379f91ffeba5f63849e460725a..fe40056388c53aedb2d16c6005d0a42ff7e7ac97 100644 --- a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSFileTransferImp.java +++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSFileTransferImp.java @@ -14,7 +14,6 @@ import org.slf4j.LoggerFactory; import com.jcraft.jsch.JSchException; -import cz.it4i.fiji.haas_java_client.HaaSClient.UploadingFile; import cz.it4i.fiji.haas_java_client.proxy.FileTransferMethodExt; import cz.it4i.fiji.scpclient.ScpClient; import cz.it4i.fiji.scpclient.TransferFileProgress; @@ -24,8 +23,8 @@ class HaaSFileTransferImp implements HaaSFileTransfer { @SuppressWarnings("unused") private static Logger log = LoggerFactory.getLogger(cz.it4i.fiji.haas_java_client.HaaSFileTransferImp.class); - private FileTransferMethodExt ft; - private ScpClient scpClient; + private final FileTransferMethodExt ft; + private final ScpClient scpClient; private TransferFileProgress progress; public HaaSFileTransferImp(FileTransferMethodExt ft, ScpClient scpClient, TransferFileProgress progress) { diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobFileContentImpl.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobFileContentImpl.java index 47922fb43ce5fa69e07b6537d7800bb553c6791a..fdbb4eaa9766af651de2c276f4094ec51054e446 100644 --- a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobFileContentImpl.java +++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/JobFileContentImpl.java @@ -5,7 +5,7 @@ import cz.it4i.fiji.haas_java_client.proxy.SynchronizableFilesExt; class JobFileContentImpl implements JobFileContent{ - private JobFileContentExt contentExt; + private final JobFileContentExt contentExt; public JobFileContentImpl(JobFileContentExt contentExt) { this.contentExt = contentExt; diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/TransferFileProgressForHaaSClient.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/TransferFileProgressForHaaSClient.java index e6242cacef3055732764dd09b0495695dc711882..050676212e54e5a1a8409d08877a437fb1872573 100644 --- a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/TransferFileProgressForHaaSClient.java +++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/TransferFileProgressForHaaSClient.java @@ -4,14 +4,14 @@ import cz.it4i.fiji.scpclient.TransferFileProgress; public class TransferFileProgressForHaaSClient implements TransferFileProgress { - private long totalSize; + private final long totalSize; private long totalTransfered; private long fileSize; private long fileTransfered; - private ProgressNotifier notifier; + private final ProgressNotifier notifier; public TransferFileProgressForHaaSClient(long totalSize, ProgressNotifier notifier) { diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/UploadingFile.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/UploadingFile.java new file mode 100644 index 0000000000000000000000000000000000000000..5024db3fed1ea6c0787d23e4f2ee9b3be4d92fbe --- /dev/null +++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/UploadingFile.java @@ -0,0 +1,14 @@ +package cz.it4i.fiji.haas_java_client; + +import java.io.IOException; +import java.io.InputStream; + +public interface UploadingFile { + InputStream getInputStream() throws IOException; + + String getName(); + + long getLength() throws IOException; + + long getLastTime(); +} \ No newline at end of file diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/UploadingFileImpl.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/UploadingFileImpl.java index 9c921e5a3f8317d9ecf7472c9816b2db9561ac11..ad7cff54de090d9d0d13261ebd0a66fb6d10d0dc 100644 --- a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/UploadingFileImpl.java +++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/UploadingFileImpl.java @@ -8,8 +8,6 @@ import java.nio.file.Path; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import cz.it4i.fiji.haas_java_client.HaaSClient.UploadingFile; - public class UploadingFileImpl implements UploadingFile { public static final Logger log = LoggerFactory.getLogger(cz.it4i.fiji.haas_java_client.UploadingFileImpl.class); diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/commands/BenchmarkSPIMParametersImpl.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/commands/BenchmarkSPIMParametersImpl.java index 67ee1094ed04e0cbe2be1ee9220c066439a971f0..032ed69c5d12c5180a435d9bc4466dc0934a8d72 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/commands/BenchmarkSPIMParametersImpl.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/commands/BenchmarkSPIMParametersImpl.java @@ -6,15 +6,15 @@ import cz.it4i.fiji.haas_spim_benchmark.core.BenchmarkSPIMParameters; class BenchmarkSPIMParametersImpl implements BenchmarkSPIMParameters{ - private String userName; + private final String userName; - private String password; + private final String password; - private String phone; + private final String phone; - private String email; + private final String email; - private Path workingDirectory; + private final Path workingDirectory; public BenchmarkSPIMParametersImpl(String userName, String password, String phone, String email, Path workingDirectory) { this.userName = userName; diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/commands/FileLock.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/commands/FileLock.java index 14384ce2a456b48e2d7f6c77073c026ae7431b88..7310922b11bad01f6354775cc39884ff08c344c2 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/commands/FileLock.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/commands/FileLock.java @@ -16,18 +16,18 @@ public class FileLock implements Closeable { public static final Logger log = LoggerFactory.getLogger(cz.it4i.fiji.haas_spim_benchmark.commands.FileLock.class); + private final Path localPath; + private FileChannel fileChannel; private java.nio.channels.FileLock lock; - - private Path filePath; - - public FileLock(Path file) throws FileNotFoundException { - this.filePath = file; + + public FileLock(Path lockPath) throws FileNotFoundException { + this.localPath = lockPath; } public boolean tryLock() throws IOException { - this.fileChannel = FileChannel.open(filePath, StandardOpenOption.READ, StandardOpenOption.WRITE, + this.fileChannel = FileChannel.open(localPath, StandardOpenOption.READ, StandardOpenOption.WRITE, StandardOpenOption.CREATE); try { this.lock = fileChannel.tryLock(); @@ -53,7 +53,7 @@ public class FileLock implements Closeable { log.error(e.getMessage(), e); } try { - Files.delete(filePath); + Files.delete(localPath); } catch (IOException e) { log.error(e.getMessage(), e); } diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/commands/ManageSPIMBenchmark.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/commands/ManageSPIMBenchmark.java index 1a5fdd210c078992515eab1fd6e29e1bdffc675f..aaee9aaba7db792fe47c1bb91240321e5ad74402 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/commands/ManageSPIMBenchmark.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/commands/ManageSPIMBenchmark.java @@ -67,19 +67,23 @@ public class ManageSPIMBenchmark implements Command { uiService.showDialog("Working directory is already used by someone else", MessageType.ERROR_MESSAGE); return; } - - JDialog dialog = new BenchmarkSPIMWindow(null, - new BenchmarkSPIMParametersImpl(userName, password, Constants.PHONE, email, workingDirPath)); - dialog.setTitle("SPIM workflow computation manager"); - dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); - dialog.addWindowListener(new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - super.windowClosing(e); - fl.close(); - } - }); - dialog.setVisible(true); + try { + JDialog dialog = new BenchmarkSPIMWindow(null, + new BenchmarkSPIMParametersImpl(userName, password, Constants.PHONE, email, workingDirPath)); + dialog.setTitle("SPIM workflow computation manager"); + dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + dialog.addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + super.windowClosing(e); + fl.close(); + } + }); + dialog.setVisible(true); + } catch(IOException e) { + fl.close(); + throw e; + } } catch (IOException e) { log.error(e.getMessage(), e); } diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java index 53a382855e4304162091757fc70a8f118952f110..17237edabd25cf28118fe0b64015f27dc179c967 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java @@ -41,11 +41,11 @@ import cz.it4i.fiji.haas.HaaSOutputHolderImpl; import cz.it4i.fiji.haas.Job; import cz.it4i.fiji.haas.JobManager; import cz.it4i.fiji.haas.UploadingFileFromResource; -import cz.it4i.fiji.haas_java_client.HaaSClient; import cz.it4i.fiji.haas_java_client.JobState; import cz.it4i.fiji.haas_java_client.ProgressNotifier; import cz.it4i.fiji.haas_java_client.Settings; import cz.it4i.fiji.haas_java_client.SynchronizableFileType; +import cz.it4i.fiji.haas_java_client.UploadingFile; import net.imagej.updater.util.Progress; public class BenchmarkJobManager implements Closeable{ @@ -54,7 +54,7 @@ public class BenchmarkJobManager implements Closeable{ private static Logger log = LoggerFactory .getLogger(cz.it4i.fiji.haas_spim_benchmark.core.BenchmarkJobManager.class); - private JobManager jobManager; + private final JobManager jobManager; public final class BenchmarkJob implements HaaSOutputHolder { @@ -128,7 +128,7 @@ public class BenchmarkJobManager implements Closeable{ } public boolean canBeDownloaded() { - return job.canBeDownload(); + return job.canBeDownloaded(); } public void downloadStatistics(Progress progress) throws IOException { @@ -385,13 +385,14 @@ public class BenchmarkJobManager implements Closeable{ private SPIMComputationAccessor getComputationAccessor() { SPIMComputationAccessor result = new SPIMComputationAccessor() { - private HaaSOutputHolder outputOfSnakemake = new HaaSOutputHolderImpl(list -> job.getOutput(list)); + private final HaaSOutputHolder outputOfSnakemake = new HaaSOutputHolderImpl(list -> job.getOutput(list)); @Override public List<String> getActualOutput(List<SynchronizableFileType> content) { return outputOfSnakemake.getActualOutput(content); } + @Override public java.util.Collection<String> getChangedFiles() { return job.getChangedFiles(); } @@ -499,7 +500,7 @@ public class BenchmarkJobManager implements Closeable{ // Cache all found jobs for (int i = 1; i < columns.length; i++) { - jobs.add(new ResultFileJob(columns[i])); + jobs.add(new ResultFileJob()); } } else if (!columns[0].equals(Constants.STATISTICS_JOB_COUNT)) { @@ -569,7 +570,7 @@ public class BenchmarkJobManager implements Closeable{ jobManager.close(); } - private HaaSClient.UploadingFile getUploadingFile() { + private UploadingFile getUploadingFile() { return new UploadingFileFromResource("", Constants.CONFIG_YAML); } @@ -691,32 +692,38 @@ public class BenchmarkJobManager implements Closeable{ } private class P_ProgressNotifierAdapter implements ProgressNotifier { - private Progress progress; + private final Progress progress; public P_ProgressNotifierAdapter(Progress progress) { this.progress = progress; } + @Override public void setTitle(String title) { progress.setTitle(title); } + @Override public void setCount(int count, int total) { progress.setCount(count, total); } + @Override public void addItem(Object item) { progress.addItem(item); } + @Override public void setItemCount(int count, int total) { progress.setItemCount(count, total); } + @Override public void itemDone(Object item) { progress.itemDone(item); } + @Override public void done() { progress.done(); } diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/ObservableBenchmarkJob.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/ObservableBenchmarkJob.java index a6f3529b1e19a1359026642f6f3fc4b42abe33f1..1ae29df84c3823884a4e38855047a38d7a0314b7 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/ObservableBenchmarkJob.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/ObservableBenchmarkJob.java @@ -17,11 +17,11 @@ public class ObservableBenchmarkJob extends UpdatableObservableValue<BenchmarkJo public static final Logger log = LoggerFactory .getLogger(cz.it4i.fiji.haas_spim_benchmark.core.ObservableBenchmarkJob.class); - private P_TransferProgress downloadProgress = new P_TransferProgress(val -> getValue().setDownloaded(val), + private final P_TransferProgress downloadProgress = new P_TransferProgress(val -> getValue().setDownloaded(val), () -> getValue().isDownloaded(), () -> getValue().needsDownload()); - private P_TransferProgress uploadProgress = new P_TransferProgress(val -> getValue().setUploaded(val), + private final P_TransferProgress uploadProgress = new P_TransferProgress(val -> getValue().setUploaded(val), () -> getValue().isUploaded(), () -> getValue().needsUpload()); - private Executor executor; + private final Executor executor; public interface TransferProgress { @@ -53,6 +53,7 @@ public class ObservableBenchmarkJob extends UpdatableObservableValue<BenchmarkJo public void removed() { getValue().setDownloadNotifier(null); + getValue().setUploadNotifier(null); } @Override @@ -64,13 +65,13 @@ public class ObservableBenchmarkJob extends UpdatableObservableValue<BenchmarkJo private class P_TransferProgress implements Progress, TransferProgress { + private final Supplier<Boolean> doneStatusSupplier; + private final Consumer<Boolean> doneStatusConsumer; + private final Supplier<Boolean> workingSupplier; private Long start; private Long remainingMiliseconds; private Float remainingPercents; - private Supplier<Boolean> doneStatusSupplier; - private Consumer<Boolean> doneStatusConsumer; - private Supplier<Boolean> workingSupplier; - + public P_TransferProgress(Consumer<Boolean> doneStatusConsumer, Supplier<Boolean> doneStatusSupplier, Supplier<Boolean> workingSupplier) { this.doneStatusConsumer = doneStatusConsumer; diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/PipelineBase.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/PipelineBase.java index 3de8b024c2eba53fcbd2009c254449537f77842f..26f60b05a74359f82d681141e035c30b5206ae6e 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/PipelineBase.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/PipelineBase.java @@ -4,14 +4,13 @@ import java.util.Collection; abstract public class PipelineBase<T extends PipelineBase<?,?>,S> { private Collection<T> successors; - private S id; + private final S id; public PipelineBase( S id) { this.id = id; } - public Collection<T> getSuccessors() { if(successors == null) { diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/ResultFileJob.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/ResultFileJob.java index f67fee23997feb9a8782eab46e65ebd43e1b7a21..07a5a734dde84e948623b5d9432a87bbed1d1440 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/ResultFileJob.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/ResultFileJob.java @@ -4,11 +4,10 @@ import java.util.HashMap; import java.util.Map; public class ResultFileJob { - String id; - Map<String, String> values = new HashMap<>(); + + private final Map<String, String> values = new HashMap<>(); - public ResultFileJob(String id) { - this.id = id; + public ResultFileJob() { } public String getValue(String key) { diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/SPIMComputationAccessorDecoratorWithTimeout.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/SPIMComputationAccessorDecoratorWithTimeout.java index 3f9b2ce48d1a6a3a2832d13241891cdf8613d3af..d37758c8dcb153cf5c7c9077890ee65d69b38379 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/SPIMComputationAccessorDecoratorWithTimeout.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/SPIMComputationAccessorDecoratorWithTimeout.java @@ -71,7 +71,7 @@ public class SPIMComputationAccessorDecoratorWithTimeout implements SPIMComputat private class P_ResultCacheHolder<T> { private Long lastQuery; private T value; - private Function<T, T> producer; + private final Function<T, T> producer; public P_ResultCacheHolder(Function<T, T> producer) { this.producer = producer; diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java index 5ff82e646d1621008cbaa27fddd8e966571897d2..1c1e842d59ad628abd29ea5161016c47d760e788 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMController.java @@ -49,18 +49,18 @@ public class BenchmarkSPIMController extends BorderPane implements CloseableCont @FXML private TableView<ObservableBenchmarkJob> jobs; - private BenchmarkJobManager manager; - + private final BenchmarkJobManager manager; + + private final ExecutorService executorServiceJobState = Executors.newWorkStealingPool(); + + private final Executor executorServiceFX = new FXFrameExecutorService(); + private Window root; private ExecutorService executorServiceUI; private ExecutorService executorServiceWS; - private ExecutorService executorServiceJobState = Executors.newWorkStealingPool(); - - private Executor executorServiceFX = new FXFrameExecutorService(); - private Timer timer; private ObservableBenchmarkJobRegistry registry; @@ -74,6 +74,7 @@ public class BenchmarkSPIMController extends BorderPane implements CloseableCont } + @Override public void init(Window root) { this.root = root; executorServiceWS = Executors.newSingleThreadExecutor(); @@ -90,6 +91,7 @@ public class BenchmarkSPIMController extends BorderPane implements CloseableCont executorServiceFX.execute(this::updateJobs); } + @Override public void close() { executorServiceUI.shutdown(); executorServiceWS.shutdown(); @@ -110,7 +112,7 @@ public class BenchmarkSPIMController extends BorderPane implements CloseableCont menu.addItem("Cancel job", job -> executeWSCallAsync("Canceling job", p -> { job.getValue().cancelJob(); job.getValue().update(); - }), job -> JavaFXRoutines.notNullValue(job, j -> j.getState() == JobState.Running)); + }), job -> JavaFXRoutines.notNullValue(job, j -> j.getState() == JobState.Running || j.getState() == JobState.Queued )); menu.addItem("Execution details", job -> { try { @@ -222,11 +224,11 @@ public class BenchmarkSPIMController extends BorderPane implements CloseableCont setCellValueFactory(2, j -> j.getCreationTime().toString()); setCellValueFactory(3, j -> j.getStartTime().toString()); setCellValueFactory(4, j -> j.getEndTime().toString()); - setCellValueFactory(5, j -> decorateTransfer("Upload",registry.get(j).getUploadProgress())); - setCellValueFactory(6, j -> decorateTransfer("Download",registry.get(j).getDownloadProgress())); + setCellValueFactory(5, j -> decorateTransfer(registry.get(j).getUploadProgress())); + setCellValueFactory(6, j -> decorateTransfer(registry.get(j).getDownloadProgress())); } - private String decorateTransfer(String string, TransferProgress progress) { + private String decorateTransfer(TransferProgress progress) { if (!progress.isWorking() && !progress.isDone()) { return ""; } else if (progress.isWorking()) { diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMWindow.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMWindow.java index f2f22bf471f3513cedb15c1ec6142cf57eecc276..d2a19cdb5d8463e2fd9e48054304b8f2b930873a 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMWindow.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/BenchmarkSPIMWindow.java @@ -11,9 +11,7 @@ import cz.it4i.fiji.haas_spim_benchmark.core.BenchmarkSPIMParameters; public class BenchmarkSPIMWindow extends FXFrame<BenchmarkSPIMController>{ private static final long serialVersionUID = 1L; - - - + public BenchmarkSPIMWindow(Window parentWindow, BenchmarkSPIMParameters params) throws IOException { super(parentWindow,()->{ try { diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/HaaSOutputObservableValueRegistry.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/HaaSOutputObservableValueRegistry.java index 09a3e1907cdfc5ed9ed3eca19c5d17b2c11a8e3e..83d02edb3f67a41a8fb56c422008439c00fdab1f 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/HaaSOutputObservableValueRegistry.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/HaaSOutputObservableValueRegistry.java @@ -25,11 +25,14 @@ public class HaaSOutputObservableValueRegistry implements Closeable { .getLogger(cz.it4i.fiji.haas_spim_benchmark.ui.HaaSOutputObservableValueRegistry.class); private final Map<SynchronizableFileType, P_HaaSOutputObservableValue> observable = new HashMap<>(); + private final List<SynchronizableFileType> types = new LinkedList<>(); + private final Timer timer; + private final HaaSOutputHolder holder; - - private long timeout; + + private final long timeout; public HaaSOutputObservableValueRegistry(HaaSOutputHolder holder, long timeout) { diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/JobDetailControl.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/JobDetailControl.java index 96a659e3277ef5012eb916214905c49f5f555292..4cad2bb63154b2b21a2fa77c02088623e942198e 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/JobDetailControl.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/JobDetailControl.java @@ -24,7 +24,7 @@ public class JobDetailControl extends TabPane implements CloseableControl { @FXML private LogViewControl standardOutput; - private HaaSOutputObservableValueRegistry observableValueRegistry; + private final HaaSOutputObservableValueRegistry observableValueRegistry; public JobDetailControl(BenchmarkJob job) { JavaFXRoutines.initRootAndController("JobDetail.fxml", this); diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/ObservableBenchmarkJobRegistry.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/ObservableBenchmarkJobRegistry.java index f6d83b6a90eb3773bdd29595a8b92c8910782a23..298841e7d5248a9c7a0ac035cf0e84406a87c2db 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/ObservableBenchmarkJobRegistry.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/ObservableBenchmarkJobRegistry.java @@ -3,7 +3,6 @@ package cz.it4i.fiji.haas_spim_benchmark.ui; import java.nio.file.Files; import java.util.concurrent.Executor; import java.util.function.Consumer; -import java.util.function.Function; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -13,7 +12,6 @@ import cz.it4i.fiji.haas.ui.UpdatableObservableValue.UpdateStatus; import cz.it4i.fiji.haas_java_client.JobState; import cz.it4i.fiji.haas_spim_benchmark.core.BenchmarkJobManager.BenchmarkJob; import cz.it4i.fiji.haas_spim_benchmark.core.ObservableBenchmarkJob; -import javafx.beans.value.ObservableValue; public class ObservableBenchmarkJobRegistry extends ObservableValueRegistry<BenchmarkJob,ObservableBenchmarkJob> { @@ -30,28 +28,16 @@ public class ObservableBenchmarkJobRegistry extends ObservableValueRegistry<Benc } @Override - public ObservableBenchmarkJob addIfAbsent(BenchmarkJob value) { - return (ObservableBenchmarkJob) super.addIfAbsent(value); - } - - @Override - public ObservableBenchmarkJob get(BenchmarkJob value) { - return (ObservableBenchmarkJob) super.get(value); - } - - @Override - protected ObservableValue<BenchmarkJob> remove(BenchmarkJob value) { - ObservableBenchmarkJob result = (ObservableBenchmarkJob) super.remove(value); + protected ObservableBenchmarkJob remove(BenchmarkJob value) { + ObservableBenchmarkJob result = super.remove(value); result.removed(); return result; } @Override - protected ObservableBenchmarkJob constructObservableValue(BenchmarkJob v, - Function<BenchmarkJob, UpdateStatus> updateFunction, Function<BenchmarkJob, Object> stateProvider) { - return new ObservableBenchmarkJob(v, updateFunction, stateProvider, executorUI); - } - + protected ObservableBenchmarkJob constructObservableValue(BenchmarkJob benchmarkJob) { + return new ObservableBenchmarkJob(benchmarkJob, getUpdateFunction(), getStateProvider(), executorUI); + } private static UpdateStatus update(BenchmarkJob t, Executor executor) { diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/ObservableTaskRegistry.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/ObservableTaskRegistry.java index 4c956af23195fb1780ebf10db67f78b5d4151b58..ff8cf0baa03a1c45e74999acb7444293fb920c79 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/ObservableTaskRegistry.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/ObservableTaskRegistry.java @@ -1,7 +1,6 @@ package cz.it4i.fiji.haas_spim_benchmark.ui; import java.util.function.Consumer; -import java.util.function.Function; import java.util.stream.Collectors; import cz.it4i.fiji.haas.ui.ObservableValueRegistry; @@ -11,16 +10,18 @@ import cz.it4i.fiji.haas_java_client.JobState; import cz.it4i.fiji.haas_spim_benchmark.core.Task; import cz.it4i.fiji.haas_spim_benchmark.core.TaskComputation; -public class ObservableTaskRegistry extends ObservableValueRegistry<Task,UpdatableObservableValue<Task>> { +public class ObservableTaskRegistry extends ObservableValueRegistry<Task, UpdatableObservableValue<Task>> { public ObservableTaskRegistry(Consumer<Task> removeConsumer) { - super(t -> update(t),t->t.getComputations().stream().map(tc->tc.getState()).collect(Collectors.toList()), removeConsumer); + super(t -> update(t), t -> t.getComputations().stream().map(tc -> tc.getState()).collect(Collectors.toList()), + removeConsumer); } - protected UpdatableObservableValue<Task> constructObservableValue(Task v, Function<Task, UpdateStatus> updateFunction, Function<Task, Object> stateProvider) { - return new UpdatableObservableValue<Task>(v, updateFunction, stateProvider); + @Override + protected UpdatableObservableValue<Task> constructObservableValue(Task task) { + return new UpdatableObservableValue<Task>(task, getUpdateFunction(), getStateProvider()); } - + private static UpdateStatus update(Task t) { boolean updated = false; t.update(); @@ -32,6 +33,4 @@ public class ObservableTaskRegistry extends ObservableValueRegistry<Task,Updatab return updated ? UpdateStatus.Updated : UpdateStatus.NotUpdated; } - - } diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/RemainingTimeFormater.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/RemainingTimeFormater.java index da24c79acb3f51ee49fa4b4c1374263558585006..30380b212c2d86ab65add5bb170a30a4ef7621cc 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/RemainingTimeFormater.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/RemainingTimeFormater.java @@ -2,8 +2,8 @@ package cz.it4i.fiji.haas_spim_benchmark.ui; public class RemainingTimeFormater { - public static String format(long duration) { - long s = duration / 1000; + public static String format(long durationInMiliseconds) { + long s = durationInMiliseconds / 1000; return String.format("%d:%02d:%02d", s / 3600, (s % 3600) / 60, (s % 60)); } } diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/SPIMPipelineProgressViewController.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/SPIMPipelineProgressViewController.java index 2b3de110b2065a43dbcf1581996bd65bd2bd797e..3580264fec1e5654b0b1c2389904f0f614d7f6b7 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/SPIMPipelineProgressViewController.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/SPIMPipelineProgressViewController.java @@ -77,8 +77,8 @@ public class SPIMPipelineProgressViewController extends BorderPane implements Cl private BenchmarkJob job; private Timer timer; private ObservableTaskRegistry registry; - private ExecutorService executorServiceWS; - private Executor executorFx = new FXFrameExecutorService(); + private final ExecutorService executorServiceWS; + private final Executor executorFx = new FXFrameExecutorService(); private Window root; public SPIMPipelineProgressViewController() { @@ -102,6 +102,7 @@ public class SPIMPipelineProgressViewController extends BorderPane implements Cl }); } + @Override public void close() { timer.cancel(); executorServiceWS.shutdown(); diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationAdapter.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationAdapter.java index 40c7fa85d825b3ffe1f06f9f96ea20156bcfea8e..a92c19f87972ab24d7519daa51ca5562a4da86af 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationAdapter.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationAdapter.java @@ -162,7 +162,7 @@ public class TaskComputationAdapter implements Closeable { Map<String, Log> logs = computation.getLogs().stream() .collect(Collectors.<Log, String, Log>toMap((Log log) -> log.getName(), (Log log) -> log)); TaskComputationAdapter.this.logs - .forEach(log -> ((ObservableLog) log).setContentValue(logs.get(log.getName()))); + .forEach(log -> log.setContentValue(logs.get(log.getName()))); outputs.forEach(value -> ((ObservableOutputFile) value).setSize(sizes.get(value.getValue().getName()))); } diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationControl.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationControl.java index c354adf04b1badb986ea9aa9d159c1fa0bc0e27a..6a26424fa076dcc31259d00cdabbaf02cc14aff6 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationControl.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/ui/TaskComputationControl.java @@ -31,13 +31,13 @@ public class TaskComputationControl extends TabPane implements CloseableControl, private TaskComputationAdapter adapter; - private Executor uiExecutor = new FXFrameExecutorService(); + private final Executor uiExecutor = new FXFrameExecutorService(); - private ExecutorService wsExecutorService = Executors.newSingleThreadExecutor(); + private final ExecutorService wsExecutorService = Executors.newSingleThreadExecutor(); @FXML private RemoteFilesInfoControl remoteFilesInfo; - private TaskComputation computation; + private final TaskComputation computation; public TaskComputationControl(TaskComputation computation) { diff --git a/haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/JFXPanel.java b/haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/JFXPanel.java index c921071127c6e72f9b9d23563d317e7e9f868303..a9cb94edb29b9937ba9321da19e6c5dcd4833282 100644 --- a/haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/JFXPanel.java +++ b/haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/JFXPanel.java @@ -17,7 +17,7 @@ public class JFXPanel<T extends Parent> extends javafx.embed.swing.JFXPanel { @SuppressWarnings("unused") private static Logger log = LoggerFactory.getLogger(cz.it4i.fiji.haas.ui.JFXPanel.class); - private T control; + private final T control; public JFXPanel(Supplier<T> fxSupplier) { Platform.setImplicitExit(false); diff --git a/haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/TestBenchmarkSPIMParametersImpl.java b/haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/TestBenchmarkSPIMParametersImpl.java index 35aa5f3df1ca34e1e6c1ef4a36307cbe7627d995..c0746a7615f1f5661c3d03d069ea1242168bccad 100644 --- a/haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/TestBenchmarkSPIMParametersImpl.java +++ b/haas-spim-benchmark/src/test/java/cz/it4i/fiji/haas/TestBenchmarkSPIMParametersImpl.java @@ -7,7 +7,7 @@ import cz.it4i.fiji.haas_spim_benchmark.core.BenchmarkSPIMParameters; class TestBenchmarkSPIMParametersImpl extends Configuration implements BenchmarkSPIMParameters{ - private Path workingDirectory; + private final Path workingDirectory; public TestBenchmarkSPIMParametersImpl(Path workingDirectory) { super("configuration.properties"); diff --git a/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/ScpClient.java b/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/ScpClient.java index b25dcae9113d6332a1008ed5fab5e52c2ea0fc8c..b29e82e106e83b7cdd547e1458ad02a658c1835a 100644 --- a/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/ScpClient.java +++ b/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/ScpClient.java @@ -85,7 +85,7 @@ public class ScpClient implements Closeable { public boolean download(String lfile, OutputStream os, TransferFileProgress progress) throws JSchException, IOException { - Session session = connectionSession(); + Session session = getConnectedSession(); // exec 'scp -f rfile' remotely String command = "scp -f " + lfile; @@ -194,7 +194,7 @@ public class ScpClient implements Closeable { public boolean upload(InputStream is, String fileName, long length, long lastModified, TransferFileProgress progress) throws JSchException, IOException { - Session session = connectionSession(); + Session session = getConnectedSession(); boolean ptimestamp = true; // exec 'scp -t rfile' remotely String command = "scp " + (ptimestamp ? "-p" : "") + " -t " + fileName; @@ -257,7 +257,7 @@ public class ScpClient implements Closeable { } public long size(String lfile) throws JSchException, IOException { - Session session = connectionSession(); + Session session = getConnectedSession(); // exec 'scp -f rfile' remotely String command = "scp -f " + lfile; @@ -310,7 +310,7 @@ public class ScpClient implements Closeable { @SuppressWarnings("unchecked") public List<Long> sizeByLs(String lfile) throws JSchException, IOException { - Session session = connectionSession(); + Session session = getConnectedSession(); // exec 'scp -f rfile' remotely Channel channel = session.openChannel("sftp"); @@ -333,15 +333,15 @@ public class ScpClient implements Closeable { if (session != null && session.isConnected()) { //log.info("disconnect"); session.disconnect(); - session = null; } + session = null; } private int getBufferSize() { return 1024 * 1024; } - private Session connectionSession() throws JSchException { + private Session getConnectedSession() throws JSchException { if (session == null) { session = jsch.getSession(username, hostName);