Sebastian Boschert created AMQ-5756:
---------------------------------------

             Summary: RAR declares dependency on slf4j-log4j, should declare 
dependency on slf4-api instead
                 Key: AMQ-5756
                 URL: https://issues.apache.org/jira/browse/AMQ-5756
             Project: ActiveMQ
          Issue Type: Bug
          Components: RAR
    Affects Versions: 5.11.1
            Reporter: Sebastian Boschert
            Priority: Minor


activemq-rar seems to declare a dependency on org.slf4j:slf4j-log4j12, which is 
the log4j binding. Because of that, the following two files end up inside the 
released JAR:

* slf4j-api-1.7.10.jar
* slf4j-log4j12-1.7.10.jar

This is problematic, because it enforces a logging framework on users of 
activemq-rar. I am using activemq-rar in a Glassfish JavaEE container and the 
correct binding would be slf4j-jdk14. However, because activemq-rar ships 
another binding, Glassfish sees the binding shipped with activemq-rar first on 
the classpath and therefore does not use the binding I want to use.

The slf4j manual clearly states:
{quote}Embedded components such as libraries or frameworks should not declare a 
dependency on any SLF4J binding but only depend on slf4j-api. When a library 
declares a transitive dependency on a specific binding, that binding is imposed 
on the end-user negating the purpose of SLF4J. Note that declaring a 
non-transitive dependency on a binding, for example for testing, does not 
affect the end-user.{quote}
(Source: http://slf4j.org/manual.html)

This rule is currently broken by activemq-rar.

Please remove the dependency on slf4j-log4j and replace it with a dependency on 
slf4j-api.

Thank you very much in advance for your efforts!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to