From d5719438ed9a93c4035262fa8bd94ee60eead048 Mon Sep 17 00:00:00 2001 From: Diego Date: Tue, 22 Aug 2017 11:56:12 -0300 Subject: move kamon.context.SimpleStringCodec to kamon.testkit.SimpleStringCodec in order to avoid java.lang.ClassNotFoundException: kamon.context.SimpleStringCodec in tests --- .../main/scala/kamon/testkit/ContextTesting.scala | 2 ++ .../scala/kamon/testkit/SimpleStringCodec.scala | 42 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 kamon-testkit/src/main/scala/kamon/testkit/SimpleStringCodec.scala (limited to 'kamon-testkit/src/main/scala') diff --git a/kamon-testkit/src/main/scala/kamon/testkit/ContextTesting.scala b/kamon-testkit/src/main/scala/kamon/testkit/ContextTesting.scala index 8fd51024..b9e243d4 100644 --- a/kamon-testkit/src/main/scala/kamon/testkit/ContextTesting.scala +++ b/kamon-testkit/src/main/scala/kamon/testkit/ContextTesting.scala @@ -11,3 +11,5 @@ trait ContextTesting { } object ContextTesting extends ContextTesting + + diff --git a/kamon-testkit/src/main/scala/kamon/testkit/SimpleStringCodec.scala b/kamon-testkit/src/main/scala/kamon/testkit/SimpleStringCodec.scala new file mode 100644 index 00000000..f1d8cb14 --- /dev/null +++ b/kamon-testkit/src/main/scala/kamon/testkit/SimpleStringCodec.scala @@ -0,0 +1,42 @@ +package kamon.testkit + +import java.nio.ByteBuffer + +import kamon.context.{Codecs, Context, TextMap} + +object SimpleStringCodec { + final class Headers extends Codecs.ForEntry[TextMap] { + private val dataKey = "X-String-Value" + + override def encode(context: Context): TextMap = { + val textMap = TextMap.Default() + context.get(ContextTesting.StringBroadcastKey).foreach { value => + textMap.put(dataKey, value) + } + + textMap + } + + override def decode(carrier: TextMap, context: Context): Context = { + carrier.get(dataKey) match { + case value @ Some(_) => context.withKey(ContextTesting.StringBroadcastKey, value) + case None => context + } + } + } + + final class Binary extends Codecs.ForEntry[ByteBuffer] { + val emptyBuffer: ByteBuffer = ByteBuffer.allocate(0) + + override def encode(context: Context): ByteBuffer = { + context.get(ContextTesting.StringBroadcastKey) match { + case Some(value) => ByteBuffer.wrap(value.getBytes) + case None => emptyBuffer + } + } + + override def decode(carrier: ByteBuffer, context: Context): Context = { + context.withKey(ContextTesting.StringBroadcastKey, Some(new String(carrier.array()))) + } + } +} -- cgit v1.2.3