added method get the Workspace from StorageHub

git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@171534 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2018-09-20 10:07:13 +00:00
parent 023c1eef63
commit e90cb8f26d
3 changed files with 58 additions and 24 deletions

14
pom.xml
View File

@ -130,6 +130,20 @@
<artifactId>ws-thredds-sync-widget</artifactId> <artifactId>ws-thredds-sync-widget</artifactId>
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version> <version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
<scope>compile</scope> <scope>compile</scope>
<exclusions>
<exclusion>
<artifactId>home-library-model</artifactId>
<groupId>org.gcube.common</groupId>
</exclusion>
<exclusion>
<artifactId>home-library-jcr</artifactId>
<groupId>org.gcube.common</groupId>
</exclusion>
<exclusion>
<artifactId>home-library</artifactId>
<groupId>org.gcube.common</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<!-- FWS --> <!-- FWS -->

View File

@ -140,19 +140,27 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
return WsUtil.getGWTWorkspaceBuilder(this.getThreadLocalRequest()); return WsUtil.getGWTWorkspaceBuilder(this.getThreadLocalRequest());
} }
/**
* Gets the workspace.
* protected Workspace getWorkspace() throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException, org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException
* @return the workspace
* @throws InternalErrorException the internal error exception
* @throws HomeNotFoundException the home not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
*/
protected Workspace getWorkspace() throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException
{ {
return WsUtil.getWorkspace(this.getThreadLocalRequest()); return WsUtil.getWorkspace(this.getThreadLocalRequest());
} }
/**
* Gets the workspace from storage hub.
*
* @return the workspace from storage hub
* @throws Exception the exception
*/
protected org.gcube.common.storagehubwrapper.server.tohl.Workspace getWorkspaceFromStorageHub() throws Exception
{
GCubeUser user = PortalContext.getConfiguration().getCurrentUser(this.getThreadLocalRequest());
StorageHubWrapper storageHubWrapper = WsUtil.getStorageHubWrapper(this.getThreadLocalRequest(), null, user);
return storageHubWrapper.getWorkspace();
}
/** /**
* Gets the notification producer. * Gets the notification producer.
* *
@ -963,21 +971,20 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
checkItemLocked(itemId); checkItemLocked(itemId);
GCubeUser user = PortalContext.getConfiguration().getCurrentUser(this.getThreadLocalRequest()); org.gcube.common.storagehubwrapper.server.tohl.Workspace workspaceSH = getWorkspaceFromStorageHub();
StorageHubWrapper storageHubWrapper = WsUtil.getStorageHubWrapper(this.getThreadLocalRequest(), null, user); org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem theItem = workspaceSH.getItem(itemId);
org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem theItem = storageHubWrapper.getWorkspace().getItem(itemId);
boolean sourceItemIsShared = theItem.isShared(); boolean sourceItemIsShared = theItem.isShared();
String itemName = theItem.getName(); String itemName = theItem.getName();
String sourceFolderSharedId = null; String sourceFolderSharedId = null;
if(sourceItemIsShared){ if(sourceItemIsShared){
org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem rootSharedFolder = storageHubWrapper.getWorkspace().getRootSharedFolder(itemId); org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem rootSharedFolder = workspaceSH.getRootSharedFolder(itemId);
sourceFolderSharedId = rootSharedFolder.getId(); sourceFolderSharedId = rootSharedFolder.getId();
} }
//HERE REMOVING THE ITEM //HERE REMOVING THE ITEM
workspaceLogger.info("Calling storageHub to delete item with id: "+itemId); workspaceLogger.info("Calling storageHub to delete item with id: "+itemId);
storageHubWrapper.getWorkspace().deleteItem(itemId); workspaceSH.deleteItem(itemId);
if(sourceFolderSharedId!=null) if(sourceFolderSharedId!=null)
NotificationsUtil.checkSendNotifyRemoveItemToShare(this.getThreadLocalRequest(), sourceItemIsShared, itemName, itemId, sourceFolderSharedId); NotificationsUtil.checkSendNotifyRemoveItemToShare(this.getThreadLocalRequest(), sourceItemIsShared, itemName, itemId, sourceFolderSharedId);
@ -2680,6 +2687,10 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
return null; return null;
} }
} }
/* (non-Javadoc)
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#getLinkForSendToSwitchBoard(java.lang.String)
*/
@Override @Override
public String getLinkForSendToSwitchBoard(String itemId) throws Exception { public String getLinkForSendToSwitchBoard(String itemId) throws Exception {
String fallbackValue = ConstantsExplorer.CLARIN_SWITCHBOARD_ENDPOINT_FALLBACK; String fallbackValue = ConstantsExplorer.CLARIN_SWITCHBOARD_ENDPOINT_FALLBACK;
@ -4416,8 +4427,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
/** /**
* Checks if is item under sync. * Checks if is item under sync.
* *
* @param itemId the item id
* @return true, if is item under sync * @return true, if is item under sync
* @throws Exception * @throws Exception the exception
*/ */
@Override @Override
public Boolean isItemUnderSync(String itemId) throws Exception{ public Boolean isItemUnderSync(String itemId) throws Exception{
@ -4440,6 +4452,11 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
} }
} }
/**
* Gets the CLARIN switch board endpoint.
*
* @return the CLARIN switch board endpoint
*/
private String getCLARINSwitchBoardEndpoint() { private String getCLARINSwitchBoardEndpoint() {
//save the context for this resource //save the context for this resource
String currContext = ScopeProvider.instance.get(); String currContext = ScopeProvider.instance.get();

View File

@ -14,12 +14,12 @@ import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingSite;
import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingUser; import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingUser;
import org.gcube.common.homelibrary.home.HomeLibrary; import org.gcube.common.homelibrary.home.HomeLibrary;
import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException; 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.Workspace;
import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException;
import org.gcube.common.portal.PortalContext; import org.gcube.common.portal.PortalContext;
import org.gcube.common.scope.api.ScopeProvider; import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.common.storagehubwrapper.server.StorageHubWrapper; import org.gcube.common.storagehubwrapper.server.StorageHubWrapper;
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.WorkspaceFolderNotFoundException;
import org.gcube.portlets.user.urlshortener.UrlShortener; import org.gcube.portlets.user.urlshortener.UrlShortener;
import org.gcube.portlets.user.workspace.client.model.InfoContactModel; import org.gcube.portlets.user.workspace.client.model.InfoContactModel;
import org.gcube.portlets.user.workspace.server.GWTWorkspaceBuilder; import org.gcube.portlets.user.workspace.server.GWTWorkspaceBuilder;
@ -129,17 +129,20 @@ public class WsUtil {
} }
/** /**
* Gets the workspace. * Gets the workspace.
* *
* @param httpServletRequest the http servlet request * @param httpServletRequest the http servlet request
* @return the workspace * @return the workspace
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws HomeNotFoundException the home not found exception * @throws HomeNotFoundException the home not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
*/ */
public static Workspace getWorkspace(HttpServletRequest httpServletRequest) throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException public static Workspace getWorkspace(HttpServletRequest httpServletRequest) throws org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException, org.gcube.common.homelibrary.home.exceptions.InternalErrorException, HomeNotFoundException
{ {
logger.trace("Get Workspace"); logger.trace("Get Workspace");
PortalContextInfo info = getPortalContext(httpServletRequest); PortalContextInfo info = getPortalContext(httpServletRequest);
logger.trace("PortalContextInfo: "+info); logger.trace("PortalContextInfo: "+info);
@ -160,10 +163,12 @@ public class WsUtil {
* @param user the user * @param user the user
* @return the workspace * @return the workspace
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws InternalErrorException the internal error exception
* @throws HomeNotFoundException the home not found exception * @throws HomeNotFoundException the home not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception * @throws WorkspaceFolderNotFoundException the workspace folder not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
*/ */
public static Workspace getWorkspace(HttpServletRequest httpServletRequest, String contextID, GCubeUser user) throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException public static Workspace getWorkspace(HttpServletRequest httpServletRequest, String contextID, GCubeUser user) throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException, org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException, org.gcube.common.homelibrary.home.exceptions.InternalErrorException
{ {
logger.info("Get workspace using contextID: "+contextID +", current user: "+user.getUsername()); logger.info("Get workspace using contextID: "+contextID +", current user: "+user.getUsername());
String currentScope; String currentScope;
@ -420,11 +425,9 @@ public class WsUtil {
* @param scopeGroupId the scope group id. If scopeGroupId is null the scope is read by using the request else by using the scopeGroupId * @param scopeGroupId the scope group id. If scopeGroupId is null the scope is read by using the request else by using the scopeGroupId
* @param user the user * @param user the user
* @return the storage hub wrapper * @return the storage hub wrapper
* @throws InternalErrorException the internal error exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
* @throws Exception the exception * @throws Exception the exception
*/ */
public static StorageHubWrapper getStorageHubWrapper(final HttpServletRequest request, String scopeGroupId, GCubeUser user) throws InternalErrorException, WorkspaceFolderNotFoundException, Exception{ public static StorageHubWrapper getStorageHubWrapper(final HttpServletRequest request, String scopeGroupId, GCubeUser user) throws Exception{
if(user==null || user.getUsername().isEmpty()) if(user==null || user.getUsername().isEmpty())
throw new Exception("Session expired"); throw new Exception("Session expired");
@ -444,7 +447,7 @@ public class WsUtil {
return new StorageHubWrapper(scope, token); return new StorageHubWrapper(scope, token);
} catch (Exception e) { } catch (Exception e) {
logger.error("Error during getting storageHub wrapper", e); logger.error("Error during getting storageHub wrapper", e);
throw new InternalErrorException("Error on gettig the StorageHub wrapper for userId: "+user); throw new Exception("Error on gettig the StorageHub wrapper for userId: "+user);
} }
} }