[cdi-dev] Managing Dependent Scoped Beans

John D. Ament john.d.ament at gmail.com
Sun May 15 10:14:42 EDT 2016

Hey guys

Seems like we have some issues in JIRA all focused on managing the
lifecycle of Dependent scoped beans.  It also seems like we have many
differing opinions about how to manage them.

- Martin raised a PR to add a release() method to Instance to help destroy
a dependent bean https://github.com/cdi-spec/cdi/pull/286
- I raised a PR https://github.com/cdi-spec/cdi/pull/289 to update the spec
to clarify how to manage a dependent scoped bean.

Right now, it seems that the big disagreement is whether Instance.destroy()
can destroy objects not created by it (the case being around the CDI
utility class, being an impl of Instance).  I'm currently heavily against
Martin's proposed changes, but want to get input from others on the group
to understand their perspective.

- Does the spec require destroy() to be called only on instances that it
created?  When I read 5.6.1 the only requirement I see is that it has to be
a dependent scoped bean.  Note when I ask this I'm asking from the spec
perspective, its a different problem if there's some issues with
implementations following suite (I would imagine there needs to be some
shared global registry of dependent scoped beans for this to work).

- Do we want two methods that effectively do the same thing?  I don't see a
strong difference between the two.

On the flipside, my change is more a spec clarification.  I'm thinking more
now that it belongs as a reword of 5.6.1 to clarify how to use destroy() on
dependent beans, rather than where I put it.  I think realistically we have
all of the tools needed to manage the lifecycle of these classes, just need
to clarify them for people to use.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/cdi-dev/attachments/20160515/1e117add/attachment.html 

More information about the cdi-dev mailing list