Package org.apache.pekko.osgi
Class ActorSystemActivator
- java.lang.Object
-
- org.apache.pekko.osgi.ActorSystemActivator
-
- All Implemented Interfaces:
org.osgi.framework.BundleActivator
public abstract class ActorSystemActivator extends java.lang.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 thepekko.osgi.OsgiActorSystemFactory
instead.
-
-
Constructor Summary
Constructors Constructor Description ActorSystemActivator()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods 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 unregistrationabstract 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 yourpekko.actor.ActorSystem
instance.java.lang.String
getActorSystemName(org.osgi.framework.BundleContext context)
By default, thepekko.actor.ActorSystem
name will be set tobundle-<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 ActorSystemvoid
stop(org.osgi.framework.BundleContext context)
Shuts down the ActorSystem when the bundle is stopped and, if necessary, unregisters a service registration.
-
-
-
Method Detail
-
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 BundleContextsystem
- 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 theregisterService(BundleContext, ActorSystem)
method from within this method.- Parameters:
context
- the bundle contextsystem
- 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 yourpekko.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 java.lang.String getActorSystemName(org.osgi.framework.BundleContext context)
By default, thepekko.actor.ActorSystem
name will be set tobundle-<bundle id>-ActorSystem
. Override this method to define another name for yourpekko.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 contextsystem
- 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 interfaceorg.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 interfaceorg.osgi.framework.BundleActivator
- Parameters:
context
- the BundleContext
-
-