@Override public AddressPicker createAddressPicker(Node node) { Config config = node.getConfig(); MemberAddressProviderConfig memberAddressProviderConfig = config.getNetworkConfig().getMemberAddressProviderConfig(); final ILogger addressPickerLogger = node.getLogger(AddressPicker.class); if (!memberAddressProviderConfig.isEnabled()) { return new DefaultAddressPicker(config, addressPickerLogger); } MemberAddressProvider implementation = memberAddressProviderConfig.getImplementation(); if (implementation != null) { return new DelegatingAddressPicker(implementation, config.getNetworkConfig(), addressPickerLogger); } ClassLoader classLoader = config.getClassLoader(); String classname = memberAddressProviderConfig.getClassName(); Class<? extends MemberAddressProvider> clazz = loadMemberAddressProviderClass(classLoader, classname); ILogger memberAddressProviderLogger = node.getLogger(clazz); Properties properties = memberAddressProviderConfig.getProperties(); MemberAddressProvider memberAddressProvider = newMemberAddressProviderInstance(clazz, memberAddressProviderLogger, properties); return new DelegatingAddressPicker(memberAddressProvider, config.getNetworkConfig(), addressPickerLogger); }
@Override public AddressPicker createAddressPicker(Node node) { Config config = node.getConfig(); MemberAddressProviderConfig memberAddressProviderConfig = config.getNetworkConfig().getMemberAddressProviderConfig(); final ILogger addressPickerLogger = node.getLogger(AddressPicker.class); if (!memberAddressProviderConfig.isEnabled()) { return new DefaultAddressPicker(config, addressPickerLogger); } MemberAddressProvider implementation = memberAddressProviderConfig.getImplementation(); if (implementation != null) { return new DelegatingAddressPicker(implementation, config.getNetworkConfig(), addressPickerLogger); } ClassLoader classLoader = config.getClassLoader(); String classname = memberAddressProviderConfig.getClassName(); Class<?> clazz = loadMemberAddressProviderClass(classLoader, classname); Constructor<?> constructor = findMemberAddressProviderConstructor(clazz); Properties properties = memberAddressProviderConfig.getProperties(); MemberAddressProvider memberAddressProvider = newMemberAddressProviderInstance(constructor, properties); return new DelegatingAddressPicker(memberAddressProvider, config.getNetworkConfig(), addressPickerLogger); }