diff --git a/.classpath b/.classpath
index 5192f95..778528c 100644
--- a/.classpath
+++ b/.classpath
@@ -1,12 +1,12 @@
-
+
-
+
@@ -34,5 +34,5 @@
-
+
diff --git a/distro/changelog.xml b/distro/changelog.xml
index 03eb1e7..1d8f401 100644
--- a/distro/changelog.xml
+++ b/distro/changelog.xml
@@ -1,4 +1,8 @@
+
+ Updated to StorageHub [ticket #11725]
+
Support Java 8 compatibility [ticket #8541]
diff --git a/pom.xml b/pom.xml
index b242519..25af63a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
org.gcube.portlets.widgets
github-connector
- 1.4.0-SNAPSHOT
+ 1.5.0-SNAPSHOT
jar
github-connector
@@ -89,20 +89,10 @@
runtime
-
+
org.gcube.common
- home-library
- runtime
-
-
- org.gcube.common
- home-library-jcr
- runtime
-
-
- org.gcube.common
- home-library-model
+ storagehub-client-library
runtime
@@ -201,29 +191,14 @@
provided
-
-
-
-
+
org.gcube.common
- home-library
- provided
-
-
-
- org.gcube.common
- home-library-jcr
- provided
-
-
-
- org.gcube.common
- home-library-model
+ storagehub-client-library
provided
+
org.eclipse.mylyn.github
diff --git a/src/main/java/org/gcube/portlets/widgets/githubconnector/server/git/GitConnectorService.java b/src/main/java/org/gcube/portlets/widgets/githubconnector/server/git/GitConnectorService.java
index 3c8a4e1..9e51a82 100644
--- a/src/main/java/org/gcube/portlets/widgets/githubconnector/server/git/GitConnectorService.java
+++ b/src/main/java/org/gcube/portlets/widgets/githubconnector/server/git/GitConnectorService.java
@@ -167,7 +167,8 @@ public class GitConnectorService {
+ destinationFolderId + ", folderName="
+ contents.getName() + ", folderDescription="
+ contents.getName() + "]");
- String internalFolderId=StorageUtil.createFolderOnWorkspace(userName, destinationFolderId,
+ StorageUtil storageUtil=new StorageUtil();
+ String internalFolderId=storageUtil.createFolderOnWorkspace(userName, destinationFolderId,
contents.getName(), contents.getName());
createContent(internalFolderId, repository, contents.getPath());
@@ -198,7 +199,8 @@ public class GitConnectorService {
.getBytes());
InputStream is = new ByteArrayInputStream(decodedBytes);
- StorageUtil.saveOnWorkspace(userName, destinationFolderId,
+ StorageUtil storageUtil=new StorageUtil();
+ storageUtil.saveOnWorkspace(userName, destinationFolderId,
contents.getName(), contents.getName(), is);
// logger.debug(new String(decodedBytes));
}
diff --git a/src/main/java/org/gcube/portlets/widgets/githubconnector/server/storage/StorageUtil.java b/src/main/java/org/gcube/portlets/widgets/githubconnector/server/storage/StorageUtil.java
index c25b478..9596c41 100644
--- a/src/main/java/org/gcube/portlets/widgets/githubconnector/server/storage/StorageUtil.java
+++ b/src/main/java/org/gcube/portlets/widgets/githubconnector/server/storage/StorageUtil.java
@@ -3,18 +3,14 @@ package org.gcube.portlets.widgets.githubconnector.server.storage;
import java.io.InputStream;
import org.apache.log4j.Logger;
-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.WorkspaceFolder;
-import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
-import org.gcube.common.homelibrary.home.workspace.exceptions.InsufficientPrivilegesException;
-import org.gcube.common.homelibrary.home.workspace.exceptions.ItemAlreadyExistException;
-import org.gcube.common.homelibrary.home.workspace.exceptions.ItemNotFoundException;
-import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException;
-import org.gcube.common.homelibrary.home.workspace.exceptions.WrongDestinationException;
-import org.gcube.common.homelibrary.home.workspace.folder.items.ExternalFile;
+import org.gcube.common.storagehub.client.dsl.FileContainer;
+import org.gcube.common.storagehub.client.dsl.FolderContainer;
+import org.gcube.common.storagehub.client.dsl.ItemContainer;
+import org.gcube.common.storagehub.client.dsl.OpenResolver;
+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.common.storagehub.model.items.Item;
import org.gcube.portlets.widgets.githubconnector.shared.exception.ServiceException;
/**
@@ -36,22 +32,21 @@ public class StorageUtil {
* @throws ServiceException
* service exception
*/
- public static void deleteItem(String user, String itemId) throws ServiceException {
- Workspace ws;
+ public void deleteItem(String user, String itemId) throws ServiceException {
try {
- logger.debug("User: " + user + ", ItemId:" + itemId);
- ws = HomeLibrary.getUserWorkspace(user);
+ logger.info("Delete Item: [User=" + user + ", ItemId=" + itemId + "]");
+ StorageHubClient shc = new StorageHubClient();
+ OpenResolver openResolver = shc.open(itemId);
- ws.removeItems(itemId);
+ ItemContainer- itemContainer = openResolver.asItem();
+ itemContainer.delete();
return;
- } catch (InsufficientPrivilegesException | WorkspaceFolderNotFoundException | InternalErrorException
- | HomeNotFoundException | ItemNotFoundException e) {
- e.printStackTrace();
+ } catch (Throwable e) {
+ logger.error("Delete Item on workspace: " + e.getLocalizedMessage(), e);
throw new ServiceException(e.getLocalizedMessage(), e);
}
-
}
/**
@@ -68,65 +63,65 @@ public class StorageUtil {
* @throws ServiceException
* service exception
*/
- public static String createFolderOnWorkspace(String user, String destinationFolderId, String folderName,
+ public String createFolderOnWorkspace(String user, String destinationFolderId, String folderName,
String folderDescription) throws ServiceException {
try {
- logger.debug("CreateFolderOnWorkspace: [User=" + user + ", FolderId:" + destinationFolderId
- + ", folderName=" + folderName + ", folderDescription=" + folderDescription + "]");
- Workspace ws = HomeLibrary.getUserWorkspace(user);
- WorkspaceFolder workspaceFolder = ws.createFolder(folderName, folderDescription, destinationFolderId);
- return workspaceFolder.getId();
+ logger.info("CreateFolderOnWorkspace: [User=" + user + ", FolderId:" + destinationFolderId + ", folderName="
+ + folderName + ", folderDescription=" + folderDescription + "]");
- } catch (WorkspaceFolderNotFoundException | InternalErrorException | HomeNotFoundException
- | InsufficientPrivilegesException | ItemAlreadyExistException | WrongDestinationException
- | ItemNotFoundException e) {
- logger.error("CreateFolderOnWorkspace: " + e.getLocalizedMessage());
- e.printStackTrace();
+ StorageHubClient shc = new StorageHubClient();
+ OpenResolver openResolver = shc.open(destinationFolderId);
+
+ FolderContainer parentFolderContainer = openResolver.asFolder();
+ FolderContainer folderContainer = parentFolderContainer.newFolder(folderName, folderDescription);
+ FolderItem folderItem = folderContainer.get();
+
+ logger.debug("Folder created: " + folderItem.getId());
+ return folderItem.getId();
+ } catch (Throwable e) {
+ logger.error("Error in create folder on workspace: " + e.getLocalizedMessage(), e);
throw new ServiceException(e.getLocalizedMessage(), e);
}
+
}
/**
*
* @param user
* user
- * @param destinationFolderId
+ * @param folderId
* destination folder id
- * @param fileName
+ * @param name
* file name
- * @param fileDescription
+ * @param description
* file description
- * @param is
+ * @param inputStream
* input stream
* @return file id
* @throws ServiceException
* service exception
*/
- public static String saveOnWorkspace(String user, String destinationFolderId, String fileName,
- String fileDescription, InputStream is) throws ServiceException {
+ public String saveOnWorkspace(String user, String folderId, String name, String description,
+ InputStream inputStream) throws ServiceException {
try {
- logger.debug("saveOnWorkspace: [User=" + user + ", FolderId:" + destinationFolderId + ", fileName="
- + fileName + ", fileDescription=" + fileDescription + "]");
- Workspace ws = HomeLibrary.getUserWorkspace(user);
+ logger.info("Save item on workspace: [user=" + user + ", name=" + name + ", description=" + description
+ + ", folderId=" + folderId + "]");
+ StorageHubClient shc = new StorageHubClient();
+ OpenResolver openResolver = shc.open(folderId);
- WorkspaceItem workspaceItem = ws.getItem(destinationFolderId);
- if (workspaceItem.isFolder()) {
- ExternalFile externalfile = ws.createExternalFile(fileName, fileDescription, null, is,
- destinationFolderId);
- return externalfile.getId();
- } else {
- throw new ServiceException("Invalid destination folder!");
- }
+ FolderContainer folderContainer = openResolver.asFolder();
+ FileContainer fileContainer = folderContainer.uploadFile(inputStream, name, description);
+ AbstractFileItem abstractFileItem = fileContainer.get();
- } catch (WorkspaceFolderNotFoundException | InternalErrorException | HomeNotFoundException
- | InsufficientPrivilegesException | ItemAlreadyExistException | WrongDestinationException
- | ItemNotFoundException e) {
- logger.error("SaveOnWorkspace: " + e.getLocalizedMessage());
- e.printStackTrace();
+ logger.debug("File saved id: " + abstractFileItem.getId());
+ return abstractFileItem.getId();
+ } catch (Throwable e) {
+ logger.error("Save item on workspace: " + e.getLocalizedMessage(), e);
throw new ServiceException(e.getLocalizedMessage(), e);
}
+
}
}