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 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 -
Method Summary
Modifier and TypeMethodDescriptionvoidaddLogServiceListener(org.osgi.framework.BundleContext context, ActorSystem system) Adds a LogService Listener that will advertise the ActorSystem on LogService registration and unregistrationabstract voidconfigure(org.osgi.framework.BundleContext context, ActorSystem system) Implement this method to add your own actors to the ActorSystem.com.typesafe.config.ConfiggetActorSystemConfiguration(org.osgi.framework.BundleContext context) Override this method to define a configuration for yourpekko.actor.ActorSysteminstance.getActorSystemName(org.osgi.framework.BundleContext context) By default, thepekko.actor.ActorSystemname will be set tobundle-<bundle id>-ActorSystem.voidregisterService(org.osgi.framework.BundleContext context, ActorSystem system) Register the actor system in the OSGi service registry.<T> TserviceForReference(org.osgi.framework.BundleContext context, org.osgi.framework.ServiceReference<?> reference) Convenience method to find a service by its reference.voidstart(org.osgi.framework.BundleContext context) Sets up a new ActorSystemvoidstop(org.osgi.framework.BundleContext context) Shuts down the ActorSystem when the bundle is stopped and, if necessary, unregisters a service registration.
-
Constructor Details
-
ActorSystemActivator
public ActorSystemActivator()
-
-
Method Details
-
addLogServiceListener
Adds a LogService Listener that will advertise the ActorSystem on LogService registration and unregistration- Parameters:
context- the BundleContextsystem- the ActorSystem to be advertised
-
configure
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.ActorSysteminstance. 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
By default, thepekko.actor.ActorSystemname will be set tobundle-<bundle id>-ActorSystem. Override this method to define another name for yourpekko.actor.ActorSysteminstance.- Parameters:
context- the bundle context- Returns:
- the actor system name
-
registerService
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:
startin 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:
stopin interfaceorg.osgi.framework.BundleActivator- Parameters:
context- the BundleContext
-