alibaba / jvm-sandbox

Real - time non-invasive AOP framework container based on JVM
GNU Lesser General Public License v3.0
6.8k stars 1.57k forks source link

EventWatchBuilder不支持lambda表达式实现的接口 #377

Open guanyang opened 2 years ago

guanyang commented 2 years ago

问题概述

oldmanpushcart commented 2 years ago

收到,lambda因为一些原因,导致从一开始就没被支持。我重新考下古,到底不能支持的原因是什么,这里也不写个大概,哎。

    /*
     * 是否因sandbox容器本身缺陷所暂时无法支持的类
     */
    private boolean isUnsupportedClass(final ClassStructure classStructure) {
        return StringUtils.containsAny(
                classStructure.getJavaClassName(),
                "$$Lambda$",
                "$$FastClassBySpringCGLIB$$",
                "$$EnhancerBySpringCGLIB$$",
                "$$EnhancerByCGLIB$$",
                "$$FastClassByCGLIB$$"
        );
    }
XHao commented 2 years ago

收到,lambda因为一些原因,导致从一开始就没被支持。我重新考下古,到底不能支持的原因是什么,这里也不写个大概,哎。

    /*
     * 是否因sandbox容器本身缺陷所暂时无法支持的类
     */
    private boolean isUnsupportedClass(final ClassStructure classStructure) {
        return StringUtils.containsAny(
                classStructure.getJavaClassName(),
                "$$Lambda$",
                "$$FastClassBySpringCGLIB$$",
                "$$EnhancerBySpringCGLIB$$",
                "$$EnhancerByCGLIB$$",
                "$$FastClassByCGLIB$$"
        );
    }

支持应该没什么问题,加载lambda的时候,internalClassName为null,利用现在的classStructure可以分析出来接口信息

oldmanpushcart commented 1 year ago

attah模式下对Lambda表达式支持是一个深坑,agent模式下没有什么问题。所以在1.4.0版本我仍然关闭这个功能,考虑在1.5.0版本中开放,但只能支持agent模式

likezjuisee commented 1 year ago

attah模式下对Lambda表达式支持是一个深坑,agent模式下没有什么问题。所以在1.4.0版本我仍然关闭这个功能,考虑在1.5.0版本中开放,但只能支持agent模式

什么时间发布1.5.0版本

mxian commented 2 months ago

attah模式下对Lambda表达式支持是一个深坑,agent模式下没有什么问题。所以在1.4.0版本我仍然关闭这个功能,考虑在1.5.0版本中开放,但只能支持agent模式

同问,什么时候能支持Lambda,什么时候发布1.5?