When the pom.xml declares an exclusion for a library, this exclusion is not taken into account when the wildfly-swarm-manifest.yaml file is created. This can cause library conflicts at runtime.
The slf4j logging framework supports different underlying logging systems, e.g. log4j or logback; however, only one of the corresponding binding jar files is allowed to be present at runtime.
When a Thorntail project uses the slf4j logging framework, declares a direct dependency on one of the bindings, and declares a dependency on a 3rd party library (e.g. Zookeeper) which itself declares a dependency on another binding, this will lead to multiple bindings being present at runtime. The 3rd party library should normally not declare that dependency, but if it does, the only solution is to add an exclusion; however, this is ignored when the wildfly-swarm-manifest.yaml file is created, so the slf4j system complains at runtime about duplicate bindings.
The problem has been introduced with commit 8c53ada1f65a33df88f4a719a4137b135a93eeea.