diff --git a/pom.xml b/pom.xml
index 2fb0c9c..4c0e483 100644
--- a/pom.xml
+++ b/pom.xml
@@ -227,7 +227,7 @@
org.gcube.common
home-library-model
provided
-
+
diff --git a/src/main/java/org/gcube/portlets/user/td/gwtservice/server/TDGWTServiceImpl.java b/src/main/java/org/gcube/portlets/user/td/gwtservice/server/TDGWTServiceImpl.java
index 9b4bbd1..dd27255 100644
--- a/src/main/java/org/gcube/portlets/user/td/gwtservice/server/TDGWTServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/td/gwtservice/server/TDGWTServiceImpl.java
@@ -7434,7 +7434,7 @@ public class TDGWTServiceImpl extends RemoteServiceServlet implements TDGWTServi
try {
FilesStorage filesStorage = new FilesStorage();
InputStream is = filesStorage.retrieveInputStream(serviceCredentials.getUserName(), wi);
-
+
FileUtil.setImportFileCodelistMapping(fileUploadSession, is, wi.getName(), Constants.FILE_XML_MIMETYPE);
} catch (Throwable e) {
FileUploadMonitor fum = SessionUtil.getFileUploadMonitor(httpRequest, serviceCredentials);
diff --git a/src/main/java/org/gcube/portlets/user/td/gwtservice/server/storage/FilesStorage.java b/src/main/java/org/gcube/portlets/user/td/gwtservice/server/storage/FilesStorage.java
index fc652a0..11376ca 100644
--- a/src/main/java/org/gcube/portlets/user/td/gwtservice/server/storage/FilesStorage.java
+++ b/src/main/java/org/gcube/portlets/user/td/gwtservice/server/storage/FilesStorage.java
@@ -1,24 +1,17 @@
package org.gcube.portlets.user.td.gwtservice.server.storage;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
-import org.gcube.common.homelibrary.home.HomeLibrary;
-import org.gcube.common.homelibrary.home.workspace.Workspace;
-import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
-import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder;
-import org.gcube.common.homelibrary.util.WorkspaceUtil;
import org.gcube.common.storagehub.client.StreamDescriptor;
import org.gcube.common.storagehub.client.dsl.FileContainer;
import org.gcube.common.storagehub.client.dsl.FolderContainer;
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
import org.gcube.common.storagehub.model.items.AbstractFileItem;
+import org.gcube.common.storagehub.model.items.FolderItem;
import org.gcube.contentmanagement.blobstorage.service.IClient;
import org.gcube.contentmanager.storageclient.wrapper.AccessType;
import org.gcube.contentmanager.storageclient.wrapper.MemoryType;
@@ -52,6 +45,8 @@ public class FilesStorage {
String remotePath = "/CSVimport/" + file.getName();
logger.debug("remotePath: " + remotePath);
String id = client.put(true).LFile(file.getAbsolutePath()).RFile(remotePath);
+ client.close();
+
return id;
} catch (Throwable e) {
@@ -75,6 +70,7 @@ public class FilesStorage {
String remotePath = "/CodelistMappingImport/" + file.getName();
logger.debug("remotePath: " + remotePath);
String id = client.put(true).LFile(file.getAbsolutePath()).RFile(remotePath);
+ client.close();
return id;
} catch (Throwable e) {
logger.error("Error no codelist mapping file loaded on storage" + e.getLocalizedMessage());
@@ -104,6 +100,7 @@ public class FilesStorage {
String remotePath = "/CodelistMappingImport/" + address.getFile();
logger.debug("remotePath: " + remotePath);
id = client.put(true).LFile(is).RFile(remotePath);
+ client.close();
}
return id;
@@ -115,7 +112,9 @@ public class FilesStorage {
}
/**
- * user
+ *
+ *
+ *
*
* @param user
* User
@@ -126,35 +125,35 @@ public class FilesStorage {
* @throws TDGWTServiceException
* Exception
*/
- public void retrieveFile(String user, WorkspaceItem wi, File file) throws TDGWTServiceException {
- try {
- logger.debug("retrieveFile: [user=" + user + ", item=" + wi + "]");
- StorageHubClient shc = new StorageHubClient();
- FileContainer fileContainer = shc.open(wi.getId()).asFile();
- StreamDescriptor streamDescriptor = fileContainer.download();
- try (BufferedInputStream bis = new BufferedInputStream(streamDescriptor.getStream())) {
- try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file))) {
-
- byte[] buffer = new byte[1024];
- int readCount;
- while ((readCount = bis.read(buffer)) > 0) {
- bos.write(buffer, 0, readCount);
- }
- } catch (Throwable e) {
- logger.error("Error trasferring file from storage: " + e.getLocalizedMessage(), e);
- throw new TDGWTServiceException("Error trasferring file from storage: " + e.getLocalizedMessage(),
- e);
- }
- }
-
- } catch (Throwable e) {
- logger.error("Error retrieving file from StorageHub", e);
- throw new TDGWTServiceException("Error retrieving file from StorageHub: " + e.getLocalizedMessage(), e);
- }
-
- }
+ /*
+ * public void retrieveFile(String user, WorkspaceItem wi, File file) throws
+ * TDGWTServiceException { try { logger.debug("retrieveFile: [user=" + user
+ * + ", item=" + wi + "]"); StorageHubClient shc = new StorageHubClient();
+ * FileContainer fileContainer = shc.open(wi.getId()).asFile();
+ * StreamDescriptor streamDescriptor = fileContainer.download(); try
+ * (BufferedInputStream bis = new
+ * BufferedInputStream(streamDescriptor.getStream())) { try
+ * (BufferedOutputStream bos = new BufferedOutputStream(new
+ * FileOutputStream(file))) {
+ *
+ * byte[] buffer = new byte[1024]; int readCount; while ((readCount =
+ * bis.read(buffer)) > 0) { bos.write(buffer, 0, readCount); } } catch
+ * (Throwable e) { logger.error("Error trasferring file from storage: " +
+ * e.getLocalizedMessage(), e); throw new
+ * TDGWTServiceException("Error trasferring file from storage: " +
+ * e.getLocalizedMessage(), e); } }
+ *
+ * } catch (Throwable e) {
+ * logger.error("Error retrieving file from StorageHub", e); throw new
+ * TDGWTServiceException("Error retrieving file from StorageHub: " +
+ * e.getLocalizedMessage(), e); }
+ *
+ * }
+ */
/**
+ *
+ *
*
* @param user
* User
@@ -165,6 +164,7 @@ public class FilesStorage {
* @throws TDGWTServiceException
* Exception
*/
+
public InputStream retrieveInputStream(String user, WorkspaceItem wi) throws TDGWTServiceException {
InputStream is = null;
try {
@@ -173,7 +173,7 @@ public class FilesStorage {
FileContainer fileContainer = shc.open(wi.getId()).asFile();
StreamDescriptor streamDescriptor = fileContainer.download();
is = streamDescriptor.getStream();
-
+
} catch (Throwable e) {
logger.error("Error retrieving file from StorageHub", e);
throw new TDGWTServiceException("Error retrieving file from StorageHub: " + e.getLocalizedMessage(), e);
@@ -186,7 +186,7 @@ public class FilesStorage {
/**
*
* @param uri
- * Usi
+ * Uri
* @return Input stream
* @throws TDGWTServiceException
* Exception
@@ -259,6 +259,7 @@ public class FilesStorage {
}
/**
+ *
*
* @param storageId
* Storage id
@@ -275,19 +276,22 @@ public class FilesStorage {
* @throws TDGWTServiceException
* Exception
*/
- public void createItemOnWorkspaceByStorageId(String storageId, String user, String itemName,
- String itemDescription, String itemMimetype, String itemFolder) throws TDGWTServiceException {
+ public void createItemOnWorkspaceByStorageId(String storageId, String user, String itemName, String itemDescription,
+ String itemMimetype, String itemFolder) throws TDGWTServiceException {
try {
+ IClient client = new StorageClient(user, AccessType.PUBLIC, MemoryType.VOLATILE).getClient();
- Workspace ws = HomeLibrary.getUserWorkspace(user);
-
- WorkspaceFolder folder = (WorkspaceFolder) ws.getItem(itemFolder);
- String uniqueName = WorkspaceUtil.getUniqueName(itemName, folder);
+ try (InputStream is = client.get().RFileAsInputStream(storageId)) {
- logger.debug("ws.createExternalFile [folder: " + folder + ", uniqueName: " + uniqueName + ", description: "
- + itemDescription + ", mimetype: " + itemMimetype + ", StorageId: " + storageId + "]");
- WorkspaceUtil.createExternalFile(folder, uniqueName, itemDescription, itemMimetype, storageId);
+ StorageHubClient shc = new StorageHubClient();
+ FolderContainer folderContainer = shc.open(itemFolder).asFolder();
+ FileContainer fileContainer = folderContainer.uploadFile(is, itemName, itemDescription);
+ AbstractFileItem afi = fileContainer.get();
+ logger.debug("Created file on workspace: " + afi.getId());
+ }
+ client.close();
+
} catch (Throwable e) {
logger.error("Error creating item on workspace: " + e.getLocalizedMessage(), e);
@@ -297,6 +301,7 @@ public class FilesStorage {
}
/**
+ *
*
* @param user
* User
@@ -309,12 +314,15 @@ public class FilesStorage {
public String getVREFolderIdByScope(String user, String scope) throws TDGWTServiceException {
try {
+ StorageHubClient shc = new StorageHubClient();
+ FolderContainer folderContainer = shc.openVREFolder();
+ FolderItem vreFolder = folderContainer.get();
- Workspace ws = HomeLibrary.getUserWorkspace(user);
- WorkspaceSharedFolder folder = ws.getVREFolderByScope(scope);
- if (folder != null) {
- return folder.getId();
+ if (vreFolder != null) {
+ logger.debug("VRE folder id: " + vreFolder.getId());
+ return vreFolder.getId();
} else {
+ logger.debug("VRE folder id: " + vreFolder);
return null;
}