From f74c644b09dd1e18289c4a543a211c3ff8cd02d9 Mon Sep 17 00:00:00 2001 From: "Endi S. Dewata" Date: Fri, 8 Nov 2013 12:36:33 -0500 Subject: Fixed find commands. Some of the REST services have been fixed to consistently return a DataCollection which contains the total count, the requested subset of results, and links to request other subsets of the results. The TPSConnectorFindCLI has been split into separate find and show commands. Ticket #749 --- .../com/netscape/certsrv/base/DataCollection.java | 9 +++ .../netscape/certsrv/group/GroupCollection.java | 34 ++-------- .../certsrv/group/GroupMemberCollection.java | 37 ++--------- .../certsrv/system/TPSConnectorClient.java | 4 +- .../certsrv/system/TPSConnectorResource.java | 2 +- .../netscape/certsrv/user/UserCertCollection.java | 30 ++------- .../com/netscape/certsrv/user/UserCollection.java | 34 ++-------- .../certsrv/user/UserMembershipCollection.java | 37 ++--------- .../com/netscape/cmstools/group/GroupFindCLI.java | 5 +- .../cmstools/group/GroupMemberFindCLI.java | 5 +- .../netscape/cmstools/logging/ActivityFindCLI.java | 3 +- .../cmstools/selftests/SelfTestFindCLI.java | 3 +- .../cmstools/system/TPSConnectorFindCLI.java | 62 ++++++++---------- .../cmstools/system/TPSConnectorShowCLI.java | 73 ++++++++++++++++++++++ .../tps/authenticator/AuthenticatorFindCLI.java | 3 +- .../netscape/cmstools/tps/cert/TPSCertFindCLI.java | 3 +- .../cmstools/tps/connection/ConnectionFindCLI.java | 3 +- .../cmstools/tps/profile/ProfileFindCLI.java | 3 +- .../tps/profile/ProfileMappingFindCLI.java | 3 +- .../netscape/cmstools/tps/token/TokenFindCLI.java | 3 +- .../netscape/cmstools/user/UserCertFindCLI.java | 5 +- .../com/netscape/cmstools/user/UserFindCLI.java | 5 +- .../cmstools/user/UserMembershipFindCLI.java | 5 +- .../cms/servlet/admin/GroupMemberProcessor.java | 3 +- .../netscape/cms/servlet/admin/GroupService.java | 4 +- .../netscape/cms/servlet/admin/UserService.java | 48 ++++++++------ .../cms/servlet/tks/TPSConnectorService.java | 38 +++++++++-- .../cmscore/selftests/SelfTestService.java | 32 +++++++++- .../tps/authenticator/AuthenticatorService.java | 2 +- .../dogtagpki/server/tps/cert/TPSCertService.java | 2 +- .../server/tps/connection/ConnectionService.java | 2 +- .../server/tps/logging/ActivityService.java | 2 +- .../server/tps/profile/ProfileMappingService.java | 2 +- .../server/tps/profile/ProfileService.java | 2 +- .../dogtagpki/server/tps/token/TokenService.java | 2 +- 35 files changed, 266 insertions(+), 244 deletions(-) create mode 100644 base/java-tools/src/com/netscape/cmstools/system/TPSConnectorShowCLI.java diff --git a/base/common/src/com/netscape/certsrv/base/DataCollection.java b/base/common/src/com/netscape/certsrv/base/DataCollection.java index 0237e8fcc..8432604f0 100644 --- a/base/common/src/com/netscape/certsrv/base/DataCollection.java +++ b/base/common/src/com/netscape/certsrv/base/DataCollection.java @@ -30,9 +30,18 @@ import org.jboss.resteasy.plugins.providers.atom.Link; */ public class DataCollection { + Integer total; Collection entries = new ArrayList(); Collection links = new ArrayList(); + public Integer getTotal() { + return total; + } + + public void setTotal(Integer total) { + this.total = total; + } + public Collection getEntries() { return entries; } diff --git a/base/common/src/com/netscape/certsrv/group/GroupCollection.java b/base/common/src/com/netscape/certsrv/group/GroupCollection.java index 26d108e7b..4ce8b0268 100644 --- a/base/common/src/com/netscape/certsrv/group/GroupCollection.java +++ b/base/common/src/com/netscape/certsrv/group/GroupCollection.java @@ -18,48 +18,22 @@ package com.netscape.certsrv.group; -import java.util.ArrayList; import java.util.Collection; -import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlRootElement; -import org.jboss.resteasy.plugins.providers.atom.Link; +import com.netscape.certsrv.base.DataCollection; /** * @author Endi S. Dewata */ @XmlRootElement(name="Groups") -public class GroupCollection { - - Collection groups = new ArrayList(); - Collection links = new ArrayList(); +public class GroupCollection extends DataCollection { @XmlElementRef - public Collection getGroups() { - return groups; - } - - public void setGroups(Collection groups) { - this.groups = groups; - } - - public void addGroup(GroupData groupData) { - groups.add(groupData); - } - - @XmlElement(name="Link") - public Collection getLinks() { - return links; - } - - public void setLink(Collection links) { - this.links = links; - } - - public void addLink(Link link) { - links.add(link); + public Collection getEntries() { + return super.getEntries(); } } diff --git a/base/common/src/com/netscape/certsrv/group/GroupMemberCollection.java b/base/common/src/com/netscape/certsrv/group/GroupMemberCollection.java index 6ec013bca..b43b16b57 100644 --- a/base/common/src/com/netscape/certsrv/group/GroupMemberCollection.java +++ b/base/common/src/com/netscape/certsrv/group/GroupMemberCollection.java @@ -18,7 +18,6 @@ package com.netscape.certsrv.group; -import java.util.ArrayList; import java.util.Collection; import javax.xml.bind.JAXBContext; @@ -26,41 +25,17 @@ import javax.xml.bind.Marshaller; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import org.jboss.resteasy.plugins.providers.atom.Link; +import com.netscape.certsrv.base.DataCollection; /** * @author Endi S. Dewata */ @XmlRootElement(name="GroupMembers") -public class GroupMemberCollection { - - Collection members = new ArrayList(); - Collection links = new ArrayList(); +public class GroupMemberCollection extends DataCollection { @XmlElement(name="Member") - public Collection getMembers() { - return members; - } - - public void setMembers(Collection members) { - this.members = members; - } - - public void addMember(GroupMemberData member) { - members.add(member); - } - - @XmlElement(name="Link") - public Collection getLinks() { - return links; - } - - public void setLink(Collection links) { - this.links = links; - } - - public void addLink(Link link) { - links.add(link); + public Collection getEntries() { + return super.getEntries(); } public static void main(String args[]) throws Exception { @@ -70,12 +45,12 @@ public class GroupMemberCollection { GroupMemberData member1 = new GroupMemberData(); member1.setID("User 1"); member1.setGroupID("Group 1"); - response.addMember(member1); + response.addEntry(member1); GroupMemberData member2 = new GroupMemberData(); member2.setID("User 2"); member2.setGroupID("Group 1"); - response.addMember(member2); + response.addEntry(member2); JAXBContext context = JAXBContext.newInstance(GroupMemberCollection.class); Marshaller marshaller = context.createMarshaller(); diff --git a/base/common/src/com/netscape/certsrv/system/TPSConnectorClient.java b/base/common/src/com/netscape/certsrv/system/TPSConnectorClient.java index b247db907..0d5cff91b 100644 --- a/base/common/src/com/netscape/certsrv/system/TPSConnectorClient.java +++ b/base/common/src/com/netscape/certsrv/system/TPSConnectorClient.java @@ -21,8 +21,8 @@ public class TPSConnectorClient extends Client { tpsConnectorClient = createProxy(TPSConnectorResource.class); } - public TPSConnectorCollection listConnectors() { - return tpsConnectorClient.listConnectors(); + public TPSConnectorCollection findConnectors(Integer start, Integer size) { + return tpsConnectorClient.findConnectors(start, size); } public TPSConnectorData getConnector(String id) { diff --git a/base/common/src/com/netscape/certsrv/system/TPSConnectorResource.java b/base/common/src/com/netscape/certsrv/system/TPSConnectorResource.java index e10e132da..c29fa3d19 100644 --- a/base/common/src/com/netscape/certsrv/system/TPSConnectorResource.java +++ b/base/common/src/com/netscape/certsrv/system/TPSConnectorResource.java @@ -43,7 +43,7 @@ import com.netscape.certsrv.key.KeyData; public interface TPSConnectorResource { @GET @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - public TPSConnectorCollection listConnectors(); + public TPSConnectorCollection findConnectors(Integer start, Integer size); @GET @Path("{id}") diff --git a/base/common/src/com/netscape/certsrv/user/UserCertCollection.java b/base/common/src/com/netscape/certsrv/user/UserCertCollection.java index a395ed73c..3eb4ed406 100644 --- a/base/common/src/com/netscape/certsrv/user/UserCertCollection.java +++ b/base/common/src/com/netscape/certsrv/user/UserCertCollection.java @@ -18,43 +18,21 @@ package com.netscape.certsrv.user; -import java.util.ArrayList; import java.util.Collection; -import java.util.List; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import org.jboss.resteasy.plugins.providers.atom.Link; +import com.netscape.certsrv.base.DataCollection; /** * @author Endi S. Dewata */ @XmlRootElement(name="UserCerts") -public class UserCertCollection { - - List certs = new ArrayList(); - Collection links = new ArrayList(); +public class UserCertCollection extends DataCollection { @XmlElement(name="Cert") - public Collection getCerts() { - return certs; - } - - public void addCert(UserCertData cert) { - certs.add(cert); - } - - @XmlElement(name="Link") - public Collection getLinks() { - return links; - } - - public void setLink(Collection links) { - this.links = links; - } - - public void addLink(Link link) { - links.add(link); + public Collection getEntries() { + return super.getEntries(); } } diff --git a/base/common/src/com/netscape/certsrv/user/UserCollection.java b/base/common/src/com/netscape/certsrv/user/UserCollection.java index d92ecc208..a24a79878 100644 --- a/base/common/src/com/netscape/certsrv/user/UserCollection.java +++ b/base/common/src/com/netscape/certsrv/user/UserCollection.java @@ -18,48 +18,22 @@ package com.netscape.certsrv.user; -import java.util.ArrayList; import java.util.Collection; -import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlRootElement; -import org.jboss.resteasy.plugins.providers.atom.Link; +import com.netscape.certsrv.base.DataCollection; /** * @author Endi S. Dewata */ @XmlRootElement(name="Users") -public class UserCollection { - - Collection users = new ArrayList(); - Collection links = new ArrayList(); +public class UserCollection extends DataCollection { @XmlElementRef - public Collection getUsers() { - return users; - } - - public void setUsers(Collection users) { - this.users = users; - } - - public void addUser(UserData userData) { - users.add(userData); - } - - @XmlElement(name="Link") - public Collection getLinks() { - return links; - } - - public void setLink(Collection links) { - this.links = links; - } - - public void addLink(Link link) { - links.add(link); + public Collection getEntries() { + return super.getEntries(); } } diff --git a/base/common/src/com/netscape/certsrv/user/UserMembershipCollection.java b/base/common/src/com/netscape/certsrv/user/UserMembershipCollection.java index 069840d13..4c2ffa9b4 100644 --- a/base/common/src/com/netscape/certsrv/user/UserMembershipCollection.java +++ b/base/common/src/com/netscape/certsrv/user/UserMembershipCollection.java @@ -18,7 +18,6 @@ package com.netscape.certsrv.user; -import java.util.ArrayList; import java.util.Collection; import javax.xml.bind.JAXBContext; @@ -26,41 +25,17 @@ import javax.xml.bind.Marshaller; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import org.jboss.resteasy.plugins.providers.atom.Link; +import com.netscape.certsrv.base.DataCollection; /** * @author Endi S. Dewata */ @XmlRootElement(name="UserMemberships") -public class UserMembershipCollection { - - Collection memberships = new ArrayList(); - Collection links = new ArrayList(); +public class UserMembershipCollection extends DataCollection { @XmlElement(name="Membership") - public Collection getMemberships() { - return memberships; - } - - public void setMemberships(Collection members) { - this.memberships = members; - } - - public void addMembership(UserMembershipData member) { - memberships.add(member); - } - - @XmlElement(name="Link") - public Collection getLinks() { - return links; - } - - public void setLink(Collection links) { - this.links = links; - } - - public void addLink(Link link) { - links.add(link); + public Collection getEntries() { + return super.getEntries(); } public static void main(String args[]) throws Exception { @@ -70,12 +45,12 @@ public class UserMembershipCollection { UserMembershipData membership1 = new UserMembershipData(); membership1.setID("Group 1"); membership1.setUserID("User 1"); - response.addMembership(membership1); + response.addEntry(membership1); UserMembershipData membership2 = new UserMembershipData(); membership2.setID("Group 2"); membership2.setUserID("User 1"); - response.addMembership(membership2); + response.addEntry(membership2); JAXBContext context = JAXBContext.newInstance(UserMembershipCollection.class); Marshaller marshaller = context.createMarshaller(); diff --git a/base/java-tools/src/com/netscape/cmstools/group/GroupFindCLI.java b/base/java-tools/src/com/netscape/cmstools/group/GroupFindCLI.java index 7c2361da3..45c2acf16 100644 --- a/base/java-tools/src/com/netscape/cmstools/group/GroupFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/group/GroupFindCLI.java @@ -76,9 +76,10 @@ public class GroupFindCLI extends CLI { GroupCollection response = groupCLI.groupClient.findGroups(filter, start, size); - Collection entries = response.getGroups(); + Collection entries = response.getEntries(); - MainCLI.printMessage(entries.size()+" group(s) matched"); + MainCLI.printMessage(response.getTotal() + " group(s) matched"); + if (response.getTotal() == 0) return; boolean first = true; diff --git a/base/java-tools/src/com/netscape/cmstools/group/GroupMemberFindCLI.java b/base/java-tools/src/com/netscape/cmstools/group/GroupMemberFindCLI.java index b9c9ac76d..ee694912d 100644 --- a/base/java-tools/src/com/netscape/cmstools/group/GroupMemberFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/group/GroupMemberFindCLI.java @@ -82,9 +82,10 @@ public class GroupMemberFindCLI extends CLI { GroupMemberCollection response = groupMemberCLI.groupClient.findGroupMembers(groupID, start, size); - Collection entries = response.getMembers(); + Collection entries = response.getEntries(); - MainCLI.printMessage(entries.size()+" group member(s) matched"); + MainCLI.printMessage(response.getTotal() + " group member(s) matched"); + if (response.getTotal() == 0) return; boolean first = true; 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 0808a0a70..08c8496ca 100644 --- a/base/java-tools/src/com/netscape/cmstools/logging/ActivityFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/logging/ActivityFindCLI.java @@ -74,7 +74,8 @@ public class ActivityFindCLI extends CLI { ActivityCollection result = activityCLI.activityClient.findActivities(start, size); Collection activities = result.getEntries(); - MainCLI.printMessage(activities.size() + " activity(s) matched"); + MainCLI.printMessage(result.getTotal() + " activity(s) matched"); + if (result.getTotal() == 0) return; boolean first = true; 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 245c9a61e..4570d9a91 100644 --- a/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/selftests/SelfTestFindCLI.java @@ -74,7 +74,8 @@ public class SelfTestFindCLI extends CLI { SelfTestCollection result = selfTestCLI.selfTestClient.findSelfTests(start, size); Collection selfTests = result.getEntries(); - MainCLI.printMessage(selfTests.size() + " connection(s) matched"); + MainCLI.printMessage(result.getTotal() + " self test(s) matched"); + if (result.getTotal() == 0) return; boolean first = true; 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 4caab729f..737851704 100644 --- a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorFindCLI.java @@ -22,7 +22,6 @@ import java.util.Collection; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; -import com.netscape.certsrv.base.ResourceNotFoundException; import com.netscape.certsrv.system.TPSConnectorCollection; import com.netscape.certsrv.system.TPSConnectorData; import com.netscape.cmstools.cli.CLI; @@ -32,10 +31,11 @@ import com.netscape.cmstools.cli.MainCLI; * @author Ade Lee */ public class TPSConnectorFindCLI extends CLI { + public TPSConnectorCLI tpsConnectorCLI; public TPSConnectorFindCLI(TPSConnectorCLI tpsConnectorCLI) { - super("find", "Find TPS connector details on TKS", tpsConnectorCLI); + super("find", "Find TPS connectors on TKS", tpsConnectorCLI); this.tpsConnectorCLI = tpsConnectorCLI; } @@ -44,12 +44,13 @@ public class TPSConnectorFindCLI extends CLI { } public void execute(String[] args) throws Exception { - Option option = new Option(null, "host", true, "TPS host"); - option.setArgName("host"); + + Option option = new Option(null, "start", true, "Page start"); + option.setArgName("start"); options.addOption(option); - option = new Option(null, "port", true, "TPS port"); - option.setArgName("port"); + option = new Option(null, "size", true, "Page size"); + option.setArgName("size"); options.addOption(option); CommandLine cmd = null; @@ -63,42 +64,29 @@ public class TPSConnectorFindCLI extends CLI { System.exit(1); } - String tpsHost = cmd.getOptionValue("host"); - String tpsPort = cmd.getOptionValue("port"); - - if (tpsHost != null) { - if (tpsPort == null) - tpsPort = "443"; - try { - TPSConnectorData data = tpsConnectorCLI.tpsConnectorClient.getConnector( - tpsHost, tpsPort); - TPSConnectorCLI.printConnectorInfo(data); - } catch (ResourceNotFoundException e) { - System.out.println(" TPS connector not found."); - return; - } - } else { - TPSConnectorCollection result = tpsConnectorCLI.tpsConnectorClient.listConnectors(); - Collection conns = result.getEntries(); + String s = cmd.getOptionValue("start"); + Integer start = s == null ? null : Integer.valueOf(s); - if (conns.isEmpty()) { - System.out.println(" No TPS connectors found."); - return; - } + s = cmd.getOptionValue("size"); + Integer size = s == null ? null : Integer.valueOf(s); + + TPSConnectorCollection result = tpsConnectorCLI.tpsConnectorClient.findConnectors(start, size); - MainCLI.printMessage(conns.size() + " TPS connector(s) matched"); - boolean first = true; - for (TPSConnectorData data: conns) { - if (first) { - first = false; - } else { - System.out.println(); - } + MainCLI.printMessage(result.getTotal() + " TPS connector(s) matched"); + if (result.getTotal() == 0) return; - TPSConnectorCLI.printConnectorInfo(data); + Collection conns = result.getEntries(); + boolean first = true; + for (TPSConnectorData data: conns) { + if (first) { + first = false; + } else { + System.out.println(); } - MainCLI.printMessage("Number of entries returned " + conns.size()); + TPSConnectorCLI.printConnectorInfo(data); } + + MainCLI.printMessage("Number of entries returned " + conns.size()); } } diff --git a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorShowCLI.java b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorShowCLI.java new file mode 100644 index 000000000..43d28c839 --- /dev/null +++ b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorShowCLI.java @@ -0,0 +1,73 @@ +// --- BEGIN COPYRIGHT BLOCK --- +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// (C) 2013 Red Hat, Inc. +// All rights reserved. +// --- END COPYRIGHT BLOCK --- +package com.netscape.cmstools.system; + +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.Option; + +import com.netscape.certsrv.system.TPSConnectorData; +import com.netscape.cmstools.cli.CLI; +import com.netscape.cmstools.cli.MainCLI; + +/** + * @author Ade Lee + */ +public class TPSConnectorShowCLI extends CLI { + + public TPSConnectorCLI tpsConnectorCLI; + + public TPSConnectorShowCLI(TPSConnectorCLI tpsConnectorCLI) { + super("show", "Show TPS connector details on TKS", tpsConnectorCLI); + this.tpsConnectorCLI = tpsConnectorCLI; + } + + public void printHelp() { + formatter.printHelp(getFullName() + " [OPTIONS...]", options); + } + + public void execute(String[] args) throws Exception { + + Option option = new Option(null, "host", true, "TPS host"); + option.setArgName("host"); + option.setRequired(true); + options.addOption(option); + + option = new Option(null, "port", true, "TPS port"); + option.setArgName("port"); + options.addOption(option); + + CommandLine cmd = null; + + try { + cmd = parser.parse(options, args); + + } catch (Exception e) { + System.err.println("Error: " + e.getMessage()); + printHelp(); + System.exit(1); + } + + String tpsHost = cmd.getOptionValue("host"); + String tpsPort = cmd.getOptionValue("port", "443"); + + TPSConnectorData data = tpsConnectorCLI.tpsConnectorClient.getConnector(tpsHost, tpsPort); + + MainCLI.printMessage("TPS Connector \"" + tpsHost + ":" + tpsPort + "\""); + TPSConnectorCLI.printConnectorInfo(data); + } +} 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 2ff8288a0..81724bb31 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 @@ -74,7 +74,8 @@ public class AuthenticatorFindCLI extends CLI { AuthenticatorCollection result = authenticatorCLI.authenticatorClient.findAuthenticators(start, size); Collection authenticators = result.getEntries(); - MainCLI.printMessage(authenticators.size() + " authenticator(s) matched"); + MainCLI.printMessage(result.getTotal() + " authenticator(s) matched"); + if (result.getTotal() == 0) return; boolean first = true; 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 4d0827cb3..9ba66a62a 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 @@ -74,7 +74,8 @@ public class TPSCertFindCLI extends CLI { TPSCertCollection result = certCLI.certClient.findCerts(start, size); Collection certs = result.getEntries(); - MainCLI.printMessage(certs.size() + " certificate(s) matched"); + MainCLI.printMessage(result.getTotal() + " certificate(s) matched"); + if (result.getTotal() == 0) return; boolean first = true; diff --git a/base/java-tools/src/com/netscape/cmstools/tps/connection/ConnectionFindCLI.java b/base/java-tools/src/com/netscape/cmstools/tps/connection/ConnectionFindCLI.java index 6112db4ff..7cb4c1b16 100644 --- a/base/java-tools/src/com/netscape/cmstools/tps/connection/ConnectionFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/tps/connection/ConnectionFindCLI.java @@ -74,7 +74,8 @@ public class ConnectionFindCLI extends CLI { ConnectionCollection result = connectionCLI.connectionClient.findConnections(start, size); Collection connections = result.getEntries(); - MainCLI.printMessage(connections.size() + " connection(s) matched"); + MainCLI.printMessage(result.getTotal() + " connection(s) matched"); + if (result.getTotal() == 0) return; boolean first = true; 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 9f822f6ba..907641462 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 @@ -74,7 +74,8 @@ public class ProfileFindCLI extends CLI { ProfileCollection result = profileCLI.profileClient.findProfiles(start, size); Collection profiles = result.getEntries(); - MainCLI.printMessage(profiles.size() + " profile(s) matched"); + MainCLI.printMessage(result.getTotal() + " profile(s) matched"); + if (result.getTotal() == 0) return; boolean first = true; 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 d96268be7..6e101a049 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 @@ -74,7 +74,8 @@ public class ProfileMappingFindCLI extends CLI { ProfileMappingCollection result = profileMappingCLI.profileMappingClient.findProfileMappings(start, size); Collection profileMappings = result.getEntries(); - MainCLI.printMessage(profileMappings.size() + " profile mapping(s) matched"); + MainCLI.printMessage(result.getTotal() + " profile mapping(s) matched"); + if (result.getTotal() == 0) return; boolean first = true; 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 3ade40bb9..2e43f3cdd 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 @@ -74,7 +74,8 @@ public class TokenFindCLI extends CLI { TokenCollection result = tokenCLI.tokenClient.findTokens(start, size); Collection tokens = result.getEntries(); - MainCLI.printMessage(tokens.size() + " token(s) matched"); + MainCLI.printMessage(result.getTotal() + " token(s) matched"); + if (result.getTotal() == 0) return; boolean first = true; diff --git a/base/java-tools/src/com/netscape/cmstools/user/UserCertFindCLI.java b/base/java-tools/src/com/netscape/cmstools/user/UserCertFindCLI.java index 680b6b362..db7c0304b 100644 --- a/base/java-tools/src/com/netscape/cmstools/user/UserCertFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/user/UserCertFindCLI.java @@ -82,9 +82,10 @@ public class UserCertFindCLI extends CLI { UserCertCollection response = userCertCLI.userClient.findUserCerts(userID, start, size); - Collection entries = response.getCerts(); + Collection entries = response.getEntries(); - MainCLI.printMessage(entries.size() + " user cert(s) matched"); + MainCLI.printMessage(response.getTotal() + " user cert(s) matched"); + if (response.getTotal() == 0) return; boolean first = true; diff --git a/base/java-tools/src/com/netscape/cmstools/user/UserFindCLI.java b/base/java-tools/src/com/netscape/cmstools/user/UserFindCLI.java index 4b081920e..ed49d1c65 100644 --- a/base/java-tools/src/com/netscape/cmstools/user/UserFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/user/UserFindCLI.java @@ -76,9 +76,10 @@ public class UserFindCLI extends CLI { UserCollection response = userCLI.userClient.findUsers(filter, start, size); - Collection entries = response.getUsers(); + Collection entries = response.getEntries(); - MainCLI.printMessage(entries.size() + " user(s) matched"); + MainCLI.printMessage(response.getTotal() + " user(s) matched"); + if (response.getTotal() == 0) return; boolean first = true; diff --git a/base/java-tools/src/com/netscape/cmstools/user/UserMembershipFindCLI.java b/base/java-tools/src/com/netscape/cmstools/user/UserMembershipFindCLI.java index 129aa6dc8..66b8f36bb 100644 --- a/base/java-tools/src/com/netscape/cmstools/user/UserMembershipFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/user/UserMembershipFindCLI.java @@ -82,9 +82,10 @@ public class UserMembershipFindCLI extends CLI { UserMembershipCollection response = userMembershipCLI.userClient.findUserMemberships(userID, start, size); - Collection entries = response.getMemberships(); + Collection entries = response.getEntries(); - MainCLI.printMessage(entries.size()+" membership(s) matched"); + MainCLI.printMessage(response.getTotal() + " membership(s) matched"); + if (response.getTotal() == 0) return; boolean first = true; diff --git a/base/server/cms/src/com/netscape/cms/servlet/admin/GroupMemberProcessor.java b/base/server/cms/src/com/netscape/cms/servlet/admin/GroupMemberProcessor.java index 9f976d401..b38277dd0 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/admin/GroupMemberProcessor.java +++ b/base/server/cms/src/com/netscape/cms/servlet/admin/GroupMemberProcessor.java @@ -124,11 +124,12 @@ public class GroupMemberProcessor extends Processor { // return entries up to the page size for ( ; i 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); diff --git a/base/server/cms/src/com/netscape/cms/servlet/admin/GroupService.java b/base/server/cms/src/com/netscape/cms/servlet/admin/GroupService.java index 3f250517a..17c4387a3 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/admin/GroupService.java +++ b/base/server/cms/src/com/netscape/cms/servlet/admin/GroupService.java @@ -109,7 +109,6 @@ public class GroupService extends PKIService implements GroupResource { Enumeration groups = userGroupManager.listGroups(filter); GroupCollection response = new GroupCollection(); - int i = 0; // skip to the start of the page @@ -118,11 +117,12 @@ public class GroupService extends PKIService implements GroupResource { // return entries up to the page size for ( ; i 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); diff --git a/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java b/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java index 3f172abeb..b32bf6756 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java +++ b/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java @@ -28,6 +28,7 @@ import java.security.cert.CertificateNotYetValidException; import java.security.cert.X509Certificate; import java.util.Arrays; import java.util.Enumeration; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -137,7 +138,6 @@ public class UserService extends PKIService implements UserResource { Enumeration users = userGroupManager.findUsers(filter); UserCollection response = new UserCollection(); - int i = 0; // skip to the start of the page @@ -146,11 +146,12 @@ public class UserService extends PKIService implements UserResource { // return entries up to the page size for ( ; i 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); @@ -556,24 +557,33 @@ public class UserService extends PKIService implements UserResource { throw new UserNotFoundException(userID); } + X509Certificate[] certs = user.getX509Certificates(); + if (certs == null) certs = new X509Certificate[0]; + Iterator entries = Arrays.asList(certs).iterator(); + UserCertCollection response = new UserCertCollection(); + int i = 0; - X509Certificate[] certs = user.getX509Certificates(); - if (certs != null) { - for (int i=start; i 0) { - URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); - response.addLink(new Link("prev", uri)); - } + // return entries up to the page size + for ( ; i 0) { + URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); + response.addLink(new Link("prev", uri)); + } + + if (start+size < i) { + URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", start+size).build(); + response.addLink(new Link("next", uri)); } return response; @@ -944,10 +954,9 @@ public class UserService extends PKIService implements UserResource { throw new UserNotFoundException(userID); } - UserMembershipCollection response = new UserMembershipCollection(); - Enumeration groups = userGroupManager.findGroupsByUser(user.getUserDN()); + UserMembershipCollection response = new UserMembershipCollection(); int i = 0; // skip to the start of the page @@ -956,11 +965,12 @@ public class UserService extends PKIService implements UserResource { // return entries up to the page size for ( ; i 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); diff --git a/base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java b/base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java index 26f25bd4f..9351ffe60 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java +++ b/base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java @@ -8,6 +8,7 @@ import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; import java.util.Arrays; import java.util.Collection; +import java.util.Iterator; import java.util.TreeSet; import javax.servlet.http.HttpServletRequest; @@ -53,21 +54,46 @@ public class TPSConnectorService implements TPSConnectorResource { @Context private HttpServletRequest servletRequest; + public final static int DEFAULT_SIZE = 20; + public IUGSubsystem userGroupManager = (IUGSubsystem) CMS.getSubsystem(CMS.SUBSYSTEM_UG); @Override - public TPSConnectorCollection listConnectors() { + public TPSConnectorCollection findConnectors(Integer start, Integer size) { try { - TPSConnectorCollection ret = new TPSConnectorCollection(); String tpsList = cs.getString(TPS_LIST, ""); + Iterator entries = Arrays.asList(StringUtils.split(tpsList,",")).iterator(); + + TPSConnectorCollection response = new TPSConnectorCollection(); + int i = 0; + + // skip to the start of the page + for ( ; i 0) { + URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); + response.addLink(new Link("prev", uri)); } - return ret; + + if (start+size < i) { + URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", start+size).build(); + response.addLink(new Link("next", uri)); + } + + return response; + } catch (EBaseException e) { e.printStackTrace(); - throw new PKIException("Unable to get TPS connection data" + e); + throw new PKIException("Unable to get TPS connection data: " + e); } } diff --git a/base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestService.java b/base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestService.java index da7708e49..4fcddb7e4 100644 --- a/base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestService.java +++ b/base/server/cmscore/src/com/netscape/cmscore/selftests/SelfTestService.java @@ -21,6 +21,8 @@ package com.netscape.cmscore.selftests; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URLEncoder; +import java.util.Arrays; +import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.Context; @@ -96,14 +98,38 @@ public class SelfTestService extends PKIService implements SelfTestResource { CMS.debug("SelfTestService.findSelfTests()"); try { - SelfTestCollection response = new SelfTestCollection(); + start = start == null ? 0 : start; + size = size == null ? DEFAULT_SIZE : size; ISelfTestSubsystem subsystem = (ISelfTestSubsystem)CMS.getSubsystem(ISelfTestSubsystem.ID); - for (String name : subsystem.listSelfTestsEnabledOnDemand()) { - SelfTestData data = createSelfTestData(subsystem, name); + Iterator entries = Arrays.asList(subsystem.listSelfTestsEnabledOnDemand()).iterator(); + + SelfTestCollection response = new SelfTestCollection(); + int i = 0; + + // skip to the start of the page + for ( ; i 0) { + URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); + response.addLink(new Link("prev", uri)); + } + + if (start+size < i) { + URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", start+size).build(); + response.addLink(new Link("next", uri)); + } + return response; } catch (Exception e) { diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/authenticator/AuthenticatorService.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/authenticator/AuthenticatorService.java index e1d7ed5cf..6b77a0533 100644 --- a/base/tps-tomcat/src/org/dogtagpki/server/tps/authenticator/AuthenticatorService.java +++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/authenticator/AuthenticatorService.java @@ -105,7 +105,6 @@ public class AuthenticatorService extends PKIService implements AuthenticatorRes Iterator authenticators = database.getRecords().iterator(); AuthenticatorCollection response = new AuthenticatorCollection(); - int i = 0; // skip to the start of the page @@ -118,6 +117,7 @@ public class AuthenticatorService extends PKIService implements AuthenticatorRes // count the total entries for ( ; authenticators.hasNext(); i++) authenticators.next(); + response.setTotal(i); if (start > 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/cert/TPSCertService.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/cert/TPSCertService.java index e6f805839..238ac12df 100644 --- a/base/tps-tomcat/src/org/dogtagpki/server/tps/cert/TPSCertService.java +++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/cert/TPSCertService.java @@ -120,7 +120,6 @@ public class TPSCertService extends PKIService implements TPSCertResource { Iterator activities = database.getRecords().iterator(); TPSCertCollection response = new TPSCertCollection(); - int i = 0; // skip to the start of the page @@ -133,6 +132,7 @@ public class TPSCertService extends PKIService implements TPSCertResource { // count the total entries for ( ; activities.hasNext(); i++) activities.next(); + response.setTotal(i); if (start > 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/connection/ConnectionService.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/connection/ConnectionService.java index 034af5afd..97043bca5 100644 --- a/base/tps-tomcat/src/org/dogtagpki/server/tps/connection/ConnectionService.java +++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/connection/ConnectionService.java @@ -105,7 +105,6 @@ public class ConnectionService extends PKIService implements ConnectionResource Iterator connections = database.getRecords().iterator(); ConnectionCollection response = new ConnectionCollection(); - int i = 0; // skip to the start of the page @@ -118,6 +117,7 @@ public class ConnectionService extends PKIService implements ConnectionResource // count the total entries for ( ; connections.hasNext(); i++) connections.next(); + response.setTotal(i); if (start > 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/logging/ActivityService.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/logging/ActivityService.java index 16054b414..5cfb090bf 100644 --- a/base/tps-tomcat/src/org/dogtagpki/server/tps/logging/ActivityService.java +++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/logging/ActivityService.java @@ -110,7 +110,6 @@ public class ActivityService extends PKIService implements ActivityResource { Iterator activities = database.getRecords().iterator(); ActivityCollection response = new ActivityCollection(); - int i = 0; // skip to the start of the page @@ -123,6 +122,7 @@ public class ActivityService extends PKIService implements ActivityResource { // count the total entries for ( ; activities.hasNext(); i++) activities.next(); + response.setTotal(i); if (start > 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/profile/ProfileMappingService.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/profile/ProfileMappingService.java index d23485ddd..f9432104b 100644 --- a/base/tps-tomcat/src/org/dogtagpki/server/tps/profile/ProfileMappingService.java +++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/profile/ProfileMappingService.java @@ -105,7 +105,6 @@ public class ProfileMappingService extends PKIService implements ProfileMappingR Iterator profileMappings = database.getRecords().iterator(); ProfileMappingCollection response = new ProfileMappingCollection(); - int i = 0; // skip to the start of the page @@ -118,6 +117,7 @@ public class ProfileMappingService extends PKIService implements ProfileMappingR // count the total entries for ( ; profileMappings.hasNext(); i++) profileMappings.next(); + response.setTotal(i); if (start > 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/profile/ProfileService.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/profile/ProfileService.java index 6e52aeec6..9bff5188f 100644 --- a/base/tps-tomcat/src/org/dogtagpki/server/tps/profile/ProfileService.java +++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/profile/ProfileService.java @@ -108,7 +108,6 @@ public class ProfileService extends PKIService implements ProfileResource { Iterator profiles = database.getRecords().iterator(); ProfileCollection response = new ProfileCollection(); - int i = 0; // skip to the start of the page @@ -121,6 +120,7 @@ public class ProfileService extends PKIService implements ProfileResource { // count the total entries for ( ; profiles.hasNext(); i++) profiles.next(); + response.setTotal(i); if (start > 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenService.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenService.java index aa01fd64b..95802e3e2 100644 --- a/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenService.java +++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/token/TokenService.java @@ -121,7 +121,6 @@ public class TokenService extends PKIService implements TokenResource { Iterator tokens = database.getRecords().iterator(); TokenCollection response = new TokenCollection(); - int i = 0; // skip to the start of the page @@ -134,6 +133,7 @@ public class TokenService extends PKIService implements TokenResource { // count the total entries for ( ; tokens.hasNext(); i++) tokens.next(); + response.setTotal(i); if (start > 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); -- cgit