Uploaded image for project: 'Spatial Information Systems'
  1. Spatial Information Systems
  2. SIS-102

Choose a dependency injection library for SIS

    XMLWordPrintableJSON

    Details

    • Type: Task
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Utilities
    • Labels:
      None

      Description

      We need to choose a dependency injection mechanism (CDI). Johann Sorel provided the following analysis:

      There is basically two overlapping Java Specification Requests (JSR):

      • JSR-299 is the complete CDI version (cdi-api)
      • JSR-330 can be seen as a lightweight version of JSR-299. Whether this is an improvement appears questionable.

      JSR-330 provides only a limited amount of injection possibilities and does not provide discovery mechanism. Consequently it would not be a replacement for our current usage of META-INF/services entries. Google Guice 3 is a JSR-330 implementation.

      JSR-299 is more complete and provides a discovery mechanism. Weld 1 is the reference implementation.

      The next CDI version will be JSR-346, available as a draft at the time of writing. Weld 2 is aimed to be the reference implementation.

      Recommendation is to wait for JSR-346. The difference with JSR-299 seems small. This new JSR aims to brings "updates and clarifications to CDI 1.0 along much requested features".

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                desruisseaux Martin Desruisseaux
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: