From be17730810dbf097dba2d4fd77d7ac008322dda8 Mon Sep 17 00:00:00 2001
From: pkupczyk <pkupczyk>
Date: Tue, 31 Jul 2012 08:29:46 +0000
Subject: [PATCH] SP-48 / BIS-38: Provide access to CRC32 checksums in
 PathInfoDB - make it work via JSON API

SVN: 26288
---
 .../generic/shared/api/v1/DataSetFileDTO.java | 34 +++++++++++++++++--
 .../generic/shared/api/v1/FileInfoDssDTO.java |  1 +
 .../source/java/dssApplicationContext.xml     |  3 ++
 3 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/DataSetFileDTO.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/DataSetFileDTO.java
index bb3d827403f..83bb7eb115e 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/DataSetFileDTO.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/DataSetFileDTO.java
@@ -21,6 +21,8 @@ import java.io.Serializable;
 import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.commons.lang.builder.ToStringStyle;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 import ch.systemsx.cisd.base.annotation.JsonObject;
 
 /**
@@ -28,16 +30,17 @@ import ch.systemsx.cisd.base.annotation.JsonObject;
  * 
  * @author Chandrasekhar Ramakrishnan
  */
+@SuppressWarnings("unused")
 @JsonObject("DataSetFileDTO")
 public class DataSetFileDTO implements Serializable
 {
     private static final long serialVersionUID = 1L;
 
-    private final String dataSetCode;
+    private String dataSetCode;
 
-    private final String path;
+    private String path;
 
-    private final boolean isRecursive;
+    private boolean isRecursive;
 
     public DataSetFileDTO(String dataSetCode, String path, boolean isRecursive)
     {
@@ -59,6 +62,7 @@ public class DataSetFileDTO implements Serializable
     }
 
     /** If true, this object includes sub folders */
+    @JsonProperty("isRecursive")
     public boolean isRecursive()
     {
         return isRecursive;
@@ -76,4 +80,28 @@ public class DataSetFileDTO implements Serializable
         }
         return sb.toString();
     }
+
+    //
+    // JSON-RPC
+    //
+
+    private DataSetFileDTO()
+    {
+    }
+
+    private void setDataSetCode(String dataSetCode)
+    {
+        this.dataSetCode = dataSetCode;
+    }
+
+    private void setPath(String path)
+    {
+        this.path = path;
+    }
+
+    private void setIsRecursive(boolean isRecursive)
+    {
+        this.isRecursive = isRecursive;
+    }
+
 }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/FileInfoDssDTO.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/FileInfoDssDTO.java
index c4af2906342..49eeac4544a 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/FileInfoDssDTO.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/FileInfoDssDTO.java
@@ -103,6 +103,7 @@ public class FileInfoDssDTO implements Serializable
      * Note that the checksum will only be available when it is precomputed and available from some
      * sort of database, i.e. if it is computationally "cheap" to provide the checksum.
      */
+    @JsonProperty("crc32Checksum")
     public Integer tryGetCrc32Checksum()
     {
         return crc32Checksum;
diff --git a/datastore_server/source/java/dssApplicationContext.xml b/datastore_server/source/java/dssApplicationContext.xml
index 5b7bc4792b9..9448dfe390c 100644
--- a/datastore_server/source/java/dssApplicationContext.xml
+++ b/datastore_server/source/java/dssApplicationContext.xml
@@ -164,6 +164,9 @@
         <constructor-arg ref="config-provider" />
     </bean>
 
+    <bean id="objectMapper" class="ch.systemsx.cisd.openbis.generic.shared.api.json.GenericObjectMapper">
+    </bean>
+
     <!-- 
         // This discovers on-the-fly all <code>org.springframework.aop.Advisor</code> implementations.
     -->
-- 
GitLab