You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@falcon.apache.org by ro...@apache.org on 2014/10/13 08:30:29 UTC

git commit: FALCON-706 Parse json with instances to InstancesResult using joda's DateTime. Contributed by Ruslan Ostafiychuk

Repository: incubator-falcon
Updated Branches:
  refs/heads/master 66213b056 -> ea8c7c6be


FALCON-706 Parse json with instances to InstancesResult using joda's DateTime. Contributed by Ruslan Ostafiychuk


Project: http://git-wip-us.apache.org/repos/asf/incubator-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-falcon/commit/ea8c7c6b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-falcon/tree/ea8c7c6b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-falcon/diff/ea8c7c6b

Branch: refs/heads/master
Commit: ea8c7c6be3f2b98611bd26860f668b76997c3243
Parents: 66213b0
Author: Ruslan Ostafiychuk <ro...@apache.org>
Authored: Mon Oct 13 09:11:33 2014 +0300
Committer: Ruslan Ostafiychuk <ro...@apache.org>
Committed: Mon Oct 13 09:27:09 2014 +0300

----------------------------------------------------------------------
 falcon-regression/CHANGES.txt                   |  3 +++
 .../regression/core/util/InstanceUtil.java      | 24 ++++++++++++--------
 2 files changed, 18 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/ea8c7c6b/falcon-regression/CHANGES.txt
----------------------------------------------------------------------
diff --git a/falcon-regression/CHANGES.txt b/falcon-regression/CHANGES.txt
index 38e0241..bf9660d 100644
--- a/falcon-regression/CHANGES.txt
+++ b/falcon-regression/CHANGES.txt
@@ -14,6 +14,9 @@ Trunk (Unreleased)
    via Samarth Gupta)
 
   IMPROVEMENTS
+   FALCON-706 Parse json with instances to InstancesResult using joda's DateTime (Ruslan
+   Ostafiychuk)
+
    FALCON-798 optionalTest_updateProcessMakeOptionalCompulsory fixed (Paul
    Isaychuk via Raghav Kumar Gautam)
 

http://git-wip-us.apache.org/repos/asf/incubator-falcon/blob/ea8c7c6b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/InstanceUtil.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/InstanceUtil.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/InstanceUtil.java
index d8bef69..73cf8c8 100644
--- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/InstanceUtil.java
+++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/InstanceUtil.java
@@ -19,6 +19,10 @@
 package org.apache.falcon.regression.core.util;
 
 import com.google.gson.GsonBuilder;
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParseException;
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.exception.ExceptionUtils;
@@ -59,6 +63,7 @@ import org.apache.oozie.client.Job.Status;
 import org.apache.oozie.client.OozieClient;
 import org.apache.oozie.client.OozieClientException;
 import org.apache.oozie.client.WorkflowJob;
+import org.joda.time.DateTime;
 import org.testng.Assert;
 
 import java.io.BufferedReader;
@@ -66,9 +71,11 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Type;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.EnumSet;
 import java.util.List;
 import java.util.Map;
@@ -167,15 +174,14 @@ public final class InstanceUtil {
             r.setStatusCode(400);
             return r;
         }
-        if (url.contains("/summary/")) {
-            r = new GsonBuilder().setPrettyPrinting().create()
-                    .fromJson(jsonString, InstancesSummaryResult.class);
-        } else {
-
-            r = new GsonBuilder().create()
-                    .fromJson(jsonString, InstancesResult.class);
-        }
-
+        r = new GsonBuilder().registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
+                @Override
+                public Date deserialize(JsonElement json, Type t, JsonDeserializationContext c)
+                    throws JsonParseException {
+                    return new DateTime(json.getAsString()).toDate();
+                }
+            }).create().fromJson(jsonString,
+            url.contains("/summary/") ? InstancesSummaryResult.class : InstancesResult.class);
         LOGGER.info("r.getMessage(): " + r.getMessage());
         LOGGER.info("r.getStatusCode(): " + r.getStatusCode());
         LOGGER.info("r.getStatus() " + r.getStatus());