Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package foo;
- import io.grpc.Attributes;
- import io.grpc.EquivalentAddressGroup;
- import io.grpc.NameResolver;
- import io.grpc.NameResolverProvider;
- import java.net.InetSocketAddress;
- import java.net.URI;
- import java.util.List;
- import java.util.stream.Collectors;
- import javax.annotation.Nullable;
- public class StaticServerNameResolverFactory extends NameResolverProvider {
- private final String scheme;
- private final String authority;
- private final List<EquivalentAddressGroup> servers;
- public StaticServerNameResolverFactory(String scheme, String authority, List<String> servers) {
- this.scheme = scheme;
- this.authority = authority;
- this.servers = servers.stream()
- .map(server -> {
- URI uri = URI.create(scheme + "://" + server);
- return new EquivalentAddressGroup(InetSocketAddress.createUnresolved(uri.getHost(), uri.getPort()));
- })
- .collect(Collectors.toList());
- }
- @Nullable
- @Override
- public NameResolver newNameResolver(URI targetUri, Attributes params) {
- return new NameResolver() {
- @Override
- public String getServiceAuthority() {
- return authority;
- }
- @Override
- public void start(Listener listener) {
- // nothing to do
- listener.onAddresses(servers, Attributes.EMPTY);
- }
- @Override
- public void shutdown() {
- // nothing to do
- }
- };
- }
- @Override
- public String getDefaultScheme() {
- return scheme;
- }
- @Override
- protected boolean isAvailable() {
- return true;
- }
- @Override
- protected int priority() {
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement