moved to SHUB getItemForFileGrid

git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@179905 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2019-06-19 12:10:24 +00:00
parent 6a1fc7cb54
commit bf1cd86926
3 changed files with 126 additions and 116 deletions

View File

@ -10,6 +10,7 @@
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src/main/resources"/>

View File

@ -5,4 +5,5 @@ org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.7

View File

@ -133,16 +133,11 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
/**
* Gets the workspace.
*
*
* @return Workspace
* @throws InternalErrorException
* Internal error
* @throws HomeNotFoundException
* Home not found error
* @throws WorkspaceFolderNotFoundException
* Folder not found error
* @throws org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException
* StorageHub Internal error
* @throws InternalErrorException Internal error
* @throws InternalErrorException Internal error
* @throws HomeNotFoundException Home not found error
* @throws WorkspaceFolderNotFoundException Folder not found error
*/
protected Workspace getWorkspace()
throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException,
@ -287,49 +282,6 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
return sfReader.getSpecialFolderName();
}
/*
* (non-Javadoc)
*
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#
* getItemForFileGrid(java.lang.String)
*/
/**
* Gets the item for file grid.
*
* @param itemId
* the item id
* @return the item for file grid
* @throws Exception
* the exception
*/
@Override
public FileGridModel getItemForFileGrid(String itemId) throws Exception {
try {
if (itemId == null)
throw new Exception(IDENTIFIER_IS_NULL);
Workspace workspace = getWorkspace();
workspaceLogger.trace("get child for Grid by id: " + itemId);
WorkspaceItem wsItem = workspace.getItem(itemId);
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
Long startTime = System.currentTimeMillis();
Long endTime = System.currentTimeMillis() - startTime;
String time = String.format("%d msc %d sec", endTime, TimeUnit.MILLISECONDS.toSeconds(endTime));
workspaceLogger.debug("get child for Grid by id returning element in " + time);
// BUILD PARENT
WorkspaceFolder folder = wsItem.getParent(); // get parent
FileGridModel wsFolder = builder.buildGXTFileGridModelItem(folder, null);
// BUILD ITEM
return builder.buildGXTFileGridModelItem(wsItem, wsFolder);
} catch (Exception e) {
workspaceLogger.error("Error in server during item retrieving, getItemForFileGrid", e);
String error = ConstantsExplorer.SERVER_ERROR + RETRIEVING_ITEM_EITHER_ITEM_DOESN_T_EXIST;
throw new Exception(error);
}
}
/*
* (non-Javadoc)
@ -2223,70 +2175,6 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
return listOfVres;
}
/**
* Check item locked.
*
* @param itemId
* the item id
* @return true, if successful
* @throws WorkspaceFolderLocked
* the workspace folder locked
* @throws Exception
* the exception
*/
private boolean checkItemLocked(String itemId) throws WorkspaceFolderLocked, Exception {
if (itemId == null || itemId.isEmpty())
throw new Exception(IDENTIFIER_IS_NULL);
Workspace ws;
WorkspaceItem workItem = null;
try {
ws = getWorkspace();
workItem = ws.getItem(itemId);
// IF THE ITEM IS A FOLDER, CHECKING IT
if (workItem.isFolder())
WorkspaceThreddsSynchronize.getInstance().checkItemSynched(workItem.getId());
else {
// IF THE ITEM IS A FILE, CHECKING ITS PARENT
WorkspaceFolder parent = workItem.getParent();
if (parent != null) {
WorkspaceThreddsSynchronize.getInstance().checkItemSynched(parent.getId());
}
}
// in this case the folder is synched but not locked
return false;
} catch (ItemNotSynched e1) {
// in this case the folder is not synched;
return false;
} catch (WorkspaceFolderLocked e2) {
// in this case the folder synching is on-going and the folder is
// locked;
String msg = "The folder";
msg += workItem != null ? ": " + workItem.getName() : "";
msg += " is locked by a sync. You can not change its content";
workspaceLogger.warn(msg, e2);
throw new WorkspaceFolderLocked(itemId, msg);
} catch (InternalErrorException | ItemNotFoundException | HomeNotFoundException
| WorkspaceFolderNotFoundException e) {
workspaceLogger.warn(e);
throw new Exception("Sorry an error occurred during checking is folder locked, Refresh and try again");
} catch (Exception e) {
workspaceLogger
.warn("Was there an Exception HL side? Ignoring it.. returning false (that means item not locked)");
return false;
}
}
/**
* Checks if is item under sync.
*
@ -3771,5 +3659,125 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
}
}
/**
* Check item locked.
*
* @param itemId the item id
* @return true, if successful
* @throws WorkspaceFolderLocked the workspace folder locked
* @throws Exception the exception
*/
private boolean checkItemLocked(String itemId) throws WorkspaceFolderLocked, Exception {
if (itemId == null || itemId.isEmpty())
throw new Exception(IDENTIFIER_IS_NULL);
org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = null;
org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = null;
try {
workspace = getWorkspaceFromStorageHub();
wsItem = workspace.getItem(itemId);
// IF THE ITEM IS A FOLDER, CHECKING IT
if (wsItem.isFolder())
WorkspaceThreddsSynchronize.getInstance().checkItemSynched(wsItem.getId());
else {
// IF THE ITEM IS A FILE, CHECKING ITS PARENT
String parentId = wsItem.getParentId();
if(parentId==null) {
workspaceLogger.warn("I'm not able to check the lock because the parent id is null");
}else {
WorkspaceThreddsSynchronize.getInstance().checkItemSynched(parentId);
}
}
// in this case the folder is synched but not locked
return false;
} catch (ItemNotSynched e1) {
// in this case the folder is not synched;
return false;
} catch (WorkspaceFolderLocked e2) {
// in this case the folder synching is on-going and the folder is
// locked;
String msg = "The folder";
msg += wsItem != null ? ": " + wsItem.getName() : "";
msg += " is locked by a sync. You can not change its content";
workspaceLogger.warn(msg, e2);
throw new WorkspaceFolderLocked(itemId, msg);
} catch (InternalErrorException | ItemNotFoundException | HomeNotFoundException
| WorkspaceFolderNotFoundException e) {
workspaceLogger.warn(e);
throw new Exception("Sorry an error occurred during checking is folder locked, Refresh and try again");
} catch (Exception e) {
workspaceLogger
.warn("Was there an Exception HL side? Ignoring it.. returning false (that means item not locked)");
return false;
}
}
/*
* (non-Javadoc)
*
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#
* getItemForFileGrid(java.lang.String)
*/
/**
* Gets the item for file grid.
*
* @param itemId
* the item id
* @return the item for file grid
* @throws Exception
* the exception
*/
@Override
public FileGridModel getItemForFileGrid(String itemId) throws Exception {
try {
//TOOD MOVE TO SHUB
if (itemId == null)
throw new Exception(IDENTIFIER_IS_NULL);
org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = null;
org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = null;
workspace = getWorkspaceFromStorageHub();
wsItem = workspace.getItem(itemId);
StorageHubToWorkpaceConverter converter = getStorageHubToWorkpaceConverter();
FileModel parentModel = null;
if(wsItem.getParentId()!=null) {
org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem parent = workspace.getItem(wsItem.getParentId());
parentModel = converter.toTreeFileModel(parent, null, parent.isShared());
}
return converter.toGridFileModel(wsItem, parentModel);
/*GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
Long startTime = System.currentTimeMillis();
Long endTime = System.currentTimeMillis() - startTime;
String time = String.format("%d msc %d sec", endTime, TimeUnit.MILLISECONDS.toSeconds(endTime));
workspaceLogger.debug("get child for Grid by id returning element in " + time);
// BUILD PARENT
WorkspaceFolder folder = wsItem.getParent(); // get parent
FileGridModel wsFolder = builder.buildGXTFileGridModelItem(folder, null);
// BUILD ITEM
return builder.buildGXTFileGridModelItem(wsItem, wsFolder);*/
} catch (Exception e) {
workspaceLogger.error("Error in server during item retrieving, getItemForFileGrid", e);
String error = ConstantsExplorer.SERVER_ERROR + RETRIEVING_ITEM_EITHER_ITEM_DOESN_T_EXIST;
throw new Exception(error);
}
}
}