diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index cfa6374..21f61b8 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -4,6 +4,9 @@
+
+ uses
+
diff --git a/src/main/java/org/gcube/datatransfer/resolver/UriResolver.java b/src/main/java/org/gcube/datatransfer/resolver/UriResolver.java
index 76cd2a4..8cc867c 100644
--- a/src/main/java/org/gcube/datatransfer/resolver/UriResolver.java
+++ b/src/main/java/org/gcube/datatransfer/resolver/UriResolver.java
@@ -6,6 +6,7 @@ import org.gcube.data.analysis.dminvocation.model.DataMinerInvocation;
import org.gcube.datatransfer.resolver.init.UriResolverSmartGearManagerInit;
import org.gcube.datatransfer.resolver.requesthandler.RequestHandler;
import org.gcube.datatransfer.resolver.services.CatalogueResolver;
+import org.gcube.datatransfer.resolver.services.tobackward.BackCatalogueResolver;
import org.gcube.smartgears.annotations.ManagedBy;
import org.glassfish.jersey.server.ResourceConfig;
@@ -15,7 +16,7 @@ public class UriResolver extends ResourceConfig {
public UriResolver() {
// Register all resources present under the package.
- packages(CatalogueResolver.class.getPackage().getName(), RequestHandler.class.getPackage().getName());
+ packages(CatalogueResolver.class.getPackage().getName(), RequestHandler.class.getPackage().getName(), BackCatalogueResolver.class.getPackage().getName());
packages(DataMinerInvocation.class.getPackage().getName());
}
}
diff --git a/src/main/java/org/gcube/datatransfer/resolver/UriResolverServices.java b/src/main/java/org/gcube/datatransfer/resolver/UriResolverServices.java
index ee0439b..a4f8051 100644
--- a/src/main/java/org/gcube/datatransfer/resolver/UriResolverServices.java
+++ b/src/main/java/org/gcube/datatransfer/resolver/UriResolverServices.java
@@ -192,7 +192,7 @@ public class UriResolverServices {
if(listResourcePath.isEmpty()){
log.info("Reference to the List of Resources/Services is empty, creating it...");
readResources(applicationClasses);
- log.info("Hard-Coding the resource/s: ");
+ log.info("Hard-Coding the resource/s: "+ConstantsResolver.resourcesHardCoded);
listResourcePath.addAll(Arrays.asList(ConstantsResolver.resourcesHardCoded));
}
diff --git a/src/main/java/org/gcube/datatransfer/resolver/catalogue/ResourceCatalogueCodes.java b/src/main/java/org/gcube/datatransfer/resolver/catalogue/ResourceCatalogueCodes.java
index d81c0f9..57fb069 100644
--- a/src/main/java/org/gcube/datatransfer/resolver/catalogue/ResourceCatalogueCodes.java
+++ b/src/main/java/org/gcube/datatransfer/resolver/catalogue/ResourceCatalogueCodes.java
@@ -18,7 +18,7 @@ import java.util.List;
public enum ResourceCatalogueCodes {
CTLG("ctlg","dataset", "Catalogue Product/Dataset"),
- CTLGP("ctlg-p","product", "Catalogue Product"),
+ //CTLGP("ctlg-p","product", "Catalogue Product"),
CTLGD("ctlg-d","dataset", "Catalogue Dataset"),
CTLGO("ctlg-o","organization", "Catalogue Organization"),
CTLGG("ctlg-g","group", "Catalogue Group");
diff --git a/src/main/java/org/gcube/datatransfer/resolver/requesthandler/RequestHandler.java b/src/main/java/org/gcube/datatransfer/resolver/requesthandler/RequestHandler.java
index cdd7bf8..431af94 100644
--- a/src/main/java/org/gcube/datatransfer/resolver/requesthandler/RequestHandler.java
+++ b/src/main/java/org/gcube/datatransfer/resolver/requesthandler/RequestHandler.java
@@ -86,15 +86,39 @@ public class RequestHandler implements ContainerRequestFilter, ContainerResponse
try {
splittePath = path.split("/");
if(splittePath!=null && splittePath.length>0) {
- String resourceName = splittePath[0];
- if(resourceName!=null && !resourceName.isEmpty()) {
+ String requestedResourceName = splittePath[0];
+ log.debug("The resource requested is: {}",requestedResourceName);
+
+ if(requestedResourceName!=null && !requestedResourceName.isEmpty()) {
for (String resource : listOfPath) {
- if(resource.startsWith(resourceName)) {
- candidateResource = resourceName;
+ log.trace("Is resource '{}' starting with '{}' ?",resource,requestedResourceName);
+ if(resource.startsWith(requestedResourceName)) {
+ log.trace("Yes it starts!");
+ candidateResource = requestedResourceName;
+ log.info("The candidate resource to manage the request is: {}",candidateResource);
resourceToRedirectFound = true;
break;
}
}
+
+ //Try to manage as Catalogue Request ctlg, ctlg-p, etc.
+ if(!resourceToRedirectFound) {
+ log.info("Trying to manage as hard-coded case: {}", ConstantsResolver.resourcesHardCoded.toString());
+ String[] hardCode = ConstantsResolver.resourcesHardCoded;
+
+ for (String resource : hardCode) {
+ log.trace("Is requested resource '{}' starting with hard-coded resource '{}'?",requestedResourceName,resource);
+ if(requestedResourceName.startsWith(resource)) {
+ log.trace("Yes it starts!");
+ candidateResource = resource;
+ log.info("The candidate resource to manage the request is the hard-coded resource: {}",candidateResource);
+ resourceToRedirectFound = true;
+ break;
+ }
+ }
+
+ }
+
}else
log.warn("It was not possible to get the resource name from the splitted path {}. No action performed", path);
}else {
diff --git a/src/main/java/org/gcube/datatransfer/resolver/services/BackCatalogueResolver.java b/src/main/java/org/gcube/datatransfer/resolver/services/tobackward/BackCatalogueResolver.java
similarity index 89%
rename from src/main/java/org/gcube/datatransfer/resolver/services/BackCatalogueResolver.java
rename to src/main/java/org/gcube/datatransfer/resolver/services/tobackward/BackCatalogueResolver.java
index a02e08a..f989673 100644
--- a/src/main/java/org/gcube/datatransfer/resolver/services/BackCatalogueResolver.java
+++ b/src/main/java/org/gcube/datatransfer/resolver/services/tobackward/BackCatalogueResolver.java
@@ -1,4 +1,4 @@
-package org.gcube.datatransfer.resolver.services;
+package org.gcube.datatransfer.resolver.services.tobackward;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
@@ -11,6 +11,7 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.gcube.datatransfer.resolver.catalogue.CatalogueRequest;
+import org.gcube.datatransfer.resolver.services.CatalogueResolver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/org/gcube/datatransfer/resolver/services/tobackward/BackUriResolverCatalogueResolver.java b/src/main/java/org/gcube/datatransfer/resolver/services/tobackward/BackUriResolverCatalogueResolver.java
new file mode 100644
index 0000000..a648f75
--- /dev/null
+++ b/src/main/java/org/gcube/datatransfer/resolver/services/tobackward/BackUriResolverCatalogueResolver.java
@@ -0,0 +1,40 @@
+package org.gcube.datatransfer.resolver.services.tobackward;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.gcube.datatransfer.resolver.catalogue.CatalogueRequest;
+import org.gcube.datatransfer.resolver.services.CatalogueResolver;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The Class CatalogueResolver.
+ *
+ * To Backward compatibility
+ *
+ * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
+ * Nov 16, 2018
+ */
+@Path("uri-resolver/catalogue")
+public class BackUriResolverCatalogueResolver {
+
+ private static Logger logger = LoggerFactory.getLogger(BackUriResolverCatalogueResolver.class);
+
+ @POST
+ @Path("")
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response postCatalogue(@Context HttpServletRequest req, CatalogueRequest jsonRequest) throws WebApplicationException{
+ logger.info(this.getClass().getSimpleName()+" POST starts...");
+ return new CatalogueResolver().postCatalogue(req, jsonRequest);
+
+ }
+}