From 5ecfb47f0b7bd064d853bcaa1d7585196ddb9be8 Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Mon, 21 Jun 2010 10:44:09 +0000
Subject: [PATCH] LMS-1594 Added jline to the referenced libraries and re-order
 handling of command line options to not request user/password unless all
 other required arguments have been supplied.

SVN: 16638
---
 datastore_server/build/build.xml                     |  2 +-
 .../cisd/openbis/dss/client/api/cli/CommandPut.java  |  6 +++---
 .../openbis/dss/client/api/cli/DataSetArguments.java |  6 +++---
 .../openbis/dss/client/api/cli/GlobalArguments.java  | 12 ++++++++----
 4 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/datastore_server/build/build.xml b/datastore_server/build/build.xml
index 59d75c083f1..5e884d8cf5c 100644
--- a/datastore_server/build/build.xml
+++ b/datastore_server/build/build.xml
@@ -167,7 +167,7 @@
         <attribute name="Main-Class" value="ch.systemsx.cisd.openbis.dss.client.api.cli.DssClient" />
         <attribute name="Class-Path"
                    value="cisd-base.jar cisd-args4j.jar stream-supporting-httpinvoker.jar log4j.jar commons-lang.jar commons-io.jar commons-logging.jar 
- commons-codec.jar commons-httpclient.jar spring.jar" />
+ commons-codec.jar commons-httpclient.jar spring.jar jline.jar" />
         <attribute name="Version" value="${version.number}" />
         <attribute name="Build-Number"
                    value="${version.number} (r${revision.number},${clean.flag})" />
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/cli/CommandPut.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/cli/CommandPut.java
index c40c4159432..881d58de6bb 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/cli/CommandPut.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/cli/CommandPut.java
@@ -97,9 +97,6 @@ class CommandPut extends AbstractCommand
         @Override
         public boolean isComplete()
         {
-            if (false == super.isComplete())
-                return false;
-
             if (getArguments().size() < 3)
                 return false;
 
@@ -121,6 +118,9 @@ class CommandPut extends AbstractCommand
                 return false;
             }
 
+            if (false == super.isComplete())
+                return false;
+
             return true;
         }
     }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/cli/DataSetArguments.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/cli/DataSetArguments.java
index bce2b8ad1ce..db62d9afaed 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/cli/DataSetArguments.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/cli/DataSetArguments.java
@@ -56,14 +56,14 @@ class DataSetArguments extends GlobalArguments
     @Override
     public boolean isComplete()
     {
-        if (false == super.isComplete())
-            return false;
-
         if (getDataSetCode().length() < 1)
         {
             return false;
         }
 
+        if (false == super.isComplete())
+            return false;
+
         return true;
     }
 }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/cli/GlobalArguments.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/cli/GlobalArguments.java
index d7f13bd9ec5..261c83bce6a 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/cli/GlobalArguments.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/client/api/cli/GlobalArguments.java
@@ -100,6 +100,9 @@ class GlobalArguments
 
     /**
      * Check that the arguments make sense.
+     * <p>
+     * Note to subclassers -- this command might prompt the user for username and/or password and
+     * thus should be called as the last part of subclass overrides of this method.
      */
     public boolean isComplete()
     {
@@ -108,6 +111,11 @@ class GlobalArguments
             return true;
         }
 
+        if (serverBaseUrl.length() < 1)
+        {
+            return false;
+        }
+
         // At the moment, username, passowrd, and server base url should all be non-empty
 
         // If username wasn't specified, read username and password from console
@@ -146,10 +154,6 @@ class GlobalArguments
                 return false;
             }
         }
-        if (serverBaseUrl.length() < 1)
-        {
-            return false;
-        }
 
         return true;
     }
-- 
GitLab