diff --git a/pom.xml b/pom.xml index a4bba84..6b3eb0b 100644 --- a/pom.xml +++ b/pom.xml @@ -1,13 +1,13 @@ + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 life.qbic postman-cli 1.3.0 Postman cli - http://github.com/qbicsoftware/postman-cli + https://github.com/qbicsoftware/postman-cli A client software written in Java for dataset downloads from QBiC's data management system openBIS jar diff --git a/src/main/java/life/qbic/App.java b/src/main/java/life/qbic/App.java index 4f216a5..5a7d155 100644 --- a/src/main/java/life/qbic/App.java +++ b/src/main/java/life/qbic/App.java @@ -1,10 +1,8 @@ package life.qbic; -import java.io.File; -import java.io.IOException; -import java.util.Optional; import life.qbic.io.commandline.OpenBISPasswordParser; import life.qbic.io.commandline.PostmanCommandLineOptions; +import life.qbic.model.Configuration; import life.qbic.model.download.Authentication; import life.qbic.model.download.AuthenticationException; import life.qbic.model.download.ConnectionException; @@ -12,6 +10,9 @@ import org.apache.logging.log4j.Logger; import picocli.CommandLine; +import java.io.File; +import java.util.Optional; + /** * postman for staging data from openBIS */ @@ -19,7 +20,7 @@ public class App { private static final Logger LOG = LogManager.getLogger(App.class); - public static void main(String[] args) throws IOException { + public static void main(String[] args) { CommandLine cmd = new CommandLine(new PostmanCommandLineOptions()); int exitCode = cmd.execute(args); @@ -67,7 +68,15 @@ public static Authentication loginToOpenBIS( } // Ensure 'logs' folder is created - new File(System.getProperty("user.dir") + File.separator + "logs").mkdirs(); + File logFolder = new File(Configuration.LOG_PATH.toAbsolutePath().toString()); + if (!logFolder.exists()) { + boolean logFolderCreated = logFolder.mkdirs(); + if (!logFolderCreated) { + LOG.error("Could not create log folder '" + logFolder.getAbsolutePath() + "'"); + System.exit(1); + } + } + Authentication authentication = new Authentication( user, diff --git a/src/main/java/life/qbic/io/parser/IdentifierParser.java b/src/main/java/life/qbic/io/parser/IdentifierParser.java index a6a7a55..33940ba 100644 --- a/src/main/java/life/qbic/io/parser/IdentifierParser.java +++ b/src/main/java/life/qbic/io/parser/IdentifierParser.java @@ -12,7 +12,7 @@ public class IdentifierParser { * Retrieve the identifiers from provided file * * @return Identifiers for which datasets will be retrieved - * @throws IOException + * @throws IOException if the file could not be read successfully */ public static List readProvidedIdentifiers(File file) throws IOException { List identifiers = new ArrayList<>(); diff --git a/src/main/java/life/qbic/model/Configuration.java b/src/main/java/life/qbic/model/Configuration.java index e3afdd5..cb567bd 100644 --- a/src/main/java/life/qbic/model/Configuration.java +++ b/src/main/java/life/qbic/model/Configuration.java @@ -8,6 +8,6 @@ */ public class Configuration { - public static long MAX_DOWNLOAD_ATTEMPTS = 3; - public static Path LOG_PATH = Paths.get(System.getProperty("user.dir"),"logs"); + public static final long MAX_DOWNLOAD_ATTEMPTS = 3; + public static final Path LOG_PATH = Paths.get(System.getProperty("user.dir"),"logs"); } diff --git a/src/main/java/life/qbic/model/download/Authentication.java b/src/main/java/life/qbic/model/download/Authentication.java index 35592d6..5a17c30 100644 --- a/src/main/java/life/qbic/model/download/Authentication.java +++ b/src/main/java/life/qbic/model/download/Authentication.java @@ -30,7 +30,7 @@ public Authentication( /** * Login method for openBIS authentication * - * returns 0 if successful, 1 else + * @throws AuthenticationException in case the authentication failed */ public void login() throws ConnectionException, AuthenticationException { try { diff --git a/src/main/java/life/qbic/model/download/QbicDataDisplay.java b/src/main/java/life/qbic/model/download/QbicDataDisplay.java index 7f12cdf..0cea822 100644 --- a/src/main/java/life/qbic/model/download/QbicDataDisplay.java +++ b/src/main/java/life/qbic/model/download/QbicDataDisplay.java @@ -6,27 +6,24 @@ import ch.ethz.sis.openbis.generic.dssapi.v3.IDataStoreServerApi; import ch.ethz.sis.openbis.generic.dssapi.v3.dto.datasetfile.DataSetFile; import ch.systemsx.cisd.common.spring.HttpInvokerUtils; +import life.qbic.model.files.FileSize; +import life.qbic.model.files.FileSizeFormatter; + import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; -import java.util.Comparator; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.function.Predicate; import java.util.stream.Collectors; -import life.qbic.model.files.FileSize; -import life.qbic.model.files.FileSizeFormatter; /** * Lists information about requested datasets and their files */ public class QbicDataDisplay { - String sessionToken; + final String sessionToken; - DateTimeFormatter utcDateTimeFormatterIso8601 = new DateTimeFormatterBuilder() + private final static DateTimeFormatter utcDateTimeFormatterIso8601 = new DateTimeFormatterBuilder() .appendPattern("yyyy-MM-dd'T'hh:mm:ss") .appendZoneId() .toFormatter() @@ -38,7 +35,7 @@ public class QbicDataDisplay { * Constructor for a QbicDataDisplay instance * * @param AppServerUri The openBIS application server URL (AS) - * @param DataServerUri The openBIS datastore server URL (DSS) + * @param dataServerUris The openBIS datastore server URLs (DSS) * @param sessionToken The session token for the datastore & application servers */ public QbicDataDisplay(