diff options
author | Endi S. Dewata <edewata@redhat.com> | 2013-09-24 10:11:15 -0400 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2013-10-01 19:26:11 -0400 |
commit | bcf463c6afb042543fec93759c02211f6d5c0a60 (patch) | |
tree | 3bd735490a89f9711a876e752d117267c1e243fb /base/common/src/com/netscape/certsrv/tps | |
parent | 565741cc9aa0e3f1e056c9c79dc1bec35bbbcc92 (diff) | |
download | pki-bcf463c6afb042543fec93759c02211f6d5c0a60.tar.gz pki-bcf463c6afb042543fec93759c02211f6d5c0a60.tar.xz pki-bcf463c6afb042543fec93759c02211f6d5c0a60.zip |
Added TPS connection service implementation.
The implementation of the TPS connection service has been modified to
use the configuration database to read and write the configuration file.
Ticket #652
Diffstat (limited to 'base/common/src/com/netscape/certsrv/tps')
6 files changed, 78 insertions, 351 deletions
diff --git a/base/common/src/com/netscape/certsrv/tps/connection/ConnectionClient.java b/base/common/src/com/netscape/certsrv/tps/connection/ConnectionClient.java index 74ec14616..08f71b32a 100644 --- a/base/common/src/com/netscape/certsrv/tps/connection/ConnectionClient.java +++ b/base/common/src/com/netscape/certsrv/tps/connection/ConnectionClient.java @@ -64,12 +64,6 @@ public class ConnectionClient extends Client { return client.getEntity(response); } - public ConnectionData modifyConnection(String connectionID, ConnectionModification connectionModification) { - @SuppressWarnings("unchecked") - ClientResponse<ConnectionData> response = (ClientResponse<ConnectionData>)resource.modifyConnection(connectionID, connectionModification); - return client.getEntity(response); - } - public void removeConnection(String connectionID) { resource.removeConnection(connectionID); } diff --git a/base/common/src/com/netscape/certsrv/tps/connection/ConnectionCollection.java b/base/common/src/com/netscape/certsrv/tps/connection/ConnectionCollection.java index b26a7308d..9d94ee08b 100644 --- a/base/common/src/com/netscape/certsrv/tps/connection/ConnectionCollection.java +++ b/base/common/src/com/netscape/certsrv/tps/connection/ConnectionCollection.java @@ -29,10 +29,10 @@ import com.netscape.certsrv.base.DataCollection; * @author Endi S. Dewata */ @XmlRootElement(name="Connections") -public class ConnectionCollection extends DataCollection<ConnectionInfo> { +public class ConnectionCollection extends DataCollection<ConnectionData> { @XmlElementRef - public Collection<ConnectionInfo> getEntries() { + public Collection<ConnectionData> getEntries() { return super.getEntries(); } } diff --git a/base/common/src/com/netscape/certsrv/tps/connection/ConnectionData.java b/base/common/src/com/netscape/certsrv/tps/connection/ConnectionData.java index 573bb9543..50b0f6b51 100644 --- a/base/common/src/com/netscape/certsrv/tps/connection/ConnectionData.java +++ b/base/common/src/com/netscape/certsrv/tps/connection/ConnectionData.java @@ -20,6 +20,11 @@ package com.netscape.certsrv.tps.connection; import java.io.StringReader; import java.io.StringWriter; +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; @@ -27,6 +32,9 @@ import javax.xml.bind.Unmarshaller; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.adapters.XmlAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.jboss.resteasy.plugins.providers.atom.Link; @@ -51,7 +59,7 @@ public class ConnectionData { String id; String status; - String contents; + Map<String, String> properties = new LinkedHashMap<String, String>(); Link link; @@ -73,13 +81,67 @@ public class ConnectionData { this.status = status; } - @XmlElement(name="Contents") - public String getContents() { - return contents; + @XmlElement(name="Properties") + @XmlJavaTypeAdapter(MapAdapter.class) + public Map<String, String> getProperties() { + return properties; } - public void setContents(String contents) { - this.contents = contents; + public void setProperties(Map<String, String> properties) { + this.properties.clear(); + this.properties.putAll(properties); + } + + public Collection<String> getPropertyNames() { + return properties.keySet(); + } + + public String getProperty(String name) { + return properties.get(name); + } + + public void setProperty(String name, String value) { + properties.put(name, value); + } + + public String removeProperty(String name) { + return properties.remove(name); + } + + public static class MapAdapter extends XmlAdapter<PropertyList, Map<String, String>> { + + public PropertyList marshal(Map<String, String> map) { + PropertyList list = new PropertyList(); + for (Map.Entry<String, String> entry : map.entrySet()) { + Property property = new Property(); + property.name = entry.getKey(); + property.value = entry.getValue(); + list.properties.add(property); + } + return list; + } + + public Map<String, String> unmarshal(PropertyList list) { + Map<String, String> map = new LinkedHashMap<String, String>(); + for (Property property : list.properties) { + map.put(property.name, property.value); + } + return map; + } + } + + public static class PropertyList { + @XmlElement(name="Property") + public List<Property> properties = new ArrayList<Property>(); + } + + public static class Property { + + @XmlAttribute + public String name; + + @XmlValue + public String value; } @XmlElement(name="Link") @@ -95,9 +157,9 @@ public class ConnectionData { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((contents == null) ? 0 : contents.hashCode()); result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + ((link == null) ? 0 : link.hashCode()); + result = prime * result + ((properties == null) ? 0 : properties.hashCode()); result = prime * result + ((status == null) ? 0 : status.hashCode()); return result; } @@ -111,11 +173,6 @@ public class ConnectionData { if (getClass() != obj.getClass()) return false; ConnectionData other = (ConnectionData) obj; - if (contents == null) { - if (other.contents != null) - return false; - } else if (!contents.equals(other.contents)) - return false; if (id == null) { if (other.id != null) return false; @@ -126,6 +183,11 @@ public class ConnectionData { return false; } else if (!link.equals(other.link)) return false; + if (properties == null) { + if (other.properties != null) + return false; + } else if (!properties.equals(other.properties)) + return false; if (status == null) { if (other.status != null) return false; @@ -158,7 +220,8 @@ public class ConnectionData { ConnectionData before = new ConnectionData(); before.setID("connection1"); before.setStatus("ENABLED"); - before.setContents("name=connection1\nparam=value"); + before.setProperty("param1", "value1"); + before.setProperty("param2", "value2"); String string = before.toString(); System.out.println(string); diff --git a/base/common/src/com/netscape/certsrv/tps/connection/ConnectionInfo.java b/base/common/src/com/netscape/certsrv/tps/connection/ConnectionInfo.java deleted file mode 100644 index d9d93517e..000000000 --- a/base/common/src/com/netscape/certsrv/tps/connection/ConnectionInfo.java +++ /dev/null @@ -1,152 +0,0 @@ -// --- 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.certsrv.tps.connection; - -import java.io.StringReader; -import java.io.StringWriter; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.Marshaller; -import javax.xml.bind.Unmarshaller; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; - -import org.jboss.resteasy.plugins.providers.atom.Link; - -/** - * @author Endi S. Dewata - */ -@XmlRootElement(name="Connection") -public class ConnectionInfo { - - public static Marshaller marshaller; - public static Unmarshaller unmarshaller; - - static { - try { - marshaller = JAXBContext.newInstance(ConnectionInfo.class).createMarshaller(); - marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); - unmarshaller = JAXBContext.newInstance(ConnectionInfo.class).createUnmarshaller(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - String id; - String status; - - Link link; - - @XmlAttribute(name="id") - public String getID() { - return id; - } - - public void setID(String id) { - this.id = id; - } - - @XmlElement(name="Status") - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - @XmlElement(name="Link") - public Link getLink() { - return link; - } - - public void setLink(Link link) { - this.link = link; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + ((link == null) ? 0 : link.hashCode()); - result = prime * result + ((status == null) ? 0 : status.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ConnectionInfo other = (ConnectionInfo) obj; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - if (link == null) { - if (other.link != null) - return false; - } else if (!link.equals(other.link)) - return false; - if (status == null) { - if (other.status != null) - return false; - } else if (!status.equals(other.status)) - return false; - return true; - } - - public String toString() { - try { - StringWriter sw = new StringWriter(); - marshaller.marshal(this, sw); - return sw.toString(); - - } catch (Exception e) { - return super.toString(); - } - } - - public static ConnectionInfo valueOf(String string) throws Exception { - try { - return (ConnectionInfo)unmarshaller.unmarshal(new StringReader(string)); - } catch (Exception e) { - return null; - } - } - - public static void main(String args[]) throws Exception { - - ConnectionInfo before = new ConnectionInfo(); - before.setID("connection1"); - before.setStatus("ENABLED"); - - String string = before.toString(); - System.out.println(string); - - ConnectionInfo after = ConnectionInfo.valueOf(string); - System.out.println(before.equals(after)); - } -} diff --git a/base/common/src/com/netscape/certsrv/tps/connection/ConnectionModification.java b/base/common/src/com/netscape/certsrv/tps/connection/ConnectionModification.java deleted file mode 100644 index 7e48074b2..000000000 --- a/base/common/src/com/netscape/certsrv/tps/connection/ConnectionModification.java +++ /dev/null @@ -1,169 +0,0 @@ -// --- 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.certsrv.tps.connection; - -import java.io.StringReader; -import java.io.StringWriter; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.Marshaller; -import javax.xml.bind.Unmarshaller; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; - -import org.jboss.resteasy.plugins.providers.atom.Link; - -/** - * @author Endi S. Dewata - */ -@XmlRootElement(name="ConnectionModifyRequest") -public class ConnectionModification { - - public static Marshaller marshaller; - public static Unmarshaller unmarshaller; - - static { - try { - marshaller = JAXBContext.newInstance(ConnectionModification.class).createMarshaller(); - marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); - unmarshaller = JAXBContext.newInstance(ConnectionModification.class).createUnmarshaller(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - String id; - String status; - String contents; - - Link link; - - @XmlAttribute(name="id") - public String getID() { - return id; - } - - public void setID(String id) { - this.id = id; - } - - @XmlElement(name="Status") - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - @XmlElement(name="Contents") - public String getContents() { - return contents; - } - - public void setContents(String contents) { - this.contents = contents; - } - - @XmlElement(name="Link") - public Link getLink() { - return link; - } - - public void setLink(Link link) { - this.link = link; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((contents == null) ? 0 : contents.hashCode()); - result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + ((link == null) ? 0 : link.hashCode()); - result = prime * result + ((status == null) ? 0 : status.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ConnectionModification other = (ConnectionModification) obj; - if (contents == null) { - if (other.contents != null) - return false; - } else if (!contents.equals(other.contents)) - return false; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - if (link == null) { - if (other.link != null) - return false; - } else if (!link.equals(other.link)) - return false; - if (status == null) { - if (other.status != null) - return false; - } else if (!status.equals(other.status)) - return false; - return true; - } - - public String toString() { - try { - StringWriter sw = new StringWriter(); - marshaller.marshal(this, sw); - return sw.toString(); - - } catch (Exception e) { - return super.toString(); - } - } - - public static ConnectionModification valueOf(String string) throws Exception { - try { - return (ConnectionModification)unmarshaller.unmarshal(new StringReader(string)); - } catch (Exception e) { - return null; - } - } - - public static void main(String args[]) throws Exception { - - ConnectionModification before = new ConnectionModification(); - before.setID("connection1"); - before.setStatus("ENABLED"); - before.setContents("name=connection1\nparam=value"); - - String string = before.toString(); - System.out.println(string); - - ConnectionModification after = ConnectionModification.valueOf(string); - System.out.println(before.equals(after)); - } -} diff --git a/base/common/src/com/netscape/certsrv/tps/connection/ConnectionResource.java b/base/common/src/com/netscape/certsrv/tps/connection/ConnectionResource.java index ee971b052..928dabae7 100644 --- a/base/common/src/com/netscape/certsrv/tps/connection/ConnectionResource.java +++ b/base/common/src/com/netscape/certsrv/tps/connection/ConnectionResource.java @@ -64,15 +64,6 @@ public interface ConnectionResource { @PathParam("connectionID") String connectionID, ConnectionData connectionData); - @POST - @Path("{connectionID}") - @ClientResponseType(entityType=ConnectionData.class) - @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - public Response modifyConnection( - @PathParam("connectionID") String connectionID, - ConnectionModification request); - @DELETE @Path("{connectionID}") @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) |