In addition to propagation that sends information about trace between different JVMs, we can include the additional way of saving SpanContext on same JVM and reusing it later. The use cases are:
HTTP requests ends in unchecked exception and HTTP server fires another request to the /error page. This way we could connect these two requests. In this case we can use setAttribute and getAttribute on HttpRequest class.
To support span connections between different theads on same JVM we need same approach, a store were we can save span context. In this case the store is our Runnable/Callabe being executed.
SUCCESS: Integrated in
inspectIT - Integration #288
INSPECTIT-2408: Span context store support (patrice.bouillet: 80d300e5745e38e4d3b88576aa51e1e9fe91ad4d)
(add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/SpanContextStore.java
(edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/http/data/impl/JavaHttpServerRequest.java
(edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/empty/EmptyRequestAdapter.java
(edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/sensor/method/remote/server/http/JavaHttpRemoteServerSensorTest.java
(edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/sensor/method/remote/server/manual/ManualRemoteServerSensorTest.java
(edit) inspectit.agent.java.sdk/src/main/java/rocks/inspectit/agent/java/sdk/opentracing/internal/impl/SpanBuilderImpl.java
(add) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/store/NoopSpanContextStore.java
(edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/http/HttpServerRequestAdapter.java
(edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/sensor/method/remote/server/mq/JmsListenerRemoteServerSensorTest.java
(edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/ServerRequestAdapter.java
(edit) inspectit.agent.java.sdk/src/test/java/rocks/inspectit/agent/java/sdk/opentracing/internal/impl/SpanBuilderImplTest.java
(edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/adapter/mq/MQRequestAdapter.java
(edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/tracing/core/ServerInterceptorTest.java
(edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/tracing/core/ServerInterceptor.java