Search in sources :

Example 1 with Register

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;
}
Also used : List(java.util.List) HostPort(rpc.turbo.config.HostPort) Register(rpc.turbo.registry.Register) Config(com.typesafe.config.Config) DirectConnectRegister(rpc.turbo.registry.DirectConnectRegister) ConfigUtils.getStringOrElse(rpc.turbo.config.ConfigUtils.getStringOrElse) Collectors(java.util.stream.Collectors) InvocationTargetException(java.lang.reflect.InvocationTargetException) Register(rpc.turbo.registry.Register) DirectConnectRegister(rpc.turbo.registry.DirectConnectRegister) HostPort(rpc.turbo.config.HostPort) DirectConnectRegister(rpc.turbo.registry.DirectConnectRegister)

Aggregations

Config (com.typesafe.config.Config)1 InvocationTargetException (java.lang.reflect.InvocationTargetException)1 List (java.util.List)1 Collectors (java.util.stream.Collectors)1 ConfigUtils.getStringOrElse (rpc.turbo.config.ConfigUtils.getStringOrElse)1 HostPort (rpc.turbo.config.HostPort)1 DirectConnectRegister (rpc.turbo.registry.DirectConnectRegister)1 Register (rpc.turbo.registry.Register)1