/** * */ package org.gcube.portlets.user.workspace; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; 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.items.ExternalFile; import org.gcube.common.homelibrary.home.workspace.search.SearchFolder; import org.gcube.common.homelibrary.home.workspace.search.SearchFolderItem; import org.gcube.common.homelibrary.home.workspace.search.SearchItem; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.common.scope.impl.ScopeBean; import org.gcube.portlets.user.workspace.client.model.FileGridModel; import org.gcube.portlets.user.workspace.client.model.FolderModel; import org.gcube.portlets.user.workspace.server.GWTWorkspaceBuilder; import org.gcube.portlets.user.workspace.server.GWTWorkspaceServiceImpl; import org.gcube.portlets.user.workspace.server.resolver.UriResolverReaderParameter; import org.gcube.portlets.user.workspace.server.util.HttpRequestUtil; import org.gcube.portlets.user.workspace.server.util.StringUtil; import org.yaml.snakeyaml.reader.StreamReader; /** * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it * @Jul 3, 2013 * */ public class SearchTextTest { protected static Logger logger = Logger.getLogger(SearchTextTest.class); private static String text = "test"; public static String DEFAULT_SCOPE = "/d4science.research-infrastructures.eu/gCubeApps/EcologicalModelling"; //PRODUCTION public static String USER = "pasquale.pagano"; //PRODUCTION static GWTWorkspaceBuilder builder = new GWTWorkspaceBuilder(); static GWTWorkspaceServiceImpl serviceImpl = new GWTWorkspaceServiceImpl(); static Workspace workspace; static final String itemID = "8253f5c5-def6-41fd-a3f2-c614855a8b0b"; public static void main(String[] args) { try { // DEFAULT_SCOPE = "/gcube/devsec"; ScopeBean scope = new ScopeBean(DEFAULT_SCOPE); ScopeProvider.instance.set(scope.toString()); System.out.println("start get workspace\n"); workspace = HomeLibrary .getHomeManagerFactory() .getHomeManager() .getHome(USER) .getWorkspace(); // // List listSearchItems = ws.searchByName(text); WorkspaceItem item = workspace.getItem(itemID); FileGridModel wsItem = builder.buildGXTFileGridModelItem(item, null); System.out.println("Item is: "+wsItem.getName() + "; ID: "+wsItem.getIdentifier() + " Last Update: "+wsItem.getLastModification()); int i = 1; while(item.getParent()!=null){ item = item.getParent(); WorkspaceFolder folder = (WorkspaceFolder) item; FolderModel parent = builder.buildGXTFolderModelItem(folder, null); System.out.println("Parent "+i+" is: "+parent.getName() + "; ID: "+parent.getIdentifier()); i++; } // // if(item.getParent()!=null){ // //// System.out.println("Parent is: "+item.getParent().getName()); // System.out.println("Parent is: "+builder.buildGXTFolderModelItem(item.getParent(), null)); // }else // System.out.println("parent is null"); // // // System.out.println(item.toString()); // System.out.println("Total item founds: "+listSearchItems.size()); /* int i=0; for (SearchItem searchItem : listSearchItems) { if(searchItem.getType().equals(WorkspaceItemType.FOLDER) || searchItem.getType().equals(WorkspaceItemType.SHARED_FOLDER)){ SearchFolder folder = (SearchFolder) searchItem; System.out.println(++i+") folder name: "+folder.getName() + " type: "+folder.getType()); }else{ if(searchItem.getType().equals(WorkspaceItemType.FOLDER_ITEM)){ SearchFolderItem folderItem = (SearchFolderItem) searchItem; System.out.println(++i+") folderItem id: "+folderItem.getId() +", name: "+folderItem.getName()+", type: "+folderItem.getType()); } } }*/ // downloadFile(workspace.getItem(itemID)); System.out.println("\nend"); } catch (Exception e) { e.printStackTrace(); } } public static void downloadFile(WorkspaceItem folderItem) throws InternalErrorException{ try{ ExternalFile externalFile = (ExternalFile) folderItem; System.out.println("EXTERNAL_FILE DOWNLOAD FOR "+externalFile.getId()); //COMMENTED 26/03/2013 // String itemName = MimeTypeUtil.getNameWithExtension(item.getName(), mimeType); File f2 = new File(externalFile.getName()); OutputStream out = new FileOutputStream(f2, true); // ap System.out.println("1"); //MODIFIED 22-05-2013 CLOSE STREAM // IOUtils.copy(externalFile.getData(), resp.getOutputStream()); InputStream is = externalFile.getData(); // //REMOVE THIS -- TODO TEMPORARY SOLUTION if(is==null){ logger.error("Error during get input stream: IS is null"); throw new Exception("Item is not reachable"); } System.out.println("2"); IOUtils.copy(is, out); is.close(); out.close(); } catch (Exception e) { logger.error("Error during external item retrieving "+folderItem.getId(),e); // sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during data retrieving: "+e.getMessage()); return; } } }