Author: solomax
Date: Mon Nov 30 11:06:09 2015
New Revision: 1717228

URL: http://svn.apache.org/viewvc?rev=1717228&view=rev
Log:
[OPENMEETINGS-1279] file upload somehow works, need more testing and better 
error handling

Removed:
    
openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/AbstractUploadController.java
    
openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/UploadController.java
    
openmeetings/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/UploadCompleteMessage.java
    
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/AbstractUploadController.java
    
openmeetings/trunk/singlewebapp/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/UploadCompleteMessage.java
Modified:
    
openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
    
openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/components/upload/uploadWindowExplorer.lzx
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
    
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/restCall.lzx
    
openmeetings/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
    openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/web.xml
    
openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
    
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
    
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
    
openmeetings/trunk/singlewebapp/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
    
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java

Modified: 
openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java?rev=1717228&r1=1717227&r2=1717228&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
 Mon Nov 30 11:06:09 2015
@@ -18,7 +18,10 @@
  */
 package org.apache.openmeetings.core.data.file;
 
+import static org.apache.openmeetings.util.OmFileHelper.getUploadFilesDir;
+import static org.apache.openmeetings.util.OmFileHelper.getUploadTempFilesDir;
 import static org.apache.openmeetings.util.OmFileHelper.thumbImagePrefix;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
 import java.io.InputStream;
@@ -33,8 +36,6 @@ import org.apache.openmeetings.core.docu
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
 import org.apache.openmeetings.db.entity.file.FileExplorerItem;
 import org.apache.openmeetings.db.entity.file.FileItem.Type;
-import org.apache.openmeetings.util.OmFileHelper;
-import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.openmeetings.util.StoredFile;
 import org.apache.openmeetings.util.crypt.MD5;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
@@ -44,8 +45,7 @@ import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
 public class FileProcessor {
-
-       private static final Logger log = 
Red5LoggerFactory.getLogger(FileProcessor.class, 
OpenmeetingsVariables.webAppRootKey);
+       private static final Logger log = 
Red5LoggerFactory.getLogger(FileProcessor.class, webAppRootKey);
 
        //Spring loaded Beans
        @Autowired
@@ -59,124 +59,93 @@ public class FileProcessor {
        @Autowired
        private GeneratePDF generatePDF;
 
-       public ConverterProcessResultList processFile(Long userId, Long roomId, 
-                       boolean isOwner, InputStream is, Long parentFolderId, 
String fileSystemName, 
-                       String externalFileId, String externalType) throws 
Exception {
-               
+       //FIXME TODO this method need to be refactored to throw exceptions
+       public ConverterProcessResultList processFile(Long userId, 
FileExplorerItem f, InputStream is) throws Exception {
                ConverterProcessResultList returnError = new 
ConverterProcessResultList();
                
-               int dotidx = fileSystemName.lastIndexOf('.');
+               int dotidx = f.getName().lastIndexOf('.');
 
-        // Generate a random string to prevent any problems with
-        // foreign characters and duplicates
-        Date d = new Date();
-        String newFileSystemName = MD5.do_checksum("FILE_" + d.getTime());
-
-        String newFileExtDot = fileSystemName.substring(dotidx, 
fileSystemName.length()).toLowerCase();
-        String newFileExt = newFileExtDot.substring(1);
-        log.debug("newFileExt: " + newFileExt);
-        StoredFile storedFile = new StoredFile(newFileSystemName, newFileExt); 
-
-        // Check variable to see if this file is a presentation
-        // check if this is a a file that can be converted by
-        // openoffice-service
-        boolean canBeConverted = storedFile.isConvertable();
-        boolean isPdf = storedFile.isPdf();
-        boolean isImage = storedFile.isImage();
-        boolean isChart = storedFile.isChart();
-        boolean isAsIs = storedFile.isAsIs();
-        boolean isVideo = storedFile.isVideo();
-
-        log.debug("isAsIs: " + isAsIs);
-
-        // add outputfolders for profiles
-        // if it is a presenation it will be copied to another place
-        if (!(canBeConverted || isPdf || isImage || isVideo || isAsIs)) {
-               returnError.addItem("wrongType", new 
ConverterProcessResult("The file type cannot be converted"));
-            return returnError;
-        }
-
-        File completeName = new File(
-               isAsIs ? OmFileHelper.getUploadFilesDir() : 
OmFileHelper.getUploadTempFilesDir()
-               , newFileSystemName + newFileExtDot);
-        log.debug("writing file to: " + completeName);
-        FileHelper.copy(is, completeName);
-        is.close();
-
-        Long ownerId = null;
-        if (parentFolderId == -2) {
-            parentFolderId = 0L;
-            ownerId = userId;
-        }
-        if (isOwner) {
-            ownerId = userId;
-        }
-
-        String fileHashName = newFileSystemName + newFileExtDot;
-        Boolean isPresentation = false;
-        if (canBeConverted || isPdf) {
-            // In case of a presentation the hash is a folder-name
-            fileHashName = newFileSystemName;
-            isPresentation = true;
-        }
-        if (isImage) {
-            fileHashName = newFileSystemName + ".jpg";
-        }
-        if (isVideo) {
-            fileHashName = newFileSystemName + ".flv";
-        }
-
-        FileExplorerItem fileExplorerItem = 
fileExplorerItemDao.get(parentFolderId);
-
-        if (fileExplorerItem != null) {
-            if (Type.Folder != fileExplorerItem.getType()) {
-                parentFolderId = 0L;
-            }
-        }
-
-        Long fileId = fileExplorerItemDao.add(
-                fileSystemName, fileHashName, // The Hashname of the file
-                parentFolderId, ownerId, roomId, userId, false, // isFolder
-                isImage, isPresentation, "", false, isChart, 
-                externalFileId, externalType);
-        log.debug("fileId: " + fileId);
-        
-        
-        
-        log.debug("canBeConverted: " + canBeConverted);
-        if (canBeConverted) {
-            // convert to pdf, thumbs, swf and xml-description
-            returnError = generatePDF.convertPDF(newFileSystemName, "files", 
true, completeName);
-        } else if (isPdf) {
-            // convert to thumbs, swf and xml-description
-            returnError = generatePDF.convertPDF(newFileSystemName, "files", 
false, completeName);
-        } else if (isChart) {
-            log.debug("uploaded chart file");
-        } else if (isImage && !isAsIs) {
-            // convert it to JPG
-            log.debug("##### convert it to JPG: ");
-            returnError = generateImage.convertImage(newFileSystemName, 
newFileExtDot, "files",
-                    newFileSystemName, false);
-        } else if (isAsIs) {
-               ConverterProcessResult processThumb = 
generateThumbs.generateThumb(thumbImagePrefix, completeName, 50);
-            returnError.addItem("processThumb", processThumb);
-        } else if (isVideo) {
-               List<ConverterProcessResult> returnList = 
flvExplorerConverter.startConversion(fileId, completeName.getCanonicalPath());
-               
-               int i=0;
-               for (ConverterProcessResult returnMap : returnList) {
-                       returnError.addItem("processFLV "+i, returnMap);
-               }
-               
-        }
-        
-        // has to happen at the end, otherwise it will be overwritten
-        //cause the variable is new initialized
-        returnError.setCompleteName(completeName.getName());
-        returnError.setFileExplorerItemId(fileId);
-        
-               return returnError;
+               // Generate a random string to prevent any problems with
+               // foreign characters and duplicates
+               String newName = MD5.do_checksum("FILE_" + new 
Date().getTime());
+
+               String extDot = f.getName().substring(dotidx, 
f.getName().length()).toLowerCase();
+               String ext = extDot.substring(1);
+               log.debug("file extension: " + ext);
+               StoredFile storedFile = new StoredFile(newName, ext); 
+
+               // Check variable to see if this file is a presentation
+               // check if this is a a file that can be converted by
+               // openoffice-service
+               boolean canBeConverted = storedFile.isConvertable();
+               boolean isPdf = storedFile.isPdf();
+               boolean isImage = storedFile.isImage();
+               boolean isChart = storedFile.isChart();
+               boolean isAsIs = storedFile.isAsIs();
+               boolean isVideo = storedFile.isVideo();
+
+               log.debug("isAsIs: " + isAsIs);
+
+               // add outputfolders for profiles
+               // if it is a presenation it will be copied to another place
+               if (!(canBeConverted || isPdf || isImage || isVideo || isAsIs)) 
{
+                       returnError.addItem("wrongType", new 
ConverterProcessResult("The file type cannot be converted"));
+                       return returnError;
+               }
+
+               File completeName = new File(isAsIs ? getUploadFilesDir() : 
getUploadTempFilesDir(), newName + extDot);
+               log.debug("writing file to: " + completeName);
+               FileHelper.copy(is, completeName);
+               is.close();
+
+               String hash = newName + extDot;
+               if (isImage) {
+                       hash = newName + ".jpg";
+                       f.setType(Type.Image);
+               } else if (isVideo) {
+                       hash = newName + ".flv";
+                       f.setType(Type.Video);
+               } else if (isChart) {
+                       f.setType(Type.PollChart);
+               } else if (isPdf || canBeConverted) {
+                       hash = newName;
+                       f.setType(Type.Presentation);
+               }
+               f.setHash(hash);
+
+               f = fileExplorerItemDao.update(f);
+               log.debug("fileId: " + f.getId());
                
+               log.debug("canBeConverted: " + canBeConverted);
+               if (canBeConverted) {
+                       // convert to pdf, thumbs, swf and xml-description
+                       returnError = generatePDF.convertPDF(newName, "files", 
true, completeName);
+               } else if (isPdf) {
+                       // convert to thumbs, swf and xml-description
+                       returnError = generatePDF.convertPDF(newName, "files", 
false, completeName);
+               } else if (isChart) {
+                       log.debug("uploaded chart file");
+               } else if (isImage && !isAsIs) {
+                       // convert it to JPG
+                       log.debug("##### convert it to JPG: ");
+                       returnError = generateImage.convertImage(newName, 
extDot, "files", newName, false);
+               } else if (isAsIs) {
+                       ConverterProcessResult processThumb = 
generateThumbs.generateThumb(thumbImagePrefix, completeName, 50);
+                       returnError.addItem("processThumb", processThumb);
+               } else if (isVideo) {
+                       List<ConverterProcessResult> returnList = 
flvExplorerConverter.startConversion(f.getId(), 
completeName.getCanonicalPath());
+                       
+                       int i = 0;
+                       for (ConverterProcessResult returnMap : returnList) {
+                               returnError.addItem("processFLV " + i, 
returnMap);
+                       }
+               }
+               
+               // has to happen at the end, otherwise it will be overwritten
+               //cause the variable is new initialized
+               returnError.setCompleteName(completeName.getName());
+               returnError.setFileExplorerItemId(f.getId());
+               
+               return returnError;
        }
-       
 }

Modified: 
openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1717228&r1=1717227&r2=1717228&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
 Mon Nov 30 11:06:09 2015
@@ -62,7 +62,6 @@ import org.apache.openmeetings.util.Init
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.openmeetings.util.Version;
-import org.apache.openmeetings.util.process.UploadCompleteMessage;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.adapter.ApplicationAdapter;
 import org.red5.server.api.IClient;
@@ -1909,24 +1908,6 @@ public class ScopeApplicationAdapter ext
                return 1;
        }
        
-       public synchronized void 
sendUploadCompletMessageByPublicSID(UploadCompleteMessage message, String 
publicSID) {
-               try {
-                       //if the upload is locally, just proceed to the normal 
function
-                       //Search for RoomClient on current server (serverId == 
null means it will look on the master for the RoomClient)
-                       Client currentClient = 
sessionManager.getClientByPublicSID(publicSID, false, null);
-                       
-                       if (currentClient != null) {
-                               sendMessageWithClientByPublicSID(message, 
publicSID);
-                       } else {
-                               throw new Exception("Could not Find RoomClient 
on List publicSID: "+ publicSID);
-                       }
-                       
-               } catch (Exception err) {
-                       log.error("[sendUploadCompletMessageByPublicSID] ", 
err);
-               }
-       }
-       
-
        public synchronized void sendMessageWithClientByPublicSID(Object 
message, String publicSID) {
                try {
                        // ApplicationContext appCtx = 
getContext().getApplicationContext();

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/components/upload/uploadWindowExplorer.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/components/upload/uploadWindowExplorer.lzx?rev=1717228&r1=1717227&r2=1717228&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/components/upload/uploadWindowExplorer.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/components/upload/uploadWindowExplorer.lzx
 Mon Nov 30 11:06:09 2015
@@ -50,34 +50,14 @@
                </handler>
                
                <method name="remoteComplete" args="tArrayValueObj">
+                       if ($debug) Debug.write("remoteComplete ", 
tArrayValueObj);
+                       this.progressBar.setValue(100);
+                       this.upload.setAttribute('enabled', false);
+                       this.upload.setAttribute("visible", false);
+                       this.browse.setAttribute("visible", false);
+                       this.txtFile.setAttribute("visible", false);
                        
-                       if ($debug) Debug.write("onCompleteByRemote 
",tArrayValueObj);
-                       this.parent.progressBar.setValue(100);
-                       this.parent.upload.setAttribute('enabled', false);
-                       this.parent.upload.setAttribute("visible",false);
-                       this.parent.browse.setAttribute("visible",false);
-                       this.parent.txtFile.setAttribute("visible",false);
-                       
-                       if (this.isOnlyZip) {
-                               this.parent.close();
-                               return;
-                       }
-                       
-                       if (this.isOnlyXml) {
-                               parent.returnObj.sendRefresh();
-                               this.parent.close();
-                               return;
-                       }
-                       
-                       if (this.isOnlyProfile) {
-                               parent.returnObj.sendRefresh();
-                               this.parent.close();
-                               return;
-                       }
-                       
-                       if (parent._loadToWhiteboard.getValue()) {
-                               
-                               if ($debug) Debug.write(tArrayValueObj);
+                       if (this._loadToWhiteboard.getValue()) {
                                if (tArrayValueObj.isPresentation) {
                                        var url = 
this.formatURL(tArrayValueObj.fileHash);
                                        
@@ -90,13 +70,12 @@
                                                          
tArrayValueObj.fileSystemName);
                                } else if (tArrayValueObj.isImage) {
                                        
canvas._drawarea.parent.parent.clearAreaAndAddImage(this.generateFileLink(tArrayValueObj.fileHash),0,0,
-                                         canvas.getUrl() +'DownloadHandler',
-                                         
tArrayValueObj.fileHash,"videoconf1","/","files",hib.conferencedomain);
+                                                       canvas.getUrl() 
+'DownloadHandler',
+                                                       
tArrayValueObj.fileHash,"videoconf1","/","files",hib.conferencedomain);
                                }
                        }
                        
                        if (parent.isdefaultreturn) {
-                               
                                var tempSendArray = new Array ();
                                tempSendArray[0] = 'fileslist';
                                var nowTime = new Date();
@@ -117,7 +96,7 @@
                                parent.fileExplorerRef.onClose.sendEvent();
                        }
                        
-                       parent.close();
+                       close();
                </method>
 
                <method name="cancelHandler" args="evt">
@@ -149,17 +128,17 @@
                </method>
        
                <method name="errorHandler" args="evt">
-                       <![CDATA[
-                               if ($debug) Debug.write('errorHandler invoked: 
', evt);
-                               new lz.errorPopup(canvas, {error: 'HTTP-ERROR: 
' + evt});
-                               this.close();
-                               var now = new Date();
-                               var datumsString = now.getHours() + ':' + 
now.getMinutes();
-                               var msg = ['fileslist', now.getHours() + ':' + 
now.getMinutes(), 'newfile', canvas.currentuser];
-                               //if ($debug) Debug.write("send: ", msg);
-                               canvas.objMessage = msg;
-                               canvas.thishib.sendMessage.doCall();
-                       ]]>
+               <![CDATA[
+                       if ($debug) Debug.write('errorHandler invoked: ', evt);
+                       new lz.errorPopup(canvas, {error: 'HTTP-ERROR: ' + 
evt});
+                       this.close();
+                       var now = new Date();
+                       var datumsString = now.getHours() + ':' + 
now.getMinutes();
+                       var msg = ['fileslist', now.getHours() + ':' + 
now.getMinutes(), 'newfile', canvas.currentuser];
+                       //if ($debug) Debug.write("send: ", msg);
+                       canvas.objMessage = msg;
+                       canvas.thishib.sendMessage.doCall();
+               ]]>
                </method>
        
                <method name="selectHandler" args="evt">
@@ -204,20 +183,101 @@
                <simpleLabelButton name="upload" x="10" y="120" labelid="593" 
width="250" enabled="false" height="20">
                        <handler name="onclick">
                        <![CDATA[
-                               
//canvas.currentFileExplorer.createFile(parent.fileReference.name, 
parent.fileReference.data, this, /*FIXME TODO fileObj*/);
-                               //FIXME TODO canvas.currentFileExplorer
-                               if ($debug) Debug.write("bytes???: ", 
parent.fileReference.data, canvas.currentFileExplorer.getSelectedFolder(), 
canvas.currentFileExplorer);
+                               if ($debug) Debug.write("Upload of new file", 
parent.fileReference.name);
+                               parent.progressBar.setAttribute('visible', 
false);
+                               parent.upload.setAttribute('enabled', false);
+                               parent.browse.setAttribute('enabled', false);
+                               parent.progress2.startShowing();
+                               var fold = 
canvas.currentFileExplorer.getSelectedFolder();
+                               canvas.currentFileExplorer.createFile(
+                                               parent.fileReference.name
+                                               , parent.fileReference.data
+                                               , parent
+                                               , {
+                                                       parentId: fold.fileId
+                                                       , name: 
parent.fileReference.name
+                                                       , roomId: fold.roomId
+                                                       , ownerId: fold.ownerId
+                                                       , type: 'Image' 
//dummy, will be rewritten
+                                               }
+                                       );
+                               //if ($debug) Debug.write("bytes???: ", 
parent.fileReference.data, canvas.currentFileExplorer.getSelectedFolder(), 
canvas.currentFileExplorer);
                        ]]>
                        </handler>
                </simpleLabelButton>
                
+               <method name="createFileComplete" args="event">
+                       if ($debug) Debug.write("createFileComplete::File has 
been created!!!!");
+                       //FIXME TODO remove remoteComplete!!!!!
+                       
+                       if ($debug) Debug.write("createFileComplete::0");
+                       this.upload.setAttribute("visible", false);
+                       this.browse.setAttribute("visible", false);
+                       this.txtFile.setAttribute("visible", false);
+                       
+                       if ($debug) Debug.write("createFileComplete::1");
+                       var o = JSON.parse(event.target.data);
+                       var f = o.fileExplorerItemDTO;
+                       if ($debug) Debug.write("createFileComplete::2", f);
+                       if (this._loadToWhiteboard.getValue()) {
+                               if ($debug) 
Debug.write("createFileComplete::3");
+                               if (f.type == 'Presentation') {
+                                       var url = this.formatURL(f.hash);
+                                       
+                                       var uploadmoduleimgfolderVar = '/' + 
f.hash;
+                                       
+                                       if ($debug) Debug.write(url);
+                                       
+                                       if ($debug) 
Debug.write("createFileComplete::4");
+                                       
canvas._drawarea.loadSWFPresentationSynced(url, f.hash + ".swf",
+                                                         
"videoconf1",uploadmoduleimgfolderVar,"files",hib.conferencedomain,1,
+                                                         f.name);
+                               } else if (f.type == 'Image') {
+                                       if ($debug) 
Debug.write("createFileComplete::5");
+                                       
canvas._drawarea.parent.parent.clearAreaAndAddImage(this.generateFileLink(f.hash),0,0,
+                                                       canvas.getUrl() 
+'DownloadHandler',
+                                                       
f.hash,"videoconf1","/","files",hib.conferencedomain);
+                               }
+                       }
+                       
+                       if ($debug) Debug.write("createFileComplete::6");
+                       /*
+                               FIXME TODO investigate this
+                       if (parent.isdefaultreturn) {
+                               var tempSendArray = new Array ();
+                               tempSendArray[0] = 'fileslist';
+                               var nowTime = new Date();
+                               var datumsString = 
nowTime.getHours()+':'+nowTime.getMinutes();
+                               tempSendArray[1] = datumsString;
+                               //if ($debug) Debug.write("Setting Message");
+                               tempSendArray[2] = 'newfile';
+                               tempSendArray[3] = canvas.currentusename;
+                               //if ($debug) Debug.write("send: 
",tempSendArray);
+                               canvas.objMessage = tempSendArray;
+                               canvas.thishib.sendMessageAll.doCall();
+                       } else {
+                               //FIXME TODO refresh !!! 
parent.returnObj.sendRefresh();
+                       }
+                       */
+                       
+                       if ($debug) Debug.write("createFileComplete::7");
+                       this.close();
+                       if ($debug) Debug.write("createFileComplete::8");
+               </method>
+       
+               <method name="createFileError" args="event">
+                       if ($debug) Debug.error("Error while creating the 
file!!!!");
+                       //FIXME TODO check this
+                       new 
lz.converterPopup(canvas.main_content._content.inner, {error: event});
+               </method>
+               
                <view name="progress2" x="10" y="158" width="250" 
visibility="hidden" height="10" bgcolor="#C6CEDF">
                        <attribute name="isStarted" value="false" 
type="boolean" />
                        <method name="startShowing">
                                if (!this.isStarted) {
                                        this.isStarted = true;
                                        
this.status._hide.setAttribute('started', true);
-                                       
this.setAttribute("visibility","visible");
+                                       this.setAttribute("visibility", 
"visible");
                                } else {
                                        return;
                                }

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx?rev=1717228&r1=1717227&r2=1717228&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
 Mon Nov 30 11:06:09 2015
@@ -1472,24 +1472,10 @@
                        } else if (value.message=='desktop'){
                         canvas._drawarea.incomingScreenSharing(value);
                     } else if (value.message=='library'){
-                        
                         if (value.action == 'import') {
-                            
canvas.currentUploadWindow.onCompleteByRemote(value);
+                            canvas.currentUploadWindow.remoteComplete(value);
                             return;
                         }
-                        
-                        var error = false;
-                        for (var eg in value.error){
-                            if (value.error[eg].exitValue!=0){
-                                   if ($debug) Debug.write("eg ",eg," value 
",value.error[eg]);
-                                   if ($debug) Debug.write("eg ",eg," value 
",value.error[eg].exitValue);
-                                error = true;
-                            }
-                        }
-                        canvas.currentUploadWindow.onCompleteByRemote(value);
-                        if (value.hasError) {
-                            new 
lz.converterPopup(canvas.main_content._content.inner,{error:value.error});
-                        }
                     } else if (value.message=='startStreaming'){
                         canvas._drawarea.startStreaming(value);
                     } else if (value.message=='stopStreaming'){

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx?rev=1717228&r1=1717227&r2=1717228&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
 Mon Nov 30 11:06:09 2015
@@ -220,7 +220,7 @@
                                , successCallback: createFileComplete
                                });
                }
-               var vars = UploadPostHelper.getPostData(bytes ? fileName : 
null, bytes, [
+               var vars = UploadPostHelper.getPostData(bytes == null ? null : 
fileName, bytes, [
                        {
                                name: 'file'
                                , type: 'application/json'

Modified: 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/restCall.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/restCall.lzx?rev=1717228&r1=1717227&r2=1717228&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/restCall.lzx
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-flash/src/main/swf/modules/conference/tabcontent/fileexplorer/restCall.lzx
 Mon Nov 30 11:06:09 2015
@@ -81,7 +81,7 @@
                        public static function getPostData(fileName:String, 
byteArray:ByteArray, parameters:Array = null):ByteArray {
                                var i:int;
                                var bytes:String;
-       
+
                                var postData:ByteArray = new ByteArray();
                                postData.endian = Endian.BIG_ENDIAN;
        
@@ -89,9 +89,6 @@
                                if(parameters == null) {
                                        parameters = [];
                                }
-                               if (fileName) {
-                                       parameters[parameters.length] = {name: 
'Filename', value: fileName};
-                               }
        
                                //add parameters to postData
                                for (var j:int = 0; j < parameters.length; ++j) 
{
@@ -115,7 +112,7 @@
                                        //add Filedata to postData
                                        postData = BOUNDARY(postData);
                                        postData = LINEBREAK(postData);
-                                       bytes = 'Content-Disposition: 
form-data; name="Filedata"; filename="';
+                                       bytes = 'Content-Disposition: 
form-data; name="stream"; filename="';
                                        for (i = 0; i < bytes.length; ++i) {
                                                postData.writeByte( 
bytes.charCodeAt(i) );
                                        }
@@ -125,23 +122,7 @@
                                        addContentType(postData, 
"application/octet-stream");
                                        postData.writeBytes(byteArray, 0, 
byteArray.length);
                                        postData = LINEBREAK(postData);
-               
-                                       //add upload filed to postData
-                                       postData = LINEBREAK(postData);
-                                       postData = BOUNDARY(postData);
-                                       postData = LINEBREAK(postData);
-                                       bytes = 'Content-Disposition: 
form-data; name="Upload"';
-                                       for (i = 0; i < bytes.length; ++i) {
-                                               
postData.writeByte(bytes.charCodeAt(i));
-                                       }
-                                       postData = LINEBREAK(postData);
-                                       postData = LINEBREAK(postData);
-                                       bytes = 'Submit Query';
-                                       for (i = 0; i < bytes.length; ++i) {
-                                               
postData.writeByte(bytes.charCodeAt(i));
-                                       }
-                                       postData = LINEBREAK(postData);
-               
+                                       
                                        //closing boundary
                                        postData = BOUNDARY(postData);
                                        postData = DOUBLEDASH(postData);

Modified: 
openmeetings/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java?rev=1717228&r1=1717227&r2=1717228&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
 Mon Nov 30 11:06:09 2015
@@ -155,7 +155,7 @@ public class OmFileHelper {
        }
        
        public static File getUploadTempDir() {
-               return new File(OmFileHelper.OM_HOME, UPLOAD_TEMP_DIR);
+               return getDir(OmFileHelper.OM_HOME, UPLOAD_TEMP_DIR);
        }
        
        public static File getUploadTempFilesDir() {

Modified: 
openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/web.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/web.xml?rev=1717228&r1=1717227&r2=1717228&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/web.xml 
(original)
+++ 
openmeetings/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/web.xml 
Mon Nov 30 11:06:09 2015
@@ -71,7 +71,7 @@
                </init-param>
                <init-param>
                        <param-name>ignorePaths</param-name>
-                       
<param-value>conf,css,default,docs,images,js,persistence,public,screensharing,streams,upload,uploadtemp,services,networktest.,file.,screen.,DownloadHandler</param-value>
+                       
<param-value>conf,css,default,docs,images,js,persistence,public,screensharing,streams,upload,uploadtemp,services,networktest.,screen.,DownloadHandler</param-value>
                </init-param>
        </filter>
        <filter-mapping>

Modified: 
openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1717228&r1=1717227&r2=1717228&view=diff
==============================================================================
--- 
openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
 (original)
+++ 
openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
 Mon Nov 30 11:06:09 2015
@@ -41,6 +41,7 @@ import javax.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.cxf.jaxrs.ext.multipart.Multipart;
+import org.apache.openmeetings.core.data.file.FileProcessor;
 import org.apache.openmeetings.core.data.file.FileUtils;
 import org.apache.openmeetings.core.documents.LoadLibraryPresentation;
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
@@ -55,6 +56,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.process.ConverterProcessResultList;
 import org.apache.openmeetings.webservice.error.ServiceException;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -84,6 +86,8 @@ public class FileWebService {
        private FileExplorerItemDao fileDao;
        @Autowired
        private FileUtils fileUtils;
+       @Autowired
+       private FileProcessor fileProcessor;
 
        /**
         * deletes files or folders based on it id
@@ -173,7 +177,7 @@ public class FileWebService {
        @Path("/")
        public FileExplorerItemDTO add(@WebParam(name="sid") @QueryParam("sid") 
String sid
                        , @Multipart(value = "file", type = 
MediaType.APPLICATION_JSON) @WebParam(name="file") FileExplorerItemDTO file
-                       , @Multipart(value = "stream", type = 
MediaType.APPLICATION_OCTET_STREAM, required = false) @WebParam(name="stream") 
InputStream attach //TODO check this
+                       , @Multipart(value = "stream", type = 
MediaType.APPLICATION_OCTET_STREAM, required = false) @WebParam(name="stream") 
InputStream stream
                        ) throws ServiceException
        {
                try {
@@ -189,10 +193,17 @@ public class FileWebService {
                                        || (AuthLevelUtil.hasUserLevel(rights) 
&& userId.equals(f.getOwnerId())))*/
                        if (AuthLevelUtil.hasUserLevel(rights))
                        {
-                               //TODO permissions
-                               //TODO attachment
                                f.setInsertedBy(userId);
-                               fileDao.update(f);
+                               //TODO permissions
+                               if (stream != null) {
+                                       //TODO attachment
+                                       ConverterProcessResultList result = 
fileProcessor.processFile(userId, f, stream);
+                                       if (result.hasError()) {
+                                               throw new 
ServiceException(result.getLogMessage());
+                                       }
+                               } else {
+                                       f = fileDao.update(f);
+                               }
                                return new FileExplorerItemDTO(f);
                        } else {
                                throw new ServiceException("Insufficient 
permissins"); //TODO code -26

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java?rev=1717228&r1=1717227&r2=1717228&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
 Mon Nov 30 11:06:09 2015
@@ -18,7 +18,10 @@
  */
 package org.apache.openmeetings.core.data.file;
 
+import static org.apache.openmeetings.util.OmFileHelper.getUploadFilesDir;
+import static org.apache.openmeetings.util.OmFileHelper.getUploadTempFilesDir;
 import static org.apache.openmeetings.util.OmFileHelper.thumbImagePrefix;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
 import java.io.InputStream;
@@ -33,8 +36,6 @@ import org.apache.openmeetings.core.docu
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
 import org.apache.openmeetings.db.entity.file.FileExplorerItem;
 import org.apache.openmeetings.db.entity.file.FileItem.Type;
-import org.apache.openmeetings.util.OmFileHelper;
-import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.openmeetings.util.StoredFile;
 import org.apache.openmeetings.util.crypt.MD5;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
@@ -44,8 +45,7 @@ import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
 public class FileProcessor {
-
-       private static final Logger log = 
Red5LoggerFactory.getLogger(FileProcessor.class, 
OpenmeetingsVariables.webAppRootKey);
+       private static final Logger log = 
Red5LoggerFactory.getLogger(FileProcessor.class, webAppRootKey);
 
        //Spring loaded Beans
        @Autowired
@@ -59,124 +59,93 @@ public class FileProcessor {
        @Autowired
        private GeneratePDF generatePDF;
 
-       public ConverterProcessResultList processFile(Long userId, Long roomId, 
-                       boolean isOwner, InputStream is, Long parentFolderId, 
String fileSystemName, 
-                       String externalFileId, String externalType) throws 
Exception {
-               
+       //FIXME TODO this method need to be refactored to throw exceptions
+       public ConverterProcessResultList processFile(Long userId, 
FileExplorerItem f, InputStream is) throws Exception {
                ConverterProcessResultList returnError = new 
ConverterProcessResultList();
                
-               int dotidx = fileSystemName.lastIndexOf('.');
+               int dotidx = f.getName().lastIndexOf('.');
 
-        // Generate a random string to prevent any problems with
-        // foreign characters and duplicates
-        Date d = new Date();
-        String newFileSystemName = MD5.do_checksum("FILE_" + d.getTime());
-
-        String newFileExtDot = fileSystemName.substring(dotidx, 
fileSystemName.length()).toLowerCase();
-        String newFileExt = newFileExtDot.substring(1);
-        log.debug("newFileExt: " + newFileExt);
-        StoredFile storedFile = new StoredFile(newFileSystemName, newFileExt); 
-
-        // Check variable to see if this file is a presentation
-        // check if this is a a file that can be converted by
-        // openoffice-service
-        boolean canBeConverted = storedFile.isConvertable();
-        boolean isPdf = storedFile.isPdf();
-        boolean isImage = storedFile.isImage();
-        boolean isChart = storedFile.isChart();
-        boolean isAsIs = storedFile.isAsIs();
-        boolean isVideo = storedFile.isVideo();
-
-        log.debug("isAsIs: " + isAsIs);
-
-        // add outputfolders for profiles
-        // if it is a presenation it will be copied to another place
-        if (!(canBeConverted || isPdf || isImage || isVideo || isAsIs)) {
-               returnError.addItem("wrongType", new 
ConverterProcessResult("The file type cannot be converted"));
-            return returnError;
-        }
-
-        File completeName = new File(
-               isAsIs ? OmFileHelper.getUploadFilesDir() : 
OmFileHelper.getUploadTempFilesDir()
-               , newFileSystemName + newFileExtDot);
-        log.debug("writing file to: " + completeName);
-        FileHelper.copy(is, completeName);
-        is.close();
-
-        Long ownerId = null;
-        if (parentFolderId == -2) {
-            parentFolderId = 0L;
-            ownerId = userId;
-        }
-        if (isOwner) {
-            ownerId = userId;
-        }
-
-        String fileHashName = newFileSystemName + newFileExtDot;
-        Boolean isPresentation = false;
-        if (canBeConverted || isPdf) {
-            // In case of a presentation the hash is a folder-name
-            fileHashName = newFileSystemName;
-            isPresentation = true;
-        }
-        if (isImage) {
-            fileHashName = newFileSystemName + ".jpg";
-        }
-        if (isVideo) {
-            fileHashName = newFileSystemName + ".flv";
-        }
-
-        FileExplorerItem fileExplorerItem = 
fileExplorerItemDao.get(parentFolderId);
-
-        if (fileExplorerItem != null) {
-            if (Type.Folder != fileExplorerItem.getType()) {
-                parentFolderId = 0L;
-            }
-        }
-
-        Long fileId = fileExplorerItemDao.add(
-                fileSystemName, fileHashName, // The Hashname of the file
-                parentFolderId, ownerId, roomId, userId, false, // isFolder
-                isImage, isPresentation, "", false, isChart, 
-                externalFileId, externalType);
-        log.debug("fileId: " + fileId);
-        
-        
-        
-        log.debug("canBeConverted: " + canBeConverted);
-        if (canBeConverted) {
-            // convert to pdf, thumbs, swf and xml-description
-            returnError = generatePDF.convertPDF(newFileSystemName, "files", 
true, completeName);
-        } else if (isPdf) {
-            // convert to thumbs, swf and xml-description
-            returnError = generatePDF.convertPDF(newFileSystemName, "files", 
false, completeName);
-        } else if (isChart) {
-            log.debug("uploaded chart file");
-        } else if (isImage && !isAsIs) {
-            // convert it to JPG
-            log.debug("##### convert it to JPG: ");
-            returnError = generateImage.convertImage(newFileSystemName, 
newFileExtDot, "files",
-                    newFileSystemName, false);
-        } else if (isAsIs) {
-               ConverterProcessResult processThumb = 
generateThumbs.generateThumb(thumbImagePrefix, completeName, 50);
-            returnError.addItem("processThumb", processThumb);
-        } else if (isVideo) {
-               List<ConverterProcessResult> returnList = 
flvExplorerConverter.startConversion(fileId, completeName.getCanonicalPath());
-               
-               int i=0;
-               for (ConverterProcessResult returnMap : returnList) {
-                       returnError.addItem("processFLV "+i, returnMap);
-               }
-               
-        }
-        
-        // has to happen at the end, otherwise it will be overwritten
-        //cause the variable is new initialized
-        returnError.setCompleteName(completeName.getName());
-        returnError.setFileExplorerItemId(fileId);
-        
-               return returnError;
+               // Generate a random string to prevent any problems with
+               // foreign characters and duplicates
+               String newName = MD5.do_checksum("FILE_" + new 
Date().getTime());
+
+               String extDot = f.getName().substring(dotidx, 
f.getName().length()).toLowerCase();
+               String ext = extDot.substring(1);
+               log.debug("file extension: " + ext);
+               StoredFile storedFile = new StoredFile(newName, ext); 
+
+               // Check variable to see if this file is a presentation
+               // check if this is a a file that can be converted by
+               // openoffice-service
+               boolean canBeConverted = storedFile.isConvertable();
+               boolean isPdf = storedFile.isPdf();
+               boolean isImage = storedFile.isImage();
+               boolean isChart = storedFile.isChart();
+               boolean isAsIs = storedFile.isAsIs();
+               boolean isVideo = storedFile.isVideo();
+
+               log.debug("isAsIs: " + isAsIs);
+
+               // add outputfolders for profiles
+               // if it is a presenation it will be copied to another place
+               if (!(canBeConverted || isPdf || isImage || isVideo || isAsIs)) 
{
+                       returnError.addItem("wrongType", new 
ConverterProcessResult("The file type cannot be converted"));
+                       return returnError;
+               }
+
+               File completeName = new File(isAsIs ? getUploadFilesDir() : 
getUploadTempFilesDir(), newName + extDot);
+               log.debug("writing file to: " + completeName);
+               FileHelper.copy(is, completeName);
+               is.close();
+
+               String hash = newName + extDot;
+               if (isImage) {
+                       hash = newName + ".jpg";
+                       f.setType(Type.Image);
+               } else if (isVideo) {
+                       hash = newName + ".flv";
+                       f.setType(Type.Video);
+               } else if (isChart) {
+                       f.setType(Type.PollChart);
+               } else if (isPdf || canBeConverted) {
+                       hash = newName;
+                       f.setType(Type.Presentation);
+               }
+               f.setHash(hash);
+
+               f = fileExplorerItemDao.update(f);
+               log.debug("fileId: " + f.getId());
                
+               log.debug("canBeConverted: " + canBeConverted);
+               if (canBeConverted) {
+                       // convert to pdf, thumbs, swf and xml-description
+                       returnError = generatePDF.convertPDF(newName, "files", 
true, completeName);
+               } else if (isPdf) {
+                       // convert to thumbs, swf and xml-description
+                       returnError = generatePDF.convertPDF(newName, "files", 
false, completeName);
+               } else if (isChart) {
+                       log.debug("uploaded chart file");
+               } else if (isImage && !isAsIs) {
+                       // convert it to JPG
+                       log.debug("##### convert it to JPG: ");
+                       returnError = generateImage.convertImage(newName, 
extDot, "files", newName, false);
+               } else if (isAsIs) {
+                       ConverterProcessResult processThumb = 
generateThumbs.generateThumb(thumbImagePrefix, completeName, 50);
+                       returnError.addItem("processThumb", processThumb);
+               } else if (isVideo) {
+                       List<ConverterProcessResult> returnList = 
flvExplorerConverter.startConversion(f.getId(), 
completeName.getCanonicalPath());
+                       
+                       int i = 0;
+                       for (ConverterProcessResult returnMap : returnList) {
+                               returnError.addItem("processFLV " + i, 
returnMap);
+                       }
+               }
+               
+               // has to happen at the end, otherwise it will be overwritten
+               //cause the variable is new initialized
+               returnError.setCompleteName(completeName.getName());
+               returnError.setFileExplorerItemId(f.getId());
+               
+               return returnError;
        }
-       
 }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1717228&r1=1717227&r2=1717228&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
 Mon Nov 30 11:06:09 2015
@@ -61,7 +61,6 @@ import org.apache.openmeetings.util.Init
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.openmeetings.util.Version;
-import org.apache.openmeetings.util.process.UploadCompleteMessage;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.adapter.ApplicationAdapter;
 import org.red5.server.api.IClient;
@@ -1899,24 +1898,6 @@ public class ScopeApplicationAdapter ext
                return 1;
        }
        
-       public synchronized void 
sendUploadCompletMessageByPublicSID(UploadCompleteMessage message, String 
publicSID) {
-               try {
-                       //if the upload is locally, just proceed to the normal 
function
-                       //Search for RoomClient on current server (serverId == 
null means it will look on the master for the RoomClient)
-                       Client currentClient = 
sessionManager.getClientByPublicSID(publicSID, false, null);
-                       
-                       if (currentClient != null) {
-                               sendMessageWithClientByPublicSID(message, 
publicSID);
-                       } else {
-                               throw new Exception("Could not Find RoomClient 
on List publicSID: "+ publicSID);
-                       }
-                       
-               } catch (Exception err) {
-                       log.error("[sendUploadCompletMessageByPublicSID] ", 
err);
-               }
-       }
-       
-
        public synchronized void sendMessageWithClientByPublicSID(Object 
message, String publicSID) {
                try {
                        // ApplicationContext appCtx = 
getContext().getApplicationContext();

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java?rev=1717228&r1=1717227&r2=1717228&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
 Mon Nov 30 11:06:09 2015
@@ -155,7 +155,7 @@ public class OmFileHelper {
        }
        
        public static File getUploadTempDir() {
-               return new File(OmFileHelper.OM_HOME, UPLOAD_TEMP_DIR);
+               return getDir(OmFileHelper.OM_HOME, UPLOAD_TEMP_DIR);
        }
        
        public static File getUploadTempFilesDir() {

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1717228&r1=1717227&r2=1717228&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
 Mon Nov 30 11:06:09 2015
@@ -41,6 +41,7 @@ import javax.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.cxf.jaxrs.ext.multipart.Multipart;
+import org.apache.openmeetings.core.data.file.FileProcessor;
 import org.apache.openmeetings.core.data.file.FileUtils;
 import org.apache.openmeetings.core.documents.LoadLibraryPresentation;
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
@@ -55,6 +56,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.process.ConverterProcessResultList;
 import org.apache.openmeetings.webservice.error.ServiceException;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -84,6 +86,8 @@ public class FileWebService {
        private FileExplorerItemDao fileDao;
        @Autowired
        private FileUtils fileUtils;
+       @Autowired
+       private FileProcessor fileProcessor;
 
        /**
         * deletes files or folders based on it id
@@ -173,7 +177,7 @@ public class FileWebService {
        @Path("/")
        public FileExplorerItemDTO add(@WebParam(name="sid") @QueryParam("sid") 
String sid
                        , @Multipart(value = "file", type = 
MediaType.APPLICATION_JSON) @WebParam(name="file") FileExplorerItemDTO file
-                       , @Multipart(value = "stream", type = 
MediaType.APPLICATION_OCTET_STREAM, required = false) @WebParam(name="stream") 
InputStream attach //TODO check this
+                       , @Multipart(value = "stream", type = 
MediaType.APPLICATION_OCTET_STREAM, required = false) @WebParam(name="stream") 
InputStream stream
                        ) throws ServiceException
        {
                try {
@@ -189,10 +193,17 @@ public class FileWebService {
                                        || (AuthLevelUtil.hasUserLevel(rights) 
&& userId.equals(f.getOwnerId())))*/
                        if (AuthLevelUtil.hasUserLevel(rights))
                        {
-                               //TODO permissions
-                               //TODO attachment
                                f.setInsertedBy(userId);
-                               fileDao.update(f);
+                               //TODO permissions
+                               if (stream != null) {
+                                       //TODO attachment
+                                       ConverterProcessResultList result = 
fileProcessor.processFile(userId, f, stream);
+                                       if (result.hasError()) {
+                                               throw new 
ServiceException(result.getLogMessage());
+                                       }
+                               } else {
+                                       f = fileDao.update(f);
+                               }
                                return new FileExplorerItemDTO(f);
                        } else {
                                throw new ServiceException("Insufficient 
permissins"); //TODO code -26


Reply via email to