问题标签 [byte-buddy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
363 浏览

java - 字节伙伴检测导致异常:java.lang.IllegalStateException:操作数堆栈上的意外余数:-1

与此处讨论的问题相关,我得到以下异常:

该代理在 Tomcat 服务器之上的企业 Web 应用程序上运行。大多数类的检测都没有任何问题,但仍然......我试图在独立的小提琴中重现异常,但我找不到检测失败的类的任何唯一规范......我想它必须使用该类使用的特定框架或注释。

感谢任何指针....

0 投票
1 回答
767 浏览

java - Maven 插件而不是 Byte Buddy 的 javaagent?

可以有一个 Maven 插件而不是 javaagent 来减少应用程序的启动时间吗?许多 ORM 工具都有 javaagent 和 maven 插件,所以应该是可能的 - 是吗?或者至少类似于“CompiledClassFilesBuilder”的功能类似于 AgentBuilder :-)

问候, 帕维尔

0 投票
1 回答
391 浏览

byte-buddy - 无法在 java 9 上安装 byte-buddy-agent

Byte buddy 说它适用于 java 9,甚至还有代码:ByteBuddyAgent.install(ForJigsawVm.INSTANCE) 我使用 simpleByteBuddyAgent.install()应该检查所有可能性(包括 java 9/jigsaw),但它失败了。

我做错了什么?或者它还不支持java 9?

0 投票
2 回答
638 浏览

java - 使用字节伙伴或某些库进行分析

我正在尝试构建一个查询日志分析器,它计算每个查询的执行时间,并记录查询是否需要更多时间。与 Wrapper 相比,使用 AspectJ 需要更多时间。因此,如果有性能改进的余地,我想使用 byte buddy 或其他一些库。

这是我当前使用 AspectJ 的实现。

有没有办法记录以及没有性能瓶颈?

0 投票
1 回答
472 浏览

java - 使用 ByteBuddy 检测一组接口的所有实现

背景:我想使用 LogInterceptor 来检测一组接口(在同一个包中)的所有实现(只是记录调用了该方法)。因此我用 byte-buddy 写了一个 javaagent。一般来说,这工作正常,但我正在努力寻找一组接口的所有实现。

假设我们在包 my.company.api 中有一组 Java 接口,那么我尝试了以下方式:

我对 byte-buddy 很陌生,也许有人可以提示我做错了什么。

0 投票
1 回答
748 浏览

java - 错误:ByteBuddy 的 ByteBuddyAgent

无法在 android 中安装 ByteBuddyAgent

build.gradle 中的代码

安装 ByteBuddyAgent 的代码

这是编译错误,因为java.lang没有仪器和管理包。

0 投票
3 回答
609 浏览

java - 使用 ByteBuddy 在运行时定义枚举

我有一个项目,它使用一个枚举作为一个类的参数,它的签名是这样的:

问题是,我不想定义一个枚举并为每个新枚举再次进行相同的编程。

我正在考虑ByteBuddy在运行时生成枚举。但我没有找到一种巧妙的方法来做到这一点,而且资源也不多。

编辑:

更具体地说,我的代码中有什么:

当我使用 ByteBuddy 生成的 Enum 时它不起作用;在这种情况下,它不被视为一种类型(编译错误)。

是否有一些技巧可以使用,或者这就是可以在运行时完成的事情?

0 投票
1 回答
691 浏览

java - 如何使用 bytebuddy 生成 pojo 代码

我是 bytebuddy 的新手,我已经编写了一个 junit 测试来生成一个类文件。吹是我的代码:

但是,我真正需要的是打印这样的字符串:

是的。只是 Java 代码,而不是类文件。那么,字节伙伴可以做到这一点吗?或者,我只会使用代码模型库。

0 投票
1 回答
113 浏览

java - Java JSR-303 无字节码编织的自动 Bean 验证

有没有一种方法可以执行(或多或少)“自动”JSR-303 java bean 验证,而无需对类进行运行时修改?

通常我看到人们使用 AspectJ 来实现这一点,但是在使用运行时代码编织(如cofoja )时我们遇到了很多复杂情况,我想避免它。它使我们的许多构建工具失败,因为运行时类文件与磁盘上的类文件不同。

我已经通过只能代理接口(公共方法)的反射查看了动态代理,并且如果您在“this”中调用任何带注释的内容,您将不再通过代理,因此您将失去该验证。

我还查看了ByteBuddy,寻找一种通过包装/重新定义类来拦截方法调用的方法。这里可能有一些东西,但我不知道如何拦截私有方法或完成上述操作,而无需重新修改原始类。

有任何想法吗?

0 投票
1 回答
226 浏览

java - 如何在 Byte Buddy 中将 Advice 添加到“goto”字节码?

我正在构建一个需要在 Java 8 Nashorn 中运行 3rd 方代码的系统,并且我想监视/控制 CPU 和内存使用。我有一个 Byte Buddy 代理,它添加了关于 Javascript 方法进入和退出的建议,但是因为循环被编译为字节码,我还需要增加任何向后的 goto 字节码。它目前似乎不是微不足道的支持,但我可以想象它有能力做到这一点。我应该使用它还是编写低级 ASM 代码来自己做?