Hi all,
me and Matej, we've already tried to explain some points in cdi/pull/287
discussion. Anyway, we're going to release Weld 3.0.0.Alpha16 (base on
2.0.Alpha4) later this week so that everyone can start playing with the
new API. And we'd like to prepare some simple examples to help people
get started as well.
Martin
Dne 23.4.2016 v 12:56 John D. Ament napsal(a):
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
_______________________________________________
cdi-dev mailing list
cdi-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/cdi-dev
Note that for all code provided on this list, the provider licenses the code under the
Apache License, Version 2 (
http://www.apache.org/licenses/LICENSE-2.0.html). For all other
ideas provided on this list, the provider waives all patent and other intellectual
property rights inherent in such information.