Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
 Sun Sep 11 04:50:07 2016
@@ -20,10 +20,7 @@ package org.apache.openmeetings.core.con
 
 import static 
org.apache.openmeetings.core.data.record.listener.async.BaseStreamWriter.TIME_TO_WAIT_FOR_FRAME;
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_FLV;
-import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
-import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
-import static org.apache.openmeetings.util.OmFileHelper.OGG_EXTENSION;
-import static org.apache.openmeetings.util.OmFileHelper.getRecording;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_OGG;
 import static org.apache.openmeetings.util.OmFileHelper.getRecordingMetaData;
 import static org.apache.openmeetings.util.OmFileHelper.getStreamsSubDir;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
@@ -42,6 +39,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.record.RecordingMetaData;
 import org.apache.openmeetings.db.entity.record.RecordingMetaData.Status;
 import org.apache.openmeetings.db.entity.record.RecordingMetaDelta;
+import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
 import org.apache.openmeetings.util.process.ProcessHelper;
 import org.red5.io.flv.impl.FLVWriter;
@@ -114,31 +112,29 @@ public abstract class BaseConverter {
                r.setDuration(formatMillis(diff(r.getRecordEnd(), 
r.getRecordStart())));
        }
        
-       protected void deleteFileIfExists(String name) {
-               File f = new File(name);
-
+       protected void deleteFileIfExists(File f) {
                if (f.exists()) {
                        f.delete();
                }
        }
        
-       protected String[] mergeAudioToWaves(List<String> listOfFullWaveFiles, 
String outputFullWav) {
+       protected String[] mergeAudioToWaves(List<File> waveFiles, File wav) 
throws IOException {
                List<String> argv = new ArrayList<String>();
                
                argv.add(getPathToSoX());
                argv.add("-m");
-               for (String arg : listOfFullWaveFiles) {
-                       argv.add(arg);
+               for (File arg : waveFiles) {
+                       argv.add(arg.getCanonicalPath());
                }
-               argv.add(outputFullWav);
+               argv.add(wav.getCanonicalPath());
                
                return argv.toArray(new String[0]);
        }
        
        protected void stripAudioFirstPass(Recording recording, 
List<ConverterProcessResult> returnLog,
-                       List<String> listOfFullWaveFiles, File streamFolder)
+                       List<File> waveFiles, File streamFolder)
        {
-               stripAudioFirstPass(recording, returnLog, listOfFullWaveFiles, 
streamFolder
+               stripAudioFirstPass(recording, returnLog, waveFiles, 
streamFolder
                                , 
metaDataDao.getAudioMetaDataByRecording(recording.getId()));
        }
        
@@ -229,7 +225,7 @@ public abstract class BaseConverter {
        
        protected void stripAudioFirstPass(Recording recording,
                        List<ConverterProcessResult> returnLog,
-                       List<String> listOfFullWaveFiles, File streamFolder,
+                       List<File> waveFiles, File streamFolder,
                        List<RecordingMetaData> metaDataList) {
                try {
                        // Init variables
@@ -246,7 +242,7 @@ public abstract class BaseConverter {
                                
                                metaData = waitForTheStream(metaId);
        
-                               File inputFlvFile = new File(streamFolder, 
metaData.getStreamName() + FLV_EXTENSION);
+                               File inputFlvFile = new File(streamFolder, 
OmFileHelper.getName(metaData.getStreamName(), EXTENSION_FLV));
        
                                File outputWav = new File(streamFolder, 
metaData.getStreamName() + "_WAVE.wav");
        
@@ -328,7 +324,7 @@ public abstract class BaseConverter {
                                        
metaData.setFullWavAudioData(hashFileFullName);
        
                                        // Finally add it to the row!
-                                       
listOfFullWaveFiles.add(outputFullWav.getCanonicalPath());
+                                       waveFiles.add(outputFullWav);
                                }
        
                                metaDataDao.update(metaData);
@@ -343,12 +339,11 @@ public abstract class BaseConverter {
                if (!r.exists(EXTENSION_FLV)) {
                        return;
                }
-               File file = getRecording(r.getHash());
-               String path = file.getCanonicalPath();
-               String mp4path = path + MP4_EXTENSION;
+               File file = r.getFile(EXTENSION_FLV);
+               File mp4 = r.getFile();
                String[] argv = new String[] {
                                getPathToFFMPEG(), "-y",
-                               "-i", path,
+                               "-i", file.getCanonicalPath(),
                                "-c:v", "libx264",
                                "-crf", "24",
                                "-pix_fmt", "yuv420p",
@@ -357,16 +352,16 @@ public abstract class BaseConverter {
                                "-c:a", "libfaac",
                                "-c:a", "libfdk_aac", "-b:a", "32k", //FIXME 
add quality constants 
                                "-s", r.getFlvWidth() + "x" + r.getFlvHeight(), 
//
-                               mp4path
+                               mp4.getCanonicalPath()
                                };
                returnLog.add(ProcessHelper.executeScript("generate MP4", 
argv));
                
                argv = new String[] {
-                               getPathToFFMPEG(), "-y",
-                               "-i", mp4path,
-                               "-vcodec", "libtheora",
-                               "-acodec", "libvorbis",
-                               path + OGG_EXTENSION
+                               getPathToFFMPEG(), "-y"
+                               , "-i", mp4.getCanonicalPath()
+                               , "-vcodec", "libtheora"
+                               , "-acodec", "libvorbis"
+                               , r.getFile(EXTENSION_OGG).getCanonicalPath()
                                };
 
                returnLog.add(ProcessHelper.executeScript("generate OGG", 
argv));

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
 Sun Sep 11 04:50:07 2016
@@ -18,10 +18,8 @@
  */
 package org.apache.openmeetings.core.converter;
 
-import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
-import static org.apache.openmeetings.util.OmFileHelper.JPG_EXTENSION;
-import static org.apache.openmeetings.util.OmFileHelper.WB_VIDEO_FILE_PREFIX;
-import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
@@ -31,7 +29,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
-import org.apache.openmeetings.db.dao.record.RecordingLogDao;
+import org.apache.openmeetings.db.dao.file.FileItemLogDao;
 import org.apache.openmeetings.db.entity.file.FileExplorerItem;
 import org.apache.openmeetings.db.entity.file.FileItem.Type;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
@@ -48,7 +46,7 @@ public class FlvExplorerConverter extend
        @Autowired
        private FileExplorerItemDao fileDao;
        @Autowired
-       private RecordingLogDao recordingLogDao;
+       private FileItemLogDao fileLogDao;
        
        private static class FlvDimension {
                public FlvDimension(int width, int height) {
@@ -59,69 +57,45 @@ public class FlvExplorerConverter extend
                public int height = 0;
        }
 
-       public List<ConverterProcessResult> startConversion(Long fileId, String 
moviePath) {
+       public List<ConverterProcessResult> convertToMP4(FileExplorerItem f, 
String ext) {
                List<ConverterProcessResult> returnLog = new 
ArrayList<ConverterProcessResult>();
                try {
-                       FileExplorerItem fileExplorerItem = fileDao.get(fileId);
-                       if (fileExplorerItem == null) {
-                               returnLog.add(new 
ConverterProcessResult("startConversion", "Unable to get FileExplorerItem by 
ID: " + fileId, null));
-                       } else {
-                               log.debug("fileExplorerItem " + 
fileExplorerItem.getId());
-                               //  Convert to FLV
-                               return convertToFLV(fileExplorerItem, 
moviePath);
-                       }
-               } catch (Exception err) {
-                       log.error("[startConversion]", err);
-                       returnLog.add(new 
ConverterProcessResult("startConversion", err.getMessage(), err));
-               }
-               return returnLog;
-       }
+                       File mp4 = f.getFile(EXTENSION_MP4);
 
-       private List<ConverterProcessResult> convertToFLV(FileExplorerItem 
fileExplorerItem, String moviePath) {
-               List<ConverterProcessResult> returnLog = new 
ArrayList<ConverterProcessResult>();
-               try {
-                       String name = WB_VIDEO_FILE_PREFIX + 
fileExplorerItem.getId();
-                       File outputFullFlv = new File(getStreamsHibernateDir(), 
name + MP4_EXTENSION);
-
-                       fileExplorerItem.setType(Type.Video);
+                       f.setType(Type.Video);
 
-                       String[] argv_fullFLV = new String[] { 
getPathToFFMPEG(), "-y", "-i", moviePath,
-                                       "-codec:a", "mp3", "-codec:v", "mpeg4", 
outputFullFlv.getCanonicalPath() };
+                       String[] argv_fullFLV = new String[] { 
getPathToFFMPEG(), "-y", "-i", f.getFile(ext).getCanonicalPath(),
+                                       "-codec:a", "mp3", "-codec:v", "mpeg4", 
mp4.getCanonicalPath() };
 
-                       ConverterProcessResult returnMapConvertFLV = 
ProcessHelper.executeScript("uploadFLV ID :: "
-                                       + fileExplorerItem.getId(), 
argv_fullFLV);
+                       ConverterProcessResult returnMapConvertFLV = 
ProcessHelper.executeScript("uploadFLV ID :: " + f.getId(), argv_fullFLV);
                        
                        //Parse the width height from the FFMPEG output
                        FlvDimension flvDimension = 
getFlvDimension(returnMapConvertFLV.getError());
                        int flvWidth = flvDimension.width;
                        int flvHeight = flvDimension.height;
                        
-                       
-                       fileExplorerItem.setFlvWidth(flvWidth);
-                       fileExplorerItem.setFlvHeight(flvHeight);
+                       f.setFlvWidth(flvWidth);
+                       f.setFlvHeight(flvHeight);
 
                        returnLog.add(returnMapConvertFLV);
 
-                       String hashFileFullNameJPEG = WB_VIDEO_FILE_PREFIX + 
fileExplorerItem.getId() + JPG_EXTENSION;
-                       File outPutJpeg = new File(getStreamsHibernateDir(), 
name + JPG_EXTENSION);
-
-                       fileExplorerItem.setPreviewImage(hashFileFullNameJPEG);
+                       File jpeg = f.getFile(EXTENSION_JPG);
 
                        String[] argv_previewFLV = new String[] { 
getPathToFFMPEG(), "-y", "-i",
-                                       outputFullFlv.getCanonicalPath(), 
"-codec:v", "mjpeg", "-vframes", "1", "-an",
+                                       mp4.getCanonicalPath(), "-codec:v", 
"mjpeg", "-vframes", "1", "-an",
                                        "-f", "rawvideo", "-s", flvWidth + "x" 
+ flvHeight,
-                                       outPutJpeg.getCanonicalPath() };
+                                       jpeg.getCanonicalPath() };
 
-                       
returnLog.add(ProcessHelper.executeScript("previewUpload ID :: " + 
fileExplorerItem.getId(), argv_previewFLV));
+                       
returnLog.add(ProcessHelper.executeScript("previewUpload ID :: " + f.getId(), 
argv_previewFLV));
 
-                       fileDao.update(fileExplorerItem);
+                       fileDao.update(f);
 
                        for (ConverterProcessResult returnMap : returnLog) {
-                               recordingLogDao.add("generateFFMPEG", null, 
returnMap);
+                               fileLogDao.add(returnMap.getProcess(), null, 
returnMap);
                        }
                } catch (Exception err) {
                        log.error("[convertToFLV]", err);
-                       returnLog.add(new 
ConverterProcessResult("convertToFLV", err.getMessage(), err));
+                       returnLog.add(new 
ConverterProcessResult("convertToMP4", err.getMessage(), err));
                }
 
                return returnLog;

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java
 Sun Sep 11 04:50:07 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.core.converter;
 
-import static org.apache.openmeetings.util.OmFileHelper.JPG_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
 import static 
org.apache.openmeetings.util.OmFileHelper.getUploadProfilesUserDir;
 import static org.apache.openmeetings.util.OmFileHelper.profileFileName;
 import static org.apache.openmeetings.util.OmFileHelper.profileImagePrefix;
@@ -31,6 +31,7 @@ import java.io.IOException;
 
 import org.apache.commons.transaction.util.FileHelper;
 import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
@@ -48,23 +49,16 @@ public class GenerateImage extends BaseC
        @Autowired
        private GenerateThumbs generateThumbs;
 
-       public ConverterProcessResultList convertImage(String fileName, String 
fileExt, String roomName) throws IOException {
+       public ConverterProcessResultList convertImage(FileItem f, String ext) 
throws IOException {
                ConverterProcessResultList returnMap = new 
ConverterProcessResultList();
 
-               File fileFullPath = new 
File(OmFileHelper.getUploadTempRoomDir(roomName), fileName + fileExt);
+               File img = f.getFile(ext);
+               File jpg = f.getFile(EXTENSION_JPG);
 
-               File destinationFile = 
OmFileHelper.getNewFile(OmFileHelper.getUploadRoomDir(roomName), fileName, 
".jpg");
+               log.debug("##### convertImage destinationFile: " + jpg);
 
-               log.debug("##### convertImage destinationFile: " + 
destinationFile);
-
-               ConverterProcessResult processJPG = 
convertSingleJpg(fileFullPath.getCanonicalPath(), destinationFile);
-               ConverterProcessResult processThumb = 
generateThumbs.generateThumb(thumbImagePrefix, destinationFile, 50);
-
-               returnMap.addItem("processJPG", processJPG);
-               returnMap.addItem("processThumb", processThumb);
-
-               // Delete old one
-               fileFullPath.delete();
+               returnMap.addItem("processJPG", convertSingleJpg(img, jpg));
+               returnMap.addItem("processThumb", 
generateThumbs.generateThumb(thumbImagePrefix, jpg, 50));
 
                return returnMap;
        }
@@ -76,7 +70,7 @@ public class GenerateImage extends BaseC
                File[] files = getUploadProfilesUserDir(userId).listFiles(new 
FileFilter() {
                        @Override
                        public boolean accept(File pathname) {
-                               return 
pathname.getName().endsWith(JPG_EXTENSION);
+                               return 
pathname.getName().endsWith(EXTENSION_JPG);
                        }
                });
                if (files != null) {
@@ -85,9 +79,9 @@ public class GenerateImage extends BaseC
                        }
                }
                
-               File destinationFile = 
OmFileHelper.getNewFile(getUploadProfilesUserDir(userId), profileFileName, 
JPG_EXTENSION);
+               File destinationFile = 
OmFileHelper.getNewFile(getUploadProfilesUserDir(userId), profileFileName, 
EXTENSION_JPG);
                if (!skipConvertion) {
-                       returnMap.addItem("processJPG", 
convertSingleJpg(file.getCanonicalPath(), destinationFile));
+                       returnMap.addItem("processJPG", convertSingleJpg(file, 
destinationFile));
                } else {
                        FileHelper.copy(file, destinationFile);
                }
@@ -115,25 +109,9 @@ public class GenerateImage extends BaseC
         * @throws IOException 
         * 
         */
-       private ConverterProcessResult convertSingleJpg(String inputFile, File 
outputfile) throws IOException {
-               String[] argv = new String[] { getPathToImageMagick(), 
inputFile, outputfile.getCanonicalPath() };
+       private ConverterProcessResult convertSingleJpg(File in, File out) 
throws IOException {
+               String[] argv = new String[] { getPathToImageMagick(), 
in.getCanonicalPath(), out.getCanonicalPath() };
 
                return ProcessHelper.executeScript("generateBatchThumbByWidth", 
argv);
        }
-
-       public ConverterProcessResult convertImageByTypeAndSize(String 
inputFile,
-                       String outputfile, int width, int height) {
-               String[] argv = new String[] { getPathToImageMagick(), "-size",
-                               width + "x" + height, inputFile, outputfile };
-               return 
ProcessHelper.executeScript("convertImageByTypeAndSizeAndDepth", argv);
-       }
-
-       public ConverterProcessResult convertImageByTypeAndSizeAndDepth(
-                       String inputFile, String outputfile, int width, int 
height,
-                       int depth) {
-               String[] argv = new String[] { getPathToImageMagick(), "-size",
-                               width + "x" + height, "-depth", 
Integer.toString(depth),
-                               inputFile, outputfile };
-               return 
ProcessHelper.executeScript("convertImageByTypeAndSizeAndDepth", argv);
-       }
 }

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateSWF.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateSWF.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateSWF.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateSWF.java
 Sun Sep 11 04:50:07 2016
@@ -71,7 +71,7 @@ public class GenerateSWF {
                return valueForSwfJpegQuality;
        }
 
-       public ConverterProcessResult generateSwf(File originalFolder, File 
destinationFolder, String fileNamePure) throws IOException {
+       public ConverterProcessResult generateSwf(File in, File out) throws 
IOException {
                
                // Create the Content of the Converter Script (.bat or .sh File)
                String[] argv = new String[] {
@@ -82,8 +82,8 @@ public class GenerateSWF {
                                "-i", // change draw order to reduce pdf 
complexity
                                "-j", "" + getSwfJpegQuality(), // JPEG Quality 
                                "-s", "zoom=" + getSwfZoom(), // set zoom dpi 
-                               new File(originalFolder, fileNamePure + 
".pdf").getCanonicalPath(),
-                               new File(destinationFolder, fileNamePure + 
".swf").getCanonicalPath() };
+                               in.getCanonicalPath(),
+                               out.getCanonicalPath() };
 
                return ProcessHelper.executeScript("generateSwf", argv);
        }

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateThumbs.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateThumbs.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateThumbs.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateThumbs.java
 Sun Sep 11 04:50:07 2016
@@ -55,14 +55,14 @@ public class GenerateThumbs extends Base
                return ProcessHelper.executeScript("generateBatchThumbByWidth", 
argv);
        }
 
-       public ConverterProcessResult generateBatchThumb(File inputfile, File 
outputpath, Integer thumbSize, String pre) throws IOException {
+       public ConverterProcessResult generateBatchThumb(File in, File outDir, 
Integer thumbSize, String pre) throws IOException {
                log.debug("generateBatchThumbByWidth");
                String[] argv = new String[] {
                        getPathToImageMagick()
                        , "-thumbnail" // FIXME
                        , "" + thumbSize
-                       , inputfile.getCanonicalPath()
-                       , new File(outputpath, "_" + pre + 
"_page-%04d.jpg").getCanonicalPath()
+                       , in.getCanonicalPath()
+                       , new File(outDir, "_" + pre + 
"_page-%04d.jpg").getCanonicalPath()
                        };
 
                return ProcessHelper.executeScript("generateBatchThumbByWidth", 
argv);

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
 Sun Sep 11 04:50:07 2016
@@ -18,22 +18,24 @@
  */
 package org.apache.openmeetings.core.converter;
 
-import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_AVI;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_FLV;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
 import static org.apache.openmeetings.util.OmFileHelper.getRecordingMetaData;
 import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
-import static org.apache.openmeetings.util.OmFileHelper.recordingFileName;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
-import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.openmeetings.db.dao.file.FileItemLogDao;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
-import org.apache.openmeetings.db.dao.record.RecordingLogDao;
 import org.apache.openmeetings.db.dao.record.RecordingMetaDataDao;
 import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.record.RecordingMetaData;
+import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
 import org.apache.openmeetings.util.process.ProcessHelper;
 import org.red5.logging.Red5LoggerFactory;
@@ -57,23 +59,20 @@ public class InterviewConverter extends
        @Autowired
        private RecordingMetaDataDao metaDataDao;
        @Autowired
-       private RecordingLogDao logDao;
+       private FileItemLogDao logDao;
 
-       private String[] mergeAudioToWaves(List<String> listOfFullWaveFiles, 
String outputFullWav,
-                       List<RecordingMetaData> metaDataList, ReConverterParams 
rcv) {
-               String[] argv_full_sox = new String[listOfFullWaveFiles.size() 
+ 5];
+       private String[] mergeAudioToWaves(List<File> waveFiles, File wav,
+                       List<RecordingMetaData> metaDataList, ReConverterParams 
rcv) throws IOException {
+               String[] argv_full_sox = new String[waveFiles.size() + 5];
                argv_full_sox[0] = this.getPathToSoX();
                argv_full_sox[1] = "-m";
 
                int counter = 2;
-               for (int i = 0; i < listOfFullWaveFiles.size(); i++) {
+               for (File _wav : waveFiles) {
                        for (RecordingMetaData metaData : metaDataList) {
                                String hashFileFullNameStored = 
metaData.getFullWavAudioData();
 
-                               String fullFilePath = 
listOfFullWaveFiles.get(i);
-                               String fileNameOnly = new 
File(fullFilePath).getName();
-
-                               if 
(hashFileFullNameStored.equals(fileNameOnly)) {
+                               if 
(hashFileFullNameStored.equals(_wav.getName())) {
                                        if (metaData.getInteriewPodId() == 1) {
                                                argv_full_sox[counter] = "-v " 
+ rcv.leftSideLoud;
                                                counter++;
@@ -84,11 +83,11 @@ public class InterviewConverter extends
                                        }
                                }
                        }
-                       argv_full_sox[counter] = listOfFullWaveFiles.get(i);
+                       argv_full_sox[counter] = _wav.getCanonicalPath();
                        counter++;
                }
 
-               argv_full_sox[counter] = outputFullWav;
+               argv_full_sox[counter] = wav.getCanonicalPath();
 
                return argv_full_sox;
        }
@@ -98,36 +97,35 @@ public class InterviewConverter extends
                startConversion(recordingId, false, new ReConverterParams());
        }
 
-       public void startConversion(Long recordingId, boolean reconversion, 
ReConverterParams rcv) {
-               Recording recording = null;
+       public void startConversion(Long id, boolean reconversion, 
ReConverterParams rcv) {
+               Recording r = null;
                try {
-                       recording = recordingDao.get(recordingId);
-                       log.debug("recording " + recording.getId());
-                       recording.setStatus(Recording.Status.CONVERTING);
-                       recording = recordingDao.update(recording);
-
-                       List<ConverterProcessResult> returnLog = new 
ArrayList<ConverterProcessResult>();
-                       List<String> listOfFullWaveFiles = new 
LinkedList<String>();
-                       File streamFolder = getStreamFolder(recording);
-                       List<RecordingMetaData> metaDataList = 
metaDataDao.getAudioMetaDataByRecording(recording.getId());
+                       r = recordingDao.get(id);
+                       log.debug("recording " + r.getId());
+                       r.setStatus(Recording.Status.CONVERTING);
+                       r = recordingDao.update(r);
+
+                       List<ConverterProcessResult> returnLog = new 
ArrayList<>();
+                       List<File> waveFiles = new ArrayList<>();
+                       File streamFolder = getStreamFolder(r);
+                       List<RecordingMetaData> metaDataList = 
metaDataDao.getAudioMetaDataByRecording(r.getId());
        
-                       stripAudioFirstPass(recording, returnLog, 
listOfFullWaveFiles, streamFolder, metaDataList);
+                       stripAudioFirstPass(r, returnLog, waveFiles, 
streamFolder, metaDataList);
                
                        // Merge Wave to Full Length
                        File streamFolderGeneral = getStreamsHibernateDir();
 
-                       String hashFileFullName = "INTERVIEW_" + 
recording.getId() + "_FINAL_WAVE.wav";
-                       String outputFullWav = streamFolder.getAbsolutePath() + 
File.separatorChar + hashFileFullName;
-                       deleteFileIfExists(outputFullWav);
-
-                       if (listOfFullWaveFiles.size() == 1) {
-                               outputFullWav = listOfFullWaveFiles.get(0);
-                       } else if (listOfFullWaveFiles.size() > 0) {
+                       File wav = new File(streamFolder, "INTERVIEW_" + 
r.getId() + "_FINAL_WAVE.wav");
+                       deleteFileIfExists(wav);
+
+                       if (waveFiles.size() == 1) {
+                               wav = waveFiles.get(0);
+                       } else if (waveFiles.size() > 0) {
                                String[] argv_full_sox;
                                if (reconversion) {
-                                       argv_full_sox = 
mergeAudioToWaves(listOfFullWaveFiles, outputFullWav, metaDataList, rcv);
+                                       argv_full_sox = 
mergeAudioToWaves(waveFiles, wav, metaDataList, rcv);
                                } else {
-                                       argv_full_sox = 
mergeAudioToWaves(listOfFullWaveFiles, outputFullWav);
+                                       argv_full_sox = 
mergeAudioToWaves(waveFiles, wav);
                                }
 
                                
returnLog.add(ProcessHelper.executeScript("mergeAudioToWaves", argv_full_sox));
@@ -137,9 +135,9 @@ public class InterviewConverter extends
                                File outputWav = new File(streamFolderGeneral, 
"one_second.wav");
 
                                // Calculate delta at beginning
-                               double deltaPadding = 
diffSeconds(recording.getRecordEnd(), recording.getRecordStart());
+                               double deltaPadding = 
diffSeconds(r.getRecordEnd(), r.getRecordStart());
 
-                               String[] argv_full_sox = new String[] { 
getPathToSoX(), outputWav.getCanonicalPath(), outputFullWav, "pad", "0", "" + 
deltaPadding };
+                               String[] argv_full_sox = new String[] { 
getPathToSoX(), outputWav.getCanonicalPath(), wav.getCanonicalPath(), "pad", 
"0", "" + deltaPadding };
 
                                
returnLog.add(ProcessHelper.executeScript("generateSampleAudio", 
argv_full_sox));
                        }
@@ -158,7 +156,7 @@ public class InterviewConverter extends
                        String[] pods = new String[2];
                        boolean found = false;
                        for (RecordingMetaData meta : metaDataList) {
-                               File flv = 
getRecordingMetaData(recording.getRoomId(), meta.getStreamName());
+                               File flv = getRecordingMetaData(r.getRoomId(), 
meta.getStreamName());
 
                                Integer pod = meta.getInteriewPodId();
                                if (flv.exists() && pod != null && pod > 0 && 
pod < 3) {
@@ -173,9 +171,9 @@ public class InterviewConverter extends
                                                        , "-v", "error"
                                                        , "-f", "null"
                                                        , "file.null"};
-                                       ConverterProcessResult r = 
ProcessHelper.executeScript("checkFlvPod_" + pod , args);
-                                       returnLog.add(r);
-                                       if ("0".equals(r.getExitValue())) {
+                                       ConverterProcessResult res = 
ProcessHelper.executeScript("checkFlvPod_" + pod , args);
+                                       returnLog.add(res);
+                                       if (res.isOk()) {
                                                //TODO need to remove smallest 
gap
                                                long diff = 
diff(meta.getRecordStart(), meta.getRecording().getRecordStart());
                                                if (diff != 0L) {
@@ -193,7 +191,7 @@ public class InterviewConverter extends
                                                        
returnLog.add(ProcessHelper.executeScript("blankFlvPod_" + pod , argsPodB));
                                                        
                                                        //ffmpeg -y -i out.flv 
-i rec_15_stream_4_2014_07_15_20_41_03.flv -filter_complex 
'[0:0]setsar=1/1[sarfix];[1:0]scale=320:260,setsar=1/1[scale];[sarfix] [scale] 
concat=n=2:v=1:a=0 [v]' -map '[v]'  output1.flv
-                                                       File podF = new 
File(streamFolder, meta.getStreamName() + "_pod_" + pod + FLV_EXTENSION);
+                                                       File podF = new 
File(streamFolder, OmFileHelper.getName(meta.getStreamName() + "_pod_" + pod, 
EXTENSION_FLV));
                                                        String podP = 
podF.getCanonicalPath();
                                                        String[] argsPod = new 
String[] { getPathToFFMPEG(), "-y"//
                                                                        , "-i", 
podPB //
@@ -212,10 +210,10 @@ public class InterviewConverter extends
                                }
                        }
                        if (!found) {
-                               ConverterProcessResult r = new 
ConverterProcessResult();
-                               r.setProcess("CheckFlvFilesExists");
-                               r.setError("No valid pods found");
-                               returnLog.add(r);
+                               ConverterProcessResult res = new 
ConverterProcessResult();
+                               res.setProcess("CheckFlvFilesExists");
+                               res.setError("No valid pods found");
+                               returnLog.add(res);
                                return;
                        }
                        boolean shortest = false;
@@ -238,7 +236,7 @@ public class InterviewConverter extends
                                        args.add("-i"); args.add(pods[i]);
                                }
                        }
-                       args.add("-i"); args.add(outputFullWav);
+                       args.add("-i"); args.add(wav.getCanonicalPath());
                        args.add("-ar"); args.add("22050");
                        args.add("-ab"); args.add("32k");
                        args.add("-filter_complex");
@@ -254,68 +252,58 @@ public class InterviewConverter extends
                        args.add("-qmax"); args.add("1");
                        args.add("-qmin"); args.add("1");
                        args.add("-y");
-                       String hashFileFullNameFlv = recordingFileName + 
recording.getId() + FLV_EXTENSION;
-                       String outputFullFlv = new File(streamFolderGeneral, 
hashFileFullNameFlv).getCanonicalPath();
-                       args.add(outputFullFlv);
+                       File flv = r.getFile(EXTENSION_FLV);
+                       args.add(flv.getCanonicalPath());
                        // TODO additional flag to 'quiet' output should be 
added
                        
returnLog.add(ProcessHelper.executeScript("generateFullBySequenceFLV", 
args.toArray(new String[]{})));
 
-                       recording.setFlvWidth(2 * flvWidth);
-                       recording.setFlvHeight(flvHeight);
-
-                       recording.setHash(hashFileFullNameFlv);
+                       r.setFlvWidth(2 * flvWidth);
+                       r.setFlvHeight(flvHeight);
 
                        // Extract first Image for preview purpose
                        // ffmpeg -i movie.flv -vcodec mjpeg -vframes 1 -an -f 
rawvideo -s
                        // 320x240 movie.jpg
 
-                       String hashFileFullNameJPEG = recordingFileName + 
recording.getId() + ".jpg";
-                       String outPutJpeg = new File(streamFolderGeneral, 
hashFileFullNameJPEG).getCanonicalPath();
-                       deleteFileIfExists(outPutJpeg);
-
-                       recording.setPreviewImage(hashFileFullNameJPEG);
+                       File jpg = r.getFile(EXTENSION_JPG);
+                       deleteFileIfExists(jpg);
 
                        String[] argv_previewFLV = new String[] { //
                                        getPathToFFMPEG(), "-y", //
-                                       "-i", outputFullFlv, //
+                                       "-i", flv.getCanonicalPath(), //
                                        "-vcodec", "mjpeg", //
                                        "-vframes", "100", "-an", //
                                        "-f", "rawvideo", //
                                        "-s", (2 * flvWidth) + "x" + flvHeight, 
//
-                                       outPutJpeg };
+                                       jpg.getCanonicalPath() };
 
                        
returnLog.add(ProcessHelper.executeScript("generateFullFLV", argv_previewFLV));
 
-                       String alternateDownloadName = recordingFileName + 
recording.getId() + ".avi";
-                       String alternateDownloadFullName = new 
File(streamFolderGeneral, alternateDownloadName).getCanonicalPath();
-                       deleteFileIfExists(alternateDownloadFullName);
+                       File avi = r.getFile(EXTENSION_AVI);
+                       deleteFileIfExists(avi);
 
-                       String[] argv_alternateDownload = new String[] { 
getPathToFFMPEG(), "-y", "-i", outputFullFlv, alternateDownloadFullName };
+                       String[] argv_alternateDownload = new String[] { 
getPathToFFMPEG(), "-y", "-i", flv.getCanonicalPath(), avi.getCanonicalPath() };
 
                        
returnLog.add(ProcessHelper.executeScript("alternateDownload", 
argv_alternateDownload));
 
-                       recording.setAlternateDownload(alternateDownloadName);
-
-                       updateDuration(recording);
-                       convertToMp4(recording, returnLog);
-                       recording.setStatus(Recording.Status.PROCESSED);
+                       updateDuration(r);
+                       convertToMp4(r, returnLog);
+                       r.setStatus(Recording.Status.PROCESSED);
 
-                       logDao.deleteByRecordingId(recording.getId());
+                       logDao.delete(r);
                        for (ConverterProcessResult returnMap : returnLog) {
-                               logDao.add("generateFFMPEG", recording, 
returnMap);
+                               logDao.add("generateFFMPEG", r, returnMap);
                        }
 
                        // Delete Wave Files
-                       for (String fileName : listOfFullWaveFiles) {
-                               File audio = new File(fileName);
+                       for (File audio : waveFiles) {
                                if (audio.exists()) {
                                        audio.delete();
                                }
                        }
                } catch (Exception err) {
                        log.error("[startConversion]", err);
-                       recording.setStatus(Recording.Status.ERROR);
+                       r.setStatus(Recording.Status.ERROR);
                }
-               recordingDao.update(recording);
+               recordingDao.update(r);
        }
 }

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
 Sun Sep 11 04:50:07 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.core.converter;
 
-import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_FLV;
 import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
 import static org.apache.openmeetings.util.OmFileHelper.recordingFileName;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
@@ -27,12 +27,13 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.openmeetings.db.dao.file.FileItemLogDao;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
-import org.apache.openmeetings.db.dao.record.RecordingLogDao;
 import org.apache.openmeetings.db.dao.record.RecordingMetaDataDao;
 import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.record.RecordingMetaData;
 import org.apache.openmeetings.db.entity.record.RecordingMetaData.Status;
+import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
 import org.apache.openmeetings.util.process.ProcessHelper;
 import org.red5.logging.Red5LoggerFactory;
@@ -48,7 +49,7 @@ public class RecordingConverter extends
        @Autowired
        private RecordingMetaDataDao metaDataDao;
        @Autowired
-       private RecordingLogDao logDao;
+       private FileItemLogDao logDao;
 
        private String FFMPEG_MAP_PARAM = ":";
 
@@ -67,8 +68,8 @@ public class RecordingConverter extends
                        String finalNamePrefix = recordingFileName + 
recordingId;
                        log.debug("recording " + recording.getId());
 
-                       List<ConverterProcessResult> returnLog = new 
ArrayList<ConverterProcessResult>();
-                       List<String> listOfFullWaveFiles = new 
ArrayList<String>();
+                       List<ConverterProcessResult> returnLog = new 
ArrayList<>();
+                       List<File> waveFiles = new ArrayList<>();
                        File streamFolder = getStreamFolder(recording);
                        
                        RecordingMetaData screenMetaData = 
metaDataDao.getScreenMetaDataByRecording(recording.getId());
@@ -85,16 +86,15 @@ public class RecordingConverter extends
 
                        screenMetaData = 
waitForTheStream(screenMetaData.getId());
 
-                       stripAudioFirstPass(recording, returnLog, 
listOfFullWaveFiles, streamFolder);
+                       stripAudioFirstPass(recording, returnLog, waveFiles, 
streamFolder);
 
                        // Merge Wave to Full Length
-                       String hashFileFullName = 
screenMetaData.getStreamName() + "_FINAL_WAVE.wav";
-                       String outputFullWav = new File(streamFolder, 
hashFileFullName).getCanonicalPath();
+                       File wav = new File(streamFolder, 
screenMetaData.getStreamName() + "_FINAL_WAVE.wav");
 
-                       if (listOfFullWaveFiles.size() == 1) {
-                               outputFullWav = listOfFullWaveFiles.get(0);
-                       } else if (listOfFullWaveFiles.size() > 0) {
-                               String[] argv_full_sox = 
mergeAudioToWaves(listOfFullWaveFiles, outputFullWav);
+                       if (waveFiles.size() == 1) {
+                               wav = waveFiles.get(0);
+                       } else if (waveFiles.size() > 0) {
+                               String[] argv_full_sox = 
mergeAudioToWaves(waveFiles, wav);
 
                                
returnLog.add(ProcessHelper.executeScript("mergeAudioToWaves", argv_full_sox));
                        } else {
@@ -104,18 +104,18 @@ public class RecordingConverter extends
                                // Calculate delta at beginning
                                double deltaPadding = 
diffSeconds(recording.getRecordEnd(), recording.getRecordStart());
 
-                               String[] argv_full_sox = new String[] { 
getPathToSoX(), outputWav, outputFullWav, "pad", "0", "" + deltaPadding };
+                               String[] argv_full_sox = new String[] { 
getPathToSoX(), outputWav, wav.getCanonicalPath(), "pad", "0", "" + 
deltaPadding };
 
                                
returnLog.add(ProcessHelper.executeScript("generateSampleAudio", 
argv_full_sox));
                        }
-                       screenMetaData.setFullWavAudioData(hashFileFullName);
+                       screenMetaData.setFullWavAudioData(wav.getName());
                        metaDataDao.update(screenMetaData);
 
                        // Merge Audio with Video / Calculate resulting FLV
 
-                       String inputScreenFullFlv = new File(streamFolder, 
screenMetaData.getStreamName() + FLV_EXTENSION).getCanonicalPath();
+                       String inputScreenFullFlv = new File(streamFolder, 
OmFileHelper.getName(screenMetaData.getStreamName(), 
EXTENSION_FLV)).getCanonicalPath();
 
-                       File outputFullFlv = new File(getStreamsHibernateDir(), 
finalNamePrefix + FLV_EXTENSION);
+                       File flv = recording.getFile(EXTENSION_FLV);
 
                        // ffmpeg -vcodec flv -qscale 9.5 -r 25 -ar 22050 -ab 
32k -s 320x240
                        // -i 
65318fb5c54b1bc1b1bca077b493a914_28_12_2009_23_38_17_FINAL_WAVE.wav
@@ -139,18 +139,18 @@ public class RecordingConverter extends
 
                        String[] argv_fullFLV = new String[] { 
getPathToFFMPEG(), "-y",//
                                        "-itsoffset", 
formatMillis(diff(screenMetaData.getRecordStart(), recording.getRecordStart())),
-                                       "-i", inputScreenFullFlv, "-i", 
outputFullWav, "-ar", "22050", //
+                                       "-i", inputScreenFullFlv, "-i", 
wav.getCanonicalPath(), "-ar", "22050", //
                                        "-acodec", "libmp3lame", //
                                        "-ab", "32k", //
                                        "-s", flvWidth + "x" + flvHeight, //
                                        "-vcodec", "flashsv", //
                                        "-map", "0" + FFMPEG_MAP_PARAM + "0", //
                                        "-map", "1" + FFMPEG_MAP_PARAM + "0", //
-                                       outputFullFlv.getCanonicalPath() };
+                                       flv.getCanonicalPath() };
 
                        
returnLog.add(ProcessHelper.executeScript("generateFullFLV", argv_fullFLV));
 
-                       recording.setHash(outputFullFlv.getName());
+                       recording.setHash(flv.getName());
 
                        // Extract first Image for preview purpose
                        // ffmpeg -i movie.flv -vcodec mjpeg -vframes 1 -an -f 
rawvideo -s
@@ -158,11 +158,9 @@ public class RecordingConverter extends
 
                        File outPutJpeg = new File(getStreamsHibernateDir(), 
finalNamePrefix + ".jpg");
 
-                       recording.setPreviewImage(outPutJpeg.getName());
-
                        String[] argv_previewFLV = new String[] { //
                                        getPathToFFMPEG(), "-y",//
-                                       "-i", outputFullFlv.getCanonicalPath(), 
//
+                                       "-i", flv.getCanonicalPath(), //
                                        "-vcodec", "mjpeg", //
                                        "-vframes", "1", "-an", //
                                        "-f", "rawvideo", //
@@ -173,25 +171,22 @@ public class RecordingConverter extends
 
                        File alternateDownload = new 
File(getStreamsHibernateDir(), finalNamePrefix + ".avi");
 
-                       String[] argv_alternateDownload = new String[] { 
getPathToFFMPEG(), "-y", "-i", outputFullFlv.getCanonicalPath(), "-vcodec",
+                       String[] argv_alternateDownload = new String[] { 
getPathToFFMPEG(), "-y", "-i", flv.getCanonicalPath(), "-vcodec",
                                        "copy", 
alternateDownload.getCanonicalPath() };
 
                        
returnLog.add(ProcessHelper.executeScript("alternateDownload", 
argv_alternateDownload));
 
-                       
recording.setAlternateDownload(alternateDownload.getName());
-
                        updateDuration(recording);
                        convertToMp4(recording, returnLog);
                        recording.setStatus(Recording.Status.PROCESSED);
 
-                       logDao.deleteByRecordingId(recording.getId());
+                       logDao.delete(recording);
                        for (ConverterProcessResult returnMap : returnLog) {
                                logDao.add("generateFFMPEG", recording, 
returnMap);
                        }
 
                        // Delete Wave Files
-                       for (String fileName : listOfFullWaveFiles) {
-                               File audio = new File(fileName);
+                       for (File audio : waveFiles) {
                                if (audio.exists()) {
                                        audio.delete();
                                }

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
 Sun Sep 11 04:50:07 2016
@@ -18,8 +18,6 @@
  */
 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;
 
@@ -72,7 +70,6 @@ public class FileProcessor {
                String hash = UUID.randomUUID().toString();
 
                String ext = getExt(f);
-               String extDot = String.format(".%s", ext);
                log.debug("file extension: " + ext);
                StoredFile storedFile = new StoredFile(hash, ext); 
 
@@ -94,12 +91,6 @@ public class FileProcessor {
                        returnError.addItem("wrongType", new 
ConverterProcessResult("The file type cannot be converted"));
                        return returnError;
                }
-
-               File completeName = new File(isAsIs ? getUploadFilesDir() : 
getUploadTempFilesDir(), hash + extDot);
-               log.debug("writing file to: " + completeName);
-               FileHelper.copy(is, completeName);
-               is.close();
-
                if (isImage) {
                        f.setType(Type.Image);
                } else if (isVideo) {
@@ -113,25 +104,32 @@ public class FileProcessor {
 
                f = fileDao.update(f);
                log.debug("fileId: " + f.getId());
+
+               File file = f.getFile(ext);
+               log.debug("writing file to: " + file);
+               if (!file.getParentFile().exists() && 
!file.getParentFile().mkdirs()) {
+                       returnError.addItem("No parent", new 
ConverterProcessResult("Unable to create parent for file: " + 
file.getCanonicalPath()));
+                       return returnError;
+               }
+               FileHelper.copy(is, file);
+               is.close();
+
                
                log.debug("canBeConverted: " + canBeConverted);
-               if (canBeConverted) {
+               if (canBeConverted || isPdf) {
                        // convert to pdf, thumbs, swf and xml-description
-                       returnError = generatePDF.convertPDF(hash, "files", 
true, completeName);
-               } else if (isPdf) {
-                       // convert to thumbs, swf and xml-description
-                       returnError = generatePDF.convertPDF(hash, "files", 
false, completeName);
+                       returnError = generatePDF.convertPDF(f, ext);
                } 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(hash, extDot, 
"files");
+                       returnError = generateImage.convertImage(f, ext);
                } else if (isAsIs) {
-                       ConverterProcessResult processThumb = 
generateThumbs.generateThumb(thumbImagePrefix, completeName, 50);
+                       ConverterProcessResult processThumb = 
generateThumbs.generateThumb(thumbImagePrefix, file, 50);
                        returnError.addItem("processThumb", processThumb);
                } else if (isVideo) {
-                       List<ConverterProcessResult> returnList = 
flvExplorerConverter.startConversion(f.getId(), 
completeName.getCanonicalPath());
+                       List<ConverterProcessResult> returnList = 
flvExplorerConverter.convertToMP4(f, ext);
                        
                        int i = 0;
                        for (ConverterProcessResult returnMap : returnList) {
@@ -141,7 +139,7 @@ public class FileProcessor {
                
                // has to happen at the end, otherwise it will be overwritten
                //cause the variable is new initialized
-               returnError.setCompleteName(completeName.getName());
+               returnError.setCompleteName(file.getName());
                returnError.setFileItemId(f.getId());
                
                return returnError;

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
 Sun Sep 11 04:50:07 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.core.data.record.listener.async;
 
-import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_FLV;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
@@ -98,7 +98,7 @@ public abstract class BaseStreamWriter i
         *             I/O exception
         */
        private void init() throws IOException {
-               file = new File(OmFileHelper.getStreamsSubDir(scope.getName()), 
streamName + FLV_EXTENSION);
+               file = new File(OmFileHelper.getStreamsSubDir(scope.getName()), 
OmFileHelper.getName(streamName, EXTENSION_FLV));
 
                IStreamableFileFactory factory = (IStreamableFileFactory) 
ScopeUtils.getScopeService(scope, IStreamableFileFactory.class,
                                StreamableFileFactory.class);

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/CreateLibraryPresentation.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/CreateLibraryPresentation.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/CreateLibraryPresentation.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/CreateLibraryPresentation.java
 Sun Sep 11 04:50:07 2016
@@ -37,74 +37,56 @@ import org.slf4j.Logger;
 
 public class CreateLibraryPresentation {
        private static final Logger log = 
Red5LoggerFactory.getLogger(CreateLibraryPresentation.class, webAppRootKey);
-       
-       public static ConverterProcessResult generateXMLDocument(File 
targetDirectory, String originalDocument, 
-                       String pdfDocument, String swfDocument){
+
+       private static void addFile(Element root, String name, File f) {
+               if (f != null) {
+                       root.addElement(name)
+                               .addAttribute("lastmod", "" + f.lastModified())
+                               .addAttribute("size", "" + f.length())
+                               .addText(f.getName());
+               }
+       }
+
+       public static ConverterProcessResult generateXMLDocument(File original, 
File pdf, File swf) {
                ConverterProcessResult returnMap = new ConverterProcessResult();
-               returnMap.setProcess("generateXMLDocument");            
+               returnMap.setProcess("generateXMLDocument");
                try {
                        Document document = DocumentHelper.createDocument();
                        Element root = document.addElement("presentation");
-                       
-                       File file = new File(targetDirectory, originalDocument);
-                       root.addElement("originalDocument")
-                               .addAttribute("lastmod", (new 
Long(file.lastModified())).toString())
-                               .addAttribute("size", (new 
Long(file.length())).toString())             
-                               .addText(originalDocument);
-
-                       if (pdfDocument!=null){
-                               File pdfDocumentFile = new 
File(targetDirectory, pdfDocument);
-                               root.addElement("pdfDocument")
-                                       .addAttribute("lastmod", (new 
Long(pdfDocumentFile.lastModified())).toString())
-                                       .addAttribute("size", (new 
Long(pdfDocumentFile.length())).toString())                          
-                                       .addText(pdfDocument);
-                       }
 
-                       if (swfDocument!=null){
-                               File swfDocumentFile = new 
File(targetDirectory, originalDocument);
-                               root.addElement("swfDocument")
-                                       .addAttribute("lastmod", (new 
Long(swfDocumentFile.lastModified())).toString())
-                                       .addAttribute("size", (new 
Long(swfDocumentFile.length())).toString())
-                                       .addText(swfDocument);
-                       }
+                       addFile(root, "originalDocument", original);
+                       addFile(root, "pdfDocument", pdf);
+                       addFile(root, "swfDocument", swf);
 
-                       Element thumbs = root.addElement( "thumbs" );
+                       Element thumbs = root.addElement("thumbs");
 
-                       //Second get all Files of this Folder
+                       // Second get all Files of this Folder
                        FilenameFilter ff = new FilenameFilter() {
                                @Override
                                public boolean accept(File b, String name) {
                                        File f = new File(b, name);
-                                       return f.isFile();
-                               }
-                       };      
-                       
-                       String[] allfiles = targetDirectory.list(ff);           
        
-                       if(allfiles!=null){
-                               Arrays.sort(allfiles);
-                               for(int i=0; i<allfiles.length; i++){
-                                       File thumbfile = new 
File(targetDirectory, allfiles[i]);
-                                       if 
(allfiles[i].startsWith(thumbImagePrefix)){
-                                               thumbs.addElement( "thumb" )
-                                                       
.addAttribute("lastmod", (new Long(thumbfile.lastModified())).toString())
-                                                       .addAttribute("size", 
(new Long(thumbfile.length())).toString())
-                                                       .addText(allfiles[i]);
-                                       }
+                                       return f.isFile() && 
f.getName().startsWith(thumbImagePrefix);
                                }
+                       };
+
+                       File[] _thumbs = original.getParentFile().listFiles(ff);
+                       Arrays.sort(_thumbs);
+                       for (File thumb : _thumbs) {
+                               addFile(thumbs, "thumb", thumb);
                        }
-                       
+
                        // lets write to a file
-                       XMLWriter writer = new XMLWriter(new 
FileOutputStream(new File(targetDirectory, OmFileHelper.libraryFileName)));
+                       XMLWriter writer = new XMLWriter(new 
FileOutputStream(new File(original.getParentFile(), 
OmFileHelper.libraryFileName)));
                        writer.write(document);
                        writer.close();
-                       
-                       returnMap.setExitValue("0");
-                       
+
+                       returnMap.setExitCode(0);
+
                        return returnMap;
                } catch (Exception err) {
                        log.error("Error while generateXMLDocument", err);
                        returnMap.setError(err.getMessage());
-                       returnMap.setExitValue("-1");
+                       returnMap.setExitCode(-1);
                        return returnMap;
                }
        }

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/GeneratePDF.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/GeneratePDF.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/GeneratePDF.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/GeneratePDF.java
 Sun Sep 11 04:50:07 2016
@@ -18,18 +18,18 @@
  */
 package org.apache.openmeetings.core.documents;
 
-import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static 
org.apache.openmeetings.core.documents.CreateLibraryPresentation.generateXMLDocument;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
 import java.io.FilenameFilter;
 import java.util.ArrayList;
 
-import org.apache.commons.transaction.util.FileHelper;
 import org.apache.openmeetings.core.converter.GenerateSWF;
 import org.apache.openmeetings.core.converter.GenerateThumbs;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
-import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
 import org.apache.openmeetings.util.process.ConverterProcessResultList;
 import org.apache.openmeetings.util.process.ProcessHelper;
@@ -47,58 +47,38 @@ public class GeneratePDF {
        @Autowired
        private ConfigurationDao configurationDao;
 
-       public ConverterProcessResultList convertPDF(String hash, String 
roomName, boolean fullProcessing, File inFile) throws Exception {
-               String inFileName = inFile.getName();
-               ConverterProcessResultList returnError = new 
ConverterProcessResultList();
-
-               File fileFullPath = new 
File(OmFileHelper.getUploadTempRoomDir(roomName), inFileName);
-               File destinationFolder = 
OmFileHelper.getNewDir(OmFileHelper.getUploadRoomDir(roomName), hash);
+       public ConverterProcessResultList convertPDF(FileExplorerItem f, String 
ext) throws Exception {
+               ConverterProcessResultList errors = new 
ConverterProcessResultList();
 
+               boolean fullProcessing = !EXTENSION_PDF.equals(ext);
+               File original = f.getFile(ext);
+               File pdf = f.getFile(EXTENSION_PDF);
                log.debug("fullProcessing: " + fullProcessing);
                if (fullProcessing) {
-                       ConverterProcessResult processOpenOffice = 
doJodConvert(fileFullPath, destinationFolder, hash);
-                       returnError.addItem("processOpenOffice", 
processOpenOffice);
-                       ConverterProcessResult processThumb = 
generateThumbs.generateBatchThumb(new File(destinationFolder, hash + ".pdf"), 
destinationFolder, 80, "thumb");
-                       returnError.addItem("processThumb", processThumb);
-                       ConverterProcessResult processSWF = 
generateSWF.generateSwf(destinationFolder, destinationFolder, hash);
-                       returnError.addItem("processSWF", processSWF);
-               } else {
-                       log.debug("-- generateBatchThumb --");
-
-                       ConverterProcessResult processThumb = 
generateThumbs.generateBatchThumb(fileFullPath, destinationFolder, 80, "thumb");
-                       returnError.addItem("processThumb", processThumb);
-
-                       ConverterProcessResult processSWF = 
generateSWF.generateSwf(fileFullPath.getParentFile(), destinationFolder, hash);
-                       returnError.addItem("processSWF", processSWF);
-               }
-
-               // now it should be completed so copy that file to the expected 
location
-               File fileWhereToMove = new File(destinationFolder, inFileName);
-               fileWhereToMove.createNewFile();
-               FileHelper.moveRec(inFile, fileWhereToMove);
-
-               if (fullProcessing) {
-                       ConverterProcessResult processXML = 
generateXMLDocument(destinationFolder, inFileName, hash + ".pdf", hash + 
".swf");
-                       returnError.addItem("processXML", processXML);
-               } else {
-                       ConverterProcessResult processXML = 
generateXMLDocument(destinationFolder, inFileName, null, hash + ".swf");
-                       returnError.addItem("processXML", processXML);
+                       log.debug("-- running JOD --");
+                       errors.addItem("processOpenOffice", 
doJodConvert(original, pdf));
                }
+               
+               log.debug("-- generateBatchThumb --");
+               errors.addItem("processThumb", 
generateThumbs.generateBatchThumb(pdf, pdf.getParentFile(), 80, "thumb"));
+               File swf = f.getFile();
+               errors.addItem("processSWF", generateSWF.generateSwf(pdf, swf));
 
-               return returnError;
+               errors.addItem("processXML", generateXMLDocument(original, 
fullProcessing ? pdf : null, swf));
+               return errors;
        }
 
        /**
         * Generates PDF using JOD Library (external library)
         */
-       public ConverterProcessResult doJodConvert(File fileFullPath, File 
destinationFolder, String outputfile) {
+       public ConverterProcessResult doJodConvert(File in, File out) {
                try {
                        String jodPath = 
configurationDao.getConfValue("jod.path", String.class, "./jod");
                        String officePath = 
configurationDao.getConfValue("office.path", String.class, "");
 
                        File jodFolder = new File(jodPath);
                        if (!jodFolder.exists() || !jodFolder.isDirectory()) {
-                               throw new Exception("Path to JOD Library folder 
does not exist");
+                               return new 
ConverterProcessResult("doJodConvert", "Path to JOD Library folder does not 
exist", null);
                        }
 
                        ArrayList<String> argv = new ArrayList<String>();
@@ -130,8 +110,8 @@ public class GeneratePDF {
 
                        argv.add("-jar");
                        argv.add(new File(jodFolder, 
jodConverterJar).getCanonicalPath());
-                       argv.add(fileFullPath.getCanonicalPath());
-                       argv.add(new File(destinationFolder, outputfile + 
".pdf").getCanonicalPath());
+                       argv.add(in.getCanonicalPath());
+                       argv.add(out.getCanonicalPath());
 
                        return ProcessHelper.executeScript("doJodConvert", 
argv.toArray(new String[argv.size()]));
 

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryChartLoader.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryChartLoader.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryChartLoader.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryChartLoader.java
 Sun Sep 11 04:50:07 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.core.documents;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.BufferedReader;
@@ -25,7 +26,6 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 
 import org.red5.logging.Red5LoggerFactory;
@@ -62,7 +62,7 @@ public class LibraryChartLoader {
             xStream.setMode(XStream.NO_REFERENCES);
 
                        try (InputStream is = new FileInputStream(file);
-                                       BufferedReader reader = new 
BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)))
+                                       BufferedReader reader = new 
BufferedReader(new InputStreamReader(is, UTF_8)))
                        {
                                ArrayList lMapList = (ArrayList) 
xStream.fromXML(reader);
                                return lMapList;

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryDocumentConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryDocumentConverter.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryDocumentConverter.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryDocumentConverter.java
 Sun Sep 11 04:50:07 2016
@@ -18,7 +18,8 @@
  */
 package org.apache.openmeetings.core.documents;
 
-import static org.apache.openmeetings.util.OmFileHelper.WML_EXTENSION;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_WML;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
@@ -26,7 +27,6 @@ import java.io.FileOutputStream;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 
 import org.apache.openmeetings.util.OmFileHelper;
@@ -43,7 +43,7 @@ public class LibraryDocumentConverter {
                try {
                        log.debug("filePath: " + 
OmFileHelper.getUploadWmlDir().getCanonicalPath());
                        
-                       File file = new File(OmFileHelper.getUploadWmlDir(), 
fileName + WML_EXTENSION);
+                       File file = new File(OmFileHelper.getUploadWmlDir(), 
OmFileHelper.getName(fileName, EXTENSION_WML));
                        
                        if (file.exists()){
                                return "-20";
@@ -56,7 +56,7 @@ public class LibraryDocumentConverter {
                        log.debug("Write to " + file);
                        
                        try (OutputStream os = new FileOutputStream(file);
-                                       Writer out = new OutputStreamWriter(os, 
StandardCharsets.UTF_8))
+                                       Writer out = new OutputStreamWriter(os, 
UTF_8))
                        {
                                out.write(xmlString);
                                out.flush();

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java
 Sun Sep 11 04:50:07 2016
@@ -18,7 +18,8 @@
  */
 package org.apache.openmeetings.core.documents;
 
-import static org.apache.openmeetings.util.OmFileHelper.WML_EXTENSION;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_WML;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.BufferedReader;
@@ -26,7 +27,6 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -43,8 +43,8 @@ public class LibraryWmlLoader {
        public static List<?> loadWmlFile(String fileName){
                try {
                        String name = fileName;
-                       if (!name.endsWith(WML_EXTENSION)) {
-                               name += WML_EXTENSION;
+                       if (!name.endsWith(EXTENSION_WML)) {
+                               name = OmFileHelper.getName(fileName, 
EXTENSION_WML);
                        }
                        File file = new File(OmFileHelper.getUploadWmlDir(), 
name);
                        log.debug("filepathComplete: " + file);
@@ -53,7 +53,7 @@ public class LibraryWmlLoader {
                        xStream.setMode(XStream.NO_REFERENCES);
                        
                        try (InputStream is = new FileInputStream(file);
-                                       BufferedReader reader = new 
BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)))
+                                       BufferedReader reader = new 
BufferedReader(new InputStreamReader(is, UTF_8)))
                        {
                                List<?> lMapList = (List<?>) 
xStream.fromXML(reader);
                                

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
 Sun Sep 11 04:50:07 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.core.ldap;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_GROUP_ID;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
@@ -28,7 +29,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
@@ -315,7 +315,7 @@ public class LdapLoginManagement {
                        this.domainId = domainId;
                        LdapConfig ldapConfig = ldapConfigDao.get(domainId);
                        try (InputStream is = new FileInputStream(new 
File(OmFileHelper.getConfDir(), ldapConfig.getConfigFileName()));
-                                       Reader r = new InputStreamReader(is, 
StandardCharsets.UTF_8))
+                                       Reader r = new InputStreamReader(is, 
UTF_8))
                        {
                                config.load(r);
                                if (config.isEmpty()) {

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/mail/MailHandler.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/mail/MailHandler.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/mail/MailHandler.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/mail/MailHandler.java
 Sun Sep 11 04:50:07 2016
@@ -18,13 +18,13 @@
  */
 package org.apache.openmeetings.core.mail;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
-import java.nio.charset.StandardCharsets;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
@@ -197,7 +197,7 @@ public class MailHandler {
                log.debug("getMimeMessage");
                // Building MimeMessage
                MimeMessage msg = getBasicMimeMessage();
-               msg.setSubject(m.getSubject(), StandardCharsets.UTF_8.name());
+               msg.setSubject(m.getSubject(), UTF_8.name());
                String replyTo = m.getReplyTo();
                if (replyTo != null && mailAddReplyTo) {
                        log.debug("setReplyTo " + replyTo);

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
 Sun Sep 11 04:50:07 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.core.remote;
 
-import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
 import static org.apache.openmeetings.util.OmFileHelper.WB_VIDEO_FILE_PREFIX;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
@@ -216,22 +216,21 @@ public class ConferenceLibrary implement
                try {
                        Sessiondata sd = sessionDao.check(sid);
                        if 
(AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
-
                                IConnection current = Red5.getConnectionLocal();
                                String streamid = current.getClient().getId();
 
-                               Client currentClient = 
sessionManager.getClientByStreamId(streamid, null);
-
-                               Long roomId = currentClient.getRoomId();
+                               Client client = 
sessionManager.getClientByStreamId(streamid, null);
+                               Long roomId = client.getRoomId();
 
-                               if (roomId != null) {
-                                       File outputFullFlvFile = new 
File(OmFileHelper.getStreamsHibernateDir(), WB_VIDEO_FILE_PREFIX + fileId + 
MP4_EXTENSION);
+                               FileExplorerItem f = fileDao.get(fileId);
+                               if (roomId != null && f != null) {
+                                       File mp4 = f.getFile(EXTENSION_MP4);
 
                                        File targetFolder = 
OmFileHelper.getStreamsSubDir(roomId);
 
-                                       File targetFullFlvFile = new 
File(targetFolder, WB_VIDEO_FILE_PREFIX + fileId + MP4_EXTENSION);
-                                       if (outputFullFlvFile.exists() && 
!targetFullFlvFile.exists()) {
-                                               
FileHelper.copy(outputFullFlvFile, targetFullFlvFile);
+                                       File target = new File(targetFolder, 
OmFileHelper.getName(WB_VIDEO_FILE_PREFIX + fileId, EXTENSION_MP4));
+                                       if (mp4.exists() && !target.exists()) {
+                                               FileHelper.copy(mp4, target);
                                        }
                                        return 1L;
                                }

Modified: 
openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java
 Sun Sep 11 04:50:07 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.test.asf;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.BufferedReader;
@@ -28,7 +29,6 @@ import java.io.FilenameFilter;
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
 import java.io.StringWriter;
-import java.nio.charset.StandardCharsets;
 
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -130,7 +130,7 @@ public class AsfCopyRightReplace {
 
        private void scanAndWriteXMLFile(File javaFile) {
                StringWriter strWriter = new StringWriter();
-               try (BufferedReader is = new BufferedReader(new 
InputStreamReader(new FileInputStream(javaFile), StandardCharsets.UTF_8))) {
+               try (BufferedReader is = new BufferedReader(new 
InputStreamReader(new FileInputStream(javaFile), UTF_8))) {
                        log.debug("Processing " + javaFile.getCanonicalPath());
 
                        String line;
@@ -165,7 +165,7 @@ public class AsfCopyRightReplace {
                } catch (Exception err) {
                        log.error("Error while scanAndWriteXMLFile", err);
                }
-               try (OutputStreamWriter out = new OutputStreamWriter(new 
FileOutputStream(javaFile), StandardCharsets.UTF_8)) {
+               try (OutputStreamWriter out = new OutputStreamWriter(new 
FileOutputStream(javaFile), UTF_8)) {
                        out.write(strWriter.toString());
                        out.flush();
                } catch (Exception err) {
@@ -175,7 +175,7 @@ public class AsfCopyRightReplace {
 
        private void scanAndWriteJavaFile(File javaFile) {
                StringWriter strWriter = new StringWriter();
-               try (BufferedReader is = new BufferedReader(new 
InputStreamReader(new FileInputStream(javaFile), StandardCharsets.UTF_8))) {
+               try (BufferedReader is = new BufferedReader(new 
InputStreamReader(new FileInputStream(javaFile), UTF_8))) {
                        log.debug("Processing " + javaFile.getCanonicalPath());
 
                        String line;
@@ -196,7 +196,7 @@ public class AsfCopyRightReplace {
                } catch (Exception err) {
                        log.error("Error while scanAndWriteJavaFile", err);
                }
-               try (OutputStreamWriter out = new OutputStreamWriter(new 
FileOutputStream(javaFile), StandardCharsets.UTF_8)) {
+               try (OutputStreamWriter out = new OutputStreamWriter(new 
FileOutputStream(javaFile), UTF_8)) {
                        out.write(strWriter.toString());
                        out.flush();
                } catch (Exception err) {

Copied: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java
 (from r1760223, 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingLogDao.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java?p2=openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java&p1=openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingLogDao.java&r1=1760223&r2=1760224&rev=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingLogDao.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java
 Sun Sep 11 04:50:07 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.db.dao.record;
+package org.apache.openmeetings.db.dao.file;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
@@ -26,49 +26,45 @@ import java.util.List;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
 
-import org.apache.openmeetings.db.entity.record.Recording;
-import org.apache.openmeetings.db.entity.record.RecordingLog;
+import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.file.FileItemLog;
 import org.apache.openmeetings.util.process.ConverterProcessResult;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.transaction.annotation.Transactional;
 
 @Transactional
-public class RecordingLogDao {
-       private static final Logger log = 
Red5LoggerFactory.getLogger(RecordingLogDao.class, webAppRootKey);
+public class FileItemLogDao {
+       private static final Logger log = 
Red5LoggerFactory.getLogger(FileItemLogDao.class, webAppRootKey);
        @PersistenceContext
        private EntityManager em;
-       
-       public long countErrors(Long recordingId) {
-               return 
em.createNamedQuery("countErrorRecordingLogsByRecording", Long.class)
-                               .setParameter("recId", 
recordingId).getSingleResult();
-       }       
-       
-       public List<RecordingLog> getByRecordingId(Long recordingId) {
-               return em.createNamedQuery("getRecordingLogsByRecording", 
RecordingLog.class)
-                               .setParameter("recId", 
recordingId).getResultList();
-       }       
-       
-       public void deleteByRecordingId(Long recordingId) {
-               
em.createNamedQuery("deleteErrorRecordingLogsByRecording").setParameter("recId",
 recordingId).executeUpdate();
+
+       public long countErrors(FileItem f) {
+               return em.createNamedQuery("countErrorFileLogsByFile", 
Long.class).setParameter("fileId", f.getId())
+                               .setParameter("type", 
f.getType()).getSingleResult();
+       }
+
+       public List<FileItemLog> get(FileItem f) {
+               return em.createNamedQuery("getFileLogsByFile", 
FileItemLog.class).setParameter("fileId", f.getId())
+                               .setParameter("type", 
f.getType()).getResultList();
        }
-       
-       public Long add(String msgType, Recording recording, 
ConverterProcessResult returnMap) {
-               try { 
-                       RecordingLog log = new RecordingLog();
-                       log.setInserted(new Date());
-                       log.setExitValue(returnMap.getExitValue());
-                       log.setRecording(recording);
-                       log.setFullMessage(returnMap.buildLogMessage());
-                       log.setMsgType(msgType);
-                       
-                       log = em.merge(log);
-                       Long logId = log.getId();
-                       
-                       return logId;
-               } catch (Exception ex2) {
-                       log.error("[add]: ",ex2);
-               }
-               return -1L;
+
+       public void delete(FileItem f) {
+               
em.createNamedQuery("deleteErrorFileLogsByFile").setParameter("fileId", 
f.getId())
+                               .setParameter("type", 
f.getType()).executeUpdate();
+       }
+
+       public FileItemLog add(String name, FileItem f, ConverterProcessResult 
returnMap) {
+               log.trace("Adding log: {}, {}, {}", name, f, returnMap);
+               FileItemLog log = new FileItemLog();
+               log.setInserted(new Date());
+               log.setExitCode(returnMap.getExitCode());
+               log.setFileId(f.getId());
+               log.setFileType(f.getType());
+               log.setMessage(returnMap.buildLogMessage());
+               log.setName(name);
+
+               em.persist(log);
+               return log;
        }
 }

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/record/RecordingDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/record/RecordingDTO.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/record/RecordingDTO.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/record/RecordingDTO.java
 Sun Sep 11 04:50:07 2016
@@ -35,8 +35,7 @@ public class RecordingDTO implements Ser
        private static final long serialVersionUID = 1L;
        private Long id;
        private String name;
-       private String flvName;
-       private String aviName;
+       private String hash;
        private Long roomId;
        private String status;
        private boolean interview;
@@ -50,8 +49,7 @@ public class RecordingDTO implements Ser
        public RecordingDTO(Recording r) {
                this.id = r.getId();
                this.name = r.getName();
-               this.flvName = r.getHash();
-               this.aviName = r.getAlternateDownload();
+               this.hash = r.getHash();
                this.roomId = r.getRoomId();
                this.status = r.getStatus().name();
                this.interview = r.isInterview();
@@ -77,20 +75,12 @@ public class RecordingDTO implements Ser
                this.name = name;
        }
 
-       public String getFlvName() {
-               return flvName;
+       public String getHash() {
+               return hash;
        }
 
-       public void setFlvName(String flvName) {
-               this.flvName = flvName;
-       }
-
-       public String getAviName() {
-               return aviName;
-       }
-
-       public void setAviName(String aviName) {
-               this.aviName = aviName;
+       public void setHash(String hash) {
+               this.hash = hash;
        }
 
        public Long getRoomId() {

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
 Sun Sep 11 04:50:07 2016
@@ -50,11 +50,11 @@ import org.simpleframework.xml.Root;
 @Entity
 @Table(name = "appointment")
 @NamedQueries({
-    @NamedQuery(name="getAppointmentById", query="SELECT a FROM Appointment a 
WHERE a.deleted = false AND a.id = :id")
-    , @NamedQuery(name="getAppointmentByIdAny", query="SELECT a FROM 
Appointment a WHERE a.id = :id")
-    , @NamedQuery(name="getAppointments", query="SELECT a FROM Appointment a 
WHERE a.deleted = false ORDER BY a.id")
-    , @NamedQuery(name="appointmentsInRange",
-       query="SELECT a FROM Appointment a "
+       @NamedQuery(name="getAppointmentById", query="SELECT a FROM Appointment 
a WHERE a.deleted = false AND a.id = :id")
+       , @NamedQuery(name="getAppointmentByIdAny", query="SELECT a FROM 
Appointment a WHERE a.id = :id")
+       , @NamedQuery(name="getAppointments", query="SELECT a FROM Appointment 
a WHERE a.deleted = false ORDER BY a.id")
+       , @NamedQuery(name="appointmentsInRange",
+               query="SELECT a FROM Appointment a "
                        + "WHERE a.deleted = false "
                        + "     AND ( "
                        + "             (a.start BETWEEN :start AND :end) "
@@ -62,8 +62,8 @@ import org.simpleframework.xml.Root;
                        + "             OR (a.start < :start AND a.end > :end) "
                        + "     )"
                        + "     AND a.owner.id = :userId"
-       )
-    , @NamedQuery(name="joinedAppointmentsInRange",
+               )
+       , @NamedQuery(name="joinedAppointmentsInRange",
                query="SELECT a FROM MeetingMember mm INNER JOIN mm.appointment 
a "
                        + "WHERE mm.deleted = false AND mm.user.id <> 
a.owner.id AND mm.user.id = :userId "
                        + "     AND a.id NOT IN (SELECT a.id FROM Appointment a 
WHERE a.owner.id = :userId)"
@@ -73,8 +73,8 @@ import org.simpleframework.xml.Root;
                        + "             OR (a.end BETWEEN :start AND :end) "
                        + "             OR (a.start < :start AND a.end > :end) "
                        + "     )"
-       )
-    , @NamedQuery(name="appointmentsInRangeRemind",
+               )
+       , @NamedQuery(name="appointmentsInRangeRemind",
                query="SELECT a FROM Appointment a "
                        //only ReminderType simple mail is concerned!
                        + "WHERE a.deleted = false AND a.reminderEmailSend = 
false"
@@ -84,11 +84,11 @@ import org.simpleframework.xml.Root;
                        + "             OR (a.end BETWEEN :start AND :end) "
                        + "             OR (a.start < :start AND a.end > :end) "
                        + "     )"
-       )
-    , @NamedQuery(name="getAppointmentByRoomId", query="SELECT a FROM 
Appointment a WHERE a.room.id = :roomId")
-    , @NamedQuery(name="getAppointmentByOwnerRoomId", query="SELECT a FROM 
Appointment a WHERE a.deleted = false AND a.owner.id = :userId AND a.room.id = 
:roomId")
+               )
+       , @NamedQuery(name="getAppointmentByRoomId", query="SELECT a FROM 
Appointment a WHERE a.room.id = :roomId")
+       , @NamedQuery(name="getAppointmentByOwnerRoomId", query="SELECT a FROM 
Appointment a WHERE a.deleted = false AND a.owner.id = :userId AND a.room.id = 
:roomId")
        //TODO this query returns duplicates if the user books an appointment 
with his own user as second meeting-member, swagner 19.02.2012
-    , @NamedQuery(name="appointmentsInRangeByUser",
+       , @NamedQuery(name="appointmentsInRangeByUser",
                query="SELECT a FROM MeetingMember mm, IN(mm.appointment) a "
                        + "WHERE mm.deleted = false AND mm.user.id <> 
a.owner.id AND mm.user.id = :userId "
                        + "     AND ( "
@@ -96,8 +96,8 @@ import org.simpleframework.xml.Root;
                        + "             OR (a.end BETWEEN :start AND :end) "
                        + "             OR (a.start < :start AND a.end > :end) "
                        + "     )"
-           )
-    , @NamedQuery(name="appointedRoomsInRangeByUser",
+               )
+       , @NamedQuery(name="appointedRoomsInRangeByUser",
                query="SELECT a.room FROM MeetingMember mm, IN(mm.appointment) 
a "
                        + "WHERE mm.deleted = false AND mm.user.id <> 
a.owner.id AND mm.user.id = :userId "
                        + "     AND ( "
@@ -105,9 +105,9 @@ import org.simpleframework.xml.Root;
                        + "             OR (a.end BETWEEN :start AND :end) "
                        + "             OR (a.start < :start AND a.end > :end) "
                        + "     )"
-           )
-    , @NamedQuery(name="getNextAppointment", query="SELECT a FROM Appointment 
a WHERE a.deleted = false AND a.start > :start AND a.owner.id = :userId")
-    , @NamedQuery(name="getAppointmentsByTitle", query="SELECT a FROM 
Appointment a WHERE a.deleted = false AND a.title LIKE :title AND a.owner.id = 
:userId")
+               )
+       , @NamedQuery(name="getNextAppointment", query="SELECT a FROM 
Appointment a WHERE a.deleted = false AND a.start > :start AND a.owner.id = 
:userId")
+       , @NamedQuery(name="getAppointmentsByTitle", query="SELECT a FROM 
Appointment a WHERE a.deleted = false AND a.title LIKE :title AND a.owner.id = 
:userId")
 })
 @Root(name="appointment")
 public class Appointment implements IDataProviderEntity {

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
 Sun Sep 11 04:50:07 2016
@@ -20,11 +20,13 @@ package org.apache.openmeetings.db.entit
 
 import java.io.File;
 import java.util.Date;
+import java.util.List;
 
 import javax.persistence.Column;
 import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
 import javax.persistence.MappedSuperclass;
+import javax.persistence.Transient;
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.openmeetings.db.entity.IDataProviderEntity;
@@ -86,15 +88,15 @@ public abstract class FileItem implement
        @Element(data = true, required = false)
        private Integer flvHeight;
 
-       @Column(name = "preview_image")
-       @Element(data = true, required = false)
-       private String previewImage;
-
        @Column(name = "type")
        @Element(data = true, required = false)
        @Enumerated(EnumType.STRING)
        private Type type;
 
+       // Not Mapped
+       @Transient
+       private List<FileItemLog> log;
+
        public String getName() {
                return name;
        }
@@ -183,14 +185,6 @@ public abstract class FileItem implement
                this.flvHeight = flvHeight;
        }
 
-       public String getPreviewImage() {
-               return previewImage;
-       }
-
-       public void setPreviewImage(String previewImage) {
-               this.previewImage = previewImage;
-       }
-
        public Type getType() {
                return type;
        }
@@ -199,6 +193,14 @@ public abstract class FileItem implement
                this.type = type;
        }
 
+       public List<FileItemLog> getLog() {
+               return log;
+       }
+
+       public void setLog(List<FileItemLog> log) {
+               this.log = log;
+       }
+
        public File getFile() {
                return getFile(null);
        }


Reply via email to