#23156 Added support to `query_string` to CatalogueResolver
This commit is contained in:
parent
ceddf17c1f
commit
cda5599d27
|
@ -1,61 +1,70 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-module deploy-name="uri-resolver-2.7.2-SNAPSHOT">
|
||||
|
||||
|
||||
<wb-module deploy-name="uri-resolver-2.7.2">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<property name="context-root" value="uri-resolver"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<property name="java-output-path" value="/uri-resolver/target/classes"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</wb-module>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
14
CHANGELOG.md
14
CHANGELOG.md
|
@ -4,7 +4,13 @@
|
|||
All notable changes to this project will be documented in this file.
|
||||
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [v2-7.2] - 2022-04-06
|
||||
## [v2.8.0-SNAPSHOT] - 2022-04-20
|
||||
|
||||
**New**
|
||||
|
||||
- [#23156] CatalogueResolver enhanced to manage (create/resolve) an input query string
|
||||
|
||||
## [v2.7.2] - 2022-04-06
|
||||
|
||||
**New**
|
||||
|
||||
|
@ -18,7 +24,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|||
|
||||
- [#20743] Integration with javamelody
|
||||
|
||||
## [v2-6-1] - 2022-01-17
|
||||
## [v2.6.1] - 2022-01-17
|
||||
|
||||
**New features**
|
||||
|
||||
|
@ -30,7 +36,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|||
- [#21560] Checking the bug fix done
|
||||
- Moved to gcube-smartgears-bom.2.1.0
|
||||
|
||||
## [v2-5-0] - 2021-04-08
|
||||
## [v2.5.0] - 2021-04-08
|
||||
|
||||
**New features**
|
||||
|
||||
|
@ -41,7 +47,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|||
[#21093] StorageHubResolver HEAD request does not support Content-Length
|
||||
|
||||
|
||||
## [v2-4-1] - 2021-01-13
|
||||
## [v2.4.1] - 2021-01-13
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
|
|
2
pom.xml
2
pom.xml
|
@ -9,7 +9,7 @@
|
|||
</parent>
|
||||
<groupId>org.gcube.data.transfer</groupId>
|
||||
<artifactId>uri-resolver</artifactId>
|
||||
<version>2.7.2</version>
|
||||
<version>2.8.0-SNAPSHOT</version>
|
||||
<packaging>war</packaging>
|
||||
<description>The URI Resolver is an HTTP URI resolver implemented as a REST service which gives access trough HTTP to different gcube Resolvers and gCube Applications.</description>
|
||||
|
||||
|
|
|
@ -5,15 +5,14 @@ package org.gcube.datatransfer.resolver.catalogue;
|
|||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Mar 24, 2022
|
||||
*
|
||||
* Binding Catalogue Request as a JSON
|
||||
* Apr 20, 2022
|
||||
*/
|
||||
public class CatalogueRequest {
|
||||
|
||||
private String gcube_scope;
|
||||
private String entity_context;
|
||||
private String entity_name;
|
||||
private String query_string;
|
||||
|
||||
/**
|
||||
* Gets the gcube_scope.
|
||||
|
@ -42,19 +41,22 @@ public class CatalogueRequest {
|
|||
return entity_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the query string.
|
||||
*
|
||||
* @return the query string
|
||||
*/
|
||||
public String getQuery_string() {
|
||||
return query_string;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see java.lang.Object#toString()
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("CatalogueRequest [gcube_scope=");
|
||||
builder.append(gcube_scope);
|
||||
|
@ -62,6 +64,8 @@ public class CatalogueRequest {
|
|||
builder.append(entity_context);
|
||||
builder.append(", entity_name=");
|
||||
builder.append(entity_name);
|
||||
builder.append(", query_string=");
|
||||
builder.append(query_string);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package org.gcube.datatransfer.resolver.services;
|
|||
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
@ -33,6 +34,7 @@ import org.gcube.datatransfer.resolver.catalogue.resource.CkanCatalogueConfigura
|
|||
import org.gcube.datatransfer.resolver.catalogue.resource.GatewayCKANCatalogueReference;
|
||||
import org.gcube.datatransfer.resolver.catalogue.resource.GetAllInfrastructureScopes;
|
||||
import org.gcube.datatransfer.resolver.services.error.ExceptionManager;
|
||||
import org.gcube.datatransfer.resolver.util.UrlEncoderUtil;
|
||||
import org.gcube.datatransfer.resolver.util.Util;
|
||||
import org.gcube.infrastructure.detachedres.detachedreslibrary.shared.re.VRE;
|
||||
import org.gcube.smartgears.utils.InnerMethodName;
|
||||
|
@ -115,6 +117,15 @@ public class CatalogueResolver {
|
|||
+ " is a private item (to VRE) so using protected access to CKAN portlet: " + itemCatalogueURL);
|
||||
}
|
||||
|
||||
String queryString = req.getQueryString();
|
||||
if (queryString != null) {
|
||||
logger.debug("Query string found: " + queryString);
|
||||
String qsEnc = URLEncoder.encode(queryString, "UTF-8");
|
||||
logger.info("Adding encoded query string " + qsEnc + " to Catalogue URL response");
|
||||
|
||||
itemCatalogueURL += "?" + qsEnc;
|
||||
}
|
||||
|
||||
return Response.seeOther(new URL(itemCatalogueURL).toURI()).build();
|
||||
} catch (Exception e) {
|
||||
|
||||
|
@ -190,6 +201,12 @@ public class CatalogueResolver {
|
|||
}
|
||||
|
||||
String linkURL = String.format("%s/%s/%s/%s", serverUrl, rc.getId(), vreName, jsonRequest.getEntity_name());
|
||||
|
||||
if (jsonRequest.getQuery_string() != null) {
|
||||
String qsEnc = URLEncoder.encode(jsonRequest.getQuery_string(), "UTF-8");
|
||||
linkURL += "?" + qsEnc;
|
||||
}
|
||||
|
||||
logger.info("Returining Catalogue URL: " + linkURL);
|
||||
return Response.ok(linkURL).header("Location", linkURL).build();
|
||||
|
||||
|
|
Loading…
Reference in New Issue