mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 08:43:02 +08:00
refactor(framework): rename AgentRunningModule/SubModule to AbstractAgent* and migrate module inheritance usage
This commit is contained in:
@@ -4,9 +4,9 @@ import cn.hutool.core.util.ClassUtil;
|
||||
import org.reflections.Reflections;
|
||||
import work.slhaf.partner.api.agent.factory.AgentBaseFactory;
|
||||
import work.slhaf.partner.api.agent.factory.context.AgentRegisterContext;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.ActivateModel;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AfterExecute;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
@@ -31,7 +31,7 @@ import static work.slhaf.partner.api.agent.util.AgentUtil.getMethodAnnotationTyp
|
||||
* <ol>
|
||||
* <li>
|
||||
* <p>{@link ModuleCheckFactory#annotationAbstractCheck(Set, Class)}</p>
|
||||
* 所有添加了 {@link AgentModule} 注解的类都将作为Agent的执行模块,为规范模块入口,都必须实现抽象类: {@link AgentRunningModule}; {@link AgentSubModule} 注解所在类则必须实现 {@link AgentRunningSubModule}
|
||||
* 所有添加了 {@link AgentModule} 注解的类都将作为Agent的执行模块,为规范模块入口,都必须实现抽象类: {@link AbstractAgentRunningModule}; {@link AgentSubModule} 注解所在类则必须实现 {@link AbstractAgentSubModule}
|
||||
* </li>
|
||||
* <li>
|
||||
* <p>{@link ModuleCheckFactory#moduleConstructorsCheck(Set)}</p>
|
||||
@@ -60,8 +60,8 @@ public class ModuleCheckFactory extends AgentBaseFactory {
|
||||
ExtendedModules extendedModules = getExtendedModules();
|
||||
checkIfClassCorresponds(annotatedModules, extendedModules);
|
||||
//检查注解AgentModule或AgentSubModule所在类是否继承了对应的抽象类
|
||||
annotationAbstractCheck(annotatedModules.moduleTypes(), AgentRunningModule.class);
|
||||
annotationAbstractCheck(annotatedModules.subModuleTypes(), AgentRunningSubModule.class);
|
||||
annotationAbstractCheck(annotatedModules.moduleTypes(), AbstractAgentRunningModule.class);
|
||||
annotationAbstractCheck(annotatedModules.subModuleTypes(), AbstractAgentSubModule.class);
|
||||
//检查AgentModule是否具备无参构造方法
|
||||
moduleConstructorsCheck(annotatedModules.moduleTypes());
|
||||
moduleConstructorsCheck(annotatedModules.subModuleTypes());
|
||||
@@ -72,11 +72,11 @@ public class ModuleCheckFactory extends AgentBaseFactory {
|
||||
}
|
||||
|
||||
private ExtendedModules getExtendedModules() {
|
||||
Set<Class<?>> moduleTypes = reflections.getSubTypesOf(AgentRunningModule.class)
|
||||
Set<Class<?>> moduleTypes = reflections.getSubTypesOf(AbstractAgentRunningModule.class)
|
||||
.stream()
|
||||
.filter(ClassUtil::isNormalClass)
|
||||
.collect(Collectors.toSet());
|
||||
Set<Class<?>> subModuleTypes = reflections.getSubTypesOf(AgentRunningSubModule.class)
|
||||
Set<Class<?>> subModuleTypes = reflections.getSubTypesOf(AbstractAgentSubModule.class)
|
||||
.stream()
|
||||
.filter(ClassUtil::isNormalClass)
|
||||
.collect(Collectors.toSet());
|
||||
@@ -156,10 +156,10 @@ public class ModuleCheckFactory extends AgentBaseFactory {
|
||||
|
||||
private void checkLocation(Set<Class<?>> types) {
|
||||
for (Class<?> type : types) {
|
||||
if (AgentRunningModule.class.isAssignableFrom(type)) {
|
||||
if (AbstractAgentRunningModule.class.isAssignableFrom(type)) {
|
||||
continue;
|
||||
}
|
||||
if (AgentRunningSubModule.class.isAssignableFrom(type)) {
|
||||
if (AbstractAgentSubModule.class.isAssignableFrom(type)) {
|
||||
continue;
|
||||
}
|
||||
if (ActivateModel.class.isAssignableFrom(type)) {
|
||||
|
||||
@@ -4,9 +4,9 @@ import work.slhaf.partner.api.agent.factory.AgentBaseFactory;
|
||||
import work.slhaf.partner.api.agent.factory.AgentRegisterFactory;
|
||||
import work.slhaf.partner.api.agent.factory.context.AgentRegisterContext;
|
||||
import work.slhaf.partner.api.agent.factory.context.ModuleFactoryContext;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.Module;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.Init;
|
||||
import work.slhaf.partner.api.agent.factory.module.exception.ModuleInitHookExecuteFailedException;
|
||||
import work.slhaf.partner.api.agent.factory.module.pojo.BaseMetaModule;
|
||||
@@ -59,12 +59,12 @@ public class ModuleInitHookExecuteFactory extends AgentBaseFactory {
|
||||
protected void run() {
|
||||
//遍历模块列表,并向上查找@Init注解
|
||||
for (MetaSubModule metaSubModule : subModuleList) {
|
||||
List<MetaMethod> initHookMethods = collectInitHookMethods(metaSubModule.getClazz(),AgentRunningModule.class);
|
||||
List<MetaMethod> initHookMethods = collectInitHookMethods(metaSubModule.getClazz(), AbstractAgentRunningModule.class);
|
||||
proceedInitMethods(metaSubModule, initHookMethods);
|
||||
}
|
||||
|
||||
for (MetaModule metaModule : moduleList) {
|
||||
List<MetaMethod> initHookMethods = collectInitHookMethods(metaModule.getClazz(), AgentRunningSubModule.class);
|
||||
List<MetaMethod> initHookMethods = collectInitHookMethods(metaModule.getClazz(), AbstractAgentSubModule.class);
|
||||
proceedInitMethods(metaModule, initHookMethods);
|
||||
}
|
||||
}
|
||||
@@ -79,7 +79,7 @@ public class ModuleInitHookExecuteFactory extends AgentBaseFactory {
|
||||
}
|
||||
}
|
||||
|
||||
private List<MetaMethod> collectInitHookMethods(Class<?> clazz, Class<? extends Module> target) {
|
||||
private List<MetaMethod> collectInitHookMethods(Class<?> clazz, Class<? extends AbstractAgentModule> target) {
|
||||
Set<Class<?>> classes = collectExtendedClasses(clazz, target);
|
||||
return classes.stream()
|
||||
.map(Class::getDeclaredMethods)
|
||||
|
||||
@@ -10,9 +10,9 @@ import work.slhaf.partner.api.agent.factory.capability.CapabilityCheckFactory;
|
||||
import work.slhaf.partner.api.agent.factory.context.AgentRegisterContext;
|
||||
import work.slhaf.partner.api.agent.factory.context.CapabilityFactoryContext;
|
||||
import work.slhaf.partner.api.agent.factory.context.ModuleFactoryContext;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.Module;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AfterExecute;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.BeforeExecute;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.InjectModule;
|
||||
@@ -96,8 +96,8 @@ public class ModuleProxyFactory extends AgentBaseFactory {
|
||||
}
|
||||
|
||||
private void createProxiedInstances() {
|
||||
generateModuleProxy(moduleList, AgentRunningModule.class);
|
||||
generateModuleProxy(subModuleList, AgentRunningSubModule.class);
|
||||
generateModuleProxy(moduleList, AbstractAgentRunningModule.class);
|
||||
generateModuleProxy(subModuleList, AbstractAgentSubModule.class);
|
||||
updateInstanceMap(moduleInstances, moduleList);
|
||||
updateInstanceMap(subModuleInstances, subModuleList);
|
||||
updateCapabilityHolderInstances();
|
||||
@@ -115,7 +115,7 @@ public class ModuleProxyFactory extends AgentBaseFactory {
|
||||
}
|
||||
|
||||
|
||||
private void generateModuleProxy(List<? extends BaseMetaModule> list, Class<? extends Module> overrideSource) {
|
||||
private void generateModuleProxy(List<? extends BaseMetaModule> list, Class<? extends AbstractAgentModule> overrideSource) {
|
||||
for (BaseMetaModule module : list) {
|
||||
Class<?> clazz = module.getClazz();
|
||||
try {
|
||||
@@ -128,10 +128,10 @@ public class ModuleProxyFactory extends AgentBaseFactory {
|
||||
}
|
||||
}
|
||||
|
||||
private void generateProxiedInstances(MethodsListRecord record, BaseMetaModule module, Class<? extends Module> overrideSource) {
|
||||
private void generateProxiedInstances(MethodsListRecord record, BaseMetaModule module, Class<? extends AbstractAgentModule> overrideSource) {
|
||||
try {
|
||||
Class<? extends Module> clazz = module.getClazz();
|
||||
Class<? extends Module> proxyClass = new ByteBuddy()
|
||||
Class<? extends AbstractAgentModule> clazz = module.getClazz();
|
||||
Class<? extends AbstractAgentModule> proxyClass = new ByteBuddy()
|
||||
.subclass(clazz)
|
||||
.method(ElementMatchers.isOverriddenFrom(overrideSource))
|
||||
.intercept(MethodDelegation.to(new ModuleProxyInterceptor(record.post, record.pre)))
|
||||
@@ -159,7 +159,7 @@ public class ModuleProxyFactory extends AgentBaseFactory {
|
||||
//获取该类本身的hook逻辑
|
||||
collectHookMethods(post, pre, clazz);
|
||||
//获取它所继承、实现的抽象类或接口, 以Module为终点,收集继承链上所有父类和接口
|
||||
Set<Class<?>> classes = collectExtendedClasses(clazz, Module.class);
|
||||
Set<Class<?>> classes = collectExtendedClasses(clazz, AbstractAgentModule.class);
|
||||
//获取这些类中的hook逻辑
|
||||
collectHookMethods(post, pre, classes);
|
||||
return new MethodsListRecord(post, pre);
|
||||
|
||||
@@ -5,8 +5,8 @@ import org.reflections.Reflections;
|
||||
import work.slhaf.partner.api.agent.factory.AgentBaseFactory;
|
||||
import work.slhaf.partner.api.agent.factory.context.AgentRegisterContext;
|
||||
import work.slhaf.partner.api.agent.factory.context.ModuleFactoryContext;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.CoreModule;
|
||||
@@ -60,34 +60,7 @@ public class ModuleRegisterFactory extends AgentBaseFactory {
|
||||
setSubModuleList();
|
||||
}
|
||||
|
||||
private void setSubModuleList() {
|
||||
Set<Class<?>> subModules = reflections.getTypesAnnotatedWith(AgentSubModule.class);
|
||||
for (Class<?> subModule : subModules) {
|
||||
if (!ClassUtil.isNormalClass(subModule)) {
|
||||
continue;
|
||||
}
|
||||
Class<? extends AgentRunningSubModule> clazz = subModule.asSubclass(AgentRunningSubModule.class);
|
||||
MetaSubModule metaSubModule = new MetaSubModule();
|
||||
metaSubModule.setClazz(clazz);
|
||||
subModuleList.add(metaSubModule);
|
||||
}
|
||||
}
|
||||
|
||||
private void setModuleList() {
|
||||
//反射扫描获取@AgentModule所在类, 该部分为Agent流程执行模块
|
||||
Set<Class<?>> modules = reflections.getTypesAnnotatedWith(AgentModule.class);
|
||||
for (Class<?> module : modules) {
|
||||
if (!ClassUtil.isNormalClass(module)) {
|
||||
continue;
|
||||
}
|
||||
Class<? extends AgentRunningModule> clazz = module.asSubclass(AgentRunningModule.class);
|
||||
MetaModule metaModule = getMetaModule(clazz);
|
||||
moduleList.add(metaModule);
|
||||
}
|
||||
moduleList.sort(Comparator.comparing(MetaModule::getOrder));
|
||||
}
|
||||
|
||||
private static MetaModule getMetaModule(Class<? extends AgentRunningModule> clazz) {
|
||||
private static MetaModule getMetaModule(Class<? extends AbstractAgentRunningModule> clazz) {
|
||||
MetaModule metaModule = new MetaModule();
|
||||
AgentModule agentModule;
|
||||
if (clazz.isAnnotationPresent(CoreModule.class)){
|
||||
@@ -101,4 +74,31 @@ public class ModuleRegisterFactory extends AgentBaseFactory {
|
||||
return metaModule;
|
||||
}
|
||||
|
||||
private void setSubModuleList() {
|
||||
Set<Class<?>> subModules = reflections.getTypesAnnotatedWith(AgentSubModule.class);
|
||||
for (Class<?> subModule : subModules) {
|
||||
if (!ClassUtil.isNormalClass(subModule)) {
|
||||
continue;
|
||||
}
|
||||
Class<? extends AbstractAgentSubModule> clazz = subModule.asSubclass(AbstractAgentSubModule.class);
|
||||
MetaSubModule metaSubModule = new MetaSubModule();
|
||||
metaSubModule.setClazz(clazz);
|
||||
subModuleList.add(metaSubModule);
|
||||
}
|
||||
}
|
||||
|
||||
private void setModuleList() {
|
||||
//反射扫描获取@AgentModule所在类, 该部分为Agent流程执行模块
|
||||
Set<Class<?>> modules = reflections.getTypesAnnotatedWith(AgentModule.class);
|
||||
for (Class<?> module : modules) {
|
||||
if (!ClassUtil.isNormalClass(module)) {
|
||||
continue;
|
||||
}
|
||||
Class<? extends AbstractAgentRunningModule> clazz = module.asSubclass(AbstractAgentRunningModule.class);
|
||||
MetaModule metaModule = getMetaModule(clazz);
|
||||
moduleList.add(metaModule);
|
||||
}
|
||||
moduleList.sort(Comparator.comparing(MetaModule::getOrder));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.Model;
|
||||
/**
|
||||
* 模块基类
|
||||
*/
|
||||
public abstract class Module {
|
||||
public abstract class AbstractAgentModule {
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@@ -11,7 +11,7 @@ import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowC
|
||||
* 流程执行模块基类
|
||||
*/
|
||||
@Slf4j
|
||||
public abstract class AgentRunningModule<C extends RunningFlowContext> extends Module {
|
||||
public abstract class AbstractAgentRunningModule<C extends RunningFlowContext> extends AbstractAgentModule {
|
||||
public abstract void execute(C context);
|
||||
|
||||
@BeforeExecute
|
||||
@@ -30,7 +30,7 @@ public abstract class AgentRunningModule<C extends RunningFlowContext> extends M
|
||||
} else if (this.getClass().isAnnotationPresent(CoreModule.class)) {
|
||||
return CoreModule.class.getAnnotation(AgentModule.class).name();
|
||||
}else {
|
||||
return "Unknown Module";
|
||||
return "Unknown AbstractAgentModule";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package work.slhaf.partner.api.agent.factory.module.abstracts;
|
||||
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public abstract class AbstractAgentSubModule<I, O> extends AbstractAgentModule {
|
||||
|
||||
public abstract O execute(I data);
|
||||
|
||||
}
|
||||
@@ -80,11 +80,11 @@ public interface ActivateModel {
|
||||
* @return 持有的model实例
|
||||
*/
|
||||
default Model getModel() {
|
||||
return ((Module) this).getModel();
|
||||
return ((AbstractAgentModule) this).getModel();
|
||||
}
|
||||
|
||||
default void setModel(Model model) {
|
||||
((Module) this).setModel(model);
|
||||
((AbstractAgentModule) this).setModel(model);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
package work.slhaf.partner.api.agent.factory.module.abstracts;
|
||||
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AfterExecute;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.AgentModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.BeforeExecute;
|
||||
import work.slhaf.partner.api.agent.factory.module.annotation.CoreModule;
|
||||
|
||||
@Slf4j
|
||||
public abstract class AgentRunningSubModule<I, O> extends Module {
|
||||
|
||||
public abstract O execute(I data);
|
||||
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import java.lang.annotation.Target;
|
||||
* 仅适用于以下类中的方法:
|
||||
* 1. <code>@AgentModule</code>注解所在类
|
||||
* 2. <code>ActivateModel</code>子类
|
||||
* 3. <code>AgentRunningModule</code>或者<code>AgentRunningSubModule</code>子类
|
||||
* 3. <code>AbstractAgentRunningModule</code>或者<code>AbstractAgentSubModule</code>子类
|
||||
*/
|
||||
|
||||
@Target(ElementType.METHOD)
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.lang.annotation.Target;
|
||||
* 仅适用于以下类中的方法:
|
||||
* 1. <code>@AgentModule</code>注解所在类
|
||||
* 2. <code>ActivateModel</code>子类
|
||||
* 3. <code>AgentRunningModule</code>或者<code>AgentRunningSubModule</code>子类
|
||||
* 3. <code>AbstractAgentRunningModule</code>或者<code>AbstractAgentSubModule</code>子类
|
||||
*/
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package work.slhaf.partner.api.agent.factory.module.pojo;
|
||||
|
||||
import lombok.Data;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.Module;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentModule;
|
||||
|
||||
@Data
|
||||
public abstract class BaseMetaModule <C extends Module> {
|
||||
public abstract class BaseMetaModule<C extends AbstractAgentModule> {
|
||||
private Class<? extends C> clazz;
|
||||
private C instance;
|
||||
}
|
||||
|
||||
@@ -2,11 +2,11 @@ package work.slhaf.partner.api.agent.factory.module.pojo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class MetaModule extends BaseMetaModule<AgentRunningModule>{
|
||||
public class MetaModule extends BaseMetaModule<AbstractAgentRunningModule> {
|
||||
private String name;
|
||||
private int order;
|
||||
private boolean enabled = true;
|
||||
|
||||
@@ -2,9 +2,9 @@ package work.slhaf.partner.api.agent.factory.module.pojo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningSubModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentSubModule;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class MetaSubModule extends BaseMetaModule<AgentRunningSubModule>{
|
||||
public class MetaSubModule extends BaseMetaModule<AbstractAgentSubModule> {
|
||||
}
|
||||
|
||||
@@ -4,21 +4,21 @@ import net.bytebuddy.ByteBuddy;
|
||||
import net.bytebuddy.implementation.MethodDelegation;
|
||||
import net.bytebuddy.matcher.ElementMatchers;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
public class ModuleProxyTest {
|
||||
public class AbstractAgentModuleProxyTest {
|
||||
@Test
|
||||
public void test() throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException, IOException, ClassNotFoundException {
|
||||
Class<? extends AgentRunningModule> clazz = new ByteBuddy().subclass(MyAgentRunningModule.class)
|
||||
.method(ElementMatchers.isOverriddenFrom(AgentRunningModule.class))
|
||||
Class<? extends AbstractAgentRunningModule> clazz = new ByteBuddy().subclass(MyAbstractAgentRunningAbstractAgentModule.class)
|
||||
.method(ElementMatchers.isOverriddenFrom(AbstractAgentRunningModule.class))
|
||||
.intercept(MethodDelegation.to(
|
||||
new MyModuleProxyInterceptor()
|
||||
))
|
||||
.make()
|
||||
.load(ModuleProxyTest.class.getClassLoader())
|
||||
.load(AbstractAgentModuleProxyTest.class.getClassLoader())
|
||||
.getLoaded();
|
||||
clazz.getConstructor().newInstance().execute(null);
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package module;
|
||||
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AbstractAgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext;
|
||||
|
||||
public class MyAbstractAgentRunningAbstractAgentModule extends AbstractAgentRunningModule {
|
||||
@Override
|
||||
public void execute(RunningFlowContext context) {
|
||||
System.out.println("MyAbstractAgentRunningAbstractAgentModule");
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package module;
|
||||
|
||||
import work.slhaf.partner.api.agent.factory.module.abstracts.AgentRunningModule;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext;
|
||||
|
||||
public class MyAgentRunningModule extends AgentRunningModule {
|
||||
@Override
|
||||
public void execute(RunningFlowContext context) {
|
||||
System.out.println("MyAgentRunningModule");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user