Repository: atlas Updated Branches: refs/heads/branch-0.8 5045172e9 -> f6502c9e5
ATLAS-2275: fix for incorrect serialization of date type trait attributes in entity notification Project: http://git-wip-us.apache.org/repos/asf/atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/f6502c9e Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/f6502c9e Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/f6502c9e Branch: refs/heads/branch-0.8 Commit: f6502c9e55b34f1ec5c78f7b74384e73bef6ddfa Parents: 5045172 Author: Madhan Neethiraj <[email protected]> Authored: Thu Nov 23 02:20:26 2017 -0800 Committer: Madhan Neethiraj <[email protected]> Committed: Thu Nov 23 02:20:26 2017 -0800 ---------------------------------------------------------------------- .../atlas/notification/AbstractNotification.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/atlas/blob/f6502c9e/notification/src/main/java/org/apache/atlas/notification/AbstractNotification.java ---------------------------------------------------------------------- diff --git a/notification/src/main/java/org/apache/atlas/notification/AbstractNotification.java b/notification/src/main/java/org/apache/atlas/notification/AbstractNotification.java index 4f56bd8..3e5880a 100644 --- a/notification/src/main/java/org/apache/atlas/notification/AbstractNotification.java +++ b/notification/src/main/java/org/apache/atlas/notification/AbstractNotification.java @@ -28,6 +28,7 @@ import org.apache.atlas.AtlasException; import org.apache.atlas.ha.HAConfiguration; import org.apache.atlas.notification.AtlasNotificationBaseMessage.CompressionKind; import org.apache.atlas.typesystem.IReferenceableInstance; +import org.apache.atlas.typesystem.IStruct; import org.apache.atlas.typesystem.Referenceable; import org.apache.atlas.typesystem.json.InstanceSerialization; import org.apache.commons.configuration.Configuration; @@ -85,6 +86,7 @@ public abstract class AbstractNotification implements NotificationInterface { public static final Gson GSON = new GsonBuilder(). registerTypeAdapter(IReferenceableInstance.class, new ReferenceableSerializer()). registerTypeAdapter(Referenceable.class, new ReferenceableSerializer()). + registerTypeAdapter(IStruct.class, new StructSerializer()). registerTypeAdapter(JSONArray.class, new JSONArraySerializer()). create(); @@ -273,6 +275,17 @@ public abstract class AbstractNotification implements NotificationInterface { } /** + * Serializer for IStruct. + */ + public static final class StructSerializer implements JsonSerializer<IStruct> { + @Override + public JsonElement serialize(IStruct src, Type typeOfSrc, JsonSerializationContext context) { + String instanceJson = InstanceSerialization.toJson(src, true); + return new JsonParser().parse(instanceJson).getAsJsonObject(); + } + } + + /** * Serializer for JSONArray. */ public static final class JSONArraySerializer implements JsonSerializer<JSONArray> {
