Akka in OSGi
Loading

Akka in OSGi

Configuring the OSGi Framework

To use Akka in an OSGi environment, the org.osgi.framework.bootdelegation property must be set to always delegate the sun.misc package to the boot classloader instead of resolving it through the normal OSGi class space.

Activator

To bootstrap Akka inside an OSGi environment, you can use the akka.osgi.AkkaSystemActivator class to conveniently set up the ActorSystem.

import akka.actor.{ Props, ActorSystem }
import org.osgi.framework.BundleContext
import akka.osgi.ActorSystemActivator

class Activator extends ActorSystemActivator {

  def configure(context: BundleContext, system: ActorSystem) {
    // optionally register the ActorSystem in the OSGi Service Registry
    registerService(context, system)

    val someActor = system.actorOf(Props[SomeActor], name = "someName")
    someActor ! SomeMessage
  }

}

Blueprint

For the Apache Aries Blueprint implementation, there's also a namespace handler available. The namespace URI is https://akka.io/xmlns/blueprint/v1.0.0 and it can be used to set up an ActorSystem.

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xmlns:akka="https://akka.io/xmlns/blueprint/v1.0.0">

    <akka:actor-system name="BlueprintSystem" />

    <akka:actor-system name="BlueprintSystemWithConfig">
        <akka:config>
            some.config {
              key=value
            }
        </akka:config>
    </akka:actor-system>
</blueprint>

Contents