From 09289b4a31fb6e466f6b9c99e8ea0cbbd3794ded Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Mon, 6 Apr 2020 16:11:55 +0200 Subject: [PATCH] Bug #18951 Added business logic to manage the CKAN hostname via property file --- .classpath | 5 +- .settings/org.eclipse.jdt.core.prefs | 2 + .../resolver/catalogue/ItemCatalogueURLs.java | 1 + .../CatalogueStaticConfigurations.java | 142 ++++++++++++++++++ .../CkanCatalogueConfigurationsReader.java | 98 ++++-------- .../GatewayCKANCatalogueReference.java | 66 ++++++-- ...tacatalogue_urls_configurations.properties | 14 ++ .../datacatalogueconfiguration.properties | 7 - .../resolver/services/CatalogueResolver.java | 21 ++- src/test/java/CatalogueNameExtractor.java | 23 +++ src/test/resources/.gitignore | 1 + 11 files changed, 286 insertions(+), 94 deletions(-) create mode 100644 src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/CatalogueStaticConfigurations.java create mode 100644 src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/datacatalogue_urls_configurations.properties delete mode 100644 src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/datacatalogueconfiguration.properties create mode 100644 src/test/java/CatalogueNameExtractor.java diff --git a/.classpath b/.classpath index 107e885..27073a0 100644 --- a/.classpath +++ b/.classpath @@ -8,15 +8,15 @@ + - - + @@ -29,5 +29,6 @@ + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index a5c7673..43c8195 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -3,7 +3,9 @@ org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore org.eclipse.jdt.core.compiler.release=disabled org.eclipse.jdt.core.compiler.source=1.7 diff --git a/src/main/java/org/gcube/datatransfer/resolver/catalogue/ItemCatalogueURLs.java b/src/main/java/org/gcube/datatransfer/resolver/catalogue/ItemCatalogueURLs.java index d6b74f0..bc11793 100644 --- a/src/main/java/org/gcube/datatransfer/resolver/catalogue/ItemCatalogueURLs.java +++ b/src/main/java/org/gcube/datatransfer/resolver/catalogue/ItemCatalogueURLs.java @@ -23,6 +23,7 @@ public class ItemCatalogueURLs { private String itemName; private boolean isPublicItem; + private String privateVRECataloguePortletURL; private String publicVRECataloguePortletURL; private String publicGatewayCataloguePortletURL; diff --git a/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/CatalogueStaticConfigurations.java b/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/CatalogueStaticConfigurations.java new file mode 100644 index 0000000..07cb718 --- /dev/null +++ b/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/CatalogueStaticConfigurations.java @@ -0,0 +1,142 @@ +package org.gcube.datatransfer.resolver.catalogue.resource; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Arrays; +import java.util.List; +import java.util.Properties; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * The Class CatalogueStaticConfigurations. + * + * @author Francesco Mangiacrapa at ISTI-CNR Pisa (Italy) + * Apr 6, 2020 + */ +public class CatalogueStaticConfigurations{ + + /** The Constant LOG. */ + private static final Logger LOG = LoggerFactory.getLogger(CatalogueStaticConfigurations.class); + + /** The Constant PREFIX_FOR_PORTAL_RELATIVE_URL_TO_CATALOGUE. */ + static final String PREFIX_FOR_PORTAL_RELATIVE_URL_TO_CATALOGUE = "PREFIX_FOR_PORTAL_RELATIVE_URL_TO_CATALOGUE"; + + /** The Constant BALANCER_AND_CKAN_PREFIXES_USED_FOR_HOSTNAME. */ + static final String BALANCER_AND_CKAN_PREFIXES_USED_FOR_HOSTNAME = "BALANCER_AND_CKAN_PREFIXES_USED_FOR_HOSTNAME"; + + /** The Constant DATACATALOGUE_URLs_CONFIGURATIONS_PROPERTIES. */ + static final String DATACATALOGUE_URLs_CONFIGURATIONS_PROPERTIES = "datacatalogue_urls_configurations.properties"; + + /** The prefix to be used for catalogue URL. */ + private String prefixToBeUsedForCatalogueURL; + + /** The prefixes used for ckan hostname. */ + private List prefixesUsedForCkanHostname; + + /** + * Instantiates a new static configurations. + */ + public CatalogueStaticConfigurations() { + loadCataloguePortalURLsConfigurations(); + } + + + /** + * Load catalogue portal URLs configurations. + */ + private void loadCataloguePortalURLsConfigurations(){ + Properties prop = new Properties(); + try { + + InputStream in = CkanCatalogueConfigurationsReader.class.getResourceAsStream(DATACATALOGUE_URLs_CONFIGURATIONS_PROPERTIES); + // load a properties file + prop.load(in); + + // get the property value + String property = prop.getProperty(PREFIX_FOR_PORTAL_RELATIVE_URL_TO_CATALOGUE); + prefixToBeUsedForCatalogueURL = property; + + // get the property value + property = prop.getProperty(BALANCER_AND_CKAN_PREFIXES_USED_FOR_HOSTNAME); + if(property.contains(",")) { + String[] values = property.split(","); + prefixesUsedForCkanHostname = Arrays.asList(values); + }else { + prefixesUsedForCkanHostname = Arrays.asList(property); + } + + } catch (IOException e) { + LOG.error("An error occurred on read property file: "+DATACATALOGUE_URLs_CONFIGURATIONS_PROPERTIES, e); + } + } + + + /** + * Extract catalogue name from a ckan or balancer hostname. + * + * @param privateCKANCatalogueURL the private CKAN catalogue URL + * @return the catalogue name + * + * e.g. Returns "-bb" for "ckan-bb" + */ + private String extractCatalogueName(String privateCKANCatalogueURL) { + + String toPrivateCKANCatalogueURL = privateCKANCatalogueURL; + LOG.debug("Private Catalogue URL is: "+toPrivateCKANCatalogueURL); + //removing protocol HTTPs or HTTP + toPrivateCKANCatalogueURL = toPrivateCKANCatalogueURL.replaceFirst("https://", ""); + toPrivateCKANCatalogueURL = toPrivateCKANCatalogueURL.replaceFirst("http://", ""); + LOG.debug("Removed HTTP[s] protocol, now I have: "+toPrivateCKANCatalogueURL); + for (String prefix :prefixesUsedForCkanHostname) { + LOG.trace(prefix+ " found as prefix of: "+privateCKANCatalogueURL); + if(toPrivateCKANCatalogueURL.startsWith(prefix)) { + toPrivateCKANCatalogueURL = toPrivateCKANCatalogueURL.replaceFirst(prefix, ""); //removing prefix + String catalogueName = toPrivateCKANCatalogueURL.substring(0,toPrivateCKANCatalogueURL.indexOf(".d4science")); + LOG.info("Catalogue Name extration returning value: "+catalogueName); + return catalogueName; + } + } + + LOG.info("Catalogue Name extration returning null"); + return null; + } + + + /** + * Builds the relative URL to public catalogue gateway. + * + * @param privateCKANCatalogueURL the private CKAN catalogue URL + * + * @return the relative URL that must be used for Public Catalogue Gateway + */ + public String buildRelativeURLToPublicCatalogueGateway(String privateCKANCatalogueURL) { + LOG.info("Trying to build the Catalogue Gateway URL using the prefix: "+prefixToBeUsedForCatalogueURL); + LOG.debug("The prefixes to build the URL for Public Catalogue published at Gateway level are: "+prefixesUsedForCkanHostname); + String catalogueName = extractCatalogueName(privateCKANCatalogueURL); + catalogueName = catalogueName == null? "":catalogueName; + String toNormalizedNameForURL = catalogueName.replaceAll("\\.", "-"); + String publicCatalogueGatewayURL = String.format("%s%s", prefixToBeUsedForCatalogueURL,toNormalizedNameForURL); + LOG.info("The Catalogue Gateway URL built is: "+publicCatalogueGatewayURL); + return publicCatalogueGatewayURL; + } + + /** + * Gets the prefixes used for ckan hostname. + * + * @return the prefixes used for ckan hostname + */ + public List getPrefixesUsedForCkanHostname() { + return prefixesUsedForCkanHostname; + } + + /** + * Gets the prefix to be used for catalogue URL. + * + * @return the prefix to be used for catalogue URL + */ + public String getPrefixToBeUsedForCatalogueURL() { + return prefixToBeUsedForCatalogueURL; + } +} \ No newline at end of file diff --git a/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/CkanCatalogueConfigurationsReader.java b/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/CkanCatalogueConfigurationsReader.java index f664242..3b1e59e 100644 --- a/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/CkanCatalogueConfigurationsReader.java +++ b/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/CkanCatalogueConfigurationsReader.java @@ -8,13 +8,10 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import static org.gcube.resources.discovery.icclient.ICFactory.client; -import java.io.IOException; -import java.io.InputStream; import java.io.StringReader; import java.net.URI; import java.util.List; import java.util.Map; -import java.util.Properties; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -38,6 +35,7 @@ import eu.trentorise.opendata.jackan.exceptions.CkanException; import eu.trentorise.opendata.jackan.model.CkanDataset; +// TODO: Auto-generated Javadoc /** * The Class CkanCatalogueConfigurationsReader. * @@ -46,13 +44,17 @@ import eu.trentorise.opendata.jackan.model.CkanDataset; */ public class CkanCatalogueConfigurationsReader { + //private static final String PREFIX_FOR_PORTAL_RELATIVE_URL_TO_CATALOGUE = "PREFIX_FOR_PORTAL_RELATIVE_URL_TO_CATALOGUE"; + /** The Constant logger. */ + //private static final String BALANCER_AND_CKAN_PREFIXES_USED_FOR_HOSTNAME = "BALANCER_AND_CKAN_PREFIXES_USED_FOR_HOSTNAME"; private static final Logger logger = LoggerFactory.getLogger(CkanCatalogueConfigurationsReader.class); + + /** The Constant APPLICATION_PROFILE_NAME. */ public final static String APPLICATION_PROFILE_NAME = "CkanPortlet"; - private static final String DATACATALOGUECONFIGURATION_PROPERTIES = "datacatalogueconfiguration.properties"; - + /** - * Load catalogue end points through the ckan-util-library + * Load catalogue end points through the ckan-util-library. * * @return the gateway ckan catalogue reference * @throws Exception the exception @@ -64,13 +66,13 @@ public class CkanCatalogueConfigurationsReader { DataCatalogueImpl catalogueImpl = CatalogueServiceEndpointReader.getDataCatalogueImpl(); Map accessLevelMap = catalogueImpl.getMapAccessURLToCatalogue(); - links.setMapAccessURLToCatalogue(accessLevelMap); + for (ACCESS_LEVEL_TO_CATALOGUE_PORTLET accessLevel : accessLevelMap.keySet()) { + links.setCatalogueURL(accessLevelMap.get(accessLevel), accessLevel); + } + + //String publicVREPortletURL = accessLevelMap.get(ACCESS_LEVEL_TO_CATALOGUE_PORTLET.PUBLIC_VRE); String privatePortletURL = accessLevelMap.get(ACCESS_LEVEL_TO_CATALOGUE_PORTLET.PRIVATE_VRE); - links.setPrivateVREPortletURL(privatePortletURL); - String publicVREPortletURL = accessLevelMap.get(ACCESS_LEVEL_TO_CATALOGUE_PORTLET.PUBLIC_VRE); - links.setPublicVREPortletURL(publicVREPortletURL); String publicGatewayPortletURL = accessLevelMap.get(ACCESS_LEVEL_TO_CATALOGUE_PORTLET.PUBLIC_GATEWAY); - links.setPublicGatewayPortletURL(publicGatewayPortletURL); try{ //If a catalogue gateway portlet URL is not provided/read from GR, building it @@ -79,13 +81,14 @@ public class CkanCatalogueConfigurationsReader { URI toURL = new URI(privatePortletURL); String publicURL = privatePortletURL.startsWith("https://")?"https://"+toURL.getHost():"http://"+toURL.getHost(); //It returns the string "catalogue" - String prefixToPublicCtlg = getRelativeURLToCatalogue(); - //Replacing for example "ckan-bb" with "catalogue-bb" - String publicCatalogueName = extractCatalogueName(catalogueImpl.getCatalogueUrl(), prefixToPublicCtlg); - links.setPublicGatewayPortletURL(publicURL+"/"+publicCatalogueName); + CatalogueStaticConfigurations staticConf = new CatalogueStaticConfigurations(); + //Replacing for example "ckan-bb" with "[PREFIXES-TO-CATALOGUE-URL]-bb" (e.g catalogue-bb) + String relativeURLWithCatalogueName = staticConf.buildRelativeURLToPublicCatalogueGateway(catalogueImpl.getCatalogueUrl()); + String toGatewayPortletURL = String.format("%s/%s", publicURL, relativeURLWithCatalogueName); + links.setCatalogueURL(toGatewayPortletURL, ACCESS_LEVEL_TO_CATALOGUE_PORTLET.PUBLIC_GATEWAY); } }catch(Exception e){ - logger.warn("Erron on generating public catalogue URL from private URL: "+privatePortletURL, e); + logger.warn("Erron on creating public catalogue URL from private URL: "+privatePortletURL, e); } //Getting the CKAN Portlet URL for current scope @@ -99,22 +102,7 @@ public class CkanCatalogueConfigurationsReader { return links; } - /** - * Extract catalogue name. - * - * @param privateCKANCatalogueURL the private ckan catalogue url - * @param replaceCKANWith the replace ckan with - * @return the string - */ - public static String extractCatalogueName(String privateCKANCatalogueURL, String replaceCKANWith){ - - privateCKANCatalogueURL = privateCKANCatalogueURL.replaceFirst("https://ckan", replaceCKANWith); - privateCKANCatalogueURL = privateCKANCatalogueURL.replaceFirst("http://ckan", replaceCKANWith); - return privateCKANCatalogueURL.substring(0,privateCKANCatalogueURL.indexOf(".")); - - } - - + /** * Retrieve a ckan dataset given its id. The CkanClient is used, without api key. The result is null also when the dataset is private. * @@ -187,44 +175,20 @@ public class CkanCatalogueConfigurationsReader { } /** - * Gets the relative url to catalogue. + * The main method. * - * @return the relative url to catalogue + * @param args the arguments */ - private static String getRelativeURLToCatalogue(){ - Properties prop = new Properties(); - String relativeURLToCatalogue = null; + public static void main(String[] args) { + + ScopeProvider.instance.set("/gcube/devsec/devVRE"); try { - InputStream in = CkanCatalogueConfigurationsReader.class.getResourceAsStream(DATACATALOGUECONFIGURATION_PROPERTIES); - // load a properties file - prop.load(in); - // get the property value - relativeURLToCatalogue = prop.getProperty("PORTAL_RELATIVE_URL_TO_CATALOGUE"); - - if(relativeURLToCatalogue==null || relativeURLToCatalogue.isEmpty()) - return "catalogue"; - - } catch (IOException e) { - logger.error("An error occurred on read property file: "+DATACATALOGUECONFIGURATION_PROPERTIES, e); + GatewayCKANCatalogueReference links = CkanCatalogueConfigurationsReader.loadCatalogueEndPoints(); + System.out.println(links); + } + catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); } - return relativeURLToCatalogue; } - -// /** -// * The main method. -// * -// * @param args the arguments -// */ -// public static void main(String[] args) { -// -// ScopeProvider.instance.set("/gcube/devsec/devVRE"); -// try { -// GatewayCKANCatalogueReference links = CkanCatalogueConfigurationsReader.loadCatalogueEndPoints(); -// System.out.println(links); -// } -// catch (Exception e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// } } diff --git a/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/GatewayCKANCatalogueReference.java b/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/GatewayCKANCatalogueReference.java index 6d64c53..8bc4e8d 100644 --- a/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/GatewayCKANCatalogueReference.java +++ b/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/GatewayCKANCatalogueReference.java @@ -4,17 +4,17 @@ package org.gcube.datatransfer.resolver.catalogue.resource; import java.io.Serializable; +import java.util.HashMap; import java.util.Map; import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogueRunningCluster.ACCESS_LEVEL_TO_CATALOGUE_PORTLET; import lombok.AllArgsConstructor; -import lombok.Getter; import lombok.NoArgsConstructor; -import lombok.Setter; import lombok.ToString; +// TODO: Auto-generated Javadoc /** * The Class GatewayCKANCatalogueReference. * @@ -23,27 +23,65 @@ import lombok.ToString; * Nov 12, 2019 */ - @AllArgsConstructor @NoArgsConstructor -@Getter -@Setter @ToString public class GatewayCKANCatalogueReference implements Serializable{ - /** - * - */ + /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1L; + /** The scope. */ private String scope; - - private String privateVREPortletURL; - private String publicVREPortletURL; - private String publicGatewayPortletURL; - + + /** The ckan URL. */ private String ckanURL; - public Map mapAccessURLToCatalogue; + /** The map access URL to catalogue. */ + private Map mapAccessURLToCatalogue; + + + /** + * Gets the catalogue URL. + * + * @param accessLevel the access level + * @return the catalogue URL + */ + public String getCatalogueURL(ACCESS_LEVEL_TO_CATALOGUE_PORTLET accessLevel) { + + return mapAccessURLToCatalogue.get(accessLevel); + } + + /** + * Sets the catalogue URL. + * + * @param catalogueURL the catalogue URL + * @param accessLevel the access level + */ + protected void setCatalogueURL(String catalogueURL, ACCESS_LEVEL_TO_CATALOGUE_PORTLET accessLevel) { + + if(mapAccessURLToCatalogue==null) + mapAccessURLToCatalogue = new HashMap(); + + mapAccessURLToCatalogue.put(accessLevel, catalogueURL); + } + + public String getScope() { + return scope; + } + + public void setScope(String scope) { + this.scope = scope; + } + + public String getCkanURL() { + return ckanURL; + } + + public void setCkanURL(String ckanURL) { + this.ckanURL = ckanURL; + } + + } diff --git a/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/datacatalogue_urls_configurations.properties b/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/datacatalogue_urls_configurations.properties new file mode 100644 index 0000000..be71723 --- /dev/null +++ b/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/datacatalogue_urls_configurations.properties @@ -0,0 +1,14 @@ +# Property file +# +# author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it +# created 11/2017 +# updated 03/2020 +# +# BALANCER_AND_CKAN_PREFIXES_USED_FOR_HOSTNAME +# eg. for https://ckan-territoriaperti.d4science.org is ckan +# eg. for https://ckan-imarine.d4science.org is ckan +# eg. for https://catalogue.d4science.org is catalogue +# + +PREFIX_FOR_PORTAL_RELATIVE_URL_TO_CATALOGUE = catalogue +BALANCER_AND_CKAN_PREFIXES_USED_FOR_HOSTNAME = ckan,catalogue \ No newline at end of file diff --git a/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/datacatalogueconfiguration.properties b/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/datacatalogueconfiguration.properties deleted file mode 100644 index c4729dc..0000000 --- a/src/main/java/org/gcube/datatransfer/resolver/catalogue/resource/datacatalogueconfiguration.properties +++ /dev/null @@ -1,7 +0,0 @@ -# Property files -# -# author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it -# created 11/2017 -# - -PORTAL_RELATIVE_URL_TO_CATALOGUE = catalogue \ No newline at end of file diff --git a/src/main/java/org/gcube/datatransfer/resolver/services/CatalogueResolver.java b/src/main/java/org/gcube/datatransfer/resolver/services/CatalogueResolver.java index 3937732..c8a652d 100644 --- a/src/main/java/org/gcube/datatransfer/resolver/services/CatalogueResolver.java +++ b/src/main/java/org/gcube/datatransfer/resolver/services/CatalogueResolver.java @@ -18,6 +18,7 @@ import javax.ws.rs.core.Response; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.common.scope.impl.ScopeBean; import org.gcube.common.scope.impl.ScopeBean.Type; +import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogueRunningCluster.ACCESS_LEVEL_TO_CATALOGUE_PORTLET; import org.gcube.datatransfer.resolver.ConstantsResolver; import org.gcube.datatransfer.resolver.caches.LoadingMapOfScopeCache; import org.gcube.datatransfer.resolver.catalogue.CatalogueRequest; @@ -223,13 +224,25 @@ public class CatalogueResolver { } } - String publicGatewayPorltetURL = String.format("%s?path=/%s/%s",ckanCatalogueReference.getPublicGatewayPortletURL(),entityContextValue, entityName); - String privateVREPortletURL = String.format("%s?path=/%s/%s",ckanCatalogueReference.getPrivateVREPortletURL(),entityContextValue, entityName); + String publicGatewayPorltetURL = String.format("%s?path=/%s/%s", + ckanCatalogueReference.getCatalogueURL(ACCESS_LEVEL_TO_CATALOGUE_PORTLET.PUBLIC_GATEWAY), + entityContextValue, + entityName); + + String privateVREPortletURL = String.format("%s?path=/%s/%s", + ckanCatalogueReference.getCatalogueURL(ACCESS_LEVEL_TO_CATALOGUE_PORTLET.PRIVATE_VRE), + entityContextValue, + entityName); + //Checking if the public VRE portlet URL is available (so it was read from GR) String publicVREPortletURL = null; - if(ckanCatalogueReference.getPublicVREPortletURL()!=null && !ckanCatalogueReference.getPublicVREPortletURL().isEmpty()) { + String toCheckPublicVREPortletURL = ckanCatalogueReference.getCatalogueURL(ACCESS_LEVEL_TO_CATALOGUE_PORTLET.PUBLIC_VRE); + if(toCheckPublicVREPortletURL!=null && !toCheckPublicVREPortletURL.isEmpty()) { //here the catalogue is available/deployed as public at VRE level - publicVREPortletURL = String.format("%s?path=/%s/%s",ckanCatalogueReference.getPublicVREPortletURL(),entityContextValue, entityName); + publicVREPortletURL = String.format("%s?path=/%s/%s", + toCheckPublicVREPortletURL, + entityContextValue, + entityName); } return new ItemCatalogueURLs(entityName, isPublicItem, privateVREPortletURL, publicVREPortletURL, publicGatewayPorltetURL); }catch (Exception e) { diff --git a/src/test/java/CatalogueNameExtractor.java b/src/test/java/CatalogueNameExtractor.java new file mode 100644 index 0000000..a38ab90 --- /dev/null +++ b/src/test/java/CatalogueNameExtractor.java @@ -0,0 +1,23 @@ +import org.gcube.datatransfer.resolver.catalogue.resource.CatalogueStaticConfigurations; +import org.junit.Test; + +public class CatalogueNameExtractor { + + String[] CKANs = new String[] { + "https://ckan-grsf-admin2.d4science.org", + "https://ckan.pre.d4science.org/", + "https://ckan-aginfra.d4science.org", + "https://catalogue-imarine.d4science.org/" }; + + @Test + public void extraCatalogueName() { + CatalogueStaticConfigurations staticConf = new CatalogueStaticConfigurations(); + + for (int i = 0; i < CKANs.length; i++) { + System.out.println(CKANs[i]); + staticConf.buildRelativeURLToPublicCatalogueGateway(CKANs[i]); + System.out.println("\n\n"); + } + } + +} diff --git a/src/test/resources/.gitignore b/src/test/resources/.gitignore index 5513774..c04ed84 100644 --- a/src/test/resources/.gitignore +++ b/src/test/resources/.gitignore @@ -10,3 +10,4 @@ /gCubeApps.gcubekey /gcube.gcubekey /preprod.gcubekey +/pred4s.gcubekey