diff --git a/pom.xml b/pom.xml
index 87d5929..e2930a9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
org.gcube.data-publishing
gcat
war
- 1.4.1
+ 1.4.2-SNAPSHOT
gCube Catalogue (gCat) Service
This service allows any client to publish on the gCube Catalogue.
@@ -163,7 +163,6 @@
ch.qos.logback
logback-classic
- 1.2.3
test
diff --git a/src/main/java/org/gcube/gcat/persistence/ckan/CKANResource.java b/src/main/java/org/gcube/gcat/persistence/ckan/CKANResource.java
index 20d504b..9faf620 100644
--- a/src/main/java/org/gcube/gcat/persistence/ckan/CKANResource.java
+++ b/src/main/java/org/gcube/gcat/persistence/ckan/CKANResource.java
@@ -297,7 +297,7 @@ public class CKANResource extends CKAN {
urlToCheck = getFinalURL(url);
} catch(Exception e) {
// TODO Evaluate if we want to validate the URL. If the URL does not exists the service
- // could decide refuse the Resource Creation
+ // could decide to refuse the Resource Creation
}
if(urlToCheck.getHost().compareTo(URI_RESOLVER_STORAGE_HUB_HOST) == 0) {
if(urlToCheck.getPath().startsWith(URI_RESOLVER_STORAGE_HUB_PATH)) {
@@ -400,6 +400,9 @@ public class CKANResource extends CKAN {
String newURL = resourceNode.get(CKANResource.URL_KEY).asText();
if(oldURL.compareTo(newURL) == 0) {
logger.trace("The URL of the resource with id {} was not changed", resourceID);
+ storageHubManagement = new CatalogueStorageHubManagement();
+ this.mimeType = previousRepresentation.get(CKANResource.MIME_TYPE_KEY).asText();
+ storageHubManagement.getPersistedFile(resourceID, mimeType);
} else {
logger.trace("The URL of resource with id {} has been changed the old URL was {}, the new URL is {}",
resourceID, oldURL, newURL);
diff --git a/src/main/java/org/gcube/gcat/utils/HTTPCall.java b/src/main/java/org/gcube/gcat/utils/HTTPCall.java
index 31da9cd..dd9a06c 100644
--- a/src/main/java/org/gcube/gcat/utils/HTTPCall.java
+++ b/src/main/java/org/gcube/gcat/utils/HTTPCall.java
@@ -67,8 +67,9 @@ public class HTTPCall {
|| responseCode == HttpURLConnection.HTTP_SEE_OTHER
|| responseCode == Status.TEMPORARY_REDIRECT.getStatusCode() || responseCode == 308) {
- finalURL = getURL(connection.getHeaderField("Location"));
- finalURL = getFinalURL(finalURL);
+ URL newURL = getURL(connection.getHeaderField("Location"));
+ connection.disconnect();
+ finalURL = getFinalURL(newURL);
}
return finalURL;
diff --git a/src/main/java/org/gcube/gcat/workspace/CatalogueStorageHubManagement.java b/src/main/java/org/gcube/gcat/workspace/CatalogueStorageHubManagement.java
index 8bab6e8..d27052a 100644
--- a/src/main/java/org/gcube/gcat/workspace/CatalogueStorageHubManagement.java
+++ b/src/main/java/org/gcube/gcat/workspace/CatalogueStorageHubManagement.java
@@ -75,7 +75,7 @@ public class CatalogueStorageHubManagement {
}
protected void internalAddRevisionID(String resourceID, String revisionID) throws Exception {
- FileContainer fileContainer = storageHubManagement.getCreatedFile();
+ FileContainer fileContainer = storageHubManagement.getPersistedFile();
Metadata metadata = fileContainer.get().getMetadata();
Map map = metadata.getMap();
map.put(CatalogueMetadata.CATALOGUE_RESOURCE_ID, resourceID);
@@ -88,7 +88,7 @@ public class CatalogueStorageHubManagement {
ApplicationMode applicationMode = new ApplicationMode(Constants.getCatalogueApplicationToken());
try {
applicationMode.start();
- FileContainer createdfile = storageHubManagement.getCreatedFile();
+ FileContainer createdfile = storageHubManagement.getPersistedFile();
createdfile.rename(resourceID);
internalAddRevisionID(resourceID, revisionID);
} finally {
@@ -106,5 +106,15 @@ public class CatalogueStorageHubManagement {
applicationMode.end();
}
}
+
+ public void getPersistedFile(String id, String mimeType) throws Exception {
+ ApplicationMode applicationMode = new ApplicationMode(Constants.getCatalogueApplicationToken());
+ try {
+ applicationMode.start();
+ storageHubManagement.getPersistedFile(id, mimeType);
+ } finally {
+ applicationMode.end();
+ }
+ }
}
diff --git a/src/test/java/org/gcube/gcat/ContextTest.java b/src/test/java/org/gcube/gcat/ContextTest.java
index 1666889..9d66a0b 100644
--- a/src/test/java/org/gcube/gcat/ContextTest.java
+++ b/src/test/java/org/gcube/gcat/ContextTest.java
@@ -45,7 +45,7 @@ public class ContextTest {
}
//DEFAULT_TEST_SCOPE_NAME = "/pred4s/preprod/preVRE";
- DEFAULT_TEST_SCOPE_NAME = "/gcube/devNext/NextNext";
+ DEFAULT_TEST_SCOPE_NAME = "/gcube/devsec/devVRE";
}
public static String getCurrentScope(String token) throws ObjectNotFound, Exception {
diff --git a/src/test/java/org/gcube/gcat/persistence/ckan/CKANResourceTest.java b/src/test/java/org/gcube/gcat/persistence/ckan/CKANResourceTest.java
index 3ceb319..c06e3dd 100644
--- a/src/test/java/org/gcube/gcat/persistence/ckan/CKANResourceTest.java
+++ b/src/test/java/org/gcube/gcat/persistence/ckan/CKANResourceTest.java
@@ -73,6 +73,25 @@ public class CKANResourceTest extends ContextTest {
ckanResource.create(objectNode);
}
+ @Test
+ public void testCreateUpdate() throws Exception {
+ ObjectMapper objectMapper = new ObjectMapper();
+ ObjectNode objectNode = objectMapper.createObjectNode();
+ objectNode.put(CKANResource.NAME_KEY, "MyTestTy_rest_upload");
+ objectNode.put(CKANResource.URL_KEY, "https://data-dev.d4science.net/C1G2");
+ objectNode.put("description", "File uploaded using the REST API");
+ // objectNode.put(CKANResource.ID_KEY, "ba7ab7e8-c268-4219-98cd-c73470870999");
+
+ String id = "5795a7ce-4444-439e-b77d-1df3beaa8a42"; // name = my_restful
+ CKANResource ckanResource = new CKANResource(id);
+ String json = ckanResource.getAsString(objectNode);
+ logger.debug("Going to create Resource {}", json);
+ String createdJson = ckanResource.create(objectNode);
+
+ ckanResource = new CKANResource(id);
+ ckanResource.update(createdJson);
+ }
+
// @Test
public void testDelete() throws Exception {
CKANResource ckanResource = new CKANResource("f0326fec-d8ac-42c7-abff-c7905b4d938e");
diff --git a/src/test/java/org/gcube/gcat/workspace/CatalogueStorageHubManagementTest.java b/src/test/java/org/gcube/gcat/workspace/CatalogueStorageHubManagementTest.java
index cebb5f5..6bd92c3 100644
--- a/src/test/java/org/gcube/gcat/workspace/CatalogueStorageHubManagementTest.java
+++ b/src/test/java/org/gcube/gcat/workspace/CatalogueStorageHubManagementTest.java
@@ -102,7 +102,7 @@ public class CatalogueStorageHubManagementTest extends ContextTest {
Assert.assertTrue(catalogueStorageHubManagement.getMimeType().compareTo(MIME_TYPE) == 0);
- FileContainer createdFileContainer = storageHubManagement.getCreatedFile();
+ FileContainer createdFileContainer = storageHubManagement.getPersistedFile();
String version = "2";
catalogueStorageHubManagement.renameFile(RESOURCE_ID, version);