From ef116da9566ba30e69c5894ccfa63ab81edbcbe1 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Fri, 5 Apr 2024 10:14:47 +0200 Subject: [PATCH] Supported share links to Geoportal Data-Entry app #27160 --- .../UriResolverManager.java | 1 + .../uriresolvermanager/entity/Resolver.java | 15 ++++ .../readers/UriResolverMapReader.java | 15 ++-- ...allBuilder.java => CatalogueResolver.java} | 36 +++------ ...allBuilder.java => GeoportalResolver.java} | 41 ++++++---- ...lverCallBuilder.java => SHUBResolver.java} | 18 ++--- .../query/GeoportalResolverQueryString.java | 13 ++++ .../GeoportalResolverQueryStringBuilder.java | 76 +++++++++++++++++++ src/test/java/UriResolverManagerTest.java | 63 ++++++++++++--- 9 files changed, 213 insertions(+), 65 deletions(-) rename src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/{CatalogueResolverCallBuilder.java => CatalogueResolver.java} (79%) rename src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/{GeoportalResolverCallBuilder.java => GeoportalResolver.java} (80%) rename src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/{SHUBResolverCallBuilder.java => SHUBResolver.java} (77%) diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/UriResolverManager.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/UriResolverManager.java index fde1b90..b9399b8 100644 --- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/UriResolverManager.java +++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/UriResolverManager.java @@ -167,6 +167,7 @@ public class UriResolverManager { throw new IllegalArgumentException("Application type is null"); Resolver resolver = this.applicationTypes.get(applicationType); + LOG.debug("The resolver found is of kind: "+ resolver.getClass().getSimpleName()); String link = null; if (parameters == null) diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/entity/Resolver.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/entity/Resolver.java index a14a426..ba9f750 100644 --- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/entity/Resolver.java +++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/entity/Resolver.java @@ -11,6 +11,21 @@ import java.util.Map; */ public interface Resolver { + //Code used to implement specific (so override) the method 'getLink' of the Resolver + public static enum RESOLVER_ENTRYNAME { + CTLG("ctlg"), SMP("smp"), SHUB("shub"), GEO("geo"), GIS("gis"); + + String entryName; + + RESOLVER_ENTRYNAME(String entryName) { + this.entryName = entryName; + } + + public String getEntryName() { + return entryName; + } + } + /** * Gets the resource name. * diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/readers/UriResolverMapReader.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/readers/UriResolverMapReader.java index 0a02321..68f1036 100644 --- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/readers/UriResolverMapReader.java +++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/readers/UriResolverMapReader.java @@ -14,8 +14,9 @@ import org.gcube.common.resources.gcore.utils.XPathHelper; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.portlets.user.uriresolvermanager.entity.GenericResolver; import org.gcube.portlets.user.uriresolvermanager.entity.Resolver; -import org.gcube.portlets.user.uriresolvermanager.resolvers.CatalogueResolverCallBuilder; -import org.gcube.portlets.user.uriresolvermanager.resolvers.SHUBResolverCallBuilder; +import org.gcube.portlets.user.uriresolvermanager.resolvers.CatalogueResolver; +import org.gcube.portlets.user.uriresolvermanager.resolvers.GeoportalResolver; +import org.gcube.portlets.user.uriresolvermanager.resolvers.SHUBResolver; import org.gcube.resources.discovery.client.api.DiscoveryClient; import org.gcube.resources.discovery.client.queries.api.Query; import org.gcube.resources.discovery.client.queries.impl.QueryBox; @@ -117,10 +118,12 @@ public class UriResolverMapReader { String resoureName = resources.get(0); String entryName = entryNames.get(0); Resolver resolver; - if (entryName.equalsIgnoreCase("ctlg")) { - resolver = new CatalogueResolverCallBuilder(resoureName, entryName); - } else if (entryName.equalsIgnoreCase("shub")) { - resolver = new SHUBResolverCallBuilder(resoureName, entryName); + if (entryName.equalsIgnoreCase(Resolver.RESOLVER_ENTRYNAME.CTLG.getEntryName())) { + resolver = new CatalogueResolver(resoureName, entryName); + } else if (entryName.equalsIgnoreCase(Resolver.RESOLVER_ENTRYNAME.SHUB.getEntryName())) { + resolver = new SHUBResolver(resoureName, entryName); + } else if (entryName.equalsIgnoreCase(Resolver.RESOLVER_ENTRYNAME.GEO.getEntryName())) { + resolver = new GeoportalResolver(resoureName, entryName); } else { resolver = new GenericResolver(resoureName, entryName); } diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/CatalogueResolverCallBuilder.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/CatalogueResolver.java similarity index 79% rename from src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/CatalogueResolverCallBuilder.java rename to src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/CatalogueResolver.java index aef6eb8..880df32 100644 --- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/CatalogueResolverCallBuilder.java +++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/CatalogueResolver.java @@ -18,16 +18,16 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * The Class CatalogueResolverCallBuilder. + * The Class CatalogueResolver. * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * - * Nov 5, 2021 + * Apr 4, 2024 */ -public class CatalogueResolverCallBuilder extends GenericResolver { +public class CatalogueResolver extends GenericResolver { private static final int _60SEC = 60000; - public static final Logger LOG = LoggerFactory.getLogger(CatalogueResolverCallBuilder.class); + public static final Logger LOG = LoggerFactory.getLogger(CatalogueResolver.class); /** * Instantiates a new catalogue resolver wrapper. @@ -35,7 +35,7 @@ public class CatalogueResolverCallBuilder extends GenericResolver { * @param resourceName the resource name * @param entryName the entry name */ - public CatalogueResolverCallBuilder(String resourceName, String entryName) { + public CatalogueResolver(String resourceName, String entryName) { super(resourceName, entryName); } @@ -88,16 +88,16 @@ public class CatalogueResolverCallBuilder extends GenericResolver { theResponse = readResponse(con.getInputStream()); if (!((200 <= code) && (code <= 208))) { - throw new Exception("CatalogueResolver returned code: " + code + ". Response is: " + theResponse); + throw new Exception(CatalogueResolver.class.getSimpleName()+" returned code: " + code + ". Response is: " + theResponse); } } catch (IOException e) { theResponse = readResponse(con.getInputStream()); - LOG.error("CatalogueResolver returned code: " + code + ". Response is: " + theResponse); + LOG.error(CatalogueResolver.class.getSimpleName()+" returned code: " + code + ". Response is: " + theResponse); throw e; } } catch (Exception e) { - LOG.error(CatalogueResolverCallBuilder.class.getSimpleName() + " error: ", e); + LOG.error(CatalogueResolver.class.getSimpleName() + " error: ", e); throw e; } finally { try { @@ -115,7 +115,7 @@ public class CatalogueResolverCallBuilder extends GenericResolver { /** * Short link. * - * @param theLink the the link + * @param theLink the the link * @param parameters the parameters * @return the string * @throws Exception the exception @@ -125,29 +125,15 @@ public class CatalogueResolverCallBuilder extends GenericResolver { LOG.info("specific shortLink called"); String linkDecoded = theLink; - + String[] queryStringArray = theLink.split("\\?"); - if(queryStringArray.length>1) { + if (queryStringArray.length > 1) { String queryString = queryStringArray[1]; String queryStringEncoded = UrlEncoderUtil.encodeQuery(queryString); theLink = String.format("%s?%s", queryStringArray[0], queryStringEncoded); } - -// if (parameters != null) { -// LOG.debug("Trying to read the parameter: " + CatalogueResolverQueryStringBuilder.QUERY_STRING_PARAMETER); -// String queryStringParmeters = parameters.get(CatalogueResolverQueryStringBuilder.QUERY_STRING_PARAMETER); -// if (queryStringParmeters != null) { -// LOG.debug(CatalogueResolverQueryStringBuilder.QUERY_STRING_PARAMETER + " found"); -// queryString = UrlEncoderUtil.encodeQuery(queryStringParmeters); -// } -// } try { -// LOG.debug(CatalogueResolverQueryStringBuilder.QUERY_STRING_PARAMETER + " encoded is: " + queryString); -// if (queryString != null) { -// String queryStringEncoded = UrlEncoderUtil.encodeString(queryString); -// theLink = String.format("%s?%s", theLink, queryStringEncoded); -// } LOG.info("Encoded link is: " + theLink); LOG.info("Shortner starts.."); String shortLink = shortTheLink(theLink); diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/GeoportalResolverCallBuilder.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/GeoportalResolver.java similarity index 80% rename from src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/GeoportalResolverCallBuilder.java rename to src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/GeoportalResolver.java index c919c43..abc5ba9 100644 --- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/GeoportalResolverCallBuilder.java +++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/GeoportalResolver.java @@ -11,6 +11,8 @@ import java.net.URL; import java.util.Map; import org.gcube.portlets.user.uriresolvermanager.entity.GenericResolver; +import org.gcube.portlets.user.uriresolvermanager.resolvers.query.GeoportalResolverQueryStringBuilder; +import org.gcube.portlets.user.uriresolvermanager.resolvers.query.GeoportalResolverQueryStringBuilder.TARGET_GEOPORTAL_APP; import org.gcube.portlets.user.uriresolvermanager.util.UrlEncoderUtil; import org.gcube.portlets.user.urlshortener.UrlShortener; import org.json.JSONObject; @@ -18,16 +20,16 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * The Class GeoportalResolverCallBuilder. + * The Class GeoportalResolver. * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * - * Mar 27, 2023 + * Apr 4, 2024 */ -public class GeoportalResolverCallBuilder extends GenericResolver { +public class GeoportalResolver extends GenericResolver { private static final int _60SEC = 60000; - public static final Logger LOG = LoggerFactory.getLogger(GeoportalResolverCallBuilder.class); + public static final Logger LOG = LoggerFactory.getLogger(GeoportalResolver.class); /** * Instantiates a new geoportal resolver call builder. @@ -35,7 +37,7 @@ public class GeoportalResolverCallBuilder extends GenericResolver { * @param resourceName the resource name * @param entryName the entry name */ - public GeoportalResolverCallBuilder(String resourceName, String entryName) { + public GeoportalResolver(String resourceName, String entryName) { super(resourceName, entryName); } @@ -55,6 +57,22 @@ public class GeoportalResolverCallBuilder extends GenericResolver { String theResponse = null; try { + String targetApp = parameters.get(GeoportalResolverQueryStringBuilder.TARGET_APP_AS_PARAMETER); + + if (targetApp != null) { + LOG.debug("targetApp is not null: " + targetApp); + baseURI = String.format("%s/%s", baseURI, targetApp); + parameters.remove(GeoportalResolverQueryStringBuilder.TARGET_APP_AS_PARAMETER); + LOG.debug("removed target app from parameters and added to URI as /" + targetApp); + }else { + //Applying default + targetApp = TARGET_GEOPORTAL_APP.GEO_DV.getTargetPath(); + LOG.info(GeoportalResolverQueryStringBuilder.TARGET_APP_AS_PARAMETER +" is null using default: " + targetApp); + baseURI = String.format("%s/%s", baseURI, targetApp); + } + + LOG.info("Request to URL: " + baseURI); + URL urlObj = new URL(baseURI); con = (HttpURLConnection) urlObj.openConnection(); con.setRequestMethod("POST"); @@ -69,12 +87,7 @@ public class GeoportalResolverCallBuilder extends GenericResolver { for (String key : parameters.keySet()) { jObj.put(key, parameters.get(key)); } - -// if (queryStringParameters != null) { -// String queryString = UrlEncoderUtil.toQueryString(queryStringParameters); -// jObj.put(CatalogueResolverQueryStringBuilder.QUERY_STRING_PARAMETER, queryString); -// } - + String toJSON = jObj.toString(); LOG.info("Submitting JSON: " + toJSON); Integer code = null; @@ -88,16 +101,16 @@ public class GeoportalResolverCallBuilder extends GenericResolver { theResponse = readResponse(con.getInputStream()); if (!((200 <= code) && (code <= 208))) { - throw new Exception("CatalogueResolver returned code: " + code + ". Response is: " + theResponse); + throw new Exception(GeoportalResolver.class.getSimpleName()+ " returned code: " + code + ". Response is: " + theResponse); } } catch (IOException e) { theResponse = readResponse(con.getInputStream()); - LOG.error("CatalogueResolver returned code: " + code + ". Response is: " + theResponse); + LOG.error(GeoportalResolver.class.getSimpleName()+ " returned code: " + code + ". Response is: " + theResponse); throw e; } } catch (Exception e) { - LOG.error(GeoportalResolverCallBuilder.class.getSimpleName() + " error: ", e); + LOG.error(GeoportalResolver.class.getSimpleName() + " error: ", e); throw e; } finally { try { diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/SHUBResolverCallBuilder.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/SHUBResolver.java similarity index 77% rename from src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/SHUBResolverCallBuilder.java rename to src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/SHUBResolver.java index c204bc4..acb187a 100644 --- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/SHUBResolverCallBuilder.java +++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/SHUBResolver.java @@ -8,15 +8,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * The Class SHUBResolverCallBuilder. + * The Class SHUBResolver. * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * - * Nov 8, 2021 + * Apr 4, 2024 */ -public class SHUBResolverCallBuilder extends GenericResolver { +public class SHUBResolver extends GenericResolver { - public static final Logger LOG = LoggerFactory.getLogger(SHUBResolverCallBuilder.class); + public static final Logger LOG = LoggerFactory.getLogger(SHUBResolver.class); /** * Instantiates a new catalogue resolver wrapper. @@ -24,7 +24,7 @@ public class SHUBResolverCallBuilder extends GenericResolver { * @param resourceName the resource name * @param entryName the entry name */ - public SHUBResolverCallBuilder(String resourceName, String entryName) { + public SHUBResolver(String resourceName, String entryName) { super(resourceName, entryName); } @@ -38,7 +38,7 @@ public class SHUBResolverCallBuilder extends GenericResolver { */ @Override public String getLink(String baseURI, Map parameters) throws Exception { - LOG.debug("called getLink: " + baseURI + " parameters: "+parameters); + LOG.debug("called getLink: " + baseURI + " parameters: " + parameters); String toReturn = null; try { @@ -48,14 +48,14 @@ public class SHUBResolverCallBuilder extends GenericResolver { pathURI = String.format("%s/%s", pathURI, idValue); parameters.remove("id"); } - + toReturn = pathURI; String queryString = UrlEncoderUtil.encodeQuery(parameters); - if(!queryString.isEmpty()) + if (!queryString.isEmpty()) toReturn = String.format("%s?%s", pathURI, queryString); } catch (Exception e) { - LOG.error(SHUBResolverCallBuilder.class.getSimpleName() + " error: ", e); + LOG.error(SHUBResolver.class.getSimpleName() + " error: ", e); throw e; } LOG.info("Got Link: " + toReturn); diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryString.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryString.java index 45d1040..8260941 100644 --- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryString.java +++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryString.java @@ -13,6 +13,7 @@ public class GeoportalResolverQueryString { private String itemId; private String gcubeScope; private String resolveAs; + private String targetApp; /** * Instantiates a new geoportal resolver query string. @@ -24,6 +25,7 @@ public class GeoportalResolverQueryString { this.itemId = builder.getItemId(); this.gcubeScope = builder.getGcubeScope(); this.resolveAs = builder.getResolveAs() != null ? builder.getResolveAs().getParamValue() : null; + this.targetApp = builder.getTargetApp() != null ? builder.getTargetApp().getTargetPath() : null; } @@ -63,6 +65,15 @@ public class GeoportalResolverQueryString { return resolveAs; } + /** + * Gets the target app. + * + * @return the target app + */ + public String getTargetApp() { + return targetApp; + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); @@ -74,6 +85,8 @@ public class GeoportalResolverQueryString { builder.append(gcubeScope); builder.append(", resolveAs="); builder.append(resolveAs); + builder.append(", targetApp="); + builder.append(targetApp); builder.append("]"); return builder.toString(); } diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryStringBuilder.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryStringBuilder.java index 4177c30..b8f2433 100644 --- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryStringBuilder.java +++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryStringBuilder.java @@ -23,11 +23,13 @@ public final class GeoportalResolverQueryStringBuilder { public static final String ITEM_ID_PARAMETER = "item_id"; public static final String GCUBE_SCOPE_PARAMETER = "gcube_scope"; public static final String RESOLVE_AS_PARAMETER = "res"; + public static final String TARGET_APP_AS_PARAMETER = "target_app"; private String itemType; private String itemId; private String gcubeScope; private RESOLVE_AS resolveAs; + private TARGET_GEOPORTAL_APP targetApp; /** * The Enum RESOLVE_AS_PARAMETER. @@ -60,6 +62,51 @@ public final class GeoportalResolverQueryStringBuilder { } } + /** + * The Enum TARGET_GEOPORTAL_APP. + * + * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it + * + * Apr 3, 2024 + */ + public static enum TARGET_GEOPORTAL_APP { + + GEO_DV("dv", "Geoportal Data-Viewer"), GEO_DE("de", "Geoportal Data-Entry"); + + private String targetPath; + private String applicationName; + + /** + * Instantiates a new target geoportal app. + * + * @param targetPath the target path + * @param applicationName the application name + */ + private TARGET_GEOPORTAL_APP(String targetPath, String applicationName) { + this.targetPath = targetPath; + this.applicationName = applicationName; + } + + /** + * Gets the target path. + * + * @return the target path + */ + public String getTargetPath() { + return targetPath; + } + + /** + * Gets the application name. + * + * @return the application name + */ + public String getApplicationName() { + return applicationName; + } + + } + /** * Instantiates a new geoportal resolver query string builder. * @@ -93,6 +140,17 @@ public final class GeoportalResolverQueryStringBuilder { return this; } + /** + * Target app. + * + * @param targetApp the target app + * @return the geoportal resolver query string builder + */ + public GeoportalResolverQueryStringBuilder targetApp(TARGET_GEOPORTAL_APP targetApp) { + this.targetApp = targetApp; + return this; + } + /** * Gets the item type. * @@ -120,10 +178,24 @@ public final class GeoportalResolverQueryStringBuilder { return gcubeScope; } + /** + * Gets the resolve as. + * + * @return the resolve as + */ public RESOLVE_AS getResolveAs() { return resolveAs; } + /** + * Gets the target app. + * + * @return the target app + */ + public TARGET_GEOPORTAL_APP getTargetApp() { + return targetApp; + } + /** * Builds the query parameters. * @@ -152,6 +224,10 @@ public final class GeoportalResolverQueryStringBuilder { if (crQS.getResolveAs() != null) { query.put(RESOLVE_AS_PARAMETER, crQS.getResolveAs()); } + + if(crQS.getTargetApp() != null) { + query.put(TARGET_APP_AS_PARAMETER, crQS.getTargetApp()); + } return query; diff --git a/src/test/java/UriResolverManagerTest.java b/src/test/java/UriResolverManagerTest.java index 51c2135..1d2b0a2 100644 --- a/src/test/java/UriResolverManagerTest.java +++ b/src/test/java/UriResolverManagerTest.java @@ -11,6 +11,7 @@ import org.gcube.portlets.user.uriresolvermanager.exception.UriResolverMapExcept import org.gcube.portlets.user.uriresolvermanager.resolvers.query.CatalogueResolverQueryStringBuilder; import org.gcube.portlets.user.uriresolvermanager.resolvers.query.GeoportalResolverQueryStringBuilder; import org.gcube.portlets.user.uriresolvermanager.resolvers.query.GeoportalResolverQueryStringBuilder.RESOLVE_AS; +import org.gcube.portlets.user.uriresolvermanager.resolvers.query.GeoportalResolverQueryStringBuilder.TARGET_GEOPORTAL_APP; import org.junit.Test; /** @@ -47,7 +48,7 @@ public class UriResolverManagerTest { } - // @Test + //@Test public void testCTLG() { try { @@ -129,33 +130,73 @@ public class UriResolverManagerTest { //@Test - public void testGeoportalCreateLink() { + public void testGeoportalCreateDataEntryLink() { try { String scope = "/gcube/devsec/devVRE"; // String scope = "/pred4s/preprod/preVRE"; ScopeProvider.instance.set(scope); - UriResolverManager resolver; - String gcubeScope = scope; String itemId = "6384aaac308f5c28c5ee0888"; String itemType = "profiledConcessioni"; - resolver = new UriResolverManager("GEO"); + UriResolverManager resolver = new UriResolverManager("GEO"); Map params = null; //Method 1 - params = new HashMap(); - params.put(GeoportalResolverQueryStringBuilder.GCUBE_SCOPE_PARAMETER, gcubeScope); - params.put(GeoportalResolverQueryStringBuilder.ITEM_ID_PARAMETER, itemId); - params.put(GeoportalResolverQueryStringBuilder.ITEM_TYPE_PARAMETER, itemType); - params.put(GeoportalResolverQueryStringBuilder.RESOLVE_AS_PARAMETER, GeoportalResolverQueryStringBuilder.RESOLVE_AS.PUBLIC.getParamValue()); +// params = new HashMap(); +// params.put(GeoportalResolverQueryStringBuilder.GCUBE_SCOPE_PARAMETER, gcubeScope); +// params.put(GeoportalResolverQueryStringBuilder.ITEM_ID_PARAMETER, itemId); +// params.put(GeoportalResolverQueryStringBuilder.ITEM_TYPE_PARAMETER, itemType); +// params.put(GeoportalResolverQueryStringBuilder.RESOLVE_AS_PARAMETER, GeoportalResolverQueryStringBuilder.RESOLVE_AS.PUBLIC.getParamValue()); //Method 2 GeoportalResolverQueryStringBuilder builder = new GeoportalResolverQueryStringBuilder(itemType,itemId); builder.scope(gcubeScope); builder.resolverAs(RESOLVE_AS.PUBLIC); - //builder.resolverAs(RESOLVE_AS.PRIVATE); + builder.targetApp(TARGET_GEOPORTAL_APP.GEO_DE); +// builder.resolverAs(RESOLVE_AS.PRIVATE); + params = builder.buildQueryParameters(); + + String shortLink = resolver.getLink(params, true); + System.out.println(shortLink); + } catch (UriResolverMapException e) { + e.printStackTrace(); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + //@Test + public void testGeoportalCreateDataViewerLink() { + + try { + String scope = "/gcube/devsec/devVRE"; +// String scope = "/pred4s/preprod/preVRE"; + ScopeProvider.instance.set(scope); + String gcubeScope = scope; + String itemId = "6384aaac308f5c28c5ee0888"; + String itemType = "profiledConcessioni"; + + UriResolverManager resolver = new UriResolverManager("GEO"); + Map params = null; + + //Method 1 +// params = new HashMap(); +// params.put(GeoportalResolverQueryStringBuilder.GCUBE_SCOPE_PARAMETER, gcubeScope); +// params.put(GeoportalResolverQueryStringBuilder.ITEM_ID_PARAMETER, itemId); +// params.put(GeoportalResolverQueryStringBuilder.ITEM_TYPE_PARAMETER, itemType); +// params.put(GeoportalResolverQueryStringBuilder.RESOLVE_AS_PARAMETER, GeoportalResolverQueryStringBuilder.RESOLVE_AS.PUBLIC.getParamValue()); + + //Method 2 + GeoportalResolverQueryStringBuilder builder = new GeoportalResolverQueryStringBuilder(itemType,itemId); + builder.scope(gcubeScope); + builder.resolverAs(RESOLVE_AS.PUBLIC); + //builder.targetApp(TARGET_GEOPORTAL_APP.GEO_DV); + builder.resolverAs(RESOLVE_AS.PRIVATE); params = builder.buildQueryParameters(); String shortLink = resolver.getLink(params, true);