[cdi-dev] [JBoss JIRA] (CDI-721) configureAnnotatedType vs setAnnotatedType restrition is unecessarily strict

Mark Struberg (JIRA) issues at jboss.org
Wed Jan 31 02:56:00 EST 2018


    [ https://issues.jboss.org/browse/CDI-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13526408#comment-13526408 ] 

Mark Struberg commented on CDI-721:
-----------------------------------

[~manovotn] In OWB we still return the same instance of the configurator. This is perfectly solvable.
And no, I didn't avoid to answer Martins question. 
Whether a user manipulates the AnnotatedType via setAnnotatedType  or configureAnnotatedType MUST make absolutely no difference.
By acknowledging that we can further safely assume that both ways should be interchangeably from a user pov.
As shown with the setAnnotatedType: whatever happens as last step will be the full and only truth. Any AT change inbetween - which is not being wrapped - will be ultimately lost. That's the same with setAnnotatedType and I see no way nor reason to change this for configureAnnotatedType.

Mathematically speaking: if B is an inclusive superset of A then we can widen our solution from A to B and ensure 100% backward compatibility.

> 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)


More information about the cdi-dev mailing list