Roy Golan has uploaded a new change for review.

Change subject: core: Ignoring specParams when serialization
......................................................................

core: Ignoring specParams when serialization

SpecParams isn't needed in serialization and fails the desialization due
to abstract type usage (java.util.Map)

JsonIgnore on a getter method simply doesn't work at current Jackson impl
unless used in a MixIn.

Added a new Mixin for VmPayload
Removed @JsonIgnore from VMPayload class

Bug-Url: https://bugzilla.redhat.com/985008
Change-Id: I33a6e38a83a715aa359497e0089c16b610d1234a
Signed-off-by: Roy Golan <rgo...@redhat.com>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPayload.java
M 
backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializer.java
A 
backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonVmPayloadMixIn.java
3 files changed, 18 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/05/18805/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPayload.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPayload.java
index 93d6c06..1f94f1e 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPayload.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPayload.java
@@ -4,7 +4,6 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.codehaus.jackson.annotate.JsonIgnore;
 import org.ovirt.engine.core.common.config.Config;
 import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.utils.VmDeviceType;
@@ -70,12 +69,6 @@
         return files;
     }
 
-    /**
-     * this is a calculated field our of the inner members.
-     * no need to de-serialize this as it is not a getter of a field.
-     * @return
-     */
-    @JsonIgnore
     public Map<String, Object> getSpecParams() {
         // function produce something like that:
         // 
vmPayload={volumeId:volume-id,file:{filename:content,filename2:content2,...}}
diff --git 
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializer.java
 
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializer.java
index ee96602..bca35a6 100644
--- 
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializer.java
+++ 
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializer.java
@@ -19,6 +19,7 @@
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VdsStatic;
 import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.core.common.businessentities.VmPayload;
 import org.ovirt.engine.core.common.businessentities.VmStatic;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.utils.SerializationExeption;
@@ -46,6 +47,7 @@
                 JsonVmManagementParametersBaseMixIn.class);
         
formattedMapper.getSerializationConfig().addMixInAnnotations(VmBase.class, 
JsonVmBaseMixIn.class);
         
formattedMapper.getSerializationConfig().addMixInAnnotations(VmStatic.class, 
JsonVmStaticMixIn.class);
+        
formattedMapper.getSerializationConfig().addMixInAnnotations(VmPayload.class, 
JsonVmPayloadMixIn.class);
 
         formattedMapper.configure(Feature.INDENT_OUTPUT, true);
         formattedMapper.enableDefaultTyping();
diff --git 
a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonVmPayloadMixIn.java
 
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonVmPayloadMixIn.java
new file mode 100644
index 0000000..b397632
--- /dev/null
+++ 
b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonVmPayloadMixIn.java
@@ -0,0 +1,16 @@
+package org.ovirt.engine.core.utils.serialization.json;
+
+import org.codehaus.jackson.annotate.JsonIgnore;
+import org.ovirt.engine.core.common.businessentities.VmPayload;
+
+import java.util.Collections;
+import java.util.Map;
+
+public abstract class JsonVmPayloadMixIn extends VmPayload {
+
+    @JsonIgnore
+    @Override
+    public Map<String, Object> getSpecParams() {
+        return Collections.emptyMap();
+    }
+}


-- 
To view, visit http://gerrit.ovirt.org/18805
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I33a6e38a83a715aa359497e0089c16b610d1234a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Roy Golan <rgo...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to