diff --git a/.classpath b/.classpath index 980d7f8..ff0534d 100644 --- a/.classpath +++ b/.classpath @@ -1,5 +1,15 @@ + + + + + + + + + + @@ -18,15 +28,5 @@ - - - - - - - - - - diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 73675e3..2d48e95 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -4,6 +4,7 @@ + diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java index 2013b64..3d72528 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java @@ -108,18 +108,27 @@ public class ItemBuilder { _log.debug("Building Item for: "+itemName); - String storageID = null; - if(workspaceItem instanceof FolderItem){ - storageID = workspaceItem.getStorageID(); + Item item = null; + try{ + + //THIS CALL IS VERY SLOW!! +// String storageID = null; +// if(workspaceItem instanceof FolderItem){ +// storageID = workspaceItem.getStorageID(); +// } + + item = new Item(parent, workspaceItem.getId(), itemName, type, workspaceItem.getPath(), UserUtil.getUserFullName(workspaceItem.getOwner().getPortalLogin()), isFolder, false); + item.setSharedFolder(isSharedFolder); + }catch(Exception e){ + _log.error("Error on getting item: "+itemName+" with id: "+workspaceItem.getId()+", from HL, so skipping item"); + return null; } - Item item = new Item(parent, workspaceItem.getId(), itemName, type, workspaceItem.getPath(), UserUtil.getUserFullName(workspaceItem.getOwner().getPortalLogin()), storageID, isFolder, false); - item.setSharedFolder(isSharedFolder); if(loadChildren){ for (WorkspaceItem child: workspaceItem.getChildren()){ - _log.trace("Converting child item: "+itemName); + _log.trace("\n\nConverting child item: "+child.getName()); Item itemChild = getItem(item, child, showableTypes, filterCriteria, false); - _log.trace("Item: "+itemName +" converted!!!"); + _log.trace("Item: "+child.getName() +" converted!!!"); if (itemChild!=null){ item.addChild(itemChild); } @@ -338,7 +347,7 @@ public class ItemBuilder { } //BUILDS A SIMPLE ITEM FOR BREADCRUMB - Item item = new Item(null, wsFolder.getId(), name, ItemType.FOLDER, wsFolder.getPath(), null, null, true, isRoot); + Item item = new Item(null, wsFolder.getId(), name, ItemType.FOLDER, wsFolder.getPath(), null, true, isRoot); item.setSpecialFolder(isSpecialFolder); _log.debug("breadcrumb returning: "+item); diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java index 562bf20..0505d5b 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java @@ -22,6 +22,7 @@ import org.gcube.common.homelibrary.home.workspace.exceptions.InsufficientPrivil import org.gcube.common.homelibrary.home.workspace.exceptions.ItemAlreadyExistException; import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException; import org.gcube.common.homelibrary.home.workspace.folder.FolderItem; +import org.gcube.common.scope.api.ScopeProvider; import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants; import org.gcube.portlets.widgets.wsexplorer.client.rpc.WorkspaceExplorerService; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; @@ -98,7 +99,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement */ protected Workspace getWorkspace() throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException { ASLSession session = getASLSession(this.getThreadLocalRequest().getSession()); - + ScopeProvider.instance.set(session.getScope()); Workspace workspace = HomeLibrary.getUserWorkspace(session.getUsername()); return workspace; } @@ -208,12 +209,12 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement }else if(fullName.indexOf(".")>0){ fullName = fullName.substring(0, fullName.indexOf(".")); } - item = new Item(null, root.getId(), fullName+"'s", ItemType.FOLDER, root.getPath(), root.getOwner().getPortalLogin(), null, true, true); + item = new Item(null, root.getId(), fullName+"'s", ItemType.FOLDER, root.getPath(), root.getOwner().getPortalLogin(), true, true); break; } case VRE_FOLDER:{ WorkspaceItem folder = workspace.getMySpecialFolders(); - item = new Item(null, folder.getId(), WorkspaceExplorerConstants.VRE_FOLDERS_LABEL, ItemType.FOLDER, folder.getPath(), folder.getOwner().getPortalLogin(), null, true, false); + item = new Item(null, folder.getId(), WorkspaceExplorerConstants.VRE_FOLDERS_LABEL, ItemType.FOLDER, folder.getPath(), folder.getOwner().getPortalLogin(), true, false); //SET SPECIAL FOLDER /Workspace/MySpecialFolders item.setSpecialFolder(true); break; diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/Item.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/Item.java index b68ba25..5012283 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/Item.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/Item.java @@ -28,7 +28,6 @@ public class Item implements IsSerializable { private boolean isSpecialFolder = false; private boolean isSharedFolder = false; private boolean isRoot = false; - private String storageId; /** * Instantiates a new item. @@ -47,31 +46,6 @@ public class Item implements IsSerializable { this.isFolder = isFolder; } - /** - * Instantiates a new item. - * - * @param parent the parent - * @param id the id - * @param name the name - * @param type the type - * @param path the path - * @param owner the owner - * @param storageId the storage id - * @param isFolder the is folder - * @param isRoot the is root - */ - public Item(Item parent, String id, String name, ItemType type, String path, String owner, String storageId, boolean isFolder, boolean isRoot) { - this(id, name, isFolder); - this.parent = parent; - this.name = name; - this.type = type; - this.storageId = storageId; - this.path = path; - this.children = new ArrayList(); - this.owner = owner; - this.isRoot = isRoot; - } - /** * Instantiates a new item. * @@ -95,25 +69,6 @@ public class Item implements IsSerializable { this.isRoot = isRoot; } - /** - * Gets the storage id. - * - * @return the storageId - */ - public String getStorageId() { - - return storageId; - } - - /** - * Sets the storage id. - * - * @param storageId the storageId to set - */ - public void setStorageId(String storageId) { - - this.storageId = storageId; - } /** * Sets the id. * @@ -363,7 +318,9 @@ public class Item implements IsSerializable { public String toString() { StringBuilder builder = new StringBuilder(); - builder.append("Item [id="); + builder.append("Item [parent="); + builder.append(parent); + builder.append(", id="); builder.append(id); builder.append(", name="); builder.append(name); @@ -383,8 +340,6 @@ public class Item implements IsSerializable { builder.append(isSharedFolder); builder.append(", isRoot="); builder.append(isRoot); - builder.append(", storageId="); - builder.append(storageId); builder.append("]"); return builder.toString(); } diff --git a/src/test/java/org/gcube/portlets/widgets/wsexplorer/client/TestGetChildren.java b/src/test/java/org/gcube/portlets/widgets/wsexplorer/client/TestGetChildren.java index c4f4ac7..e072852 100644 --- a/src/test/java/org/gcube/portlets/widgets/wsexplorer/client/TestGetChildren.java +++ b/src/test/java/org/gcube/portlets/widgets/wsexplorer/client/TestGetChildren.java @@ -1,5 +1,5 @@ /** - * + * */ package org.gcube.portlets.widgets.wsexplorer.client; @@ -26,13 +26,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * + * * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it * Jul 6, 2015 */ public class TestGetChildren { public static final Logger _log = LoggerFactory.getLogger(TestGetChildren.class); - + public static void main(String[] args) throws WorkspaceNavigatorServiceException { List showableTypes = new ArrayList(); showableTypes.addAll(Arrays.asList(ItemType.values())); @@ -41,48 +41,48 @@ public class TestGetChildren { Map requiredProperties = new HashMap(); FilterCriteria filterCriteria = new FilterCriteria(allowedMimeTypes,null,null); getRoot(showableTypes, purgeEmpyFolders, filterCriteria); - + } - + public static Item getRoot(List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException { _log.trace("getRoot showableTypes: "+showableTypes+" purgeEmpyFolders: "+purgeEmpyFolders+" filterCriteria: "+ filterCriteria); - + try { ScopeBean scope = new ScopeBean("/gcube/devsec"); ScopeProvider.instance.set(scope.toString()); - + Workspace workspace = HomeLibrary .getHomeManagerFactory() .getHomeManager() .getHome("francesco.mangiacrapa") .getWorkspace(); // - _log.trace("Start getRoot..."); - - WorkspaceItem root = workspace.getRoot(); - - System.out.println(root.getChildren()); + _log.debug("Start getRoot..."); - - _log.trace("GetRoot - Replyiing root"); + WorkspaceItem root = workspace.getRoot(); + + _log.debug("GetRoot - Replyiing root"); long startTime = System.currentTimeMillis(); - _log.trace("start time - " + startTime); + _log.debug("start time - " + startTime); Item rootItem = ItemBuilder.getItem(null, root, showableTypes, filterCriteria, true); + + if(rootItem==null) + throw new WorkspaceNavigatorServiceException("Sorry, an error occurred when performing get root"); + rootItem.setName(WorkspaceExplorerConstants.HOME_LABEL); - - + if (purgeEmpyFolders) rootItem = ItemBuilder.purgeEmptyFolders(rootItem); - _log.trace("Returning:"); + _log.debug("Returning:"); Long endTime = System.currentTimeMillis() - startTime; String time = String.format("%d msc %d sec", endTime, TimeUnit.MILLISECONDS.toSeconds(endTime)); - _log.trace("end time - " + time); + _log.debug("end time - " + time); Collections.sort(rootItem.getChildren(), new ItemComparator()); - _log.info("Returning children size: "+rootItem.getChildren().size()); - + _log.debug("Returning children size: "+rootItem.getChildren().size()); + return rootItem; } catch (Exception e) {