[cdi-dev] Notes from CDI EG 28/08/2012

Pete Muir pmuir at redhat.com
Tue Aug 28 10:11:35 EDT 2012

Joe Bergmark

We reviewed the status of the issue Joe had worked on:

* Close CDI-235 as a dupe of CDI-219 (done)
* CDI-180 & CDI-223 Joe is going to strengthen the text that requires that a request context that is not initialized by a call, should not be ended by that call (Action Joe to send pull request)

Pete Muir

* CDI-138, allow definition of qualifiers and interceptor bindings using annotated types, to allow @Nonbinding to be added programmatically to member values with a proposal at https://github.com/jboss/cdi/pull/41
   - Discussed whether it's better to fire a PAT (or another similar event?) for annotations, allowing them to be modified. Mark to file a new issue for this feature request. We need to collect use cases.
   - Should be able to apply @Nonbinding at annotation level (https://issues.jboss.org/browse/CDI-253)
   - Hold on applying this issue until we explore whether should fire an event to modify annotations
* CDI-218 Allow use of WEB-INF/classes/META-INF/beans.xml with a proposal at https://github.com/jboss/cdi/pull/74
   - Apply (done)
* CDI-214, Remove BeanManager from Servlet context, a revert of CDI-73 with a proposal at https://github.com/jboss/cdi/pull/74
   -Apply (done)
* CDI-177 Better handling of @Named defaults for qualifiers with a proposal at https://github.com/jboss/cdi/pull/77/files
   - Joe raised an issue that we will break existing CDI apps who have explicitly or implicitly (e.g. via a producer method) the same as a now defaulted qualifier
   - Mark thinks it's spec'd this way already, but Martin and I think it's not. Needs clarification!
   - Pete to investigate, but probably have to special case it that the name is only defaulted if not explicitly specified elsewhere or something
   - hold for now
* CDI-187 Interceptors and decorators should be required to be passivation capable, not serializable, with a proposal athttps://github.com/jboss/cdi/pull/78
   - Apply (done)
* CDI-234 Handle array and annotation valued members on qualifiers, with a proposal at https://github.com/jboss/cdi/pull/79
   - Definitely do this, removes a wart
   - Concern that JDK defined equality of arrays is not ideal in many cases for the way people use arrays on qualifiers
   - discussed a declarative approach (e.g. @Unordered)
   - discussed a SPI approach (user can specify a comparator to use)
   - discussed that we should expose a BeanManager.compare(qualifier1, qualifier2) type method that applys rules (https://issues.jboss.org/browse/CDI-223)
   - group preferred SPI approach
   - Pete to draft a proposal for SPI approach
* CDI-183 Require CDI.current() to work in Java EE servers with a proposal at https://github.com/jboss/cdi/pull/85
   - Update to require it to work only between BBD and BS (Pete)
* CDI-184 Add CDI.setCDIProvider() for environments where service providers don't work e.g. OSGi with a proposal at https://github.com/jboss/cdi/pull/86
   - Apply (done)
* CDI-165 Encourage custom context implementations to fire events when they are initialized and destroyed, with a proposal at https://github.com/jboss/cdi/pull/87
   - Apply (done)
* CDI-43 Adding filters to extensions to limit when they are called, with a proposal at https://github.com/jboss/cdi/pull/88
   - Update proposal to require considering meta-annotations as things the extension is interested in  (Pete) and then then apply
* CDI-245 & CDI-249 Discussion how extensions work, and what can be injected into them, with a proposal at https://github.com/jboss/cdi/pull/89 
   - Update proposal with latest discussion on issue, and also add an IllegalStateException if BeanManager.fireEvent() is called with an EventType that is assignable to a container lifecycle event type

Mark Struberg

* CDI-60, @Veto etc.
   - Remove @Requires
   - Discussed that @Disabled might still be useful, to declaratively disable a bean, put still run it's PAT
   - Mike advocated very strongly in favor of @Vetoed which stops a class from passing through @PAT at all
   - Write up proposal and seek community feedback (Pete)

* CDI-228
   - Went through the issue and all agreed that the most important thing is to keep the semantics of all injection types the same by default
   - Proposed adding a @Throwaway (name tbc!) parameter annotation which indicates to the container that an injected bean has a truncated lifecycle, and is destroyed when the method/constructor invocation ends. This allows non-serializables beans (e.g. factories) to be injected into serializable beans. It also allows a dependent bean graph which must be kept around (to call a @PreDestroy somewhere) to be got rid of early. Mark to write up a proposal.

More information about the cdi-dev mailing list