git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorvasary.daniel <TFS\vasary.daniel>
Tue, 10 Aug 2021 08:54:44 +0000 (08:54 +0000)
committervasary.daniel <TFS\vasary.daniel>
Tue, 10 Aug 2021 08:54:44 +0000 (08:54 +0000)
13 files changed:
server/user.jobengine.executors/src/user/jobengine/server/steps/SafeDeleteRecursive.java
server/user.jobengine.osgi.commons/src/user/mediacube/metadata/interfaces/IMetadataProvider.java
server/user.mediacube.metadata/META-INF/MANIFEST.MF
server/user.mediacube.metadata/src/user/mediacube/metadata/MyBatisMetadataProvider.java
server/user.mediacube.metadata/src/user/mediacube/metadata/hsm/HSMMetadataProvider.java
server/user.mediacube.metadata/src/user/mediacube/metadata/planair/PlanAirMetadataProvider.java
server/user.mediacube.metadata/src/user/mediacube/metadata/tsm/ITSMMaterialMapper.java
server/user.mediacube.metadata/src/user/mediacube/metadata/tsm/TSMContent.java
server/user.mediacube.metadata/src/user/mediacube/metadata/tsm/TSMMetadataProvider.java
server/user.mediacube.metadata/src/user/mediacube/metadata/tsm/TSMSqlProvider.java
server/user.mediacube.metadata/test/user/mediacube/metadata/HSMMetadataTest.java [moved from server/user.mediacube.metadata/test/user/mediabube/metadata/HSMMetadataTest.java with 98% similarity]
server/user.mediacube.metadata/test/user/mediacube/metadata/PlanAirMetadataTest.java [moved from server/user.mediacube.metadata/test/user/mediabube/metadata/PlanAirMetadataTest.java with 99% similarity]
server/user.mediacube.metadata/test/user/mediacube/metadata/TSMMetadataTest.java [moved from server/user.mediacube.metadata/test/user/mediabube/metadata/TSMMetadataTest.java with 57% similarity]

index 491e5a380891ac49b642ed1f59980908a3f51702..224fdcca6dbe2867e363817f140b7aea9c0a0316 100644 (file)
@@ -34,6 +34,7 @@ import user.jobengine.db.MediaFileDAO;
 import user.jobengine.db.Store;\r
 import user.jobengine.server.steps.shared.EscortFiles;\r
 import user.mediacube.metadata.interfaces.IMetadata;\r
+import user.mediacube.metadata.interfaces.IMetadataListOptions;\r
 import user.mediacube.metadata.interfaces.IMetadataProvider;\r
 import user.mediacube.metadata.interfaces.IMetadataProviderFactory;\r
 import user.mediacube.metadata.interfaces.MetadataProviderType;\r
@@ -209,7 +210,7 @@ public class SafeDeleteRecursive extends JobStep implements FileVisitor<Path> {
 \r
                long size = mediaFSFile.length();\r
                Date lastModifiedDate = new Date(attr.lastModifiedTime().toMillis());\r
-               Date lastAccesDate = new Date(attr.lastAccessTime().toMillis());\r
+               //Date lastAccesDate = new Date(attr.lastAccessTime().toMillis());\r
                Date createDate = new Date(attr.creationTime().toMillis());\r
                boolean catchedExists = EscortFiles.isMediaCatched(mediaPath);\r
                boolean noMDExists = nomdFile.toFile().exists();\r
@@ -217,19 +218,26 @@ public class SafeDeleteRecursive extends JobStep implements FileVisitor<Path> {
                //boolean mediaInfoAvailable = canReadMediaInfo(mediaPath);\r
                boolean mcArchived = mediaFile != null;\r
                boolean metadataEquals = false;\r
+               boolean tsmArchived = false;\r
                Date mcArchivedDate = null;\r
+               long tsmSize = 0;\r
+               Date tsmBackupDate = null;\r
+\r
                if (mcArchived) {\r
+                       //metadata\r
                        Media media = getManager().getMedia(mediaFile.getMediaId());\r
                        mcArchivedDate = media.getCreated();\r
                        Item item = getManager().getItem(media.getItemId());\r
                        metadataEquals = checkArchiveItem(archiveItem, item, media);\r
-               }\r
 \r
-               RemoteFile tsmFile = getTSMFile(mediaFile.getRelativePath());\r
-               boolean tsmArchived = tsmFile != null;\r
-               long tsmSize = 0;\r
-               if (tsmArchived) {\r
-                       tsmSize = tsmFile.getSize();\r
+                       //tsm\r
+                       String tsmFileName = mediaFile.getRelativePath();\r
+                       RemoteFile tsmFile = getTSMFile(tsmFileName);\r
+                       tsmArchived = tsmFile != null;\r
+                       if (tsmArchived) {\r
+                               tsmSize = tsmFile.getSize();\r
+                               tsmBackupDate = getTSMBackupDate(tsmFileName);\r
+                       }\r
                }\r
 \r
                boolean canDelete = !noMDExists && catchedExists && killdateExists && mcArchived && tsmArchived;\r
@@ -237,11 +245,38 @@ public class SafeDeleteRecursive extends JobStep implements FileVisitor<Path> {
                logger.info(getSessionMarker(), "{};{};{};{};{};{};{};{};{};{};{};{};{};", df.format(now), YN(canDelete),\r
                                fileName, mediaPath.getParent(), size, df.format(createDate), df.format(lastModifiedDate),\r
                                YN(catchedExists), YN(killdateExists), YN(mcArchived), df.format(mcArchivedDate), YN(tsmArchived),\r
-                               "Archiválva (TSM)", tsmSize, YN(metadataEquals));\r
+                               df.format(tsmBackupDate), tsmSize, YN(metadataEquals));\r
 \r
                return true;\r
        }\r
 \r
+       private Date getTSMBackupDate(String tsmFileName) throws Exception {\r
+               Date result = null;\r
+               IMetadataProviderFactory factory = getService(IMetadataProviderFactory.class);\r
+               if (factory == null)\r
+                       return null;\r
+               IMetadataProvider provider = factory.getProvider(MetadataProviderType.TSM);\r
+               if (provider == null)\r
+                       return null;\r
+\r
+               IMetadataListOptions opt = provider.createOptions(new BasicDBObject("fileName", tsmFileName));\r
+\r
+               List<IMetadata> tsmContents = provider.list(opt);\r
+               if (tsmContents != null && tsmContents.size() > 0) {\r
+\r
+                       for (IMetadata md : tsmContents) {\r
+                               Date backupDate = md.asJSON().getDate("backupDate");\r
+                               if (result == null)\r
+                                       result = backupDate;\r
+                               else {\r
+                                       if (backupDate.after(result))\r
+                                               result = backupDate;\r
+                               }\r
+                       }\r
+               }\r
+               return result;\r
+       }\r
+\r
        private char YN(boolean value) {\r
                return value ? 'Y' : 'N';\r
        }\r
index 3c6b1acdecc9625b0908bda04153b034f2935709..6a36f18b344b7bb0407297dc9c147fbc48a6f71a 100644 (file)
@@ -9,4 +9,6 @@ public interface IMetadataProvider {
        List<IMetadata> list(BasicDBObject options) throws Exception;\r
 \r
        List<IMetadata> list(IMetadataListOptions options) throws Exception;\r
+\r
+       IMetadataListOptions createOptions(BasicDBObject options);\r
 }\r
index c1c8de3ba478e4b3a3efe3153eb684b9c60c550e..57f1dddb3a9ba68d9bd2a183861ef1a55d9fd4b7 100644 (file)
@@ -5,7 +5,9 @@ Bundle-SymbolicName: user.mediacube.metadata;singleton:=true
 Bundle-Version: 1.0.0
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: user.mediacube.metadata,
- user.mediacube.metadata.hsm
+ user.mediacube.metadata.hsm,
+ user.mediacube.metadata.planair,
+ user.mediacube.metadata.tsm
 Service-Component: OSGI-INF/component.xml
 DynamicImport-Package: *
 Require-Bundle: org.mybatis.mybatis;bundle-version="3.5.2",
@@ -16,6 +18,8 @@ Bundle-ActivationPolicy: lazy
 Import-Package: com.ibm.nosql.bson,
  com.ibm.nosql.json.api,
  org.apache.logging.log4j;version="2.8.2",
+ org.apache.logging.log4j.core;version="2.8.2",
+ org.hamcrest,
  org.junit,
  user.mediacube.metadata.interfaces
 Bundle-ClassPath: .
index dbb90e5430eecfee0edef7246921ac6a6e456182..0b422af347d93b63d0dd9bf247140e6d41a52f11 100644 (file)
@@ -47,7 +47,8 @@ public abstract class MyBatisMetadataProvider implements IMetadataProvider {
 \r
        abstract protected DataSource createDataSource();\r
 \r
-       abstract protected IMetadataListOptions createOptions(BasicDBObject options);\r
+       @Override\r
+       abstract public IMetadataListOptions createOptions(BasicDBObject options);\r
 \r
        abstract protected String getDriverClassName();\r
 \r
index a4ca431c40f2cc709f5952774bc4a2f4038be717..bc8a85b0fe82ba4f316e71077b2fa64eafc5b97f 100644 (file)
@@ -35,7 +35,7 @@ public class HSMMetadataProvider extends MyBatisMetadataProvider {
        }\r
 \r
        @Override\r
-       protected IMetadataListOptions createOptions(BasicDBObject options) {\r
+       public IMetadataListOptions createOptions(BasicDBObject options) {\r
                HSMListOptions result = new HSMListOptions();\r
                if (options.containsKey("volumeName"))\r
                        result.setVolumeName(options.getString("volumeName"));\r
index ffd1a75bc467b94372e9d32f35bfc7f9e092d72c..083cd768c5711ca34b13e8acbeaec3f0487e08bb 100644 (file)
@@ -32,7 +32,7 @@ public class PlanAirMetadataProvider extends MyBatisMetadataProvider {
        }\r
 \r
        @Override\r
-       protected IMetadataListOptions createOptions(BasicDBObject options) {\r
+       public IMetadataListOptions createOptions(BasicDBObject options) {\r
                PlanAirMetadataListOptions result = new PlanAirMetadataListOptions();\r
                //              if (options.containsKey("volumeName"))\r
                //                      result.setVolumeName(options.getString("volumeName"));\r
index 50d8cf48697d299a0e5ede8a3b77bde85deb1037..7d8e1f81949bfc3d8b97151b4e5f1e1edf098238 100644 (file)
@@ -6,12 +6,10 @@ import org.apache.ibatis.annotations.Result;
 import org.apache.ibatis.annotations.Results;\r
 import org.apache.ibatis.annotations.SelectProvider;\r
 \r
-import user.mediacube.metadata.hsm.HSMSqlProvider;\r
-\r
 public interface ITSMMaterialMapper {\r
 \r
-       @SelectProvider(type = HSMSqlProvider.class, method = "selectContents")\r
-       @Results(value = { @Result(property = "fileName", column = "FILE_NAME"),\r
+       @SelectProvider(type = TSMSqlProvider.class, method = "selectContents")\r
+       @Results(value = { @Result(property = "fileName", column = "LL_NAME"),\r
                        @Result(property = "backupDate", column = "INSDATE") })\r
        public List<TSMContent> getContents(String fileName);\r
 }\r
index 11fbf3e02676e0d1748657683771909e30e44297..e1d08c8fd3c037560b9a7155993c8bb51fbc1b12 100644 (file)
@@ -27,8 +27,8 @@ public class TSMContent implements IMetadata {
                return fileName;\r
        }\r
 \r
-       public void setFileName(String fileName) {\r
-               this.fileName = fileName;\r
+       public void setFileName(byte[] fileName) {\r
+               this.fileName = new String(fileName);\r
        }\r
 \r
        @Override\r
index fe71d162fde8d379fbf7dac997e07c0d47931906..2bba0a1625f405be0964ecccf4c53c4e50110fd5 100644 (file)
@@ -12,7 +12,6 @@ import com.ibm.nosql.json.api.BasicDBObject;
 \r
 import user.mediacube.metadata.MetadataProviderFactory;\r
 import user.mediacube.metadata.MyBatisMetadataProvider;\r
-import user.mediacube.metadata.hsm.IHSMMaterialMapper;\r
 import user.mediacube.metadata.interfaces.IMetadata;\r
 import user.mediacube.metadata.interfaces.IMetadataListOptions;\r
 \r
@@ -36,7 +35,7 @@ public class TSMMetadataProvider extends MyBatisMetadataProvider {
        }\r
 \r
        @Override\r
-       protected IMetadataListOptions createOptions(BasicDBObject options) {\r
+       public IMetadataListOptions createOptions(BasicDBObject options) {\r
                TSMListOptions result = new TSMListOptions();\r
                if (options.containsKey("fileName"))\r
                        result.setFileName(options.getString("fileName"));\r
@@ -62,7 +61,7 @@ public class TSMMetadataProvider extends MyBatisMetadataProvider {
 \r
        @Override\r
        protected void registerMappers(Configuration configuration) {\r
-               configuration.addMapper(IHSMMaterialMapper.class);\r
+               configuration.addMapper(ITSMMaterialMapper.class);\r
        }\r
 \r
 }\r
index c6065fd6c3ccd9619baec509da9060d762e80b89..c25909bcb84859bf9961d5a77bb7657fe21f63a9 100644 (file)
@@ -8,7 +8,7 @@ public class TSMSqlProvider {
                SQL sql = new SQL();\r
                sql.SELECT("LL_NAME", "INSDATE");\r
                sql.FROM("TSMDB1.BACKUP_OBJECTS");\r
-               sql.WHERE("LL_NAME = ${fileName}");\r
+               sql.WHERE("LL_NAME = '${fileName}'");\r
                return sql.toString();\r
        }\r
 }\r
similarity index 98%
rename from server/user.mediacube.metadata/test/user/mediabube/metadata/HSMMetadataTest.java
rename to server/user.mediacube.metadata/test/user/mediacube/metadata/HSMMetadataTest.java
index 7821c11e06daad564ae056ee93af93add35ca138..24f0d7adaa3c9f5ff0c985666c401526f7e92d92 100644 (file)
@@ -1,4 +1,4 @@
-package user.mediabube.metadata;
+package user.mediacube.metadata;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
similarity index 99%
rename from server/user.mediacube.metadata/test/user/mediabube/metadata/PlanAirMetadataTest.java
rename to server/user.mediacube.metadata/test/user/mediacube/metadata/PlanAirMetadataTest.java
index 82711f8199f1dceb3799a7d951da39b14021303a..fe9c06d42a028b2a6772134b52a5b447dd133bf5 100644 (file)
@@ -1,4 +1,4 @@
-package user.mediabube.metadata;
+package user.mediacube.metadata;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
similarity index 57%
rename from server/user.mediacube.metadata/test/user/mediabube/metadata/TSMMetadataTest.java
rename to server/user.mediacube.metadata/test/user/mediacube/metadata/TSMMetadataTest.java
index 12a12fa0ffa1cd0eea2e091eda0c80b167780a0a..c86e316f1edbf45e191240d6787ec88692f1d72c 100644 (file)
@@ -1,21 +1,29 @@
-package user.mediabube.metadata;
+package user.mediacube.metadata;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.List;
 
+import org.junit.BeforeClass;
 import org.junit.Test;
 
-import user.mediacube.metadata.MetadataProviderFactory;
+import com.ibm.nosql.json.api.BasicDBObject;
+
+import user.commons.configuration.SystemConfiguration;
 import user.mediacube.metadata.interfaces.IMetadata;
+import user.mediacube.metadata.interfaces.IMetadataListOptions;
 import user.mediacube.metadata.interfaces.IMetadataProvider;
-import user.mediacube.metadata.interfaces.IMetadataProviderFactory;
 import user.mediacube.metadata.interfaces.MetadataProviderType;
-import user.mediacube.metadata.tsm.TSMListOptions;
 
 public class TSMMetadataTest {
-       private IMetadataProviderFactory factory = new MetadataProviderFactory();
+       private static MetadataProviderFactory factory;
+
+       @BeforeClass
+       static public void setUpConnection() throws Exception {
+               factory = new MetadataProviderFactory();
+               factory.bindSystemConfiguration(SystemConfiguration.getInstance());
+       }
 
        @Test
        public void testFactoryConnection() throws Exception {
@@ -29,11 +37,10 @@ public class TSMMetadataTest {
 
        @Test
        public void testListByFileName() throws Exception {
-               TSMListOptions opt = new TSMListOptions();
-               opt.setFileName("");
 
                // Fixture
                IMetadataProvider sut = factory.getProvider(MetadataProviderType.TSM);
+               IMetadataListOptions opt = sut.createOptions(new BasicDBObject("fileName", "pQZpWofl-TEST-210809-B.mxf"));
 
                // Exercise
                List<IMetadata> result = sut.list(opt);
@@ -42,5 +49,6 @@ public class TSMMetadataTest {
                assertNotNull(result);
                assertTrue(result.size() > 0);
                System.out.println(result.get(0).getTitle());
+               System.out.println(result.get(0).asJSON().getDate("backupDate"));
        }
 }