mirror of https://github.com/grpc/grpc-java.git
xds: lazily init MessagePrinter (#8639)
Just for cleanup. The printer might be used in other class e.g. to convert RLS proto to string/Map.
This commit is contained in:
parent
602624887f
commit
59c6b49fd4
|
|
@ -78,7 +78,6 @@ abstract class AbstractXdsClient extends XdsClient {
|
||||||
throw new AssertionError(e);
|
throw new AssertionError(e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
private final MessagePrinter msgPrinter = new MessagePrinter();
|
|
||||||
private final InternalLogId logId;
|
private final InternalLogId logId;
|
||||||
private final XdsLogger logger;
|
private final XdsLogger logger;
|
||||||
private final ManagedChannel channel;
|
private final ManagedChannel channel;
|
||||||
|
|
@ -580,8 +579,9 @@ abstract class AbstractXdsClient extends XdsClient {
|
||||||
public void run() {
|
public void run() {
|
||||||
ResourceType type = ResourceType.fromTypeUrl(response.getTypeUrl());
|
ResourceType type = ResourceType.fromTypeUrl(response.getTypeUrl());
|
||||||
if (logger.isLoggable(XdsLogLevel.DEBUG)) {
|
if (logger.isLoggable(XdsLogLevel.DEBUG)) {
|
||||||
logger.log(XdsLogLevel.DEBUG, "Received {0} response:\n{1}",
|
logger.log(
|
||||||
type, msgPrinter.print(response));
|
XdsLogLevel.DEBUG, "Received {0} response:\n{1}", type,
|
||||||
|
MessagePrinter.print(response));
|
||||||
}
|
}
|
||||||
handleRpcResponse(type, response.getVersionInfo(), response.getResourcesList(),
|
handleRpcResponse(type, response.getVersionInfo(), response.getResourcesList(),
|
||||||
response.getNonce());
|
response.getNonce());
|
||||||
|
|
@ -633,7 +633,9 @@ abstract class AbstractXdsClient extends XdsClient {
|
||||||
}
|
}
|
||||||
io.envoyproxy.envoy.api.v2.DiscoveryRequest request = builder.build();
|
io.envoyproxy.envoy.api.v2.DiscoveryRequest request = builder.build();
|
||||||
requestWriter.onNext(request);
|
requestWriter.onNext(request);
|
||||||
logger.log(XdsLogLevel.DEBUG, "Sent DiscoveryRequest\n{0}", msgPrinter.print(request));
|
if (logger.isLoggable(XdsLogLevel.DEBUG)) {
|
||||||
|
logger.log(XdsLogLevel.DEBUG, "Sent DiscoveryRequest\n{0}", MessagePrinter.print(request));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -657,8 +659,9 @@ abstract class AbstractXdsClient extends XdsClient {
|
||||||
public void run() {
|
public void run() {
|
||||||
ResourceType type = ResourceType.fromTypeUrl(response.getTypeUrl());
|
ResourceType type = ResourceType.fromTypeUrl(response.getTypeUrl());
|
||||||
if (logger.isLoggable(XdsLogLevel.DEBUG)) {
|
if (logger.isLoggable(XdsLogLevel.DEBUG)) {
|
||||||
logger.log(XdsLogLevel.DEBUG, "Received {0} response:\n{1}",
|
logger.log(
|
||||||
type, msgPrinter.print(response));
|
XdsLogLevel.DEBUG, "Received {0} response:\n{1}", type,
|
||||||
|
MessagePrinter.print(response));
|
||||||
}
|
}
|
||||||
handleRpcResponse(type, response.getVersionInfo(), response.getResourcesList(),
|
handleRpcResponse(type, response.getVersionInfo(), response.getResourcesList(),
|
||||||
response.getNonce());
|
response.getNonce());
|
||||||
|
|
@ -710,7 +713,9 @@ abstract class AbstractXdsClient extends XdsClient {
|
||||||
}
|
}
|
||||||
DiscoveryRequest request = builder.build();
|
DiscoveryRequest request = builder.build();
|
||||||
requestWriter.onNext(request);
|
requestWriter.onNext(request);
|
||||||
logger.log(XdsLogLevel.DEBUG, "Sent DiscoveryRequest\n{0}", msgPrinter.print(request));
|
if (logger.isLoggable(XdsLogLevel.DEBUG)) {
|
||||||
|
logger.log(XdsLogLevel.DEBUG, "Sent DiscoveryRequest\n{0}", MessagePrinter.print(request));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -38,43 +38,49 @@ import io.envoyproxy.envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContex
|
||||||
* containing {@link com.google.protobuf.Any} fields.
|
* containing {@link com.google.protobuf.Any} fields.
|
||||||
*/
|
*/
|
||||||
final class MessagePrinter {
|
final class MessagePrinter {
|
||||||
private final JsonFormat.Printer printer;
|
|
||||||
|
|
||||||
MessagePrinter() {
|
private MessagePrinter() {}
|
||||||
TypeRegistry registry =
|
|
||||||
TypeRegistry.newBuilder()
|
// The initialization-on-demand holder idiom.
|
||||||
.add(Listener.getDescriptor())
|
private static class LazyHolder {
|
||||||
.add(io.envoyproxy.envoy.api.v2.Listener.getDescriptor())
|
static final JsonFormat.Printer printer = newPrinter();
|
||||||
.add(HttpConnectionManager.getDescriptor())
|
|
||||||
.add(io.envoyproxy.envoy.config.filter.network.http_connection_manager.v2
|
private static JsonFormat.Printer newPrinter() {
|
||||||
.HttpConnectionManager.getDescriptor())
|
TypeRegistry registry =
|
||||||
.add(HTTPFault.getDescriptor())
|
TypeRegistry.newBuilder()
|
||||||
.add(io.envoyproxy.envoy.config.filter.http.fault.v2.HTTPFault.getDescriptor())
|
.add(Listener.getDescriptor())
|
||||||
.add(RBAC.getDescriptor())
|
.add(io.envoyproxy.envoy.api.v2.Listener.getDescriptor())
|
||||||
.add(RBACPerRoute.getDescriptor())
|
.add(HttpConnectionManager.getDescriptor())
|
||||||
.add(Router.getDescriptor())
|
.add(io.envoyproxy.envoy.config.filter.network.http_connection_manager.v2
|
||||||
.add(io.envoyproxy.envoy.config.filter.http.router.v2.Router.getDescriptor())
|
.HttpConnectionManager.getDescriptor())
|
||||||
// UpstreamTlsContext and DownstreamTlsContext in v3 are not transitively imported
|
.add(HTTPFault.getDescriptor())
|
||||||
// by top-level resource types.
|
.add(io.envoyproxy.envoy.config.filter.http.fault.v2.HTTPFault.getDescriptor())
|
||||||
.add(UpstreamTlsContext.getDescriptor())
|
.add(RBAC.getDescriptor())
|
||||||
.add(DownstreamTlsContext.getDescriptor())
|
.add(RBACPerRoute.getDescriptor())
|
||||||
.add(RouteConfiguration.getDescriptor())
|
.add(Router.getDescriptor())
|
||||||
.add(io.envoyproxy.envoy.api.v2.RouteConfiguration.getDescriptor())
|
.add(io.envoyproxy.envoy.config.filter.http.router.v2.Router.getDescriptor())
|
||||||
.add(Cluster.getDescriptor())
|
// UpstreamTlsContext and DownstreamTlsContext in v3 are not transitively imported
|
||||||
.add(io.envoyproxy.envoy.api.v2.Cluster.getDescriptor())
|
// by top-level resource types.
|
||||||
.add(ClusterConfig.getDescriptor())
|
.add(UpstreamTlsContext.getDescriptor())
|
||||||
.add(io.envoyproxy.envoy.config.cluster.aggregate.v2alpha.ClusterConfig
|
.add(DownstreamTlsContext.getDescriptor())
|
||||||
.getDescriptor())
|
.add(RouteConfiguration.getDescriptor())
|
||||||
.add(ClusterLoadAssignment.getDescriptor())
|
.add(io.envoyproxy.envoy.api.v2.RouteConfiguration.getDescriptor())
|
||||||
.add(io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.getDescriptor())
|
.add(Cluster.getDescriptor())
|
||||||
.build();
|
.add(io.envoyproxy.envoy.api.v2.Cluster.getDescriptor())
|
||||||
printer = JsonFormat.printer().usingTypeRegistry(registry);
|
.add(ClusterConfig.getDescriptor())
|
||||||
|
.add(io.envoyproxy.envoy.config.cluster.aggregate.v2alpha.ClusterConfig
|
||||||
|
.getDescriptor())
|
||||||
|
.add(ClusterLoadAssignment.getDescriptor())
|
||||||
|
.add(io.envoyproxy.envoy.api.v2.ClusterLoadAssignment.getDescriptor())
|
||||||
|
.build();
|
||||||
|
return JsonFormat.printer().usingTypeRegistry(registry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String print(MessageOrBuilder message) {
|
static String print(MessageOrBuilder message) {
|
||||||
String res;
|
String res;
|
||||||
try {
|
try {
|
||||||
res = printer.print(message);
|
res = LazyHolder.printer.print(message);
|
||||||
} catch (InvalidProtocolBufferException e) {
|
} catch (InvalidProtocolBufferException e) {
|
||||||
res = message + " (failed to pretty-print: " + e + ")";
|
res = message + " (failed to pretty-print: " + e + ")";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,6 @@ import org.junit.runners.JUnit4;
|
||||||
*/
|
*/
|
||||||
@RunWith(JUnit4.class)
|
@RunWith(JUnit4.class)
|
||||||
public class MessagePrinterTest {
|
public class MessagePrinterTest {
|
||||||
private final MessagePrinter printer = new MessagePrinter();
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void printLdsResponse_v3() {
|
public void printLdsResponse_v3() {
|
||||||
|
|
@ -151,7 +150,7 @@ public class MessagePrinterTest {
|
||||||
+ " \"typeUrl\": \"type.googleapis.com/envoy.config.listener.v3.Listener\",\n"
|
+ " \"typeUrl\": \"type.googleapis.com/envoy.config.listener.v3.Listener\",\n"
|
||||||
+ " \"nonce\": \"0000\"\n"
|
+ " \"nonce\": \"0000\"\n"
|
||||||
+ "}";
|
+ "}";
|
||||||
String res = printer.print(response);
|
String res = MessagePrinter.print(response);
|
||||||
assertThat(res).isEqualTo(expectedString);
|
assertThat(res).isEqualTo(expectedString);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -202,7 +201,7 @@ public class MessagePrinterTest {
|
||||||
+ " \"typeUrl\": \"type.googleapis.com/envoy.config.route.v3.RouteConfiguration\",\n"
|
+ " \"typeUrl\": \"type.googleapis.com/envoy.config.route.v3.RouteConfiguration\",\n"
|
||||||
+ " \"nonce\": \"0000\"\n"
|
+ " \"nonce\": \"0000\"\n"
|
||||||
+ "}";
|
+ "}";
|
||||||
String res = printer.print(response);
|
String res = MessagePrinter.print(response);
|
||||||
assertThat(res).isEqualTo(expectedString);
|
assertThat(res).isEqualTo(expectedString);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -267,7 +266,7 @@ public class MessagePrinterTest {
|
||||||
+ " \"typeUrl\": \"type.googleapis.com/envoy.config.cluster.v3.Cluster\",\n"
|
+ " \"typeUrl\": \"type.googleapis.com/envoy.config.cluster.v3.Cluster\",\n"
|
||||||
+ " \"nonce\": \"0000\"\n"
|
+ " \"nonce\": \"0000\"\n"
|
||||||
+ "}";
|
+ "}";
|
||||||
String res = printer.print(response);
|
String res = MessagePrinter.print(response);
|
||||||
assertThat(res).isEqualTo(expectedString);
|
assertThat(res).isEqualTo(expectedString);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -356,7 +355,7 @@ public class MessagePrinterTest {
|
||||||
+ ".ClusterLoadAssignment\",\n"
|
+ ".ClusterLoadAssignment\",\n"
|
||||||
+ " \"nonce\": \"0000\"\n"
|
+ " \"nonce\": \"0000\"\n"
|
||||||
+ "}";
|
+ "}";
|
||||||
String res = printer.print(response);
|
String res = MessagePrinter.print(response);
|
||||||
assertThat(res).isEqualTo(expectedString);
|
assertThat(res).isEqualTo(expectedString);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue