mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
需继续为上层模块构建注册体系以适应完整的加载逻辑。
- 移除了 BaseCoordinateManager 抽象类,而是添加了 @CoordinateManager 注解 - 移除了 CapabilityHolder 抽象类,换成 @CapabilityHolder 注解 - 新增了适应新注册机制的部分类,仍需进一步推进
This commit is contained in:
33
Partner-Test-Demo/pom.xml
Normal file
33
Partner-Test-Demo/pom.xml
Normal 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>
|
||||
10
Partner-Test-Demo/src/main/java/work/slhaf/Main.java
Normal file
10
Partner-Test-Demo/src/main/java/work/slhaf/Main.java
Normal 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();
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<>();
|
||||
}
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
15
Partner-Test-Demo/src/test/java/FunctionRouterTest.java
Normal file
15
Partner-Test-Demo/src/test/java/FunctionRouterTest.java
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
5
Partner-Test-Demo/src/test/java/InterfaceTest.java
Normal file
5
Partner-Test-Demo/src/test/java/InterfaceTest.java
Normal file
@@ -0,0 +1,5 @@
|
||||
public interface InterfaceTest {
|
||||
default String getName(){
|
||||
return "111";
|
||||
}
|
||||
}
|
||||
9
Partner-Test-Demo/src/test/java/TestImpl.java
Normal file
9
Partner-Test-Demo/src/test/java/TestImpl.java
Normal file
@@ -0,0 +1,9 @@
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class TestImpl implements InterfaceTest{
|
||||
|
||||
@Test
|
||||
public void test(){
|
||||
System.out.println(getName());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user