add jaxb annotation to SpanContext

This commit is contained in:
Eduard Heimbuch
2020-11-03 13:27:22 +01:00
parent 64650f9e0e
commit 9c96445b7a

View File

@@ -24,8 +24,17 @@
package sonia.scm.trace;
import lombok.Value;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import sonia.scm.xml.XmlInstantAdapter;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.time.Duration;
import java.time.Instant;
import java.util.Map;
@@ -35,12 +44,19 @@ import java.util.Map;
*
* @since 2.9.0
*/
@Value
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@NoArgsConstructor(access = AccessLevel.PACKAGE)
@AllArgsConstructor(access = AccessLevel.PACKAGE)
@Getter
@Setter
public class SpanContext {
String kind;
Map<String,String> labels;
Map<String, String> labels;
@XmlJavaTypeAdapter(XmlInstantAdapter.class)
Instant opened;
@XmlJavaTypeAdapter(XmlInstantAdapter.class)
Instant closed;
boolean failed;
@@ -53,4 +69,9 @@ public class SpanContext {
return Duration.between(opened, closed);
}
// For testing
public static SpanContext create(String kind, Map<String, String> labels, Instant opened, Instant closed, boolean failed) {
return new SpanContext(kind, labels, opened, closed, failed);
}
}