Help

Built with Seam

You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.

Work in progress list of enhancements to for the CDI 1.0 maintenance release and CDI 1.1.

Clarify lifecycle of resources

The spec is underdefined in section 7.3.6. Various clarifications are needed, including that:

  • the instance of EntityManager associated with a resource declaration is the same instance that would be injected using @PersistenceContext, i.e. the JPA transaction-scoped container-managed persistence context reference,
  • stateful EJB references are not automatically destroyed by the container (the app must call the @Remove method explicitly), and
  • EJB and web service references are truly @Dependent scoped (instance per injection)

We should remove this sentence: When the destroy() method is called, the container discards this internal reference and performs any cleanup required of state associated with the client or transaction.

@DataSourceDefinition and @Alternative

EE6 introduced the @DataSourceDefinition annotation without telling anyone. We should say that if it is used on a class annotated @Alternative, then it is only activated if the alternative is enabled.

Support injection of FacesContext

We could support use of @Inject FacesContext fc as an alternative to FacesContext.getCurrentInstance(). This does actually save typing since you don't have to keep calling getCurrentInstance() in each method.

Support injection of servlet contexts

Built-in injection of HttpServletRequest, HttpSession and ServletContext has been requested by users. I'm kinda lukewarm on this idea, since we're trying to get away from the use of direct access to these objects. OTOH, it is very helpful for framework developers, I suppose.

Conversations for servlets

We should extend the built-in @ConversationScope to servlets. The big challenge here is figuring out the propagation rules.

Conversation context active in servlet filters

Currently the conversation context is required to be active only from within the faces servlet. You can't (portably) access it from a servlet filter.