From 01f65d4348bd7374f743a4b850062df767fb6d96 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Tue, 9 Aug 2016 08:40:16 +0000 Subject: [PATCH] SSDM-3726: File search domain first, fix dependencies, remove non working test SVN: 36884 --- .../DatabaseBasedDataSetPathInfoProvider.java | 24 +++++++- .../sequencedatabases/FileSearchDomain.java | 59 +++++++++---------- .../shared/IDataSetPathInfoProvider.java | 7 +-- .../generic/shared/dto/DataSetPathInfo.java | 11 ++++ .../filesearch/plugin.properties | 2 - .../systemtests/FileSearchDomainTest.java | 25 -------- 6 files changed, 65 insertions(+), 63 deletions(-) delete mode 100644 datastore_server/sourceTest/core-plugins/generic-test/1/dss/search-domain-services/filesearch/plugin.properties delete mode 100644 datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FileSearchDomainTest.java diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DatabaseBasedDataSetPathInfoProvider.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DatabaseBasedDataSetPathInfoProvider.java index efc098ff021..eeb845ae082 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DatabaseBasedDataSetPathInfoProvider.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DatabaseBasedDataSetPathInfoProvider.java @@ -137,11 +137,31 @@ public class DatabaseBasedDataSetPathInfoProvider implements IDataSetPathInfoPro } @Override - public List<ExtendedDataSetFileRecord> listPathInfosByRegularExpression( + public List<DataSetPathInfo> listPathInfosByRegularExpression( String substring) { List<ExtendedDataSetFileRecord> fileRecords = getDao().listFilesByRelativePathLikeExpression("%" + substring + "%"); - return fileRecords; + List<DataSetPathInfo> pathInfos = new ArrayList<DataSetPathInfo>(fileRecords.size()); + for (ExtendedDataSetFileRecord fileRecord : fileRecords) + { + DataSetPathInfo dataSetPathInfo = new DataSetPathInfo(); + dataSetPathInfo.setChecksumCRC32(fileRecord.checksum_crc32); + dataSetPathInfo.setDataSetCode(fileRecord.code); + dataSetPathInfo.setDirectory(fileRecord.is_directory); + dataSetPathInfo.setFileName(fileRecord.file_name); + dataSetPathInfo.setId(fileRecord.id); + dataSetPathInfo.setLastModified(fileRecord.last_modified); + dataSetPathInfo.setRelativePath(fileRecord.relative_path); + dataSetPathInfo.setSizeInBytes(fileRecord.size_in_bytes); + if (fileRecord.parent_id != null) + { + DataSetPathInfo dataSetPathInfoParent = new DataSetPathInfo(); + dataSetPathInfoParent.setId(fileRecord.parent_id); + dataSetPathInfo.setParent(dataSetPathInfoParent); + } + pathInfos.add(dataSetPathInfo); + } + return pathInfos; } @Override diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v2/sequencedatabases/FileSearchDomain.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v2/sequencedatabases/FileSearchDomain.java index 972caedacd0..3745f19a9a4 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v2/sequencedatabases/FileSearchDomain.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v2/sequencedatabases/FileSearchDomain.java @@ -6,9 +6,9 @@ import java.util.List; import java.util.Map; import java.util.Properties; -import ch.systemsx.cisd.openbis.dss.generic.server.DatabaseBasedDataSetPathInfoProvider.ExtendedDataSetFileRecord; import ch.systemsx.cisd.openbis.dss.generic.shared.IDataSetPathInfoProvider; import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; +import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetPathInfo; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSetFileSearchResultLocation; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchDomain; @@ -29,38 +29,37 @@ public class FileSearchDomain extends AbstractSearchDomainService return true; } - @Override public List<SearchDomainSearchResult> search(String searchString, Map<String, String> optionalParametersOrNull) - { - IDataSetPathInfoProvider dataSetPathInfoProvider = ServiceProvider.getDataSetPathInfoProvider(); - List<ExtendedDataSetFileRecord> dataSetPathInfos = dataSetPathInfoProvider.listPathInfosByRegularExpression(searchString); - - List<SearchDomainSearchResult> results = new ArrayList<SearchDomainSearchResult>(); - - for(ExtendedDataSetFileRecord dataSetPathInfo : dataSetPathInfos){ - - SearchDomainSearchResult searchDomainSearchResult = new SearchDomainSearchResult(); - - SearchDomain searchDomain = new SearchDomain(); - searchDomain.setName("File"); - searchDomain.setLabel("File"); + { + IDataSetPathInfoProvider dataSetPathInfoProvider = ServiceProvider.getDataSetPathInfoProvider(); + List<DataSetPathInfo> dataSetPathInfos = dataSetPathInfoProvider.listPathInfosByRegularExpression(searchString); + + List<SearchDomainSearchResult> results = new ArrayList<SearchDomainSearchResult>(); + + for (DataSetPathInfo dataSetPathInfo : dataSetPathInfos) + { + + SearchDomainSearchResult searchDomainSearchResult = new SearchDomainSearchResult(); + + SearchDomain searchDomain = new SearchDomain(); + searchDomain.setName("File"); + searchDomain.setLabel("File"); + + searchDomainSearchResult.setSearchDomain(searchDomain); + + DataSetFileSearchResultLocation dfsrl = new DataSetFileSearchResultLocation(); + dfsrl.setPermId(dataSetPathInfo.getDataSetCode()); + dfsrl.setCode(dataSetPathInfo.getDataSetCode()); + dfsrl.setIdentifier(dataSetPathInfo.getDataSetCode()); + dfsrl.setPathInDataSet(dataSetPathInfo.getRelativePath()); + dfsrl.setEntityKind(EntityKind.DATA_SET); + + searchDomainSearchResult.setResultLocation(dfsrl); + results.add(searchDomainSearchResult); + } - searchDomainSearchResult.setSearchDomain(searchDomain); - - DataSetFileSearchResultLocation dfsrl = new DataSetFileSearchResultLocation(); - dfsrl.setPermId(dataSetPathInfo.code); - dfsrl.setCode(dataSetPathInfo.code); - dfsrl.setPathInDataSet(dataSetPathInfo.relative_path); - dfsrl.setIdentifier(dataSetPathInfo.code); - dfsrl.setEntityKind(EntityKind.DATA_SET); - - searchDomainSearchResult.setResultLocation(dfsrl); - results.add(searchDomainSearchResult); - } - - return results; + return results; } - } \ No newline at end of file diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IDataSetPathInfoProvider.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IDataSetPathInfoProvider.java index 408094b5d76..ed4ae0c63ba 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IDataSetPathInfoProvider.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IDataSetPathInfoProvider.java @@ -19,7 +19,6 @@ package ch.systemsx.cisd.openbis.dss.generic.shared; import java.util.List; import java.util.Map; -import ch.systemsx.cisd.openbis.dss.generic.server.DatabaseBasedDataSetPathInfoProvider.ExtendedDataSetFileRecord; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetPathInfo; /** @@ -29,11 +28,11 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetPathInfo; */ public interface IDataSetPathInfoProvider { - + public List<DataSetPathInfo> listPathInfosByRegularExpression(String dataSetCode, String regularExpression); - public List<ExtendedDataSetFileRecord> listPathInfosByRegularExpression(String regularExpression); - + public List<DataSetPathInfo> listPathInfosByRegularExpression(String regularExpression); + public DataSetPathInfo tryGetFullDataSetRootPathInfo(String dataSetCode); public ISingleDataSetPathInfoProvider tryGetSingleDataSetPathInfoProvider(String dataSetCode); diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/dto/DataSetPathInfo.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/dto/DataSetPathInfo.java index 63077bc4f2b..5cc02a18a00 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/dto/DataSetPathInfo.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/dto/DataSetPathInfo.java @@ -27,6 +27,8 @@ public class DataSetPathInfo { private long id; + private String dataSetCode; + private String fileName; private String relativePath; @@ -136,4 +138,13 @@ public class DataSetPathInfo children.add(child); } + public String getDataSetCode() + { + return dataSetCode; + } + + public void setDataSetCode(String dataSetCode) + { + this.dataSetCode = dataSetCode; + } } diff --git a/datastore_server/sourceTest/core-plugins/generic-test/1/dss/search-domain-services/filesearch/plugin.properties b/datastore_server/sourceTest/core-plugins/generic-test/1/dss/search-domain-services/filesearch/plugin.properties deleted file mode 100644 index 04f0f01dd3b..00000000000 --- a/datastore_server/sourceTest/core-plugins/generic-test/1/dss/search-domain-services/filesearch/plugin.properties +++ /dev/null @@ -1,2 +0,0 @@ -class = ch.systemsx.cisd.openbis.dss.generic.server.api.v2.sequencedatabases.FileSearchDomain -label = File \ No newline at end of file diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FileSearchDomainTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FileSearchDomainTest.java deleted file mode 100644 index cabb2405ed4..00000000000 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FileSearchDomainTest.java +++ /dev/null @@ -1,25 +0,0 @@ -package ch.systemsx.cisd.openbis.datastoreserver.systemtests; - -import java.util.List; - -import org.testng.annotations.Test; - -import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService; -import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchDomainSearchResult; - -public class FileSearchDomainTest extends GenericSystemTest -{ - - @Test - public void test() throws Exception - { - System.out.println("HERE"); - IGeneralInformationService gis = getGeneralInformationService(); - String sessionToken = gis.tryToAuthenticateForAllServices("test", "test"); - - List<SearchDomainSearchResult> results = gis.searchOnSearchDomain(sessionToken, "File", "", null); - - System.out.println("RESULT: " + results); - gis.logout(sessionToken); - } -} \ No newline at end of file -- GitLab