From 7ab9bfe15580ebe03a2bb3146190e56c9584717c Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Thu, 16 May 2019 12:56:48 +0000 Subject: [PATCH] Added ConstantsResolver.SCOPE_SEPARATOR as '/' and bug fixing git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-transfer/uri-resolver@179454 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../datatransfer/resolver/ConstantsResolver.java | 2 ++ .../resolver/services/CatalogueResolver.java | 14 ++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/gcube/datatransfer/resolver/ConstantsResolver.java b/src/main/java/org/gcube/datatransfer/resolver/ConstantsResolver.java index 3a25806..026ae85 100644 --- a/src/main/java/org/gcube/datatransfer/resolver/ConstantsResolver.java +++ b/src/main/java/org/gcube/datatransfer/resolver/ConstantsResolver.java @@ -27,5 +27,7 @@ public class ConstantsResolver { //The default resource candidate to manage the input requests not matching any resolver services public static final String defaultServiceToRedirect= "storage"; + + public static final String SCOPE_SEPARATOR = "/"; } 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 7bb4435..c8b6640 100644 --- a/src/main/java/org/gcube/datatransfer/resolver/services/CatalogueResolver.java +++ b/src/main/java/org/gcube/datatransfer/resolver/services/CatalogueResolver.java @@ -19,6 +19,7 @@ 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.datatransfer.resolver.caches.LoadingMapOfScopeCache; +import org.gcube.datatransfer.resolver.ConstantsResolver; import org.gcube.datatransfer.resolver.catalogue.CatalogueRequest; import org.gcube.datatransfer.resolver.catalogue.ItemCatalogueURLs; import org.gcube.datatransfer.resolver.catalogue.ResourceCatalogueCodes; @@ -44,6 +45,7 @@ import eu.trentorise.opendata.jackan.model.CkanDataset; @Path("{entityContext:ctlg(-(o|g|p|d))?}") public class CatalogueResolver { + private static Logger logger = LoggerFactory.getLogger(CatalogueResolver.class); private static String helpURI = "https://wiki.gcube-system.org/gcube/URI_Resolver#CATALOGUE_Resolver"; @@ -116,14 +118,14 @@ public class CatalogueResolver { //CHECK IF INPUT SCOPE IS VALID String scope = jsonRequest.getGcube_scope(); - if(!scope.startsWith("/")){ - logger.info("Scope not start with char '/' adding it"); - scope+="/"+scope; + if(!scope.startsWith(ConstantsResolver.SCOPE_SEPARATOR)){ + logger.info("Scope not start with char '{}' adding it",ConstantsResolver.SCOPE_SEPARATOR); + scope+=ConstantsResolver.SCOPE_SEPARATOR+scope; } String serverUrl = Util.getServerURL(req); - final String vreName = scope.substring(scope.lastIndexOf("/")+1, scope.length()); + final String vreName = scope.substring(scope.lastIndexOf(ConstantsResolver.SCOPE_SEPARATOR)+1, scope.length()); ScopeBean fullScope = null; //CHECK IF THE vreName has a valid scope, so it is a valid VRE @@ -188,8 +190,8 @@ public class CatalogueResolver { if(scopeBean.is(Type.VO)) { logger.info("It is a {} scope", Type.VO); logger.warn("The Catalogue can't work at {} level, I'm overriding the scope to {} level", Type.VO, Type.INFRASTRUCTURE); - String[] splitScope = fullScope.split("/"); - fullScope = splitScope[1]; //THIS IS THE INFRASTRUCTURE SCOPE + String[] splitScope = fullScope.split(ConstantsResolver.SCOPE_SEPARATOR); + fullScope = ConstantsResolver.SCOPE_SEPARATOR+splitScope[1]; //THIS IS THE INFRASTRUCTURE SCOPE logger.info("Overriden the input scope {} with {} as type: {}", fullScope, Type.INFRASTRUCTURE, fullScope); }