diff --git a/pom.xml b/pom.xml index 94dc263..ba7eb6c 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.gcube.data-publishing storagehub-application-persistence - 1.3.0 + 1.3.1-SNAPSHOT StorageHub Application Persistence This library allows any application to persist in its workspace home any diff --git a/src/main/java/org/gcube/storagehub/ApplicationMode.java b/src/main/java/org/gcube/storagehub/ApplicationMode.java index dd1180d..c06a876 100644 --- a/src/main/java/org/gcube/storagehub/ApplicationMode.java +++ b/src/main/java/org/gcube/storagehub/ApplicationMode.java @@ -39,7 +39,7 @@ public class ApplicationMode { } } - public synchronized void end() { + public synchronized void end() { if(originalToken!=null) { try { ContextUtility.setContext(originalToken); diff --git a/src/main/java/org/gcube/storagehub/StorageHubManagement.java b/src/main/java/org/gcube/storagehub/StorageHubManagement.java index b266a83..e4dfbd2 100644 --- a/src/main/java/org/gcube/storagehub/StorageHubManagement.java +++ b/src/main/java/org/gcube/storagehub/StorageHubManagement.java @@ -37,7 +37,7 @@ public class StorageHubManagement { protected final StorageHubClient storageHubClient; - protected FileContainer createdFile; + protected FileContainer persitedFile; protected String mimeType; public StorageHubManagement() { @@ -52,8 +52,8 @@ public class StorageHubManagement { return mimeType; } - public FileContainer getCreatedFile() { - return createdFile; + public FileContainer getPersistedFile() { + return persitedFile; } protected void recursiveList(FolderContainer folder, int level) throws StorageHubException { @@ -216,29 +216,39 @@ public class StorageHubManagement { throws Exception { this.mimeType = mimeType; FolderContainer destinationFolder = getDestinationFolder(mimeType); - createdFile = destinationFolder.uploadFile(inputStream, fileName, + persitedFile = destinationFolder.uploadFile(inputStream, fileName, "This file has been created to ensure persistence"); if(metadata != null) { - createdFile.setMetadata(metadata); + persitedFile.setMetadata(metadata); } - URL finalURL = createdFile.getPublicLink(); + URL finalURL = persitedFile.getPublicLink(); logger.debug("File persistence has been ensured. The file is available at {}", finalURL); return finalURL; } - public void removePersistedFile(String filename, String mimeType) throws Exception { + public FileContainer getPersistedFile(String filename, String mimeType) throws Exception { FolderContainer destinationFolder = getDestinationFolder(mimeType); ListResolver listResolver = destinationFolder.findByName(filename); List> itemContainers = listResolver.withMetadata().getContainers(); for(ItemContainer itemContainer : itemContainers) { if(itemContainer.getType()==ContainerType.FILE) { if(isPersistedFile((FileContainer) itemContainer, filename)) { - itemContainer.delete(); + this.persitedFile = (FileContainer) itemContainer; + return this.persitedFile; } } } + return this.persitedFile; + } + + + public void removePersistedFile(String filename, String mimeType) throws Exception { + getPersistedFile(filename, mimeType); + if(this.persitedFile !=null) { + this.persitedFile.delete(); + } } }