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) {