diff --git a/Partner-Core/src/main/java/work/slhaf/partner/Main.java b/Partner-Core/src/main/java/work/slhaf/partner/Main.java index 2f3581ef..395d96b3 100644 --- a/Partner-Core/src/main/java/work/slhaf/partner/Main.java +++ b/Partner-Core/src/main/java/work/slhaf/partner/Main.java @@ -1,5 +1,6 @@ package work.slhaf.partner; +import work.slhaf.partner.common.vector.VectorClientRegistry; import work.slhaf.partner.framework.agent.Agent; import work.slhaf.partner.runtime.gateway.WebSocketGatewayRegistration; @@ -7,6 +8,7 @@ public class Main { public static void main(String[] args) { Agent.newAgent(Main.class) .addGatewayRegistration(WebSocketGatewayRegistration.INSTANCE) + .addConfigurable(new VectorClientRegistry()) .launch(); } } diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/framework/agent/Agent.java b/Partner-Framework/src/main/java/work/slhaf/partner/framework/agent/Agent.java index 643fecc9..533b8360 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/framework/agent/Agent.java +++ b/Partner-Framework/src/main/java/work/slhaf/partner/framework/agent/Agent.java @@ -3,11 +3,11 @@ package work.slhaf.partner.framework.agent; import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import work.slhaf.partner.framework.agent.config.ConfigCenter; +import work.slhaf.partner.framework.agent.config.Configurable; import work.slhaf.partner.framework.agent.exception.AgentStartupException; import work.slhaf.partner.framework.agent.exception.ExceptionReporter; import work.slhaf.partner.framework.agent.exception.ExceptionReporterHandler; import work.slhaf.partner.framework.agent.factory.AgentRegisterFactory; -import work.slhaf.partner.framework.agent.factory.component.annotation.AgentComponent; import work.slhaf.partner.framework.agent.factory.context.AgentContext; import work.slhaf.partner.framework.agent.interaction.AgentGatewayRegistration; import work.slhaf.partner.framework.agent.interaction.AgentGatewayRegistry; @@ -34,6 +34,7 @@ public final class Agent { private final Class applicationClass; private final Set gatewayRegistrations = new LinkedHashSet<>(); private final Set exceptionReporters = new LinkedHashSet<>(); + private final Set configurables = new LinkedHashSet<>(); private final Set preShutdownHooks = new LinkedHashSet<>(); private final Set postShutdownHooks = new LinkedHashSet<>(); @@ -46,6 +47,11 @@ public final class Agent { return this; } + public AgentApp addConfigurable(Configurable configurable) { + this.configurables.add(configurable); + return this; + } + public AgentApp addExceptionReporter(ExceptionReporter... exceptionReporters) { this.exceptionReporters.addAll(Set.of(exceptionReporters)); return this; @@ -73,17 +79,17 @@ public final class Agent { try { // Keep startup order explicit so registries are ready before component scanning. for (ExceptionReporter exceptionReporter : exceptionReporters) { - // AgentComponent will be initialized by factory - if (exceptionReporter.getClass().isAnnotationPresent(AgentComponent.class)) { - continue; - } exceptionReporter.register(); } // Load class StateCenter.INSTANCE.toString(); + // Register into config center ModelRuntimeRegistry.INSTANCE.register(); AgentGatewayRegistry.INSTANCE.register(); + for (Configurable configurable : configurables) { + configurable.register(); + } for (AgentGatewayRegistration registration : gatewayRegistrations) { registration.register();