SofaTracerSpanContext implements SpanContext { public SofaTracerSpanContext addSysBaggage(Map<String, String> sysBaggage) { if (sysBaggage != null && sysBaggage.size() > 0) { this.sysBaggage.putAll(sysBaggage); } return this; } SofaTracerSpanContext();  SofaTracerSpanContext(String traceId, String spanId);  SofaTracerSpanContext(String traceId, String spanId, String parentId);  SofaTracerSpanContext(String traceId, String spanId, String parentId, boolean isSampled); SofaTracerSpanContext cloneInstance(); SofaTracerSpanContext addBizBaggage(Map<String, String> bizBaggage); SofaTracerSpanContext addSysBaggage(Map<String, String> sysBaggage); @Override Iterable<Map.Entry<String, String>> baggageItems(); String getBizSerializedBaggage(); String getSysSerializedBaggage(); void deserializeBizBaggage(String bizBaggageAttrs); void deserializeSysBaggage(String sysBaggageAttrs); String serializeSpanContext(); static SofaTracerSpanContext deserializeFromString(String deserializeValue); static SofaTracerSpanContext rootStart(); static SofaTracerSpanContext rootStart(boolean isSampled); void setTraceId(String traceId); void setSpanId(String spanId); SofaTracerSpanContext setBizBaggageItem(String key, String value); String getBizBaggageItem(String key); SofaTracerSpanContext setSysBaggageItem(String key, String value); String getSysBaggageItem(String key); String getTraceId(); String getSpanId(); String getParentId(); Map<String, String> getBizBaggage(); Map<String, String> getSysBaggage(); boolean isSampled(); void setSampled(boolean sampled); AtomicInteger getChildContextIndex(); String nextChildContextId(); String lastChildContextId(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); static final String RPC_ID_SEPARATOR; }
@Test public void testAddSysBaggage() throws Exception { SofaTracerSpanContext sofaTracerSpanContext1 = new SofaTracerSpanContext("traceId", "spanId", "parentId", false); sofaTracerSpanContext1.setSysBaggageItem("baggage1", "value1"); sofaTracerSpanContext1.setSysBaggageItem("baggage2", "value2"); assertEquals("parentId", sofaTracerSpanContext1.getParentId()); Map<String, String> baggage = sofaTracerSpanContext1.getSysBaggage(); assertTrue(baggage.size() == 2); assertTrue(baggage.containsKey("baggage1") && baggage.containsValue("value1")); assertTrue(baggage.containsKey("baggage2") && baggage.containsValue("value2")); }