From 134c7852b2308415aea0334289e8a9f73c5ae67b Mon Sep 17 00:00:00 2001 From: Adele Okoubo Date: Tue, 15 Sep 2020 13:49:26 -0400 Subject: [PATCH] Change distribution value type to ByteString --- .../main/java/com/spotify/ffwd/v1/Metric.java | 5 ++--- .../src/main/java/com/spotify/ffwd/v1/Value.java | 16 ++++++++-------- .../java/com/spotify/ffwd/v1/MetricTest.java | 3 ++- .../test/java/com/spotify/ffwd/v1/ValueTest.java | 16 +++++++++------- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/ffwd-client/src/main/java/com/spotify/ffwd/v1/Metric.java b/ffwd-client/src/main/java/com/spotify/ffwd/v1/Metric.java index 8f1acf4..ef31de2 100644 --- a/ffwd-client/src/main/java/com/spotify/ffwd/v1/Metric.java +++ b/ffwd-client/src/main/java/com/spotify/ffwd/v1/Metric.java @@ -20,7 +20,6 @@ package com.spotify.ffwd.v1; -import com.google.protobuf.ByteString; import com.spotify.ffwd.protocol1.Protocol1; import java.util.ArrayList; import java.util.HashMap; @@ -132,8 +131,8 @@ public byte[] serialize() { builder.setValue(Protocol1.Value.newBuilder().setDoubleValue(doubleValue.getValue())); } else if (value instanceof Value.DistributionValue) { Value.DistributionValue distributionValue = (Value.DistributionValue) value; - ByteString byteString = ByteString.copyFrom(distributionValue.getValue().array()); - builder.setValue(Protocol1.Value.newBuilder().setDistributionValue(byteString)); + builder.setValue(Protocol1.Value.newBuilder() + .setDistributionValue(distributionValue.getValue())); } else { throw new IllegalArgumentException("Failed to identify distribution type : [" + value + "]"); diff --git a/ffwd-client/src/main/java/com/spotify/ffwd/v1/Value.java b/ffwd-client/src/main/java/com/spotify/ffwd/v1/Value.java index 23ae869..9a1be3b 100644 --- a/ffwd-client/src/main/java/com/spotify/ffwd/v1/Value.java +++ b/ffwd-client/src/main/java/com/spotify/ffwd/v1/Value.java @@ -21,7 +21,7 @@ package com.spotify.ffwd.v1; import com.google.auto.value.AutoValue; -import java.nio.ByteBuffer; +import com.google.protobuf.ByteString; import java.util.function.Function; @@ -40,14 +40,14 @@ public static Value doubleValue(double value) { return DoubleValue.create(value); } - public static Value distributionValue(ByteBuffer byteBuffer) { - return DistributionValue.create(byteBuffer); + public static Value distributionValue(ByteString byteString) { + return DistributionValue.create(byteString); } public abstract T match( Function doubleFunction, - Function distributionFunction, + Function distributionFunction, Function defaultFunction); @@ -59,7 +59,7 @@ abstract static class DoubleValue extends Value { @Override public final T match( Function doubleFunction, - Function distributionFunction, + Function distributionFunction, Function defaultFunction) { return doubleFunction.apply(getValue()); } @@ -81,18 +81,18 @@ abstract static class DistributionValue extends Value { @Override public final T match( Function doubleFunction, - Function distributionFunction, + Function distributionFunction, Function defaultFunction) { return distributionFunction.apply(getValue()); } - static DistributionValue create(ByteBuffer value) { + static DistributionValue create(ByteString value) { return new AutoValue_Value_DistributionValue(value); } - abstract ByteBuffer getValue(); + abstract ByteString getValue(); } } diff --git a/ffwd-client/src/test/java/com/spotify/ffwd/v1/MetricTest.java b/ffwd-client/src/test/java/com/spotify/ffwd/v1/MetricTest.java index 383c351..3c26204 100644 --- a/ffwd-client/src/test/java/com/spotify/ffwd/v1/MetricTest.java +++ b/ffwd-client/src/test/java/com/spotify/ffwd/v1/MetricTest.java @@ -94,7 +94,8 @@ public void testSerializeDistributionValue() throws InvalidProtocolBufferExcepti final byte [] pointVal = DISTRIBUTION_DATA_POINT.getBytes(StandardCharsets.UTF_8); ByteBuffer byteBuffer = ByteBuffer.allocate(pointVal.length); byteBuffer.put(pointVal); - Metric metricV1 = (new Metric()).value(Value.distributionValue(byteBuffer)); + Metric metricV1 = (new Metric()).value(Value + .distributionValue(ByteString.copyFrom(byteBuffer.array()))); byte[] bytes = metricV1.serialize(); Protocol1.Metric out = Protocol1.Message.newBuilder().mergeFrom(bytes).build().getMetric(); Protocol1.Value outVal = out.getValue(); diff --git a/ffwd-client/src/test/java/com/spotify/ffwd/v1/ValueTest.java b/ffwd-client/src/test/java/com/spotify/ffwd/v1/ValueTest.java index ab5301f..436ba2d 100644 --- a/ffwd-client/src/test/java/com/spotify/ffwd/v1/ValueTest.java +++ b/ffwd-client/src/test/java/com/spotify/ffwd/v1/ValueTest.java @@ -23,6 +23,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; + +import com.google.protobuf.ByteString; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.ArrayList; @@ -32,7 +34,7 @@ public class ValueTest { private static final double DOUBLE_VAL = 0.976; - private static final ByteBuffer DISTRIBUTION_VAL = createSample(); + private static final ByteString DISTRIBUTION_VAL = createSample(); @Test @@ -66,9 +68,9 @@ public Object apply(Double arg) { return null; } }, - new Function() { + new Function() { @Override - public Object apply(ByteBuffer arg) { + public Object apply(ByteString arg) { actual.add(Value.distributionValue(arg)); return null; } @@ -86,12 +88,12 @@ public Object apply(Value arg) { } - private static ByteBuffer createSample(){ - final String fakeDistData = "FAKEDISTRIBUTIONFAKEDISTRIBUTION"; - final byte [] bytes = fakeDistData.getBytes(StandardCharsets.UTF_8); + private static ByteString createSample(){ + final String data = "FAKEDISTRIBUTIONFAKEDISTRIBUTION"; + final byte [] bytes = data.getBytes(StandardCharsets.UTF_8); ByteBuffer out = ByteBuffer.allocate(bytes.length); out.put(bytes); - return out; + return ByteString.copyFrom(out.array()); }