Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. package foo;
  2.  
  3. import io.grpc.Attributes;
  4. import io.grpc.EquivalentAddressGroup;
  5. import io.grpc.NameResolver;
  6. import io.grpc.NameResolverProvider;
  7. import java.net.InetSocketAddress;
  8. import java.net.URI;
  9. import java.util.List;
  10. import java.util.stream.Collectors;
  11. import javax.annotation.Nullable;
  12.  
  13. public class StaticServerNameResolverFactory extends NameResolverProvider {
  14.  
  15. private final String scheme;
  16. private final String authority;
  17. private final List<EquivalentAddressGroup> servers;
  18.  
  19. public StaticServerNameResolverFactory(String scheme, String authority, List<String> servers) {
  20. this.scheme = scheme;
  21. this.authority = authority;
  22. this.servers = servers.stream()
  23. .map(server -> {
  24. URI uri = URI.create(scheme + "://" + server);
  25. return new EquivalentAddressGroup(InetSocketAddress.createUnresolved(uri.getHost(), uri.getPort()));
  26. })
  27. .collect(Collectors.toList());
  28. }
  29.  
  30. @Nullable
  31. @Override
  32. public NameResolver newNameResolver(URI targetUri, Attributes params) {
  33. return new NameResolver() {
  34. @Override
  35. public String getServiceAuthority() {
  36. return authority;
  37. }
  38.  
  39. @Override
  40. public void start(Listener listener) {
  41. // nothing to do
  42. listener.onAddresses(servers, Attributes.EMPTY);
  43. }
  44.  
  45. @Override
  46. public void shutdown() {
  47. // nothing to do
  48. }
  49. };
  50. }
  51.  
  52. @Override
  53. public String getDefaultScheme() {
  54. return scheme;
  55. }
  56.  
  57. @Override
  58. protected boolean isAvailable() {
  59. return true;
  60. }
  61.  
  62. @Override
  63. protected int priority() {
  64. return 0;
  65. }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement