|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
Наиболее быстрый маппинг между XML(FB2) форматом электронной книги. Как? Сама спецификация описана здесь http://www.fictionbook.org/index.php/Документы Образец книжки я - приаттачиваю. Из того что я разработал нет пока что нифига. Только вот такой кусок. Код: java 1. 2. 3. 4. 5. 6. 7. 8.
Дальнейшее - под вопросом. Давно я этим XML не занимался. Последний раз использовал Apache Digester и Stax ( в сыром виде. Тоесть в виде хендлера событий. Оба способа кажутся мне не очень удобными с точки зрения внесения изменений. Некто Баелдунг предлагает аж 8(!) способов замапить XML на объекты. https://www.baeldung.com/java-xml Сомнительно что я успею опробовать все. Ищу нечто очень быстрое наподобие SAX/Stax но более удобное в разработке. Есть надежда что JAXB мне подойдет. Но очень не хотелось-бы иметь под капотом XMLDocument. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 21:02 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
maytonНаиболее быстрый маппинг по какому критерию? временя выполнения, расход памяти или ...уяк-...уяк и в продакшн :) maytonНекто Баелдунг предлагает аж 8 бери любое из того, что больше нравится/подходит. так-то на github и готовые парсеры есть, но качество под вопросом. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 21:15 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
chpashamaytonНаиболее быстрый маппинг по какому критерию? временя выполнения, расход памяти или ...уяк-...уяк и в продакшн :) По времени выполнения. Продакшена нет. Это - песочница. Но если она будет грузить документы 3 суток - нахер-нахер ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 21:18 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
chpashamaytonНекто Баелдунг предлагает аж 8 бери любое из того, что больше нравится/подходит. так-то на github и готовые парсеры есть, но качество под вопросом. Взял JAXB пока. Напрягает то что в ебуках встречаются namespaces. С ними - вечно какие-то неоднозначности. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2019, 21:20 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
Почитал про XStream http://x-stream.github.io/index.html В целом понравилось. Быстрая. Повисли вопросы? Маппинг в специфичные имена тегов? Как? Код: xml 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 00:36 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
maytonПродакшена нет. Это - песочница. Но если она будет грузить документы 3 суток - нахер-нахер Поскольку размер любого файла FB2 не превышает нескольких МБ, то при любом способе будет загружаться не более чем за секунды и расходовать не более десятков мегабайт памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 09:36 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
mayton, там есть достаточная документация. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 09:37 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
Partisan MmaytonПродакшена нет. Это - песочница. Но если она будет грузить документы 3 суток - нахер-нахер Поскольку размер любого файла FB2 не превышает нескольких МБ, то при любом способе будет загружаться не более чем за секунды и расходовать не более десятков мегабайт памяти. Да мне не жалко памяти. 270 Гигов zip-архивов. Просто хочется чтоб процессинг прошёл быстрее. Возможно будут читать в несколько потоков. За вчерашний день я нарисовал для себя шпаргалку по 8 XML-технологиям. Опробовал 4 штуки. Пока в фаворе остается Stax. Возможно на нем и будут всё делать. В простейшем случае буду игнорировать неизвестные теги. Индексировать собственно есть интерес только такие поля как Автор, Название, и собственно тело текста. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 10:27 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
Если кратко, то для разбора XML используются библиотеки, работающие с DOM, или с потоком данных (stream parser) или вызов XSLT скрипта. Для крупного XML файла, состоящего из большого количества записей простой структуры, больше подходят stream parser-ы,которые делятся на StAX и SAX (спецификации). StAX несколько проще в использовании. Можно рассмотреть библиотеку FasterXML Jackson, поддерживающую разные методы работы с XML (и JSON), в том числе работу как StAX-parser (которая реализована дополнительной библиотекой Woodstox, к которой обращается Jackson). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 10:48 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
Partisan M, нет нет. С DOM я не хочу связываться. Я с ним имел дело еще в 2000х. Это овер-проектирование для меня. FasterXML Jackson Вот это хорошая тема. Почитаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 10:50 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
mayton, XFire тоже подойдёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 10:50 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
maytonНаиболее быстрый маппинг между XML(FB2) форматом электронной книги. Как? Перебирая мапперы. То есть когда хочется точно взять инфу из xml, то возникают нюансы, которые разные мапперы по разному обходят. Ну и надо выбрать, что там больше нравится в плане точности отображения. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 11:26 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
Чтоб быть честным я попробую реализовать хотя-бы 2 streamable маппера за фасадом своего приложения. И сделаю минимум 2 бенчмарка. Будет StaxFb2Mapper + еще один неизвестный из серии таких-же быстрых. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 12:09 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
maytonЧтоб быть честным я попробую реализовать хотя-бы 2 streamable маппера за фасадом своего приложения. И сделаю минимум 2 бенчмарка. Будет StaxFb2Mapper + еще один неизвестный из серии таких-же быстрых. сделай фасад, выложи проект, расшарь его нам) мы допишем, перехватим твою идею и продадим! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 12:13 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
Это будет прелестно. Я не против. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 12:21 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
Хм... мне еще и быстрый JSon конвертер понадобится. Обычно я юзал гугловый GSon и какой-то fasterxml.jackson. Но быстрые он или нет - хрен ево знает. Поищу бенчмарки. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 16:18 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
maytonНо быстрые он или нет - хрен ево знает там примерно такая же ситуация. чем более низкоуровнево, тем быстрее. чем более удобно и декларативно, тем медленнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 17:29 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
Вот буквально 5 минут назад запилил. На Джаксоне. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
В Кибану должный пойти put-реквесты в таком формате HTTP. Там соотв. формат полей - произвольный. Код: sql 1. 2. 3. 4. 5. 6.
Вот эта штука movies - это по идее название текстового индекса. Его я должен по протоколу сначала создать отдельной командой Кибаны. Еще не придумал как это всё завязать в последовательность действий. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 17:47 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
Ну там не мувис понятное дело а books. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 18:00 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
mayton270 Гигов zip-архивов - если не сложно, поделитесь ссылочкой) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 18:33 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
Рутрекер. В поиске: Флибуста. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2019, 18:44 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
Кажется вот этот линк https://rutracker.org/forum/viewtopic.php?t=5462398 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 00:07 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
maytonВот буквально 5 минут назад запилил. На Джаксоне. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Криво. В смысле нормальная последовательность такая: FB2 -> XmlToJava -> POJO -> JavaToJson И обратно через тот же POJO можно. То есть один дата-объект и две конвертации, обе заточены (замаплены) на один набор классов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:29 |
|
Быстрый маппинг FB2=>JavaObject
|
|||
---|---|---|---|
#18+
Да. Промежуточная фаза Java-object мне 100% нужна. Возможно надо будет втолкнуть объект Книга не в Elastic-endpoint а в какую-нибудь SQLite. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2019, 13:31 |
|
|
start [/forum/topic.php?fid=59&msg=39808255&tid=2121313]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
309ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 235ms |
total: | 656ms |
0 / 0 |