Author: solomax
Date: Wed Apr  6 09:39:48 2016
New Revision: 1737955

URL: http://svn.apache.org/viewvc?rev=1737955&view=rev
Log:
[OPENMEETINGS-853] CleanupHelper seems to work as expected

Modified:
    
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
    
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
    
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
    
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
    
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
    
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
    
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
    
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
    
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java
    
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
    
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java
    
openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
    
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
    
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java
    
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
    
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java
    
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
 Wed Apr  6 09:39:48 2016
@@ -21,6 +21,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.MP4_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.OGG_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.getRecording;
 import static org.apache.openmeetings.util.OmFileHelper.getRecordingMetaData;
 import static org.apache.openmeetings.util.OmFileHelper.getStreamsSubDir;
@@ -245,7 +246,7 @@ public abstract class BaseConverter {
                                
                                metaData = waitForTheStream(metaId);
        
-                               File inputFlvFile = new File(streamFolder, 
metaData.getStreamName() + ".flv");
+                               File inputFlvFile = new File(streamFolder, 
metaData.getStreamName() + FLV_EXTENSION);
        
                                File outputWav = new File(streamFolder, 
metaData.getStreamName() + "_WAVE.wav");
        

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
 Wed Apr  6 09:39:48 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.core.converter;
 
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
@@ -77,7 +78,7 @@ public class FlvExplorerConverter extend
                List<ConverterProcessResult> returnLog = new 
ArrayList<ConverterProcessResult>();
                try {
                        String name = "UPLOADFLV_" + fileExplorerItem.getId();
-                       File outputFullFlv = new File(getStreamsHibernateDir(), 
name + ".flv");
+                       File outputFullFlv = new File(getStreamsHibernateDir(), 
name + FLV_EXTENSION);
 
                        fileExplorerItem.setType(Type.Video);
 

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
 Wed Apr  6 09:39:48 2016
@@ -18,8 +18,10 @@
  */
 package org.apache.openmeetings.core.converter;
 
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
 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;
@@ -191,7 +193,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");
+                                                       File podF = new 
File(streamFolder, meta.getStreamName() + "_pod_" + pod + FLV_EXTENSION);
                                                        String podP = 
podF.getCanonicalPath();
                                                        String[] argsPod = new 
String[] { getPathToFFMPEG(), "-y"//
                                                                        , "-i", 
podPB //
@@ -252,7 +254,7 @@ public class InterviewConverter extends
                        args.add("-qmax"); args.add("1");
                        args.add("-qmin"); args.add("1");
                        args.add("-y");
-                       String hashFileFullNameFlv = "flvRecording_" + 
recording.getId() + ".flv";
+                       String hashFileFullNameFlv = recordingFileName + 
recording.getId() + FLV_EXTENSION;
                        String outputFullFlv = new File(streamFolderGeneral, 
hashFileFullNameFlv).getCanonicalPath();
                        args.add(outputFullFlv);
                        // TODO additional flag to 'quiet' output should be 
added
@@ -267,7 +269,7 @@ public class InterviewConverter extends
                        // ffmpeg -i movie.flv -vcodec mjpeg -vframes 1 -an -f 
rawvideo -s
                        // 320x240 movie.jpg
 
-                       String hashFileFullNameJPEG = "flvRecording_" + 
recording.getId() + ".jpg";
+                       String hashFileFullNameJPEG = recordingFileName + 
recording.getId() + ".jpg";
                        String outPutJpeg = new File(streamFolderGeneral, 
hashFileFullNameJPEG).getCanonicalPath();
                        deleteFileIfExists(outPutJpeg);
 
@@ -284,7 +286,7 @@ public class InterviewConverter extends
 
                        
returnLog.add(ProcessHelper.executeScript("generateFullFLV", argv_previewFLV));
 
-                       String alternateDownloadName = "flvRecording_" + 
recording.getId() + ".avi";
+                       String alternateDownloadName = recordingFileName + 
recording.getId() + ".avi";
                        String alternateDownloadFullName = new 
File(streamFolderGeneral, alternateDownloadName).getCanonicalPath();
                        deleteFileIfExists(alternateDownloadFullName);
 

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
 Wed Apr  6 09:39:48 2016
@@ -18,7 +18,9 @@
  */
 package org.apache.openmeetings.core.converter;
 
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
 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;
@@ -52,18 +54,17 @@ public class RecordingConverter extends
 
        @Override
        public void startConversion(Long recordingId) {
-               Recording recording = null;
+               Recording recording = recordingDao.get(recordingId);
+               if (recording == null) {
+                       log.warn("Conversion is NOT started. Recording with ID 
{} is not found", recordingId);
+                       return;
+               }
                try {
                        if (isUseOldStyleFfmpegMap()) {
                                FFMPEG_MAP_PARAM = ".";
                        }
 
-                       String finalNamePrefix = "flvRecording_" + recordingId;
-                       recording = recordingDao.get(recordingId);
-                       if (recording == null) {
-                               log.warn("Conversion is NOT started. Recording 
with ID {} is not found", recordingId);
-                               return;
-                       }
+                       String finalNamePrefix = recordingFileName + 
recordingId;
                        log.debug("recording " + recording.getId());
 
                        List<ConverterProcessResult> returnLog = new 
ArrayList<ConverterProcessResult>();
@@ -112,9 +113,9 @@ public class RecordingConverter extends
 
                        // Merge Audio with Video / Calculate resulting FLV
 
-                       String inputScreenFullFlv = new File(streamFolder, 
screenMetaData.getStreamName() + ".flv").getCanonicalPath();
+                       String inputScreenFullFlv = new File(streamFolder, 
screenMetaData.getStreamName() + FLV_EXTENSION).getCanonicalPath();
 
-                       File outputFullFlv = new File(getStreamsHibernateDir(), 
finalNamePrefix + ".flv");
+                       File outputFullFlv = new File(getStreamsHibernateDir(), 
finalNamePrefix + FLV_EXTENSION);
 
                        // 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

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
 Wed Apr  6 09:39:48 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.core.data.file;
 
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.getUploadFilesDir;
 import static org.apache.openmeetings.util.OmFileHelper.getUploadTempFilesDir;
 import static org.apache.openmeetings.util.OmFileHelper.thumbImagePrefix;
@@ -103,7 +104,7 @@ public class FileProcessor {
                        hash = newName + ".jpg";
                        f.setType(Type.Image);
                } else if (isVideo) {
-                       hash = newName + ".flv";
+                       hash = newName + FLV_EXTENSION;
                        f.setType(Type.Video);
                } else if (isChart) {
                        f.setType(Type.PollChart);

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
 Wed Apr  6 09:39:48 2016
@@ -18,6 +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.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
@@ -97,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");
+               file = new File(OmFileHelper.getStreamsSubDir(scope.getName()), 
streamName + FLV_EXTENSION);
 
                IStreamableFileFactory factory = (IStreamableFileFactory) 
ScopeUtils.getScopeService(scope, IStreamableFileFactory.class,
                                StreamableFileFactory.class);

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
 Wed Apr  6 09:39:48 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.core.remote;
 
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
@@ -253,11 +254,11 @@ public class ConferenceLibrary implement
                                Long room_id = currentClient.getRoomId();
 
                                if (room_id != null) {
-                                       File outputFullFlvFile = new 
File(OmFileHelper.getStreamsHibernateDir(), "UPLOADFLV_" + flvFileExplorerId + 
".flv");
+                                       File outputFullFlvFile = new 
File(OmFileHelper.getStreamsHibernateDir(), "UPLOADFLV_" + flvFileExplorerId + 
FLV_EXTENSION);
 
                                        File targetFolder = 
OmFileHelper.getStreamsSubDir(room_id);
 
-                                       File targetFullFlvFile = new 
File(targetFolder, "UPLOADFLV_" + flvFileExplorerId + ".flv");
+                                       File targetFullFlvFile = new 
File(targetFolder, "UPLOADFLV_" + flvFileExplorerId + FLV_EXTENSION);
                                        if (outputFullFlvFile.exists() && 
!targetFullFlvFile.exists()) {
                                                
FileHelper.copy(outputFullFlvFile, targetFullFlvFile);
                                        }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
 Wed Apr  6 09:39:48 2016
@@ -57,8 +57,6 @@ import org.apache.openmeetings.db.dao.ba
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.file.FileExplorerItem;
-import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.installation.ImportInitvalues;
 import org.apache.openmeetings.installation.InstallationConfig;
 import org.apache.openmeetings.installation.InstallationDocumentHandler;
@@ -320,6 +318,9 @@ public class Admin {
                                        }
                                        StringBuilder report = new 
StringBuilder();
                                        CleanupUnit temp = 
CleanupHelper.getTempUnit();
+                                       if (cleanup) {
+                                               temp.cleanup();
+                                       }
                                        report.append("Temporary files 
allocates: ").append(temp.getHumanTotal()).append("\n");
                                        { //UPLOAD
                                                long sectionSize = 
OmFileHelper.getSize(OmFileHelper.getUploadDir());
@@ -327,97 +328,55 @@ public class Admin {
                                                //Profiles
                                                ClassPathXmlApplicationContext 
ctx = getApplicationContext(ctxName);
                                                UserDao udao = 
ctx.getBean(UserDao.class);
-                                               CleanupEntityUnit profileUnit = 
CleanupHelper.getProfileUnit(udao);
-                                               long restSize = sectionSize - 
profileUnit.getSizeTotal();
-                                               report.append("\t\tprofiles: 
").append(profileUnit.getHumanTotal()).append("\n");
-                                               report.append("\t\t\tinvalid: 
").append(profileUnit.getHumanInvalid()).append("\n");
-                                               report.append("\t\t\tdeleted: 
").append(profileUnit.getHumanDeleted()).append("\n");
-                                               report.append("\t\t\tmissing 
count: ").append(profileUnit.getMissing()).append("\n");
+                                               CleanupEntityUnit profile = 
CleanupHelper.getProfileUnit(udao);
+                                               long restSize = sectionSize - 
profile.getSizeTotal();
+                                               report.append("\t\tprofiles: 
").append(profile.getHumanTotal()).append("\n");
+                                               report.append("\t\t\tinvalid: 
").append(profile.getHumanInvalid()).append("\n");
+                                               report.append("\t\t\tdeleted: 
").append(profile.getHumanDeleted()).append("\n");
+                                               report.append("\t\t\tmissing 
count: ").append(profile.getMissing()).append("\n");
                                                if (cleanup) {
-                                                       profileUnit.cleanup();
+                                                       profile.cleanup();
                                                }
-                                               long size = 
OmFileHelper.getSize(OmFileHelper.getUploadImportDir());
-                                               restSize -= size;
-                                               report.append("\t\timport: 
").append(OmFileHelper.getHumanSize(size)).append("\n");
-                                               size = 
OmFileHelper.getSize(OmFileHelper.getUploadBackupDir());
-                                               restSize -= size;
-                                               report.append("\t\tbackup: 
").append(OmFileHelper.getHumanSize(size)).append("\n");
-                                               //Files
-                                               File files = 
OmFileHelper.getUploadFilesDir();
-                                               size = 
OmFileHelper.getSize(files);
-                                               restSize -= size;
-                                               FileExplorerItemDao fileDao = 
ctx.getBean(FileExplorerItemDao.class);
-                                               long invalid = 0;
-                                               long deleted = 0;
-                                               for (File f : 
files.listFiles()) {
-                                                       long fSize = 
OmFileHelper.getSize(f);
-                                                       FileExplorerItem item = 
fileDao.getByHash(f.getName());
-                                                       if (item == null) {
-                                                               if (cleanup) {
-                                                                       
FileHelper.removeRec(f);
-                                                               } else {
-                                                                       invalid 
+= fSize;
-                                                               }
-                                                       } else if 
(item.isDeleted()) {
-                                                               if (cleanup) {
-                                                                       
FileHelper.removeRec(f);
-                                                               } else {
-                                                                       deleted 
+= fSize;
-                                                               }
-                                                       }
+                                               CleanupUnit imp = 
CleanupHelper.getImportUnit();
+                                               restSize -= imp.getSizeTotal();
+                                               report.append("\t\timport: 
").append(OmFileHelper.getHumanSize(imp.getSizeTotal())).append("\n");
+                                               if (cleanup) {
+                                                       imp.cleanup();
                                                }
-                                               int missing = 0;
-                                               for (FileExplorerItem item : 
fileDao.get()) {
-                                                       if (!item.isDeleted() 
&& item.getHash() != null && !new File(files, item.getHash()).exists()) {
-                                                               missing++;
-                                                       }
+                                               CleanupUnit back = 
CleanupHelper.getBackupUnit();
+                                               restSize -= back.getSizeTotal();
+                                               report.append("\t\tbackup: 
").append(OmFileHelper.getHumanSize(back.getSizeTotal())).append("\n");
+                                               if (cleanup) {
+                                                       back.cleanup();
                                                }
-                                               report.append("\t\tfiles: 
").append(OmFileHelper.getHumanSize(size)).append("\n");
-                                               report.append("\t\t\tinvalid: 
").append(OmFileHelper.getHumanSize(invalid)).append("\n");
-                                               report.append("\t\t\tdeleted: 
").append(OmFileHelper.getHumanSize(deleted)).append("\n");
-                                               report.append("\t\t\tmissing 
count: ").append(missing).append("\n");
+                                               //Files
+                                               FileExplorerItemDao fileDao = 
ctx.getBean(FileExplorerItemDao.class);
+                                               CleanupEntityUnit files = 
CleanupHelper.getFileUnit(fileDao);
+                                               restSize -= 
files.getSizeTotal();
+                                               report.append("\t\tfiles: 
").append(files.getHumanTotal()).append("\n");
+                                               report.append("\t\t\tinvalid: 
").append(files.getHumanInvalid()).append("\n");
+                                               report.append("\t\t\tdeleted: 
").append(files.getHumanDeleted()).append("\n");
+                                               report.append("\t\t\tmissing 
count: ").append(files.getMissing()).append("\n");
                                                report.append("\t\trest: 
").append(OmFileHelper.getHumanSize(restSize)).append("\n");
+                                               if (cleanup) {
+                                                       files.cleanup();
+                                               }
                                        }
                                        { //STREAMS
-                                               File streamsDir = 
OmFileHelper.getStreamsDir();
+                                               RecordingDao recordDao = 
getApplicationContext(ctxName).getBean(RecordingDao.class);
+                                               CleanupEntityUnit rec = 
CleanupHelper.getRecUnit(recordDao);
                                                File hibernateDir = 
OmFileHelper.getStreamsHibernateDir();
-                                               if (cleanup) {
-                                                       String hiberPath = 
hibernateDir.getCanonicalPath();
-                                                       for (File f : 
streamsDir.listFiles()) {
-                                                               if 
(!f.getCanonicalPath().equals(hiberPath)) {
-                                                                       
FileHelper.removeRec(f);
-                                                               }
-                                                       }
-                                               }
-                                               long sectionSize = 
OmFileHelper.getSize(streamsDir);
-                                               report.append("Recordings 
allocates: ").append(OmFileHelper.getHumanSize(sectionSize)).append("\n");
+                                               report.append("Recordings 
allocates: ").append(rec.getHumanTotal()).append("\n");
                                                long size = 
OmFileHelper.getSize(hibernateDir);
-                                               long restSize = sectionSize - 
size;
-                                               RecordingDao recordDao = 
getApplicationContext(ctxName).getBean(RecordingDao.class);
-                                               long[] params = {0, 0}; // [0] 
== deleted [1] == missing
-                                               for (Recording rec : 
recordDao.get()) {
-                                                       
checkRecordingFile(hibernateDir, rec.getHash(), rec.isDeleted(), params, 
cleanup);
-                                                       
checkRecordingFile(hibernateDir, rec.getAlternateDownload(), rec.isDeleted(), 
params, cleanup);
-                                                       
checkRecordingFile(hibernateDir, rec.getPreviewImage(), rec.isDeleted(), 
params, cleanup);
-                                               }
-                                               long invalid = 0;
-                                               for (File f : 
hibernateDir.listFiles()) {
-                                                       if (f.isFile() && 
f.getName().endsWith(".flv")) {
-                                                               Recording rec = 
recordDao.getByHash(f.getName());
-                                                               if (rec == 
null) {
-                                                                       
cleanUpFile(invalid, cleanup, f);
-                                                                       String 
name = f.getName().substring(0, f.getName().length() - 5);
-                                                                       
cleanUpFile(invalid, cleanup, new File(hibernateDir, name + ".avi"));
-                                                                       
cleanUpFile(invalid, cleanup, new File(hibernateDir, name + ".jpg"));
-                                                                       
cleanUpFile(invalid, cleanup, new File(hibernateDir, name + ".flv.meta"));
-                                                               }
-                                                       }
-                                               }
+                                               long restSize = 
rec.getSizeTotal() - size;
                                                report.append("\t\tfinal: 
").append(OmFileHelper.getHumanSize(size)).append("\n");
-                                               report.append("\t\t\tinvalid: 
").append(OmFileHelper.getHumanSize(invalid)).append("\n");
-                                               report.append("\t\t\tdeleted: 
").append(OmFileHelper.getHumanSize(params[0])).append("\n");
-                                               report.append("\t\t\tmissing 
count: ").append(params[1]).append("\n");
+                                               report.append("\t\t\tinvalid: 
").append(rec.getHumanInvalid()).append("\n");
+                                               report.append("\t\t\tdeleted: 
").append(rec.getHumanDeleted()).append("\n");
+                                               report.append("\t\t\tmissing 
count: ").append(rec.getMissing()).append("\n");
                                                report.append("\t\trest: 
").append(OmFileHelper.getHumanSize(restSize)).append("\n");
+                                               if (cleanup) {
+                                                       rec.cleanup();
+                                               }
                                        }
                                        System.out.println(report);
                                } catch (Exception e) {
@@ -446,32 +405,6 @@ public class Admin {
                System.exit(0);
        }
        
-       private static long cleanUpFile(long invalid, boolean cleanup, File f) {
-               if (f.exists()) {
-                       if (cleanup) {
-                               FileHelper.removeRec(f);
-                       } else {
-                               invalid += f.length();
-                       }
-               }
-               return invalid;
-       }
-       private static void checkRecordingFile(File hibernateDir, String name, 
boolean deleted, long[] params, boolean cleanup) {
-               File flv = name != null ? new File(hibernateDir, name) : null;
-               if (flv != null) {
-                       if (flv.exists() && flv.isFile()) {
-                               if (deleted) {
-                                       params[0] += flv.length();
-                                       if (cleanup) {
-                                               FileHelper.removeRec(flv);
-                                       }
-                               }
-                       } else {
-                               params[1]++;
-                       }
-               }
-       }
-       
        private void checkAdminDetails(String ctxName) throws Exception {
                cfg.username = cmdl.getOptionValue("user");
                cfg.email = cmdl.getOptionValue("email");

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java
 Wed Apr  6 09:39:48 2016
@@ -19,12 +19,15 @@
 package org.apache.openmeetings.cli;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.commons.transaction.util.FileHelper;
 import org.apache.openmeetings.util.OmFileHelper;
 
 public abstract class CleanupEntityUnit extends CleanupUnit {
+       private static final long serialVersionUID = 1L;
        protected List<File> invalid = new ArrayList<>();
        protected List<File> deleted = new ArrayList<>();
        private long sizeInvalid = 0;
@@ -42,6 +45,16 @@ public abstract class CleanupEntityUnit
                }
        }
        
+       @Override
+       public void cleanup() throws IOException {
+               for (File i : invalid) {
+                       FileHelper.removeRec(i);
+               }
+               for (File i : deleted) {
+                       FileHelper.removeRec(i);
+               }
+       }
+       
        public abstract void fill();
 
        public long getSizeInvalid() {

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
 Wed Apr  6 09:39:48 2016
@@ -18,37 +18,36 @@
  */
 package org.apache.openmeetings.cli;
 
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.recordingFileName;
+
 import java.io.File;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.util.List;
 
 import org.apache.commons.transaction.util.FileHelper;
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.util.OmFileHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
 
 public class CleanupHelper {
+       private static final Logger log = 
Red5LoggerFactory.getLogger(CleanupHelper.class);
+       
        public static CleanupUnit getTempUnit() {
-               return new CleanupUnit(OmFileHelper.getUploadTempDir()) {
-                       @Override
-                       public void cleanup() {
-                               for (File f : getParent().listFiles()) {
-                                       FileHelper.removeRec(f);
-                               }
-                       }
-               };
+               return new CleanupUnit(OmFileHelper.getUploadTempDir());
        }
 
        public static CleanupEntityUnit getProfileUnit(final UserDao udao) {
                return new 
CleanupEntityUnit(OmFileHelper.getUploadProfilesDir()) {
-                       @Override
-                       public void cleanup() {
-                               for (File i : invalid) {
-                                       FileHelper.removeRec(i);
-                               }
-                               for (File i : deleted) {
-                                       FileHelper.removeRec(i);
-                               }
-                       }
-                       
+                       private static final long serialVersionUID = 1L;
+
                        @Override
                        public void fill() {
                                for (File profile : getParent().listFiles()) {
@@ -67,6 +66,99 @@ public class CleanupHelper {
                                }
                        }
                };
+       }
+
+       public static CleanupUnit getImportUnit() {
+               return new CleanupUnit(OmFileHelper.getUploadImportDir());
+       }
+
+       public static CleanupUnit getBackupUnit() {
+               return new CleanupUnit(OmFileHelper.getUploadBackupDir());
+       }
+
+       public static CleanupEntityUnit getFileUnit(final FileExplorerItemDao 
fileDao) {
+               return new CleanupEntityUnit(OmFileHelper.getUploadFilesDir()) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       public void fill() {
+                               for (File f : getParent().listFiles()) {
+                                       FileExplorerItem item = 
fileDao.getByHash(f.getName()); // TODO probable extension should be stripped
+                                       if (item == null) {
+                                               invalid.add(f);
+                                       } else if (item.isDeleted()) {
+                                               deleted.add(f);
+                                       }
+                               }
+                               //TODO WML_DIR should also be checked
+                               for (FileExplorerItem item : fileDao.get()) {
+                                       if (!item.isDeleted() && item.getHash() 
!= null && !new File(getParent(), item.getHash()).exists()) {
+                                               missing++;
+                                       }
+                               }
+                       }
+               };
+       }
+
+       public static CleanupEntityUnit getRecUnit(final RecordingDao 
recordDao) {
+               return new CleanupEntityUnit(OmFileHelper.getStreamsDir()) {
+                       private static final long serialVersionUID = 1L;
+                       private File hibernateDir;
+
+                       @Override
+                       public void cleanup() throws IOException {
+                               String hiberPath = 
hibernateDir.getCanonicalPath();
+                               for (File f : getParent().listFiles()) {
+                                       if 
(!f.getCanonicalPath().equals(hiberPath)) {
+                                               FileHelper.removeRec(f);
+                                       }
+                               }
+                               super.cleanup();
+                       }
+                       
+                       @Override
+                       public void fill() {
+                               hibernateDir = 
OmFileHelper.getStreamsHibernateDir();
+                               for (File f : hibernateDir.listFiles(new 
FilenameFilter() {
+                                       @Override
+                                       public boolean accept(File dir, String 
name) {
+                                               return 
name.startsWith(recordingFileName) && name.endsWith(FLV_EXTENSION);
+                                       }
+                               })) {
+                                       if (!f.isFile()) {
+                                               log.warn("Recording found is 
not a file: " + f);
+                                               continue;
+                                       }
+                                       Long id = 
Long.valueOf(f.getName().substring(recordingFileName.length(), 
f.getName().length() - FLV_EXTENSION.length()));
+                                       Recording item = recordDao.get(id);
+                                       if (item == null) {
+                                               add(invalid, id);
+                                       } else if (item.isDeleted()) {
+                                               add(deleted, id);
+                                       }
+                               }
+                               for (Recording item : recordDao.get()) {
+                                       if (!item.isDeleted() && item.getHash() 
!= null && list(item.getId()).length == 0) {
+                                               missing++;
+                                       }
+                               }
+                       }
+                       
+                       private File[] list(final Long id) {
+                               return hibernateDir.listFiles(new 
FilenameFilter() {
+                                       @Override
+                                       public boolean accept(File dir, String 
name) {
+                                               return 
name.startsWith(recordingFileName + id);
+                                       }
+                               });
+                       }
+                       
+                       private void add(List<File> list, final Long id) {
+                               for (File f : list(id)) {
+                                       list.add(f);
+                               }
+                       }
+               };
        }
 
        private static long getUserIdByProfile(String name) {

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java
 Wed Apr  6 09:39:48 2016
@@ -19,10 +19,14 @@
 package org.apache.openmeetings.cli;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.Serializable;
 
+import org.apache.commons.transaction.util.FileHelper;
 import org.apache.openmeetings.util.OmFileHelper;
 
-public abstract class CleanupUnit {
+public class CleanupUnit implements Serializable {
+       private static final long serialVersionUID = 1L;
        private final File parent;
        private final long sizeTotal;
        
@@ -34,7 +38,11 @@ public abstract class CleanupUnit {
                sizeTotal = OmFileHelper.getSize(parent);
        }
        
-       public abstract void cleanup();
+       public void cleanup() throws IOException {
+               for (File f : getParent().listFiles()) {
+                       FileHelper.removeRec(f);
+               }
+       }
        
        public File getParent() {
                return parent;

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
 Wed Apr  6 09:39:48 2016
@@ -66,11 +66,13 @@ public class OmFileHelper {
        public static final String libraryFileName = "library.xml";
        public static final String defaultProfileImageName = "profile_pic.jpg";
        public static final String profileFileName = "profile";
+       public static final String recordingFileName = "flvRecording_";
        public static final String profileImagePrefix = "_profile_";
        public static final String chatImagePrefix = "_chat_";
        public static final String bigImagePrefix = "_big_";
        public static final String thumbImagePrefix = "_thumb_";
        public static final String dashboardFile = "dashboard.xml";
+       public static final String FLV_EXTENSION = ".flv";
        public static final String MP4_EXTENSION = ".mp4";
        public static final String OGG_EXTENSION = ".ogg";
        public static final String JPG_EXTENTION = ".jpg";
@@ -173,7 +175,7 @@ public class OmFileHelper {
        }
        
        public static File getStreamsDir() {
-               return new File(OmFileHelper.OM_HOME, STREAMS_DIR);
+               return getDir(OmFileHelper.OM_HOME, STREAMS_DIR);
        }
        
        public static File getStreamsHibernateDir() {
@@ -211,7 +213,7 @@ public class OmFileHelper {
        }
        
        public static File getRecordingMetaData(Long roomId, String name) {
-               return new File(getStreamsSubDir(roomId), name + ".flv");
+               return new File(getStreamsSubDir(roomId), name + FLV_EXTENSION);
        }
        
        public static File getLanguagesDir() {

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
 Wed Apr  6 09:39:48 2016
@@ -266,12 +266,10 @@ public class OmUrlFragment implements Se
                                break;
                        case room:
                                try {
-                                       Long roomId = Long.parseLong(type);
-                                       if (roomId != null) {
-                                               Room r = 
getBean(RoomDao.class).get(roomId);
-                                               if (r != null) {
-                                                       basePanel = new 
RoomPanel(CHILD_ID, roomId);
-                                               }
+                                       Long roomId = Long.valueOf(type);
+                                       Room r = 
getBean(RoomDao.class).get(roomId);
+                                       if (r != null) {
+                                               basePanel = new 
RoomPanel(CHILD_ID, roomId);
                                        }
                                } catch(NumberFormatException ne) {
                                        //skip it, bad roomid passed

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=1737955&r1=1737954&r2=1737955&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
 Wed Apr  6 09:39:48 2016
@@ -21,6 +21,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.MP4_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.OGG_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.getRecording;
 import static org.apache.openmeetings.util.OmFileHelper.getRecordingMetaData;
 import static org.apache.openmeetings.util.OmFileHelper.getStreamsSubDir;
@@ -245,7 +246,7 @@ public abstract class BaseConverter {
                                
                                metaData = waitForTheStream(metaId);
        
-                               File inputFlvFile = new File(streamFolder, 
metaData.getStreamName() + ".flv");
+                               File inputFlvFile = new File(streamFolder, 
metaData.getStreamName() + FLV_EXTENSION);
        
                                File outputWav = new File(streamFolder, 
metaData.getStreamName() + "_WAVE.wav");
        

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=1737955&r1=1737954&r2=1737955&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
 Wed Apr  6 09:39:48 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.core.converter;
 
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
@@ -77,7 +78,7 @@ public class FlvExplorerConverter extend
                List<ConverterProcessResult> returnLog = new 
ArrayList<ConverterProcessResult>();
                try {
                        String name = "UPLOADFLV_" + fileExplorerItem.getId();
-                       File outputFullFlv = new File(getStreamsHibernateDir(), 
name + ".flv");
+                       File outputFullFlv = new File(getStreamsHibernateDir(), 
name + FLV_EXTENSION);
 
                        fileExplorerItem.setType(Type.Video);
 

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=1737955&r1=1737954&r2=1737955&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
 Wed Apr  6 09:39:48 2016
@@ -18,8 +18,10 @@
  */
 package org.apache.openmeetings.core.converter;
 
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
 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;
@@ -191,7 +193,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");
+                                                       File podF = new 
File(streamFolder, meta.getStreamName() + "_pod_" + pod + FLV_EXTENSION);
                                                        String podP = 
podF.getCanonicalPath();
                                                        String[] argsPod = new 
String[] { getPathToFFMPEG(), "-y"//
                                                                        , "-i", 
podPB //
@@ -252,7 +254,7 @@ public class InterviewConverter extends
                        args.add("-qmax"); args.add("1");
                        args.add("-qmin"); args.add("1");
                        args.add("-y");
-                       String hashFileFullNameFlv = "flvRecording_" + 
recording.getId() + ".flv";
+                       String hashFileFullNameFlv = recordingFileName + 
recording.getId() + FLV_EXTENSION;
                        String outputFullFlv = new File(streamFolderGeneral, 
hashFileFullNameFlv).getCanonicalPath();
                        args.add(outputFullFlv);
                        // TODO additional flag to 'quiet' output should be 
added
@@ -267,7 +269,7 @@ public class InterviewConverter extends
                        // ffmpeg -i movie.flv -vcodec mjpeg -vframes 1 -an -f 
rawvideo -s
                        // 320x240 movie.jpg
 
-                       String hashFileFullNameJPEG = "flvRecording_" + 
recording.getId() + ".jpg";
+                       String hashFileFullNameJPEG = recordingFileName + 
recording.getId() + ".jpg";
                        String outPutJpeg = new File(streamFolderGeneral, 
hashFileFullNameJPEG).getCanonicalPath();
                        deleteFileIfExists(outPutJpeg);
 
@@ -284,7 +286,7 @@ public class InterviewConverter extends
 
                        
returnLog.add(ProcessHelper.executeScript("generateFullFLV", argv_previewFLV));
 
-                       String alternateDownloadName = "flvRecording_" + 
recording.getId() + ".avi";
+                       String alternateDownloadName = recordingFileName + 
recording.getId() + ".avi";
                        String alternateDownloadFullName = new 
File(streamFolderGeneral, alternateDownloadName).getCanonicalPath();
                        deleteFileIfExists(alternateDownloadFullName);
 

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=1737955&r1=1737954&r2=1737955&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
 Wed Apr  6 09:39:48 2016
@@ -18,7 +18,9 @@
  */
 package org.apache.openmeetings.core.converter;
 
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
 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;
@@ -52,18 +54,17 @@ public class RecordingConverter extends
 
        @Override
        public void startConversion(Long recordingId) {
-               Recording recording = null;
+               Recording recording = recordingDao.get(recordingId);
+               if (recording == null) {
+                       log.warn("Conversion is NOT started. Recording with ID 
{} is not found", recordingId);
+                       return;
+               }
                try {
                        if (isUseOldStyleFfmpegMap()) {
                                FFMPEG_MAP_PARAM = ".";
                        }
 
-                       String finalNamePrefix = "flvRecording_" + recordingId;
-                       recording = recordingDao.get(recordingId);
-                       if (recording == null) {
-                               log.warn("Conversion is NOT started. Recording 
with ID {} is not found", recordingId);
-                               return;
-                       }
+                       String finalNamePrefix = recordingFileName + 
recordingId;
                        log.debug("recording " + recording.getId());
 
                        List<ConverterProcessResult> returnLog = new 
ArrayList<ConverterProcessResult>();
@@ -112,9 +113,9 @@ public class RecordingConverter extends
 
                        // Merge Audio with Video / Calculate resulting FLV
 
-                       String inputScreenFullFlv = new File(streamFolder, 
screenMetaData.getStreamName() + ".flv").getCanonicalPath();
+                       String inputScreenFullFlv = new File(streamFolder, 
screenMetaData.getStreamName() + FLV_EXTENSION).getCanonicalPath();
 
-                       File outputFullFlv = new File(getStreamsHibernateDir(), 
finalNamePrefix + ".flv");
+                       File outputFullFlv = new File(getStreamsHibernateDir(), 
finalNamePrefix + FLV_EXTENSION);
 
                        // 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

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=1737955&r1=1737954&r2=1737955&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
 Wed Apr  6 09:39:48 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.core.data.file;
 
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
 import static org.apache.openmeetings.util.OmFileHelper.getUploadFilesDir;
 import static org.apache.openmeetings.util.OmFileHelper.getUploadTempFilesDir;
 import static org.apache.openmeetings.util.OmFileHelper.thumbImagePrefix;
@@ -103,7 +104,7 @@ public class FileProcessor {
                        hash = newName + ".jpg";
                        f.setType(Type.Image);
                } else if (isVideo) {
-                       hash = newName + ".flv";
+                       hash = newName + FLV_EXTENSION;
                        f.setType(Type.Video);
                } else if (isChart) {
                        f.setType(Type.PollChart);

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=1737955&r1=1737954&r2=1737955&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
 Wed Apr  6 09:39:48 2016
@@ -18,6 +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.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
@@ -97,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");
+               file = new File(OmFileHelper.getStreamsSubDir(scope.getName()), 
streamName + FLV_EXTENSION);
 
                IStreamableFileFactory factory = (IStreamableFileFactory) 
ScopeUtils.getScopeService(scope, IStreamableFileFactory.class,
                                StreamableFileFactory.class);

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=1737955&r1=1737954&r2=1737955&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
 Wed Apr  6 09:39:48 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.core.remote;
 
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
@@ -253,11 +254,11 @@ public class ConferenceLibrary implement
                                Long room_id = currentClient.getRoomId();
 
                                if (room_id != null) {
-                                       File outputFullFlvFile = new 
File(OmFileHelper.getStreamsHibernateDir(), "UPLOADFLV_" + flvFileExplorerId + 
".flv");
+                                       File outputFullFlvFile = new 
File(OmFileHelper.getStreamsHibernateDir(), "UPLOADFLV_" + flvFileExplorerId + 
FLV_EXTENSION);
 
                                        File targetFolder = 
OmFileHelper.getStreamsSubDir(room_id);
 
-                                       File targetFullFlvFile = new 
File(targetFolder, "UPLOADFLV_" + flvFileExplorerId + ".flv");
+                                       File targetFullFlvFile = new 
File(targetFolder, "UPLOADFLV_" + flvFileExplorerId + FLV_EXTENSION);
                                        if (outputFullFlvFile.exists() && 
!targetFullFlvFile.exists()) {
                                                
FileHelper.copy(outputFullFlvFile, targetFullFlvFile);
                                        }

Modified: 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
 Wed Apr  6 09:39:48 2016
@@ -57,8 +57,6 @@ import org.apache.openmeetings.db.dao.ba
 import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.file.FileExplorerItem;
-import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.installation.ImportInitvalues;
 import org.apache.openmeetings.installation.InstallationConfig;
 import org.apache.openmeetings.installation.InstallationDocumentHandler;
@@ -320,6 +318,9 @@ public class Admin {
                                        }
                                        StringBuilder report = new 
StringBuilder();
                                        CleanupUnit temp = 
CleanupHelper.getTempUnit();
+                                       if (cleanup) {
+                                               temp.cleanup();
+                                       }
                                        report.append("Temporary files 
allocates: ").append(temp.getHumanTotal()).append("\n");
                                        { //UPLOAD
                                                long sectionSize = 
OmFileHelper.getSize(OmFileHelper.getUploadDir());
@@ -327,97 +328,55 @@ public class Admin {
                                                //Profiles
                                                ClassPathXmlApplicationContext 
ctx = getApplicationContext(ctxName);
                                                UserDao udao = 
ctx.getBean(UserDao.class);
-                                               CleanupEntityUnit profileUnit = 
CleanupHelper.getProfileUnit(udao);
-                                               long restSize = sectionSize - 
profileUnit.getSizeTotal();
-                                               report.append("\t\tprofiles: 
").append(profileUnit.getHumanTotal()).append("\n");
-                                               report.append("\t\t\tinvalid: 
").append(profileUnit.getHumanInvalid()).append("\n");
-                                               report.append("\t\t\tdeleted: 
").append(profileUnit.getHumanDeleted()).append("\n");
-                                               report.append("\t\t\tmissing 
count: ").append(profileUnit.getMissing()).append("\n");
+                                               CleanupEntityUnit profile = 
CleanupHelper.getProfileUnit(udao);
+                                               long restSize = sectionSize - 
profile.getSizeTotal();
+                                               report.append("\t\tprofiles: 
").append(profile.getHumanTotal()).append("\n");
+                                               report.append("\t\t\tinvalid: 
").append(profile.getHumanInvalid()).append("\n");
+                                               report.append("\t\t\tdeleted: 
").append(profile.getHumanDeleted()).append("\n");
+                                               report.append("\t\t\tmissing 
count: ").append(profile.getMissing()).append("\n");
                                                if (cleanup) {
-                                                       profileUnit.cleanup();
+                                                       profile.cleanup();
                                                }
-                                               long size = 
OmFileHelper.getSize(OmFileHelper.getUploadImportDir());
-                                               restSize -= size;
-                                               report.append("\t\timport: 
").append(OmFileHelper.getHumanSize(size)).append("\n");
-                                               size = 
OmFileHelper.getSize(OmFileHelper.getUploadBackupDir());
-                                               restSize -= size;
-                                               report.append("\t\tbackup: 
").append(OmFileHelper.getHumanSize(size)).append("\n");
-                                               //Files
-                                               File files = 
OmFileHelper.getUploadFilesDir();
-                                               size = 
OmFileHelper.getSize(files);
-                                               restSize -= size;
-                                               FileExplorerItemDao fileDao = 
ctx.getBean(FileExplorerItemDao.class);
-                                               long invalid = 0;
-                                               long deleted = 0;
-                                               for (File f : 
files.listFiles()) {
-                                                       long fSize = 
OmFileHelper.getSize(f);
-                                                       FileExplorerItem item = 
fileDao.getByHash(f.getName());
-                                                       if (item == null) {
-                                                               if (cleanup) {
-                                                                       
FileHelper.removeRec(f);
-                                                               } else {
-                                                                       invalid 
+= fSize;
-                                                               }
-                                                       } else if 
(item.isDeleted()) {
-                                                               if (cleanup) {
-                                                                       
FileHelper.removeRec(f);
-                                                               } else {
-                                                                       deleted 
+= fSize;
-                                                               }
-                                                       }
+                                               CleanupUnit imp = 
CleanupHelper.getImportUnit();
+                                               restSize -= imp.getSizeTotal();
+                                               report.append("\t\timport: 
").append(OmFileHelper.getHumanSize(imp.getSizeTotal())).append("\n");
+                                               if (cleanup) {
+                                                       imp.cleanup();
                                                }
-                                               int missing = 0;
-                                               for (FileExplorerItem item : 
fileDao.get()) {
-                                                       if (!item.isDeleted() 
&& item.getHash() != null && !new File(files, item.getHash()).exists()) {
-                                                               missing++;
-                                                       }
+                                               CleanupUnit back = 
CleanupHelper.getBackupUnit();
+                                               restSize -= back.getSizeTotal();
+                                               report.append("\t\tbackup: 
").append(OmFileHelper.getHumanSize(back.getSizeTotal())).append("\n");
+                                               if (cleanup) {
+                                                       back.cleanup();
                                                }
-                                               report.append("\t\tfiles: 
").append(OmFileHelper.getHumanSize(size)).append("\n");
-                                               report.append("\t\t\tinvalid: 
").append(OmFileHelper.getHumanSize(invalid)).append("\n");
-                                               report.append("\t\t\tdeleted: 
").append(OmFileHelper.getHumanSize(deleted)).append("\n");
-                                               report.append("\t\t\tmissing 
count: ").append(missing).append("\n");
+                                               //Files
+                                               FileExplorerItemDao fileDao = 
ctx.getBean(FileExplorerItemDao.class);
+                                               CleanupEntityUnit files = 
CleanupHelper.getFileUnit(fileDao);
+                                               restSize -= 
files.getSizeTotal();
+                                               report.append("\t\tfiles: 
").append(files.getHumanTotal()).append("\n");
+                                               report.append("\t\t\tinvalid: 
").append(files.getHumanInvalid()).append("\n");
+                                               report.append("\t\t\tdeleted: 
").append(files.getHumanDeleted()).append("\n");
+                                               report.append("\t\t\tmissing 
count: ").append(files.getMissing()).append("\n");
                                                report.append("\t\trest: 
").append(OmFileHelper.getHumanSize(restSize)).append("\n");
+                                               if (cleanup) {
+                                                       files.cleanup();
+                                               }
                                        }
                                        { //STREAMS
-                                               File streamsDir = 
OmFileHelper.getStreamsDir();
+                                               RecordingDao recordDao = 
getApplicationContext(ctxName).getBean(RecordingDao.class);
+                                               CleanupEntityUnit rec = 
CleanupHelper.getRecUnit(recordDao);
                                                File hibernateDir = 
OmFileHelper.getStreamsHibernateDir();
-                                               if (cleanup) {
-                                                       String hiberPath = 
hibernateDir.getCanonicalPath();
-                                                       for (File f : 
streamsDir.listFiles()) {
-                                                               if 
(!f.getCanonicalPath().equals(hiberPath)) {
-                                                                       
FileHelper.removeRec(f);
-                                                               }
-                                                       }
-                                               }
-                                               long sectionSize = 
OmFileHelper.getSize(streamsDir);
-                                               report.append("Recordings 
allocates: ").append(OmFileHelper.getHumanSize(sectionSize)).append("\n");
+                                               report.append("Recordings 
allocates: ").append(rec.getHumanTotal()).append("\n");
                                                long size = 
OmFileHelper.getSize(hibernateDir);
-                                               long restSize = sectionSize - 
size;
-                                               RecordingDao recordDao = 
getApplicationContext(ctxName).getBean(RecordingDao.class);
-                                               long[] params = {0, 0}; // [0] 
== deleted [1] == missing
-                                               for (Recording rec : 
recordDao.get()) {
-                                                       
checkRecordingFile(hibernateDir, rec.getHash(), rec.isDeleted(), params, 
cleanup);
-                                                       
checkRecordingFile(hibernateDir, rec.getAlternateDownload(), rec.isDeleted(), 
params, cleanup);
-                                                       
checkRecordingFile(hibernateDir, rec.getPreviewImage(), rec.isDeleted(), 
params, cleanup);
-                                               }
-                                               long invalid = 0;
-                                               for (File f : 
hibernateDir.listFiles()) {
-                                                       if (f.isFile() && 
f.getName().endsWith(".flv")) {
-                                                               Recording rec = 
recordDao.getByHash(f.getName());
-                                                               if (rec == 
null) {
-                                                                       
cleanUpFile(invalid, cleanup, f);
-                                                                       String 
name = f.getName().substring(0, f.getName().length() - 5);
-                                                                       
cleanUpFile(invalid, cleanup, new File(hibernateDir, name + ".avi"));
-                                                                       
cleanUpFile(invalid, cleanup, new File(hibernateDir, name + ".jpg"));
-                                                                       
cleanUpFile(invalid, cleanup, new File(hibernateDir, name + ".flv.meta"));
-                                                               }
-                                                       }
-                                               }
+                                               long restSize = 
rec.getSizeTotal() - size;
                                                report.append("\t\tfinal: 
").append(OmFileHelper.getHumanSize(size)).append("\n");
-                                               report.append("\t\t\tinvalid: 
").append(OmFileHelper.getHumanSize(invalid)).append("\n");
-                                               report.append("\t\t\tdeleted: 
").append(OmFileHelper.getHumanSize(params[0])).append("\n");
-                                               report.append("\t\t\tmissing 
count: ").append(params[1]).append("\n");
+                                               report.append("\t\t\tinvalid: 
").append(rec.getHumanInvalid()).append("\n");
+                                               report.append("\t\t\tdeleted: 
").append(rec.getHumanDeleted()).append("\n");
+                                               report.append("\t\t\tmissing 
count: ").append(rec.getMissing()).append("\n");
                                                report.append("\t\trest: 
").append(OmFileHelper.getHumanSize(restSize)).append("\n");
+                                               if (cleanup) {
+                                                       rec.cleanup();
+                                               }
                                        }
                                        System.out.println(report);
                                } catch (Exception e) {
@@ -446,32 +405,6 @@ public class Admin {
                System.exit(0);
        }
        
-       private static long cleanUpFile(long invalid, boolean cleanup, File f) {
-               if (f.exists()) {
-                       if (cleanup) {
-                               FileHelper.removeRec(f);
-                       } else {
-                               invalid += f.length();
-                       }
-               }
-               return invalid;
-       }
-       private static void checkRecordingFile(File hibernateDir, String name, 
boolean deleted, long[] params, boolean cleanup) {
-               File flv = name != null ? new File(hibernateDir, name) : null;
-               if (flv != null) {
-                       if (flv.exists() && flv.isFile()) {
-                               if (deleted) {
-                                       params[0] += flv.length();
-                                       if (cleanup) {
-                                               FileHelper.removeRec(flv);
-                                       }
-                               }
-                       } else {
-                               params[1]++;
-                       }
-               }
-       }
-       
        private void checkAdminDetails(String ctxName) throws Exception {
                cfg.username = cmdl.getOptionValue("user");
                cfg.email = cmdl.getOptionValue("email");

Modified: 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupEntityUnit.java
 Wed Apr  6 09:39:48 2016
@@ -19,12 +19,15 @@
 package org.apache.openmeetings.cli;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.commons.transaction.util.FileHelper;
 import org.apache.openmeetings.util.OmFileHelper;
 
 public abstract class CleanupEntityUnit extends CleanupUnit {
+       private static final long serialVersionUID = 1L;
        protected List<File> invalid = new ArrayList<>();
        protected List<File> deleted = new ArrayList<>();
        private long sizeInvalid = 0;
@@ -42,6 +45,16 @@ public abstract class CleanupEntityUnit
                }
        }
        
+       @Override
+       public void cleanup() throws IOException {
+               for (File i : invalid) {
+                       FileHelper.removeRec(i);
+               }
+               for (File i : deleted) {
+                       FileHelper.removeRec(i);
+               }
+       }
+       
        public abstract void fill();
 
        public long getSizeInvalid() {

Modified: 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
 Wed Apr  6 09:39:48 2016
@@ -18,37 +18,36 @@
  */
 package org.apache.openmeetings.cli;
 
+import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.recordingFileName;
+
 import java.io.File;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.util.List;
 
 import org.apache.commons.transaction.util.FileHelper;
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.util.OmFileHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
 
 public class CleanupHelper {
+       private static final Logger log = 
Red5LoggerFactory.getLogger(CleanupHelper.class);
+       
        public static CleanupUnit getTempUnit() {
-               return new CleanupUnit(OmFileHelper.getUploadTempDir()) {
-                       @Override
-                       public void cleanup() {
-                               for (File f : getParent().listFiles()) {
-                                       FileHelper.removeRec(f);
-                               }
-                       }
-               };
+               return new CleanupUnit(OmFileHelper.getUploadTempDir());
        }
 
        public static CleanupEntityUnit getProfileUnit(final UserDao udao) {
                return new 
CleanupEntityUnit(OmFileHelper.getUploadProfilesDir()) {
-                       @Override
-                       public void cleanup() {
-                               for (File i : invalid) {
-                                       FileHelper.removeRec(i);
-                               }
-                               for (File i : deleted) {
-                                       FileHelper.removeRec(i);
-                               }
-                       }
-                       
+                       private static final long serialVersionUID = 1L;
+
                        @Override
                        public void fill() {
                                for (File profile : getParent().listFiles()) {
@@ -67,6 +66,99 @@ public class CleanupHelper {
                                }
                        }
                };
+       }
+
+       public static CleanupUnit getImportUnit() {
+               return new CleanupUnit(OmFileHelper.getUploadImportDir());
+       }
+
+       public static CleanupUnit getBackupUnit() {
+               return new CleanupUnit(OmFileHelper.getUploadBackupDir());
+       }
+
+       public static CleanupEntityUnit getFileUnit(final FileExplorerItemDao 
fileDao) {
+               return new CleanupEntityUnit(OmFileHelper.getUploadFilesDir()) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       public void fill() {
+                               for (File f : getParent().listFiles()) {
+                                       FileExplorerItem item = 
fileDao.getByHash(f.getName()); // TODO probable extension should be stripped
+                                       if (item == null) {
+                                               invalid.add(f);
+                                       } else if (item.isDeleted()) {
+                                               deleted.add(f);
+                                       }
+                               }
+                               //TODO WML_DIR should also be checked
+                               for (FileExplorerItem item : fileDao.get()) {
+                                       if (!item.isDeleted() && item.getHash() 
!= null && !new File(getParent(), item.getHash()).exists()) {
+                                               missing++;
+                                       }
+                               }
+                       }
+               };
+       }
+
+       public static CleanupEntityUnit getRecUnit(final RecordingDao 
recordDao) {
+               return new CleanupEntityUnit(OmFileHelper.getStreamsDir()) {
+                       private static final long serialVersionUID = 1L;
+                       private File hibernateDir;
+
+                       @Override
+                       public void cleanup() throws IOException {
+                               String hiberPath = 
hibernateDir.getCanonicalPath();
+                               for (File f : getParent().listFiles()) {
+                                       if 
(!f.getCanonicalPath().equals(hiberPath)) {
+                                               FileHelper.removeRec(f);
+                                       }
+                               }
+                               super.cleanup();
+                       }
+                       
+                       @Override
+                       public void fill() {
+                               hibernateDir = 
OmFileHelper.getStreamsHibernateDir();
+                               for (File f : hibernateDir.listFiles(new 
FilenameFilter() {
+                                       @Override
+                                       public boolean accept(File dir, String 
name) {
+                                               return 
name.startsWith(recordingFileName) && name.endsWith(FLV_EXTENSION);
+                                       }
+                               })) {
+                                       if (!f.isFile()) {
+                                               log.warn("Recording found is 
not a file: " + f);
+                                               continue;
+                                       }
+                                       Long id = 
Long.valueOf(f.getName().substring(recordingFileName.length(), 
f.getName().length() - FLV_EXTENSION.length()));
+                                       Recording item = recordDao.get(id);
+                                       if (item == null) {
+                                               add(invalid, id);
+                                       } else if (item.isDeleted()) {
+                                               add(deleted, id);
+                                       }
+                               }
+                               for (Recording item : recordDao.get()) {
+                                       if (!item.isDeleted() && item.getHash() 
!= null && list(item.getId()).length == 0) {
+                                               missing++;
+                                       }
+                               }
+                       }
+                       
+                       private File[] list(final Long id) {
+                               return hibernateDir.listFiles(new 
FilenameFilter() {
+                                       @Override
+                                       public boolean accept(File dir, String 
name) {
+                                               return 
name.startsWith(recordingFileName + id);
+                                       }
+                               });
+                       }
+                       
+                       private void add(List<File> list, final Long id) {
+                               for (File f : list(id)) {
+                                       list.add(f);
+                               }
+                       }
+               };
        }
 
        private static long getUserIdByProfile(String name) {

Modified: 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupUnit.java
 Wed Apr  6 09:39:48 2016
@@ -19,10 +19,14 @@
 package org.apache.openmeetings.cli;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.Serializable;
 
+import org.apache.commons.transaction.util.FileHelper;
 import org.apache.openmeetings.util.OmFileHelper;
 
-public abstract class CleanupUnit {
+public class CleanupUnit implements Serializable {
+       private static final long serialVersionUID = 1L;
        private final File parent;
        private final long sizeTotal;
        
@@ -34,7 +38,11 @@ public abstract class CleanupUnit {
                sizeTotal = OmFileHelper.getSize(parent);
        }
        
-       public abstract void cleanup();
+       public void cleanup() throws IOException {
+               for (File f : getParent().listFiles()) {
+                       FileHelper.removeRec(f);
+               }
+       }
        
        public File getParent() {
                return parent;

Modified: 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
 Wed Apr  6 09:39:48 2016
@@ -66,11 +66,13 @@ public class OmFileHelper {
        public static final String libraryFileName = "library.xml";
        public static final String defaultProfileImageName = "profile_pic.jpg";
        public static final String profileFileName = "profile";
+       public static final String recordingFileName = "flvRecording_";
        public static final String profileImagePrefix = "_profile_";
        public static final String chatImagePrefix = "_chat_";
        public static final String bigImagePrefix = "_big_";
        public static final String thumbImagePrefix = "_thumb_";
        public static final String dashboardFile = "dashboard.xml";
+       public static final String FLV_EXTENSION = ".flv";
        public static final String MP4_EXTENSION = ".mp4";
        public static final String OGG_EXTENSION = ".ogg";
        public static final String JPG_EXTENTION = ".jpg";
@@ -173,7 +175,7 @@ public class OmFileHelper {
        }
        
        public static File getStreamsDir() {
-               return new File(OmFileHelper.OM_HOME, STREAMS_DIR);
+               return getDir(OmFileHelper.OM_HOME, STREAMS_DIR);
        }
        
        public static File getStreamsHibernateDir() {
@@ -211,7 +213,7 @@ public class OmFileHelper {
        }
        
        public static File getRecordingMetaData(Long roomId, String name) {
-               return new File(getStreamsSubDir(roomId), name + ".flv");
+               return new File(getStreamsSubDir(roomId), name + FLV_EXTENSION);
        }
        
        public static File getLanguagesDir() {

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java?rev=1737955&r1=1737954&r2=1737955&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
 Wed Apr  6 09:39:48 2016
@@ -266,12 +266,10 @@ public class OmUrlFragment implements Se
                                break;
                        case room:
                                try {
-                                       Long roomId = Long.parseLong(type);
-                                       if (roomId != null) {
-                                               Room r = 
getBean(RoomDao.class).get(roomId);
-                                               if (r != null) {
-                                                       basePanel = new 
RoomPanel(CHILD_ID, r);
-                                               }
+                                       Long roomId = Long.valueOf(type);
+                                       Room r = 
getBean(RoomDao.class).get(roomId);
+                                       if (r != null) {
+                                               basePanel = new 
RoomPanel(CHILD_ID, r);
                                        }
                                } catch(NumberFormatException ne) {
                                        //skip it, bad roomid passed


Reply via email to