[ http://jira.codehaus.org/browse/DISPL-646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=204513#action_204513 ]
Jeff Jensen commented on DISPL-646: ----------------------------------- Thanks for the response. If all displaytag uses is JCL, then the slf4j and related deps are not necessary and should be removed. It is up to the user to declare if they want slf4j or other logging libs (some user may even want JCL!). Currently, displaytag is forcing those deps and specific versions on client apps. It also causes an slf4j binding error. Not only is it declaring slf4j and the JCL converter, but a log4j one as well. My guess is the log4j one is there so your tests have a log implementation for the messages? If that is correct, that is why I suggested changing any such as the log4j dep to test scope. The purpose of JCL or SLF4j is to allow users to choose the implementing logging framework. The purpose of dependencies is to declare which ones are required to use the product/framework. The only required logging deps for displaytag, based on your note, is JCL. If there are uses of some SLF4j in displaytag, then the only other required dep is slf4j-api. The other deps are for users to choose to use or not - which framework(s) they want to handle the messages. Hopefully this is clearer why this is a displaytag POM configuration error - exposing unneeded (possibly conflicting) deps and causing a slf4j binding error. > POM config exposes unneeded dependencies to client apps > ------------------------------------------------------- > > Key: DISPL-646 > URL: http://jira.codehaus.org/browse/DISPL-646 > Project: DisplayTag > Issue Type: Bug > Components: Build/distribution > Affects Versions: 1.2 > Reporter: Jeff Jensen > > DisplayTag transitive dependencies cause erroneous configuration on client > projects. Specifically, DisplayTag should depend on only slf4j-api in the > compile scope, resulting in exposing only that required dependency to client > apps, and the slf4j-log4j12 and jcl104-over-slf4j dependencies should be > removed (or changed to test scope if wanted for local testing). > slf4j-api would be a new direct dependency to DisplayTag. It currently is > transitively brought in through the slf4j-log4j12 direct dependency. > I noticed this because, after just adding DisplayTag to my web app, SLF4J > gave error messages on multiple SLF4J bindings on app startup - one binding > is correctly from my POM/app config (found in logback-classic) and the other > is erroneously exposed transitively from DisplayTag's dependency > slf4j-log4j12. > See http://www.slf4j.org/codes.html#multiple_bindings for the SLF4J error. > The root cause is the DisplayTag POM exposing slf4j-log4j12 and > jcl104-over-slf4j dependencies. Client apps do not need those specifically, > e.g. slf4j-log4j12 is not needed with Logback. > This dependency configuration approach also forces client apps to have log4j > on the classpath transitively from slf4j-log4j12. We do not use Log4J. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ displaytag-devel mailing list displaytag-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/displaytag-devel