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