GWT和JAXB基础知识运行时

时间:2014-11-26 09:35:43

标签: maven gwt jaxb cxf jaxb2-basics

我在GWT应用程序中使用CXF JAXB生成的类。我希望将equals()和hashCode()添加到生成的类中。我已经成功地在maven POM中使用了JAXB2 Basics插件(http://confluence.highsource.org/display/J2B/JAXB2+Basics+Plugins)和带有CXF的JAXB2 Basics Runtime来生成它们。但是,生成的类现在与GWT不兼容。这些类具有GWT未仿真的依赖项,例如java.util.ResourceBundle,java.net.URL。

我正在考虑使用CustomEqualsStrategy,但仍然会留下org.jvnet.jaxb2_commons.locator.ObjectLocator类。有人有这个工作吗?

1 个答案:

答案 0 :(得分:1)

这个问题现在有了答案。

我与James(OP,@ ja6a)合作,我们一起开发了JAXB2 SimpleEquals PluginJAXB2 SimpleHashCode Plugin,它们可以生成无运行时 无反射 equals(...)hashCode()方法。由于没有额外的运行时依赖性,这与GWT兼容。

生成代码的示例:

用法:

以下是示例pom.xml

的摘录
        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <configuration>
                <extension>true</extension>
                <args>
                    <arg>-XsimpleEquals</arg>
                    <arg>-XsimpleHashCode</arg>
                </args>
                <plugins>
                    <plugin>
                        <groupId>org.jvnet.jaxb2_commons</groupId>
                        <artifactId>jaxb2-basics</artifactId>
                    </plugin>
                </plugins>
            </configuration>
        </plugin>

如上所述,不需要运行时。

这些插件可处理大量箱子和角落箱以及角落箱角。例如,我们必须对JAXBElement和数组等内容实施特殊处理,因为它们不会实现hashCode()equals(...)方法。插件还处理原始类型。

非常感谢 James Annesley 的帮助。