需继续为上层模块构建注册体系以适应完整的加载逻辑。

- 移除了 BaseCoordinateManager 抽象类,而是添加了 @CoordinateManager 注解
- 移除了 CapabilityHolder 抽象类,换成 @CapabilityHolder 注解
- 新增了适应新注册机制的部分类,仍需进一步推进
This commit is contained in:
2025-07-22 22:04:46 +08:00
parent 954095aa55
commit effa1df7fa
72 changed files with 148 additions and 738 deletions

33
Partner-Test-Demo/pom.xml Normal file
View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>work.slhaf</groupId>
<artifactId>Partner</artifactId>
<version>0.5.0</version>
</parent>
<artifactId>Partner-Test-Demo</artifactId>
<dependencies>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.10.2</version>
</dependency>
<dependency>
<groupId>work.slhaf</groupId>
<artifactId>Partner-Api</artifactId>
<version>0.5.0</version>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>

View File

@@ -0,0 +1,10 @@
package work.slhaf;
import work.slhaf.demo.TestModule;
public class Main {
public static void main(String[] args) {
TestModule testModule = new TestModule();
testModule.execute();
}
}

View File

@@ -0,0 +1,16 @@
package work.slhaf.demo;
import work.slhaf.partner.api.capability.annotation.CoordinateManager;
import work.slhaf.partner.api.capability.annotation.Coordinated;
import java.util.List;
@CoordinateManager
public class MyCognationManager {
@Coordinated(capability = "memory")
public List<String> selectMemory(String path) {
return List.of("1", "2", path);
}
}

View File

@@ -0,0 +1,16 @@
package work.slhaf.demo;
import work.slhaf.demo.ability.MemoryCapability;
import work.slhaf.partner.api.capability.annotation.CapabilityHolder;
import work.slhaf.partner.api.capability.annotation.InjectCapability;
@CapabilityHolder
public class TestModule {
@InjectCapability
private MemoryCapability capability;
public void execute(){
System.out.println("111");
System.out.println(capability.selectMemory("zjw"));
}
}

View File

@@ -0,0 +1,18 @@
package work.slhaf.demo.ability;
import work.slhaf.partner.api.capability.annotation.Capability;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.concurrent.ConcurrentHashMap;
@Capability(value = "cache")
public interface CacheCapability {
HashMap<LocalDateTime, String> getDialogMap();
ConcurrentHashMap<LocalDateTime, String> getUserDialogMap(String userId);
void updateDialogMap(LocalDateTime dateTime, String newDialogCache);
String getDialogMapStr();
String getUserDialogMapStr(String userId,int id);
}

View File

@@ -0,0 +1,16 @@
package work.slhaf.demo.ability;
import work.slhaf.partner.api.capability.annotation.Capability;
import work.slhaf.partner.api.capability.annotation.ToCoordinated;
import java.util.List;
@Capability(value = "memory")
public interface MemoryCapability {
void cleanSelectedSliceFilter();
String getTopicTree();
List<String> listMemory(String userId);
@ToCoordinated
List<String> selectMemory(String path);
}

View File

@@ -0,0 +1,11 @@
package work.slhaf.demo.ability;
import work.slhaf.partner.api.capability.annotation.Capability;
@Capability(value = "perceive")
public interface PerceiveCapability {
String getUser(String id);
String addUser(String userInfo, String platform, String userNickName);
void updateUser(String user);
}

View File

@@ -0,0 +1,54 @@
package work.slhaf.demo.core;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.capability.annotation.CapabilityCore;
import work.slhaf.partner.api.capability.annotation.CapabilityMethod;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.concurrent.ConcurrentHashMap;
@CapabilityCore(value = "cache")
@Slf4j
public class CacheCore {
public static volatile CacheCore cacheCore;
private CacheCore() {
cacheCore = this;
}
public static CacheCore getInstance() {
return cacheCore;
}
@CapabilityMethod
public HashMap<LocalDateTime, String> getDialogMap() {
log.info("cache: getDialogMap");
return new HashMap<>();
}
@CapabilityMethod
public ConcurrentHashMap<LocalDateTime, String> getUserDialogMap(String userId) {
log.info("cache: getUserDialogMap");
return new ConcurrentHashMap<>();
}
@CapabilityMethod
public void updateDialogMap(LocalDateTime dateTime, String newDialogCache) {
log.info("cache: updateDialogMap");
}
@CapabilityMethod
public String getDialogMapStr() {
log.info("cache: getDialogMapStr");
return "";
}
@CapabilityMethod
public String getUserDialogMapStr(String userId,int id) {
log.info("cache: getUserDialogMapStr");
return userId+id;
}
}

View File

@@ -0,0 +1,40 @@
package work.slhaf.demo.core;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.capability.annotation.CapabilityCore;
import work.slhaf.partner.api.capability.annotation.CapabilityMethod;
import java.util.ArrayList;
import java.util.List;
@CapabilityCore(value = "memory")
@Slf4j
public class MemoryCore {
public static volatile MemoryCore memoryCore;
private MemoryCore() {
memoryCore = this;
}
public static MemoryCore getInstance() {
return memoryCore;
}
@CapabilityMethod
public void cleanSelectedSliceFilter(){
log.info("memory: cleanSelectedSliceFilter");
}
@CapabilityMethod
public String getTopicTree(){
log.info("memory: getTopicTree");
return "";
}
@CapabilityMethod
public List<String> listMemory(String userId){
log.info("memory: listMemory");
return new ArrayList<>();
}
}

View File

@@ -0,0 +1,38 @@
package work.slhaf.demo.core;
import lombok.extern.slf4j.Slf4j;
import work.slhaf.partner.api.capability.annotation.CapabilityCore;
import work.slhaf.partner.api.capability.annotation.CapabilityMethod;
@CapabilityCore(value = "perceive")
@Slf4j
public class PerceiveCore {
public static volatile PerceiveCore perceiveCore;
private PerceiveCore() {
perceiveCore = this;
}
public static PerceiveCore getInstance() {
return perceiveCore;
}
@CapabilityMethod
public String getUser(String id){
log.info("perceive: getUser");
return "";
}
@CapabilityMethod
public String addUser(String userInfo, String platform, String userNickName){
log.info("perceive: addUser");
return "";
}
@CapabilityMethod
public void updateUser(String user){
log.info("perceive: updateUser");
}
}

View File

@@ -0,0 +1,15 @@
import org.junit.jupiter.api.Test;
import work.slhaf.demo.ability.CacheCapability;
import work.slhaf.demo.capability.annotation.InjectCapability;
public class FunctionRouterTest {
@InjectCapability
private CacheCapability cache;
@Test
public void test(){
cache.getUserDialogMapStr("123",111);
}
}

View File

@@ -0,0 +1,5 @@
public interface InterfaceTest {
default String getName(){
return "111";
}
}

View File

@@ -0,0 +1,9 @@
import org.junit.jupiter.api.Test;
public class TestImpl implements InterfaceTest{
@Test
public void test(){
System.out.println(getName());
}
}