2014-02-12 19:46:39 +01:00
/ * *
*
* /
package org.gcube.portlets.user.workspace ;
import java.util.List ;
2015-03-05 18:47:07 +01:00
import java.util.Map ;
2014-02-20 12:30:26 +01:00
import java.util.concurrent.TimeUnit ;
2014-02-12 19:46:39 +01:00
2015-03-05 18:47:07 +01:00
import org.apache.log4j.Logger ;
2014-02-12 19:46:39 +01:00
import org.gcube.common.homelibrary.home.HomeLibrary ;
2015-03-05 18:47:07 +01:00
import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException ;
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException ;
import org.gcube.common.homelibrary.home.exceptions.UserNotFoundException ;
2014-02-12 19:46:39 +01:00
import org.gcube.common.homelibrary.home.workspace.Workspace ;
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder ;
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem ;
2014-02-20 12:30:26 +01:00
import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder ;
2015-03-05 18:47:07 +01:00
import org.gcube.common.homelibrary.home.workspace.accessmanager.ACLType ;
import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException ;
2014-02-12 19:46:39 +01:00
import org.gcube.common.homelibrary.home.workspace.folder.FolderItem ;
import org.gcube.common.scope.api.ScopeProvider ;
import org.gcube.common.scope.impl.ScopeBean ;
2015-03-05 18:47:07 +01:00
import org.gcube.portlets.user.workspace.server.util.AclTypeComparator ;
2014-02-12 19:46:39 +01:00
/ * *
*
* @author Francesco Mangiacrapa francesco . mangiacrapa @isti.cnr.it
* @Jan 29 , 2014
*
* /
public class ItemRetrieving {
2015-03-05 18:47:07 +01:00
// public static String DEFAULT_SCOPE = "/d4science.research-infrastructures.eu/gCubeApps"; //PRODUCTION
public static String DEFAULT_SCOPE = " /gcube/devsec " ; //DEV
public static String TEST_USER = " francesco.mangiacrapa " ;
2014-02-19 15:03:03 +01:00
// public static String ITEMID = "63832213-098d-42d1-8774-89b6349764c0"; //Activity T3.4 working drafts/T2-EC-IMAR-HO-14-015 iMarine Sustainability WP - Business Model tools.pdf
2015-03-05 18:47:07 +01:00
// public static String ITEMID = "42fa2601-39d0-4951-aabf-27d2a2f1dca7";
protected static Logger logger = Logger . getLogger ( ItemRetrieving . class ) ;
2014-02-19 15:03:03 +01:00
2014-02-12 19:46:39 +01:00
public static void main ( String [ ] args ) {
2015-03-05 18:47:07 +01:00
ScopeBean scope = new ScopeBean ( DEFAULT_SCOPE ) ;
ScopeProvider . instance . set ( scope . toString ( ) ) ;
System . out . println ( " init HL " ) ;
2014-02-12 19:46:39 +01:00
try {
Workspace ws = HomeLibrary
. getHomeManagerFactory ( )
. getHomeManager ( )
. getHome ( TEST_USER )
. getWorkspace ( ) ;
2015-03-05 18:47:07 +01:00
retrieveFirstLevel ( ws ) ;
2014-02-12 19:46:39 +01:00
2015-03-05 18:47:07 +01:00
} catch ( WorkspaceFolderNotFoundException e ) {
// TODO Auto-generated catch block
e . printStackTrace ( ) ;
} catch ( InternalErrorException e ) {
// TODO Auto-generated catch block
e . printStackTrace ( ) ;
} catch ( HomeNotFoundException e ) {
// TODO Auto-generated catch block
e . printStackTrace ( ) ;
} catch ( UserNotFoundException e ) {
// TODO Auto-generated catch block
e . printStackTrace ( ) ;
}
}
private static void retrieveFirstLevel ( Workspace ws ) {
try {
2014-02-20 12:30:26 +01:00
//TEST TIME
Long startTime = System . currentTimeMillis ( ) ;
Long endTime = System . currentTimeMillis ( ) - startTime ;
String time = String . format ( " %d msc %d sec " , endTime , TimeUnit . MILLISECONDS . toSeconds ( endTime ) ) ;
startTime = System . currentTimeMillis ( ) ;
System . out . println ( " Start get root at time: " + startTime ) ;
// WorkspaceItem root = ws.getItem(ITEMID);
WorkspaceItem root = ws . getRoot ( ) ;
2014-02-12 19:46:39 +01:00
System . out . println ( " start get children " ) ;
List < ? extends WorkspaceItem > children = root . getChildren ( ) ;
2014-02-20 12:30:26 +01:00
System . out . println ( " tree getChildren() returning " + children . size ( ) + " elements in " + time ) ;
2014-02-12 19:46:39 +01:00
System . out . println ( " children size: " + children . size ( ) ) ;
int i = 0 ;
2014-02-20 12:30:26 +01:00
int foldersCounter = 0 ;
int sharedFoldersCounter = 0 ;
int folderItemCounter = 0 ;
int othersCounter = 0 ;
2014-02-12 19:46:39 +01:00
for ( WorkspaceItem workspaceItem : children ) {
2014-02-20 12:30:26 +01:00
switch ( workspaceItem . getType ( ) ) {
2014-02-12 19:46:39 +01:00
2014-02-20 12:30:26 +01:00
case FOLDER :
2014-02-12 19:46:39 +01:00
WorkspaceFolder folder = ( WorkspaceFolder ) workspaceItem ;
2014-02-20 12:30:26 +01:00
2015-05-20 18:39:49 +02:00
System . out . println ( + + i + " ) " + folder . getId ( ) + " folder name: " + folder . getName ( ) + " owner " + folder . getOwner ( ) ) ;
2014-02-20 12:30:26 +01:00
foldersCounter + + ;
2014-02-12 19:46:39 +01:00
2014-02-20 12:30:26 +01:00
break ;
case SHARED_FOLDER :
WorkspaceSharedFolder shared = ( WorkspaceSharedFolder ) workspaceItem ;
2015-05-20 18:39:49 +02:00
System . out . println ( + + i + " ) " + shared . getId ( ) + " shared folder name: " + shared . getName ( ) + " owner " + shared . getOwner ( ) + " isVRE " + shared . isVreFolder ( ) + " ACLOwner: " + shared . getACLOwner ( ) + " AclUser: " + shared . getACLUser ( ) ) ;
2014-02-20 12:30:26 +01:00
// System.out.println(++i+") shared folder name: "+shared.getName() + " owner "+shared.getOwner().getPortalLogin());
sharedFoldersCounter + + ;
break ;
case FOLDER_ITEM :
2014-02-12 19:46:39 +01:00
FolderItem folderItem = ( FolderItem ) workspaceItem ;
2014-02-20 12:30:26 +01:00
2015-05-20 18:39:49 +02:00
System . out . println ( + + i + " ) folderItem id: " + folderItem . getId ( ) + " , name: " + folderItem . getName ( ) + " , own: " + folderItem . getOwner ( ) ) ;
2014-02-20 12:30:26 +01:00
folderItemCounter + + ;
2014-02-12 19:46:39 +01:00
2014-02-20 12:30:26 +01:00
break ;
default :
2015-05-20 18:39:49 +02:00
System . out . println ( + + i + " ) DEFAULT - item id: " + workspaceItem . getId ( ) + " , name: " + workspaceItem . getName ( ) + " , own: " + workspaceItem . getOwner ( ) ) ;
2014-02-20 12:30:26 +01:00
othersCounter + + ;
break ;
2014-02-12 19:46:39 +01:00
}
}
2014-02-20 12:30:26 +01:00
//TEST TIME
endTime = System . currentTimeMillis ( ) ;
long difference = endTime - startTime ;
time = String . format ( " %d msc %d sec " , difference , TimeUnit . MILLISECONDS . toSeconds ( difference ) ) ;
System . out . println ( " End time is " + endTime + " difference is " + time ) ;
System . out . println ( " Folders are: " + foldersCounter ) ;
System . out . println ( " Shared Folders are: " + sharedFoldersCounter ) ;
System . out . println ( " Folder Item are: " + folderItemCounter ) ;
System . out . println ( " Others are: " + othersCounter ) ;
2014-02-12 19:46:39 +01:00
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
}
}