Difference between revisions of "URI Resolver"
Andrea.manzi (Talk | contribs) (→Query) |
Andrea.manzi (Talk | contribs) (→SMP Resolver) |
||
Line 16: | Line 16: | ||
The HTTP URI can be also used to retrieve files using wget or trough a Web Browser.. just click on the link : | The HTTP URI can be also used to retrieve files using wget or trough a Web Browser.. just click on the link : | ||
− | dev.d4science.org/uri-resolver/smp?smp-uri=smp://Wikipedia_logo_silver.png?5ezvFfBOLqaqBlwCEtAvz4ch5BUu1ag3yftpCvV+gayz9bAtSsnO1/sX6pemTKbDe0qbchLexXeWgGcJlskYE8td9QSDXSZj5VSl9kdN9SN0/LRYaWUZuP4Q1J7lEiwkU4GKPsiD6PDRVcT4QAqTEy5hSIbr6o4Y&fileName=wikipediaLogo&contentType=image/jpeg | + | http://dev.d4science.org/uri-resolver/smp?smp-uri=smp://Wikipedia_logo_silver.png?5ezvFfBOLqaqBlwCEtAvz4ch5BUu1ag3yftpCvV+gayz9bAtSsnO1/sX6pemTKbDe0qbchLexXeWgGcJlskYE8td9QSDXSZj5VSl9kdN9SN0/LRYaWUZuP4Q1J7lEiwkU4GKPsiD6PDRVcT4QAqTEy5hSIbr6o4Y&fileName=wikipediaLogo&contentType=image/jpeg |
Apart from the ''smp-uri'' mandatory parameter, two optional paramters can be used: | Apart from the ''smp-uri'' mandatory parameter, two optional paramters can be used: |
Revision as of 11:57, 3 July 2013
The URI Resolver is an HTTP URI resolver implemented as an HTTP servlet which gives access trough HTTP to different protocols URIs.
Contents
SMP Resolver
The first version of the component is able to give HTTP resolution to SMP protocol URIs [1].
Once deployed in a servlet container as Tomcat, the servlet can be used to resolve SMP URIs as follows:
URL url = new URL("http://<hostname>:<port>/uri-resolver/smp?smp-uri=smp://.....);
The HTTP URI can be also used to retrieve files using wget or trough a Web Browser.. just click on the link :
http://dev.d4science.org/uri-resolver/smp?smp-uri=smp://Wikipedia_logo_silver.png?5ezvFfBOLqaqBlwCEtAvz4ch5BUu1ag3yftpCvV+gayz9bAtSsnO1/sX6pemTKbDe0qbchLexXeWgGcJlskYE8td9QSDXSZj5VSl9kdN9SN0/LRYaWUZuP4Q1J7lEiwkU4GKPsiD6PDRVcT4QAqTEy5hSIbr6o4Y&fileName=wikipediaLogo&contentType=image/jpeg
Apart from the smp-uri mandatory parameter, two optional paramters can be used:
- fileName : to specify the output file name ( default: fromStorageManager)
- contentType : to specify the output file content-type ( default: unknown/unknown)
The artifact is available on Nexus with the following coordinates:
<groupId>org.gcube.data.transfer</groupId> <artifactId>uri-resolver</artifactId> <version>1.1.0-SNAPSHOT</version> <type>war</type>
Runtime Resource
The address and the configuration information of the servlet are registered on the gCube Information System as Runtime Resource. This in an example of the Runtime Resource to configure:
<Profile> <Category>Service</Category> <Name>HTTP-URI-Resolver</Name> <Description>HTTP URI Resolver</Description> <Platform> <Name>tomcat</Name> <Version>6</Version> <MinorVersion>0</MinorVersion> <RevisionVersion>0</RevisionVersion> <BuildVersion>0</BuildVersion> </Platform> <RunTime> <HostedOn>dev.d4science.org</HostedOn> <GHN UniqueID="" /> <Status>READY</Status> </RunTime> <AccessPoint> <Description>SMP URI Resolver</Description> <Interface> <Endpoint EntryName="smp">http://dev.d4science.org/uri-resolver/smp</Endpoint> </Interface> <AccessData> <Username /> <Password>6vW1u92cpdgHzYAgIurn9w==</Password> </AccessData> <Properties> <Property> <Name>SMP_URI_parameter </Name> <Value encrypted="false">smp-uri</Value> </Property> <Property> <Name>fileName_parameter</Name> <Value encrypted="false">fileName</Value> </Property> <Property> <Name>contentType_parameter</Name> <Value encrypted="false">contentType</Value> </Property> </Properties> </AccessPoint> </Profile>
Query
The following code snippet can be used to retrieve from the gCube Information System the info to configure the resolver
ScopeProvider.instance.set(<scope>); XQuery query = queryFor(ServiceEndpoint.class); query.addCondition("$resource/Profile/Name/text() eq 'HTTP-URI-Resolver'").setResult("$resource/Profile/AccessPoint"); DiscoveryClient<AccessPoint> client = clientFor(AccessPoint.class); List<AccessPoint> endpoints = client.submit(query); if (endpoints.size() == 0) throw new Exception("No Resolver available"); //Base Address System.out.println(endpoints.get(0).address()); //Query URL parameter System.out.println(endpoints.get(0).propertyMap().get("SMP_URI_parameter").value());