Repository: openmeetings Updated Branches: refs/heads/master 21caf9d88 -> 699e03608
[OPENMEETINGS-1714] coverage is improved Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/699e0360 Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/699e0360 Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/699e0360 Branch: refs/heads/master Commit: 699e0360860662f75f2a069b467dc88e8260384e Parents: 21caf9d Author: Maxim Solodovnik <[email protected]> Authored: Thu Oct 5 20:26:29 2017 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Thu Oct 5 20:26:29 2017 +0700 ---------------------------------------------------------------------- .../core/converter/BaseConverter.java | 16 +-- .../core/converter/DocumentConverter.java | 16 +-- .../core/converter/FlvExplorerConverter.java | 10 +- .../core/converter/ImageConverter.java | 26 ++--- .../core/converter/InterviewConverter.java | 8 +- .../core/converter/RecordingConverter.java | 4 +- .../core/data/file/FileProcessor.java | 23 ++-- .../db/dao/file/FileItemLogDao.java | 4 +- .../db/entity/file/FileItemLog.java | 2 +- .../util/process/ConverterProcessResult.java | 116 ------------------- .../process/ConverterProcessResultList.java | 106 ----------------- .../util/process/FileImportError.java | 52 --------- .../util/process/ProcessHelper.java | 10 +- .../util/process/ProcessResult.java | 116 +++++++++++++++++++ .../util/process/ProcessResultList.java | 87 ++++++++++++++ .../web/pages/install/InstallWizard.java | 4 +- .../web/room/sidebar/UploadDialog.java | 8 +- .../core/file/TestFileProcessor.java | 4 +- .../webservice/TestErrorService.java | 49 +++++++- .../openmeetings/webservice/FileWebService.java | 4 +- 20 files changed, 318 insertions(+), 347 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java ---------------------------------------------------------------------- diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java index 7d2c681..11a7e01 100644 --- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java +++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java @@ -49,7 +49,7 @@ 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.ProcessResult; import org.apache.openmeetings.util.process.ProcessHelper; import org.red5.io.flv.impl.FLVWriter; import org.red5.logging.Red5LoggerFactory; @@ -159,14 +159,14 @@ public abstract class BaseConverter { return argv.toArray(new String[0]); } - protected void stripAudioFirstPass(Recording recording, List<ConverterProcessResult> returnLog, + protected void stripAudioFirstPass(Recording recording, List<ProcessResult> returnLog, List<File> waveFiles, File streamFolder) { stripAudioFirstPass(recording, returnLog, waveFiles, streamFolder , metaDataDao.getAudioMetaDataByRecording(recording.getId())); } - private String[] addSoxPad(List<ConverterProcessResult> returnLog, String job, double length, double position, File inFile, File outFile) throws IOException { + private String[] addSoxPad(List<ProcessResult> returnLog, String job, double length, double position, File inFile, File outFile) throws IOException { //FIXME need to check this if (length < 0 || position < 0) { log.debug("::addSoxPad {} Invalid parameters: length = {}; position = {}; inFile = {}", job, length, position, inFile); @@ -250,7 +250,7 @@ public abstract class BaseConverter { } protected void stripAudioFirstPass(Recording recording, - List<ConverterProcessResult> returnLog, + List<ProcessResult> returnLog, List<File> waveFiles, File streamFolder, List<RecordingMetaData> metaDataList) { try { @@ -384,7 +384,7 @@ public abstract class BaseConverter { return argv; } - protected String convertToMp4(Recording r, List<String> _argv, List<ConverterProcessResult> returnLog) throws IOException { + protected String convertToMp4(Recording r, List<String> _argv, List<ProcessResult> returnLog) throws IOException { //TODO add faststart, move filepaths to helpers String mp4path = r.getFile().getCanonicalPath(); List<String> argv = new ArrayList<>(Arrays.asList(getPathToFFMPEG(), "-y")); @@ -393,7 +393,7 @@ public abstract class BaseConverter { return mp4path; } - protected void convertToPng(BaseFileItem f, String mp4path, List<ConverterProcessResult> logs) throws IOException { + protected void convertToPng(BaseFileItem f, String mp4path, List<ProcessResult> logs) throws IOException { // Extract first Image for preview purpose // ffmpeg -i movie.mp4 -vf "thumbnail,scale=640:-1" -frames:v 1 movie.png File png = f.getFile(EXTENSION_PNG); @@ -419,14 +419,14 @@ public abstract class BaseConverter { return new Dimension(100, 100); // will return 100x100 for non-video to be able to play } - protected void postProcess(Recording r, String mp4path, List<ConverterProcessResult> logs, List<File> waveFiles) throws IOException { + protected void postProcess(Recording r, String mp4path, List<ProcessResult> logs, List<File> waveFiles) throws IOException { convertToPng(r, mp4path, logs); updateDuration(r); r.setStatus(Recording.Status.PROCESSED); logDao.delete(r); - for (ConverterProcessResult returnMap : logs) { + for (ProcessResult returnMap : logs) { logDao.add("generateFFMPEG", r, returnMap); } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/DocumentConverter.java ---------------------------------------------------------------------- diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/DocumentConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/DocumentConverter.java index 81639e9..ab495fc 100644 --- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/DocumentConverter.java +++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/DocumentConverter.java @@ -28,8 +28,8 @@ import java.io.File; import org.apache.openmeetings.db.dao.basic.ConfigurationDao; import org.apache.openmeetings.db.entity.file.FileItem; import org.apache.openmeetings.util.StoredFile; -import org.apache.openmeetings.util.process.ConverterProcessResult; -import org.apache.openmeetings.util.process.ConverterProcessResultList; +import org.apache.openmeetings.util.process.ProcessResult; +import org.apache.openmeetings.util.process.ProcessResultList; import org.apache.wicket.util.string.Strings; import org.artofsolving.jodconverter.OfficeDocumentConverter; import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration; @@ -49,8 +49,8 @@ public class DocumentConverter { @Autowired private ImageConverter imageConverter; - public ConverterProcessResultList convertPDF(FileItem f, StoredFile sf) throws Exception { - ConverterProcessResultList result = new ConverterProcessResultList(); + public ProcessResultList convertPDF(FileItem f, StoredFile sf) throws Exception { + ProcessResultList result = new ProcessResultList(); boolean fullProcessing = !sf.isPdf(); File original = f.getFile(sf.getExt()); @@ -70,7 +70,7 @@ public class DocumentConverter { /** * Generates PDF using JOD Library (external library) */ - public ConverterProcessResult doJodConvert(File in, File out) { + public ProcessResult doJodConvert(File in, File out) { try { String officePath = cfgDao.getString(CONFIG_PATH_OFFICE, null); DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration(); @@ -84,15 +84,15 @@ public class DocumentConverter { converter.convert(in, out); } catch (OfficeException ex) { log.error("doJodConvert", ex); - return new ConverterProcessResult("doJodConvert", ex.getMessage(), ex); + return new ProcessResult("doJodConvert", ex.getMessage(), ex); } finally { officeManager.stop(); } } catch (Exception ex) { log.error("doJodConvert", ex); - return new ConverterProcessResult("doJodConvert", ex.getMessage(), ex); + return new ProcessResult("doJodConvert", ex.getMessage(), ex); } - ConverterProcessResult result = new ConverterProcessResult("doJodConvert", "Document converted successfully", null); + ProcessResult result = new ProcessResult("doJodConvert", "Document converted successfully", null); result.setExitCode(0); return result; } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java ---------------------------------------------------------------------- diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java index 9f937bf..0b1c18f 100644 --- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java +++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/FlvExplorerConverter.java @@ -30,7 +30,7 @@ import java.util.List; import org.apache.openmeetings.db.entity.file.BaseFileItem.Type; import org.apache.openmeetings.db.entity.file.FileItem; -import org.apache.openmeetings.util.process.ConverterProcessResult; +import org.apache.openmeetings.util.process.ProcessResult; import org.apache.openmeetings.util.process.ProcessHelper; import org.red5.logging.Red5LoggerFactory; import org.slf4j.Logger; @@ -40,8 +40,8 @@ import org.springframework.stereotype.Component; public class FlvExplorerConverter extends BaseConverter { private static final Logger log = Red5LoggerFactory.getLogger(FlvExplorerConverter.class, getWebAppRootKey()); - public List<ConverterProcessResult> convertVideo(FileItem f, String ext) { - List<ConverterProcessResult> logs = new ArrayList<>(); + public List<ProcessResult> convertVideo(FileItem f, String ext) { + List<ProcessResult> logs = new ArrayList<>(); try { File mp4 = f.getFile(EXTENSION_MP4); f.setType(Type.Video); @@ -60,7 +60,7 @@ public class FlvExplorerConverter extends BaseConverter { , "-c:a", "libfdk_aac" // , "-pix_fmt", "yuv420p" // , mp4.getCanonicalPath() }; - ConverterProcessResult res = ProcessHelper.executeScript("uploadVideo ID :: " + f.getHash(), args); + ProcessResult res = ProcessHelper.executeScript("uploadVideo ID :: " + f.getHash(), args); logs.add(res); if (sameExt && tmp != null) { if (res.isOk()) { @@ -77,7 +77,7 @@ public class FlvExplorerConverter extends BaseConverter { convertToPng(f, mp4.getCanonicalPath(), logs); } catch (Exception err) { log.error("[convertToFLV]", err); - logs.add(new ConverterProcessResult("convertToMP4", err.getMessage(), err)); + logs.add(new ProcessResult("convertToMP4", err.getMessage(), err)); } return logs; http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java ---------------------------------------------------------------------- diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java index 1b20308..dbf1cac 100644 --- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java +++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java @@ -29,7 +29,7 @@ import static org.apache.openmeetings.util.OmFileHelper.profileFileName; import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DOCUMENT_DPI; import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DOCUMENT_QUALITY; import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey; -import static org.apache.openmeetings.util.process.ConverterProcessResult.ZERO; +import static org.apache.openmeetings.util.process.ProcessResult.ZERO; import static org.apache.tika.metadata.HttpHeaders.CONTENT_TYPE; import java.io.File; @@ -44,8 +44,8 @@ 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.StoredFile; -import org.apache.openmeetings.util.process.ConverterProcessResult; -import org.apache.openmeetings.util.process.ConverterProcessResultList; +import org.apache.openmeetings.util.process.ProcessResult; +import org.apache.openmeetings.util.process.ProcessResultList; import org.apache.openmeetings.util.process.ProcessHelper; import org.apache.tika.metadata.Metadata; import org.apache.tika.metadata.TIFF; @@ -66,8 +66,8 @@ public class ImageConverter extends BaseConverter { @Autowired private UserDao userDao; - public ConverterProcessResultList convertImage(BaseFileItem f, StoredFile sf) throws IOException { - ConverterProcessResultList returnMap = new ConverterProcessResultList(); + public ProcessResultList convertImage(BaseFileItem f, StoredFile sf) throws IOException { + ProcessResultList returnMap = new ProcessResultList(); File jpg = f.getFile(EXTENSION_JPG); if (!sf.isJpg()) { @@ -82,8 +82,8 @@ public class ImageConverter extends BaseConverter { return returnMap; } - public ConverterProcessResultList convertImageUserProfile(File file, Long userId, boolean skipConvertion) throws Exception { - ConverterProcessResultList returnMap = new ConverterProcessResultList(); + public ProcessResultList convertImageUserProfile(File file, Long userId, boolean skipConvertion) throws Exception { + ProcessResultList returnMap = new ProcessResultList(); // User Profile Update File[] files = getUploadProfilesUserDir(userId).listFiles(fi -> fi.getName().endsWith(EXTENSION_JPG)); @@ -123,8 +123,8 @@ public class ImageConverter extends BaseConverter { return cfgDao.getString(CONFIG_DOCUMENT_QUALITY, "90"); } - private static ConverterProcessResult initSize(BaseFileItem f, File img, String mime) { - ConverterProcessResult res = new ConverterProcessResult(); + private static ProcessResult initSize(BaseFileItem f, File img, String mime) { + ProcessResult res = new ProcessResult(); res.setProcess("get image dimensions :: " + f.getId()); final Parser parser = new ImageParser(); try (InputStream is = new FileInputStream(img)) { @@ -150,13 +150,13 @@ public class ImageConverter extends BaseConverter { * @throws IOException * */ - private ConverterProcessResult convertSingleJpg(File in, File out) throws IOException { + private ProcessResult convertSingleJpg(File in, File out) throws IOException { String[] argv = new String[] { getPathToConvert(), in.getCanonicalPath(), out.getCanonicalPath() }; return ProcessHelper.executeScript("convertSingleJpg", argv); } - public ConverterProcessResult resize(File in, File out, Integer width, Integer height) throws IOException { + public ProcessResult resize(File in, File out, Integer width, Integer height) throws IOException { String[] argv = new String[] { getPathToConvert() , "-resize", (width == null ? "" : width) + (height == null ? "" : "x" + height) , in.getCanonicalPath(), out.getCanonicalPath() @@ -171,7 +171,7 @@ public class ImageConverter extends BaseConverter { * @return - result of conversion * @throws IOException in case IO exception occurred */ - public ConverterProcessResultList convertDocument(ConverterProcessResultList list, FileItem f, File pdf) throws IOException { + public ProcessResultList convertDocument(ProcessResultList list, FileItem f, File pdf) throws IOException { log.debug("convertDocument"); String[] argv = new String[] { getPathToConvert() @@ -180,7 +180,7 @@ public class ImageConverter extends BaseConverter { , "-quality", getQuality() , new File(pdf.getParentFile(), PAGE_TMPLT).getCanonicalPath() }; - ConverterProcessResult res = ProcessHelper.executeScript("convertDocument", argv); + ProcessResult res = ProcessHelper.executeScript("convertDocument", argv); list.addItem("convert PDF to images", res); if (res.isOk()) { File[] pages = pdf.getParentFile().listFiles(fi -> fi.isFile() && fi.getName().startsWith(DOC_PAGE_PREFIX) && fi.getName().endsWith(EXTENSION_PNG)); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java ---------------------------------------------------------------------- diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java index 99d72a3..c2f974c 100644 --- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java +++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java @@ -34,7 +34,7 @@ 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.ProcessResult; import org.apache.openmeetings.util.process.ProcessHelper; import org.apache.wicket.util.string.Strings; import org.red5.logging.Red5LoggerFactory; @@ -107,7 +107,7 @@ public class InterviewConverter extends BaseConverter implements IRecordingConve r.setStatus(Recording.Status.CONVERTING); r = recordingDao.update(r); - List<ConverterProcessResult> logs = new ArrayList<>(); + List<ProcessResult> logs = new ArrayList<>(); List<File> waveFiles = new ArrayList<>(); File streamFolder = getStreamFolder(r); List<RecordingMetaData> metaDataList = metaDataDao.getAudioMetaDataByRecording(r.getId()); @@ -172,7 +172,7 @@ public class InterviewConverter extends BaseConverter implements IRecordingConve , "-v", "error" , "-f", "null" , "file.null"}; - ConverterProcessResult res = ProcessHelper.executeScript("checkFlvPod_" + pod , args); + ProcessResult res = ProcessHelper.executeScript("checkFlvPod_" + pod , args); logs.add(res); if (res.isOk()) { //TODO need to remove smallest gap @@ -211,7 +211,7 @@ public class InterviewConverter extends BaseConverter implements IRecordingConve } } if (!found) { - ConverterProcessResult res = new ConverterProcessResult(); + ProcessResult res = new ProcessResult(); res.setProcess("CheckFlvFilesExists"); res.setError("No valid pods found"); res.setExitCode(-1); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java ---------------------------------------------------------------------- diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java index 96ff42a..82ae5f1 100644 --- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java +++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/RecordingConverter.java @@ -34,7 +34,7 @@ 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.ProcessResult; import org.apache.openmeetings.util.process.ProcessHelper; import org.apache.wicket.util.string.Strings; import org.red5.logging.Red5LoggerFactory; @@ -62,7 +62,7 @@ public class RecordingConverter extends BaseConverter implements IRecordingConve try { log.debug("recording " + r.getId()); - List<ConverterProcessResult> logs = new ArrayList<>(); + List<ProcessResult> logs = new ArrayList<>(); List<File> waveFiles = new ArrayList<>(); File streamFolder = getStreamFolder(r); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java ---------------------------------------------------------------------- diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java index 629ee5b..ca4d77e 100644 --- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java +++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java @@ -35,8 +35,8 @@ import org.apache.openmeetings.db.dao.file.FileItemDao; import org.apache.openmeetings.db.entity.file.BaseFileItem.Type; import org.apache.openmeetings.db.entity.file.FileItem; import org.apache.openmeetings.util.StoredFile; -import org.apache.openmeetings.util.process.ConverterProcessResult; -import org.apache.openmeetings.util.process.ConverterProcessResultList; +import org.apache.openmeetings.util.process.ProcessResultList; +import org.apache.openmeetings.util.process.ProcessResult; import org.red5.logging.Red5LoggerFactory; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -57,8 +57,8 @@ public class FileProcessor { private DocumentConverter generatePDF; //FIXME TODO this method need to be refactored to throw exceptions - public ConverterProcessResultList processFile(FileItem f, InputStream is) throws Exception { - ConverterProcessResultList result = new ConverterProcessResultList(); + public ProcessResultList processFile(FileItem f, InputStream is) throws Exception { + ProcessResultList result = new ProcessResultList(); // Generate a random string to prevent any problems with // foreign characters and duplicates String hash = UUID.randomUUID().toString(); @@ -86,7 +86,7 @@ public class FileProcessor { // add outputfolders for profiles // if it is a presenation it will be copied to another place if (!(isOffice || isPdf || isImage || isVideo || isAsIs)) { - result.addItem("wrongType", new ConverterProcessResult("The file type cannot be converted")); + result.addItem("wrongType", new ProcessResult("The file type cannot be converted")); return result; } if (isImage) { @@ -103,7 +103,7 @@ public class FileProcessor { File file = f.getFile(ext); log.debug("writing file to: " + file); if (!file.getParentFile().exists() && !file.getParentFile().mkdirs()) { - result.addItem("No parent", new ConverterProcessResult("Unable to create parent for file: " + file.getCanonicalPath())); + result.addItem("No parent", new ProcessResult("Unable to create parent for file: " + file.getCanonicalPath())); return result; } @@ -122,23 +122,18 @@ public class FileProcessor { result = imageConverter.convertImage(f, sf); } else if (isVideo) { copyFile(temp, file); - List<ConverterProcessResult> returnList = flvExplorerConverter.convertVideo(f, ext); + List<ProcessResult> returnList = flvExplorerConverter.convertVideo(f, ext); int i = 0; - for (ConverterProcessResult returnMap : returnList) { + for (ProcessResult returnMap : returnList) { result.addItem("processVideo " + i++, returnMap); } } f = fileDao.update(f); log.debug("fileId: " + f.getId()); - - // has to happen at the end, otherwise it will be overwritten - //cause the variable is new initialized - result.setCompleteName(file.getName()); - result.setFileItemId(f.getId()); } catch (Exception e) { log.debug("Error while processing the file", e); - result.addItem("exception", new ConverterProcessResult("Unexpected exception: " + e.getMessage())); + result.addItem("exception", new ProcessResult("Unexpected exception: " + e.getMessage())); throw e; } finally { if (temp != null && temp.exists() && temp.isFile()) { http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java ---------------------------------------------------------------------- diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java index 33b3960..1a52f90 100644 --- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java +++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java @@ -28,7 +28,7 @@ import javax.persistence.PersistenceContext; import org.apache.openmeetings.db.entity.file.BaseFileItem; import org.apache.openmeetings.db.entity.file.FileItemLog; -import org.apache.openmeetings.util.process.ConverterProcessResult; +import org.apache.openmeetings.util.process.ProcessResult; import org.red5.logging.Red5LoggerFactory; import org.slf4j.Logger; import org.springframework.stereotype.Repository; @@ -56,7 +56,7 @@ public class FileItemLogDao { .executeUpdate(); } - public FileItemLog add(String name, BaseFileItem f, ConverterProcessResult returnMap) { + public FileItemLog add(String name, BaseFileItem f, ProcessResult returnMap) { log.trace("Adding log: {}, {}, {}", name, f, returnMap); FileItemLog l = new FileItemLog(); l.setInserted(new Date()); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java ---------------------------------------------------------------------- diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java index 6b337e1..c04a931 100644 --- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java +++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java @@ -19,7 +19,7 @@ package org.apache.openmeetings.db.entity.file; import static java.nio.charset.StandardCharsets.UTF_8; -import static org.apache.openmeetings.util.process.ConverterProcessResult.ZERO; +import static org.apache.openmeetings.util.process.ProcessResult.ZERO; import java.util.Arrays; import java.util.Date; http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResult.java ---------------------------------------------------------------------- diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResult.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResult.java deleted file mode 100644 index e81d34c..0000000 --- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResult.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License") + you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.openmeetings.util.process; - -/** - * Object created by each conversion step, each conversion step that invokes and - * external tool like ImageMagick is one single ConverterProcessMessage - * - * if exitValue equals "-1" then there was an issue. - * - * @author sebawagner - * - */ -public class ConverterProcessResult { - public static final Integer ZERO = new Integer(0); - - private String process; - private String command; - private String exception; - private String error; - private Integer exitCode; - private String out; - - public ConverterProcessResult() { - this(null, null, null); - } - - public ConverterProcessResult(String error) { - this(null, error, null); - } - - public ConverterProcessResult(String process, String error, Exception ex) { - setProcess(process); - setException(ex == null ? null : ex.toString()); - setError(error); - setExitCode(-1); - } - - public String getOut() { - return out; - } - - public void setOut(String out) { - this.out = out; - } - - public String getCommand() { - return command; - } - - public void setCommand(String command) { - this.command = command; - } - - public String getProcess() { - return process; - } - - public void setProcess(String process) { - this.process = process; - } - - public String getException() { - return exception; - } - - public void setException(String exception) { - this.exception = exception; - } - - public String getError() { - return error; - } - - public void setError(String error) { - this.error = error; - } - - public Integer getExitCode() { - return exitCode; - } - - public void setExitCode(Integer exitCode) { - this.exitCode = exitCode; - } - - public boolean isOk() { - return ZERO.equals(exitCode); - } - - public String buildLogMessage() { - return new StringBuilder() - .append("process: ").append(process).append("\r\n") - .append("command: ").append(command).append("\r\n") - .append("exception: ").append(exception).append("\r\n") - .append("error: ").append(error).append("\r\n") - .append("exitValue: ").append(exitCode).append("\r\n") - .append("out: ").append(out).append("\r\n").toString(); - } -} http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java ---------------------------------------------------------------------- diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java deleted file mode 100644 index eda92e0..0000000 --- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License") + you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.openmeetings.util.process; - -import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey; -import static org.red5.logging.Red5LoggerFactory.getLogger; - -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Map.Entry; - -import org.slf4j.Logger; - -/** - * - * Collects all results of conversion jobs - * - * @author sebawagner - * - */ -public class ConverterProcessResultList { - private static final Logger log = getLogger(ConverterProcessResultList.class, getWebAppRootKey()); - - private Map<String, ConverterProcessResult> jobs = new LinkedHashMap<>(); - - private Long fileItemId; - private String completeName; - - public Long getFileItemId() { - return fileItemId; - } - - public void setFileItemId(Long fileItemId) { - this.fileItemId = fileItemId; - } - - public String getCompleteName() { - return completeName; - } - - public void setCompleteName(String completeName) { - this.completeName = completeName; - } - - public ConverterProcessResult addItem(String name, ConverterProcessResult processResult) { - if (jobs.containsKey(name)) { - log.error("Duplicate key in jobslist:: " + name); - return null; - } - return jobs.put(name, processResult); - } - - /** - * returns true if there was an job with exitValue "-1" - * - * @return - */ - public boolean hasError() { - for (Entry<String, ConverterProcessResult> entry : jobs.entrySet()) { - if (!entry.getValue().isOk()) { - return true; - } - } - return false; - } - - /** - * converts all job results into a human readable format - * - * @return - */ - public String getLogMessage() { - StringBuilder logMessage = new StringBuilder(); - for (Entry<String, ConverterProcessResult> entry : jobs.entrySet()) { - logMessage.append("key: "); - logMessage.append(entry.getKey()); - logMessage.append("\r\n"); - logMessage.append(entry.getValue().buildLogMessage()); - } - return logMessage.toString(); - } - - public int size() { - return jobs.size(); - } - - public Map<String, ConverterProcessResult> getJobs() { - return jobs; - } -} http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/FileImportError.java ---------------------------------------------------------------------- diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/FileImportError.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/FileImportError.java deleted file mode 100644 index 257f31f..0000000 --- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/FileImportError.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License") + you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.openmeetings.util.process; - -public class FileImportError { - private int exitValue = 0; - private String error = ""; - private String process = ""; - private String command = ""; - - public int getExitValue() { - return exitValue; - } - public void setExitValue(int exitValue) { - this.exitValue = exitValue; - } - public String getError() { - return error; - } - public void setError(String error) { - this.error = error; - } - public String getProcess() { - return process; - } - public void setProcess(String process) { - this.process = process; - } - public String getCommand() { - return command; - } - public void setCommand(String command) { - this.command = command; - } - -} http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java ---------------------------------------------------------------------- diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java index b92c538..d8c1e14 100644 --- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java +++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessHelper.java @@ -35,7 +35,7 @@ public class ProcessHelper { private ProcessHelper() {} - public static ConverterProcessResult executeScriptWindows(String process, String[] argv) { + public static ProcessResult executeScriptWindows(String process, String[] argv) { try { String[] cmd = new String[argv.length + 2]; cmd[0] = "cmd.exe"; @@ -45,7 +45,7 @@ public class ProcessHelper { return executeScript(process, cmd, env); } catch (Exception t) { log.error("executeScriptWindows", t); - return new ConverterProcessResult(process, t.getMessage(), t); + return new ProcessResult(process, t.getMessage(), t); } } @@ -70,13 +70,13 @@ public class ProcessHelper { } } - public static ConverterProcessResult executeScript(String process, String[] argv) { + public static ProcessResult executeScript(String process, String[] argv) { Map<String, String> env = new HashMap<>(); return executeScript(process, argv, env); } - public static ConverterProcessResult executeScript(String process, String[] argv, Map<? extends String, ? extends String> env) { - ConverterProcessResult res = new ConverterProcessResult(); + public static ProcessResult executeScript(String process, String[] argv, Map<? extends String, ? extends String> env) { + ProcessResult res = new ProcessResult(); res.setProcess(process); debugCommandStart(process, argv); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResult.java ---------------------------------------------------------------------- diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResult.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResult.java new file mode 100644 index 0000000..8bf7ec9 --- /dev/null +++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResult.java @@ -0,0 +1,116 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License") + you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.openmeetings.util.process; + +/** + * Object created by each conversion step, each conversion step that invokes and + * external tool like ImageMagick is one single ConverterProcessMessage + * + * if exitValue equals "-1" then there was an issue. + * + * @author sebawagner + * + */ +public class ProcessResult { + public static final Integer ZERO = new Integer(0); + + private String process; + private String command; + private String exception; + private String error; + private Integer exitCode; + private String out; + + public ProcessResult() { + this(null, null, null); + } + + public ProcessResult(String error) { + this(null, error, null); + } + + public ProcessResult(String process, String error, Exception ex) { + setProcess(process); + setException(ex == null ? null : ex.toString()); + setError(error); + setExitCode(-1); + } + + public String getOut() { + return out; + } + + public void setOut(String out) { + this.out = out; + } + + public String getCommand() { + return command; + } + + public void setCommand(String command) { + this.command = command; + } + + public String getProcess() { + return process; + } + + public void setProcess(String process) { + this.process = process; + } + + public String getException() { + return exception; + } + + public void setException(String exception) { + this.exception = exception; + } + + public String getError() { + return error; + } + + public void setError(String error) { + this.error = error; + } + + public Integer getExitCode() { + return exitCode; + } + + public void setExitCode(Integer exitCode) { + this.exitCode = exitCode; + } + + public boolean isOk() { + return ZERO.equals(exitCode); + } + + public String buildLogMessage() { + return new StringBuilder() + .append("process: ").append(process).append("\r\n") + .append("command: ").append(command).append("\r\n") + .append("exception: ").append(exception).append("\r\n") + .append("error: ").append(error).append("\r\n") + .append("exitValue: ").append(exitCode).append("\r\n") + .append("out: ").append(out).append("\r\n").toString(); + } +} http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResultList.java ---------------------------------------------------------------------- diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResultList.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResultList.java new file mode 100644 index 0000000..df89c7e --- /dev/null +++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/process/ProcessResultList.java @@ -0,0 +1,87 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License") + you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.openmeetings.util.process; + +import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey; +import static org.red5.logging.Red5LoggerFactory.getLogger; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Map.Entry; + +import org.slf4j.Logger; + +/** + * + * Collects all results of conversion jobs + * + * @author sebawagner + * + */ +public class ProcessResultList { + private static final Logger log = getLogger(ProcessResultList.class, getWebAppRootKey()); + + private Map<String, ProcessResult> jobs = new LinkedHashMap<>(); + + public ProcessResult addItem(String name, ProcessResult processResult) { + if (jobs.containsKey(name)) { + log.error("Duplicate key in jobslist:: " + name); + return null; + } + return jobs.put(name, processResult); + } + + /** + * returns true if there was an job with exitValue "-1" + * + * @return + */ + public boolean hasError() { + for (Entry<String, ProcessResult> entry : jobs.entrySet()) { + if (!entry.getValue().isOk()) { + return true; + } + } + return false; + } + + /** + * converts all job results into a human readable format + * + * @return + */ + public String getLogMessage() { + StringBuilder logMessage = new StringBuilder(); + for (Entry<String, ProcessResult> entry : jobs.entrySet()) { + logMessage.append("key: "); + logMessage.append(entry.getKey()); + logMessage.append("\r\n"); + logMessage.append(entry.getValue().buildLogMessage()); + } + return logMessage.toString(); + } + + public int size() { + return jobs.size(); + } + + public Map<String, ProcessResult> getJobs() { + return jobs; + } +} http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java index 72969a1..b1ea41c 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java @@ -49,7 +49,7 @@ import org.apache.openmeetings.installation.InstallationConfig; import org.apache.openmeetings.util.ConnectionProperties; import org.apache.openmeetings.util.ConnectionProperties.DbType; import org.apache.openmeetings.util.OmFileHelper; -import org.apache.openmeetings.util.process.ConverterProcessResult; +import org.apache.openmeetings.util.process.ProcessResult; import org.apache.openmeetings.util.process.ProcessHelper; import org.apache.openmeetings.web.app.Application; import org.apache.openmeetings.web.app.WebSession; @@ -543,7 +543,7 @@ public class InstallWizard extends AbstractWizard<InstallationConfig> { } private boolean checkToolPath(TextField<String> path, String[] args) { - ConverterProcessResult result = ProcessHelper.executeScript(path.getInputName() + " path:: '" + path.getValue() + "'", args); + ProcessResult result = ProcessHelper.executeScript(path.getInputName() + " path:: '" + path.getValue() + "'", args); if (!result.isOk()) { path.error(result.getError().replaceAll(REGEX, "")); } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java index ad5c434..d3f46a9 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/UploadDialog.java @@ -32,8 +32,8 @@ import org.apache.openmeetings.db.dao.file.FileItemLogDao; import org.apache.openmeetings.db.entity.file.BaseFileItem; import org.apache.openmeetings.db.entity.file.FileItem; import org.apache.openmeetings.util.StoredFile; -import org.apache.openmeetings.util.process.ConverterProcessResult; -import org.apache.openmeetings.util.process.ConverterProcessResultList; +import org.apache.openmeetings.util.process.ProcessResult; +import org.apache.openmeetings.util.process.ProcessResultList; import org.apache.openmeetings.web.app.Application; import org.apache.openmeetings.web.room.RoomPanel; import org.apache.openmeetings.web.util.upload.BootstrapFileUploadBehavior; @@ -196,8 +196,8 @@ public class UploadDialog extends AbstractFormDialog<String> { f.setInsertedBy(getUserId()); try { - ConverterProcessResultList logs = getBean(FileProcessor.class).processFile(f, fu.getInputStream()); - for (Entry<String, ConverterProcessResult> entry : logs.getJobs().entrySet()) { + ProcessResultList logs = getBean(FileProcessor.class).processFile(f, fu.getInputStream()); + for (Entry<String, ProcessResult> entry : logs.getJobs().entrySet()) { getBean(FileItemLogDao.class).add(entry.getValue().getProcess(), f, entry.getValue()); } room.getSidebar().updateFiles(target); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java b/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java index 8a556c4..c3fe9d0 100644 --- a/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java +++ b/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java @@ -31,7 +31,7 @@ import org.apache.openmeetings.core.data.file.FileProcessor; import org.apache.openmeetings.db.dto.file.FileItemDTO; import org.apache.openmeetings.db.entity.file.BaseFileItem; import org.apache.openmeetings.db.entity.file.FileItem; -import org.apache.openmeetings.util.process.ConverterProcessResultList; +import org.apache.openmeetings.util.process.ProcessResultList; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -49,7 +49,7 @@ public class TestFileProcessor extends AbstractJUnitDefaults { .setHash(UUID.randomUUID().toString()) .setType(BaseFileItem.Type.Recording).get(); try (InputStream is = new FileInputStream(getDefaultProfilePicture())) { - ConverterProcessResultList result = processor.processFile(f, is); + ProcessResultList result = processor.processFile(f, is); assertFalse("Conversion should be successful", result.hasError()); assertEquals("Type should be image", BaseFileItem.Type.Image, f.getType()); } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java index 681dfeb..2fb1c6d 100644 --- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java +++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java @@ -23,6 +23,8 @@ import static org.junit.Assert.assertNotNull; import java.util.Locale; +import javax.ws.rs.core.Response; + import org.apache.openmeetings.db.dao.label.LabelDao; import org.apache.openmeetings.db.dto.basic.ServiceResult; import org.junit.Test; @@ -38,6 +40,51 @@ public class TestErrorService extends AbstractWebServiceTest { .path(String.format("/%s/%s", "error.unknown", LabelDao.getLanguage(locales[rnd.nextInt(locales.length)], 1L))) .get(ServiceResult.class); assertNotNull("Valid Result should be returned", sr); - assertEquals("SUCCESS result should be returned", ServiceResult.Type.SUCCESS, sr.getType()); + assertEquals("SUCCESS result should be returned", ServiceResult.Type.SUCCESS.name(), sr.getType()); + } + + @Test + public void reportTest() { + // null report + Response resp = getClient(ERROR_SERVICE_URL) + .path("/report") + .post(""); + assertNotNull("Not null Response should be returned", resp); + assertEquals("SUCCESS result should be returned", Response.Status.NO_CONTENT.getStatusCode(), resp.getStatus()); + + // report with message + resp = getClient(ERROR_SERVICE_URL) + .path("/report") + .query("message", "Dummy test") + .post(""); + assertNotNull("Not null Response should be returned", resp); + assertEquals("SUCCESS result should be returned", Response.Status.NO_CONTENT.getStatusCode(), resp.getStatus()); + + // report with invalid sid and message + resp = getClient(ERROR_SERVICE_URL) + .path("/report") + .query("message", "Dummy test") + .query("sid", "n/a") + .post(""); + assertNotNull("Not null Response should be returned", resp); + assertEquals("SUCCESS result should be returned", Response.Status.NO_CONTENT.getStatusCode(), resp.getStatus()); + + // report with valid sid and no message + ServiceResult r = login(); + resp = getClient(ERROR_SERVICE_URL) + .path("/report") + .query("sid", r.getMessage()) + .post(""); + assertNotNull("Not null Response should be returned", resp); + assertEquals("SUCCESS result should be returned", Response.Status.NO_CONTENT.getStatusCode(), resp.getStatus()); + + // report with valid sid and message + resp = getClient(ERROR_SERVICE_URL) + .path("/report") + .query("sid", r.getMessage()) + .query("message", "Dummy test") + .post(""); + assertNotNull("Not null Response should be returned", resp); + assertEquals("SUCCESS result should be returned", Response.Status.NO_CONTENT.getStatusCode(), resp.getStatus()); } } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/699e0360/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java ---------------------------------------------------------------------- diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java index 4b24f45..042df46 100644 --- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java +++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java @@ -51,7 +51,7 @@ import org.apache.openmeetings.db.entity.file.FileItem; import org.apache.openmeetings.db.entity.server.Sessiondata; import org.apache.openmeetings.db.entity.user.User.Right; import org.apache.openmeetings.db.util.AuthLevelUtil; -import org.apache.openmeetings.util.process.ConverterProcessResultList; +import org.apache.openmeetings.util.process.ProcessResultList; import org.apache.openmeetings.webservice.error.ServiceException; import org.red5.logging.Red5LoggerFactory; import org.slf4j.Logger; @@ -180,7 +180,7 @@ public class FileWebService extends BaseWebService { //TODO permissions if (stream != null) { //TODO attachment - ConverterProcessResultList result = getBean(FileProcessor.class).processFile(f, stream); + ProcessResultList result = getBean(FileProcessor.class).processFile(f, stream); if (result.hasError()) { throw new ServiceException(result.getLogMessage()); }
