ubstituição @CDI para @ ManagedProperty

Sou muito novo no CDI e no JSF e estou tentando converter algum código do mostruário do Richfaces 4 para usar CDI em vez de anotações JS

Entendo que posso usar @Named para substituir @MangedBean e @Inject para substituir @ManagedProperty. Mas estou tendo alguns problemas. Estou tentando converter o exemplo da árvore Richfaces especificamente.

Fiz as seguintes alterações e sei que isso não está correto; portanto, não use isso:

//@ManagedBean
//@ViewScoped
@Named
@SessionScoped
public class TreeBean implements Serializable {
    private static final long serialVersionUID = 1L;
//    @ManagedProperty(value = "#{cdsParser.cdsList}")
//    private List<CDXmlDescriptor> cdXmlDescriptors;
    @Inject
    private Instance<CDXmlDescriptor> cdXmlDescriptors;
// I also Tried :
//  @Inject
//    private CDParser cdsParser;
//    private List<CDXmlDescriptor> cdXmlDescriptors = cdsParser.getCdsList();

........

Em seguida, adicionei (e não tenho certeza se isso é necessário):

@Named
@SessionScoped
public class CDXmlDescriptor implements Serializable { ...

e alterado:

//@ManagedBean(name = "cdsParser")
@Named("CDParser")
//@Named
@SessionScoped
public class CDParser implements Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = 3890828719623315368L;
    @Named
    private List<CDXmlDescriptor> cdsList;

Não consigo descobrir a maneira correta de substituir @ManagedProperty (value = "# {cdsParser.cdsList}") usando CDI?

questionAnswers(2)

yourAnswerToTheQuestion