From 671783f912539b41450117a6c81e1009fde5471d Mon Sep 17 00:00:00 2001 From: zpencer Date: Wed, 6 Sep 2017 07:30:58 -0700 Subject: [PATCH] protobuf-nano: use existing class IoUtils for toByteArray (#3437) protobuf-nano: use existing class IoUtils and force protobuf-nano to use exact version of internal --- build.gradle | 2 +- .../java/io/grpc/protobuf/nano/NanoUtils.java | 30 ++----------------- 2 files changed, 3 insertions(+), 29 deletions(-) diff --git a/build.gradle b/build.gradle index c1f5c9dcd1..f32bd5d4bf 100644 --- a/build.gradle +++ b/build.gradle @@ -344,7 +344,7 @@ subprojects { } } if (!(project.name in - ["grpc-stub", "grpc-protobuf", "grpc-protobuf-lite", "grpc-protobuf-nano", "grpc-thrift"])) { + ["grpc-stub", "grpc-protobuf", "grpc-protobuf-lite", "grpc-thrift"])) { def core = pom.dependencies.find {dep -> dep.artifactId == 'grpc-core'} if (core != null) { // Depend on specific version of grpc-core because internal package is unstable diff --git a/protobuf-nano/src/main/java/io/grpc/protobuf/nano/NanoUtils.java b/protobuf-nano/src/main/java/io/grpc/protobuf/nano/NanoUtils.java index a1c10a6c72..35648c9d68 100644 --- a/protobuf-nano/src/main/java/io/grpc/protobuf/nano/NanoUtils.java +++ b/protobuf-nano/src/main/java/io/grpc/protobuf/nano/NanoUtils.java @@ -16,16 +16,14 @@ package io.grpc.protobuf.nano; -import static com.google.common.base.Preconditions.checkNotNull; import com.google.protobuf.nano.CodedInputByteBufferNano; import com.google.protobuf.nano.MessageNano; import io.grpc.MethodDescriptor.Marshaller; import io.grpc.Status; -import java.io.ByteArrayOutputStream; +import io.grpc.internal.IoUtils; import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; /** * Utility methods for using nano proto with grpc. @@ -50,7 +48,7 @@ public class NanoUtils { try { // TODO(simonma): Investigate whether we can do 0-copy here. CodedInputByteBufferNano input = - CodedInputByteBufferNano.newInstance(toByteArray(stream)); + CodedInputByteBufferNano.newInstance(IoUtils.toByteArray(stream)); input.setSizeLimit(Integer.MAX_VALUE); T message = factory.newInstance(); message.mergeFrom(input); @@ -62,28 +60,4 @@ public class NanoUtils { } }; } - - // Copied from guava com.google.common.io.ByteStreams because its API is unstable (beta) - private static byte[] toByteArray(InputStream in) throws IOException { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - copy(in, out); - return out.toByteArray(); - } - - // Copied from guava com.google.common.io.ByteStreams because its API is unstable (beta) - private static long copy(InputStream from, OutputStream to) throws IOException { - checkNotNull(from); - checkNotNull(to); - byte[] buf = new byte[BUF_SIZE]; - long total = 0; - while (true) { - int r = from.read(buf); - if (r == -1) { - break; - } - to.write(buf, 0, r); - total += r; - } - return total; - } }