diff --git a/.github/ISSUE_TEMPLATE/----.md b/.github/ISSUE_TEMPLATE/----.md deleted file mode 100644 index e4063178..00000000 --- a/.github/ISSUE_TEMPLATE/----.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -name: 问题报告 -about: 描述清楚问题和当前环境 - ---- - -**操作环境** - -|...|...| -|---|---| -|操作系统|Linux| -|JVM版本|OpenJDK-8.0.5| -|沙箱容器版本|1.1.0| -|沙箱API版本|1.0.16| - -**问题描述** - -简明扼要的描述清楚遇到的问题 - -**重现步骤** - -描述通过怎样的操作重现你的问题和疑惑 -1. 第一步 -2. 第二步 -3. 第三步 -4. ... - -**附件(如有)** - -在这个环节添加上可能的附件 diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 331306b5..00000000 --- a/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -## for IDEA -.idea -*.iml - -## for maven -pom.xml.versionsBackup diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index e3b9aa8e..00000000 --- a/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -language: generic - -jdk: - - openjdk6 - - oraclejdk6 - -cache: - directories: - - "$HOME/.m2/repository" - -script: - - mvn clean cobertura:cobertura -Dmaven.test.skip=false - -after_success: - - bash <(curl -s https://codecov.io/bash) \ No newline at end of file diff --git a/bin/sandbox.properties b/bin/sandbox.properties index a1e9f2fe..65555b0e 100755 --- a/bin/sandbox.properties +++ b/bin/sandbox.properties @@ -24,9 +24,3 @@ user_module=~/.sandbox-module; # switch the sandbox can enhance system class unsafe.enable=true -# define the sandbox event pool arguments(min/max/total) -event.pool.enable=true -event.pool.max.total=6000 -event.pool.min.idle.per.event=50 -event.pool.max.idle.per.event=100 -event.pool.max.total.per.event=2000 diff --git a/pom.xml b/pom.xml index d03352bd..5f263e92 100644 --- a/pom.xml +++ b/pom.xml @@ -5,14 +5,14 @@ com.alibaba.jvm.sandbox sandbox - 1.1.2-SNAPSHOT + 1.2.0-SNAPSHOT pom sandbox ${sandbox.version} UTF-8 - 1.1.2-SNAPSHOT + 1.2.0-SNAPSHOT diff --git a/sandbox-agent/pom.xml b/sandbox-agent/pom.xml index 6037e4a7..5ce9c8c8 100755 --- a/sandbox-agent/pom.xml +++ b/sandbox-agent/pom.xml @@ -6,7 +6,7 @@ com.alibaba.jvm.sandbox sandbox - 1.1.2-SNAPSHOT + 1.2.0-SNAPSHOT sandbox-agent sandbox-agent ${sandbox.version} diff --git a/sandbox-agent/target/classes/com/alibaba/jvm/sandbox/agent/AgentLauncher.class b/sandbox-agent/target/classes/com/alibaba/jvm/sandbox/agent/AgentLauncher.class deleted file mode 100644 index 241b74a2..00000000 Binary files a/sandbox-agent/target/classes/com/alibaba/jvm/sandbox/agent/AgentLauncher.class and /dev/null differ diff --git a/sandbox-agent/target/classes/com/alibaba/jvm/sandbox/agent/SandboxClassLoader.class b/sandbox-agent/target/classes/com/alibaba/jvm/sandbox/agent/SandboxClassLoader.class deleted file mode 100644 index 9aa22bb4..00000000 Binary files a/sandbox-agent/target/classes/com/alibaba/jvm/sandbox/agent/SandboxClassLoader.class and /dev/null differ diff --git a/sandbox-api/pom.xml b/sandbox-api/pom.xml index 038bf51d..0efc41f5 100755 --- a/sandbox-api/pom.xml +++ b/sandbox-api/pom.xml @@ -6,7 +6,7 @@ com.alibaba.jvm.sandbox sandbox - 1.1.2-SNAPSHOT + 1.2.0-SNAPSHOT sandbox-api sandbox-api ${sandbox.version} @@ -21,10 +21,13 @@ com.alibaba.jvm.sandbox sandbox-common-api + + javax.servlet javax.servlet-api + diff --git a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/annotation/Command.java b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/annotation/Command.java new file mode 100644 index 00000000..b103c9a8 --- /dev/null +++ b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/annotation/Command.java @@ -0,0 +1,34 @@ +package com.alibaba.jvm.sandbox.api.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +/** + * 模块命令注解,拥有此注解的模块方法将能接收到从{@code sandbox.sh -d} 发出的命令 + *

+ * 有这个注解的方法只能接收四类型的参数: + *

+ * + * @author luanjia@taobao.com + * @since {@code sandbox-api:1.2.0} + */ +@Target(METHOD) +@Retention(RUNTIME) +public @interface Command { + + /** + * 命令名称 + * + * @return 命令名称 + */ + String value(); + +} diff --git a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/Http.java b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/Http.java index 39badc2d..699c165b 100755 --- a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/Http.java +++ b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/Http.java @@ -9,9 +9,11 @@ * HTTP服务请求 * * @author luanjia@taobao.com + * @deprecated 请使用 {@link com.alibaba.jvm.sandbox.api.annotation.Command} */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) +@Deprecated public @interface Http { /** diff --git a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/TextMessageListener.java b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/TextMessageListener.java index 3181020c..3ce92aa6 100755 --- a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/TextMessageListener.java +++ b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/TextMessageListener.java @@ -5,6 +5,7 @@ * * @author luanjia@taobao.com */ +@Deprecated public interface TextMessageListener extends WebSocketConnectionListener { /** diff --git a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketAcceptor.java b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketAcceptor.java index 4b09cb3a..38f72f61 100755 --- a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketAcceptor.java +++ b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketAcceptor.java @@ -7,6 +7,7 @@ * * @author luanjia@taobao.com */ +@Deprecated public interface WebSocketAcceptor { /** diff --git a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnection.java b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnection.java index e1017804..9839562a 100755 --- a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnection.java +++ b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnection.java @@ -7,6 +7,7 @@ * * @author luanjia@taobao.com */ +@Deprecated public interface WebSocketConnection { /** diff --git a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnectionListener.java b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnectionListener.java index 22e19918..e8801e08 100755 --- a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnectionListener.java +++ b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnectionListener.java @@ -5,6 +5,7 @@ * * @author luanjia@taobao.com */ +@Deprecated public interface WebSocketConnectionListener { /** diff --git a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener.java b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener.java index 57378215..4a547f42 100644 --- a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener.java +++ b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener.java @@ -33,6 +33,23 @@ protected OpStack initialValue() { @Override final public void onEvent(final Event event) throws Throwable { + final OpStack opStack = opStackRef.get(); + try { + switchEvent(opStack, event); + } finally { + // 如果执行到TOP的最后一个事件,则需要主动清理占用的资源 + if (opStack.isEmpty()) { + opStackRef.remove(); + } + } + + } + + + // 执行事件 + private void switchEvent(final OpStack opStack, + final Event event) throws Throwable { + switch (event.type) { case BEFORE: { final BeforeEvent bEvent = (BeforeEvent) event; @@ -50,7 +67,6 @@ final public void onEvent(final Event event) throws Throwable { bEvent.target ); - final OpStack opStack = opStackRef.get(); final Advice top; final Advice parent; @@ -78,11 +94,12 @@ final public void onEvent(final Event event) throws Throwable { case IMMEDIATELY_THROWS: case IMMEDIATELY_RETURN: { final InvokeEvent invokeEvent = (InvokeEvent) event; - opStackRef.get().popByExpectInvokeId(invokeEvent.invokeId); + opStack.popByExpectInvokeId(invokeEvent.invokeId); + // 修复#123 + break; } case RETURN: { - final OpStack opStack = opStackRef.get(); final ReturnEvent rEvent = (ReturnEvent) event; final WrapAdvice wrapAdvice = opStack.popByExpectInvokeId(rEvent.invokeId); if (null != wrapAdvice) { @@ -91,7 +108,6 @@ final public void onEvent(final Event event) throws Throwable { break; } case THROWS: { - final OpStack opStack = opStackRef.get(); final ThrowsEvent tEvent = (ThrowsEvent) event; final WrapAdvice wrapAdvice = opStack.popByExpectInvokeId(tEvent.invokeId); if (null != wrapAdvice) { @@ -101,7 +117,6 @@ final public void onEvent(final Event event) throws Throwable { } case CALL_BEFORE: { - final OpStack opStack = opStackRef.get(); final CallBeforeEvent cbEvent = (CallBeforeEvent) event; final WrapAdvice wrapAdvice = opStack.peekByExpectInvokeId(cbEvent.invokeId); if (null == wrapAdvice) { @@ -125,7 +140,6 @@ final public void onEvent(final Event event) throws Throwable { } case CALL_RETURN: { - final OpStack opStack = opStackRef.get(); final CallReturnEvent crEvent = (CallReturnEvent) event; final WrapAdvice wrapAdvice = opStack.peekByExpectInvokeId(crEvent.invokeId); if (null == wrapAdvice) { @@ -147,7 +161,6 @@ final public void onEvent(final Event event) throws Throwable { } case CALL_THROWS: { - final OpStack opStack = opStackRef.get(); final CallThrowsEvent ctEvent = (CallThrowsEvent) event; final WrapAdvice wrapAdvice = opStack.peekByExpectInvokeId(ctEvent.invokeId); if (null == wrapAdvice) { @@ -170,7 +183,6 @@ final public void onEvent(final Event event) throws Throwable { } case LINE: { - final OpStack opStack = opStackRef.get(); final LineEvent lEvent = (LineEvent) event; final WrapAdvice wrapAdvice = opStack.peekByExpectInvokeId(lEvent.invokeId); if (null == wrapAdvice) { @@ -208,6 +220,12 @@ void pushForBegin(final Advice advice) { adviceStack.push(new WrapAdvice(advice)); } + WrapAdvice pop() { + return !adviceStack.isEmpty() + ? adviceStack.pop() + : null; + } + /** * 在通知堆栈中,BEFORE:[RETURN/THROWS]的invokeId是配对的, * 如果发生错位则说明BEFORE的事件没有被成功压入堆栈,没有被正确的处理,外界没有正确感知BEFORE diff --git a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/resource/EventMonitor.java b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/resource/EventMonitor.java index 48943dc6..21971d3a 100644 --- a/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/resource/EventMonitor.java +++ b/sandbox-api/src/main/java/com/alibaba/jvm/sandbox/api/resource/EventMonitor.java @@ -7,7 +7,9 @@ * * @author luanjia@taobao.com * @since {@code sandbox-api:1.0.9} + * @deprecated 后续不再支持事件池 */ +@Deprecated public interface EventMonitor { /** @@ -15,6 +17,7 @@ public interface EventMonitor { * * @author luanjia@taobao.com * @since {@code sandbox-api:1.0.9} + * @deprecated 后续不再支持事件池 */ interface EventPoolInfo { diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/LoadCompleted.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/LoadCompleted.class deleted file mode 100644 index e0c8a17b..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/LoadCompleted.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/ModuleLifecycle.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/ModuleLifecycle.class deleted file mode 100644 index bca61491..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/ModuleLifecycle.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/ProcessControlException$State.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/ProcessControlException$State.class deleted file mode 100644 index a6be8d69..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/ProcessControlException$State.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/ProcessControlException.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/ProcessControlException.class deleted file mode 100644 index a74823fa..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/ProcessControlException.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/ProcessController.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/ProcessController.class deleted file mode 100644 index e86fe456..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/ProcessController.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/annotation/IncludeBootstrap.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/annotation/IncludeBootstrap.class deleted file mode 100644 index 9c5e5fd7..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/annotation/IncludeBootstrap.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/annotation/IncludeSubClasses.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/annotation/IncludeSubClasses.class deleted file mode 100644 index d64b857d..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/annotation/IncludeSubClasses.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/annotation/Stealth.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/annotation/Stealth.class deleted file mode 100644 index f5a45dfb..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/annotation/Stealth.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/BeforeEvent.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/BeforeEvent.class deleted file mode 100644 index 3e86af8f..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/BeforeEvent.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/CallBeforeEvent.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/CallBeforeEvent.class deleted file mode 100644 index 79e59670..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/CallBeforeEvent.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/CallReturnEvent.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/CallReturnEvent.class deleted file mode 100644 index 0fda01f2..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/CallReturnEvent.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/CallThrowsEvent.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/CallThrowsEvent.class deleted file mode 100644 index 412cd19c..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/CallThrowsEvent.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/Event$Type.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/Event$Type.class deleted file mode 100644 index f9d632f2..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/Event$Type.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/Event.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/Event.class deleted file mode 100644 index b9297c59..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/Event.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/ImmediatelyReturnEvent.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/ImmediatelyReturnEvent.class deleted file mode 100644 index 142201af..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/ImmediatelyReturnEvent.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/ImmediatelyThrowsEvent.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/ImmediatelyThrowsEvent.class deleted file mode 100644 index dbfbe855..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/ImmediatelyThrowsEvent.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/InvokeEvent.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/InvokeEvent.class deleted file mode 100644 index 0ced2205..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/InvokeEvent.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/LineEvent.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/LineEvent.class deleted file mode 100644 index adcc939c..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/LineEvent.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/ReturnEvent.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/ReturnEvent.class deleted file mode 100644 index 03c9b1f6..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/ReturnEvent.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/ThrowsEvent.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/ThrowsEvent.class deleted file mode 100644 index 07854871..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/event/ThrowsEvent.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/AccessFlags.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/AccessFlags.class deleted file mode 100644 index cd4f6bde..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/AccessFlags.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/ExtFilter$ExtFilterFactory$1.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/ExtFilter$ExtFilterFactory$1.class deleted file mode 100644 index e90cb035..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/ExtFilter$ExtFilterFactory$1.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/ExtFilter$ExtFilterFactory.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/ExtFilter$ExtFilterFactory.class deleted file mode 100644 index 033897e8..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/ExtFilter$ExtFilterFactory.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/ExtFilter.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/ExtFilter.class deleted file mode 100644 index 1f8a7a46..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/ExtFilter.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/Filter.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/Filter.class deleted file mode 100644 index 16f3de36..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/Filter.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/NameRegexFilter.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/NameRegexFilter.class deleted file mode 100644 index 6e141be2..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/NameRegexFilter.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/OrGroupFilter.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/OrGroupFilter.class deleted file mode 100644 index ec2c4152..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/filter/OrGroupFilter.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/Http$Method.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/Http$Method.class deleted file mode 100644 index f683b5ca..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/Http$Method.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/Http.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/Http.class deleted file mode 100644 index cce836da..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/Http.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/printer/ConcurrentLinkedQueuePrinter.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/printer/ConcurrentLinkedQueuePrinter.class deleted file mode 100644 index 84e88d8c..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/printer/ConcurrentLinkedQueuePrinter.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/printer/Printer.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/printer/Printer.class deleted file mode 100644 index 64113ec1..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/printer/Printer.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/websocket/TextMessageListener.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/websocket/TextMessageListener.class deleted file mode 100644 index 64332b4e..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/websocket/TextMessageListener.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketAcceptor.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketAcceptor.class deleted file mode 100644 index 0898c4d0..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketAcceptor.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnection.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnection.class deleted file mode 100644 index 112e6292..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnection.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnectionListener.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnectionListener.class deleted file mode 100644 index 26b5d32c..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/http/websocket/WebSocketConnectionListener.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/EventListener.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/EventListener.class deleted file mode 100644 index 2c605dea..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/EventListener.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/EventListenerFactory.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/EventListenerFactory.class deleted file mode 100644 index 4eef0dad..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/EventListenerFactory.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/Sentry$1.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/Sentry$1.class deleted file mode 100644 index 4d35e84c..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/Sentry$1.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/Sentry$WrapData.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/Sentry$WrapData.class deleted file mode 100644 index 259d373e..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/Sentry$WrapData.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/Sentry.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/Sentry.class deleted file mode 100644 index 2d2abaad..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/Sentry.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ThreadSafeEventListener$1.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ThreadSafeEventListener$1.class deleted file mode 100644 index a997f999..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ThreadSafeEventListener$1.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ThreadSafeEventListener.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ThreadSafeEventListener.class deleted file mode 100644 index ec5c3c4f..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ThreadSafeEventListener.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Advice.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Advice.class deleted file mode 100644 index a06906dd..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Advice.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$1.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$1.class deleted file mode 100644 index a4487c47..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$1.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$2.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$2.class deleted file mode 100644 index 1060fb38..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$2.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$3.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$3.class deleted file mode 100644 index 34199cbe..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$3.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$BehaviorCacheKey.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$BehaviorCacheKey.class deleted file mode 100644 index 156c0d80..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$BehaviorCacheKey.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$CallTarget.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$CallTarget.class deleted file mode 100644 index 609cdf24..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$CallTarget.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$OpStack.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$OpStack.class deleted file mode 100644 index e44f71ed..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$OpStack.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$WrapAdvice.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$WrapAdvice.class deleted file mode 100644 index 58e03e60..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener$WrapAdvice.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener.class deleted file mode 100644 index f6ec9618..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceAdapterListener.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceListener.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceListener.class deleted file mode 100644 index 458de9ca..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/AdviceListener.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Attachment.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Attachment.class deleted file mode 100644 index 54d38acb..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Attachment.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Behavior$ConstructorImpl.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Behavior$ConstructorImpl.class deleted file mode 100644 index 1741d4b7..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Behavior$ConstructorImpl.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Behavior$MethodImpl.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Behavior$MethodImpl.class deleted file mode 100644 index 024fc7e6..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Behavior$MethodImpl.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Behavior.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Behavior.class deleted file mode 100644 index 98169437..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/Behavior.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$1.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$1.class deleted file mode 100644 index 2a34c21e..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$1.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$2.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$2.class deleted file mode 100644 index 6bd7c986..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$2.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$3.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$3.class deleted file mode 100644 index 39a293c3..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$3.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$4.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$4.class deleted file mode 100644 index 973aad96..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$4.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$BuildingForBehavior.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$BuildingForBehavior.class deleted file mode 100644 index d314b40c..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$BuildingForBehavior.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$BuildingForClass.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$BuildingForClass.class deleted file mode 100644 index d9b5c5d3..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$BuildingForClass.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$BuildingForWatching.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$BuildingForWatching.class deleted file mode 100644 index 5c80aaa1..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$BuildingForWatching.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$Group.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$Group.class deleted file mode 100644 index 785add92..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$Group.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$IBuildingForBehavior.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$IBuildingForBehavior.class deleted file mode 100644 index 1bdea718..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$IBuildingForBehavior.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$IBuildingForClass.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$IBuildingForClass.class deleted file mode 100644 index 15483608..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$IBuildingForClass.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$IBuildingForUnWatching.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$IBuildingForUnWatching.class deleted file mode 100644 index 6ad723e0..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$IBuildingForUnWatching.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$IBuildingForWatching.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$IBuildingForWatching.class deleted file mode 100644 index 90d5fb00..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$IBuildingForWatching.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$PatternGroupList.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$PatternGroupList.class deleted file mode 100644 index 9067052b..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$PatternGroupList.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$PatternType.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$PatternType.class deleted file mode 100644 index eb055ef1..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$PatternType.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$ProgressGroup.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$ProgressGroup.class deleted file mode 100644 index 5a1c133c..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder$ProgressGroup.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder.class deleted file mode 100644 index 1cac3b15..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchBuilder.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchCondition.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchCondition.class deleted file mode 100644 index 8049cd70..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatchCondition.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatcher.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatcher.class deleted file mode 100644 index d1dee247..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/listener/ext/EventWatcher.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/EventMonitor$EventPoolInfo.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/EventMonitor$EventPoolInfo.class deleted file mode 100644 index f569e7bb..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/EventMonitor$EventPoolInfo.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/EventMonitor.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/EventMonitor.class deleted file mode 100644 index 99445eb6..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/EventMonitor.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/LoadedClassDataSource.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/LoadedClassDataSource.class deleted file mode 100644 index bcfed26e..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/LoadedClassDataSource.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleController.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleController.class deleted file mode 100644 index a838fb3b..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleController.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleEventWatcher$Progress.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleEventWatcher$Progress.class deleted file mode 100644 index 40c9c1bb..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleEventWatcher$Progress.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleEventWatcher$WatchCallback.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleEventWatcher$WatchCallback.class deleted file mode 100644 index 1e56d4f7..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleEventWatcher$WatchCallback.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleEventWatcher.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleEventWatcher.class deleted file mode 100644 index 13891554..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleEventWatcher.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleManager.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleManager.class deleted file mode 100644 index 2c34f2d3..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ModuleManager.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/BehaviorDescriptor$Type.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/BehaviorDescriptor$Type.class deleted file mode 100644 index b92dbd78..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/BehaviorDescriptor$Type.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/BehaviorDescriptor.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/BehaviorDescriptor.class deleted file mode 100644 index 2b212529..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/BehaviorDescriptor.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/CacheGet$CacheLoadUnCaughtException.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/CacheGet$CacheLoadUnCaughtException.class deleted file mode 100644 index 1c01ff2a..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/CacheGet$CacheLoadUnCaughtException.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/CacheGet.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/CacheGet.class deleted file mode 100644 index 38e22710..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/CacheGet.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/GaArrayUtils.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/GaArrayUtils.class deleted file mode 100644 index 957c5bad..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/GaArrayUtils.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/GaCollectionUtils.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/GaCollectionUtils.class deleted file mode 100644 index 9140c10f..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/GaCollectionUtils.class and /dev/null differ diff --git a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/GaStringUtils.class b/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/GaStringUtils.class deleted file mode 100644 index 30c8a46d..00000000 Binary files a/sandbox-api/target/classes/com/alibaba/jvm/sandbox/api/util/GaStringUtils.class and /dev/null differ diff --git a/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/AdviceListenerTestCase$1.class b/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/AdviceListenerTestCase$1.class deleted file mode 100644 index 6dfad96f..00000000 Binary files a/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/AdviceListenerTestCase$1.class and /dev/null differ diff --git a/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/AdviceListenerTestCase.class b/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/AdviceListenerTestCase.class deleted file mode 100644 index 00f6b5d1..00000000 Binary files a/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/AdviceListenerTestCase.class and /dev/null differ diff --git a/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/EventWatchBuilderTestCase.class b/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/EventWatchBuilderTestCase.class deleted file mode 100644 index 7f0e59fe..00000000 Binary files a/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/EventWatchBuilderTestCase.class and /dev/null differ diff --git a/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/mock/MockForBuilderModuleEventWatcher.class b/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/mock/MockForBuilderModuleEventWatcher.class deleted file mode 100644 index df83b55f..00000000 Binary files a/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/mock/MockForBuilderModuleEventWatcher.class and /dev/null differ diff --git a/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/mock/MockForBuilderProgress.class b/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/mock/MockForBuilderProgress.class deleted file mode 100644 index e1736ce7..00000000 Binary files a/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/mock/MockForBuilderProgress.class and /dev/null differ diff --git a/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/util/ApiQaArrayUtils.class b/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/util/ApiQaArrayUtils.class deleted file mode 100644 index fb7f5cc0..00000000 Binary files a/sandbox-api/target/test-classes/com/alibaba/jvm/sandbox/qatest/api/util/ApiQaArrayUtils.class and /dev/null differ diff --git a/sandbox-api/target/test-classes/logback.xml b/sandbox-api/target/test-classes/logback.xml deleted file mode 100755 index c7f37818..00000000 --- a/sandbox-api/target/test-classes/logback.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - %d{yyyy-MM-dd HH:mm:ss} %5level %msg%n   - - - - - - - - \ No newline at end of file diff --git a/sandbox-common-api/pom.xml b/sandbox-common-api/pom.xml index d823e237..d70f595d 100644 --- a/sandbox-common-api/pom.xml +++ b/sandbox-common-api/pom.xml @@ -6,7 +6,7 @@ sandbox com.alibaba.jvm.sandbox - 1.1.2-SNAPSHOT + 1.2.0-SNAPSHOT sandbox-common-api sandbox-common-api ${sandbox.version} diff --git a/sandbox-common-api/src/main/java/com/alibaba/jvm/sandbox/api/resource/ConfigInfo.java b/sandbox-common-api/src/main/java/com/alibaba/jvm/sandbox/api/resource/ConfigInfo.java index 8df7453b..d58cbc6f 100755 --- a/sandbox-common-api/src/main/java/com/alibaba/jvm/sandbox/api/resource/ConfigInfo.java +++ b/sandbox-common-api/src/main/java/com/alibaba/jvm/sandbox/api/resource/ConfigInfo.java @@ -93,7 +93,9 @@ public interface ConfigInfo { *

${SANDBOX_HOME}/cfg/sandbox.properties#event.pool.enable中进行开启关闭

* * @return true:启用;false:不启用 + * @deprecated 后续不再支持事件池 */ + @Deprecated boolean isEnableEventPool(); /** @@ -101,7 +103,9 @@ public interface ConfigInfo { * * @return 单个事件类型缓存最小数量 * @deprecated 已经被废弃,推荐使用{@link #getEventPoolMaxIdlePerEvent()} + * @deprecated 后续不再支持事件池 */ + @Deprecated int getEventPoolKeyMin(); /** @@ -109,7 +113,9 @@ public interface ConfigInfo { * * @return 单个事件类型缓存最大数量 * @deprecated 已被废弃,推荐使用{@link #getEventPoolMaxTotalPerEvent()} + * @deprecated 后续不再支持事件池 */ + @Deprecated int getEventPoolKeyMax(); /** @@ -117,7 +123,9 @@ public interface ConfigInfo { * * @return 所有事件类型缓存最大总数量 * @deprecated 已被废弃,推荐使用{@link #getEventPoolMaxTotal()} + * @deprecated 后续不再支持事件池 */ + @Deprecated int getEventPoolTotal(); /** @@ -125,7 +133,9 @@ public interface ConfigInfo { * * @return 事件池最大容量 * @since {@code sandbox-common-api:1.0.1} + * @deprecated 后续不再支持事件池 */ + @Deprecated int getEventPoolMaxTotal(); /** @@ -133,7 +143,9 @@ public interface ConfigInfo { * * @return 事件池每个事件最小空闲容量 * @since {@code sandbox-common-api:1.0.1} + * @deprecated 后续不再支持事件池 */ + @Deprecated int getEventPoolMinIdlePerEvent(); /** @@ -141,7 +153,9 @@ public interface ConfigInfo { * * @return 事件池每个事件最大空闲容量 * @since {@code sandbox-common-api:1.0.1} + * @deprecated 后续不再支持事件池 */ + @Deprecated int getEventPoolMaxIdlePerEvent(); /** @@ -149,7 +163,9 @@ public interface ConfigInfo { * * @return 事件池每个事件最大容量 * @since {@code sandbox-common-api:1.0.1} + * @deprecated 后续不再支持事件池 */ + @Deprecated int getEventPoolMaxTotalPerEvent(); diff --git a/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/Information$Mode.class b/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/Information$Mode.class deleted file mode 100644 index 7e211bf8..00000000 Binary files a/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/Information$Mode.class and /dev/null differ diff --git a/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/Information.class b/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/Information.class deleted file mode 100644 index 8b255194..00000000 Binary files a/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/Information.class and /dev/null differ diff --git a/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/Module.class b/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/Module.class deleted file mode 100644 index 1630ef51..00000000 Binary files a/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/Module.class and /dev/null differ diff --git a/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/ModuleException$ErrorCode.class b/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/ModuleException$ErrorCode.class deleted file mode 100644 index 5a6759c3..00000000 Binary files a/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/ModuleException$ErrorCode.class and /dev/null differ diff --git a/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/ModuleException.class b/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/ModuleException.class deleted file mode 100644 index 5bc9e065..00000000 Binary files a/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/ModuleException.class and /dev/null differ diff --git a/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ConfigInfo.class b/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ConfigInfo.class deleted file mode 100644 index 7b9235a7..00000000 Binary files a/sandbox-common-api/target/classes/com/alibaba/jvm/sandbox/api/resource/ConfigInfo.class and /dev/null differ diff --git a/sandbox-core/pom.xml b/sandbox-core/pom.xml index 23b3c037..f880e109 100755 --- a/sandbox-core/pom.xml +++ b/sandbox-core/pom.xml @@ -6,7 +6,7 @@ com.alibaba.jvm.sandbox sandbox - 1.1.2-SNAPSHOT + 1.2.0-SNAPSHOT sandbox-core sandbox-core ${sandbox.version} diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/CoreConfigure.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/CoreConfigure.java index a16011a2..a6f654ac 100755 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/CoreConfigure.java +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/CoreConfigure.java @@ -1,7 +1,6 @@ package com.alibaba.jvm.sandbox.core; import com.alibaba.jvm.sandbox.api.Information; -import com.alibaba.jvm.sandbox.api.event.Event; import com.alibaba.jvm.sandbox.core.util.FeatureCodec; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; @@ -34,16 +33,6 @@ public class CoreConfigure { private static final String KEY_CFG_LIB_PATH = "cfg"; private static final String VAL_LAUNCH_MODE_AGENT = "agent"; private static final String VAL_LAUNCH_MODE_ATTACH = "attach"; - private static final String KEY_EVENT_POOL_ENABLE = "event.pool.enable"; - - // ------------------------------------- 事件池配置 ------------------------------------- - private static final String KEY_EVENT_POOL_MAX_TOTAL = "event.pool.max.total"; - private static final String KEY_EVENT_POOL_MIN_IDLE_PER_EVENT = "event.pool.min.idle.per.event"; - private static final int DEFAULT_VAL_EVENT_POOL_MIN_IDLE_PER_EVENT = 50; - private static final String KEY_EVENT_POOL_MAX_IDLE_PER_EVENT = "event.pool.max.idle.per.event"; - private static final int DEFAULT_VAL_EVENT_POOL_MAX_IDLE_PER_EVENT = 100; - private static final String KEY_EVENT_POOL_MAX_TOTAL_PER_EVENT = "event.pool.max.total.per.event"; - private static final int DEFAULT_VAL_EVENT_POOL_MAX_TOTAL_PER_EVENT = 2000; private static final String KEY_UNSAFE_ENABLE = "unsafe.enable"; @@ -176,16 +165,6 @@ public synchronized File[] getUserModuleLibFiles() { } } -// final DirectoryScanner scanner = new DirectoryScanner(); -// scanner.setIncludes(getUserModuleLibPaths()); -// scanner.setCaseSensitive(false); -// scanner.scan(); -// final String[] filePaths = scanner.getIncludedDirectories(); -// final File[] files = new File[filePaths.length]; -// for (int index = 0; index < filePaths.length; index++) { -// files[index] = new File(filePaths[index]); -// } - return GET_USER_MODULE_LIB_FILES_CACHE = foundModuleJarFiles.toArray(new File[]{}); } @@ -254,45 +233,6 @@ public Information.Mode getLaunchMode() { return Information.Mode.ATTACH; } - - public int getEventPoolMaxTotal() { - return NumberUtils.toInt( - featureMap.get(KEY_EVENT_POOL_MAX_TOTAL), - getEventPoolMaxTotalPerEvent() * Event.Type.values().length - ); - } - - public int getEventPoolMinIdlePerEvent() { - return NumberUtils.toInt( - featureMap.get(KEY_EVENT_POOL_MIN_IDLE_PER_EVENT), - DEFAULT_VAL_EVENT_POOL_MIN_IDLE_PER_EVENT - ); - } - - public int getEventPoolMaxIdlePerEvent() { - return NumberUtils.toInt( - featureMap.get(KEY_EVENT_POOL_MAX_IDLE_PER_EVENT), - DEFAULT_VAL_EVENT_POOL_MAX_IDLE_PER_EVENT - ); - } - - public int getEventPoolMaxTotalPerEvent() { - return NumberUtils.toInt( - featureMap.get(KEY_EVENT_POOL_MAX_TOTAL_PER_EVENT), - DEFAULT_VAL_EVENT_POOL_MAX_TOTAL_PER_EVENT - ); - } - - - /** - * 是否启用事件池 - * - * @return event.pool.enable - */ - public boolean isEventPoolEnable() { - return BooleanUtils.toBoolean(featureMap.get(KEY_EVENT_POOL_ENABLE)); - } - /** * 是否启用Unsafe功能 * diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/CoreLauncher.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/CoreLauncher.java index 8847a7bf..40cff20a 100755 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/CoreLauncher.java +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/CoreLauncher.java @@ -16,11 +16,6 @@ public CoreLauncher(final String targetJvmPid, final String agentJarPath, final String token) throws Exception { - System.out.println(String.format("attaching to JVM(%s), agent-jar=%s;", - targetJvmPid, - agentJarPath - )); - // 加载agent attachAgent(targetJvmPid, agentJarPath, token); diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/annotation/Interrupted.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/annotation/Interrupted.java index df1657ba..5a9969b0 100755 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/annotation/Interrupted.java +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/annotation/Interrupted.java @@ -5,7 +5,7 @@ /** * 中断式事件处理器 * 当事件处理器处理事件抛出异常时,将会中断原有方法调用 - * Created by luanjia@taobao.com on 16/7/26. + * @author luanjia@taobao.com */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers.java index f9121a79..db057725 100755 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers.java +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers.java @@ -3,25 +3,23 @@ import com.alibaba.jvm.sandbox.api.ProcessControlException; import com.alibaba.jvm.sandbox.api.event.BeforeEvent; import com.alibaba.jvm.sandbox.api.event.Event; -import com.alibaba.jvm.sandbox.api.event.ReturnEvent; -import com.alibaba.jvm.sandbox.api.event.ThrowsEvent; +import com.alibaba.jvm.sandbox.api.event.ImmediatelyReturnEvent; +import com.alibaba.jvm.sandbox.api.event.ImmediatelyThrowsEvent; import com.alibaba.jvm.sandbox.api.listener.EventListener; -import com.alibaba.jvm.sandbox.core.enhance.annotation.Interrupted; -import com.alibaba.jvm.sandbox.core.util.EventPool; import com.alibaba.jvm.sandbox.core.util.ObjectIDs; import com.alibaba.jvm.sandbox.core.util.Sequencer; -import com.alibaba.jvm.sandbox.core.util.collection.GaStack; -import com.alibaba.jvm.sandbox.core.util.collection.ThreadUnsafeGaStack; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.com.alibaba.jvm.sandbox.spy.Spy; -import java.lang.reflect.Method; import java.util.Map; -import java.util.WeakHashMap; import java.util.concurrent.ConcurrentHashMap; -import static com.alibaba.jvm.sandbox.core.util.SandboxReflectUtils.unCaughtGetClassDeclaredJavaMethod; +import static com.alibaba.jvm.sandbox.api.event.Event.Type.IMMEDIATELY_RETURN; +import static com.alibaba.jvm.sandbox.api.event.Event.Type.IMMEDIATELY_THROWS; +import static com.alibaba.jvm.sandbox.core.util.SandboxReflectUtils.isInterruptEventHandler; +import static java.com.alibaba.jvm.sandbox.spy.Spy.Ret.newInstanceForNone; +import static org.apache.commons.lang3.ArrayUtils.contains; import static org.apache.commons.lang3.StringUtils.join; /** @@ -37,37 +35,24 @@ public class EventListenerHandlers { private final Sequencer invokeIdSequencer = new Sequencer(1000); // 全局处理器ID:处理器映射集合 - private final Map globalEventListenerMap - = new ConcurrentHashMap(); - - // 事件对象池 - private final EventPool eventPool = new EventPool(); - - /** - * 获取事件对象池 - * - * @return 事件对象池 - */ - public EventPool getEventPool() { - return eventPool; - } + private final Map mappingOfEventProcessor + = new ConcurrentHashMap(); /** * 注册事件处理器 * - * @param listenerId 事件监听器ID - * @param listener 事件监听器 - * @param eventTypeArray 监听事件集合 + * @param listenerId 事件监听器ID + * @param listener 事件监听器 + * @param eventTypes 监听事件集合 */ public void active(final int listenerId, final EventListener listener, - final Event.Type[] eventTypeArray) { - final EventListenerWrap wrap = new EventListenerWrap(listenerId, listener, eventTypeArray); - globalEventListenerMap.put(listenerId, wrap); + final Event.Type[] eventTypes) { + mappingOfEventProcessor.put(listenerId, new EventProcessor(listenerId, listener, eventTypes)); logger.info("activated listener[id={};target={};] event={}", listenerId, listener, - join(eventTypeArray, ",") + join(eventTypes, ",") ); } @@ -77,16 +62,18 @@ public void active(final int listenerId, * @param listenerId 事件处理器ID */ public void frozen(int listenerId) { - final EventListenerWrap wrap = globalEventListenerMap.remove(listenerId); - if (null == wrap) { + final EventProcessor processor = mappingOfEventProcessor.remove(listenerId); + if (null == processor) { logger.debug("ignore frozen listener[id={};], because not found."); return; } logger.info("frozen listener[id={};target={};]", listenerId, - wrap.listener + processor.listener ); + + processor.clean(); } /** @@ -96,7 +83,7 @@ public void frozen(int listenerId) { * @param processId 调用过程ID * @param invokeId 调用ID * @param event 调用事件 - * @param wrap 事件处理器封装 + * @param processor 事件处理器 * @return 处理返回结果 * @throws Throwable 当出现未知异常时,且事件处理器为中断流程事件时抛出 */ @@ -104,20 +91,22 @@ private Spy.Ret handleEvent(final int listenerId, final int processId, final int invokeId, final Event event, - final EventListenerWrap wrap) throws Throwable { - final EventListener listener = wrap.listener; + final EventProcessor processor) throws Throwable { + final EventListener listener = processor.listener; try { - // 调用事件处理 - listener.onEvent(event); - if (logger.isDebugEnabled()) { - logger.debug("on-event: event|{}|{}|{}@listener|{}", - event.type, - processId, - invokeId, - listenerId - ); + if (contains(processor.eventTypes, event.type)) { + // 调用事件处理 + listener.onEvent(event); + if (logger.isDebugEnabled()) { + logger.debug("on-event: event|{}|{}|{}@listener|{}", + event.type, + processId, + invokeId, + listenerId + ); + } } } @@ -125,6 +114,8 @@ private Spy.Ret handleEvent(final int listenerId, // 代码执行流程变更 catch (ProcessControlException pce) { + final EventProcessor.Process process = processor.processRef.get(); + final ProcessControlException.State state = pce.getState(); logger.debug("on-event: event|{}|{}|{};listener|{}, process-changed: {}. isIgnoreProcessEvent={};", event.type, @@ -135,12 +126,10 @@ private Spy.Ret handleEvent(final int listenerId, pce.isIgnoreProcessEvent() ); - final EventListenerWrap.EventProcess eventProcess = wrap.eventProcessRef.get(); - // 如果流程控制要求忽略后续处理所有事件,则需要在此处进行标记 // 标记当前线程中、当前EventListener中需要主动忽略的ProcessId if (pce.isIgnoreProcessEvent()) { - eventProcess.markIgnoreProcessEvent(processId); + process.markIgnoreProcessId(processId); } switch (state) { @@ -148,38 +137,51 @@ private Spy.Ret handleEvent(final int listenerId, // 立即返回对象 case RETURN_IMMEDIATELY: { - // 将BEFORE压入的堆栈弹出 + // 如果在BeforeEvent处理过程中发生ProcessControl行为,将会造成堆栈错位 + // 所以这里需要将错位的堆栈进行补齐 if (event instanceof BeforeEvent) { - final GaStack stack = wrap.eventProcessRef.get().processStack; - stack.pop(); - wrap.cleanIfLast(); - if (logger.isDebugEnabled()) { - logger.debug("invoke-stack mock pop, IMMEDIATELY-RETURN deep={};listener={};pid={};iid={}", - stack.deep(), - listenerId, - processId, - invokeId - ); - } + process.popInvokeId(); } // 如果已经禁止后续返回任何事件了,则不进行后续的操作 if (pce.isIgnoreProcessEvent()) { + logger.debug("on-event: event|{}|{}|{};listener|{}, ignore immediately-return-event, isIgnored.", + event.type, + processId, + invokeId, + listenerId + ); return Spy.Ret.newInstanceForReturn(pce.getRespond()); } - final ReturnEvent replaceReturnEvent = eventPool.borrowReturnEvent(processId, invokeId, pce.getRespond()); + // 如果没有注册监听ImmediatelyEvent事件,则不进行后续的操作 + if (!contains(processor.eventTypes, IMMEDIATELY_RETURN)) { + logger.debug("on-event: event|{}|{}|{};listener|{}, ignore immediately-return-event, not contains.", + event.type, + processId, + invokeId, + listenerId + ); + return Spy.Ret.newInstanceForReturn(pce.getRespond()); + } + + // 这里需要补偿ImmediatelyEvent + final ImmediatelyReturnEvent immediatelyReturnEvent + = process + .getEventFactory() + .makeImmediatelyReturnEvent(processId, invokeId, pce.getRespond()); + final Spy.Ret ret; try { ret = handleEvent( listenerId, processId, invokeId, - replaceReturnEvent, - wrap + immediatelyReturnEvent, + processor ); } finally { - eventPool.returnEvent(replaceReturnEvent); + process.getEventFactory().returnEvent(immediatelyReturnEvent); } if (ret.state == Spy.Ret.RET_STATE_NONE) { @@ -194,52 +196,65 @@ private Spy.Ret handleEvent(final int listenerId, // 立即抛出异常 case THROWS_IMMEDIATELY: { - // 将BEFORE压入的堆栈弹出 + final Throwable throwable = (Throwable) pce.getRespond(); + + // 如果在BeforeEvent处理过程中发生ProcessControl行为,将会造成堆栈错位 + // 所以这里需要将错位的堆栈进行补齐 if (event instanceof BeforeEvent) { - final GaStack stack = wrap.eventProcessRef.get().processStack; - stack.pop(); - wrap.cleanIfLast(); - if (logger.isDebugEnabled()) { - logger.debug("invoke-stack mock pop, IMMEDIATELY-THROWS deep={};listener={};pid={};iid={}", - stack.deep(), - listenerId, - processId, - invokeId - ); - } + process.popInvokeId(); } - final Throwable throwable = (Throwable) pce.getRespond(); + // 如果已经禁止后续返回任何事件了,则不进行后续的操作 + if (pce.isIgnoreProcessEvent()) { + logger.debug("on-event: event|{}|{}|{};listener|{}, ignore immediately-throws-event, isIgnored.", + event.type, + processId, + invokeId, + listenerId + ); + return Spy.Ret.newInstanceForThrows(throwable); + } + + // 如果没有注册监听ImmediatelyEvent事件,则不进行后续的操作 + if (!contains(processor.eventTypes, IMMEDIATELY_THROWS)) { + logger.debug("on-event: event|{}|{}|{};listener|{}, ignore immediately-throws-event, not contains.", + event.type, + processId, + invokeId, + listenerId + ); + return Spy.Ret.newInstanceForThrows(throwable); + } // 如果已经禁止后续返回任何事件了,则不进行后续的操作 if (pce.isIgnoreProcessEvent()) { return Spy.Ret.newInstanceForThrows(throwable); } - if (!(event instanceof BeforeEvent)) { - - final ThrowsEvent replaceThrowsEvent = eventPool.borrowThrowsEvent(processId, invokeId, throwable); - final Spy.Ret ret; - try { - ret = handleEvent( - listenerId, - processId, - invokeId, - replaceThrowsEvent, - wrap - ); - } finally { - eventPool.returnEvent(replaceThrowsEvent); - } - - if (ret.state == Spy.Ret.RET_STATE_NONE) { - return Spy.Ret.newInstanceForThrows(throwable); - } else { - // 如果不是,则返回最新的处理结果 - return ret; - } - } else { + final ImmediatelyThrowsEvent immediatelyThrowsEvent + = process + .getEventFactory() + .makeImmediatelyThrowsEvent(processId, invokeId, throwable); + + + final Spy.Ret ret; + try { + ret = handleEvent( + listenerId, + processId, + invokeId, + immediatelyThrowsEvent, + processor + ); + } finally { + process.getEventFactory().returnEvent(immediatelyThrowsEvent); + } + + if (ret.state == Spy.Ret.RET_STATE_NONE) { return Spy.Ret.newInstanceForThrows(throwable); + } else { + // 如果不是,则返回最新的处理结果 + return ret; } } @@ -247,7 +262,7 @@ private Spy.Ret handleEvent(final int listenerId, // 什么都不操作,立即返回 case NONE_IMMEDIATELY: default: { - return Spy.Ret.newInstanceForNone(); + return newInstanceForNone(); } } @@ -275,73 +290,11 @@ private Spy.Ret handleEvent(final int listenerId, } // 默认返回不进行任何流程变更 - return Spy.Ret.newInstanceForNone(); - } - - private boolean isInterruptEventHandler(final Class listenerClass) { - return listenerClass.isAnnotationPresent(Interrupted.class); - } - - - private final WeakHashMap spyNewInstanceForNoneMethodCache = new WeakHashMap(); - private final WeakHashMap spyNewInstanceForReturnMethodCache = new WeakHashMap(); - private final WeakHashMap spyNewInstanceForThrowsMethodCache = new WeakHashMap(); - - // 转换当前的Spy.Ret到目标类所在ClassLoader的Spy.Ret - private Object toSpyRetInTargetClassLoader(final Spy.Ret ret, final Class spyRetClassInTargetClassLoader) throws Throwable { - - // 如果两个Spy.Ret的类相等,说明他们在同一个ClassLoader空间 - // 可以直接返回当前我们自己构造的Spy.Ret,不需要走如此复杂的反射 - if (Spy.Ret.class == spyRetClassInTargetClassLoader) { - return ret; - } - - // 如果当前Spy.Ret和目标ClassLoader中的Spy.Ret不一致,说明他们来自不同的ClassLoader空间 - // 此时就需要性能比较高昂的转换了,这里稍微加了几个MethodCache做了性能缓冲,尽量减少性能开销 - // 但此时我觉得必要性可能不大,后续考虑可以直接优化掉这个几个MethodCache - switch (ret.state) { - case Spy.Ret.RET_STATE_NONE: { - - final Method method; - if (spyNewInstanceForNoneMethodCache.containsKey(spyRetClassInTargetClassLoader)) { - method = spyNewInstanceForNoneMethodCache.get(spyRetClassInTargetClassLoader); - } else { - method = unCaughtGetClassDeclaredJavaMethod(spyRetClassInTargetClassLoader, "newInstanceForNone"); - spyNewInstanceForNoneMethodCache.put(spyRetClassInTargetClassLoader, method); - } - return method.invoke(null); - } - - case Spy.Ret.RET_STATE_RETURN: { - final Method method; - if (spyNewInstanceForReturnMethodCache.containsKey(spyRetClassInTargetClassLoader)) { - method = spyNewInstanceForReturnMethodCache.get(spyRetClassInTargetClassLoader); - } else { - method = unCaughtGetClassDeclaredJavaMethod(spyRetClassInTargetClassLoader, "newInstanceForReturn", Object.class); - spyNewInstanceForReturnMethodCache.put(spyRetClassInTargetClassLoader, method); - } - return method.invoke(null, ret.respond); - } - - case Spy.Ret.RET_STATE_THROWS: { - final Method method; - if (spyNewInstanceForThrowsMethodCache.containsKey(spyRetClassInTargetClassLoader)) { - method = spyNewInstanceForThrowsMethodCache.get(spyRetClassInTargetClassLoader); - } else { - method = unCaughtGetClassDeclaredJavaMethod(spyRetClassInTargetClassLoader, "newInstanceForThrows", Throwable.class); - spyNewInstanceForThrowsMethodCache.put(spyRetClassInTargetClassLoader, method); - } - return method.invoke(null, (Throwable) ret.respond); - } - - default: { - throw new IllegalStateException("illegal Spy.Ret.state=" + ret.state); - } - } + return newInstanceForNone(); } private Spy.Ret handleOnBefore(final int listenerId, - final ClassLoader javaClassLoader, + final int targetClassLoaderObjectID, final String javaClassName, final String javaMethodName, final String javaMethodDesc, @@ -349,47 +302,32 @@ private Spy.Ret handleOnBefore(final int listenerId, final Object[] argumentArray) throws Throwable { // 获取事件处理器 - final EventListenerWrap wrap = globalEventListenerMap.get(listenerId); + final EventProcessor wrap = mappingOfEventProcessor.get(listenerId); // 如果尚未注册,则直接返回,不做任何处理 if (null == wrap) { logger.debug("listener={} is not activated, ignore processing before-event.", listenerId); - return Spy.Ret.newInstanceForNone(); + return newInstanceForNone(); } // 获取调用跟踪信息 - final EventListenerWrap.EventProcess eventProcess = wrap.eventProcessRef.get(); - final GaStack stack = eventProcess.processStack; + final EventProcessor.Process process = wrap.processRef.get(); // 调用ID final int invokeId = invokeIdSequencer.next(); + process.pushInvokeId(invokeId); // 调用过程ID - final int processId = stack.isEmpty() - ? invokeId - : stack.peekLast(); - - // 将当前调用压栈 - stack.push(invokeId); - - if (logger.isDebugEnabled()) { - logger.debug("invoke-stack push, deep={};listener={};pid={};iid={}", - stack.deep(), - listenerId, - processId, - invokeId - ); - } + final int processId = process.getProcessId(); // 如果当前处理ID被忽略,则立即返回 - // 放在stack.push后边是为了对齐执行栈 - if (eventProcess.isIgnoreProcessEvent(processId)) { - return Spy.Ret.newInstanceForNone(); - } else { - eventProcess.cleanIgnoreProcessEvent(); + if (process.touchIsIgnoreProcess(processId)) { + process.popInvokeId(); + return newInstanceForNone(); } - final BeforeEvent event = eventPool.borrowBeforeEvent( + final ClassLoader javaClassLoader = ObjectIDs.instance.getObject(targetClassLoaderObjectID); + final BeforeEvent event = process.getEventFactory().makeBeforeEvent( processId, invokeId, javaClassLoader, @@ -402,144 +340,103 @@ private Spy.Ret handleOnBefore(final int listenerId, try { return handleEvent(listenerId, processId, invokeId, event, wrap); } finally { - eventPool.returnEvent(event); + process.getEventFactory().returnEvent(event); } } /* * 判断堆栈是否错位 */ - private boolean isStackErrorPosition(final int processId, - final int invokeId, - final GaStack stack) { - return (processId == invokeId && !stack.isEmpty()) - || (processId != invokeId && stack.isEmpty()); + private boolean checkProcessStack(final int processId, + final int invokeId, + final boolean isEmptyStack) { + return (processId == invokeId && !isEmptyStack) + || (processId != invokeId && isEmptyStack); } private Spy.Ret handleOnEnd(final int listenerId, final Object object, final boolean isReturn) throws Throwable { - final EventListenerWrap wrap = globalEventListenerMap.get(listenerId); + final EventProcessor wrap = mappingOfEventProcessor.get(listenerId); // 如果尚未注册,则直接返回,不做任何处理 if (null == wrap) { logger.debug("listener={} is not activated, ignore processing return-event|throws-event.", listenerId); - return Spy.Ret.newInstanceForNone(); + return newInstanceForNone(); } - final EventListenerWrap.EventProcess eventProcess = wrap.eventProcessRef.get(); - final GaStack stack = eventProcess.processStack; + final EventProcessor.Process process = wrap.processRef.get(); // 如果当前调用过程信息堆栈是空的,说明 // 1. BEFORE/RETURN错位 // 2. super. // 处理方式是直接返回,不做任何事件的处理和代码流程的改变,放弃对super.的观察,可惜了 - if (stack.isEmpty()) { - return Spy.Ret.newInstanceForNone(); + if (process.isEmptyStack()) { + return newInstanceForNone(); } - final int processId = stack.peekLast(); - final int invokeId = stack.pop(); - wrap.cleanIfLast(); - - if (logger.isDebugEnabled()) { - logger.debug("invoke-stack pop, deep={};listener={};pid={};iid={}", - stack.deep(), - listenerId, - processId, - invokeId - ); - } + final int processId = process.getProcessId(); + final int invokeId = process.popInvokeId(); // 如果PID==IID说明已经到栈顶,此时需要核对堆栈是否为空 // 如果不为空需要输出日志进行告警 - if (isStackErrorPosition(processId, invokeId, stack)) { - logger.warn("stack error position. deep={};listener={};", stack.deep(), listenerId); + if (checkProcessStack(processId, invokeId, process.isEmptyStack())) { + logger.warn("ERROR process-stack. pid={};iid={};listener={};", + processId, + invokeId, + listenerId + ); } // 忽略事件处理 // 放在stack.pop()后边是为了对齐执行栈 - if (eventProcess.isIgnoreProcessEvent(processId)) { - return Spy.Ret.newInstanceForNone(); + if (process.touchIsIgnoreProcess(processId)) { + return newInstanceForNone(); } final Event event = isReturn - ? eventPool.borrowReturnEvent(processId, invokeId, object) - : eventPool.borrowThrowsEvent(processId, invokeId, (Throwable) object); + ? process.getEventFactory().makeReturnEvent(processId, invokeId, object) + : process.getEventFactory().makeThrowsEvent(processId, invokeId, (Throwable) object); try { return handleEvent(listenerId, processId, invokeId, event, wrap); } finally { - eventPool.returnEvent(event); + process.getEventFactory().returnEvent(event); } } - - private Object handleOnBeforeWithTargetClassLoaderSpyRet(final int listenerId, - final ClassLoader javaClassLoader, - final Class spyRetClassInTargetClassLoader, - final String javaClassName, - final String javaMethodName, - final String javaMethodDesc, - final Object target, - final Object[] argumentArray) throws Throwable { - return toSpyRetInTargetClassLoader( - handleOnBefore( - listenerId, - javaClassLoader, - javaClassName, - javaMethodName, - javaMethodDesc, - target, - argumentArray - ), - spyRetClassInTargetClassLoader - ); - } - - private Object handleOnReturnWithTargetClassLoaderSpyRet(final int listenerId, - final Class spyRetClassInTargetClassLoader, - final Object object) throws Throwable { - return toSpyRetInTargetClassLoader(handleOnEnd(listenerId, object, true), spyRetClassInTargetClassLoader); - } - - private Object handleOnThrowsWithTargetClassLoaderSpyRet(final int listenerId, - final Class spyRetClassInTargetClassLoader, - final Throwable throwable) throws Throwable { - return toSpyRetInTargetClassLoader(handleOnEnd(listenerId, throwable, false), spyRetClassInTargetClassLoader); - } - private void handleOnLine(final int listenerId, final int lineNumber) throws Throwable { - final EventListenerWrap wrap = globalEventListenerMap.get(listenerId); + final EventProcessor wrap = mappingOfEventProcessor.get(listenerId); if (null == wrap) { logger.debug("listener={} is not activated, ignore processing line-event.", listenerId); return; } - final EventListenerWrap.EventProcess eventProcess = wrap.eventProcessRef.get(); - final GaStack stack = eventProcess.processStack; + + final EventProcessor.Process process = wrap.processRef.get(); // 如果当前调用过程信息堆栈是空的,说明BEFORE/LINE错位 // 处理方式是直接返回,不做任何事件的处理和代码流程的改变 - if (stack.isEmpty()) { + if (process.isEmptyStack()) { return; } - final int processId = stack.peekLast(); - final int invokeId = stack.peek(); + + final int processId = process.getProcessId(); + final int invokeId = process.getInvokeId(); // 如果事件处理流被忽略,则直接返回,不产生后续事件 - if (eventProcess.isIgnoreProcessEvent(processId)) { + if (process.touchIsIgnoreProcess(processId)) { return; } - final Event event = eventPool.borrowLineEvent(processId, invokeId, lineNumber); + final Event event = process.getEventFactory().makeLineEvent(processId, invokeId, lineNumber); try { handleEvent(listenerId, processId, invokeId, event, wrap); } finally { - eventPool.returnEvent(event); + process.getEventFactory().returnEvent(event); } } @@ -549,176 +446,103 @@ private void handleOnCallBefore(final int listenerId, final String owner, final String name, final String desc) throws Throwable { - final EventListenerWrap wrap = globalEventListenerMap.get(listenerId); + final EventProcessor wrap = mappingOfEventProcessor.get(listenerId); if (null == wrap) { logger.debug("listener={} is not activated, ignore processing call-before-event.", listenerId); return; } - final EventListenerWrap.EventProcess eventProcess = wrap.eventProcessRef.get(); - final GaStack stack = eventProcess.processStack; - + final EventProcessor.Process process = wrap.processRef.get(); // 如果当前调用过程信息堆栈是空的,有两种情况 // 1. CALL_BEFORE事件和BEFORE事件错位 // 2. 当前方法是,而CALL_BEFORE事件触发是当前方法在调用父类的 // super.会导致CALL_BEFORE事件优先于BEFORE事件 // 但如果按照现在的架构要兼容这种情况,比较麻烦,所以暂时先放弃了这部分的消息,可惜可惜 - if (stack.isEmpty()) { + if (process.isEmptyStack()) { return; } - final int processId = stack.peekLast(); - final int invokeId = stack.peek(); + final int processId = process.getProcessId(); + final int invokeId = process.getInvokeId(); // 如果事件处理流被忽略,则直接返回,不产生后续事件 - if (eventProcess.isIgnoreProcessEvent(processId)) { + if (process.touchIsIgnoreProcess(processId)) { return; } - final Event event = eventPool.borrowCallBeforeEvent(processId, invokeId, lineNumber, owner, name, desc); + final Event event = process + .getEventFactory() + .makeCallBeforeEvent(processId, invokeId, lineNumber, owner, name, desc); try { handleEvent(listenerId, processId, invokeId, event, wrap); } finally { - eventPool.returnEvent(event); + process.getEventFactory().returnEvent(event); } } private void handleOnCallReturn(final int listenerId) throws Throwable { - final EventListenerWrap wrap = globalEventListenerMap.get(listenerId); + final EventProcessor wrap = mappingOfEventProcessor.get(listenerId); if (null == wrap) { logger.debug("listener={} is not activated, ignore processing call-return-event.", listenerId); return; } - final EventListenerWrap.EventProcess eventProcess = wrap.eventProcessRef.get(); - final GaStack stack = eventProcess.processStack; - if (stack.isEmpty()) { + final EventProcessor.Process process = wrap.processRef.get(); + if (process.isEmptyStack()) { return; } - final int processId = stack.peekLast(); - final int invokeId = stack.peek(); + final int processId = process.getProcessId(); + final int invokeId = process.getInvokeId(); // 如果事件处理流被忽略,则直接返回,不产生后续事件 - if (eventProcess.isIgnoreProcessEvent(processId)) { + if (process.touchIsIgnoreProcess(processId)) { return; } - final Event event = eventPool.borrowCallReturnEvent(processId, invokeId); + final Event event = process + .getEventFactory() + .makeCallReturnEvent(processId, invokeId); try { handleEvent(listenerId, processId, invokeId, event, wrap); } finally { - eventPool.returnEvent(event); + process.getEventFactory().returnEvent(event); } } private void handleOnCallThrows(final int listenerId, final String throwException) throws Throwable { - final EventListenerWrap wrap = globalEventListenerMap.get(listenerId); + final EventProcessor wrap = mappingOfEventProcessor.get(listenerId); if (null == wrap) { logger.debug("listener={} is not activated, ignore processing call-throws-event.", listenerId); return; } - final EventListenerWrap.EventProcess eventProcess = wrap.eventProcessRef.get(); - final GaStack stack = eventProcess.processStack; - if (stack.isEmpty()) { + final EventProcessor.Process process = wrap.processRef.get(); + if (process.isEmptyStack()) { return; } - final int processId = stack.peekLast(); - final int invokeId = stack.peek(); + final int processId = process.getProcessId(); + final int invokeId = process.getInvokeId(); // 如果事件处理流被忽略,则直接返回,不产生后续事件 - if (eventProcess.isIgnoreProcessEvent(processId)) { + if (process.touchIsIgnoreProcess(processId)) { return; } - final Event event = eventPool.borrowCallThrowsEvent(processId, invokeId, throwException); + final Event event = process + .getEventFactory() + .makeCallThrowsEvent(processId, invokeId, throwException); try { handleEvent(listenerId, processId, invokeId, event, wrap); } finally { - eventPool.returnEvent(event); - } - } - - /** - * 事件处理器封装 - */ - private final class EventListenerWrap { - - class EventProcess { - - final GaStack processStack = new ThreadUnsafeGaStack(); - Integer ignoreProcessId = null; - - boolean isIgnoreProcessEvent(int targetProcessId) { - return ignoreProcessId != null - && ignoreProcessId == targetProcessId; - } - - void markIgnoreProcessEvent(int processId) { - this.ignoreProcessId = processId; - } - - void cleanIgnoreProcessEvent() { - this.ignoreProcessId = null; - } - - } - - private final int listenerId; - private final EventListener listener; - private final ThreadLocal eventProcessRef = new ThreadLocal() { - @Override - protected EventProcess initialValue() { - return new EventProcess(); - } - }; - - private EventListenerWrap(final int listenerId, - final EventListener listener, - final Event.Type[] eventTypeArray) { - - this.listenerId = listenerId; - - if (isInterruptEventHandler(listener.getClass())) { - this.listener = new InterruptedEventListenerImpl( - new SeparateImmediatelyEventListener(listener, eventTypeArray, eventPool) - ); - } else { - this.listener = new SeparateImmediatelyEventListener(listener, eventTypeArray, eventPool); - } + process.getEventFactory().returnEvent(event); } - - void cleanIfLast() { - final EventProcess eventProcess = eventProcessRef.get(); - if (eventProcess.processStack.isEmpty()) { - eventProcessRef.remove(); - logger.debug("clean TLS: listener-wrap, listener={};", listenerId); - } - } - - } - - @Interrupted - private class InterruptedEventListenerImpl implements EventListener { - - private final EventListener listener; - - private InterruptedEventListenerImpl(EventListener listener) { - this.listener = listener; - } - - @Override - public void onEvent(Event event) throws Throwable { - listener.onEvent(event); - } - } @@ -730,7 +554,6 @@ public static EventListenerHandlers getSingleton() { return singleton; } - public static Object onBefore(final int listenerId, final int targetClassLoaderObjectID, final Class spyRetClassInTargetClassLoader, @@ -739,10 +562,9 @@ public static Object onBefore(final int listenerId, final String javaMethodDesc, final Object target, final Object[] argumentArray) throws Throwable { - return singleton.handleOnBeforeWithTargetClassLoaderSpyRet( + return singleton.handleOnBefore( listenerId, - (ClassLoader) ObjectIDs.instance.getObject(targetClassLoaderObjectID), - spyRetClassInTargetClassLoader, + targetClassLoaderObjectID, javaClassName, javaMethodName, javaMethodDesc, @@ -754,13 +576,13 @@ public static Object onBefore(final int listenerId, public static Object onReturn(final int listenerId, final Class spyRetClassInTargetClassLoader, final Object object) throws Throwable { - return singleton.handleOnReturnWithTargetClassLoaderSpyRet(listenerId, spyRetClassInTargetClassLoader, object); + return singleton.handleOnEnd(listenerId, object, true); } public static Object onThrows(final int listenerId, final Class spyRetClassInTargetClassLoader, final Throwable throwable) throws Throwable { - return singleton.handleOnThrowsWithTargetClassLoaderSpyRet(listenerId, spyRetClassInTargetClassLoader, throwable); + return singleton.handleOnEnd(listenerId, throwable, false); } public static void onLine(final int listenerId, @@ -773,13 +595,7 @@ public static void onCallBefore(final int listenerId, final String owner, final String name, final String desc) throws Throwable { - singleton.handleOnCallBefore( - listenerId, - lineNumber, - owner, - name, - desc - ); + singleton.handleOnCallBefore(listenerId, lineNumber, owner, name, desc); } public static void onCallReturn(final int listenerId) throws Throwable { @@ -791,5 +607,15 @@ public static void onCallThrows(final int listenerId, singleton.handleOnCallThrows(listenerId, throwException); } + // ---- 自检查 + public void checkEventProcessor(final int... listenerIds) { + for (int listenerId : listenerIds) { + final EventProcessor processor = mappingOfEventProcessor.get(listenerId); + if (null == processor) { + throw new IllegalStateException(String.format("listener=%s not existed.", listenerId)); + } + processor.check(); + } + } } diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/EventProcessor.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/EventProcessor.java new file mode 100644 index 00000000..082723f4 --- /dev/null +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/EventProcessor.java @@ -0,0 +1,200 @@ +package com.alibaba.jvm.sandbox.core.enhance.weaver; + +import com.alibaba.jvm.sandbox.api.event.Event; +import com.alibaba.jvm.sandbox.api.listener.EventListener; +import com.alibaba.jvm.sandbox.core.enhance.annotation.Interrupted; +import com.alibaba.jvm.sandbox.core.util.collection.GaStack; +import com.alibaba.jvm.sandbox.core.util.collection.ThreadUnsafeGaStack; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import static com.alibaba.jvm.sandbox.core.util.SandboxReflectUtils.isInterruptEventHandler; + +/** + * 事件处理器 + */ +class EventProcessor { + + private final Logger logger = LoggerFactory.getLogger(getClass()); + + /** + * 处理单元 + */ + class Process { + + // 事件工厂 + private final SingleEventFactory eventFactory + = new SingleEventFactory(); + + // 调用堆栈 + private final GaStack stack + = new ThreadUnsafeGaStack(); + + // 需要忽略的过程ID + private Integer ignoreProcessId = null; + + void pushInvokeId(int invokeId) { + stack.push(invokeId); + logger.debug("push process-stack, invoke-id={};deep={};listener={};", + invokeId, + stack.deep(), + listenerId + ); + } + + int popInvokeId() { + final int invokeId = stack.pop(); + logger.debug("pop process-stack, invoke-id={};deep={};listener={};", + invokeId, + stack.deep(), + listenerId + ); + // 这里注释掉,避免频繁删除和创建ThreadLocal的开销 + // 采用frozen的方式来释放 +// if (stack.isEmpty()) { +// processRef.remove(); +// logger.debug("clean TLS: event-processor, listener={};", listenerId); +// } + return invokeId; + } + + int getInvokeId() { + return stack.peek(); + } + + int getProcessId() { + return stack.peekLast(); + } + + boolean isEmptyStack() { + return stack.isEmpty(); + } + + boolean touchIsIgnoreProcess(int processId) { + if (null != ignoreProcessId + && ignoreProcessId == processId) { + return true; + } else { + ignoreProcessId = null; + return false; + } + } + + void markIgnoreProcessId(int processId) { + ignoreProcessId = processId; + } + + SingleEventFactory getEventFactory() { + return eventFactory; + } + + } + + @Interrupted + private class InterruptedEventListenerImpl implements EventListener { + + private final EventListener listener; + + private InterruptedEventListenerImpl(EventListener listener) { + this.listener = listener; + } + + @Override + public void onEvent(Event event) throws Throwable { + listener.onEvent(event); + } + + } + + final int listenerId; + final EventListener listener; + final Event.Type[] eventTypes; + final ThreadLocal processRef = new ThreadLocal() { + @Override + protected Process initialValue() { + return new Process(); + } + }; + + EventProcessor(final int listenerId, + final EventListener listener, + final Event.Type[] eventTypes) { + + this.listenerId = listenerId; + this.eventTypes = eventTypes; + this.listener = isInterruptEventHandler(listener.getClass()) + ? new InterruptedEventListenerImpl(listener) + : listener; + } + + void clean() { + processRef.remove(); + logger.debug("clean TLS: event-processor, listener={};", listenerId); + } + + + /** + * 校验器,用于校验事件处理器状态是否正确 + *

用于测试用例

+ */ + class Checker { + + void check() { + + final EventProcessor.Process process = processRef.get(); + final ThreadUnsafeGaStack stack = (ThreadUnsafeGaStack) process.stack; + + if (!process.isEmptyStack()) { + throw new IllegalStateException(String.format("process-stack is not empty! listener=%s;\n%s", + listenerId, + toString(stack) + )); + } + + for (int index = 0; index < stack.getElementArray().length; index++) { + if (index <= stack.getCurrent()) { + if (null == stack.getElementArray()[index]) { + throw new IllegalStateException(String.format("process-stack element is null at index=[%d], listener=%s;\n%s", + index, + listenerId, + toString(stack) + )); + } + } else { + if (null != stack.getElementArray()[index]) { + throw new IllegalStateException(String.format("process-stack element is not null at index=[%d], listener=%s;\n%s", + index, + listenerId, + toString(stack) + )); + } + } + } + + if (null != process.ignoreProcessId) { + throw new IllegalStateException(String.format("process ignoreProcessId is not null!, processId=%d", process.ignoreProcessId)); + } + + + } + + String toString(ThreadUnsafeGaStack stack) { + final StringBuilder stackSB = new StringBuilder(String.format("stack[deep=%d;current=%d;]{\n", stack.deep(), stack.getCurrent())); + for (int index = 0; index < stack.getElementArray().length; index++) { + stackSB.append("\t[" + index + "] = " + stack.getElementArray()[index] + "\n"); + } + stackSB.append("}"); + return stackSB.toString(); + } + + } + + /** + * 校验事件处理器 + *

用于测试用例

+ */ + void check() { + new Checker().check(); + } + +} diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener.java deleted file mode 100755 index f294be5b..00000000 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.alibaba.jvm.sandbox.core.enhance.weaver; - -import com.alibaba.jvm.sandbox.api.ProcessControlException; -import com.alibaba.jvm.sandbox.api.event.*; -import com.alibaba.jvm.sandbox.api.listener.EventListener; -import com.alibaba.jvm.sandbox.core.util.EventPool; -import org.apache.commons.lang3.ArrayUtils; - -import static com.alibaba.jvm.sandbox.core.enhance.weaver.SeparateImmediatelyEventListener.Step.*; - -/** - * 用于分离"立即返回"/"返回"和"立即异常抛出事件"/"异常抛出事件" - * Created by luanjia@taobao.com on 2017/2/26. - */ -public class SeparateImmediatelyEventListener implements EventListener { - - enum Step { - STEP_IMMEDIATELY_RETURN_EVENT, - STEP_IMMEDIATELY_THROWS_EVENT, - STEP_ORIGINAL_EVENT - } - - private final ThreadLocal stepRef = new ThreadLocal() { - @Override - protected Step initialValue() { - return STEP_ORIGINAL_EVENT; - } - }; - - - private final EventListener listener; - private final EventPool eventPool; - private final Event.Type[] eventTypeArray; - - public SeparateImmediatelyEventListener(final EventListener listener, - final Event.Type[] eventTypeArray, - final EventPool eventPool) { - this.listener = listener; - this.eventPool = eventPool; - this.eventTypeArray = eventTypeArray; - } - - @Override - public void onEvent(final Event event) throws Throwable { - - // 只有BEFORE/RETURN/THROWS事件才需要进行分离 - if (!(event instanceof BeforeEvent) - && !(event instanceof ReturnEvent) - && !(event instanceof ThrowsEvent)) { - if(!ArrayUtils.contains(eventTypeArray, event.type)) { - return; - } - listener.onEvent(event); - return; - } - - // 分离Immediately事件 - final Event replaceEvent; - final Step step = stepRef.get(); - switch (step) { - case STEP_IMMEDIATELY_RETURN_EVENT: { - final ReturnEvent returnEvent = (ReturnEvent) event; - replaceEvent = eventPool.borrowImmediatelyReturnEvent(returnEvent.processId, returnEvent.invokeId, returnEvent.object); - break; - } - case STEP_IMMEDIATELY_THROWS_EVENT: { - final ThrowsEvent throwsEvent = (ThrowsEvent) event; - replaceEvent = eventPool.borrowImmediatelyThrowsEvent(throwsEvent.processId, throwsEvent.invokeId, throwsEvent.throwable); - break; - } - case STEP_ORIGINAL_EVENT: - default: { - replaceEvent = event; - break; - } - } - - // 驱动分离后的事件 - try { - stepRef.set(STEP_ORIGINAL_EVENT); - - // 如果当前事件(分离之后)不在事件监听范围,则直接忽略什么都不用处理 - if (!ArrayUtils.contains(eventTypeArray, replaceEvent.type)) { - return; - } - - // 处理事件 - listener.onEvent(replaceEvent); - - } catch (ProcessControlException pce) { - - switch (pce.getState()) { - case RETURN_IMMEDIATELY: { - stepRef.set(STEP_IMMEDIATELY_RETURN_EVENT); - break; - } - case THROWS_IMMEDIATELY: { - stepRef.set(STEP_IMMEDIATELY_THROWS_EVENT); - break; - } - case NONE_IMMEDIATELY: - default: { - stepRef.set(STEP_ORIGINAL_EVENT); - break; - } - } - - throw pce; - - } finally { - - // 发生了事件分离才需要归还 - if (replaceEvent != event - && (replaceEvent instanceof ImmediatelyReturnEvent || replaceEvent instanceof ImmediatelyThrowsEvent)) { - eventPool.returnEvent(replaceEvent); - } - - } - - } - -} diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/SingleEventFactory.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/SingleEventFactory.java new file mode 100644 index 00000000..a1dd3aff --- /dev/null +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/SingleEventFactory.java @@ -0,0 +1,200 @@ +package com.alibaba.jvm.sandbox.core.enhance.weaver; + +import com.alibaba.jvm.sandbox.api.event.*; +import com.alibaba.jvm.sandbox.core.util.UnsafeUtils; +import sun.misc.Unsafe; + +/** + * 单例事件工厂 + */ +class SingleEventFactory { + + private static final int ILLEGAL_PROCESS_ID = -1; + private static final int ILLEGAL_INVOKE_ID = -1; + + private static final Unsafe unsafe; + private static final long processIdFieldInInvokeEventOffset; + private static final long invokeIdFieldInInvokeEventOffset; + private static final long javaClassLoaderFieldInBeforeEventOffset; + private static final long javaClassNameFieldInBeforeEventOffset; + private static final long javaMethodNameFieldInBeforeEventOffset; + private static final long javaMethodDescFieldInBeforeEventOffset; + private static final long targetFieldInBeforeEventOffset; + private static final long argumentArrayFieldInBeforeEventOffset; + private static final long objectFieldInReturnEventOffset; + private static final long throwableFieldInThrowsEventOffset; + private static final long lineNumberFieldInLineEventOffset; + + private static final long lineNumberFieldInCallBeforeEventOffset; + private static final long ownerFieldInCallBeforeEventOffset; + private static final long nameFieldInCallBeforeEventOffset; + private static final long descFieldInCallBeforeEventOffset; + private static final long throwExceptionFieldInCallThrowsEventOffset; + + static { + try { + unsafe = UnsafeUtils.getUnsafe(); + processIdFieldInInvokeEventOffset = unsafe.objectFieldOffset(InvokeEvent.class.getDeclaredField("processId")); + invokeIdFieldInInvokeEventOffset = unsafe.objectFieldOffset(InvokeEvent.class.getDeclaredField("invokeId")); + javaClassLoaderFieldInBeforeEventOffset = unsafe.objectFieldOffset(BeforeEvent.class.getDeclaredField("javaClassLoader")); + javaClassNameFieldInBeforeEventOffset = unsafe.objectFieldOffset(BeforeEvent.class.getDeclaredField("javaClassName")); + javaMethodNameFieldInBeforeEventOffset = unsafe.objectFieldOffset(BeforeEvent.class.getDeclaredField("javaMethodName")); + javaMethodDescFieldInBeforeEventOffset = unsafe.objectFieldOffset(BeforeEvent.class.getDeclaredField("javaMethodDesc")); + targetFieldInBeforeEventOffset = unsafe.objectFieldOffset(BeforeEvent.class.getDeclaredField("target")); + argumentArrayFieldInBeforeEventOffset = unsafe.objectFieldOffset(BeforeEvent.class.getDeclaredField("argumentArray")); + objectFieldInReturnEventOffset = unsafe.objectFieldOffset(ReturnEvent.class.getDeclaredField("object")); + throwableFieldInThrowsEventOffset = unsafe.objectFieldOffset(ThrowsEvent.class.getDeclaredField("throwable")); + lineNumberFieldInLineEventOffset = unsafe.objectFieldOffset(LineEvent.class.getDeclaredField("lineNumber")); + + lineNumberFieldInCallBeforeEventOffset = unsafe.objectFieldOffset(CallBeforeEvent.class.getDeclaredField("lineNumber")); + ownerFieldInCallBeforeEventOffset = unsafe.objectFieldOffset(CallBeforeEvent.class.getDeclaredField("owner")); + nameFieldInCallBeforeEventOffset = unsafe.objectFieldOffset(CallBeforeEvent.class.getDeclaredField("name")); + descFieldInCallBeforeEventOffset = unsafe.objectFieldOffset(CallBeforeEvent.class.getDeclaredField("desc")); + throwExceptionFieldInCallThrowsEventOffset = unsafe.objectFieldOffset(CallThrowsEvent.class.getDeclaredField("throwException")); + } catch (Exception e) { + throw new Error(e); + } + } + + private final BeforeEvent beforeEvent + = new BeforeEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, null, null, null, null, null, null); + + private final ReturnEvent returnEvent + = new ReturnEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, null); + + private final ThrowsEvent throwsEvent + = new ThrowsEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, null); + + private final LineEvent lineEvent + = new LineEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, -1); + + private final ImmediatelyThrowsEvent immediatelyThrowsEvent + = new ImmediatelyThrowsEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, null); + + private final ImmediatelyReturnEvent immediatelyReturnEvent + = new ImmediatelyReturnEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, null); + + private final CallBeforeEvent callBeforeEvent + = new CallBeforeEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, -1, null, null, null); + + private final CallReturnEvent callReturnEvent + = new CallReturnEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID); + + private final CallThrowsEvent callThrowsEvent + = new CallThrowsEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, null); + + + public BeforeEvent makeBeforeEvent(final int processId, + final int invokeId, + final ClassLoader javaClassLoader, + final String javaClassName, + final String javaMethodName, + final String javaMethodDesc, + final Object target, + final Object[] argumentArray) { + unsafe.putInt(beforeEvent, processIdFieldInInvokeEventOffset, processId); + unsafe.putInt(beforeEvent, invokeIdFieldInInvokeEventOffset, invokeId); + unsafe.putObject(beforeEvent, javaClassLoaderFieldInBeforeEventOffset, javaClassLoader); + unsafe.putObject(beforeEvent, javaClassNameFieldInBeforeEventOffset, javaClassName); + unsafe.putObject(beforeEvent, javaMethodNameFieldInBeforeEventOffset, javaMethodName); + unsafe.putObject(beforeEvent, javaMethodDescFieldInBeforeEventOffset, javaMethodDesc); + unsafe.putObject(beforeEvent, targetFieldInBeforeEventOffset, target); + unsafe.putObject(beforeEvent, argumentArrayFieldInBeforeEventOffset, argumentArray); + return beforeEvent; + } + + public ReturnEvent makeReturnEvent(final int processId, + final int invokeId, + final Object returnObj) { + unsafe.putInt(returnEvent, processIdFieldInInvokeEventOffset, processId); + unsafe.putInt(returnEvent, invokeIdFieldInInvokeEventOffset, invokeId); + unsafe.putObject(returnEvent, objectFieldInReturnEventOffset, returnObj); + return returnEvent; + } + + public ImmediatelyReturnEvent makeImmediatelyReturnEvent(final int processId, + final int invokeId, + final Object returnObj) { + unsafe.putInt(immediatelyReturnEvent, processIdFieldInInvokeEventOffset, processId); + unsafe.putInt(immediatelyReturnEvent, invokeIdFieldInInvokeEventOffset, invokeId); + unsafe.putObject(immediatelyReturnEvent, objectFieldInReturnEventOffset, returnObj); + return immediatelyReturnEvent; + } + + public ThrowsEvent makeThrowsEvent(final int processId, + final int invokeId, + final Throwable throwable) { + unsafe.putInt(throwsEvent, processIdFieldInInvokeEventOffset, processId); + unsafe.putInt(throwsEvent, invokeIdFieldInInvokeEventOffset, invokeId); + unsafe.putObject(throwsEvent, throwableFieldInThrowsEventOffset, throwable); + return throwsEvent; + } + + public ImmediatelyThrowsEvent makeImmediatelyThrowsEvent(final int processId, + final int invokeId, + final Throwable throwable) { + unsafe.putInt(immediatelyThrowsEvent, processIdFieldInInvokeEventOffset, processId); + unsafe.putInt(immediatelyThrowsEvent, invokeIdFieldInInvokeEventOffset, invokeId); + unsafe.putObject(immediatelyThrowsEvent, throwableFieldInThrowsEventOffset, throwable); + return immediatelyThrowsEvent; + } + + + + public LineEvent makeLineEvent(final int processId, + final int invokeId, + final int lineNumber) { + unsafe.putInt(lineEvent, processIdFieldInInvokeEventOffset, processId); + unsafe.putInt(lineEvent, invokeIdFieldInInvokeEventOffset, invokeId); + unsafe.putInt(lineEvent, lineNumberFieldInLineEventOffset, lineNumber); + return lineEvent; + } + + public CallBeforeEvent makeCallBeforeEvent(final int processId, + final int invokeId, + final int lineNumber, + final String owner, + final String name, + final String desc) { + unsafe.putInt(callBeforeEvent, processIdFieldInInvokeEventOffset, processId); + unsafe.putInt(callBeforeEvent, invokeIdFieldInInvokeEventOffset, invokeId); + unsafe.putInt(callBeforeEvent, lineNumberFieldInCallBeforeEventOffset, lineNumber); + unsafe.putObject(callBeforeEvent, ownerFieldInCallBeforeEventOffset, owner); + unsafe.putObject(callBeforeEvent, nameFieldInCallBeforeEventOffset, name); + unsafe.putObject(callBeforeEvent, descFieldInCallBeforeEventOffset, desc); + return callBeforeEvent; + } + + public CallReturnEvent makeCallReturnEvent(final int processId, + final int invokeId) { + unsafe.putInt(callReturnEvent, processIdFieldInInvokeEventOffset, processId); + unsafe.putInt(callReturnEvent, invokeIdFieldInInvokeEventOffset, invokeId); + return callReturnEvent; + } + + public CallThrowsEvent makeCallThrowsEvent(final int processId, + final int invokeId, + final String throwException) { + unsafe.putInt(callThrowsEvent, processIdFieldInInvokeEventOffset, processId); + unsafe.putInt(callThrowsEvent, invokeIdFieldInInvokeEventOffset, invokeId); + unsafe.putObject(callThrowsEvent, throwExceptionFieldInCallThrowsEventOffset, throwException); + return callThrowsEvent; + } + + public void returnEvent(Event event) { + switch (event.type) { + case BEFORE: + unsafe.putObject(event, targetFieldInBeforeEventOffset, null); + unsafe.putObject(event, argumentArrayFieldInBeforeEventOffset, null); + break; + case IMMEDIATELY_THROWS: + case THROWS: + unsafe.putObject(event, throwableFieldInThrowsEventOffset, null); + break; + case IMMEDIATELY_RETURN: + case RETURN: + unsafe.putObject(event, objectFieldInReturnEventOffset, null); + } + } + +} diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver.java index e3f11522..7cc0372f 100755 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver.java +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver.java @@ -194,9 +194,6 @@ private void loadClassLoader() { @Override protected void onMethodEnter() { - isMethodEnter = true; - mark(beginLabel); - codeLockForTracing.lock(new CodeLock.Block() { @Override public void code() { @@ -214,6 +211,8 @@ public void code() { storeArgArray(); pop(); processControl(); + isMethodEnter = true; + mark(beginLabel); } }); } diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/manager/impl/DefaultConfigInfo.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/manager/impl/DefaultConfigInfo.java index 928ccf33..730870ee 100755 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/manager/impl/DefaultConfigInfo.java +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/manager/impl/DefaultConfigInfo.java @@ -69,45 +69,45 @@ public String[] getUserModuleLibPaths() { @Override public boolean isEnableEventPool() { - return cfg.isEventPoolEnable(); + return false; } @Deprecated @Override public int getEventPoolKeyMin() { - return getEventPoolMaxIdlePerEvent(); + return 0; } @Deprecated @Override public int getEventPoolKeyMax() { - return getEventPoolMaxTotal(); + return 0; } @Deprecated @Override public int getEventPoolTotal() { - return getEventPoolMaxTotal(); + return 0; } @Override public int getEventPoolMaxTotal() { - return cfg.getEventPoolMaxTotal(); + return 0; } @Override public int getEventPoolMinIdlePerEvent() { - return cfg.getEventPoolMinIdlePerEvent(); + return 0; } @Override public int getEventPoolMaxIdlePerEvent() { - return cfg.getEventPoolMaxIdlePerEvent(); + return 0; } @Override public int getEventPoolMaxTotalPerEvent() { - return cfg.getEventPoolMaxTotalPerEvent(); + return 0; } @Override diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager.java index 7fd8dfeb..4c92a2a5 100755 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager.java +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager.java @@ -77,12 +77,12 @@ public DefaultCoreModuleManager(final CoreConfigure cfg, cfg.getUserModuleLibFilesWithCache() ); - // 初始化加载所有的模块 - try { - reset(); - } catch (Throwable cause) { - logger.warn("reset occur error when initializing.", cause); - } +// // 初始化加载所有的模块 +// try { +// reset(); +// } catch (Throwable cause) { +// logger.warn("reset occur error when initializing.", cause); +// } } private File[] mergeFileArray(File[] aFileArray, File[] bFileArray) { diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/manager/impl/DefaultEventMonitor.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/manager/impl/DefaultEventMonitor.java index cf938031..da411a7a 100644 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/manager/impl/DefaultEventMonitor.java +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/manager/impl/DefaultEventMonitor.java @@ -2,8 +2,6 @@ import com.alibaba.jvm.sandbox.api.event.Event; import com.alibaba.jvm.sandbox.api.resource.EventMonitor; -import com.alibaba.jvm.sandbox.core.enhance.weaver.EventListenerHandlers; -import com.alibaba.jvm.sandbox.core.util.EventPool; /** * 事件监控器实现 @@ -12,28 +10,25 @@ class DefaultEventMonitor implements EventMonitor { @Override public EventPoolInfo getEventPoolInfo() { - - final EventPool pool = EventListenerHandlers.getSingleton().getEventPool(); - return new EventPoolInfo() { @Override public int getNumActive() { - return pool.getNumActive(); + return 0; } @Override public int getNumActive(Event.Type type) { - return pool.getNumActive(type); + return 0; } @Override public int getNumIdle() { - return pool.getNumIdle(); + return 0; } @Override public int getNumIdle(Event.Type type) { - return pool.getNumIdle(type); + return 0; } }; } diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/server/jetty/JettyCoreServer.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/server/jetty/JettyCoreServer.java index e30e1c32..1fe8c6ac 100755 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/server/jetty/JettyCoreServer.java +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/server/jetty/JettyCoreServer.java @@ -93,10 +93,6 @@ public void process() throws Throwable { logger.info("{} is destroying", this); httpServer.destroy(); - // 关闭对象池 - logger.info("{} is closing event-pool", this); - EventListenerHandlers.getSingleton().getEventPool().close(); - } catch (Throwable cause) { logger.warn("{} unBind failed.", this, cause); throw new IOException("unBind failed.", cause); @@ -259,6 +255,14 @@ public void process() throws Throwable { httpServer.start(); } }); + + // 初始化加载所有的模块 + try { + coreModuleManager.reset(); + } catch (Throwable cause) { + logger.warn("reset occur error when initializing.", cause); + } + final InetSocketAddress local = getLocal(); logger.info("initialized server. actual bind to {}:{}", local.getHostName(), local.getPort()); } catch (Throwable cause) { diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/server/jetty/servlet/ModuleHttpServlet.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/server/jetty/servlet/ModuleHttpServlet.java index 1cf8ef57..d6b6b6d6 100755 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/server/jetty/servlet/ModuleHttpServlet.java +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/server/jetty/servlet/ModuleHttpServlet.java @@ -1,5 +1,6 @@ package com.alibaba.jvm.sandbox.core.server.jetty.servlet; +import com.alibaba.jvm.sandbox.api.annotation.Command; import com.alibaba.jvm.sandbox.api.http.Http; import com.alibaba.jvm.sandbox.core.domain.CoreModule; import com.alibaba.jvm.sandbox.core.manager.CoreModuleManager; @@ -19,6 +20,10 @@ import java.io.PrintWriter; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.Map; import static com.alibaba.jvm.sandbox.api.util.GaStringUtils.matching; @@ -51,7 +56,7 @@ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws S private void doMethod(final HttpServletRequest req, final HttpServletResponse resp, - final Http.Method httpMethod) throws ServletException, IOException { + final Http.Method expectHttpMethod) throws ServletException, IOException { // 获取请求路径 final String path = req.getPathInfo(); @@ -75,7 +80,7 @@ private void doMethod(final HttpServletRequest req, // 匹配对应的方法 final Method method = matchingModuleMethod( path, - httpMethod, + expectHttpMethod, uniqueId, coreModule.getModule().getClass() ); @@ -173,12 +178,25 @@ private Method matchingModuleMethod(final String path, final String uniqueId, final Class classOfModule) { + // 查找@Command注解的方法 + for (final Method method : MethodUtils.getMethodsListWithAnnotation(classOfModule, Command.class)) { + final Command commandAnnotation = method.getAnnotation(Command.class); + if (null == commandAnnotation) { + continue; + } + final String pathOfCmd = "/" + uniqueId + "/" + commandAnnotation.value(); + if (StringUtils.equals(path, pathOfCmd)) { + return method; + } + } + + // 查找@Http注解的方法 for (final Method method : MethodUtils.getMethodsListWithAnnotation(classOfModule, Http.class)) { final Http httpAnnotation = method.getAnnotation(Http.class); - if(null == httpAnnotation) { + if (null == httpAnnotation) { continue; } - final String pathPattern = "/"+uniqueId+httpAnnotation.value(); + final String pathPattern = "/" + uniqueId + httpAnnotation.value(); if (ArrayUtils.contains(httpAnnotation.method(), httpMethod) && matching(path, pathPattern)) { return method; @@ -189,6 +207,20 @@ && matching(path, pathPattern)) { return null; } + private boolean isMapWithGenericParameterTypes(final Method method, + final int parameterIndex, + final Class keyClass, + final Class valueClass) { + final Type[] genericParameterTypes = method.getGenericParameterTypes(); + if (genericParameterTypes.length < parameterIndex + || !(genericParameterTypes[parameterIndex] instanceof ParameterizedType)) { + return false; + } + final Type[] actualTypeArguments = ((ParameterizedType) genericParameterTypes[parameterIndex]).getActualTypeArguments(); + return actualTypeArguments.length == 2 + && keyClass.equals(actualTypeArguments[0]) + && valueClass.equals(actualTypeArguments[1]); + } /** * 生成方法请求参数数组 @@ -201,7 +233,7 @@ && matching(path, pathPattern)) { */ private Object[] generateParameterObjectArray(final Method method, final HttpServletRequest req, - final HttpServletResponse resp) { + final HttpServletResponse resp) throws IOException { final Class[] parameterTypeArray = method.getParameterTypes(); if (ArrayUtils.isEmpty(parameterTypeArray)) { @@ -223,6 +255,34 @@ private Object[] generateParameterObjectArray(final Method method, continue; } + // ParameterMap + if (Map.class.isAssignableFrom(parameterType) + && isMapWithGenericParameterTypes(method, index, String.class, String[].class)) { + parameterObjectArray[index] = req.getParameterMap(); + } + + // ParameterMap + else if (Map.class.isAssignableFrom(parameterType) + && isMapWithGenericParameterTypes(method, index, String.class, String.class)) { + final Map param = new HashMap(); + for (final Map.Entry entry : req.getParameterMap().entrySet()) { + param.put(entry.getKey(), StringUtils.join(entry.getValue(), ",")); + } + parameterObjectArray[index] = param; + } + + // QueryString + else if (String.class.isAssignableFrom(parameterType)) { + parameterObjectArray[index] = req.getQueryString(); + } + + + // PrintWriter + else if (PrintWriter.class.isAssignableFrom(parameterType)) { + parameterObjectArray[index] = resp.getWriter(); + } + + } return parameterObjectArray; diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet.java index 2b2c3e68..fb931a45 100755 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet.java +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet.java @@ -19,8 +19,11 @@ /** * 构建WebSocket通讯 - * Created by luanjia@taobao.com on 2017/2/2. + * + * @author luanjia@taobao.com + * @deprecated 考虑废弃掉WebSocket的支持,不再维护 */ +@Deprecated public class WebSocketAcceptorServlet extends WebSocketServlet { private final Logger logger = LoggerFactory.getLogger(getClass()); diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/util/EventPool.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/util/EventPool.java deleted file mode 100755 index 9fc39551..00000000 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/util/EventPool.java +++ /dev/null @@ -1,446 +0,0 @@ -package com.alibaba.jvm.sandbox.core.util; - -import com.alibaba.jvm.sandbox.api.event.*; -import com.alibaba.jvm.sandbox.core.CoreConfigure; -import org.apache.commons.pool2.BaseKeyedPooledObjectFactory; -import org.apache.commons.pool2.KeyedObjectPool; -import org.apache.commons.pool2.PooledObject; -import org.apache.commons.pool2.impl.DefaultPooledObject; -import org.apache.commons.pool2.impl.GenericKeyedObjectPool; -import org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import sun.misc.Unsafe; - -/** - * 事件对象池 - * - * @author luanjia@taobao.com - */ -public class EventPool { - - private final Logger logger = LoggerFactory.getLogger(getClass()); - private final KeyedObjectPool pool; - private final boolean isEnable; - - public EventPool() { - this.pool = createEventPool(); - this.isEnable = this.pool != null; - } - - /** - * 关闭并清理对象池 - *

- * 修复问题:#108 - *

- */ - public void close() { - if (null != pool) { - pool.close(); - } - } - - private KeyedObjectPool createEventPool() { - final CoreConfigure cfg = CoreConfigure.getInstance(); - if (cfg.isEventPoolEnable()) { - final GenericKeyedObjectPoolConfig poolConfig = new GenericKeyedObjectPoolConfig(); - poolConfig.setMaxTotalPerKey(cfg.getEventPoolMaxTotalPerEvent()); - poolConfig.setMinIdlePerKey(cfg.getEventPoolMinIdlePerEvent()); - poolConfig.setMaxIdlePerKey(cfg.getEventPoolMaxIdlePerEvent()); - poolConfig.setMaxTotal(cfg.getEventPoolMaxTotal()); - logger.info("enable event-pool[per-key-idle-min={};per-key-idle-max={};per-key-max={};total={};]", - cfg.getEventPoolMinIdlePerEvent(), - cfg.getEventPoolMaxIdlePerEvent(), - cfg.getEventPoolMaxTotalPerEvent(), - cfg.getEventPoolMaxTotal() - ); - return new GenericKeyedObjectPool(new EventFactory(), poolConfig); - } else { - logger.info("disable event-pool."); - return null; - } - } - - public int getNumActive() { - return isEnable - ? pool.getNumActive() - : -1; - } - - public int getNumActive(Event.Type type) { - return isEnable - ? pool.getNumActive(type) - : -1; - } - - public int getNumIdle() { - return isEnable - ? pool.getNumIdle() - : -1; - } - - public int getNumIdle(Event.Type type) { - return isEnable - ? pool.getNumIdle(type) - : -1; - } - - public BeforeEvent borrowBeforeEvent(final int processId, - final int invokeId, - final ClassLoader javaClassLoader, - final String javaClassName, - final String javaMethodName, - final String javaMethodDesc, - final Object target, - final Object[] argumentArray) { - if (isEnable) { - try { - final BeforeEvent event = (BeforeEvent) pool.borrowObject(Event.Type.BEFORE); - initBeforeEvent( - event, - processId, invokeId, - javaClassLoader, javaClassName, javaMethodName, javaMethodDesc, - target, argumentArray - ); - return event; - } catch (Exception cause) { - logger.warn("EventPool borrow BeforeEvent[processId={};invokeId={};class={};method={};] failed.", - processId, invokeId, javaClassName, javaMethodName, cause); - } - } - return new BeforeEvent( - processId, invokeId, - javaClassLoader, javaClassName, javaMethodName, javaMethodDesc, - target, argumentArray - ); - } - - public ReturnEvent borrowReturnEvent(final int processId, - final int invokeId, - final Object object) { - if (isEnable) { - try { - final ReturnEvent event = (ReturnEvent) pool.borrowObject(Event.Type.RETURN); - initReturnEvent(event, processId, invokeId, object); - return event; - } catch (Exception cause) { - logger.warn("EventPool borrow ReturnEvent[processId={};invokeId={};] failed.", - processId, invokeId, cause); - } - } - return new ReturnEvent(processId, invokeId, object); - } - - public ThrowsEvent borrowThrowsEvent(final int processId, - final int invokeId, - final Throwable throwable) { - if (isEnable) { - try { - final ThrowsEvent event = (ThrowsEvent) pool.borrowObject(Event.Type.THROWS); - initThrowsEvent(event, processId, invokeId, throwable); - return event; - } catch (Exception cause) { - logger.warn("EventPool borrow ThrowsEvent[processId={};invokeId={};] failed.", - processId, invokeId, cause); - } - } - return new ThrowsEvent(processId, invokeId, throwable); - } - - public LineEvent borrowLineEvent(final int processId, - final int invokeId, - final int lineNumber) { - if (isEnable) { - try { - final LineEvent event = (LineEvent) pool.borrowObject(Event.Type.LINE); - initLineEvent(event, processId, invokeId, lineNumber); - return event; - } catch (Exception cause) { - logger.warn("EventPool borrow LineEvent[processId={};invokeId={};] failed.", - processId, invokeId, cause); - } - } - return new LineEvent(processId, invokeId, lineNumber); - } - - public ImmediatelyReturnEvent borrowImmediatelyReturnEvent(final int processId, - final int invokeId, - final Object object) { - if (isEnable) { - try { - final ImmediatelyReturnEvent event = (ImmediatelyReturnEvent) pool.borrowObject(Event.Type.IMMEDIATELY_RETURN); - initReturnEvent(event, processId, invokeId, object); - return event; - } catch (Exception cause) { - logger.warn("EventPool borrow ImmediatelyReturnEvent[processId={};invokeId={};] failed.", - processId, invokeId, cause); - } - } - return new ImmediatelyReturnEvent(processId, invokeId, object); - } - - public ImmediatelyThrowsEvent borrowImmediatelyThrowsEvent(final int processId, - final int invokeId, - final Throwable throwable) { - if (isEnable) { - try { - final ImmediatelyThrowsEvent event = (ImmediatelyThrowsEvent) pool.borrowObject(Event.Type.IMMEDIATELY_THROWS); - initThrowsEvent(event, processId, invokeId, throwable); - return event; - } catch (Exception cause) { - logger.warn("EventPool borrow ImmediatelyThrowsEvent[processId={};invokeId={};] failed.", - processId, invokeId, cause); - } - } - return new ImmediatelyThrowsEvent(processId, invokeId, throwable); - } - - public CallBeforeEvent borrowCallBeforeEvent(final int processId, - final int invokeId, - final int lineNumber, - final String owner, - final String name, - final String desc) { - if (isEnable) { - try { - final CallBeforeEvent event = (CallBeforeEvent) pool.borrowObject(Event.Type.CALL_BEFORE); - initCallBeforeEvent(event, processId, invokeId, lineNumber, owner, name, desc); - return event; - } catch (Exception cause) { - logger.warn("EventPool borrow CallBeforeEvent[processId={};invokeId={};] failed.", - processId, invokeId, cause); - } - } - return new CallBeforeEvent(processId, invokeId, lineNumber, owner, name, desc); - } - - public CallReturnEvent borrowCallReturnEvent(final int processId, - final int invokeId) { - if (isEnable) { - try { - final CallReturnEvent event = (CallReturnEvent) pool.borrowObject(Event.Type.CALL_RETURN); - initCallReturnEvent(event, processId, invokeId); - return event; - } catch (Exception cause) { - logger.warn("EventPool borrow CallReturnEvent[processId={};invokeId={};] failed.", - processId, invokeId, cause); - } - } - return new CallReturnEvent(processId, invokeId); - } - - public CallThrowsEvent borrowCallThrowsEvent(final int processId, - final int invokeId, - final String throwException) { - if (isEnable) { - try { - final CallThrowsEvent event = (CallThrowsEvent) pool.borrowObject(Event.Type.CALL_THROWS); - initCallThrowsEvent(event, processId, invokeId, throwException); - return event; - } catch (Exception cause) { - logger.warn("EventPool borrow CallThrowsEvent[processId={};invokeId={};] failed.", - processId, invokeId, cause); - } - } - return new CallThrowsEvent(processId, invokeId, throwException); - } - - - /** - * 归还事件对象 - * - * @param event 事件对象 - */ - public void returnEvent(Event event) { - if (isEnable) { - try { - pool.returnObject(event.type, event); - } catch (Exception cause) { - logger.warn("EventPool return event={} failed.", event, cause); - } - } - } - - - private static final int ILLEGAL_PROCESS_ID = -1; - private static final int ILLEGAL_INVOKE_ID = -1; - - private static final Unsafe unsafe; - private static final long processIdFieldInInvokeEventOffset; - private static final long invokeIdFieldInInvokeEventOffset; - private static final long javaClassLoaderFieldInBeforeEventOffset; - private static final long javaClassNameFieldInBeforeEventOffset; - private static final long javaMethodNameFieldInBeforeEventOffset; - private static final long javaMethodDescFieldInBeforeEventOffset; - private static final long targetFieldInBeforeEventOffset; - private static final long argumentArrayFieldInBeforeEventOffset; - private static final long objectFieldInReturnEventOffset; - private static final long throwableFieldInThrowsEventOffset; - private static final long lineNumberFieldInLineEventOffset; - - private static final long lineNumberFieldInCallBeforeEventOffset; - private static final long ownerFieldInCallBeforeEventOffset; - private static final long nameFieldInCallBeforeEventOffset; - private static final long descFieldInCallBeforeEventOffset; - private static final long throwExceptionFieldInCallThrowsEventOffset; - - static { - try { - unsafe = UnsafeUtils.getUnsafe(); - processIdFieldInInvokeEventOffset = unsafe.objectFieldOffset(InvokeEvent.class.getDeclaredField("processId")); - invokeIdFieldInInvokeEventOffset = unsafe.objectFieldOffset(InvokeEvent.class.getDeclaredField("invokeId")); - javaClassLoaderFieldInBeforeEventOffset = unsafe.objectFieldOffset(BeforeEvent.class.getDeclaredField("javaClassLoader")); - javaClassNameFieldInBeforeEventOffset = unsafe.objectFieldOffset(BeforeEvent.class.getDeclaredField("javaClassName")); - javaMethodNameFieldInBeforeEventOffset = unsafe.objectFieldOffset(BeforeEvent.class.getDeclaredField("javaMethodName")); - javaMethodDescFieldInBeforeEventOffset = unsafe.objectFieldOffset(BeforeEvent.class.getDeclaredField("javaMethodDesc")); - targetFieldInBeforeEventOffset = unsafe.objectFieldOffset(BeforeEvent.class.getDeclaredField("target")); - argumentArrayFieldInBeforeEventOffset = unsafe.objectFieldOffset(BeforeEvent.class.getDeclaredField("argumentArray")); - objectFieldInReturnEventOffset = unsafe.objectFieldOffset(ReturnEvent.class.getDeclaredField("object")); - throwableFieldInThrowsEventOffset = unsafe.objectFieldOffset(ThrowsEvent.class.getDeclaredField("throwable")); - lineNumberFieldInLineEventOffset = unsafe.objectFieldOffset(LineEvent.class.getDeclaredField("lineNumber")); - - lineNumberFieldInCallBeforeEventOffset = unsafe.objectFieldOffset(CallBeforeEvent.class.getDeclaredField("lineNumber")); - ownerFieldInCallBeforeEventOffset = unsafe.objectFieldOffset(CallBeforeEvent.class.getDeclaredField("owner")); - nameFieldInCallBeforeEventOffset = unsafe.objectFieldOffset(CallBeforeEvent.class.getDeclaredField("name")); - descFieldInCallBeforeEventOffset = unsafe.objectFieldOffset(CallBeforeEvent.class.getDeclaredField("desc")); - throwExceptionFieldInCallThrowsEventOffset = unsafe.objectFieldOffset(CallThrowsEvent.class.getDeclaredField("throwException")); - } catch (Exception e) { - throw new Error(e); - } - } - - - private static void initBeforeEvent(final BeforeEvent event, - final int processId, - final int invokeId, - final ClassLoader javaClassLoader, - final String javaClassName, - final String javaMethodName, - final String javaMethodDesc, - final Object target, - final Object[] argumentArray) { - unsafe.putInt(event, processIdFieldInInvokeEventOffset, processId); - unsafe.putInt(event, invokeIdFieldInInvokeEventOffset, invokeId); - unsafe.putObject(event, javaClassLoaderFieldInBeforeEventOffset, javaClassLoader); - unsafe.putObject(event, javaClassNameFieldInBeforeEventOffset, javaClassName); - unsafe.putObject(event, javaMethodNameFieldInBeforeEventOffset, javaMethodName); - unsafe.putObject(event, javaMethodDescFieldInBeforeEventOffset, javaMethodDesc); - unsafe.putObject(event, targetFieldInBeforeEventOffset, target); - unsafe.putObject(event, argumentArrayFieldInBeforeEventOffset, argumentArray); - } - - private static void initReturnEvent(final ReturnEvent event, - final int processId, - final int invokeId, - final Object returnObj) { - unsafe.putInt(event, processIdFieldInInvokeEventOffset, processId); - unsafe.putInt(event, invokeIdFieldInInvokeEventOffset, invokeId); - unsafe.putObject(event, objectFieldInReturnEventOffset, returnObj); - } - - private static void initThrowsEvent(final ThrowsEvent event, - final int processId, - final int invokeId, - final Throwable throwable) { - unsafe.putInt(event, processIdFieldInInvokeEventOffset, processId); - unsafe.putInt(event, invokeIdFieldInInvokeEventOffset, invokeId); - unsafe.putObject(event, throwableFieldInThrowsEventOffset, throwable); - } - - private static void initLineEvent(final LineEvent event, - final int processId, - final int invokeId, - final int lineNumber) { - unsafe.putInt(event, processIdFieldInInvokeEventOffset, processId); - unsafe.putInt(event, invokeIdFieldInInvokeEventOffset, invokeId); - unsafe.putInt(event, lineNumberFieldInLineEventOffset, lineNumber); - } - - private static void initCallBeforeEvent(final CallBeforeEvent event, - final int processId, - final int invokeId, - final int lineNumber, - final String owner, - final String name, - final String desc) { - unsafe.putInt(event, processIdFieldInInvokeEventOffset, processId); - unsafe.putInt(event, invokeIdFieldInInvokeEventOffset, invokeId); - unsafe.putInt(event, lineNumberFieldInCallBeforeEventOffset, lineNumber); - unsafe.putObject(event, ownerFieldInCallBeforeEventOffset, owner); - unsafe.putObject(event, nameFieldInCallBeforeEventOffset, name); - unsafe.putObject(event, descFieldInCallBeforeEventOffset, desc); - } - - private static void initCallReturnEvent(final CallReturnEvent event, - final int processId, - final int invokeId) { - unsafe.putInt(event, processIdFieldInInvokeEventOffset, processId); - unsafe.putInt(event, invokeIdFieldInInvokeEventOffset, invokeId); - } - - private static void initCallThrowsEvent(final CallThrowsEvent event, - final int processId, - final int invokeId, - final String throwException) { - unsafe.putInt(event, processIdFieldInInvokeEventOffset, processId); - unsafe.putInt(event, invokeIdFieldInInvokeEventOffset, invokeId); - unsafe.putObject(event, throwExceptionFieldInCallThrowsEventOffset, throwException); - } - - private static class EventFactory extends BaseKeyedPooledObjectFactory { - - @Override - public Event create(Event.Type type) throws Exception { - switch (type) { - case BEFORE: - return new BeforeEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, null, null, null, null, null, null); - case THROWS: - return new ThrowsEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, null); - case RETURN: - return new ReturnEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, null); - case LINE: - return new LineEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, -1); - case IMMEDIATELY_RETURN: - return new ImmediatelyReturnEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, null); - case IMMEDIATELY_THROWS: - return new ImmediatelyThrowsEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, null); - case CALL_BEFORE: - return new CallBeforeEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, -1, null, null, null); - case CALL_RETURN: - return new CallReturnEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID); - case CALL_THROWS: - return new CallThrowsEvent(ILLEGAL_PROCESS_ID, ILLEGAL_INVOKE_ID, null); - } - throw new IllegalStateException("illegal type=" + type); - } - - @Override - public PooledObject wrap(Event event) { - return new DefaultPooledObject(event); - } - - /* - * 这里主要是释放掉引用的大资源,比如入参、返回值、抛异常等 - * 一些不大的资源其实可以保持引用,不会轻易触发GC - */ - @Override - public void passivateObject(Event.Type key, PooledObject pooledObject) throws Exception { - final Event event = pooledObject.getObject(); - switch (event.type) { - case BEFORE: - unsafe.putObject(event, targetFieldInBeforeEventOffset, null); - unsafe.putObject(event, argumentArrayFieldInBeforeEventOffset, null); - break; - case IMMEDIATELY_THROWS: - case THROWS: - unsafe.putObject(event, throwableFieldInThrowsEventOffset, null); - break; - case IMMEDIATELY_RETURN: - case RETURN: - unsafe.putObject(event, objectFieldInReturnEventOffset, null); - } - } - - } - -} diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/util/SandboxReflectUtils.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/util/SandboxReflectUtils.java index d1617804..b96d5919 100755 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/util/SandboxReflectUtils.java +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/util/SandboxReflectUtils.java @@ -1,12 +1,16 @@ package com.alibaba.jvm.sandbox.core.util; +import com.alibaba.jvm.sandbox.api.listener.EventListener; +import com.alibaba.jvm.sandbox.core.enhance.annotation.Interrupted; + import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * 反射工具类 - * Created by luanjia@taobao.com on 16/5/21. + * + * @author luanjia@taobao.com */ public class SandboxReflectUtils { @@ -118,4 +122,14 @@ public static Class defineClass(final ClassLoader loader, } + /** + * 判断是否是中断式事件处理器 + * + * @param listenerClass 事件监听器类型 + * @return TRUE:中断式;FALSE:非中断式 + */ + public static boolean isInterruptEventHandler(final Class listenerClass) { + return listenerClass.isAnnotationPresent(Interrupted.class); + } + } diff --git a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/util/collection/ThreadUnsafeGaStack.java b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/util/collection/ThreadUnsafeGaStack.java index 9fc5fa78..31029813 100755 --- a/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/util/collection/ThreadUnsafeGaStack.java +++ b/sandbox-core/src/main/java/com/alibaba/jvm/sandbox/core/util/collection/ThreadUnsafeGaStack.java @@ -54,7 +54,10 @@ private void checkForPopOrPeek() { public E pop() { checkForPopOrPeek(); //noinspection unchecked - return (E) elementArray[current--]; + final E e = (E) elementArray[current]; + elementArray[current] = null; + current--; + return e; } @Override @@ -91,4 +94,11 @@ public int deep() { return current + 1; } + public Object[] getElementArray() { + return elementArray; + } + + public int getCurrent() { + return current; + } } diff --git a/sandbox-core/src/main/resources/com/alibaba/jvm/sandbox/logo b/sandbox-core/src/main/resources/com/alibaba/jvm/sandbox/logo index b4a26f05..0983a78a 100644 --- a/sandbox-core/src/main/resources/com/alibaba/jvm/sandbox/logo +++ b/sandbox-core/src/main/resources/com/alibaba/jvm/sandbox/logo @@ -1,3 +1,4 @@ + ___ ____ __ ____ _ _ _ ____ ____ _____ __ | \ \ / / \/ | / ___| / \ | \ | | _ \| __ ) / _ \ \/ / _ | |\ \ / /| |\/| |____\___ \ / _ \ | \| | | | | _ \| | | \ / diff --git a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase.java b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase.java index 77a6402a..f680a5ac 100644 --- a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase.java +++ b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase.java @@ -1,14 +1,24 @@ package com.alibaba.jvm.sandbox.qatest.core.enhance; import com.alibaba.jvm.sandbox.api.ProcessController; +import com.alibaba.jvm.sandbox.api.event.Event; +import com.alibaba.jvm.sandbox.api.event.ReturnEvent; +import com.alibaba.jvm.sandbox.api.listener.EventListener; import com.alibaba.jvm.sandbox.api.listener.ext.Advice; import com.alibaba.jvm.sandbox.api.listener.ext.AdviceAdapterListener; import com.alibaba.jvm.sandbox.api.listener.ext.AdviceListener; +import com.alibaba.jvm.sandbox.core.enhance.weaver.EventListenerHandlers; +import com.alibaba.jvm.sandbox.core.util.ObjectIDs; import com.alibaba.jvm.sandbox.qatest.core.enhance.listener.InterruptedAdviceAdapterListener; import com.alibaba.jvm.sandbox.qatest.core.enhance.target.Calculator; +import com.alibaba.jvm.sandbox.qatest.core.util.JvmHelper; +import com.alibaba.jvm.sandbox.qatest.core.util.JvmHelper.Transformer; import org.junit.Test; +import java.util.concurrent.atomic.AtomicBoolean; + import static com.alibaba.jvm.sandbox.api.event.Event.Type.*; +import static com.alibaba.jvm.sandbox.api.util.GaStringUtils.getJavaClassName; import static org.junit.Assert.*; public class AdviceTestCase extends CalculatorTestCase { @@ -48,8 +58,8 @@ protected void afterReturning(Advice advice) throws Throwable { @Override protected void before(Advice advice) throws Throwable { - assertEquals(10, ((int[])advice.getParameterArray()[0])[0]); - assertEquals(20, ((int[])advice.getParameterArray()[0])[1]); + assertEquals(10, ((int[]) advice.getParameterArray()[0])[0]); + assertEquals(20, ((int[]) advice.getParameterArray()[0])[1]); assertTrue(advice.isProcessTop()); assertFalse(advice.isReturn()); assertFalse(advice.isThrows()); @@ -79,16 +89,17 @@ protected void afterReturning(Advice advice) throws Throwable { @Override protected void before(Advice advice) throws Throwable { - assertEquals(10, ((int[])advice.getParameterArray()[0])[0]); - assertEquals(20, ((int[])advice.getParameterArray()[0])[1]); - advice.changeParameter(0, new int[]{40,60}); + assertEquals(10, ((int[]) advice.getParameterArray()[0])[0]); + assertEquals(20, ((int[]) advice.getParameterArray()[0])[1]); + advice.changeParameter(0, new int[]{40, 60}); } @Override protected void afterReturning(Advice advice) throws Throwable { - assertEquals(40, ((int[])advice.getParameterArray()[0])[0]); - assertEquals(60, ((int[])advice.getParameterArray()[0])[1]); - assertEquals(100, advice.getReturnObj());; + assertEquals(40, ((int[]) advice.getParameterArray()[0])[0]); + assertEquals(60, ((int[]) advice.getParameterArray()[0])[1]); + assertEquals(100, advice.getReturnObj()); + ; } }), BEFORE, RETURN, THROWS @@ -107,8 +118,8 @@ protected void afterReturning(Advice advice) throws Throwable { @Override protected void before(Advice advice) throws Throwable { assertTrue(advice.isProcessTop()); - assertEquals(10, ((int[])advice.getParameterArray()[0])[0]); - assertEquals(20, ((int[])advice.getParameterArray()[0])[1]); + assertEquals(10, ((int[]) advice.getParameterArray()[0])[0]); + assertEquals(20, ((int[]) advice.getParameterArray()[0])[1]); ProcessController.returnImmediately(100); } @@ -134,8 +145,8 @@ protected void before(Advice advice) throws Throwable { @Override protected void afterReturning(Advice advice) throws Throwable { assertTrue(advice.isProcessTop()); - assertEquals(10, ((int[])advice.getParameterArray()[0])[0]); - assertEquals(20, ((int[])advice.getParameterArray()[0])[1]); + assertEquals(10, ((int[]) advice.getParameterArray()[0])[0]); + assertEquals(20, ((int[]) advice.getParameterArray()[0])[1]); ProcessController.returnImmediately(100); } @@ -161,8 +172,8 @@ protected void before(Advice advice) throws Throwable { @Override protected void afterThrowing(Advice advice) throws Throwable { assertTrue(advice.isProcessTop()); - assertEquals(10, ((int[])advice.getParameterArray()[0])[0]); - assertEquals(20, ((int[])advice.getParameterArray()[0])[1]); + assertEquals(10, ((int[]) advice.getParameterArray()[0])[0]); + assertEquals(20, ((int[]) advice.getParameterArray()[0])[1]); ProcessController.returnImmediately(100); } @@ -173,4 +184,91 @@ protected void afterThrowing(Advice advice) throws Throwable { assertEquals(100, calculatorErrorSum(computerClass.newInstance(), 10, 20)); } + @Test + public void test$$advice$$sum_add$$changeThrowsOnReturn() throws Throwable { + final AtomicBoolean isThrowingAtSum = new AtomicBoolean(false); + final Class calculatorClass = JvmHelper + .createJvm() + .defineClass( + Calculator.class, + CALCULATOR_SUM_and_ADD_FILTER, + new InterruptedAdviceAdapterListener(new AdviceListener() { + + @Override + protected void before(Advice advice) throws Throwable { + if (advice.getBehavior().getName().equals("sum")) { + assertTrue(advice.isProcessTop()); + } else { + assertFalse(advice.isProcessTop()); + ProcessController.throwsImmediately(new IllegalStateException("TEST")); + } + } + + @Override + protected void afterThrowing(Advice advice) throws Throwable { + isThrowingAtSum.set(true); + assertEquals("sum", advice.getBehavior().getName()); + ProcessController.returnImmediately(100); + } + }), + BEFORE, RETURN, THROWS, IMMEDIATELY_RETURN, IMMEDIATELY_THROWS + ) + .loadClass(getJavaClassName(Calculator.class)); + + assertEquals(100, calculatorSum(calculatorClass.newInstance(), 10, 20)); + + } + + @Test + public void test$$immediately$$throw_return_return() throws Throwable { + + final EventListener listener1; + final EventListener listener2; + final EventListener listener3; + final Class calculatorClass = JvmHelper + .createJvm() + .defineClass( + Calculator.class, + new Transformer( + CALCULATOR_SUM_FILTER, + listener1 = new EventListener() { + @Override + public void onEvent(Event event) throws Throwable { + ProcessController.throwsImmediately(new RuntimeException()); + } + }, + BEFORE + ), + new Transformer( + CALCULATOR_SUM_FILTER, + listener2 = new EventListener() { + @Override + public void onEvent(Event event) throws Throwable { + ProcessController.returnImmediately(100); + } + }, + THROWS + ), + new Transformer( + CALCULATOR_SUM_FILTER, + listener3 = new EventListener() { + @Override + public void onEvent(Event event) throws Throwable { + final ReturnEvent returnEvent = (ReturnEvent) event; + ProcessController.returnImmediately(10 + (Integer) returnEvent.object); + } + }, + RETURN + ) + ) + .loadClass(getJavaClassName(Calculator.class)); + + assertEquals(110, calculatorSum(calculatorClass.newInstance(), 10, 20)); + EventListenerHandlers.getSingleton().checkEventProcessor( + ObjectIDs.instance.identity(listener1), + ObjectIDs.instance.identity(listener2), + ObjectIDs.instance.identity(listener3) + ); + } + } diff --git a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/CalculatorTestCase.java b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/CalculatorTestCase.java index 69a577c5..c715444a 100644 --- a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/CalculatorTestCase.java +++ b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/CalculatorTestCase.java @@ -29,12 +29,21 @@ public class CalculatorTestCase extends CoreEnhanceBaseTestCase { "^errorSum$" ); - protected int calculatorSum(final Object calculatorObject, int... numArray) { - return unCaughtInvokeMethod( - unCaughtGetClassDeclaredJavaMethod(calculatorObject.getClass(), "sum", int[].class), - calculatorObject, - numArray - ); + protected int calculatorSum(final Object calculatorObject, int... numArray) throws Throwable { + try { + return unCaughtInvokeMethod( + unCaughtGetClassDeclaredJavaMethod(calculatorObject.getClass(), "sum", int[].class), + calculatorObject, + numArray + ); + } catch (Throwable cause) { + if (cause instanceof UnCaughtException + && (cause.getCause() instanceof InvocationTargetException)) { + throw ((InvocationTargetException) cause.getCause()).getTargetException(); + } + throw cause; + } + } protected int calculatorErrorSum(final Object calculatorObject, int... numArray) throws Throwable { diff --git a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStreamTestCase.java b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStreamTestCase.java index 42d21f1f..94084077 100644 --- a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStreamTestCase.java +++ b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStreamTestCase.java @@ -1,33 +1,272 @@ package com.alibaba.jvm.sandbox.qatest.core.enhance; +import com.alibaba.jvm.sandbox.api.event.BeforeEvent; import com.alibaba.jvm.sandbox.api.event.Event; +import com.alibaba.jvm.sandbox.api.event.ReturnEvent; import com.alibaba.jvm.sandbox.qatest.core.enhance.listener.EventStreamCheckerListener; +import com.alibaba.jvm.sandbox.qatest.core.enhance.listener.TracingEventListener; import com.alibaba.jvm.sandbox.qatest.core.enhance.target.Calculator; -import org.junit.Assert; +import com.alibaba.jvm.sandbox.qatest.core.util.JvmHelper; import org.junit.Test; +import static com.alibaba.jvm.sandbox.api.ProcessController.throwsImmediately; import static com.alibaba.jvm.sandbox.api.event.Event.Type.*; +import static com.alibaba.jvm.sandbox.api.util.GaStringUtils.getJavaClassName; import static com.alibaba.jvm.sandbox.qatest.core.enhance.listener.EventStreamCheckerListener.EventTypeChecker.*; +import static org.junit.Assert.assertEquals; /** * 测试方法调用事件流是否正确 */ public class EventStreamTestCase extends CalculatorTestCase { + @Test - public void test$$event_stream$$normal() throws Throwable { - final EventStreamCheckerListener listener; - final Class computerClass = watching( - Calculator.class, - CALCULATOR_SUM_FILTER, - listener = new EventStreamCheckerListener() - .nextEventCheck(BEFORE_CHECKER) - .nextEventCheck(RETURN_CHECKER), - BEFORE, RETURN, THROWS + public void sum$return() throws Throwable { + + final TracingEventListener listener; + final Class calculatorClass = JvmHelper + .createJvm() + .defineClass( + Calculator.class, + CALCULATOR_SUM_FILTER, + listener = new TracingEventListener(), + BEFORE, RETURN, THROWS + ) + .loadClass(getJavaClassName(Calculator.class)); + + assertEquals(20, calculatorSum(calculatorClass.newInstance(), 10, 10)); + listener.assertEventTracing( + BEFORE, + RETURN ); - Assert.assertEquals(2, calculatorSum(computerClass.newInstance(), 1, 1)); - listener.assertIsEmpty(); + } + + @Test + public void sum_add$return() throws Throwable { + + final TracingEventListener listener; + final Class calculatorClass = JvmHelper + .createJvm() + .defineClass( + Calculator.class, + CALCULATOR_SUM_and_ADD_FILTER, + listener = new TracingEventListener(), + BEFORE, RETURN, THROWS + ) + .loadClass(getJavaClassName(Calculator.class)); + + assertEquals(20, calculatorSum(calculatorClass.newInstance(), 10, 10)); + listener.assertEventTracing( + BEFORE, + BEFORE, + RETURN, + BEFORE, + RETURN, + RETURN + ); + + } + + @Test(expected = RuntimeException.class) + public void sum_add$throwsImmediately_at_add_before() throws Throwable { + final TracingEventListener listener; + final Class calculatorClass = JvmHelper + .createJvm() + .defineClass( + Calculator.class, + CALCULATOR_SUM_and_ADD_FILTER, + listener = new TracingEventListener() { + @Override + public void onEvent(Event event) throws Throwable { + super.onEvent(event); + if (event.type == BEFORE) { + final BeforeEvent beforeEvent = (BeforeEvent) event; + if (beforeEvent.javaMethodName.equals("add")) { + throwsImmediately(new RuntimeException("TEST")); + } + } + } + }, + BEFORE, RETURN, THROWS + ) + .loadClass(getJavaClassName(Calculator.class)); + + try { + calculatorSum(calculatorClass.newInstance(), 10, 10); + } finally { + listener.assertEventTracing( + BEFORE, + BEFORE, + THROWS + ); + } + } + + @Test(expected = RuntimeException.class) + public void sum_add$throwsImmediately_at_add_before$with_immediately() throws Throwable { + + final TracingEventListener listener; + final Class calculatorClass = JvmHelper + .createJvm() + .defineClass( + Calculator.class, + CALCULATOR_SUM_and_ADD_FILTER, + listener = new TracingEventListener() { + @Override + public void onEvent(Event event) throws Throwable { + super.onEvent(event); + if (event.type == BEFORE) { + final BeforeEvent beforeEvent = (BeforeEvent) event; + if (beforeEvent.javaMethodName.equals("add")) { + throwsImmediately(new RuntimeException("TEST")); + } + } + } + }, + BEFORE, RETURN, THROWS, IMMEDIATELY_RETURN, IMMEDIATELY_THROWS + ) + .loadClass(getJavaClassName(Calculator.class)); + + try { + calculatorSum(calculatorClass.newInstance(), 10, 10); + } finally { + listener.assertEventTracing( + BEFORE, + BEFORE, + IMMEDIATELY_THROWS, + THROWS + ); + } + } + + + @Test(expected = RuntimeException.class) + public void sum_add$throwsImmediately_at_add_return() throws Throwable { + final TracingEventListener listener; + final Class calculatorClass = JvmHelper + .createJvm() + .defineClass( + Calculator.class, + CALCULATOR_SUM_and_ADD_FILTER, + listener = new TracingEventListener() { + + int firstAddInvokeId = -1; + + @Override + public void onEvent(Event event) throws Throwable { + super.onEvent(event); + switch (event.type) { + case BEFORE: { + final BeforeEvent beforeEvent = (BeforeEvent) event; + if (beforeEvent.javaMethodName.equals("add")) { + firstAddInvokeId = beforeEvent.invokeId; + } + break; + } + case RETURN: { + final ReturnEvent returnEvent = (ReturnEvent) event; + if (returnEvent.invokeId == firstAddInvokeId) { + throwsImmediately(new RuntimeException("TEST")); + } + break; + } + } + } + }, + BEFORE, RETURN, THROWS + ) + .loadClass(getJavaClassName(Calculator.class)); + + try { + calculatorSum(calculatorClass.newInstance(), 10, 10); + } finally { + listener.assertEventTracing( + BEFORE, + BEFORE, + RETURN, + THROWS + ); + } + } + + @Test(expected = RuntimeException.class) + public void sum_add$throwsImmediately_at_add_return$with_immediately() throws Throwable { + + final TracingEventListener listener; + final Class calculatorClass = JvmHelper + .createJvm() + .defineClass( + Calculator.class, + CALCULATOR_SUM_and_ADD_FILTER, + listener = new TracingEventListener() { + + int firstAddInvokeId = -1; + + @Override + public void onEvent(Event event) throws Throwable { + super.onEvent(event); + switch (event.type) { + case BEFORE: { + final BeforeEvent beforeEvent = (BeforeEvent) event; + if (beforeEvent.javaMethodName.equals("add")) { + firstAddInvokeId = beforeEvent.invokeId; + } + break; + } + case RETURN: { + final ReturnEvent returnEvent = (ReturnEvent) event; + if (returnEvent.invokeId == firstAddInvokeId) { + throwsImmediately(new RuntimeException("TEST")); + } + break; + } + } + } + + }, + BEFORE, RETURN, THROWS, IMMEDIATELY_RETURN, IMMEDIATELY_THROWS + ) + .loadClass(getJavaClassName(Calculator.class)); + + try { + calculatorSum(calculatorClass.newInstance(), 10, 10); + } finally { + listener.assertEventTracing( + BEFORE, + BEFORE, + RETURN, + IMMEDIATELY_THROWS, + THROWS + ); + } + } + + + @Test(expected = Exception.class) + public void sum$throws() throws Throwable { + + final TracingEventListener listener; + final Class calculatorClass = JvmHelper + .createJvm() + .defineClass( + Calculator.class, + CALCULATOR_ERROR_SUM_FILTER, + listener = new TracingEventListener(), + BEFORE, RETURN, THROWS + ) + .loadClass(getJavaClassName(Calculator.class)); + + try { + calculatorErrorSum(calculatorClass.newInstance(), 10, 10); + } finally { + listener.assertEventTracing( + BEFORE, + THROWS + ); + } + } @@ -47,7 +286,7 @@ public class EventStreamTestCase extends CalculatorTestCase { BEFORE, RETURN, THROWS, CALL_BEFORE, CALL_RETURN, CALL_THROWS ); - Assert.assertEquals(2, calculatorSum(computerClass.newInstance(), 1, 1)); + assertEquals(2, calculatorSum(computerClass.newInstance(), 1, 1)); listener.assertIsEmpty(); } @@ -70,7 +309,7 @@ public class EventStreamTestCase extends CalculatorTestCase { BEFORE, RETURN, THROWS, LINE ); - Assert.assertEquals(2, calculatorSum(computerClass.newInstance(), 1, 1)); + assertEquals(2, calculatorSum(computerClass.newInstance(), 1, 1)); listener.assertIsEmpty(); } @@ -97,7 +336,7 @@ public class EventStreamTestCase extends CalculatorTestCase { Event.Type.values() ); - Assert.assertEquals(2, calculatorSum(computerClass.newInstance(), 1, 1)); + assertEquals(2, calculatorSum(computerClass.newInstance(), 1, 1)); listener.assertIsEmpty(); } diff --git a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase.java b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase.java index 7c1aea30..feeb38a0 100644 --- a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase.java +++ b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase.java @@ -1,12 +1,15 @@ package com.alibaba.jvm.sandbox.qatest.core.enhance; import com.alibaba.jvm.sandbox.api.event.*; +import com.alibaba.jvm.sandbox.api.listener.EventListener; import com.alibaba.jvm.sandbox.qatest.core.enhance.listener.EventStreamCheckerListener; import com.alibaba.jvm.sandbox.qatest.core.enhance.listener.EventStreamCheckerListener.EventChecker; import com.alibaba.jvm.sandbox.qatest.core.enhance.target.Calculator; +import com.alibaba.jvm.sandbox.qatest.core.util.JvmHelper; import org.junit.Test; import static com.alibaba.jvm.sandbox.api.event.Event.Type.*; +import static com.alibaba.jvm.sandbox.api.util.GaStringUtils.getJavaClassName; import static com.alibaba.jvm.sandbox.qatest.core.enhance.listener.EventStreamCheckerListener.EventTypeChecker.CALL_RETURN_CHECKER; import static org.junit.Assert.*; @@ -18,7 +21,7 @@ public class EventTestCase extends CalculatorTestCase { @Test public void test$$event$$before() throws Throwable { EventStreamCheckerListener listener; - final Class computerClass = watching( + final Class calculatorClass = watching( Calculator.class, CALCULATOR_SUM_FILTER, listener = new EventStreamCheckerListener().nextEventCheck(new EventChecker() { @@ -37,14 +40,14 @@ public void onCheck(BeforeEvent event) { }), BEFORE ); - assertEquals(30, calculatorSum(computerClass.newInstance(), 10, 20)); + assertEquals(30, calculatorSum(calculatorClass.newInstance(), 10, 20)); listener.assertIsEmpty(); } @Test public void test$$event$$return() throws Throwable { EventStreamCheckerListener listener; - final Class computerClass = watching( + final Class calculatorClass = watching( Calculator.class, CALCULATOR_SUM_FILTER, listener = new EventStreamCheckerListener().nextEventCheck(new EventChecker() { @@ -56,7 +59,7 @@ public void onCheck(ReturnEvent event) { }), RETURN ); - assertEquals(30, calculatorSum(computerClass.newInstance(), 10, 20)); + assertEquals(30, calculatorSum(calculatorClass.newInstance(), 10, 20)); listener.assertIsEmpty(); } @@ -64,7 +67,7 @@ public void onCheck(ReturnEvent event) { @Test(expected = RuntimeException.class) public void test$$event$$throws() throws Throwable { EventStreamCheckerListener listener; - final Class computerClass = watching( + final Class calculatorClass = watching( Calculator.class, CALCULATOR_ERROR_SUM_FILTER, listener = new EventStreamCheckerListener().nextEventCheck(new EventChecker() { @@ -77,12 +80,12 @@ public void onCheck(ThrowsEvent event) { }), THROWS ); - assertCalculatorErrorSum(listener, computerClass); + assertCalculatorErrorSum(listener, calculatorClass); } - private void assertCalculatorErrorSum(EventStreamCheckerListener listener, Class computerClass) throws Throwable { + private void assertCalculatorErrorSum(EventStreamCheckerListener listener, Class calculatorClass) throws Throwable { try { - calculatorErrorSum(computerClass.newInstance(), 10, 20); + calculatorErrorSum(calculatorClass.newInstance(), 10, 20); assertFalse("must throw exception", true); } catch (RuntimeException cause) { assertEquals("THIS IS A TEST!", cause.getMessage()); @@ -106,7 +109,7 @@ public void onCheck(CallBeforeEvent event) { }; EventStreamCheckerListener listener; - final Class computerClass = watching( + final Class calculatorClass = watching( Calculator.class, CALCULATOR_SUM_FILTER, listener = new EventStreamCheckerListener() @@ -114,14 +117,14 @@ public void onCheck(CallBeforeEvent event) { .nextEventCheck(callBeforeEventEventChecker), CALL_BEFORE ); - assertEquals(30, calculatorSum(computerClass.newInstance(), 10, 20)); + assertEquals(30, calculatorSum(calculatorClass.newInstance(), 10, 20)); listener.assertIsEmpty(); } @Test public void test$$event$$call_return() throws Throwable { EventStreamCheckerListener listener; - final Class computerClass = watching( + final Class calculatorClass = watching( Calculator.class, CALCULATOR_SUM_FILTER, listener = new EventStreamCheckerListener() @@ -129,7 +132,7 @@ public void onCheck(CallBeforeEvent event) { .nextEventCheck(CALL_RETURN_CHECKER), CALL_RETURN ); - assertEquals(30, calculatorSum(computerClass.newInstance(), 10, 20)); + assertEquals(30, calculatorSum(calculatorClass.newInstance(), 10, 20)); listener.assertIsEmpty(); } @@ -144,14 +147,14 @@ public void onCheck(CallThrowsEvent event) { }; EventStreamCheckerListener listener; - final Class computerClass = watching( + final Class calculatorClass = watching( Calculator.class, CALCULATOR_ERROR_SUM_FILTER, listener = new EventStreamCheckerListener() .nextEventCheck(callThrowsEventEventChecker), CALL_THROWS ); - assertCalculatorErrorSum(listener, computerClass); + assertCalculatorErrorSum(listener, calculatorClass); } @@ -173,7 +176,7 @@ public void onCheck(LineEvent event) { @Test public void test$$event$$line() throws Throwable { EventStreamCheckerListener listener; - final Class computerClass = watching( + final Class calculatorClass = watching( Calculator.class, CALCULATOR_SUM_FILTER, listener = new EventStreamCheckerListener() @@ -187,7 +190,7 @@ public void onCheck(LineEvent event) { , LINE ); - assertEquals(30, calculatorSum(computerClass.newInstance(), 10, 20)); + assertEquals(30, calculatorSum(calculatorClass.newInstance(), 10, 20)); listener.assertIsEmpty(); } diff --git a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/TracingEventListener.java b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/TracingEventListener.java new file mode 100644 index 00000000..3c631e59 --- /dev/null +++ b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/TracingEventListener.java @@ -0,0 +1,63 @@ +package com.alibaba.jvm.sandbox.qatest.core.enhance.listener; + +import com.alibaba.jvm.sandbox.api.event.BeforeEvent; +import com.alibaba.jvm.sandbox.api.event.Event; +import com.alibaba.jvm.sandbox.core.enhance.weaver.EventListenerHandlers; +import com.alibaba.jvm.sandbox.core.util.ObjectIDs; + +import java.util.ArrayList; +import java.util.List; + +import static org.apache.commons.lang3.ArrayUtils.getLength; +import static org.junit.Assert.assertEquals; + +/** + * 事件跟踪监听器 + */ +public class TracingEventListener extends InterruptedEventListener { + + private final List eventTracing = new ArrayList(); + + @Override + public void onEvent(Event event) throws Throwable { + eventTracing.add(event.type); + } + + /** + * 获取跟踪信息 + * + * @return 跟踪信息 + */ + public List getEventTracing() { + return eventTracing; + } + + /** + * 断言跟踪信息 + * + * @param exceptEventTypes 期待的事件类型 + */ + public void assertEventTracing(final Event.Type... exceptEventTypes) { + assertEventProcessor(); + assertArrayEquals( + exceptEventTypes, + getEventTracing().toArray(new Event.Type[]{}) + ); + } + + // 检查内核事件处理器是否正确 + private void assertEventProcessor() { + EventListenerHandlers + .getSingleton() + .checkEventProcessor(ObjectIDs.instance.identity(this)); + } + + private void assertArrayEquals(E[] exceptArray, E[] actualArray) { + assertEquals("except size not matched!", getLength(exceptArray), getLength(actualArray)); + for (int index = 0; index < exceptArray.length; index++) { + assertEquals("[" + index + "] not matched", exceptArray[index], actualArray[index]); + } + } + + +} diff --git a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase.java b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase.java index c4213683..bf409d17 100644 --- a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase.java +++ b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase.java @@ -281,6 +281,7 @@ public boolean onFire(CoreModule coreModule, Event event) { moduleLifeCycleEventBus, new EmptyProviderManager() ); + coreModuleManager.reset(); // 刚完成初始化,注册好的事件应该消化完成 @@ -328,7 +329,7 @@ public boolean onFire(CoreModule coreModule, Event event) { } @Test - public void test$$CoreModuleManager$$loading() throws IOException { + public void test$$CoreModuleManager$$loading() throws IOException, ModuleException { final File moduleJarFile = buildingModuleJarFileWithModuleClass( createTempFile("test-", ".jar"), @@ -350,6 +351,7 @@ public boolean onFire(CoreModule coreModule, Event event) { new DefaultModuleLifeCycleEventBus(), new EmptyProviderManager() ); + coreModuleManager.reset(); final Set uniqueIds = new LinkedHashSet(); for (final CoreModule coreModule : coreModuleManager.list()) { @@ -400,6 +402,7 @@ public static class ModifyAnotherNormalModule implements Module { new DefaultModuleLifeCycleEventBus(), new EmptyProviderManager() ); + coreModuleManager.reset(); final Set uniqueIds = new LinkedHashSet(); for (final CoreModule coreModule : coreModuleManager.list()) { @@ -441,6 +444,7 @@ public static class ModifyAnotherNormalModule implements Module { new DefaultModuleLifeCycleEventBus(), new EmptyProviderManager() ); + coreModuleManager.reset(); final Set uniqueIds = new LinkedHashSet(); for (final CoreModule coreModule : coreModuleManager.list()) { @@ -483,6 +487,7 @@ public static class ModifyAnotherNormalModule implements Module { new DefaultModuleLifeCycleEventBus(), new EmptyProviderManager() ); + coreModuleManager.reset(); { final Set uniqueIds = new LinkedHashSet(); @@ -542,6 +547,7 @@ public static class ModifyAnotherNormalModule implements Module { new DefaultModuleLifeCycleEventBus(), new EmptyProviderManager() ); + coreModuleManager.reset(); coreModuleManager.getThrowsExceptionIfNull("not-existed-module"); } @@ -583,6 +589,7 @@ public boolean onFire(CoreModule coreModule, Event event) { moduleLifeCycleEventBus, new EmptyProviderManager() ); + coreModuleManager.reset(); final CoreModule normalNoLazyActiveCoreModule = coreModuleManager .getThrowsExceptionIfNull("normal-no-lazy-active-module"); @@ -638,6 +645,7 @@ public boolean onFire(CoreModule coreModule, Event event) { moduleLifeCycleEventBus, new EmptyProviderManager() ); + coreModuleManager.reset(); final CoreModule brokenOnLazyActiveCoreModule = coreModuleManager .getThrowsExceptionIfNull("broken-on-lazy-active"); diff --git a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/util/JvmHelper.java b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/util/JvmHelper.java new file mode 100644 index 00000000..0846a0ee --- /dev/null +++ b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/util/JvmHelper.java @@ -0,0 +1,210 @@ +package com.alibaba.jvm.sandbox.qatest.core.util; + +import com.alibaba.jvm.sandbox.api.event.Event; +import com.alibaba.jvm.sandbox.api.filter.Filter; +import com.alibaba.jvm.sandbox.api.listener.EventListener; +import com.alibaba.jvm.sandbox.core.enhance.EventEnhancer; +import com.alibaba.jvm.sandbox.core.enhance.weaver.EventListenerHandlers; +import com.alibaba.jvm.sandbox.core.util.ObjectIDs; +import com.alibaba.jvm.sandbox.core.util.SandboxReflectUtils; +import com.alibaba.jvm.sandbox.core.util.matcher.ExtFilterMatcher; +import com.alibaba.jvm.sandbox.core.util.matcher.MatchingResult; +import com.alibaba.jvm.sandbox.core.util.matcher.structure.ClassStructureFactory; +import org.apache.commons.lang3.StringUtils; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.InvocationTargetException; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Set; + +import static com.alibaba.jvm.sandbox.api.filter.ExtFilter.ExtFilterFactory.make; +import static com.alibaba.jvm.sandbox.api.util.GaStringUtils.getJavaClassName; +import static com.alibaba.jvm.sandbox.core.CoreConfigure.toConfigure; +import static com.alibaba.jvm.sandbox.qatest.core.util.QaClassUtils.toByteArray; +import static com.alibaba.jvm.sandbox.qatest.core.util.QaClassUtils.toResourceName; + +/** + * JVM帮助类,能模拟一个JVM对类的管理行为 + */ +public class JvmHelper { + + private final String namespace; + private final PrivateClassLoader classLoader + = new PrivateClassLoader(); + + public JvmHelper(final String namespace) { + this.namespace = namespace; + toConfigure(String.format(";namespace=%s;", namespace), ""); + } + + public JvmHelper defineClass(final Class clazz) throws IOException, InvocationTargetException, IllegalAccessException { + return defineClass( + getJavaClassName(clazz), + toByteArray(clazz) + ); + } + + public JvmHelper defineClass(final String javaClassName, + final byte[] byteCodeArray) throws InvocationTargetException, IllegalAccessException { + classLoader.defineClass(javaClassName, byteCodeArray); + return this; + } + + public static class Transformer { + + private final Filter filter; + private final EventListener listener; + private final Event.Type[] eventTypes; + + public Transformer(final Filter filter, + final EventListener listener, + final Event.Type... eventTypes) { + this.filter = filter; + this.listener = listener; + this.eventTypes = eventTypes; + } + + public byte[] transform(final String namespace, + final ClassLoader loader, + final byte[] byteCodes) { + + final MatchingResult matchingResult = new ExtFilterMatcher(make(filter)) + .matching(ClassStructureFactory.createClassStructure(byteCodes, loader)); + + final int listenerId = ObjectIDs.instance.identity(listener); + EventListenerHandlers.getSingleton().active( + listenerId, + listener, + eventTypes + ); + + if (matchingResult.isMatched()) { + return new EventEnhancer().toByteCodeArray( + loader, + byteCodes, + matchingResult.getBehaviorSignCodes(), + namespace, + listenerId, + eventTypes + ); + } else { + return byteCodes; + } + } + + } + + public JvmHelper defineClass(final Class clazz, + final Filter filter, + final EventListener listener, + final Event.Type... eventType) throws IllegalAccessException, IOException, InvocationTargetException { + return defineClass(new Class[]{clazz}, filter, listener, eventType); + } + + public JvmHelper defineClass(final Class[] classes, + final Filter filter, + final EventListener listener, + final Event.Type... eventTypes) throws IllegalAccessException, IOException, InvocationTargetException { + return defineClass( + classes, + new Transformer(filter, listener, eventTypes) + ); + } + + public JvmHelper defineClass(final Class clazz, + final Transformer... transformers) throws IOException, InvocationTargetException, IllegalAccessException { + return defineClass(new Class[]{clazz}, transformers); + } + + public JvmHelper defineClass(final Class[] classes, + final Transformer... transformers) throws IOException, InvocationTargetException, IllegalAccessException { + for (final Class clazz : classes) { + final String javaClassName = getJavaClassName(clazz); + byte[] byteCodes = toByteArray(clazz); + for (final Transformer transformer : transformers) { + byteCodes = transformer.transform(namespace, classLoader, byteCodes); + } + defineClass(javaClassName, byteCodes); + } + return this; + } + + public Class loadClass(String javaClassName) throws ClassNotFoundException { + return classLoader.loadClass(javaClassName); + } + + + /** + * 私有的ClassLoader + */ + class PrivateClassLoader extends ClassLoader { + + private final Map javaClassByteArrayMap + = new HashMap(); + + private final Set> classes = new LinkedHashSet>(); + + public PrivateClassLoader() { + } + + public PrivateClassLoader(ClassLoader parent) { + super(parent); + } + + @Override + protected Class loadClass(String name, boolean resolve) throws ClassNotFoundException { + + for (final Class clazz : classes) { + if (StringUtils.equals(name, getJavaClassName(clazz))) { + return clazz; + } + } + + final Class loadedClass = findLoadedClass(name); + if (loadedClass == null) { + try { + final Class aClass = findClass(name); + if (resolve) { + resolveClass(aClass); + } + return aClass; + } catch (Exception e) { + return super.loadClass(name, resolve); + } + } else { + return loadedClass; + } + } + + public Class defineClass(final String javaClassName, + final byte[] classByteArray) throws InvocationTargetException, IllegalAccessException { + javaClassByteArrayMap.put(toResourceName(javaClassName), classByteArray); + final Class clazz = SandboxReflectUtils.defineClass(this, javaClassName, classByteArray); + classes.add(clazz); + return clazz; + } + + @Override + public InputStream getResourceAsStream(String name) { + if (javaClassByteArrayMap.containsKey(name)) { + return new ByteArrayInputStream(javaClassByteArrayMap.get(name)); + } + return super.getResourceAsStream(name); + } + + } + + + public static JvmHelper createJvm(final String namespace) { + return new JvmHelper(StringUtils.isBlank(namespace) ? "default" : namespace); + } + + public static JvmHelper createJvm() { + return createJvm("default"); + } + +} diff --git a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/util/QaClassUtils.java b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/util/QaClassUtils.java index 076e06df..ae52562c 100644 --- a/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/util/QaClassUtils.java +++ b/sandbox-core/src/test/java/com/alibaba/jvm/sandbox/qatest/core/util/QaClassUtils.java @@ -33,78 +33,4 @@ public static String toResourceName(String javaClassName) { return toInternalClassName(javaClassName).concat(".class"); } - public static Set> getJdkFamilySuperClasses(Class clazz) { - final Set> familySuperClasses = new LinkedHashSet>(); - for (Class superClass = clazz.getSuperclass(); - superClass != null; - superClass = superClass.getSuperclass()) { - familySuperClasses.add(superClass); - } - return familySuperClasses; - } - - public static Set> getJdkClassInterfaces(Class clazz) { - final Set> interfaceClasses = new LinkedHashSet>(); - if (ArrayUtils.isNotEmpty(clazz.getInterfaces())) { - for (Class interfaceClass : clazz.getInterfaces()) { - interfaceClasses.add(interfaceClass); - interfaceClasses.addAll(getJdkFamilySuperClasses(interfaceClass)); - } - } - return interfaceClasses; - } - - public static Set> getJdkFamilyClassInterface(Class clazz) { - final Set> familyInterfaceClasses = new LinkedHashSet>(); - for (final Class interfaceClass : getJdkClassInterfaces(clazz)) { - familyInterfaceClasses.add(interfaceClass); - familyInterfaceClasses.addAll(getJdkClassInterfaces(interfaceClass)); - } - return familyInterfaceClasses; - } - - /** - * 获取类的所有类型 - *

- *

  • 所有父类
  • - *
  • 所有父类的接口及这些接口的所有父类
  • - *
  • 所有接口的父类
  • - *

    - * - * @param clazz - * @return - */ - public static Set> getJdkFamilyClassType(Class clazz) { - - // 获取所有的父类 - final Set> familyTypes = new LinkedHashSet>(getJdkFamilyClassInterface(clazz)); - - for (final Class superClass : getJdkFamilySuperClasses(clazz)) { - familyTypes.add(superClass); - familyTypes.addAll(getJdkFamilyClassInterface(superClass)); - } - - // 递归获取所有接口及其父类 - return familyTypes; - } - - public static Set> getJdkAnnotationType(Class clazz) { - final Set> annotationClasses = new LinkedHashSet>(); - if(ArrayUtils.isNotEmpty(clazz.getAnnotations())) { - for (final Annotation annotation : clazz.getAnnotations()) { - if (annotation.getClass().isAnnotation()) { - annotationClasses.add(annotation.getClass()); - } - for (final Class annotationInterfaceClass : annotation.getClass().getInterfaces()) { - if (annotationInterfaceClass.isAnnotation()) { - annotationClasses.add(annotationInterfaceClass); - } - } - } - } - return annotationClasses; - } - - - } diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/CoreConfigure.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/CoreConfigure.class deleted file mode 100644 index 463b1561..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/CoreConfigure.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/CoreLauncher.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/CoreLauncher.class deleted file mode 100644 index 89eb9271..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/CoreLauncher.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/classloader/ModuleClassLoader.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/classloader/ModuleClassLoader.class deleted file mode 100644 index 8381dab9..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/classloader/ModuleClassLoader.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/classloader/ProviderClassLoader.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/classloader/ProviderClassLoader.class deleted file mode 100644 index abd7b8d4..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/classloader/ProviderClassLoader.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/classloader/RoutingURLClassLoader$Routing.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/classloader/RoutingURLClassLoader$Routing.class deleted file mode 100644 index 66c5a018..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/classloader/RoutingURLClassLoader$Routing.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/classloader/RoutingURLClassLoader.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/classloader/RoutingURLClassLoader.class deleted file mode 100644 index 5f3ae96d..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/classloader/RoutingURLClassLoader.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/domain/CoreModule.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/domain/CoreModule.class deleted file mode 100644 index 1c212b78..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/domain/CoreModule.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/Enhancer.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/Enhancer.class deleted file mode 100644 index 2fecd266..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/Enhancer.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/EventEnhancer$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/EventEnhancer$1.class deleted file mode 100644 index dfc9bee3..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/EventEnhancer$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/EventEnhancer.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/EventEnhancer.class deleted file mode 100644 index a03507bd..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/EventEnhancer.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/annotation/Interrupted.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/annotation/Interrupted.class deleted file mode 100644 index 98f82622..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/annotation/Interrupted.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/CodeLock$Block.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/CodeLock$Block.class deleted file mode 100644 index 2257ca5c..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/CodeLock$Block.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/CodeLock.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/CodeLock.class deleted file mode 100644 index a16495c4..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/CodeLock.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$1.class deleted file mode 100644 index 63326a50..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$EventListenerWrap$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$EventListenerWrap$1.class deleted file mode 100644 index c72e30df..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$EventListenerWrap$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$EventListenerWrap$EventProcess.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$EventListenerWrap$EventProcess.class deleted file mode 100644 index 384a1fc7..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$EventListenerWrap$EventProcess.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$EventListenerWrap.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$EventListenerWrap.class deleted file mode 100644 index 015ef721..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$EventListenerWrap.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$InterruptedEventListenerImpl.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$InterruptedEventListenerImpl.class deleted file mode 100644 index c70ce1e1..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers$InterruptedEventListenerImpl.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers.class deleted file mode 100644 index 0d019495..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/EventListenerHandlers.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener$1.class deleted file mode 100644 index 43225d9d..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener$2.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener$2.class deleted file mode 100644 index db3364f0..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener$2.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener$Step.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener$Step.class deleted file mode 100644 index d59ceac0..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener$Step.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener.class deleted file mode 100644 index 498c3e4e..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/SeparateImmediatelyEventListener.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmCodeLock.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmCodeLock.class deleted file mode 100644 index d0a0a949..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmCodeLock.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmMethods$InnerHelper.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmMethods$InnerHelper.class deleted file mode 100644 index fab7d391..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmMethods$InnerHelper.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmMethods.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmMethods.class deleted file mode 100644 index 00c1134f..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmMethods.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmTryCatchBlock.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmTryCatchBlock.class deleted file mode 100644 index 381f8633..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmTryCatchBlock.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmTypes.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmTypes.class deleted file mode 100644 index 0e6759e0..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/AsmTypes.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/CallAsmCodeLock.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/CallAsmCodeLock.class deleted file mode 100644 index 9bd70eb8..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/CallAsmCodeLock.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$1.class deleted file mode 100644 index 25812785..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$2.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$2.class deleted file mode 100644 index 3594c4eb..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$2.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$3.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$3.class deleted file mode 100644 index 99780efb..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$3.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$4.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$4.class deleted file mode 100644 index 628ca7ce..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$4.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$5.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$5.class deleted file mode 100644 index da6152c1..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$5.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$6.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$6.class deleted file mode 100644 index 2fb3c0c8..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$6.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$7.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$7.class deleted file mode 100644 index c50cce99..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$7.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$8.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$8.class deleted file mode 100644 index a2c55400..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1$8.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1.class deleted file mode 100644 index 9f4b98c8..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver.class deleted file mode 100644 index 3108e02e..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/EventWeaver.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/ReWriteMethod.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/ReWriteMethod.class deleted file mode 100644 index fd7202c4..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/enhance/weaver/asm/ReWriteMethod.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/CoreLoadedClassDataSource.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/CoreLoadedClassDataSource.class deleted file mode 100644 index f0aaedd5..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/CoreLoadedClassDataSource.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/CoreModuleManager.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/CoreModuleManager.class deleted file mode 100644 index 10cc5046..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/CoreModuleManager.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleLifeCycleEventBus$Event.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleLifeCycleEventBus$Event.class deleted file mode 100644 index c1ff0605..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleLifeCycleEventBus$Event.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleLifeCycleEventBus$ModuleLifeCycleEventListener.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleLifeCycleEventBus$ModuleLifeCycleEventListener.class deleted file mode 100644 index a9f8bc28..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleLifeCycleEventBus$ModuleLifeCycleEventListener.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleLifeCycleEventBus.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleLifeCycleEventBus.class deleted file mode 100644 index 801aa88c..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleLifeCycleEventBus.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleResourceManager$WeakResource.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleResourceManager$WeakResource.class deleted file mode 100644 index a26b6f5c..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleResourceManager$WeakResource.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleResourceManager.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleResourceManager.class deleted file mode 100644 index ffa0e6e4..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ModuleResourceManager.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ProviderManager.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ProviderManager.class deleted file mode 100644 index 92dc8bf8..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/ProviderManager.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/AffectStatistic.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/AffectStatistic.class deleted file mode 100644 index 7f27c093..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/AffectStatistic.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultConfigInfo.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultConfigInfo.class deleted file mode 100644 index 74d7955e..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultConfigInfo.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager$1.class deleted file mode 100644 index b9845f24..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager$InnerModuleJarLoadCallback.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager$InnerModuleJarLoadCallback.class deleted file mode 100644 index 3d6bac0e..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager$InnerModuleJarLoadCallback.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager$InnerModuleLoadCallback.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager$InnerModuleLoadCallback.class deleted file mode 100644 index d0cfd9d2..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager$InnerModuleLoadCallback.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager.class deleted file mode 100644 index 0998b2aa..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultCoreModuleManager.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultEventMonitor$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultEventMonitor$1.class deleted file mode 100644 index 2e40047d..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultEventMonitor$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultEventMonitor.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultEventMonitor.class deleted file mode 100644 index 8ce1d806..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultEventMonitor.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultLoadedClassDataSource$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultLoadedClassDataSource$1.class deleted file mode 100644 index 71173e5f..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultLoadedClassDataSource$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultLoadedClassDataSource.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultLoadedClassDataSource.class deleted file mode 100644 index dd8258d5..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultLoadedClassDataSource.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleController.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleController.class deleted file mode 100644 index 1a7f81ad..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleController.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleEventWatcher.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleEventWatcher.class deleted file mode 100644 index abf46b44..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleEventWatcher.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleLifeCycleEventBus.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleLifeCycleEventBus.class deleted file mode 100644 index 98ce0e38..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleLifeCycleEventBus.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleManager.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleManager.class deleted file mode 100644 index 2cc9f91c..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleManager.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleResourceManager.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleResourceManager.class deleted file mode 100644 index 4a0a7ebc..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultModuleResourceManager.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultProviderManager.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultProviderManager.class deleted file mode 100644 index afc6ec49..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/DefaultProviderManager.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/ModuleJarLoader$ModuleJarLoadCallback.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/ModuleJarLoader$ModuleJarLoadCallback.class deleted file mode 100644 index d148e382..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/ModuleJarLoader$ModuleJarLoadCallback.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/ModuleJarLoader$ModuleLoadCallback.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/ModuleJarLoader$ModuleLoadCallback.class deleted file mode 100644 index e38cb161..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/ModuleJarLoader$ModuleLoadCallback.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/ModuleJarLoader.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/ModuleJarLoader.class deleted file mode 100644 index 0c3a6c1e..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/ModuleJarLoader.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/SandboxClassFileTransformer.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/SandboxClassFileTransformer.class deleted file mode 100644 index 2759fe6a..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/manager/impl/SandboxClassFileTransformer.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/CoreServer.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/CoreServer.class deleted file mode 100644 index b6f639a5..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/CoreServer.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/ProxyCoreServer.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/ProxyCoreServer.class deleted file mode 100644 index 59e13fb6..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/ProxyCoreServer.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/JettyCoreServer$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/JettyCoreServer$1.class deleted file mode 100644 index a40b7ba0..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/JettyCoreServer$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/JettyCoreServer$2.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/JettyCoreServer$2.class deleted file mode 100644 index 1b421828..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/JettyCoreServer$2.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/JettyCoreServer.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/JettyCoreServer.class deleted file mode 100644 index ce3fe053..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/JettyCoreServer.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/ModuleHttpServlet$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/ModuleHttpServlet$1.class deleted file mode 100644 index 8675497e..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/ModuleHttpServlet$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/ModuleHttpServlet.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/ModuleHttpServlet.class deleted file mode 100644 index 5a063241..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/ModuleHttpServlet.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet$InnerOnTextMessage.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet$InnerOnTextMessage.class deleted file mode 100644 index 4495b9ff..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet$InnerOnTextMessage.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet$InnerWebSocket$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet$InnerWebSocket$1.class deleted file mode 100644 index fd6a4a8f..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet$InnerWebSocket$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet$InnerWebSocket.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet$InnerWebSocket.class deleted file mode 100644 index ef4fffa4..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet$InnerWebSocket.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet$WebSocketConnectionResource.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet$WebSocketConnectionResource.class deleted file mode 100644 index 7e5a4107..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet$WebSocketConnectionResource.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet.class deleted file mode 100644 index dd3eecb2..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/server/jetty/servlet/WebSocketAcceptorServlet.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/BitUtils.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/BitUtils.class deleted file mode 100644 index e8fb4cf7..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/BitUtils.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/EventPool$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/EventPool$1.class deleted file mode 100644 index 21fd5c71..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/EventPool$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/EventPool$EventFactory.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/EventPool$EventFactory.class deleted file mode 100644 index f27b42d4..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/EventPool$EventFactory.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/EventPool.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/EventPool.class deleted file mode 100644 index a180b919..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/EventPool.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/ExceptionUtils.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/ExceptionUtils.class deleted file mode 100644 index b19ed272..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/ExceptionUtils.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/FeatureCodec$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/FeatureCodec$1.class deleted file mode 100644 index 1147cee1..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/FeatureCodec$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/FeatureCodec$ESCAPE_DECODE_STATE.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/FeatureCodec$ESCAPE_DECODE_STATE.class deleted file mode 100644 index 4c5f26b2..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/FeatureCodec$ESCAPE_DECODE_STATE.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/FeatureCodec$ESCAPE_SPLIT_STATE.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/FeatureCodec$ESCAPE_SPLIT_STATE.class deleted file mode 100644 index aed382d6..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/FeatureCodec$ESCAPE_SPLIT_STATE.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/FeatureCodec.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/FeatureCodec.class deleted file mode 100644 index 9d80041f..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/FeatureCodec.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/Initializer$Processor.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/Initializer$Processor.class deleted file mode 100644 index e135c205..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/Initializer$Processor.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/Initializer$State.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/Initializer$State.class deleted file mode 100644 index bf8fb302..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/Initializer$State.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/Initializer.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/Initializer.class deleted file mode 100644 index 83fe8868..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/Initializer.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/LazyGet.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/LazyGet.class deleted file mode 100644 index 5b2e969f..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/LazyGet.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/NamespaceConvert.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/NamespaceConvert.class deleted file mode 100644 index 98ff4bb7..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/NamespaceConvert.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/NetworkUtils.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/NetworkUtils.class deleted file mode 100644 index 35720fb1..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/NetworkUtils.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/ObjectIDs$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/ObjectIDs$1.class deleted file mode 100644 index 192f09af..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/ObjectIDs$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/ObjectIDs$IdentityWeakReference.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/ObjectIDs$IdentityWeakReference.class deleted file mode 100644 index 6faac2a1..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/ObjectIDs$IdentityWeakReference.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/ObjectIDs.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/ObjectIDs.class deleted file mode 100644 index 389ef595..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/ObjectIDs.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/SandboxReflectUtils.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/SandboxReflectUtils.class deleted file mode 100644 index 9a8d09a2..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/SandboxReflectUtils.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/SandboxStringUtils.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/SandboxStringUtils.class deleted file mode 100644 index 63b5f970..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/SandboxStringUtils.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/Sequencer.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/Sequencer.class deleted file mode 100644 index aa2b4c69..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/Sequencer.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/SpyUtils.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/SpyUtils.class deleted file mode 100644 index 1ce92dcc..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/SpyUtils.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/UnCaughtException.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/UnCaughtException.class deleted file mode 100644 index b5d2b137..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/UnCaughtException.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/UnsafeUtils.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/UnsafeUtils.class deleted file mode 100644 index 136956c0..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/UnsafeUtils.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/collection/GaLRUCache.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/collection/GaLRUCache.class deleted file mode 100644 index ebb75d2e..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/collection/GaLRUCache.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/collection/GaStack.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/collection/GaStack.class deleted file mode 100644 index 7da0d551..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/collection/GaStack.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/collection/Pair.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/collection/Pair.class deleted file mode 100644 index a0a56801..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/collection/Pair.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/collection/ThreadUnsafeGaStack.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/collection/ThreadUnsafeGaStack.class deleted file mode 100644 index b01fd11a..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/collection/ThreadUnsafeGaStack.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/ExtFilterMatcher.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/ExtFilterMatcher.class deleted file mode 100644 index b554e5e2..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/ExtFilterMatcher.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/GroupMatcher$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/GroupMatcher$1.class deleted file mode 100644 index 69c2409a..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/GroupMatcher$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/GroupMatcher$And.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/GroupMatcher$And.class deleted file mode 100644 index a2c1d309..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/GroupMatcher$And.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/GroupMatcher$Or.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/GroupMatcher$Or.class deleted file mode 100644 index 79642e45..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/GroupMatcher$Or.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/GroupMatcher.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/GroupMatcher.class deleted file mode 100644 index 7ca2a63a..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/GroupMatcher.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/Matcher.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/Matcher.class deleted file mode 100644 index 57265004..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/Matcher.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/MatchingResult.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/MatchingResult.class deleted file mode 100644 index 31845053..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/MatchingResult.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/UnsupportedMatcher.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/UnsupportedMatcher.class deleted file mode 100644 index d2669383..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/UnsupportedMatcher.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/Access.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/Access.class deleted file mode 100644 index 913e2657..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/Access.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/AccessImplByAsm.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/AccessImplByAsm.class deleted file mode 100644 index 7bacf442..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/AccessImplByAsm.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/AccessImplByJDKBehavior.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/AccessImplByJDKBehavior.class deleted file mode 100644 index abc325d3..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/AccessImplByJDKBehavior.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/AccessImplByJDKClass.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/AccessImplByJDKClass.class deleted file mode 100644 index 0d31afb2..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/AccessImplByJDKClass.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ArrayClassStructure.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ArrayClassStructure.class deleted file mode 100644 index 2701bcea..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ArrayClassStructure.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/BehaviorStructure$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/BehaviorStructure$1.class deleted file mode 100644 index bd78b6a9..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/BehaviorStructure$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/BehaviorStructure$2.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/BehaviorStructure$2.class deleted file mode 100644 index 6d7813e2..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/BehaviorStructure$2.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/BehaviorStructure.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/BehaviorStructure.class deleted file mode 100644 index 7fa20c52..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/BehaviorStructure.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructure.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructure.class deleted file mode 100644 index dc7f1a5b..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructure.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureFactory.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureFactory.class deleted file mode 100644 index 35280ab1..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureFactory.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$1.class deleted file mode 100644 index b3124e8d..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$2.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$2.class deleted file mode 100644 index 69cb4033..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$2.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$3.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$3.class deleted file mode 100644 index c471a2ba..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$3.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$4$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$4$1.class deleted file mode 100644 index 943249a4..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$4$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$4.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$4.class deleted file mode 100644 index b2f4389e..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$4.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$5$1$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$5$1$1.class deleted file mode 100644 index 828f7320..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$5$1$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$5$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$5$1.class deleted file mode 100644 index c308041f..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$5$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$5.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$5.class deleted file mode 100644 index cfd550b9..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm$5.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm.class deleted file mode 100644 index 66428be7..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByAsm.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByJDK$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByJDK$1.class deleted file mode 100644 index 1d60a17f..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByJDK$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByJDK$2.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByJDK$2.class deleted file mode 100644 index c76da054..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByJDK$2.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByJDK.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByJDK.class deleted file mode 100644 index fa9a0519..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ClassStructureImplByJDK.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/EmptyClassStructure.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/EmptyClassStructure.class deleted file mode 100644 index a434e059..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/EmptyClassStructure.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure$1.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure$1.class deleted file mode 100644 index 9dbef045..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure$1.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure$2.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure$2.class deleted file mode 100644 index d0d7e06c..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure$2.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure$3.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure$3.class deleted file mode 100644 index b3af529b..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure$3.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure$4.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure$4.class deleted file mode 100644 index a2e911ed..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure$4.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure.class deleted file mode 100644 index caf93490..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/FamilyClassStructure.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/MemberStructure.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/MemberStructure.class deleted file mode 100644 index b265321b..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/MemberStructure.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ModifierAccess.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ModifierAccess.class deleted file mode 100644 index 5a1718f7..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/ModifierAccess.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/PrimitiveClassStructure$Primitive.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/PrimitiveClassStructure$Primitive.class deleted file mode 100644 index 45319747..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/PrimitiveClassStructure$Primitive.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/PrimitiveClassStructure.class b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/PrimitiveClassStructure.class deleted file mode 100644 index 54dcbeea..00000000 Binary files a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/core/util/matcher/structure/PrimitiveClassStructure.class and /dev/null differ diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/logo b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/logo deleted file mode 100644 index b4a26f05..00000000 --- a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/logo +++ /dev/null @@ -1,5 +0,0 @@ - ___ ____ __ ____ _ _ _ ____ ____ _____ __ - | \ \ / / \/ | / ___| / \ | \ | | _ \| __ ) / _ \ \/ / - _ | |\ \ / /| |\/| |____\___ \ / _ \ | \| | | | | _ \| | | \ / -| |_| | \ V / | | | |_____|__) / ___ \| |\ | |_| | |_) | |_| / \ - \___/ \_/ |_| |_| |____/_/ \_\_| \_|____/|____/ \___/_/\_\ \ No newline at end of file diff --git a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/version b/sandbox-core/target/classes/com/alibaba/jvm/sandbox/version deleted file mode 100644 index 4fb5f668..00000000 --- a/sandbox-core/target/classes/com/alibaba/jvm/sandbox/version +++ /dev/null @@ -1 +0,0 @@ -1.1.2-SNAPSHOT \ No newline at end of file diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$1.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$1.class deleted file mode 100644 index 18a806b8..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$1.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$2.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$2.class deleted file mode 100644 index ad4bb361..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$2.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$3.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$3.class deleted file mode 100644 index a1402599..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$3.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$4.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$4.class deleted file mode 100644 index c8b3529f..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$4.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$5.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$5.class deleted file mode 100644 index 4d55745d..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$5.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$6.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$6.class deleted file mode 100644 index d77cdb57..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase$6.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase.class deleted file mode 100644 index b937943b..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/AdviceTestCase.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/CalculatorTestCase.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/CalculatorTestCase.class deleted file mode 100644 index 3584cb7c..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/CalculatorTestCase.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/CoreEnhanceBaseTestCase$1.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/CoreEnhanceBaseTestCase$1.class deleted file mode 100644 index 822f5ba2..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/CoreEnhanceBaseTestCase$1.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/CoreEnhanceBaseTestCase$TestClassLoader.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/CoreEnhanceBaseTestCase$TestClassLoader.class deleted file mode 100644 index 3fd09036..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/CoreEnhanceBaseTestCase$TestClassLoader.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/CoreEnhanceBaseTestCase.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/CoreEnhanceBaseTestCase.class deleted file mode 100644 index 8ed0a159..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/CoreEnhanceBaseTestCase.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase$1.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase$1.class deleted file mode 100644 index 4001e370..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase$1.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase$2.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase$2.class deleted file mode 100644 index 0ed16c24..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase$2.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase$3.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase$3.class deleted file mode 100644 index b3c2b375..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase$3.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase$4.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase$4.class deleted file mode 100644 index 78938815..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase$4.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase.class deleted file mode 100644 index 8758ca50..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStackTestCase.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStreamTestCase.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStreamTestCase.class deleted file mode 100644 index 9690db2b..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventStreamTestCase.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$1.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$1.class deleted file mode 100644 index 7a371077..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$1.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$2.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$2.class deleted file mode 100644 index 68d1eeb3..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$2.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$3.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$3.class deleted file mode 100644 index 48c2ddee..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$3.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$4.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$4.class deleted file mode 100644 index a14ad9db..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$4.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$5.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$5.class deleted file mode 100644 index 8bc58815..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$5.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$LineEventChecker.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$LineEventChecker.class deleted file mode 100644 index 5f949f9a..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase$LineEventChecker.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase.class deleted file mode 100644 index f9328b93..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/EventTestCase.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/NamespaceTestCase$1.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/NamespaceTestCase$1.class deleted file mode 100644 index 26854043..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/NamespaceTestCase$1.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/NamespaceTestCase$2.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/NamespaceTestCase$2.class deleted file mode 100644 index c41ce4e0..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/NamespaceTestCase$2.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/NamespaceTestCase.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/NamespaceTestCase.class deleted file mode 100644 index 22da2da8..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/NamespaceTestCase.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase$1.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase$1.class deleted file mode 100644 index e0043382..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase$1.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase$2.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase$2.class deleted file mode 100644 index 4b5d8877..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase$2.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase$3.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase$3.class deleted file mode 100644 index 2b16143e..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase$3.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase$4.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase$4.class deleted file mode 100644 index feeb2b4e..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase$4.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase.class deleted file mode 100644 index 28ca99a4..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/ProcessControllerTestCase.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/EventStreamCheckerListener$EventChecker.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/EventStreamCheckerListener$EventChecker.class deleted file mode 100644 index ffeb0fb1..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/EventStreamCheckerListener$EventChecker.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/EventStreamCheckerListener$EventTypeChecker.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/EventStreamCheckerListener$EventTypeChecker.class deleted file mode 100644 index c1cbe8b6..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/EventStreamCheckerListener$EventTypeChecker.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/EventStreamCheckerListener.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/EventStreamCheckerListener.class deleted file mode 100644 index 4513fd4d..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/EventStreamCheckerListener.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/InterruptedAdviceAdapterListener.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/InterruptedAdviceAdapterListener.class deleted file mode 100644 index 99218cf6..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/InterruptedAdviceAdapterListener.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/InterruptedEventListener.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/InterruptedEventListener.class deleted file mode 100644 index 929ef5f9..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/listener/InterruptedEventListener.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/target/Calculator.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/target/Calculator.class deleted file mode 100644 index da1c4642..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/enhance/target/Calculator.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$1.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$1.class deleted file mode 100644 index 3a0fe1bd..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$1.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$2.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$2.class deleted file mode 100644 index 13fcc600..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$2.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$Human.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$Human.class deleted file mode 100644 index a1eb4103..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$Human.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$InnerWorker.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$InnerWorker.class deleted file mode 100644 index dc5c48e7..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$InnerWorker.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$Man.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$Man.class deleted file mode 100644 index 76896a35..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$Man.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$NameRegexWithSubClassesExtFilter.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$NameRegexWithSubClassesExtFilter.class deleted file mode 100644 index e55a9b27..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$NameRegexWithSubClassesExtFilter.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$Woman.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$Woman.class deleted file mode 100644 index 3c12db9d..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$Woman.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$Worker.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$Worker.class deleted file mode 100644 index c0c8cf4d..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase$Worker.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase.class deleted file mode 100644 index 577890d8..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreLoadedClassDataSourceTestCase.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$1.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$1.class deleted file mode 100644 index 860cef94..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$1.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$2.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$2.class deleted file mode 100644 index 54be2c14..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$2.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$3.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$3.class deleted file mode 100644 index 4a92fee8..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$3.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$AnotherNormalModule.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$AnotherNormalModule.class deleted file mode 100644 index b8cfa311..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$AnotherNormalModule.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnActiveModule.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnActiveModule.class deleted file mode 100644 index 84fc1f45..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnActiveModule.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnCInitModule.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnCInitModule.class deleted file mode 100644 index d7d5e19e..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnCInitModule.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnFrozenModule.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnFrozenModule.class deleted file mode 100644 index 88fbd1b8..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnFrozenModule.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnLazyActiveModule.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnLazyActiveModule.class deleted file mode 100644 index 689ced10..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnLazyActiveModule.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnLoadCompletedModule.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnLoadCompletedModule.class deleted file mode 100644 index 27dab64e..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnLoadCompletedModule.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnLoadModule.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnLoadModule.class deleted file mode 100644 index 0b82fec8..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnLoadModule.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnUnLoadModule.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnUnLoadModule.class deleted file mode 100644 index c00a2dbd..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$BrokenOnUnLoadModule.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$EmptyCoreLoadedClassDataSource.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$EmptyCoreLoadedClassDataSource.class deleted file mode 100644 index 4fa06809..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$EmptyCoreLoadedClassDataSource.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$EmptyInstrumentation.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$EmptyInstrumentation.class deleted file mode 100644 index c8d634c2..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$EmptyInstrumentation.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$EmptyProviderManager.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$EmptyProviderManager.class deleted file mode 100644 index 5e65619d..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$EmptyProviderManager.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$ModifyAnotherNormalModule.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$ModifyAnotherNormalModule.class deleted file mode 100644 index 592c1934..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$ModifyAnotherNormalModule.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$NormalModule.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$NormalModule.class deleted file mode 100644 index 01c9b8cc..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$NormalModule.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$NormalOnLazyActiveModule.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$NormalOnLazyActiveModule.class deleted file mode 100644 index deead6f2..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase$NormalOnLazyActiveModule.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase.class deleted file mode 100644 index 19d9690d..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/CoreModuleManagerTestCase.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/MockLoadedClassesOnlyInstrumentation.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/MockLoadedClassesOnlyInstrumentation.class deleted file mode 100644 index 67afe948..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/MockLoadedClassesOnlyInstrumentation.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/ModuleLifeCycleAdapter.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/ModuleLifeCycleAdapter.class deleted file mode 100644 index aeff4415..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/manager/ModuleLifeCycleAdapter.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/JarBuilder.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/JarBuilder.class deleted file mode 100644 index 82cfff67..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/JarBuilder.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/ModuleTests$TestModule.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/ModuleTests$TestModule.class deleted file mode 100644 index 68a2dfa7..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/ModuleTests$TestModule.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/ModuleTests.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/ModuleTests.class deleted file mode 100644 index 1bdd70fd..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/ModuleTests.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/QaClassUtils.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/QaClassUtils.class deleted file mode 100644 index 89bca32e..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/QaClassUtils.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/SandboxModuleJarBuilder.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/SandboxModuleJarBuilder.class deleted file mode 100644 index 2e13844b..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/SandboxModuleJarBuilder.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/ClassStructureTestCaseByChildClass.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/ClassStructureTestCaseByChildClass.class deleted file mode 100644 index 188bc678..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/ClassStructureTestCaseByChildClass.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/AccessAsserter$AccessIsEnum.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/AccessAsserter$AccessIsEnum.class deleted file mode 100644 index 66df3546..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/AccessAsserter$AccessIsEnum.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/AccessAsserter.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/AccessAsserter.class deleted file mode 100644 index 9395f3e2..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/AccessAsserter.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/Asserter.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/Asserter.class deleted file mode 100644 index 7f773607..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/Asserter.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/BehaviorStructureAsserter.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/BehaviorStructureAsserter.class deleted file mode 100644 index 3adb14ca..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/BehaviorStructureAsserter.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/BehaviorStructureCollectionAsserter.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/BehaviorStructureCollectionAsserter.class deleted file mode 100644 index 69f3972c..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/BehaviorStructureCollectionAsserter.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/ClassStructureAsserter.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/ClassStructureAsserter.class deleted file mode 100644 index 86ceb83c..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/ClassStructureAsserter.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/ClassStructureCollectionAsserter.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/ClassStructureCollectionAsserter.class deleted file mode 100644 index 52d53192..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/ClassStructureCollectionAsserter.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/MappingAsserter$Mode.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/MappingAsserter$Mode.class deleted file mode 100644 index 42179401..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/MappingAsserter$Mode.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/MappingAsserter.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/MappingAsserter.class deleted file mode 100644 index 278322b8..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/asserts/MappingAsserter.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$InnerClass.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$InnerClass.class deleted file mode 100644 index 708b7161..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$InnerClass.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$ProtectedEnum.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$ProtectedEnum.class deleted file mode 100644 index 567ebe96..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$ProtectedEnum.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$ProtectedInterface.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$ProtectedInterface.class deleted file mode 100644 index f69754ce..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$ProtectedInterface.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$ProtectedStaticClass.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$ProtectedStaticClass.class deleted file mode 100644 index 40e75edc..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$ProtectedStaticClass.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$PublicEnum.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$PublicEnum.class deleted file mode 100644 index 0c261247..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$PublicEnum.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$PublicInterface.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$PublicInterface.class deleted file mode 100644 index 17b9fe6f..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$PublicInterface.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$PublicStaticClass.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$PublicStaticClass.class deleted file mode 100644 index 0d2363d7..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass$PublicStaticClass.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass.class deleted file mode 100644 index 14cbb202..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ChildClass.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/GrandpaClass.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/GrandpaClass.class deleted file mode 100644 index b1028e20..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/GrandpaClass.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IGrandpaInterfaceFirst.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IGrandpaInterfaceFirst.class deleted file mode 100644 index 8dca7ca0..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IGrandpaInterfaceFirst.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IGrandpaInterfaceFirstFirst.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IGrandpaInterfaceFirstFirst.class deleted file mode 100644 index 66d01910..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IGrandpaInterfaceFirstFirst.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IParentInterfaceFirst.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IParentInterfaceFirst.class deleted file mode 100644 index 6651214e..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IParentInterfaceFirst.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IParentInterfaceFirstFirst.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IParentInterfaceFirstFirst.class deleted file mode 100644 index f29666f8..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IParentInterfaceFirstFirst.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IParentInterfaceFirstSecond.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IParentInterfaceFirstSecond.class deleted file mode 100644 index 988d9d6b..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IParentInterfaceFirstSecond.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IParentInterfaceSecond.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IParentInterfaceSecond.class deleted file mode 100644 index bbabb4f1..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IParentInterfaceSecond.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IllInheritedAnnotation.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IllInheritedAnnotation.class deleted file mode 100644 index 2d63669f..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/IllInheritedAnnotation.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/InheritedAnnotation.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/InheritedAnnotation.class deleted file mode 100644 index 72fe85a1..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/InheritedAnnotation.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ParentClass.class b/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ParentClass.class deleted file mode 100644 index 1e1d7054..00000000 Binary files a/sandbox-core/target/test-classes/com/alibaba/jvm/sandbox/qatest/core/util/matcher/target/ParentClass.class and /dev/null differ diff --git a/sandbox-core/target/test-classes/lib/sandbox-spy-1.1.0-for-qatest.jar b/sandbox-core/target/test-classes/lib/sandbox-spy-1.1.0-for-qatest.jar deleted file mode 100644 index 46fd103d..00000000 Binary files a/sandbox-core/target/test-classes/lib/sandbox-spy-1.1.0-for-qatest.jar and /dev/null differ diff --git a/sandbox-core/target/test-classes/logback.xml b/sandbox-core/target/test-classes/logback.xml deleted file mode 100755 index c7f37818..00000000 --- a/sandbox-core/target/test-classes/logback.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - %d{yyyy-MM-dd HH:mm:ss} %5level %msg%n   - - - - - - - - \ No newline at end of file diff --git a/sandbox-debug-module/pom.xml b/sandbox-debug-module/pom.xml index 20022526..f91efe1c 100755 --- a/sandbox-debug-module/pom.xml +++ b/sandbox-debug-module/pom.xml @@ -6,7 +6,7 @@ com.alibaba.jvm.sandbox sandbox-module-starter - 1.1.2-SNAPSHOT + 1.2.0-SNAPSHOT ../sandbox-module-starter/pom.xml sandbox-debug-module diff --git a/sandbox-debug-module/target/classes/META-INF/services/com.alibaba.jvm.sandbox.api.Module b/sandbox-debug-module/target/classes/META-INF/services/com.alibaba.jvm.sandbox.api.Module deleted file mode 100644 index 19000a60..00000000 --- a/sandbox-debug-module/target/classes/META-INF/services/com.alibaba.jvm.sandbox.api.Module +++ /dev/null @@ -1,7 +0,0 @@ -com.alibaba.jvm.sandbox.module.debug.DebugRalphModule -com.alibaba.jvm.sandbox.module.debug.DebugTraceModule -com.alibaba.jvm.sandbox.module.debug.DebugWatchModule -com.alibaba.jvm.sandbox.module.debug.ExceptionLoggerModule -com.alibaba.jvm.sandbox.module.debug.HttpHttpAccessLoggerModule -com.alibaba.jvm.sandbox.module.debug.JdbcLoggerModule -com.alibaba.jvm.sandbox.module.debug.SpringLoggerModule diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$1.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$1.class deleted file mode 100644 index 776be39b..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$1.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$2.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$2.class deleted file mode 100644 index 70f31989..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$2.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$3.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$3.class deleted file mode 100644 index ae606de1..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$3.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$4.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$4.class deleted file mode 100644 index 5be34be3..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$4.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$5.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$5.class deleted file mode 100644 index 482f742a..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$5.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$6.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$6.class deleted file mode 100644 index 0474db73..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$6.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionFactory.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionFactory.class deleted file mode 100644 index 289712ba..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionFactory.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType$1.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType$1.class deleted file mode 100644 index 22b2681d..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType$1.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType$2.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType$2.class deleted file mode 100644 index 34134ac6..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType$2.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType$3.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType$3.class deleted file mode 100644 index ee0e1c1a..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType$3.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType$4.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType$4.class deleted file mode 100644 index 78c2a924..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType$4.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType.class deleted file mode 100644 index 48f8bb34..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule$ExceptionType.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule.class deleted file mode 100644 index 7d747f97..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugRalphModule.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugTraceModule$1.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugTraceModule$1.class deleted file mode 100644 index 54390c51..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugTraceModule$1.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugTraceModule.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugTraceModule.class deleted file mode 100644 index 1a4b653a..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugTraceModule.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule$1.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule$1.class deleted file mode 100644 index ee410901..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule$1.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule$2.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule$2.class deleted file mode 100644 index 415404f8..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule$2.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule$Bind.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule$Bind.class deleted file mode 100644 index e9df0ea2..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule$Bind.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule$Trigger.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule$Trigger.class deleted file mode 100644 index 04ad4ca8..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule$Trigger.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule.class deleted file mode 100644 index 264ae81d..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/DebugWatchModule.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/ExceptionLoggerModule$1.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/ExceptionLoggerModule$1.class deleted file mode 100644 index 811cea7b..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/ExceptionLoggerModule$1.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/ExceptionLoggerModule.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/ExceptionLoggerModule.class deleted file mode 100644 index ad0c2cff..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/ExceptionLoggerModule.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule$1.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule$1.class deleted file mode 100644 index fac06932..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule$1.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule$2.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule$2.class deleted file mode 100644 index 8efd9161..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule$2.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule$HttpAccess.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule$HttpAccess.class deleted file mode 100644 index 7b05be13..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule$HttpAccess.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule$HttpProcessStep.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule$HttpProcessStep.class deleted file mode 100644 index 505e43b4..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule$HttpProcessStep.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule.class deleted file mode 100644 index 9705a508..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpHttpAccessLoggerModule.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$1.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$1.class deleted file mode 100644 index ab851791..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$1.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$2.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$2.class deleted file mode 100644 index 8fde122d..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$2.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$3.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$3.class deleted file mode 100644 index baa1cf63..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$3.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$4.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$4.class deleted file mode 100644 index 29c8380e..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$4.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$Converter.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$Converter.class deleted file mode 100644 index 559059ad..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$Converter.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$HttpErrorCodeException.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$HttpErrorCodeException.class deleted file mode 100644 index b5d782c2..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported$HttpErrorCodeException.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported.class deleted file mode 100644 index 89e61f29..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/HttpSupported.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/JdbcLoggerModule$1.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/JdbcLoggerModule$1.class deleted file mode 100644 index a184c08b..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/JdbcLoggerModule$1.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/JdbcLoggerModule$2.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/JdbcLoggerModule$2.class deleted file mode 100644 index c55c6f2b..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/JdbcLoggerModule$2.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/JdbcLoggerModule$MonitorJavaSqlPreparedStatementStep.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/JdbcLoggerModule$MonitorJavaSqlPreparedStatementStep.class deleted file mode 100644 index 1d6e2d31..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/JdbcLoggerModule$MonitorJavaSqlPreparedStatementStep.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/JdbcLoggerModule.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/JdbcLoggerModule.class deleted file mode 100644 index 9a2c74c2..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/JdbcLoggerModule.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/ProgressPrinter.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/ProgressPrinter.class deleted file mode 100644 index bb02de2e..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/ProgressPrinter.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/SpringLoggerModule$1.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/SpringLoggerModule$1.class deleted file mode 100644 index 338d2427..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/SpringLoggerModule$1.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/SpringLoggerModule.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/SpringLoggerModule.class deleted file mode 100644 index c1d2caf9..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/SpringLoggerModule.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TComponent.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TComponent.class deleted file mode 100644 index 2d645cc7..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TComponent.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TTree$1.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TTree$1.class deleted file mode 100644 index 4be6c3d2..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TTree$1.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TTree$Callback.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TTree$Callback.class deleted file mode 100644 index f8e0a910..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TTree$Callback.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TTree$Node.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TTree$Node.class deleted file mode 100644 index 162f26f3..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TTree$Node.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TTree.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TTree.class deleted file mode 100644 index b81c08c7..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/textui/TTree.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express$ExpressException.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express$ExpressException.class deleted file mode 100644 index 8898ec01..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express$ExpressException.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express$ExpressFactory$1.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express$ExpressFactory$1.class deleted file mode 100644 index d47dc88a..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express$ExpressFactory$1.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express$ExpressFactory.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express$ExpressFactory.class deleted file mode 100644 index 49194afe..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express$ExpressFactory.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express$OgnlExpress.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express$OgnlExpress.class deleted file mode 100644 index 3472e9af..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express$OgnlExpress.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express.class deleted file mode 100644 index 3fc582cb..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/Express.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/GaEnumUtils.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/GaEnumUtils.class deleted file mode 100644 index 6ce45033..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/GaEnumUtils.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/SimpleDateFormatHolder.class b/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/SimpleDateFormatHolder.class deleted file mode 100644 index 1297d9a4..00000000 Binary files a/sandbox-debug-module/target/classes/com/alibaba/jvm/sandbox/module/debug/util/SimpleDateFormatHolder.class and /dev/null differ diff --git a/sandbox-debug-module/target/classes/logback.xml b/sandbox-debug-module/target/classes/logback.xml deleted file mode 100755 index d80c27bd..00000000 --- a/sandbox-debug-module/target/classes/logback.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - ${user.home}/logs/sandbox/debug/servlet-monitor.log - - ${user.home}/logs/sandbox/debug/servlet-monitor.log.%d{yyyy-MM-dd} - 30 - - - %d{yyyy-MM-dd HH:mm:ss} %-5level %msg%n - UTF-8 - - - - - - - - ${user.home}/logs/sandbox/debug/exception-monitor.log - - ${user.home}/logs/sandbox/debug/exception-monitor.log.%d{yyyy-MM-dd} - 30 - - - %d{yyyy-MM-dd HH:mm:ss} %-5level %msg%n - UTF-8 - - - - - - - - ${user.home}/logs/sandbox/debug/jdbc-monitor.log - - ${user.home}/logs/sandbox/debug/jdbc-monitor.log.%d{yyyy-MM-dd} - 30 - - - %d{yyyy-MM-dd HH:mm:ss} %-5level %msg%n - UTF-8 - - - - - - - - ${user.home}/logs/sandbox/debug/spring-monitor.log - - ${user.home}/logs/sandbox/debug/spring-monitor.log.%d{yyyy-MM-dd} - 30 - - - %d{yyyy-MM-dd HH:mm:ss} %-5level %msg%n - UTF-8 - - - - - - - - ${user.home}/logs/sandbox/debug/debug.log - - ${user.home}/logs/sandbox/debug/debug.log.%d{yyyy-MM-dd} - 30 - - - %d{yyyy-MM-dd HH:mm:ss} %-5level %msg%n - UTF-8 - - - - - \ No newline at end of file diff --git a/sandbox-mgr-module/pom.xml b/sandbox-mgr-module/pom.xml index 0d17e5f7..ba77aa62 100755 --- a/sandbox-mgr-module/pom.xml +++ b/sandbox-mgr-module/pom.xml @@ -6,7 +6,7 @@ com.alibaba.jvm.sandbox sandbox-module-starter - 1.1.2-SNAPSHOT + 1.2.0-SNAPSHOT ../sandbox-module-starter/pom.xml sandbox-mgr-module @@ -47,6 +47,12 @@ com.alibaba.jvm.sandbox sandbox-api provided + + + javax.servlet + javax.servlet-api + + org.slf4j diff --git a/sandbox-mgr-module/src/main/java/com/alibaba/jvm/sandbox/module/mgr/ControlModule.java b/sandbox-mgr-module/src/main/java/com/alibaba/jvm/sandbox/module/mgr/ControlModule.java index 32986785..5920bfa5 100644 --- a/sandbox-mgr-module/src/main/java/com/alibaba/jvm/sandbox/module/mgr/ControlModule.java +++ b/sandbox-mgr-module/src/main/java/com/alibaba/jvm/sandbox/module/mgr/ControlModule.java @@ -3,20 +3,22 @@ import com.alibaba.jvm.sandbox.api.Information; import com.alibaba.jvm.sandbox.api.Module; import com.alibaba.jvm.sandbox.api.ModuleException; -import com.alibaba.jvm.sandbox.api.http.Http; +import com.alibaba.jvm.sandbox.api.annotation.Command; import com.alibaba.jvm.sandbox.api.resource.ConfigInfo; import com.alibaba.jvm.sandbox.api.resource.ModuleManager; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.reflect.MethodUtils; +import org.kohsuke.MetaInfServices; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -@Information(id = "control", version = "0.0.1", author = "luanjia@taobao.com") +@MetaInfServices(Module.class) +@Information(id = "control", version = "0.0.2", author = "luanjia@taobao.com") public class ControlModule implements Module { private final Logger logger = LoggerFactory.getLogger(getClass()); @@ -106,8 +108,9 @@ private void shutdownServer(final ClassLoader sandboxClassLoader) logger.info("shutdown jvm-sandbox[{}] server success for shutdown.", configInfo.getNamespace()); } - @Http("/shutdown") - public void shutdown(final HttpServletResponse resp) throws Exception { + // @Http("/shutdown") + @Command("shutdown") + public void shutdown(final PrintWriter writer) throws Exception { logger.info("prepare to shutdown jvm-sandbox[{}].", configInfo.getNamespace()); @@ -138,9 +141,9 @@ public void run() { shutdownJvmSandboxHook.setDaemon(true); // 在卸载自己之前,先向这个世界发出最后的呐喊吧! - resp.getWriter().println(String.format("jvm-sandbox[%s] shutdown finished.", configInfo.getNamespace())); - resp.getWriter().flush(); - resp.getWriter().close(); + writer.println(String.format("jvm-sandbox[%s] shutdown finished.", configInfo.getNamespace())); + writer.flush(); + writer.close(); shutdownJvmSandboxHook.start(); diff --git a/sandbox-mgr-module/src/main/java/com/alibaba/jvm/sandbox/module/mgr/InfoModule.java b/sandbox-mgr-module/src/main/java/com/alibaba/jvm/sandbox/module/mgr/InfoModule.java index 5d7907c1..2ccb6495 100755 --- a/sandbox-mgr-module/src/main/java/com/alibaba/jvm/sandbox/module/mgr/InfoModule.java +++ b/sandbox-mgr-module/src/main/java/com/alibaba/jvm/sandbox/module/mgr/InfoModule.java @@ -2,31 +2,33 @@ import com.alibaba.jvm.sandbox.api.Information; import com.alibaba.jvm.sandbox.api.Module; +import com.alibaba.jvm.sandbox.api.annotation.Command; import com.alibaba.jvm.sandbox.api.event.Event; -import com.alibaba.jvm.sandbox.api.http.Http; import com.alibaba.jvm.sandbox.api.resource.ConfigInfo; -import com.alibaba.jvm.sandbox.api.resource.EventMonitor; +import org.kohsuke.MetaInfServices; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.PrintWriter; /** * 沙箱信息模块 * * @author luanjia@taobao.com */ -@Information(id = "info", version = "0.0.3", author = "luanjia@taobao.com") +@MetaInfServices(Module.class) +@Information(id = "info", version = "0.0.4", author = "luanjia@taobao.com") public class InfoModule implements Module { @Resource private ConfigInfo configInfo; - @Resource - private EventMonitor eventMonitor; +// @Resource +// private EventMonitor eventMonitor; - @Http("/version") - public void version(final HttpServletResponse resp) throws IOException { + //@Http("/version") + @Command("version") + public void version(final PrintWriter writer) throws IOException { final StringBuilder versionSB = new StringBuilder() .append(" NAMESPACE : ").append(configInfo.getNamespace()).append("\n") @@ -40,32 +42,29 @@ public void version(final HttpServletResponse resp) throws IOException { .append(" USER_MODULE_LIB : ").append(configInfo.getUserModuleLibPath()).append("\n") .append(" SYSTEM_PROVIDER_LIB : ").append(configInfo.getSystemProviderLibPath()).append("\n") .append(" EVENT_POOL_SUPPORT : ").append(configInfo.isEnableEventPool() ? "ENABLE" : "DISABLE"); - /*############################# : */ - if (configInfo.isEnableEventPool()) { - versionSB - .append("\n") - /*############################# : */ - .append(" EVENT_POOL_PER_KEY_IDLE_MIN : ").append(configInfo.getEventPoolMinIdlePerEvent()).append("\n") - .append(" EVENT_POOL_PER_KEY_IDLE_MAX : ").append(configInfo.getEventPoolMaxIdlePerEvent()).append("\n") - .append(" EVENT_POOL_PER_KEY_TOTAL_MAX : ").append(configInfo.getEventPoolMaxTotalPerEvent()).append("\n") - .append(" EVENT_POOL_TOTAL : ").append(configInfo.getEventPoolMaxTotal()) - ; - } +// /*############################# : */ +// if (configInfo.isEnableEventPool()) { +// versionSB +// .append("\n") +// /*############################# : */ +// .append(" EVENT_POOL_PER_KEY_IDLE_MIN : ").append(configInfo.getEventPoolMinIdlePerEvent()).append("\n") +// .append(" EVENT_POOL_PER_KEY_IDLE_MAX : ").append(configInfo.getEventPoolMaxIdlePerEvent()).append("\n") +// .append(" EVENT_POOL_PER_KEY_TOTAL_MAX : ").append(configInfo.getEventPoolMaxTotalPerEvent()).append("\n") +// .append(" EVENT_POOL_TOTAL : ").append(configInfo.getEventPoolMaxTotal()) +// ; +// } - resp.getWriter().println(versionSB.toString()); + writer.println(versionSB.toString()); + writer.flush(); } - @Http("/event-pool") - public void eventPool(final HttpServletResponse resp) throws IOException { + //@Http("/event-pool") + @Command("event-pool") + public void eventPool(final PrintWriter writer) throws IOException { for (Event.Type type : Event.Type.values()) { - resp.getWriter().println(String.format( - "%18s : %d / %d", - type, - eventMonitor.getEventPoolInfo().getNumActive(type), - eventMonitor.getEventPoolInfo().getNumIdle(type) - )); + writer.println(String.format("%18s : %d / %d", type, 0, 0)); } } diff --git a/sandbox-mgr-module/src/main/java/com/alibaba/jvm/sandbox/module/mgr/ModuleMgrModule.java b/sandbox-mgr-module/src/main/java/com/alibaba/jvm/sandbox/module/mgr/ModuleMgrModule.java index 728bb987..068dd730 100755 --- a/sandbox-mgr-module/src/main/java/com/alibaba/jvm/sandbox/module/mgr/ModuleMgrModule.java +++ b/sandbox-mgr-module/src/main/java/com/alibaba/jvm/sandbox/module/mgr/ModuleMgrModule.java @@ -3,26 +3,24 @@ import com.alibaba.jvm.sandbox.api.Information; import com.alibaba.jvm.sandbox.api.Module; import com.alibaba.jvm.sandbox.api.ModuleException; -import com.alibaba.jvm.sandbox.api.http.Http; +import com.alibaba.jvm.sandbox.api.annotation.Command; import com.alibaba.jvm.sandbox.api.resource.ModuleManager; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; +import org.kohsuke.MetaInfServices; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.annotation.Resource; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collection; +import java.util.Map; import static com.alibaba.jvm.sandbox.api.util.GaStringUtils.matching; -import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST; import static org.apache.commons.lang3.StringUtils.EMPTY; /** @@ -30,7 +28,8 @@ * * @author luanjia@taobao.com */ -@Information(id = "module-mgr", author = "luanjia@taobao.com", version = "0.0.1") +@MetaInfServices(Module.class) +@Information(id = "module-mgr", author = "luanjia@taobao.com", version = "0.0.2") public class ModuleMgrModule implements Module { private final Logger logger = LoggerFactory.getLogger(getClass()); @@ -39,8 +38,8 @@ public class ModuleMgrModule implements Module { private ModuleManager moduleManager; // 获取参数值 - private String getParamWithDefault(final HttpServletRequest req, final String name, final String defaultValue) { - final String valueFromReq = req.getParameter(name); + private String getParamWithDefault(final Map param, final String name, final String defaultValue) { + final String valueFromReq = param.get(name); return StringUtils.isBlank(valueFromReq) ? defaultValue : valueFromReq; @@ -64,11 +63,11 @@ private void output(final PrintWriter writer, final String format, final Object. writer.println(String.format(format, objectArray)); } - @Http("/list") - public void list(final HttpServletResponse resp) throws IOException { + // @Http("/list") + @Command("list") + public void list(final PrintWriter writer) throws IOException { int total = 0; - final PrintWriter writer = resp.getWriter(); for (final Module module : moduleManager.list()) { final Information info = module.getClass().getAnnotation(Information.class); @@ -104,26 +103,29 @@ public void list(final HttpServletResponse resp) throws IOException { output(writer, "total=%s", total); } - @Http("/flush") - public void flush(final HttpServletRequest req, - final HttpServletResponse resp) throws ModuleException, IOException { - final String isForceString = getParamWithDefault(req, "force", EMPTY); + // @Http("/flush") + @Command("flush") + public void flush(final Map param, + final PrintWriter writer) throws ModuleException { + final String isForceString = getParamWithDefault(param, "force", EMPTY); final boolean isForce = BooleanUtils.toBoolean(isForceString); moduleManager.flush(isForce); - output(resp.getWriter(), "module flush finished, total=%s;", moduleManager.list().size()); + output(writer, "module flush finished, total=%s;", moduleManager.list().size()); } - @Http("/reset") - public void reset(final HttpServletResponse resp) throws ModuleException, IOException { + // @Http("/reset") + @Command("reset") + public void reset(final PrintWriter writer) throws ModuleException { moduleManager.reset(); - output(resp.getWriter(), "module reset finished, total=%s;", moduleManager.list().size()); + output(writer, "module reset finished, total=%s;", moduleManager.list().size()); } - @Http("/unload") - public void unload(final HttpServletRequest req, - final HttpServletResponse resp) throws ServletException, IOException { + // @Http("/unload") + @Command("unload") + public void unload(final Map param, + final PrintWriter writer) { int total = 0; - final String idsStringPattern = getParamWithDefault(req, "ids", EMPTY); + final String idsStringPattern = getParamWithDefault(param, "ids", EMPTY); for (final Module module : search(idsStringPattern)) { final Information info = module.getClass().getAnnotation(Information.class); try { @@ -133,14 +135,15 @@ public void unload(final HttpServletRequest req, logger.warn("unload module[id={};] occur error={}.", me.getUniqueId(), me.getErrorCode(), me); } } - output(resp.getWriter(), "total %s module unloaded.", total); + output(writer, "total %s module unloaded.", total); } - @Http("/active") - public void active(final HttpServletRequest req, - final HttpServletResponse resp) throws ModuleException, IOException { + // @Http("/active") + @Command("active") + public void active(final Map param, + final PrintWriter writer) throws ModuleException { int total = 0; - final String idsStringPattern = getParamWithDefault(req, "ids", EMPTY); + final String idsStringPattern = getParamWithDefault(param, "ids", EMPTY); for (final Module module : search(idsStringPattern)) { final Information info = module.getClass().getAnnotation(Information.class); final boolean isActivated = moduleManager.isActivated(info.id()); @@ -155,14 +158,15 @@ public void active(final HttpServletRequest req, total++; } }// for - output(resp.getWriter(), "total %s module activated.", total); + output(writer, "total %s module activated.", total); } - @Http("/frozen") - public void frozen(final HttpServletRequest req, - final HttpServletResponse resp) throws ModuleException, IOException { + // @Http("/frozen") + @Command("frozen") + public void frozen(final Map param, + final PrintWriter writer) throws ModuleException { int total = 0; - final String idsStringPattern = getParamWithDefault(req, "ids", EMPTY); + final String idsStringPattern = getParamWithDefault(param, "ids", EMPTY); for (final Module module : search(idsStringPattern)) { final Information info = module.getClass().getAnnotation(Information.class); final boolean isActivated = moduleManager.isActivated(info.id()); @@ -178,22 +182,23 @@ public void frozen(final HttpServletRequest req, } } - output(resp.getWriter(), "total %s module frozen.", total); + output(writer, "total %s module frozen.", total); } - @Http("/detail") - public void detail(final HttpServletRequest req, - final HttpServletResponse resp) throws ModuleException, IOException { - final String uniqueId = req.getParameter("id"); + // @Http("/detail") + @Command("detail") + public void detail(final Map param, + final PrintWriter writer) throws ModuleException { + final String uniqueId = param.get("id"); if (StringUtils.isBlank(uniqueId)) { // 如果参数不对,则认为找不到对应的沙箱模块,返回400 - resp.sendError(SC_BAD_REQUEST, "id parameter was required."); + writer.println("id parameter was required."); return; } final Module module = moduleManager.get(uniqueId); if (null == module) { - resp.sendError(SC_BAD_REQUEST, String.format("module[id=%s] is not existed.", uniqueId)); + writer.println(String.format("module[id=%s] is not existed.", uniqueId)); return; } @@ -214,7 +219,7 @@ public void detail(final HttpServletRequest req, " cCnt : " + cCnt + "\n" + " mCnt : " + mCnt; - output(resp.getWriter(), sb); + output(writer, sb); } diff --git a/sandbox-mgr-module/src/main/resources/META-INF/services/com.alibaba.jvm.sandbox.api.Module b/sandbox-mgr-module/src/main/resources/META-INF/services/com.alibaba.jvm.sandbox.api.Module deleted file mode 100755 index b90a60e6..00000000 --- a/sandbox-mgr-module/src/main/resources/META-INF/services/com.alibaba.jvm.sandbox.api.Module +++ /dev/null @@ -1,3 +0,0 @@ -com.alibaba.jvm.sandbox.module.mgr.ModuleMgrModule -com.alibaba.jvm.sandbox.module.mgr.InfoModule -com.alibaba.jvm.sandbox.module.mgr.ControlModule \ No newline at end of file diff --git a/sandbox-mgr-module/target/classes/META-INF/services/com.alibaba.jvm.sandbox.api.Module b/sandbox-mgr-module/target/classes/META-INF/services/com.alibaba.jvm.sandbox.api.Module deleted file mode 100755 index b90a60e6..00000000 --- a/sandbox-mgr-module/target/classes/META-INF/services/com.alibaba.jvm.sandbox.api.Module +++ /dev/null @@ -1,3 +0,0 @@ -com.alibaba.jvm.sandbox.module.mgr.ModuleMgrModule -com.alibaba.jvm.sandbox.module.mgr.InfoModule -com.alibaba.jvm.sandbox.module.mgr.ControlModule \ No newline at end of file diff --git a/sandbox-mgr-module/target/classes/com/alibaba/jvm/sandbox/module/mgr/ControlModule$1.class b/sandbox-mgr-module/target/classes/com/alibaba/jvm/sandbox/module/mgr/ControlModule$1.class deleted file mode 100644 index edd62582..00000000 Binary files a/sandbox-mgr-module/target/classes/com/alibaba/jvm/sandbox/module/mgr/ControlModule$1.class and /dev/null differ diff --git a/sandbox-mgr-module/target/classes/com/alibaba/jvm/sandbox/module/mgr/ControlModule.class b/sandbox-mgr-module/target/classes/com/alibaba/jvm/sandbox/module/mgr/ControlModule.class deleted file mode 100644 index f82dea63..00000000 Binary files a/sandbox-mgr-module/target/classes/com/alibaba/jvm/sandbox/module/mgr/ControlModule.class and /dev/null differ diff --git a/sandbox-mgr-module/target/classes/com/alibaba/jvm/sandbox/module/mgr/InfoModule.class b/sandbox-mgr-module/target/classes/com/alibaba/jvm/sandbox/module/mgr/InfoModule.class deleted file mode 100644 index bfbc7b49..00000000 Binary files a/sandbox-mgr-module/target/classes/com/alibaba/jvm/sandbox/module/mgr/InfoModule.class and /dev/null differ diff --git a/sandbox-mgr-module/target/classes/com/alibaba/jvm/sandbox/module/mgr/ModuleMgrModule.class b/sandbox-mgr-module/target/classes/com/alibaba/jvm/sandbox/module/mgr/ModuleMgrModule.class deleted file mode 100644 index 40240d56..00000000 Binary files a/sandbox-mgr-module/target/classes/com/alibaba/jvm/sandbox/module/mgr/ModuleMgrModule.class and /dev/null differ diff --git a/sandbox-mgr-module/target/classes/logback.xml b/sandbox-mgr-module/target/classes/logback.xml deleted file mode 100755 index e5836cd2..00000000 --- a/sandbox-mgr-module/target/classes/logback.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - ${user.home}/logs/sandbox/sandbox-mgr.log - - ${user.home}/logs/sandbox/sandbox-mgr.log.%d{yyyy-MM-dd} - 30 - - - %d{yyyy-MM-dd HH:mm:ss} %-5level %msg%n - UTF-8 - - - - - \ No newline at end of file diff --git a/sandbox-mgr-provider/pom.xml b/sandbox-mgr-provider/pom.xml index a69e579b..19497bef 100644 --- a/sandbox-mgr-provider/pom.xml +++ b/sandbox-mgr-provider/pom.xml @@ -6,7 +6,7 @@ sandbox com.alibaba.jvm.sandbox - 1.1.2-SNAPSHOT + 1.2.0-SNAPSHOT sandbox-mgr-provider sandbox-mgr-provider ${sandbox.version} diff --git a/sandbox-mgr-provider/target/classes/META-INF/services/com.alibaba.jvm.sandbox.provider.api.ModuleJarLoadingChain b/sandbox-mgr-provider/target/classes/META-INF/services/com.alibaba.jvm.sandbox.provider.api.ModuleJarLoadingChain deleted file mode 100644 index 8a1bd53c..00000000 --- a/sandbox-mgr-provider/target/classes/META-INF/services/com.alibaba.jvm.sandbox.provider.api.ModuleJarLoadingChain +++ /dev/null @@ -1 +0,0 @@ -com.alibaba.jvm.sandbox.provider.mgr.EmptyModuleJarLoadingChain \ No newline at end of file diff --git a/sandbox-mgr-provider/target/classes/META-INF/services/com.alibaba.jvm.sandbox.provider.api.ModuleLoadingChain b/sandbox-mgr-provider/target/classes/META-INF/services/com.alibaba.jvm.sandbox.provider.api.ModuleLoadingChain deleted file mode 100644 index 7457548b..00000000 --- a/sandbox-mgr-provider/target/classes/META-INF/services/com.alibaba.jvm.sandbox.provider.api.ModuleLoadingChain +++ /dev/null @@ -1 +0,0 @@ -com.alibaba.jvm.sandbox.provider.mgr.EmptyModuleLoadingChain \ No newline at end of file diff --git a/sandbox-mgr-provider/target/classes/com/alibaba/jvm/sandbox/provider/mgr/EmptyModuleJarLoadingChain.class b/sandbox-mgr-provider/target/classes/com/alibaba/jvm/sandbox/provider/mgr/EmptyModuleJarLoadingChain.class deleted file mode 100644 index ddc309fb..00000000 Binary files a/sandbox-mgr-provider/target/classes/com/alibaba/jvm/sandbox/provider/mgr/EmptyModuleJarLoadingChain.class and /dev/null differ diff --git a/sandbox-mgr-provider/target/classes/com/alibaba/jvm/sandbox/provider/mgr/EmptyModuleLoadingChain.class b/sandbox-mgr-provider/target/classes/com/alibaba/jvm/sandbox/provider/mgr/EmptyModuleLoadingChain.class deleted file mode 100644 index 506969b3..00000000 Binary files a/sandbox-mgr-provider/target/classes/com/alibaba/jvm/sandbox/provider/mgr/EmptyModuleLoadingChain.class and /dev/null differ diff --git a/sandbox-module-starter/pom.xml b/sandbox-module-starter/pom.xml index 9565a09c..46ec8977 100644 --- a/sandbox-module-starter/pom.xml +++ b/sandbox-module-starter/pom.xml @@ -6,7 +6,7 @@ com.alibaba.jvm.sandbox sandbox - 1.1.2-SNAPSHOT + 1.2.0-SNAPSHOT sandbox-module-starter sandbox-module-starter ${sandbox.version} diff --git a/sandbox-provider-api/pom.xml b/sandbox-provider-api/pom.xml index 12f0344f..4807571e 100644 --- a/sandbox-provider-api/pom.xml +++ b/sandbox-provider-api/pom.xml @@ -6,7 +6,7 @@ sandbox com.alibaba.jvm.sandbox - 1.1.2-SNAPSHOT + 1.2.0-SNAPSHOT sandbox-provider-api sandbox-provider-api ${sandbox.version} diff --git a/sandbox-provider-api/target/classes/com/alibaba/jvm/sandbox/provider/api/ModuleJarLoadingChain.class b/sandbox-provider-api/target/classes/com/alibaba/jvm/sandbox/provider/api/ModuleJarLoadingChain.class deleted file mode 100644 index e3805afb..00000000 Binary files a/sandbox-provider-api/target/classes/com/alibaba/jvm/sandbox/provider/api/ModuleJarLoadingChain.class and /dev/null differ diff --git a/sandbox-provider-api/target/classes/com/alibaba/jvm/sandbox/provider/api/ModuleLoadingChain.class b/sandbox-provider-api/target/classes/com/alibaba/jvm/sandbox/provider/api/ModuleLoadingChain.class deleted file mode 100644 index 6d578adb..00000000 Binary files a/sandbox-provider-api/target/classes/com/alibaba/jvm/sandbox/provider/api/ModuleLoadingChain.class and /dev/null differ diff --git a/sandbox-spy/pom.xml b/sandbox-spy/pom.xml index df4cfc43..39a495ef 100755 --- a/sandbox-spy/pom.xml +++ b/sandbox-spy/pom.xml @@ -6,7 +6,7 @@ com.alibaba.jvm.sandbox sandbox - 1.1.2-SNAPSHOT + 1.2.0-SNAPSHOT sandbox-spy sandbox-spy ${sandbox.version} diff --git a/sandbox-spy/src/main/java/java/com/alibaba/jvm/sandbox/spy/Spy.java b/sandbox-spy/src/main/java/java/com/alibaba/jvm/sandbox/spy/Spy.java index 5b6de7fe..e7d0b01e 100755 --- a/sandbox-spy/src/main/java/java/com/alibaba/jvm/sandbox/spy/Spy.java +++ b/sandbox-spy/src/main/java/java/com/alibaba/jvm/sandbox/spy/Spy.java @@ -258,8 +258,14 @@ void insert(final Node top, final Node node) { } } + int abs(int val) { + return val < 0 + ? val * -1 + : val; + } + boolean isEnter(Thread thread) { - final Node top = nodeArray[thread.hashCode() % THREAD_LOCAL_ARRAY_LENGTH]; + final Node top = nodeArray[abs(thread.hashCode()) % THREAD_LOCAL_ARRAY_LENGTH]; Node node = top; synchronized (top) { while (null != node.next) { @@ -273,7 +279,7 @@ boolean isEnter(Thread thread) { } Node enter(Thread thread) { - final Node top = nodeArray[thread.hashCode() % THREAD_LOCAL_ARRAY_LENGTH]; + final Node top = nodeArray[abs(thread.hashCode()) % THREAD_LOCAL_ARRAY_LENGTH]; final Node node = new Node(thread); synchronized (top) { insert(top, node); @@ -282,7 +288,7 @@ Node enter(Thread thread) { } void exit(Thread thread, Node node) { - final Node top = nodeArray[thread.hashCode() % THREAD_LOCAL_ARRAY_LENGTH]; + final Node top = nodeArray[abs(thread.hashCode()) % THREAD_LOCAL_ARRAY_LENGTH]; synchronized (top) { delete(node); } diff --git a/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy$MethodHook.class b/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy$MethodHook.class deleted file mode 100644 index e23ee682..00000000 Binary files a/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy$MethodHook.class and /dev/null differ diff --git a/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy$Ret.class b/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy$Ret.class deleted file mode 100644 index 178317d5..00000000 Binary files a/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy$Ret.class and /dev/null differ diff --git a/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy$SelfCallBarrier$Node.class b/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy$SelfCallBarrier$Node.class deleted file mode 100644 index 60269c1a..00000000 Binary files a/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy$SelfCallBarrier$Node.class and /dev/null differ diff --git a/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy$SelfCallBarrier.class b/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy$SelfCallBarrier.class deleted file mode 100644 index 34170055..00000000 Binary files a/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy$SelfCallBarrier.class and /dev/null differ diff --git a/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy.class b/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy.class deleted file mode 100644 index 4303988a..00000000 Binary files a/sandbox-spy/target/classes/java/com/alibaba/jvm/sandbox/spy/Spy.class and /dev/null differ