diff --git a/.classpath b/.classpath
index edc6cd8..b95af1b 100644
--- a/.classpath
+++ b/.classpath
@@ -1,12 +1,12 @@
-
+
-
+
@@ -45,5 +45,5 @@
-
+
diff --git a/distro/changelog.xml b/distro/changelog.xml
index 1caa0b2..62d34de 100644
--- a/distro/changelog.xml
+++ b/distro/changelog.xml
@@ -1,4 +1,7 @@
+
+ Updated support to StorageHub [ticket #11724]
+
Updated to StorageHub [ticket #11724]
diff --git a/pom.xml b/pom.xml
index ad0e0a0..90ab4bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
4.0.0
org.gcube.portlets.user
statistical-algorithms-importer
- 1.12.0-SNAPSHOT
+ 1.13.0-SNAPSHOT
war
@@ -82,17 +82,6 @@
2.4.0
-
-
- org.gcube.contentmanagement
- storage-manager-core
- runtime
-
-
- org.gcube.contentmanagement
- storage-manager-wrapper
- runtime
-
@@ -101,23 +90,6 @@
runtime
-
-
- org.gcube.common
- home-library
- runtime
-
-
- org.gcube.common
- home-library-jcr
- runtime
-
-
- org.gcube.common
- home-library-model
- runtime
-
-
org.gcube.common
@@ -227,19 +199,6 @@
provided
-
-
- org.gcube.contentmanagement
- storage-manager-core
- provided
-
-
-
- org.gcube.contentmanagement
- storage-manager-wrapper
- provided
-
-
org.gcube.common
@@ -247,25 +206,6 @@
compile
-
-
- org.gcube.common
- home-library
- provided
-
-
-
- org.gcube.common
- home-library-jcr
- provided
-
-
-
- org.gcube.common
- home-library-model
- provided
-
-
org.json
@@ -323,12 +263,12 @@
[1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)
-
+
org.gcube.portlets.widgets
workspace-explorer
[2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)
-
+
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/social/AlgorithmNotification.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/social/AlgorithmNotification.java
index 008322f..2abb01f 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/social/AlgorithmNotification.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/social/AlgorithmNotification.java
@@ -9,21 +9,9 @@ import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
-import java.util.List;
import javax.servlet.http.HttpServletRequest;
-import org.gcube.applicationsupportlayer.social.ApplicationNotificationsManager;
-import org.gcube.applicationsupportlayer.social.NotificationsManager;
-import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingSite;
-import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingUser;
-import org.gcube.common.homelibrary.home.HomeLibrary;
-import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException;
-import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
-import org.gcube.common.homelibrary.home.workspace.Workspace;
-import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException;
-import org.gcube.portal.notifications.bean.GenericItemBean;
-import org.gcube.portal.notifications.thread.MessageNotificationsThread;
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.SessionUtil;
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.is.InformationSystemUtils;
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.util.ServiceCredentials;
@@ -211,7 +199,7 @@ public class AlgorithmNotification extends Thread {
if (serviceUp) {
sendByService();
} else {
- sendByNotificationManager();
+ //sendByNotificationManager();
}
}
@@ -316,6 +304,8 @@ public class AlgorithmNotification extends Thread {
}
+
+ /*
private void sendByNotificationManager() {
try {
Workspace workspace = HomeLibrary.getUserWorkspace(serviceCredentials.getUserName());
@@ -366,6 +356,6 @@ public class AlgorithmNotification extends Thread {
}
return addressee;
- }
+ } */
}
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/storage/FilesStorage.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/storage/FilesStorage.java
index 814a069..1d10d85 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/storage/FilesStorage.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/storage/FilesStorage.java
@@ -11,9 +11,6 @@ import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
-import org.gcube.common.homelibrary.home.HomeLibrary;
-import org.gcube.common.homelibrary.home.workspace.Workspace;
-import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
import org.gcube.common.storagehub.client.StreamDescriptor;
import org.gcube.common.storagehub.client.dsl.FileContainer;
import org.gcube.common.storagehub.client.dsl.FolderContainer;
@@ -60,7 +57,7 @@ public class FilesStorage {
public String getPublicLink(String user, String itemId) throws StatAlgoImporterServiceException {
try {
- logger.debug("getPublicLink: [user=" + user + ", itemId=" + itemId + "]");
+ logger.info("getPublicLink: [user=" + user + ", itemId=" + itemId + "]");
StorageHubClient shc = new StorageHubClient();
URL url = shc.open(itemId).asFile().getPublicLink();
return url.toString();
@@ -87,22 +84,19 @@ public class FilesStorage {
*/
public ItemDescription copyItemOnFolder(String user, String itemId, String folderId)
throws StatAlgoImporterServiceException {
- Workspace ws;
+
try {
logger.info("Copy item on folder: [user=" + user + ", itemId=" + itemId + ", folderId=" + folderId + "]");
-
- ws = HomeLibrary.getUserWorkspace(user);
-
- WorkspaceItem workSpaceItem = ws.getItem(folderId);
- if (!workSpaceItem.isFolder()) {
- throw new StatAlgoImporterServiceException("Destination is not a folder!");
- }
-
- WorkspaceItem item = ws.copy(itemId, folderId);
-
- ItemDescription itemDescription = new ItemDescription(item.getId(), item.getName(),
- item.getOwner().getPortalLogin(), item.getPath(), item.getType().name());
- itemDescription.setPublicLink(item.getPublicLink(false));
+ StorageHubClient shc = new StorageHubClient();
+ OpenResolver openResolverForFile = shc.open(itemId);
+ FileContainer fileContainer = openResolverForFile.asFile();
+ OpenResolver openResolverForFolder = shc.open(folderId);
+ FolderContainer folderContainer = openResolverForFolder.asFolder();
+ FileContainer fileCreatedContainer = fileContainer.copy(folderContainer, fileContainer.get().getName());
+ AbstractFileItem item = fileCreatedContainer.get();
+ ItemDescription itemDescription = new ItemDescription(item.getId(), item.getName(), item.getOwner(),
+ item.getPath(), item.getClass().getSimpleName());
+ itemDescription.setPublicLink(fileCreatedContainer.getPublicLink().toString());
return itemDescription;
} catch (Throwable e) {
@@ -130,23 +124,22 @@ public class FilesStorage {
*/
public ItemDescription copyItemOnFolderWithNewName(String user, String itemId, String folderId, String newName)
throws StatAlgoImporterServiceException {
- Workspace ws;
try {
logger.info("Copy item on folder with new name: [user=" + user + ", itemId=" + itemId + ", folderId="
+ folderId + ", newName=" + newName + "]");
- ws = HomeLibrary.getUserWorkspace(user);
-
- WorkspaceItem workSpaceItem = ws.getItem(folderId);
- if (!workSpaceItem.isFolder()) {
- throw new StatAlgoImporterServiceException("Destination is not a folder!");
- }
-
- WorkspaceItem item = ws.copy(itemId, newName, folderId);
-
- ItemDescription itemDescription = new ItemDescription(item.getId(), item.getName(),
- item.getOwner().getPortalLogin(), item.getPath(), item.getType().name());
+ StorageHubClient shc = new StorageHubClient();
+ OpenResolver openResolverForFile = shc.open(itemId);
+ FileContainer fileContainer = openResolverForFile.asFile();
+ OpenResolver openResolverForFolder = shc.open(folderId);
+ FolderContainer folderContainer = openResolverForFolder.asFolder();
+ FileContainer fileCreatedContainer = fileContainer.copy(folderContainer, newName);
+ AbstractFileItem item = fileCreatedContainer.get();
+ ItemDescription itemDescription = new ItemDescription(item.getId(), item.getName(), item.getOwner(),
+ item.getPath(), item.getClass().getSimpleName());
+ itemDescription.setPublicLink(fileCreatedContainer.getPublicLink().toString());
+ logger.debug("File created: " + itemDescription);
return itemDescription;
} catch (Throwable e) {
logger.error("Copy item on folder with new name on workspace: " + e.getLocalizedMessage(), e);
@@ -166,7 +159,7 @@ public class FilesStorage {
*/
public void deleteItemOnFolder(String user, String itemId) throws StatAlgoImporterServiceException {
try {
- logger.debug("Delete Item: [User=" + user + ", ItemId=" + itemId + "]");
+ logger.info("Delete Item: [User=" + user + ", ItemId=" + itemId + "]");
StorageHubClient shc = new StorageHubClient();
OpenResolver openResolver = shc.open(itemId);
@@ -253,7 +246,7 @@ public class FilesStorage {
FolderContainer folderContainer = openResolver.asFolder();
FolderContainer folderContainerNew = folderContainer.newFolder(folderName, folderDescription);
FolderItem folderCreated = folderContainerNew.get();
-
+
ItemDescription itemDescription = new ItemDescription(folderCreated.getId(), folderCreated.getName(),
folderCreated.getOwner(), folderCreated.getPath(), folderCreated.getClass().getSimpleName());
@@ -379,7 +372,7 @@ public class FilesStorage {
OpenResolver openResolver = shc.open(folderId);
FolderContainer folderContainer = openResolver.asFolder();
- folderContainer.uploadFile(inputStream, name, description);
+ folderContainer.uploadFile(inputStream, name, description);
return;
} catch (Throwable e) {
@@ -418,7 +411,7 @@ public class FilesStorage {
FolderContainer folderContainer = openResolver.asFolder();
FileContainer fileContainerNew = folderContainer.uploadFile(inputStream, name, description);
-
+
AbstractFileItem fileCreated = fileContainerNew.get();
ItemDescription itemDescription = new ItemDescription(fileCreated.getId(), fileCreated.getName(),
@@ -433,70 +426,6 @@ public class FilesStorage {
}
}
- /**
- *
- *
- *
- * @param user
- * User
- * @param inputStream
- * InputStream
- * @param name
- * Name
- * @param description
- * Description
- * @param mimeType
- * MimeType
- * @param folderName
- * Folder Path
- * @return Item description
- * @throws StatAlgoImporterServiceException
- * Exception
- */
- /*
- public ItemDescription createItemOnWorkspaceHowAdmin(String user, InputStream inputStream, String name,
- String description, String mimeType, String folderName) throws StatAlgoImporterServiceException {
- Workspace ws;
- try {
- logger.info("Create item on workspace how admin: [user=" + user + ", name=" + name + ", description="
- + description + ", mimeType=" + mimeType + ", folderName=" + folderName + "]");
- ws = HomeLibrary.getUserWorkspace(user);
- WorkspaceItem root = ws.getRoot();
- WorkspaceItem folderItem = ws.find(folderName, root.getId());
-
- if (folderItem == null || !folderItem.isFolder()) {
- throw new StatAlgoImporterServiceException("Destination " + folderName + " is not a valid folder!");
- }
-
- WorkspaceItem codeJar = ws.find(name, folderItem.getId());
- ItemDescription itemDescription;
- if (codeJar == null) {
- WorkspaceItem item = ws.createExternalFile(name, description, mimeType, inputStream,
- folderItem.getId());
-
- itemDescription = new ItemDescription(item.getId(), item.getName(), item.getOwner().getPortalLogin(),
- item.getPath(), item.getType().name());
- itemDescription.setPublicLink(item.getPublicLink(false));
-
- } else {
-
- ws.updateItem(codeJar.getId(), inputStream);
-
- itemDescription = new ItemDescription(codeJar.getId(), codeJar.getName(),
- codeJar.getOwner().getPortalLogin(), codeJar.getPath(), codeJar.getType().name());
- itemDescription.setPublicLink(codeJar.getPublicLink(false));
-
- }
-
- return itemDescription;
-
- } catch (Throwable e) {
- logger.error("Create item on workspace how admin: " + e.getLocalizedMessage(), e);
- throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
-
- }
- }*/
-
/**
*
*
@@ -897,7 +826,7 @@ public class FilesStorage {
}
}
} else {
- logger.info("Folder null: itemId=" + itemId + "]");
+ logger.debug("Folder null: itemId=" + itemId + "]");
}
logger.debug("Shared: " + shared);
diff --git a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/workspace/ItemDescription.java b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/workspace/ItemDescription.java
index 51c36fe..7752492 100644
--- a/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/workspace/ItemDescription.java
+++ b/src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/shared/workspace/ItemDescription.java
@@ -83,11 +83,7 @@ public class ItemDescription implements Serializable {
public boolean compareInfo(ItemDescription itemDescription){
- if(itemDescription!=null && id.compareTo(itemDescription.getId())==0 &&
- name.compareTo(itemDescription.getName())==0 &&
- owner.compareTo(itemDescription.getOwner())==0 &&
- type.compareTo(itemDescription.getType())==0
- ){
+ if(itemDescription!=null && id.compareTo(itemDescription.getId())==0){
return true;
} else {
return false;