Juan Hernandez has uploaded a new change for review. Change subject: core: Support JSON serialization in ExternalId ......................................................................
core: Support JSON serialization in ExternalId This patch adds a default constructor to the ExternalId class in order to support JSON serialization as required by the compensation mechanism. Change-Id: I51e643893b9e59cb0cacd1779398946f1babe694 Signed-off-by: Juan Hernandez <juan.hernan...@redhat.com> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ExternalId.java A backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/ExternalIdTest.java 2 files changed, 34 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/16/19916/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ExternalId.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ExternalId.java index 2c74e17..fe7e6c1 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ExternalId.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ExternalId.java @@ -20,9 +20,18 @@ // a key in a hash map: private int hash; + /** + * This constructor is intended only for serialization support, please + * don't use it directly. + */ + public ExternalId() { + bytes = new byte[0]; + hash = Arrays.hashCode(bytes); + } + public ExternalId(byte[] values) { - this.bytes = values; - this.hash = Arrays.hashCode(values); + bytes = values; + hash = Arrays.hashCode(values); } /** @@ -56,6 +65,7 @@ for (int i = 0; i < values.length; i++) { bytes[i] = (byte) (values[i] & 0xff); } + hash = Arrays.hashCode(values); } public byte[] getBytes() { diff --git a/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/ExternalIdTest.java b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/ExternalIdTest.java new file mode 100644 index 0000000..253f0b0 --- /dev/null +++ b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/ExternalIdTest.java @@ -0,0 +1,22 @@ +package org.ovirt.engine.core.common.utils; + +import static junit.framework.Assert.assertEquals; + +import org.codehaus.jackson.map.ObjectMapper; +import org.junit.Test; + +public class ExternalIdTest { + + /** + * Check that an external id can be serialized and deserialized using JSON. + */ + @Test + public void testJsonSerializationAndDeserialization() throws Exception { + ExternalId original = new ExternalId(0, 1, 2, 3); + ObjectMapper mapper = new ObjectMapper(); + String value = mapper.writeValueAsString(original); + ExternalId deserialized = mapper.readValue(value, ExternalId.class); + assertEquals(original, deserialized); + } + +} -- To view, visit http://gerrit.ovirt.org/19916 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I51e643893b9e59cb0cacd1779398946f1babe694 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Juan Hernandez <juan.hernan...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches