Additional changes to remove unnecessary CLI connection using lazy initialization.

Pushed to master under trivial rule.

--
Endi S. Dewata
>From 043aa471f9e243faad58917e9e055affdb694c79 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 02:02:51 +0100
Subject: [PATCH] Refactored AuthorityCLI.

The AuthorityCLI and its submodules have been modified to use lazy
initialization to get the PKIClient object.
---
 .../src/com/netscape/cmstools/authority/AuthorityCLI.java     | 11 ++++++++---
 .../com/netscape/cmstools/authority/AuthorityCreateCLI.java   |  4 +++-
 .../com/netscape/cmstools/authority/AuthorityDisableCLI.java  |  4 +++-
 .../com/netscape/cmstools/authority/AuthorityEnableCLI.java   |  4 +++-
 .../src/com/netscape/cmstools/authority/AuthorityFindCLI.java |  4 +++-
 .../com/netscape/cmstools/authority/AuthorityRemoveCLI.java   |  4 +++-
 .../src/com/netscape/cmstools/authority/AuthorityShowCLI.java |  4 +++-
 7 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityCLI.java b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityCLI.java
index a3fccbb027e4391b2fb83621ff829117a07fa76f..c8d469937e93a89f0901d1ca267ef1bc2b886988 100644
--- a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityCLI.java
@@ -4,6 +4,7 @@ import java.math.BigInteger;
 
 import com.netscape.certsrv.authority.AuthorityClient;
 import com.netscape.certsrv.authority.AuthorityData;
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -32,10 +33,14 @@ public class AuthorityCLI extends CLI {
         }
     }
 
-    public void execute(String[] args) throws Exception {
-        client = parent.getClient();
+    public AuthorityClient getAuthorityClient() throws Exception {
+
+        if (authorityClient != null) return authorityClient;
+
+        PKIClient client = getClient();
         authorityClient = new AuthorityClient(client, "ca");
-        super.execute(args);
+
+        return authorityClient;
     }
 
     protected static void printAuthorityData(AuthorityData data) {
diff --git a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityCreateCLI.java b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityCreateCLI.java
index 9cea963bfd09e025e2dbabafd72f4b04278322b9..e39a126e01d2b5ffccc5e9839d8c9b0aea4edf0f 100644
--- a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityCreateCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityCreateCLI.java
@@ -5,6 +5,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.authority.AuthorityClient;
 import com.netscape.certsrv.authority.AuthorityData;
 import com.netscape.certsrv.ca.AuthorityID;
 import com.netscape.cmstools.cli.CLI;
@@ -67,7 +68,8 @@ public class AuthorityCreateCLI extends CLI {
         String dn = cmdArgs[0];
         AuthorityData data = new AuthorityData(
             null, dn, null, parentAIDString, null, null, true /* enabled */, desc, null);
-        AuthorityData newData = authorityCLI.authorityClient.createCA(data);
+        AuthorityClient authorityClient = authorityCLI.getAuthorityClient();
+        AuthorityData newData = authorityClient.createCA(data);
         AuthorityCLI.printAuthorityData(newData);
     }
 
diff --git a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityDisableCLI.java b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityDisableCLI.java
index 7c5da13de3357d853e5e376786a98a9b9d505600..bae8ada7355c44a813e40167c765a796eed348fb 100644
--- a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityDisableCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityDisableCLI.java
@@ -4,6 +4,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.authority.AuthorityClient;
 import com.netscape.certsrv.authority.AuthorityData;
 import com.netscape.cmstools.cli.CLI;
 
@@ -37,7 +38,8 @@ public class AuthorityDisableCLI extends CLI {
 
         AuthorityData data = new AuthorityData(
             null, null, cmdArgs[0], null, null, null, false, null, null);
-        data = authorityCLI.authorityClient.modifyCA(data);
+        AuthorityClient authorityClient = authorityCLI.getAuthorityClient();
+        data = authorityClient.modifyCA(data);
         AuthorityCLI.printAuthorityData(data);
     }
 
diff --git a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityEnableCLI.java b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityEnableCLI.java
index 7ff25a45011e3355bb1c9632ab6f5457d46ed5c8..2b2eac1f03832b0087cc7ba9b49528db845b4209 100644
--- a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityEnableCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityEnableCLI.java
@@ -4,6 +4,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.authority.AuthorityClient;
 import com.netscape.certsrv.authority.AuthorityData;
 import com.netscape.cmstools.cli.CLI;
 
@@ -37,7 +38,8 @@ public class AuthorityEnableCLI extends CLI {
 
         AuthorityData data = new AuthorityData(
             null, null, cmdArgs[0], null, null, null, true, null, null);
-        data = authorityCLI.authorityClient.modifyCA(data);
+        AuthorityClient authorityClient = authorityCLI.getAuthorityClient();
+        data = authorityClient.modifyCA(data);
         AuthorityCLI.printAuthorityData(data);
     }
 
diff --git a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityFindCLI.java b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityFindCLI.java
index 2b96e3aab2625a7a06b5f9e4cd70205ce3d2446a..6cd06be9f7a6beb582ba819cd3f454acca3bb487 100644
--- a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityFindCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityFindCLI.java
@@ -5,6 +5,7 @@ import java.util.List;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.authority.AuthorityClient;
 import com.netscape.certsrv.authority.AuthorityData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -32,7 +33,8 @@ public class AuthorityFindCLI extends CLI {
         @SuppressWarnings("unused")
         CommandLine cmd = parser.parse(options, args);
 
-        List<AuthorityData> datas = authorityCLI.authorityClient.listCAs();
+        AuthorityClient authorityClient = authorityCLI.getAuthorityClient();
+        List<AuthorityData> datas = authorityClient.listCAs();
 
         MainCLI.printMessage(datas.size() + " entries matched");
         if (datas.size() == 0) return;
diff --git a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityRemoveCLI.java
index f69948aafd61275a0271463d2910446a731eb551..343a0bc57274750577ff88f0bfd7742731825628 100644
--- a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityRemoveCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityRemoveCLI.java
@@ -6,6 +6,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.authority.AuthorityClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -54,7 +55,8 @@ public class AuthorityRemoveCLI extends CLI {
         }
 
         String aidString = cmdArgs[0];
-        authorityCLI.authorityClient.deleteCA(aidString);
+        AuthorityClient authorityClient = authorityCLI.getAuthorityClient();
+        authorityClient.deleteCA(aidString);
         MainCLI.printMessage("Deleted authority \"" + aidString + "\"");
     }
 
diff --git a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityShowCLI.java b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityShowCLI.java
index b26371070f394a76cdc6f7a5d074ab8c462d57fc..5bf06319d784882279e098a78e6d4d3ed4163312 100644
--- a/base/java-tools/src/com/netscape/cmstools/authority/AuthorityShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/authority/AuthorityShowCLI.java
@@ -5,6 +5,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.authority.AuthorityClient;
 import com.netscape.certsrv.authority.AuthorityData;
 import com.netscape.certsrv.authority.AuthorityResource;
 import com.netscape.cmstools.cli.CLI;
@@ -57,7 +58,8 @@ public class AuthorityShowCLI extends CLI {
             throw new Exception("No ID specified.");
         }
 
-        AuthorityData data = authorityCLI.authorityClient.getCA(caIDString);
+        AuthorityClient authorityClient = authorityCLI.getAuthorityClient();
+        AuthorityData data = authorityClient.getCA(caIDString);
         AuthorityCLI.printAuthorityData(data);
     }
 
-- 
2.9.3

>From 02e67a75b7cd130baa626455e3120d555e3f22cd Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 02:08:20 +0100
Subject: [PATCH] Refactored FeatureCLI.

The FeatureCLI and its submodules have been modified to use lazy
initialization to get the PKIClient object.
---
 .../src/com/netscape/cmstools/feature/FeatureCLI.java         | 11 ++++++++---
 .../src/com/netscape/cmstools/feature/FeatureFindCLI.java     |  4 +++-
 .../src/com/netscape/cmstools/feature/FeatureShowCLI.java     |  4 +++-
 3 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/feature/FeatureCLI.java b/base/java-tools/src/com/netscape/cmstools/feature/FeatureCLI.java
index 41c01df8e55969e8644f3383b4e85c3fe2d3ab60..6e6d6a4043b173966b0e9f2537a492bb78e36347 100644
--- a/base/java-tools/src/com/netscape/cmstools/feature/FeatureCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/feature/FeatureCLI.java
@@ -17,6 +17,7 @@
 // --- END COPYRIGHT BLOCK ---
 package com.netscape.cmstools.feature;
 
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.certsrv.system.Feature;
 import com.netscape.certsrv.system.FeatureClient;
 import com.netscape.cmstools.cli.CLI;
@@ -42,10 +43,14 @@ public class FeatureCLI extends CLI {
         }
     }
 
-    public void execute(String[] args) throws Exception {
-        client = parent.getClient();
+    public FeatureClient getFeatureClient() throws Exception {
+
+        if (featureClient != null) return featureClient;
+
+        PKIClient client = getClient();
         featureClient = new FeatureClient(client, "ca");
-        super.execute(args);
+
+        return featureClient;
     }
 
     protected static void printFeature(Feature data) {
diff --git a/base/java-tools/src/com/netscape/cmstools/feature/FeatureFindCLI.java b/base/java-tools/src/com/netscape/cmstools/feature/FeatureFindCLI.java
index 72f22ec7128846dc445b369b0e924ea8bc4acd79..9e2ea624324942b1caeb086dca78d21f9a69cb16 100644
--- a/base/java-tools/src/com/netscape/cmstools/feature/FeatureFindCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/feature/FeatureFindCLI.java
@@ -23,6 +23,7 @@ import java.util.List;
 import org.apache.commons.cli.CommandLine;
 
 import com.netscape.certsrv.system.Feature;
+import com.netscape.certsrv.system.FeatureClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -49,7 +50,8 @@ public class FeatureFindCLI extends CLI {
         @SuppressWarnings("unused")
         CommandLine cmd = parser.parse(options, args);
 
-        List<Feature> features = featureCLI.featureClient.listFeatures();
+        FeatureClient featureClient = featureCLI.getFeatureClient();
+        List<Feature> features = featureClient.listFeatures();
 
         MainCLI.printMessage(features.size() + " entries matched");
         if (features.size() == 0) return;
diff --git a/base/java-tools/src/com/netscape/cmstools/feature/FeatureShowCLI.java b/base/java-tools/src/com/netscape/cmstools/feature/FeatureShowCLI.java
index 7eda79951ce6a2794e3427bc2fdafece6989d56f..d7c2858728b8de0bcd597a092dd1a07b189155b7 100644
--- a/base/java-tools/src/com/netscape/cmstools/feature/FeatureShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/feature/FeatureShowCLI.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 
 import com.netscape.certsrv.system.Feature;
+import com.netscape.certsrv.system.FeatureClient;
 import com.netscape.cmstools.cli.CLI;
 
 public class FeatureShowCLI extends CLI {
@@ -58,7 +59,8 @@ public class FeatureShowCLI extends CLI {
 
         String featureID = cmdArgs[0];
 
-        Feature data = featureCLI.featureClient.getFeature(featureID);
+        FeatureClient featureClient = featureCLI.getFeatureClient();
+        Feature data = featureClient.getFeature(featureID);
         FeatureCLI.printFeature(data);
     }
 
-- 
2.9.3

>From 81c9795b9a769267a9c878dfbd10ab0d5785d070 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 02:17:51 +0100
Subject: [PATCH] Refactored KRAConnectorCLI for CA.

The KRAConnectorCLI for CA and its submodules have been modified
to use lazy initialization to get the PKIClient object.
---
 .../src/com/netscape/cmstools/system/KRAConnectorAddCLI.java     | 9 ++++++---
 .../src/com/netscape/cmstools/system/KRAConnectorCLI.java        | 9 ++++++---
 .../src/com/netscape/cmstools/system/KRAConnectorRemoveCLI.java  | 4 +++-
 .../src/com/netscape/cmstools/system/KRAConnectorShowCLI.java    | 6 ++++--
 4 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorAddCLI.java b/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorAddCLI.java
index 1cf7546ab938f89b7ba4b16a061514db421e29b8..7c61d9036a9a4903126765b6fe707d74c625ce57 100644
--- a/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorAddCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorAddCLI.java
@@ -27,6 +27,7 @@ import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
 import com.netscape.certsrv.system.ConnectorNotFoundException;
+import com.netscape.certsrv.system.KRAConnectorClient;
 import com.netscape.certsrv.system.KRAConnectorInfo;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -83,11 +84,13 @@ public class KRAConnectorAddCLI extends CLI {
         String kraPort = cmd.getOptionValue("port");
         String inputFile = cmd.getOptionValue("input-file");
 
+        KRAConnectorClient kraConnectorClient = kraConnectorCLI.getKRAConnectorClient();
+
         //check if connector exists
         boolean connectorExists = true;
         try {
             @SuppressWarnings("unused")
-            KRAConnectorInfo info = kraConnectorCLI.kraConnectorClient.getConnectorInfo();
+            KRAConnectorInfo info = kraConnectorClient.getConnectorInfo();
         } catch (ConnectorNotFoundException e) {
             connectorExists = false;
         }
@@ -102,7 +105,7 @@ public class KRAConnectorAddCLI extends CLI {
             Unmarshaller unmarshaller = context.createUnmarshaller();
             KRAConnectorInfo info = (KRAConnectorInfo) unmarshaller.unmarshal(fis);
 
-            kraConnectorCLI.kraConnectorClient.addConnector(info);
+            kraConnectorClient.addConnector(info);
             MainCLI.printMessage("Added KRA connector");
 
         } else {
@@ -110,7 +113,7 @@ public class KRAConnectorAddCLI extends CLI {
                 throw new Exception("Cannot add new host to existing connector.  " +
                         "No connector currently exists");
             }
-            kraConnectorCLI.kraConnectorClient.addHost(kraHost, kraPort);
+            kraConnectorClient.addHost(kraHost, kraPort);
             MainCLI.printMessage("Added KRA host \"" + kraHost + ":" + kraPort + "\"");
         }
     }
diff --git a/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorCLI.java b/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorCLI.java
index 872d4b9d646924307e27f360aadc7e31107661f1..4fb5b6ca1a2f90d91b9eec35b8953780b0ab6e8a 100644
--- a/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorCLI.java
@@ -17,6 +17,7 @@
 // --- END COPYRIGHT BLOCK ---
 package com.netscape.cmstools.system;
 
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.certsrv.system.KRAConnectorClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -45,9 +46,11 @@ public class KRAConnectorCLI extends CLI {
         }
     }
 
-    public void execute(String[] args) throws Exception {
+    public KRAConnectorClient getKRAConnectorClient() throws Exception {
 
-        client = parent.getClient();
+        if (kraConnectorClient != null) return kraConnectorClient;
+
+        PKIClient client = getClient();
 
         // determine the subsystem
         String subsystem = client.getSubsystem();
@@ -56,6 +59,6 @@ public class KRAConnectorCLI extends CLI {
         // create new KRA connector client
         kraConnectorClient = new KRAConnectorClient(client, subsystem);
 
-        super.execute(args);
+        return kraConnectorClient;
     }
 }
diff --git a/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorRemoveCLI.java
index 37383a62a2dab80c47bbd3de166b7701120772f2..6a566c43606568abdafc43e99c24724110269615 100644
--- a/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorRemoveCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorRemoveCLI.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.system.KRAConnectorClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -71,7 +72,8 @@ public class KRAConnectorRemoveCLI extends CLI {
         String kraHost = cmd.getOptionValue("host");
         String kraPort = cmd.getOptionValue("port");
 
-        kraConnectorCLI.kraConnectorClient.removeConnector(kraHost, kraPort);
+        KRAConnectorClient kraConnectorClient = kraConnectorCLI.getKRAConnectorClient();
+        kraConnectorClient.removeConnector(kraHost, kraPort);
 
         MainCLI.printMessage("Removed KRA host \"" + kraHost + ":" + kraPort + "\"");
     }
diff --git a/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorShowCLI.java b/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorShowCLI.java
index c5aa3262cb27e0612d79b0ae875f76560a2da45d..119fc9292d95868f81d4840feb3322c60ba01499 100644
--- a/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorShowCLI.java
@@ -2,6 +2,7 @@ package com.netscape.cmstools.system;
 
 import java.util.Arrays;
 
+import com.netscape.certsrv.system.KRAConnectorClient;
 import com.netscape.certsrv.system.KRAConnectorInfo;
 import com.netscape.cmstools.cli.CLI;
 
@@ -18,14 +19,15 @@ public class KRAConnectorShowCLI extends CLI {
         formatter.printHelp(getFullName() + " [OPTIONS...]", options);
     }
 
-    public void execute(String[] args) {
+    public void execute(String[] args) throws Exception {
         // Always check for "--help" prior to parsing
         if (Arrays.asList(args).contains("--help")) {
             printHelp();
             return;
         }
 
-        KRAConnectorInfo info = kraConnectorCLI.kraConnectorClient.getConnectorInfo();
+        KRAConnectorClient kraConnectorClient = kraConnectorCLI.getKRAConnectorClient();
+        KRAConnectorInfo info = kraConnectorClient.getConnectorInfo();
 
         // Print the KRA Connector Information.
 
-- 
2.9.3

>From 87431b72520f7c2426312faaefa0bf83af8cdfcd Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 02:24:38 +0100
Subject: [PATCH] Refactored CA ProfileCLI.

The CA ProfileCLI and its submodules have been modified to use
lazy initialization to get the PKIClient object.
---
 .../src/com/netscape/cmstools/profile/ProfileAddCLI.java         | 9 ++++++---
 .../java-tools/src/com/netscape/cmstools/profile/ProfileCLI.java | 9 ++++++---
 .../src/com/netscape/cmstools/profile/ProfileDisableCLI.java     | 4 +++-
 .../src/com/netscape/cmstools/profile/ProfileEditCLI.java        | 7 +++++--
 .../src/com/netscape/cmstools/profile/ProfileEnableCLI.java      | 4 +++-
 .../src/com/netscape/cmstools/profile/ProfileFindCLI.java        | 4 +++-
 .../src/com/netscape/cmstools/profile/ProfileModifyCLI.java      | 9 ++++++---
 .../src/com/netscape/cmstools/profile/ProfileRemoveCLI.java      | 4 +++-
 .../src/com/netscape/cmstools/profile/ProfileShowCLI.java        | 9 ++++++---
 9 files changed, 41 insertions(+), 18 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/profile/ProfileAddCLI.java b/base/java-tools/src/com/netscape/cmstools/profile/ProfileAddCLI.java
index ced286e5fe1d0b9462e82c86b54d955bfa8ad5b5..d7fed3fe2014b2af5cafb766d11feb2aa8a367e0 100644
--- a/base/java-tools/src/com/netscape/cmstools/profile/ProfileAddCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/profile/ProfileAddCLI.java
@@ -6,6 +6,7 @@ import java.util.Properties;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.profile.ProfileClient;
 import com.netscape.certsrv.profile.ProfileData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -47,18 +48,20 @@ public class ProfileAddCLI extends CLI {
             throw new Exception("Missing input file name.");
         }
 
+        ProfileClient profileClient = profileCLI.getProfileClient();
+
         if (cmd.hasOption("raw")) {
             Properties properties = ProfileCLI.readRawProfileFromFile(filename);
             String profileId = properties.getProperty("profileId");
-            profileCLI.profileClient.createProfileRaw(properties).store(System.out, null);
+            profileClient.createProfileRaw(properties).store(System.out, null);
             MainCLI.printMessage("Added profile " + profileId);
         } else {
             ProfileData data = ProfileCLI.readProfileFromFile(filename);
-            data = profileCLI.profileClient.createProfile(data);
+            data = profileClient.createProfile(data);
 
             MainCLI.printMessage("Added profile " + data.getId());
 
-            ProfileCLI.printProfile(data, profileCLI.getClient().getConfig().getServerURI());
+            ProfileCLI.printProfile(data, profileCLI.getConfig().getServerURI());
         }
     }
 }
diff --git a/base/java-tools/src/com/netscape/cmstools/profile/ProfileCLI.java b/base/java-tools/src/com/netscape/cmstools/profile/ProfileCLI.java
index e4acdb1956f655c3faa8e18ae14e69c15353ba09..23ca89d687079fd4319f13590bf5693bbb720565 100644
--- a/base/java-tools/src/com/netscape/cmstools/profile/ProfileCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/profile/ProfileCLI.java
@@ -15,6 +15,7 @@ import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
 
 import com.netscape.certsrv.cert.CertEnrollmentRequest;
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.certsrv.profile.ProfileAttribute;
 import com.netscape.certsrv.profile.ProfileClient;
 import com.netscape.certsrv.profile.ProfileData;
@@ -55,9 +56,11 @@ public class ProfileCLI extends CLI {
         return "pki-ca-profile";
     }
 
-    public void execute(String[] args) throws Exception {
+    public ProfileClient getProfileClient() throws Exception {
 
-        client = parent.getClient();
+        if (profileClient != null) return profileClient;
+
+        PKIClient client = getClient();
 
         // determine the subsystem
         String subsystem = client.getSubsystem();
@@ -66,7 +69,7 @@ public class ProfileCLI extends CLI {
         // create new profile client
         profileClient = new ProfileClient(client, subsystem);
 
-        super.execute(args);
+        return profileClient;
     }
 
     public static void printProfileDataInfo(ProfileDataInfo info) {
diff --git a/base/java-tools/src/com/netscape/cmstools/profile/ProfileDisableCLI.java b/base/java-tools/src/com/netscape/cmstools/profile/ProfileDisableCLI.java
index dc21ac4a8b0eb086415c7f7486732b769171fc21..cb877be13acba4998dad54e6bec60dfbb3f98263 100644
--- a/base/java-tools/src/com/netscape/cmstools/profile/ProfileDisableCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/profile/ProfileDisableCLI.java
@@ -4,6 +4,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.profile.ProfileClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -37,7 +38,8 @@ public class ProfileDisableCLI extends CLI {
 
         String profileId = args[0];
 
-        profileCLI.profileClient.disableProfile(profileId);
+        ProfileClient profileClient = profileCLI.getProfileClient();
+        profileClient.disableProfile(profileId);
 
         MainCLI.printMessage("Disabled profile \"" + profileId + "\"");
     }
diff --git a/base/java-tools/src/com/netscape/cmstools/profile/ProfileEditCLI.java b/base/java-tools/src/com/netscape/cmstools/profile/ProfileEditCLI.java
index b8bb9f03f082d186c231f550e685150dc523b206..18bb7e566c7be0bf147e9cc51369f101fb5c84e3 100644
--- a/base/java-tools/src/com/netscape/cmstools/profile/ProfileEditCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/profile/ProfileEditCLI.java
@@ -25,6 +25,7 @@ import java.util.Properties;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.profile.ProfileClient;
 import com.netscape.cmstools.cli.CLI;
 
 public class ProfileEditCLI extends CLI {
@@ -57,8 +58,10 @@ public class ProfileEditCLI extends CLI {
 
         String profileId = cmdArgs[0];
 
+        ProfileClient profileClient = profileCLI.getProfileClient();
+
         // read profile into temporary file
-        Properties orig = profileCLI.profileClient.retrieveProfileRaw(profileId);
+        Properties orig = profileClient.retrieveProfileRaw(profileId);
         String enabled = orig.getProperty("enable");
         if (Boolean.valueOf(enabled)) {
             throw new Exception("Cannot edit profile. Profile must be disabled.");
@@ -88,7 +91,7 @@ public class ProfileEditCLI extends CLI {
             cur.load(Files.newInputStream(tempFile));
 
             if (!cur.equals(orig)) {
-                profileCLI.profileClient.modifyProfileRaw(profileId, cur);
+                profileClient.modifyProfileRaw(profileId, cur);
             }
             cur.store(System.out, null);
         } finally {
diff --git a/base/java-tools/src/com/netscape/cmstools/profile/ProfileEnableCLI.java b/base/java-tools/src/com/netscape/cmstools/profile/ProfileEnableCLI.java
index f8c56ba6483a3471f7de116947950cba87a09cd8..34c6021085cf5ebd68ac03ea15a804604bd0a9d0 100644
--- a/base/java-tools/src/com/netscape/cmstools/profile/ProfileEnableCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/profile/ProfileEnableCLI.java
@@ -4,6 +4,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.profile.ProfileClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -37,7 +38,8 @@ public class ProfileEnableCLI extends CLI {
 
         String profileId = cmdArgs[0];
 
-        profileCLI.profileClient.enableProfile(profileId);
+        ProfileClient profileClient = profileCLI.getProfileClient();
+        profileClient.enableProfile(profileId);
 
         MainCLI.printMessage("Enabled profile \"" + profileId + "\"");
     }
diff --git a/base/java-tools/src/com/netscape/cmstools/profile/ProfileFindCLI.java b/base/java-tools/src/com/netscape/cmstools/profile/ProfileFindCLI.java
index 512c7cd3053a3ac597ca1a3db7c7b9d5a8d86e99..9eb74687ed28896d7923233b6cc89aac8a17648b 100644
--- a/base/java-tools/src/com/netscape/cmstools/profile/ProfileFindCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/profile/ProfileFindCLI.java
@@ -6,6 +6,7 @@ import java.util.Collection;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.profile.ProfileClient;
 import com.netscape.certsrv.profile.ProfileDataInfo;
 import com.netscape.certsrv.profile.ProfileDataInfos;
 import com.netscape.cmstools.cli.CLI;
@@ -57,7 +58,8 @@ public class ProfileFindCLI extends CLI {
         s = cmd.getOptionValue("size");
         Integer size = s == null ? null : Integer.valueOf(s);
 
-        ProfileDataInfos response = profileCLI.profileClient.listProfiles(start, size);
+        ProfileClient profileClient = profileCLI.getProfileClient();
+        ProfileDataInfos response = profileClient.listProfiles(start, size);
 
         MainCLI.printMessage(response.getTotal() + " entries matched");
         if (response.getTotal() == 0) return;
diff --git a/base/java-tools/src/com/netscape/cmstools/profile/ProfileModifyCLI.java b/base/java-tools/src/com/netscape/cmstools/profile/ProfileModifyCLI.java
index 835f628c15efa9b034209a3338b22bafa6a7ef1a..c478b50caa52c4d724b7fd060e61443879338853 100644
--- a/base/java-tools/src/com/netscape/cmstools/profile/ProfileModifyCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/profile/ProfileModifyCLI.java
@@ -6,6 +6,7 @@ import java.util.Properties;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.profile.ProfileClient;
 import com.netscape.certsrv.profile.ProfileData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -47,18 +48,20 @@ public class ProfileModifyCLI extends CLI {
             throw new Exception("Missing input file name.");
         }
 
+        ProfileClient profileClient = profileCLI.getProfileClient();
+
         if (cmd.hasOption("raw")) {
             Properties properties = ProfileCLI.readRawProfileFromFile(filename);
             String profileId = properties.getProperty("profileId");
-            profileCLI.profileClient.modifyProfileRaw(profileId, properties).store(System.out, null);
+            profileClient.modifyProfileRaw(profileId, properties).store(System.out, null);
             MainCLI.printMessage("Modified profile " + profileId);
         } else {
             ProfileData data = ProfileCLI.readProfileFromFile(filename);
-            data = profileCLI.profileClient.modifyProfile(data);
+            data = profileClient.modifyProfile(data);
 
             MainCLI.printMessage("Modified profile " + data.getId());
 
-            ProfileCLI.printProfile(data, profileCLI.getClient().getConfig().getServerURI());
+            ProfileCLI.printProfile(data, profileCLI.getConfig().getServerURI());
         }
     }
 }
diff --git a/base/java-tools/src/com/netscape/cmstools/profile/ProfileRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/profile/ProfileRemoveCLI.java
index f0920cde3e831bdc649f4b8c2ff70c744a53bc5d..8422400527a21d8d724410b9c7fa3ed5df308892 100644
--- a/base/java-tools/src/com/netscape/cmstools/profile/ProfileRemoveCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/profile/ProfileRemoveCLI.java
@@ -4,6 +4,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.profile.ProfileClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -37,7 +38,8 @@ public class ProfileRemoveCLI extends CLI {
 
         String profileId = args[0];
 
-        profileCLI.profileClient.deleteProfile(profileId);
+        ProfileClient profileClient = profileCLI.getProfileClient();
+        profileClient.deleteProfile(profileId);
 
         MainCLI.printMessage("Deleted profile \"" + profileId + "\"");
     }
diff --git a/base/java-tools/src/com/netscape/cmstools/profile/ProfileShowCLI.java b/base/java-tools/src/com/netscape/cmstools/profile/ProfileShowCLI.java
index 5134530bc790ffa271facff11557552f1f98fbdc..1a90cf3baccbcb9b3ce4efc3d96308d5fe8fbce3 100644
--- a/base/java-tools/src/com/netscape/cmstools/profile/ProfileShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/profile/ProfileShowCLI.java
@@ -7,6 +7,7 @@ import java.util.Properties;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.profile.ProfileClient;
 import com.netscape.certsrv.profile.ProfileData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -62,8 +63,10 @@ public class ProfileShowCLI extends CLI {
             }
         }
 
+        ProfileClient profileClient = profileCLI.getProfileClient();
+
         if (cmd.hasOption("raw")) {
-            Properties profileConfig = profileCLI.profileClient.retrieveProfileRaw(profileId);
+            Properties profileConfig = profileClient.retrieveProfileRaw(profileId);
 
             if (filename != null) {
                 profileConfig.store(new FileOutputStream(filename), null);
@@ -73,12 +76,12 @@ public class ProfileShowCLI extends CLI {
             }
         } else {
             MainCLI.printMessage("Profile \"" + profileId + "\"");
-            ProfileData profileData = profileCLI.profileClient.retrieveProfile(profileId);
+            ProfileData profileData = profileClient.retrieveProfile(profileId);
 
             if (filename != null) {
                 ProfileCLI.saveProfileToFile(filename, profileData);
             } else {
-                ProfileCLI.printProfile(profileData, profileCLI.getClient().getConfig().getServerURI());
+                ProfileCLI.printProfile(profileData, profileCLI.getConfig().getServerURI());
             }
         }
     }
-- 
2.9.3

>From 707486923941cffa307e6c8a404fe5248cb10d83 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 04:11:32 +0100
Subject: [PATCH] Refactored CA ProfileMappingCLI.

The CA ProfileMappingCLI and its submodules have been modified to
use lazy initialization to get the PKIClient object.
---
 .../com/netscape/cmstools/tps/profile/ProfileMappingAddCLI.java  | 4 +++-
 .../src/com/netscape/cmstools/tps/profile/ProfileMappingCLI.java | 9 ++++++---
 .../com/netscape/cmstools/tps/profile/ProfileMappingFindCLI.java | 4 +++-
 .../netscape/cmstools/tps/profile/ProfileMappingModifyCLI.java   | 6 ++++--
 .../netscape/cmstools/tps/profile/ProfileMappingRemoveCLI.java   | 4 +++-
 .../com/netscape/cmstools/tps/profile/ProfileMappingShowCLI.java | 4 +++-
 6 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingAddCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingAddCLI.java
index 3fd67bdbc708057cc71f050e514a05025ee785b5..618aea2842617a2d25449de67aa9bc6306eeae03 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingAddCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingAddCLI.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.ProfileMappingClient;
 import com.netscape.certsrv.tps.profile.ProfileMappingData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -87,7 +88,8 @@ public class ProfileMappingAddCLI extends CLI {
             profileMappingData = ProfileMappingData.valueOf(sw.toString());
         }
 
-        profileMappingData = profileMappingCLI.profileMappingClient.addProfileMapping(profileMappingData);
+        ProfileMappingClient profileMappingClient = profileMappingCLI.getProfileMappingClient();
+        profileMappingData = profileMappingClient.addProfileMapping(profileMappingData);
 
         MainCLI.printMessage("Added profile mapping \"" + profileMappingData.getID() + "\"");
 
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingCLI.java
index 9c2f7183c0df351ec095a8b3ecb60a4a7fd9a8ca..4c897613773eff977ceb05a7563e686a0d979eb3 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingCLI.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.ProfileMappingClient;
 import com.netscape.certsrv.tps.profile.ProfileMappingData;
 import com.netscape.cmstools.cli.CLI;
@@ -44,12 +45,14 @@ public class ProfileMappingCLI extends CLI {
         addModule(new ProfileMappingShowCLI(this));
     }
 
-    public void execute(String[] args) throws Exception {
+    public ProfileMappingClient getProfileMappingClient() throws Exception {
 
-        client = parent.getClient();
+        if (profileMappingClient != null) return profileMappingClient;
+
+        PKIClient client = getClient();
         profileMappingClient = (ProfileMappingClient)parent.getClient("profile-mapping");
 
-        super.execute(args);
+        return profileMappingClient;
     }
 
     public static void printProfileMappingData(ProfileMappingData profileMappingData, boolean showProperties) throws IOException {
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingFindCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingFindCLI.java
index e28090064613532e3d4e2e7161abc4910754c469..be6ddf02df04f2cc6e295e830be51641c6db1ffe 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingFindCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingFindCLI.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.ProfileMappingClient;
 import com.netscape.certsrv.tps.profile.ProfileMappingCollection;
 import com.netscape.certsrv.tps.profile.ProfileMappingData;
 import com.netscape.cmstools.cli.CLI;
@@ -75,7 +76,8 @@ public class ProfileMappingFindCLI extends CLI {
         s = cmd.getOptionValue("size");
         Integer size = s == null ? null : Integer.valueOf(s);
 
-        ProfileMappingCollection result = profileMappingCLI.profileMappingClient.findProfileMappings(filter, start, size);
+        ProfileMappingClient profileMappingClient = profileMappingCLI.getProfileMappingClient();
+        ProfileMappingCollection result = profileMappingClient.findProfileMappings(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/ProfileMappingModifyCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingModifyCLI.java
index 3296e2c3cac0c96c47a5f8f538cb33a5a8dd4696..8e03858f2f79c9629eb4e64f8ec8d0c05eea9a13 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingModifyCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingModifyCLI.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.ProfileMappingClient;
 import com.netscape.certsrv.tps.profile.ProfileMappingData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -78,6 +79,7 @@ public class ProfileMappingModifyCLI extends CLI {
         String action = cmd.getOptionValue("action", "update");
         String input = cmd.getOptionValue("input");
 
+        ProfileMappingClient profileMappingClient = profileMappingCLI.getProfileMappingClient();
         ProfileMappingData profileMappingData;
 
         if (action.equals("update")) {
@@ -98,10 +100,10 @@ public class ProfileMappingModifyCLI extends CLI {
                 profileMappingData = ProfileMappingData.valueOf(sw.toString());
             }
 
-            profileMappingData = profileMappingCLI.profileMappingClient.updateProfileMapping(profileMappingID, profileMappingData);
+            profileMappingData = profileMappingClient.updateProfileMapping(profileMappingID, profileMappingData);
 
         } else { // other actions
-            profileMappingData = profileMappingCLI.profileMappingClient.changeProfileMappingStatus(profileMappingID, action);
+            profileMappingData = profileMappingClient.changeProfileMappingStatus(profileMappingID, action);
         }
 
         MainCLI.printMessage("Modified profile mapping \"" + profileMappingID + "\"");
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingRemoveCLI.java
index 1d1c9d84cb90de866cec9a90948985814dc9c63f..7208eb831ca1da99281cdfe7715b6b57850f3ce8 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingRemoveCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingRemoveCLI.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 
 import org.apache.commons.cli.CommandLine;
 
+import com.netscape.certsrv.tps.profile.ProfileMappingClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -58,7 +59,8 @@ public class ProfileMappingRemoveCLI extends CLI {
 
         String profileMappingID = args[0];
 
-        profileMappingCLI.profileMappingClient.removeProfileMapping(profileMappingID);
+        ProfileMappingClient profileMappingClient = profileMappingCLI.getProfileMappingClient();
+        profileMappingClient.removeProfileMapping(profileMappingID);
 
         MainCLI.printMessage("Deleted profile mapping \"" + profileMappingID + "\"");
     }
diff --git a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingShowCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingShowCLI.java
index 0aa6ec092c7598bafdcd43c52902bfeeff98fd41..3b4f64901c521ee88d88c0231cb55da744344f38 100644
--- a/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/tps/profile/ProfileMappingShowCLI.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.ProfileMappingClient;
 import com.netscape.certsrv.tps.profile.ProfileMappingData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -71,7 +72,8 @@ public class ProfileMappingShowCLI extends CLI {
         String profileMappingID = cmdArgs[0];
         String output = cmd.getOptionValue("output");
 
-        ProfileMappingData profileMappingData = profileMappingCLI.profileMappingClient.getProfileMapping(profileMappingID);
+        ProfileMappingClient profileMappingClient = profileMappingCLI.getProfileMappingClient();
+        ProfileMappingData profileMappingData = profileMappingClient.getProfileMapping(profileMappingID);
 
         if (output == null) {
             MainCLI.printMessage("ProfileMapping \"" + profileMappingID + "\"");
-- 
2.9.3

>From a404c8b827214ae8a4a431d3c9ec74da8fbd654e Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 02:29:31 +0100
Subject: [PATCH] Refactored SelfTestCLI.

The SelfTestCLI and its submodules have been modified to use lazy
initialization to get the PKIClient object.
---
 .../src/com/netscape/cmstools/selftests/SelfTestCLI.java         | 9 ++++++---
 .../src/com/netscape/cmstools/selftests/SelfTestFindCLI.java     | 4 +++-
 .../src/com/netscape/cmstools/selftests/SelfTestRunCLI.java      | 6 ++++--
 .../src/com/netscape/cmstools/selftests/SelfTestShowCLI.java     | 4 +++-
 4 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestCLI.java b/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestCLI.java
index 2e64e0576a76679944c17155a8f568146ce8d4ee..1e674267dc15774cd2fd55752747f5c1bcdf6ee8 100644
--- a/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestCLI.java
@@ -22,6 +22,7 @@ import java.io.IOException;
 
 import org.jboss.resteasy.plugins.providers.atom.Link;
 
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.certsrv.selftests.SelfTestClient;
 import com.netscape.certsrv.selftests.SelfTestData;
 import com.netscape.cmstools.cli.CLI;
@@ -40,12 +41,14 @@ public class SelfTestCLI extends CLI {
         addModule(new SelfTestShowCLI(this));
     }
 
-    public void execute(String[] args) throws Exception {
+    public SelfTestClient getSelfTestClient() throws Exception {
 
-        client = parent.getClient();
+        if (selfTestClient != null) return selfTestClient;
+
+        PKIClient client = getClient();
         selfTestClient = (SelfTestClient)parent.getClient("selftest");
 
-        super.execute(args);
+        return selfTestClient;
     }
 
     public static void printSelfTestData(SelfTestData selfTestData) throws IOException {
diff --git a/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestFindCLI.java b/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestFindCLI.java
index e98ab21d643321cdbf09214c8a2474361298c694..3b480533c3faaf7280acc1193d27c6a81377fcfc 100644
--- a/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestFindCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestFindCLI.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.selftests.SelfTestClient;
 import com.netscape.certsrv.selftests.SelfTestCollection;
 import com.netscape.certsrv.selftests.SelfTestData;
 import com.netscape.cmstools.cli.CLI;
@@ -75,7 +76,8 @@ public class SelfTestFindCLI extends CLI {
         s = cmd.getOptionValue("size");
         Integer size = s == null ? null : Integer.valueOf(s);
 
-        SelfTestCollection result = selfTestCLI.selfTestClient.findSelfTests(filter, start, size);
+        SelfTestClient selfTestClient = selfTestCLI.getSelfTestClient();
+        SelfTestCollection result = selfTestClient.findSelfTests(filter, start, size);
 
         MainCLI.printMessage(result.getTotal() + " entries matched");
         if (result.getTotal() == 0) return;
diff --git a/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestRunCLI.java b/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestRunCLI.java
index 59f8a71a85cfb53c17f0337b2c7645302f3f33f8..924455efd86d6217c0e9dd6f2d1b8e1f19c3d6a2 100644
--- a/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestRunCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestRunCLI.java
@@ -23,6 +23,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.lang.StringUtils;
 
+import com.netscape.certsrv.selftests.SelfTestClient;
 import com.netscape.certsrv.selftests.SelfTestResult;
 import com.netscape.certsrv.selftests.SelfTestResults;
 import com.netscape.cmstools.cli.CLI;
@@ -68,17 +69,18 @@ public class SelfTestRunCLI extends CLI {
 
         String[] cmdArgs = cmd.getArgs();
 
+        SelfTestClient selfTestClient = selfTestCLI.getSelfTestClient();
         SelfTestResults results;
 
         if (cmdArgs.length == 0) {
-            results = selfTestCLI.selfTestClient.runSelfTests();
+            results = selfTestClient.runSelfTests();
 
         } else {
 
             results = new SelfTestResults();
 
             for (String selfTestID : cmdArgs) {
-                SelfTestResult result = selfTestCLI.selfTestClient.runSelfTest(selfTestID);
+                SelfTestResult result = selfTestClient.runSelfTest(selfTestID);
                 results.addEntry(result);;
             }
         }
diff --git a/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestShowCLI.java b/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestShowCLI.java
index cce4fb58766c3df32b53557c795cd8bbaae4ba15..b8ff12aa3a017c93c99c16ead57d19a8a5f9ec2b 100644
--- a/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestShowCLI.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.selftests.SelfTestClient;
 import com.netscape.certsrv.selftests.SelfTestData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -71,7 +72,8 @@ public class SelfTestShowCLI extends CLI {
         String selfTestID = args[0];
         String output = cmd.getOptionValue("output");
 
-        SelfTestData selfTestInfo = selfTestCLI.selfTestClient.getSelfTest(selfTestID);
+        SelfTestClient selfTestClient = selfTestCLI.getSelfTestClient();
+        SelfTestData selfTestInfo = selfTestClient.getSelfTest(selfTestID);
 
         if (output == null) {
             MainCLI.printMessage("SelfTest \"" + selfTestID + "\"");
-- 
2.9.3

>From 8cf4c5fadd2d5a154c99430be9898f37163bdac7 Mon Sep 17 00:00:00 2001
From: "Endi S. Dewata" <edew...@redhat.com>
Date: Fri, 24 Mar 2017 04:21:10 +0100
Subject: [PATCH] Refactored TPSConnectorCLI for TKS.

The TPSConnectorCLI for TKS and its submodules have been modified
to use lazy initialization to get the PKIClient object.
---
 .../src/com/netscape/cmstools/system/TPSConnectorAddCLI.java     | 4 +++-
 .../src/com/netscape/cmstools/system/TPSConnectorCLI.java        | 9 ++++++---
 .../src/com/netscape/cmstools/system/TPSConnectorFindCLI.java    | 4 +++-
 .../src/com/netscape/cmstools/system/TPSConnectorModCLI.java     | 4 +++-
 .../src/com/netscape/cmstools/system/TPSConnectorRemoveCLI.java  | 4 +++-
 .../src/com/netscape/cmstools/system/TPSConnectorShowCLI.java    | 4 +++-
 6 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorAddCLI.java b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorAddCLI.java
index 82409723b8452362219209442b3f4cc4aca51bff..7c89c50c5796c19328d5923d1ebef6f89446a4cf 100644
--- a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorAddCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorAddCLI.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.system.TPSConnectorClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -70,7 +71,8 @@ public class TPSConnectorAddCLI extends CLI {
         String tpsHost = cmd.getOptionValue("host");
         String tpsPort = cmd.getOptionValue("port");
 
-        tpsConnectorCLI.tpsConnectorClient.createConnector(tpsHost, tpsPort);
+        TPSConnectorClient tpsConnectorClient = tpsConnectorCLI.getTPSConnectorClient();
+        tpsConnectorClient.createConnector(tpsHost, tpsPort);
 
         MainCLI.printMessage("Added TPS connector \""+tpsHost + ":" + tpsPort +"\"");
     }
diff --git a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorCLI.java b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorCLI.java
index 06527a78f0811777a3fc7c0956163eefd202b6ac..762dd64596032b14745be92d82766472500ee038 100644
--- a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorCLI.java
@@ -19,6 +19,7 @@ package com.netscape.cmstools.system;
 
 import org.jboss.resteasy.plugins.providers.atom.Link;
 
+import com.netscape.certsrv.client.PKIClient;
 import com.netscape.certsrv.system.TPSConnectorClient;
 import com.netscape.certsrv.system.TPSConnectorData;
 import com.netscape.cmstools.cli.CLI;
@@ -43,12 +44,14 @@ public class TPSConnectorCLI extends CLI {
         return parent.getFullName() + "-" + name;
     }
 
-    public void execute(String[] args) throws Exception {
+    public TPSConnectorClient getTPSConnectorClient() throws Exception {
 
-        client = parent.getClient();
+        if (tpsConnectorClient != null) return tpsConnectorClient;
+
+        PKIClient client = getClient();
         tpsConnectorClient = (TPSConnectorClient)parent.getClient("tpsconnector");
 
-        super.execute(args);
+        return tpsConnectorClient;
     }
 
     public static void printConnectorInfo(TPSConnectorData data) {
diff --git a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorFindCLI.java b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorFindCLI.java
index d52c3441254da3d28f9ec00e26d80d9d999dd322..d18400c3f6591ac77b781b60310224e2edfd6d0b 100644
--- a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorFindCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorFindCLI.java
@@ -23,6 +23,7 @@ import java.util.Collection;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.system.TPSConnectorClient;
 import com.netscape.certsrv.system.TPSConnectorCollection;
 import com.netscape.certsrv.system.TPSConnectorData;
 import com.netscape.cmstools.cli.CLI;
@@ -77,7 +78,8 @@ public class TPSConnectorFindCLI extends CLI {
         s = cmd.getOptionValue("size");
         Integer size = s == null ? null : Integer.valueOf(s);
 
-        TPSConnectorCollection result = tpsConnectorCLI.tpsConnectorClient.findConnectors(start, size);
+        TPSConnectorClient tpsConnectorClient = tpsConnectorCLI.getTPSConnectorClient();
+        TPSConnectorCollection result = tpsConnectorClient.findConnectors(start, size);
 
         MainCLI.printMessage(result.getTotal() + " entries matched");
         if (result.getTotal() == 0) return;
diff --git a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorModCLI.java b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorModCLI.java
index 2bc2a644f85b77c3170fc50c459f02745cfa7c20..1d1bd6607073e9ffd361552f63c0d073d4962c78 100644
--- a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorModCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorModCLI.java
@@ -5,6 +5,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.system.TPSConnectorClient;
 import com.netscape.certsrv.system.TPSConnectorData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -57,7 +58,8 @@ public class TPSConnectorModCLI extends CLI {
         data.setHost(cmd.getOptionValue("host"));
         data.setPort(cmd.getOptionValue("port"));
 
-        data = tpsConnectorCLI.tpsConnectorClient.modifyConnector(connID, data);
+        TPSConnectorClient tpsConnectorClient = tpsConnectorCLI.getTPSConnectorClient();
+        data = tpsConnectorClient.modifyConnector(connID, data);
 
         MainCLI.printMessage("Modified TPS connector \""+connID +"\"");
 
diff --git a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorRemoveCLI.java
index 96432cf3b914c7ea86884a8a3be3872d6760a847..c708f7f0f687b9bd64afff33a3a75d06f4f7bfab 100644
--- a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorRemoveCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorRemoveCLI.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.system.TPSConnectorClient;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
 
@@ -70,7 +71,8 @@ public class TPSConnectorRemoveCLI extends CLI {
         String tpsHost = cmd.getOptionValue("host");
         String tpsPort = cmd.getOptionValue("port");
 
-        tpsConnectorCLI.tpsConnectorClient.deleteConnector(tpsHost, tpsPort);
+        TPSConnectorClient tpsConnectorClient = tpsConnectorCLI.getTPSConnectorClient();
+        tpsConnectorClient.deleteConnector(tpsHost, tpsPort);
 
         MainCLI.printMessage("Removed TPS connector \""+tpsHost + ":" + tpsPort +"\"");
     }
diff --git a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorShowCLI.java b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorShowCLI.java
index c0f09e4f07f6215b34764ff3a69ab4061fba4026..8d37ffe5a111c19a64dec7aecb2f65e202304fa1 100644
--- a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorShowCLI.java
+++ b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorShowCLI.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 
+import com.netscape.certsrv.system.TPSConnectorClient;
 import com.netscape.certsrv.system.TPSConnectorData;
 import com.netscape.cmstools.cli.CLI;
 import com.netscape.cmstools.cli.MainCLI;
@@ -73,7 +74,8 @@ public class TPSConnectorShowCLI extends CLI {
         String tpsHost = cmd.getOptionValue("host");
         String tpsPort = cmd.getOptionValue("port", "443");
 
-        TPSConnectorData data = tpsConnectorCLI.tpsConnectorClient.getConnector(tpsHost, tpsPort);
+        TPSConnectorClient tpsConnectorClient = tpsConnectorCLI.getTPSConnectorClient();
+        TPSConnectorData data = tpsConnectorClient.getConnector(tpsHost, tpsPort);
 
         MainCLI.printMessage("TPS Connector \"" + tpsHost + ":" + tpsPort + "\"");
         TPSConnectorCLI.printConnectorInfo(data);
-- 
2.9.3

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

Reply via email to