Merge "AAFcli.java -Declare "value" on a separate line"
[aaf/authz.git] / auth / auth-cmd / src / main / java / org / onap / aaf / auth / cmd / AAFcli.java
index 9e01d7c..bf4193e 100644 (file)
@@ -4,14 +4,14 @@
  * ===========================================================================
  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
  *
- * Modifications Copyright (C) 2018 IBM.
+ * Modifications Copyright (C) 2019 IBM.
  * ===========================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -90,7 +90,7 @@ public class AAFcli {
     private static int globalDelay=0;
 
     // Create when only have Access
-    public AAFcli(Access access, Writer wtr, HMangr hman, SecurityInfoC<HttpURLConnection> si, SecuritySetter<HttpURLConnection> ss) throws APIException, CadiException {
+    public AAFcli(Access access, Writer wtr, HMangr hman, SecurityInfoC<HttpURLConnection> si, SecuritySetter<HttpURLConnection> ss) throws APIException {
         this(access,new AuthzEnv(access.getProperties()),wtr,hman, si,ss);
     }
 
@@ -124,10 +124,10 @@ public class AAFcli {
     }
 
     public AuthzEnv env() {
-               return env;
-       }
+        return env;
+    }
 
-       public static int timeout() {
+    public static int timeout() {
         return TIMEOUT;
     }
 
@@ -215,8 +215,7 @@ public class AAFcli {
                     }
                 } else if ("expect".equalsIgnoreCase(largs[idx])) {
                     expect.clear();
-                    if (largs.length > idx++) {
-                        if (!"nothing".equals(largs[idx])) {
+                    if ((largs.length > idx++)&&(!"nothing".equals(largs[idx]))) {
                             for (String str : largs[idx].split(",")) {
                                 try {
                                     if ("Exception".equalsIgnoreCase(str)) {
@@ -229,12 +228,11 @@ public class AAFcli {
                                 }
                             }
                         ++idx;
-                        }
-                    }
+                }
                     continue;
                     // Sleep, typically for reports, to allow DB to update
                     // Milliseconds
-                    
+
                 } else if ("sleep".equalsIgnoreCase(largs[idx])) {
                     Integer t = Integer.parseInt(largs[++idx]);
                     pw.println("sleep " + t);
@@ -250,7 +248,13 @@ public class AAFcli {
                     pw.println("Press <Return> to continue...");
                     ++idx;
                     // Sonar insists we do something with the string, though it's only a pause.  Not very helpful...
-                    String sonar = new BufferedReader(new InputStreamReader(System.in)).readLine();
+                    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
+                    String sonar;
+                    try {
+                        sonar = br.readLine();
+                    } finally {
+                        br.close();
+                    }
                     sonar=""; // this useless code brought to you by Sonar.
                     pw.print(sonar);
                     continue;
@@ -260,7 +264,8 @@ public class AAFcli {
                 } else if ("set".equalsIgnoreCase(largs[idx])) {
                     while (largs.length > ++idx) {
                         int equals = largs[idx].indexOf('=');
-                        String tag, value;
+                        String tag;
+                        String value;
                         if (equals < 0) {
                             tag = largs[idx];
                             value = access.getProperty(Config.AAF_APPPASS,null);
@@ -294,8 +299,8 @@ public class AAFcli {
                     // Allow Script to indicate if Failure is what is expected
                 }
 
-            } 
-            
+            }
+
             if ("REQUEST".equalsIgnoreCase(largs[idx])) {
                 request=true;
                 ++idx;
@@ -332,7 +337,7 @@ public class AAFcli {
                             Thread.sleep((long)(delay+globalDelay));
                         }
                     } catch (Exception e) {
-                       if (expect.contains(-1)) {
+                        if (expect.contains(-1)) {
                             pw.println(e.getMessage());
                             ret = -1;
                         } else {
@@ -370,7 +375,8 @@ public class AAFcli {
         char last = 0;
         for (int i = 0; i < line.length(); ++i) {
             char ch;
-            if (Character.isWhitespace(ch = line.charAt(i))) {
+            ch = line.charAt(i);
+            if (Character.isWhitespace(ch)) {
                 if (start || last==',') {
                     continue; // trim
                 } else if (quote != 0) {
@@ -411,7 +417,7 @@ public class AAFcli {
         System.out.println("For instance, C-b means hold ctrl key and press b, M-b means hold alt and press b\n");
 
         System.out.println("Basic Keybindings:");
-        System.out.println("\tC-l - clear screen");        
+        System.out.println("\tC-l - clear screen");
         System.out.println("\tC-a - beginning of line");
         System.out.println("\tC-e - end of line");
         System.out.println("\tC-b - backward character (left arrow also works)");
@@ -436,7 +442,7 @@ public class AAFcli {
      */
     public static void main(String[] args) {
         int rv = 0;
-        
+
         try {
             AAFSSO aafsso = new AAFSSO(args);
             String noexit = aafsso.access().getProperty("no_exit");
@@ -446,7 +452,7 @@ public class AAFcli {
                 if (aafsso.ok()) {
                     Define.set(access);
                     AuthzEnv env = new AuthzEnv(access);
-                    
+
                     Reader rdr = null;
                     boolean exitOnFailure = true;
                     /*
@@ -484,15 +490,15 @@ public class AAFcli {
                             sb.append(args[i]);
                         }
                     }
-                    
+
                     AAFConHttp aafcon = new AAFConHttp(access);
-//                    
+//
 //                    SecurityInfoC<?> si = aafcon.securityInfo();
 //                    Locator<URI> loc;
-                    
+
                     aafsso.setLogDefault();
                     aafsso.setStdErrDefault();
-    
+
                     // Note, with AAF Locator, this may not longer be necessary 3/2018 Jonathan
                     if (!aafsso.loginOnly()) {
 //                        try {
@@ -504,16 +510,16 @@ public class AAFcli {
 //                            // Other Access is done writing to StdOut and StdErr, reset Std out
 //                            aafsso.setLogDefault();
 //                        }
-    
+
                         TIMEOUT = Integer.parseInt(access.getProperty(Config.AAF_CONN_TIMEOUT, Config.AAF_CONN_TIMEOUT_DEF));
 //                        HMangr hman = new HMangr(access, loc).readTimeout(TIMEOUT).apiVersion(Config.AAF_DEFAULT_API_VERSION);
-                        
+
                         if (access.getProperty(Config.AAF_DEFAULT_REALM)==null) {
                             access.setProperty(Config.AAF_DEFAULT_REALM, "people.osaaf.org");
                             aafsso.addProp(Config.AAF_DEFAULT_REALM, "people.osaaf.org");
                         }
-            
-                        AAFcli aafcli = new AAFcli(access,env, new OutputStreamWriter(System.out),  
+
+                        AAFcli aafcli = new AAFcli(access,env, new OutputStreamWriter(System.out),
                                 aafcon.hman(), aafcon.securityInfo(), aafcon.securityInfo().defSS);
 //                            new HBasicAuthSS(si,aafsso.user(), access.decrypt(aafsso.enc_pass(),false)));
 //                        }
@@ -535,24 +541,24 @@ public class AAFcli {
                                 System.out.println("Type 'help' for short help or 'help -d' for detailed help with aafcli commands");
                                 System.out.println("Type '?' for help with command line editing");
                                 System.out.println("Type 'q', 'quit', or 'exit' to quit aafcli\n");
-            
+
                                 ConsoleReader reader = new ConsoleReader();
                                 try {
                                     reader.setPrompt("aafcli > ");
-                
+
                                     String line;
                                     while ((line = reader.readLine()) != null) {
                                         showDetails = (line.contains("-d"));
-                
-                                        if (line.equalsIgnoreCase("quit") || line.equalsIgnoreCase("q") || line.equalsIgnoreCase("exit")) {
+
+                                        if ("quit".equalsIgnoreCase(line) || "q".equalsIgnoreCase(line) || "exit".equalsIgnoreCase(line)) {
                                             break;
-                                        } else if (line.equalsIgnoreCase("--help -d") || line.equalsIgnoreCase("help -d") 
-                                                || line.equalsIgnoreCase("help")) {
+                                        } else if ("--help -d".equalsIgnoreCase(line) || "help -d".equalsIgnoreCase(line)
+                                                || "help".equalsIgnoreCase(line)) {
                                             line = "--help";
-                                        } else if (line.equalsIgnoreCase("cls")) {
+                                        } else if ("cls".equalsIgnoreCase(line)) {
                                             reader.clearScreen();
                                             continue;
-                                        } else if (line.equalsIgnoreCase("?")) {
+                                        } else if ("?".equalsIgnoreCase(line)) {
                                             keyboardHelp();
                                             continue;
                                         }
@@ -569,12 +575,16 @@ public class AAFcli {
                                 }
                             } else if (rdr != null) {
                                 BufferedReader br = new BufferedReader(rdr);
-                                String line;
-                                while ((line = br.readLine()) != null) {
-                                    if (!aafcli.eval(line) && exitOnFailure) {
-                                        rv = 1;
-                                        break;
+                                try {
+                                    String line;
+                                    while ((line = br.readLine()) != null) {
+                                        if (!aafcli.eval(line) && exitOnFailure) {
+                                            rv = 1;
+                                            break;
+                                        }
                                     }
+                                } finally {
+                                    br.close();
                                 }
                             } else { // just run the command line
                                 aafcli.verbose(false);
@@ -583,10 +593,10 @@ public class AAFcli {
                                 }
                                 rv = aafcli.eval(sb.toString()) ? 0 : 1;
                             }
-                            
+
                         } finally {
                             aafcli.close();
-            
+
                             // Don't close if No Reader, or it's a Reader of Standard In
                             if (rdr != null && !(rdr instanceof InputStreamReader)) {
                                 rdr.close();
@@ -620,7 +630,7 @@ public class AAFcli {
     public boolean isTest() {
         return AAFcli.isTest;
     }
-    
+
     public boolean isDetailed() {
         return AAFcli.showDetails;
     }