我正在尝试对com.microsoft.azure.eventprocessorhost.PartitionContext进行并发测试,它在签名的jar中有一个多参数包保护的构造函数。
我想基本上忽略该构造函数(或传递null)并覆盖一个方法来递增计数器。该类不是最终的,也不是构造函数或方法。
由于签名而直接导致安全性异常的子类化。我查看了各种示例,并使用了本地版本的ByteBuddyTutorialExamplesTest,但无效。
目前,我正在考虑放弃,而是拦截该课程的呼叫网站。也就是说,拥有一个虚假版本的目标(PartitionContext)会很方便。
我是否缺少任何技巧,或者我正在努力实现的目标是不可能的?
答案 0 :(得分:2)
Byte Buddy提供了一个ClassLoadingStrategy
,它将类注入到类加载器中,并且可以使用给定的ProtectionDomain
。但是,该域确实需要明确提供。
要应用此策略,load
方法会重载第二个参数:
builder.make().load(sealedClass.getClassLoader(),
ClassLoadingStrategy.Default.INJECTION.with(sealedClass.getProtectionDomain()))