• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

grpc / grpc-java / #20320

17 Jun 2026 05:11PM UTC coverage: 88.886% (+0.01%) from 88.874%
#20320

push

github

web-flow
api: Add Grpc.newChannelBuilder accepting NameResolverRegistry (#11901)

This introduces a new `Grpc.newChannelBuilder` overload that allows callers to pass an explicit `NameResolverRegistry`. Fixes #11055

36550 of 41120 relevant lines covered (88.89%)

0.89 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

93.33
/../netty/src/main/java/io/grpc/netty/NettyChannelProvider.java
1
/*
2
 * Copyright 2015 The gRPC Authors
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *     http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16

17
package io.grpc.netty;
18

19
import io.grpc.ChannelCredentials;
20
import io.grpc.Internal;
21
import io.grpc.ManagedChannelProvider;
22
import io.grpc.NameResolverProvider;
23
import io.grpc.NameResolverRegistry;
24
import java.net.SocketAddress;
25
import java.util.Collection;
26

27
/** Provider for {@link NettyChannelBuilder} instances. */
28
@Internal
29
public final class NettyChannelProvider extends ManagedChannelProvider {
1✔
30
  @Override
31
  public boolean isAvailable() {
32
    return true;
1✔
33
  }
34

35
  @Override
36
  public int priority() {
37
    return 5;
1✔
38
  }
39

40
  @Override
41
  public NettyChannelBuilder builderForAddress(String name, int port) {
42
    return NettyChannelBuilder.forAddress(name, port);
1✔
43
  }
44

45
  @Override
46
  public NettyChannelBuilder builderForTarget(String target) {
47
    return NettyChannelBuilder.forTarget(target);
1✔
48
  }
49

50
  @Override
51
  public NewChannelBuilderResult newChannelBuilder(String target, ChannelCredentials creds) {
52
    ProtocolNegotiators.FromChannelCredentialsResult result = ProtocolNegotiators.from(creds);
1✔
53
    if (result.error != null) {
1✔
54
      return NewChannelBuilderResult.error(result.error);
1✔
55
    }
56
    return NewChannelBuilderResult.channelBuilder(
1✔
57
        new NettyChannelBuilder(target, creds, result.callCredentials, result.negotiator));
58
  }
59

60
  @Override
61
  public NewChannelBuilderResult newChannelBuilder(String target, ChannelCredentials creds,
62
                                                   NameResolverRegistry nameResolverRegistry,
63
                                                   NameResolverProvider nameResolverProvider) {
64
    ProtocolNegotiators.FromChannelCredentialsResult result = ProtocolNegotiators.from(creds);
1✔
65
    if (result.error != null) {
1✔
66
      return NewChannelBuilderResult.error(result.error);
×
67
    }
68
    NettyChannelBuilder builder = new NettyChannelBuilder(target, creds,
1✔
69
        result.callCredentials, result.negotiator, nameResolverRegistry, nameResolverProvider);
70
    return NewChannelBuilderResult.channelBuilder(builder);
1✔
71
  }
72

73
  @Override
74
  protected Collection<Class<? extends SocketAddress>> getSupportedSocketAddressTypes() {
75
    return NettyChannelBuilder.getSupportedSocketAddressTypes();
1✔
76
  }
77
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc