From 1a131e5d6b126eaa3461db9c9108eaa2f3e141e1 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Thu, 2 Apr 2020 11:11:22 +0200 Subject: [PATCH] ref 18964: Create a Generic Resource to record Dismissed VREs https://support.d4science.org/issues/18964 Create a library to support the resource access --- .../server/is/DetachedREsBuilder.java | 46 ++++++++++--------- .../server/is/obj/DetachedREsJAXB.java | 9 ++-- .../server/is/obj/GatewayJAXB.java | 9 ++-- .../server/is/obj/VOJAXB.java | 9 ++-- .../shared/re/DetachedREs.java | 10 ++-- .../detachedreslibrary/shared/re/Gateway.java | 10 ++-- .../detachedreslibrary/shared/re/VO.java | 11 +++-- .../detachedreslibrary/DetachedREsTest.java | 14 +++--- 8 files changed, 59 insertions(+), 59 deletions(-) diff --git a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/DetachedREsBuilder.java b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/DetachedREsBuilder.java index 22789d9..e497206 100644 --- a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/DetachedREsBuilder.java +++ b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/DetachedREsBuilder.java @@ -2,8 +2,7 @@ package org.gcube.infrastructure.detachedres.detachedreslibrary.server.is; import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.List; +import java.util.LinkedHashMap; import org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj.DetachedREsJAXB; import org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj.GatewayJAXB; @@ -50,11 +49,12 @@ public class DetachedREsBuilder { logger.info("DetachedREsBuilder: configuration enabled: " + detachedREsJAXB.isEnabled()); detachedREs.setEnabled(detachedREsJAXB.isEnabled()); - List gatewaysJAXB = detachedREsJAXB.getGateways(); + LinkedHashMap gatewaysJAXB = detachedREsJAXB.getGateways(); logger.info("DetachedREsBuilder: Gateways configuration: " + gatewaysJAXB); if (gatewaysJAXB != null && !gatewaysJAXB.isEmpty()) { - ArrayList gateways = new ArrayList<>(); - for (GatewayJAXB gatewayJAXB : gatewaysJAXB) { + LinkedHashMap gateways = new LinkedHashMap<>(); + for (String key: gatewaysJAXB.keySet()) { + GatewayJAXB gatewayJAXB =gatewaysJAXB.get(key); Gateway gateway = new Gateway(gatewayJAXB.getScope(), gatewayJAXB.getName(), gatewayJAXB.getDescription()); @@ -80,10 +80,10 @@ public class DetachedREsBuilder { gateway.setCatalogUrl(gatewayJAXB.getCatalogUrl()); if (gatewayJAXB.getVos() != null && !gatewayJAXB.getVos().isEmpty()) { - ArrayList vos = retrieveVOs(gatewayJAXB); + LinkedHashMap vos = retrieveVOs(gatewayJAXB); gateway.setVos(vos); } - gateways.add(gateway); + gateways.put(key,gateway); } detachedREs.setGateways(gateways); @@ -106,25 +106,26 @@ public class DetachedREsBuilder { VRE blueBridgeProject = new VRE("/d4science.research-infrastructures.eu/gCubeApps/BlueBridgeProject", "BlueBridgeProject"); - ArrayList vres = new ArrayList<>(); - vres.add(blueBridgeProject); + LinkedHashMap vres = new LinkedHashMap<>(); + vres.put("/d4science.research-infrastructures.eu/gCubeApps",blueBridgeProject); gCubeApps.setVres(vres); - ArrayList vos = new ArrayList<>(); - vos.add(gCubeApps); + LinkedHashMap vos = new LinkedHashMap<>(); + vos.put("/d4science.research-infrastructures.eu/gCubeApps",gCubeApps); blueBridgeGateway.setVos(vos); - ArrayList gateways = new ArrayList<>(); - gateways.add(blueBridgeGateway); + LinkedHashMap gateways = new LinkedHashMap<>(); + gateways.put("-1",blueBridgeGateway); DetachedREs detachedREs = new DetachedREs(true, gateways); return detachedREs; } - private static ArrayList retrieveVOs(GatewayJAXB gatewayJAXB) throws Exception { + private static LinkedHashMap retrieveVOs(GatewayJAXB gatewayJAXB) throws Exception { try { - ArrayList vos = new ArrayList<>(); - for (VOJAXB voJAXB : gatewayJAXB.getVos()) { + LinkedHashMap vos = new LinkedHashMap<>(); + for (String key : gatewayJAXB.getVos().keySet()) { + VOJAXB voJAXB=gatewayJAXB.getVos().get(key); VO vo = new VO(voJAXB.getScope(), voJAXB.getName(), voJAXB.getDescription()); if (voJAXB.getStartDate() != null) { @@ -148,10 +149,10 @@ public class DetachedREsBuilder { vo.setCatalogUrl(voJAXB.getCatalogUrl()); if (voJAXB.getVres() != null && !voJAXB.getVres().isEmpty()) { - ArrayList vres = retrieveVREs(voJAXB); + LinkedHashMap vres = retrieveVREs(voJAXB); vo.setVres(vres); } - vos.add(vo); + vos.put(key,vo); } return vos; @@ -165,10 +166,11 @@ public class DetachedREsBuilder { } - private static ArrayList retrieveVREs(VOJAXB voJAXB) throws Exception { + private static LinkedHashMap retrieveVREs(VOJAXB voJAXB) throws Exception { try { - ArrayList vres = new ArrayList<>(); - for (VREJAXB vreJAXB : voJAXB.getVres()) { + LinkedHashMap vres = new LinkedHashMap<>(); + for (String key : voJAXB.getVres().keySet()) { + VREJAXB vreJAXB=voJAXB.getVres().get(key); VRE vre = new VRE(vreJAXB.getScope(), vreJAXB.getName(), vreJAXB.getDescription()); if (vreJAXB.getStartDate() != null) { @@ -191,7 +193,7 @@ public class DetachedREsBuilder { } vre.setCatalogUrl(vreJAXB.getCatalogUrl()); vre.setManagers(vreJAXB.getManagers()); - vres.add(vre); + vres.put(key,vre); } return vres; diff --git a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/obj/DetachedREsJAXB.java b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/obj/DetachedREsJAXB.java index 9885369..782fcbc 100644 --- a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/obj/DetachedREsJAXB.java +++ b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/obj/DetachedREsJAXB.java @@ -1,6 +1,6 @@ package org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj; -import java.util.ArrayList; +import java.util.LinkedHashMap; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -22,8 +22,7 @@ public class DetachedREsJAXB { private boolean enabled; @XmlElementWrapper(name = "gateways", required = false) - @XmlElement(name = "gateway", required = false) - private ArrayList gateways; + private LinkedHashMap gateways; public boolean isEnabled() { return enabled; @@ -33,11 +32,11 @@ public class DetachedREsJAXB { this.enabled = enabled; } - public ArrayList getGateways() { + public LinkedHashMap getGateways() { return gateways; } - public void setGateways(ArrayList gateways) { + public void setGateways(LinkedHashMap gateways) { this.gateways = gateways; } diff --git a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/obj/GatewayJAXB.java b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/obj/GatewayJAXB.java index 3d667e8..a332c2e 100644 --- a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/obj/GatewayJAXB.java +++ b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/obj/GatewayJAXB.java @@ -1,7 +1,7 @@ package org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj; -import java.util.ArrayList; import java.util.Date; +import java.util.LinkedHashMap; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -29,8 +29,7 @@ public class GatewayJAXB { private String description; @XmlElementWrapper(name = "vos", required = false) - @XmlElement(name = "vo", required = false) - private ArrayList vos; + private LinkedHashMap vos; @XmlElement(name = "startdate", required = false) @XmlJavaTypeAdapter(DateTimeAdapter.class) @@ -67,11 +66,11 @@ public class GatewayJAXB { this.description = description; } - public ArrayList getVos() { + public LinkedHashMap getVos() { return vos; } - public void setVos(ArrayList vos) { + public void setVos(LinkedHashMap vos) { this.vos = vos; } diff --git a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/obj/VOJAXB.java b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/obj/VOJAXB.java index 7b03686..4db8b18 100644 --- a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/obj/VOJAXB.java +++ b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/server/is/obj/VOJAXB.java @@ -1,7 +1,7 @@ package org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj; -import java.util.ArrayList; import java.util.Date; +import java.util.LinkedHashMap; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -29,8 +29,7 @@ public class VOJAXB { private String description; @XmlElementWrapper(name = "vres", required = false) - @XmlElement(name = "vre", required = false) - private ArrayList vres; + private LinkedHashMap vres; @XmlElement(name = "startdate", required = false) @XmlJavaTypeAdapter(DateTimeAdapter.class) @@ -67,11 +66,11 @@ public class VOJAXB { this.description = description; } - public ArrayList getVres() { + public LinkedHashMap getVres() { return vres; } - public void setVres(ArrayList vres) { + public void setVres(LinkedHashMap vres) { this.vres = vres; } diff --git a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/shared/re/DetachedREs.java b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/shared/re/DetachedREs.java index 902e047..93ee989 100644 --- a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/shared/re/DetachedREs.java +++ b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/shared/re/DetachedREs.java @@ -1,7 +1,7 @@ package org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re; import java.io.Serializable; -import java.util.ArrayList; +import java.util.LinkedHashMap; /** * @@ -12,13 +12,13 @@ public class DetachedREs implements Serializable { private static final long serialVersionUID = 2238683459962419017L; private boolean enabled; - private ArrayList gateways; + private LinkedHashMap gateways; public DetachedREs() { super(); } - public DetachedREs(boolean enabled, ArrayList gateways) { + public DetachedREs(boolean enabled, LinkedHashMap gateways) { super(); this.enabled = enabled; this.gateways = gateways; @@ -32,11 +32,11 @@ public class DetachedREs implements Serializable { this.enabled = enabled; } - public ArrayList getGateways() { + public LinkedHashMap getGateways() { return gateways; } - public void setGateways(ArrayList gateways) { + public void setGateways(LinkedHashMap gateways) { this.gateways = gateways; } diff --git a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/shared/re/Gateway.java b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/shared/re/Gateway.java index fd59a31..b65c84e 100644 --- a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/shared/re/Gateway.java +++ b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/shared/re/Gateway.java @@ -1,7 +1,7 @@ package org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re; import java.io.Serializable; -import java.util.ArrayList; +import java.util.LinkedHashMap; /** * @@ -14,7 +14,7 @@ public class Gateway implements Serializable { private String scope; private String name; private String description; - private ArrayList vos; + private LinkedHashMap vos; private String startDate; private String endDate; private String catalogUrl; @@ -36,7 +36,7 @@ public class Gateway implements Serializable { this.description = description; } - public Gateway(String scope, String name, String description, ArrayList vos) { + public Gateway(String scope, String name, String description, LinkedHashMap vos) { super(); this.scope = scope; this.name = name; @@ -68,11 +68,11 @@ public class Gateway implements Serializable { this.description = description; } - public ArrayList getVos() { + public LinkedHashMap getVos() { return vos; } - public void setVos(ArrayList vos) { + public void setVos(LinkedHashMap vos) { this.vos = vos; } diff --git a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/shared/re/VO.java b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/shared/re/VO.java index f971c5f..e08cfdb 100644 --- a/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/shared/re/VO.java +++ b/src/main/java/org/gcube/infrastructure/detachedres/detachedreslibrary/shared/re/VO.java @@ -1,7 +1,7 @@ package org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re; import java.io.Serializable; -import java.util.ArrayList; +import java.util.LinkedHashMap; /** * @@ -14,7 +14,7 @@ public class VO implements Serializable { private String scope; private String name; private String description; - private ArrayList vres; + private LinkedHashMap vres; private String startDate; private String endDate; private String catalogUrl; @@ -36,7 +36,7 @@ public class VO implements Serializable { this.description = description; } - public VO(String scope, String name, String description, ArrayList vres) { + public VO(String scope, String name, String description, LinkedHashMap vres) { super(); this.scope = scope; this.name = name; @@ -68,11 +68,12 @@ public class VO implements Serializable { this.description = description; } - public ArrayList getVres() { + + public LinkedHashMap getVres() { return vres; } - public void setVres(ArrayList vres) { + public void setVres(LinkedHashMap vres) { this.vres = vres; } diff --git a/src/test/java/org/gcube/infrastructure/detachedres/detachedreslibrary/DetachedREsTest.java b/src/test/java/org/gcube/infrastructure/detachedres/detachedreslibrary/DetachedREsTest.java index 0ce7b7b..78ba37e 100644 --- a/src/test/java/org/gcube/infrastructure/detachedres/detachedreslibrary/DetachedREsTest.java +++ b/src/test/java/org/gcube/infrastructure/detachedres/detachedreslibrary/DetachedREsTest.java @@ -7,8 +7,8 @@ import java.io.File; import java.io.StringWriter; import java.nio.file.Files; import java.nio.file.Path; -import java.util.ArrayList; import java.util.GregorianCalendar; +import java.util.LinkedHashMap; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; @@ -82,16 +82,16 @@ public class DetachedREsTest extends TestCase { blueBridgeProject.setEndDate(new GregorianCalendar(2020, GregorianCalendar.JANUARY, 1).getTime()); blueBridgeProject.setCatalogUrl("http://service.d4science.org/catalogurl"); - ArrayList vres = new ArrayList<>(); - vres.add(blueBridgeProject); + LinkedHashMap vres = new LinkedHashMap<>(); + vres.put("/d4science.research-infrastructures.eu/gcubeApps/BlueBridgeProject",blueBridgeProject); gCubeApps.setVres(vres); - ArrayList vos = new ArrayList<>(); - vos.add(gCubeApps); + LinkedHashMap vos = new LinkedHashMap<>(); + vos.put("/d4science.research-infrastructures.eu/gCubeApps",gCubeApps); blueBridgeGateway.setVos(vos); - ArrayList gateways = new ArrayList<>(); - gateways.add(blueBridgeGateway); + LinkedHashMap gateways = new LinkedHashMap<>(); + gateways.put("-1",blueBridgeGateway); DetachedREsJAXB detachedREs = new DetachedREsJAXB(); detachedREs.setEnabled(true);