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 caf8620..b8ea8a5 100644 --- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/UriResolverManager.java +++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/UriResolverManager.java @@ -8,6 +8,7 @@ import java.util.Set; import org.gcube.portlets.user.uriresolvermanager.exception.IllegalArgumentException; import org.gcube.portlets.user.uriresolvermanager.exception.UriResolverMapException; +import org.gcube.portlets.user.uriresolvermanager.readers.RuntimeResourceReader; import org.gcube.portlets.user.uriresolvermanager.readers.UriResolverMapReader; /** @@ -20,8 +21,8 @@ public class UriResolverManager { private UriResolverMapReader uriResolverMapReader; private Map applicationTypes; - private String userScope; - private String userApplicationType; + private String scope; + private String applicationType; /** * @@ -43,13 +44,23 @@ public class UriResolverManager { throw new IllegalArgumentException("Application type '"+applicationType +"' not found in Application Types: "+getApplicationTypes()); } - this.userApplicationType = applicationType; - this.userScope = scope; + this.applicationType = applicationType; + this.scope = scope; } public String getLink(Map parameters) throws IllegalArgumentException{ + String resourceName = this.applicationTypes.get(applicationType); + + try { + + RuntimeResourceReader reader = new RuntimeResourceReader(scope, resourceName); + + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } return ""; } @@ -72,7 +83,8 @@ public class UriResolverManager { public static void main(String[] args) { try { - UriResolverManager resolver = new UriResolverManager("/gcube", "NA"); + UriResolverManager resolver = new UriResolverManager("/gcube", "GIS"); + resolver.getLink(null); } catch (UriResolverMapException e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/readers/RuntimeResourceException.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/readers/RuntimeResourceException.java new file mode 100644 index 0000000..cabe800 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/readers/RuntimeResourceException.java @@ -0,0 +1,8 @@ +package org.gcube.portlets.user.uriresolvermanager.readers; + +@SuppressWarnings("serial") +public class RuntimeResourceException extends Exception { + public RuntimeResourceException(String message) { + super(message); + } +} \ No newline at end of file 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 0975e51..59d4d09 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 @@ -29,27 +29,35 @@ import org.slf4j.LoggerFactory; */ public class RuntimeResourceReader { - public static final String RESOURCE_NAME = "Gis-Resolver"; - public static final Logger logger = LoggerFactory.getLogger(RuntimeResourceReader.class); public List serviceProperties; private String resourceName; - + private String scope; + + /** + * @throws Exception + * + */ + public RuntimeResourceReader(String scope, String resourceName) throws Exception { + this.scope = scope; + this.resourceName = resourceName; + readResource(scope, resourceName); + } /** * * @param scope * @return the application URI * @throws Exception */ - private String readResource(String scope, String resourceName) throws Exception - { + private String readResource(String scope, String resourceName) throws Exception { + try{ this.resourceName = resourceName; - + String infraName = ScopeUtil.getInfrastructureNameFromScope(scope); logger.info("Instancing root scope: "+infraName); @@ -59,7 +67,7 @@ public class RuntimeResourceReader { 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: "+resourceName); @@ -71,7 +79,7 @@ public class RuntimeResourceReader { if(accessPoints.size()==0) throw new Exception("Accesspoint in resource "+resourceName+" not found"); AccessPoint ap = accessPoints.iterator().next(); - logger.info("returning GIS resolver URI root scope: "+ap.address()); + Group properties = ap.properties(); @@ -91,18 +99,18 @@ public class RuntimeResourceReader { } } - + logger.info("returning URI: "+ap.address()); return ap.address(); -// parameters.setUser(ap.username()); //username -// -// String decryptedPassword = StringEncrypter.getEncrypter().decrypt(ap.password()); -// -// parameters.setPassword(decryptedPassword); //password -// Group properties = ap.properties(); + // 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 "+RESOURCE_NAME+ "Runtime Reosurces",e); - throw new Exception("Sorry, an error occurred on reading the resource "+RESOURCE_NAME+ "Runtime Reosurces"); + logger.error("Sorry, an error occurred on reading the resource "+resourceName+ "Runtime Reosurces",e); + throw new Exception("Sorry, an error occurred on reading the resource "+resourceName+ "Runtime Reosurces"); } } @@ -127,9 +135,8 @@ public class RuntimeResourceReader { } public static void main(String[] args) { - RuntimeResourceReader resolver = new RuntimeResourceReader(); try { - resolver.readResource("/gcube", "Gis-Resolver"); + RuntimeResourceReader resolver = new RuntimeResourceReader("/gcube", "Gis-Resolver"); System.out.println(resolver); } catch (Exception e) { // TODO Auto-generated catch block