Как использовать Apache POI в OSGi

Я хочу использовать Apache POI в OSGi для написания рабочей книги Excel с потоковым API OOXML (SXSSF). API потоковой передачи доступен с POI 3.9.

Поскольку последние фляги Apache POI 3.11 не являются связками:Какой лучший способ заставить работать POI в OSGi?

Я попробовал два подхода:

вставлять банки непосредственно в единственную связку, которая будет их использоватьиспользовать баночки POI, предварительно упакованные в пакеты

Я в отчаянии собираю все зависимости.

Сначала о встраивании фляги POI в мой пакет: мой файл bndtools содержит

-buildpath:  \
...
libs/dom4j-1.6.1.jar;version=file,\
libs/poi-3.11.jar;version=file,\
libs/poi-ooxml-3.11.jar;version=file,\
libs/poi-ooxml-schemas-3.11.jar;version=file

Private-Package:  \
...
org.openxmlformats.schemas.*,\
org.apache.poi.*,\
org.dom4j.*,\
com.microsoft.schemas.office.x2006.*,\
schemaorg_apache_xmlbeans.*,\
schemasMicrosoftComOfficeExcel.*,\
schemasMicrosoftComOfficeOffice.*,\
schemasMicrosoftComVml.*

Это приводит к пакету, который импортирует много, много вещей, как, например,org.bouncycastle.asn1.x509 а такжеorg.junit, Я не планирую шифровать или тестировать в своем приложении - так что эти два, вероятно, как-то «необязательны». Как я могу указать это? Есть ли хороший способ собрать все эти зависимости?

Примечание: по крайней мереorg.apache.commons.codec а такжеcom.sun.msv.datatype.xsd.lib дополнительно требуются, но они уже являются связками.

Используя предварительно упакованные банки, я попытался использоватьorg.apache.servicemix.bundles.poi 3.9_2. Это также требуетdom4j поэтому я использовал предварительно обернутыйorg.apache.servicemix.bundles.dom4j но для этого требуется как минимум версия 1.0javax.xml.stream которую моя JVM / Felix OSGi объявляет как «единственную» версию0.0.0.1_007_JavaSE, Я исправил это вручную (безобразно), но затем застрял на другой зависимости.

Какой хороший способ?

Ответы на вопрос(1)

Ваш ответ на вопрос