GrpcUtil { public static String getGrpcUserAgent(String transportName, @Nullable String applicationUserAgent) { StringBuilder builder = new StringBuilder(); if (applicationUserAgent != null) { builder.append(applicationUserAgent); builder.append(' '); } builder.append("grpc-java-"); builder.append(transportName); String version = GrpcUtil.class.getPackage().getImplementationVersion(); if (version != null) { builder.append("/"); builder.append(version); } return builder.toString(); } private  GrpcUtil(); static Status httpStatusToGrpcStatus(int httpStatusCode); static boolean isGrpcContentType(String contentType); static String getGrpcUserAgent(String transportName,
                                        @Nullable String applicationUserAgent); static URI authorityToUri(String authority); static String checkAuthority(String authority); static String authorityFromHostAndPort(String host, int port); static String getLogId(WithLogId subject); static final Metadata.Key<Long> TIMEOUT_KEY; static final Metadata.Key<String> MESSAGE_ENCODING_KEY; static final Metadata.Key<String> MESSAGE_ACCEPT_ENCODING_KEY; static final Metadata.Key<String> CONTENT_TYPE_KEY; static final Metadata.Key<String> USER_AGENT_KEY; static final int DEFAULT_PORT_PLAINTEXT; static final int DEFAULT_PORT_SSL; static final String CONTENT_TYPE_GRPC; static final String HTTP_METHOD; static final String TE_TRAILERS; static final String TIMEOUT; static final String MESSAGE_ENCODING; static final String MESSAGE_ACCEPT_ENCODING; static final int DEFAULT_MAX_MESSAGE_SIZE; static final int DEFAULT_MAX_HEADER_LIST_SIZE; static final Splitter ACCEPT_ENCODING_SPLITER; static final Joiner ACCEPT_ENCODING_JOINER; static final Resource<ExecutorService> SHARED_CHANNEL_EXECUTOR; static final Resource<ScheduledExecutorService> TIMER_SERVICE; }
@Test public void grpcUserAgent() { assertTrue(GrpcUtil.getGrpcUserAgent("netty", null).startsWith("grpc-java-netty")); assertTrue(GrpcUtil.getGrpcUserAgent("okhttp", "libfoo/1.0") .startsWith("libfoo/1.0 grpc-java-okhttp")); }