From: Vásáry Dániel Date: Thu, 12 Apr 2018 14:33:43 +0000 (+0000) Subject: git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube... X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=72d36c8f8a3b355889474061403ed93ebb62566b;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31026 --- diff --git a/server/-configuration/debug-mediacube-main-8888.launch b/server/-configuration/debug-mediacube-main-8888.launch new file mode 100644 index 00000000..e7463db1 --- /dev/null +++ b/server/-configuration/debug-mediacube-main-8888.launch @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/server/-configuration/scheduledjobs.json b/server/-configuration/scheduledjobs.json index bf3faacb..b2954182 100644 --- a/server/-configuration/scheduledjobs.json +++ b/server/-configuration/scheduledjobs.json @@ -224,7 +224,7 @@ "executeimmediate": false, "name" : "Teszt folyamat", "template": "fake.xml", - "cronexpression": "0 40 22 * * ?", + "cronexpression": "0 46-50/1 * * * ?", "parameters": [ {"name": "itemID", "value": 1, "type": "java.lang.Long"} ] }, { diff --git a/server/-configuration/debug-mediacube-bkup-9999.launch b/server/-configuration/test-debug-mediacube-bkup-9999.launch similarity index 100% rename from server/-configuration/debug-mediacube-bkup-9999.launch rename to server/-configuration/test-debug-mediacube-bkup-9999.launch diff --git a/server/-configuration/debug-mediacube-main-9999.launch b/server/-configuration/test-debug-mediacube-main-9999.launch similarity index 100% rename from server/-configuration/debug-mediacube-main-9999.launch rename to server/-configuration/test-debug-mediacube-main-9999.launch diff --git a/server/user.jobengine.executors/deploy-steps-to-bsh-bkup2.launch b/server/user.jobengine.executors/deploy-steps-to-bsh-bkup2.launch new file mode 100644 index 00000000..7e5b62eb --- /dev/null +++ b/server/user.jobengine.executors/deploy-steps-to-bsh-bkup2.launch @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/server/user.jobengine.executors/deploy-steps-to-bsh-main.bat b/server/user.jobengine.executors/deploy-steps-to-bsh-main.bat new file mode 100644 index 00000000..69a77ed0 --- /dev/null +++ b/server/user.jobengine.executors/deploy-steps-to-bsh-main.bat @@ -0,0 +1,30 @@ +@ECHO OFF + +SET REMOTE_HOST=10.10.1.28 +SET REMOTE_SERVER_HOSTKEY=ssh-ed25519 256 ea:ab:67:70:79:63:2f:6a:34:81:48:e2:b9:dd:ca:d4 +SET REMOTE_SERVER_ADDRESS=scp://root:password@%REMOTE_HOST% + +SET LOCAL_STEPS_LOCATION=bin/user +SET REMOTE_STEPS_LOCATION=/opt/mediacube/configuration/executors/user + +SET LOCAL_TEMPLATES_LOCATION=jobtemplates +SET REMOTE_TEMPLATES_LOCATION=/opt/mediacube/configuration/jobtemplates + + ECHO *** Deploy steps to server %REMOTE_HOST% *** + WinSCP.com /command ^ + "open %REMOTE_SERVER_ADDRESS% -hostkey=""%REMOTE_SERVER_HOSTKEY%"" -timeout=60" ^ + "lcd %LOCAL_STEPS_LOCATION%" ^ + "cd %REMOTE_STEPS_LOCATION%" ^ + "synchronize remote" ^ + "exit" + + ECHO *** Deploy templates to server %REMOTE_HOST% *** + WinSCP.com /command ^ + "open %REMOTE_SERVER_ADDRESS% -hostkey=""%REMOTE_SERVER_HOSTKEY%"" -timeout=60" ^ + "lcd %LOCAL_TEMPLATES_LOCATION%" ^ + "cd %REMOTE_TEMPLATES_LOCATION%" ^ + "synchronize remote" ^ + "exit" + +@ECHO ON + \ No newline at end of file diff --git a/server/user.jobengine.executors/deploy-steps-to-bsh-main.launch b/server/user.jobengine.executors/deploy-steps-to-bsh-main.launch new file mode 100644 index 00000000..b0f17ccb --- /dev/null +++ b/server/user.jobengine.executors/deploy-steps-to-bsh-main.launch @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/server/user.jobengine.executors/jobtemplates/archive-ondemand.xml b/server/user.jobengine.executors/jobtemplates/archive-ondemand.xml index fe104fc4..4a12203b 100644 --- a/server/user.jobengine.executors/jobtemplates/archive-ondemand.xml +++ b/server/user.jobengine.executors/jobtemplates/archive-ondemand.xml @@ -1,5 +1,5 @@ - + @@ -7,6 +7,7 @@ + @@ -18,6 +19,9 @@ + + + diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java index 545e8cc0..18563521 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java @@ -12,6 +12,7 @@ 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.Marker; import com.ibm.nosql.json.JSONUtil; import com.ibm.nosql.json.api.BasicDBObject; @@ -43,6 +44,7 @@ public class ArchiveListBuilderStep extends JobStep { public static final String MEDIA_DESCRIPTION = "mediaDescription"; public static final String MEDIA_TYPE = "mediaType"; private static final String DURATION = "duration"; + private Marker marker; private ArchiveItem createArchiveItem(Path jsonFilePath, Path mediaFilePath, Path catchedFilePath) { ArchiveItem result = null; @@ -81,14 +83,26 @@ public class ArchiveListBuilderStep extends JobStep { } @StepEntry - public Object[] execute(String sourcePath, IJobEngine jobEngine, IJobRuntime jobRuntime) { + public Object[] execute(String sourcePath, int limit, IJobEngine jobEngine, IJobRuntime jobRuntime) { + marker = jobRuntime.getMarker(); List archiveList = new ArrayList(); DirectoryStream directoryStream = null; + int counter = 0; try { - Files.newDirectoryStream(Paths.get(sourcePath)).forEach(p -> processPathItem(p, archiveList)); + DirectoryStream stream = Files.newDirectoryStream(Paths.get(sourcePath)); + for (Path p : stream) { + boolean processed = processPathItem(p, archiveList, limit); + if (processed) { + counter++; + if (limit > 0 && counter == limit) { + logger.info(marker, "A folyamat elérte a beállított {} limitet.", limit); + break; + } + } + } } catch (Exception e) { logger.catching(e); - logger.error(getMarker(), "Az '{}' mappa elérése sikertelen. A rendszer hibaüzenete: {}", e.getMessage()); + logger.error(marker, "Az '{}' mappa elérése sikertelen. A rendszer hibaüzenete: {}", e.getMessage()); } finally { if (directoryStream != null) { try { @@ -97,7 +111,7 @@ public class ArchiveListBuilderStep extends JobStep { } } } - logger.info(getMarker(), "Az archiváló folyamat {} új anyagot érzékelt.", archiveList == null ? 0 : archiveList.size()); + logger.info(marker, "Az archiváló folyamat {} új anyagot érzékelt.", archiveList == null ? 0 : archiveList.size()); return new Object[] { archiveList }; } @@ -109,12 +123,12 @@ public class ArchiveListBuilderStep extends JobStep { return result; } - private void processPathItem(Path mediaFilePath, final List archiveList) { + private boolean processPathItem(Path mediaFilePath, final List archiveList, int limit) { File mediaFile = mediaFilePath.toFile(); if (mediaFile.isDirectory() || !mediaFile.getName().toLowerCase().endsWith(MXFEXT.toLowerCase()) || mediaFile.getName().toLowerCase().endsWith(WAVEXT.toLowerCase())) { - return; + return false; } Path dotStorePath = Paths.get(mediaFilePath.getParent().toString(), STATUSFOLDER); @@ -122,43 +136,44 @@ public class ArchiveListBuilderStep extends JobStep { File catchedFile = catchedFilePath.toFile(); if (catchedFile.exists()) { logger.warn("{} file is already catched.", mediaFile.getName()); - return; + return false; } Path jsonFilePath = Paths.get(dotStorePath.toString(), mediaFile.getName() + JSONEXT); File jsonFile = jsonFilePath.toFile(); if (!jsonFile.exists()) { logger.warn("{} has no json metadata.", mediaFile.getName()); - return; + return false; } ArchiveItem archiveItem = createArchiveItem(jsonFilePath, mediaFilePath, catchedFilePath); if (archiveItem == null) { logger.warn("{} has no metadata specified.", mediaFile.getName()); - return; + return false; } if (StringUtils.isBlank(archiveItem.getItemHouseId())) { logger.warn("{} has no Item HouseID specified in metadata.", mediaFile.getName()); - return; + return false; } if (StringUtils.isBlank(archiveItem.getItemTitle())) { logger.warn("{} has no Item Title specified in metadata.", mediaFile.getName()); - return; + return false; } if (StringUtils.isBlank(archiveItem.getMediaHouseId())) { logger.warn("{} has no Media HouseID specified in metadata.", mediaFile.getName()); - return; + return false; } if (StringUtils.isBlank(archiveItem.getMediaTitle())) { logger.warn("{} has no Media Title specified in metadata.", mediaFile.getName()); - return; + return false; } archiveList.add(archiveItem); createCatchedFile(catchedFilePath); + return true; } } diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveMaterialSubmitStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveMaterialSubmitStep.java index 31e22db3..9c0265c3 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveMaterialSubmitStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveMaterialSubmitStep.java @@ -1,19 +1,16 @@ package user.jobengine.server.steps; +import java.io.File; import java.util.ArrayList; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.Marker; import user.commons.ListUtils; import user.jobengine.server.IJobEngine; import user.jobengine.server.IJobRuntime; -/** - * Elinditja minden mediara az archivalo folyamatot. - * - * @author robi - */ public class ArchiveMaterialSubmitStep extends JobStep { private static final Logger logger = LogManager.getLogger(); private static final String JOBTEMPLATE = "archive-material.xml"; @@ -23,25 +20,29 @@ public class ArchiveMaterialSubmitStep extends JobStep { private static final String ARCHIVE = "Archiválás"; private static final String GLOBAL_SOURCE_PATH = "globalSourcePath"; private static final String ARCHIVE_ITEM = "archiveItem"; + private Marker marker; @StepEntry public Object[] execute(String globalSourcePath, ArrayList archiveList, String transcoderTargetPath, String webPath, int killDateDays, - IJobEngine jobEngine, IJobRuntime jobRuntime) { - try { - for (ArchiveItem archiveItem : archiveList) { + IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception { + marker = jobRuntime.getMarker(); + if (jobRuntime.forkPrepare()) { + for (int i = 0; i < archiveList.size(); i++) { + ArchiveItem archiveItem = archiveList.get(i); try { - IJobRuntime runtime = jobEngine.submit(JOBTEMPLATE, ARCHIVE, ListUtils.asMap(ARCHIVE_ITEM, archiveItem, GLOBAL_SOURCE_PATH, - globalSourcePath, TRANSCODER_TARGET_PATH, transcoderTargetPath, WEB_PATH, webPath, KILL_DATE_DAYS, killDateDays)); - + jobEngine.submit(jobRuntime, null, JOBTEMPLATE, ARCHIVE, ListUtils.asMap(ARCHIVE_ITEM, archiveItem, GLOBAL_SOURCE_PATH, globalSourcePath, + TRANSCODER_TARGET_PATH, transcoderTargetPath, WEB_PATH, webPath, KILL_DATE_DAYS, killDateDays)); + setProgress((i + 1) * 100 / archiveList.size()); } catch (Exception e) { - if (archiveItem != null) - archiveItem.removeCatchedFile(); - throw e; + logger.catching(e); + String fileName = new File(archiveItem.getMediaFile()).getName(); + logger.error(marker, "Az '{}' állomány archiválási kísérlete sikertelen. A rendszer üzenete: {}", fileName, e.getMessage()); + if (!archiveItem.removeCatchedFile()) + logger.error(marker, "Az '{}' állomány .catched jelző állománya nem törölhető.", fileName); } } - } catch (Exception e) { - logger.catching(e); } + jobRuntime.forkWaitComplete(); return null; } diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/ImportStatisticsStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/ImportStatisticsStep.java index ce863149..ad00be9a 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/ImportStatisticsStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/ImportStatisticsStep.java @@ -6,6 +6,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.TimeZone; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -88,6 +89,7 @@ public class ImportStatisticsStep extends JobStep { createAPI(jobRuntime); Calendar scheduledDate = CalendarUtils.createZeroCalendar(Calendar.getInstance()); + scheduledDate.setTimeZone(TimeZone.getTimeZone("Europe/Budapest")); scheduledDate.add(Calendar.DAY_OF_YEAR, -1 * daysBeforeNow); List rundowns = octopusAPI.getRundowns(scheduledDate.getTime()); if (rundowns == null) diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/MetadataTransformStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/MetadataTransformStep.java index 9f40d80d..46a42743 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/MetadataTransformStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/MetadataTransformStep.java @@ -12,6 +12,7 @@ import java.util.Set; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.Marker; import user.jobengine.db.Item; import user.jobengine.db.ItemManager; @@ -31,6 +32,7 @@ public class MetadataTransformStep extends JobStep { private static final String ITEM_MANAGER_IS_NULL = "ItemManager is null"; public static final String DEFAULT_MEDIATYPE = "Generic"; private ItemManager itemManager; + private Marker marker; private void checkDuplicates(ArchiveItem archiveItem, String sourceFileName) throws Exception { if (itemManager.isMediaFileExists(sourceFileName)) { @@ -57,7 +59,7 @@ public class MetadataTransformStep extends JobStep { Files.move(sourcePath, Paths.get(conflictPath.toString(), sourceFileName + (new Date()).getTime())); } catch (Exception e1) { logger.catching(e1); - logger.error(getMarker(), "Hiba az állomány {} mappába másolásakor. A rendszer üzenete: {}", CONFLICT, e1.getMessage()); + logger.error(marker, "Hiba az '{}' állomány mappába másolásakor. A rendszer üzenete: {}", CONFLICT, e1.getMessage()); } throw new Exception("Az '" + sourceFileName + "' állomány már megtalálható az archívumban, archiválása nem lehetséges."); } @@ -73,6 +75,7 @@ public class MetadataTransformStep extends JobStep { @StepEntry public Object[] execute(ArchiveItem archiveItem, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception { + marker = jobRuntime.getMarker(); Media mediaCubeMedia = null; itemManager = (ItemManager) jobEngine.getItemManager(); if (itemManager == null) @@ -88,8 +91,11 @@ public class MetadataTransformStep extends JobStep { itemManager.mergeItemStructure(mediaCubeItem); } catch (Exception e) { logger.catching(e); + String fileName = new File(archiveItem.getMediaFile()).getName(); + logger.error(marker, "Az '{}' állomány nem archiválható, mert a metaadat transzformáció sikertelen. A rendszer üzenete: {}", fileName, + e.getMessage()); if (!archiveItem.removeCatchedFile()) - logger.error(getMarker(), "A {} állomány .catched jelző állománya nem törölhető.", new File(archiveItem.getMediaFile()).getName()); + logger.error(marker, "Az '{}' állomány .catched jelző állománya nem törölhető.", fileName); throw e; } finally { jobRuntime.incrementProgress(100); diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMBackupStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMBackupStep.java index c2b093bc..0b540ed7 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMBackupStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/TSMBackupStep.java @@ -7,6 +7,7 @@ import java.util.Date; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.message.ParameterizedMessage; @@ -33,13 +34,11 @@ public class TSMBackupStep extends JobStep { private Store tsmStore; private StoreUri targetUri; private FileType fileType; - - // @Override - // public String getDescription() { - // } + private Marker marker; @StepEntry public Object[] execute(ArchiveItem archiveItem, Media mediaCubeMedia, int killDateDays, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception { + marker = jobRuntime.getMarker(); File sourceMediaFile = new File(archiveItem.getMediaFile()); String sourceFileName = sourceMediaFile.getName(); String details = String.format("%s (%d bytes)", sourceFileName, sourceMediaFile.length()); @@ -67,16 +66,16 @@ public class TSMBackupStep extends JobStep { RemoteFile remoteFile = sourceUri.transferFrom(targetUri, sourceFileName, sourceFileName); saveMetadata(mediaCubeMedia, sourceFileName); - logger.info(getMarker(), "Az '{}' állomány archiválása sikeres.", sourceFileName); + logger.info(marker, "Az '{}' állomány archiválása sikeres.", sourceFileName); if (killDateDays > 0) - EscortFiles.createUNCKillDate(sourceMediaFile.getParent(), sourceFileName, killDateDays, getMarker()); + EscortFiles.createUNCKillDate(sourceMediaFile.getParent(), sourceFileName, killDateDays, marker); } catch (Exception e) { logger.catching(e); Message m = new ParameterizedMessage("Az '{}' állomány archiválása sikertelen. A rendszer hibaüzenete: {}", details, e.getMessage()); - logger.error(getMarker(), m); + logger.error(marker, m); if (!archiveItem.removeCatchedFile()) - logger.error(getMarker(), + logger.error(marker, "Az '{}' állomány .catched jelző állománya nem törölhető. Az újabb archiválási kísérlethez annak kézi eltávolítása szükséges!", sourceMediaFile.getName()); throw new Exception(m.getFormattedMessage()); @@ -95,44 +94,44 @@ public class TSMBackupStep extends JobStep { private void setAndCheck(ArchiveItem archiveItem, Media mediaCubeMedia, IJobEngine jobEngine) throws JobEngineException, IOException { if (jobEngine == null) { - logger.error(getMarker(), "Az folyamatkezelő réteg nem elérhető."); + logger.error(marker, "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(marker, "Az adatbáziskezelő réteg nem elérhető."); throw new NullPointerException("Internal error, missing ItemManager reference."); } if (archiveItem == null) { - logger.error(getMarker(), "A folyamat 'archiveItem' bemeneti paramétere üres."); + logger.error(marker, "A folyamat 'archiveItem' bemeneti paramétere üres."); throw new NullPointerException("System is not configured properly, missing 'archiveItem' input parameter."); } sourceMediaFile = new File(archiveItem.getMediaFile()); if (sourceMediaFile == null) { - logger.error(getMarker(), "A folyamat 'archiveItem' bemeneti paraméter 'mediaFile' értéke üres."); + logger.error(marker, "A folyamat 'archiveItem' bemeneti paraméter 'mediaFile' értéke üres."); throw new NullPointerException("System is not configured properly, missing 'mediaFile' value in 'archiveItem' input parameter."); } if (!sourceMediaFile.exists()) { - logger.error(getMarker(), "Az {} állomány nem létezik vagy nem érhető el.", sourceMediaFile.getName()); + logger.error(marker, "Az {} állomány nem létezik vagy nem érhető el.", sourceMediaFile.getName()); throw new IOException(String.format("Input file {} not exists or unreachable.", sourceMediaFile.getName())); } tsmStore = manager.getSystemStore(false); if (tsmStore == null) { - logger.error(getMarker(), "A TSM rendszer beállítás nem elérhető."); + logger.error(marker, "A TSM rendszer beállítás nem elérhető."); throw new NullPointerException("System is not configured properly, missing TSM Store."); } targetUri = tsmStore.getSourceStoreUri(RemoteStoreProtocol.TSM); if (targetUri == null) { - logger.error(getMarker(), "A TSM rendszer beállítás paraméterei nem elérhetőek."); + logger.error(marker, "A TSM rendszer beállítás paraméterei nem elérhetőek."); throw new NullPointerException("System is not configured properly, missing TSM StoreUri."); } fileType = manager.getFileType("High-res"); if (fileType == null) { - logger.error(getMarker(), "Adatbázis bejegyzés hiba, a 'High-res' FileType nem található."); + logger.error(marker, "Adatbázis bejegyzés hiba, a 'High-res' FileType nem található."); throw new NullPointerException("System is not configured properly, missing 'High-res' FileType."); } if (mediaCubeMedia == null) { - logger.error(getMarker(), "A folyamat 'mediaCubeMedia' bemeneti paramétere üres."); + logger.error(marker, "A folyamat 'mediaCubeMedia' bemeneti paramétere üres."); throw new NullPointerException("System is not configured properly, 'mediaCubeMedia' input parameter missing."); } diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeSELENIOStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeSELENIOStep.java index c548e980..5e90b8a9 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeSELENIOStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeSELENIOStep.java @@ -2,6 +2,7 @@ package user.jobengine.server.steps; import java.io.File; import java.io.IOException; +import java.net.MalformedURLException; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; @@ -15,6 +16,7 @@ import javax.xml.namespace.QName; import org.apache.commons.lang.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.message.ParameterizedMessage; @@ -52,24 +54,7 @@ public class TranscodeSELENIOStep extends JobStep { private FileType fileType; private String transcoderTargetPath; private String webPath; - - public TranscodeSELENIOStep() throws Exception { - try { - address = System.getProperty("jobengine.selenio.address"); - if (StringUtils.isBlank(address)) - throw new NullPointerException("System is not configured properly, 'jobengine.selenio.address' startup parameter missing."); - - projectFilePath = System.getProperty("jobengine.selenio.projectfilepath"); - if (StringUtils.isBlank(projectFilePath)) - throw new NullPointerException("System is not configured properly, 'jobengine.selenio.projectfilepath' startup parameter missing."); - TranscodeMgrWSService service = new TranscodeMgrWSService(new URL(address), - new QName("http://ws.server.mediamanager.digitalrapids.ca/", "TranscodeMgrWSService")); - transcoder = service.getTranscodeMgrWSPort(); - } catch (Exception e) { - logger.catching(e); - throw e; - } - } + private Marker marker; private TranscodeRequest buildTranscodeRequest(String projectFilePath, String sourceFilePath) throws java.lang.Exception { Clip clip = new Clip(); @@ -106,31 +91,16 @@ public class TranscodeSELENIOStep extends JobStep { @StepEntry public Object[] execute(String globalSourcePath, ArchiveItem archiveItem, Media mediaCubeMedia, String transcoderTargetPath, String webPath, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception { + marker = jobRuntime.getMarker(); + String sourceFileName = null; - if (StringUtils.isBlank(globalSourcePath)) - throw new NullPointerException("System is not configured properly, 'globalInputFolder' parameter missing."); - manager = jobEngine.getItemManager(); - - store = manager.getSystemStore(true); - if (store == null) - throw new NullPointerException("System is not configured properly, low-res system store definition missing."); - - fileType = manager.getFileType(LOWRES_FILETYPE); - if (fileType == null) - throw new NullPointerException("System is not configured properly, low-res file type definition missing."); - - if (StringUtils.isBlank(transcoderTargetPath)) - throw new NullPointerException("System is not configured properly, 'transcoderTargetPath' parameter missing."); - this.transcoderTargetPath = transcoderTargetPath; + try { + setAndCheck(globalSourcePath, transcoderTargetPath, webPath, jobEngine); - if (StringUtils.isBlank(webPath)) - throw new NullPointerException("System is not configured properly, 'webPath' parameter missing."); - this.webPath = webPath; + File sourceMediaFile = new File(archiveItem.getMediaFile()); + sourceFileName = sourceMediaFile.getName(); + String details = String.format("%s (%d bytes)", sourceFileName, sourceMediaFile.length()); - File sourceMediaFile = new File(archiveItem.getMediaFile()); - String sourceFileName = sourceMediaFile.getName(); - String details = String.format("%s (%d bytes)", sourceFileName, sourceMediaFile.length()); - try { Path inputPath = Paths.get(globalSourcePath, sourceFileName); String sourceFilePath = inputPath.toString(); TranscodeRequest transcodeRequest = buildTranscodeRequest(projectFilePath, sourceFilePath); @@ -146,8 +116,8 @@ public class TranscodeSELENIOStep extends JobStep { processState(transcodeTask, jobEngine, mediaCubeMedia); } catch (Exception e) { logger.catching(e); - Message m = new ParameterizedMessage("Az '{}' állomány átkódolása sikertelen. A rendszer hibaüzenete: {}", details, e.getMessage()); - logger.error(getMarker(), m); + Message m = new ParameterizedMessage("Az '{}' állomány átkódolása sikertelen. A rendszer hibaüzenete: {}", sourceFileName, e.getMessage()); + logger.error(marker, m); throw new Exception(m.getFormattedMessage()); } return null; @@ -197,7 +167,7 @@ public class TranscodeSELENIOStep extends JobStep { } } catch (IOException e) { logger.catching(e); - logger.error(getMarker(), "A {} állomány mozgatása a {} mappába nem sikerült.", outFile, webPath); + logger.error(marker, "Az '{}' állomány mozgatása a '{}' mappába nem sikerült.", outFile, webPath); } } @@ -214,4 +184,37 @@ public class TranscodeSELENIOStep extends JobStep { } } + private void setAndCheck(String globalSourcePath, String transcoderTargetPath, String webPath, IJobEngine jobEngine) throws MalformedURLException { + address = System.getProperty("jobengine.selenio.address"); + if (StringUtils.isBlank(address)) + throw new NullPointerException("System is not configured properly, 'jobengine.selenio.address' startup parameter missing."); + + projectFilePath = System.getProperty("jobengine.selenio.projectfilepath"); + if (StringUtils.isBlank(projectFilePath)) + throw new NullPointerException("System is not configured properly, 'jobengine.selenio.projectfilepath' startup parameter missing."); + TranscodeMgrWSService service = new TranscodeMgrWSService(new URL(address), + new QName("http://ws.server.mediamanager.digitalrapids.ca/", "TranscodeMgrWSService")); + transcoder = service.getTranscodeMgrWSPort(); + + if (StringUtils.isBlank(globalSourcePath)) + throw new NullPointerException("System is not configured properly, 'globalInputFolder' parameter missing."); + manager = jobEngine.getItemManager(); + + store = manager.getSystemStore(true); + if (store == null) + throw new NullPointerException("System is not configured properly, low-res system store definition missing."); + + fileType = manager.getFileType(LOWRES_FILETYPE); + if (fileType == null) + throw new NullPointerException("System is not configured properly, low-res file type definition missing."); + + if (StringUtils.isBlank(transcoderTargetPath)) + throw new NullPointerException("System is not configured properly, 'transcoderTargetPath' parameter missing."); + this.transcoderTargetPath = transcoderTargetPath; + + if (StringUtils.isBlank(webPath)) + throw new NullPointerException("System is not configured properly, 'webPath' parameter missing."); + this.webPath = webPath; + } + } diff --git a/server/user.jobengine.osgi.server/WEB-INF/web.xml b/server/user.jobengine.osgi.server/WEB-INF/web.xml index 2aa75113..e34f10d5 100644 --- a/server/user.jobengine.osgi.server/WEB-INF/web.xml +++ b/server/user.jobengine.osgi.server/WEB-INF/web.xml @@ -5,8 +5,8 @@ - ZK loader for ZUML pages zkLoader + ZK loader for ZUML pages org.zkoss.zk.ui.http.DHtmlLayoutServlet update-uri @@ -16,8 +16,8 @@ - The asynchronous update engine for ZK auEngine + The asynchronous update engine for ZK org.zkoss.zk.au.http.DHtmlUpdateServlet @@ -47,9 +47,9 @@ /test - - - + + 15 + index.html index.htm diff --git a/server/user.jobengine.osgi.server/WEB-INF/zk.xml b/server/user.jobengine.osgi.server/WEB-INF/zk.xml index e5ac6a4d..ae2934e9 100644 --- a/server/user.jobengine.osgi.server/WEB-INF/zk.xml +++ b/server/user.jobengine.osgi.server/WEB-INF/zk.xml @@ -10,7 +10,7 @@ Lejárt a munkamenet, kérem töltse be újra az alkalmazást. - 900 + diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/NewsHistoryModel.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/NewsHistoryModel.java index 241029fb..a9fc4e08 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/NewsHistoryModel.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/NewsHistoryModel.java @@ -58,6 +58,7 @@ public class NewsHistoryModel { Selectors.wireComponents(view, this, false); Calendar calendar = CalendarUtils.createZeroCalendar(); calendar.add(Calendar.DAY_OF_YEAR, -1); + //calendar.setTimeZone(TimeZone.getTimeZone("Europe/Budapest")); setSelectedDate(calendar.getTime()); } @@ -154,8 +155,10 @@ public class NewsHistoryModel { initChart(typeChartSumDuration); initChart(planChart); - Calendar scheduledDate = CalendarUtils.createZeroCalendar(selectedDate); - BasicDBObject dateFilter = new BasicDBObject("dateTime", scheduledDate.getTime()); + // Calendar scheduledDate = CalendarUtils.createZeroCalendar(selectedDate); + // scheduledDate.setTimeZone(TimeZone.getTimeZone("Europe/Budapest")); + + BasicDBObject dateFilter = new BasicDBObject("dateTime", selectedDate); BasicDBObject dailyData = (BasicDBObject) collection.findOne(dateFilter); if (dailyData == null) { return;