ref 18964: Create a Generic Resource to record Dismissed VREs

https://support.d4science.org/issues/18964

Create a library to support the resource access
This commit is contained in:
Giancarlo Panichi 2020-04-02 11:11:22 +02:00
parent 46a626ef4f
commit 1a131e5d6b
8 changed files with 59 additions and 59 deletions

View File

@ -2,8 +2,7 @@ package org.gcube.infrastructure.detachedres.detachedreslibrary.server.is;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.LinkedHashMap;
import java.util.List;
import org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj.DetachedREsJAXB; import org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj.DetachedREsJAXB;
import org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj.GatewayJAXB; import org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj.GatewayJAXB;
@ -50,11 +49,12 @@ public class DetachedREsBuilder {
logger.info("DetachedREsBuilder: configuration enabled: " + detachedREsJAXB.isEnabled()); logger.info("DetachedREsBuilder: configuration enabled: " + detachedREsJAXB.isEnabled());
detachedREs.setEnabled(detachedREsJAXB.isEnabled()); detachedREs.setEnabled(detachedREsJAXB.isEnabled());
List<GatewayJAXB> gatewaysJAXB = detachedREsJAXB.getGateways(); LinkedHashMap<String,GatewayJAXB> gatewaysJAXB = detachedREsJAXB.getGateways();
logger.info("DetachedREsBuilder: Gateways configuration: " + gatewaysJAXB); logger.info("DetachedREsBuilder: Gateways configuration: " + gatewaysJAXB);
if (gatewaysJAXB != null && !gatewaysJAXB.isEmpty()) { if (gatewaysJAXB != null && !gatewaysJAXB.isEmpty()) {
ArrayList<Gateway> gateways = new ArrayList<>(); LinkedHashMap<String, Gateway> gateways = new LinkedHashMap<>();
for (GatewayJAXB gatewayJAXB : gatewaysJAXB) { for (String key: gatewaysJAXB.keySet()) {
GatewayJAXB gatewayJAXB =gatewaysJAXB.get(key);
Gateway gateway = new Gateway(gatewayJAXB.getScope(), gatewayJAXB.getName(), Gateway gateway = new Gateway(gatewayJAXB.getScope(), gatewayJAXB.getName(),
gatewayJAXB.getDescription()); gatewayJAXB.getDescription());
@ -80,10 +80,10 @@ public class DetachedREsBuilder {
gateway.setCatalogUrl(gatewayJAXB.getCatalogUrl()); gateway.setCatalogUrl(gatewayJAXB.getCatalogUrl());
if (gatewayJAXB.getVos() != null && !gatewayJAXB.getVos().isEmpty()) { if (gatewayJAXB.getVos() != null && !gatewayJAXB.getVos().isEmpty()) {
ArrayList<VO> vos = retrieveVOs(gatewayJAXB); LinkedHashMap<String,VO> vos = retrieveVOs(gatewayJAXB);
gateway.setVos(vos); gateway.setVos(vos);
} }
gateways.add(gateway); gateways.put(key,gateway);
} }
detachedREs.setGateways(gateways); detachedREs.setGateways(gateways);
@ -106,25 +106,26 @@ public class DetachedREsBuilder {
VRE blueBridgeProject = new VRE("/d4science.research-infrastructures.eu/gCubeApps/BlueBridgeProject", VRE blueBridgeProject = new VRE("/d4science.research-infrastructures.eu/gCubeApps/BlueBridgeProject",
"BlueBridgeProject"); "BlueBridgeProject");
ArrayList<VRE> vres = new ArrayList<>(); LinkedHashMap<String,VRE> vres = new LinkedHashMap<>();
vres.add(blueBridgeProject); vres.put("/d4science.research-infrastructures.eu/gCubeApps",blueBridgeProject);
gCubeApps.setVres(vres); gCubeApps.setVres(vres);
ArrayList<VO> vos = new ArrayList<>(); LinkedHashMap<String,VO> vos = new LinkedHashMap<>();
vos.add(gCubeApps); vos.put("/d4science.research-infrastructures.eu/gCubeApps",gCubeApps);
blueBridgeGateway.setVos(vos); blueBridgeGateway.setVos(vos);
ArrayList<Gateway> gateways = new ArrayList<>(); LinkedHashMap<String,Gateway> gateways = new LinkedHashMap<>();
gateways.add(blueBridgeGateway); gateways.put("-1",blueBridgeGateway);
DetachedREs detachedREs = new DetachedREs(true, gateways); DetachedREs detachedREs = new DetachedREs(true, gateways);
return detachedREs; return detachedREs;
} }
private static ArrayList<VO> retrieveVOs(GatewayJAXB gatewayJAXB) throws Exception { private static LinkedHashMap<String,VO> retrieveVOs(GatewayJAXB gatewayJAXB) throws Exception {
try { try {
ArrayList<VO> vos = new ArrayList<>(); LinkedHashMap<String,VO> vos = new LinkedHashMap<>();
for (VOJAXB voJAXB : gatewayJAXB.getVos()) { for (String key : gatewayJAXB.getVos().keySet()) {
VOJAXB voJAXB=gatewayJAXB.getVos().get(key);
VO vo = new VO(voJAXB.getScope(), voJAXB.getName(), voJAXB.getDescription()); VO vo = new VO(voJAXB.getScope(), voJAXB.getName(), voJAXB.getDescription());
if (voJAXB.getStartDate() != null) { if (voJAXB.getStartDate() != null) {
@ -148,10 +149,10 @@ public class DetachedREsBuilder {
vo.setCatalogUrl(voJAXB.getCatalogUrl()); vo.setCatalogUrl(voJAXB.getCatalogUrl());
if (voJAXB.getVres() != null && !voJAXB.getVres().isEmpty()) { if (voJAXB.getVres() != null && !voJAXB.getVres().isEmpty()) {
ArrayList<VRE> vres = retrieveVREs(voJAXB); LinkedHashMap<String,VRE> vres = retrieveVREs(voJAXB);
vo.setVres(vres); vo.setVres(vres);
} }
vos.add(vo); vos.put(key,vo);
} }
return vos; return vos;
@ -165,10 +166,11 @@ public class DetachedREsBuilder {
} }
private static ArrayList<VRE> retrieveVREs(VOJAXB voJAXB) throws Exception { private static LinkedHashMap<String,VRE> retrieveVREs(VOJAXB voJAXB) throws Exception {
try { try {
ArrayList<VRE> vres = new ArrayList<>(); LinkedHashMap<String,VRE> vres = new LinkedHashMap<>();
for (VREJAXB vreJAXB : voJAXB.getVres()) { for (String key : voJAXB.getVres().keySet()) {
VREJAXB vreJAXB=voJAXB.getVres().get(key);
VRE vre = new VRE(vreJAXB.getScope(), vreJAXB.getName(), vreJAXB.getDescription()); VRE vre = new VRE(vreJAXB.getScope(), vreJAXB.getName(), vreJAXB.getDescription());
if (vreJAXB.getStartDate() != null) { if (vreJAXB.getStartDate() != null) {
@ -191,7 +193,7 @@ public class DetachedREsBuilder {
} }
vre.setCatalogUrl(vreJAXB.getCatalogUrl()); vre.setCatalogUrl(vreJAXB.getCatalogUrl());
vre.setManagers(vreJAXB.getManagers()); vre.setManagers(vreJAXB.getManagers());
vres.add(vre); vres.put(key,vre);
} }
return vres; return vres;

View File

@ -1,6 +1,6 @@
package org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj; 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.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
@ -22,8 +22,7 @@ public class DetachedREsJAXB {
private boolean enabled; private boolean enabled;
@XmlElementWrapper(name = "gateways", required = false) @XmlElementWrapper(name = "gateways", required = false)
@XmlElement(name = "gateway", required = false) private LinkedHashMap<String,GatewayJAXB> gateways;
private ArrayList<GatewayJAXB> gateways;
public boolean isEnabled() { public boolean isEnabled() {
return enabled; return enabled;
@ -33,11 +32,11 @@ public class DetachedREsJAXB {
this.enabled = enabled; this.enabled = enabled;
} }
public ArrayList<GatewayJAXB> getGateways() { public LinkedHashMap<String, GatewayJAXB> getGateways() {
return gateways; return gateways;
} }
public void setGateways(ArrayList<GatewayJAXB> gateways) { public void setGateways(LinkedHashMap<String, GatewayJAXB> gateways) {
this.gateways = gateways; this.gateways = gateways;
} }

View File

@ -1,7 +1,7 @@
package org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj; package org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.LinkedHashMap;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
@ -29,8 +29,7 @@ public class GatewayJAXB {
private String description; private String description;
@XmlElementWrapper(name = "vos", required = false) @XmlElementWrapper(name = "vos", required = false)
@XmlElement(name = "vo", required = false) private LinkedHashMap<String,VOJAXB> vos;
private ArrayList<VOJAXB> vos;
@XmlElement(name = "startdate", required = false) @XmlElement(name = "startdate", required = false)
@XmlJavaTypeAdapter(DateTimeAdapter.class) @XmlJavaTypeAdapter(DateTimeAdapter.class)
@ -67,11 +66,11 @@ public class GatewayJAXB {
this.description = description; this.description = description;
} }
public ArrayList<VOJAXB> getVos() { public LinkedHashMap<String, VOJAXB> getVos() {
return vos; return vos;
} }
public void setVos(ArrayList<VOJAXB> vos) { public void setVos(LinkedHashMap<String, VOJAXB> vos) {
this.vos = vos; this.vos = vos;
} }

View File

@ -1,7 +1,7 @@
package org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj; package org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.LinkedHashMap;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
@ -29,8 +29,7 @@ public class VOJAXB {
private String description; private String description;
@XmlElementWrapper(name = "vres", required = false) @XmlElementWrapper(name = "vres", required = false)
@XmlElement(name = "vre", required = false) private LinkedHashMap<String,VREJAXB> vres;
private ArrayList<VREJAXB> vres;
@XmlElement(name = "startdate", required = false) @XmlElement(name = "startdate", required = false)
@XmlJavaTypeAdapter(DateTimeAdapter.class) @XmlJavaTypeAdapter(DateTimeAdapter.class)
@ -67,11 +66,11 @@ public class VOJAXB {
this.description = description; this.description = description;
} }
public ArrayList<VREJAXB> getVres() { public LinkedHashMap<String, VREJAXB> getVres() {
return vres; return vres;
} }
public void setVres(ArrayList<VREJAXB> vres) { public void setVres(LinkedHashMap<String, VREJAXB> vres) {
this.vres = vres; this.vres = vres;
} }

View File

@ -1,7 +1,7 @@
package org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re; package org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re;
import java.io.Serializable; 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 static final long serialVersionUID = 2238683459962419017L;
private boolean enabled; private boolean enabled;
private ArrayList<Gateway> gateways; private LinkedHashMap<String, Gateway> gateways;
public DetachedREs() { public DetachedREs() {
super(); super();
} }
public DetachedREs(boolean enabled, ArrayList<Gateway> gateways) { public DetachedREs(boolean enabled, LinkedHashMap<String, Gateway> gateways) {
super(); super();
this.enabled = enabled; this.enabled = enabled;
this.gateways = gateways; this.gateways = gateways;
@ -32,11 +32,11 @@ public class DetachedREs implements Serializable {
this.enabled = enabled; this.enabled = enabled;
} }
public ArrayList<Gateway> getGateways() { public LinkedHashMap<String, Gateway> getGateways() {
return gateways; return gateways;
} }
public void setGateways(ArrayList<Gateway> gateways) { public void setGateways(LinkedHashMap<String, Gateway> gateways) {
this.gateways = gateways; this.gateways = gateways;
} }

View File

@ -1,7 +1,7 @@
package org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re; package org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re;
import java.io.Serializable; 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 scope;
private String name; private String name;
private String description; private String description;
private ArrayList<VO> vos; private LinkedHashMap<String,VO> vos;
private String startDate; private String startDate;
private String endDate; private String endDate;
private String catalogUrl; private String catalogUrl;
@ -36,7 +36,7 @@ public class Gateway implements Serializable {
this.description = description; this.description = description;
} }
public Gateway(String scope, String name, String description, ArrayList<VO> vos) { public Gateway(String scope, String name, String description, LinkedHashMap<String,VO> vos) {
super(); super();
this.scope = scope; this.scope = scope;
this.name = name; this.name = name;
@ -68,11 +68,11 @@ public class Gateway implements Serializable {
this.description = description; this.description = description;
} }
public ArrayList<VO> getVos() { public LinkedHashMap<String, VO> getVos() {
return vos; return vos;
} }
public void setVos(ArrayList<VO> vos) { public void setVos(LinkedHashMap<String, VO> vos) {
this.vos = vos; this.vos = vos;
} }

View File

@ -1,7 +1,7 @@
package org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re; package org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re;
import java.io.Serializable; 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 scope;
private String name; private String name;
private String description; private String description;
private ArrayList<VRE> vres; private LinkedHashMap<String,VRE> vres;
private String startDate; private String startDate;
private String endDate; private String endDate;
private String catalogUrl; private String catalogUrl;
@ -36,7 +36,7 @@ public class VO implements Serializable {
this.description = description; this.description = description;
} }
public VO(String scope, String name, String description, ArrayList<VRE> vres) { public VO(String scope, String name, String description, LinkedHashMap<String,VRE> vres) {
super(); super();
this.scope = scope; this.scope = scope;
this.name = name; this.name = name;
@ -68,11 +68,12 @@ public class VO implements Serializable {
this.description = description; this.description = description;
} }
public ArrayList<VRE> getVres() {
public LinkedHashMap<String, VRE> getVres() {
return vres; return vres;
} }
public void setVres(ArrayList<VRE> vres) { public void setVres(LinkedHashMap<String, VRE> vres) {
this.vres = vres; this.vres = vres;
} }

View File

@ -7,8 +7,8 @@ import java.io.File;
import java.io.StringWriter; import java.io.StringWriter;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.ArrayList;
import java.util.GregorianCalendar; import java.util.GregorianCalendar;
import java.util.LinkedHashMap;
import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller; import javax.xml.bind.Marshaller;
@ -82,16 +82,16 @@ public class DetachedREsTest extends TestCase {
blueBridgeProject.setEndDate(new GregorianCalendar(2020, GregorianCalendar.JANUARY, 1).getTime()); blueBridgeProject.setEndDate(new GregorianCalendar(2020, GregorianCalendar.JANUARY, 1).getTime());
blueBridgeProject.setCatalogUrl("http://service.d4science.org/catalogurl"); blueBridgeProject.setCatalogUrl("http://service.d4science.org/catalogurl");
ArrayList<VREJAXB> vres = new ArrayList<>(); LinkedHashMap<String,VREJAXB> vres = new LinkedHashMap<>();
vres.add(blueBridgeProject); vres.put("/d4science.research-infrastructures.eu/gcubeApps/BlueBridgeProject",blueBridgeProject);
gCubeApps.setVres(vres); gCubeApps.setVres(vres);
ArrayList<VOJAXB> vos = new ArrayList<>(); LinkedHashMap<String,VOJAXB> vos = new LinkedHashMap<>();
vos.add(gCubeApps); vos.put("/d4science.research-infrastructures.eu/gCubeApps",gCubeApps);
blueBridgeGateway.setVos(vos); blueBridgeGateway.setVos(vos);
ArrayList<GatewayJAXB> gateways = new ArrayList<>(); LinkedHashMap<String,GatewayJAXB> gateways = new LinkedHashMap<>();
gateways.add(blueBridgeGateway); gateways.put("-1",blueBridgeGateway);
DetachedREsJAXB detachedREs = new DetachedREsJAXB(); DetachedREsJAXB detachedREs = new DetachedREsJAXB();
detachedREs.setEnabled(true); detachedREs.setEnabled(true);