You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2016/09/11 04:50:09 UTC
svn commit: r1760224 [4/6] - in /openmeetings/application:
branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/
branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/
branches/3.2.x/open...
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java Sun Sep 11 04:50:07 2016
@@ -20,10 +20,7 @@ package org.apache.openmeetings.core.con
import static org.apache.openmeetings.core.data.record.listener.async.BaseStreamWriter.TIME_TO_WAIT_FOR_FRAME;
import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_FLV;
-import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
-import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
-import static org.apache.openmeetings.util.OmFileHelper.OGG_EXTENSION;
-import static org.apache.openmeetings.util.OmFileHelper.getRecording;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_OGG;
import static org.apache.openmeetings.util.OmFileHelper.getRecordingMetaData;
import static org.apache.openmeetings.util.OmFileHelper.getStreamsSubDir;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
@@ -42,6 +39,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.record.RecordingMetaData;
import org.apache.openmeetings.db.entity.record.RecordingMetaData.Status;
import org.apache.openmeetings.db.entity.record.RecordingMetaDelta;
+import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.util.process.ConverterProcessResult;
import org.apache.openmeetings.util.process.ProcessHelper;
import org.red5.io.flv.impl.FLVWriter;
@@ -114,31 +112,29 @@ public abstract class BaseConverter {
r.setDuration(formatMillis(diff(r.getRecordEnd(), r.getRecordStart())));
}
- protected void deleteFileIfExists(String name) {
- File f = new File(name);
-
+ protected void deleteFileIfExists(File f) {
if (f.exists()) {
f.delete();
}
}
- protected String[] mergeAudioToWaves(List<String> listOfFullWaveFiles, String outputFullWav) {
+ protected String[] mergeAudioToWaves(List<File> waveFiles, File wav) throws IOException {
List<String> argv = new ArrayList<String>();
argv.add(getPathToSoX());
argv.add("-m");
- for (String arg : listOfFullWaveFiles) {
- argv.add(arg);
+ for (File arg : waveFiles) {
+ argv.add(arg.getCanonicalPath());
}
- argv.add(outputFullWav);
+ argv.add(wav.getCanonicalPath());
return argv.toArray(new String[0]);
}
protected void stripAudioFirstPass(Recording recording, List<ConverterProcessResult> returnLog,
- List<String> listOfFullWaveFiles, File streamFolder)
+ List<File> waveFiles, File streamFolder)
{
- stripAudioFirstPass(recording, returnLog, listOfFullWaveFiles, streamFolder
+ stripAudioFirstPass(recording, returnLog, waveFiles, streamFolder
, metaDataDao.getAudioMetaDataByRecording(recording.getId()));
}
@@ -229,7 +225,7 @@ public abstract class BaseConverter {
protected void stripAudioFirstPass(Recording recording,
List<ConverterProcessResult> returnLog,
- List<String> listOfFullWaveFiles, File streamFolder,
+ List<File> waveFiles, File streamFolder,
List<RecordingMetaData> metaDataList) {
try {
// Init variables
@@ -246,7 +242,7 @@ public abstract class BaseConverter {
metaData = waitForTheStream(metaId);
- File inputFlvFile = new File(streamFolder, metaData.getStreamName() + FLV_EXTENSION);
+ File inputFlvFile = new File(streamFolder, OmFileHelper.getName(metaData.getStreamName(), EXTENSION_FLV));
File outputWav = new File(streamFolder, metaData.getStreamName() + "_WAVE.wav");
@@ -328,7 +324,7 @@ public abstract class BaseConverter {
metaData.setFullWavAudioData(hashFileFullName);
// Finally add it to the row!
- listOfFullWaveFiles.add(outputFullWav.getCanonicalPath());
+ waveFiles.add(outputFullWav);
}
metaDataDao.update(metaData);
@@ -343,12 +339,11 @@ public abstract class BaseConverter {
if (!r.exists(EXTENSION_FLV)) {
return;
}
- File file = getRecording(r.getHash());
- String path = file.getCanonicalPath();
- String mp4path = path + MP4_EXTENSION;
+ File file = r.getFile(EXTENSION_FLV);
+ File mp4 = r.getFile();
String[] argv = new String[] {
getPathToFFMPEG(), "-y",
- "-i", path,
+ "-i", file.getCanonicalPath(),
"-c:v", "libx264",
"-crf", "24",
"-pix_fmt", "yuv420p",
@@ -357,16 +352,16 @@ public abstract class BaseConverter {
"-c:a", "libfaac",
"-c:a", "libfdk_aac", "-b:a", "32k", //FIXME add quality constants
"-s", r.getFlvWidth() + "x" + r.getFlvHeight(), //
- mp4path
+ mp4.getCanonicalPath()
};
returnLog.add(ProcessHelper.executeScript("generate MP4", argv));
argv = new String[] {
- getPathToFFMPEG(), "-y",
- "-i", mp4path,
- "-vcodec", "libtheora",
- "-acodec", "libvorbis",
- path + OGG_EXTENSION
+ getPathToFFMPEG(), "-y"
+ , "-i", mp4.getCanonicalPath()
+ , "-vcodec", "libtheora"
+ , "-acodec", "libvorbis"
+ , r.getFile(EXTENSION_OGG).getCanonicalPath()
};
returnLog.add(ProcessHelper.executeScript("generate OGG", argv));
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java Sun Sep 11 04:50:07 2016
@@ -18,10 +18,8 @@
*/
package org.apache.openmeetings.core.converter;
-import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
-import static org.apache.openmeetings.util.OmFileHelper.JPG_EXTENSION;
-import static org.apache.openmeetings.util.OmFileHelper.WB_VIDEO_FILE_PREFIX;
-import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import java.io.File;
@@ -31,7 +29,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
-import org.apache.openmeetings.db.dao.record.RecordingLogDao;
+import org.apache.openmeetings.db.dao.file.FileItemLogDao;
import org.apache.openmeetings.db.entity.file.FileExplorerItem;
import org.apache.openmeetings.db.entity.file.FileItem.Type;
import org.apache.openmeetings.util.process.ConverterProcessResult;
@@ -48,7 +46,7 @@ public class FlvExplorerConverter extend
@Autowired
private FileExplorerItemDao fileDao;
@Autowired
- private RecordingLogDao recordingLogDao;
+ private FileItemLogDao fileLogDao;
private static class FlvDimension {
public FlvDimension(int width, int height) {
@@ -59,69 +57,45 @@ public class FlvExplorerConverter extend
public int height = 0;
}
- public List<ConverterProcessResult> startConversion(Long fileId, String moviePath) {
+ public List<ConverterProcessResult> convertToMP4(FileExplorerItem f, String ext) {
List<ConverterProcessResult> returnLog = new ArrayList<ConverterProcessResult>();
try {
- FileExplorerItem fileExplorerItem = fileDao.get(fileId);
- if (fileExplorerItem == null) {
- returnLog.add(new ConverterProcessResult("startConversion", "Unable to get FileExplorerItem by ID: " + fileId, null));
- } else {
- log.debug("fileExplorerItem " + fileExplorerItem.getId());
- // Convert to FLV
- return convertToFLV(fileExplorerItem, moviePath);
- }
- } catch (Exception err) {
- log.error("[startConversion]", err);
- returnLog.add(new ConverterProcessResult("startConversion", err.getMessage(), err));
- }
- return returnLog;
- }
+ File mp4 = f.getFile(EXTENSION_MP4);
- private List<ConverterProcessResult> convertToFLV(FileExplorerItem fileExplorerItem, String moviePath) {
- List<ConverterProcessResult> returnLog = new ArrayList<ConverterProcessResult>();
- try {
- String name = WB_VIDEO_FILE_PREFIX + fileExplorerItem.getId();
- File outputFullFlv = new File(getStreamsHibernateDir(), name + MP4_EXTENSION);
-
- fileExplorerItem.setType(Type.Video);
+ f.setType(Type.Video);
- String[] argv_fullFLV = new String[] { getPathToFFMPEG(), "-y", "-i", moviePath,
- "-codec:a", "mp3", "-codec:v", "mpeg4", outputFullFlv.getCanonicalPath() };
+ String[] argv_fullFLV = new String[] { getPathToFFMPEG(), "-y", "-i", f.getFile(ext).getCanonicalPath(),
+ "-codec:a", "mp3", "-codec:v", "mpeg4", mp4.getCanonicalPath() };
- ConverterProcessResult returnMapConvertFLV = ProcessHelper.executeScript("uploadFLV ID :: "
- + fileExplorerItem.getId(), argv_fullFLV);
+ ConverterProcessResult returnMapConvertFLV = ProcessHelper.executeScript("uploadFLV ID :: " + f.getId(), argv_fullFLV);
//Parse the width height from the FFMPEG output
FlvDimension flvDimension = getFlvDimension(returnMapConvertFLV.getError());
int flvWidth = flvDimension.width;
int flvHeight = flvDimension.height;
-
- fileExplorerItem.setFlvWidth(flvWidth);
- fileExplorerItem.setFlvHeight(flvHeight);
+ f.setFlvWidth(flvWidth);
+ f.setFlvHeight(flvHeight);
returnLog.add(returnMapConvertFLV);
- String hashFileFullNameJPEG = WB_VIDEO_FILE_PREFIX + fileExplorerItem.getId() + JPG_EXTENSION;
- File outPutJpeg = new File(getStreamsHibernateDir(), name + JPG_EXTENSION);
-
- fileExplorerItem.setPreviewImage(hashFileFullNameJPEG);
+ File jpeg = f.getFile(EXTENSION_JPG);
String[] argv_previewFLV = new String[] { getPathToFFMPEG(), "-y", "-i",
- outputFullFlv.getCanonicalPath(), "-codec:v", "mjpeg", "-vframes", "1", "-an",
+ mp4.getCanonicalPath(), "-codec:v", "mjpeg", "-vframes", "1", "-an",
"-f", "rawvideo", "-s", flvWidth + "x" + flvHeight,
- outPutJpeg.getCanonicalPath() };
+ jpeg.getCanonicalPath() };
- returnLog.add(ProcessHelper.executeScript("previewUpload ID :: " + fileExplorerItem.getId(), argv_previewFLV));
+ returnLog.add(ProcessHelper.executeScript("previewUpload ID :: " + f.getId(), argv_previewFLV));
- fileDao.update(fileExplorerItem);
+ fileDao.update(f);
for (ConverterProcessResult returnMap : returnLog) {
- recordingLogDao.add("generateFFMPEG", null, returnMap);
+ fileLogDao.add(returnMap.getProcess(), null, returnMap);
}
} catch (Exception err) {
log.error("[convertToFLV]", err);
- returnLog.add(new ConverterProcessResult("convertToFLV", err.getMessage(), err));
+ returnLog.add(new ConverterProcessResult("convertToMP4", err.getMessage(), err));
}
return returnLog;
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateImage.java Sun Sep 11 04:50:07 2016
@@ -18,7 +18,7 @@
*/
package org.apache.openmeetings.core.converter;
-import static org.apache.openmeetings.util.OmFileHelper.JPG_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
import static org.apache.openmeetings.util.OmFileHelper.getUploadProfilesUserDir;
import static org.apache.openmeetings.util.OmFileHelper.profileFileName;
import static org.apache.openmeetings.util.OmFileHelper.profileImagePrefix;
@@ -31,6 +31,7 @@ import java.io.IOException;
import org.apache.commons.transaction.util.FileHelper;
import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.file.FileItem;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.util.process.ConverterProcessResult;
@@ -48,23 +49,16 @@ public class GenerateImage extends BaseC
@Autowired
private GenerateThumbs generateThumbs;
- public ConverterProcessResultList convertImage(String fileName, String fileExt, String roomName) throws IOException {
+ public ConverterProcessResultList convertImage(FileItem f, String ext) throws IOException {
ConverterProcessResultList returnMap = new ConverterProcessResultList();
- File fileFullPath = new File(OmFileHelper.getUploadTempRoomDir(roomName), fileName + fileExt);
+ File img = f.getFile(ext);
+ File jpg = f.getFile(EXTENSION_JPG);
- File destinationFile = OmFileHelper.getNewFile(OmFileHelper.getUploadRoomDir(roomName), fileName, ".jpg");
+ log.debug("##### convertImage destinationFile: " + jpg);
- log.debug("##### convertImage destinationFile: " + destinationFile);
-
- ConverterProcessResult processJPG = convertSingleJpg(fileFullPath.getCanonicalPath(), destinationFile);
- ConverterProcessResult processThumb = generateThumbs.generateThumb(thumbImagePrefix, destinationFile, 50);
-
- returnMap.addItem("processJPG", processJPG);
- returnMap.addItem("processThumb", processThumb);
-
- // Delete old one
- fileFullPath.delete();
+ returnMap.addItem("processJPG", convertSingleJpg(img, jpg));
+ returnMap.addItem("processThumb", generateThumbs.generateThumb(thumbImagePrefix, jpg, 50));
return returnMap;
}
@@ -76,7 +70,7 @@ public class GenerateImage extends BaseC
File[] files = getUploadProfilesUserDir(userId).listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
- return pathname.getName().endsWith(JPG_EXTENSION);
+ return pathname.getName().endsWith(EXTENSION_JPG);
}
});
if (files != null) {
@@ -85,9 +79,9 @@ public class GenerateImage extends BaseC
}
}
- File destinationFile = OmFileHelper.getNewFile(getUploadProfilesUserDir(userId), profileFileName, JPG_EXTENSION);
+ File destinationFile = OmFileHelper.getNewFile(getUploadProfilesUserDir(userId), profileFileName, EXTENSION_JPG);
if (!skipConvertion) {
- returnMap.addItem("processJPG", convertSingleJpg(file.getCanonicalPath(), destinationFile));
+ returnMap.addItem("processJPG", convertSingleJpg(file, destinationFile));
} else {
FileHelper.copy(file, destinationFile);
}
@@ -115,25 +109,9 @@ public class GenerateImage extends BaseC
* @throws IOException
*
*/
- private ConverterProcessResult convertSingleJpg(String inputFile, File outputfile) throws IOException {
- String[] argv = new String[] { getPathToImageMagick(), inputFile, outputfile.getCanonicalPath() };
+ private ConverterProcessResult convertSingleJpg(File in, File out) throws IOException {
+ String[] argv = new String[] { getPathToImageMagick(), in.getCanonicalPath(), out.getCanonicalPath() };
return ProcessHelper.executeScript("generateBatchThumbByWidth", argv);
}
-
- public ConverterProcessResult convertImageByTypeAndSize(String inputFile,
- String outputfile, int width, int height) {
- String[] argv = new String[] { getPathToImageMagick(), "-size",
- width + "x" + height, inputFile, outputfile };
- return ProcessHelper.executeScript("convertImageByTypeAndSizeAndDepth", argv);
- }
-
- public ConverterProcessResult convertImageByTypeAndSizeAndDepth(
- String inputFile, String outputfile, int width, int height,
- int depth) {
- String[] argv = new String[] { getPathToImageMagick(), "-size",
- width + "x" + height, "-depth", Integer.toString(depth),
- inputFile, outputfile };
- return ProcessHelper.executeScript("convertImageByTypeAndSizeAndDepth", argv);
- }
}
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateSWF.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateSWF.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateSWF.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateSWF.java Sun Sep 11 04:50:07 2016
@@ -71,7 +71,7 @@ public class GenerateSWF {
return valueForSwfJpegQuality;
}
- public ConverterProcessResult generateSwf(File originalFolder, File destinationFolder, String fileNamePure) throws IOException {
+ public ConverterProcessResult generateSwf(File in, File out) throws IOException {
// Create the Content of the Converter Script (.bat or .sh File)
String[] argv = new String[] {
@@ -82,8 +82,8 @@ public class GenerateSWF {
"-i", // change draw order to reduce pdf complexity
"-j", "" + getSwfJpegQuality(), // JPEG Quality
"-s", "zoom=" + getSwfZoom(), // set zoom dpi
- new File(originalFolder, fileNamePure + ".pdf").getCanonicalPath(),
- new File(destinationFolder, fileNamePure + ".swf").getCanonicalPath() };
+ in.getCanonicalPath(),
+ out.getCanonicalPath() };
return ProcessHelper.executeScript("generateSwf", argv);
}
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateThumbs.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateThumbs.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateThumbs.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/GenerateThumbs.java Sun Sep 11 04:50:07 2016
@@ -55,14 +55,14 @@ public class GenerateThumbs extends Base
return ProcessHelper.executeScript("generateBatchThumbByWidth", argv);
}
- public ConverterProcessResult generateBatchThumb(File inputfile, File outputpath, Integer thumbSize, String pre) throws IOException {
+ public ConverterProcessResult generateBatchThumb(File in, File outDir, Integer thumbSize, String pre) throws IOException {
log.debug("generateBatchThumbByWidth");
String[] argv = new String[] {
getPathToImageMagick()
, "-thumbnail" // FIXME
, "" + thumbSize
- , inputfile.getCanonicalPath()
- , new File(outputpath, "_" + pre + "_page-%04d.jpg").getCanonicalPath()
+ , in.getCanonicalPath()
+ , new File(outDir, "_" + pre + "_page-%04d.jpg").getCanonicalPath()
};
return ProcessHelper.executeScript("generateBatchThumbByWidth", argv);
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java Sun Sep 11 04:50:07 2016
@@ -18,22 +18,24 @@
*/
package org.apache.openmeetings.core.converter;
-import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_AVI;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_FLV;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
import static org.apache.openmeetings.util.OmFileHelper.getRecordingMetaData;
import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
-import static org.apache.openmeetings.util.OmFileHelper.recordingFileName;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.List;
+import org.apache.openmeetings.db.dao.file.FileItemLogDao;
import org.apache.openmeetings.db.dao.record.RecordingDao;
-import org.apache.openmeetings.db.dao.record.RecordingLogDao;
import org.apache.openmeetings.db.dao.record.RecordingMetaDataDao;
import org.apache.openmeetings.db.entity.record.Recording;
import org.apache.openmeetings.db.entity.record.RecordingMetaData;
+import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.util.process.ConverterProcessResult;
import org.apache.openmeetings.util.process.ProcessHelper;
import org.red5.logging.Red5LoggerFactory;
@@ -57,23 +59,20 @@ public class InterviewConverter extends
@Autowired
private RecordingMetaDataDao metaDataDao;
@Autowired
- private RecordingLogDao logDao;
+ private FileItemLogDao logDao;
- private String[] mergeAudioToWaves(List<String> listOfFullWaveFiles, String outputFullWav,
- List<RecordingMetaData> metaDataList, ReConverterParams rcv) {
- String[] argv_full_sox = new String[listOfFullWaveFiles.size() + 5];
+ private String[] mergeAudioToWaves(List<File> waveFiles, File wav,
+ List<RecordingMetaData> metaDataList, ReConverterParams rcv) throws IOException {
+ String[] argv_full_sox = new String[waveFiles.size() + 5];
argv_full_sox[0] = this.getPathToSoX();
argv_full_sox[1] = "-m";
int counter = 2;
- for (int i = 0; i < listOfFullWaveFiles.size(); i++) {
+ for (File _wav : waveFiles) {
for (RecordingMetaData metaData : metaDataList) {
String hashFileFullNameStored = metaData.getFullWavAudioData();
- String fullFilePath = listOfFullWaveFiles.get(i);
- String fileNameOnly = new File(fullFilePath).getName();
-
- if (hashFileFullNameStored.equals(fileNameOnly)) {
+ if (hashFileFullNameStored.equals(_wav.getName())) {
if (metaData.getInteriewPodId() == 1) {
argv_full_sox[counter] = "-v " + rcv.leftSideLoud;
counter++;
@@ -84,11 +83,11 @@ public class InterviewConverter extends
}
}
}
- argv_full_sox[counter] = listOfFullWaveFiles.get(i);
+ argv_full_sox[counter] = _wav.getCanonicalPath();
counter++;
}
- argv_full_sox[counter] = outputFullWav;
+ argv_full_sox[counter] = wav.getCanonicalPath();
return argv_full_sox;
}
@@ -98,36 +97,35 @@ public class InterviewConverter extends
startConversion(recordingId, false, new ReConverterParams());
}
- public void startConversion(Long recordingId, boolean reconversion, ReConverterParams rcv) {
- Recording recording = null;
+ public void startConversion(Long id, boolean reconversion, ReConverterParams rcv) {
+ Recording r = null;
try {
- recording = recordingDao.get(recordingId);
- log.debug("recording " + recording.getId());
- recording.setStatus(Recording.Status.CONVERTING);
- recording = recordingDao.update(recording);
-
- List<ConverterProcessResult> returnLog = new ArrayList<ConverterProcessResult>();
- List<String> listOfFullWaveFiles = new LinkedList<String>();
- File streamFolder = getStreamFolder(recording);
- List<RecordingMetaData> metaDataList = metaDataDao.getAudioMetaDataByRecording(recording.getId());
+ r = recordingDao.get(id);
+ log.debug("recording " + r.getId());
+ r.setStatus(Recording.Status.CONVERTING);
+ r = recordingDao.update(r);
+
+ List<ConverterProcessResult> returnLog = new ArrayList<>();
+ List<File> waveFiles = new ArrayList<>();
+ File streamFolder = getStreamFolder(r);
+ List<RecordingMetaData> metaDataList = metaDataDao.getAudioMetaDataByRecording(r.getId());
- stripAudioFirstPass(recording, returnLog, listOfFullWaveFiles, streamFolder, metaDataList);
+ stripAudioFirstPass(r, returnLog, waveFiles, streamFolder, metaDataList);
// Merge Wave to Full Length
File streamFolderGeneral = getStreamsHibernateDir();
- String hashFileFullName = "INTERVIEW_" + recording.getId() + "_FINAL_WAVE.wav";
- String outputFullWav = streamFolder.getAbsolutePath() + File.separatorChar + hashFileFullName;
- deleteFileIfExists(outputFullWav);
-
- if (listOfFullWaveFiles.size() == 1) {
- outputFullWav = listOfFullWaveFiles.get(0);
- } else if (listOfFullWaveFiles.size() > 0) {
+ File wav = new File(streamFolder, "INTERVIEW_" + r.getId() + "_FINAL_WAVE.wav");
+ deleteFileIfExists(wav);
+
+ if (waveFiles.size() == 1) {
+ wav = waveFiles.get(0);
+ } else if (waveFiles.size() > 0) {
String[] argv_full_sox;
if (reconversion) {
- argv_full_sox = mergeAudioToWaves(listOfFullWaveFiles, outputFullWav, metaDataList, rcv);
+ argv_full_sox = mergeAudioToWaves(waveFiles, wav, metaDataList, rcv);
} else {
- argv_full_sox = mergeAudioToWaves(listOfFullWaveFiles, outputFullWav);
+ argv_full_sox = mergeAudioToWaves(waveFiles, wav);
}
returnLog.add(ProcessHelper.executeScript("mergeAudioToWaves", argv_full_sox));
@@ -137,9 +135,9 @@ public class InterviewConverter extends
File outputWav = new File(streamFolderGeneral, "one_second.wav");
// Calculate delta at beginning
- double deltaPadding = diffSeconds(recording.getRecordEnd(), recording.getRecordStart());
+ double deltaPadding = diffSeconds(r.getRecordEnd(), r.getRecordStart());
- String[] argv_full_sox = new String[] { getPathToSoX(), outputWav.getCanonicalPath(), outputFullWav, "pad", "0", "" + deltaPadding };
+ String[] argv_full_sox = new String[] { getPathToSoX(), outputWav.getCanonicalPath(), wav.getCanonicalPath(), "pad", "0", "" + deltaPadding };
returnLog.add(ProcessHelper.executeScript("generateSampleAudio", argv_full_sox));
}
@@ -158,7 +156,7 @@ public class InterviewConverter extends
String[] pods = new String[2];
boolean found = false;
for (RecordingMetaData meta : metaDataList) {
- File flv = getRecordingMetaData(recording.getRoomId(), meta.getStreamName());
+ File flv = getRecordingMetaData(r.getRoomId(), meta.getStreamName());
Integer pod = meta.getInteriewPodId();
if (flv.exists() && pod != null && pod > 0 && pod < 3) {
@@ -173,9 +171,9 @@ public class InterviewConverter extends
, "-v", "error"
, "-f", "null"
, "file.null"};
- ConverterProcessResult r = ProcessHelper.executeScript("checkFlvPod_" + pod , args);
- returnLog.add(r);
- if ("0".equals(r.getExitValue())) {
+ ConverterProcessResult res = ProcessHelper.executeScript("checkFlvPod_" + pod , args);
+ returnLog.add(res);
+ if (res.isOk()) {
//TODO need to remove smallest gap
long diff = diff(meta.getRecordStart(), meta.getRecording().getRecordStart());
if (diff != 0L) {
@@ -193,7 +191,7 @@ public class InterviewConverter extends
returnLog.add(ProcessHelper.executeScript("blankFlvPod_" + pod , argsPodB));
//ffmpeg -y -i out.flv -i rec_15_stream_4_2014_07_15_20_41_03.flv -filter_complex '[0:0]setsar=1/1[sarfix];[1:0]scale=320:260,setsar=1/1[scale];[sarfix] [scale] concat=n=2:v=1:a=0 [v]' -map '[v]' output1.flv
- File podF = new File(streamFolder, meta.getStreamName() + "_pod_" + pod + FLV_EXTENSION);
+ File podF = new File(streamFolder, OmFileHelper.getName(meta.getStreamName() + "_pod_" + pod, EXTENSION_FLV));
String podP = podF.getCanonicalPath();
String[] argsPod = new String[] { getPathToFFMPEG(), "-y"//
, "-i", podPB //
@@ -212,10 +210,10 @@ public class InterviewConverter extends
}
}
if (!found) {
- ConverterProcessResult r = new ConverterProcessResult();
- r.setProcess("CheckFlvFilesExists");
- r.setError("No valid pods found");
- returnLog.add(r);
+ ConverterProcessResult res = new ConverterProcessResult();
+ res.setProcess("CheckFlvFilesExists");
+ res.setError("No valid pods found");
+ returnLog.add(res);
return;
}
boolean shortest = false;
@@ -238,7 +236,7 @@ public class InterviewConverter extends
args.add("-i"); args.add(pods[i]);
}
}
- args.add("-i"); args.add(outputFullWav);
+ args.add("-i"); args.add(wav.getCanonicalPath());
args.add("-ar"); args.add("22050");
args.add("-ab"); args.add("32k");
args.add("-filter_complex");
@@ -254,68 +252,58 @@ public class InterviewConverter extends
args.add("-qmax"); args.add("1");
args.add("-qmin"); args.add("1");
args.add("-y");
- String hashFileFullNameFlv = recordingFileName + recording.getId() + FLV_EXTENSION;
- String outputFullFlv = new File(streamFolderGeneral, hashFileFullNameFlv).getCanonicalPath();
- args.add(outputFullFlv);
+ File flv = r.getFile(EXTENSION_FLV);
+ args.add(flv.getCanonicalPath());
// TODO additional flag to 'quiet' output should be added
returnLog.add(ProcessHelper.executeScript("generateFullBySequenceFLV", args.toArray(new String[]{})));
- recording.setFlvWidth(2 * flvWidth);
- recording.setFlvHeight(flvHeight);
-
- recording.setHash(hashFileFullNameFlv);
+ r.setFlvWidth(2 * flvWidth);
+ r.setFlvHeight(flvHeight);
// Extract first Image for preview purpose
// ffmpeg -i movie.flv -vcodec mjpeg -vframes 1 -an -f rawvideo -s
// 320x240 movie.jpg
- String hashFileFullNameJPEG = recordingFileName + recording.getId() + ".jpg";
- String outPutJpeg = new File(streamFolderGeneral, hashFileFullNameJPEG).getCanonicalPath();
- deleteFileIfExists(outPutJpeg);
-
- recording.setPreviewImage(hashFileFullNameJPEG);
+ File jpg = r.getFile(EXTENSION_JPG);
+ deleteFileIfExists(jpg);
String[] argv_previewFLV = new String[] { //
getPathToFFMPEG(), "-y", //
- "-i", outputFullFlv, //
+ "-i", flv.getCanonicalPath(), //
"-vcodec", "mjpeg", //
"-vframes", "100", "-an", //
"-f", "rawvideo", //
"-s", (2 * flvWidth) + "x" + flvHeight, //
- outPutJpeg };
+ jpg.getCanonicalPath() };
returnLog.add(ProcessHelper.executeScript("generateFullFLV", argv_previewFLV));
- String alternateDownloadName = recordingFileName + recording.getId() + ".avi";
- String alternateDownloadFullName = new File(streamFolderGeneral, alternateDownloadName).getCanonicalPath();
- deleteFileIfExists(alternateDownloadFullName);
+ File avi = r.getFile(EXTENSION_AVI);
+ deleteFileIfExists(avi);
- String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-y", "-i", outputFullFlv, alternateDownloadFullName };
+ String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-y", "-i", flv.getCanonicalPath(), avi.getCanonicalPath() };
returnLog.add(ProcessHelper.executeScript("alternateDownload", argv_alternateDownload));
- recording.setAlternateDownload(alternateDownloadName);
-
- updateDuration(recording);
- convertToMp4(recording, returnLog);
- recording.setStatus(Recording.Status.PROCESSED);
+ updateDuration(r);
+ convertToMp4(r, returnLog);
+ r.setStatus(Recording.Status.PROCESSED);
- logDao.deleteByRecordingId(recording.getId());
+ logDao.delete(r);
for (ConverterProcessResult returnMap : returnLog) {
- logDao.add("generateFFMPEG", recording, returnMap);
+ logDao.add("generateFFMPEG", r, returnMap);
}
// Delete Wave Files
- for (String fileName : listOfFullWaveFiles) {
- File audio = new File(fileName);
+ for (File audio : waveFiles) {
if (audio.exists()) {
audio.delete();
}
}
} catch (Exception err) {
log.error("[startConversion]", err);
- recording.setStatus(Recording.Status.ERROR);
+ r.setStatus(Recording.Status.ERROR);
}
- recordingDao.update(recording);
+ recordingDao.update(r);
}
}
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java Sun Sep 11 04:50:07 2016
@@ -18,7 +18,7 @@
*/
package org.apache.openmeetings.core.converter;
-import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_FLV;
import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
import static org.apache.openmeetings.util.OmFileHelper.recordingFileName;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
@@ -27,12 +27,13 @@ import java.io.File;
import java.util.ArrayList;
import java.util.List;
+import org.apache.openmeetings.db.dao.file.FileItemLogDao;
import org.apache.openmeetings.db.dao.record.RecordingDao;
-import org.apache.openmeetings.db.dao.record.RecordingLogDao;
import org.apache.openmeetings.db.dao.record.RecordingMetaDataDao;
import org.apache.openmeetings.db.entity.record.Recording;
import org.apache.openmeetings.db.entity.record.RecordingMetaData;
import org.apache.openmeetings.db.entity.record.RecordingMetaData.Status;
+import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.util.process.ConverterProcessResult;
import org.apache.openmeetings.util.process.ProcessHelper;
import org.red5.logging.Red5LoggerFactory;
@@ -48,7 +49,7 @@ public class RecordingConverter extends
@Autowired
private RecordingMetaDataDao metaDataDao;
@Autowired
- private RecordingLogDao logDao;
+ private FileItemLogDao logDao;
private String FFMPEG_MAP_PARAM = ":";
@@ -67,8 +68,8 @@ public class RecordingConverter extends
String finalNamePrefix = recordingFileName + recordingId;
log.debug("recording " + recording.getId());
- List<ConverterProcessResult> returnLog = new ArrayList<ConverterProcessResult>();
- List<String> listOfFullWaveFiles = new ArrayList<String>();
+ List<ConverterProcessResult> returnLog = new ArrayList<>();
+ List<File> waveFiles = new ArrayList<>();
File streamFolder = getStreamFolder(recording);
RecordingMetaData screenMetaData = metaDataDao.getScreenMetaDataByRecording(recording.getId());
@@ -85,16 +86,15 @@ public class RecordingConverter extends
screenMetaData = waitForTheStream(screenMetaData.getId());
- stripAudioFirstPass(recording, returnLog, listOfFullWaveFiles, streamFolder);
+ stripAudioFirstPass(recording, returnLog, waveFiles, streamFolder);
// Merge Wave to Full Length
- String hashFileFullName = screenMetaData.getStreamName() + "_FINAL_WAVE.wav";
- String outputFullWav = new File(streamFolder, hashFileFullName).getCanonicalPath();
+ File wav = new File(streamFolder, screenMetaData.getStreamName() + "_FINAL_WAVE.wav");
- if (listOfFullWaveFiles.size() == 1) {
- outputFullWav = listOfFullWaveFiles.get(0);
- } else if (listOfFullWaveFiles.size() > 0) {
- String[] argv_full_sox = mergeAudioToWaves(listOfFullWaveFiles, outputFullWav);
+ if (waveFiles.size() == 1) {
+ wav = waveFiles.get(0);
+ } else if (waveFiles.size() > 0) {
+ String[] argv_full_sox = mergeAudioToWaves(waveFiles, wav);
returnLog.add(ProcessHelper.executeScript("mergeAudioToWaves", argv_full_sox));
} else {
@@ -104,18 +104,18 @@ public class RecordingConverter extends
// Calculate delta at beginning
double deltaPadding = diffSeconds(recording.getRecordEnd(), recording.getRecordStart());
- String[] argv_full_sox = new String[] { getPathToSoX(), outputWav, outputFullWav, "pad", "0", "" + deltaPadding };
+ String[] argv_full_sox = new String[] { getPathToSoX(), outputWav, wav.getCanonicalPath(), "pad", "0", "" + deltaPadding };
returnLog.add(ProcessHelper.executeScript("generateSampleAudio", argv_full_sox));
}
- screenMetaData.setFullWavAudioData(hashFileFullName);
+ screenMetaData.setFullWavAudioData(wav.getName());
metaDataDao.update(screenMetaData);
// Merge Audio with Video / Calculate resulting FLV
- String inputScreenFullFlv = new File(streamFolder, screenMetaData.getStreamName() + FLV_EXTENSION).getCanonicalPath();
+ String inputScreenFullFlv = new File(streamFolder, OmFileHelper.getName(screenMetaData.getStreamName(), EXTENSION_FLV)).getCanonicalPath();
- File outputFullFlv = new File(getStreamsHibernateDir(), finalNamePrefix + FLV_EXTENSION);
+ File flv = recording.getFile(EXTENSION_FLV);
// ffmpeg -vcodec flv -qscale 9.5 -r 25 -ar 22050 -ab 32k -s 320x240
// -i 65318fb5c54b1bc1b1bca077b493a914_28_12_2009_23_38_17_FINAL_WAVE.wav
@@ -139,18 +139,18 @@ public class RecordingConverter extends
String[] argv_fullFLV = new String[] { getPathToFFMPEG(), "-y",//
"-itsoffset", formatMillis(diff(screenMetaData.getRecordStart(), recording.getRecordStart())),
- "-i", inputScreenFullFlv, "-i", outputFullWav, "-ar", "22050", //
+ "-i", inputScreenFullFlv, "-i", wav.getCanonicalPath(), "-ar", "22050", //
"-acodec", "libmp3lame", //
"-ab", "32k", //
"-s", flvWidth + "x" + flvHeight, //
"-vcodec", "flashsv", //
"-map", "0" + FFMPEG_MAP_PARAM + "0", //
"-map", "1" + FFMPEG_MAP_PARAM + "0", //
- outputFullFlv.getCanonicalPath() };
+ flv.getCanonicalPath() };
returnLog.add(ProcessHelper.executeScript("generateFullFLV", argv_fullFLV));
- recording.setHash(outputFullFlv.getName());
+ recording.setHash(flv.getName());
// Extract first Image for preview purpose
// ffmpeg -i movie.flv -vcodec mjpeg -vframes 1 -an -f rawvideo -s
@@ -158,11 +158,9 @@ public class RecordingConverter extends
File outPutJpeg = new File(getStreamsHibernateDir(), finalNamePrefix + ".jpg");
- recording.setPreviewImage(outPutJpeg.getName());
-
String[] argv_previewFLV = new String[] { //
getPathToFFMPEG(), "-y",//
- "-i", outputFullFlv.getCanonicalPath(), //
+ "-i", flv.getCanonicalPath(), //
"-vcodec", "mjpeg", //
"-vframes", "1", "-an", //
"-f", "rawvideo", //
@@ -173,25 +171,22 @@ public class RecordingConverter extends
File alternateDownload = new File(getStreamsHibernateDir(), finalNamePrefix + ".avi");
- String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-y", "-i", outputFullFlv.getCanonicalPath(), "-vcodec",
+ String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-y", "-i", flv.getCanonicalPath(), "-vcodec",
"copy", alternateDownload.getCanonicalPath() };
returnLog.add(ProcessHelper.executeScript("alternateDownload", argv_alternateDownload));
- recording.setAlternateDownload(alternateDownload.getName());
-
updateDuration(recording);
convertToMp4(recording, returnLog);
recording.setStatus(Recording.Status.PROCESSED);
- logDao.deleteByRecordingId(recording.getId());
+ logDao.delete(recording);
for (ConverterProcessResult returnMap : returnLog) {
logDao.add("generateFFMPEG", recording, returnMap);
}
// Delete Wave Files
- for (String fileName : listOfFullWaveFiles) {
- File audio = new File(fileName);
+ for (File audio : waveFiles) {
if (audio.exists()) {
audio.delete();
}
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java Sun Sep 11 04:50:07 2016
@@ -18,8 +18,6 @@
*/
package org.apache.openmeetings.core.data.file;
-import static org.apache.openmeetings.util.OmFileHelper.getUploadFilesDir;
-import static org.apache.openmeetings.util.OmFileHelper.getUploadTempFilesDir;
import static org.apache.openmeetings.util.OmFileHelper.thumbImagePrefix;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
@@ -72,7 +70,6 @@ public class FileProcessor {
String hash = UUID.randomUUID().toString();
String ext = getExt(f);
- String extDot = String.format(".%s", ext);
log.debug("file extension: " + ext);
StoredFile storedFile = new StoredFile(hash, ext);
@@ -94,12 +91,6 @@ public class FileProcessor {
returnError.addItem("wrongType", new ConverterProcessResult("The file type cannot be converted"));
return returnError;
}
-
- File completeName = new File(isAsIs ? getUploadFilesDir() : getUploadTempFilesDir(), hash + extDot);
- log.debug("writing file to: " + completeName);
- FileHelper.copy(is, completeName);
- is.close();
-
if (isImage) {
f.setType(Type.Image);
} else if (isVideo) {
@@ -113,25 +104,32 @@ public class FileProcessor {
f = fileDao.update(f);
log.debug("fileId: " + f.getId());
+
+ File file = f.getFile(ext);
+ log.debug("writing file to: " + file);
+ if (!file.getParentFile().exists() && !file.getParentFile().mkdirs()) {
+ returnError.addItem("No parent", new ConverterProcessResult("Unable to create parent for file: " + file.getCanonicalPath()));
+ return returnError;
+ }
+ FileHelper.copy(is, file);
+ is.close();
+
log.debug("canBeConverted: " + canBeConverted);
- if (canBeConverted) {
+ if (canBeConverted || isPdf) {
// convert to pdf, thumbs, swf and xml-description
- returnError = generatePDF.convertPDF(hash, "files", true, completeName);
- } else if (isPdf) {
- // convert to thumbs, swf and xml-description
- returnError = generatePDF.convertPDF(hash, "files", false, completeName);
+ returnError = generatePDF.convertPDF(f, ext);
} else if (isChart) {
log.debug("uploaded chart file");
} else if (isImage && !isAsIs) {
// convert it to JPG
log.debug("##### convert it to JPG: ");
- returnError = generateImage.convertImage(hash, extDot, "files");
+ returnError = generateImage.convertImage(f, ext);
} else if (isAsIs) {
- ConverterProcessResult processThumb = generateThumbs.generateThumb(thumbImagePrefix, completeName, 50);
+ ConverterProcessResult processThumb = generateThumbs.generateThumb(thumbImagePrefix, file, 50);
returnError.addItem("processThumb", processThumb);
} else if (isVideo) {
- List<ConverterProcessResult> returnList = flvExplorerConverter.startConversion(f.getId(), completeName.getCanonicalPath());
+ List<ConverterProcessResult> returnList = flvExplorerConverter.convertToMP4(f, ext);
int i = 0;
for (ConverterProcessResult returnMap : returnList) {
@@ -141,7 +139,7 @@ public class FileProcessor {
// has to happen at the end, otherwise it will be overwritten
//cause the variable is new initialized
- returnError.setCompleteName(completeName.getName());
+ returnError.setCompleteName(file.getName());
returnError.setFileItemId(f.getId());
return returnError;
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java Sun Sep 11 04:50:07 2016
@@ -18,7 +18,7 @@
*/
package org.apache.openmeetings.core.data.record.listener.async;
-import static org.apache.openmeetings.util.OmFileHelper.FLV_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_FLV;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import java.io.File;
@@ -98,7 +98,7 @@ public abstract class BaseStreamWriter i
* I/O exception
*/
private void init() throws IOException {
- file = new File(OmFileHelper.getStreamsSubDir(scope.getName()), streamName + FLV_EXTENSION);
+ file = new File(OmFileHelper.getStreamsSubDir(scope.getName()), OmFileHelper.getName(streamName, EXTENSION_FLV));
IStreamableFileFactory factory = (IStreamableFileFactory) ScopeUtils.getScopeService(scope, IStreamableFileFactory.class,
StreamableFileFactory.class);
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/CreateLibraryPresentation.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/CreateLibraryPresentation.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/CreateLibraryPresentation.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/CreateLibraryPresentation.java Sun Sep 11 04:50:07 2016
@@ -37,74 +37,56 @@ import org.slf4j.Logger;
public class CreateLibraryPresentation {
private static final Logger log = Red5LoggerFactory.getLogger(CreateLibraryPresentation.class, webAppRootKey);
-
- public static ConverterProcessResult generateXMLDocument(File targetDirectory, String originalDocument,
- String pdfDocument, String swfDocument){
+
+ private static void addFile(Element root, String name, File f) {
+ if (f != null) {
+ root.addElement(name)
+ .addAttribute("lastmod", "" + f.lastModified())
+ .addAttribute("size", "" + f.length())
+ .addText(f.getName());
+ }
+ }
+
+ public static ConverterProcessResult generateXMLDocument(File original, File pdf, File swf) {
ConverterProcessResult returnMap = new ConverterProcessResult();
- returnMap.setProcess("generateXMLDocument");
+ returnMap.setProcess("generateXMLDocument");
try {
Document document = DocumentHelper.createDocument();
Element root = document.addElement("presentation");
-
- File file = new File(targetDirectory, originalDocument);
- root.addElement("originalDocument")
- .addAttribute("lastmod", (new Long(file.lastModified())).toString())
- .addAttribute("size", (new Long(file.length())).toString())
- .addText(originalDocument);
-
- if (pdfDocument!=null){
- File pdfDocumentFile = new File(targetDirectory, pdfDocument);
- root.addElement("pdfDocument")
- .addAttribute("lastmod", (new Long(pdfDocumentFile.lastModified())).toString())
- .addAttribute("size", (new Long(pdfDocumentFile.length())).toString())
- .addText(pdfDocument);
- }
- if (swfDocument!=null){
- File swfDocumentFile = new File(targetDirectory, originalDocument);
- root.addElement("swfDocument")
- .addAttribute("lastmod", (new Long(swfDocumentFile.lastModified())).toString())
- .addAttribute("size", (new Long(swfDocumentFile.length())).toString())
- .addText(swfDocument);
- }
+ addFile(root, "originalDocument", original);
+ addFile(root, "pdfDocument", pdf);
+ addFile(root, "swfDocument", swf);
- Element thumbs = root.addElement( "thumbs" );
+ Element thumbs = root.addElement("thumbs");
- //Second get all Files of this Folder
+ // Second get all Files of this Folder
FilenameFilter ff = new FilenameFilter() {
@Override
public boolean accept(File b, String name) {
File f = new File(b, name);
- return f.isFile();
- }
- };
-
- String[] allfiles = targetDirectory.list(ff);
- if(allfiles!=null){
- Arrays.sort(allfiles);
- for(int i=0; i<allfiles.length; i++){
- File thumbfile = new File(targetDirectory, allfiles[i]);
- if (allfiles[i].startsWith(thumbImagePrefix)){
- thumbs.addElement( "thumb" )
- .addAttribute("lastmod", (new Long(thumbfile.lastModified())).toString())
- .addAttribute("size", (new Long(thumbfile.length())).toString())
- .addText(allfiles[i]);
- }
+ return f.isFile() && f.getName().startsWith(thumbImagePrefix);
}
+ };
+
+ File[] _thumbs = original.getParentFile().listFiles(ff);
+ Arrays.sort(_thumbs);
+ for (File thumb : _thumbs) {
+ addFile(thumbs, "thumb", thumb);
}
-
+
// lets write to a file
- XMLWriter writer = new XMLWriter(new FileOutputStream(new File(targetDirectory, OmFileHelper.libraryFileName)));
+ XMLWriter writer = new XMLWriter(new FileOutputStream(new File(original.getParentFile(), OmFileHelper.libraryFileName)));
writer.write(document);
writer.close();
-
- returnMap.setExitValue("0");
-
+
+ returnMap.setExitCode(0);
+
return returnMap;
} catch (Exception err) {
log.error("Error while generateXMLDocument", err);
returnMap.setError(err.getMessage());
- returnMap.setExitValue("-1");
+ returnMap.setExitCode(-1);
return returnMap;
}
}
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/GeneratePDF.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/GeneratePDF.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/GeneratePDF.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/GeneratePDF.java Sun Sep 11 04:50:07 2016
@@ -18,18 +18,18 @@
*/
package org.apache.openmeetings.core.documents;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import static org.apache.openmeetings.core.documents.CreateLibraryPresentation.generateXMLDocument;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
-import org.apache.commons.transaction.util.FileHelper;
import org.apache.openmeetings.core.converter.GenerateSWF;
import org.apache.openmeetings.core.converter.GenerateThumbs;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
-import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
import org.apache.openmeetings.util.process.ConverterProcessResult;
import org.apache.openmeetings.util.process.ConverterProcessResultList;
import org.apache.openmeetings.util.process.ProcessHelper;
@@ -47,58 +47,38 @@ public class GeneratePDF {
@Autowired
private ConfigurationDao configurationDao;
- public ConverterProcessResultList convertPDF(String hash, String roomName, boolean fullProcessing, File inFile) throws Exception {
- String inFileName = inFile.getName();
- ConverterProcessResultList returnError = new ConverterProcessResultList();
-
- File fileFullPath = new File(OmFileHelper.getUploadTempRoomDir(roomName), inFileName);
- File destinationFolder = OmFileHelper.getNewDir(OmFileHelper.getUploadRoomDir(roomName), hash);
+ public ConverterProcessResultList convertPDF(FileExplorerItem f, String ext) throws Exception {
+ ConverterProcessResultList errors = new ConverterProcessResultList();
+ boolean fullProcessing = !EXTENSION_PDF.equals(ext);
+ File original = f.getFile(ext);
+ File pdf = f.getFile(EXTENSION_PDF);
log.debug("fullProcessing: " + fullProcessing);
if (fullProcessing) {
- ConverterProcessResult processOpenOffice = doJodConvert(fileFullPath, destinationFolder, hash);
- returnError.addItem("processOpenOffice", processOpenOffice);
- ConverterProcessResult processThumb = generateThumbs.generateBatchThumb(new File(destinationFolder, hash + ".pdf"), destinationFolder, 80, "thumb");
- returnError.addItem("processThumb", processThumb);
- ConverterProcessResult processSWF = generateSWF.generateSwf(destinationFolder, destinationFolder, hash);
- returnError.addItem("processSWF", processSWF);
- } else {
- log.debug("-- generateBatchThumb --");
-
- ConverterProcessResult processThumb = generateThumbs.generateBatchThumb(fileFullPath, destinationFolder, 80, "thumb");
- returnError.addItem("processThumb", processThumb);
-
- ConverterProcessResult processSWF = generateSWF.generateSwf(fileFullPath.getParentFile(), destinationFolder, hash);
- returnError.addItem("processSWF", processSWF);
- }
-
- // now it should be completed so copy that file to the expected location
- File fileWhereToMove = new File(destinationFolder, inFileName);
- fileWhereToMove.createNewFile();
- FileHelper.moveRec(inFile, fileWhereToMove);
-
- if (fullProcessing) {
- ConverterProcessResult processXML = generateXMLDocument(destinationFolder, inFileName, hash + ".pdf", hash + ".swf");
- returnError.addItem("processXML", processXML);
- } else {
- ConverterProcessResult processXML = generateXMLDocument(destinationFolder, inFileName, null, hash + ".swf");
- returnError.addItem("processXML", processXML);
+ log.debug("-- running JOD --");
+ errors.addItem("processOpenOffice", doJodConvert(original, pdf));
}
+
+ log.debug("-- generateBatchThumb --");
+ errors.addItem("processThumb", generateThumbs.generateBatchThumb(pdf, pdf.getParentFile(), 80, "thumb"));
+ File swf = f.getFile();
+ errors.addItem("processSWF", generateSWF.generateSwf(pdf, swf));
- return returnError;
+ errors.addItem("processXML", generateXMLDocument(original, fullProcessing ? pdf : null, swf));
+ return errors;
}
/**
* Generates PDF using JOD Library (external library)
*/
- public ConverterProcessResult doJodConvert(File fileFullPath, File destinationFolder, String outputfile) {
+ public ConverterProcessResult doJodConvert(File in, File out) {
try {
String jodPath = configurationDao.getConfValue("jod.path", String.class, "./jod");
String officePath = configurationDao.getConfValue("office.path", String.class, "");
File jodFolder = new File(jodPath);
if (!jodFolder.exists() || !jodFolder.isDirectory()) {
- throw new Exception("Path to JOD Library folder does not exist");
+ return new ConverterProcessResult("doJodConvert", "Path to JOD Library folder does not exist", null);
}
ArrayList<String> argv = new ArrayList<String>();
@@ -130,8 +110,8 @@ public class GeneratePDF {
argv.add("-jar");
argv.add(new File(jodFolder, jodConverterJar).getCanonicalPath());
- argv.add(fileFullPath.getCanonicalPath());
- argv.add(new File(destinationFolder, outputfile + ".pdf").getCanonicalPath());
+ argv.add(in.getCanonicalPath());
+ argv.add(out.getCanonicalPath());
return ProcessHelper.executeScript("doJodConvert", argv.toArray(new String[argv.size()]));
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryChartLoader.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryChartLoader.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryChartLoader.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryChartLoader.java Sun Sep 11 04:50:07 2016
@@ -18,6 +18,7 @@
*/
package org.apache.openmeetings.core.documents;
+import static java.nio.charset.StandardCharsets.UTF_8;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import java.io.BufferedReader;
@@ -25,7 +26,6 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import org.red5.logging.Red5LoggerFactory;
@@ -62,7 +62,7 @@ public class LibraryChartLoader {
xStream.setMode(XStream.NO_REFERENCES);
try (InputStream is = new FileInputStream(file);
- BufferedReader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)))
+ BufferedReader reader = new BufferedReader(new InputStreamReader(is, UTF_8)))
{
ArrayList lMapList = (ArrayList) xStream.fromXML(reader);
return lMapList;
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryDocumentConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryDocumentConverter.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryDocumentConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryDocumentConverter.java Sun Sep 11 04:50:07 2016
@@ -18,7 +18,8 @@
*/
package org.apache.openmeetings.core.documents;
-import static org.apache.openmeetings.util.OmFileHelper.WML_EXTENSION;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_WML;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import java.io.File;
@@ -26,7 +27,6 @@ import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
-import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import org.apache.openmeetings.util.OmFileHelper;
@@ -43,7 +43,7 @@ public class LibraryDocumentConverter {
try {
log.debug("filePath: " + OmFileHelper.getUploadWmlDir().getCanonicalPath());
- File file = new File(OmFileHelper.getUploadWmlDir(), fileName + WML_EXTENSION);
+ File file = new File(OmFileHelper.getUploadWmlDir(), OmFileHelper.getName(fileName, EXTENSION_WML));
if (file.exists()){
return "-20";
@@ -56,7 +56,7 @@ public class LibraryDocumentConverter {
log.debug("Write to " + file);
try (OutputStream os = new FileOutputStream(file);
- Writer out = new OutputStreamWriter(os, StandardCharsets.UTF_8))
+ Writer out = new OutputStreamWriter(os, UTF_8))
{
out.write(xmlString);
out.flush();
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryWmlLoader.java Sun Sep 11 04:50:07 2016
@@ -18,7 +18,8 @@
*/
package org.apache.openmeetings.core.documents;
-import static org.apache.openmeetings.util.OmFileHelper.WML_EXTENSION;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_WML;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import java.io.BufferedReader;
@@ -26,7 +27,6 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
@@ -43,8 +43,8 @@ public class LibraryWmlLoader {
public static List<?> loadWmlFile(String fileName){
try {
String name = fileName;
- if (!name.endsWith(WML_EXTENSION)) {
- name += WML_EXTENSION;
+ if (!name.endsWith(EXTENSION_WML)) {
+ name = OmFileHelper.getName(fileName, EXTENSION_WML);
}
File file = new File(OmFileHelper.getUploadWmlDir(), name);
log.debug("filepathComplete: " + file);
@@ -53,7 +53,7 @@ public class LibraryWmlLoader {
xStream.setMode(XStream.NO_REFERENCES);
try (InputStream is = new FileInputStream(file);
- BufferedReader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)))
+ BufferedReader reader = new BufferedReader(new InputStreamReader(is, UTF_8)))
{
List<?> lMapList = (List<?>) xStream.fromXML(reader);
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java Sun Sep 11 04:50:07 2016
@@ -18,6 +18,7 @@
*/
package org.apache.openmeetings.core.ldap;
+import static java.nio.charset.StandardCharsets.UTF_8;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_GROUP_ID;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
@@ -28,7 +29,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
-import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
@@ -315,7 +315,7 @@ public class LdapLoginManagement {
this.domainId = domainId;
LdapConfig ldapConfig = ldapConfigDao.get(domainId);
try (InputStream is = new FileInputStream(new File(OmFileHelper.getConfDir(), ldapConfig.getConfigFileName()));
- Reader r = new InputStreamReader(is, StandardCharsets.UTF_8))
+ Reader r = new InputStreamReader(is, UTF_8))
{
config.load(r);
if (config.isEmpty()) {
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/mail/MailHandler.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/mail/MailHandler.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/mail/MailHandler.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/mail/MailHandler.java Sun Sep 11 04:50:07 2016
@@ -18,13 +18,13 @@
*/
package org.apache.openmeetings.core.mail;
+import static java.nio.charset.StandardCharsets.UTF_8;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
-import java.nio.charset.StandardCharsets;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@@ -197,7 +197,7 @@ public class MailHandler {
log.debug("getMimeMessage");
// Building MimeMessage
MimeMessage msg = getBasicMimeMessage();
- msg.setSubject(m.getSubject(), StandardCharsets.UTF_8.name());
+ msg.setSubject(m.getSubject(), UTF_8.name());
String replyTo = m.getReplyTo();
if (replyTo != null && mailAddReplyTo) {
log.debug("setReplyTo " + replyTo);
Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java Sun Sep 11 04:50:07 2016
@@ -18,7 +18,7 @@
*/
package org.apache.openmeetings.core.remote;
-import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
import static org.apache.openmeetings.util.OmFileHelper.WB_VIDEO_FILE_PREFIX;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
@@ -216,22 +216,21 @@ public class ConferenceLibrary implement
try {
Sessiondata sd = sessionDao.check(sid);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
-
IConnection current = Red5.getConnectionLocal();
String streamid = current.getClient().getId();
- Client currentClient = sessionManager.getClientByStreamId(streamid, null);
-
- Long roomId = currentClient.getRoomId();
+ Client client = sessionManager.getClientByStreamId(streamid, null);
+ Long roomId = client.getRoomId();
- if (roomId != null) {
- File outputFullFlvFile = new File(OmFileHelper.getStreamsHibernateDir(), WB_VIDEO_FILE_PREFIX + fileId + MP4_EXTENSION);
+ FileExplorerItem f = fileDao.get(fileId);
+ if (roomId != null && f != null) {
+ File mp4 = f.getFile(EXTENSION_MP4);
File targetFolder = OmFileHelper.getStreamsSubDir(roomId);
- File targetFullFlvFile = new File(targetFolder, WB_VIDEO_FILE_PREFIX + fileId + MP4_EXTENSION);
- if (outputFullFlvFile.exists() && !targetFullFlvFile.exists()) {
- FileHelper.copy(outputFullFlvFile, targetFullFlvFile);
+ File target = new File(targetFolder, OmFileHelper.getName(WB_VIDEO_FILE_PREFIX + fileId, EXTENSION_MP4));
+ if (mp4.exists() && !target.exists()) {
+ FileHelper.copy(mp4, target);
}
return 1L;
}
Modified: openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java Sun Sep 11 04:50:07 2016
@@ -18,6 +18,7 @@
*/
package org.apache.openmeetings.test.asf;
+import static java.nio.charset.StandardCharsets.UTF_8;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import java.io.BufferedReader;
@@ -28,7 +29,6 @@ import java.io.FilenameFilter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
-import java.nio.charset.StandardCharsets;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
@@ -130,7 +130,7 @@ public class AsfCopyRightReplace {
private void scanAndWriteXMLFile(File javaFile) {
StringWriter strWriter = new StringWriter();
- try (BufferedReader is = new BufferedReader(new InputStreamReader(new FileInputStream(javaFile), StandardCharsets.UTF_8))) {
+ try (BufferedReader is = new BufferedReader(new InputStreamReader(new FileInputStream(javaFile), UTF_8))) {
log.debug("Processing " + javaFile.getCanonicalPath());
String line;
@@ -165,7 +165,7 @@ public class AsfCopyRightReplace {
} catch (Exception err) {
log.error("Error while scanAndWriteXMLFile", err);
}
- try (OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(javaFile), StandardCharsets.UTF_8)) {
+ try (OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(javaFile), UTF_8)) {
out.write(strWriter.toString());
out.flush();
} catch (Exception err) {
@@ -175,7 +175,7 @@ public class AsfCopyRightReplace {
private void scanAndWriteJavaFile(File javaFile) {
StringWriter strWriter = new StringWriter();
- try (BufferedReader is = new BufferedReader(new InputStreamReader(new FileInputStream(javaFile), StandardCharsets.UTF_8))) {
+ try (BufferedReader is = new BufferedReader(new InputStreamReader(new FileInputStream(javaFile), UTF_8))) {
log.debug("Processing " + javaFile.getCanonicalPath());
String line;
@@ -196,7 +196,7 @@ public class AsfCopyRightReplace {
} catch (Exception err) {
log.error("Error while scanAndWriteJavaFile", err);
}
- try (OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(javaFile), StandardCharsets.UTF_8)) {
+ try (OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(javaFile), UTF_8)) {
out.write(strWriter.toString());
out.flush();
} catch (Exception err) {
Copied: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java (from r1760223, openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingLogDao.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java?p2=openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java&p1=openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingLogDao.java&r1=1760223&r2=1760224&rev=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingLogDao.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java Sun Sep 11 04:50:07 2016
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.openmeetings.db.dao.record;
+package org.apache.openmeetings.db.dao.file;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
@@ -26,49 +26,45 @@ import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
-import org.apache.openmeetings.db.entity.record.Recording;
-import org.apache.openmeetings.db.entity.record.RecordingLog;
+import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.file.FileItemLog;
import org.apache.openmeetings.util.process.ConverterProcessResult;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.springframework.transaction.annotation.Transactional;
@Transactional
-public class RecordingLogDao {
- private static final Logger log = Red5LoggerFactory.getLogger(RecordingLogDao.class, webAppRootKey);
+public class FileItemLogDao {
+ private static final Logger log = Red5LoggerFactory.getLogger(FileItemLogDao.class, webAppRootKey);
@PersistenceContext
private EntityManager em;
-
- public long countErrors(Long recordingId) {
- return em.createNamedQuery("countErrorRecordingLogsByRecording", Long.class)
- .setParameter("recId", recordingId).getSingleResult();
- }
-
- public List<RecordingLog> getByRecordingId(Long recordingId) {
- return em.createNamedQuery("getRecordingLogsByRecording", RecordingLog.class)
- .setParameter("recId", recordingId).getResultList();
- }
-
- public void deleteByRecordingId(Long recordingId) {
- em.createNamedQuery("deleteErrorRecordingLogsByRecording").setParameter("recId", recordingId).executeUpdate();
+
+ public long countErrors(FileItem f) {
+ return em.createNamedQuery("countErrorFileLogsByFile", Long.class).setParameter("fileId", f.getId())
+ .setParameter("type", f.getType()).getSingleResult();
+ }
+
+ public List<FileItemLog> get(FileItem f) {
+ return em.createNamedQuery("getFileLogsByFile", FileItemLog.class).setParameter("fileId", f.getId())
+ .setParameter("type", f.getType()).getResultList();
}
-
- public Long add(String msgType, Recording recording, ConverterProcessResult returnMap) {
- try {
- RecordingLog log = new RecordingLog();
- log.setInserted(new Date());
- log.setExitValue(returnMap.getExitValue());
- log.setRecording(recording);
- log.setFullMessage(returnMap.buildLogMessage());
- log.setMsgType(msgType);
-
- log = em.merge(log);
- Long logId = log.getId();
-
- return logId;
- } catch (Exception ex2) {
- log.error("[add]: ",ex2);
- }
- return -1L;
+
+ public void delete(FileItem f) {
+ em.createNamedQuery("deleteErrorFileLogsByFile").setParameter("fileId", f.getId())
+ .setParameter("type", f.getType()).executeUpdate();
+ }
+
+ public FileItemLog add(String name, FileItem f, ConverterProcessResult returnMap) {
+ log.trace("Adding log: {}, {}, {}", name, f, returnMap);
+ FileItemLog log = new FileItemLog();
+ log.setInserted(new Date());
+ log.setExitCode(returnMap.getExitCode());
+ log.setFileId(f.getId());
+ log.setFileType(f.getType());
+ log.setMessage(returnMap.buildLogMessage());
+ log.setName(name);
+
+ em.persist(log);
+ return log;
}
}
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/record/RecordingDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/record/RecordingDTO.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/record/RecordingDTO.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/record/RecordingDTO.java Sun Sep 11 04:50:07 2016
@@ -35,8 +35,7 @@ public class RecordingDTO implements Ser
private static final long serialVersionUID = 1L;
private Long id;
private String name;
- private String flvName;
- private String aviName;
+ private String hash;
private Long roomId;
private String status;
private boolean interview;
@@ -50,8 +49,7 @@ public class RecordingDTO implements Ser
public RecordingDTO(Recording r) {
this.id = r.getId();
this.name = r.getName();
- this.flvName = r.getHash();
- this.aviName = r.getAlternateDownload();
+ this.hash = r.getHash();
this.roomId = r.getRoomId();
this.status = r.getStatus().name();
this.interview = r.isInterview();
@@ -77,20 +75,12 @@ public class RecordingDTO implements Ser
this.name = name;
}
- public String getFlvName() {
- return flvName;
+ public String getHash() {
+ return hash;
}
- public void setFlvName(String flvName) {
- this.flvName = flvName;
- }
-
- public String getAviName() {
- return aviName;
- }
-
- public void setAviName(String aviName) {
- this.aviName = aviName;
+ public void setHash(String hash) {
+ this.hash = hash;
}
public Long getRoomId() {
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java Sun Sep 11 04:50:07 2016
@@ -50,11 +50,11 @@ import org.simpleframework.xml.Root;
@Entity
@Table(name = "appointment")
@NamedQueries({
- @NamedQuery(name="getAppointmentById", query="SELECT a FROM Appointment a WHERE a.deleted = false AND a.id = :id")
- , @NamedQuery(name="getAppointmentByIdAny", query="SELECT a FROM Appointment a WHERE a.id = :id")
- , @NamedQuery(name="getAppointments", query="SELECT a FROM Appointment a WHERE a.deleted = false ORDER BY a.id")
- , @NamedQuery(name="appointmentsInRange",
- query="SELECT a FROM Appointment a "
+ @NamedQuery(name="getAppointmentById", query="SELECT a FROM Appointment a WHERE a.deleted = false AND a.id = :id")
+ , @NamedQuery(name="getAppointmentByIdAny", query="SELECT a FROM Appointment a WHERE a.id = :id")
+ , @NamedQuery(name="getAppointments", query="SELECT a FROM Appointment a WHERE a.deleted = false ORDER BY a.id")
+ , @NamedQuery(name="appointmentsInRange",
+ query="SELECT a FROM Appointment a "
+ "WHERE a.deleted = false "
+ " AND ( "
+ " (a.start BETWEEN :start AND :end) "
@@ -62,8 +62,8 @@ import org.simpleframework.xml.Root;
+ " OR (a.start < :start AND a.end > :end) "
+ " )"
+ " AND a.owner.id = :userId"
- )
- , @NamedQuery(name="joinedAppointmentsInRange",
+ )
+ , @NamedQuery(name="joinedAppointmentsInRange",
query="SELECT a FROM MeetingMember mm INNER JOIN mm.appointment a "
+ "WHERE mm.deleted = false AND mm.user.id <> a.owner.id AND mm.user.id = :userId "
+ " AND a.id NOT IN (SELECT a.id FROM Appointment a WHERE a.owner.id = :userId)"
@@ -73,8 +73,8 @@ import org.simpleframework.xml.Root;
+ " OR (a.end BETWEEN :start AND :end) "
+ " OR (a.start < :start AND a.end > :end) "
+ " )"
- )
- , @NamedQuery(name="appointmentsInRangeRemind",
+ )
+ , @NamedQuery(name="appointmentsInRangeRemind",
query="SELECT a FROM Appointment a "
//only ReminderType simple mail is concerned!
+ "WHERE a.deleted = false AND a.reminderEmailSend = false"
@@ -84,11 +84,11 @@ import org.simpleframework.xml.Root;
+ " OR (a.end BETWEEN :start AND :end) "
+ " OR (a.start < :start AND a.end > :end) "
+ " )"
- )
- , @NamedQuery(name="getAppointmentByRoomId", query="SELECT a FROM Appointment a WHERE a.room.id = :roomId")
- , @NamedQuery(name="getAppointmentByOwnerRoomId", query="SELECT a FROM Appointment a WHERE a.deleted = false AND a.owner.id = :userId AND a.room.id = :roomId")
+ )
+ , @NamedQuery(name="getAppointmentByRoomId", query="SELECT a FROM Appointment a WHERE a.room.id = :roomId")
+ , @NamedQuery(name="getAppointmentByOwnerRoomId", query="SELECT a FROM Appointment a WHERE a.deleted = false AND a.owner.id = :userId AND a.room.id = :roomId")
//TODO this query returns duplicates if the user books an appointment with his own user as second meeting-member, swagner 19.02.2012
- , @NamedQuery(name="appointmentsInRangeByUser",
+ , @NamedQuery(name="appointmentsInRangeByUser",
query="SELECT a FROM MeetingMember mm, IN(mm.appointment) a "
+ "WHERE mm.deleted = false AND mm.user.id <> a.owner.id AND mm.user.id = :userId "
+ " AND ( "
@@ -96,8 +96,8 @@ import org.simpleframework.xml.Root;
+ " OR (a.end BETWEEN :start AND :end) "
+ " OR (a.start < :start AND a.end > :end) "
+ " )"
- )
- , @NamedQuery(name="appointedRoomsInRangeByUser",
+ )
+ , @NamedQuery(name="appointedRoomsInRangeByUser",
query="SELECT a.room FROM MeetingMember mm, IN(mm.appointment) a "
+ "WHERE mm.deleted = false AND mm.user.id <> a.owner.id AND mm.user.id = :userId "
+ " AND ( "
@@ -105,9 +105,9 @@ import org.simpleframework.xml.Root;
+ " OR (a.end BETWEEN :start AND :end) "
+ " OR (a.start < :start AND a.end > :end) "
+ " )"
- )
- , @NamedQuery(name="getNextAppointment", query="SELECT a FROM Appointment a WHERE a.deleted = false AND a.start > :start AND a.owner.id = :userId")
- , @NamedQuery(name="getAppointmentsByTitle", query="SELECT a FROM Appointment a WHERE a.deleted = false AND a.title LIKE :title AND a.owner.id = :userId")
+ )
+ , @NamedQuery(name="getNextAppointment", query="SELECT a FROM Appointment a WHERE a.deleted = false AND a.start > :start AND a.owner.id = :userId")
+ , @NamedQuery(name="getAppointmentsByTitle", query="SELECT a FROM Appointment a WHERE a.deleted = false AND a.title LIKE :title AND a.owner.id = :userId")
})
@Root(name="appointment")
public class Appointment implements IDataProviderEntity {
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java?rev=1760224&r1=1760223&r2=1760224&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java Sun Sep 11 04:50:07 2016
@@ -20,11 +20,13 @@ package org.apache.openmeetings.db.entit
import java.io.File;
import java.util.Date;
+import java.util.List;
import javax.persistence.Column;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.MappedSuperclass;
+import javax.persistence.Transient;
import javax.xml.bind.annotation.XmlType;
import org.apache.openmeetings.db.entity.IDataProviderEntity;
@@ -86,15 +88,15 @@ public abstract class FileItem implement
@Element(data = true, required = false)
private Integer flvHeight;
- @Column(name = "preview_image")
- @Element(data = true, required = false)
- private String previewImage;
-
@Column(name = "type")
@Element(data = true, required = false)
@Enumerated(EnumType.STRING)
private Type type;
+ // Not Mapped
+ @Transient
+ private List<FileItemLog> log;
+
public String getName() {
return name;
}
@@ -183,14 +185,6 @@ public abstract class FileItem implement
this.flvHeight = flvHeight;
}
- public String getPreviewImage() {
- return previewImage;
- }
-
- public void setPreviewImage(String previewImage) {
- this.previewImage = previewImage;
- }
-
public Type getType() {
return type;
}
@@ -199,6 +193,14 @@ public abstract class FileItem implement
this.type = type;
}
+ public List<FileItemLog> getLog() {
+ return log;
+ }
+
+ public void setLog(List<FileItemLog> log) {
+ this.log = log;
+ }
+
public File getFile() {
return getFile(null);
}