aboutsummaryrefslogblamecommitdiff
path: root/kamon-core/src/main/scala/kamon/AkkaExtensionSwap.scala
blob: aee7df9fbd8ba9853b9479f8d3eb790c5b099e39 (plain) (tree)
1
2
3
4
5
6
7

             
                                                       


                                             
                                                                                






                                                                                                        
package kamon

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

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

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