aboutsummaryrefslogblamecommitdiff
path: root/kamon-core/src/main/scala/kamon/AkkaExtensionSwap.scala
blob: 3d503d546fbf37d5e4bf015708b0f455f7dc0bf9 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14













                                                                                                        
package kamon

import akka.actor.{ActorSystem, ExtensionId}
import java.util.concurrent.ConcurrentHashMap

object AkkaExtensionSwap {
  def swap(system: ActorSystem, key: ExtensionId[_], value: Kamon.Extension): Unit = {
    val extensionsField = system.getClass.getDeclaredField("extensions")
    extensionsField.setAccessible(true)

    val extensions = extensionsField.get(system).asInstanceOf[ConcurrentHashMap[ExtensionId[_], AnyRef]]
    extensions.put(key, value)
  }
}