diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/capability/CapabilityInjectorFactory.kt b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/capability/CapabilityInjectorFactory.kt index 93eb4244..55ca7340 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/capability/CapabilityInjectorFactory.kt +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/capability/CapabilityInjectorFactory.kt @@ -20,7 +20,7 @@ class CapabilityInjectorFactory : AgentBaseFactory() { private fun buildTargets(agentContext: AgentContext): List { val moduleInstances = agentContext.modules.values.map { it.instance } - return moduleInstances + agentContext.additionalComponents + return moduleInstances + agentContext.additionalComponents.values } private fun injectCapabilities( diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/component/ComponentInitHookExecuteFactory.kt b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/component/ComponentInitHookExecuteFactory.kt index 8c836252..c2f15f85 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/component/ComponentInitHookExecuteFactory.kt +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/component/ComponentInitHookExecuteFactory.kt @@ -21,7 +21,7 @@ class ComponentInitHookExecuteFactory : AgentBaseFactory() { private fun buildTargets(agentContext: AgentContext): List { val moduleInstances = agentContext.modules.values.map { it.instance } - return moduleInstances + agentContext.additionalComponents + return moduleInstances + agentContext.additionalComponents.values } private fun collectInitMethods( diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/component/ComponentInjectorFactory.kt b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/component/ComponentInjectorFactory.kt index d18953bd..5c498861 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/component/ComponentInjectorFactory.kt +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/component/ComponentInjectorFactory.kt @@ -37,7 +37,7 @@ class ComponentInjectorFactory : AgentBaseFactory() { subModules.forEach { it.injectTarget.add(standalone.instance) } } - agentContext.additionalComponents.forEach { additional -> + agentContext.additionalComponents.values.forEach { additional -> injectIntoTarget(additional, providersForAdditional) } } diff --git a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentContext.kt b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentContext.kt index 0142a6e7..fc235ec5 100644 --- a/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentContext.kt +++ b/Partner-Framework/src/main/java/work/slhaf/partner/api/agent/factory/context/AgentContext.kt @@ -21,9 +21,9 @@ object AgentContext { val capabilities: Map get() = _capabilities - private val _additionalComponents = mutableSetOf() + private val _additionalComponents = mutableMapOf, Any>() - val additionalComponents: Set + val additionalComponents: Map, Any> get() = _additionalComponents private val _metadata: MutableMap = mutableMapOf() @@ -45,7 +45,7 @@ object AgentContext { if (type.isAnnotationPresent(AgentComponent::class.java)) { return false } - _additionalComponents.add(instance) + _additionalComponents[type] = instance return true }