Repository: hbase
Updated Branches:
  refs/heads/branch-1 fa182c2ea -> 2ee7d2a48


HBASE-15845 Changes:
- Remove omnipresence of formatter object since it is kind of a use-and-throw 
class. Commands should create
  an instance, use it to format the output and discard it.
- Some refactoring
Tested: Ran TestShell

Change-Id: I12176ee12695df952ee4b0f8397e5d3be8f16a87


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/2ee7d2a4
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/2ee7d2a4
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/2ee7d2a4

Branch: refs/heads/branch-1
Commit: 2ee7d2a4882b18001bd5fbe7e5db32d6f75153ca
Parents: fa182c2
Author: Apekshit Sharma <a...@apache.org>
Authored: Fri Jun 3 16:34:52 2016 -0700
Committer: Apekshit Sharma <a...@apache.org>
Committed: Fri Jun 3 16:35:29 2016 -0700

----------------------------------------------------------------------
 bin/hirb.rb                                     |  6 +-
 hbase-shell/src/main/ruby/hbase/admin.rb        | 82 ++++++++------------
 hbase-shell/src/main/ruby/hbase/hbase.rb        | 34 ++++----
 hbase-shell/src/main/ruby/hbase/quotas.rb       |  3 +-
 .../src/main/ruby/hbase/replication_admin.rb    |  3 +-
 hbase-shell/src/main/ruby/hbase/security.rb     |  3 +-
 hbase-shell/src/main/ruby/hbase/table.rb        |  2 +-
 hbase-shell/src/main/ruby/hbase/taskmonitor.rb  |  3 +-
 .../src/main/ruby/hbase/visibility_labels.rb    |  5 +-
 hbase-shell/src/main/ruby/shell.rb              | 23 +++---
 hbase-shell/src/main/ruby/shell/commands.rb     |  9 ++-
 hbase-shell/src/test/ruby/hbase/admin_test.rb   |  1 -
 hbase-shell/src/test/ruby/hbase/hbase_test.rb   |  9 +--
 .../test/ruby/hbase/replication_admin_test.rb   |  1 -
 .../src/test/ruby/hbase/security_admin_test.rb  |  1 -
 .../ruby/hbase/visibility_labels_admin_test.rb  |  1 -
 .../src/test/ruby/shell/noninteractive_test.rb  |  4 +-
 hbase-shell/src/test/ruby/shell/shell_test.rb   |  4 +-
 hbase-shell/src/test/ruby/test_helper.rb        |  8 +-
 19 files changed, 86 insertions(+), 116 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/bin/hirb.rb
----------------------------------------------------------------------
diff --git a/bin/hirb.rb b/bin/hirb.rb
index 94b5cdb..2726e48 100644
--- a/bin/hirb.rb
+++ b/bin/hirb.rb
@@ -123,15 +123,11 @@ require 'shell'
 # Require formatter
 require 'shell/formatter'
 
-# Presume console format.
-# Formatter takes an :output_stream parameter, if you don't want STDOUT.
-@formatter = Shell::Formatter::Console.new
-
 # Setup the HBase module.  Create a configuration.
 @hbase = Hbase::Hbase.new
 
 # Setup console
-@shell = Shell::Shell.new(@hbase, @formatter, interactive)
+@shell = Shell::Shell.new(@hbase, interactive)
 @shell.debug = @shell_debug
 
 # Add commands to this namespace

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/main/ruby/hbase/admin.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb 
b/hbase-shell/src/main/ruby/hbase/admin.rb
index f2bca0e..21e0652 100644
--- a/hbase-shell/src/main/ruby/hbase/admin.rb
+++ b/hbase-shell/src/main/ruby/hbase/admin.rb
@@ -32,10 +32,10 @@ module Hbase
   class Admin
     include HBaseConstants
 
-    def initialize(admin, formatter)
-      @admin = admin
-      @connection = @admin.getConnection()
-      @formatter = formatter
+    def initialize(connection)
+      @connection = connection
+      # Java Admin instance
+      @admin = @connection.getAdmin
     end
 
     def close
@@ -276,12 +276,6 @@ module Hbase
     end
 
     
#----------------------------------------------------------------------------------------------
-    # Parse arguments and update HTableDescriptor accordingly
-    def parse_htd_args(htd, arg)
-      
htd.setNormalizationEnabled(JBoolean.valueOf(arg.delete(NORMALIZATION_ENABLED)))
 if arg[NORMALIZATION_ENABLED]
-    end
-
-    
#----------------------------------------------------------------------------------------------
     # Creates a table
     def create(table_name, *args)
       # Fail if table name is not a string
@@ -359,24 +353,7 @@ module Hbase
         end
 
         # Done with splits; apply formerly-table_att parameters.
-        htd.setOwnerString(arg.delete(OWNER)) if arg[OWNER]
-        htd.setMaxFileSize(JLong.valueOf(arg.delete(MAX_FILESIZE))) if 
arg[MAX_FILESIZE]
-        htd.setReadOnly(JBoolean.valueOf(arg.delete(READONLY))) if 
arg[READONLY]
-        htd.setCompactionEnabled(JBoolean.valueOf(arg[COMPACTION_ENABLED])) if 
arg[COMPACTION_ENABLED]
-        
htd.setMemStoreFlushSize(JLong.valueOf(arg.delete(MEMSTORE_FLUSHSIZE))) if 
arg[MEMSTORE_FLUSHSIZE]
-        # DEFERRED_LOG_FLUSH is deprecated and was replaced by DURABILITY.  To 
keep backward compatible, it still exists.
-        # However, it has to be set before DURABILITY so that DURABILITY could 
overwrite if both args are set
-        if arg.include?(DEFERRED_LOG_FLUSH)
-          if arg.delete(DEFERRED_LOG_FLUSH).to_s.upcase == "TRUE"
-            
htd.setDurability(org.apache.hadoop.hbase.client.Durability.valueOf("ASYNC_WAL"))
-          else
-            
htd.setDurability(org.apache.hadoop.hbase.client.Durability.valueOf("SYNC_WAL"))
-          end
-        end
-        
htd.setDurability(org.apache.hadoop.hbase.client.Durability.valueOf(arg.delete(DURABILITY)))
 if arg[DURABILITY]
-        parse_htd_args(htd, arg)
-        set_user_metadata(htd, arg.delete(METADATA)) if arg[METADATA]
-        set_descriptor_config(htd, arg.delete(CONFIGURATION)) if 
arg[CONFIGURATION]
+        update_htd_from_arg(htd, arg)
 
         arg.each_key do |ignored_key|
           puts("An argument ignored (unknown or overridden): %s" % [ 
ignored_key ])
@@ -612,26 +589,7 @@ module Hbase
         end
 
         # 3) Some args for the table, optionally with METHOD => table_att 
(deprecated)
-        raise(ArgumentError, "NAME argument in an unexpected place") if name
-        htd.setOwnerString(arg.delete(OWNER)) if arg[OWNER]
-        htd.setMaxFileSize(JLong.valueOf(arg.delete(MAX_FILESIZE))) if 
arg[MAX_FILESIZE]
-        htd.setReadOnly(JBoolean.valueOf(arg.delete(READONLY))) if 
arg[READONLY]
-        htd.setCompactionEnabled(JBoolean.valueOf(arg[COMPACTION_ENABLED])) if 
arg[COMPACTION_ENABLED]
-        parse_htd_args(htd, arg)
-        
htd.setMemStoreFlushSize(JLong.valueOf(arg.delete(MEMSTORE_FLUSHSIZE))) if 
arg[MEMSTORE_FLUSHSIZE]
-        # DEFERRED_LOG_FLUSH is deprecated and was replaced by DURABILITY.  To 
keep backward compatible, it still exists.
-        # However, it has to be set before DURABILITY so that DURABILITY could 
overwrite if both args are set
-        if arg.include?(DEFERRED_LOG_FLUSH)
-          if arg.delete(DEFERRED_LOG_FLUSH).to_s.upcase == "TRUE"
-            
htd.setDurability(org.apache.hadoop.hbase.client.Durability.valueOf("ASYNC_WAL"))
-          else
-            
htd.setDurability(org.apache.hadoop.hbase.client.Durability.valueOf("SYNC_WAL"))
-          end
-        end
-        
htd.setDurability(org.apache.hadoop.hbase.client.Durability.valueOf(arg.delete(DURABILITY)))
 if arg[DURABILITY]
-        
htd.setRegionReplication(JInteger.valueOf(arg.delete(REGION_REPLICATION))) if 
arg[REGION_REPLICATION]
-        set_user_metadata(htd, arg.delete(METADATA)) if arg[METADATA]
-        set_descriptor_config(htd, arg.delete(CONFIGURATION)) if 
arg[CONFIGURATION]
+        update_htd_from_arg(htd, arg)
 
         # set a coprocessor attribute
         valid_coproc_keys = []
@@ -723,7 +681,7 @@ module Hbase
             rLoadSink = sl.getReplicationLoadSink()
             rSinkString << " AgeOfLastAppliedOp=" + 
rLoadSink.getAgeOfLastAppliedOp().to_s
             rSinkString << ", TimeStampsOfLastAppliedOp=" +
-                           
(java.util.Date.new(rLoadSink.getTimeStampsOfLastAppliedOp())).toString()
+                
(java.util.Date.new(rLoadSink.getTimeStampsOfLastAppliedOp())).toString()
             rLoadSourceList = sl.getReplicationLoadSourceList()
             index = 0
             while index < rLoadSourceList.size()
@@ -732,7 +690,7 @@ module Hbase
               rSourceString << ", AgeOfLastShippedOp=" + 
rLoadSource.getAgeOfLastShippedOp().to_s
               rSourceString << ", SizeOfLogQueue=" + 
rLoadSource.getSizeOfLogQueue().to_s
               rSourceString << ", TimeStampsOfLastShippedOp=" +
-                             
(java.util.Date.new(rLoadSource.getTimeStampOfLastShippedOp())).toString()
+                  
(java.util.Date.new(rLoadSource.getTimeStampOfLastShippedOp())).toString()
               rSourceString << ", Replication Lag=" + 
rLoadSource.getReplicationLag().to_s
               index = index + 1
             end
@@ -1131,5 +1089,29 @@ module Hbase
     def list_procedures()
       @admin.listProcedures()
     end
+
+    # Parse arguments and update HTableDescriptor accordingly
+    def update_htd_from_arg(htd, arg)
+      htd.setOwnerString(arg.delete(OWNER)) if arg[OWNER]
+      htd.setMaxFileSize(JLong.valueOf(arg.delete(MAX_FILESIZE))) if 
arg[MAX_FILESIZE]
+      htd.setReadOnly(JBoolean.valueOf(arg.delete(READONLY))) if arg[READONLY]
+      htd.setCompactionEnabled(JBoolean.valueOf(arg[COMPACTION_ENABLED])) if 
arg[COMPACTION_ENABLED]
+      htd.setNormalizationEnabled(
+        JBoolean.valueOf(arg[NORMALIZATION_ENABLED])) if 
arg[NORMALIZATION_ENABLED]
+      htd.setMemStoreFlushSize(JLong.valueOf(arg.delete(MEMSTORE_FLUSHSIZE))) 
if arg[MEMSTORE_FLUSHSIZE]
+      # DEFERRED_LOG_FLUSH is deprecated and was replaced by DURABILITY.  To 
keep backward compatible, it still exists.
+      # However, it has to be set before DURABILITY so that DURABILITY could 
overwrite if both args are set
+      if arg.include?(DEFERRED_LOG_FLUSH)
+        if arg.delete(DEFERRED_LOG_FLUSH).to_s.upcase == "TRUE"
+          
htd.setDurability(org.apache.hadoop.hbase.client.Durability.valueOf("ASYNC_WAL"))
+        else
+          
htd.setDurability(org.apache.hadoop.hbase.client.Durability.valueOf("SYNC_WAL"))
+        end
+      end
+      
htd.setDurability(org.apache.hadoop.hbase.client.Durability.valueOf(arg.delete(DURABILITY)))
 if arg[DURABILITY]
+      
htd.setRegionReplication(JInteger.valueOf(arg.delete(REGION_REPLICATION))) if 
arg[REGION_REPLICATION]
+      set_user_metadata(htd, arg.delete(METADATA)) if arg[METADATA]
+      set_descriptor_config(htd, arg.delete(CONFIGURATION)) if 
arg[CONFIGURATION]
+    end
   end
 end

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/main/ruby/hbase/hbase.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/hbase.rb 
b/hbase-shell/src/main/ruby/hbase/hbase.rb
index 9c6946d..e0243ce 100644
--- a/hbase-shell/src/main/ruby/hbase/hbase.rb
+++ b/hbase-shell/src/main/ruby/hbase/hbase.rb
@@ -18,6 +18,8 @@
 #
 
 include Java
+java_import org.apache.hadoop.hbase.client.ConnectionFactory
+java_import org.apache.hadoop.hbase.HBaseConfiguration
 
 require 'hbase/admin'
 require 'hbase/table'
@@ -35,21 +37,21 @@ module Hbase
       if config
         self.configuration = config
       else
-        self.configuration = org.apache.hadoop.hbase.HBaseConfiguration.create
+        self.configuration = HBaseConfiguration.create
         # Turn off retries in hbase and ipc.  Human doesn't want to wait on N 
retries.
         configuration.setInt("hbase.client.retries.number", 7)
         configuration.setInt("hbase.ipc.client.connect.max.retries", 3)
       end
-      @connection = 
org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(
-          self.configuration)
+      @connection = ConnectionFactory.createConnection(self.configuration)
     end
 
-    def admin(formatter)
-      ::Hbase::Admin.new(@connection.getAdmin, formatter)
+    # Returns ruby's Admin class from admin.rb
+    def admin()
+      ::Hbase::Admin.new(@connection)
     end
 
-    def taskmonitor(formatter)
-      ::Hbase::TaskMonitor.new(configuration, formatter)
+    def taskmonitor()
+      ::Hbase::TaskMonitor.new(configuration)
     end
 
     # Create new one each time
@@ -57,20 +59,20 @@ module Hbase
       ::Hbase::Table.new(@connection.getTable(table), shell)
     end
 
-    def replication_admin(formatter)
-      ::Hbase::RepAdmin.new(configuration, formatter)
+    def replication_admin()
+      ::Hbase::RepAdmin.new(configuration)
     end
 
-    def security_admin(formatter)
-      ::Hbase::SecurityAdmin.new(@connection.getAdmin, formatter)
+    def security_admin()
+      ::Hbase::SecurityAdmin.new(@connection.getAdmin)
     end
 
-    def visibility_labels_admin(formatter)
-      ::Hbase::VisibilityLabelsAdmin.new(@connection.getAdmin, formatter)
+    def visibility_labels_admin()
+      ::Hbase::VisibilityLabelsAdmin.new(@connection.getAdmin)
     end
-    
-    def quotas_admin(formatter)
-      ::Hbase::QuotasAdmin.new(@connection.getAdmin, formatter)
+
+    def quotas_admin()
+      ::Hbase::QuotasAdmin.new(@connection.getAdmin)
     end
 
     def shutdown

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/main/ruby/hbase/quotas.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/quotas.rb 
b/hbase-shell/src/main/ruby/hbase/quotas.rb
index 0be428d..bf2dc63 100644
--- a/hbase-shell/src/main/ruby/hbase/quotas.rb
+++ b/hbase-shell/src/main/ruby/hbase/quotas.rb
@@ -36,9 +36,8 @@ end
 
 module Hbase
   class QuotasAdmin
-    def initialize(admin, formatter)
+    def initialize(admin)
       @admin = admin
-      @formatter = formatter
     end
 
     def close

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/main/ruby/hbase/replication_admin.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/replication_admin.rb 
b/hbase-shell/src/main/ruby/hbase/replication_admin.rb
index 882481a..41f8180 100644
--- a/hbase-shell/src/main/ruby/hbase/replication_admin.rb
+++ b/hbase-shell/src/main/ruby/hbase/replication_admin.rb
@@ -31,10 +31,9 @@ module Hbase
   class RepAdmin
     include HBaseConstants
 
-    def initialize(configuration, formatter)
+    def initialize(configuration)
       @replication_admin = ReplicationAdmin.new(configuration)
       @configuration = configuration
-      @formatter = formatter
     end
 
     
#----------------------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/main/ruby/hbase/security.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/security.rb 
b/hbase-shell/src/main/ruby/hbase/security.rb
index f061e8c..56cc286 100644
--- a/hbase-shell/src/main/ruby/hbase/security.rb
+++ b/hbase-shell/src/main/ruby/hbase/security.rb
@@ -24,10 +24,9 @@ module Hbase
   class SecurityAdmin
     include HBaseConstants
 
-    def initialize(admin, formatter)
+    def initialize(admin)
       @admin = admin
       @connection = @admin.getConnection()
-      @formatter = formatter
     end
 
     def close

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/main/ruby/hbase/table.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/table.rb 
b/hbase-shell/src/main/ruby/hbase/table.rb
index 40095c8..7c47dc4 100644
--- a/hbase-shell/src/main/ruby/hbase/table.rb
+++ b/hbase-shell/src/main/ruby/hbase/table.rb
@@ -295,7 +295,7 @@ EOF
       # Parse arguments
       #
       unless args.kind_of?(Hash)
-        raise ArgumentError, "Failed parse of of #{args.inspect}, 
#{args.class}"
+        raise ArgumentError, "Failed parse of #{args.inspect}, #{args.class}"
       end
 
       # Get maxlength parameter if passed

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/main/ruby/hbase/taskmonitor.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/taskmonitor.rb 
b/hbase-shell/src/main/ruby/hbase/taskmonitor.rb
index df93848..d312558 100644
--- a/hbase-shell/src/main/ruby/hbase/taskmonitor.rb
+++ b/hbase-shell/src/main/ruby/hbase/taskmonitor.rb
@@ -71,9 +71,8 @@ module Hbase
     end
 
 
-    def initialize(configuration, formatter)
+    def initialize(configuration)
       @conf = configuration
-      @formatter = formatter
       @conn = 
org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(@conf)
       @admin = @conn.getAdmin()
     end

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/main/ruby/hbase/visibility_labels.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/hbase/visibility_labels.rb 
b/hbase-shell/src/main/ruby/hbase/visibility_labels.rb
index 676903f..db333f5 100644
--- a/hbase-shell/src/main/ruby/hbase/visibility_labels.rb
+++ b/hbase-shell/src/main/ruby/hbase/visibility_labels.rb
@@ -24,10 +24,9 @@ java_import org.apache.hadoop.hbase.util.Bytes
 module Hbase
   class VisibilityLabelsAdmin
 
-    def initialize(admin, formatter)
+    def initialize(admin)
       @admin = admin
       @config = @admin.getConfiguration()
-      @formatter = formatter
     end
 
     def close
@@ -41,7 +40,7 @@ module Hbase
         labels = [ args ].flatten.compact
       end
       if labels.size() == 0
-       raise(ArgumentError, "Arguments cannot be null")
+        raise(ArgumentError, "Arguments cannot be null")
       end
 
       begin

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/main/ruby/shell.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/shell.rb 
b/hbase-shell/src/main/ruby/shell.rb
index c64d3b9..a39b617 100644
--- a/hbase-shell/src/main/ruby/shell.rb
+++ b/hbase-shell/src/main/ruby/shell.rb
@@ -70,25 +70,23 @@ module Shell
   #----------------------------------------------------------------------
   class Shell
     attr_accessor :hbase
-    attr_accessor :formatter
     attr_accessor :interactive
     alias interactive? interactive
 
     @debug = false
     attr_accessor :debug
 
-    def initialize(hbase, formatter, interactive=true)
+    def initialize(hbase, interactive=true)
       self.hbase = hbase
-      self.formatter = formatter
       self.interactive = interactive
     end
 
     def hbase_admin
-      @hbase_admin ||= hbase.admin(formatter)
+      @hbase_admin ||= hbase.admin()
     end
 
     def hbase_taskmonitor
-      @hbase_taskmonitor ||= hbase.taskmonitor(formatter)
+      @hbase_taskmonitor ||= hbase.taskmonitor()
     end
 
     def hbase_table(name)
@@ -96,19 +94,19 @@ module Shell
     end
 
     def hbase_replication_admin
-      @hbase_replication_admin ||= hbase.replication_admin(formatter)
+      @hbase_replication_admin ||= hbase.replication_admin()
     end
 
     def hbase_security_admin
-      @hbase_security_admin ||= hbase.security_admin(formatter)
+      @hbase_security_admin ||= hbase.security_admin()
     end
 
     def hbase_visibility_labels_admin
-      @hbase_visibility_labels_admin ||= 
hbase.visibility_labels_admin(formatter)
+      @hbase_visibility_labels_admin ||= hbase.visibility_labels_admin()
     end
     
     def hbase_quotas_admin
-      @hbase_quotas_admin ||= hbase.quotas_admin(formatter)
+      @hbase_quotas_admin ||= hbase.quotas_admin()
     end
 
     def export_commands(where)
@@ -136,7 +134,7 @@ module Shell
       internal_command(command, :command, *args)
     end
 
-    #call a specific internal method in the command instance
+    # call a specific internal method in the command instance
     # command  - name of the command to call
     # method_name - name of the method on the command to call. Defaults to 
just 'command'
     # args - to be passed to the named method
@@ -145,8 +143,9 @@ module Shell
     end
 
     def print_banner
-      puts "HBase Shell; enter 'help<RETURN>' for list of supported commands."
-      puts 'Type "exit<RETURN>" to leave the HBase Shell'
+      puts 'HBase Shell'
+      puts 'Use "help" to get list of supported commands.'
+      puts 'Use "exit" to quit this interactive shell.'
       print 'Version '
       command('version')
       puts

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/main/ruby/shell/commands.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/shell/commands.rb 
b/hbase-shell/src/main/ruby/shell/commands.rb
index 851620c..d580f5e 100644
--- a/hbase-shell/src/main/ruby/shell/commands.rb
+++ b/hbase-shell/src/main/ruby/shell/commands.rb
@@ -26,7 +26,7 @@ module Shell
       end
 
       #wrap an execution of cmd to catch hbase exceptions
-      # cmd - command name to execture
+      # cmd - command name to execute
       # args - arguments to pass to the command
       def command_safe(debug, cmd = :command, *args)
         # send is internal ruby method to call 'cmd' with *args
@@ -50,6 +50,9 @@ module Shell
         end
       end
 
+      # Convenience functions to get different admins
+
+      # Returns HBase::Admin ruby class.
       def admin
         @shell.hbase_admin
       end
@@ -79,9 +82,9 @@ module Shell
       end
 
       #----------------------------------------------------------------------
-
+      # Creates formatter instance first time and then reuses it.
       def formatter
-        @shell.formatter
+        @formatter ||= ::Shell::Formatter::Console.new
       end
 
       def format_simple_command

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/test/ruby/hbase/admin_test.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/test/ruby/hbase/admin_test.rb 
b/hbase-shell/src/test/ruby/hbase/admin_test.rb
index 330ec2e..4a70b56 100644
--- a/hbase-shell/src/test/ruby/hbase/admin_test.rb
+++ b/hbase-shell/src/test/ruby/hbase/admin_test.rb
@@ -18,7 +18,6 @@
 #
 
 require 'shell'
-require 'shell/formatter'
 require 'stringio'
 require 'hbase'
 require 'hbase/hbase'

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/test/ruby/hbase/hbase_test.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/test/ruby/hbase/hbase_test.rb 
b/hbase-shell/src/test/ruby/hbase/hbase_test.rb
index 185ec3e..b59f419 100644
--- a/hbase-shell/src/test/ruby/hbase/hbase_test.rb
+++ b/hbase-shell/src/test/ruby/hbase/hbase_test.rb
@@ -22,7 +22,6 @@ require 'hbase'
 module Hbase
   class HbaseTest < Test::Unit::TestCase
     def setup
-      @formatter = Shell::Formatter::Console.new()
       @hbase = ::Hbase::Hbase.new($TEST_CLUSTER.getConfiguration)
     end
 
@@ -31,19 +30,19 @@ module Hbase
     end
 
     define_test "Hbase::Hbase#admin should create a new admin object when 
called the first time" do
-      assert_kind_of(::Hbase::Admin, @hbase.admin(@formatter))
+      assert_kind_of(::Hbase::Admin, @hbase.admin())
     end
 
     define_test "Hbase::Hbase#admin should create a new admin object every 
call" do
-      assert_not_same(@hbase.admin(@formatter), @hbase.admin(@formatter))
+      assert_not_same(@hbase.admin(), @hbase.admin())
     end
 
     define_test "Hbase::Hbase#table should create a new table object when 
called the first time" do
-      assert_kind_of(::Hbase::Table, @hbase.table('hbase:meta', @formatter))
+      assert_kind_of(::Hbase::Table, @hbase.table('hbase:meta', @shell))
     end
 
     define_test "Hbase::Hbase#table should create a new table object every 
call" do
-      assert_not_same(@hbase.table('hbase:meta', @formatter), 
@hbase.table('hbase:meta', @formatter))
+      assert_not_same(@hbase.table('hbase:meta', @shell), 
@hbase.table('hbase:meta', @shell))
     end
   end
 end

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb 
b/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb
index 6edb447..ac088ed 100644
--- a/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb
+++ b/hbase-shell/src/test/ruby/hbase/replication_admin_test.rb
@@ -18,7 +18,6 @@
 #
 
 require 'shell'
-require 'shell/formatter'
 require 'hbase'
 require 'hbase/hbase'
 require 'hbase/table'

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/test/ruby/hbase/security_admin_test.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/test/ruby/hbase/security_admin_test.rb 
b/hbase-shell/src/test/ruby/hbase/security_admin_test.rb
index 6ecfb98..c475e94 100644
--- a/hbase-shell/src/test/ruby/hbase/security_admin_test.rb
+++ b/hbase-shell/src/test/ruby/hbase/security_admin_test.rb
@@ -18,7 +18,6 @@
 #
 
 require 'shell'
-require 'shell/formatter'
 require 'hbase'
 require 'hbase/hbase'
 require 'hbase/table'

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/test/ruby/hbase/visibility_labels_admin_test.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/test/ruby/hbase/visibility_labels_admin_test.rb 
b/hbase-shell/src/test/ruby/hbase/visibility_labels_admin_test.rb
index 47ac292..ca906b2 100644
--- a/hbase-shell/src/test/ruby/hbase/visibility_labels_admin_test.rb
+++ b/hbase-shell/src/test/ruby/hbase/visibility_labels_admin_test.rb
@@ -18,7 +18,6 @@
 #
 
 require 'shell'
-require 'shell/formatter'
 require 'hbase'
 require 'hbase/hbase'
 require 'hbase/table'

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/test/ruby/shell/noninteractive_test.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/test/ruby/shell/noninteractive_test.rb 
b/hbase-shell/src/test/ruby/shell/noninteractive_test.rb
index 14bdbc7..65c0dad 100644
--- a/hbase-shell/src/test/ruby/shell/noninteractive_test.rb
+++ b/hbase-shell/src/test/ruby/shell/noninteractive_test.rb
@@ -16,13 +16,11 @@
 #
 require 'hbase'
 require 'shell'
-require 'shell/formatter'
 
 class NonInteractiveTest < Test::Unit::TestCase
   def setup
-    @formatter = ::Shell::Formatter::Console.new()
     @hbase = ::Hbase::Hbase.new($TEST_CLUSTER.getConfiguration)
-    @shell = Shell::Shell.new(@hbase, @formatter, false)
+    @shell = Shell::Shell.new(@hbase, false)
   end
 
   define_test "Shell::Shell noninteractive mode should throw" do

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/test/ruby/shell/shell_test.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/test/ruby/shell/shell_test.rb 
b/hbase-shell/src/test/ruby/shell/shell_test.rb
index 56b7dc8..689a18b 100644
--- a/hbase-shell/src/test/ruby/shell/shell_test.rb
+++ b/hbase-shell/src/test/ruby/shell/shell_test.rb
@@ -19,13 +19,11 @@
 
 require 'hbase'
 require 'shell'
-require 'shell/formatter'
 
 class ShellTest < Test::Unit::TestCase
   def setup
-    @formatter = ::Shell::Formatter::Console.new()
     @hbase = ::Hbase::Hbase.new($TEST_CLUSTER.getConfiguration)
-    @shell = Shell::Shell.new(@hbase, @formatter)
+    @shell = Shell::Shell.new(@hbase)
   end
 
   define_test "Shell::Shell#hbase_admin should return an admin instance" do

http://git-wip-us.apache.org/repos/asf/hbase/blob/2ee7d2a4/hbase-shell/src/test/ruby/test_helper.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/test/ruby/test_helper.rb 
b/hbase-shell/src/test/ruby/test_helper.rb
index 3114415..179ee5b 100644
--- a/hbase-shell/src/test/ruby/test_helper.rb
+++ b/hbase-shell/src/test/ruby/test_helper.rb
@@ -40,12 +40,10 @@ module Hbase
     require 'hbase'
     require 'hbase/hbase'
     require 'shell'
-    require 'shell/formatter'
 
     def setup_hbase
-      formatter = ::Shell::Formatter::Console.new
       hbase = ::Hbase::Hbase.new($TEST_CLUSTER.getConfiguration)
-      @shell = ::Shell::Shell.new(hbase, formatter)
+      @shell = ::Shell::Shell.new(hbase)
     end
     
     def shutdown
@@ -72,6 +70,10 @@ module Hbase
       @shell.hbase_visibility_labels_admin
     end
 
+    def quotas_admin
+      @shell.hbase_quotas_admin
+    end
+
     def replication_admin
       @shell.hbase_replication_admin
     end

Reply via email to