git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 21 Oct 2020 05:46:16 +0000 (05:46 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 21 Oct 2020 05:46:16 +0000 (05:46 +0000)
server/hu.user.mediacube.executors.tests/src/hu/user/mediacube/executors/tests/SmallTests.java
server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/MetadataTransformStep.java
server/user.jobengine.osgi.commons/src/user/commons/remotestore/TSMOutputStream.java
server/user.jobengine.osgi.db/migrations/scripts/024_create_pasa_table.sql [new file with mode: 0644]
server/user.jobengine.osgi.db/src/user/jobengine/search/MediaFinder.java
server/user.jobengine.osgi.server/pages/menu.zul
server/user.jobengine.osgi.server/src/user/jobengine/server/steps/ArchiveItem.java
server/user.jobengine.osgi.services/src/user/jobengine/osgi/ws/mediacube/MediaCubeAPIWSSocket.java
server/user.tsm.client/src/user/tsm/client/TSMBufferedClient.java

index bb4be75312afed591c23402942fe730133463fdb..10a0267f11fdc7d540fe4c035f9a94bb61e48e52 100644 (file)
@@ -1,5 +1,7 @@
 package hu.user.mediacube.executors.tests;\r
 \r
+import static org.junit.Assert.assertNotNull;\r
+\r
 import java.io.File;\r
 import java.nio.file.DirectoryStream;\r
 import java.nio.file.Files;\r
@@ -29,7 +31,10 @@ import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang.StringUtils;\r
 import org.junit.Test;\r
 \r
+import com.ibm.nosql.json.api.BasicDBList;\r
+\r
 import user.jobengine.db.Media;\r
+import user.jobengine.server.steps.ArchiveItem;\r
 import user.jobengine.server.steps.EscortFiles;\r
 import user.jobengine.server.steps.FFMpeg;\r
 import user.jobengine.server.steps.TSMExtendedRetrieveStep;\r
@@ -491,4 +496,81 @@ public class SmallTests {
                System.out.println(modifiedHours);\r
                System.out.println(DateTimeFormatter.ISO_LOCAL_DATE_TIME.format(ldt));\r
        }\r
+\r
+       //mv missing from tsm\r
+       @Test\r
+       public void test993() throws Exception {\r
+               //List<String> missing = Files.readAllLines(Paths.get("/opt/mv-missing.txt"));\r
+               List<String> missing = Files.readAllLines(Paths.get("/opt/mv-mc-all.txt"));\r
+               String tsm = new String(Files.readAllBytes(Paths.get("/opt/mv-tsm.txt")));\r
+               String polc = new String(Files.readAllBytes(Paths.get("/opt/mv-polc.txt")));\r
+               String rd = new String(Files.readAllBytes(Paths.get("/opt/mv-rundown.txt")));\r
+               String om = new String(Files.readAllBytes(Paths.get("/opt/mv-omarchive.txt")));\r
+               int fCount = 0;\r
+               int pCount = 0;\r
+               int oCount = 0;\r
+\r
+               int promo = 0;\r
+               int ad = 0;\r
+               int material = 0;\r
+               int other = 0;\r
+               int inrd = 0;\r
+\r
+               System.out.println("Start");\r
+               for (String fileName : missing) {\r
+                       String onlyId = fileName.trim();\r
+                       onlyId = onlyId.substring(0, onlyId.lastIndexOf("."));\r
+\r
+                       boolean tsmContains = tsm.contains(fileName);\r
+\r
+                       if (tsmContains)\r
+                               continue;\r
+\r
+                       boolean omContains = om.contains(fileName);\r
+                       if (omContains) {\r
+                               oCount++;\r
+                               continue;\r
+                       }\r
+                       boolean polcContains = polc.contains(fileName);\r
+                       if (polcContains) {\r
+                               pCount++;\r
+                               continue;\r
+                       }\r
+\r
+                       fCount++;\r
+                       System.out.println(fileName + " " + fCount);\r
+\r
+                       //                      if (rd.contains(onlyId))\r
+                       //                              inrd++;\r
+\r
+                       if (fileName.startsWith("R")) {\r
+                               ad++;\r
+                       } else if (fileName.startsWith("P"))\r
+                               promo++;\r
+                       else if (fileName.startsWith("M")) {\r
+                               material++;\r
+                       } else {\r
+                               //System.out.println(onlyId);\r
+                               other++;\r
+                       }\r
+               }\r
+               System.out.println(String.format("TSM hiány %d, polcon van %d, omben van %d", fCount, pCount, oCount));\r
+               System.out.println(String.format("Egyéb %d, Reklám %d, Promó %d, Anyag %d, Adásban volt %d", other, ad, promo, material, inrd));\r
+               //              Files.write(Paths.get("/opt/AMC/mcmissing.txt"), mcmissing);\r
+       }\r
+\r
+       //archiveitem+tags\r
+       @Test\r
+       public void test994() throws Exception {\r
+               ArchiveItem archiveItem = ArchiveItem.fromFile(Paths.get("/opt1/.STATUS/0409_2032_UJ_OVI_OVB_MIX.MXF.json"));\r
+               assertNotNull(archiveItem.getTags());\r
+\r
+               BasicDBList tags = archiveItem.getTags();\r
+               if (tags != null) {\r
+                       for (Object tag : tags) {\r
+                               System.out.println(String.valueOf(tag));\r
+                       }\r
+               }\r
+\r
+       }\r
 }\r
index cf973249622d99c1ca95f4db9b2b51d41e515f0d..b232182973838c4e9febe92d450fae5ef8014eb1 100644 (file)
@@ -14,10 +14,6 @@ import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;\r
 import org.apache.logging.log4j.Marker;\r
 \r
-import com.ibm.nosql.json.JSONUtil;\r
-import com.ibm.nosql.json.api.BasicDBObject;\r
-\r
-import user.commons.nosql.NoSQLUtils;\r
 import user.jobengine.server.IJobEngine;\r
 import user.jobengine.server.IJobRuntime;\r
 \r
@@ -43,32 +39,18 @@ public class ArchiveListBuilderStep extends JobStep {
        public static final String MEDIA_TYPE = "mediaType";\r
        private static final String DURATION = "duration";\r
        private static final String EXISTING_MEDIAID = "existingMediaId";\r
+       private static final String TAGS = "tags";\r
 \r
        private Marker marker;\r
 \r
        private ArchiveItem createArchiveItem(Path jsonFilePath, Path mediaFilePath, Path catchedFilePath) {\r
                ArchiveItem result = null;\r
-               byte[] readAllBytes = null;\r
                try {\r
-                       readAllBytes = Files.readAllBytes(jsonFilePath);\r
-                       BasicDBObject dbObject = (BasicDBObject) JSONUtil.jsonToDbObject(new String(readAllBytes));\r
-                       if (dbObject == null)\r
-                               throw new NullPointerException("Can not parse JSON file: " + jsonFilePath);\r
-                       result = new ArchiveItem();\r
-                       result.setItemHouseId(getMetadata(dbObject, ITEM_HOUSEID));\r
-                       result.setItemTitle(getMetadata(dbObject, ITEM_TITLE));\r
-                       result.setItemDescription(getMetadata(dbObject, ITEM_DESCRIPTION));\r
-                       result.setMediaHouseId(getMetadata(dbObject, MEDIA_HOUSEID));\r
-                       result.setMediaTitle(getMetadata(dbObject, MEDIA_TITLE));\r
-                       result.setMediaDescription(getMetadata(dbObject, MEDIA_DESCRIPTION));\r
-                       result.setMediaType(getMetadata(dbObject, MEDIA_TYPE));\r
+                       result = ArchiveItem.fromFile(jsonFilePath);\r
                        result.setMediaFile(mediaFilePath.toString());\r
                        result.setCatchedFile(catchedFilePath.toString());\r
-                       result.setDuration(NoSQLUtils.asLong(dbObject, DURATION));\r
-                       result.setExistingMediaId(NoSQLUtils.asLong(dbObject, EXISTING_MEDIAID));\r
-               } catch (IOException e) {\r
+               } catch (Exception e) {\r
                        logger.catching(e);\r
-                       return null;\r
                }\r
 \r
                return result;\r
@@ -122,13 +104,6 @@ public class ArchiveListBuilderStep extends JobStep {
                return new Object[] { archiveList };\r
        }\r
 \r
-       private String getMetadata(BasicDBObject dbObject, String fieldName) {\r
-               String result = null;\r
-               if (dbObject.containsKey(fieldName))\r
-                       result = dbObject.getString(fieldName);\r
-               return result;\r
-       }\r
-\r
        private boolean processPathItem(Path mediaFilePath, final List<ArchiveItem> archiveList) {\r
                File mediaFile = mediaFilePath.toFile();\r
 \r
index 4bb7992f0770947968ab5587cc56102526a1c731..d7085875c5392211098c1ec2d4b6b447490cc09f 100644 (file)
@@ -14,6 +14,8 @@ import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;\r
 import org.apache.logging.log4j.Marker;\r
 \r
+import com.ibm.nosql.json.api.BasicDBList;\r
+\r
 import user.jobengine.db.Item;\r
 import user.jobengine.db.ItemManager;\r
 import user.jobengine.db.ItemType;\r
@@ -34,6 +36,23 @@ public class MetadataTransformStep extends JobStep {
        private ItemManager itemManager;\r
        private Marker marker;\r
 \r
+       private void addTags(ArchiveItem archiveItem, Media mediaCubeMedia) {\r
+               BasicDBList tags = archiveItem.getTags();\r
+               if (tags != null) {\r
+                       for (Object tag : tags) {\r
+\r
+                               try {\r
+                                       String tagText = String.valueOf(tag);\r
+                                       itemManager.addMediaTag(tagText, mediaCubeMedia.getId());\r
+                                       System.out.println();\r
+\r
+                               } catch (Exception e) {\r
+                                       logger.catching(e);\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+\r
        private void checkDuplicates(ArchiveItem archiveItem, String sourceFileName) throws Exception {\r
                if (itemManager.isMediaFileExists(sourceFileName)) {\r
                        try {\r
@@ -78,6 +97,7 @@ public class MetadataTransformStep extends JobStep {
                mediaCubeMedia = itemManager.createMedia(mediaType, archiveItem.getMediaTitle(), archiveItem.getMediaDescription(), archiveItem.getMediaHouseId());\r
                mediaCubeMedia.setLength(archiveItem.getDuration());\r
                mediaCubeItem.appendMedia(mediaCubeMedia);\r
+\r
                return mediaCubeMedia;\r
        }\r
 \r
@@ -96,7 +116,7 @@ public class MetadataTransformStep extends JobStep {
                        jobRuntime.incrementProgress(50);\r
                        String mediaType = getCreateType(archiveItem);\r
                        mediaCubeMedia = createMedia(archiveItem, mediaCubeItem, mediaType);\r
-                       //ha itemid 0 akkor merge, egyebkent media insert \r
+                       //ha itemid 0 akkor merge, egyebkent media insert\r
 \r
                        if (mediaCubeItem.getId() == 0)\r
                                itemManager.mergeItemStructure(mediaCubeItem);\r
@@ -105,6 +125,8 @@ public class MetadataTransformStep extends JobStep {
                                mediaCubeMedia.add();\r
                        }\r
 \r
+                       addTags(archiveItem, mediaCubeMedia);\r
+\r
                } catch (Exception e) {\r
                        logger.catching(e);\r
                        String fileName = new File(archiveItem.getMediaFile()).getName();\r
index 5a8a2541e774fcedab3382b0019513371325595d..803ba10df96567b982b4f43588f18d7a81a33145 100644 (file)
@@ -28,11 +28,11 @@ public class TSMOutputStream extends OutputStream {
        }\r
 \r
        @Override\r
-       public void close() {\r
+       public void close() throws IOException {\r
                try {\r
-                       client.finishSend();\r
+                       client.commit();\r
                } catch (Exception e) {\r
-                       e.printStackTrace();\r
+                       throw new IOException(e);\r
                }\r
                client.disconnect();\r
        }\r
diff --git a/server/user.jobengine.osgi.db/migrations/scripts/024_create_pasa_table.sql b/server/user.jobengine.osgi.db/migrations/scripts/024_create_pasa_table.sql
new file mode 100644 (file)
index 0000000..7b37a51
--- /dev/null
@@ -0,0 +1,44 @@
+--
+--    Copyright 2010-2016 the original author or authors.
+--
+--    Licensed 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.
+--
+
+-- // Create TAG TAG2MEDIA tables
+-- Migration SQL that makes the change goes here.
+
+--ID;NAME;ONTSM;EXPIRATION;CREATED;PID;FILENAME;LASTMODIFIED;SIZE;PARTS;MEDIASTORE;NOF_FRAMES;ORIGMEDIASTORE;ORIGTSMFILENAME
+--1937;DK_20027300_02;Y;2109-03-02 17:27:34.765;2009-08-05 16:59:05.39;1937;DK_20027300_02;2009-08-05 16:57:25.0;2430599168;1;user.pasa.server.MSFTPK2;;;
+
+CREATE TABLE PASA
+(
+       ID BIGINT,
+       NAME VARCHAR(100),
+       ONTSM VARCHAR(1),
+       EXPIRATION TIMESTAMP,
+       CREATED TIMESTAMP,
+       PID BIGINT,
+       FILENAME VARCHAR(100),
+       LASTMODIFIED TIMESTAMP,
+       PARTS INT,
+       MEDIASTORE VARCHAR(100),
+       NOF_FRAMES VARCHAR(100),
+       ORIGMEDIASTORE VARCHAR(100),
+       ORIGTSMFILENAME VARCHAR(100)
+)@
+
+-- //@UNDO
+-- SQL to undo the change goes here.
+
+DROP TABLE PASA
+@
index 7f5dfb41c0d81a3aabceaf7da4d3b0edc3dcd72c..8d5078a8485e9e302528f9b5c8eacd6658c629ff 100644 (file)
@@ -66,8 +66,13 @@ public class MediaFinder implements IMediaFinder {
                        if (criteria.endsWith("*"))\r
                                criteria = criteria.replace("*", "");\r
                        criteria = criteria.trim();\r
-                       if (criteria != null && criteria.trim().length() > 0)\r
-                               sql.append(" AND m.title LIKE('%" + criteria + "%')");\r
+                       if (criteria != null && criteria.trim().length() > 0) {\r
+                               sql.append(" AND (");\r
+                               sql.append(" m.title LIKE('%" + criteria + "%')");\r
+                               sql.append(" OR i.title LIKE('%" + criteria + "%')");\r
+                               sql.append(" OR mf.relativepath LIKE('%" + criteria + "%')");\r
+                               sql.append(")");\r
+                       }\r
                } else {\r
                        criteria = formatSearchValue(criteria);\r
                        if (criteria != null && criteria.trim().length() > 0)\r
index a25c2674255934f1cd2cdfd34cf4581bfcd3dd8f..9586f5bb5f21304998ad49bef43aa6203373c043 100644 (file)
                        <menuitem sclass="whitemenu" label="Keresés" onClick="@command('navigate', action='/')" disabled="false" />\r
                        <menuitem sclass="whitemenu" label="Folyamatok" onClick="@command('navigate', action='jobs')" disabled="${not sessionScope.userPrincipal.submitter or sessionScope.userPrincipal.anonymous}" />\r
                        <menuitem sclass="whitemenu" label="Maestro" onClick="@command('navigate', action='maestro')" visible="${lm.maestroAvailable}" />\r
-                       <menu sclass="whitemenu" label="Egyéb" visible="${sessionScope.userPrincipal.admin}">\r
-                               <menupopup>\r
-                                       <menuitem sclass="rozsda" label="Jelszógeneátor" onClick="@command('navigate', action='pwdgen')" />\r
-                                       <menuitem sclass="rozsda" label="Hiányzó anyagok" onClick="@command('navigate', action='missingmaterials')" disabled="${not sessionScope.userPrincipal.submitter or sessionScope.userPrincipal.anonymous}" />\r
-                                       <menuitem sclass="rozsda" label="Folyamat tevékenységek" onClick="@command('navigate', action='statistics')" disabled="${not sessionScope.userPrincipal.admin or sessionScope.userPrincipal.anonymous}" />\r
-                                       <menuitem sclass="rozsda" label="Híranyag gyártás" onClick="@command('navigate', action='newshistory')" disabled="${not sessionScope.userPrincipal.admin or sessionScope.userPrincipal.anonymous}" />\r
-                               </menupopup>\r
-                       </menu>\r
                        <menu sclass="whitemenu" label="Statisztikák" visible="${not sessionScope.guiStatisticsDisable}">\r
                                <menupopup>\r
                                        <menuitem sclass="rozsda" label="Folyamat tevékenységek" onClick="@command('navigate', action='statistics')" disabled="${not sessionScope.userPrincipal.admin or sessionScope.userPrincipal.anonymous}" />\r
                                        <menuitem sclass="rozsda" label="Híranyag gyártás" onClick="@command('navigate', action='newshistory')" disabled="${not sessionScope.userPrincipal.admin or sessionScope.userPrincipal.anonymous}" />\r
                                </menupopup>\r
                        </menu>\r
+                       <menu sclass="whitemenu" label="Továbbiak" visible="${sessionScope.userPrincipal.submitter}">\r
+                               <menupopup>\r
+                                       <menuitem sclass="rozsda" label="Jelszógeneátor" onClick="@command('navigate', action='pwdgen')" disabled="${not sessionScope.userPrincipal.admin or sessionScope.userPrincipal.anonymous}" />\r
+                                       <menuitem sclass="rozsda" label="Hiányzó anyagok" onClick="@command('navigate', action='missingmaterials')" disabled="${not sessionScope.userPrincipal.submitter or sessionScope.userPrincipal.anonymous}" />\r
+                               </menupopup>\r
+                       </menu>\r
                        <menu sclass="whitemenu" label="${labels.menu_help}" visible="${not sessionScope.guiHelpDisable}">\r
                                <menupopup>\r
                                        <menuitem sclass="rozsda" label="${labels.menu_content}" href="http://10.10.1.27:90/docs" target="_blank" />\r
index 76ece446f3552b1bb9802205b3f572776809126a..b1f2853c2a1a6cd331ca6cd38af639dcdca1818e 100644 (file)
@@ -1,10 +1,66 @@
 package user.jobengine.server.steps;\r
 \r
 import java.io.File;\r
+import java.io.IOException;\r
 import java.io.Serializable;\r
+import java.nio.file.Files;\r
+import java.nio.file.Path;\r
+\r
+import com.ibm.nosql.json.JSONUtil;\r
+import com.ibm.nosql.json.api.BasicDBList;\r
+import com.ibm.nosql.json.api.BasicDBObject;\r
+\r
+import user.commons.nosql.NoSQLUtils;\r
 \r
 public class ArchiveItem implements Serializable {\r
        private static final long serialVersionUID = -7278747969491719357L;\r
+       public static final String ITEM_TITLE = "itemTitle";\r
+       public static final String ITEM_HOUSEID = "itemHouseId";\r
+       public static final String ITEM_DESCRIPTION = "itemDescription";\r
+       public static final String MEDIA_HOUSEID = "mediaHouseId";\r
+       public static final String MEDIA_TITLE = "mediaTitle";\r
+       public static final String MEDIA_DESCRIPTION = "mediaDescription";\r
+       public static final String MEDIA_TYPE = "mediaType";\r
+       private static final String DURATION = "duration";\r
+       private static final String EXISTING_MEDIAID = "existingMediaId";\r
+       private static final String TAGS = "tags";\r
+\r
+       public static ArchiveItem fromFile(Path jsonFilePath) throws IOException {\r
+               ArchiveItem result = null;\r
+               byte[] readAllBytes = null;\r
+               readAllBytes = Files.readAllBytes(jsonFilePath);\r
+               BasicDBObject dbObject = (BasicDBObject) JSONUtil.jsonToDbObject(new String(readAllBytes));\r
+               if (dbObject == null)\r
+                       throw new NullPointerException("Can not parse JSON file: " + jsonFilePath);\r
+               result = new ArchiveItem();\r
+               result.setItemHouseId(getMetadata(dbObject, ITEM_HOUSEID));\r
+               result.setItemTitle(getMetadata(dbObject, ITEM_TITLE));\r
+               result.setItemDescription(getMetadata(dbObject, ITEM_DESCRIPTION));\r
+               result.setMediaHouseId(getMetadata(dbObject, MEDIA_HOUSEID));\r
+               result.setMediaTitle(getMetadata(dbObject, MEDIA_TITLE));\r
+               result.setMediaDescription(getMetadata(dbObject, MEDIA_DESCRIPTION));\r
+               result.setMediaType(getMetadata(dbObject, MEDIA_TYPE));\r
+               result.setDuration(NoSQLUtils.asLong(dbObject, DURATION));\r
+               result.setExistingMediaId(NoSQLUtils.asLong(dbObject, EXISTING_MEDIAID));\r
+               result.setTags(getMetadatas(dbObject, TAGS));\r
+\r
+               return result;\r
+       }\r
+\r
+       private static String getMetadata(BasicDBObject dbObject, String fieldName) {\r
+               String result = null;\r
+               if (dbObject.containsKey(fieldName))\r
+                       result = dbObject.getString(fieldName);\r
+               return result;\r
+       }\r
+\r
+       private static BasicDBList getMetadatas(BasicDBObject dbObject, String fieldName) {\r
+               BasicDBList result = null;\r
+               if (dbObject.containsKey(fieldName))\r
+                       result = (BasicDBList) dbObject.get(fieldName);\r
+               return result;\r
+       }\r
+\r
        private String itemTitle;\r
        private String itemHouseId;\r
        private String itemDescription;\r
@@ -17,6 +73,8 @@ public class ArchiveItem implements Serializable {
        private long duration;\r
        private long existingMediaId;\r
 \r
+       private BasicDBList tags;\r
+\r
        public String getCatchedFile() {\r
                return catchedFile;\r
        }\r
@@ -61,6 +119,10 @@ public class ArchiveItem implements Serializable {
                return mediaType;\r
        }\r
 \r
+       public BasicDBList getTags() {\r
+               return tags;\r
+       }\r
+\r
        public boolean removeCatchedFile() {\r
                boolean result = false;\r
                if (catchedFile != null) {\r
@@ -114,4 +176,9 @@ public class ArchiveItem implements Serializable {
        public void setMediaType(String mediaType) {\r
                this.mediaType = mediaType;\r
        }\r
+\r
+       public void setTags(BasicDBList tags) {\r
+               this.tags = tags;\r
+       }\r
+\r
 }\r
index d717210752d04f701e339dc063b97683fc68062b..47e62ddc742fe1f9a5a164699d061358636d8483 100644 (file)
@@ -33,7 +33,9 @@ public class MediaCubeAPIWSSocket extends WebSocketAdapter {
        public static final String ERROR = "error";
        private static final String NO_ACTION_SPECIFIED = "Missing action type.";
        private static final String TEMPLATE = "template";
+       private static final String NAME = "name";
        private static final String PARAMETERS = "parameters";
+       private static final String NO_NAME_SPECIFIED = "Missing job name.";
        private static final String NO_TEMPLATE_SPECIFIED = "Missing template name.";
        private static final String NO_PARAMETERS_SPECIFIED = "Missing job parameters.";
        private static ObjectMapper mapper;
@@ -62,7 +64,8 @@ public class MediaCubeAPIWSSocket extends WebSocketAdapter {
                                IJobRuntime job = event.getJob();
                                if (job.getId() != runtime.getId())
                                        return;
-                               BasicDBObject response = new BasicDBObject("jobID", job.getId()).append("status", job.getStatus()).append("signal", event.getSignalType())
+                               BasicDBObject response = new BasicDBObject("jobID", job.getId()).append("status", job.getStatus())
+                                               .append("signal", event.getSignalType())
                                                .append("progress", job.getProgress());
 
                                if (JobStatus.SUSPENDED.equals(job.getStatus()))
@@ -149,12 +152,17 @@ public class MediaCubeAPIWSSocket extends WebSocketAdapter {
                if (!data.containsKey(PARAMETERS))
                        throw new Exception(NO_PARAMETERS_SPECIFIED);
                BasicDBObject parameters = (BasicDBObject) data.get(PARAMETERS);
+
+               if (!data.containsKey(NAME))
+                       throw new Exception(NO_NAME_SPECIFIED);
+               String name = data.getString(NAME);
+
                IJobEngine jobengine = ComponentBinder.getJobengine();
 
                if (parameters != null)
                        deserializeParameters(parameters);
 
-               IJobRuntime runtime = jobengine.submit(template, null, parameters);
+               IJobRuntime runtime = jobengine.submit(template, name, parameters);
                IJobChangedListener jobChangedListener = createListener(runtime);
                jobengine.addJobChangedEventListener(jobChangedListener);
                jobChangedListeners.put(runtime.getId(), jobChangedListener);
index bebe36288d21c6a0bdf016be5ca122ceade17daa..5b95291eb7e7325cde0ec66b635df403536d1b79 100644 (file)
@@ -27,11 +27,31 @@ public class TSMBufferedClient extends TSMClient {
                super(nodeName);\r
        }\r
 \r
+       public void abort() throws TSMException, JNIException {\r
+\r
+       }\r
+\r
+       public void commit() throws TSMException, JNIException {\r
+               if (dataBlk != null) {\r
+                       try {\r
+                               rc = TSMAPI.dsmEndSendObj(dsmHandle);\r
+                               if (rc != TSMAPIConstants.DSM_RC_OK)\r
+                                       throw new TSMException(dsmHandle, rc);\r
+\r
+                               rc = vote(TSMAPIConstants.DSM_VOTE_COMMIT);\r
+                       } catch (Exception e) {\r
+                               //                              rc = vote(TSMAPIConstants.DSM_VOTE_ABORT);\r
+                               throw e;\r
+                       }\r
+               }\r
+       }\r
+\r
        public void finishReceive() throws TSMException {\r
                // dsmEndGetObj\r
                rc = TSMAPI.dsmEndGetObj(dsmHandle);\r
                if (rc != TSMAPIConstants.DSM_RC_OK) {\r
                        TSMAPI.dsmEndGetData(dsmHandle);\r
+\r
                        throw new TSMException(dsmHandle, rc);\r
                }\r
                // dsmEndGetData\r
@@ -42,15 +62,6 @@ public class TSMBufferedClient extends TSMClient {
                dataBlk = null;\r
        }\r
 \r
-       public void finishSend() throws TSMException, JNIException {\r
-               if (dataBlk != null) {\r
-                       rc = TSMAPI.dsmEndSendObj(dsmHandle);\r
-                       if (rc != TSMAPIConstants.DSM_RC_OK)\r
-                               throw new TSMException(dsmHandle, rc);\r
-                       rc = vote(TSMAPIConstants.DSM_VOTE_COMMIT);\r
-               }\r
-       }\r
-\r
        public int recievePartial(byte[] buffer, TSMObject object, PartialObjData partialObjData)\r
                        throws NullPointerException, FileNotFoundException, IOException, TSMException {\r
                int result = 0;\r
@@ -159,12 +170,15 @@ public class TSMBufferedClient extends TSMClient {
                        logger.catching(e);\r
                }\r
 \r
-               if (result == TSMAPIConstants.DSM_RC_CHECK_REASON_CODE) {\r
-                       logger.error("dsmEndTxnEx error, reason code {}", endTxnExOut.getReason());\r
-               } else {\r
-                       if (result != TSMAPIConstants.DSM_RC_OK)\r
-                               throw new TSMException(dsmHandle, rc, endTxnExOut.getReason());\r
-               }\r
+               //              if (result == TSMAPIConstants.DSM_RC_CHECK_REASON_CODE) {\r
+               //                      logger.error("dsmEndTxnEx error, reason code {}", endTxnExOut.getReason());\r
+               //              } else {\r
+               //                      if (result != TSMAPIConstants.DSM_RC_OK)\r
+               //                              throw new TSMException(dsmHandle, rc, endTxnExOut.getReason());\r
+               //              }\r
+\r
+               if (result != TSMAPIConstants.DSM_RC_OK)\r
+                       throw new TSMException(dsmHandle, rc, endTxnExOut.getReason());\r
 \r
                return result;\r
        }\r