git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorvasary.daniel <TFS\vasary.daniel>
Tue, 10 Aug 2021 07:34:57 +0000 (07:34 +0000)
committervasary.daniel <TFS\vasary.daniel>
Tue, 10 Aug 2021 07:34:57 +0000 (07:34 +0000)
server/user.mediacube.metadata/src/user/mediacube/metadata/hsm/TSMMetadataProvider.java [new file with mode: 0644]

diff --git a/server/user.mediacube.metadata/src/user/mediacube/metadata/hsm/TSMMetadataProvider.java b/server/user.mediacube.metadata/src/user/mediacube/metadata/hsm/TSMMetadataProvider.java
new file mode 100644 (file)
index 0000000..00e0719
--- /dev/null
@@ -0,0 +1,76 @@
+package user.mediacube.metadata.hsm;\r
+\r
+import java.util.List;\r
+\r
+import javax.sql.DataSource;\r
+\r
+import org.apache.ibatis.datasource.pooled.PooledDataSource;\r
+import org.apache.ibatis.session.Configuration;\r
+import org.apache.ibatis.session.SqlSession;\r
+\r
+import com.ibm.nosql.json.api.BasicDBObject;\r
+\r
+import user.mediacube.metadata.MetadataProviderFactory;\r
+import user.mediacube.metadata.MyBatisMetadataProvider;\r
+import user.mediacube.metadata.interfaces.IMetadata;\r
+import user.mediacube.metadata.interfaces.IMetadataListOptions;\r
+\r
+public class TSMMetadataProvider extends MyBatisMetadataProvider {\r
+       private static final String JDBC_DRIVER = "com.ibm.db2.jcc.DB2Driver";\r
+       private static final String JDBC_URL = MetadataProviderFactory.getSystemConfig().value("datasource.hsm.url");\r
+       private static final String JDBC_USER = MetadataProviderFactory.getSystemConfig().value("datasource.hsm.user");\r
+       private static final String JDBC_PWD = MetadataProviderFactory.getSystemConfig().value("datasource.hsm.password");\r
+\r
+       public TSMMetadataProvider() throws Exception {\r
+               super();\r
+       }\r
+\r
+       @Override\r
+       protected DataSource createDataSource() {\r
+               PooledDataSource dataSource = new PooledDataSource(JDBC_DRIVER, JDBC_URL, JDBC_USER, JDBC_PWD);\r
+               dataSource.setPoolPingEnabled(true);\r
+               dataSource.setPoolPingQuery("SELECT 1 FROM SYSIBM.SYSDUMMY1");\r
+               dataSource.setPoolPingConnectionsNotUsedFor(5000);\r
+               return dataSource;\r
+       }\r
+\r
+       @Override\r
+       protected IMetadataListOptions createOptions(BasicDBObject options) {\r
+               HSMListOptions result = new HSMListOptions();\r
+               if (options.containsKey("volumeName"))\r
+                       result.setVolumeName(options.getString("volumeName"));\r
+               if (options.containsKey("fileName"))\r
+                       result.setVolumeName(options.getString("fileName"));\r
+               return result;\r
+\r
+       }\r
+\r
+       @Override\r
+       protected String getDriverClassName() {\r
+               return JDBC_DRIVER;\r
+       }\r
+\r
+       @SuppressWarnings("unchecked")\r
+       @Override\r
+       protected List<IMetadata> queryList(SqlSession session, IMetadataListOptions options) {\r
+               IHSMMaterialMapper mapper = session.getMapper(IHSMMaterialMapper.class);\r
+               List<IMetadata> result = null;\r
+\r
+               HSMListOptions listOptions = (HSMListOptions) options;\r
+               if (listOptions.getVolumeName() == null && listOptions.getFileName() == null) {\r
+                       result = (List<IMetadata>) (List<?>) mapper.getVolumeNames();\r
+               } else {\r
+                       if (listOptions.getVolumeName() != null)\r
+                               result = (List<IMetadata>) (List<?>) mapper.getByVolumeName(listOptions.getVolumeName());\r
+                       else if (listOptions.getFileName() != null)\r
+                               result = (List<IMetadata>) (List<?>) mapper.getByFileName(listOptions.getFileName());\r
+               }\r
+               return result;\r
+       }\r
+\r
+       @Override\r
+       protected void registerMappers(Configuration configuration) {\r
+               configuration.addMapper(IHSMMaterialMapper.class);\r
+       }\r
+\r
+}\r