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

Choose a dependency injection library for SIS

    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • None
    • None
    • Utilities
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: