Class DynamicActorLoaderActor
java.lang.Object
com.scivicslab.pojoactor.workflow.DynamicActorLoaderActor
- All Implemented Interfaces:
CallableByActionName
Generic actor that dynamically loads and creates other actors from plugins.
This actor enables workflows to load actors from external JAR files or ServiceLoader providers at runtime, without restarting the application.
Supported Actions:
- loadJar: Load a JAR file and make its classes available
- createChild: Create an actor from a loaded class under a parent actor
- listLoadedJars: List all loaded JAR files
- loadFromJar: (Legacy) Load actor from external JAR file in one step
- createFromProvider: Create actor from ServiceLoader provider
- listProviders: List all available ActorProvider instances
- loadProvidersFromJar: Load ActorProvider plugins from JAR
Example Workflow (Two-step loading - Recommended):
steps:
# Step 1: Load JAR (makes classes available)
- states: ["0", "1"]
actions:
- actor: loader
method: loadJar
arguments: ["plugins/my-actor.jar"]
# Step 2: Create actor under a parent
- states: ["1", "2"]
actions:
- actor: loader
method: createChild
arguments: ["nodeGroup", "myactor", "com.example.MyActor"]
# Step 3: Use the actor
- states: ["2", "end"]
actions:
- actor: myactor
method: someAction
arguments: ["arg1", "arg2"]
Example Workflow (Legacy one-step loading):
steps:
- states: ["0", "1"]
actions:
- actor: loader
method: loadFromJar
arguments: ["plugins/my-actor.jar", "com.example.MyActor", "myactor"]
- Since:
- 2.6.0
- Author:
- devteam@scivicslab.com
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDynamicActorLoaderActor(IIActorSystem system) Constructs a new DynamicActorLoaderActor. -
Method Summary
Modifier and TypeMethodDescriptioncallByActionName(String actionName, String args) Executes an action identified by its name with the given arguments.
-
Field Details
-
system
-
-
Constructor Details
-
DynamicActorLoaderActor
Constructs a new DynamicActorLoaderActor.- Parameters:
system- the actor system to register newly loaded actors
-
-
Method Details
-
callByActionName
Description copied from interface:CallableByActionNameExecutes an action identified by its name with the given arguments.Implementations should parse the
argsstring according to their own conventions. Common approaches include:- Comma-separated values:
"5,3" - JSON:
"{\"a\":5,\"b\":3}" - Key-value pairs:
"a=5,b=3"
The method should return an
ActionResultindicating success or failure, along with any result data serialized as a string.- Specified by:
callByActionNamein interfaceCallableByActionName- Parameters:
actionName- the name of the action to executeargs- string arguments to pass to the action (format defined by implementation)- Returns:
- an
ActionResultindicating success or failure and any result data
- Comma-separated values:
-