2

我正在开发一个库,用于将数据编组和解组为 xml 格式以进行传输。我现在有两个版本的 Jar,其中包含一个com.mycorp.Marshaller我想测试兼容性的类(因为我们不能同时更新所有客户端)。

有谁知道是否可以编写一个单元测试,可以同时加载类的版本 A 和版本 B 并统一使用它们以确保 B 输出的 xml 可以被 A 解析。

我不能使用完全限定名称,因为这在两种情况下都是相同的,并且我不能更改它,因为版本 B 旨在成为替代品。


有谁知道如何加载具有相同完全限定名称的类的两个不同版本(来自不同的 jar)?

4

1 回答 1

3

你可以这样做:创建一个类加载器,从其中一个 jar 中按名称加载类。然后调用编组并创建 XML。在此之后,创建类加载器的另一个实例(或完全是另一个类加载器)以从另一个 jar 中按名称加载类,并使用通过第二个类加载器创建的对象解析 XML。

如果遇到麻烦,您总是可以创建两个测试:一个创建版本 A 的 xml,然后另一个解析版本 B 的 XML。这两个测试可以在不同的 JVM 中运行,一个接一个

于 2012-04-11T14:16:35.500 回答