HBASE-12991 Use HBase 1.0 interfaces in hbase-rest (Solomon Duskis)

This commit is contained in:
Enis Soztutar 2015-02-11 16:31:27 -08:00
parent 3dd220f8fd
commit d5a2830777
9 changed files with 71 additions and 77 deletions

View File

@ -22,7 +22,7 @@ import java.io.IOException;
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.classification.InterfaceAudience;
import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.filter.ParseFilter; import org.apache.hadoop.hbase.filter.ParseFilter;
import org.apache.hadoop.hbase.security.UserProvider; import org.apache.hadoop.hbase.security.UserProvider;
@ -101,7 +101,7 @@ public class RESTServlet implements Constants {
} }
} }
HBaseAdmin getAdmin() throws IOException { Admin getAdmin() throws IOException {
return connectionCache.getAdmin(); return connectionCache.getAdmin();
} }

View File

@ -37,18 +37,17 @@ import javax.xml.namespace.QName;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.classification.InterfaceAudience;
import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableExistsException; import org.apache.hadoop.hbase.TableExistsException;
import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.TableNotEnabledException; import org.apache.hadoop.hbase.TableNotEnabledException;
import org.apache.hadoop.hbase.TableNotFoundException; import org.apache.hadoop.hbase.TableNotFoundException;
import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.classification.InterfaceAudience;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.rest.model.ColumnSchemaModel; import org.apache.hadoop.hbase.rest.model.ColumnSchemaModel;
import org.apache.hadoop.hbase.rest.model.TableSchemaModel; import org.apache.hadoop.hbase.rest.model.TableSchemaModel;
import org.apache.hadoop.hbase.util.Bytes;
@InterfaceAudience.Private @InterfaceAudience.Private
public class SchemaResource extends ResourceBase { public class SchemaResource extends ResourceBase {
@ -103,15 +102,15 @@ public class SchemaResource extends ResourceBase {
} }
} }
private Response replace(final byte[] name, final TableSchemaModel model, private Response replace(final TableName name, final TableSchemaModel model,
final UriInfo uriInfo, final HBaseAdmin admin) { final UriInfo uriInfo, final Admin admin) {
if (servlet.isReadOnly()) { if (servlet.isReadOnly()) {
return Response.status(Response.Status.FORBIDDEN) return Response.status(Response.Status.FORBIDDEN)
.type(MIMETYPE_TEXT).entity("Forbidden" + CRLF) .type(MIMETYPE_TEXT).entity("Forbidden" + CRLF)
.build(); .build();
} }
try { try {
HTableDescriptor htd = new HTableDescriptor(TableName.valueOf(name)); HTableDescriptor htd = new HTableDescriptor(name);
for (Map.Entry<QName,Object> e: model.getAny().entrySet()) { for (Map.Entry<QName,Object> e: model.getAny().entrySet()) {
htd.setValue(e.getKey().getLocalPart(), e.getValue().toString()); htd.setValue(e.getKey().getLocalPart(), e.getValue().toString());
} }
@ -143,8 +142,8 @@ public class SchemaResource extends ResourceBase {
} }
} }
private Response update(final byte[] name, final TableSchemaModel model, private Response update(final TableName name, final TableSchemaModel model,
final UriInfo uriInfo, final HBaseAdmin admin) { final UriInfo uriInfo, final Admin admin) {
if (servlet.isReadOnly()) { if (servlet.isReadOnly()) {
return Response.status(Response.Status.FORBIDDEN) return Response.status(Response.Status.FORBIDDEN)
.type(MIMETYPE_TEXT).entity("Forbidden" + CRLF) .type(MIMETYPE_TEXT).entity("Forbidden" + CRLF)
@ -170,7 +169,7 @@ public class SchemaResource extends ResourceBase {
.type(MIMETYPE_TEXT).entity("Unavailable" + CRLF) .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF)
.build(); .build();
} finally { } finally {
admin.enableTable(tableResource.getName()); admin.enableTable(TableName.valueOf(tableResource.getName()));
} }
servlet.getMetrics().incrementSucessfulPutRequests(1); servlet.getMetrics().incrementSucessfulPutRequests(1);
return Response.ok().build(); return Response.ok().build();
@ -183,8 +182,8 @@ public class SchemaResource extends ResourceBase {
private Response update(final TableSchemaModel model, final boolean replace, private Response update(final TableSchemaModel model, final boolean replace,
final UriInfo uriInfo) { final UriInfo uriInfo) {
try { try {
byte[] name = Bytes.toBytes(tableResource.getName()); TableName name = TableName.valueOf(tableResource.getName());
HBaseAdmin admin = servlet.getAdmin(); Admin admin = servlet.getAdmin();
if (replace || !admin.tableExists(name)) { if (replace || !admin.tableExists(name)) {
return replace(name, model, uriInfo, admin); return replace(name, model, uriInfo, admin);
} else { } else {
@ -233,11 +232,11 @@ public class SchemaResource extends ResourceBase {
.entity("Forbidden" + CRLF).build(); .entity("Forbidden" + CRLF).build();
} }
try { try {
HBaseAdmin admin = servlet.getAdmin(); Admin admin = servlet.getAdmin();
try { try {
admin.disableTable(tableResource.getName()); admin.disableTable(TableName.valueOf(tableResource.getName()));
} catch (TableNotEnabledException e) { /* this is what we want anyway */ } } catch (TableNotEnabledException e) { /* this is what we want anyway */ }
admin.deleteTable(tableResource.getName()); admin.deleteTable(TableName.valueOf(tableResource.getName()));
servlet.getMetrics().incrementSucessfulDeleteRequests(1); servlet.getMetrics().incrementSucessfulDeleteRequests(1);
return Response.ok().build(); return Response.ok().build();
} catch (Exception e) { } catch (Exception e) {

View File

@ -34,6 +34,7 @@ import javax.ws.rs.core.UriInfo;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.classification.InterfaceAudience;
import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.client.Table;
@ -69,7 +70,7 @@ public class TableResource extends ResourceBase {
* @throws IOException * @throws IOException
*/ */
boolean exists() throws IOException { boolean exists() throws IOException {
return servlet.getAdmin().tableExists(table); return servlet.getAdmin().tableExists(TableName.valueOf(table));
} }
@Path("exists") @Path("exists")

View File

@ -19,14 +19,18 @@
package org.apache.hadoop.hbase.rest.client; package org.apache.hadoop.hbase.rest.client;
import com.google.protobuf.Descriptors; import java.io.IOException;
import com.google.protobuf.Message; import java.io.InterruptedIOException;
import com.google.protobuf.Service; import java.util.ArrayList;
import com.google.protobuf.ServiceException; import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.classification.InterfaceAudience;
import org.apache.hadoop.hbase.classification.InterfaceStability;
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell; import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil; import org.apache.hadoop.hbase.CellUtil;
@ -35,11 +39,12 @@ import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.classification.InterfaceAudience;
import org.apache.hadoop.hbase.classification.InterfaceStability;
import org.apache.hadoop.hbase.client.Append; import org.apache.hadoop.hbase.client.Append;
import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Durability; import org.apache.hadoop.hbase.client.Durability;
import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTableInterface;
import org.apache.hadoop.hbase.client.Increment; import org.apache.hadoop.hbase.client.Increment;
import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.Result;
@ -47,6 +52,7 @@ import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Row; import org.apache.hadoop.hbase.client.Row;
import org.apache.hadoop.hbase.client.RowMutations; import org.apache.hadoop.hbase.client.RowMutations;
import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.client.coprocessor.Batch; import org.apache.hadoop.hbase.client.coprocessor.Batch;
import org.apache.hadoop.hbase.client.coprocessor.Batch.Callback; import org.apache.hadoop.hbase.client.coprocessor.Batch.Callback;
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp; import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
@ -61,22 +67,17 @@ import org.apache.hadoop.hbase.rest.model.TableSchemaModel;
import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.util.StringUtils; import org.apache.hadoop.util.StringUtils;
import java.io.IOException; import com.google.protobuf.Descriptors;
import java.io.InterruptedIOException; import com.google.protobuf.Message;
import java.util.ArrayList; import com.google.protobuf.Service;
import java.util.Collection; import com.google.protobuf.ServiceException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
/** /**
* HTable interface to remote tables accessed via REST gateway * HTable interface to remote tables accessed via REST gateway
*/ */
@InterfaceAudience.Public @InterfaceAudience.Public
@InterfaceStability.Stable @InterfaceStability.Stable
public class RemoteHTable implements HTableInterface { public class RemoteHTable implements Table {
private static final Log LOG = LogFactory.getLog(RemoteHTable.class); private static final Log LOG = LogFactory.getLog(RemoteHTable.class);
@ -805,21 +806,6 @@ public class RemoteHTable implements HTableInterface {
throw new IOException("atomicMutation not supported"); throw new IOException("atomicMutation not supported");
} }
@Override
public void setAutoFlush(boolean autoFlush) {
throw new UnsupportedOperationException("setAutoFlush not implemented");
}
@Override
public void setAutoFlush(boolean autoFlush, boolean clearBufferOnFail) {
throw new UnsupportedOperationException("setAutoFlush not implemented");
}
@Override
public void setAutoFlushTo(boolean autoFlush) {
throw new UnsupportedOperationException("setAutoFlushTo not implemented");
}
@Override @Override
public long getWriteBufferSize() { public long getWriteBufferSize() {
throw new UnsupportedOperationException("getWriteBufferSize not implemented"); throw new UnsupportedOperationException("getWriteBufferSize not implemented");
@ -830,12 +816,6 @@ public class RemoteHTable implements HTableInterface {
throw new IOException("setWriteBufferSize not supported"); throw new IOException("setWriteBufferSize not supported");
} }
@Override
public long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier,
long amount, boolean writeToWAL) throws IOException {
throw new IOException("incrementColumnValue not supported");
}
@Override @Override
public <R extends Message> Map<byte[], R> batchCoprocessorService( public <R extends Message> Map<byte[], R> batchCoprocessorService(
Descriptors.MethodDescriptor method, Message request, Descriptors.MethodDescriptor method, Message request,

View File

@ -35,7 +35,6 @@ import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.rest.client.Client; import org.apache.hadoop.hbase.rest.client.Client;
import org.apache.hadoop.hbase.rest.client.Cluster; import org.apache.hadoop.hbase.rest.client.Cluster;
import org.apache.hadoop.hbase.rest.client.Response; import org.apache.hadoop.hbase.rest.client.Response;

View File

@ -34,7 +34,6 @@ import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.rest.client.Client; import org.apache.hadoop.hbase.rest.client.Client;

View File

@ -35,7 +35,6 @@ import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.*; import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Durability; import org.apache.hadoop.hbase.client.Durability;

View File

@ -30,7 +30,6 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.Waiter; import org.apache.hadoop.hbase.Waiter;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.rest.client.Client; import org.apache.hadoop.hbase.rest.client.Client;
import org.apache.hadoop.hbase.rest.client.Cluster; import org.apache.hadoop.hbase.rest.client.Cluster;
import org.apache.hadoop.hbase.rest.client.Response; import org.apache.hadoop.hbase.rest.client.Response;

View File

@ -19,36 +19,46 @@
package org.apache.hadoop.hbase.rest; package org.apache.hadoop.hbase.rest;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.IOException; import java.io.IOException;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.List;
import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException; import javax.xml.bind.JAXBException;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.*; import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.HRegionLocation;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Durability; import org.apache.hadoop.hbase.client.Durability;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.RegionLocator;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.rest.client.Client; import org.apache.hadoop.hbase.rest.client.Client;
import org.apache.hadoop.hbase.rest.client.Cluster; import org.apache.hadoop.hbase.rest.client.Cluster;
import org.apache.hadoop.hbase.rest.client.Response; import org.apache.hadoop.hbase.rest.client.Response;
import org.apache.hadoop.hbase.rest.model.TableModel;
import org.apache.hadoop.hbase.rest.model.TableInfoModel; import org.apache.hadoop.hbase.rest.model.TableInfoModel;
import org.apache.hadoop.hbase.rest.model.TableListModel; import org.apache.hadoop.hbase.rest.model.TableListModel;
import org.apache.hadoop.hbase.rest.model.TableModel;
import org.apache.hadoop.hbase.rest.model.TableRegionModel; import org.apache.hadoop.hbase.rest.model.TableRegionModel;
import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.testclassification.MediumTests;
import org.apache.hadoop.hbase.testclassification.RestTests; import org.apache.hadoop.hbase.testclassification.RestTests;
import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.util.StringUtils; import org.apache.hadoop.util.StringUtils;
import static org.junit.Assert.*;
import org.junit.AfterClass; import org.junit.AfterClass;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
@ -61,7 +71,7 @@ public class TestTableResource {
private static TableName TABLE = TableName.valueOf("TestTableResource"); private static TableName TABLE = TableName.valueOf("TestTableResource");
private static String COLUMN_FAMILY = "test"; private static String COLUMN_FAMILY = "test";
private static String COLUMN = COLUMN_FAMILY + ":qualifier"; private static String COLUMN = COLUMN_FAMILY + ":qualifier";
private static Map<HRegionInfo, ServerName> regionMap; private static List<HRegionLocation> regionMap;
private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility(); private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
private static final HBaseRESTTestingUtility REST_TEST_UTIL = private static final HBaseRESTTestingUtility REST_TEST_UTIL =
@ -87,9 +97,9 @@ public class TestTableResource {
HTableDescriptor htd = new HTableDescriptor(TABLE); HTableDescriptor htd = new HTableDescriptor(TABLE);
htd.addFamily(new HColumnDescriptor(COLUMN_FAMILY)); htd.addFamily(new HColumnDescriptor(COLUMN_FAMILY));
admin.createTable(htd); admin.createTable(htd);
HTable table = (HTable) TEST_UTIL.getConnection().getTable(TABLE);
byte[] k = new byte[3]; byte[] k = new byte[3];
byte [][] famAndQf = KeyValue.parseColumn(Bytes.toBytes(COLUMN)); byte [][] famAndQf = KeyValue.parseColumn(Bytes.toBytes(COLUMN));
List<Put> puts = new ArrayList<>();
for (byte b1 = 'a'; b1 < 'z'; b1++) { for (byte b1 = 'a'; b1 < 'z'; b1++) {
for (byte b2 = 'a'; b2 < 'z'; b2++) { for (byte b2 = 'a'; b2 < 'z'; b2++) {
for (byte b3 = 'a'; b3 < 'z'; b3++) { for (byte b3 = 'a'; b3 < 'z'; b3++) {
@ -99,13 +109,19 @@ public class TestTableResource {
Put put = new Put(k); Put put = new Put(k);
put.setDurability(Durability.SKIP_WAL); put.setDurability(Durability.SKIP_WAL);
put.add(famAndQf[0], famAndQf[1], k); put.add(famAndQf[0], famAndQf[1], k);
table.put(put); puts.add(put);
} }
} }
} }
table.flushCommits(); Connection connection = TEST_UTIL.getConnection();
Table table = connection.getTable(TABLE);
table.put(puts);
table.close();
// get the initial layout (should just be one region) // get the initial layout (should just be one region)
Map<HRegionInfo, ServerName> m = table.getRegionLocations();
RegionLocator regionLocator = connection.getRegionLocator(TABLE);
List<HRegionLocation> m = regionLocator.getAllRegionLocations();
assertEquals(m.size(), 1); assertEquals(m.size(), 1);
// tell the master to split the table // tell the master to split the table
admin.split(TABLE); admin.split(TABLE);
@ -119,14 +135,14 @@ public class TestTableResource {
LOG.warn(StringUtils.stringifyException(e)); LOG.warn(StringUtils.stringifyException(e));
} }
// check again // check again
m = table.getRegionLocations(); m = regionLocator.getAllRegionLocations();
} }
// should have two regions now // should have two regions now
assertEquals(m.size(), 2); assertEquals(m.size(), 2);
regionMap = m; regionMap = m;
LOG.info("regions: " + regionMap); LOG.info("regions: " + regionMap);
table.close(); regionLocator.close();
} }
@AfterClass @AfterClass
@ -156,15 +172,17 @@ public class TestTableResource {
while (regions.hasNext()) { while (regions.hasNext()) {
TableRegionModel region = regions.next(); TableRegionModel region = regions.next();
boolean found = false; boolean found = false;
for (Map.Entry<HRegionInfo, ServerName> e: regionMap.entrySet()) { for (HRegionLocation e: regionMap) {
HRegionInfo hri = e.getKey(); HRegionInfo hri = e.getRegionInfo();
String hriRegionName = hri.getRegionNameAsString(); String hriRegionName = hri.getRegionNameAsString();
String regionName = region.getName(); String regionName = region.getName();
if (hriRegionName.equals(regionName)) { if (hriRegionName.equals(regionName)) {
found = true; found = true;
byte[] startKey = hri.getStartKey(); byte[] startKey = hri.getStartKey();
byte[] endKey = hri.getEndKey(); byte[] endKey = hri.getEndKey();
InetSocketAddress sa = new InetSocketAddress(e.getValue().getHostname(), e.getValue().getPort()); ServerName serverName = e.getServerName();
InetSocketAddress sa =
new InetSocketAddress(serverName.getHostname(), serverName.getPort());
String location = sa.getHostName() + ":" + String location = sa.getHostName() + ":" +
Integer.valueOf(sa.getPort()); Integer.valueOf(sa.getPort());
assertEquals(hri.getRegionId(), region.getId()); assertEquals(hri.getRegionId(), region.getId());