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