diff --git a/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/Caller.java b/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/Caller.java
index db240d06c..5c48eed6b 100644
--- a/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/Caller.java
+++ b/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/Caller.java
@@ -1,7 +1,5 @@
package com.aizuda.easy.retry.common.log.lang;
-import cn.hutool.core.lang.caller.CallerUtil;
-
/**
* 调用者接口
* 可以通过此接口的实现类方法获取调用者、多级调用者以及判断是否被调用
@@ -10,12 +8,6 @@ import cn.hutool.core.lang.caller.CallerUtil;
*
*/
public interface Caller {
- /**
- * 获得调用者
- *
- * @return 调用者
- */
- Class> getCaller();
/**
* 获得调用者的调用者
@@ -24,26 +16,4 @@ public interface Caller {
*/
Class> getCallerCaller();
- /**
- * 获得调用者,指定第几级调用者 调用者层级关系:
- *
- *
- * 0 {@link cn.hutool.core.lang.caller.CallerUtil} - * 1 调用{@link cn.hutool.core.lang.caller.CallerUtil}中方法的类 - * 2 调用者的调用者 - * ... - *- * - * @param depth 层级。0表示{@link cn.hutool.core.lang.caller.CallerUtil}本身,1表示调用{@link CallerUtil}的类,2表示调用者的调用者,依次类推 - * @return 第几级调用者 - */ - Class> getCaller(int depth); - - /** - * 是否被指定类调用 - * - * @param clazz 调用者类 - * @return 是否被调用 - */ - boolean isCalledBy(Class> clazz); } diff --git a/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/LogCaller.java b/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/LogCaller.java index 4f6abb1c3..b0edbf376 100644 --- a/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/LogCaller.java +++ b/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/LogCaller.java @@ -1,5 +1,7 @@ package com.aizuda.easy.retry.common.log.lang; +import java.util.Objects; + /** * 调用者。可以通过此类的方法获取调用者、多级调用者以及判断是否被调用 * @@ -12,15 +14,6 @@ public class LogCaller { INSTANCE = tryCreateCaller(); } - /** - * 获得调用者 - * - * @return 调用者 - */ - public static Class> getCaller() { - return INSTANCE.getCaller(); - } - /** * 获得调用者的调用者 * @@ -30,51 +23,6 @@ public class LogCaller { return INSTANCE.getCallerCaller(); } - /** - * 获得调用者,指定第几级调用者
- * 0 CallerUtil - * 1 调用CallerUtil中方法的类 - * 2 调用者的调用者 - * ... - *- * - * @param depth 层级。0表示CallerUtil本身,1表示调用CallerUtil的类,2表示调用者的调用者,依次类推 - * @return 第几级调用者 - */ - public static Class> getCaller(int depth) { - return INSTANCE.getCaller(depth); - } - - /** - * 是否被指定类调用 - * - * @param clazz 调用者类 - * @return 是否被调用 - */ - public static boolean isCalledBy(Class> clazz) { - return INSTANCE.isCalledBy(clazz); - } - - /** - * 获取调用此方法的方法名 - * - * @param isFullName 是否返回全名,全名包括方法所在类的全路径名 - * @return 调用此方法的方法名 - * @since 5.2.4 - */ - public static String getCallerMethodName(boolean isFullName) { - final StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[2]; - final String methodName = stackTraceElement.getMethodName(); - if (false == isFullName) { - return methodName; - } - - return stackTraceElement.getClassName() + "." + methodName; - } - /** * 尝试创建{@link Caller}实现 * @@ -84,7 +32,7 @@ public class LogCaller { Caller caller; try { caller = new StackWalkerCaller(); - if (null != caller.getCaller() && null != caller.getCallerCaller()) { + if (Objects.nonNull(caller.getCallerCaller())) { return caller; } } catch (Throwable e) { @@ -94,5 +42,4 @@ public class LogCaller { caller = new StackTraceCaller(); return caller; } - // ---------------------------------------------------------------------------------------------- static interface and class } diff --git a/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/StackTraceCaller.java b/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/StackTraceCaller.java index b2790dedf..181f29c44 100644 --- a/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/StackTraceCaller.java +++ b/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/StackTraceCaller.java @@ -2,6 +2,7 @@ package com.aizuda.easy.retry.common.log.lang; import cn.hutool.core.exceptions.UtilException; +import java.io.Serial; import java.io.Serializable; /** @@ -10,23 +11,10 @@ import java.io.Serializable; * @author wodeyangzipingpingwuqi */ public class StackTraceCaller implements Caller, Serializable { + @Serial private static final long serialVersionUID = 1L; private static final int OFFSET = 2; - @Override - public Class> getCaller() { - final StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); - if (OFFSET + 1 >= stackTrace.length) { - return null; - } - final String className = stackTrace[OFFSET + 1].getClassName(); - try { - return Class.forName(className); - } catch (ClassNotFoundException e) { - throw new UtilException(e, "[{}] not found!", className); - } - } - @Override public Class> getCallerCaller() { final StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); @@ -41,28 +29,4 @@ public class StackTraceCaller implements Caller, Serializable { } } - @Override - public Class> getCaller(int depth) { - final StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); - if (OFFSET + depth >= stackTrace.length) { - return null; - } - final String className = stackTrace[OFFSET + depth].getClassName(); - try { - return Class.forName(className); - } catch (ClassNotFoundException e) { - throw new UtilException(e, "[{}] not found!", className); - } - } - - @Override - public boolean isCalledBy(Class> clazz) { - final StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); - for (final StackTraceElement element : stackTrace) { - if (element.getClassName().equals(clazz.getName())) { - return true; - } - } - return false; - } } diff --git a/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/StackWalkerCaller.java b/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/StackWalkerCaller.java index 07c967fd5..08fea0aa3 100644 --- a/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/StackWalkerCaller.java +++ b/easy-retry-common/easy-retry-common-log/src/main/java/com/aizuda/easy/retry/common/log/lang/StackWalkerCaller.java @@ -2,6 +2,7 @@ package com.aizuda.easy.retry.common.log.lang; import cn.hutool.core.exceptions.UtilException; +import java.io.Serial; import java.io.Serializable; import java.util.function.Function; import java.util.stream.Stream; @@ -12,27 +13,17 @@ import java.util.stream.Stream; * @since 2.6.0 */ public class StackWalkerCaller implements Caller, Serializable { + @Serial + private static final long serialVersionUID = 1L; - @Override - public Class> getCaller() { - StackWalker instance = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE); - StackWalker.StackFrame walk = (StackWalker.StackFrame) instance - .walk((Function