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