Определение сторонней библиотеки в Wildfly как модуля без включения его зависимостей
Я занимаюсь разработкой веб-приложения для Wildfly 9 с использованием довольно стандартного стека (Java 8, JAX-RS, Hibernate и т. Д.).
Теперь мне нужно использовать стороннюю библиотеку, которая имеет различные зависимости от версии библиотеки Log4j и т. Д. Поскольку я не хочу анализировать, совместимы ли эти зависимости с библиотеками в текущем веб-приложении, я подумал, что это будет хорошая идея определить модуль в Wildfly. Что-то вроде
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="foo.md">
<resources>
<resource-root path="foo-1.0.jar" />
<resource-root path="log4j-1.2.12" />
<resource-root path="concurrent-1.0.jar" />
<!-- etc -->
</resources>
</module>
Тогда я мог бы включить модуль, используя jboss-deploy-structure.xml
<?xml version="1.0"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<dependencies>
<module name="foo.md" >
<imports>
<include path="foo" />
<exclude path="bar" />
</imports>
</module>
</dependencies>
</deployment>
Таким образом, я мог бы изолировать зависимости сторонней библиотеки и не должен анализировать, совместимы ли они с моим приложением, без использования (imo heavy-weight) подходов, таких как OSGi, которые потребовали бы больше изменений в приложении или ожидания Jigsaw.
Это правильный подход?