3 Replies Latest reply on May 14, 2013 5:03 AM by Lukáš Fryč

    Is RichFaces 5 BOM Unnecessary?

    Lukáš Fryč Master

      As of RichFaces 5, Maven users will need to provide just org.richfaces:richfaces:jar dependency in their POM.


      This dependency will bring other (mandatory) dependencies transitively: guava, cssparser, sac.




      The question is what role richfaces-bom plays in this constelation:


      • manages versions of mandatory dependencies richfaces, guava, cssparser and sac
        • it's not necessary, since they are brought transitively and in case of conflict, people needs to resolve it at their own
      • manages versions of optional dependencies
        • atmosphere, cache providers (oscache, jbosscache, ehcache)
        • in fact this is the only reason why it is beneficial
          • it helps when people upgrade to newer RichFaces, so their optional dependencies are automatically updated
      • but IMO generally project-level POMs should manage just versions of artifacts they provide (which is richfaces.jar only)
        • there are product level POMs which can manage set of dependencies (e.g. JDF BOMs)


      What do you think, is it good practice to provide RichFaces BOM which manages third-party dependencies?

        • 1. Re: Is RichFaces 5 BOM Unnecessary?
          Marek Novotny Master

          if Richfaces dependencies are really just org.richfaces:richfaces:jar and bunch of optional dependencies it could be a kind of a useless. But the point of optional dependencies is important, because if you know that only these versions are working and newer or older could bring different issues, I would vote for RF BOM ;-).

          • 2. Re: Is RichFaces 5 BOM Unnecessary?
            Brian Leathem Master

            +1 for bringing this issue up Lukas.


            To manage the push dependencies, we could introduce a richfaces-push-depchain.  This would transitively bring in the atmosphere dependencies of the correct version.


            The cache providers is something we were already talking about spinning out as a separate jar (RF-12953) - these versions could be managed transitively there too.



            • 3. Re: Is RichFaces 5 BOM Unnecessary?
              Lukáš Fryč Master

              As we have discussed it with a Brian little bit further,


              we had following points:


              • Push dependencies
                • should we stay consistent between maven and non-maven users?
                  • it is not necessary, each of the build systems have different perspective
                • we will allow to bring the Push dependencies using depchain mechanism
                  • maven users specify richfaces.jar, richfaces-push.jar (or richfaces-push-depchain.pom) dependencies
                • tracker here: https://issues.jboss.org/browse/RF-12974
              • Cache providers version management
                • we will leave a richfaces-bom around for a while to manage those dependencies
              • the JDF's -with-richfaces BOM can manage dependencies
                • brings JavaEE BOM
                • manage version of richfaces.jar, richfaces-push.jar and cache providers