git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 10 Oct 2017 07:31:59 +0000 (07:31 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 10 Oct 2017 07:31:59 +0000 (07:31 +0000)
22 files changed:
client/DxPlay/DxPlayer.cs
client/DxPlay/MediaDetector.cs
client/DxPlay/PlayerForm.cs
client/DxPlay/Timecode.cs
client/IntegrationTests/JobEngineIT.cs
client/Maestro/Resources/configuration-nexio.json
client/Maestro/Sources/NexioRESTSource.cs
client/Maestro/Targets/FTPTargetProcessor.cs
client/Maestro/Targets/FXPTargetProcessor.cs
client/MediaCubeClient/MediaCubeApi.cs
server/-configuration/log4j2.xml
server/-configuration/run-mediacube-server-localhost.launch
server/-product/log4j2.xml
server/-product/pom.xml
server/user.commons.log4j2/META-INF/MANIFEST.MF
server/user.commons.log4j2/src/user/commons/log4j2/appender/SmtpManager.java
server/user.jobengine.osgi.db/test/user/jobengine/db/TestItem.java
server/user.jobengine.osgi.server/pages/index.zul
server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java
server/user.jobengine.osgi.services/META-INF/MANIFEST.MF
server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/ComponentBinder.java
server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/jobengine/JobengineService.java

index 82c6fb514f22f916c927b9120efa8d4aac5137ef..d8dff3b146ea71fa507f4d8e7f06f4f0f3a3f013 100644 (file)
@@ -77,7 +77,8 @@ namespace DxPlay {
                 int hr;\r
                 IntPtr hEvent;\r
                 MediaDescription = mediaDesc;\r
-                CurrentTC = new Timecode(mediaDesc.FirstFrame);\r
+                if (mediaDesc != null)\r
+                    CurrentTC = new Timecode(mediaDesc.FirstFrame);\r
                 Debug.WriteLine("SetupGraph");\r
                 // Set up the graph\r
                 SetupGraph(hWin);\r
@@ -207,8 +208,10 @@ namespace DxPlay {
         private void SetupGraph(Control hWin) {\r
             int hr;\r
 \r
-            m_videoWidth = MediaDescription.Resolution.Width;\r
-            m_videoHeight = MediaDescription.Resolution.Height;\r
+            if (MediaDescription != null) {\r
+                m_videoWidth = MediaDescription.Resolution.Width;\r
+                m_videoHeight = MediaDescription.Resolution.Height;\r
+            }\r
 \r
             try {\r
                 m_FilterGraph = new FilterGraph() as IFilterGraph2;\r
@@ -227,8 +230,8 @@ namespace DxPlay {
                 hr = m_FilterGraph.AddSourceFilter(MediaDescription.FileName, MediaDescription.FileName, out sourceFilter);\r
                 DsError.ThrowExceptionForHR(hr);\r
 \r
-                //IBaseFilter splitter = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "LAV Splitter");\r
-                IBaseFilter splitter = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "SONY MXF Splitter");\r
+                IBaseFilter splitter = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "LAV Splitter");\r
+                //IBaseFilter splitter = FilterGraphTools.AddFilterByName(graphBuilder, FilterCategory.LegacyAmFilterCategory, "SONY MXF Splitter");\r
                 if (splitter == null)\r
                     throw new Exception("No splitter!");\r
 \r
@@ -454,7 +457,8 @@ namespace DxPlay {
             Debug.WriteLine("CloseInterfaces");\r
             int hr;\r
             GC.SuppressFinalize(this);\r
-            tcWorker.CancelAsync();\r
+            if (tcWorker != null)\r
+                tcWorker.CancelAsync();\r
             lock (this) {\r
                 if (State != GraphState.Exiting) {\r
                     State = GraphState.Exiting;\r
index 0b116be781642566a20a6df4f92356df4b924a30..95a19118a6c9106eed41b3143aaae827b4c7281a 100644 (file)
@@ -23,6 +23,7 @@ namespace DxPlay {
         public static MediaDescription GetDescription(string fileName) {\r
             MediaDescription mediaDesc = new MediaDescription();\r
             mediaDesc.fileName = fileName;\r
+            //return mediaDesc;\r
             logger.Debug("Start MediaInfo");\r
             MediaInfo MI = new MediaInfo();\r
             MI.Open(fileName);\r
@@ -57,8 +58,10 @@ namespace DxPlay {
 \r
         private static void setResolution(MediaDescription mediaDesc, MediaInfo MI) {\r
             int videoStreams = MI.Count_Get(StreamKind.Video);\r
-            if (videoStreams != 1)\r
+            if (videoStreams > 1)\r
                 throw new Exception("Multiple video streams found!");\r
+            if (videoStreams == 1) {\r
+            }\r
             int Width = int.Parse(MI.Get(StreamKind.Video, 0, "Width"));\r
             int Height = int.Parse(MI.Get(StreamKind.Video, 0, "Height"));\r
             mediaDesc.resolution = new Size(Width, Height);\r
index c282888a7745a10c04cf33eecc004bd973556ccb..9fb953a37055a9e0ce2ae8338df826d17cd87e41 100644 (file)
@@ -46,10 +46,13 @@ namespace DxPlay {
 \r
                 trackBar1.Value = 0;\r
                 trackBar1.Minimum = 0;\r
-                trackBar1.Maximum = m_mediaDescription.Duration.Frames + 1;\r
                 m_play = new DxPlayer(panelVideo, m_mediaDescription);\r
-                txtStartTC.Text = m_mediaDescription.FirstFrame.ToString();\r
-                txtEndTC.Text = m_mediaDescription.Duration.ToString();\r
+                m_play.PlayEvent += new DxPlayEvent(playEvent);\r
+                if (m_mediaDescription != null) {\r
+                    trackBar1.Maximum = m_mediaDescription.Duration.Frames + 1;\r
+                    txtStartTC.Text = m_mediaDescription.FirstFrame.ToString();\r
+                    txtEndTC.Text = m_mediaDescription.Duration.ToString();\r
+                }\r
             }\r
             catch (COMException ce) {\r
                 MessageBox.Show("Failed to open file: " + ce.Message, "Open Error", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
@@ -291,7 +294,6 @@ namespace DxPlay {
 \r
         private void PlayerForm_Shown(object sender, EventArgs e) {\r
             if (m_play != null) {\r
-                m_play.PlayEvent += new DxPlayEvent(playEvent);\r
                 if (AutoStart)\r
                     m_play.Play();\r
                 else {\r
index 2ba4faba1a9e84fd882d7994abc6836dda88c498..a81427738101402d74d5b0933704678b8f396de8 100644 (file)
@@ -13,6 +13,8 @@ namespace DxPlay {
         }\r
 \r
         public Timecode(Timecode tc) {\r
+            if (tc == null)\r
+                return;\r
             startFrame = tc.startFrame;\r
             frameRate = tc.frameRate;\r
         }\r
index b7ea6d5c3a4bbd913e8927294eef33e101d379df..56794fc87760fb7e59cd683fd4eccf7e329db588 100644 (file)
@@ -66,5 +66,12 @@ namespace IntegrationTests {
             MediaCubeApi client = new MediaCubeApi("http://localhost:8080/services/rest/jobengine/", null, null, 100);\r
             client.Item();\r
         }\r
+\r
+        [TestMethod]\r
+        public void TestNotify() {\r
+            MediaCubeApi client = new MediaCubeApi("http://localhost:8080/services/rest/jobengine/", null, null, 100);\r
+            client.Notify("vasay@elgekko.net", "Újravágást kérek!");\r
+        }\r
+\r
     }\r
 }\r
index 5964ad71a26137fbe6833399d4f75396e451e959..afd9612fe4b012f3712d452b5203c28970b87e80 100644 (file)
@@ -23,7 +23,7 @@
     {\r
       "$type": "OctopusMetadata",\r
       "server": {\r
-        "address": "http://10.10.1.28:8080/services/rest/octopus/",\r
+        "address": "http://10.10.1.28:8080/services/rest/octopus",\r
         "userName": "dani",\r
         "password": "dani",\r
         "timeout": 1000\r
@@ -41,7 +41,7 @@
     {\r
       "$type": "MediaCubeMetadata",\r
       "server": {\r
-        "address": "http://10.10.1.28:8080/services/rest/jobengine/",\r
+        "address": "http://10.10.1.28:8080/services/rest/jobengine",\r
         "userName": "dani",\r
         "password": "dani"\r
       }\r
index edbcd1d52d4677fba4609de6a8f36d2efce1af04..bfc2c5ab586aa02383590bf424de4c46215cc7ba 100644 (file)
@@ -170,7 +170,7 @@ namespace Maestro.Sources {
 \r
         private void OnDeleted(JToken d) {\r
             string id = d[ID].ToString();\r
-            var item = this.Where(i => i.ID.Equals(id)).First();\r
+            var item = this.Where(i => i.ID != null && i.ID.Equals(id)).First();\r
             parent.SafeCall(() => {\r
                 Remove(item);\r
                 messageBus.Send(new RemoveFileActionMsg() {\r
index fb82d9e5f38ac8729aeab4f4d41ad1a2ad7f9712..35a50856a6ba8e523bf1f48f4ee16e50513df686 100644 (file)
@@ -16,13 +16,17 @@ namespace Maestro.Targets {
         public FTPTargetProcessor(Control parent, TargetProcessorParametersWrapper parameters)\r
             : base(parent, parameters) {\r
             FtpTrace.LogFunctions = false;\r
-            Uri inputUri = new Uri(String.Format("{0}/{1}", parameters.SourceConfig.Local.Address.LocalPath, parameters.InputFileName));\r
+            Uri inputUri = createInputUri(parameters);\r
             inputFile = new FileInfo(inputUri.LocalPath);\r
             Input = inputFile.FullName;\r
             ID = parameters.ID;\r
             workFlowAction = new WorkflowAction() { houseId = ID, tag = parameters.TargetConfig.Tag, touched = DateTime.Now };\r
         }\r
 \r
+        protected virtual Uri createInputUri(TargetProcessorParametersWrapper parameters) {\r
+            return new Uri(String.Format("{0}/{1}", parameters.SourceConfig.Local.Address.LocalPath, parameters.InputFileName));\r
+        }\r
+\r
         protected override void BeforeExecute() {\r
             base.BeforeExecute();\r
             targetFTP = CreateClient(parameters.TargetConfig.Remote);\r
index 9bc19495812d1ff4a953ac6dd925108127dc3f0e..1032b08e915a47da8b30c2709e4e59adb6828a55 100644 (file)
@@ -17,6 +17,10 @@ namespace Maestro.Targets {
             sourceConfig = parameters.SourceConfig;\r
         }\r
 \r
+        protected override Uri createInputUri(TargetProcessorParametersWrapper parameters) {\r
+            return new Uri(String.Format("{0}/{1}", parameters.SourceConfig.Remote.Address, parameters.InputFileName));\r
+        }\r
+\r
         protected override void UploadFile() {\r
             FtpClient sourceFTP = null;\r
             FtpClient monitorFTP = null;\r
index 646e4385d5febb6a48fb7720ac155bb85e6fe476..afa9fcee94b26ada104fc0044b24296c0ad0d51f 100644 (file)
@@ -46,6 +46,17 @@ namespace JobEngineClient {
             return result;\r
         }\r
 \r
+        public void Notify(string to, string content) {\r
+            var request = new RestRequest("notify", Method.GET);\r
+            //Debug.WriteLine(body);\r
+            request.AddQueryParameter("to", to);\r
+            request.AddQueryParameter("content", content);\r
+            var response = client.Execute(request);\r
+            if (response.StatusCode != HttpStatusCode.OK || response.ContentLength < 1)\r
+                return;\r
+        }\r
+\r
+\r
         public void Item() {\r
             var request = new RestRequest("item", Method.GET);\r
             var response = client.Execute(request);\r
index 02af14987cdc24898b4e4cf051abf35a0ba56020..49bce29b1f2d0be9b43a77eb722bca69ecf7d145 100644 (file)
                        </Filters>\r
                        <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %markerSimpleName - %msg (%F:%L) %n" />\r
                </Console>\r
-               <HTMLMailAppender name="MarkeredMail" subject="MEDIACUBE" to="vasary@elgekko.net" from="mediacubeserver@gmail.com" smtpHost="smtp.gmail.com"\r
+               <HTMLMailAppender name="MarkeredMail" subject="MediaCube rendszerüzenet" to="vasary@elgekko.net" from="mediacubeserver@gmail.com" smtpHost="smtp.gmail.com"\r
                        smtpPort="465" smtpProtocol="smtps" smtpUsername="mediacubeserver@gmail.com" smtpPassword="salabakter" ignoreExceptions="false" bufferSize="1">\r
                        <Filters>\r
                                <MarkerFilter marker="MEDIACUBE" onMatch="ACCEPT" onMismatch="DENY" />\r
                        </Filters>\r
-                       <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %msg (%F:%L) %n" />\r
+                       <PatternLayout pattern="%d{HH:mm:ss} %-5level - %msg %n%n A küldő a %F forráskód %L. sorából a %logger{1}.%M függvény volt. %n" />\r
                </HTMLMailAppender>\r
                <RollingFile name="RollingFile" fileName="${fileName}" filePattern="${filePattern}">\r
                        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%-5level] [%t] [%M] [%class{36}] %msg%n %throwable{short}" />\r
index 842617af52992cab76c73a72ec77835f3eee4531..1da64ac2c8c3c3bd9b2de630b4427afea822cafb 100644 (file)
@@ -19,7 +19,7 @@
 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>\r
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>\r
 <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory&#13;&#10;-Dorg.eclipse.equinox.http.jetty.http.port=8080&#13;&#10;-Dorg.eclipse.epp.logging.aeri.skipReports=true &#13;&#10;-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-Djobengine.jobsteps.root=&quot;${workspace_loc}/user.jobengine.executors/config&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://localhost:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.db.user=db2admin&#13;&#10;-Djobengine.db.password=salabakter&#13;&#10;-Djobengine.loglevel=INFO&#13;&#10;-Dlog4j.configurationFile=&quot;${workspace_loc}/-configuration/log4j2.xml&quot;&#13;&#10;-Djobengine.jobsteps.alternate.root=&quot;${workspace_loc}/user.jobengine.executors/bin/user/jobengine/server/steps&quot;&#13;&#10;-Djobengine.transcoder.source=c:\_Movie\hires\&#13;&#10;-Djetty.home=&quot;${workspace_loc:-configuration}/jetty&quot;&#13;&#10;-Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml&#13;&#10;-Djobengine.octopus.api.address=http://10.10.1.21/api/v1&#13;&#10;-Djobengine.octopus.api.user=mam&#13;&#10;-Djobengine.octopus.api.password=napocska&#13;&#10;-Djobengine.nosql.db.url=jdbc:db2://localhost:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.nosql.db.user=db2admin&#13;&#10;-Djobengine.nosql.db.password=salabakter&#13;&#10;-Djobengine.nosql.db.schema=test&#13;&#10;-Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl&#13;&#10;-Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC_v4.zenium&#13;&#10;-Djobengine.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;-Dnexio.host=10.10.1.555"/>\r
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory&#13;&#10;-Dorg.eclipse.equinox.http.jetty.http.port=8080&#13;&#10;-Dorg.eclipse.epp.logging.aeri.skipReports=true &#13;&#10;-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-Djobengine.jobsteps.root=&quot;${workspace_loc}/user.jobengine.executors/config&quot;&#13;&#10;-Djobengine.jobtemplates.root=&quot;${workspace_loc}/user.jobengine.executors/jobtemplates&quot;&#13;&#10;-Djobengine.db.url=jdbc:db2://localhost:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.db.user=db2admin&#13;&#10;-Djobengine.db.password=salabakter&#13;&#10;-Djobengine.loglevel=INFO&#13;&#10;-Dlog4j.configurationFile=&quot;${workspace_loc}/-configuration/log4j2.xml&quot;&#13;&#10;-Djobengine.jobsteps.alternate.root=&quot;${workspace_loc}/user.jobengine.executors/bin/user/jobengine/server/steps&quot;&#13;&#10;-Djobengine.transcoder.source=c:\_Movie\hires\&#13;&#10;-Djetty.home=&quot;${workspace_loc:-configuration}/jetty&quot;&#13;&#10;-Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml&#13;&#10;-Djobengine.octopus.api.address=http://10.10.1.21/api/v1&#13;&#10;-Djobengine.octopus.api.user=mam&#13;&#10;-Djobengine.octopus.api.password=napocska&#13;&#10;-Djobengine.nosql.db.url=jdbc:db2://localhost:50000/mc:retrieveMessagesFromServerOnGetMessage=true;&#13;&#10;-Djobengine.nosql.db.user=db2admin&#13;&#10;-Djobengine.nosql.db.password=salabakter&#13;&#10;-Djobengine.nosql.db.schema=test&#13;&#10;-Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl&#13;&#10;-Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC_v4.zenium&#13;&#10;-Djobengine.jobscheduling.config=&quot;${workspace_loc}/-configuration/scheduledjobs.json&quot;&#13;&#10;-Dnexio.host=10.10.1.55"/>\r
 <stringAttribute key="pde.version" value="3.3"/>\r
 <booleanAttribute key="show_selected_only" value="false"/>\r
 <stringAttribute key="target_bundles" value="cglib@default:default,com.auth0.java-jwt@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.fasterxml.jackson.module.jackson-module-jaxb-annotations@default:default,com.google.guava@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,com.sun.el.javax.el@default:default,commons-logging@default:default,javassist@default:default,javax.annotation-api@default:default,javax.inject@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.servlet.jsp-api@default:default,javax.validation.api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang3@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.jasper.glassfish@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jdt.core.compiler.batch@default:default,org.eclipse.jetty.client@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.jsp@default:default,org.eclipse.jetty.osgi.boot.jsp@default:false,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jaxrs@default:true,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.jvnet.mimepull@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,org.reflections@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
index 2f63f206f848e261602f1e7ff9b0aa338954f71e..fa326f125c70d9f65e62393dc4eb117d591e1406 100644 (file)
@@ -26,7 +26,7 @@
                        <Filters>\r
                                <MarkerFilter marker="MEDIACUBE" onMatch="ACCEPT" onMismatch="DENY" />\r
                        </Filters>\r
-                       <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{1}.%M - %msg (%F:%L) %n" />\r
+                       <PatternLayout pattern="%d{HH:mm:ss} %-5level - %msg %n%n A küldő a %F forráskód %L. sorából a %logger{1}.%M függvény volt. %n" />\r
                </HTMLMailAppender>\r
                <RollingFile name="MarkeredRollingFile" fileName="${markeredFileName}" filePattern="${markeredFilePattern}">\r
                        <Filters>\r
index 1bac3f52794519ed085352caa9468e0d1611964a..6e4635a0ad40b777e8f065f837e9a59b9478e26e 100644 (file)
                                                                <argument>"call mkdir ${remote.location}"</argument>\r
                                                                <argument>"lcd ${local.location}"</argument>\r
                                                                <argument>"cd ${remote.location}"</argument>\r
-                                                               <argument>"synchronize remote -criteria=size"</argument>\r
+                                                               <argument>"synchronize remote"</argument>\r
                                                                <argument>"call chmod +x mediacube"</argument>\r
                                                                <argument>"call chmod +x stop-mediacube.sh"</argument>\r
                                                                <argument>"call chmod +x start-mediacube.sh"</argument>\r
index 521fb6448fc9fd8263e462a2f6874cc5478e9296..d4355ee38996498e26079bb66223a471902b855e 100644 (file)
@@ -6,4 +6,5 @@ Bundle-Version: 1.0.0
 Fragment-Host: org.apache.logging.log4j.core;bundle-version="2.8.2"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: user.commons.log4j2.appender
-Import-Package: javax.mail;version="1.5.0"
+Import-Package: javax.mail;version="1.5.0",
+ user.commons
index 1bafe875742ecf83f08872ff1e85056b24b427e3..58d13a5db0fc28953ded772239c119ececb17a57 100644 (file)
@@ -31,9 +31,11 @@ import javax.mail.MessagingException;
 import javax.mail.PasswordAuthentication;
 import javax.mail.Session;
 import javax.mail.Transport;
+import javax.mail.internet.InternetAddress;
 import javax.mail.internet.InternetHeaders;
 import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMessage.RecipientType;
 import javax.mail.internet.MimeMultipart;
 import javax.mail.internet.MimeUtility;
 import javax.mail.util.ByteArrayDataSource;
@@ -56,6 +58,8 @@ import org.apache.logging.log4j.message.ReusableMessage;
 import org.apache.logging.log4j.util.PropertiesUtil;
 import org.apache.logging.log4j.util.Strings;
 
+import user.commons.MediaCubeMarker;
+
 /**
  * Manager for sending SMTP events.
  */
@@ -293,6 +297,11 @@ public class SmtpManager extends AbstractManager {
                        connect(appendEvent);
                }
                try {
+                       if (appendEvent.getMarker() instanceof MediaCubeMarker) {
+                               MediaCubeMarker mcm = (MediaCubeMarker) appendEvent.getMarker();
+                               message.setRecipient(RecipientType.TO, new InternetAddress(mcm.getTo()));
+                       }
+
                        final LogEvent[] priorEvents = buffer.removeAll();
                        // LOG4J-310: log appendEvent even if priorEvents is empty
 
index 0d18b01eaa2e89713d264e4ed6d43a93c139d5ac..39c60be1247fc607b5fd0a774a37891206599471 100644 (file)
@@ -53,6 +53,14 @@ public class TestItem extends TestBase {
                        store.appendStoreUri(storeUri);\r
                        store.add();\r
                }\r
+               StoreUri storeUri = manager.createStoreUri(RemoteStoreProtocol.HTTP, "10.10.1.28/video");\r
+               storeUri.setPortNumber(90);\r
+               storeUri.setSource(true);\r
+               storeUri.setTarget(false);\r
+               manager.getStore("Low-res").appendStoreUri(storeUri);\r
+               manager.getStore("Low-res").setPersister(manager);\r
+               manager.getStore("Low-res").add();\r
+\r
                if (manager.getFileType("High-res") == null) {\r
                        FileType fileType = manager.createFileType("High-res", "High resolution material", "MPEG Video", "PCM", 1, 8, 25);\r
                        fileType.add();\r
index 2eaeca44b2462be3d88a033ff4427c4244c7e058..c02f7065836719cbad150c2570212b32ba640d5d 100644 (file)
@@ -54,7 +54,7 @@
                                        <borderlayout height="50px">\r
                                                <west width="250px" border="0">\r
                                                        <div width="100%" height="100%" style="background: #008AC8;" >\r
-                                                               <image src="/img/mediacube_logo_v2_50x50.png" alt="MediaCube Server v2.0.1">\r
+                                                               <image src="/img/mediacube_logo_v2_50x50.png" tooltiptext="MediaCube Server v2.0.1">\r
 <!--                                                           <custom-attributes org.zkoss.zul.image.preload="true" /> -->\r
                                                                </image>\r
                                                        </div>\r
index f1330555502c27ad0232518a6d556be23b8ed33b..4a22a96394301b8948d12aaa51694f9f4c33913a 100644 (file)
@@ -1,5 +1,6 @@
 package user.jobengine.zk.model;\r
 \r
+import java.io.File;\r
 import java.nio.file.Paths;\r
 import java.util.List;\r
 import java.util.Map;\r
@@ -13,6 +14,8 @@ import org.zkoss.util.resource.Labels;
 import org.zkoss.zul.Messagebox;\r
 \r
 import user.commons.ListUtils;\r
+import user.commons.StoreUri;\r
+import user.commons.remotestore.RemoteStoreProtocol;\r
 import user.jobengine.db.Item;\r
 import user.jobengine.db.Media;\r
 import user.jobengine.db.MediaFile;\r
@@ -96,16 +99,15 @@ public class SearchModel extends BaseModel {
                        List<MediaFile> mediaFiles = this.selectedMedia.getMediaFiles();\r
                        for (MediaFile mf : mediaFiles) {\r
                                Store store = mf.getStore();\r
-                               if (mf.getStore().isLowres()) {\r
-                                       //protocol + address + relativepath\r
-                                       //store.getStoreUris().get(0).getProtocol().getValue()\r
-                                       ret = Paths.get(store.getStoreUris().get(0).toString(false), mf.getRelativePath()).toString();\r
+                               if (store.isLowres()) {\r
+                                       StoreUri sourceStoreUri = store.getSourceStoreUri(RemoteStoreProtocol.HTTP);\r
+                                       File f = new File("file://" + mf.getRelativePath().replace("\\", "/"));\r
+                                       ret = String.format("%s%s%s", "/pages/mediaplayer.jsp?mediaurl=", sourceStoreUri.toString(), f.getName()).toString();\r
                                        break;\r
                                }\r
                        }\r
                }\r
 \r
-               ret = "http://10.10.1.28:90/";\r
                return ret;\r
        }\r
 \r
@@ -142,7 +144,7 @@ public class SearchModel extends BaseModel {
                        }\r
                        return ret;\r
                }\r
-\r
+       \r
                public boolean getHasSelectedMediaFile(){\r
                        String mediaFilePath =getMediaFilePath();\r
                        return (mediaFilePath != null && !"".equals(mediaFilePath));\r
index 2737ccd1e0bebbdcf9debe634d814628ac6af735..ebbec289b772f14f4fc282d936e2226604836ea3 100644 (file)
@@ -39,4 +39,5 @@ Import-Package: com.fasterxml.jackson.annotation;version="2.4.5",
 Export-Package: user.jobengine.osgi.rest,
  user.jobengine.osgi.rest.octopus,
  user.jobengine.osgi.ws.nexio
-Require-Bundle: org.jboss.resteasy.jaxrs;bundle-version="3.0.11"
+Require-Bundle: org.jboss.resteasy.jaxrs;bundle-version="3.0.11",
+ org.apache.logging.log4j.core
index 7a82199b9b330d367b18d9d3b6c9a79c64208d09..39f72d51acb69d8f7e5bdf8dfbc31897f9b94ec9 100644 (file)
@@ -2,6 +2,7 @@ package user.jobengine.osgi.rest;
 \r
 import org.apache.logging.log4j.LogManager;\r
 import org.apache.logging.log4j.Logger;\r
+import org.apache.logging.log4j.MarkerManager;\r
 \r
 import user.commons.nexio.INexioAPI;\r
 import user.commons.octopus.IOctopusAPI;\r
@@ -9,6 +10,7 @@ import user.jobengine.db.IItemManager;
 import user.jobengine.server.IJobEngine;\r
 \r
 public class ComponentBinder {\r
+       private static final String MEDIACUBE = "MEDIACUBE";\r
        private static final Logger logger = LogManager.getLogger();\r
        private static IJobEngine jobengineService;\r
        private static IItemManager itemManagerService;\r
@@ -63,6 +65,7 @@ public class ComponentBinder {
        }\r
 \r
        public void start() {\r
+               logger.info(MarkerManager.getMarker(MEDIACUBE), "A MediaCube server elindult.");\r
        }\r
 \r
        public synchronized void unbindService(Object service) {\r
index 426ec305a7a88f313d21a23c599d6e1df3a3b73f..3935a0f30d3bd83b463f634bdcf7f3315bc3f713 100644 (file)
@@ -5,6 +5,7 @@ import javax.ws.rs.GET;
 import javax.ws.rs.POST;\r
 import javax.ws.rs.Path;\r
 import javax.ws.rs.Produces;\r
+import javax.ws.rs.QueryParam;\r
 import javax.ws.rs.core.MediaType;\r
 import javax.ws.rs.core.Response;\r
 \r
@@ -12,6 +13,7 @@ import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;\r
 import org.eclipse.core.runtime.adaptor.EclipseStarter;\r
 \r
+import user.commons.MediaCubeMarker;\r
 import user.jobengine.db.IItemManager;\r
 import user.jobengine.db.Item;\r
 import user.jobengine.db.JSONBase;\r
@@ -90,4 +92,18 @@ public class JobengineService {
                }\r
                return result;\r
        }\r
+\r
+       @GET\r
+       @Path("/notify")\r
+       @Consumes({ MediaType.APPLICATION_JSON })\r
+       public Response notify(@QueryParam("to") String to, @QueryParam("content") String content) {\r
+               Response result = null;\r
+               try {\r
+                       logger.info(new MediaCubeMarker(to), content);\r
+                       result = Response.ok().build();\r
+               } catch (Exception e) {\r
+                       result = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();\r
+               }\r
+               return result;\r
+       }\r
 }\r