[cdi-dev] New builders API

John D. Ament john.d.ament at gmail.com
Sat Apr 23 06:56:30 EDT 2016


Hey guys

Based on the last f2f I was in, I took an action item to look at how
applications can leverage the new builder methods/classes from this PR:
https://github.com/cdi-spec/cdi/pull/287

To do this, I took some existing OSS CDI extensions and converted parts to
use the new APIs instead of the old ones.

The results were iffy to be honest.  Here's some of the key issues I
noticed:

- AfterBeanDiscovery#addBean - vs AfterBeanDiscovery.addBean(Bean<?> bean)
In the latter, it's clearer to a developer which attributes are required vs
optional.  Builders typically use sensible defaults.  Maybe that was the
intention here, but I couldn't really get that sense when converting over.
It also wasn't clear what to do when done.  I suspect I just leave it, but
without some kind of closing "build()" or "done()" method, it becomes
ambiguous.

- Annotated*Configurator
TBH, I have no idea what I was configuring in this one at the first pass.
I started with a method.  I wanted to replace the method's annotations.  It
seemed like I could set that up using the configurator, but I ended up
having to do setAnnotated at the end anyways, so I'm not sure what the
configurator bought me.

The one nice thing I saw was the simpler to use lambda functions.  Being
able to stream through things like annotated method made the code much
cleaner.

For the open source code, I'll try to get some gists together that show the
changes.  Maybe there's something I'm missing, so wouldn't mind a second
set of eyes on the changes to see.

John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/cdi-dev/attachments/20160423/fff94436/attachment.html 


More information about the cdi-dev mailing list