diff options
35 files changed, 266 insertions, 244 deletions
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<E> { + Integer total; Collection<E> entries = new ArrayList<E>(); Collection<Link> links = new ArrayList<Link>(); + public Integer getTotal() { + return total; + } + + public void setTotal(Integer total) { + this.total = total; + } + public Collection<E> 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<GroupData> groups = new ArrayList<GroupData>(); - Collection<Link> links = new ArrayList<Link>(); +public class GroupCollection extends DataCollection<GroupData> { @XmlElementRef - public Collection<GroupData> getGroups() { - return groups; - } - - public void setGroups(Collection<GroupData> groups) { - this.groups = groups; - } - - public void addGroup(GroupData groupData) { - groups.add(groupData); - } - - @XmlElement(name="Link") - public Collection<Link> getLinks() { - return links; - } - - public void setLink(Collection<Link> links) { - this.links = links; - } - - public void addLink(Link link) { - links.add(link); + public Collection<GroupData> 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<GroupMemberData> members = new ArrayList<GroupMemberData>(); - Collection<Link> links = new ArrayList<Link>(); +public class GroupMemberCollection extends DataCollection<GroupMemberData> { @XmlElement(name="Member") - public Collection<GroupMemberData> getMembers() { - return members; - } - - public void setMembers(Collection<GroupMemberData> members) { - this.members = members; - } - - public void addMember(GroupMemberData member) { - members.add(member); - } - - @XmlElement(name="Link") - public Collection<Link> getLinks() { - return links; - } - - public void setLink(Collection<Link> links) { - this.links = links; - } - - public void addLink(Link link) { - links.add(link); + public Collection<GroupMemberData> 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<UserCertData> certs = new ArrayList<UserCertData>(); - Collection<Link> links = new ArrayList<Link>(); +public class UserCertCollection extends DataCollection<UserCertData> { @XmlElement(name="Cert") - public Collection<UserCertData> getCerts() { - return certs; - } - - public void addCert(UserCertData cert) { - certs.add(cert); - } - - @XmlElement(name="Link") - public Collection<Link> getLinks() { - return links; - } - - public void setLink(Collection<Link> links) { - this.links = links; - } - - public void addLink(Link link) { - links.add(link); + public Collection<UserCertData> 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<UserData> users = new ArrayList<UserData>(); - Collection<Link> links = new ArrayList<Link>(); +public class UserCollection extends DataCollection<UserData> { @XmlElementRef - public Collection<UserData> getUsers() { - return users; - } - - public void setUsers(Collection<UserData> users) { - this.users = users; - } - - public void addUser(UserData userData) { - users.add(userData); - } - - @XmlElement(name="Link") - public Collection<Link> getLinks() { - return links; - } - - public void setLink(Collection<Link> links) { - this.links = links; - } - - public void addLink(Link link) { - links.add(link); + public Collection<UserData> 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<UserMembershipData> memberships = new ArrayList<UserMembershipData>(); - Collection<Link> links = new ArrayList<Link>(); +public class UserMembershipCollection extends DataCollection<UserMembershipData> { @XmlElement(name="Membership") - public Collection<UserMembershipData> getMemberships() { - return memberships; - } - - public void setMemberships(Collection<UserMembershipData> members) { - this.memberships = members; - } - - public void addMembership(UserMembershipData member) { - memberships.add(member); - } - - @XmlElement(name="Link") - public Collection<Link> getLinks() { - return links; - } - - public void setLink(Collection<Link> links) { - this.links = links; - } - - public void addLink(Link link) { - links.add(link); + public Collection<UserMembershipData> 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<GroupData> entries = response.getGroups(); + Collection<GroupData> 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<GroupMemberData> entries = response.getMembers(); + Collection<GroupMemberData> 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<ActivityData> 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<SelfTestData> 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<TPSConnectorData> 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<TPSConnectorData> 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<AuthenticatorData> 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<TPSCertData> 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<ConnectionData> 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<ProfileData> 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<ProfileMappingData> 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<TokenData> 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<UserCertData> entries = response.getCerts(); + Collection<UserCertData> 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<UserData> entries = response.getUsers(); + Collection<UserData> 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<UserMembershipData> entries = response.getMemberships(); + Collection<UserMembershipData> 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<start+size && members.hasMoreElements(); i++) { String memberID = members.nextElement(); - response.addMember(createGroupMemberData(groupID, memberID)); + response.addEntry(createGroupMemberData(groupID, memberID)); } // count the total entries for ( ; members.hasMoreElements(); i++) members.nextElement(); + response.setTotal(i); if (start > 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<IGroup> 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<start+size && groups.hasMoreElements(); i++) { IGroup group = groups.nextElement(); - response.addGroup(createGroupData(group)); + response.addEntry(createGroupData(group)); } // count the total entries for ( ; groups.hasMoreElements(); i++) groups.nextElement(); + response.setTotal(i); if (start > 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<IUser> 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<start+size && users.hasMoreElements(); i++) { IUser user = users.nextElement(); - response.addUser(createUserData(user)); + response.addEntry(createUserData(user)); } // count the total entries for ( ; users.hasMoreElements(); i++) users.nextElement(); + response.setTotal(i); if (start > 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<X509Certificate> entries = Arrays.asList(certs).iterator(); + UserCertCollection response = new UserCertCollection(); + int i = 0; - X509Certificate[] certs = user.getX509Certificates(); - if (certs != null) { - for (int i=start; i<start+size && i<certs.length; i++) { - X509Certificate cert = certs[i]; - response.addCert(createUserCertData(userID, cert)); - } + // skip to the start of the page + for ( ; i<start && entries.hasNext(); i++) entries.next(); - if (start > 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<start+size && entries.hasNext(); i++) { + response.addEntry(createUserCertData(userID, entries.next())); + } - if (start+size < certs.length) { - URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", start+size).build(); - response.addLink(new Link("next", uri)); - } + // count the total entries + for ( ; entries.hasNext(); i++) entries.next(); + response.setTotal(i); + + if (start > 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<IGroup> 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<start+size && groups.hasMoreElements(); i++) { IGroup group = groups.nextElement(); - response.addMembership(createUserMembershipData(userID, group.getName())); + response.addEntry(createUserMembershipData(userID, group.getName())); } // count the total entries for ( ; groups.hasMoreElements(); i++) groups.nextElement(); + response.setTotal(i); if (start > 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<String> entries = Arrays.asList(StringUtils.split(tpsList,",")).iterator(); + + TPSConnectorCollection response = new TPSConnectorCollection(); + int i = 0; + + // skip to the start of the page + for ( ; i<start && entries.hasNext(); i++) entries.next(); + + // return entries up to the page size + for ( ; i<start+size && entries.hasNext(); i++) { + response.addEntry(createTPSConnectorData(entries.next())); + } + + // count the total entries + for ( ; entries.hasNext(); i++) entries.next(); + response.setTotal(i); - for (String tpsID : StringUtils.split(tpsList,",")) { - ret.addEntry(createTPSConnectorData(tpsID)); + if (start > 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<String> entries = Arrays.asList(subsystem.listSelfTestsEnabledOnDemand()).iterator(); + + SelfTestCollection response = new SelfTestCollection(); + int i = 0; + + // skip to the start of the page + for ( ; i<start && entries.hasNext(); i++) entries.next(); + + // return entries up to the page size + for ( ; i<start+size && entries.hasNext(); i++) { + SelfTestData data = createSelfTestData(subsystem, entries.next()); response.addEntry(data); } + // count the total entries + for ( ; entries.hasNext(); i++) entries.next(); + response.setTotal(i); + + if (start > 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<AuthenticatorRecord> 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<TPSCertRecord> 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<ConnectionRecord> 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<ActivityRecord> 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<ProfileMappingRecord> 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<ProfileRecord> 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<TokenRecord> 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(); |