|
|
|
@ -12,7 +12,6 @@ import java.util.stream.Collectors;
|
|
|
|
|
import javax.xml.parsers.DocumentBuilder;
|
|
|
|
|
import javax.xml.parsers.DocumentBuilderFactory;
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.collections.bag.SynchronizedSortedBag;
|
|
|
|
|
import org.w3c.dom.Document;
|
|
|
|
|
import org.w3c.dom.Element;
|
|
|
|
|
import org.w3c.dom.Node;
|
|
|
|
@ -35,101 +34,107 @@ public class XmlManager implements VreRemPubInterface {
|
|
|
|
|
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
|
|
|
|
|
Document doc = dBuilder.parse(xmlFile);
|
|
|
|
|
doc.getDocumentElement().normalize();
|
|
|
|
|
NodeList gatewayList = doc.getElementsByTagName("gateways");
|
|
|
|
|
//NodeList gatewayList = gatewayNodes.item(0).getChildNodes();
|
|
|
|
|
NodeList gatewayNodes = doc.getElementsByTagName("gateways");
|
|
|
|
|
|
|
|
|
|
NodeList gatewayList = gatewayNodes.item(0).getChildNodes();
|
|
|
|
|
|
|
|
|
|
//iterate over gateways child
|
|
|
|
|
for(int k =0; k<gatewayList.getLength(); k++)
|
|
|
|
|
{
|
|
|
|
|
Node gatewayNodeT = gatewayList.item(k);
|
|
|
|
|
NodeList gatewayNodeTC = gatewayList.item(k).getChildNodes();
|
|
|
|
|
for(int kk=0; kk<gatewayNodeTC.getLength(); kk++)
|
|
|
|
|
{
|
|
|
|
|
Node gateTest = gatewayNodeTC.item(kk);
|
|
|
|
|
if(gateTest.getNodeType() == Node.ELEMENT_NODE)
|
|
|
|
|
{
|
|
|
|
|
Element gateTestElem = (Element)gateTest;
|
|
|
|
|
String gatewayName = gateTestElem.getElementsByTagName("name").item(0).getTextContent().trim();
|
|
|
|
|
String gatewayDescription = gateTestElem.getElementsByTagName("description").item(0)
|
|
|
|
|
.getTextContent().trim();
|
|
|
|
|
|
|
|
|
|
//System.out.println("Gate Name"+gatewayName);
|
|
|
|
|
|
|
|
|
|
Gateway gateway = new Gateway(gatewayName, gatewayDescription);
|
|
|
|
|
|
|
|
|
|
NodeList vosListT = gateTestElem.getElementsByTagName("vos");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int j = 0; j < vosListT.getLength(); j++) {
|
|
|
|
|
NodeList vosListC = vosListT.item(j).getChildNodes();
|
|
|
|
|
for (int jj=0; jj < vosListC.getLength();jj++)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < gatewayList.getLength(); i++) {
|
|
|
|
|
Node gatewayNode = gatewayList.item(i);
|
|
|
|
|
if (gatewayNode.getNodeType() == Node.ELEMENT_NODE) {
|
|
|
|
|
Element gatewayElement = (Element) gatewayNode;
|
|
|
|
|
String gatewayName = gatewayElement.getElementsByTagName("name").item(0).getTextContent().trim();
|
|
|
|
|
String gatewayDescription = gatewayElement.getElementsByTagName("description").item(0)
|
|
|
|
|
.getTextContent().trim();
|
|
|
|
|
|
|
|
|
|
//System.out.println("gateway name:"+gatewayName);
|
|
|
|
|
//System.out.println("Gateway descr:"+gatewayDescription);
|
|
|
|
|
Gateway gateway = new Gateway(gatewayName, gatewayDescription);
|
|
|
|
|
|
|
|
|
|
// Find the <vos> element within the gateway entry
|
|
|
|
|
NodeList vosList = gatewayElement.getElementsByTagName("vos");
|
|
|
|
|
for (int j = 0; j < vosList.getLength(); j++) {
|
|
|
|
|
Node vosNode = vosList.item(j);
|
|
|
|
|
if (vosNode.getNodeType() == Node.ELEMENT_NODE) {
|
|
|
|
|
Element vosElement = (Element) vosNode;
|
|
|
|
|
|
|
|
|
|
Node vosListCE = vosListC.item(jj);
|
|
|
|
|
if (vosListCE.getNodeType() == Node.ELEMENT_NODE) {
|
|
|
|
|
Element vosElement = (Element) vosListCE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String voKey = vosElement.getElementsByTagName("key").item(0).getTextContent().trim();
|
|
|
|
|
String voName = vosElement.getElementsByTagName("name").item(0).getTextContent().trim();
|
|
|
|
|
String voScope = vosElement.getElementsByTagName("scope").item(0).getTextContent().trim();
|
|
|
|
|
|
|
|
|
|
Vos vos = new Vos(voKey,voScope, voName);
|
|
|
|
|
|
|
|
|
|
//System.out.println("VO Name:"+voName);
|
|
|
|
|
|
|
|
|
|
NodeList vreListT = vosElement.getElementsByTagName("vres");
|
|
|
|
|
|
|
|
|
|
for (int x=0; x<vreListT.getLength();x++)
|
|
|
|
|
{
|
|
|
|
|
NodeList vreListC = vreListT.item(x).getChildNodes();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String voKey = vosElement.getElementsByTagName("key").item(0).getTextContent().trim();
|
|
|
|
|
String voName = vosElement.getElementsByTagName("name").item(0).getTextContent().trim();
|
|
|
|
|
String voScope = vosElement.getElementsByTagName("scope").item(0).getTextContent().trim();
|
|
|
|
|
|
|
|
|
|
//getting vo
|
|
|
|
|
Vos vos = new Vos(voKey,voScope, voName);
|
|
|
|
|
|
|
|
|
|
//vos.printInfo();
|
|
|
|
|
|
|
|
|
|
// Iterate on the vres..
|
|
|
|
|
//NodeList vreList = vosElement.getElementsByTagName("vres");
|
|
|
|
|
//
|
|
|
|
|
//for (int k = 0; k < vreList.getLength(); k++) {
|
|
|
|
|
// Node voNode = voList.item(k);
|
|
|
|
|
// if (voNode.getNodeType() == Node.ELEMENT_NODE) {
|
|
|
|
|
// Element voElement = (Element) voNode;
|
|
|
|
|
|
|
|
|
|
for(int xx=0; xx<vreListC.getLength();xx++)
|
|
|
|
|
{
|
|
|
|
|
Node vreListCE = vreListC.item(xx);
|
|
|
|
|
if(vreListCE.getNodeType()==Node.ELEMENT_NODE)
|
|
|
|
|
{
|
|
|
|
|
Element vreEntryElement = (Element) vreListCE;
|
|
|
|
|
String vreKey = vreEntryElement.getElementsByTagName("key").item(0)
|
|
|
|
|
.getTextContent().trim();
|
|
|
|
|
String vreName = vreEntryElement.getElementsByTagName("name")
|
|
|
|
|
.item(0).getTextContent().trim();
|
|
|
|
|
String vreDescription = vreEntryElement
|
|
|
|
|
.getElementsByTagName("description").item(0)
|
|
|
|
|
.getTextContent().trim();
|
|
|
|
|
String vreManager = vreEntryElement.getElementsByTagName("managers")
|
|
|
|
|
.item(0).getTextContent().trim();
|
|
|
|
|
String vreStartDate = vreEntryElement
|
|
|
|
|
.getElementsByTagName("startdate").item(0).getTextContent().trim();
|
|
|
|
|
String vreEndDate = vreEntryElement.getElementsByTagName("enddate")
|
|
|
|
|
.item(0).getTextContent().trim();
|
|
|
|
|
|
|
|
|
|
// String voName = voElement.getElementsByTagName("name").item(0).getTextContent().trim();
|
|
|
|
|
// String voScope = voElement.getElementsByTagName("scope").item(0).getTextContent().trim();
|
|
|
|
|
// String voKey = voElement.getElementsByTagName("key").item(0).getTextContent().trim();
|
|
|
|
|
|
|
|
|
|
// Create a new Vres object and add it to the Vos's vreList
|
|
|
|
|
Vres vres = new Vres(vreKey, vreName, vreDescription, vreManager,
|
|
|
|
|
vreStartDate, vreEndDate);
|
|
|
|
|
|
|
|
|
|
//System.out.println("VRE Name:"+vreName);
|
|
|
|
|
|
|
|
|
|
vos.addVres(vres);
|
|
|
|
|
|
|
|
|
|
// Create a new Vos object and add it to the gateway's vosList
|
|
|
|
|
// Vos vos = new Vos(voKey, voScope, voName);
|
|
|
|
|
|
|
|
|
|
// Find the <vres> element within the VO entry
|
|
|
|
|
NodeList vresList = vosElement.getElementsByTagName("vres");
|
|
|
|
|
for (int l = 0; l < vresList.getLength(); l++) {
|
|
|
|
|
Node vresNode = vresList.item(l);
|
|
|
|
|
if (vresNode.getNodeType() == Node.ELEMENT_NODE) {
|
|
|
|
|
Element vresElement = (Element) vresNode;
|
|
|
|
|
// Iterate through <entry> elements representing VREs within <vres>
|
|
|
|
|
NodeList vreEntryList = vresElement.getElementsByTagName("entry");
|
|
|
|
|
for (int m = 0; m < vreEntryList.getLength(); m++) {
|
|
|
|
|
Node vreEntryNode = vreEntryList.item(m);
|
|
|
|
|
if (vreEntryNode.getNodeType() == Node.ELEMENT_NODE) {
|
|
|
|
|
Element vreEntryElement = (Element) vreEntryNode;
|
|
|
|
|
String vreKey = vreEntryElement.getElementsByTagName("key").item(0)
|
|
|
|
|
.getTextContent().trim();
|
|
|
|
|
String vreName = vreEntryElement.getElementsByTagName("name")
|
|
|
|
|
.item(0).getTextContent().trim();
|
|
|
|
|
String vreDescription = vreEntryElement
|
|
|
|
|
.getElementsByTagName("description").item(0)
|
|
|
|
|
.getTextContent().trim();
|
|
|
|
|
String vreManager = vreEntryElement.getElementsByTagName("managers")
|
|
|
|
|
.item(0).getTextContent().trim();
|
|
|
|
|
String vreStartDate = vreEntryElement
|
|
|
|
|
.getElementsByTagName("startdate").item(0).getTextContent().trim();
|
|
|
|
|
String vreEndDate = vreEntryElement.getElementsByTagName("enddate")
|
|
|
|
|
.item(0).getTextContent().trim();
|
|
|
|
|
|
|
|
|
|
// Create a new Vres object and add it to the Vos's vreList
|
|
|
|
|
Vres vres = new Vres(vreKey, vreName, vreDescription, vreManager,
|
|
|
|
|
vreStartDate, vreEndDate);
|
|
|
|
|
vos.addVres(vres);
|
|
|
|
|
|
|
|
|
|
//vres.printInfo();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
gateway.addVos(vos);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Add the Vos object to the gateway's vosList
|
|
|
|
|
gateway.addVos(vos);
|
|
|
|
|
//}
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
gatewaysMap.put(gatewayName, gateway);
|
|
|
|
|
//getting vo
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Store the gateway object in the gateways map
|
|
|
|
|
|
|
|
|
|
gatewaysMap.put(gatewayName, gateway);
|
|
|
|
|
//computeIfAbsent(gatewayName, k -> new ArrayList<>()).add(gateway);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
@ -173,10 +178,7 @@ public class XmlManager implements VreRemPubInterface {
|
|
|
|
|
Gateway gatewayItem = gatewaysMap.get(_gateway);
|
|
|
|
|
//Gateway gateway = gatewayList.get(0); // Get the first gateway with the specified name
|
|
|
|
|
ArrayList<Vos> vosList = gatewayItem.getVosList();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (vosList != null) {
|
|
|
|
|
System.out.println("Num of VOs:"+vosList.size());
|
|
|
|
|
for (Vos vos : vosList) {
|
|
|
|
|
vos.printInfo();
|
|
|
|
|
//System.out.println("Name of VREs: ");
|
|
|
|
@ -191,7 +193,7 @@ public class XmlManager implements VreRemPubInterface {
|
|
|
|
|
// System.out.println("----------------------------------------");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
System.out.println("No VOS found for this gateway.");
|
|
|
|
|
//System.out.println("No VOS found for this gateway.");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
System.out.println("No gateways found with the name: " + _gateway);
|
|
|
|
@ -206,10 +208,8 @@ public class XmlManager implements VreRemPubInterface {
|
|
|
|
|
Gateway gatewayItem = gatewaysMap.get(_gateway);
|
|
|
|
|
boolean found = false;
|
|
|
|
|
ArrayList<Vos> vosList = gatewayItem.getVosList();
|
|
|
|
|
System.out.println("VO LIST length:"+ vosList.size());
|
|
|
|
|
if (vosList != null) {
|
|
|
|
|
for (Vos vos : vosList) {
|
|
|
|
|
System.out.println("VO: "+vos.getName());
|
|
|
|
|
if (vos.getName().equals(_vo)) {
|
|
|
|
|
found = true;
|
|
|
|
|
System.out.println("VO info for " + _vo + " in " + _gateway + ":");
|
|
|
|
|