Ograniczone leki generyczne z CDI

Specyfikacja JSR-299 określa w §3.1:

Jeśli zarządzana klasa komponentu bean jest typem ogólnym, musi mieć zasięg @D niezależnie. Jeśli zarządzany komponent bean z parametryzowaną klasą komponentu bean deklaruje dowolny zakres inny niż @Dependent, kontener automatycznie wykrywa problem i traktuje go jako błąd definicji.

Oznacza to, że nie możesz tego zrobić:

@Named
@SessionScoped or @RequestScoped or similar
public class MyProducer<T> {...}

Jakie są techniczne powody tej decyzji?

Czy przypadkiem zostanie to naprawione w nadchodzącej wersji CDI?

Czy istnieje najlepsza praktyka do radzenia sobie z tym problemem?

Dziękuję Ci

EDYTOWAĆ - obejściem, którego często mogę użyć, jest wstrzyknięcie ogólnego komponentu POJO-bean do komponentu bean o wymaganym zakresie. Często, ale nie zawsze.

questionAnswers(2)

yourAnswerToTheQuestion