Details

    • Release note not required for sub-tasks
    • Not Required

    Description

      The type produced by generic configuration point must be the type declared in generic configuration annotation.

      1. If we have the following generic configuration annotation:

      ACMEQueue.java
      @Retention(RUNTIME)
      @GenericType(MessageSystemConfiguration.class)
      @interface ACMEQueue {
          String name();
      }
      

      then the related configuration points must produce beans with the same type:

      MyMessageQueues.java
      class MyMessageQueues {
      
          @Produces
          @ACMEQueue("defaultQueue")
          MessageSystemConfiguration defaultQueue = new MessageSystemConfiguration();
      ...
      

      2. If several generic beans have the same set of qualifiers, then
      a) These generic beans should be marked as incorrect: "Several generic beans for the same generic type have the same set of qualifiers."
      b) In ambiguous injection points related to those generic beans, this statement should be added to the standard statement.

      3. If a bean is annotated with @GenericConfiguration(SomeType.class) where annotation type SomeType is not annotated with @GenericType, it is marked as incorrect "Annotation type mismatch: SomeType is not a generic configuration annotation.".
      4. If a generic configuration annotation is annotated with @GenericType(SomeGenericBean.class), it is marked with as incorrect: "Generic configuration types may not be generic beans.".

      Attachments

        Issue Links

          Activity

            People

              scabanovich Viacheslav Kabanovich (Inactive)
              alexeykazakov Alexey Kazakov
              Isaac Rooskov Isaac Rooskov (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: