[cdi-dev] [JBoss JIRA] (CDI-627) fix wording regression for beans.xml alternative check introduced in 1.2

Emily Jiang (JIRA) issues at jboss.org
Thu Nov 17 12:30:00 EST 2016


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

Emily Jiang edited comment on CDI-627 at 11/17/16 12:29 PM:
------------------------------------------------------------

As Mark has fixed the issue reported by Tomas, can this PR #309 be merged and then this issue can be fixed by Weld? [~antoinesabot-durand]


was (Author: emilyj):
As Mark has fixed the issue reported by Tomas, can this PR #309 be merged and then this issue can be fixed by Weld.

> fix wording regression for beans.xml alternative check introduced in 1.2
> ------------------------------------------------------------------------
>
>                 Key: CDI-627
>                 URL: https://issues.jboss.org/browse/CDI-627
>             Project: CDI Specification Issues
>          Issue Type: Bug
>          Components: Concepts
>    Affects Versions: 1.2.Final
>            Reporter: Mark Struberg
>            Assignee: Mark Struberg
>             Fix For: 2.0 .Final
>
>
> My scenario is the following:
> I have an @Alternative MockMailService class which should only be used during testing to not send out 5k mails to customers and employees when running the unit and integration test suite.
> {code}
> @Alternative
> @ApplicationScoped
> @Exclude(ifProjectStage=Production.class)
> public class MockMailService implements MailService {...}
> {code}
> Of course I only need to activate it in beans.xml:
> {code}
> <beans>
>   <alternatives>
>     <class>org.acme.MockMailService</class>
>   </alternatives>
> </beans>
> {code}
> This is perfectly fine in CDI 1.0 but might be interpreted as not be allowed in the CDI 1.2 wording paragraph 5.1.1.2. "Declaring selected alternatives for a bean archive".
> Please note that we introduced a check in CDI 1.0 purely to help the customer eagerly detect possible wrong configuration. E.g. if he simply has a typo in the classname. It was _not_ intended to restrict useful use cases!
> What the intention was: all is fine IF one of
> * There exists a class T with the given name
> * That class T (or a contained producer field or producer method) is annotated with @Alternative
> * There is a Bean<T> with isAlternative() == true



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the cdi-dev mailing list