From 005079723d4b4d2dbf419a33d3a28add6f8511a1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1s=C3=A1ry=20D=C3=A1niel?= Date: Wed, 24 Jan 2018 14:23:43 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30848 --- server/-configuration/log4j2.xml | 2 +- .../run-mediacube-server-bsh.launch | 2 +- .../commons/log4j2/appender/SmtpManager.java | 61 +++++++++---------- .../jobtemplates/sync-octopus.xml | 2 +- .../CopyForArchiveNEXIORecordingsStep.java | 45 ++++++++------ .../server/steps/FakeNoParamsStep.java | 17 +++--- .../server/steps/OctopusDataMiner.java | 18 ++++-- .../steps/OutputPathAndNameSelectorStep.java | 3 +- .../server/steps/TSMRestoreStep.java | 14 +++-- .../META-INF/MANIFEST.MF | 1 + .../src/user/commons/LogUtils.java | 12 ++++ .../user/commons/MediaCubeFinishMarker.java | 2 + .../src/user/commons/MediaCubeMarker.java | 9 +++ .../src/user/commons/octopus/OctopusAPI.java | 2 +- .../pages/login.zul | 2 +- .../user.jobengine.osgi.server/pages/menu.zul | 6 +- .../pages/retrieveselector.zul | 50 ++++++++------- .../user/jobengine/server/IJobRuntime.java | 4 ++ .../src/user/jobengine/server/JobEngine.java | 1 + .../src/user/jobengine/server/JobRuntime.java | 12 ++++ .../jobengine/server/JobStepExecutor.java | 2 - .../server/actions/DoneExecutingAction.java | 6 ++ .../server/actions/DoneSuspendAction.java | 6 ++ .../server/actions/ExecuteRunableAction.java | 6 ++ .../jobengine/server/ast/JobTemplate.java | 9 +++ .../zk/model/RetrieveSelectorModel.java | 8 ++- .../user/jobengine/zk/util/SessionUtil.java | 10 +-- .../user/jobengine/zk/util/UserPrincipal.java | 14 ++++- 28 files changed, 214 insertions(+), 112 deletions(-) create mode 100644 server/user.jobengine.osgi.commons/src/user/commons/LogUtils.java diff --git a/server/-configuration/log4j2.xml b/server/-configuration/log4j2.xml index 74ce51be..498e21f0 100644 --- a/server/-configuration/log4j2.xml +++ b/server/-configuration/log4j2.xml @@ -17,7 +17,7 @@ - + diff --git a/server/-configuration/run-mediacube-server-bsh.launch b/server/-configuration/run-mediacube-server-bsh.launch index 193800bd..f1eb552c 100644 --- a/server/-configuration/run-mediacube-server-bsh.launch +++ b/server/-configuration/run-mediacube-server-bsh.launch @@ -19,7 +19,7 @@ - + diff --git a/server/user.commons.log4j2/src/user/commons/log4j2/appender/SmtpManager.java b/server/user.commons.log4j2/src/user/commons/log4j2/appender/SmtpManager.java index 666e7b03..aa4a792d 100644 --- a/server/user.commons.log4j2/src/user/commons/log4j2/appender/SmtpManager.java +++ b/server/user.commons.log4j2/src/user/commons/log4j2/appender/SmtpManager.java @@ -41,20 +41,18 @@ import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; import javax.mail.util.ByteArrayDataSource; +import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LoggingException; import org.apache.logging.log4j.core.Layout; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.appender.AbstractManager; import org.apache.logging.log4j.core.appender.ManagerFactory; import org.apache.logging.log4j.core.config.Configuration; -import org.apache.logging.log4j.core.impl.Log4jLogEvent; -import org.apache.logging.log4j.core.impl.MutableLogEvent; import org.apache.logging.log4j.core.layout.AbstractStringLayout.Serializer; import org.apache.logging.log4j.core.layout.PatternLayout; import org.apache.logging.log4j.core.net.MimeMessageBuilder; import org.apache.logging.log4j.core.util.NameUtil; import org.apache.logging.log4j.core.util.NetUtils; -import org.apache.logging.log4j.message.ReusableMessage; import org.apache.logging.log4j.util.PropertiesUtil; import org.apache.logging.log4j.util.Strings; @@ -211,14 +209,10 @@ public class SmtpManager extends AbstractManager { } private final Session session; - - //private final CyclicBuffer buffer; - private volatile MimeMessage message; - private final FactoryData data; - private String defaultRecipient; + private String defaultSubject; protected SmtpManager(final String name, final Session session, final MimeMessage message, final FactoryData data) { super(null, name); @@ -226,17 +220,15 @@ public class SmtpManager extends AbstractManager { this.message = message; this.data = data; this.defaultRecipient = data.to; - //this.buffer = new CyclicBuffer<>(LogEvent.class, data.numElements); } - public void add(LogEvent event) { - if (event instanceof Log4jLogEvent && event.getMessage() instanceof ReusableMessage) { - ((Log4jLogEvent) event).makeMessageImmutable(); - } else if (event instanceof MutableLogEvent) { - event = ((MutableLogEvent) event).createMemento(); - } - //buffer.add(event); - } + // public void add(LogEvent event) { + // if (event instanceof Log4jLogEvent && event.getMessage() instanceof ReusableMessage) { + // ((Log4jLogEvent) event).makeMessageImmutable(); + // } else if (event instanceof MutableLogEvent) { + // event = ((MutableLogEvent) event).createMemento(); + // } + // } private synchronized void connect(final LogEvent appendEvent) { if (message != null) { @@ -244,6 +236,7 @@ public class SmtpManager extends AbstractManager { } try { message = createMimeMessage(data, session, appendEvent); + this.defaultSubject = message.getSubject(); } catch (final MessagingException e) { logError("Could not set SmtpAppender message options", e); message = null; @@ -287,8 +280,9 @@ public class SmtpManager extends AbstractManager { return mp; } - private void sendEmail(final String to, byte[] content, String contentType) { + private void sendEmail(final String to, final String subject, byte[] content, String contentType) { try { + message.setSubject(subject); final String encoding = getEncoding(content, contentType); final byte[] encodedBytes = encodeContentToBytes(content, encoding); final InternetHeaders headers = getHeaders(contentType, encoding); @@ -300,17 +294,6 @@ public class SmtpManager extends AbstractManager { } } - private void sendEvents(final Layout layout, final List events, final String to) { - try { - final byte[] rawBytes = formatContentToBytes(events, layout); - final String contentType = layout.getContentType(); - sendEmail(to, rawBytes, contentType); - } catch (Exception e) { - logError("Caught exception while sending e-mail notification.", e); - throw new LoggingException("Error occurred while sending email", e); - } - } - /** * Send the contents of the cyclic buffer as an e-mail message. * @@ -328,7 +311,7 @@ public class SmtpManager extends AbstractManager { if (appendEvent.getMarker() instanceof MediaCubeFinishMarker) { MediaCubeFinishMarker mcm = (MediaCubeFinishMarker) appendEvent.getMarker(); storeSessionEvent(mcm, appendEvent); - sendSessionEvents(mcm, layout); + sendSessionEvents(mcm, layout, appendEvent.getLevel()); return; } @@ -344,7 +327,18 @@ public class SmtpManager extends AbstractManager { } - sendEvents(layout, Arrays.asList(appendEvent), to); + sendEvents(to, defaultSubject, layout, Arrays.asList(appendEvent)); + } + + private void sendEvents(final String to, final String subject, final Layout layout, final List events) { + try { + final byte[] rawBytes = formatContentToBytes(events, layout); + final String contentType = layout.getContentType(); + sendEmail(to, subject, rawBytes, contentType); + } catch (Exception e) { + logError("Caught exception while sending e-mail notification.", e); + throw new LoggingException("Error occurred while sending email", e); + } } protected void sendMultipartMessage(final MimeMessage msg, final MimeMultipart mp) throws MessagingException { @@ -355,13 +349,14 @@ public class SmtpManager extends AbstractManager { } } - private void sendSessionEvents(final MediaCubeMarker mcm, final Layout layout) { + private void sendSessionEvents(final MediaCubeMarker mcm, final Layout layout, final Level level) { String sessionID = mcm.getSessionID(); List events = sessionEvents.get(sessionID); if (events == null) return; String to = mcm.getTo() == null ? defaultRecipient : mcm.getTo(); - sendEvents(layout, events, to); + String subject = mcm.getSessionName() == null ? defaultSubject : String.format("%s: %s", level, mcm.getSessionName()); + sendEvents(to, subject, layout, events); sessionEvents.remove(sessionID); } diff --git a/server/user.jobengine.executors/jobtemplates/sync-octopus.xml b/server/user.jobengine.executors/jobtemplates/sync-octopus.xml index 58aa09f7..846caec5 100644 --- a/server/user.jobengine.executors/jobtemplates/sync-octopus.xml +++ b/server/user.jobengine.executors/jobtemplates/sync-octopus.xml @@ -1,5 +1,5 @@ - + diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/CopyForArchiveNEXIORecordingsStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/CopyForArchiveNEXIORecordingsStep.java index 958b2a9c..296c84c9 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/CopyForArchiveNEXIORecordingsStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/CopyForArchiveNEXIORecordingsStep.java @@ -15,6 +15,7 @@ import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.Marker; import com.ibm.nosql.json.api.BasicDBList; import com.ibm.nosql.json.api.BasicDBObject; @@ -64,10 +65,11 @@ public class CopyForArchiveNEXIORecordingsStep extends JobStep { private int nexioKillDateDays; private String nexioAgency; private Object[] filterAgencies; + private Marker systemMarker; private int check(int value, String name) { if (value == 0) { - logger.error(getMarker(), "A folyamat '{}' bemeneti paramétere 0.", name); + logger.error(systemMarker, "A folyamat '{}' bemeneti paramétere 0.", name); throw new NullPointerException(String.format("System is not configured properly, missing '%s' input parameter.", name)); } return value; @@ -75,7 +77,7 @@ public class CopyForArchiveNEXIORecordingsStep extends JobStep { private String check(String value, String name) { if (StringUtils.isBlank(value)) { - logger.error(getMarker(), "A folyamat '{}' bemeneti paramétere üres.", name); + logger.error(systemMarker, "A folyamat '{}' bemeneti paramétere üres.", name); throw new NullPointerException(String.format("System is not configured properly, missing '%s' input parameter.", name)); } return value; @@ -86,9 +88,9 @@ public class CopyForArchiveNEXIORecordingsStep extends JobStep { for (FileArchive fileArchive : storyArchive.getFileArchives()) { try { copyFile(fileArchive, rundownArchive, storyArchive); - logger.info(getMarker(), "Sikeres anyag archiválás a '{}' tükörhöz: '{}'.", rundownArchive.getItemTitle(), fileArchive.getFileName()); + logger.info(systemMarker, "Sikeres fájl archiválás a '{}' tükörhöz: '{}'.", rundownArchive.getItemTitle(), fileArchive.getFileName()); } catch (Exception e) { - logger.error(getMarker(), "Az '{}' anyag archiválása sikertelen. A rendszer üzenete: {}", fileArchive.getFileName(), e.getMessage()); + logger.error(systemMarker, "Az '{}' fájl archiválása sikertelen. A rendszer üzenete: {}", fileArchive.getFileName(), e.getMessage()); } } } @@ -147,6 +149,7 @@ public class CopyForArchiveNEXIORecordingsStep extends JobStep { @StepEntry public Object[] execute(int nexioPort, String nexioUserName, String nexioPassword, String archiveFtp, String archiveUserName, String archivePassword, String agencies, int limit, int nexioKillDateDays, String nexioAgency, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception { + systemMarker = jobRuntime.getMarker(); setAndCheck(nexioPort, nexioUserName, nexioPassword, archiveFtp, archiveUserName, archivePassword, agencies, limit, nexioKillDateDays, nexioAgency, jobEngine); octopusAPI = new OctopusAPI(); @@ -156,17 +159,21 @@ public class CopyForArchiveNEXIORecordingsStep extends JobStep { } private Date getScheduledStart(String clipName, Date recordDate) { - if (StringUtils.isBlank(clipName)) - logger.warn(getMarker(), "A anyagnak nincs neve, ezért nem archiválható.", clipName); - if (recordDate == null) - logger.warn(getMarker(), "A {} anyag rögzítésének ideje nem meghatározható, ezért nem archiválható.", clipName); + if (StringUtils.isBlank(clipName)) { + logger.warn(systemMarker, "A fájlnak nincs neve, ezért nem archiválható."); + return null; + } + if (recordDate == null) { + logger.warn(systemMarker, "Az '{}' fájl rögzítésének ideje nem meghatározható, ezért nem archiválható.", clipName); + return null; + } Date timePart = null; try { String clipNameTime = clipName.split("_")[0]; timePart = startTimeformat.parse(clipNameTime); } catch (ParseException e) { - logger.warn(getMarker(), "A {} anyag neve nem időbélyeggel kezdődik, ezért nem archiválható.", clipName); + logger.warn(systemMarker, "A '{}' fájl neve nem időbélyeggel kezdődik, ezért nem archiválható.", clipName); return null; } return CalendarUtils.createCalendar(CalendarUtils.createCalendar(recordDate), timePart).getTime(); @@ -183,7 +190,7 @@ public class CopyForArchiveNEXIORecordingsStep extends JobStep { return null; DBObject rundown = octopusAPI.getRundown(scheduledStart); if (rundown == null) { - logger.error(getMarker(), "A '{}' anyaghoz nem található tükör '{}' kezdéssel, ezért nem archiválható.", clipName, scheduledStart); + logger.error(systemMarker, "A '{}' anyaghoz nem található tükör '{}' kezdéssel, ezért nem archiválható.", clipName, scheduledStart); return null; } @@ -191,7 +198,7 @@ public class CopyForArchiveNEXIORecordingsStep extends JobStep { result = processRundow(rundown, clipName, duration); } catch (Exception e) { logger.catching(e); - logger.error(getMarker(), "A '{}' anyag metaadatainak transzformálása sikertelen, ezért az nem archiválható. A rendszer hibaüzenete: {}", + logger.error(systemMarker, "A '{}' anyag metaadatainak transzformálása sikertelen, ezért az nem archiválható. A rendszer hibaüzenete: {}", e.getMessage()); return null; } @@ -199,7 +206,7 @@ public class CopyForArchiveNEXIORecordingsStep extends JobStep { } private void processClips(List clips, int limit) { - logger.info(getMarker(), "A folyamat {} archiválható anyagot érzékelt.", clips.size()); + logger.info(systemMarker, "A folyamat {} archiválható anyagot érzékelt.", clips.size()); int current = 0; for (BasicDBObject clip : clips) { RundownArchive rundownArchive = processClip(clip); @@ -271,22 +278,22 @@ public class CopyForArchiveNEXIORecordingsStep extends JobStep { String agencies, int limit, int nexioKillDateDays, String nexioAgency, IJobEngine jobEngine) throws Exception { db = NoSQLUtils.getNoSQLDB(); if (db == null) { - logger.error(getMarker(), "Az NoSQL adatkezelő réteg nem elérhető."); + logger.error(systemMarker, "Az NoSQL adatkezelő réteg nem elérhető."); throw new NullPointerException("Internal error, missing NoSQL DB reference."); } if (jobEngine == null) { - logger.error(getMarker(), "Az folyamatkezelő réteg nem elérhető."); + logger.error(systemMarker, "Az folyamatkezelő réteg nem elérhető."); throw new NullPointerException("Internal error, missing JobEngine reference."); } manager = jobEngine.getItemManager(); if (manager == null) { - logger.error(getMarker(), "Az adatbáziskezelő réteg nem elérhető."); + logger.error(systemMarker, "Az adatbáziskezelő réteg nem elérhető."); throw new NullPointerException("Internal error, missing ItemManager reference."); } String nexioHost = System.getProperty("nexio.host"); if (StringUtils.isBlank(nexioHost)) { - logger.error(getMarker(), "A 'nexio.host' rendszer paraméter nem található."); + logger.error(systemMarker, "A 'nexio.host' rendszer paraméter nem található."); throw new NullPointerException("System is not configured properly, 'jobengine.selenio.address' startup parameter missing."); } check(nexioPort, "nexioPort"); @@ -308,7 +315,7 @@ public class CopyForArchiveNEXIORecordingsStep extends JobStep { sourceUri.setUserName(nexioUserName); sourceUri.setPassword(nexioPassword); if (sourceUri == null) { - logger.error(getMarker(), "A forrás nem elérhető."); + logger.error(systemMarker, "A forrás nem elérhető."); throw new NullPointerException("Internal error, missing 'sourceUri'."); } @@ -320,7 +327,7 @@ public class CopyForArchiveNEXIORecordingsStep extends JobStep { targetUri.setUserName(archiveUserName); targetUri.setPassword(archivePassword); if (targetUri == null) { - logger.error(getMarker(), "A cél nem elérhető."); + logger.error(systemMarker, "A cél nem elérhető."); throw new NullPointerException("Internal error, missing 'targetUri'."); } @@ -358,7 +365,7 @@ public class CopyForArchiveNEXIORecordingsStep extends JobStep { if (!FTPReply.isPositiveCompletion(reply)) throw new Exception("STAT parancs válasza: " + sourceFtp.getReplyString()); - logger.info("Status: {}", sourceFtp.getReplyString()); + //logger.info("Status: {}", sourceFtp.getReplyString()); if (reply == 226) { break; } diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/FakeNoParamsStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/FakeNoParamsStep.java index f90b470d..5fb9225c 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/FakeNoParamsStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/FakeNoParamsStep.java @@ -11,23 +11,20 @@ public class FakeNoParamsStep extends JobStep { int count = 10; @StepEntry - public Object[] execute(IJobEngine jobEngine, IJobRuntime jobRuntime) throws InterruptedException { - logger.info(jobRuntime.getMarker(), "A folyamat elindult"); - logger.warn(jobRuntime.getMarker(), "Egy WARN"); - logger.error(jobRuntime.getMarker(), "Egy ERROR"); - // logger.warn(toMarker, "Egy WARN {}", "paraméterrel"); - // logger.error(toMarker, "Egy ERROR {}", "paraméterrel"); + public Object[] execute(IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception { + logger.warn(jobRuntime.getMarker(), "Egy WARN {}", "paraméterrel"); + logger.error(jobRuntime.getMarker(), "Egy ERROR {}", "paraméterrel"); for (int i = 0; i < count; i++) { if (!canContinue()) break; jobRuntime.incrementProgress((i + 1) * count); + Thread.sleep(100); logger.info(jobRuntime.getMarker(), "Log markered" + i); - // logger.info(toMarker, "Log markered" + i); - //logger.info("Progress {}", jobRuntime.getProgress()); + + if (i == 8) + throw new Exception("stop"); } - logger.info(jobRuntime.getFinishMarker(), "A folyamat véget ért"); - //logger.info(LogCollector.FINISH); return null; } diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/OctopusDataMiner.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/OctopusDataMiner.java index 1f565ec5..cf3acd5d 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/OctopusDataMiner.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/OctopusDataMiner.java @@ -82,6 +82,8 @@ public class OctopusDataMiner { private int objectCount; private int currentObjectIndex; + private boolean disableWrite = false; + public OctopusDataMiner() { db = NoSQLUtils.getNoSQLDB(); @@ -208,6 +210,9 @@ public class OctopusDataMiner { storeRundowns(rundowns); storeStoryFolders(storyFolders); + if (disableWrite) + return; + deleteDiff(currentRundowns.keySet(), rundownIDs, IOctopusAPI.RUNDOWN_COLLECTION); deleteDiff(currentFolder.keySet(), folderIDs, IOctopusAPI.FOLDER_COLLECTION); deleteDiff(currentStories.keySet(), storyIDs, IOctopusAPI.STORY_COLLECTION); @@ -359,7 +364,7 @@ public class OctopusDataMiner { String objId = obj.getString(IOctopusAPI.OBJ_ID); if (objId == null) continue; - result.put(mosId, label); + result.put(objId, label); } return result; @@ -367,7 +372,7 @@ public class OctopusDataMiner { private void fireProgressEvent() { currentObjectIndex++; - logger.info("currentObjectIndex {}", currentObjectIndex); + //logger.info("currentObjectIndex {}", currentObjectIndex); int progress = currentObjectIndex * 100 / objectCount; if (progress != progressEvent.getProgress()) { progressEvent.setProgress(progress); @@ -537,7 +542,8 @@ public class OctopusDataMiner { DBCollection collection = db.getCollection(IOctopusAPI.RUNDOWN_COLLECTION); long rundownID = NoSQLUtils.asLong(rundown, IOctopusAPI.ID); setObjectID(currentRundowns, rundownID, rundown); - collection.save(rundown); + if (!disableWrite) + collection.save(rundown); } logger.trace(ENTER); } @@ -607,7 +613,8 @@ public class OctopusDataMiner { story.append(IOctopusAPI.PARENT_STORY_ID, parentStoryId); logger.debug(SAVING_STORY_ID, storyID); setObjectID(currentStories, storyID, story); - collection.save(story); + if (!disableWrite) + collection.save(story); logger.trace(EXIT); } @@ -619,7 +626,8 @@ public class OctopusDataMiner { logger.debug("Storing story folder {}", name); long folderID = NoSQLUtils.asLong(storyFolder, IOctopusAPI.ID); setObjectID(currentFolder, folderID, storyFolder); - collection.save(storyFolder); + if (!disableWrite) + collection.save(storyFolder); logger.trace(EXIT); } diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/OutputPathAndNameSelectorStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/OutputPathAndNameSelectorStep.java index cb85b8d0..65718f14 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/OutputPathAndNameSelectorStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/OutputPathAndNameSelectorStep.java @@ -78,7 +78,8 @@ public class OutputPathAndNameSelectorStep extends JobStep { ensureTargetPathExistence(targetPath); } catch (Exception e) { logger.catching(e); - logger.error(getMarker(), "A cél mappa {} nem létezik és hozható létre. A rendszer hibaüzenete: {}", targetPath, e.getMessage()); + logger.error(jobRuntime.getMarker(), "A cél mappa '{}' nem létezik és hozható létre. A rendszer hibaüzenete: {}", targetPath, e.getMessage()); + throw e; } return new Object[] { targetPath, targetNamePattern }; } diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMRestoreStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMRestoreStep.java index 7ce84421..6d1d78a9 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMRestoreStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMRestoreStep.java @@ -5,7 +5,9 @@ import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.message.Message; +import user.commons.LogUtils; import user.commons.MediaCubeMarker; import user.commons.RemoteFile; import user.commons.StoreUri; @@ -51,16 +53,20 @@ public class TSMRestoreStep extends JobStep { targetFileName = String.format(targetNamePattern, sourceFileName); RemoteFile result = sourceUri.transferFrom(targetUri, sourceFileName, targetFileName); - String successMessage = "Az '{}' állomány visszatöltése sikeres. Elérhető az \r\n'{}' mappa\r\n'{}' állományában."; + Message msg = LogUtils.format("Az '{}' állomány visszatöltése sikeres. Elérhető az \r\n'{}' mappa\r\n'{}' állományában.", sourceFileName, + targetPath, targetFileName); if (StringUtils.isNotBlank(successRecipient)) - logger.info(new MediaCubeMarker(successRecipient), successMessage, sourceFileName, targetPath, targetFileName); - logger.info(getMarker(), successMessage, sourceFileName, targetPath, targetFileName); + logger.info(new MediaCubeMarker(successRecipient), msg); + logger.info(getMarker(), msg); + logger.info(jobRuntime.getMarker(), msg); if (killDateDays > 0) EscortFiles.createUNCKillDate(targetPath, targetFileName, killDateDays, getMarker()); } catch (Exception e) { - logger.error(getMarker(), "Az '{}' állomány visszatöltése sikertelen. A rendszer hibaüzenete: {}", sourceFileName, e.getMessage()); + Message msg = LogUtils.format("Az '{}' állomány visszatöltése sikertelen. A rendszer hibaüzenete: {}", sourceFileName, e.getMessage()); + logger.error(getMarker(), msg); + logger.error(jobRuntime.getMarker(), msg); logger.catching(e); throw e; } diff --git a/server/user.jobengine.osgi.commons/META-INF/MANIFEST.MF b/server/user.jobengine.osgi.commons/META-INF/MANIFEST.MF index 42c7d65a..1b5c1084 100644 --- a/server/user.jobengine.osgi.commons/META-INF/MANIFEST.MF +++ b/server/user.jobengine.osgi.commons/META-INF/MANIFEST.MF @@ -10,6 +10,7 @@ Import-Package: com.fasterxml.jackson.annotation;version="2.4.5", com.fasterxml.jackson.datatype.joda;version="2.4.5", com.fasterxml.jackson.jaxrs.json;version="2.4.5", org.apache.logging.log4j;version="2.8.2", + org.apache.logging.log4j.message;version="2.8.2", org.jboss.resteasy.client.jaxrs, org.jboss.resteasy.plugins.providers, org.jboss.resteasy.spi, diff --git a/server/user.jobengine.osgi.commons/src/user/commons/LogUtils.java b/server/user.jobengine.osgi.commons/src/user/commons/LogUtils.java new file mode 100644 index 00000000..41408c0e --- /dev/null +++ b/server/user.jobengine.osgi.commons/src/user/commons/LogUtils.java @@ -0,0 +1,12 @@ +package user.commons; + +import org.apache.logging.log4j.message.Message; +import org.apache.logging.log4j.message.ParameterizedMessageFactory; + +public class LogUtils { + private static ParameterizedMessageFactory factory = new ParameterizedMessageFactory(); + + public static Message format(String message, Object... parameters) { + return factory.newMessage(message, parameters); + } +} diff --git a/server/user.jobengine.osgi.commons/src/user/commons/MediaCubeFinishMarker.java b/server/user.jobengine.osgi.commons/src/user/commons/MediaCubeFinishMarker.java index e2b252ac..accab8e9 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/MediaCubeFinishMarker.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/MediaCubeFinishMarker.java @@ -5,10 +5,12 @@ public class MediaCubeFinishMarker extends MediaCubeMarker { public MediaCubeFinishMarker(MediaCubeMarker parent) { setSessionID(parent.getSessionID()); + setSessionName(parent.getSessionName()); } public MediaCubeFinishMarker(MediaCubeMarker parent, String to) { super(to); setSessionID(parent.getSessionID()); + setSessionName(parent.getSessionName()); } } diff --git a/server/user.jobengine.osgi.commons/src/user/commons/MediaCubeMarker.java b/server/user.jobengine.osgi.commons/src/user/commons/MediaCubeMarker.java index f1dbf54e..52805004 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/MediaCubeMarker.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/MediaCubeMarker.java @@ -7,6 +7,7 @@ public class MediaCubeMarker extends Log4jMarker { private static final String MEDIACUBE = "MEDIACUBE"; private String to; private String sessionID; + private String sessionName; public MediaCubeMarker() { super(MEDIACUBE); @@ -21,6 +22,10 @@ public class MediaCubeMarker extends Log4jMarker { return sessionID; } + public String getSessionName() { + return sessionName; + } + public String getTo() { return to; } @@ -29,6 +34,10 @@ public class MediaCubeMarker extends Log4jMarker { this.sessionID = sessionID; } + public void setSessionName(String sessionName) { + this.sessionName = sessionName; + } + public void setTo(String to) { this.to = to; } diff --git a/server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusAPI.java b/server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusAPI.java index c2eca5bf..eeee1dec 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusAPI.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusAPI.java @@ -155,7 +155,7 @@ public class OctopusAPI implements IOctopusAPI { public List getStories() { List result = null; DBCollection collection = db.getCollection(STORY_COLLECTION); - DBCursor find = collection.find().limit(1000); + DBCursor find = collection.find(new BasicDBObject(), new BasicDBObject("mosObjects", 1).append("_id", 0)).limit(1000); if (find.hasNext()) result = find.toArray(); return result; diff --git a/server/user.jobengine.osgi.server/pages/login.zul b/server/user.jobengine.osgi.server/pages/login.zul index 6fa93ee1..3cff1c78 100644 --- a/server/user.jobengine.osgi.server/pages/login.zul +++ b/server/user.jobengine.osgi.server/pages/login.zul @@ -21,7 +21,7 @@ Felhasználó - + Jelszó diff --git a/server/user.jobengine.osgi.server/pages/menu.zul b/server/user.jobengine.osgi.server/pages/menu.zul index a67f28d0..89ed1a88 100644 --- a/server/user.jobengine.osgi.server/pages/menu.zul +++ b/server/user.jobengine.osgi.server/pages/menu.zul @@ -55,9 +55,9 @@ - - - + + + diff --git a/server/user.jobengine.osgi.server/pages/retrieveselector.zul b/server/user.jobengine.osgi.server/pages/retrieveselector.zul index 0a7b553f..b6e2221c 100644 --- a/server/user.jobengine.osgi.server/pages/retrieveselector.zul +++ b/server/user.jobengine.osgi.server/pages/retrieveselector.zul @@ -1,23 +1,31 @@ - - - - - - - - - - - - - - -       Â