Class ActorSystemActivator

java.lang.Object
org.apache.pekko.osgi.ActorSystemActivator
All Implemented Interfaces:
org.osgi.framework.BundleActivator

public abstract class ActorSystemActivator extends Object implements org.osgi.framework.BundleActivator
Abstract bundle activator implementation to bootstrap and configure an actor system in an OSGi environment. It also provides a convenience method to register the actor system in the OSGi Service Registry for sharing it with other OSGi bundles.

This convenience activator is mainly useful for setting up a single pekko.actor.ActorSystem instance and sharing that with other bundles in the OSGi Framework. If you want to set up multiple systems in the same bundle context, look at the pekko.osgi.OsgiActorSystemFactory instead.

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addLogServiceListener(org.osgi.framework.BundleContext context, ActorSystem system)
    Adds a LogService Listener that will advertise the ActorSystem on LogService registration and unregistration
    abstract void
    configure(org.osgi.framework.BundleContext context, ActorSystem system)
    Implement this method to add your own actors to the ActorSystem.
    com.typesafe.config.Config
    getActorSystemConfiguration(org.osgi.framework.BundleContext context)
    Override this method to define a configuration for your pekko.actor.ActorSystem instance.
    getActorSystemName(org.osgi.framework.BundleContext context)
    By default, the pekko.actor.ActorSystem name will be set to bundle-<bundle id>-ActorSystem.
    void
    registerService(org.osgi.framework.BundleContext context, ActorSystem system)
    Register the actor system in the OSGi service registry.
    <T> T
    serviceForReference(org.osgi.framework.BundleContext context, org.osgi.framework.ServiceReference<?> reference)
    Convenience method to find a service by its reference.
    void
    start(org.osgi.framework.BundleContext context)
    Sets up a new ActorSystem
    void
    stop(org.osgi.framework.BundleContext context)
    Shuts down the ActorSystem when the bundle is stopped and, if necessary, unregisters a service registration.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ActorSystemActivator

      public ActorSystemActivator()
  • Method Details

    • addLogServiceListener

      public void addLogServiceListener(org.osgi.framework.BundleContext context, ActorSystem system)
      Adds a LogService Listener that will advertise the ActorSystem on LogService registration and unregistration

      Parameters:
      context - the BundleContext
      system - the ActorSystem to be advertised
    • configure

      public abstract void configure(org.osgi.framework.BundleContext context, ActorSystem system)
      Implement this method to add your own actors to the ActorSystem. If you want to share the actor system with other bundles, call the registerService(BundleContext, ActorSystem) method from within this method.

      Parameters:
      context - the bundle context
      system - the ActorSystem that was created by the activator
    • getActorSystemConfiguration

      public com.typesafe.config.Config getActorSystemConfiguration(org.osgi.framework.BundleContext context)
      Override this method to define a configuration for your pekko.actor.ActorSystem instance. This configuration will be merged with fallback on the application.conf of your bundle the reference.conf of the Pekko bundles the System properties.

      Parameters:
      context - the bundle context
      Returns:
      the actor system specific configuration, ConfigFactory.empty by default
    • getActorSystemName

      public String getActorSystemName(org.osgi.framework.BundleContext context)
      By default, the pekko.actor.ActorSystem name will be set to bundle-&lt;bundle id&gt;-ActorSystem. Override this method to define another name for your pekko.actor.ActorSystem instance.

      Parameters:
      context - the bundle context
      Returns:
      the actor system name
    • registerService

      public void registerService(org.osgi.framework.BundleContext context, ActorSystem system)
      Register the actor system in the OSGi service registry. The activator itself will ensure that this service is unregistered again when the bundle is being stopped.

      Only one ActorSystem can be registered at a time, so any previous registration will be unregistered prior to registering the new.

      Parameters:
      context - the bundle context
      system - the actor system
    • serviceForReference

      public <T> T serviceForReference(org.osgi.framework.BundleContext context, org.osgi.framework.ServiceReference<?> reference)
      Convenience method to find a service by its reference.
    • start

      public void start(org.osgi.framework.BundleContext context)
      Sets up a new ActorSystem

      Specified by:
      start in interface org.osgi.framework.BundleActivator
      Parameters:
      context - the BundleContext
    • stop

      public void stop(org.osgi.framework.BundleContext context)
      Shuts down the ActorSystem when the bundle is stopped and, if necessary, unregisters a service registration.

      Specified by:
      stop in interface org.osgi.framework.BundleActivator
      Parameters:
      context - the BundleContext