From: vasary.daniel Date: Tue, 10 Aug 2021 07:34:57 +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=bcf39d0357e535852d0e294e26bd4bc54e17513d;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C32296 --- 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 index 00000000..00e0719e --- /dev/null +++ b/server/user.mediacube.metadata/src/user/mediacube/metadata/hsm/TSMMetadataProvider.java @@ -0,0 +1,76 @@ +package user.mediacube.metadata.hsm; + +import java.util.List; + +import javax.sql.DataSource; + +import org.apache.ibatis.datasource.pooled.PooledDataSource; +import org.apache.ibatis.session.Configuration; +import org.apache.ibatis.session.SqlSession; + +import com.ibm.nosql.json.api.BasicDBObject; + +import user.mediacube.metadata.MetadataProviderFactory; +import user.mediacube.metadata.MyBatisMetadataProvider; +import user.mediacube.metadata.interfaces.IMetadata; +import user.mediacube.metadata.interfaces.IMetadataListOptions; + +public class TSMMetadataProvider extends MyBatisMetadataProvider { + private static final String JDBC_DRIVER = "com.ibm.db2.jcc.DB2Driver"; + private static final String JDBC_URL = MetadataProviderFactory.getSystemConfig().value("datasource.hsm.url"); + private static final String JDBC_USER = MetadataProviderFactory.getSystemConfig().value("datasource.hsm.user"); + private static final String JDBC_PWD = MetadataProviderFactory.getSystemConfig().value("datasource.hsm.password"); + + public TSMMetadataProvider() throws Exception { + super(); + } + + @Override + protected DataSource createDataSource() { + PooledDataSource dataSource = new PooledDataSource(JDBC_DRIVER, JDBC_URL, JDBC_USER, JDBC_PWD); + dataSource.setPoolPingEnabled(true); + dataSource.setPoolPingQuery("SELECT 1 FROM SYSIBM.SYSDUMMY1"); + dataSource.setPoolPingConnectionsNotUsedFor(5000); + return dataSource; + } + + @Override + protected IMetadataListOptions createOptions(BasicDBObject options) { + HSMListOptions result = new HSMListOptions(); + if (options.containsKey("volumeName")) + result.setVolumeName(options.getString("volumeName")); + if (options.containsKey("fileName")) + result.setVolumeName(options.getString("fileName")); + return result; + + } + + @Override + protected String getDriverClassName() { + return JDBC_DRIVER; + } + + @SuppressWarnings("unchecked") + @Override + protected List queryList(SqlSession session, IMetadataListOptions options) { + IHSMMaterialMapper mapper = session.getMapper(IHSMMaterialMapper.class); + List result = null; + + HSMListOptions listOptions = (HSMListOptions) options; + if (listOptions.getVolumeName() == null && listOptions.getFileName() == null) { + result = (List) (List) mapper.getVolumeNames(); + } else { + if (listOptions.getVolumeName() != null) + result = (List) (List) mapper.getByVolumeName(listOptions.getVolumeName()); + else if (listOptions.getFileName() != null) + result = (List) (List) mapper.getByFileName(listOptions.getFileName()); + } + return result; + } + + @Override + protected void registerMappers(Configuration configuration) { + configuration.addMapper(IHSMMaterialMapper.class); + } + +}