/** * */ package org.gcube.infrastructure.detachedres.detachedreslibrary; 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.Arrays; import java.util.GregorianCalendar; import java.util.LinkedHashMap; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.infrastructure.detachedres.detachedreslibrary.server.DetachedREsClient; 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.VOJAXB; import org.gcube.infrastructure.detachedres.detachedreslibrary.server.is.obj.VREJAXB; import org.gcube.infrastructure.detachedres.detachedreslibrary.shared.Constants; import org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re.DetachedREs; import org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re.Gateway; import org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re.VO; import org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re.VRE; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import junit.framework.TestCase; /** * * @author Giancarlo Panichi * * */ public class DetachedREsTest extends TestCase { private static Logger logger = LoggerFactory.getLogger(DetachedREsTest.class); @Test public void testDetachedREsResource() { if (Constants.TEST_ENABLE) { logger.debug("Test Enabled"); try { ScopeProvider.instance.set(Constants.DEFAULT_SCOPE); SecurityTokenProvider.instance.set(Constants.DEFAULT_TOKEN); DetachedREsClient detachedREsClient = new DetachedREsClient(); DetachedREs detachedREs = detachedREsClient.getDetachedREs(); int totalVREDimissed = 0; for (Gateway gateway : detachedREs.getGateways().values()) { logger.debug("\n\n"); logger.debug("Gateway: " + gateway.getName()); int vreDismissedPerGatew = 0; for (VO vo : gateway.getVos().values()) { logger.debug("VO: " + vo.getName()); for (VRE vre : vo.getVres().values()) { logger.debug("VRE name: " + vre.getName() + " scope: "+vre.getScope() + " VRE catalogue url: " + vre.getCatalogUrl() + " VRE catalog Portlet URL: "+vre.getCatalogPortletURL()); vreDismissedPerGatew++; } } logger.debug("\n\t\t\t******** VREs dismissed per " + gateway.getName() + " are: "+vreDismissedPerGatew); totalVREDimissed+=vreDismissedPerGatew; } logger.debug("\n\nTotal VREs dismissed: " + totalVREDimissed); assertTrue(true); } catch (Exception e) { logger.error(e.getLocalizedMessage(), e); assertTrue("Error searching the resource!", false); } } else { logger.debug("Test Disabled"); assertTrue(true); } } @Test public void testFindDetachedVREForVREName() { if (Constants.TEST_ENABLE) { logger.debug("Test Enabled"); try { String vreName = "bluebridgeproject"; ScopeProvider.instance.set(Constants.DEFAULT_SCOPE); SecurityTokenProvider.instance.set(Constants.DEFAULT_TOKEN); DetachedREsClient detachedREsClient = new DetachedREsClient(); VRE vre = detachedREsClient.findDetachedVREforVREName(vreName); logger.debug("The detached VRE for name: " + vreName + " found as: "+vre); assertTrue(true); } catch (Exception e) { logger.error(e.getLocalizedMessage(), e); assertTrue("Error searching the resource!", false); } } else { logger.debug("Test Disabled"); assertTrue(true); } } @Test public void testDetachedREsMarshaller() { if (Constants.TEST_ENABLE) { logger.debug("Test Enabled"); try { logger.info("Check Marshalling"); GatewayJAXB blueBridgeGateway = new GatewayJAXB(); blueBridgeGateway.setScope("-1"); blueBridgeGateway.setName("BlueBridge Gateway"); VOJAXB gCubeApps = new VOJAXB(); gCubeApps.setScope("/d4science.research-infrastructures.eu/gCubeApps"); gCubeApps.setName("gCubeApps"); VREJAXB blueBridgeProject = new VREJAXB(); blueBridgeProject.setScope("/d4science.research-infrastructures.eu/gcubeApps/BlueBridgeProject"); blueBridgeProject.setName("BlueBridgeProject"); blueBridgeProject.setStartDate(new GregorianCalendar(2018, GregorianCalendar.JANUARY, 1).getTime()); blueBridgeProject.setEndDate(new GregorianCalendar(2020, GregorianCalendar.MARCH, 3).getTime()); blueBridgeProject.setCatalogUrl("http://data.d4science.org/ctlg/BlueBridgeProject"); blueBridgeProject .setManagers(new ArrayList(Arrays.asList("Leonardo Candela", "Pasquale Pagano"))); LinkedHashMap vres = new LinkedHashMap<>(); vres.put("/d4science.research-infrastructures.eu/gcubeApps/BlueBridgeProject", blueBridgeProject); gCubeApps.setVres(vres); LinkedHashMap vos = new LinkedHashMap<>(); vos.put("/d4science.research-infrastructures.eu/gCubeApps", gCubeApps); blueBridgeGateway.setVos(vos); LinkedHashMap gateways = new LinkedHashMap<>(); gateways.put("-1", blueBridgeGateway); DetachedREsJAXB detachedREs = new DetachedREsJAXB(); detachedREs.setEnabled(true); detachedREs.setGateways(gateways); JAXBContext jaxbContext = JAXBContext.newInstance(DetachedREsJAXB.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // Print XML String to Console StringWriter sw = new StringWriter(); // Write XML to StringWriter jaxbMarshaller.marshal(detachedREs, sw); // Verify XML Content String xmlContent = sw.toString(); logger.debug(xmlContent); logger.info("Check Unmarshalling"); Path path = Files.createTempFile("DetachedREsData", ".xml"); File file = path.toFile(); jaxbMarshaller.marshal(detachedREs, file); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); DetachedREsJAXB configUnmarshalled = (DetachedREsJAXB) jaxbUnmarshaller.unmarshal(file); logger.debug("DetachedREs unmarshallded: " + configUnmarshalled); file.delete(); logger.info("Success!"); assertTrue(true); } catch (Throwable e) { logger.error(e.getLocalizedMessage(), e); assertTrue("Error in DetachedREs Marshal!", false); } } else { logger.debug("Test Disabled"); assertTrue(true); } } @Test public void testDetachedREsMarshallerProd() { if (Constants.TEST_ENABLE) { logger.debug("Test Enabled"); try { logger.info("Check Marshalling"); // final String GCUBEAPPS = "gCubeApps"; // final String FARM = "FARM"; // final String D4RESEARCH = "D4Research"; // final String PARTHENOSVO = "ParthenosVO"; // final String D4OS = "D4OS"; // ------ BlueBridge Gateway begin GatewayJAXB blueBridgeGateway = new GatewayJAXB(); blueBridgeGateway.setScope("-1"); blueBridgeGateway.setName("BlueBridge Gateway"); createBlueBridgeGateway(blueBridgeGateway); // ------ D4Science.org Detached Gateway begin GatewayJAXB d4ScienceOrgDetachedGateway = new GatewayJAXB(); d4ScienceOrgDetachedGateway.setScope("-2"); d4ScienceOrgDetachedGateway.setName("D4Science.org Detached Gateway"); createD4ScienceOrgDetachedGateway(d4ScienceOrgDetachedGateway); // ------ PARTHENOS Detached Gateway begin GatewayJAXB parthenosDetachedGateway = new GatewayJAXB(); parthenosDetachedGateway.setScope("-3"); parthenosDetachedGateway.setName("PARTHENOS Detached Gateway"); createParthenosDetachedGateway(parthenosDetachedGateway); // ------ AGINFRAPlus Detached Gateway begin GatewayJAXB aginfraPlusDetachedGateway = new GatewayJAXB(); aginfraPlusDetachedGateway.setScope("-4"); aginfraPlusDetachedGateway.setName("AGINFRAPlus Detached Gateway"); createAginfraPlusDetachedGateway(aginfraPlusDetachedGateway); // ------ EOSC-Secretriat Detached Gateway begin GatewayJAXB eoscSecretariatDetachedGateway = new GatewayJAXB(); eoscSecretariatDetachedGateway.setScope("-5"); eoscSecretariatDetachedGateway.setName("EOSC-Secretariat Detached Gateway"); createEOSCSecretariatDetachedGateway(eoscSecretariatDetachedGateway); // Gateway Add // ------------------- LinkedHashMap gateways = new LinkedHashMap<>(); gateways.put("-1", blueBridgeGateway); gateways.put("-2", d4ScienceOrgDetachedGateway); gateways.put("-3", parthenosDetachedGateway); gateways.put("-4", aginfraPlusDetachedGateway); gateways.put("-5", eoscSecretariatDetachedGateway); DetachedREsJAXB detachedREs = new DetachedREsJAXB(); detachedREs.setEnabled(true); detachedREs.setGateways(gateways); JAXBContext jaxbContext = JAXBContext.newInstance(DetachedREsJAXB.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // Print XML String to Console StringWriter sw = new StringWriter(); // Write XML to StringWriter jaxbMarshaller.marshal(detachedREs, sw); // Verify XML Content String xmlContent = sw.toString(); logger.debug(xmlContent); logger.info("Check Unmarshalling"); Path path = Files.createTempFile("DetachedREsData", ".xml"); File file = path.toFile(); jaxbMarshaller.marshal(detachedREs, file); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); DetachedREsJAXB configUnmarshalled = (DetachedREsJAXB) jaxbUnmarshaller.unmarshal(file); logger.debug("DetachedREs unmarshallded: " + configUnmarshalled); file.delete(); logger.info("Success!"); assertTrue(true); } catch (Throwable e) { logger.error(e.getLocalizedMessage(), e); assertTrue("Error in DetachedREs Marshal!", false); } } else { logger.debug("Test Disabled"); assertTrue(true); } } private void createEOSCSecretariatDetachedGateway(GatewayJAXB eoscSecretariatDetachedGateway) { // D4OS VOJAXB d4osOfEOSCSecretariatDetachedGateway = new VOJAXB(); d4osOfEOSCSecretariatDetachedGateway .setScope("/d4science.research-infrastructures.eu/" + VOProduction.D4OS.getId()); d4osOfEOSCSecretariatDetachedGateway.setName(VOProduction.D4OS.getId()); LinkedHashMap d4osVREsOfEOSCSecretariatDetachedGateway = new LinkedHashMap<>(); String[] d4osVREsOfEOSCSecretariatDetachedGatewayArray = { "INFRAEOSC5ProjectsCollaboratory" }; for (String vre : d4osVREsOfEOSCSecretariatDetachedGatewayArray) { VREJAXB d4osVREJAXB = new VREJAXB(); d4osVREJAXB.setScope("/d4science.research-infrastructures.eu/" + VOProduction.D4OS.getId() + "/" + vre); d4osVREJAXB.setName(new String(vre).replace("_", " ")); d4osVREJAXB.setStartDate(new GregorianCalendar(2018, GregorianCalendar.JANUARY, 1).getTime()); d4osVREJAXB.setEndDate(new GregorianCalendar(2020, GregorianCalendar.MARCH, 3).getTime()); d4osVREJAXB.setCatalogUrl("http://data.d4science.org/ctlg/" + vre); d4osVREJAXB.setManagers(new ArrayList(Arrays.asList("Leonardo Candela", "Pasquale Pagano"))); d4osVREsOfEOSCSecretariatDetachedGateway.put( "/d4science.research-infrastructures.eu/" + VOProduction.D4OS.getId() + "/" + vre, d4osVREJAXB); } d4osOfEOSCSecretariatDetachedGateway.setVres(d4osVREsOfEOSCSecretariatDetachedGateway); LinkedHashMap vosOfEOSCSecretariatDetachedGateway = new LinkedHashMap<>(); vosOfEOSCSecretariatDetachedGateway.put("/d4science.research-infrastructures.eu/" + VOProduction.D4OS.getId(), d4osOfEOSCSecretariatDetachedGateway); eoscSecretariatDetachedGateway.setVos(vosOfEOSCSecretariatDetachedGateway); } private void createAginfraPlusDetachedGateway(GatewayJAXB aginfraPlusDetachedGateway) { // FARM VOJAXB farmOfAginfraPlusDetachedGateway = new VOJAXB(); farmOfAginfraPlusDetachedGateway .setScope("/d4science.research-infrastructures.eu/" + VOProduction.FARM.getId()); farmOfAginfraPlusDetachedGateway.setName(VOProduction.FARM.getId()); LinkedHashMap farmVREsOfAginfraPlusDetachedGateway = new LinkedHashMap<>(); String[] farmVREsOfAginfraPlusDetachedGatewayArray = { "EOSCFood" }; for (String vre : farmVREsOfAginfraPlusDetachedGatewayArray) { VREJAXB farmVREJAXB = new VREJAXB(); farmVREJAXB.setScope("/d4science.research-infrastructures.eu/" + VOProduction.FARM.getId() + "/" + vre); farmVREJAXB.setName(new String(vre).replace("_", " ")); farmVREJAXB.setStartDate(new GregorianCalendar(2018, GregorianCalendar.JANUARY, 1).getTime()); farmVREJAXB.setEndDate(new GregorianCalendar(2020, GregorianCalendar.MARCH, 3).getTime()); farmVREJAXB.setCatalogUrl("http://data.d4science.org/ctlg/" + vre); farmVREJAXB.setManagers(new ArrayList(Arrays.asList("Leonardo Candela", "Pasquale Pagano"))); farmVREsOfAginfraPlusDetachedGateway.put( "/d4science.research-infrastructures.eu/" + VOProduction.FARM.getId() + "/" + vre, farmVREJAXB); } farmOfAginfraPlusDetachedGateway.setVres(farmVREsOfAginfraPlusDetachedGateway); LinkedHashMap vosOfAginfraPlusDetachedGateway = new LinkedHashMap<>(); vosOfAginfraPlusDetachedGateway.put("/d4science.research-infrastructures.eu/" + VOProduction.FARM.getId(), farmOfAginfraPlusDetachedGateway); aginfraPlusDetachedGateway.setVos(vosOfAginfraPlusDetachedGateway); } private void createParthenosDetachedGateway(GatewayJAXB parthenosDetachedGateway) { // ParthenosVO VOJAXB parthenosVOOfParthenosDetachedGateway = new VOJAXB(); parthenosVOOfParthenosDetachedGateway .setScope("/d4science.research-infrastructures.eu/" + VOProduction.PARTHENOSVO.getId()); parthenosVOOfParthenosDetachedGateway.setName(VOProduction.PARTHENOSVO.getId()); LinkedHashMap parthenosVOVREsOfParthenosDetachedGateway = new LinkedHashMap<>(); String[] parthenosVOVREsOfParthenosDetachedGatewayArray = { "RubRIcA" }; for (String vre : parthenosVOVREsOfParthenosDetachedGatewayArray) { VREJAXB parthenosVOVREJAXB = new VREJAXB(); parthenosVOVREJAXB .setScope("/d4science.research-infrastructures.eu/" + VOProduction.PARTHENOSVO.getId() + "/" + vre); parthenosVOVREJAXB.setName(new String(vre).replace("_", " ")); parthenosVOVREJAXB.setStartDate(new GregorianCalendar(2018, GregorianCalendar.JANUARY, 1).getTime()); parthenosVOVREJAXB.setEndDate(new GregorianCalendar(2020, GregorianCalendar.MARCH, 3).getTime()); parthenosVOVREJAXB.setCatalogUrl("http://data.d4science.org/ctlg/" + vre); parthenosVOVREJAXB.setManagers(new ArrayList(Arrays.asList("Leonardo Candela", "Pasquale Pagano"))); parthenosVOVREsOfParthenosDetachedGateway.put( "/d4science.research-infrastructures.eu/" + VOProduction.PARTHENOSVO.getId() + "/" + vre, parthenosVOVREJAXB); } parthenosVOOfParthenosDetachedGateway.setVres(parthenosVOVREsOfParthenosDetachedGateway); // D4Research VOJAXB d4ResearchOfParthenosDetachedGateway = new VOJAXB(); d4ResearchOfParthenosDetachedGateway .setScope("/d4science.research-infrastructures.eu/" + VOProduction.D4RESEARCH.getId()); d4ResearchOfParthenosDetachedGateway.setName(VOProduction.D4RESEARCH.getId()); LinkedHashMap d4ResearchVREsOfParthenosDetachedGateway = new LinkedHashMap<>(); String[] d4ResearchVREsOfParthenosDetachedGatewayArray = { "NERLiX" }; for (String vre : d4ResearchVREsOfParthenosDetachedGatewayArray) { VREJAXB d4ResearchVREJAXB = new VREJAXB(); d4ResearchVREJAXB .setScope("/d4science.research-infrastructures.eu/" + VOProduction.D4RESEARCH.getId() + "/" + vre); d4ResearchVREJAXB.setName(new String(vre).replace("_", " ")); d4ResearchVREJAXB.setStartDate(new GregorianCalendar(2018, GregorianCalendar.JANUARY, 1).getTime()); d4ResearchVREJAXB.setEndDate(new GregorianCalendar(2020, GregorianCalendar.MARCH, 3).getTime()); d4ResearchVREJAXB.setCatalogUrl("http://data.d4science.org/ctlg/" + vre); d4ResearchVREJAXB.setManagers(new ArrayList(Arrays.asList("Leonardo Candela", "Pasquale Pagano"))); d4ResearchVREsOfParthenosDetachedGateway.put( "/d4science.research-infrastructures.eu/" + VOProduction.D4RESEARCH.getId() + "/" + vre, d4ResearchVREJAXB); } d4ResearchOfParthenosDetachedGateway.setVres(d4ResearchVREsOfParthenosDetachedGateway); LinkedHashMap vosOfParthenosDetachedGateway = new LinkedHashMap<>(); vosOfParthenosDetachedGateway.put("/d4science.research-infrastructures.eu/" + VOProduction.D4RESEARCH.getId(), d4ResearchOfParthenosDetachedGateway); vosOfParthenosDetachedGateway.put("/d4science.research-infrastructures.eu/" + VOProduction.PARTHENOSVO.getId(), parthenosVOOfParthenosDetachedGateway); parthenosDetachedGateway.setVos(vosOfParthenosDetachedGateway); } private void createBlueBridgeGateway(GatewayJAXB blueBridgeGateway) { // gCubeApps VOJAXB gCubeAppsOfBlueBridgeGateway = new VOJAXB(); gCubeAppsOfBlueBridgeGateway .setScope("/d4science.research-infrastructures.eu/" + VOProduction.GCUBEAPPS.getId()); gCubeAppsOfBlueBridgeGateway.setName(VOProduction.GCUBEAPPS.getId()); LinkedHashMap gCubeAppsVREsOfBlueBridgeGateway = new LinkedHashMap<>(); String[] gCubeAppsVREsOfBluebridgeGatewayArray = { "AquacultureTrainingLab", "BlueBRIDGE-PSC", "BlueBridgeProject", "CES_TCRE", "ICES_DALSA", "ICES_DASC", "ICES_FIACO", "ICES_StockAssessmentAdvanced", "ICES_TCSSM", "iSearch", "SIASPA" }; for (String vre : gCubeAppsVREsOfBluebridgeGatewayArray) { VREJAXB gCubeAppsVREJAXB = new VREJAXB(); gCubeAppsVREJAXB .setScope("/d4science.research-infrastructures.eu/" + VOProduction.GCUBEAPPS.getId() + "/" + vre); gCubeAppsVREJAXB.setName(new String(vre).replace("_", " ")); gCubeAppsVREJAXB.setStartDate(new GregorianCalendar(2018, GregorianCalendar.JANUARY, 1).getTime()); gCubeAppsVREJAXB.setEndDate(new GregorianCalendar(2020, GregorianCalendar.MARCH, 3).getTime()); // UPDATED BY FRANCESCO if (vre.compareToIgnoreCase("BlueBridgeProject") == 0 || vre.compareToIgnoreCase("SIASPA") == 0) { gCubeAppsVREJAXB.setCatalogUrl("https://ckan-imarine.d4science.org"); gCubeAppsVREJAXB.setCatalogPortletURL("https://i-marine.d4science.org/group/imarine-gateway/data-catalogue"); } else { //not usable gCubeAppsVREJAXB.setCatalogUrl("http://data.d4science.org/ctlg/" + vre); } gCubeAppsVREJAXB.setManagers(new ArrayList(Arrays.asList("Leonardo Candela", "Pasquale Pagano"))); gCubeAppsVREsOfBlueBridgeGateway.put( "/d4science.research-infrastructures.eu/" + VOProduction.GCUBEAPPS.getId() + "/" + vre, gCubeAppsVREJAXB); } gCubeAppsOfBlueBridgeGateway.setVres(gCubeAppsVREsOfBlueBridgeGateway); // FARM VOJAXB farmOfBlueBridgeGateway = new VOJAXB(); farmOfBlueBridgeGateway.setScope("/d4science.research-infrastructures.eu/" + VOProduction.FARM.getId()); farmOfBlueBridgeGateway.setName(VOProduction.FARM.getId()); LinkedHashMap farmVREsOfBlueBridgeGateway = new LinkedHashMap<>(); String[] farmVREsOfBlueBridgeGatewayArray = { "AlieiaVRE", "Aquabiotech", "ARDAG_Aquaculture", "EllinikaPsariaVRE", "ForkysVRE", "GALAXIDI", "iLKNAK_Aquaculture", "KIMAGRO_Fishfarming", "MARKELLOS_Aquaculture", "NHREUS_Aquaculture", "STRATOS_AQUACULTURES", "SustainableBlueEconomy", "TBTI_VRE" }; for (String vre : farmVREsOfBlueBridgeGatewayArray) { VREJAXB farmVREJAXB = new VREJAXB(); farmVREJAXB.setScope("/d4science.research-infrastructures.eu/" + VOProduction.FARM.getId() + "/" + vre); farmVREJAXB.setName(new String(vre).replace("_", " ")); farmVREJAXB.setStartDate(new GregorianCalendar(2018, GregorianCalendar.JANUARY, 1).getTime()); farmVREJAXB.setEndDate(new GregorianCalendar(2020, GregorianCalendar.MARCH, 3).getTime()); farmVREJAXB.setCatalogUrl("http://data.d4science.org/ctlg/" + vre); farmVREJAXB.setManagers(new ArrayList(Arrays.asList("Leonardo Candela", "Pasquale Pagano"))); farmVREsOfBlueBridgeGateway.put( "/d4science.research-infrastructures.eu/" + VOProduction.FARM.getId() + "/" + vre, farmVREJAXB); } farmOfBlueBridgeGateway.setVres(farmVREsOfBlueBridgeGateway); // D4Research VOJAXB d4ResearchOfBlueBridgeGateway = new VOJAXB(); d4ResearchOfBlueBridgeGateway .setScope("/d4science.research-infrastructures.eu/" + VOProduction.D4RESEARCH.getId()); d4ResearchOfBlueBridgeGateway.setName(VOProduction.D4RESEARCH.getId()); LinkedHashMap d4ResearchVREsOfBlueBridgeGateway = new LinkedHashMap<>(); String[] d4ResearchVREsOfBlueBridgeGatewayArray = { "Blue-Datathon", "BlueBRIDGEReview", "BOBLME_HilsaAWG", "DRuMFISH", "ICES_AbundanceEstimationFromAcoustic", "ICES_BNetworkAnalysis", "ICES_FIACO2017", "ICES_IntroStockAssessment", "ICES_IntroToREnv", "ICES_LogbookData", "ICES_MSE", "ICES_MSY", "InfraTraining", "Sinay", "StatnMap" }; for (String vre : d4ResearchVREsOfBlueBridgeGatewayArray) { VREJAXB d4ResearchVREJAXB = new VREJAXB(); d4ResearchVREJAXB .setScope("/d4science.research-infrastructures.eu/" + VOProduction.D4RESEARCH.getId() + "/" + vre); d4ResearchVREJAXB.setName(new String(vre).replace("_", " ")); d4ResearchVREJAXB.setStartDate(new GregorianCalendar(2018, GregorianCalendar.JANUARY, 1).getTime()); d4ResearchVREJAXB.setEndDate(new GregorianCalendar(2020, GregorianCalendar.MARCH, 3).getTime()); d4ResearchVREJAXB.setCatalogUrl("http://data.d4science.org/ctlg/" + vre); d4ResearchVREJAXB.setManagers(new ArrayList(Arrays.asList("Leonardo Candela", "Pasquale Pagano"))); d4ResearchVREsOfBlueBridgeGateway.put( "/d4science.research-infrastructures.eu/" + VOProduction.D4RESEARCH.getId() + "/" + vre, d4ResearchVREJAXB); } d4ResearchOfBlueBridgeGateway.setVres(d4ResearchVREsOfBlueBridgeGateway); LinkedHashMap vosOfBlueBridgeGateway = new LinkedHashMap<>(); vosOfBlueBridgeGateway.put("/d4science.research-infrastructures.eu/" + VOProduction.D4RESEARCH.getId(), d4ResearchOfBlueBridgeGateway); vosOfBlueBridgeGateway.put("/d4science.research-infrastructures.eu/" + VOProduction.FARM.getId(), farmOfBlueBridgeGateway); vosOfBlueBridgeGateway.put("/d4science.research-infrastructures.eu/" + VOProduction.GCUBEAPPS.getId(), gCubeAppsOfBlueBridgeGateway); blueBridgeGateway.setVos(vosOfBlueBridgeGateway); } private void createD4ScienceOrgDetachedGateway(GatewayJAXB d4ScienceOrgDetachedGateway) { // gCubeApps VOJAXB gCubeAppsOfD4ScienceOrgDetachedGateway = new VOJAXB(); gCubeAppsOfD4ScienceOrgDetachedGateway .setScope("/d4science.research-infrastructures.eu/" + VOProduction.GCUBEAPPS.getId()); gCubeAppsOfD4ScienceOrgDetachedGateway.setName(VOProduction.GCUBEAPPS.getId()); LinkedHashMap gCubeAppsVREsOfD4ScienceOrgDetachedGateway = new LinkedHashMap<>(); String[] gCubeAppsVREsOfD4ScienceOrgDetachedGatewayArray = { "CNR_OpenScienceTF", "EGIEngage", "ICOS_ETC" }; for (String vre : gCubeAppsVREsOfD4ScienceOrgDetachedGatewayArray) { VREJAXB gCubeAppsVREJAXB = new VREJAXB(); gCubeAppsVREJAXB .setScope("/d4science.research-infrastructures.eu/" + VOProduction.GCUBEAPPS.getId() + "/" + vre); gCubeAppsVREJAXB.setName(new String(vre).replace("_", " ")); gCubeAppsVREJAXB.setStartDate(new GregorianCalendar(2018, GregorianCalendar.JANUARY, 1).getTime()); gCubeAppsVREJAXB.setEndDate(new GregorianCalendar(2020, GregorianCalendar.MARCH, 3).getTime()); gCubeAppsVREJAXB.setCatalogUrl("http://data.d4science.org/ctlg/" + vre); gCubeAppsVREJAXB.setManagers(new ArrayList(Arrays.asList("Leonardo Candela", "Pasquale Pagano"))); gCubeAppsVREsOfD4ScienceOrgDetachedGateway.put( "/d4science.research-infrastructures.eu/" + VOProduction.GCUBEAPPS.getId() + "/" + vre, gCubeAppsVREJAXB); } gCubeAppsOfD4ScienceOrgDetachedGateway.setVres(gCubeAppsVREsOfD4ScienceOrgDetachedGateway); // FARM VOJAXB farmOfD4ScienceOrgDetachedGateway = new VOJAXB(); farmOfD4ScienceOrgDetachedGateway .setScope("/d4science.research-infrastructures.eu/" + VOProduction.FARM.getId()); farmOfD4ScienceOrgDetachedGateway.setName(VOProduction.FARM.getId()); LinkedHashMap farmVREsOfD4ScienceOrgDetachedGateway = new LinkedHashMap<>(); String[] farmVREsOfD4ScienceOrgDetachedGatewayArray = { "EUChinaFoodSTAR" }; for (String vre : farmVREsOfD4ScienceOrgDetachedGatewayArray) { VREJAXB farmVREJAXB = new VREJAXB(); farmVREJAXB.setScope("/d4science.research-infrastructures.eu/" + VOProduction.FARM.getId() + "/" + vre); farmVREJAXB.setName(new String(vre).replace("_", " ")); farmVREJAXB.setStartDate(new GregorianCalendar(2018, GregorianCalendar.JANUARY, 1).getTime()); farmVREJAXB.setEndDate(new GregorianCalendar(2020, GregorianCalendar.MARCH, 3).getTime()); farmVREJAXB.setCatalogUrl("http://data.d4science.org/ctlg/" + vre); farmVREJAXB.setManagers(new ArrayList(Arrays.asList("Leonardo Candela", "Pasquale Pagano"))); farmVREsOfD4ScienceOrgDetachedGateway.put( "/d4science.research-infrastructures.eu/" + VOProduction.FARM.getId() + "/" + vre, farmVREJAXB); } farmOfD4ScienceOrgDetachedGateway.setVres(farmVREsOfD4ScienceOrgDetachedGateway); // D4Research VOJAXB d4ResearchOfD4ScienceOrgDetachedGateway = new VOJAXB(); d4ResearchOfD4ScienceOrgDetachedGateway .setScope("/d4science.research-infrastructures.eu/" + VOProduction.D4RESEARCH.getId()); d4ResearchOfD4ScienceOrgDetachedGateway.setName(VOProduction.D4RESEARCH.getId()); LinkedHashMap d4ResearchVREsOfD4ScienceOrgDetachedGateway = new LinkedHashMap<>(); String[] d4ResearchVREsOfD4ScienceOrgDetachedGatewayArray = { "EOSC_Services", "FAIR_DM", "FisheriesAndEcosystemAtMii", "ISTIOpenAccess" }; for (String vre : d4ResearchVREsOfD4ScienceOrgDetachedGatewayArray) { VREJAXB d4ResearchVREJAXB = new VREJAXB(); d4ResearchVREJAXB .setScope("/d4science.research-infrastructures.eu/" + VOProduction.D4RESEARCH.getId() + "/" + vre); d4ResearchVREJAXB.setName(new String(vre).replace("_", " ")); d4ResearchVREJAXB.setStartDate(new GregorianCalendar(2018, GregorianCalendar.JANUARY, 1).getTime()); d4ResearchVREJAXB.setEndDate(new GregorianCalendar(2020, GregorianCalendar.MARCH, 3).getTime()); d4ResearchVREJAXB.setCatalogUrl("http://data.d4science.org/ctlg/" + vre); d4ResearchVREJAXB.setManagers(new ArrayList(Arrays.asList("Leonardo Candela", "Pasquale Pagano"))); d4ResearchVREsOfD4ScienceOrgDetachedGateway.put( "/d4science.research-infrastructures.eu/" + VOProduction.D4RESEARCH.getId() + "/" + vre, d4ResearchVREJAXB); } d4ResearchOfD4ScienceOrgDetachedGateway.setVres(d4ResearchVREsOfD4ScienceOrgDetachedGateway); LinkedHashMap vosOfD4ScienceOrgDetachedGateway = new LinkedHashMap<>(); vosOfD4ScienceOrgDetachedGateway.put( "/d4science.research-infrastructures.eu/" + VOProduction.D4RESEARCH.getId(), d4ResearchOfD4ScienceOrgDetachedGateway); vosOfD4ScienceOrgDetachedGateway.put("/d4science.research-infrastructures.eu/" + VOProduction.FARM.getId(), farmOfD4ScienceOrgDetachedGateway); vosOfD4ScienceOrgDetachedGateway.put("/d4science.research-infrastructures.eu/" + VOProduction.GCUBEAPPS.getId(), gCubeAppsOfD4ScienceOrgDetachedGateway); d4ScienceOrgDetachedGateway.setVos(vosOfD4ScienceOrgDetachedGateway); } }