| # |
| # Copyright 2010 The Apache Software Foundation |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| # HBase ruby classes. |
| # Has wrapper classes for org.apache.hadoop.hbase.client.HBaseAdmin |
| # and for org.apache.hadoop.hbase.client.HTable. Classes take |
| # Formatters on construction and outputs any results using |
| # Formatter methods. These classes are only really for use by |
| # the hirb.rb HBase Shell script; they don't make much sense elsewhere. |
| # For example, the exists method on Admin class prints to the formatter |
| # whether the table exists and returns nil regardless. |
| include Java |
| |
| include_class('java.lang.Integer') {|package,name| "J#{name}" } |
| include_class('java.lang.Long') {|package,name| "J#{name}" } |
| include_class('java.lang.Boolean') {|package,name| "J#{name}" } |
| |
| module HBaseConstants |
| COLUMN = "COLUMN" |
| COLUMNS = "COLUMNS" |
| TIMESTAMP = "TIMESTAMP" |
| NAME = org.apache.hadoop.hbase.HConstants::NAME |
| VERSIONS = org.apache.hadoop.hbase.HConstants::VERSIONS |
| IN_MEMORY = org.apache.hadoop.hbase.HConstants::IN_MEMORY |
| STOPROW = "STOPROW" |
| STARTROW = "STARTROW" |
| ENDROW = STOPROW |
| LIMIT = "LIMIT" |
| METHOD = "METHOD" |
| MAXLENGTH = "MAXLENGTH" |
| CACHE_BLOCKS = "CACHE_BLOCKS" |
| REPLICATION_SCOPE = "REPLICATION_SCOPE" |
| INTERVAL = 'INTERVAL' |
| CACHE = 'CACHE' |
| |
| # Load constants from hbase java API |
| def self.promote_constants(constants) |
| # The constants to import are all in uppercase |
| constants.each do |c| |
| next if c =~ /DEFAULT_.*/ || c != c.upcase |
| next if eval("defined?(#{c})") |
| eval("#{c} = '#{c}'") |
| end |
| end |
| |
| promote_constants(org.apache.hadoop.hbase.HColumnDescriptor.constants) |
| promote_constants(org.apache.hadoop.hbase.HTableDescriptor.constants) |
| end |
| |
| # Include classes definition |
| require 'hbase/hbase' |
| require 'hbase/admin' |
| require 'hbase/table' |
| require 'hbase/replication_admin' |