use of rpc.turbo.registry.Register in project turbo-rpc by hank-whu.
the class RegisterConfig method parse.
static RegisterConfig parse(Config config) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException, ClassNotFoundException {
String serverAddressStr = config.getString("server.address");
HostPort serverAddress = new HostPort(serverAddressStr);
int serverWeight = config.getInt("server.weight");
String protocolStr = getStringOrElse(config, "server.protocol", Protocol.RPC.name());
Protocol protocol = Protocol.valueOf(protocolStr);
String registerClass = getStringOrElse(config, "register.class", DirectConnectRegister.class.getName());
List<String> registerAddressList = config.getStringList("register.address");
Register register = (Register) //
Class.forName(//
registerClass).getDeclaredConstructor().newInstance();
List<HostPort> hostPorts = //
registerAddressList.stream().map(//
str -> new HostPort(str)).collect(Collectors.toList());
register.init(hostPorts);
RegisterConfig registerConfig = new RegisterConfig();
registerConfig.setRegister(register);
registerConfig.setProtocol(protocol);
registerConfig.setServerAddress(serverAddress);
registerConfig.setServerWeight(serverWeight);
return registerConfig;
}
Aggregations