IBM SBT SDK 1.1.0 (Java) и Apache xerces

Я добавляю интеграцию IC с IBM SBT SDK (Java) в существующий проект, который все еще использует xerces 2.4.0 (по состоянию на март 2009 года).

Использование IBM SBT SDK 1.0.x здесь не вызвало никаких проблем, но реализация сериализации XML 1.1.0 полностью основана на org.w3c.xml.ls.DOMImplementationLS и подобных вещах, которые были введены после перемещения xerces в "xercesImpl" примерно в 2004 году.,

Однако проект содержит много кода, работающего с XML на основе xerces и xml-apis, и слишком опасно слишком быстро переходить к "более современным" версиям этих библиотек. Таким образом, я хочу двигаться "не дальше, чем абсолютно необходимо".

Благодаря maven никто не может напрямую увидеть, какая версия какого-либо артефакта загружена, если на него нет прямой ссылки в pom.xml. Таким образом, мой вопрос:

Какая версия xercesImpl "действительно" требуется для IBM SBT SDK 1.1.0? 2.4.0 недостаточно, так как некоторые методы, используемые в SBT SDK, еще не реализованы там...

1 ответ

Решение

Версия xerces в зависимости будет 2.9.0; глядя на класс DOMUtil.java#loadDriver(), однако есть обходные пути, позволяющие SBTK вообще не использовать xerces:

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

если вы находитесь в контейнере osgi, вы также можете убедиться, что манифест хост-приложения объявляет зависимость от версии <=2.4.0 и загружает обе версии xerces, позволяя контейнеру исправить зависимости для вас.

во всяком случае, чтобы ответить на вопрос, используя:

mvn dependency:list

Я получаю версию 2.9.0 для xerces:

 The following files have been resolved:
    com.ibm.sbt:com.ibm.commons:eclipse-plugin:9.0.0:provided
    p2.eclipse-plugin:javax.servlet:jar:3.0.0.v201112011016:system
    p2.eclipse-plugin:javax.xml:jar:1.3.4.v201005080400:system
    p2.eclipse-plugin:org.apache.xalan:jar:2.7.1.v201005080400:system
    p2.eclipse-plugin:org.apache.xerces:jar:2.9.0.v201101211617:system
    p2.eclipse-plugin:org.apache.xml.resolver:jar:1.2.0.v201005080400:system
    p2.eclipse-plugin:org.apache.xml.serializer:jar:2.7.1.v201005080400:system
    p2.eclipse-plugin:org.eclipse.core.contenttype:jar:3.4.200.v20120523-2004:system
    p2.eclipse-plugin:org.eclipse.core.jobs:jar:3.5.300.v20120912-155018:system
    p2.eclipse-plugin:org.eclipse.core.runtime:jar:3.8.0.v20120912-155025:system
    p2.eclipse-plugin:org.eclipse.equinox.app:jar:1.3.100.v20120522-1841:system
    p2.eclipse-plugin:org.eclipse.equinox.common:jar:3.6.100.v20120522-1841:system
    p2.eclipse-plugin:org.eclipse.equinox.preferences:jar:3.5.1.v20121031-182809:system
    p2.eclipse-plugin:org.eclipse.equinox.registry:jar:3.5.200.v20120522-1841:system
    p2.eclipse-plugin:org.eclipse.osgi:jar:3.8.2.v20130124-134944:system
Другие вопросы по тегам