diff --git a/jcommon/docean-plugin/docean-plugin-http-server/src/main/java/run/mone/docean/plugin/http/server/HttpServerPlugin.java b/jcommon/docean-plugin/docean-plugin-http-server/src/main/java/run/mone/docean/plugin/http/server/HttpServerPlugin.java index f9504a5fc..70d0a7cb4 100644 --- a/jcommon/docean-plugin/docean-plugin-http-server/src/main/java/run/mone/docean/plugin/http/server/HttpServerPlugin.java +++ b/jcommon/docean-plugin/docean-plugin-http-server/src/main/java/run/mone/docean/plugin/http/server/HttpServerPlugin.java @@ -28,7 +28,6 @@ public boolean start(Ioc ioc) { if (!disable) { new Thread(() -> Safe.run(() -> { DoceanHttpServer server = new DoceanHttpServer(HttpServerConfig.builder() - .cookie(cookie) .port(Integer.valueOf(config.get("docean_http_server_port", "8080"))) .websocket(false) .build()); diff --git a/jcommon/docean-plugin/docean-plugin-test/src/main/java/com/xiaomi/mione/plugin/dao/Run.java b/jcommon/docean-plugin/docean-plugin-test/src/main/java/com/xiaomi/mione/plugin/dao/Run.java new file mode 100644 index 000000000..528522700 --- /dev/null +++ b/jcommon/docean-plugin/docean-plugin-test/src/main/java/com/xiaomi/mione/plugin/dao/Run.java @@ -0,0 +1,14 @@ +package com.xiaomi.mione.plugin.dao; + +/** + * @author goodjava@qq.com + * @date 2023/9/20 14:57 + */ +public class Run { + + + public static void main(String[] args) { + System.out.println("run"); + } + +} diff --git a/jcommon/docean-plugin/docean-plugin-test/src/test/java/com/xiaomi/youpin/docean/plugin/test/IocTest.java b/jcommon/docean-plugin/docean-plugin-test/src/test/java/com/xiaomi/youpin/docean/plugin/test/IocTest.java new file mode 100644 index 000000000..4d9cde8ac --- /dev/null +++ b/jcommon/docean-plugin/docean-plugin-test/src/test/java/com/xiaomi/youpin/docean/plugin/test/IocTest.java @@ -0,0 +1,30 @@ +package com.xiaomi.youpin.docean.plugin.test; + +import com.google.common.collect.Maps; +import com.xiaomi.youpin.docean.Aop; +import com.xiaomi.youpin.docean.Ioc; +import com.xiaomi.youpin.docean.plugin.test.lookup.LookupService; +import org.junit.Test; + +import java.util.stream.IntStream; + +/** + * @author goodjava@qq.com + * @date 2023/9/20 13:55 + */ +public class IocTest { + + + @Test + public void testLookup() { + Aop.ins().init(Maps.newLinkedHashMap()); + Ioc.ins().init("com.xiaomi.youpin.docean.plugin.test.lookup", "com.xiaomi.youpin.docean.plugin.config"); + LookupService ds = Ioc.ins().getBean(LookupService.class); + IntStream.range(0, 5).forEach(i -> { + com.xiaomi.youpin.docean.plugin.test.bo.Test dv = ds.g(); + dv.setId(123); + System.out.println(dv.getId()); + }); + } + +} diff --git a/jcommon/docean-plugin/docean-plugin-test/src/test/java/com/xiaomi/youpin/docean/plugin/test/lookup/LookupService.java b/jcommon/docean-plugin/docean-plugin-test/src/test/java/com/xiaomi/youpin/docean/plugin/test/lookup/LookupService.java new file mode 100644 index 000000000..54ceca941 --- /dev/null +++ b/jcommon/docean-plugin/docean-plugin-test/src/test/java/com/xiaomi/youpin/docean/plugin/test/lookup/LookupService.java @@ -0,0 +1,25 @@ +package com.xiaomi.youpin.docean.plugin.test.lookup; + +import com.xiaomi.youpin.docean.anno.Lookup; +import com.xiaomi.youpin.docean.anno.Service; +import com.xiaomi.youpin.docean.plugin.test.bo.Test; + +/** + * @author goodjava@qq.com + * @date 2023/9/20 13:56 + */ +@Service +public class LookupService { + + @Lookup + public Test getTest() { + return null; + } + + + public Test g() { + return getTest(); + } + + +} diff --git a/jcommon/docean/src/main/java/com/xiaomi/youpin/docean/anno/Lookup.java b/jcommon/docean/src/main/java/com/xiaomi/youpin/docean/anno/Lookup.java index 6a5f66f22..c3f8bb3d8 100644 --- a/jcommon/docean/src/main/java/com/xiaomi/youpin/docean/anno/Lookup.java +++ b/jcommon/docean/src/main/java/com/xiaomi/youpin/docean/anno/Lookup.java @@ -25,4 +25,7 @@ @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Lookup { + + String value() default ""; + } diff --git a/jcommon/docean/src/main/java/com/xiaomi/youpin/docean/interceptor/LookupInterceptor.java b/jcommon/docean/src/main/java/com/xiaomi/youpin/docean/interceptor/LookupInterceptor.java index cf8218ecc..6a6cf4955 100644 --- a/jcommon/docean/src/main/java/com/xiaomi/youpin/docean/interceptor/LookupInterceptor.java +++ b/jcommon/docean/src/main/java/com/xiaomi/youpin/docean/interceptor/LookupInterceptor.java @@ -17,8 +17,11 @@ package com.xiaomi.youpin.docean.interceptor; import com.xiaomi.youpin.docean.Ioc; +import com.xiaomi.youpin.docean.anno.Lookup; import com.xiaomi.youpin.docean.aop.AopContext; import com.xiaomi.youpin.docean.aop.EnhanceInterceptor; +import com.xiaomi.youpin.docean.common.ReflectUtils; +import com.xiaomi.youpin.docean.common.StringUtils; import java.lang.reflect.Method; @@ -31,6 +34,15 @@ public class LookupInterceptor extends EnhanceInterceptor { @Override public Object after(AopContext context, Method method, Object res) { Class returnType = method.getReturnType(); + Lookup lookUp = method.getAnnotation(Lookup.class); + String lookUpvalue = lookUp.value(); + if (StringUtils.isNotEmpty(lookUpvalue)) { + if (lookUpvalue.startsWith("$")) { + String value = Ioc.ins().getBean(lookUpvalue); + lookUpvalue = value; + } + returnType = ReflectUtils.classForName(lookUpvalue); + } return Ioc.ins().createBean(returnType); } } diff --git a/jcommon/docean/src/test/java/com/xiaomi/youpin/docean/test/IocTest.java b/jcommon/docean/src/test/java/com/xiaomi/youpin/docean/test/IocTest.java index a38534647..cb7ca5675 100644 --- a/jcommon/docean/src/test/java/com/xiaomi/youpin/docean/test/IocTest.java +++ b/jcommon/docean/src/test/java/com/xiaomi/youpin/docean/test/IocTest.java @@ -40,6 +40,7 @@ import java.lang.reflect.Field; import java.util.*; +import java.util.stream.IntStream; /** * @author goodjava@qq.com @@ -153,6 +154,20 @@ public void testIoc44() { } + @Test + public void testLookup() { + Aop.ins().init(Maps.newLinkedHashMap()); + Ioc.ins().init("com.xiaomi.youpin.docean.test","com.xiaomi.youpin.docean.plugin.config"); + DemoService ds = Ioc.ins().getBean(DemoService.class); + IntStream.range(0, 5).forEach(i -> { + DemoVo dv = ds.demoVo(); + System.out.println(dv.getId()); + dv.setId(System.currentTimeMillis()+""); + System.out.println(ds.demoVo()); + }); + } + + @Test public void testIoc() { LinkedHashMap m = Maps.newLinkedHashMap(); diff --git a/jcommon/docean/src/test/java/com/xiaomi/youpin/docean/test/demo/DemoService.java b/jcommon/docean/src/test/java/com/xiaomi/youpin/docean/test/demo/DemoService.java index d9f81d011..abe5d29a7 100644 --- a/jcommon/docean/src/test/java/com/xiaomi/youpin/docean/test/demo/DemoService.java +++ b/jcommon/docean/src/test/java/com/xiaomi/youpin/docean/test/demo/DemoService.java @@ -59,7 +59,8 @@ public String vo() { return demoVo().toString(); } - @Lookup +// @Lookup("com.xiaomi.youpin.docean.test.demo.DemoVo") + @Lookup("$demoVo") public DemoVo demoVo() { return null; } diff --git a/jcommon/docean/src/test/resources/config.properties b/jcommon/docean/src/test/resources/config.properties index 92ee9fb33..0940249c2 100644 --- a/jcommon/docean/src/test/resources/config.properties +++ b/jcommon/docean/src/test/resources/config.properties @@ -4,5 +4,7 @@ http_port=9999 cglib=true download_file_path=/tmp/v +demoVo=com.xiaomi.youpin.docean.test.demo.DemoVo + diff --git a/jcommon/file/src/main/java/com/xiaomi/mone/file/ILogFile.java b/jcommon/file/src/main/java/com/xiaomi/mone/file/ILogFile.java new file mode 100644 index 000000000..d1d6f5e59 --- /dev/null +++ b/jcommon/file/src/main/java/com/xiaomi/mone/file/ILogFile.java @@ -0,0 +1,19 @@ +package com.xiaomi.mone.file; + +import java.io.IOException; + +/** + * @author goodjava@qq.com + * @date 2023/9/20 10:39 + */ +public interface ILogFile { + + void readLine() throws IOException; + + void setStop(boolean stop); + + void setReOpen(boolean reOpen); + + void initLogFile(String file, ReadListener listener, long pointer, long lineNumber); + +} diff --git a/jcommon/file/src/main/java/com/xiaomi/mone/file/LogFile.java b/jcommon/file/src/main/java/com/xiaomi/mone/file/LogFile.java index 28a6e9206..05e8fe902 100644 --- a/jcommon/file/src/main/java/com/xiaomi/mone/file/LogFile.java +++ b/jcommon/file/src/main/java/com/xiaomi/mone/file/LogFile.java @@ -17,10 +17,10 @@ * @author goodjava@qq.com */ @Slf4j -public class LogFile { +public class LogFile implements ILogFile{ @Getter - private final String file; + private String file; private MoneRandomAccessFile raf; @@ -50,6 +50,10 @@ public class LogFile { private static final int LINE_MAX_LENGTH = 50000; + public LogFile() { + + } + public LogFile(String file, ReadListener listener) { this.file = file; this.md5 = md5(file); @@ -156,6 +160,15 @@ public void readLine() throws IOException { } } + @Override + public void initLogFile(String file, ReadListener listener, long pointer, long lineNumber) { + this.file = file; + this.md5 = md5(file); + this.listener = listener; + this.pointer = pointer; + this.lineNumber = lineNumber; + } + private String lineCutOff(String line) { if (null != line) { //todo 大行文件先临时截断