Верблюд-Бинди (2.21.2) Похоже, что при отмене сортировки фиксированной длины игнорируется трим = истинная аннотация - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть класс, который работал с Bindy 2.17, но после перехода на Camel 2.21.2 он больше не обрезает входящие данные, когда я отменяю.

Я пытался добавить paddingChar атрибут для записи аннотации, но это не имело никакого эффекта, и, поскольку это пробелы, которые я пытаюсь обрезать, это должно быть значение по умолчанию paddingChar в любом случае.

Мой класс имеет форму

@FixedLengthRecord( header = MyClass.MyHeader.class, footer = MyClass.MyFooter.class, skipHeader = true, skipFooter = true, ignoreTrailingChars = true, crlf="WINDOWS", paddingChar = ' ' )
public class MyClass{

    @DataField( pos = 1, length = 2, trim = true )
    private String field1;

    @DataField( pos = 2, length = 15, trim = true )
    private String field2;

    @DataField( pos = 3, length = 15, trim = true )
    private String field3;

    @FixedLengthRecord( ignoreTrailingChars = true )
    public static class MyHeader {

    }

    @FixedLengthRecord( ignoreTrailingChars = true)
    public static class MyFooter {

    }

}

Что-то изменилось в настройке триммера, или мне чего-то не хватает?

Спасибо!

1 Ответ

0 голосов
/ 10 мая 2019

У меня просто была такая же проблема.По умолчанию записи фиксированной длины выровнены по правому краю.Начиная с версии 2.18, в этом случае обрезаются только символы заполнения слева от записи.Если ваши символы заполнения всегда находятся справа, вы можете выровнять свою запись по левому краю с помощью align = "L".Если вы просто хотите обрезать все независимо от выравнивания, вы можете использовать align = "B", начиная с версии 2.20.Вот соответствующее изменение: https://github.com/apache/camel/commit/26aa4e8f14cac9dcdaa8f369a8045b8e8df56f1e#diff-24aaa851bf960dc4d2e04c5fbbf8aada

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...