diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3a62e5d..001d2d8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,7 +7,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
### Enhancement
-* [22385] Integrated with Catalogue Resolver
+* [22385] Integrated with Catalogue Resolver and SHUB Resolver
## [v1.4.2] - 2021-04-21
diff --git a/pom.xml b/pom.xml
index 486e84d..d4a5b42 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,9 +37,6 @@
${project.basedir}/distro
${project.build.directory}/${project.build.finalName}
-
- 2.5.1
-
UTF-8
UTF-8
@@ -103,14 +100,14 @@
org.slf4j
- slf4j-log4j12
- 1.6.4
+ slf4j-api
provided
+
org.slf4j
- slf4j-api
- 1.6.4
+ slf4j-log4j12
+ 1.7.25
provided
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 bb45475..f5f59c5 100644
--- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/UriResolverManager.java
+++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/UriResolverManager.java
@@ -30,16 +30,6 @@ import org.slf4j.LoggerFactory;
*/
public class UriResolverManager {
- /**
- * Time to reload Runtime Resource Configuration
- */
- // public static int RESET_DELAY = 15*60*1000; //15 MINUTES
-
- /**
- * Time to reload Runtime Resource Configuration
- */
- // public static int RESET_TIME = RESET_DELAY; //15 MINUTES
-
private UriResolverMapReader uriResolverMapReader;
private Map applicationTypes;
private String applicationType;
@@ -174,7 +164,7 @@ public class UriResolverManager {
throw new IllegalArgumentException("Application type is null");
Resolver resolver = this.applicationTypes.get(applicationType);
- String link;
+ String link = null;
if (parameters == null)
throw new IllegalArgumentException("Input Map parameters is null");
@@ -201,7 +191,7 @@ public class UriResolverManager {
}
List resourceParameters = serviceAccessPoint.getServiceParameters();
-
+ LOG.debug("Service parameters are: " + resourceParameters);
// CHECK PARAMETERS
for (ServiceParameter serviceParameter : resourceParameters) {
if (serviceParameter.isMandatory()) {
@@ -215,36 +205,44 @@ public class UriResolverManager {
String baseURI = serviceAccessPoint.getServiceUrl();
try {
- return resolver.getLink(baseURI, parameters);
- } catch (NotImplementedException e) {
- LOG.info("Get Link not implemented, going to default implementation by GET Request");
- }
+ link = resolver.getLink(baseURI, parameters);
+ if (shortLink)
+ return shortTheLink(link);
- // Encoding only the query string
+ return link;
+ } catch (NotImplementedException e) {
+ LOG.info("Specialized getLink not implemented, going to default implementation");
+ }
String linkDecoded = null;
String queryString = null;
+
if (!shortLink) {
// not shortening so returning the link with the query string with only the
// parameters encoded
+ LOG.info("getLink implemented via GET request and encoded query-string");
queryString = UrlEncoderUtil.encodeQuery(parameters);
String toReturn = String.format("%s?%s", baseURI, queryString);
LOG.info("returning link with encoded parameters in the query string: " + toReturn);
return toReturn;
}
-
+ // Not specialized getLink has been implemented
+ // Short link required
+ // Going to build the GET request with query string decoded
+ LOG.info("getLink implemented via GET request and (decoded) query-string");
queryString = UrlEncoderUtil.toQueryString(parameters);
linkDecoded = String.format("%s?%s", baseURI, queryString);
link = linkDecoded;
- LOG.info("Created HTTP URI request (link): " + link);
+
+ LOG.info("Created HTTP link: " + link);
if (shortLink) {
try {
+ LOG.info("Short link requested, so encoding query string is required...");
String queryStringEncoded = UrlEncoderUtil.encodeString(queryString);
link = String.format("%s?%s", baseURI, queryStringEncoded);
LOG.info("Encoded link is: " + link);
- LOG.info("Shortner start..");
- UrlShortener shortener = new UrlShortener();
- String shortedLink = shortener.shorten(link);
+ LOG.info("Shortner starts..");
+ String shortedLink = shortTheLink(link);
LOG.info("Shorted link is: " + shortedLink);
if (shortedLink != null && shortedLink.equals(link)) {
// here the short link and the input link are identical
@@ -275,6 +273,20 @@ public class UriResolverManager {
return link;
}
+ private String shortTheLink(String link) {
+
+ String toReturnLink = link;
+ try {
+ UrlShortener shortener = new UrlShortener();
+ String shortedLink = shortener.shorten(link);
+ LOG.info("Shorted link is: " + shortedLink);
+ toReturnLink = shortedLink;
+ } catch (Exception e) {
+ LOG.warn("Returning source link, an error occurred during link shortening: ", e);
+ }
+ return toReturnLink;
+ }
+
/**
* Gets the application types.
*
@@ -388,10 +400,4 @@ public class UriResolverManager {
reader = null;
}
- /*
- * public static void main(String[] args) { try { UriResolverManager manager =
- * new UriResolverManager(); System.out.println(manager.getCapabilities());
- * System.out.println(manager.getApplicationTypes()); } catch (Exception e) { //
- * TODO Auto-generated catch block e.printStackTrace(); } }
- */
}
diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/readers/RuntimeResourceReader.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/readers/RuntimeResourceReader.java
index 3a22695..f8ff10e 100644
--- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/readers/RuntimeResourceReader.java
+++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/readers/RuntimeResourceReader.java
@@ -22,12 +22,10 @@ import org.gcube.resources.discovery.client.queries.api.SimpleQuery;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
/**
* The Class RuntimeResourceReader.
*
- * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
- * Apr 30, 2015
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it Apr 30, 2015
*/
public class RuntimeResourceReader {
@@ -39,7 +37,6 @@ public class RuntimeResourceReader {
private String entryName;
-
/**
* Instantiates a new runtime resource reader.
*
@@ -54,49 +51,53 @@ public class RuntimeResourceReader {
/**
* Read resource.
*
- * @param scope the scope
+ * @param scope the scope
* @param resourceName the resource name
* @return the application URI
* @throws Exception the exception
*/
private void readResource(String resourceName) throws Exception {
- try{
+ try {
String scope = ScopeProvider.instance.get();
- logger.info("Trying to read resource: "+resourceName+", in the scope: "+scope);
+ logger.info("Trying to read resource: " + resourceName + ", in the scope: " + scope);
this.resourceName = resourceName;
SimpleQuery query = queryFor(ServiceEndpoint.class);
- query.addCondition("$resource/Profile/Name/string() eq '"+resourceName+"'");
+ query.addCondition("$resource/Profile/Name/string() eq '" + resourceName + "'");
DiscoveryClient client = clientFor(ServiceEndpoint.class);
List r = client.submit(query);
- if (r == null || r.isEmpty()) throw new Exception("Cannot retrieve the runtime resource with name: "+resourceName +" in the scope: "+scope);
+ if (r == null || r.isEmpty())
+ throw new Exception(
+ "Cannot retrieve the runtime resource with name: " + resourceName + " in the scope: " + scope);
ServiceEndpoint se = r.get(0);
- if(se.profile()==null){
- String msg = "Runtime reosource with resource name: "+resourceName +" is null in the scope: "+scope;
+ if (se.profile() == null) {
+ String msg = "Runtime reosource with resource name: " + resourceName + " is null in the scope: "
+ + scope;
logger.error(msg);
throw new Exception(msg);
}
Group accessPoints = se.profile().accessPoints();
- if(accessPoints.size()==0) throw new Exception("Accesspoint in resource "+resourceName+" not found");
+ if (accessPoints.size() == 0)
+ throw new Exception("Accesspoint in resource " + resourceName + " not found");
Iterator acIt = accessPoints.iterator();
serviceAccessPoints = new ArrayList(accessPoints.size());
- while(acIt.hasNext()){
+ while (acIt.hasNext()) {
AccessPoint ap = acIt.next();
Group properties = ap.properties();
- if(properties.size()==0){
- logger.warn("Properties in resource "+resourceName+" not found");
- }else{
+ if (properties.size() == 0) {
+ logger.warn("Properties in resource " + resourceName + " not found");
+ } else {
List serviceParameters = new ArrayList(properties.size());
@@ -111,17 +112,19 @@ public class RuntimeResourceReader {
serviceAccessPoints.add(new ServiceAccessPoint(ap.name(), ap.address(), serviceParameters));
}
- }
- // parameters.setUser(ap.username()); //username
- //
- // String decryptedPassword = StringEncrypter.getEncrypter().decrypt(ap.password());
- //
- // parameters.setPassword(decryptedPassword); //password
- // Group properties = ap.properties();
- }catch (Exception e) {
- logger.error("Sorry, an error occurred on reading the resource "+resourceName+ " Runtime Resource",e);
- throw new Exception("Sorry, an error occurred on reading the resource "+resourceName+ " Runtime Reosurce");
+ }
+ logger.debug("Found properties: " + serviceAccessPoints);
+ // parameters.setUser(ap.username()); //username
+ // String decryptedPassword =
+ // StringEncrypter.getEncrypter().decrypt(ap.password());
+ // parameters.setPassword(decryptedPassword); //password
+ // Group properties = ap.properties();
+
+ } catch (Exception e) {
+ logger.error("Sorry, an error occurred on reading the resource " + resourceName + " Runtime Resource", e);
+ throw new Exception(
+ "Sorry, an error occurred on reading the resource " + resourceName + " Runtime Reosurce");
}
}
@@ -131,10 +134,10 @@ public class RuntimeResourceReader {
* @param entryName the entry name
* @return the service access point for entry name
*/
- public ServiceAccessPoint getServiceAccessPointForEntryName(String entryName){
+ public ServiceAccessPoint getServiceAccessPointForEntryName(String entryName) {
for (ServiceAccessPoint serviceAccessPoint : serviceAccessPoints) {
- if(serviceAccessPoint.getEntryName().equals(entryName))
+ if (serviceAccessPoint.getEntryName().equals(entryName))
return serviceAccessPoint;
}
return null;
@@ -167,7 +170,9 @@ public class RuntimeResourceReader {
return serviceAccessPoints;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see java.lang.Object#toString()
*/
@Override
@@ -184,8 +189,6 @@ public class RuntimeResourceReader {
return builder.toString();
}
-
-
// public static void main(String[] args) {
// try {
// RuntimeResourceReader rr = new RuntimeResourceReader("/gcube", "Gis-Resolver");
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 95820f5..0a02321 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,7 +14,8 @@ 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.CatalogueResolverCaller;
+import org.gcube.portlets.user.uriresolvermanager.resolvers.CatalogueResolverCallBuilder;
+import org.gcube.portlets.user.uriresolvermanager.resolvers.SHUBResolverCallBuilder;
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;
@@ -116,11 +117,13 @@ public class UriResolverMapReader {
String resoureName = resources.get(0);
String entryName = entryNames.get(0);
Resolver resolver;
- if (entryName.equals("ctlg")) {
- resolver = new CatalogueResolverCaller(resoureName, entryName);
- } else
+ if (entryName.equalsIgnoreCase("ctlg")) {
+ resolver = new CatalogueResolverCallBuilder(resoureName, entryName);
+ } else if (entryName.equalsIgnoreCase("shub")) {
+ resolver = new SHUBResolverCallBuilder(resoureName, entryName);
+ } else {
resolver = new GenericResolver(resoureName, entryName);
-
+ }
applicationTypes.put(at, resolver);
logger.info("Stored: " + at + " -> Resolver: " + resolver);
} else
diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/CatalogueResolverCaller.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/CatalogueResolverCallBuilder.java
similarity index 80%
rename from src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/CatalogueResolverCaller.java
rename to src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/CatalogueResolverCallBuilder.java
index 6078380..2ad3e9e 100644
--- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/CatalogueResolverCaller.java
+++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/CatalogueResolverCallBuilder.java
@@ -15,39 +15,40 @@ import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
/**
- * The Class CatalogueResolverCaller.
+ * The Class CatalogueResolverCallBuilder.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
- * Nov 5, 2021
+ * Nov 5, 2021
*/
-public class CatalogueResolverCaller extends GenericResolver {
+public class CatalogueResolverCallBuilder extends GenericResolver {
- public static final Logger LOG = LoggerFactory.getLogger(CatalogueResolverCaller.class);
+ private static final int _60SEC = 60000;
+ public static final Logger LOG = LoggerFactory.getLogger(CatalogueResolverCallBuilder.class);
/**
* Instantiates a new catalogue resolver wrapper.
*
* @param resourceName the resource name
- * @param entryName the entry name
+ * @param entryName the entry name
*/
- public CatalogueResolverCaller(String resourceName, String entryName) {
+ public CatalogueResolverCallBuilder(String resourceName, String entryName) {
super(resourceName, entryName);
}
/**
* Gets the link.
*
- * @param baseURI the base URI
+ * @param baseURI the base URI
* @param parameters the parameters
* @return the link
* @throws Exception the exception
*/
@Override
public String getLink(String baseURI, Map parameters) throws Exception {
-
+ LOG.debug("called getLink: " + baseURI + " parameters: "+parameters);
+
HttpURLConnection con = null;
String theResponse = null;
try {
@@ -56,19 +57,19 @@ public class CatalogueResolverCaller extends GenericResolver {
con = (HttpURLConnection) urlObj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
- //con.setRequestProperty("Accept", "application/json");
+ // con.setRequestProperty("Accept", "application/json");
con.setDoOutput(true);
- con.setReadTimeout(60000);
- con.setConnectTimeout(60000);
-
+ con.setReadTimeout(_60SEC);
+ con.setConnectTimeout(_60SEC);
+
JSONObject jObj = new org.json.JSONObject();
for (String key : parameters.keySet()) {
jObj.put(key, parameters.get(key));
}
String toJSON = jObj.toString();
- LOG.info("Submitting JSON: "+toJSON);
+ LOG.info("Submitting JSON: " + toJSON);
Integer code = null;
try {
@@ -89,6 +90,7 @@ public class CatalogueResolverCaller extends GenericResolver {
}
} catch (Exception e) {
+ LOG.error(CatalogueResolverCallBuilder.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/SHUBResolverCallBuilder.java
new file mode 100644
index 0000000..c204bc4
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/SHUBResolverCallBuilder.java
@@ -0,0 +1,66 @@
+package org.gcube.portlets.user.uriresolvermanager.resolvers;
+
+import java.util.Map;
+
+import org.gcube.portlets.user.uriresolvermanager.entity.GenericResolver;
+import org.gcube.portlets.user.uriresolvermanager.util.UrlEncoderUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The Class SHUBResolverCallBuilder.
+ *
+ * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
+ *
+ * Nov 8, 2021
+ */
+public class SHUBResolverCallBuilder extends GenericResolver {
+
+ public static final Logger LOG = LoggerFactory.getLogger(SHUBResolverCallBuilder.class);
+
+ /**
+ * Instantiates a new catalogue resolver wrapper.
+ *
+ * @param resourceName the resource name
+ * @param entryName the entry name
+ */
+ public SHUBResolverCallBuilder(String resourceName, String entryName) {
+ super(resourceName, entryName);
+ }
+
+ /**
+ * Gets the link.
+ *
+ * @param baseURI the base URI
+ * @param parameters the parameters
+ * @return the link
+ * @throws Exception the exception
+ */
+ @Override
+ public String getLink(String baseURI, Map parameters) throws Exception {
+ LOG.debug("called getLink: " + baseURI + " parameters: "+parameters);
+ String toReturn = null;
+ try {
+
+ String idValue = parameters.get("id");
+ String pathURI = baseURI;
+ if (idValue != null) {
+ pathURI = String.format("%s/%s", pathURI, idValue);
+ parameters.remove("id");
+ }
+
+ toReturn = pathURI;
+ String queryString = UrlEncoderUtil.encodeQuery(parameters);
+ if(!queryString.isEmpty())
+ toReturn = String.format("%s?%s", pathURI, queryString);
+
+ } catch (Exception e) {
+ LOG.error(SHUBResolverCallBuilder.class.getSimpleName() + " error: ", e);
+ throw e;
+ }
+ LOG.info("Got Link: " + toReturn);
+ return toReturn;
+
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/util/UrlEncoderUtil.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/util/UrlEncoderUtil.java
index 2330752..f379d7e 100644
--- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/util/UrlEncoderUtil.java
+++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/util/UrlEncoderUtil.java
@@ -62,7 +62,7 @@ public class UrlEncoderUtil {
String encodedQuery = "";
if (theString == null || theString.isEmpty())
- return theString;
+ return encodedQuery;
try {
encodedQuery = URLEncoder.encode(theString, charset);
diff --git a/src/test/java/UriResolverManagerTest.java b/src/test/java/UriResolverManagerTest.java
index 62795a3..d562b29 100644
--- a/src/test/java/UriResolverManagerTest.java
+++ b/src/test/java/UriResolverManagerTest.java
@@ -17,9 +17,9 @@ import org.junit.Test;
*
*/
public class UriResolverManagerTest {
-
- //@Test
- public void testUriResolverManger(){
+
+ // @Test
+ public void testUriResolverManger() {
UriResolverManager manager;
try {
ScopeProvider.instance.set("/gcube/devsec/devVRE");
@@ -35,29 +35,49 @@ public class UriResolverManagerTest {
}
}
-
- //@Test
- public void testCTLG(){
- try {
+ //@Test
+ public void testCTLG() {
+
+ try {
ScopeProvider.instance.set("/gcube/devsec/devVRE");
UriResolverManager resolver;
resolver = new UriResolverManager("CTLG");
Map params = new HashMap();
- params.put("gcube_scope","/gcube/devsec/devVRE");
- params.put("entity_context","dataset");
- params.put("entity_name","sarda-sarda");
- String shortLink = resolver.getLink(params, true); //true, link is shorted otherwise none
+ params.put("gcube_scope", "/gcube/devsec/devVRE");
+ params.put("entity_context", "dataset");
+ params.put("entity_name", "sarda-sarda");
+ String shortLink = resolver.getLink(params, true); // true, link is shorted otherwise none
System.out.println(shortLink);
} catch (UriResolverMapException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
- }catch (Exception e) {
+ } catch (Exception e) {
e.printStackTrace();
}
}
+ //@Test
+ public void testSHUB() {
+
+ try {
+ ScopeProvider.instance.set("/gcube/devsec/devVRE");
+ UriResolverManager resolver;
+ resolver = new UriResolverManager("SHUB");
+ Map params = new HashMap();
+ params.put("id", "1dac6703-8eb0-4838-83a8-5006f5074e9b");
+ params.put("content-disposition", "inline");
+ String shortLink = resolver.getLink(params, true); // true, link is shorted otherwise none
+ System.out.println(shortLink);
+ } catch (UriResolverMapException e) {
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
//@Test
public void testGIS() {
@@ -69,59 +89,59 @@ public class UriResolverManagerTest {
params.put("gis-UUID", "1a657005-29c6-4528-a115-69640c4c2900");
params.put("scope", "/pred4s/preprod/preVRE");
String shortLink = resolver.getLink(params, false);
- System.out.println(shortLink); //true, link is shorted otherwise none
+ System.out.println(shortLink); // true, link is shorted otherwise none
} catch (UriResolverMapException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
- }catch (Exception e) {
+ } catch (Exception e) {
e.printStackTrace();
}
}
-// @Test
+ // @Test
public void testSMP() {
try {
ScopeProvider.instance.set("/gcube/devsec/devVRE");
UriResolverManager resolver = new UriResolverManager("SMP");
Map params = new HashMap();
- params.put("smp-uri","smp://Wikipedia_logo_silver.png?5ezvFfBOLqaqBlwCEtAvz4ch5BUu1ag3yftpCvV gayz9bAtSsnO1/sX6pemTKbDe0qbchLexXeWgGcJlskYE8td9QSDXSZj5VSl9kdN9SN0/LRYaWUZuP4Q1J7lEiwkU4GKPsiD6PDRVcT4QAqTEy5hSIbr6o4Y");
+ params.put("smp-uri",
+ "smp://Wikipedia_logo_silver.png?5ezvFfBOLqaqBlwCEtAvz4ch5BUu1ag3yftpCvV gayz9bAtSsnO1/sX6pemTKbDe0qbchLexXeWgGcJlskYE8td9QSDXSZj5VSl9kdN9SN0/LRYaWUZuP4Q1J7lEiwkU4GKPsiD6PDRVcT4QAqTEy5hSIbr6o4Y");
params.put("fileName", "wikipediaLogo");
params.put("contentType", "");
- String shortLink = resolver.getLink(params, true); //true, link is shorted otherwise none
+ String shortLink = resolver.getLink(params, true); // true, link is shorted otherwise none
System.out.println(shortLink);
} catch (UriResolverMapException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
- }catch (Exception e) {
+ } catch (Exception e) {
e.printStackTrace();
}
}
-
/**
* Thread safe
*/
-// @Test
- public void testSMPID(){
+ // @Test
+ public void testSMPID() {
- try {
+ try {
ScopeProvider.instance.set("/gcube/devsec/devVRE");
UriResolverManager resolver;
resolver = new UriResolverManager("SMP-ID");
Map params = new HashMap();
- params.put("geo-exp","553f9265e4b0567b75021fce");
+ params.put("geo-exp", "553f9265e4b0567b75021fce");
// params.put("fileName", "dog");
// params.put("contentType", "image/jpg");
- String shortLink = resolver.getLink(params, true); //true, link is shorted otherwise none
+ String shortLink = resolver.getLink(params, true); // true, link is shorted otherwise none
System.out.println(shortLink);
} catch (UriResolverMapException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
- }catch (Exception e) {
+ } catch (Exception e) {
e.printStackTrace();
}
}
@@ -129,45 +149,45 @@ public class UriResolverManagerTest {
/**
* Thread safe
*/
- //@Test
- public void test2(){
+ // @Test
+ public void test2() {
+ // create thread to print counter value
+ Thread t = new Thread(new Runnable() {
- //create thread to print counter value
- Thread t = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ while (true) {
+ try {
- @Override
- public void run() {
- while (true) {
- try {
-
- ScopeProvider.instance.set("/gcube/devsec/devVRE");
- UriResolverManager resolver;
+ ScopeProvider.instance.set("/gcube/devsec/devVRE");
+ UriResolverManager resolver;
resolver = new UriResolverManager("GIS");
- Map params = new HashMap();
- params.put("gis-UUID", "eb1a1b63-f324-47ee-9522-b8f5803e19ec");
- params.put("scope", "/gcube/devsec/devVRE");
- String shortLink = resolver.getLink(params, true);
- System.out.println(shortLink); //true, link is shorted otherwise none
+ Map params = new HashMap();
+ params.put("gis-UUID", "eb1a1b63-f324-47ee-9522-b8f5803e19ec");
+ params.put("scope", "/gcube/devsec/devVRE");
+ String shortLink = resolver.getLink(params, true);
+ System.out.println(shortLink); // true, link is shorted otherwise none
- System.out.println("Thread "+Thread.currentThread().getId() +" reading counter is: " + resolver.countReaders());
- Thread.sleep(1000);
- } catch (InterruptedException ex) {
- ex.printStackTrace();
- }catch (UriResolverMapException e) {
+ System.out.println("Thread " + Thread.currentThread().getId() + " reading counter is: "
+ + resolver.countReaders());
+ Thread.sleep(1000);
+ } catch (InterruptedException ex) {
+ ex.printStackTrace();
+ } catch (UriResolverMapException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- }
- }
+ }
+ }
- });
+ });
- t.start();
+ t.start();
try {
Thread.sleep(1000);