HBASE-3522 Unbundle our RPC versioning; rather than a global for all 4 Interfaces -- region, master, region to master, and coprocesssors -- instead version each individually
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1069551 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
6988077609
commit
e692a54414
|
@ -69,6 +69,9 @@ Release 0.91.0 - Unreleased
|
||||||
HBASE-3305 Allow round-robin distribution for table created with
|
HBASE-3305 Allow round-robin distribution for table created with
|
||||||
multiple regions (ted yu via jgray)
|
multiple regions (ted yu via jgray)
|
||||||
HBASE-3496 HFile CLI Improvements
|
HBASE-3496 HFile CLI Improvements
|
||||||
|
HBASE-3522 Unbundle our RPC versioning; rather than a global for all 4
|
||||||
|
Interfaces -- region, master, region to master, and
|
||||||
|
coprocesssors -- instead version each individually
|
||||||
|
|
||||||
|
|
||||||
NEW FEATURES
|
NEW FEATURES
|
||||||
|
|
|
@ -349,7 +349,7 @@ public class HConnectionManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
HMasterInterface tryMaster = (HMasterInterface)HBaseRPC.getProxy(
|
HMasterInterface tryMaster = (HMasterInterface)HBaseRPC.getProxy(
|
||||||
HMasterInterface.class, HBaseRPCProtocolVersion.versionID,
|
HMasterInterface.class, HMasterInterface.VERSION,
|
||||||
masterLocation.getInetSocketAddress(), this.conf, this.rpcTimeout);
|
masterLocation.getInetSocketAddress(), this.conf, this.rpcTimeout);
|
||||||
|
|
||||||
if (tryMaster.isMasterRunning()) {
|
if (tryMaster.isMasterRunning()) {
|
||||||
|
@ -945,7 +945,7 @@ public class HConnectionManager {
|
||||||
if (server == null) { // Get a connection
|
if (server == null) { // Get a connection
|
||||||
try {
|
try {
|
||||||
server = (HRegionInterface)HBaseRPC.waitForProxy(
|
server = (HRegionInterface)HBaseRPC.waitForProxy(
|
||||||
serverInterfaceClass, HBaseRPCProtocolVersion.versionID,
|
serverInterfaceClass, HRegionInterface.VERSION,
|
||||||
regionServer.getInetSocketAddress(), this.conf,
|
regionServer.getInetSocketAddress(), this.conf,
|
||||||
this.maxRPCAttempts, this.rpcTimeout, this.rpcTimeout);
|
this.maxRPCAttempts, this.rpcTimeout, this.rpcTimeout);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
|
|
|
@ -19,8 +19,7 @@ package org.apache.hadoop.hbase.coprocessor;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.apache.hadoop.hbase.ipc.CoprocessorProtocol;
|
import org.apache.hadoop.hbase.ipc.CoprocessorProtocol;
|
||||||
import org.apache.hadoop.hbase.ipc.HBaseRPCProtocolVersion;
|
import org.apache.hadoop.ipc.VersionedProtocol;
|
||||||
import org.apache.hadoop.hbase.regionserver.HRegion;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This abstract class provides default implementation of an Endpoint.
|
* This abstract class provides default implementation of an Endpoint.
|
||||||
|
@ -33,15 +32,17 @@ import org.apache.hadoop.hbase.regionserver.HRegion;
|
||||||
* the region related resource, i.e., CoprocessorEnvironment.
|
* the region related resource, i.e., CoprocessorEnvironment.
|
||||||
*/
|
*/
|
||||||
public abstract class BaseEndpointCoprocessor implements Coprocessor,
|
public abstract class BaseEndpointCoprocessor implements Coprocessor,
|
||||||
CoprocessorProtocol {
|
CoprocessorProtocol, VersionedProtocol {
|
||||||
private CoprocessorEnvironment env;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param e Coprocessor environment.
|
* This Interfaces' version. Version changes when the Interface changes.
|
||||||
*/
|
*/
|
||||||
private void setEnvironment(CoprocessorEnvironment e) {
|
// All HBase Interfaces used derive from HBaseRPCProtocolVersion. It
|
||||||
env = e;
|
// maintained a single global version number on all HBase Interfaces. This
|
||||||
}
|
// meant all HBase RPC was broke though only one of the three RPC Interfaces
|
||||||
|
// had changed. This has since been undone.
|
||||||
|
public static final long VERSION = 28L;
|
||||||
|
|
||||||
|
private CoprocessorEnvironment env;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return env Coprocessor environment.
|
* @return env Coprocessor environment.
|
||||||
|
@ -59,7 +60,8 @@ public abstract class BaseEndpointCoprocessor implements Coprocessor,
|
||||||
public void stop(CoprocessorEnvironment env) { }
|
public void stop(CoprocessorEnvironment env) { }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getProtocolVersion(String protocol, long clientVersion) throws IOException {
|
public long getProtocolVersion(String protocol, long clientVersion)
|
||||||
return HBaseRPCProtocolVersion.versionID;
|
throws IOException {
|
||||||
|
return VERSION;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ package org.apache.hadoop.hbase.ipc;
|
||||||
|
|
||||||
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.ipc.VersionedProtocol;
|
||||||
import org.apache.hadoop.metrics.MetricsContext;
|
import org.apache.hadoop.metrics.MetricsContext;
|
||||||
import org.apache.hadoop.metrics.MetricsRecord;
|
import org.apache.hadoop.metrics.MetricsRecord;
|
||||||
import org.apache.hadoop.metrics.MetricsUtil;
|
import org.apache.hadoop.metrics.MetricsUtil;
|
||||||
|
@ -79,7 +80,7 @@ public class HBaseRpcMetrics implements Updater {
|
||||||
|
|
||||||
//public Map <String, MetricsTimeVaryingRate> metricsList = Collections.synchronizedMap(new HashMap<String, MetricsTimeVaryingRate>());
|
//public Map <String, MetricsTimeVaryingRate> metricsList = Collections.synchronizedMap(new HashMap<String, MetricsTimeVaryingRate>());
|
||||||
|
|
||||||
private void initMethods(Class<? extends HBaseRPCProtocolVersion> protocol) {
|
private void initMethods(Class<? extends VersionedProtocol> protocol) {
|
||||||
for (Method m : protocol.getDeclaredMethods()) {
|
for (Method m : protocol.getDeclaredMethods()) {
|
||||||
if (get(m.getName()) == null)
|
if (get(m.getName()) == null)
|
||||||
create(m.getName());
|
create(m.getName());
|
||||||
|
|
|
@ -25,6 +25,7 @@ import org.apache.hadoop.hbase.ClusterStatus;
|
||||||
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.UnknownRegionException;
|
import org.apache.hadoop.hbase.UnknownRegionException;
|
||||||
|
import org.apache.hadoop.ipc.VersionedProtocol;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clients interact with the HMasterInterface to gain access to meta-level
|
* Clients interact with the HMasterInterface to gain access to meta-level
|
||||||
|
@ -35,7 +36,15 @@ import org.apache.hadoop.hbase.UnknownRegionException;
|
||||||
* number in HBaseRPCProtocolVersion
|
* number in HBaseRPCProtocolVersion
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public interface HMasterInterface extends HBaseRPCProtocolVersion {
|
public interface HMasterInterface extends VersionedProtocol {
|
||||||
|
/**
|
||||||
|
* This Interfaces' version. Version changes when the Interface changes.
|
||||||
|
*/
|
||||||
|
// All HBase Interfaces used derive from HBaseRPCProtocolVersion. It
|
||||||
|
// maintained a single global version number on all HBase Interfaces. This
|
||||||
|
// meant all HBase RPC was broke though only one of the three RPC Interfaces
|
||||||
|
// had changed. This has since been undone.
|
||||||
|
public static final long VERSION = 28L;
|
||||||
|
|
||||||
/** @return true if master is available */
|
/** @return true if master is available */
|
||||||
public boolean isMasterRunning();
|
public boolean isMasterRunning();
|
||||||
|
|
|
@ -23,6 +23,7 @@ import org.apache.hadoop.hbase.HMsg;
|
||||||
import org.apache.hadoop.hbase.HRegionInfo;
|
import org.apache.hadoop.hbase.HRegionInfo;
|
||||||
import org.apache.hadoop.hbase.HServerInfo;
|
import org.apache.hadoop.hbase.HServerInfo;
|
||||||
import org.apache.hadoop.io.MapWritable;
|
import org.apache.hadoop.io.MapWritable;
|
||||||
|
import org.apache.hadoop.ipc.VersionedProtocol;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@ -35,7 +36,15 @@ import java.io.IOException;
|
||||||
* number in HBaseRPCProtocolVersion
|
* number in HBaseRPCProtocolVersion
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public interface HMasterRegionInterface extends HBaseRPCProtocolVersion {
|
public interface HMasterRegionInterface extends VersionedProtocol {
|
||||||
|
/**
|
||||||
|
* This Interfaces' version. Version changes when the Interface changes.
|
||||||
|
*/
|
||||||
|
// All HBase Interfaces used derive from HBaseRPCProtocolVersion. It
|
||||||
|
// maintained a single global version number on all HBase Interfaces. This
|
||||||
|
// meant all HBase RPC was broke though only one of the three RPC Interfaces
|
||||||
|
// had changed. This has since been undone.
|
||||||
|
public static final long VERSION = 28L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when a region server first starts
|
* Called when a region server first starts
|
||||||
|
|
|
@ -22,7 +22,6 @@ package org.apache.hadoop.hbase.ipc;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.ConnectException;
|
import java.net.ConnectException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.NavigableSet;
|
|
||||||
|
|
||||||
import org.apache.hadoop.hbase.Abortable;
|
import org.apache.hadoop.hbase.Abortable;
|
||||||
import org.apache.hadoop.hbase.HRegionInfo;
|
import org.apache.hadoop.hbase.HRegionInfo;
|
||||||
|
@ -30,8 +29,6 @@ import org.apache.hadoop.hbase.HServerInfo;
|
||||||
import org.apache.hadoop.hbase.NotServingRegionException;
|
import org.apache.hadoop.hbase.NotServingRegionException;
|
||||||
import org.apache.hadoop.hbase.Stoppable;
|
import org.apache.hadoop.hbase.Stoppable;
|
||||||
import org.apache.hadoop.hbase.client.Delete;
|
import org.apache.hadoop.hbase.client.Delete;
|
||||||
import org.apache.hadoop.hbase.client.coprocessor.Exec;
|
|
||||||
import org.apache.hadoop.hbase.client.coprocessor.ExecResult;
|
|
||||||
import org.apache.hadoop.hbase.client.Get;
|
import org.apache.hadoop.hbase.client.Get;
|
||||||
import org.apache.hadoop.hbase.client.Increment;
|
import org.apache.hadoop.hbase.client.Increment;
|
||||||
import org.apache.hadoop.hbase.client.MultiAction;
|
import org.apache.hadoop.hbase.client.MultiAction;
|
||||||
|
@ -41,8 +38,11 @@ import org.apache.hadoop.hbase.client.MultiResponse;
|
||||||
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;
|
||||||
import org.apache.hadoop.hbase.client.Scan;
|
import org.apache.hadoop.hbase.client.Scan;
|
||||||
|
import org.apache.hadoop.hbase.client.coprocessor.Exec;
|
||||||
|
import org.apache.hadoop.hbase.client.coprocessor.ExecResult;
|
||||||
import org.apache.hadoop.hbase.regionserver.wal.HLog;
|
import org.apache.hadoop.hbase.regionserver.wal.HLog;
|
||||||
import org.apache.hadoop.ipc.RemoteException;
|
import org.apache.hadoop.ipc.RemoteException;
|
||||||
|
import org.apache.hadoop.ipc.VersionedProtocol;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clients interact with HRegionServers using a handle to the HRegionInterface.
|
* Clients interact with HRegionServers using a handle to the HRegionInterface.
|
||||||
|
@ -50,7 +50,16 @@ import org.apache.hadoop.ipc.RemoteException;
|
||||||
* <p>NOTE: if you change the interface, you must change the RPC version
|
* <p>NOTE: if you change the interface, you must change the RPC version
|
||||||
* number in HBaseRPCProtocolVersion
|
* number in HBaseRPCProtocolVersion
|
||||||
*/
|
*/
|
||||||
public interface HRegionInterface extends HBaseRPCProtocolVersion, Stoppable, Abortable {
|
public interface HRegionInterface extends VersionedProtocol, Stoppable, Abortable {
|
||||||
|
/**
|
||||||
|
* This Interfaces' version. Version changes when the Interface changes.
|
||||||
|
*/
|
||||||
|
// All HBase Interfaces used derive from HBaseRPCProtocolVersion. It
|
||||||
|
// maintained a single global version number on all HBase Interfaces. This
|
||||||
|
// meant all HBase RPC was broke though only one of the three RPC Interfaces
|
||||||
|
// had changed. This has since been undone.
|
||||||
|
public static final long VERSION = 28L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get metainfo about an HRegion
|
* Get metainfo about an HRegion
|
||||||
*
|
*
|
||||||
|
|
|
@ -60,7 +60,6 @@ import org.apache.hadoop.hbase.client.MetaScanner.MetaScannerVisitor;
|
||||||
import org.apache.hadoop.hbase.executor.ExecutorService;
|
import org.apache.hadoop.hbase.executor.ExecutorService;
|
||||||
import org.apache.hadoop.hbase.executor.ExecutorService.ExecutorType;
|
import org.apache.hadoop.hbase.executor.ExecutorService.ExecutorType;
|
||||||
import org.apache.hadoop.hbase.ipc.HBaseRPC;
|
import org.apache.hadoop.hbase.ipc.HBaseRPC;
|
||||||
import org.apache.hadoop.hbase.ipc.HBaseRPCProtocolVersion;
|
|
||||||
import org.apache.hadoop.hbase.ipc.HBaseServer;
|
import org.apache.hadoop.hbase.ipc.HBaseServer;
|
||||||
import org.apache.hadoop.hbase.ipc.HMasterInterface;
|
import org.apache.hadoop.hbase.ipc.HMasterInterface;
|
||||||
import org.apache.hadoop.hbase.ipc.HMasterRegionInterface;
|
import org.apache.hadoop.hbase.ipc.HMasterRegionInterface;
|
||||||
|
@ -472,7 +471,7 @@ implements HMasterInterface, HMasterRegionInterface, MasterServices, Server {
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getProtocolVersion(String protocol, long clientVersion) {
|
public long getProtocolVersion(String protocol, long clientVersion) {
|
||||||
return HBaseRPCProtocolVersion.versionID;
|
return HMasterInterface.VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return InfoServer object. Maybe null.*/
|
/** @return InfoServer object. Maybe null.*/
|
||||||
|
|
|
@ -101,7 +101,6 @@ import org.apache.hadoop.hbase.io.hfile.LruBlockCache.CacheStats;
|
||||||
import org.apache.hadoop.hbase.ipc.CoprocessorProtocol;
|
import org.apache.hadoop.hbase.ipc.CoprocessorProtocol;
|
||||||
import org.apache.hadoop.hbase.ipc.HBaseRPC;
|
import org.apache.hadoop.hbase.ipc.HBaseRPC;
|
||||||
import org.apache.hadoop.hbase.ipc.HBaseRPCErrorHandler;
|
import org.apache.hadoop.hbase.ipc.HBaseRPCErrorHandler;
|
||||||
import org.apache.hadoop.hbase.ipc.HBaseRPCProtocolVersion;
|
|
||||||
import org.apache.hadoop.hbase.ipc.HBaseRpcMetrics;
|
import org.apache.hadoop.hbase.ipc.HBaseRpcMetrics;
|
||||||
import org.apache.hadoop.hbase.ipc.HMasterRegionInterface;
|
import org.apache.hadoop.hbase.ipc.HMasterRegionInterface;
|
||||||
import org.apache.hadoop.hbase.ipc.HRegionInterface;
|
import org.apache.hadoop.hbase.ipc.HRegionInterface;
|
||||||
|
@ -1447,7 +1446,7 @@ public class HRegionServer implements HRegionInterface, HBaseRPCErrorHandler,
|
||||||
// Do initial RPC setup. The final argument indicates that the RPC
|
// Do initial RPC setup. The final argument indicates that the RPC
|
||||||
// should retry indefinitely.
|
// should retry indefinitely.
|
||||||
master = (HMasterRegionInterface) HBaseRPC.waitForProxy(
|
master = (HMasterRegionInterface) HBaseRPC.waitForProxy(
|
||||||
HMasterRegionInterface.class, HBaseRPCProtocolVersion.versionID,
|
HMasterRegionInterface.class, HMasterRegionInterface.VERSION,
|
||||||
masterAddress.getInetSocketAddress(), this.conf, -1,
|
masterAddress.getInetSocketAddress(), this.conf, -1,
|
||||||
this.rpcTimeout, this.rpcTimeout);
|
this.rpcTimeout, this.rpcTimeout);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
@ -2452,7 +2451,7 @@ public class HRegionServer implements HRegionInterface, HBaseRPCErrorHandler,
|
||||||
public long getProtocolVersion(final String protocol, final long clientVersion)
|
public long getProtocolVersion(final String protocol, final long clientVersion)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
if (protocol.equals(HRegionInterface.class.getName())) {
|
if (protocol.equals(HRegionInterface.class.getName())) {
|
||||||
return HBaseRPCProtocolVersion.versionID;
|
return HRegionInterface.VERSION;
|
||||||
}
|
}
|
||||||
throw new IOException("Unknown protocol to name node: " + protocol);
|
throw new IOException("Unknown protocol to name node: " + protocol);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,6 @@ import org.apache.hadoop.hbase.HBaseTestingUtility;
|
||||||
import org.apache.hadoop.hbase.HConstants;
|
import org.apache.hadoop.hbase.HConstants;
|
||||||
import org.apache.hadoop.hbase.HServerAddress;
|
import org.apache.hadoop.hbase.HServerAddress;
|
||||||
import org.apache.hadoop.hbase.ipc.HBaseRPC;
|
import org.apache.hadoop.hbase.ipc.HBaseRPC;
|
||||||
import org.apache.hadoop.hbase.ipc.HBaseRPCProtocolVersion;
|
|
||||||
import org.apache.hadoop.hbase.ipc.HMasterInterface;
|
import org.apache.hadoop.hbase.ipc.HMasterInterface;
|
||||||
import org.apache.hadoop.ipc.RemoteException;
|
import org.apache.hadoop.ipc.RemoteException;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -48,7 +47,7 @@ public class TestHMasterRPCException {
|
||||||
try {
|
try {
|
||||||
HMasterInterface inf =
|
HMasterInterface inf =
|
||||||
(HMasterInterface) HBaseRPC.getProxy(
|
(HMasterInterface) HBaseRPC.getProxy(
|
||||||
HMasterInterface.class, HBaseRPCProtocolVersion.versionID,
|
HMasterInterface.class, HMasterInterface.VERSION,
|
||||||
hma.getInetSocketAddress(), conf, 100);
|
hma.getInetSocketAddress(), conf, 100);
|
||||||
inf.isMasterRunning();
|
inf.isMasterRunning();
|
||||||
fail();
|
fail();
|
||||||
|
|
|
@ -19,22 +19,35 @@
|
||||||
*/
|
*/
|
||||||
package org.apache.hadoop.hbase.regionserver;
|
package org.apache.hadoop.hbase.regionserver;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import static org.junit.Assert.assertEquals;
|
||||||
import org.apache.hadoop.hbase.*;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import org.apache.hadoop.hbase.client.*;
|
import static org.junit.Assert.assertNull;
|
||||||
import org.apache.hadoop.hbase.client.coprocessor.Batch;
|
import static org.junit.Assert.assertTrue;
|
||||||
import org.apache.hadoop.hbase.ipc.CoprocessorProtocol;
|
|
||||||
import org.apache.hadoop.hbase.ipc.HBaseRPCProtocolVersion;
|
|
||||||
import org.apache.hadoop.hbase.util.Bytes;
|
|
||||||
import org.apache.hadoop.hbase.util.JVMClusterUtil;
|
|
||||||
import org.junit.*;
|
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.hadoop.hbase.HBaseTestingUtility;
|
||||||
|
import org.apache.hadoop.hbase.HConstants;
|
||||||
|
import org.apache.hadoop.hbase.HRegionInfo;
|
||||||
|
import org.apache.hadoop.hbase.HRegionLocation;
|
||||||
|
import org.apache.hadoop.hbase.MiniHBaseCluster;
|
||||||
|
import org.apache.hadoop.hbase.client.Get;
|
||||||
|
import org.apache.hadoop.hbase.client.HTable;
|
||||||
|
import org.apache.hadoop.hbase.client.Put;
|
||||||
|
import org.apache.hadoop.hbase.client.Row;
|
||||||
|
import org.apache.hadoop.hbase.client.coprocessor.Batch;
|
||||||
|
import org.apache.hadoop.hbase.ipc.CoprocessorProtocol;
|
||||||
|
import org.apache.hadoop.hbase.util.Bytes;
|
||||||
|
import org.apache.hadoop.hbase.util.JVMClusterUtil;
|
||||||
|
import org.apache.hadoop.ipc.VersionedProtocol;
|
||||||
|
import org.junit.AfterClass;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
public class TestServerCustomProtocol {
|
public class TestServerCustomProtocol {
|
||||||
/* Test protocol */
|
/* Test protocol */
|
||||||
private static interface PingProtocol extends CoprocessorProtocol {
|
private static interface PingProtocol extends CoprocessorProtocol {
|
||||||
|
@ -45,8 +58,9 @@ public class TestServerCustomProtocol {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Test protocol implementation */
|
/* Test protocol implementation */
|
||||||
private static class PingHandler implements PingProtocol,
|
private static class PingHandler implements PingProtocol, VersionedProtocol {
|
||||||
HBaseRPCProtocolVersion {
|
static int VERSION = 1;
|
||||||
|
|
||||||
private int counter = 0;
|
private int counter = 0;
|
||||||
@Override
|
@Override
|
||||||
public String ping() {
|
public String ping() {
|
||||||
|
@ -72,7 +86,7 @@ public class TestServerCustomProtocol {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getProtocolVersion(String s, long l) throws IOException {
|
public long getProtocolVersion(String s, long l) throws IOException {
|
||||||
return versionID;
|
return VERSION;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue