summaryrefslogtreecommitdiffstats
path: root/base/common/src/com/netscape/certsrv/system/DomainInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/common/src/com/netscape/certsrv/system/DomainInfo.java')
-rw-r--r--base/common/src/com/netscape/certsrv/system/DomainInfo.java203
1 files changed, 106 insertions, 97 deletions
diff --git a/base/common/src/com/netscape/certsrv/system/DomainInfo.java b/base/common/src/com/netscape/certsrv/system/DomainInfo.java
index 50b606af3..3f38c64ab 100644
--- a/base/common/src/com/netscape/certsrv/system/DomainInfo.java
+++ b/base/common/src/com/netscape/certsrv/system/DomainInfo.java
@@ -14,142 +14,151 @@
//
// (C) 2012 Red Hat, Inc.
// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
+// --- END COPYRIGHT BLOCK ---
package com.netscape.certsrv.system;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
* @author alee
- *
*/
@XmlRootElement(name="DomainInfo")
+@XmlAccessorType(XmlAccessType.NONE)
public class DomainInfo {
-
- @XmlElement(name="CAList")
- protected SecurityDomainHostList caList;
-
- @XmlElement(name="KRAList")
- protected SecurityDomainHostList kraList;
-
- @XmlElement(name="OCSPList")
- protected SecurityDomainHostList ocspList;
-
- @XmlElement(name="TKSList")
- protected SecurityDomainHostList tksList;
-
- @XmlElement(name="TPSList")
- protected SecurityDomainHostList tpsList;
-
- @XmlElement(name="RAList")
- protected SecurityDomainHostList raList;
-
- @XmlElement
- protected String name;
-
- /**
- * @return the name
- */
+
+ String name;
+ Map<String, SecurityDomainSubsystem> subsystems = new LinkedHashMap<String, SecurityDomainSubsystem>();
+
+ @XmlAttribute(name="id")
public String getName() {
return name;
}
- /**
- * @param name the name to set
- */
public void setName(String name) {
this.name = name;
}
- /**
- * @return the caList
- */
- public SecurityDomainHostList getCaList() {
- return caList;
+ @XmlElement(name="Subsystem")
+ public SecurityDomainSubsystem[] getSubsystems() {
+ return subsystems.values().toArray(new SecurityDomainSubsystem[subsystems.size()]);
}
- /**
- * @param caList the caList to set
- */
- public void setCaList(SecurityDomainHostList caList) {
- this.caList = caList;
+ public void setSubsystems(SecurityDomainSubsystem[] subsystems) {
+ this.subsystems.clear();
+ for (SecurityDomainSubsystem subsystem : subsystems) {
+ this.subsystems.put(subsystem.name, subsystem);
+ }
}
- /**
- * @return the kraList
- */
- public SecurityDomainHostList getKraList() {
- return kraList;
+ public SecurityDomainSubsystem getSubsystem(String type) {
+ return subsystems.get(type);
}
- /**
- * @param kraList the kraList to set
- */
- public void setKraList(SecurityDomainHostList kraList) {
- this.kraList = kraList;
+ public void addSubsystem(SecurityDomainSubsystem subsystem) {
+ subsystems.put(subsystem.getName(), subsystem);
}
- /**
- * @return the ocspList
- */
- public SecurityDomainHostList getOcspList() {
- return ocspList;
+ public void removeSubsystem(String type) {
+ subsystems.remove(type);
}
- /**
- * @param ocspList the ocspList to set
- */
- public void setOcspList(SecurityDomainHostList ocspList) {
- this.ocspList = ocspList;
+ public void addHost(String type, SecurityDomainHost host) {
+ SecurityDomainSubsystem subsystem = getSubsystem(type);
+ if (subsystem == null) {
+ subsystem = new SecurityDomainSubsystem();
+ subsystem.setName(type);
+ addSubsystem(subsystem);
+ }
+ subsystem.addHost(host);
}
- /**
- * @return the tksList
- */
- public SecurityDomainHostList getTksList() {
- return tksList;
+ public void removeHost(String type, String hostId) {
+ SecurityDomainSubsystem subsystem = getSubsystem(type);
+ if (subsystem == null) return;
+ subsystem.removeHost(hostId);
}
-
- /**
- * @param tksList the tksList to set
- */
- public void setTksList(SecurityDomainHostList tksList) {
- this.tksList = tksList;
+ public String toString() {
+ try {
+ StringWriter sw = new StringWriter();
+ Marshaller marshaller = JAXBContext.newInstance(DomainInfo.class).createMarshaller();
+ marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+ marshaller.marshal(this, sw);
+ return sw.toString();
+
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
- /**
- * @return the tpsList
- */
- public SecurityDomainHostList getTpsList() {
- return tpsList;
+ public static DomainInfo valueOf(String string) throws Exception {
+ try {
+ Unmarshaller unmarshaller = JAXBContext.newInstance(DomainInfo.class).createUnmarshaller();
+ return (DomainInfo)unmarshaller.unmarshal(new StringReader(string));
+ } catch (Exception e) {
+ return null;
+ }
}
- /**
- * @param tpsList the tpsList to set
- */
- public void setTpsList(SecurityDomainHostList tpsList) {
- this.tpsList = tpsList;
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + ((subsystems == null) ? 0 : subsystems.hashCode());
+ return result;
}
- /**
- * @return the raList
- */
- public SecurityDomainHostList getRaList() {
- return raList;
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ DomainInfo other = (DomainInfo) obj;
+ if (name == null) {
+ if (other.name != null)
+ return false;
+ } else if (!name.equals(other.name))
+ return false;
+ if (subsystems == null) {
+ if (other.subsystems != null)
+ return false;
+ } else if (!subsystems.equals(other.subsystems))
+ return false;
+ return true;
}
- /**
- * @param raList the raList to set
- */
- public void setRaList(SecurityDomainHostList raList) {
- this.raList = raList;
- }
+ public static void main(String args[]) throws Exception {
-
-
-
-
-
+ DomainInfo before = new DomainInfo();
+ before.setName("EXAMPLE");
+ SecurityDomainHost host = new SecurityDomainHost();
+ host.setId("CA localhost:8443");
+ host.setHostname("localhost");
+ host.setPort("8080");
+ host.setSecurePort("8443");
+
+ before.addHost("CA", host);
+
+ String string = before.toString();
+ System.out.println(string);
+
+ DomainInfo after = DomainInfo.valueOf(string);
+ System.out.println(before.equals(after));
+ }
}