diff --git a/interop-testing/src/main/java/io/grpc/testing/integration/XdsTestServer.java b/interop-testing/src/main/java/io/grpc/testing/integration/XdsTestServer.java index c8f94bff074..8b46e849c92 100644 --- a/interop-testing/src/main/java/io/grpc/testing/integration/XdsTestServer.java +++ b/interop-testing/src/main/java/io/grpc/testing/integration/XdsTestServer.java @@ -30,9 +30,9 @@ import io.grpc.StatusRuntimeException; import io.grpc.health.v1.HealthCheckResponse.ServingStatus; import io.grpc.netty.NettyServerBuilder; +import io.grpc.protobuf.services.HealthStatusManager; import io.grpc.protobuf.services.ProtoReflectionService; import io.grpc.services.AdminInterface; -import io.grpc.services.HealthStatusManager; import io.grpc.stub.StreamObserver; import io.grpc.testing.integration.Messages.SimpleRequest; import io.grpc.testing.integration.Messages.SimpleResponse; diff --git a/services/BUILD.bazel b/services/BUILD.bazel index 97b5120ccd3..c1dd3ad353f 100644 --- a/services/BUILD.bazel +++ b/services/BUILD.bazel @@ -5,12 +5,12 @@ package(default_visibility = ["//visibility:public"]) java_library( name = "binarylog", srcs = [ - "src/main/java/io/grpc/services/BinaryLogProvider.java", - "src/main/java/io/grpc/services/BinaryLogProviderImpl.java", - "src/main/java/io/grpc/services/BinaryLogSink.java", - "src/main/java/io/grpc/services/BinlogHelper.java", - "src/main/java/io/grpc/services/InetAddressUtil.java", - "src/main/java/io/grpc/services/TempFileSink.java", + "src/main/java/io/grpc/protobuf/services/BinaryLogProvider.java", + "src/main/java/io/grpc/protobuf/services/BinaryLogProviderImpl.java", + "src/main/java/io/grpc/protobuf/services/BinaryLogSink.java", + "src/main/java/io/grpc/protobuf/services/BinlogHelper.java", + "src/main/java/io/grpc/protobuf/services/InetAddressUtil.java", + "src/main/java/io/grpc/protobuf/services/TempFileSink.java", ], deps = [ "//api", @@ -26,7 +26,8 @@ java_library( java_library( name = "channelz", srcs = [ - "src/main/java/io/grpc/services/ChannelzProtoUtil.java", + "src/main/java/io/grpc/protobuf/services/ChannelzProtoUtil.java", + "src/main/java/io/grpc/protobuf/services/ChannelzService.java", "src/main/java/io/grpc/services/ChannelzService.java", ], deps = [ @@ -66,7 +67,8 @@ java_library( java_library( name = "health", srcs = [ - "src/main/java/io/grpc/services/HealthServiceImpl.java", + "src/main/java/io/grpc/protobuf/services/HealthServiceImpl.java", + "src/main/java/io/grpc/protobuf/services/HealthStatusManager.java", "src/main/java/io/grpc/services/HealthStatusManager.java", ], deps = [ diff --git a/services/src/main/java/io/grpc/services/BinaryLogProvider.java b/services/src/main/java/io/grpc/protobuf/services/BinaryLogProvider.java similarity index 99% rename from services/src/main/java/io/grpc/services/BinaryLogProvider.java rename to services/src/main/java/io/grpc/protobuf/services/BinaryLogProvider.java index 3ca5de65558..bbbb88ce6e8 100644 --- a/services/src/main/java/io/grpc/services/BinaryLogProvider.java +++ b/services/src/main/java/io/grpc/protobuf/services/BinaryLogProvider.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; diff --git a/services/src/main/java/io/grpc/services/BinaryLogProviderImpl.java b/services/src/main/java/io/grpc/protobuf/services/BinaryLogProviderImpl.java similarity index 98% rename from services/src/main/java/io/grpc/services/BinaryLogProviderImpl.java rename to services/src/main/java/io/grpc/protobuf/services/BinaryLogProviderImpl.java index dee13a924c6..f68d67b27b7 100644 --- a/services/src/main/java/io/grpc/services/BinaryLogProviderImpl.java +++ b/services/src/main/java/io/grpc/protobuf/services/BinaryLogProviderImpl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import com.google.common.base.Preconditions; import io.grpc.CallOptions; diff --git a/services/src/main/java/io/grpc/services/BinaryLogSink.java b/services/src/main/java/io/grpc/protobuf/services/BinaryLogSink.java similarity index 96% rename from services/src/main/java/io/grpc/services/BinaryLogSink.java rename to services/src/main/java/io/grpc/protobuf/services/BinaryLogSink.java index 1c1c193e4fe..44e4e2cc856 100644 --- a/services/src/main/java/io/grpc/services/BinaryLogSink.java +++ b/services/src/main/java/io/grpc/protobuf/services/BinaryLogSink.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import com.google.protobuf.MessageLite; import io.grpc.ExperimentalApi; diff --git a/services/src/main/java/io/grpc/protobuf/services/BinaryLogs.java b/services/src/main/java/io/grpc/protobuf/services/BinaryLogs.java new file mode 100644 index 00000000000..4a7757c8617 --- /dev/null +++ b/services/src/main/java/io/grpc/protobuf/services/BinaryLogs.java @@ -0,0 +1,53 @@ +/* + * Copyright 2018, gRPC Authors All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.grpc.protobuf.services; + +import io.grpc.BinaryLog; +import io.grpc.ExperimentalApi; +import java.io.IOException; + +@ExperimentalApi("https://github.com/grpc/grpc-java/issues/4017") +public final class BinaryLogs { + /** + * Creates a binary log that writes to a temp file. Warning: this implementation is + * not performance optimized, and RPCs will experience back pressure if disk IO does not keep + * up. + */ + public static BinaryLog createBinaryLog() throws IOException { + return new BinaryLogProviderImpl(); + } + + /** + * Deprecated and will be removed in a future version of gRPC. + */ + @Deprecated + public static BinaryLog createBinaryLog(BinaryLogSink sink) throws IOException { + return new BinaryLogProviderImpl(sink); + } + + /** + * Creates a binary log with a custom {@link BinaryLogSink} for receiving the logged data, + * and a config string as defined by + * + * A16-binary-logging. + */ + public static BinaryLog createBinaryLog(BinaryLogSink sink, String configStr) throws IOException { + return new BinaryLogProviderImpl(sink, configStr); + } + + private BinaryLogs() {} +} diff --git a/services/src/main/java/io/grpc/services/BinlogHelper.java b/services/src/main/java/io/grpc/protobuf/services/BinlogHelper.java similarity index 99% rename from services/src/main/java/io/grpc/services/BinlogHelper.java rename to services/src/main/java/io/grpc/protobuf/services/BinlogHelper.java index d8923160e5c..167eefa44c6 100644 --- a/services/src/main/java/io/grpc/services/BinlogHelper.java +++ b/services/src/main/java/io/grpc/protobuf/services/BinlogHelper.java @@ -14,12 +14,12 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; -import static io.grpc.services.BinaryLogProvider.BYTEARRAY_MARSHALLER; +import static io.grpc.protobuf.services.BinaryLogProvider.BYTEARRAY_MARSHALLER; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Charsets; diff --git a/services/src/main/java/io/grpc/services/ChannelzProtoUtil.java b/services/src/main/java/io/grpc/protobuf/services/ChannelzProtoUtil.java similarity index 99% rename from services/src/main/java/io/grpc/services/ChannelzProtoUtil.java rename to services/src/main/java/io/grpc/protobuf/services/ChannelzProtoUtil.java index 349995d9f80..cf003b2f881 100644 --- a/services/src/main/java/io/grpc/services/ChannelzProtoUtil.java +++ b/services/src/main/java/io/grpc/protobuf/services/ChannelzProtoUtil.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.ListenableFuture; diff --git a/services/src/main/java/io/grpc/protobuf/services/ChannelzService.java b/services/src/main/java/io/grpc/protobuf/services/ChannelzService.java new file mode 100644 index 00000000000..66daf559d32 --- /dev/null +++ b/services/src/main/java/io/grpc/protobuf/services/ChannelzService.java @@ -0,0 +1,234 @@ +/* + * Copyright 2018 The gRPC Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.grpc.protobuf.services; + +import com.google.common.annotations.VisibleForTesting; +import io.grpc.ExperimentalApi; +import io.grpc.InternalChannelz; +import io.grpc.InternalChannelz.ChannelStats; +import io.grpc.InternalChannelz.ServerList; +import io.grpc.InternalChannelz.ServerSocketsList; +import io.grpc.InternalChannelz.ServerStats; +import io.grpc.InternalChannelz.SocketStats; +import io.grpc.InternalInstrumented; +import io.grpc.Status; +import io.grpc.StatusRuntimeException; +import io.grpc.channelz.v1.ChannelzGrpc; +import io.grpc.channelz.v1.GetChannelRequest; +import io.grpc.channelz.v1.GetChannelResponse; +import io.grpc.channelz.v1.GetServerRequest; +import io.grpc.channelz.v1.GetServerResponse; +import io.grpc.channelz.v1.GetServerSocketsRequest; +import io.grpc.channelz.v1.GetServerSocketsResponse; +import io.grpc.channelz.v1.GetServersRequest; +import io.grpc.channelz.v1.GetServersResponse; +import io.grpc.channelz.v1.GetSocketRequest; +import io.grpc.channelz.v1.GetSocketResponse; +import io.grpc.channelz.v1.GetSubchannelRequest; +import io.grpc.channelz.v1.GetSubchannelResponse; +import io.grpc.channelz.v1.GetTopChannelsRequest; +import io.grpc.channelz.v1.GetTopChannelsResponse; +import io.grpc.stub.StreamObserver; + +/** + * The channelz service provides stats about a running gRPC process. + */ +@ExperimentalApi("https://github.com/grpc/grpc-java/issues/4206") +public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase { + private final InternalChannelz channelz; + private final int maxPageSize; + + /** + * Creates an instance. + */ + public static ChannelzService newInstance(int maxPageSize) { + return new ChannelzService(InternalChannelz.instance(), maxPageSize); + } + + @VisibleForTesting + ChannelzService(InternalChannelz channelz, int maxPageSize) { + this.channelz = channelz; + this.maxPageSize = maxPageSize; + } + + /** Returns top level channel aka {@link io.grpc.ManagedChannel}. */ + @Override + public void getTopChannels( + GetTopChannelsRequest request, StreamObserver responseObserver) { + InternalChannelz.RootChannelList rootChannels + = channelz.getRootChannels(request.getStartChannelId(), maxPageSize); + + GetTopChannelsResponse resp; + try { + resp = ChannelzProtoUtil.toGetTopChannelResponse(rootChannels); + } catch (StatusRuntimeException e) { + responseObserver.onError(e); + return; + } + + responseObserver.onNext(resp); + responseObserver.onCompleted(); + } + + /** Returns a top level channel aka {@link io.grpc.ManagedChannel}. */ + @Override + public void getChannel( + GetChannelRequest request, StreamObserver responseObserver) { + InternalInstrumented s = channelz.getRootChannel(request.getChannelId()); + if (s == null) { + responseObserver.onError( + Status.NOT_FOUND.withDescription("Can't find channel " + request.getChannelId()) + .asRuntimeException()); + return; + } + + GetChannelResponse resp; + try { + resp = GetChannelResponse + .newBuilder() + .setChannel(ChannelzProtoUtil.toChannel(s)) + .build(); + } catch (StatusRuntimeException e) { + responseObserver.onError(e); + return; + } + + responseObserver.onNext(resp); + responseObserver.onCompleted(); + } + + /** Returns servers. */ + @Override + public void getServers( + GetServersRequest request, StreamObserver responseObserver) { + ServerList servers = channelz.getServers(request.getStartServerId(), maxPageSize); + + GetServersResponse resp; + try { + resp = ChannelzProtoUtil.toGetServersResponse(servers); + } catch (StatusRuntimeException e) { + responseObserver.onError(e); + return; + } + + responseObserver.onNext(resp); + responseObserver.onCompleted(); + } + + /** Returns a server. */ + @Override + public void getServer( + GetServerRequest request, StreamObserver responseObserver) { + InternalInstrumented s = channelz.getServer(request.getServerId()); + if (s == null) { + responseObserver.onError( + Status.NOT_FOUND.withDescription("Can't find server " + request.getServerId()) + .asRuntimeException()); + return; + } + + GetServerResponse resp; + try { + resp = GetServerResponse + .newBuilder() + .setServer(ChannelzProtoUtil.toServer(s)) + .build(); + } catch (StatusRuntimeException e) { + responseObserver.onError(e); + return; + } + + responseObserver.onNext(resp); + responseObserver.onCompleted(); + } + + /** Returns a subchannel. */ + @Override + public void getSubchannel( + GetSubchannelRequest request, StreamObserver responseObserver) { + InternalInstrumented s = channelz.getSubchannel(request.getSubchannelId()); + if (s == null) { + responseObserver.onError( + Status.NOT_FOUND.withDescription("Can't find subchannel " + request.getSubchannelId()) + .asRuntimeException()); + return; + } + + GetSubchannelResponse resp; + try { + resp = GetSubchannelResponse + .newBuilder() + .setSubchannel(ChannelzProtoUtil.toSubchannel(s)) + .build(); + } catch (StatusRuntimeException e) { + responseObserver.onError(e); + return; + } + + responseObserver.onNext(resp); + responseObserver.onCompleted(); + } + + /** Returns a socket. */ + @Override + public void getSocket( + GetSocketRequest request, StreamObserver responseObserver) { + InternalInstrumented s = channelz.getSocket(request.getSocketId()); + if (s == null) { + responseObserver.onError( + Status.NOT_FOUND.withDescription("Can't find socket " + request.getSocketId()) + .asRuntimeException()); + return; + } + + GetSocketResponse resp; + try { + resp = + GetSocketResponse.newBuilder().setSocket(ChannelzProtoUtil.toSocket(s)).build(); + } catch (StatusRuntimeException e) { + responseObserver.onError(e); + return; + } + + responseObserver.onNext(resp); + responseObserver.onCompleted(); + } + + @Override + public void getServerSockets( + GetServerSocketsRequest request, StreamObserver responseObserver) { + ServerSocketsList serverSockets + = channelz.getServerSockets(request.getServerId(), request.getStartSocketId(), maxPageSize); + if (serverSockets == null) { + responseObserver.onError( + Status.NOT_FOUND.withDescription("Can't find server " + request.getServerId()) + .asRuntimeException()); + return; + } + + GetServerSocketsResponse resp; + try { + resp = ChannelzProtoUtil.toGetServerSocketsResponse(serverSockets); + } catch (StatusRuntimeException e) { + responseObserver.onError(e); + return; + } + + responseObserver.onNext(resp); + responseObserver.onCompleted(); + } +} diff --git a/services/src/main/java/io/grpc/services/HealthCheckingLoadBalancerFactory.java b/services/src/main/java/io/grpc/protobuf/services/HealthCheckingLoadBalancerFactory.java similarity index 99% rename from services/src/main/java/io/grpc/services/HealthCheckingLoadBalancerFactory.java rename to services/src/main/java/io/grpc/protobuf/services/HealthCheckingLoadBalancerFactory.java index e233d94a98a..d027d13f08b 100644 --- a/services/src/main/java/io/grpc/services/HealthCheckingLoadBalancerFactory.java +++ b/services/src/main/java/io/grpc/protobuf/services/HealthCheckingLoadBalancerFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; diff --git a/services/src/main/java/io/grpc/services/HealthCheckingLoadBalancerUtil.java b/services/src/main/java/io/grpc/protobuf/services/HealthCheckingLoadBalancerUtil.java similarity index 98% rename from services/src/main/java/io/grpc/services/HealthCheckingLoadBalancerUtil.java rename to services/src/main/java/io/grpc/protobuf/services/HealthCheckingLoadBalancerUtil.java index c22716f46cf..7988ed8ff9e 100644 --- a/services/src/main/java/io/grpc/services/HealthCheckingLoadBalancerUtil.java +++ b/services/src/main/java/io/grpc/protobuf/services/HealthCheckingLoadBalancerUtil.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import io.grpc.ExperimentalApi; import io.grpc.LoadBalancer; diff --git a/services/src/main/java/io/grpc/services/HealthServiceImpl.java b/services/src/main/java/io/grpc/protobuf/services/HealthServiceImpl.java similarity index 99% rename from services/src/main/java/io/grpc/services/HealthServiceImpl.java rename to services/src/main/java/io/grpc/protobuf/services/HealthServiceImpl.java index 906f5250d36..a1933c632fd 100644 --- a/services/src/main/java/io/grpc/services/HealthServiceImpl.java +++ b/services/src/main/java/io/grpc/protobuf/services/HealthServiceImpl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import com.google.common.annotations.VisibleForTesting; import com.google.common.util.concurrent.MoreExecutors; diff --git a/services/src/main/java/io/grpc/protobuf/services/HealthStatusManager.java b/services/src/main/java/io/grpc/protobuf/services/HealthStatusManager.java new file mode 100644 index 00000000000..56cff68f3aa --- /dev/null +++ b/services/src/main/java/io/grpc/protobuf/services/HealthStatusManager.java @@ -0,0 +1,89 @@ +/* + * Copyright 2016 The gRPC Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.grpc.protobuf.services; + +import static com.google.common.base.Preconditions.checkNotNull; + +import io.grpc.BindableService; +import io.grpc.health.v1.HealthCheckResponse.ServingStatus; + +/** + * A {@code HealthStatusManager} object manages a health check service. A health check service is + * created in the constructor of {@code HealthStatusManager}, and it can be retrieved by the + * {@link #getHealthService()} method. + * The health status manager can update the health statuses of the server. + * + *

The default, empty-string, service name, {@link #SERVICE_NAME_ALL_SERVICES}, is initialized to + * {@link ServingStatus#SERVING}. + */ +@io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/4696") +public final class HealthStatusManager { + /** + * The special "service name" that represent all services on a GRPC server. It is an empty + * string. + */ + public static final String SERVICE_NAME_ALL_SERVICES = ""; + + private final HealthServiceImpl healthService; + + /** + * Creates a new health service instance. + */ + public HealthStatusManager() { + healthService = new HealthServiceImpl(); + } + + /** + * Gets the health check service created in the constructor. + */ + public BindableService getHealthService() { + return healthService; + } + + /** + * Updates the status of the server. + * @param service the name of some aspect of the server that is associated with a health status. + * This name can have no relation with the gRPC services that the server is running with. + * It can also be an empty String {@code ""} per the gRPC specification. + * @param status is one of the values {@link ServingStatus#SERVING}, + * {@link ServingStatus#NOT_SERVING} and {@link ServingStatus#UNKNOWN}. + */ + public void setStatus(String service, ServingStatus status) { + checkNotNull(status, "status"); + healthService.setStatus(service, status); + } + + /** + * Clears the health status record of a service. The health service will respond with NOT_FOUND + * error on checking the status of a cleared service. + * @param service the name of some aspect of the server that is associated with a health status. + * This name can have no relation with the gRPC services that the server is running with. + * It can also be an empty String {@code ""} per the gRPC specification. + */ + public void clearStatus(String service) { + healthService.clearStatus(service); + } + + /** + * enterTerminalState causes the health status manager to mark all services as not serving, and + * prevents future updates to services. This method is meant to be called prior to server + * shutdown as a way to indicate that clients should redirect their traffic elsewhere. + */ + public void enterTerminalState() { + healthService.enterTerminalState(); + } +} diff --git a/services/src/main/java/io/grpc/services/InetAddressUtil.java b/services/src/main/java/io/grpc/protobuf/services/InetAddressUtil.java similarity index 98% rename from services/src/main/java/io/grpc/services/InetAddressUtil.java rename to services/src/main/java/io/grpc/protobuf/services/InetAddressUtil.java index 057a8ccb5e6..b8bacbc2bb3 100644 --- a/services/src/main/java/io/grpc/services/InetAddressUtil.java +++ b/services/src/main/java/io/grpc/protobuf/services/InetAddressUtil.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; @@ -91,4 +91,4 @@ private static String hextetsToIPv6String(int[] hextets) { } return buf.toString(); } -} \ No newline at end of file +} diff --git a/services/src/main/java/io/grpc/services/TempFileSink.java b/services/src/main/java/io/grpc/protobuf/services/TempFileSink.java similarity index 98% rename from services/src/main/java/io/grpc/services/TempFileSink.java rename to services/src/main/java/io/grpc/protobuf/services/TempFileSink.java index c28339d1bd6..0ab91f54329 100644 --- a/services/src/main/java/io/grpc/services/TempFileSink.java +++ b/services/src/main/java/io/grpc/protobuf/services/TempFileSink.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import com.google.protobuf.MessageLite; import java.io.BufferedOutputStream; diff --git a/services/src/main/java/io/grpc/services/internal/HealthCheckingRoundRobinLoadBalancerProvider.java b/services/src/main/java/io/grpc/protobuf/services/internal/HealthCheckingRoundRobinLoadBalancerProvider.java similarity index 95% rename from services/src/main/java/io/grpc/services/internal/HealthCheckingRoundRobinLoadBalancerProvider.java rename to services/src/main/java/io/grpc/protobuf/services/internal/HealthCheckingRoundRobinLoadBalancerProvider.java index c2c6357b68e..68d67dbeb28 100644 --- a/services/src/main/java/io/grpc/services/internal/HealthCheckingRoundRobinLoadBalancerProvider.java +++ b/services/src/main/java/io/grpc/protobuf/services/internal/HealthCheckingRoundRobinLoadBalancerProvider.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services.internal; +package io.grpc.protobuf.services.internal; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Throwables; @@ -23,7 +23,7 @@ import io.grpc.LoadBalancer.Helper; import io.grpc.LoadBalancerProvider; import io.grpc.NameResolver.ConfigOrError; -import io.grpc.services.HealthCheckingLoadBalancerUtil; +import io.grpc.protobuf.services.HealthCheckingLoadBalancerUtil; import java.util.Map; /** diff --git a/services/src/main/java/io/grpc/protobuf/services/package-info.java b/services/src/main/java/io/grpc/protobuf/services/package-info.java new file mode 100644 index 00000000000..6fb88cc4756 --- /dev/null +++ b/services/src/main/java/io/grpc/protobuf/services/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright 2020 The gRPC Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Service definitions and utilities with protobuf dependency for the pre-defined gRPC services. + */ +package io.grpc.protobuf.services; diff --git a/services/src/main/java/io/grpc/services/AdminInterface.java b/services/src/main/java/io/grpc/services/AdminInterface.java index 32c467ba63c..2288d844fd1 100644 --- a/services/src/main/java/io/grpc/services/AdminInterface.java +++ b/services/src/main/java/io/grpc/services/AdminInterface.java @@ -19,6 +19,7 @@ import io.grpc.BindableService; import io.grpc.ExperimentalApi; import io.grpc.ServerServiceDefinition; +import io.grpc.protobuf.services.ChannelzService; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; diff --git a/services/src/main/java/io/grpc/services/BinaryLogs.java b/services/src/main/java/io/grpc/services/BinaryLogs.java index fc2d8d84ad1..e4831dc5bfa 100644 --- a/services/src/main/java/io/grpc/services/BinaryLogs.java +++ b/services/src/main/java/io/grpc/services/BinaryLogs.java @@ -18,8 +18,13 @@ import io.grpc.BinaryLog; import io.grpc.ExperimentalApi; +import io.grpc.protobuf.services.BinaryLogSink; import java.io.IOException; +/** + * @deprecated Use {@link io.grpc.protobuf.services.BinaryLogs} instead. + */ +@Deprecated @ExperimentalApi("https://github.com/grpc/grpc-java/issues/4017") public final class BinaryLogs { /** @@ -28,7 +33,7 @@ public final class BinaryLogs { * up. */ public static BinaryLog createBinaryLog() throws IOException { - return new BinaryLogProviderImpl(); + return io.grpc.protobuf.services.BinaryLogs.createBinaryLog(); } /** @@ -36,7 +41,7 @@ public static BinaryLog createBinaryLog() throws IOException { */ @Deprecated public static BinaryLog createBinaryLog(BinaryLogSink sink) throws IOException { - return new BinaryLogProviderImpl(sink); + return io.grpc.protobuf.services.BinaryLogs.createBinaryLog(sink); } /** @@ -46,7 +51,7 @@ public static BinaryLog createBinaryLog(BinaryLogSink sink) throws IOException { * A16-binary-logging. */ public static BinaryLog createBinaryLog(BinaryLogSink sink, String configStr) throws IOException { - return new BinaryLogProviderImpl(sink, configStr); + return io.grpc.protobuf.services.BinaryLogs.createBinaryLog(sink, configStr); } private BinaryLogs() {} diff --git a/services/src/main/java/io/grpc/services/ChannelzService.java b/services/src/main/java/io/grpc/services/ChannelzService.java index 8032d0ad222..e8ef2bb8a9a 100644 --- a/services/src/main/java/io/grpc/services/ChannelzService.java +++ b/services/src/main/java/io/grpc/services/ChannelzService.java @@ -16,17 +16,7 @@ package io.grpc.services; -import com.google.common.annotations.VisibleForTesting; import io.grpc.ExperimentalApi; -import io.grpc.InternalChannelz; -import io.grpc.InternalChannelz.ChannelStats; -import io.grpc.InternalChannelz.ServerList; -import io.grpc.InternalChannelz.ServerSocketsList; -import io.grpc.InternalChannelz.ServerStats; -import io.grpc.InternalChannelz.SocketStats; -import io.grpc.InternalInstrumented; -import io.grpc.Status; -import io.grpc.StatusRuntimeException; import io.grpc.channelz.v1.ChannelzGrpc; import io.grpc.channelz.v1.GetChannelRequest; import io.grpc.channelz.v1.GetChannelResponse; @@ -46,189 +36,70 @@ /** * The channelz service provides stats about a running gRPC process. + * + * @deprecated Use {@link io.grpc.protobuf.services.ChannelzService} instead. */ +@Deprecated @ExperimentalApi("https://github.com/grpc/grpc-java/issues/4206") public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase { - private final InternalChannelz channelz; - private final int maxPageSize; + private final io.grpc.protobuf.services.ChannelzService delegate; /** * Creates an instance. */ public static ChannelzService newInstance(int maxPageSize) { - return new ChannelzService(InternalChannelz.instance(), maxPageSize); + return new ChannelzService(maxPageSize); } - @VisibleForTesting - ChannelzService(InternalChannelz channelz, int maxPageSize) { - this.channelz = channelz; - this.maxPageSize = maxPageSize; + private ChannelzService(int maxPageSize) { + delegate = io.grpc.protobuf.services.ChannelzService.newInstance(maxPageSize); } /** Returns top level channel aka {@link io.grpc.ManagedChannel}. */ @Override public void getTopChannels( GetTopChannelsRequest request, StreamObserver responseObserver) { - InternalChannelz.RootChannelList rootChannels - = channelz.getRootChannels(request.getStartChannelId(), maxPageSize); - - GetTopChannelsResponse resp; - try { - resp = ChannelzProtoUtil.toGetTopChannelResponse(rootChannels); - } catch (StatusRuntimeException e) { - responseObserver.onError(e); - return; - } - - responseObserver.onNext(resp); - responseObserver.onCompleted(); + delegate.getTopChannels(request, responseObserver); } /** Returns a top level channel aka {@link io.grpc.ManagedChannel}. */ @Override public void getChannel( GetChannelRequest request, StreamObserver responseObserver) { - InternalInstrumented s = channelz.getRootChannel(request.getChannelId()); - if (s == null) { - responseObserver.onError( - Status.NOT_FOUND.withDescription("Can't find channel " + request.getChannelId()) - .asRuntimeException()); - return; - } - - GetChannelResponse resp; - try { - resp = GetChannelResponse - .newBuilder() - .setChannel(ChannelzProtoUtil.toChannel(s)) - .build(); - } catch (StatusRuntimeException e) { - responseObserver.onError(e); - return; - } - - responseObserver.onNext(resp); - responseObserver.onCompleted(); + delegate.getChannel(request, responseObserver); } /** Returns servers. */ @Override public void getServers( GetServersRequest request, StreamObserver responseObserver) { - ServerList servers = channelz.getServers(request.getStartServerId(), maxPageSize); - - GetServersResponse resp; - try { - resp = ChannelzProtoUtil.toGetServersResponse(servers); - } catch (StatusRuntimeException e) { - responseObserver.onError(e); - return; - } - - responseObserver.onNext(resp); - responseObserver.onCompleted(); + delegate.getServers(request, responseObserver); } /** Returns a server. */ @Override public void getServer( GetServerRequest request, StreamObserver responseObserver) { - InternalInstrumented s = channelz.getServer(request.getServerId()); - if (s == null) { - responseObserver.onError( - Status.NOT_FOUND.withDescription("Can't find server " + request.getServerId()) - .asRuntimeException()); - return; - } - - GetServerResponse resp; - try { - resp = GetServerResponse - .newBuilder() - .setServer(ChannelzProtoUtil.toServer(s)) - .build(); - } catch (StatusRuntimeException e) { - responseObserver.onError(e); - return; - } - - responseObserver.onNext(resp); - responseObserver.onCompleted(); + delegate.getServer(request, responseObserver); } /** Returns a subchannel. */ @Override public void getSubchannel( GetSubchannelRequest request, StreamObserver responseObserver) { - InternalInstrumented s = channelz.getSubchannel(request.getSubchannelId()); - if (s == null) { - responseObserver.onError( - Status.NOT_FOUND.withDescription("Can't find subchannel " + request.getSubchannelId()) - .asRuntimeException()); - return; - } - - GetSubchannelResponse resp; - try { - resp = GetSubchannelResponse - .newBuilder() - .setSubchannel(ChannelzProtoUtil.toSubchannel(s)) - .build(); - } catch (StatusRuntimeException e) { - responseObserver.onError(e); - return; - } - - responseObserver.onNext(resp); - responseObserver.onCompleted(); + delegate.getSubchannel(request, responseObserver); } /** Returns a socket. */ @Override public void getSocket( GetSocketRequest request, StreamObserver responseObserver) { - InternalInstrumented s = channelz.getSocket(request.getSocketId()); - if (s == null) { - responseObserver.onError( - Status.NOT_FOUND.withDescription("Can't find socket " + request.getSocketId()) - .asRuntimeException()); - return; - } - - GetSocketResponse resp; - try { - resp = - GetSocketResponse.newBuilder().setSocket(ChannelzProtoUtil.toSocket(s)).build(); - } catch (StatusRuntimeException e) { - responseObserver.onError(e); - return; - } - - responseObserver.onNext(resp); - responseObserver.onCompleted(); + delegate.getSocket(request, responseObserver); } @Override public void getServerSockets( GetServerSocketsRequest request, StreamObserver responseObserver) { - ServerSocketsList serverSockets - = channelz.getServerSockets(request.getServerId(), request.getStartSocketId(), maxPageSize); - if (serverSockets == null) { - responseObserver.onError( - Status.NOT_FOUND.withDescription("Can't find server " + request.getServerId()) - .asRuntimeException()); - return; - } - - GetServerSocketsResponse resp; - try { - resp = ChannelzProtoUtil.toGetServerSocketsResponse(serverSockets); - } catch (StatusRuntimeException e) { - responseObserver.onError(e); - return; - } - - responseObserver.onNext(resp); - responseObserver.onCompleted(); + delegate.getServerSockets(request, responseObserver); } } diff --git a/services/src/main/java/io/grpc/services/HealthStatusManager.java b/services/src/main/java/io/grpc/services/HealthStatusManager.java index 1edcb53c77f..7bcaf52da52 100644 --- a/services/src/main/java/io/grpc/services/HealthStatusManager.java +++ b/services/src/main/java/io/grpc/services/HealthStatusManager.java @@ -16,8 +16,6 @@ package io.grpc.services; -import static com.google.common.base.Preconditions.checkNotNull; - import io.grpc.BindableService; import io.grpc.health.v1.HealthCheckResponse.ServingStatus; @@ -29,29 +27,33 @@ * *

The default, empty-string, service name, {@link #SERVICE_NAME_ALL_SERVICES}, is initialized to * {@link ServingStatus#SERVING}. + * + * @deprecated Use {@link io.grpc.protobuf.services.HealthStatusManager} instead. */ +@Deprecated @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/4696") public final class HealthStatusManager { /** * The special "service name" that represent all services on a GRPC server. It is an empty * string. */ - public static final String SERVICE_NAME_ALL_SERVICES = ""; + public static final String SERVICE_NAME_ALL_SERVICES = + io.grpc.protobuf.services.HealthStatusManager.SERVICE_NAME_ALL_SERVICES; - private final HealthServiceImpl healthService; + private io.grpc.protobuf.services.HealthStatusManager delegate; /** * Creates a new health service instance. */ public HealthStatusManager() { - healthService = new HealthServiceImpl(); + delegate = new io.grpc.protobuf.services.HealthStatusManager(); } /** * Gets the health check service created in the constructor. */ public BindableService getHealthService() { - return healthService; + return delegate.getHealthService(); } /** @@ -63,8 +65,7 @@ public BindableService getHealthService() { * {@link ServingStatus#NOT_SERVING} and {@link ServingStatus#UNKNOWN}. */ public void setStatus(String service, ServingStatus status) { - checkNotNull(status, "status"); - healthService.setStatus(service, status); + delegate.setStatus(service, status); } /** @@ -75,7 +76,7 @@ public void setStatus(String service, ServingStatus status) { * It can also be an empty String {@code ""} per the gRPC specification. */ public void clearStatus(String service) { - healthService.clearStatus(service); + delegate.clearStatus(service); } /** @@ -84,6 +85,6 @@ public void clearStatus(String service) { * shutdown as a way to indicate that clients should redirect their traffic elsewhere. */ public void enterTerminalState() { - healthService.enterTerminalState(); + delegate.enterTerminalState(); } } diff --git a/services/src/main/java/io/grpc/services/package-info.java b/services/src/main/java/io/grpc/services/package-info.java index 3b5b639361c..7e21ae519bb 100644 --- a/services/src/main/java/io/grpc/services/package-info.java +++ b/services/src/main/java/io/grpc/services/package-info.java @@ -14,6 +14,8 @@ * limitations under the License. */ +// TODO(chengyuanzhang): update description after deleting classes with protobuf dependency that +// have already been moved. /** * Service definitions and utilities for the pre-defined gRPC services. */ diff --git a/services/src/main/resources/META-INF/services/io.grpc.LoadBalancerProvider b/services/src/main/resources/META-INF/services/io.grpc.LoadBalancerProvider index bbc2a4902df..d3e5f85ffbb 100644 --- a/services/src/main/resources/META-INF/services/io.grpc.LoadBalancerProvider +++ b/services/src/main/resources/META-INF/services/io.grpc.LoadBalancerProvider @@ -1 +1 @@ -io.grpc.services.internal.HealthCheckingRoundRobinLoadBalancerProvider +io.grpc.protobuf.services.internal.HealthCheckingRoundRobinLoadBalancerProvider diff --git a/services/src/test/java/io/grpc/services/BinaryLogProviderImplTest.java b/services/src/test/java/io/grpc/protobuf/services/BinaryLogProviderImplTest.java similarity index 98% rename from services/src/test/java/io/grpc/services/BinaryLogProviderImplTest.java rename to services/src/test/java/io/grpc/protobuf/services/BinaryLogProviderImplTest.java index 238f5fbc0ef..cab7dcf05e5 100644 --- a/services/src/test/java/io/grpc/services/BinaryLogProviderImplTest.java +++ b/services/src/test/java/io/grpc/protobuf/services/BinaryLogProviderImplTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import static org.junit.Assert.assertNull; import static org.mockito.Mockito.mock; diff --git a/services/src/test/java/io/grpc/services/BinaryLogProviderTest.java b/services/src/test/java/io/grpc/protobuf/services/BinaryLogProviderTest.java similarity index 99% rename from services/src/test/java/io/grpc/services/BinaryLogProviderTest.java rename to services/src/test/java/io/grpc/protobuf/services/BinaryLogProviderTest.java index 6905cbb603d..53f361c83ec 100644 --- a/services/src/test/java/io/grpc/services/BinaryLogProviderTest.java +++ b/services/src/test/java/io/grpc/protobuf/services/BinaryLogProviderTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import static com.google.common.base.Charsets.UTF_8; import static com.google.common.truth.Truth.assertThat; diff --git a/services/src/test/java/io/grpc/services/BinlogHelperTest.java b/services/src/test/java/io/grpc/protobuf/services/BinlogHelperTest.java similarity index 99% rename from services/src/test/java/io/grpc/services/BinlogHelperTest.java rename to services/src/test/java/io/grpc/protobuf/services/BinlogHelperTest.java index f7d0d40726c..15c1444fa42 100644 --- a/services/src/test/java/io/grpc/services/BinlogHelperTest.java +++ b/services/src/test/java/io/grpc/protobuf/services/BinlogHelperTest.java @@ -14,12 +14,12 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import static com.google.common.truth.Truth.assertThat; -import static io.grpc.services.BinaryLogProvider.BYTEARRAY_MARSHALLER; -import static io.grpc.services.BinlogHelper.createMetadataProto; -import static io.grpc.services.BinlogHelper.getPeerSocket; +import static io.grpc.protobuf.services.BinaryLogProvider.BYTEARRAY_MARSHALLER; +import static io.grpc.protobuf.services.BinlogHelper.createMetadataProto; +import static io.grpc.protobuf.services.BinlogHelper.getPeerSocket; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -70,11 +70,11 @@ import io.grpc.internal.NoopClientCall; import io.grpc.internal.NoopServerCall; import io.grpc.protobuf.StatusProto; -import io.grpc.services.BinlogHelper.FactoryImpl; -import io.grpc.services.BinlogHelper.MaybeTruncated; -import io.grpc.services.BinlogHelper.SinkWriter; -import io.grpc.services.BinlogHelper.SinkWriterImpl; -import io.grpc.services.BinlogHelper.TimeProvider; +import io.grpc.protobuf.services.BinlogHelper.FactoryImpl; +import io.grpc.protobuf.services.BinlogHelper.MaybeTruncated; +import io.grpc.protobuf.services.BinlogHelper.SinkWriter; +import io.grpc.protobuf.services.BinlogHelper.SinkWriterImpl; +import io.grpc.protobuf.services.BinlogHelper.TimeProvider; import io.netty.channel.unix.DomainSocketAddress; import java.net.InetAddress; import java.net.InetSocketAddress; diff --git a/services/src/test/java/io/grpc/services/ChannelzProtoUtilTest.java b/services/src/test/java/io/grpc/protobuf/services/ChannelzProtoUtilTest.java similarity index 99% rename from services/src/test/java/io/grpc/services/ChannelzProtoUtilTest.java rename to services/src/test/java/io/grpc/protobuf/services/ChannelzProtoUtilTest.java index 45dd8056ddf..4098885fd0d 100644 --- a/services/src/test/java/io/grpc/services/ChannelzProtoUtilTest.java +++ b/services/src/test/java/io/grpc/protobuf/services/ChannelzProtoUtilTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import static com.google.common.truth.Truth.assertThat; import static io.grpc.InternalChannelz.id; @@ -74,10 +74,10 @@ import io.grpc.channelz.v1.SocketRef; import io.grpc.channelz.v1.Subchannel; import io.grpc.channelz.v1.SubchannelRef; -import io.grpc.services.ChannelzTestHelper.TestChannel; -import io.grpc.services.ChannelzTestHelper.TestListenSocket; -import io.grpc.services.ChannelzTestHelper.TestServer; -import io.grpc.services.ChannelzTestHelper.TestSocket; +import io.grpc.protobuf.services.ChannelzTestHelper.TestChannel; +import io.grpc.protobuf.services.ChannelzTestHelper.TestListenSocket; +import io.grpc.protobuf.services.ChannelzTestHelper.TestServer; +import io.grpc.protobuf.services.ChannelzTestHelper.TestSocket; import io.netty.channel.unix.DomainSocketAddress; import java.net.Inet4Address; import java.net.InetSocketAddress; diff --git a/services/src/test/java/io/grpc/services/ChannelzServiceTest.java b/services/src/test/java/io/grpc/protobuf/services/ChannelzServiceTest.java similarity index 97% rename from services/src/test/java/io/grpc/services/ChannelzServiceTest.java rename to services/src/test/java/io/grpc/protobuf/services/ChannelzServiceTest.java index 54d84358bdd..bb520a16dec 100644 --- a/services/src/test/java/io/grpc/services/ChannelzServiceTest.java +++ b/services/src/test/java/io/grpc/protobuf/services/ChannelzServiceTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import static com.google.common.truth.Truth.assertWithMessage; import static org.junit.Assert.assertEquals; @@ -35,9 +35,9 @@ import io.grpc.channelz.v1.GetSubchannelResponse; import io.grpc.channelz.v1.GetTopChannelsRequest; import io.grpc.channelz.v1.GetTopChannelsResponse; -import io.grpc.services.ChannelzTestHelper.TestChannel; -import io.grpc.services.ChannelzTestHelper.TestServer; -import io.grpc.services.ChannelzTestHelper.TestSocket; +import io.grpc.protobuf.services.ChannelzTestHelper.TestChannel; +import io.grpc.protobuf.services.ChannelzTestHelper.TestServer; +import io.grpc.protobuf.services.ChannelzTestHelper.TestSocket; import io.grpc.stub.StreamObserver; import java.util.concurrent.ExecutionException; import org.junit.Test; diff --git a/services/src/test/java/io/grpc/services/ChannelzTestHelper.java b/services/src/test/java/io/grpc/protobuf/services/ChannelzTestHelper.java similarity index 99% rename from services/src/test/java/io/grpc/services/ChannelzTestHelper.java rename to services/src/test/java/io/grpc/protobuf/services/ChannelzTestHelper.java index 6bd8e8bceb5..0b93a8d9271 100644 --- a/services/src/test/java/io/grpc/services/ChannelzTestHelper.java +++ b/services/src/test/java/io/grpc/protobuf/services/ChannelzTestHelper.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import com.google.common.base.MoreObjects; import com.google.common.util.concurrent.ListenableFuture; diff --git a/services/src/test/java/io/grpc/services/HealthCheckingLoadBalancerFactoryTest.java b/services/src/test/java/io/grpc/protobuf/services/HealthCheckingLoadBalancerFactoryTest.java similarity index 99% rename from services/src/test/java/io/grpc/services/HealthCheckingLoadBalancerFactoryTest.java rename to services/src/test/java/io/grpc/protobuf/services/HealthCheckingLoadBalancerFactoryTest.java index fc9b3f62ecf..c1e11941a4b 100644 --- a/services/src/test/java/io/grpc/services/HealthCheckingLoadBalancerFactoryTest.java +++ b/services/src/test/java/io/grpc/protobuf/services/HealthCheckingLoadBalancerFactoryTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; @@ -68,7 +68,7 @@ import io.grpc.internal.BackoffPolicy; import io.grpc.internal.FakeClock; import io.grpc.internal.ServiceConfigUtil; -import io.grpc.services.HealthCheckingLoadBalancerFactory.SubchannelImpl; +import io.grpc.protobuf.services.HealthCheckingLoadBalancerFactory.SubchannelImpl; import io.grpc.stub.StreamObserver; import java.net.SocketAddress; import java.text.MessageFormat; diff --git a/services/src/test/java/io/grpc/services/HealthStatusManagerTest.java b/services/src/test/java/io/grpc/protobuf/services/HealthStatusManagerTest.java similarity index 99% rename from services/src/test/java/io/grpc/services/HealthStatusManagerTest.java rename to services/src/test/java/io/grpc/protobuf/services/HealthStatusManagerTest.java index fe04419656f..5c5b30f336d 100644 --- a/services/src/test/java/io/grpc/services/HealthStatusManagerTest.java +++ b/services/src/test/java/io/grpc/protobuf/services/HealthStatusManagerTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; diff --git a/services/src/test/java/io/grpc/services/TempFileSinkTest.java b/services/src/test/java/io/grpc/protobuf/services/TempFileSinkTest.java similarity index 94% rename from services/src/test/java/io/grpc/services/TempFileSinkTest.java rename to services/src/test/java/io/grpc/protobuf/services/TempFileSinkTest.java index f47f10569d6..e3b662a8588 100644 --- a/services/src/test/java/io/grpc/services/TempFileSinkTest.java +++ b/services/src/test/java/io/grpc/protobuf/services/TempFileSinkTest.java @@ -14,11 +14,12 @@ * limitations under the License. */ -package io.grpc.services; +package io.grpc.protobuf.services; import static org.junit.Assert.assertEquals; import io.grpc.binarylog.v1.GrpcLogEntry; +import io.grpc.protobuf.services.TempFileSink; import java.io.DataInputStream; import java.io.FileInputStream; import java.io.IOException; @@ -27,7 +28,7 @@ import org.junit.runners.JUnit4; /** - * Tests for {@link io.grpc.services.TempFileSink}. + * Tests for {@link TempFileSink}. */ @RunWith(JUnit4.class) public class TempFileSinkTest { diff --git a/services/src/test/java/io/grpc/services/internal/HealthCheckingRoundRobinLoadBalancerProviderTest.java b/services/src/test/java/io/grpc/protobuf/services/internal/HealthCheckingRoundRobinLoadBalancerProviderTest.java similarity index 94% rename from services/src/test/java/io/grpc/services/internal/HealthCheckingRoundRobinLoadBalancerProviderTest.java rename to services/src/test/java/io/grpc/protobuf/services/internal/HealthCheckingRoundRobinLoadBalancerProviderTest.java index 1c122967d9a..470670f2060 100644 --- a/services/src/test/java/io/grpc/services/internal/HealthCheckingRoundRobinLoadBalancerProviderTest.java +++ b/services/src/test/java/io/grpc/protobuf/services/internal/HealthCheckingRoundRobinLoadBalancerProviderTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.grpc.services.internal; +package io.grpc.protobuf.services.internal; import static com.google.common.truth.Truth.assertThat; @@ -25,7 +25,7 @@ import org.junit.runners.JUnit4; /** - * Tests for {@link InternalHealthCheckingRoundRobinLoadBalancerProvider}. + * Tests for {@link HealthCheckingRoundRobinLoadBalancerProvider}. */ @RunWith(JUnit4.class) public class HealthCheckingRoundRobinLoadBalancerProviderTest { diff --git a/services/src/test/java/io/grpc/services/CallMetricRecorderTest.java b/services/src/test/java/io/grpc/services/CallMetricRecorderTest.java index db6b294bf3a..fe7a9c54df8 100644 --- a/services/src/test/java/io/grpc/services/CallMetricRecorderTest.java +++ b/services/src/test/java/io/grpc/services/CallMetricRecorderTest.java @@ -24,7 +24,7 @@ import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -/** Tests for {@link BinlogHelper}. */ +/** Tests for {@link CallMetricRecorder}. */ @RunWith(JUnit4.class) public class CallMetricRecorderTest {