[
https://issues.jboss.org/browse/CDI-721?page=com.atlassian.jira.plugin.sy...
]
Martin Kouba commented on CDI-721:
----------------------------------
[~struberg]
bq. ...we already have it: {{getAnnotatedType()}}
This is not a "terminal" method. You don't even need to call it at all. See
also the example in my previous comment - what happens with the configurator reference
after I call {{setAnnotatedType()}}?
bq. What if some extension calls setAnnotatedType multiple times?
Yes, this is how it is defined.
bq. But if the Extension is well built ...
We cannot rely on this.
bq. Please chedk how we did it in OWB...
I will do.
[~rmannibucau]
bq. This is like a builder pattern based on immutability...
It's actually not a builder, that's why we call it configurators...
bq. It is beneficial for developers...
This is disputable. If we don't cover all possible corner cases properly it could be
even contra productive.
configureAnnotatedType vs setAnnotatedType restrition is unecessarily
strict
----------------------------------------------------------------------------
Key: CDI-721
URL:
https://issues.jboss.org/browse/CDI-721
Project: CDI Specification Issues
Issue Type: Bug
Components: Portable Extensions
Affects Versions: 2.0 .Final
Reporter: Mark Struberg
{noformat}
Any observer of this event is permitted to wrap and/or replace the AnnotatedType by
calling either setAnnotatedType() or configureAnnotatedType(). If both methods are called
within an observer notification an IllegalStateException is thrown.
{noformat}
This rule is way too strict without any real reason.
Any CDI container must support that both methods are being called on the same event
payload anyway. Because we did not forbid that observerMethod1 invokes setAnnotatedType
and observerMethod2 uses configureAnnoatedType. And that's good that way, otherwise
the pluggability would be lost.
We should delete this sentence without any substitution.
The same applies to similar configurator methods like configureBeanAttributes, etc.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)