added depth visit
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@87119 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
c1fdb1d0c6
commit
6dd303bdf8
|
@ -0,0 +1,198 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.gcube.portlets.user.workspace;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.gcube.common.homelibrary.home.HomeLibrary;
|
||||
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
||||
import org.gcube.common.homelibrary.home.workspace.Workspace;
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItemType;
|
||||
import org.gcube.common.homelibrary.home.workspace.folder.FolderItem;
|
||||
import org.gcube.common.homelibrary.home.workspace.folder.FolderItemType;
|
||||
import org.gcube.common.homelibrary.home.workspace.folder.items.ExternalFile;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.common.scope.impl.ScopeBean;
|
||||
|
||||
/**
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* @Dec 17, 2013
|
||||
*
|
||||
*/
|
||||
public class DepthVisit {
|
||||
|
||||
|
||||
protected static Logger logger = Logger.getLogger(SearchTextTest.class);
|
||||
// public static String DEFAULT_SCOPE = "/d4science.research-infrastructures.eu/gCubeApps/EcologicalModelling"; //PRODUCTION
|
||||
public static String DEFAULT_SCOPE = "/gcube/devsec"; //DEV
|
||||
|
||||
public static String USER = "francesco.mangiacrapa"; //PRODUCTION
|
||||
|
||||
private static BufferedWriter writer;
|
||||
private static OutputStreamWriter out;
|
||||
|
||||
static final String itemID = "165ba18a-a08a-42c6-ade5-9b93d1f844ac";
|
||||
static WorkspaceItem root;
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
try {
|
||||
|
||||
ScopeBean scope = new ScopeBean(DEFAULT_SCOPE);
|
||||
ScopeProvider.instance.set(scope.toString());
|
||||
|
||||
Workspace ws = HomeLibrary.getHomeManagerFactory().getHomeManager().getHome(USER).getWorkspace();
|
||||
out = new OutputStreamWriter(new FileOutputStream("Csv-error-file.csv"), "UTF-8");
|
||||
writer = new BufferedWriter(out);
|
||||
|
||||
writer.write("Id;Name;Path;Parent");
|
||||
|
||||
|
||||
System.out.println("Start");
|
||||
// WorkspaceItem root = ws.getRoot();
|
||||
|
||||
root = ws.getItem(itemID);
|
||||
|
||||
depthVisit(root);
|
||||
|
||||
// new Thread(){
|
||||
// public void run() {
|
||||
// try {
|
||||
//
|
||||
// depthVisit(root);
|
||||
//
|
||||
// } catch (InternalErrorException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// }.start();
|
||||
|
||||
System.out.println("waiting 10 sec..");
|
||||
Thread.sleep(10000);
|
||||
|
||||
|
||||
System.out.println("End");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}finally{
|
||||
System.out.println("writer close");
|
||||
try {writer.close();} catch (Exception ex) {}
|
||||
}
|
||||
}
|
||||
|
||||
public static void depthVisit(WorkspaceItem item) throws InternalErrorException {
|
||||
|
||||
if (item.getType().equals(WorkspaceItemType.FOLDER) || item.getType().equals(WorkspaceItemType.SHARED_FOLDER)) {
|
||||
|
||||
WorkspaceFolder folder = (WorkspaceFolder) item;
|
||||
System.out.println("\nVisit Folder: " + folder.getName() +"; Folder is shared: "+folder.isShared());
|
||||
List<? extends WorkspaceItem> children = folder.getChildren();
|
||||
|
||||
for (WorkspaceItem workspaceItem : children) {
|
||||
depthVisit(workspaceItem);
|
||||
}
|
||||
} else {
|
||||
|
||||
System.out.println("Item name: " + item.getName() +"; Parent Folder: "+item.getParent().getName());
|
||||
|
||||
if(item.getType().equals(WorkspaceItemType.FOLDER_ITEM)){
|
||||
|
||||
FolderItem folderItem = (FolderItem) item;
|
||||
|
||||
if(folderItem.getFolderItemType().equals(FolderItemType.EXTERNAL_FILE)){
|
||||
|
||||
System.out.println("Item is external file: " + item.getName());
|
||||
|
||||
final ExternalFile f = (ExternalFile) folderItem;
|
||||
|
||||
try{
|
||||
|
||||
Thread t = new Thread(){
|
||||
|
||||
public void run() {
|
||||
|
||||
try {
|
||||
tryGetPayload(f);
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
System.out.println("Item name: "+f.getName() + "not exists into storage");
|
||||
erroFile(f);
|
||||
} catch (InternalErrorException e1) {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
t.start();
|
||||
|
||||
// System.out.println("join 3 sec");
|
||||
// t.join(1000);
|
||||
//
|
||||
// System.out.println("join 1 sec terminated");
|
||||
// if(is==null)
|
||||
// throw new Exception("is is null");
|
||||
|
||||
}catch (Exception e) {
|
||||
System.out.println("Item name: "+f.getName() + "not exists into storage");
|
||||
erroFile(f);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static void tryGetPayload(ExternalFile f) throws Exception{
|
||||
|
||||
try {
|
||||
|
||||
InputStream is = f.getData();
|
||||
System.out.println("Get payload for file : "+f.getName() +" terminated");
|
||||
|
||||
if(is==null)
|
||||
throw new Exception("is is null");
|
||||
|
||||
} catch (InternalErrorException e1) {
|
||||
System.out.println("Error on :"+f.getName());
|
||||
throw new Exception("is is null");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public synchronized static void erroFile(WorkspaceItem item) throws InternalErrorException{
|
||||
|
||||
try{
|
||||
|
||||
try {
|
||||
|
||||
String parentName="";
|
||||
|
||||
if(item.getParent()!=null)
|
||||
parentName = item.getParent().getName();
|
||||
|
||||
writer.write("\n "+item.getId()+";"+item.getName()+";"+item.getPath()+";"+parentName);
|
||||
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -6,7 +6,9 @@ package org.gcube.portlets.user.workspace;
|
|||
import java.util.List;
|
||||
|
||||
import org.gcube.common.homelibrary.home.HomeLibrary;
|
||||
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
||||
import org.gcube.common.homelibrary.home.workspace.Workspace;
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItemType;
|
||||
import org.gcube.common.homelibrary.home.workspace.folder.FolderItem;
|
||||
|
@ -42,7 +44,6 @@ public class DonwloadServletTest {
|
|||
List<? extends WorkspaceItem> children = root.getChildren();
|
||||
|
||||
|
||||
|
||||
for (WorkspaceItem workspaceItem : children) {
|
||||
|
||||
if(workspaceItem.getType().equals(WorkspaceItemType.FOLDER_ITEM)){
|
||||
|
@ -96,4 +97,23 @@ public class DonwloadServletTest {
|
|||
}
|
||||
}
|
||||
|
||||
public void depthVisit(WorkspaceItem item) throws InternalErrorException{
|
||||
|
||||
|
||||
if(item.getType().equals(WorkspaceItemType.FOLDER_ITEM)){
|
||||
|
||||
WorkspaceFolder folder = (WorkspaceFolder) item;
|
||||
System.out.println("Visit Folder: "+folder.getName());
|
||||
List<? extends WorkspaceItem> children = folder.getChildren();
|
||||
|
||||
for (WorkspaceItem workspaceItem : children) {
|
||||
depthVisit(workspaceItem);
|
||||
}
|
||||
}else{
|
||||
|
||||
System.out.println("Item name: "+item.getName());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue