类io.opentracing.propagation.BinaryInject源码实例Demo

下面列出了怎么用io.opentracing.propagation.BinaryInject的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: brave-opentracing   文件: BraveTracer.java
/**
 * Injects the underlying context using B3 encoding by default.
 */
@Override public <C> void inject(SpanContext spanContext, Format<C> format, C carrier) {
  BraveSpanContext braveContext = ((BraveSpanContext) spanContext);
  if (carrier instanceof BinaryInject) {
    BinaryCodec.INSTANCE.inject(braveContext.unwrap(), (BinaryInject) carrier);
    return;
  }
  if (!(carrier instanceof TextMapInject)) {
    throw new UnsupportedOperationException(carrier + " not instanceof TextMapInject");
  }
  Kind kind = braveContext.kind;
  Injector<TextMapInject> injector = null;
  if (Kind.CLIENT.equals(kind)) {
    injector = formatToClientInjector.get(format);
  } else if (Kind.PRODUCER.equals(kind)) {
    injector = formatToProducerInjector.get(format);
  } else if (Kind.CONSUMER.equals(kind)) {
    injector = formatToConsumerInjector.get(format);
  }
  if (injector == null) injector = formatToInjector.get(format);
  if (injector == null) {
    throw new UnsupportedOperationException(format + " not in " + formatToInjector.keySet());
  }
  injector.inject(braveContext.unwrap(), (TextMapInject) carrier);
}
 
源代码2 项目: opentracing-java   文件: MockTracerTest.java
@Test
public void testBinaryPropagator() {
    MockTracer tracer = new MockTracer(MockTracer.Propagator.BINARY);
    {
        Span parentSpan = tracer.buildSpan("foo")
                .start();
        parentSpan.setBaggageItem("foobag", "fooitem");
        parentSpan.finish();

        ByteBuffer buffer = ByteBuffer.allocate(128);
        BinaryInject binary = BinaryAdapters.injectionCarrier(buffer);
        tracer.inject(parentSpan.context(), Format.Builtin.BINARY_INJECT, binary);

        buffer.rewind();
        SpanContext extract = tracer.extract(Format.Builtin.BINARY_EXTRACT, BinaryAdapters.extractionCarrier(buffer));

        Span childSpan = tracer.buildSpan("bar")
                .asChildOf(extract)
                .start();
        childSpan.setBaggageItem("barbag", "baritem");
        childSpan.finish();
    }
    List<MockSpan> finishedSpans = tracer.finishedSpans();

    Assert.assertEquals(2, finishedSpans.size());
    Assert.assertEquals(finishedSpans.get(0).context().traceId(), finishedSpans.get(1).context().traceId());
    Assert.assertEquals(finishedSpans.get(0).context().spanId(), finishedSpans.get(1).parentId());
    Assert.assertEquals("fooitem", finishedSpans.get(0).getBaggageItem("foobag"));
    Assert.assertNull(finishedSpans.get(0).getBaggageItem("barbag"));
    Assert.assertEquals("fooitem", finishedSpans.get(1).getBaggageItem("foobag"));
    Assert.assertEquals("baritem", finishedSpans.get(1).getBaggageItem("barbag"));
}
 
源代码3 项目: brave-opentracing   文件: BraveTracer.java
@Override public void inject(TraceContext traceContext, BinaryInject binaryInject) {
  byte[] injected = B3SingleFormat.writeB3SingleFormatAsBytes(traceContext);
  binaryInject.injectionBuffer(injected.length).put(injected);
}
 
 类所在包
 类方法
 同包方法