You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2019/10/02 00:02:55 UTC

[hbase] 01/02: HBASE-21947 TestShell is broken after we remove the jackson dependencies

This is an automated email from the ASF dual-hosted git repository.

apurtell pushed a commit to branch branch-1
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit 37e5e47faa750395852bfcf542ac7c77c04c2494
Author: zhangduo <zh...@apache.org>
AuthorDate: Mon Feb 25 21:32:14 2019 +0800

    HBASE-21947 TestShell is broken after we remove the jackson dependencies
    
    Signed-off-by: Andrew Purtell <ap...@apache.org>
---
 hbase-shell/src/main/ruby/hbase/taskmonitor.rb | 47 ++++++++++++++------------
 1 file changed, 26 insertions(+), 21 deletions(-)

diff --git a/hbase-shell/src/main/ruby/hbase/taskmonitor.rb b/hbase-shell/src/main/ruby/hbase/taskmonitor.rb
index 27aaa02..f52d13a 100644
--- a/hbase-shell/src/main/ruby/hbase/taskmonitor.rb
+++ b/hbase-shell/src/main/ruby/hbase/taskmonitor.rb
@@ -33,20 +33,21 @@ module Hbase
     # Represents information reported by a server on a single MonitoredTask
     class Task
 
-      def initialize(taskMap,host)
-
-        taskMap.each_pair do |k,v|
+      def initialize(taskMap, host)
+        taskMap.entrySet.each do |entry|
+          k = entry.getKey
+          v = entry.getValue
           case k
-            when "statustimems"
-              @statustime = Time.at(v/1000)
-            when "status"
-              @status = v
-            when "starttimems"
-              @starttime = Time.at(v/1000)
-            when "description"
-              @description = v
-            when "state"
-              @state = v
+          when 'statustimems'
+            @statustime = Time.at(v.getAsLong / 1000)
+          when 'status'
+            @status = v.getAsString
+          when 'starttimems'
+            @starttime = Time.at(v.getAsLong / 1000)
+          when 'description'
+            @description = v.getAsString
+          when 'state'
+            @state = v.getAsString
           end
         end
 
@@ -82,7 +83,8 @@ module Hbase
     def tasksOnHost(filter,host)
 
       java_import 'java.net.URL'
-      java_import 'com.fasterxml.jackson.databind.ObjectMapper'
+      java_import 'java.io.InputStreamReader'
+      java_import 'org.apache.hbase.thirdparty.com.google.gson.JsonParser'
 
       infoport = @admin.getClusterStatus().getLoad(host).getInfoServerPort().to_s
 
@@ -96,16 +98,19 @@ module Hbase
       schema = "http://"
       url = schema + host.hostname + ":" + infoport + "/rs-status?format=json&filter=" + filter
 
-      json = URL.new(url)
-      mapper = ObjectMapper.new
+      json = URL.new(url).openStream
+      parser = JsonParser.new
 
       # read and parse JSON
-      tasksArrayList = mapper.readValue(json,java.lang.Object.java_class)
-
+      begin
+        tasks_array_list = parser.parse(InputStreamReader.new(json, 'UTF-8')).getAsJsonArray
+      ensure
+        json.close
+      end
       # convert to an array of TaskMonitor::Task instances
-      tasks = Array.new
-      tasksArrayList.each do |t|
-        tasks.unshift Task.new(t,host)
+      tasks = []
+      tasks_array_list.each do |t|
+        tasks.unshift Task.new(t.getAsJsonObject, host)
       end
 
       return tasks