5 Replies Latest reply on Nov 4, 2010 3:51 AM by Enrique Ruiz

    CGLIB v2.1.3, CXF and Spring

    Jeremie Brebec Newbie



      I'm using Fuse ESB 4.3 and i have some conflicts between cxf, spring and cglib, when i install hibernate :


      - The feature "jpa-hibernate" install cglib v2.2.0

      - Fuse ESB is shipped with cglib v2.1.3

      - CXF declare two optional dependencies with cglib [2.1.3,2.2.0) and spring [2.5,4)

      - Spring declare an optional dependency with cglib [2.1.3,3)


      So when installing Hibernate, Spring resolve his optional dependency to cglib with version 2.2.0. and therefore cxf can't resolve his dependency to spring. A lot of bundles using cxf and spring fail with a "java.lang.NoClassDefFoundError: org/springframework/beans/factory/support/ManagedSet"


      A simple workaround is to uninstall cglib v2.1.3 after installing hibernate, and then refresh the spring beans bundle, but "sometimes", when i restart Fuse ESB, the old version of cglib is automatically installed again.


      In my opinion, it's a regression of this JIRA issue https://issues.apache.org/jira/browse/CXF-2773, after upgrading Fuse ESB to Spring 3 ?


      So my question : can i "blacklist" cglib v2.1.3 ?

      I suppose that a proper solution should be to patch cxf to use cglib [2.1.3,3) ?