aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzpencer <spencerfang@google.com>2018-05-23 20:49:09 -0700
committerGitHub <noreply@github.com>2018-05-23 20:49:09 -0700
commit27439876f28858b3293bc0f790d091b5eba36245 (patch)
treeed0cd72590a8841b333faae4b58c0def1a83c537
parent4388d901c8f2df8003af77c906362df93ad9a633 (diff)
downloadgrpc-grpc-java-27439876f28858b3293bc0f790d091b5eba36245.tar.gz
services,core: make BinaryLogSink visible, add setter (#4503)
* make BinaryLogSink public * add io.grpc.BinaryLog to server/channel builder
-rw-r--r--core/src/main/java/io/grpc/ForwardingChannelBuilder.java6
-rw-r--r--core/src/main/java/io/grpc/ManagedChannelBuilder.java13
-rw-r--r--core/src/main/java/io/grpc/ServerBuilder.java13
-rw-r--r--core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java6
-rw-r--r--core/src/main/java/io/grpc/internal/AbstractServerImplBuilder.java6
-rw-r--r--services/src/main/java/io/grpc/services/BinaryLogProviderImpl.java4
-rw-r--r--services/src/main/java/io/grpc/services/BinaryLogSink.java7
-rw-r--r--services/src/main/java/io/grpc/services/BinaryLogs.java8
-rw-r--r--services/src/main/java/io/grpc/services/CensusBinaryLogProvider.java4
9 files changed, 66 insertions, 1 deletions
diff --git a/core/src/main/java/io/grpc/ForwardingChannelBuilder.java b/core/src/main/java/io/grpc/ForwardingChannelBuilder.java
index 08de130ea..0fbbceba9 100644
--- a/core/src/main/java/io/grpc/ForwardingChannelBuilder.java
+++ b/core/src/main/java/io/grpc/ForwardingChannelBuilder.java
@@ -211,6 +211,12 @@ public abstract class ForwardingChannelBuilder<T extends ForwardingChannelBuilde
return thisT();
}
+ @Override
+ public T setBinaryLog(BinaryLog binaryLog) {
+ delegate().setBinaryLog(binaryLog);
+ return thisT();
+ }
+
/**
* Returns the {@link ManagedChannel} built by the delegate by default. Overriding method can
* return different value.
diff --git a/core/src/main/java/io/grpc/ManagedChannelBuilder.java b/core/src/main/java/io/grpc/ManagedChannelBuilder.java
index 73975c1f4..1e3728b21 100644
--- a/core/src/main/java/io/grpc/ManagedChannelBuilder.java
+++ b/core/src/main/java/io/grpc/ManagedChannelBuilder.java
@@ -451,6 +451,19 @@ public abstract class ManagedChannelBuilder<T extends ManagedChannelBuilder<T>>
}
/**
+ * Sets the BinaryLog object that this channel should log to. The channel does not take
+ * ownership of the object, and users are responsible for calling {@link BinaryLog#close()}.
+ *
+ * @param binaryLog the object to provide logging.
+ * @return this
+ * @since 1.13.0
+ */
+ @ExperimentalApi("https://github.com/grpc/grpc-java/issues/4017")
+ public T setBinaryLog(BinaryLog binaryLog) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
* Builds a channel using the given parameters.
*
* @since 1.0.0
diff --git a/core/src/main/java/io/grpc/ServerBuilder.java b/core/src/main/java/io/grpc/ServerBuilder.java
index 742828307..61238065e 100644
--- a/core/src/main/java/io/grpc/ServerBuilder.java
+++ b/core/src/main/java/io/grpc/ServerBuilder.java
@@ -226,6 +226,19 @@ public abstract class ServerBuilder<T extends ServerBuilder<T>> {
}
/**
+ * Sets the BinaryLog object that this server should log to. The channel does not take
+ * ownership of the object, and users are responsible for calling {@link BinaryLog#close()}.
+ *
+ * @param binaryLog the object to provide logging.
+ * @return this
+ * @since 1.13.0
+ */
+ @ExperimentalApi("https://github.com/grpc/grpc-java/issues/4017")
+ public T setBinaryLog(BinaryLog binaryLog) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
* Builds a server using the given parameters.
*
* <p>The returned service will not been started or be bound a port. You will need to start it
diff --git a/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java b/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java
index 9e4e6acdd..3540e0e50 100644
--- a/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java
+++ b/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java
@@ -331,6 +331,12 @@ public abstract class AbstractManagedChannelImplBuilder
return thisT();
}
+ @Override
+ public final T setBinaryLog(BinaryLog binlog) {
+ this.binlog = binlog;
+ return thisT();
+ }
+
/**
* Override the default stats implementation.
*/
diff --git a/core/src/main/java/io/grpc/internal/AbstractServerImplBuilder.java b/core/src/main/java/io/grpc/internal/AbstractServerImplBuilder.java
index 7419af710..9a87f0f53 100644
--- a/core/src/main/java/io/grpc/internal/AbstractServerImplBuilder.java
+++ b/core/src/main/java/io/grpc/internal/AbstractServerImplBuilder.java
@@ -199,6 +199,12 @@ public abstract class AbstractServerImplBuilder<T extends AbstractServerImplBuil
return thisT();
}
+ @Override
+ public final T setBinaryLog(BinaryLog binaryLog) {
+ this.binlog = binaryLog;
+ return thisT();
+ }
+
/**
* Override the default stats implementation.
*/
diff --git a/services/src/main/java/io/grpc/services/BinaryLogProviderImpl.java b/services/src/main/java/io/grpc/services/BinaryLogProviderImpl.java
index 55109bc92..420281360 100644
--- a/services/src/main/java/io/grpc/services/BinaryLogProviderImpl.java
+++ b/services/src/main/java/io/grpc/services/BinaryLogProviderImpl.java
@@ -36,6 +36,10 @@ class BinaryLogProviderImpl extends BinaryLogProvider {
this(new TempFileSink(), System.getenv("GRPC_BINARY_LOG_CONFIG"));
}
+ public BinaryLogProviderImpl(BinaryLogSink sink) throws IOException {
+ this(sink, System.getenv("GRPC_BINARY_LOG_CONFIG"));
+ }
+
/**
* Creates an instance.
* @param sink ownership is transferred to this class.
diff --git a/services/src/main/java/io/grpc/services/BinaryLogSink.java b/services/src/main/java/io/grpc/services/BinaryLogSink.java
index ef5be01da..1c1c193e4 100644
--- a/services/src/main/java/io/grpc/services/BinaryLogSink.java
+++ b/services/src/main/java/io/grpc/services/BinaryLogSink.java
@@ -17,9 +17,14 @@
package io.grpc.services;
import com.google.protobuf.MessageLite;
+import io.grpc.ExperimentalApi;
import java.io.Closeable;
-interface BinaryLogSink extends Closeable {
+/**
+ * A class that accepts binary log messages.
+ */
+@ExperimentalApi("https://github.com/grpc/grpc-java/issues/4017")
+public interface BinaryLogSink extends Closeable {
/**
* Writes the {@code message} to the destination.
*/
diff --git a/services/src/main/java/io/grpc/services/BinaryLogs.java b/services/src/main/java/io/grpc/services/BinaryLogs.java
index b72cad6c1..310ec3cf9 100644
--- a/services/src/main/java/io/grpc/services/BinaryLogs.java
+++ b/services/src/main/java/io/grpc/services/BinaryLogs.java
@@ -26,9 +26,17 @@ public final class BinaryLogs {
return new BinaryLogProviderImpl();
}
+ public static BinaryLog createBinaryLog(BinaryLogSink sink) throws IOException {
+ return new BinaryLogProviderImpl(sink);
+ }
+
public static BinaryLog createCensusBinaryLog() throws IOException {
return new CensusBinaryLogProvider();
}
+ public static BinaryLog createCensusBinaryLog(BinaryLogSink sink) throws IOException {
+ return new CensusBinaryLogProvider(sink);
+ }
+
private BinaryLogs() {}
}
diff --git a/services/src/main/java/io/grpc/services/CensusBinaryLogProvider.java b/services/src/main/java/io/grpc/services/CensusBinaryLogProvider.java
index db6a0b62d..d6fb7fae8 100644
--- a/services/src/main/java/io/grpc/services/CensusBinaryLogProvider.java
+++ b/services/src/main/java/io/grpc/services/CensusBinaryLogProvider.java
@@ -28,6 +28,10 @@ final class CensusBinaryLogProvider extends BinaryLogProviderImpl {
super();
}
+ public CensusBinaryLogProvider(BinaryLogSink sink) throws IOException {
+ super(sink);
+ }
+
CensusBinaryLogProvider(BinaryLogSink sink, String configStr) throws IOException {
super(sink, configStr);
}