HDFS-15623. Respect configured values of rpc.engine (#2403) Contributed by Hector Chaverri.
(cherry picked from commit 6eacaffeea
)
This commit is contained in:
parent
c7b1bdba63
commit
3443d75946
|
@ -193,14 +193,18 @@ public class RPC {
|
|||
private static final String ENGINE_PROP = "rpc.engine";
|
||||
|
||||
/**
|
||||
* Set a protocol to use a non-default RpcEngine.
|
||||
* Set a protocol to use a non-default RpcEngine if one
|
||||
* is not specified in the configuration.
|
||||
* @param conf configuration to use
|
||||
* @param protocol the protocol interface
|
||||
* @param engine the RpcEngine impl
|
||||
*/
|
||||
public static void setProtocolEngine(Configuration conf,
|
||||
Class<?> protocol, Class<?> engine) {
|
||||
conf.setClass(ENGINE_PROP+"."+protocol.getName(), engine, RpcEngine.class);
|
||||
if (conf.get(ENGINE_PROP+"."+protocol.getName()) == null) {
|
||||
conf.setClass(ENGINE_PROP+"."+protocol.getName(), engine,
|
||||
RpcEngine.class);
|
||||
}
|
||||
}
|
||||
|
||||
// return the RpcEngine configured to handle a protocol
|
||||
|
|
|
@ -1501,6 +1501,18 @@ public class TestRPC extends TestRpcBase {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetProtocolEngine() {
|
||||
Configuration conf = new Configuration();
|
||||
RPC.setProtocolEngine(conf, StoppedProtocol.class, StoppedRpcEngine.class);
|
||||
RpcEngine rpcEngine = RPC.getProtocolEngine(StoppedProtocol.class, conf);
|
||||
assertTrue(rpcEngine instanceof StoppedRpcEngine);
|
||||
|
||||
RPC.setProtocolEngine(conf, StoppedProtocol.class, ProtobufRpcEngine.class);
|
||||
rpcEngine = RPC.getProtocolEngine(StoppedProtocol.class, conf);
|
||||
assertTrue(rpcEngine instanceof StoppedRpcEngine);
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
new TestRPC().testCallsInternal(conf);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue