Примечание: Я являюсь лидером EclipseLink JAXB (MOXy) и членом группы экспертов JAXB ( JSR-222 ).
Вы правильно учитываете частоту выпуска библиотек при выборе программного обеспечения. Есть много причин для выпуска нового продукта:
- Запросы клиентов - Независимо от того, насколько хороша ваша библиотека, у вашей базы пользователей будут предложения по улучшению и запросы функций.
- Отраслевые разработки - Модульное развертывание является горячей темой сейчас, за последние несколько лет пришлось внести изменения в EclipseLink, чтобы сделать его совместимым с OSGi.
- Новые версии Java - Java SE 7 будет выпущен в ближайшее время, хотя для этого не требуется выпуск, нам нужно было внести некоторые поправки в наш предстоящий выпуск, чтобы обеспечить совместимость. Также со временем будет добавлено больше возможностей для использования новых аспектов Java (EclipseLink требует минимум Java SE 5).
Другим важным аспектом оценки любого проекта с открытым исходным кодом является количество активных коммиттеров. Для этого полезны сайты типа ohloh.net :
<Ч />
JAXB (JSR-222)
JAXB - это не просто реализация, это стандарт, разработанный с помощью процесса сообщества Java (JCP). Были участники из таких библиотек объект-XML, как XML Beans (BEA), EMF (IBM), TopLink (Oracle) и т. Д. Поскольку JAXB является частью Java EE, он доступен на каждом сервере приложений: WebLogic, GlassFish, WebSphere, JBoss и т. Д.
JAXB предлагает:
- 100% охват схемы
- Несколько реализаций: Метро , EclipseLink MOXy , Apache JaxMe и т. Д.
- Включено в Java SE 6, совместимо с JDK 1.5
- Возможность запуска из схемы XML или классов Java
- Различные механизмы расширения, включая XmlAdapter - Пример
- Возможность сохранить инфо-набор XML с помощью Binder - Пример
- Связующий слой для JAX-WS (веб-сервисы)
- Связующий слой для JAX-RS (Rest) - Пример
- Совместимо с JSON (при использовании с такими библиотеками, как Jettison) - Пример
<Ч />
EclipseLink JAXB (MOXy)
MOXy - это реализация JAXB, которая предлагает множество полезных расширений, включая:
Отображение истинного объекта в XML с использованием XPath
Отображение на основе XPath позволяет начать как с классов Java, так и со схемой XML и сопоставить их вместе.
Файл отображения для обработки сторонних классов
В текущей спецификации JAXB метаданные предоставляются в виде аннотаций. Это может быть проблематично для использования со сторонними классами, которые не могут быть изменены. Вот почему MOXy предлагает способ указать сопоставления через XML:
Расширения для сопоставления объектов JPA
Зачастую вам нужно больше работать с объектами Java, а затем просто сопоставлять их с XML. Вам также может понадобиться сохранить их в базе данных. Это означает, что ваша объектная модель может иметь дополнительные ограничения, которые вы должны учитывать. MOXy предлагает ряд расширений для этого вида использования:
<Ч />
Сравнения
Ниже приведено несколько сравнений, которые я провел, сравнивая JAXB с XStream и Simple: