Uploaded image for project: 'Weld'
  1. Weld
  2. WELD-1711

com.google.common package imports should not be optional

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 2.2.5.Final
    • 2.1.2.Final, 2.2.4.Final
    • OSGi support
    • None

      In the weld-osgi-bundle manifest, all imports of Guava packages (com.google.common.*) are marked as optional.

      This seems to be a left-over of Weld 1.x.

      As far as I can see, the dependency is mandatory in Weld's core logic, so the optional directive should be deleted from the manifest.

      The impact is more than cosmetic:

      Weld 2.2 imports javax.annotation 1.2 whereas Guava does not specify a version for javax.annotation.

      Running on Vanilla Equinox 3.9.1 where javax.annotation is exported by the system bundle, you may get a ClassNotFoundException, since Guava gets wired to javax.annotation 0.0 from the system bundle and Weld does not get wired to the optional Guava dependency at all due to a package uses conflict for javax.annotation.

      Making the Guava dependency mandatory would either lead to a consistent wiring for Guava, or at least to a resolution error instead of a runtime exception. The user must then fix the resolution problem by manually removing javax.annotation from the list of system packages.

              rhn-engineering-jharting Jozef Hartinger
              hwellmann.de Harald Wellmann (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: