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

Matej Novotny (JIRA) issues at jboss.org
Mon Aug 20 05:46:01 EDT 2018


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

Matej Novotny commented on CDI-627:
-----------------------------------

I see no reason to move this discussion anywhere - this ticket is solved and deals with CDI 2.0.
Not that there was any _discussion_ anyway, last comment was 17th Nov 2016 until recently.

bq. The section in the CDI-1.2 spec is a backward incompatible wording and thus void per the JCP rules.

That's a bold statement; I wonder if it is the only such change we would find there.
Anyhow, it is a bit late to discuss what should or should not have been in CDI 1.2 as that is no longer developed.
Now we just have to move onwards and drag the legacy behind us :-)

> 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.5.0#75005)


More information about the cdi-dev mailing list