#633 Ticket: fixed download.
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@77275 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
9e5ed0bbdf
commit
dbba9a624b
|
@ -95,6 +95,8 @@ import org.gcube.portlets.user.workspace.client.model.SubTree;
|
|||
import org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService;
|
||||
import org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceServiceAsync;
|
||||
import org.gcube.portlets.user.workspace.client.util.PollingWorkspace;
|
||||
import org.gcube.portlets.user.workspace.client.util.RequestBuilderWorkspaceValidateItem;
|
||||
import org.gcube.portlets.user.workspace.client.util.WindowOpenParameter;
|
||||
import org.gcube.portlets.user.workspace.client.view.BasicDNDExample;
|
||||
import org.gcube.portlets.user.workspace.client.view.ExplorerPanel;
|
||||
import org.gcube.portlets.user.workspace.client.view.sharing.DialogShareFolder;
|
||||
|
@ -109,9 +111,9 @@ import org.gcube.portlets.user.workspace.client.view.windows.DialogText;
|
|||
import org.gcube.portlets.user.workspace.client.view.windows.DialogUpload;
|
||||
import org.gcube.portlets.user.workspace.client.view.windows.DialogWebDavUrl;
|
||||
import org.gcube.portlets.user.workspace.client.view.windows.InfoDisplay;
|
||||
import org.gcube.portlets.user.workspace.client.view.windows.InfoDisplayMessage;
|
||||
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxAlert;
|
||||
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxConfirm;
|
||||
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxInfo;
|
||||
import org.gcube.portlets.user.workspace.client.view.windows.WindowImagePreview;
|
||||
import org.gcube.portlets.user.workspace.client.view.windows.WindowOpenUrl;
|
||||
import org.gcube.portlets.user.workspace.client.view.windows.accounting.WindowAccountingInfo;
|
||||
|
@ -132,6 +134,7 @@ import com.extjs.gxt.ui.client.widget.Info;
|
|||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.event.shared.EventHandler;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.http.client.RequestBuilder;
|
||||
import com.google.gwt.user.client.Timer;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.HasWidgets;
|
||||
|
@ -167,6 +170,10 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
|||
}
|
||||
|
||||
public GWTWorkspaceServiceAsync getRpcWorkspaceService() {
|
||||
|
||||
|
||||
|
||||
|
||||
return rpcWorkspaceService;
|
||||
}
|
||||
|
||||
|
@ -331,7 +338,7 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
|||
|
||||
}
|
||||
else{//ITEM IS NOT SHAREABLE
|
||||
new MessageBoxInfo("Info", "The selected item is not shareable because an ancestor item is already shared");
|
||||
new InfoDisplayMessage("Info", "The selected item is not shareable because an ancestor item is already shared");
|
||||
|
||||
}
|
||||
|
||||
|
@ -764,14 +771,53 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
|||
public void onFileDownloadEvent(FileDownloadEvent fileDownloadEvent) {
|
||||
|
||||
if(fileDownloadEvent.getItemIdentifier()!=null){
|
||||
if(fileDownloadEvent.getDownloadType().equals(DownloadType.SHOW)){
|
||||
if(fileDownloadEvent.getItemName()!= null)
|
||||
com.google.gwt.user.client.Window.open(ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE+"?id="+fileDownloadEvent.getItemIdentifier()+"&viewContent=true", fileDownloadEvent.getItemName(), "");
|
||||
}
|
||||
else
|
||||
com.google.gwt.user.client.Window.open(ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE+"?id="+fileDownloadEvent.getItemIdentifier(), "_self", "");
|
||||
// if(fileDownloadEvent.getDownloadType().equals(DownloadType.SHOW)){
|
||||
// if(fileDownloadEvent.getItemName()!= null)
|
||||
// com.google.gwt.user.client.Window.open(ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE+"?id="+fileDownloadEvent.getItemIdentifier()+"&viewContent=true", fileDownloadEvent.getItemName(), "");
|
||||
// }
|
||||
// else
|
||||
// com.google.gwt.user.client.Window.open(ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE+"?id="+fileDownloadEvent.getItemIdentifier(), "_self", "");
|
||||
//
|
||||
|
||||
if(fileDownloadEvent.getDownloadType().equals(DownloadType.SHOW)){
|
||||
if(fileDownloadEvent.getItemName()!= null){
|
||||
|
||||
try {
|
||||
new RequestBuilderWorkspaceValidateItem(RequestBuilder.GET, ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE, "id="+fileDownloadEvent.getItemIdentifier()+"&viewContent=true", "_self", downloadHandlerCallback);
|
||||
|
||||
} catch (Exception e) {
|
||||
explorerPanel.getAsycTreePanel().unmask();
|
||||
new MessageBoxAlert("Error", e.getMessage(), null);
|
||||
explorerPanel.getAsycTreePanel().removeAllAndRecoveryRoot();
|
||||
}
|
||||
|
||||
}
|
||||
// com.google.gwt.user.client.Window.open(ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE+"?id="+fileDownloadEvent.getItemIdentifier()+"&viewContent=true", fileDownloadEvent.getItemName(), "");
|
||||
} else{
|
||||
|
||||
try {
|
||||
new RequestBuilderWorkspaceValidateItem(RequestBuilder.GET,ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE, "id="+fileDownloadEvent.getItemIdentifier(), "_self", downloadHandlerCallback);
|
||||
} catch (Exception e) {
|
||||
explorerPanel.getAsycTreePanel().unmask();
|
||||
new MessageBoxAlert("Error", e.getMessage(), null);
|
||||
explorerPanel.getAsycTreePanel().removeAllAndRecoveryRoot();
|
||||
}
|
||||
}
|
||||
// com.google.gwt.user.client.Window.open(ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE+"?id="+fileDownloadEvent.getItemIdentifier(), "_self", "");
|
||||
|
||||
// if(fileDownloadEvent.getDownloadType().equals(DownloadType.SHOW)){
|
||||
// if(fileDownloadEvent.getItemName()!= null){
|
||||
//
|
||||
// new DialogDownload(fileDownloadEvent.getItemName(), "_blank", fileDownloadEvent.getItemIdentifier(), true).submitForm();
|
||||
// }
|
||||
//
|
||||
// }else{
|
||||
//
|
||||
// new DialogDownload("", "_self", fileDownloadEvent.getItemIdentifier(), false).submitForm();
|
||||
// }
|
||||
//
|
||||
|
||||
|
||||
|
||||
FileModel file = explorerPanel.getAsycTreePanel().getFileModelByIdentifier(fileDownloadEvent.getItemIdentifier());
|
||||
|
||||
if(file!=null){ //FILE CAN NOT LOADED IN TREE
|
||||
|
@ -1033,7 +1079,7 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
|||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
explorerPanel.getAsycTreePanel().unmask();
|
||||
new MessageBoxAlert("Error", caught.getMessage()+".", null);
|
||||
new MessageBoxAlert("Error", caught.getMessage(), null);
|
||||
explorerPanel.getAsycTreePanel().removeAllAndRecoveryRoot();
|
||||
|
||||
}
|
||||
|
@ -1945,6 +1991,20 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
|||
}
|
||||
}
|
||||
|
||||
public AsyncCallback<WindowOpenParameter> downloadHandlerCallback = new AsyncCallback<WindowOpenParameter>() {
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
explorerPanel.getAsycTreePanel().unmask();
|
||||
new MessageBoxAlert("Error", caught.getMessage(), null);
|
||||
explorerPanel.getAsycTreePanel().removeAllAndRecoveryRoot();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(WindowOpenParameter windowOpenParam) {
|
||||
com.google.gwt.user.client.Window.open(ConstantsExplorer.DOWNLOAD_WORKSPACE_SERVICE+"?"+windowOpenParam.getParameters(), windowOpenParam.getOption(), "");
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
/**
|
||||
|
@ -1969,4 +2029,5 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
|||
// deselecteCurrentSelection();
|
||||
explorerPanel.getAsycTreePanel().setSearch(isSearch);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -189,8 +189,14 @@ public class ConstantsExplorer {
|
|||
public static final String GET_SEARCH_PARAMETER ="search";
|
||||
public static final String GET_ITEMID_PARAMETER ="itemid";
|
||||
public static final String GET_OPEARATION_PARAMETER ="operation";
|
||||
public static enum WsPortletInitOperation {sharelink, gotofolder}; //DEFAULT OPERATION IS GOTOFOLDER
|
||||
public static enum WsPortletInitOperation {sharelink, gotofolder}; //INIT OPERATIONS
|
||||
//DEFAULT INIT OPERATION
|
||||
public static final WsPortletInitOperation DEFAULT_OPERATION = WsPortletInitOperation.gotofolder;
|
||||
|
||||
public enum ViewSwitchType {Tree, SmartFolder, Messages};
|
||||
|
||||
//SERLVET ERROR
|
||||
public static final String ERROR_ITEM_DOES_NOT_EXIST = "Item does not exist. It may have been deleted by another user";
|
||||
public static final String VALIDATEITEM = "validateitem";
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,103 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.gcube.portlets.user.workspace.client.util;
|
||||
|
||||
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
|
||||
import org.gcube.portlets.user.workspace.client.view.windows.InfoDisplayMessage;
|
||||
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxAlert;
|
||||
|
||||
import com.google.gwt.http.client.Request;
|
||||
import com.google.gwt.http.client.RequestBuilder;
|
||||
import com.google.gwt.http.client.RequestCallback;
|
||||
import com.google.gwt.http.client.RequestException;
|
||||
import com.google.gwt.http.client.Response;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
|
||||
/**
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* @Jun 24, 2013
|
||||
*
|
||||
*/
|
||||
public class RequestBuilderWorkspaceValidateItem {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
protected static final int TIME_INFO_DISPLAY = 1500; //milliseconds
|
||||
private AsyncCallback<WindowOpenParameter> callback;
|
||||
private String parameters;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param method
|
||||
* @param servletName the name of the servlet that must be called
|
||||
* @param params param=value¶m1=value1&...
|
||||
* @param name the name of the window (e.g. "_blank")
|
||||
* @param callback
|
||||
* @throws Exception
|
||||
*/
|
||||
public RequestBuilderWorkspaceValidateItem(RequestBuilder.Method method, String servletName, final String params, final String name, final AsyncCallback<WindowOpenParameter> callback) throws Exception{
|
||||
|
||||
this.callback = callback;
|
||||
|
||||
this.parameters = params;
|
||||
|
||||
if(servletName==null)
|
||||
return;
|
||||
|
||||
servletName = servletName.isEmpty()?"/":servletName;
|
||||
|
||||
if(!servletName.contains("/"))
|
||||
servletName+="/"+servletName;
|
||||
|
||||
if(parameters==null)
|
||||
parameters = ConstantsExplorer.VALIDATEITEM+"=true";
|
||||
else
|
||||
parameters +="&"+ConstantsExplorer.VALIDATEITEM+"=true";
|
||||
|
||||
RequestBuilder requestBuilder = new RequestBuilder(method, servletName+"?"+parameters);
|
||||
new InfoDisplayMessage("Download", "Requesting...", TIME_INFO_DISPLAY);
|
||||
try {
|
||||
|
||||
requestBuilder.sendRequest(params, new RequestCallback() {
|
||||
|
||||
@Override
|
||||
public void onResponseReceived(Request request, Response response) {
|
||||
|
||||
int status = response.getStatusCode();
|
||||
|
||||
// System.out.println("status code is "+status);
|
||||
|
||||
if(!(status==200) && !(status==202)){ //NOT IS STATUS SC_ACCEPTED
|
||||
handleError("Sorry, an error occurred on retriving item, "+response.getText()); //ERROR STATUS
|
||||
|
||||
}else{ //OK STATUS
|
||||
|
||||
if(callback!=null)
|
||||
callback.onSuccess(new WindowOpenParameter(name, "", params));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Request request, Throwable exception) {
|
||||
|
||||
// System.out.println("exception message is "+exception.getMessage());
|
||||
handleError(exception.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
} catch (RequestException e) {
|
||||
throw new Exception("An error occured on send request");
|
||||
}
|
||||
}
|
||||
|
||||
public void handleError(String message){
|
||||
|
||||
if(callback!=null)
|
||||
callback.onFailure(new Exception(message));
|
||||
else
|
||||
new MessageBoxAlert("Error", message, null);
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.gcube.portlets.user.workspace.client.util;
|
||||
|
||||
/**
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* @Jun 25, 2013
|
||||
*
|
||||
*/
|
||||
public class WindowOpenParameter {
|
||||
|
||||
String option;
|
||||
String parameters;
|
||||
String itemName;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public WindowOpenParameter() {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param option the name of the window (e.g. "_blank")
|
||||
* @param itemName
|
||||
* @param parameters param=value¶m1=value1&...
|
||||
*/
|
||||
public WindowOpenParameter(String option, String itemName, String parameters) {
|
||||
super();
|
||||
this.option = option;
|
||||
this.itemName = itemName;
|
||||
this.parameters = parameters;
|
||||
}
|
||||
|
||||
|
||||
public String getParameters() {
|
||||
return parameters;
|
||||
}
|
||||
|
||||
public void setParameters(String parameters) {
|
||||
this.parameters = parameters;
|
||||
}
|
||||
|
||||
public String getOption() {
|
||||
return option;
|
||||
}
|
||||
|
||||
public void setOption(String option) {
|
||||
this.option = option;
|
||||
}
|
||||
|
||||
|
||||
public String getItemName() {
|
||||
return itemName;
|
||||
}
|
||||
|
||||
|
||||
public void setItemName(String itemName) {
|
||||
this.itemName = itemName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -5,6 +5,7 @@ import org.gcube.portlets.user.workspace.client.AppControllerExplorer;
|
|||
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
|
||||
import org.gcube.portlets.user.workspace.client.event.CompletedFileUploadEvent;
|
||||
import org.gcube.portlets.user.workspace.client.model.FileModel;
|
||||
import org.gcube.portlets.user.workspace.shared.HandlerResultMessage;
|
||||
|
||||
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
|
||||
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
||||
|
@ -95,6 +96,7 @@ public class DialogUpload extends Window {
|
|||
|
||||
isStatusCompleted = true;
|
||||
|
||||
|
||||
// Log.trace("onSubmitComplete");
|
||||
String result = event.getResultHtml();
|
||||
|
||||
|
@ -125,7 +127,7 @@ public class DialogUpload extends Window {
|
|||
// com.google.gwt.user.client.Window.alert(result);
|
||||
// com.google.gwt.user.client.Window.alert("Stripped: " + strippedResult);
|
||||
|
||||
final UploadResultMessage resultMessage = UploadResultMessage.parseResult(strippedResult);
|
||||
final HandlerResultMessage resultMessage = HandlerResultMessage.parseResult(strippedResult);
|
||||
|
||||
switch (resultMessage.getStatus()) {
|
||||
case ERROR:
|
||||
|
@ -142,7 +144,7 @@ public class DialogUpload extends Window {
|
|||
Timer t = new Timer() {
|
||||
public void run() {
|
||||
AppControllerExplorer.getEventBus().fireEvent(new CompletedFileUploadEvent(parent, null));
|
||||
new MessageBoxInfo("Upload completed successfully", resultMessage.getMessage(), null);
|
||||
new InfoDisplayMessage("Upload completed successfully", resultMessage.getMessage());
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -268,7 +270,7 @@ public class DialogUpload extends Window {
|
|||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
Info.display("Error", "Sorry an error occurred on the server "+caught.getMessage() + ". Please try again later");
|
||||
Info.display("Error", caught.getMessage());
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
package org.gcube.portlets.user.workspace.client.view.windows;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* @Jun 25, 2013
|
||||
*
|
||||
*/
|
||||
public class InfoDisplayMessage extends InfoDisplay{
|
||||
|
||||
|
||||
/**
|
||||
* @param title
|
||||
* @param text
|
||||
*/
|
||||
public InfoDisplayMessage(String title, String text) {
|
||||
super(title, text);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param title
|
||||
* @param text
|
||||
*/
|
||||
public InfoDisplayMessage(String title, String text, int milliseconds) {
|
||||
super(title, text, milliseconds);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
package org.gcube.portlets.user.workspace.client.view.windows;
|
||||
|
||||
import com.extjs.gxt.ui.client.event.Listener;
|
||||
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
|
||||
import com.extjs.gxt.ui.client.widget.MessageBox;
|
||||
|
||||
public class MessageBoxInfo {
|
||||
|
||||
private MessageBox box = null;
|
||||
|
||||
public MessageBoxInfo(String title, String msg) {
|
||||
InfoDisplay.display(title, msg);
|
||||
}
|
||||
|
||||
public MessageBoxInfo(String title, String msg, Listener<MessageBoxEvent> listener){
|
||||
InfoDisplay.display(title, msg);
|
||||
}
|
||||
|
||||
public MessageBox getMessageBoxConfirm(){
|
||||
return box;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,595 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.gcube.portlets.user.workspace.server;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.StringReader;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.gcube.common.core.scope.GCUBEScope;
|
||||
import org.gcube.common.core.utils.logging.GCUBELog;
|
||||
import org.gcube.portlets.user.homelibrary.home.HomeLibrary;
|
||||
import org.gcube.portlets.user.homelibrary.home.exceptions.InternalErrorException;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.Workspace;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.WorkspaceFolder;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.WorkspaceItem;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.exceptions.ExternalResourceBrokenLinkException;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.exceptions.ExternalResourcePluginNotFoundException;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.exceptions.ItemNotFoundException;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.FolderItem;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.AquaMapsItem;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.ExternalFile;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.ExternalImage;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.ExternalResourceLink;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.ExternalUrl;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.Query;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.Report;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.ReportTemplate;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.gcube.Document;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.gcube.Metadata;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.ts.TimeSeries;
|
||||
import org.gcube.portlets.user.homelibrary.util.Extensions;
|
||||
import org.gcube.portlets.user.homelibrary.util.MimeTypeUtil;
|
||||
import org.gcube.portlets.user.homelibrary.util.zip.ZipUtil;
|
||||
import org.gcube.portlets.user.workspace.server.util.WsUtil;
|
||||
import org.gcube.portlets.user.workspace.shared.HandlerResultMessage;
|
||||
|
||||
/**
|
||||
* @author Federico De Faveri defaveri@isti.cnr.it
|
||||
*
|
||||
*/
|
||||
public class CopyOfDownloadServlet extends HttpServlet{
|
||||
|
||||
private static final long serialVersionUID = -8423345575690165644L;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void init() throws ServletException {
|
||||
super.init();
|
||||
System.out.println("Workspace DownloadServlet ready.");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
|
||||
|
||||
String itemId = req.getParameter("id");
|
||||
boolean viewContent = (req.getParameter("viewContent")==null)?false:req.getParameter("viewContent").equals("true");
|
||||
|
||||
System.out.println("FILE REQUEST "+itemId);
|
||||
|
||||
Workspace wa = null;
|
||||
try {
|
||||
wa = WsUtil.getWorkspace(req.getSession());
|
||||
} catch (Exception e) {
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during workspace retrieving");
|
||||
return;
|
||||
}
|
||||
|
||||
if (wa == null) {
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error, no workspace in session");
|
||||
return;
|
||||
}
|
||||
|
||||
GCUBELog logger = WsUtil.getLogger(wa);
|
||||
|
||||
WorkspaceItem item;
|
||||
try {
|
||||
item = wa.getItem(itemId);
|
||||
|
||||
|
||||
try{
|
||||
//ACCOUNTING
|
||||
item.markAsRead(true);
|
||||
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Requested item "+itemId+" has trow an internal error exception",e);
|
||||
}
|
||||
|
||||
} catch (ItemNotFoundException e) {
|
||||
logger.error("Requested item "+itemId+" not found",e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error, no items found");
|
||||
return;
|
||||
}
|
||||
|
||||
switch (item.getType()) {
|
||||
|
||||
case SHARED_FOLDER:
|
||||
case FOLDER:{
|
||||
try {
|
||||
File tmpZip = ZipUtil.zipFolder((WorkspaceFolder) item);
|
||||
resp.setHeader( "Content-Disposition", "attachment; filename=\"" + item.getName() + ".zip\"" );
|
||||
resp.setContentType("application/zip");
|
||||
resp.setContentLength((int) tmpZip.length());
|
||||
OutputStream out = resp.getOutputStream();
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
// IOUtils.copy(new FileInputStream(tmpZip), resp.getOutputStream());
|
||||
|
||||
FileInputStream fileTmpZip = new FileInputStream(tmpZip);
|
||||
IOUtils.copy(fileTmpZip, resp.getOutputStream());
|
||||
fileTmpZip.close();
|
||||
|
||||
out.close();
|
||||
tmpZip.delete();
|
||||
return;
|
||||
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during folder compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during folder compression: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
case FOLDER_ITEM:{
|
||||
FolderItem folderItem = (FolderItem) item;
|
||||
|
||||
switch (folderItem.getFolderItemType()) {
|
||||
case REPORT_TEMPLATE:{
|
||||
try{
|
||||
ReportTemplate reportTemplate = (ReportTemplate)folderItem;
|
||||
String itemName = item.getName() + "." + Extensions.REPORT_TEMPLATE.getValue();
|
||||
|
||||
String contentDisposition = (viewContent)?"inline":"attachment";
|
||||
resp.setHeader( "Content-Disposition", contentDisposition+"; filename=\"" + itemName + "\"" );
|
||||
|
||||
resp.setContentType("application/zip");
|
||||
resp.setContentLength((int) reportTemplate.getLength());
|
||||
OutputStream out = resp.getOutputStream();
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
// IOUtils.copy(reportTemplate.getData(), resp.getOutputStream());
|
||||
InputStream is = reportTemplate.getData();
|
||||
IOUtils.copy(is, resp.getOutputStream());
|
||||
is.close();
|
||||
|
||||
out.close();
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during external item sending "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
return;
|
||||
|
||||
}
|
||||
case REPORT:{
|
||||
try{
|
||||
Report report = (Report)folderItem;
|
||||
|
||||
String itemName = item.getName() + "." + Extensions.REPORT.getValue();
|
||||
|
||||
String contentDisposition = (viewContent)?"inline":"attachment";
|
||||
resp.setHeader( "Content-Disposition", contentDisposition+"; filename=\"" + itemName + "\"" );
|
||||
|
||||
resp.setContentType("application/zip");
|
||||
resp.setContentLength((int) report.getLength());
|
||||
OutputStream out = resp.getOutputStream();
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
// IOUtils.copy(report.getData(), resp.getOutputStream());
|
||||
InputStream is = report.getData();
|
||||
IOUtils.copy(is, resp.getOutputStream());
|
||||
is.close();
|
||||
|
||||
out.close();
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during external item sending "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
return;
|
||||
|
||||
}
|
||||
case EXTERNAL_PDF_FILE:
|
||||
case EXTERNAL_FILE:{
|
||||
|
||||
InputStream is = null;
|
||||
OutputStream out = null;
|
||||
try{
|
||||
ExternalFile externalFile = (ExternalFile)folderItem;
|
||||
|
||||
String mimeType = externalFile.getMimeType();
|
||||
|
||||
logger.trace("EXTERNAL_FILE DOWNLOAD FOR "+externalFile.getId());
|
||||
//COMMENTED 26/03/2013
|
||||
// String itemName = MimeTypeUtil.getNameWithExtension(item.getName(), mimeType);
|
||||
|
||||
String contentDisposition = (viewContent)?"inline":"attachment";
|
||||
//COMMENTED 26/03/2013
|
||||
// resp.setHeader( "Content-Disposition", contentDisposition+"; filename=\"" + itemName + "\"" );
|
||||
resp.setHeader( "Content-Disposition", contentDisposition+"; filename=\"" + item.getName() + "\"" );
|
||||
resp.setContentType(mimeType);
|
||||
|
||||
resp.setContentLength((int) externalFile.getLength());
|
||||
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
// IOUtils.copy(externalFile.getData(), resp.getOutputStream());
|
||||
is = externalFile.getData();
|
||||
out = resp.getOutputStream();
|
||||
IOUtils.copy(is, out);
|
||||
|
||||
is.close();
|
||||
out.close();
|
||||
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during external item sending "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
return;
|
||||
|
||||
}
|
||||
case EXTERNAL_IMAGE:{
|
||||
|
||||
try{
|
||||
ExternalImage externalImage = (ExternalImage)folderItem;
|
||||
|
||||
String mimeType = externalImage.getMimeType();
|
||||
String itemName = MimeTypeUtil.getNameWithExtension(item.getName(), mimeType);
|
||||
|
||||
String contentDisposition = (viewContent)?"inline":"attachment";
|
||||
resp.setHeader( "Content-Disposition", contentDisposition+"; filename=\"" + itemName + "\"" );
|
||||
resp.setContentType(externalImage.getMimeType());
|
||||
|
||||
resp.setContentLength((int) externalImage.getLength());
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
// IOUtils.copy(externalImage.getData(), resp.getOutputStream());
|
||||
OutputStream out = resp.getOutputStream();
|
||||
InputStream is = externalImage.getData();
|
||||
IOUtils.copy(is, out);
|
||||
is.close();
|
||||
|
||||
out.close();
|
||||
return;
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during item compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
case EXTERNAL_URL:{
|
||||
try{
|
||||
ExternalUrl externalUrl = (ExternalUrl)folderItem;
|
||||
|
||||
//ADDED 20/06/2013
|
||||
String itemName = MimeTypeUtil.getNameWithExtension(externalUrl.getName(), "text/uri-list");
|
||||
String contentDisposition = (viewContent)?"inline":"attachment";
|
||||
resp.setHeader("Content-Disposition", contentDisposition+"; filename=\"" + itemName + "\"" );
|
||||
|
||||
// //ADDED 20/06/2013
|
||||
// String itemName = externalUrl.getName() + ".uri";
|
||||
// String contentDisposition = (viewContent)?"inline":"attachment";
|
||||
// resp.setHeader("Content-Disposition", contentDisposition+"; filename=\"" + itemName + "\"" );
|
||||
|
||||
resp.setContentType("text/uri-list");
|
||||
resp.setContentLength((int) externalUrl.getLength());
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
StringReader sr = new StringReader(externalUrl.getUrl());
|
||||
OutputStream out = resp.getOutputStream();
|
||||
IOUtils.copy(sr, out);
|
||||
|
||||
sr.close();
|
||||
out.close();
|
||||
return;
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during item compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
case QUERY:{
|
||||
|
||||
Query query = (Query)folderItem;
|
||||
resp.setContentType("text/plain");
|
||||
try {
|
||||
resp.setContentLength((int) query.getLength());
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error getting item lenght "+query,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
OutputStream out = resp.getOutputStream();
|
||||
StringReader sr = new StringReader(query.getQuery());
|
||||
IOUtils.copy(sr, out);
|
||||
sr.close();
|
||||
|
||||
out.close();
|
||||
return;
|
||||
|
||||
}
|
||||
case TIME_SERIES:{
|
||||
try{
|
||||
TimeSeries ts = (TimeSeries)folderItem;
|
||||
File tmpZip = ZipUtil.zipTimeSeries(ts);
|
||||
|
||||
String contentDisposition = (viewContent)?"inline":"attachment";
|
||||
resp.setHeader( "Content-Disposition", contentDisposition+"; filename=\"" + item.getName() + ".zip\"" );
|
||||
|
||||
resp.setContentType("application/zip");
|
||||
resp.setContentLength((int) tmpZip.length());
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
OutputStream out = resp.getOutputStream();
|
||||
FileInputStream fileTmpZip = new FileInputStream(tmpZip);
|
||||
IOUtils.copy(fileTmpZip, out);
|
||||
fileTmpZip.close();
|
||||
|
||||
out.close();
|
||||
tmpZip.delete();
|
||||
return;
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during item compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
case AQUAMAPS_ITEM:{
|
||||
try{
|
||||
AquaMapsItem aquamaps = (AquaMapsItem)folderItem;
|
||||
File tmpZip = ZipUtil.zipAquaMapsItem(aquamaps);
|
||||
|
||||
String contentDisposition = (viewContent)?"inline":"attachment";
|
||||
resp.setHeader( "Content-Disposition", contentDisposition+"; filename=\"" + item.getName() + ".zip\"" );
|
||||
|
||||
resp.setContentType("application/zip");
|
||||
resp.setContentLength((int) tmpZip.length());
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
OutputStream out = resp.getOutputStream();
|
||||
FileInputStream fileTmpZip = new FileInputStream(tmpZip);
|
||||
IOUtils.copy(fileTmpZip, out);
|
||||
fileTmpZip.close();
|
||||
|
||||
out.close();
|
||||
tmpZip.delete();
|
||||
return;
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during item compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
case IMAGE_DOCUMENT:
|
||||
case PDF_DOCUMENT:
|
||||
case URL_DOCUMENT:
|
||||
case DOCUMENT:{
|
||||
try{
|
||||
Document document = (Document)item;
|
||||
|
||||
|
||||
if (!viewContent){
|
||||
File tmpZip = ZipUtil.zipDocument(document);
|
||||
|
||||
resp.setHeader( "Content-Disposition", "attachment; filename=\"" + item.getName() + ".zip\"" );
|
||||
resp.setContentType("application/zip");
|
||||
resp.setContentLength((int) tmpZip.length());
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
OutputStream out = resp.getOutputStream();
|
||||
FileInputStream fileTmpZip = new FileInputStream(tmpZip);
|
||||
IOUtils.copy(fileTmpZip, out);
|
||||
fileTmpZip.close();
|
||||
|
||||
out.close();
|
||||
tmpZip.delete();
|
||||
}
|
||||
else{
|
||||
String mimeType = document.getMimeType();
|
||||
String itemName = MimeTypeUtil.getNameWithExtension(item.getName(), mimeType);
|
||||
resp.setHeader( "Content-Disposition", "inline; filename=\"" + itemName + "\"" );
|
||||
resp.setContentType(document.getMimeType());
|
||||
resp.setContentLength((int) document.getLength());
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
OutputStream out = resp.getOutputStream();
|
||||
InputStream is = document.getData();
|
||||
IOUtils.copy(is, out);
|
||||
is.close();
|
||||
|
||||
out.close();
|
||||
}
|
||||
return;
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during item compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
case METADATA:{
|
||||
try{
|
||||
Metadata document = (Metadata)item;
|
||||
|
||||
resp.setContentType("text/html");
|
||||
resp.setContentLength((int) document.getLength());
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
OutputStream out = resp.getOutputStream();
|
||||
StringReader sr = new StringReader(document.getData());
|
||||
IOUtils.copy(sr, out);
|
||||
sr.close();
|
||||
|
||||
out.close();
|
||||
|
||||
return;
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during item compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
case EXTERNAL_RESOURCE_LINK:{ //IT'S SAME OF EXTERNAL FILE
|
||||
|
||||
try{
|
||||
ExternalResourceLink externalResourceLink = (ExternalResourceLink) folderItem;
|
||||
OutputStream out = resp.getOutputStream();
|
||||
|
||||
try {
|
||||
String mimeType = externalResourceLink.getMimeType();
|
||||
if(mimeType == null){
|
||||
System.out.println("mimeType is null... recover from MimeTypeUtil by BufferedInputStream");
|
||||
|
||||
BufferedInputStream bufferedStream = new BufferedInputStream(externalResourceLink.getData(), (int) externalResourceLink.getLength());
|
||||
mimeType = MimeTypeUtil.getMimeType(bufferedStream);
|
||||
}
|
||||
|
||||
System.out.println("setContentType with mimeType " + mimeType);
|
||||
String itemName = MimeTypeUtil.getNameWithExtension(item.getName(), mimeType);
|
||||
|
||||
String contentDisposition = (viewContent)?"inline":"attachment";
|
||||
resp.setHeader( "Content-Disposition", contentDisposition+"; filename=\"" + itemName + "\"" );
|
||||
resp.setContentType(mimeType);
|
||||
|
||||
|
||||
System.out.println("resoure link lenght: " +externalResourceLink.getLength());
|
||||
|
||||
resp.setContentLength((int) externalResourceLink.getLength());
|
||||
|
||||
if(externalResourceLink.getData()!=null){
|
||||
System.out.println("Input stream is not null");
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
InputStream eris = externalResourceLink.getData();
|
||||
IOUtils.copy(eris, resp.getOutputStream());
|
||||
eris.close();
|
||||
}
|
||||
else{
|
||||
logger.error("Input stream is null "+itemId);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during inpunt stream retrieving, it's null");
|
||||
}
|
||||
|
||||
} catch (ExternalResourceBrokenLinkException e) {
|
||||
logger.error("Error during link resource retrieving "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during link retrieving, link broken!: "+e.getMessage());
|
||||
} catch (ExternalResourcePluginNotFoundException e) {
|
||||
logger.error("Error during link resource retrieving "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during link retrieving, plugin not found!: "+e.getMessage());
|
||||
}
|
||||
out.close();
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during external item sending "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
} catch (Exception e) {
|
||||
logger.error("Error during resource retrieving "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during resource retrieving, plugin not found!: "+e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving");
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
protected void sendError(HttpServletResponse response, String message) throws IOException
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
HandlerResultMessage resultMessage = HandlerResultMessage.errorResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
response.flushBuffer();
|
||||
}
|
||||
|
||||
protected void sendMessage(HttpServletResponse response, String message) throws IOException
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_ACCEPTED);
|
||||
HandlerResultMessage resultMessage = HandlerResultMessage.okResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
response.flushBuffer();
|
||||
}
|
||||
|
||||
protected void sendWarnMessage(HttpServletResponse response, String message) throws IOException
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_ACCEPTED);
|
||||
HandlerResultMessage resultMessage = HandlerResultMessage.warnResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
response.flushBuffer();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
InputStream is = null;
|
||||
|
||||
System.out.println("start");
|
||||
|
||||
// is = GCUBEStorage.getRemoteFile("/Home/test.user/Workspace3d660604-03ef-49eb-89c3-4c73f8a47914");
|
||||
|
||||
try{
|
||||
|
||||
Workspace ws = HomeLibrary.getHomeManagerFactory().getHomeManager().getHome("francesco.mangiacrapa", GCUBEScope.getScope("/gcube/devsec")).getWorkspace();
|
||||
//
|
||||
// ExternalFile f = (ExternalFile) ws.getItem("907ce8ef-5c0b-4601-83ac-215d1f432f6b");
|
||||
|
||||
WorkspaceItem wsItem = ws.getItem("907ce8ef-5c0b-4601-83ac-215d1f432f6b");
|
||||
|
||||
|
||||
System.out.println("metadata info recovered from HL: [ID: "+wsItem.getId() +", name: "+wsItem.getName()+"]");
|
||||
|
||||
|
||||
|
||||
|
||||
FileOutputStream out = new FileOutputStream(new File("/tmp/bla"));
|
||||
// byte[] buffer = new byte[1024];
|
||||
// int len;
|
||||
// while ((len = is.read(buffer)) != -1) {
|
||||
// out.write(buffer, 0, len);
|
||||
// }
|
||||
|
||||
System.out.println("cast as external file");
|
||||
ExternalFile f = (ExternalFile) wsItem;
|
||||
|
||||
is = f.getData();
|
||||
|
||||
IOUtils.copy(is, out);
|
||||
is.close();
|
||||
|
||||
out.close();
|
||||
|
||||
// System.out.println("Sleeping");
|
||||
// Thread.sleep(20000);
|
||||
// System.out.println("Alive");
|
||||
|
||||
System.out.println("end");
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -40,11 +40,12 @@ import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.ReportTem
|
|||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.gcube.Document;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.gcube.Metadata;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.ts.TimeSeries;
|
||||
import org.gcube.portlets.user.homelibrary.jcr.repository.external.GCUBEStorage;
|
||||
import org.gcube.portlets.user.homelibrary.util.Extensions;
|
||||
import org.gcube.portlets.user.homelibrary.util.MimeTypeUtil;
|
||||
import org.gcube.portlets.user.homelibrary.util.zip.ZipUtil;
|
||||
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
|
||||
import org.gcube.portlets.user.workspace.server.util.WsUtil;
|
||||
import org.gcube.portlets.user.workspace.shared.HandlerResultMessage;
|
||||
|
||||
/**
|
||||
* @author Federico De Faveri defaveri@isti.cnr.it
|
||||
|
@ -54,6 +55,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
|
||||
private static final long serialVersionUID = -8423345575690165644L;
|
||||
|
||||
protected static GCUBELog logger = new GCUBELog(DownloadServlet.class);
|
||||
|
||||
|
||||
|
||||
|
@ -63,7 +65,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
@Override
|
||||
public void init() throws ServletException {
|
||||
super.init();
|
||||
System.out.println("Workspace DownloadServlet ready.");
|
||||
logger.trace("Workspace DownloadServlet ready.");
|
||||
}
|
||||
|
||||
|
||||
|
@ -73,29 +75,42 @@ public class DownloadServlet extends HttpServlet{
|
|||
|
||||
String itemId = req.getParameter("id");
|
||||
boolean viewContent = (req.getParameter("viewContent")==null)?false:req.getParameter("viewContent").equals("true");
|
||||
|
||||
System.out.println("FILE REQUEST "+itemId);
|
||||
boolean isValidItem = (req.getParameter(ConstantsExplorer.VALIDATEITEM)==null)?false:req.getParameter(ConstantsExplorer.VALIDATEITEM).equals("true");
|
||||
|
||||
logger.trace("Input Params [id: "+itemId + ", viewContent: "+viewContent+", "+ConstantsExplorer.VALIDATEITEM +":" +isValidItem+"]");
|
||||
|
||||
if(itemId==null || itemId.isEmpty()){
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Item id is null");
|
||||
return;
|
||||
}
|
||||
|
||||
logger.trace("FILE DOWNLOAD REQUEST "+itemId);
|
||||
|
||||
Workspace wa = null;
|
||||
try {
|
||||
wa = WsUtil.getWorkspace(req.getSession());
|
||||
} catch (Exception e) {
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during workspace retrieving");
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during workspace retrieving");
|
||||
return;
|
||||
}
|
||||
|
||||
if (wa == null) {
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error, no workspace in session");
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error, no workspace in session");
|
||||
return;
|
||||
}
|
||||
|
||||
GCUBELog logger = WsUtil.getLogger(wa);
|
||||
|
||||
WorkspaceItem item;
|
||||
try {
|
||||
|
||||
item = wa.getItem(itemId);
|
||||
|
||||
|
||||
if(isValidItem){ //ADDED 25/06/2013
|
||||
String message = HttpServletResponse.SC_ACCEPTED+ ": The resource is available";
|
||||
sendMessageContinue(resp, message);
|
||||
logger.trace("response return: "+message);
|
||||
return;
|
||||
}
|
||||
|
||||
try{
|
||||
//ACCOUNTING
|
||||
item.markAsRead(true);
|
||||
|
@ -106,7 +121,10 @@ public class DownloadServlet extends HttpServlet{
|
|||
|
||||
} catch (ItemNotFoundException e) {
|
||||
logger.error("Requested item "+itemId+" not found",e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error, no items found");
|
||||
// sendError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error, no items found");
|
||||
|
||||
sendError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": "+ConstantsExplorer.ERROR_ITEM_DOES_NOT_EXIST);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -134,7 +152,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during folder compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during folder compression: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during folder compression: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -163,7 +181,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
out.close();
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during external item sending "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
return;
|
||||
|
@ -191,7 +209,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
out.close();
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during external item sending "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
return;
|
||||
|
@ -231,7 +249,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during external item sending "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
return;
|
||||
|
@ -262,7 +280,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
return;
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during item compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -293,7 +311,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
return;
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during item compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -305,7 +323,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
resp.setContentLength((int) query.getLength());
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error getting item lenght "+query,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -341,7 +359,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
return;
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during item compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -367,7 +385,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
return;
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during item compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -413,7 +431,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
return;
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during item compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -436,7 +454,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
return;
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during item compression "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -452,13 +470,13 @@ public class DownloadServlet extends HttpServlet{
|
|||
try {
|
||||
String mimeType = externalResourceLink.getMimeType();
|
||||
if(mimeType == null){
|
||||
System.out.println("mimeType is null... recover from MimeTypeUtil by BufferedInputStream");
|
||||
logger.trace("mimeType is null... recover from MimeTypeUtil by BufferedInputStream");
|
||||
|
||||
BufferedInputStream bufferedStream = new BufferedInputStream(externalResourceLink.getData(), (int) externalResourceLink.getLength());
|
||||
mimeType = MimeTypeUtil.getMimeType(bufferedStream);
|
||||
}
|
||||
|
||||
System.out.println("setContentType with mimeType " + mimeType);
|
||||
logger.trace("setContentType with mimeType " + mimeType);
|
||||
String itemName = MimeTypeUtil.getNameWithExtension(item.getName(), mimeType);
|
||||
|
||||
String contentDisposition = (viewContent)?"inline":"attachment";
|
||||
|
@ -466,12 +484,12 @@ public class DownloadServlet extends HttpServlet{
|
|||
resp.setContentType(mimeType);
|
||||
|
||||
|
||||
System.out.println("resoure link lenght: " +externalResourceLink.getLength());
|
||||
logger.trace("resoure link lenght: " +externalResourceLink.getLength());
|
||||
|
||||
resp.setContentLength((int) externalResourceLink.getLength());
|
||||
|
||||
if(externalResourceLink.getData()!=null){
|
||||
System.out.println("Input stream is not null");
|
||||
logger.trace("Input stream is not null");
|
||||
|
||||
//MODIFIED 22-05-2013 CLOSE STREAM
|
||||
InputStream eris = externalResourceLink.getData();
|
||||
|
@ -480,24 +498,24 @@ public class DownloadServlet extends HttpServlet{
|
|||
}
|
||||
else{
|
||||
logger.error("Input stream is null "+itemId);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during inpunt stream retrieving, it's null");
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during inpunt stream retrieving, it's null");
|
||||
}
|
||||
|
||||
} catch (ExternalResourceBrokenLinkException e) {
|
||||
logger.error("Error during link resource retrieving "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during link retrieving, link broken!: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during link retrieving, link broken!: "+e.getMessage());
|
||||
} catch (ExternalResourcePluginNotFoundException e) {
|
||||
logger.error("Error during link resource retrieving "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during link retrieving, plugin not found!: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during link retrieving, plugin not found!: "+e.getMessage());
|
||||
}
|
||||
out.close();
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error during external item sending "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during data retrieving: "+e.getMessage());
|
||||
return;
|
||||
} catch (Exception e) {
|
||||
logger.error("Error during resource retrieving "+itemId,e);
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during resource retrieving, plugin not found!: "+e.getMessage());
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during resource retrieving, plugin not found!: "+e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
@ -512,16 +530,48 @@ public class DownloadServlet extends HttpServlet{
|
|||
}
|
||||
}
|
||||
|
||||
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during data retrieving");
|
||||
sendError(resp,HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during data retrieving");
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
protected void sendError(HttpServletResponse response, String message) throws IOException
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
HandlerResultMessage resultMessage = HandlerResultMessage.errorResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
response.flushBuffer();
|
||||
}
|
||||
|
||||
protected void sendMessage(HttpServletResponse response, String message) throws IOException
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_ACCEPTED);
|
||||
HandlerResultMessage resultMessage = HandlerResultMessage.okResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
response.flushBuffer();
|
||||
}
|
||||
|
||||
protected void sendMessageContinue(HttpServletResponse response, String message) throws IOException
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_ACCEPTED);
|
||||
HandlerResultMessage resultMessage = HandlerResultMessage.okResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
response.flushBuffer();
|
||||
}
|
||||
|
||||
protected void sendWarnMessage(HttpServletResponse response, String message) throws IOException
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_ACCEPTED);
|
||||
HandlerResultMessage resultMessage = HandlerResultMessage.warnResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
response.flushBuffer();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
InputStream is = null;
|
||||
|
||||
System.out.println("start");
|
||||
logger.trace("start");
|
||||
|
||||
// is = GCUBEStorage.getRemoteFile("/Home/test.user/Workspace3d660604-03ef-49eb-89c3-4c73f8a47914");
|
||||
|
||||
|
@ -534,7 +584,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
WorkspaceItem wsItem = ws.getItem("907ce8ef-5c0b-4601-83ac-215d1f432f6b");
|
||||
|
||||
|
||||
System.out.println("metadata info recovered from HL: [ID: "+wsItem.getId() +", name: "+wsItem.getName()+"]");
|
||||
logger.trace("metadata info recovered from HL: [ID: "+wsItem.getId() +", name: "+wsItem.getName()+"]");
|
||||
|
||||
|
||||
|
||||
|
@ -546,7 +596,7 @@ public class DownloadServlet extends HttpServlet{
|
|||
// out.write(buffer, 0, len);
|
||||
// }
|
||||
|
||||
System.out.println("cast as external file");
|
||||
logger.trace("cast as external file");
|
||||
ExternalFile f = (ExternalFile) wsItem;
|
||||
|
||||
is = f.getData();
|
||||
|
@ -556,11 +606,11 @@ public class DownloadServlet extends HttpServlet{
|
|||
|
||||
out.close();
|
||||
|
||||
// System.out.println("Sleeping");
|
||||
// logger.trace("Sleeping");
|
||||
// Thread.sleep(20000);
|
||||
// System.out.println("Alive");
|
||||
// logger.trace("Alive");
|
||||
|
||||
System.out.println("end");
|
||||
logger.trace("end");
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
@ -66,6 +66,11 @@ import com.google.gwt.user.server.rpc.RemoteServiceServlet;
|
|||
*/
|
||||
public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWTWorkspaceService{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
private static final long serialVersionUID = 2828885661214875589L;
|
||||
|
||||
public static final String LAST_OPEN_FOLDER_ATTRIBUTE = "WORKSPACE.LAST_OPEN_FOLDER";
|
||||
|
@ -610,6 +615,10 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
|||
String error = "An error occurred on deleting item. "+e.getMessage();
|
||||
throw new Exception(error);
|
||||
|
||||
}catch (ItemNotFoundException e) {
|
||||
String error = "An error occurred on deleting item. "+ConstantsExplorer.ERROR_ITEM_DOES_NOT_EXIST;
|
||||
workspaceLogger.error(error, e);
|
||||
throw new Exception(error);
|
||||
} catch (Exception e) {
|
||||
workspaceLogger.error("Error in server Item remove", e);
|
||||
String error = ConstantsExplorer.SERVER_ERROR +" deleting item. "+e.getMessage();
|
||||
|
@ -656,12 +665,17 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
|||
return true;
|
||||
|
||||
} catch (ItemAlreadyExistException e) {
|
||||
String error = "An error occurred on copying item, " +e.getMessage();
|
||||
String error = "An error occurred on renaming item, " +e.getMessage();
|
||||
workspaceLogger.error(error, e);
|
||||
throw new Exception(error);
|
||||
}catch (ItemNotFoundException e2) {
|
||||
String error = "An error occurred on renaming item. "+ConstantsExplorer.ERROR_ITEM_DOES_NOT_EXIST;
|
||||
workspaceLogger.error(error, e2);
|
||||
throw new Exception(error);
|
||||
|
||||
} catch (Exception e) {
|
||||
workspaceLogger.error(ConstantsExplorer.SERVER_ERROR + " renaming item. "+ConstantsExplorer.TRY_AGAIN, e);
|
||||
throw new Exception(e.getMessage());
|
||||
String error = ConstantsExplorer.SERVER_ERROR + " renaming item. "+ConstantsExplorer.TRY_AGAIN;
|
||||
workspaceLogger.error(error, e);
|
||||
throw new Exception(error);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -40,9 +40,9 @@ import org.gcube.portlets.user.homelibrary.util.Extensions;
|
|||
import org.gcube.portlets.user.homelibrary.util.MimeTypeUtil;
|
||||
import org.gcube.portlets.user.homelibrary.util.WorkspaceUtil;
|
||||
import org.gcube.portlets.user.homelibrary.util.zip.UnzipUtil;
|
||||
import org.gcube.portlets.user.workspace.client.view.windows.UploadResultMessage;
|
||||
import org.gcube.portlets.user.workspace.server.notifications.NotificationsUtil;
|
||||
import org.gcube.portlets.user.workspace.server.util.WsUtil;
|
||||
import org.gcube.portlets.user.workspace.shared.HandlerResultMessage;
|
||||
|
||||
/**
|
||||
* @author Federico De Faveri defaveri@isti.cnr.it
|
||||
|
@ -332,7 +332,7 @@ public class UploadServlet extends HttpServlet {
|
|||
protected void sendError(HttpServletResponse response, String message) throws IOException
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
UploadResultMessage resultMessage = UploadResultMessage.errorResult(message);
|
||||
HandlerResultMessage resultMessage = HandlerResultMessage.errorResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
response.flushBuffer();
|
||||
}
|
||||
|
@ -340,7 +340,7 @@ public class UploadServlet extends HttpServlet {
|
|||
protected void sendMessage(HttpServletResponse response, String message) throws IOException
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_ACCEPTED);
|
||||
UploadResultMessage resultMessage = UploadResultMessage.okResult(message);
|
||||
HandlerResultMessage resultMessage = HandlerResultMessage.okResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
response.flushBuffer();
|
||||
}
|
||||
|
@ -348,7 +348,7 @@ public class UploadServlet extends HttpServlet {
|
|||
protected void sendWarnMessage(HttpServletResponse response, String message) throws IOException
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_ACCEPTED);
|
||||
UploadResultMessage resultMessage = UploadResultMessage.warnResult(message);
|
||||
HandlerResultMessage resultMessage = HandlerResultMessage.warnResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
response.flushBuffer();
|
||||
}
|
||||
|
|
|
@ -9,14 +9,11 @@ import java.util.List;
|
|||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.gcube.portlets.user.homelibrary.home.exceptions.HomeNotFoundException;
|
||||
import org.gcube.portlets.user.homelibrary.home.exceptions.InternalErrorException;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.Workspace;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.WorkspaceFolder;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.WorkspaceItem;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.WorkspaceItemType;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.WorkspaceSharedFolder;
|
||||
import org.gcube.portlets.user.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException;
|
||||
import org.gcube.portlets.user.workspace.client.model.InfoContactModel;
|
||||
import org.gcube.portlets.user.workspace.server.GWTWorkspaceBuilder;
|
||||
import org.gcube.portlets.user.workspace.server.util.WsUtil;
|
||||
|
|
|
@ -1,14 +1,22 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.gcube.portlets.user.workspace.client.view.windows;
|
||||
package org.gcube.portlets.user.workspace.shared;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Federico De Faveri defaveri@isti.cnr.it
|
||||
*
|
||||
* modified by Francesco Mangiacrapa
|
||||
*/
|
||||
public class UploadResultMessage {
|
||||
public class HandlerResultMessage implements Serializable{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -4607236625671465107L;
|
||||
|
||||
|
||||
public enum Status {
|
||||
/**
|
||||
* If an error occurs.
|
||||
|
@ -29,19 +37,19 @@ public class UploadResultMessage {
|
|||
UNKNOWN;
|
||||
}
|
||||
|
||||
public static UploadResultMessage errorResult(String message){
|
||||
return new UploadResultMessage(Status.ERROR, message);
|
||||
public static HandlerResultMessage errorResult(String message){
|
||||
return new HandlerResultMessage(Status.ERROR, message);
|
||||
}
|
||||
|
||||
public static UploadResultMessage okResult(String message){
|
||||
return new UploadResultMessage(Status.OK, message);
|
||||
public static HandlerResultMessage okResult(String message){
|
||||
return new HandlerResultMessage(Status.OK, message);
|
||||
}
|
||||
|
||||
public static UploadResultMessage warnResult(String message){
|
||||
return new UploadResultMessage(Status.WARN, message);
|
||||
public static HandlerResultMessage warnResult(String message){
|
||||
return new HandlerResultMessage(Status.WARN, message);
|
||||
}
|
||||
|
||||
public static UploadResultMessage parseResult(String result){
|
||||
public static HandlerResultMessage parseResult(String result){
|
||||
//expected 200:Upload complete
|
||||
String statusToken = null;
|
||||
String messageToken = null;
|
||||
|
@ -61,7 +69,7 @@ public class UploadResultMessage {
|
|||
|
||||
String message = (messageToken!=null)?messageToken:"";
|
||||
|
||||
return new UploadResultMessage(status, message);
|
||||
return new HandlerResultMessage(status, message);
|
||||
}
|
||||
|
||||
|
||||
|
@ -73,7 +81,7 @@ public class UploadResultMessage {
|
|||
* @param status the status.
|
||||
* @param message the message.
|
||||
*/
|
||||
public UploadResultMessage(Status status, String message) {
|
||||
public HandlerResultMessage(Status status, String message) {
|
||||
this.status = status;
|
||||
this.message = message;
|
||||
}
|
Loading…
Reference in New Issue