updated pom version at 1.1.1 for gCube 3.10.1

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-uploader@124333 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2016-02-19 08:57:58 +00:00
parent 05e4751a71
commit 8c08f92afd
2 changed files with 108 additions and 106 deletions

View File

@ -12,7 +12,7 @@
<groupId>org.gcube.portlets.widgets</groupId> <groupId>org.gcube.portlets.widgets</groupId>
<artifactId>workspace-uploader</artifactId> <artifactId>workspace-uploader</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>1.1.0-SNAPSHOT</version> <version>1.1.1-SNAPSHOT</version>
<name>Workspace Uploader Widget</name> <name>Workspace Uploader Widget</name>
<scm> <scm>
<connection>scm:svn:http://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/${project.artifactId}</connection> <connection>scm:svn:http://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/${project.artifactId}</connection>

View File

@ -1,5 +1,5 @@
/** /**
* *
*/ */
package org.gcube.portlets.widgets.workspaceuploader.server; package org.gcube.portlets.widgets.workspaceuploader.server;
@ -86,25 +86,25 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
public static final String UPLOAD_FORM_ELEMENT = ConstantsWorkspaceUploader.UPLOAD_FORM_ELEMENT; public static final String UPLOAD_FORM_ELEMENT = ConstantsWorkspaceUploader.UPLOAD_FORM_ELEMENT;
public static final String CLIENT_UPLOAD_KEYS = ConstantsWorkspaceUploader.CLIENT_UPLOAD_KEYS; public static final String CLIENT_UPLOAD_KEYS = ConstantsWorkspaceUploader.CLIENT_UPLOAD_KEYS;
public static final String JSON_CLIENT_KEYS = ConstantsWorkspaceUploader.JSON_CLIENT_KEYS; public static final String JSON_CLIENT_KEYS = ConstantsWorkspaceUploader.JSON_CLIENT_KEYS;
public static final String IS_OVERWRITE = ConstantsWorkspaceUploader.IS_OVERWRITE; public static final String IS_OVERWRITE = ConstantsWorkspaceUploader.IS_OVERWRITE;
public static final String CANCEL_UPLOAD = ConstantsWorkspaceUploader.CANCEL_UPLOAD; public static final String CANCEL_UPLOAD = ConstantsWorkspaceUploader.CANCEL_UPLOAD;
public static final String FILE = "File"; public static final String FILE = "File";
public static final String D4ST = Extensions.REPORT_TEMPLATE.getName(); //extension of Report Template type public static final String D4ST = Extensions.REPORT_TEMPLATE.getName(); //extension of Report Template type
public static final String D4SR = Extensions.REPORT.getName(); //extension of Report type public static final String D4SR = Extensions.REPORT.getName(); //extension of Report type
public static Logger logger = LoggerFactory.getLogger(WorkspaceUploadServletStream.class); public static Logger logger = LoggerFactory.getLogger(WorkspaceUploadServletStream.class);
private static boolean appEngine = false; private static boolean appEngine = false;
/* /*
* (non-Javadoc) * (non-Javadoc)
* *
* @see javax.servlet.GenericServlet#init() * @see javax.servlet.GenericServlet#init()
*/ */
@Override @Override
@ -117,7 +117,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
} else { } else {
appEngine = isAppEngine(); appEngine = isAppEngine();
} }
logger.debug("init: appEngine is "+appEngine); logger.debug("init: appEngine is "+appEngine);
} }
@ -133,7 +133,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
return; return;
} }
logger.debug("GET method CLIENT_UPLOAD_KEY "+clientUploadKey); logger.debug("GET method CLIENT_UPLOAD_KEY "+clientUploadKey);
boolean cancelUpload = Boolean.parseBoolean(request.getParameter(CANCEL_UPLOAD)); boolean cancelUpload = Boolean.parseBoolean(request.getParameter(CANCEL_UPLOAD));
logger.debug("GET method CANCEL_UPLOAD "+cancelUpload); logger.debug("GET method CANCEL_UPLOAD "+cancelUpload);
if (cancelUpload) { if (cancelUpload) {
@ -143,10 +143,10 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
logger.debug(CANCEL_UPLOAD + " param not found"); logger.debug(CANCEL_UPLOAD + " param not found");
// }else // }else
// sendError(response, "Internal error: CANCEL_UPLOAD NOT FOUND"); // sendError(response, "Internal error: CANCEL_UPLOAD NOT FOUND");
return; return;
} }
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
@ -154,14 +154,14 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
System.out.println("POST on UploadServlet"); System.out.println("POST on UploadServlet");
logger.info("POST on UploadServlet"); logger.info("POST on UploadServlet");
if (!ServletFileUpload.isMultipartContent(request)) { if (!ServletFileUpload.isMultipartContent(request)) {
logger.error("ERROR: multipart request not found"); logger.error("ERROR: multipart request not found");
sendError(response, "ERROR: multipart request not found"); sendError(response, "ERROR: multipart request not found");
} }
try { try {
logger.info("UPLOAD-SERVLET starting"); logger.info("UPLOAD-SERVLET starting");
HttpSession session = request.getSession(); HttpSession session = request.getSession();
logger.info("UPLOAD-SERVLET session: "+session); logger.info("UPLOAD-SERVLET session: "+session);
@ -172,7 +172,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
// String clientUploadKey = null; // String clientUploadKey = null;
FileItemStream uploadItem = null; FileItemStream uploadItem = null;
ArrayList<String> listClientUploadKeys = null; ArrayList<String> listClientUploadKeys = null;
FileItemFactory factory = new DiskFileItemFactory(); FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload servletFileUpload = new ServletFileUpload(factory); ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
@ -182,28 +182,28 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
*transmitted. *transmitted.
*/ */
FileItemIterator fileItemIterator = servletFileUpload.getItemIterator(request); FileItemIterator fileItemIterator = servletFileUpload.getItemIterator(request);
int uploadItemsCnt = 0; int uploadItemsCnt = 0;
//GET FILE STREAM //GET FILE STREAM
while (fileItemIterator.hasNext()) { while (fileItemIterator.hasNext()) {
FileItemStream item = fileItemIterator.next(); FileItemStream item = fileItemIterator.next();
if (item.isFormField() && ID_FOLDER.equals(item.getFieldName())){ if (item.isFormField() && ID_FOLDER.equals(item.getFieldName())){
destinationId = Streams.asString(item.openStream()); destinationId = Streams.asString(item.openStream());
logger.debug("ID_FOLDER OK "+destinationId); logger.debug("ID_FOLDER OK "+destinationId);
} }
if (item.isFormField() && UPLOAD_TYPE.equals(item.getFieldName())){ if (item.isFormField() && UPLOAD_TYPE.equals(item.getFieldName())){
uploadType = Streams.asString(item.openStream()); uploadType = Streams.asString(item.openStream());
logger.debug("UPLOAD_TYPE OK " +uploadType); logger.debug("UPLOAD_TYPE OK " +uploadType);
} }
if (item.isFormField() && IS_OVERWRITE.equals(item.getFieldName())){ if (item.isFormField() && IS_OVERWRITE.equals(item.getFieldName())){
isOverwrite = Boolean.parseBoolean(Streams.asString(item.openStream())); isOverwrite = Boolean.parseBoolean(Streams.asString(item.openStream()));
logger.debug("IS_OVERWRITE OK "+ isOverwrite); logger.debug("IS_OVERWRITE OK "+ isOverwrite);
} }
if(item.isFormField() && CLIENT_UPLOAD_KEYS.equals(item.getFieldName())){ if(item.isFormField() && CLIENT_UPLOAD_KEYS.equals(item.getFieldName())){
String jsonClientUploadKey = Streams.asString(item.openStream()); String jsonClientUploadKey = Streams.asString(item.openStream());
logger.debug("CLIENT_UPLOAD_KEY OK "+jsonClientUploadKey); logger.debug("CLIENT_UPLOAD_KEY OK "+jsonClientUploadKey);
@ -217,7 +217,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.WAIT, "Uploading "+fileName+" at 0%", request.getSession()); saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.WAIT, "Uploading "+fileName+" at 0%", request.getSession());
} }
} }
//MUST BE THE LAST PARAMETER TRASMITTED //MUST BE THE LAST PARAMETER TRASMITTED
if (UPLOAD_FORM_ELEMENT.equals(item.getFieldName())){ if (UPLOAD_FORM_ELEMENT.equals(item.getFieldName())){
uploadItem = item; uploadItem = item;
@ -227,7 +227,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
uploadItemsCnt++; uploadItemsCnt++;
} }
} }
} catch (FileUploadException e) { } catch (FileUploadException e) {
logger.error("Error processing request in upload servlet", e); logger.error("Error processing request in upload servlet", e);
sendError(response, "Internal error: Error during request processing"); sendError(response, "Internal error: Error during request processing");
@ -238,8 +238,8 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
return; return;
} }
} }
/** /**
* Removes the listener if done. * Removes the listener if done.
@ -248,9 +248,9 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
* @param keys the keys * @param keys the keys
*/ */
private void removeListenersIfDone(HttpSession session, List<String> keys){ private void removeListenersIfDone(HttpSession session, List<String> keys){
for (String key : keys) { for (String key : keys) {
AbstractUploadProgressListener listener = getCurrentListener(session, key); AbstractUploadProgressListener listener = getCurrentListener(session, key);
if (listener != null) { if (listener != null) {
logger.debug("Listener found"); logger.debug("Listener found");
@ -261,9 +261,9 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
}else }else
logger.debug("Session id: "+session.getId() +" - "+key+" - Listener not found"); logger.debug("Session id: "+session.getId() +" - "+key+" - Listener not found");
} }
} }
/** /**
* Parses the json client upload keys. * Parses the json client upload keys.
* *
@ -277,7 +277,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
JSONObject root; JSONObject root;
LinkedHashMap<String, String> keyFiles = null; LinkedHashMap<String, String> keyFiles = null;
try { try {
root = new JSONObject(tokener); root = new JSONObject(tokener);
JSONArray jsonArray = root.getJSONArray(JSON_CLIENT_KEYS); JSONArray jsonArray = root.getJSONArray(JSON_CLIENT_KEYS);
keyFiles = new LinkedHashMap<String, String>(jsonArray.length()); keyFiles = new LinkedHashMap<String, String>(jsonArray.length());
@ -304,7 +304,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
logger.error("An error occurred during parsing file names: "+keyFiles, e); logger.error("An error occurred during parsing file names: "+keyFiles, e);
throw new FileUploadException("An error occurred during parsing file names"); throw new FileUploadException("An error occurred during parsing file names");
} }
logger.debug("keyFiles: "+keyFiles); logger.debug("keyFiles: "+keyFiles);
return keyFiles; return keyFiles;
} }
@ -326,26 +326,26 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
String fileName = uploadItem.getName(); String fileName = uploadItem.getName();
logger.info("Upload servlet parameters: [fileName: "+fileName+ ", destinationId: "+destinationId +", uploadType: "+uploadType+", isOverwrite: "+isOverwrite+", clientUploadKey: "+clientUploadKey+"]"); logger.info("Upload servlet parameters: [fileName: "+fileName+ ", destinationId: "+destinationId +", uploadType: "+uploadType+", isOverwrite: "+isOverwrite+", clientUploadKey: "+clientUploadKey+"]");
if (uploadType == null || uploadType.isEmpty()) { if (uploadType == null || uploadType.isEmpty()) {
logger.error("Error processing request in upload servlet for: "+fileName+". No upload type found"); logger.error("Error processing request in upload servlet for: "+fileName+". No upload type found");
sendError(response, "Internal error: No upload type found"); sendError(response, "Internal error: No upload type found");
return; return;
} }
if(clientUploadKey==null || clientUploadKey.isEmpty()){ if(clientUploadKey==null || clientUploadKey.isEmpty()){
logger.error("Error processing request in upload servlet for: "+fileName+". No client upload key found"); logger.error("Error processing request in upload servlet for: "+fileName+". No client upload key found");
sendError(response, "Internal error: No client upload key found"); sendError(response, "Internal error: No client upload key found");
return; return;
} }
//CLIENT UPLOAD IS THE KEY //CLIENT UPLOAD IS THE KEY
// WorkspaceUploaderItem workspaceUploader = createNewWorkspaceUploader(clientUploadKey,destinationId,fileName); // WorkspaceUploaderItem workspaceUploader = createNewWorkspaceUploader(clientUploadKey,destinationId,fileName);
// saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.WAIT, "Uploading "+fileName+" at 0%", request.getSession()); // saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.WAIT, "Uploading "+fileName+" at 0%", request.getSession());
//RETRIVE WORKSPACE UPLOADER FROM SESSION //RETRIVE WORKSPACE UPLOADER FROM SESSION
WorkspaceUploaderItem workspaceUploader = null; WorkspaceUploaderItem workspaceUploader = null;
try { try {
workspaceUploader = WsUtil.getWorkspaceUploaderInSession(request.getSession(), clientUploadKey); workspaceUploader = WsUtil.getWorkspaceUploaderInSession(request.getSession(), clientUploadKey);
@ -356,12 +356,12 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Error processing request in upload servlet"); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Error processing request in upload servlet");
return; return;
} }
//TODO DEBUG REMOVE THIS //TODO DEBUG REMOVE THIS
// saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.FAILED, "An error occurred during upload: "+fileName+". Error processing request in upload servlet", request.getSession()); // saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.FAILED, "An error occurred during upload: "+fileName+". Error processing request in upload servlet", request.getSession());
// response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Error processing request in upload servlet"); // response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Error processing request in upload servlet");
// return; // return;
Workspace wa = null; Workspace wa = null;
try { try {
logger.debug("getWorkspace from HL"); logger.debug("getWorkspace from HL");
@ -397,25 +397,25 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
sendError(response, "Internal error: Wrong destination item"); sendError(response, "Internal error: Wrong destination item");
return; return;
} }
final WorkspaceFolder destinationFolder = (WorkspaceFolder) item; final WorkspaceFolder destinationFolder = (WorkspaceFolder) item;
try { try {
//we calculate an unique name for the current destination //we calculate an unique name for the current destination
String itemName = ""; String itemName = "";
logger.debug("getItemName from HL"); logger.debug("getItemName from HL");
if(!isOverwrite) if(!isOverwrite)
itemName = WorkspaceUtil.getUniqueName(fileName, destinationFolder); itemName = WorkspaceUtil.getUniqueName(fileName, destinationFolder);
else else
itemName = fileName; itemName = fileName;
Long size = getContentLength(request); Long size = getContentLength(request);
logger.debug("size: " + size + " bytes"); logger.debug("size: " + size + " bytes");
/* /*
String contentType = uploadItem.getContentType(); String contentType = uploadItem.getContentType();
logger.debug("Content type (mime type): "+contentType + " unique name: "+itemName); logger.debug("Content type (mime type): "+contentType + " unique name: "+itemName);
if(contentType==null || contentType.compareTo(UNKNOWN_UNKNOWN)==0){ if(contentType==null || contentType.compareTo(UNKNOWN_UNKNOWN)==0){
logger.warn("Content Type not detected forcing to null"); logger.warn("Content Type not detected forcing to null");
contentType = null; contentType = null;
@ -423,67 +423,69 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
*/ */
String extension = FilenameUtils.getExtension(itemName); String extension = FilenameUtils.getExtension(itemName);
logger.debug("extension: "+extension); logger.debug("extension: "+extension);
//CONFIRM DESTINATION FOLDER //CONFIRM DESTINATION FOLDER
workspaceUploader.getFile().setParentId(destinationFolder.getId()); workspaceUploader.getFile().setParentId(destinationFolder.getId());
//Create Item Uploader to read progress //Create Item Uploader to read progress
// WorkspaceUploadFile wsUploadFile = new WorkspaceUploadFile(destinationFolder.getId(), itemName); // WorkspaceUploadFile wsUploadFile = new WorkspaceUploadFile(destinationFolder.getId(), itemName);
// workspaceUploader.setFile(wsUploadFile); // workspaceUploader.setFile(wsUploadFile);
// workspaceUploader.setStatusDescription("Uploading "+itemName+" at 0%"); // workspaceUploader.setStatusDescription("Uploading "+itemName+" at 0%");
//instanciate the progress listener //instanciate the progress listener
final AbstractUploadProgressListener uploadProgressListener = createNewListener(request.getSession(), clientUploadKey); final AbstractUploadProgressListener uploadProgressListener = createNewListener(request.getSession(), clientUploadKey);
final UploadProgressInputStream inputStream = new UploadProgressInputStream(uploadItem.openStream(), size); final UploadProgressInputStream inputStream = new UploadProgressInputStream(uploadItem.openStream(), size);
inputStream.addListener(uploadProgressListener); inputStream.addListener(uploadProgressListener);
workspaceUploader.setUploadProgress(uploadProgressListener.getUploadProgress()); workspaceUploader.setUploadProgress(uploadProgressListener.getUploadProgress());
saveWorkspaceUploaderInSession(workspaceUploader, request.getSession()); saveWorkspaceUploaderInSession(workspaceUploader, request.getSession());
String contentType = null; //It's set into HL String contentType = null; //It's set into HL
if(uploadType.compareTo(FILE)==0) {//IS FILE UPLOAD if(uploadType.compareTo(FILE)==0) {//IS FILE UPLOAD
boolean isZipFile = MimeTypeUtil.isZipContentType(uploadItem.getContentType()); //UNZIP?? boolean isZipFile = MimeTypeUtil.isZipContentType(uploadItem.getContentType()); //UNZIP??
if(isZipFile && (extension.compareToIgnoreCase(D4ST)==0)){ //Create REPORT TEMPLATE if(isZipFile && extension.compareToIgnoreCase(D4ST)==0){ //Create REPORT TEMPLATE
String newItemName = itemName; String newItemName = itemName;
logger.debug("createTemplate: "+newItemName); logger.debug("createTemplate: "+newItemName);
createTemplate(workspaceUploader, request.getSession(), wa, newItemName, inputStream, destinationFolder, response, isOverwrite); createTemplate(workspaceUploader, request.getSession(), wa, newItemName, inputStream, destinationFolder, response, isOverwrite);
}else if(isZipFile && (extension.compareToIgnoreCase(D4SR)==0)){ //Create REPORT }else if(isZipFile && extension.compareToIgnoreCase(D4SR)==0){ //Create REPORT
String newItemName = itemName; String newItemName = itemName;
logger.debug("createReport: "+newItemName); logger.debug("createReport: "+newItemName);
createReport(workspaceUploader, request.getSession(), wa, newItemName, inputStream, destinationFolder, response, isOverwrite); createReport(workspaceUploader, request.getSession(), wa, newItemName, inputStream, destinationFolder, response, isOverwrite);
}else{ //CREATE AN EXTERNAL FILE }else{ //CREATE AN EXTERNAL FILE
workspaceUploader = WorkspaceUploaderMng.uploadFile(workspaceUploader, request.getSession(), wa, itemName, inputStream, destinationFolder, contentType, isOverwrite, size); workspaceUploader = WorkspaceUploaderMng.uploadFile(workspaceUploader, request.getSession(), wa, itemName, inputStream, destinationFolder, contentType, isOverwrite, size);
if(workspaceUploader==null) if(workspaceUploader==null)
throw new Exception("Error when creating uploader, it is null!"); throw new Exception("Error when creating uploader, it is null!");
sendMessage(response, workspaceUploader.getIdentifier()); sendMessage(response, workspaceUploader.getIdentifier());
} }
}else {//IS ARCHIVE UPLOAD }else {//IS ARCHIVE UPLOAD
logger.debug("Archive content type: "+uploadItem.getContentType());
if (MimeTypeUtil.isZipContentType(uploadItem.getContentType())){ //UNZIP?? if (MimeTypeUtil.isZipContentType(uploadItem.getContentType())){ //UNZIP??
logger.debug("Unziping content"); logger.debug("Unziping content");
workspaceUploader = WorkspaceUploaderMng.uploadArchive(workspaceUploader, request.getSession(), itemName, inputStream, destinationFolder, size); workspaceUploader = WorkspaceUploaderMng.uploadArchive(workspaceUploader, request.getSession(), itemName, inputStream, destinationFolder, size);
if(workspaceUploader==null) if(workspaceUploader==null)
throw new Exception("Error when creating uploader, it is null!"); throw new Exception("Error when creating uploader, it is null!");
sendMessage(response, workspaceUploader.getIdentifier()); sendMessage(response, workspaceUploader.getIdentifier());
} else{ } else{
workspaceUploader = WorkspaceUploaderMng.uploadFile(workspaceUploader, request.getSession(), wa, itemName, inputStream, destinationFolder, contentType, isOverwrite, size); workspaceUploader = WorkspaceUploaderMng.uploadFile(workspaceUploader, request.getSession(), wa, itemName, inputStream, destinationFolder, contentType, isOverwrite, size);
if(workspaceUploader==null) if(workspaceUploader==null)
throw new Exception("Error when creating uploader, it is null!"); throw new Exception("Error when creating uploader, it is null!");
sendMessage(response, workspaceUploader.getIdentifier()); sendMessage(response, workspaceUploader.getIdentifier());
} }
} }
@ -513,7 +515,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
removeCurrentListener(request.getSession(), clientUploadKey); removeCurrentListener(request.getSession(), clientUploadKey);
} }
} }
/** /**
* Save workspace uploader status. * Save workspace uploader status.
@ -564,7 +566,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
Random randomGenerator = new Random(); Random randomGenerator = new Random();
return randomGenerator.nextInt(Integer.MAX_VALUE); return randomGenerator.nextInt(Integer.MAX_VALUE);
} }
/** /**
* Save workspace uploader in session. * Save workspace uploader in session.
* *
@ -585,7 +587,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
}else }else
throw new Exception("An error occurred in the upload. Workspace Uploader not found. Abort and try again"); throw new Exception("An error occurred in the upload. Workspace Uploader not found. Abort and try again");
} }
//TEST TIME //TEST TIME
/** /**
* Prints the start time. * Prints the start time.
@ -608,7 +610,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
String time = String.format("%d msc %d sec", endTime, TimeUnit.MILLISECONDS.toSeconds(endTime)); String time = String.format("%d msc %d sec", endTime, TimeUnit.MILLISECONDS.toSeconds(endTime));
logger.debug("Elapsed Time: "+time); logger.debug("Elapsed Time: "+time);
} }
/** /**
* Notify upload in shared folder. * Notify upload in shared folder.
* *
@ -619,7 +621,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
* @param isOverwrite the is overwrite * @param isOverwrite the is overwrite
*/ */
public static void notifyUploadInSharedFolder(final HttpSession httpSession, final Workspace workspace, final String itemId, final String destinationFolderId, final boolean isOverwrite){ public static void notifyUploadInSharedFolder(final HttpSession httpSession, final Workspace workspace, final String itemId, final String destinationFolderId, final boolean isOverwrite){
new Thread(){ new Thread(){
public void run() { public void run() {
WorkspaceItem sourceItem; WorkspaceItem sourceItem;
@ -630,12 +632,12 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
NotificationsWorkspaceUploader.checkSendNotifyChangedItemToShare(httpSession, sourceItem, sourceSharedId, folderDestinationItem,isOverwrite); NotificationsWorkspaceUploader.checkSendNotifyChangedItemToShare(httpSession, sourceItem, sourceSharedId, folderDestinationItem,isOverwrite);
} catch (Exception e) { } catch (Exception e) {
logger.error("Error in notifyUploadInSharedFolder", e); logger.error("Error in notifyUploadInSharedFolder", e);
} }
}; };
}.start(); }.start();
} }
/** /**
* Overwrite item. * Overwrite item.
* *
@ -646,9 +648,9 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
* @return the folder item * @return the folder item
*/ */
private FolderItem overwriteItem(Workspace wa, String itemName, InputStream fileData, WorkspaceFolder destinationFolder){ private FolderItem overwriteItem(Workspace wa, String itemName, InputStream fileData, WorkspaceFolder destinationFolder){
FolderItem overwriteItem = null; FolderItem overwriteItem = null;
try { try {
logger.debug("case overwriting item.. "+itemName); logger.debug("case overwriting item.. "+itemName);
overwriteItem = (FolderItem) wa.find(itemName, destinationFolder.getId()); overwriteItem = (FolderItem) wa.find(itemName, destinationFolder.getId());
@ -672,11 +674,11 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
}catch (Exception e) { }catch (Exception e) {
logger.error("Error in createExternalFile, Exception", e); logger.error("Error in createExternalFile, Exception", e);
} }
return overwriteItem; return overwriteItem;
} }
/** /**
* Creates the report. * Creates the report.
* *
@ -694,23 +696,23 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
* @throws IOException Signals that an I/O exception has occurred. * @throws IOException Signals that an I/O exception has occurred.
*/ */
private void createReport(WorkspaceUploaderItem workspaceUploader, HttpSession httpSession, Workspace wa, String itemName, InputStream fileInputStream, WorkspaceFolder destinationFolder, HttpServletResponse response, boolean isOverwrite) throws InsufficientPrivilegesException, ItemAlreadyExistException, InternalErrorException, IOException{ private void createReport(WorkspaceUploaderItem workspaceUploader, HttpSession httpSession, Workspace wa, String itemName, InputStream fileInputStream, WorkspaceFolder destinationFolder, HttpServletResponse response, boolean isOverwrite) throws InsufficientPrivilegesException, ItemAlreadyExistException, InternalErrorException, IOException{
try { try {
Report report = null; Report report = null;
if(!isOverwrite){ if(!isOverwrite){
itemName = WorkspaceUtil.getUniqueName(itemName, destinationFolder); itemName = WorkspaceUtil.getUniqueName(itemName, destinationFolder);
report = wa.createReport(itemName, "", Calendar.getInstance(), Calendar.getInstance(), "", "", "", 0, "",fileInputStream, destinationFolder.getId()); report = wa.createReport(itemName, "", Calendar.getInstance(), Calendar.getInstance(), "", "", "", 0, "",fileInputStream, destinationFolder.getId());
notifyUploadInSharedFolder(httpSession,wa,report.getId(),destinationFolder.getId(), isOverwrite); notifyUploadInSharedFolder(httpSession,wa,report.getId(),destinationFolder.getId(), isOverwrite);
sendMessage(response, "File "+report.getName()+" imported correctly in "+destinationFolder.getPath()); sendMessage(response, "File "+report.getName()+" imported correctly in "+destinationFolder.getPath());
} }
else{ //CASE OVERWRITE else{ //CASE OVERWRITE
FolderItem rep = overwriteItem(wa, itemName, fileInputStream, destinationFolder); FolderItem rep = overwriteItem(wa, itemName, fileInputStream, destinationFolder);
if(rep!=null){ if(rep!=null){
notifyUploadInSharedFolder(httpSession,wa,rep.getId(),destinationFolder.getId(), isOverwrite); notifyUploadInSharedFolder(httpSession,wa,rep.getId(),destinationFolder.getId(), isOverwrite);
sendMessage(response, "File "+rep.getName()+" imported correctly in "+destinationFolder.getPath()); sendMessage(response, "File "+rep.getName()+" imported correctly in "+destinationFolder.getPath());
} }
@ -735,7 +737,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
// TODO: handle exception // TODO: handle exception
} }
} }
} }
/** /**
@ -755,23 +757,23 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
* @throws IOException Signals that an I/O exception has occurred. * @throws IOException Signals that an I/O exception has occurred.
*/ */
private void createTemplate(WorkspaceUploaderItem workspaceUploader, HttpSession httpSession, Workspace wa, String itemName, InputStream fileInputStream, WorkspaceFolder destinationFolder, HttpServletResponse response, boolean isOverwrite) throws InsufficientPrivilegesException, ItemAlreadyExistException, InternalErrorException, IOException{ private void createTemplate(WorkspaceUploaderItem workspaceUploader, HttpSession httpSession, Workspace wa, String itemName, InputStream fileInputStream, WorkspaceFolder destinationFolder, HttpServletResponse response, boolean isOverwrite) throws InsufficientPrivilegesException, ItemAlreadyExistException, InternalErrorException, IOException{
try { try {
ReportTemplate template = null; ReportTemplate template = null;
if(!isOverwrite){ if(!isOverwrite){
itemName = WorkspaceUtil.getUniqueName(itemName, destinationFolder); itemName = WorkspaceUtil.getUniqueName(itemName, destinationFolder);
template = wa.createReportTemplate(itemName, "", Calendar.getInstance(), Calendar.getInstance(), "", "", 0, "", fileInputStream, destinationFolder.getId()); template = wa.createReportTemplate(itemName, "", Calendar.getInstance(), Calendar.getInstance(), "", "", 0, "", fileInputStream, destinationFolder.getId());
notifyUploadInSharedFolder(httpSession,wa,template.getId(),destinationFolder.getId(), isOverwrite); notifyUploadInSharedFolder(httpSession,wa,template.getId(),destinationFolder.getId(), isOverwrite);
sendMessage(response, "File "+template.getName()+" imported correctly in "+destinationFolder.getPath()); sendMessage(response, "File "+template.getName()+" imported correctly in "+destinationFolder.getPath());
}else{ //CASE OVERWRITE }else{ //CASE OVERWRITE
FolderItem rep = overwriteItem(wa, itemName, fileInputStream, destinationFolder); FolderItem rep = overwriteItem(wa, itemName, fileInputStream, destinationFolder);
if(rep!=null){ if(rep!=null){
notifyUploadInSharedFolder(httpSession,wa,rep.getId(),destinationFolder.getId(), isOverwrite); notifyUploadInSharedFolder(httpSession,wa,rep.getId(),destinationFolder.getId(), isOverwrite);
sendMessage(response, "File "+rep.getName()+" imported correctly in "+destinationFolder.getPath()); sendMessage(response, "File "+rep.getName()+" imported correctly in "+destinationFolder.getPath());
} }
@ -797,10 +799,10 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
// TODO: handle exception // TODO: handle exception
} }
} }
} }
/** /**
* Send error. * Send error.
* *
@ -824,7 +826,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
throw e; //Sending Exceptions throw e; //Sending Exceptions
} }
} }
/** /**
* Send message. * Send message.
* *
@ -848,7 +850,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
throw e; //Sending Exceptions throw e; //Sending Exceptions
} }
} }
/** /**
* Send warn message. * Send warn message.
* *
@ -872,7 +874,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
throw e; //Sending Exceptions throw e; //Sending Exceptions
} }
} }
/** /**
* Mark the current upload process to be canceled. * Mark the current upload process to be canceled.
* *
@ -888,7 +890,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
}else }else
logger.info("Skipping cancel upload: listener is null or is cancel"); logger.info("Skipping cancel upload: listener is null or is cancel");
} }
/** /**
* Get the listener active in this session. * Get the listener active in this session.
* *
@ -913,7 +915,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
public boolean isAppEngine() { public boolean isAppEngine() {
return appEngine; return appEngine;
} }
/** /**
* Create a new listener for this session. * Create a new listener for this session.
* *
@ -929,7 +931,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
} }
} }
/** /**
* Gets the content length. * Gets the content length.
* *
@ -945,7 +947,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
} }
return size; return size;
} }
/** /**
* Remove the listener active in this session. * Remove the listener active in this session.
* *
@ -955,14 +957,14 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
protected void removeCurrentListener(HttpSession session, String clientUploadKey) { protected void removeCurrentListener(HttpSession session, String clientUploadKey) {
logger.debug("RemoveCurrentListener: "+clientUploadKey); logger.debug("RemoveCurrentListener: "+clientUploadKey);
AbstractUploadProgressListener listener = getCurrentListener(session, clientUploadKey); AbstractUploadProgressListener listener = getCurrentListener(session, clientUploadKey);
if (listener != null) { if (listener != null) {
logger.debug("Removing listener: "+listener.getClientUploadKey()); logger.debug("Removing listener: "+listener.getClientUploadKey());
listener.remove(); listener.remove();
}else }else
logger.warn("Listener "+clientUploadKey+ "is null"); logger.warn("Listener "+clientUploadKey+ "is null");
} }
/** /**
* The main method. * The main method.
* *
@ -977,6 +979,6 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
e.printStackTrace(); e.printStackTrace();
} }
}*/ }*/
} }