Как использовать cxf-xjc-ts с ToStringBuilder из lang3?

При использовании cxf-xjc-ts плагин во время xsdtojavaможно добавить свойство <extensionArg>-Xts</extensionArg> чтобы компилятор генерировал следующий метод:

import org.apache.commons.lang.builder.ToStringBuilder;

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this, JAXBToStringStyle.DEFAULT_STYLE);
    }

Проблема: при наличии apache.commons-lang3 только на classpath пакет должен быть:org.apache.commons.lang3.builder.ToStringBuilder и используя org.apache.commons.lang3.builder.DEFAULT_STYLE,

Вопрос: как мне сказать -ts плагин для фактического использования компоновщика из lang3 во время генерации?

2 ответа

Решение

Это было исправлено в v3.1.0@see https://issues.apache.org/jira/browse/CXFXJC-16

So now -Xts option is using lang3,

Я хотел бы предложить использовать немного другой подход.

Включает 2 шага:

  • опустить генерацию стандартных методов toString с помощью плагина xjc - следовательно, он не будет использовать commons-lang (без 3) 'ToStringBuilder',

  • используйте commons-lang3 'ToStringBuilder.reflectionToString' непосредственно там, где необходимо 'toString'.

(Во время разработки я столкнулся с нежелательным использованием 'commons-lang', и мой подход предоставляет возможность пропустить использование 'commons-lang' вместе с 'commons-lang3').

Другие вопросы по тегам