jsr342-experts@javaee-spec.java.net

[jsr342-experts] Re: CDI in Application Client Container

From: Antonio Goncalves <antonio.goncalves_at_gmail.com>
Date: Tue, 13 Nov 2012 09:05:34 +0100

Well, it's not a first class citizen because 1) nobody uses it 2) even the
TCK doesn't test it properly (in the EE spec CDI is mandatory in ACC).

It will become a first class citizen if we show it to the world (it's an
hidden part of EE really) and enphasis its usage. We have a "Web Profile",
why not having a "Client Profile". We might see other implementations
coming (like what happened with the Web Profile). And we will be able to
use the ACC in batches (there is a batch JSR that might be interested), CDI(
CDI 1.1 will not define a bootstrap API, let's standardise it in the
ACCthen, and bootstrapping
CDI in Java SE will come for free), JMS, JAX-WS.... anything that need a
small set of services really (injection, life cycle management...).

But Bill, why do you say "fighting a losing battle with ACC" ? Do you feel
no much effort is put in the ACC ?

Antonio


On Tue, Nov 13, 2012 at 12:34 AM, Bill Shannon <bill.shannon_at_oracle.com>wrote:

> We may be fighting a losing battle with ACC, but...
>
> In what ways do you think ACC is *not* a first class citizen container?
>
> Antonio Goncalves wrote on 11/12/12 00:58:
>
> Shall we investigate a bit more on the ACC ? Make it a first class citizen
> container ? Make sure CDI is implemented (as Pete was suggesting, it might
> not be in JBoss ACC implementation) ?
>
> Antonio
>
>
> On Mon, Nov 12, 2012 at 1:08 AM, Bill Shannon <bill.shannon_at_oracle.com>wrote:
>
>> Which is exactly the point of the ACC - to make things like this easy
>> and standard.
>>
>> Antonio Goncalves wrote on 11/11/2012 12:15 PM:
>>
>> Interesting ;o) Well, looks like the TCK needs some extra test cases
>> then ;o)
>>
>> ACC is not very well known and not used very often. It's a shame because
>> it could have been an easy way to bootstrap CDI in a Java SE environment
>> for example (and in a standard way)
>>
>> Antonio
>> Le 11 nov. 2012 21:07, "Bill Shannon" <bill.shannon_at_oracle.com> a écrit :
>>
>>> Sigh...
>>>
>>> It appears that we neither implemented nor tested support for CDI in the
>>> app client container. Clearly something we'll need to fix for EE 7, if not
>>> sooner.
>>>
>>> Bill Shannon wrote on 11/09/2012 04:47 PM:
>>>
>>> Yes, based on the Java EE 6 platform spec, I intended and expected CDI
>>> to work in the app client container.
>>>
>>> I'm trying to find out what we actually implemented and tested... :-)
>>>
>>> Antonio Goncalves wrote on 11/09/12 14:10:
>>>
>>> Ok, good to know. But that means that all ACC implementations should
>>> support it then ? As Pete said, looks like the JBoss one doesn't....
>>>
>>> I found the mail I sent to the GlassFish forum a couple of years ago
>>> about this topic (
>>> http://www.java.net/forum/topic/glassfish/glassfish/using-cdi-acc-se-environment).
>>> I'll be doing more test to make sure and fill a bug if needed.
>>>
>>>
>>> On Fri, Nov 9, 2012 at 10:57 PM, Bill Shannon <bill.shannon_at_oracle.com>wrote:
>>>
>>>> CDI is supposed to be supported in the app client container. If it's
>>>> not working, please file bugs.
>>>>
>>>> Antonio Goncalves wrote on 11/09/12 06:09:
>>>>
>>>> Hum.... for me it's just another container (EJB, Servlet & Client) so I
>>>> would expect the same services from CDI. ACC is not plain Java SE, it's a
>>>> container that gives you a small set of services, and that includes CDI (as
>>>> per Java EE specification).
>>>>
>>>> Bill/Linda, if CDI is not supported in ACC why not getting rid of it
>>>> in Figure EE.2-1 ? It's confusing.
>>>>
>>>> Antonio
>>>>
>>>>
>>>> On Fri, Nov 9, 2012 at 3:01 PM, Pete Muir <pmuir_at_bleepbleep.org.uk>wrote:
>>>>
>>>>> This also ties in to more general Java SE support for CDI IMO. I would
>>>>> probably prefer to get a general solution sorted, rather than a special
>>>>> case for ACC.
>>>>>
>>>>> On 9 Nov 2012, at 14:56, Antonio Goncalves wrote:
>>>>>
>>>>> > I like to use Producers and Alternatives so I can easily switch
>>>>> context. In the case of having CDI in ACC that would allow me to invoke
>>>>> different Web Serivces just by changing beans.xml
>>>>> >
>>>>> >
>>>>> > On Fri, Nov 9, 2012 at 2:44 PM, Pete Muir <pmuir_at_bleepbleep.org.uk>
>>>>> wrote:
>>>>> > It's not in the cdi tck so I doubt it is in jboss as.
>>>>> >
>>>>> > Nigel's point about scopes is very relevant.
>>>>> > On 9 Nov 2012 14:03, "Antonio Goncalves" <
>>>>> antonio.goncalves_at_gmail.com> wrote:
>>>>> > I'm not an ACC expert, but I do use it once in a while. But to be
>>>>> honest, I don't know why it doesn't work. If you look at the EE spec (eg.
>>>>> EE 7 - Figure EE.2-1) you see that CDI & DI is in the ACC. But on the other
>>>>> hand, the CDI 1.0 spec (12.1. Bean archives) says "The container is not
>>>>> required to support application client jar bean archives." I tried several
>>>>> time with the appclient from GlassFish, and CDI just doesn't work (wonder
>>>>> if JBoss ACC allows CDI or not). The "is not required" part is frustrating.
>>>>> >
>>>>> > Antonio
>>>>> >
>>>>> >
>>>>> > On Fri, Nov 9, 2012 at 12:48 PM, Pete Muir <pmuir_at_bleepbleep.org.uk>
>>>>> wrote:
>>>>> > I'm not an expert in the ACC, so would need a ACC expert who knows
>>>>> CDI to help us define the behavior. Interested Antonio?
>>>>> >
>>>>> > On 9 Nov 2012, at 12:41, Antonio Goncalves wrote:
>>>>> >
>>>>> > > Hi all,
>>>>> > >
>>>>> > > Correct me if I'm wrong but I haven't seen any discussion on this
>>>>> topic. In Java EE 6 CDI doesn't work in ACC. Wouldn't it be useful to add
>>>>> it in EE 7 ?
>>>>> > >
>>>>> > > A use case I'm working on at the moment is that I have a Java SE
>>>>> class (running in ACC) that injects a web service reference with
>>>>> @WebServiceRef. With CDI enabled I could produce this reference and just
>>>>> @Inject it.
>>>>> > >
>>>>> > > What do you think ?
>>>>> > >
>>>>> > > --
>>>>> > > Antonio Goncalves
>>>>> > > Software architect and Java Champion
>>>>> > >
>>>>> > > Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
>>>>> >
>>>>> >
>>>>> >
>>>>> >
>>>>> > --
>>>>> > Antonio Goncalves
>>>>> > Software architect and Java Champion
>>>>> >
>>>>> > Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
>>>>> >
>>>>> >
>>>>> >
>>>>> > --
>>>>> > Antonio Goncalves
>>>>> > Software architect and Java Champion
>>>>> >
>>>>> > Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Antonio Goncalves
>>>> Software architect and Java Champion
>>>>
>>>> Web site <http://www.antoniogoncalves.org> | Twitter<http://twitter.com/agoncal>|
>>>> LinkedIn <http://www.linkedin.com/in/agoncal> | Paris JUG<http://www.parisjug.org> |
>>>> Devoxx France <http://www.devoxx.fr>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Antonio Goncalves
>>> Software architect and Java Champion
>>>
>>> Web site <http://www.antoniogoncalves.org> | Twitter<http://twitter.com/agoncal>|
>>> LinkedIn <http://www.linkedin.com/in/agoncal> | Paris JUG<http://www.parisjug.org> |
>>> Devoxx France <http://www.devoxx.fr>
>>>
>>>
>>>
>>>
>>
>
>
> --
> Antonio Goncalves
> Software architect and Java Champion
>
> Web site <http://www.antoniogoncalves.org> | Twitter<http://twitter.com/agoncal>|
> LinkedIn <http://www.linkedin.com/in/agoncal> | Paris JUG<http://www.parisjug.org> |
> Devoxx France <http://www.devoxx.fr>
>
>
>


-- 
Antonio Goncalves
Software architect and Java Champion
Web site <http://www.antoniogoncalves.org> |
Twitter<http://twitter.com/agoncal>|
LinkedIn <http://www.linkedin.com/in/agoncal> | Paris
JUG<http://www.parisjug.org> |
Devoxx France <http://www.devoxx.fr>