Martin Kouba you're right, that depends on the target environment. In SE for instance, the end-user compiles against one artifact for the specifications (for example javax.interceptor:java.interceptor-api) and want to test its project against Weld (that depends on org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.2_spec) and OpenWebBeans (that depends on org.apache.geronimo.specs:geronimo-interceptor_1.2_spec). That generally leads to having the same packages / classes multiple times in the classpath.
For the binary compatibility issues, I personally never faced any but I never tried running Weld against the Geronimo artifacts. I usually execute OpenWebBeans against javax.* artifacts while it depends on org.apache.geronimo.specs:.* versions as provided scope and never faced any compatibility issues. Still that is based on my personal experience and is not a formal analysis.
|