2012-06-03 1 views
4

У меня есть два класса A и B, генерируемые cxf-codegen-plugin из моего WSDL. A наследует от B.Генерация и настройка методов equals/hashcode с CXF/JAXB2

Я хотел бы добавить общие методы, как hashCode(), equals() ... Так что, у меня есть следующая конфигурация в моем POM:

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-codegen-plugin</artifactId> 
    <version>2.6.0</version> 
    <executions> 
     <execution> 
      <id>generate-sources</id> 
      <phase>generate-sources</phase> 
      <configuration> 
       <wsdlOptions> 
        <wsdlOption> 
         <wsdl>${basedir}/wsdl/PeeringApi.wsdl</wsdl> 
         <extraargs> 
          <extraarg>-xjc-XhashCode</extraarg> 
          <extraarg>-xjc-Xequals</extraarg> 
          <extraarg>-xjc-Xsetters</extraarg> 
         </extraargs> 
        </wsdlOption> 
       </wsdlOptions> 
      </configuration> 
      <goals> 
       <goal>wsdl2java</goal> 
      </goals> 
     </execution> 
    </executions> 
    <dependencies> 
     <dependency> 
      <groupId>org.jvnet.jaxb2_commons</groupId> 
      <artifactId>jaxb2-basics</artifactId> 
      <version>${jaxb2.version}</version> 
     </dependency> 
    </dependencies> </plugin> 

У меня есть два вопроса:

  1. Есть способ генерировать метод equals(), который не сравнивает свойства B (т.е. не вызывает super.equals())?
  2. Как указать плагину для создания метода equals(), который сравнивает только определенные свойства A (по умолчанию кажется, что все свойства сравниваются), которые я указываю?

Благодаря

+0

Любая идея ..........? –

ответ

2

Я нашел решение, как это описано здесь: http://confluence.highsource.org/display/J2B/JAXB2+Basics+Plugins.

Вы можете добавить пользовательские привязки, чтобы указать плагинам JAXB2, чтобы игнорировать определенное свойство.

+0

Неправильный плагин, а не cxf - * - плагин. – rektide

+0

'cxf-codegen-plugin' используется для генерации исходного кода из файлов .wsdl и .xsd во время процесса сборки maven. В фоновом режиме он также использует библиотеку 'jaxb2-basics' для генерации методов' equals' и 'hashCode', как указано в xjc args и в файле привязок. –

Смежные вопросы