/** * Constructs a SimpleHostSet. This constructor is used from StaticHostProviderTest to produce deterministic test results * by initializing sourceOfRandomness with the same seed * * @param serverAddresses * possibly unresolved ZooKeeper server addresses * @param randomnessSeed a seed used to initialize sourceOfRandomnes * @throws IllegalArgumentException * if serverAddresses is empty or resolves to an empty list */ public StaticHostProvider(Collection<InetSocketAddress> serverAddresses, long randomnessSeed) { init(serverAddresses, randomnessSeed, new Resolver() { @Override public InetAddress[] getAllByName(String name) throws UnknownHostException { return InetAddress.getAllByName(name); } }); }
/** * Introduced for testing purposes. getAllByName() is a static method of InetAddress, therefore cannot be easily mocked. * By abstraction of Resolver interface we can easily inject a mocked implementation in tests. * * @param serverAddresses * possibly unresolved ZooKeeper server addresses * @param resolver * custom resolver implementation * @throws IllegalArgumentException * if serverAddresses is empty or resolves to an empty list */ public StaticHostProvider(Collection<InetSocketAddress> serverAddresses, Resolver resolver) { this.resolver = resolver; init(serverAddresses); }
/** * Constructs a SimpleHostSet. * * @param serverAddresses * possibly unresolved ZooKeeper server addresses * @throws IllegalArgumentException * if serverAddresses is empty or resolves to an empty list */ public StaticHostProvider(Collection<InetSocketAddress> serverAddresses) { this.resolver = new Resolver() { @Override public InetAddress[] getAllByName(String name) throws UnknownHostException { return InetAddress.getAllByName(name); } }; init(serverAddresses); }
/** * Constructs a SimpleHostSet. * * Introduced for testing purposes. getAllByName() is a static method of InetAddress, therefore cannot be easily mocked. * By abstraction of Resolver interface we can easily inject a mocked implementation in tests. * * @param serverAddresses * possibly unresolved ZooKeeper server addresses * @param resolver * custom resolver implementation */ public StaticHostProvider(Collection<InetSocketAddress> serverAddresses, Resolver resolver) { init(serverAddresses, System.currentTimeMillis() ^ this.hashCode(), resolver); }
/** * Constructs a SimpleHostSet. * * @param serverAddresses * possibly unresolved ZooKeeper server addresses * @throws IllegalArgumentException * if serverAddresses is empty or resolves to an empty list */ public StaticHostProvider(Collection<InetSocketAddress> serverAddresses) { init(serverAddresses, System.currentTimeMillis() ^ this.hashCode(), new Resolver() { @Override public InetAddress[] getAllByName(String name) throws UnknownHostException { return InetAddress.getAllByName(name); } }); }