From a0ded9b2bad1c3589ce0390692266955f36f1eed Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Mon, 25 Jan 2016 16:40:15 +0000 Subject: [PATCH] 1452: Implement a GUI for StatMan Algorithms Importer Task-Url: https://support.d4science.org/issues/1452 Added ZipFolder with exclude item git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/statistical-algorithms-importer@122496 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../server/storage/FilesStorage.java | 49 ++++++++++++++----- 1 file changed, 38 insertions(+), 11 deletions(-) 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 03302c0..79470e1 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 @@ -9,6 +9,7 @@ import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import java.nio.file.Path; +import java.util.List; import org.gcube.common.homelibrary.home.HomeLibrary; import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException; @@ -501,18 +502,17 @@ public class FilesStorage { try { org.gcube.common.homelibrary.home.workspace.folder.items.File gcubeItem = ((org.gcube.common.homelibrary.home.workspace.folder.items.File) wi); - is=gcubeItem.getData(); - - /* - SMPUrl smsHome = new SMPUrl(gcubeItem.getPublicLink()); + is = gcubeItem.getData(); - logger.debug("smsHome: [host:" + smsHome.getHost() + " path:" - + smsHome.getPath() + " ref:" + smsHome.getRef() - + " userinfo:" + smsHome.getUserInfo() + " ]"); - URLConnection uc = null; - uc = (URLConnection) smsHome.openConnection(); - is = uc.getInputStream(); - */ + /* + * SMPUrl smsHome = new SMPUrl(gcubeItem.getPublicLink()); + * + * logger.debug("smsHome: [host:" + smsHome.getHost() + " path:" + + * smsHome.getPath() + " ref:" + smsHome.getRef() + " userinfo:" + + * smsHome.getUserInfo() + " ]"); URLConnection uc = null; uc = + * (URLConnection) smsHome.openConnection(); is = + * uc.getInputStream(); + */ } catch (Exception e) { logger.error("Error retrieving file from storage", e); e.printStackTrace(); @@ -596,6 +596,33 @@ public class FilesStorage { } + public File zipFolder(String user, String folderId, + List idsToExclude) throws StatAlgoImporterServiceException { + Workspace ws; + try { + ws = HomeLibrary.getUserWorkspace(user); + + WorkspaceItem workSpaceItem = ws.getItem(folderId); + if (!workSpaceItem.isFolder()) { + throw new StatAlgoImporterServiceException( + "Item is not valid folder!"); + } + + WorkspaceFolder folder = (WorkspaceFolder) workSpaceItem; + + File fileZip = ZipUtil.zipFolder(folder, false, idsToExclude); + + return fileZip; + + } catch (IOException | InternalErrorException + | WorkspaceFolderNotFoundException | HomeNotFoundException + | ItemNotFoundException e) { + e.printStackTrace(); + throw new StatAlgoImporterServiceException(e.getLocalizedMessage()); + } + + } + public void downloadInputFile(String fileUrl, Path destination) throws StatAlgoImporterServiceException { try {