Skip to content

Commit ceed071

Browse files
committed
Move RFC 3986 feature flag to 'api'
1 parent 5a7ff19 commit ceed071

4 files changed

Lines changed: 35 additions & 12 deletions

File tree

api/src/main/java/io/grpc/FeatureFlags.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,25 @@
1616

1717
package io.grpc;
1818

19+
import com.google.common.annotations.VisibleForTesting;
1920
import com.google.common.base.Strings;
2021

2122
class FeatureFlags {
23+
private static boolean enableRfc3986Uris = getFlag("GRPC_ENABLE_RFC3986_URIS", false);
24+
25+
/** Whether to parse targets as RFC 3986 URIs (true), or use {@link java.net.URI} (false). */
26+
@VisibleForTesting
27+
static boolean setRfc3986UrisEnabled(boolean value) {
28+
boolean prevValue = enableRfc3986Uris;
29+
enableRfc3986Uris = value;
30+
return prevValue;
31+
}
32+
33+
/** Whether to parse targets as RFC 3986 URIs (true), or use {@link java.net.URI} (false). */
34+
static boolean getRfc3986UrisEnabled() {
35+
return enableRfc3986Uris;
36+
}
37+
2238
static boolean getFlag(String envVarName, boolean enableByDefault) {
2339
String envVar = System.getenv(envVarName);
2440
if (envVar == null) {

api/src/main/java/io/grpc/InternalFeatureFlags.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,23 @@
1616

1717
package io.grpc;
1818

19+
import com.google.common.annotations.VisibleForTesting;
20+
21+
/** Global variables that govern major changes to the behavior of more than one grpc module. */
1922
@Internal
2023
public class InternalFeatureFlags {
24+
25+
/** Whether to parse targets as RFC 3986 URIs (true), or use {@link java.net.URI} (false). */
26+
@VisibleForTesting
27+
public static boolean setRfc3986UrisEnabled(boolean value) {
28+
return FeatureFlags.setRfc3986UrisEnabled(value);
29+
}
30+
31+
/** Whether to parse targets as RFC 3986 URIs (true), or use {@link java.net.URI} (false). */
32+
public static boolean getRfc3986UrisEnabled() {
33+
return FeatureFlags.getRfc3986UrisEnabled();
34+
}
35+
2136
public static boolean getFlag(String envVarName, boolean enableByDefault) {
2237
return FeatureFlags.getFlag(envVarName, enableByDefault);
2338
}

core/src/main/java/io/grpc/internal/ManagedChannelImplBuilder.java

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import io.grpc.EquivalentAddressGroup;
3939
import io.grpc.InternalChannelz;
4040
import io.grpc.InternalConfiguratorRegistry;
41+
import io.grpc.InternalFeatureFlags;
4142
import io.grpc.ManagedChannel;
4243
import io.grpc.ManagedChannelBuilder;
4344
import io.grpc.MethodDescriptor;
@@ -106,16 +107,6 @@ public static ManagedChannelBuilder<?> forTarget(String target) {
106107
*/
107108
static final long IDLE_MODE_MIN_TIMEOUT_MILLIS = TimeUnit.SECONDS.toMillis(1);
108109

109-
private static boolean enableRfc3986Uris = GrpcUtil.getFlag("GRPC_ENABLE_RFC3986_URIS", false);
110-
111-
/** Whether to parse targets as RFC 3986 URIs (true), or use {@link java.net.URI} (false). */
112-
@VisibleForTesting
113-
static boolean setRfc3986UrisEnabled(boolean value) {
114-
boolean prevValue = ManagedChannelImplBuilder.enableRfc3986Uris;
115-
ManagedChannelImplBuilder.enableRfc3986Uris = value;
116-
return prevValue;
117-
}
118-
119110
private static final ObjectPool<? extends Executor> DEFAULT_EXECUTOR_POOL =
120111
SharedResourcePool.forResource(GrpcUtil.SHARED_CHANNEL_EXECUTOR);
121112

@@ -731,7 +722,7 @@ public ManagedChannel build() {
731722
ClientTransportFactory clientTransportFactory =
732723
clientTransportFactoryBuilder.buildClientTransportFactory();
733724
ResolvedNameResolver resolvedResolver =
734-
enableRfc3986Uris
725+
InternalFeatureFlags.getRfc3986UrisEnabled()
735726
? getNameResolverProviderRfc3986(target, nameResolverRegistry)
736727
: getNameResolverProvider(target, nameResolverRegistry);
737728
resolvedResolver.checkAddressTypes(clientTransportFactory.getSupportedSocketAddressTypes());

core/src/test/java/io/grpc/internal/ManagedChannelImplBuilderTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import io.grpc.FlagResetRule;
4242
import io.grpc.InternalConfigurator;
4343
import io.grpc.InternalConfiguratorRegistry;
44+
import io.grpc.InternalFeatureFlags;
4445
import io.grpc.InternalManagedChannelBuilder.InternalInterceptorFactory;
4546
import io.grpc.ManagedChannel;
4647
import io.grpc.ManagedChannelBuilder;
@@ -129,7 +130,7 @@ public static Iterable<Object[]> data() {
129130
@Before
130131
public void setUp() throws Exception {
131132
flagResetRule.setFlagForTest(
132-
ManagedChannelImplBuilder::setRfc3986UrisEnabled, enableRfc3986UrisParam);
133+
InternalFeatureFlags::setRfc3986UrisEnabled, enableRfc3986UrisParam);
133134

134135
builder = new ManagedChannelImplBuilder(
135136
DUMMY_TARGET,

0 commit comments

Comments
 (0)