Uploaded image for project: 'CDI Specification Issues'
  1. CDI Specification Issues
  2. CDI-471

Support repeating qualifiers

    XMLWordPrintable

Details

    Description

      As Java 8 provides improved support for repeating annotations, it would be valuable to percolate that support into the CDI typesafe resolution mechanism.

      For example, one could write:

      @Qualifier
      @Repeatable(ContextNames.class)
      public interface @ContextName {
          String value;
      }
      
      public @interface ContextNames {
          ContextName[] value();
      }
      

      And then:

      @ContextName("ctx1")
      class CamelContext1 {
      }
      
      @ContextName("ctx2")
      class CamelContext2 {
      }
      
      @Uri("")
      @Produces
      @ContextName("ctx1")
      @ContextName("ctx2")
      static ProducerTemplate producerTemplate(InjectionPoint ip, @Any Instance<CamelContext> instance) {
      }
      

      That enables to use annotations both as a CDI qualifiers and a metadata providers while still be relying on standard typesafe resolution mechanism during the deployment phase to detect unsatisfied or ambiguous dependencies.

      Support of the annotation container / list for backward compatibility could be provided as well.

      Attachments

        Issue Links

          Activity

            People

              meetoblivion_jira John Ament (Inactive)
              astefanu@redhat.com Antonin Stefanutti
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: