Added method to set isRoot property

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/Common/storagehub-client-wrapper@179056 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2019-04-17 09:40:46 +00:00
parent a34fa96a9a
commit 48c7fdaa9c
2 changed files with 53 additions and 26 deletions

View File

@ -52,11 +52,13 @@ import org.slf4j.LoggerFactory;
public final class WorkspaceStorageHubClientService implements Workspace{ public final class WorkspaceStorageHubClientService implements Workspace{
//public static final String ACCOUNTING_HL_NODE_NAME = "hl:accounting"; //public static final String ACCOUNTING_HL_NODE_NAME = "hl:accounting";
private static Logger logger = LoggerFactory.getLogger(WorkspaceStorageHubClientService.class); private static Logger LOGGER = LoggerFactory.getLogger(WorkspaceStorageHubClientService.class);
private StorageHubClientService storageHubClientService; private StorageHubClientService storageHubClientService;
private boolean withAccounting; private boolean withAccounting;
private boolean withFileDetails; private boolean withFileDetails;
private boolean withMapProperties; private boolean withMapProperties;
private WorkspaceFolder workspaceRoot = null;
/** /**
* Gets the storage hub client service. * Gets the storage hub client service.
@ -255,21 +257,43 @@ public final class WorkspaceStorageHubClientService implements Workspace{
*/ */
@Override @Override
public WorkspaceFolder getRoot() throws InternalErrorException, Exception{ public WorkspaceFolder getRoot() throws InternalErrorException, Exception{
logger.debug("Getting root"); LOGGER.debug("Getting root");
FolderItem root; FolderItem root;
try { try {
root = storageHubClientService.getRoot(); root = storageHubClientService.getRoot();
} }
catch (Exception e) { catch (Exception e) {
logger.error("Error on getting root: ", e); LOGGER.error("Error on getting root: ", e);
throw new InternalErrorException("Sorry an error occurred when getting the workspace root. Refresh and try again"); throw new InternalErrorException("Sorry an error occurred when getting the workspace root. Refresh and try again");
} }
WorkspaceFolder workspaceFolder = (WorkspaceFolder) HLMapper.toWorkspaceItem(root, withAccounting, withFileDetails, withMapProperties); WorkspaceFolder workspaceFolder = (WorkspaceFolder) HLMapper.toWorkspaceItem(root, withAccounting, withFileDetails, withMapProperties);
workspaceFolder.setRoot(true); workspaceFolder.setRoot(true);
workspaceRoot = workspaceFolder;
return workspaceFolder; return workspaceFolder;
} }
/**
* We need to perform this method to set the root attribute.
* No other way to get this information by SHUB
*
* @param item the item
* @return the workspace item
* @throws InternalErrorException the internal error exception
* @throws Exception the exception
*/
private WorkspaceItem setIsRoot(org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceItem item) throws InternalErrorException, Exception {
Validate.notNull(item,"The input item is null");
if(workspaceRoot==null) {
getRoot();
}
boolean isRoot = workspaceRoot.getId().compareTo(item.getId())==0;
item.setRoot(isRoot);
LOGGER.info("Is the item '"+item.getName()+"' with id '"+item.getId()+"' the root? " +item.isRoot());
return item;
}
/* (non-Javadoc) /* (non-Javadoc)
* @see org.gcube.portal.storagehubwrapper.shared.tohl.Workspace#getChildren(java.lang.String) * @see org.gcube.portal.storagehubwrapper.shared.tohl.Workspace#getChildren(java.lang.String)
*/ */
@ -317,6 +341,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
for (Item item : parents) { for (Item item : parents) {
WorkspaceItem child = HLMapper.toWorkspaceItem(item, withAccounting, withFileDetails, withMapProperties); WorkspaceItem child = HLMapper.toWorkspaceItem(item, withAccounting, withFileDetails, withMapProperties);
setIsRoot((org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceItem) child);
toParents.add(child); toParents.add(child);
} }
@ -341,7 +366,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
return (WorkspaceFolder) HLMapper.toWorkspaceItem(item, withAccounting, withFileDetails, withMapProperties); return (WorkspaceFolder) HLMapper.toWorkspaceItem(item, withAccounting, withFileDetails, withMapProperties);
} }
catch (Exception e) { catch (Exception e) {
logger.error("Error on creating the folder: ",e); LOGGER.error("Error on creating the folder: ",e);
throw new InternalErrorException(e.getMessage()); throw new InternalErrorException(e.getMessage());
} }
@ -372,10 +397,12 @@ public final class WorkspaceStorageHubClientService implements Workspace{
item = storageHubClientService.getItem(itemId, withAccounting, withMapProperties); item = storageHubClientService.getItem(itemId, withAccounting, withMapProperties);
} }
catch (Exception e) { catch (Exception e) {
logger.error("Error during get item with id: "+itemId,e); LOGGER.error("Error during get item with id: "+itemId,e);
throw new InternalErrorException(e.getMessage()); throw new InternalErrorException(e.getMessage());
} }
return HLMapper.toWorkspaceItem(item, withAccounting, withFileDetails, withMapProperties); WorkspaceItem workspaceItem = HLMapper.toWorkspaceItem(item, withAccounting, withFileDetails, withMapProperties);
setIsRoot((org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceItem) workspaceItem);
return workspaceItem;
} }
@ -411,7 +438,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
wsItem = HLMapper.toWorkspaceItem(item); wsItem = HLMapper.toWorkspaceItem(item);
} }
catch (Exception e) { catch (Exception e) {
logger.error("Error during uploading the file: "+fileName+" in the folderId: "+folderId, e); LOGGER.error("Error during uploading the file: "+fileName+" in the folderId: "+folderId, e);
String error = e.getMessage()!=null?e.getMessage():""; String error = e.getMessage()!=null?e.getMessage():"";
throw new InternalErrorException("Error during uploading the file: "+fileName+". "+error); throw new InternalErrorException("Error during uploading the file: "+fileName+". "+error);
@ -433,7 +460,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
Validate.notNull(folderId,"The input folderid is null"); Validate.notNull(folderId,"The input folderid is null");
return storageHubClientService.getSharedFolderMembers(folderId); return storageHubClientService.getSharedFolderMembers(folderId);
}catch (Exception e) { }catch (Exception e) {
logger.error("Error during get shared folder members with id: "+folderId,e); LOGGER.error("Error during get shared folder members with id: "+folderId,e);
throw new ItemNotFoundException(e.getMessage()); throw new ItemNotFoundException(e.getMessage());
} }
} }
@ -472,7 +499,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
return wsItems; return wsItems;
} }
catch (Exception e) { catch (Exception e) {
logger.error("Error during search items with name "+name+" in the parent id: "+folderId, e); LOGGER.error("Error during search items with name "+name+" in the parent id: "+folderId, e);
throw new InternalErrorException(e.getMessage()); throw new InternalErrorException(e.getMessage());
} }
} }
@ -492,7 +519,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
FolderItem folderItem = storageHubClientService.getRootSharedFolder(itemId); FolderItem folderItem = storageHubClientService.getRootSharedFolder(itemId);
return HLMapper.toWorkspaceItem(folderItem); return HLMapper.toWorkspaceItem(folderItem);
}catch(Exception e){ }catch(Exception e){
logger.error("Get root shared folder error: ", e); LOGGER.error("Get root shared folder error: ", e);
throw new Exception("Error on getting the root shared folder. "+e.getMessage()); throw new Exception("Error on getting the root shared folder. "+e.getMessage());
} }
} }
@ -512,7 +539,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
storageHubClientService.deleteItemById(itemId); storageHubClientService.deleteItemById(itemId);
}catch(Exception e){ }catch(Exception e){
logger.error("Delete item by id error: "+e.getMessage()); LOGGER.error("Delete item by id error: "+e.getMessage());
throw new Exception("Erro on deleting the item. "+e.getMessage()); throw new Exception("Erro on deleting the item. "+e.getMessage());
} }
} }
@ -554,7 +581,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
wsItem = HLMapper.toWorkspaceItem(item); wsItem = HLMapper.toWorkspaceItem(item);
} }
catch (Exception e) { catch (Exception e) {
logger.error("Error during uploading the archive: "+extractionFolderName+" in the folderId: "+folderId, e); LOGGER.error("Error during uploading the archive: "+extractionFolderName+" in the folderId: "+folderId, e);
String error = e.getMessage()!=null?e.getMessage():""; String error = e.getMessage()!=null?e.getMessage():"";
throw new InternalErrorException("Error on uploading the archive. "+error); throw new InternalErrorException("Error on uploading the archive. "+error);
} }
@ -667,7 +694,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
StreamDescriptor streamDesc = storageHubClientService.downloadFile(itemId, versionName, nodeIdsToExclude); StreamDescriptor streamDesc = storageHubClientService.downloadFile(itemId, versionName, nodeIdsToExclude);
return new org.gcube.common.storagehubwrapper.shared.tohl.impl.StreamDescriptor(streamDesc.getStream(), streamDesc.getFileName(), null, null); return new org.gcube.common.storagehubwrapper.shared.tohl.impl.StreamDescriptor(streamDesc.getStream(), streamDesc.getFileName(), null, null);
} catch (Exception e) { } catch (Exception e) {
logger.error("Error on downloading the file: "+fileName+ " with id: "+itemId, e); LOGGER.error("Error on downloading the file: "+fileName+ " with id: "+itemId, e);
String error = e.getMessage()!=null?e.getMessage():""; String error = e.getMessage()!=null?e.getMessage():"";
throw new Exception("Error on downloading the file: "+fileName+". "+error); throw new Exception("Error on downloading the file: "+fileName+". "+error);
} }
@ -691,7 +718,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
StreamDescriptor streamDesc = storageHubClientService.downloadFolder(folderId, nodeIdsToExclude); StreamDescriptor streamDesc = storageHubClientService.downloadFolder(folderId, nodeIdsToExclude);
return new org.gcube.common.storagehubwrapper.shared.tohl.impl.StreamDescriptor(streamDesc.getStream(), streamDesc.getFileName(), null, null); return new org.gcube.common.storagehubwrapper.shared.tohl.impl.StreamDescriptor(streamDesc.getStream(), streamDesc.getFileName(), null, null);
} catch (Exception e) { } catch (Exception e) {
logger.error("Error on downloading the folder: "+folderName+ " with id: "+folderId, e); LOGGER.error("Error on downloading the folder: "+folderName+ " with id: "+folderId, e);
String error = e.getMessage()!=null?e.getMessage():""; String error = e.getMessage()!=null?e.getMessage():"";
throw new Exception("Error on downloading the folder: "+folderName+". "+error); throw new Exception("Error on downloading the folder: "+folderName+". "+error);
} }
@ -722,7 +749,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
Item movedItem = storageHubClientService.moveItem(itemId, destFolderContainer); Item movedItem = storageHubClientService.moveItem(itemId, destFolderContainer);
toReturnItems.add(HLMapper.toWorkspaceItem(movedItem)); toReturnItems.add(HLMapper.toWorkspaceItem(movedItem));
}catch(Exception e){ }catch(Exception e){
logger.error("Error on moving the item with id: "+itemId+ " in the folder id: "+destFolderContainer.get().getId(), e); LOGGER.error("Error on moving the item with id: "+itemId+ " in the folder id: "+destFolderContainer.get().getId(), e);
throw e; throw e;
} }
} }
@ -730,7 +757,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
return toReturnItems; return toReturnItems;
} catch (Exception e) { } catch (Exception e) {
logger.error("Error on moving item in the folder with id: "+folderDestinationId + e.getMessage()); LOGGER.error("Error on moving item in the folder with id: "+folderDestinationId + e.getMessage());
String error = e.getMessage()!=null?e.getMessage():""; String error = e.getMessage()!=null?e.getMessage():"";
throw new Exception("Error on moving item/s. "+error); throw new Exception("Error on moving item/s. "+error);
} }
@ -762,14 +789,14 @@ public final class WorkspaceStorageHubClientService implements Workspace{
AbstractFileItem toReturnItem = storageHubClientService.copyFileItem(itemId, destFolderContainer, null); AbstractFileItem toReturnItem = storageHubClientService.copyFileItem(itemId, destFolderContainer, null);
toReturnItems.add(HLMapper.toWorkspaceItem(toReturnItem)); toReturnItems.add(HLMapper.toWorkspaceItem(toReturnItem));
}catch(Exception e){ }catch(Exception e){
logger.error("Error on copying the item with id: "+itemId+ " in the folder id: "+destFolderContainer.get().getId(), e); LOGGER.error("Error on copying the item with id: "+itemId+ " in the folder id: "+destFolderContainer.get().getId(), e);
} }
} }
return toReturnItems; return toReturnItems;
} catch (Exception e) { } catch (Exception e) {
logger.error("Error on copying item/items in the folder with id: "+folderDestinationId, e); LOGGER.error("Error on copying item/items in the folder with id: "+folderDestinationId, e);
String error = e.getMessage()!=null?e.getMessage():""; String error = e.getMessage()!=null?e.getMessage():"";
throw new Exception("Error on copying item/s. "+error); throw new Exception("Error on copying item/s. "+error);
} }
@ -815,7 +842,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
Item item = storageHubClientService.renameItem(itemId, newName); Item item = storageHubClientService.renameItem(itemId, newName);
return HLMapper.toWorkspaceItem(item); return HLMapper.toWorkspaceItem(item);
}catch(Exception e){ }catch(Exception e){
logger.error("Error on renaming item with id: "+itemId, e); LOGGER.error("Error on renaming item with id: "+itemId, e);
String error = e.getMessage()!=null?e.getMessage():"Operation not allowed"; String error = e.getMessage()!=null?e.getMessage():"Operation not allowed";
throw new Exception("Error on renaming. "+error); throw new Exception("Error on renaming. "+error);
} }
@ -835,7 +862,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
try{ try{
return storageHubClientService.getPublicLinkForFile(fileItemId); return storageHubClientService.getPublicLinkForFile(fileItemId);
}catch(Exception e){ }catch(Exception e){
logger.error("Error on getting public link: "+fileItemId, e); LOGGER.error("Error on getting public link: "+fileItemId, e);
String error = e.getMessage()!=null?e.getMessage():"Operation not allowed"; String error = e.getMessage()!=null?e.getMessage():"Operation not allowed";
throw new Exception("Error on getting public link. "+error); throw new Exception("Error on getting public link. "+error);
} }
@ -855,7 +882,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
try{ try{
return storageHubClientService.getPublicLinkForFileVersion(fileItemId, version); return storageHubClientService.getPublicLinkForFileVersion(fileItemId, version);
}catch(Exception e){ }catch(Exception e){
logger.error("Error on getting public link for file: "+fileItemId +" with version: "+version, e); LOGGER.error("Error on getting public link for file: "+fileItemId +" with version: "+version, e);
String error = e.getMessage()!=null?e.getMessage():"Operation not allowed"; String error = e.getMessage()!=null?e.getMessage():"Operation not allowed";
throw new Exception("Error on getting public link for file: "+fileItemId +" with version: "+version+". Error: "+error); throw new Exception("Error on getting public link for file: "+fileItemId +" with version: "+version+". Error: "+error);
} }
@ -874,7 +901,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
List<Version> versions = storageHubClientService.getListVersions(fileItemId); List<Version> versions = storageHubClientService.getListVersions(fileItemId);
if(versions==null || versions.size()==0){ if(versions==null || versions.size()==0){
logger.info("No version found for fileItemId: "+fileItemId); LOGGER.info("No version found for fileItemId: "+fileItemId);
return new ArrayList<WorkspaceFileVersion>(1); return new ArrayList<WorkspaceFileVersion>(1);
} }
@ -887,7 +914,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
return listVersions; return listVersions;
}catch(Exception e){ }catch(Exception e){
logger.error("Error on getting list of versions for: "+fileItemId, e); LOGGER.error("Error on getting list of versions for: "+fileItemId, e);
String error = e.getMessage()!=null?e.getMessage():"Operation not allowed"; String error = e.getMessage()!=null?e.getMessage():"Operation not allowed";
throw new Exception("Error on getting public link. "+error); throw new Exception("Error on getting public link. "+error);
} }
@ -909,7 +936,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
return new org.gcube.common.storagehubwrapper.shared.tohl.impl.StreamDescriptor(new ByteArrayInputStream(thumbBytes), null, new Long(thumbBytes.length),imgContent.getMimeType()); return new org.gcube.common.storagehubwrapper.shared.tohl.impl.StreamDescriptor(new ByteArrayInputStream(thumbBytes), null, new Long(thumbBytes.length),imgContent.getMimeType());
}catch(Exception e){ }catch(Exception e){
logger.error("Error on getThumbnailData for: "+itemId, e); LOGGER.error("Error on getThumbnailData for: "+itemId, e);
throw new Exception("Error on getting the Thumbnail. "+e.getMessage()); throw new Exception("Error on getting the Thumbnail. "+e.getMessage());
} }
} }
@ -926,7 +953,7 @@ public final class WorkspaceStorageHubClientService implements Workspace{
return storageHubClientService.getMetadata(itemId); return storageHubClientService.getMetadata(itemId);
}catch(Exception e){ }catch(Exception e){
logger.error("Error on getting Metadata for: "+itemId, e); LOGGER.error("Error on getting Metadata for: "+itemId, e);
throw new Exception("Error on getting Metadata for: "+itemId); throw new Exception("Error on getting Metadata for: "+itemId);
} }
} }

View File

@ -337,7 +337,7 @@ public class HLMapper {
theItem.setAccounting(accountingEntries); theItem.setAccounting(accountingEntries);
theItem.setType(type); theItem.setType(type);
theItem.setFolder(isFolder); theItem.setFolder(isFolder);
theItem.setRoot(isRoot); //IS ALWAYS FALSE theItem.setRoot(isRoot); //THIS IS ALWAYS FALSE. SHUB DOES NOT RETURN THIS INFORMATION
theItem.setPropertyMap(pm); theItem.setPropertyMap(pm);
logger.debug("Wrapped WsItem: "+theItem); logger.debug("Wrapped WsItem: "+theItem);