Additional changes to remove unnecessary CLI connection using lazy initialization.

Pushed to master under trivial rule.

--
Endi S. Dewata
>From a6b64e4f45348011885f268db92beab0d563ff22 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 03:42:55 +0100
Subject: [PATCH] Refactored ActivityCLI.

The ActivityCLI and its submodules have been modified to use lazy
initialization to get the PKIClient object.
---
 .../src/com/netscape/cmstools/logging/ActivityCLI.java           | 9 ++++++---
 .../src/com/netscape/cmstools/logging/ActivityFindCLI.java       | 4 +++-
 .../src/com/netscape/cmstools/logging/ActivityShowCLI.java       | 4 +++-
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/logging/ActivityCLI.java b/base/java-tools/src/com/netscape/cmstools/logging/ActivityCLI.java
index f53e687001f80ce6976ba537abcd6b00572e55c2..f0f125edd1ef080d767bc7c8e478e65a9edc08f9 100644
--- a/base/java-tools/src/com/netscape/cmstools/logging/ActivityCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/logging/ActivityCLI.java
@@ -20,6 +20,7 @@ package com.netscape.cmstools.logging;
 
 import org.jboss.resteasy.plugins.providers.atom.Link;
 
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.certsrv.logging.ActivityClient;
 import com.netscape.certsrv.logging.ActivityData;
 import com.netscape.cmstools.cli.CLI;
@@ -38,12 +39,14 @@ public class ActivityCLI extends CLI {
         addModule(new ActivityShowCLI(this));
     }
 
-    public void execute(String[] args) throws Exception {
+    public ActivityClient getActivityClient() throws Exception {
 
-        client = parent.getClient();
+        if (activityClient != null) return activityClient;
+
+        PKIClient client = getClient();
         activityClient = (ActivityClient)parent.getClient("activity");
 
-        super.execute(args);
+        return activityClient;
     }
 
     public static void printActivity(ActivityData activity, boolean showAll) {
diff --git a/base/java-tools/src/com/netscape/cmstools/logging/ActivityFindCLI.java b/base/java-tools/src/com/netscape/cmstools/logging/ActivityFindCLI.java
index 9e31795b4415fe34dc37a6e2f835c4a0a39b3d3e..75c635bdcff0cc525f8f70d73d984f739761ccb6 100644
--- a/base/java-tools/src/com/netscape/cmstools/logging/ActivityFindCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/logging/ActivityFindCLI.java
@@ -24,6 +24,7 @@ import java.util.Collection;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.logging.ActivityClient;
 import com.netscape.certsrv.logging.ActivityCollection;
 import com.netscape.certsrv.logging.ActivityData;
 import com.netscape.cmstools.cli.CLI;
@@ -75,7 +76,8 @@ public class ActivityFindCLI extends CLI {
         s = cmd.getOptionValue("size");
         Integer size = s == null ? null : Integer.valueOf(s);
 
-        ActivityCollection result = activityCLI.activityClient.findActivities(filter, start, size);
+        ActivityClient activityClient = activityCLI.getActivityClient();
+        ActivityCollection result = activityClient.findActivities(filter, start, size);
 
         MainCLI.printMessage(result.getTotal() + " entries matched");
         if (result.getTotal() == 0) return;
diff --git a/base/java-tools/src/com/netscape/cmstools/logging/ActivityShowCLI.java b/base/java-tools/src/com/netscape/cmstools/logging/ActivityShowCLI.java
index bae172c7912eb854ecdfb716cb1eafa67efdcfa3..e31cbf6ab50159ae1995f12533900270eabf7af4 100644
--- a/base/java-tools/src/com/netscape/cmstools/logging/ActivityShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/logging/ActivityShowCLI.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.logging.ActivityClient;
 import com.netscape.certsrv.logging.ActivityData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -59,7 +60,8 @@ public class ActivityShowCLI extends CLI {
 
         String activityID = args[0];
 
-        ActivityData activityData = activityCLI.activityClient.getActivity(activityID);
+        ActivityClient activityClient = activityCLI.getActivityClient();
+        ActivityData activityData = activityClient.getActivity(activityID);
 
         MainCLI.printMessage("Activity \"" + activityID + "\"");
 
-- 
2.9.3

>From ca04971010a92f84db8b0f18df0761192ea26023 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 03:46:09 +0100
Subject: [PATCH] Refactored AuditCLI.

The AuditCLI and its submodules have been modified to use lazy
initialization to get the PKIClient object.
---
 base/java-tools/src/com/netscape/cmstools/logging/AuditCLI.java  | 9 ++++++---
 .../src/com/netscape/cmstools/logging/AuditModifyCLI.java        | 6 ++++--
 .../src/com/netscape/cmstools/logging/AuditShowCLI.java          | 4 +++-
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/logging/AuditCLI.java b/base/java-tools/src/com/netscape/cmstools/logging/AuditCLI.java
index 531d9202015842b0abc311d7865eb2b97c2abf66..1e2273e5173a10575afd54f95b9d7eb8a07a9367 100644
--- a/base/java-tools/src/com/netscape/cmstools/logging/AuditCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/logging/AuditCLI.java
@@ -23,6 +23,7 @@ import java.util.Map;
 
 import org.jboss.resteasy.plugins.providers.atom.Link;
 
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.certsrv.logging.AuditClient;
 import com.netscape.certsrv.logging.AuditConfig;
 import com.netscape.cmstools.cli.CLI;
@@ -46,12 +47,14 @@ public class AuditCLI extends CLI {
         return "pki-audit";
     }
 
-    public void execute(String[] args) throws Exception {
+    public AuditClient getAuditClient() throws Exception {
 
-        client = parent.getClient();
+        if (auditClient != null) return auditClient;
+
+        PKIClient client = getClient();
         auditClient = (AuditClient)parent.getClient("audit");
 
-        super.execute(args);
+        return auditClient;
     }
 
     public static void printAuditConfig(AuditConfig auditConfig) throws IOException {
diff --git a/base/java-tools/src/com/netscape/cmstools/logging/AuditModifyCLI.java b/base/java-tools/src/com/netscape/cmstools/logging/AuditModifyCLI.java
index 4dc5d8bdc0426dbd1a9ae5a298e573df8e5cfb4d..5ffb8a34d6bb2a5891601cbd3cc21ffed23ff9da 100644
--- a/base/java-tools/src/com/netscape/cmstools/logging/AuditModifyCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/logging/AuditModifyCLI.java
@@ -28,6 +28,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.logging.AuditClient;
 import com.netscape.certsrv.logging.AuditConfig;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -83,6 +84,7 @@ public class AuditModifyCLI extends CLI {
         String input = cmd.getOptionValue("input");
         String output = cmd.getOptionValue("output");
 
+        AuditClient auditClient = auditCLI.getAuditClient();
         AuditConfig auditConfig;
 
         if (action == null) { // modify audit configuration
@@ -103,7 +105,7 @@ public class AuditModifyCLI extends CLI {
                 auditConfig = AuditConfig.valueOf(sw.toString());
             }
 
-            auditConfig = auditCLI.auditClient.updateAuditConfig(auditConfig);
+            auditConfig = auditClient.updateAuditConfig(auditConfig);
 
         } else { // change audit status
 
@@ -111,7 +113,7 @@ public class AuditModifyCLI extends CLI {
                 throw new Exception("Action and input file are mutually exclusive.");
             }
 
-            auditConfig = auditCLI.auditClient.changeAuditStatus(action);
+            auditConfig = auditClient.changeAuditStatus(action);
         }
 
         MainCLI.printMessage("Modified audit configuration");
diff --git a/base/java-tools/src/com/netscape/cmstools/logging/AuditShowCLI.java b/base/java-tools/src/com/netscape/cmstools/logging/AuditShowCLI.java
index c54055961c16acabcc1a14bf7c135b98b8050a4d..e6eadba81629ddde7e3b1022a2244ed37aaaeb44 100644
--- a/base/java-tools/src/com/netscape/cmstools/logging/AuditShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/logging/AuditShowCLI.java
@@ -25,6 +25,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.logging.AuditClient;
 import com.netscape.certsrv.logging.AuditConfig;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -70,7 +71,8 @@ public class AuditShowCLI extends CLI {
 
         String output = cmd.getOptionValue("output");
 
-        AuditConfig auditConfig = auditCLI.auditClient.getAuditConfig();
+        AuditClient auditClient = auditCLI.getAuditClient();
+        AuditConfig auditConfig = auditClient.getAuditConfig();
 
         if (output == null) {
             MainCLI.printMessage("Audit configuration");
-- 
2.9.3

>From f44965d97cb8d501797ad574ba4aee42d41634c7 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 03:49:46 +0100
Subject: [PATCH] Refactored AuthenticatorCLI.

The AuthenticatorCLI and its submodules have been modified to use
lazy initialization to get the PKIClient object.
---
 .../netscape/cmstools/tps/authenticator/AuthenticatorAddCLI.java | 4 +++-
 .../netscape/cmstools/tps/authenticator/AuthenticatorCLI.java    | 9 ++++++---
 .../cmstools/tps/authenticator/AuthenticatorFindCLI.java         | 4 +++-
 .../cmstools/tps/authenticator/AuthenticatorModifyCLI.java       | 6 ++++--
 .../cmstools/tps/authenticator/AuthenticatorRemoveCLI.java       | 4 +++-
 .../cmstools/tps/authenticator/AuthenticatorShowCLI.java         | 4 +++-
 6 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorAddCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorAddCLI.java
index 5ae04afa5f31d0cd9269b5177616a07e354c51e8..163b89c768a1ef978519766800301f5c3a877dc6 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorAddCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorAddCLI.java
@@ -27,6 +27,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.authenticator.AuthenticatorClient;
 import com.netscape.certsrv.tps.authenticator.AuthenticatorData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -87,7 +88,8 @@ public class AuthenticatorAddCLI extends CLI {
             authenticatorData = AuthenticatorData.valueOf(sw.toString());
         }
 
-        authenticatorData = authenticatorCLI.authenticatorClient.addAuthenticator(authenticatorData);
+        AuthenticatorClient authenticatorClient = authenticatorCLI.getAuthenticatorClient();
+        authenticatorData = authenticatorClient.addAuthenticator(authenticatorData);
 
         MainCLI.printMessage("Added authenticator \"" + authenticatorData.getID() + "\"");
 
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorCLI.java
index 8f802f57b681dca5fba491249636282d2b726a20..e35f414307a8e40605f66adc6447b870764e5677 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorCLI.java
@@ -23,6 +23,7 @@ import java.util.Map;
 
 import org.jboss.resteasy.plugins.providers.atom.Link;
 
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.certsrv.tps.authenticator.AuthenticatorClient;
 import com.netscape.certsrv.tps.authenticator.AuthenticatorData;
 import com.netscape.cmstools.cli.CLI;
@@ -44,12 +45,14 @@ public class AuthenticatorCLI extends CLI {
         addModule(new AuthenticatorShowCLI(this));
     }
 
-    public void execute(String[] args) throws Exception {
+    public AuthenticatorClient getAuthenticatorClient() throws Exception {
 
-        client = parent.getClient();
+        if (authenticatorClient != null) return authenticatorClient;
+
+        PKIClient client = getClient();
         authenticatorClient = (AuthenticatorClient)parent.getClient("authenticator");
 
-        super.execute(args);
+        return authenticatorClient;
     }
 
     public static void printAuthenticatorData(AuthenticatorData authenticatorData, boolean showProperties) throws IOException {
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorFindCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorFindCLI.java
index 778f370f00efb34ce7e35a1731e9ba7282e417ca..ec46476afdfe503a6c32e2a70b717ad9074e158b 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorFindCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorFindCLI.java
@@ -24,6 +24,7 @@ import java.util.Collection;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.authenticator.AuthenticatorClient;
 import com.netscape.certsrv.tps.authenticator.AuthenticatorCollection;
 import com.netscape.certsrv.tps.authenticator.AuthenticatorData;
 import com.netscape.cmstools.cli.CLI;
@@ -75,7 +76,8 @@ public class AuthenticatorFindCLI extends CLI {
         s = cmd.getOptionValue("size");
         Integer size = s == null ? null : Integer.valueOf(s);
 
-        AuthenticatorCollection result = authenticatorCLI.authenticatorClient.findAuthenticators(filter, start, size);
+        AuthenticatorClient authenticatorClient = authenticatorCLI.getAuthenticatorClient();
+        AuthenticatorCollection result = authenticatorClient.findAuthenticators(filter, start, size);
 
         MainCLI.printMessage(result.getTotal() + " entries matched");
         if (result.getTotal() == 0) return;
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorModifyCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorModifyCLI.java
index db5849b3191c1dc87dffdd54b07ee96b40c9abd4..4e6baeb9b4c408a0281523efc98582bdcf90352b 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorModifyCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorModifyCLI.java
@@ -27,6 +27,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.authenticator.AuthenticatorClient;
 import com.netscape.certsrv.tps.authenticator.AuthenticatorData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -78,6 +79,7 @@ public class AuthenticatorModifyCLI extends CLI {
         String action = cmd.getOptionValue("action", "update");
         String input = cmd.getOptionValue("input");
 
+        AuthenticatorClient authenticatorClient = authenticatorCLI.getAuthenticatorClient();
         AuthenticatorData authenticatorData;
 
         if (action.equals("update")) {
@@ -98,10 +100,10 @@ public class AuthenticatorModifyCLI extends CLI {
                 authenticatorData = AuthenticatorData.valueOf(sw.toString());
             }
 
-            authenticatorData = authenticatorCLI.authenticatorClient.updateAuthenticator(authenticatorID, authenticatorData);
+            authenticatorData = authenticatorClient.updateAuthenticator(authenticatorID, authenticatorData);
 
         } else { // other actions
-            authenticatorData = authenticatorCLI.authenticatorClient.changeAuthenticatorStatus(authenticatorID, action);
+            authenticatorData = authenticatorClient.changeAuthenticatorStatus(authenticatorID, action);
         }
 
         MainCLI.printMessage("Modified authenticator \"" + authenticatorID + "\"");
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorRemoveCLI.java
index 1e40873db63b88bfe4c24c80ed62b80ae3be0cc6..e3327b5322ff7c91ceb3b95dd6f445659db00732 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorRemoveCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorRemoveCLI.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.tps.authenticator.AuthenticatorClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -58,7 +59,8 @@ public class AuthenticatorRemoveCLI extends CLI {
 
         String authenticatorID = args[0];
 
-        authenticatorCLI.authenticatorClient.removeAuthenticator(authenticatorID);
+        AuthenticatorClient authenticatorClient = authenticatorCLI.getAuthenticatorClient();
+        authenticatorClient.removeAuthenticator(authenticatorID);
 
         MainCLI.printMessage("Deleted authenticator \"" + authenticatorID + "\"");
     }
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorShowCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorShowCLI.java
index 6df9129c069f0383023be4a398054e38d8e35fa3..f764bde1d5d02145af5327983c7b07c61031aaf0 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/authenticator/AuthenticatorShowCLI.java
@@ -25,6 +25,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.authenticator.AuthenticatorClient;
 import com.netscape.certsrv.tps.authenticator.AuthenticatorData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -71,7 +72,8 @@ public class AuthenticatorShowCLI extends CLI {
         String authenticatorID = args[0];
         String output = cmd.getOptionValue("output");
 
-        AuthenticatorData authenticatorData = authenticatorCLI.authenticatorClient.getAuthenticator(authenticatorID);
+        AuthenticatorClient authenticatorClient = authenticatorCLI.getAuthenticatorClient();
+        AuthenticatorData authenticatorData = authenticatorClient.getAuthenticator(authenticatorID);
 
         if (output == null) {
             MainCLI.printMessage("Authenticator \"" + authenticatorID + "\"");
-- 
2.9.3

>From 98a767027aa05b9ea7ef7c66553c66a5056f23a2 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 03:53:07 +0100
Subject: [PATCH] Refactored TPSCertCLI.

The TPSCertCLI and its submodules have been modified to use lazy
initialization to get the PKIClient object.
---
 .../src/com/netscape/cmstools/tps/cert/TPSCertCLI.java           | 9 ++++++---
 .../src/com/netscape/cmstools/tps/cert/TPSCertFindCLI.java       | 4 +++-
 .../src/com/netscape/cmstools/tps/cert/TPSCertShowCLI.java       | 4 +++-
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/tps/cert/TPSCertCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/cert/TPSCertCLI.java
index 4fce3bcc3511ff3ca0bf3c265a00c8074ac3e5c3..835a522e1f066e62a7b7448a67548c888a85d3ec 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/cert/TPSCertCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/cert/TPSCertCLI.java
@@ -20,6 +20,7 @@ package com.netscape.cmstools.tps.cert;
 
 import org.jboss.resteasy.plugins.providers.atom.Link;
 
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.certsrv.tps.cert.TPSCertClient;
 import com.netscape.certsrv.tps.cert.TPSCertData;
 import com.netscape.cmstools.cli.CLI;
@@ -38,12 +39,14 @@ public class TPSCertCLI extends CLI {
         addModule(new TPSCertShowCLI(this));
     }
 
-    public void execute(String[] args) throws Exception {
+    public TPSCertClient getTPSCertClient() throws Exception {
 
-        client = parent.getClient();
+        if (certClient != null) return certClient;
+
+        PKIClient client = getClient();
         certClient = (TPSCertClient)parent.getClient("cert");
 
-        super.execute(args);
+        return certClient;
     }
 
     public static void printCert(TPSCertData cert) {
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/cert/TPSCertFindCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/cert/TPSCertFindCLI.java
index bea4266c0c473fcd6020068fc8e8de7764b65eec..a73a211d83deb15faa12ddc5883f237a9aa54c1a 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/cert/TPSCertFindCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/cert/TPSCertFindCLI.java
@@ -24,6 +24,7 @@ import java.util.Collection;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.cert.TPSCertClient;
 import com.netscape.certsrv.tps.cert.TPSCertCollection;
 import com.netscape.certsrv.tps.cert.TPSCertData;
 import com.netscape.cmstools.cli.CLI;
@@ -91,7 +92,8 @@ public class TPSCertFindCLI extends CLI {
             throw new Exception("Invalid value for --size parameter: " + string4, e);
         }
 
-        TPSCertCollection result = certCLI.certClient.findCerts(filter, tokenID, start, size);
+        TPSCertClient certClient = certCLI.getTPSCertClient();
+        TPSCertCollection result = certClient.findCerts(filter, tokenID, start, size);
 
         MainCLI.printMessage(result.getTotal() + " entries matched");
         if (result.getTotal() == 0) return;
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/cert/TPSCertShowCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/cert/TPSCertShowCLI.java
index 16eaaf25b34d07d3f7c4de9450d2509f35d51b49..f21f9f6f8d5ec4125538c60b4c1b6c3c985a9afa 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/cert/TPSCertShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/cert/TPSCertShowCLI.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.tps.cert.TPSCertClient;
 import com.netscape.certsrv.tps.cert.TPSCertData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -59,7 +60,8 @@ public class TPSCertShowCLI extends CLI {
 
         String certID = cmdArgs[0];
 
-        TPSCertData certData = certCLI.certClient.getCert(certID);
+        TPSCertClient certClient = certCLI.getTPSCertClient();
+        TPSCertData certData = certClient.getCert(certID);
 
         MainCLI.printMessage("Certificate \"" + certID + "\"");
 
-- 
2.9.3

>From b4174fa26cba3e55a642f271bbebe26250348592 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 03:56:03 +0100
Subject: [PATCH] Refactored TPS ConfigCLI.

The TPS ConfigCLI and its submodules have been modified to use
lazy initialization to get the PKIClient object.
---
 .../src/com/netscape/cmstools/tps/config/ConfigCLI.java          | 9 ++++++---
 .../src/com/netscape/cmstools/tps/config/ConfigModifyCLI.java    | 4 +++-
 .../src/com/netscape/cmstools/tps/config/ConfigShowCLI.java      | 4 +++-
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/tps/config/ConfigCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/config/ConfigCLI.java
index f7b53ed63ba55cb3afed541bf4e821d2b345156f..d97e9b103faa07fb96c769b46703794e7705ea04 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/config/ConfigCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/config/ConfigCLI.java
@@ -23,6 +23,7 @@ import java.util.Map;
 
 import org.jboss.resteasy.plugins.providers.atom.Link;
 
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.certsrv.tps.config.ConfigClient;
 import com.netscape.certsrv.tps.config.ConfigData;
 import com.netscape.cmstools.cli.CLI;
@@ -41,12 +42,14 @@ public class ConfigCLI extends CLI {
         addModule(new ConfigShowCLI(this));
     }
 
-    public void execute(String[] args) throws Exception {
+    public ConfigClient getConfigClient() throws Exception {
 
-        client = parent.getClient();
+        if (configClient != null) return configClient;
+
+        PKIClient client = getClient();
         configClient = (ConfigClient)parent.getClient("config");
 
-        super.execute(args);
+        return configClient;
     }
 
     public static void printConfigData(ConfigData configData) throws IOException {
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/config/ConfigModifyCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/config/ConfigModifyCLI.java
index c5da9431087aaa22640ea1b6e281847af9977384..06aaf1936c4c336bc7bd0da411ca6a20277d112f 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/config/ConfigModifyCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/config/ConfigModifyCLI.java
@@ -28,6 +28,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.config.ConfigClient;
 import com.netscape.certsrv.tps.config.ConfigData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -93,7 +94,8 @@ public class ConfigModifyCLI extends CLI {
             configData = ConfigData.valueOf(sw.toString());
         }
 
-        configData = configCLI.configClient.updateConfig(configData);
+        ConfigClient configClient = configCLI.getConfigClient();
+        configData = configClient.updateConfig(configData);
 
         MainCLI.printMessage("Updated configuration");
 
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/config/ConfigShowCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/config/ConfigShowCLI.java
index d7f20e80da329aa3bb1b954c3a893fd736cb45d1..627d2fef335bfe2c318a1bcacc34103d294bd897 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/config/ConfigShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/config/ConfigShowCLI.java
@@ -25,6 +25,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.config.ConfigClient;
 import com.netscape.certsrv.tps.config.ConfigData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -70,7 +71,8 @@ public class ConfigShowCLI extends CLI {
 
         String output = cmd.getOptionValue("output");
 
-        ConfigData configData = configCLI.configClient.getConfig();
+        ConfigClient configClient = configCLI.getConfigClient();
+        ConfigData configData = configClient.getConfig();
 
         if (output == null) {
             MainCLI.printMessage("Configuration");
-- 
2.9.3

>From 4a044a9438108b918e8a303ced6f13e45a866382 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 04:00:26 +0100
Subject: [PATCH] Refactored TPS ProfileCLI.

The TPS ProfileCLI and its submodules have been modified to use
lazy initialization to get the PKIClient object.
---
 .../src/com/netscape/cmstools/tps/profile/ProfileAddCLI.java     | 4 +++-
 .../src/com/netscape/cmstools/tps/profile/ProfileCLI.java        | 9 ++++++---
 .../src/com/netscape/cmstools/tps/profile/ProfileFindCLI.java    | 4 +++-
 .../src/com/netscape/cmstools/tps/profile/ProfileModifyCLI.java  | 6 ++++--
 .../src/com/netscape/cmstools/tps/profile/ProfileRemoveCLI.java  | 4 +++-
 .../src/com/netscape/cmstools/tps/profile/ProfileShowCLI.java    | 4 +++-
 6 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileAddCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileAddCLI.java
index 1f5cec65667bd197364ebf0c4331652517642de5..48c3552d52365258452b8220916e73c0f8bf3f8d 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileAddCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileAddCLI.java
@@ -27,6 +27,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.profile.ProfileClient;
 import com.netscape.certsrv.tps.profile.ProfileData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -87,7 +88,8 @@ public class ProfileAddCLI extends CLI {
             profileData = ProfileData.valueOf(sw.toString());
         }
 
-        profileData = profileCLI.profileClient.addProfile(profileData);
+        ProfileClient profileClient = profileCLI.getProfileClient();
+        profileData = profileClient.addProfile(profileData);
 
         MainCLI.printMessage("Added profile \"" + profileData.getID() + "\"");
 
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileCLI.java
index 7c68c8ebb220ae1fff629f0bc1f6237b4fef8a6e..a323c4e9b4bf4b283c110f969905487d7ff1a0b5 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileCLI.java
@@ -23,6 +23,7 @@ import java.util.Map;
 
 import org.jboss.resteasy.plugins.providers.atom.Link;
 
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.certsrv.tps.profile.ProfileClient;
 import com.netscape.certsrv.tps.profile.ProfileData;
 import com.netscape.cmstools.cli.CLI;
@@ -51,12 +52,14 @@ public class ProfileCLI extends CLI {
         return "pki-tps-profile";
     }
 
-    public void execute(String[] args) throws Exception {
+    public ProfileClient getProfileClient() throws Exception {
 
-        client = parent.getClient();
+        if (profileClient != null) return profileClient;
+
+        PKIClient client = getClient();
         profileClient = (ProfileClient)parent.getClient("profile");
 
-        super.execute(args);
+        return profileClient;
     }
 
     public static void printProfileData(ProfileData profileData, boolean showProperties) throws IOException {
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileFindCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileFindCLI.java
index d07c542252409d6a79289e9dd20624f65385373f..f2670f078131a3e6e33f35fa007f5abb2f58e93a 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileFindCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileFindCLI.java
@@ -24,6 +24,7 @@ import java.util.Collection;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.profile.ProfileClient;
 import com.netscape.certsrv.tps.profile.ProfileCollection;
 import com.netscape.certsrv.tps.profile.ProfileData;
 import com.netscape.cmstools.cli.CLI;
@@ -75,7 +76,8 @@ public class ProfileFindCLI extends CLI {
         s = cmd.getOptionValue("size");
         Integer size = s == null ? null : Integer.valueOf(s);
 
-        ProfileCollection result = profileCLI.profileClient.findProfiles(filter, start, size);
+        ProfileClient profileClient = profileCLI.getProfileClient();
+        ProfileCollection result = profileClient.findProfiles(filter, start, size);
 
         MainCLI.printMessage(result.getTotal() + " entries matched");
         if (result.getTotal() == 0) return;
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileModifyCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileModifyCLI.java
index e51740cf783997d9f9e9af2a61f1957e3b9265f5..4c218a287f17141e8354da8ea0c503ff511e47dd 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileModifyCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileModifyCLI.java
@@ -27,6 +27,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.profile.ProfileClient;
 import com.netscape.certsrv.tps.profile.ProfileData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -78,6 +79,7 @@ public class ProfileModifyCLI extends CLI {
         String action = cmd.getOptionValue("action", "update");
         String input = cmd.getOptionValue("input");
 
+        ProfileClient profileClient = profileCLI.getProfileClient();
         ProfileData profileData;
 
         if (action.equals("update")) {
@@ -98,10 +100,10 @@ public class ProfileModifyCLI extends CLI {
                 profileData = ProfileData.valueOf(sw.toString());
             }
 
-            profileData = profileCLI.profileClient.updateProfile(profileID, profileData);
+            profileData = profileClient.updateProfile(profileID, profileData);
 
         } else { // other actions
-            profileData = profileCLI.profileClient.changeProfileStatus(profileID, action);
+            profileData = profileClient.changeProfileStatus(profileID, action);
         }
 
         MainCLI.printMessage("Modified profile \"" + profileID + "\"");
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileRemoveCLI.java
index e77f72ac04bae4f9d7f9d0112de82e5cec1cf23c..2f18e1f660711113b9fa07a7c50fe22dfc82a2a4 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileRemoveCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileRemoveCLI.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.tps.profile.ProfileClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -58,7 +59,8 @@ public class ProfileRemoveCLI extends CLI {
 
         String profileID = args[0];
 
-        profileCLI.profileClient.removeProfile(profileID);
+        ProfileClient profileClient = profileCLI.getProfileClient();
+        profileClient.removeProfile(profileID);
 
         MainCLI.printMessage("Deleted profile \"" + profileID + "\"");
     }
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileShowCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileShowCLI.java
index b273f5fd5461efc0b47ab55b6e3e50e1468b6acb..cd4d5b8ed566c38219e7fd74d2ed3cc97e998104 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileShowCLI.java
@@ -25,6 +25,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.profile.ProfileClient;
 import com.netscape.certsrv.tps.profile.ProfileData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -71,7 +72,8 @@ public class ProfileShowCLI extends CLI {
         String profileID = args[0];
         String output = cmd.getOptionValue("output");
 
-        ProfileData profileData = profileCLI.profileClient.getProfile(profileID);
+        ProfileClient profileClient = profileCLI.getProfileClient();
+        ProfileData profileData = profileClient.getProfile(profileID);
 
         if (output == null) {
             MainCLI.printMessage("Profile \"" + profileID + "\"");
-- 
2.9.3

>From 0579bd12825dfe7100a23410fed80aa528c21573 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 04:04:52 +0100
Subject: [PATCH] Refactored TPS TokenCLI.

The TPS TokenCLI and its submodules have been modified to use
lazy initialization to get the PKIClient object.
---
 .../src/com/netscape/cmstools/tps/token/TokenAddCLI.java         | 4 +++-
 .../java-tools/src/com/netscape/cmstools/tps/token/TokenCLI.java | 9 ++++++---
 .../src/com/netscape/cmstools/tps/token/TokenFindCLI.java        | 4 +++-
 .../src/com/netscape/cmstools/tps/token/TokenModifyCLI.java      | 7 +++++--
 .../src/com/netscape/cmstools/tps/token/TokenRemoveCLI.java      | 4 +++-
 .../src/com/netscape/cmstools/tps/token/TokenShowCLI.java        | 4 +++-
 6 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenAddCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenAddCLI.java
index 847a9967a9a13380cdfb93bacd3d7c75e3361579..94d607f7da1bfd49c78afe167bd629cc41c32595 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenAddCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenAddCLI.java
@@ -23,6 +23,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.token.TokenClient;
 import com.netscape.certsrv.tps.token.TokenData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -81,7 +82,8 @@ public class TokenAddCLI extends CLI {
         String policy = cmd.getOptionValue("policy");
         tokenData.setPolicy(policy);
 
-        tokenData = tokenCLI.tokenClient.addToken(tokenData);
+        TokenClient tokenClient = tokenCLI.getTokenClient();
+        tokenData = tokenClient.addToken(tokenData);
 
         MainCLI.printMessage("Added token \"" + tokenID + "\"");
 
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenCLI.java
index 77ca40bd154d9ca8d517e0a664102db1df52044a..22bc5551987a69ceab448718a791e297d6d0b2e8 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenCLI.java
@@ -24,6 +24,7 @@ import java.util.Collection;
 import org.apache.commons.lang.StringUtils;
 import org.jboss.resteasy.plugins.providers.atom.Link;
 
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.certsrv.tps.token.TokenClient;
 import com.netscape.certsrv.tps.token.TokenData;
 import com.netscape.certsrv.tps.token.TokenData.TokenStatusData;
@@ -47,12 +48,14 @@ public class TokenCLI extends CLI {
         addModule(new TokenShowCLI(this));
     }
 
-    public void execute(String[] args) throws Exception {
+    public TokenClient getTokenClient() throws Exception {
 
-        client = parent.getClient();
+        if (tokenClient != null) return tokenClient;
+
+        PKIClient client = getClient();
         tokenClient = (TokenClient)parent.getClient("token");
 
-        super.execute(args);
+        return tokenClient;
     }
 
     public static void printToken(TokenData token) {
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenFindCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenFindCLI.java
index d2ecde91b89f3a174d2a508475d303db9f0f612f..b7aed7f42ba4b1cbd5312ffc6bb49886fce7b916 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenFindCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenFindCLI.java
@@ -24,6 +24,7 @@ import java.util.Collection;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.token.TokenClient;
 import com.netscape.certsrv.tps.token.TokenCollection;
 import com.netscape.certsrv.tps.token.TokenData;
 import com.netscape.certsrv.tps.token.TokenStatus;
@@ -101,7 +102,8 @@ public class TokenFindCLI extends CLI {
         s = cmd.getOptionValue("size");
         Integer size = s == null ? null : Integer.valueOf(s);
 
-        TokenCollection result = tokenCLI.tokenClient.findTokens(
+        TokenClient tokenClient = tokenCLI.getTokenClient();
+        TokenCollection result = tokenClient.findTokens(
                 filter,
                 tokenID,
                 userID,
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenModifyCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenModifyCLI.java
index abc383e643ffd8c66ab72348b6ff9802732046e1..75fb498b62bad39ded01d30c4011f641b3e6ccd8 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenModifyCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenModifyCLI.java
@@ -23,6 +23,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.token.TokenClient;
 import com.netscape.certsrv.tps.token.TokenData;
 import com.netscape.certsrv.tps.token.TokenStatus;
 import com.netscape.cmstools.cli.CLI;
@@ -93,13 +94,15 @@ public class TokenModifyCLI extends CLI {
             modify = true;
         }
 
+        TokenClient tokenClient = tokenCLI.getTokenClient();
+
         if (modify) {
-            tokenData = tokenCLI.tokenClient.modifyToken(tokenID, tokenData);
+            tokenData = tokenClient.modifyToken(tokenID, tokenData);
         }
 
         String status = cmd.getOptionValue("status");
         if (status != null) {
-            tokenData = tokenCLI.tokenClient.changeTokenStatus(tokenID, TokenStatus.valueOf(status));
+            tokenData = tokenClient.changeTokenStatus(tokenID, TokenStatus.valueOf(status));
         }
 
         if (!modify && status == null) {
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenRemoveCLI.java
index 10446fd9e46ab6ceaa0c36a90850061bcbef33a4..9b75103cdacaf5ef92656d11853af1338cd900dd 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenRemoveCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenRemoveCLI.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.tps.token.TokenClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -58,7 +59,8 @@ public class TokenRemoveCLI extends CLI {
 
         String tokenID = args[0];
 
-        tokenCLI.tokenClient.removeToken(tokenID);
+        TokenClient tokenClient = tokenCLI.getTokenClient();
+        tokenClient.removeToken(tokenID);
 
         MainCLI.printMessage("Deleted token \"" + tokenID + "\"");
     }
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenShowCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenShowCLI.java
index 19237937ca301ab04a0eb7039e7305cb5513c5b3..129e4b5c0af117b3d75d9e12b570349305ee5438 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/token/TokenShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/token/TokenShowCLI.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.tps.token.TokenClient;
 import com.netscape.certsrv.tps.token.TokenData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -59,7 +60,8 @@ public class TokenShowCLI extends CLI {
 
         String tokenID = args[0];
 
-        TokenData tokenData = tokenCLI.tokenClient.getToken(tokenID);
+        TokenClient tokenClient = tokenCLI.getTokenClient();
+        TokenData tokenData = tokenClient.getToken(tokenID);
 
         MainCLI.printMessage("Token \"" + tokenID + "\"");
 
-- 
2.9.3

>From 77b75edc9b6fb1442afc5c595c7aa2194a2c1da1 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 04:16:01 +0100
Subject: [PATCH] Refactored TPS ConnectorCLI.

The TPS ConnectorCLI and its submodules have been modified to use
lazy initialization to get the PKIClient object.
---
 .../src/com/netscape/cmstools/tps/connector/ConnectorAddCLI.java | 4 +++-
 .../src/com/netscape/cmstools/tps/connector/ConnectorCLI.java    | 9 ++++++---
 .../com/netscape/cmstools/tps/connector/ConnectorFindCLI.java    | 4 +++-
 .../com/netscape/cmstools/tps/connector/ConnectorModifyCLI.java  | 6 ++++--
 .../com/netscape/cmstools/tps/connector/ConnectorRemoveCLI.java  | 4 +++-
 .../com/netscape/cmstools/tps/connector/ConnectorShowCLI.java    | 4 +++-
 6 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorAddCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorAddCLI.java
index 2591fe20e43eaeee84dbf7f933fc926c9fc1985f..fa2b71fd8e719d6328b8f45bfc1dfab5166dbedb 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorAddCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorAddCLI.java
@@ -27,6 +27,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.connector.ConnectorClient;
 import com.netscape.certsrv.tps.connector.ConnectorData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -87,7 +88,8 @@ public class ConnectorAddCLI extends CLI {
             connectorData = ConnectorData.valueOf(sw.toString());
         }
 
-        connectorData = connectorCLI.connectorClient.addConnector(connectorData);
+        ConnectorClient connectorClient = connectorCLI.getConnectorClient();
+        connectorData = connectorClient.addConnector(connectorData);
 
         MainCLI.printMessage("Added connector \"" + connectorData.getID() + "\"");
 
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorCLI.java
index cd59f92d6ff39ef9b4f4ddc96f855a5636de798c..51bf81700f71308ccfd20f53d5729e195395de78 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorCLI.java
@@ -23,6 +23,7 @@ import java.util.Map;
 
 import org.jboss.resteasy.plugins.providers.atom.Link;
 
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.certsrv.tps.connector.ConnectorClient;
 import com.netscape.certsrv.tps.connector.ConnectorData;
 import com.netscape.cmstools.cli.CLI;
@@ -44,12 +45,14 @@ public class ConnectorCLI extends CLI {
         addModule(new ConnectorShowCLI(this));
     }
 
-    public void execute(String[] args) throws Exception {
+    public ConnectorClient getConnectorClient() throws Exception {
 
-        client = parent.getClient();
+        if (connectorClient != null) return connectorClient;
+
+        PKIClient client = getClient();
         connectorClient = (ConnectorClient)parent.getClient("connector");
 
-        super.execute(args);
+        return connectorClient;
     }
 
     public static void printConnectorData(ConnectorData connectorData, boolean showProperties) throws IOException {
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorFindCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorFindCLI.java
index a2297c70574571af3441d8a2ddf2ae30d8b2db68..81aa05a6b7b0a57e31b4c75cd0dff452c50e1d1d 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorFindCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorFindCLI.java
@@ -24,6 +24,7 @@ import java.util.Collection;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.connector.ConnectorClient;
 import com.netscape.certsrv.tps.connector.ConnectorCollection;
 import com.netscape.certsrv.tps.connector.ConnectorData;
 import com.netscape.cmstools.cli.CLI;
@@ -75,7 +76,8 @@ public class ConnectorFindCLI extends CLI {
         s = cmd.getOptionValue("size");
         Integer size = s == null ? null : Integer.valueOf(s);
 
-        ConnectorCollection result = connectorCLI.connectorClient.findConnectors(filter, start, size);
+        ConnectorClient connectorClient = connectorCLI.getConnectorClient();
+        ConnectorCollection result = connectorClient.findConnectors(filter, start, size);
 
         MainCLI.printMessage(result.getTotal() + " entries matched");
         if (result.getTotal() == 0) return;
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorModifyCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorModifyCLI.java
index 1de707402ddd786e8dcc487c10352eac3d5caa76..3b07af2ea1c4a9537a633398d3f48a480ce0f2e1 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorModifyCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorModifyCLI.java
@@ -27,6 +27,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.connector.ConnectorClient;
 import com.netscape.certsrv.tps.connector.ConnectorData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -78,6 +79,7 @@ public class ConnectorModifyCLI extends CLI {
         String action = cmd.getOptionValue("action", "update");
         String input = cmd.getOptionValue("input");
 
+        ConnectorClient connectorClient = connectorCLI.getConnectorClient();
         ConnectorData connectorData;
 
         if (action.equals("update")) {
@@ -98,10 +100,10 @@ public class ConnectorModifyCLI extends CLI {
                 connectorData = ConnectorData.valueOf(sw.toString());
             }
 
-            connectorData = connectorCLI.connectorClient.updateConnector(connectorID, connectorData);
+            connectorData = connectorClient.updateConnector(connectorID, connectorData);
 
         } else { // other actions
-            connectorData = connectorCLI.connectorClient.changeConnectorStatus(connectorID, action);
+            connectorData = connectorClient.changeConnectorStatus(connectorID, action);
         }
 
         MainCLI.printMessage("Modified connector \"" + connectorID + "\"");
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorRemoveCLI.java
index 577d73111139c30df0571ee8e747575d4ab0b53b..26f39880079dd9f16a064931e753d83560763ac9 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorRemoveCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorRemoveCLI.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.tps.connector.ConnectorClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -58,7 +59,8 @@ public class ConnectorRemoveCLI extends CLI {
 
         String connectorID = args[0];
 
-        connectorCLI.connectorClient.removeConnector(connectorID);
+        ConnectorClient connectorClient = connectorCLI.getConnectorClient();
+        connectorClient.removeConnector(connectorID);
 
         MainCLI.printMessage("Deleted connector \"" + connectorID + "\"");
     }
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorShowCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorShowCLI.java
index 0918461e307c360e1be35f6f326c29251b7c721e..5fc6525702e85c9f33e1999eb07868cd711cbc4a 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/connector/ConnectorShowCLI.java
@@ -25,6 +25,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.tps.connector.ConnectorClient;
 import com.netscape.certsrv.tps.connector.ConnectorData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -71,7 +72,8 @@ public class ConnectorShowCLI extends CLI {
         String connectorID = args[0];
         String output = cmd.getOptionValue("output");
 
-        ConnectorData connectorData = connectorCLI.connectorClient.getConnector(connectorID);
+        ConnectorClient connectorClient = connectorCLI.getConnectorClient();
+        ConnectorData connectorData = connectorClient.getConnector(connectorID);
 
         if (output == null) {
             MainCLI.printMessage("Connector \"" + connectorID + "\"");
-- 
2.9.3

_______________________________________________
Pki-devel mailing list
Pki-devel@redhat.com
https://www.redhat.com/mailman/listinfo/pki-devel

Reply via email to