[cdi-dev] bean archives

Emily Jiang emijiang6 at googlemail.com
Sun May 3 16:44:41 EDT 2015


I have a further thought on this. If we use section 5, a module is the unit
of bean archive. All jars on the module's classpath and web-inf\lib (for
war) are merged together to form a bean archive. This maintains backward
compatibility but implicit bean archives are not useful as the archives are
too coarse-grained.

If we use section 12, each jar is a bean archive. In this way, the implicit
bean archives are fully utilised. However, this breaks backward
compatibility with cdi 1.0. In a EE module, all classpath jars and
web-inf\lib jars are treated bean archives pending scanning. However, if
they don't have bean defining annotations, they are excluded from the bean
archives. Hence some injection may fail to resolve. This change needs to go
to CDI 2 as it introduces backward incompatible changes.

In light of this, section 5 should be used. Thougths?

On Sat, May 2, 2015 at 11:20 PM, Emily Jiang <emijiang6 at googlemail.com>
wrote:

> I agree with Mark. I am confused about section 5 and section 12. Weld-2
> leaves the work of specifying the bean archive to the integrator. I am
> wondering how the new version of app server using Weld-2 can pass the CDI
> 1.1/1.2 CTS at all if the integrator creates its bean archives based on
> section 12.
>
> I am guessing CDI 1.1/1.2 cts, the updated version of CDI 1.0(?),  is
> based on section 5. Can someone confirm? The spec needs to be updated to
> remove the conflict between section 5 and section 12.
> ---------- Forwarded message ----------
> From: Emily Jiang <emijiang6 at googlemail.com>
> Date: Sat, May 2, 2015 at 10:21 PM
> Subject: Re: [cdi-dev] bean archives
> To: Mark Struberg <struberg at yahoo.de>
>
>
> I agree with Mark. I am confused about section 5 and section 12. Weld-2
> leaves the work of specifying the bean archive to the integrator. I am
> wondering how the new version of app server using Weld-2 can pass the CDI
> 1.1/1.2 CTS at all if the integrator creates its bean archives based on
> section 12.
>
> I am guessing CDI 1.1/1.2 cts, the updated version of CDI 1.0(?),  is
> based on section 5. Can someone confirm? The spec needs to be updated to
> remove the conflict between section 5 and section 12.
>
> On Sat, May 2, 2015 at 3:47 PM, Mark Struberg <struberg at yahoo.de> wrote:
>
>> Actually the rules are still not clear. Section 5 and 12 contradict each
>> other. The EE6 RI, JBossAS6 and TomEE and WAS did behave like in section 5
>> (1 BDA per ee-module) whereas Weld-2 behaves like in section 12.
>>
>> LieGrue,
>> strub
>>
>>
>>
>>   On Saturday, 2 May 2015, 10:13, Antoine Sabot-Durand <
>> antoine at sabot-durand.net> wrote:
>>
>>
>>
>> Hi Emily,
>>
>> The rules) apply to each jar (archive). There is no merging, thus an app
>> can contain three types of archives :
>> Non bean archives,
>> Implicit bean archives,
>> Explicit bean archives.
>>
>> Antoine Sabot-Durand
>>
>>
>> Le 1 mai 2015 à 23:03, Emily Jiang <emijiang6 at googlemail.com> a écrit :
>>
>>
>> I have a question on bean archives.
>>
>> For the jars under web-inf\lib, are they individual bean archives or they
>> should be merged   with web-inf\classes files and use the beans.xml under
>> web-inf\ to form one bean archive?
>>
>>
>> If they are merged together to form one bean archive, what will happen if
>> they have their own beans.xml under Meta-inf dir?
>>
>> Below is the what spec says, but it does not mention the jar under
>> web-inf\lib. The spec should make this situation clear.
>>
>> In the CDI1.2 spec:
>> When determining which archives are bean archives, the container must
>> consider:
>> • Library jars, EJB jars or application client jars
>> • The WEB-INF/classes directory of a war
>> • Directories in the JVM classpath
>> The container is not required to support application client jar bean
>> archives.
>> A Java EE container is required by the Java EE specification to support
>> Java EE modules. Other
>> containers may or may not provide support for war, EJB jar or rar bean
>> archives.
>> The beans.xml file must be named:
>> • META-INF/beans.xml , or,
>> • in a war, WEB-INF/beans.xml or WEB-INF/classes/META-INF/beans.xml.
>>
>>
>>
>> --
>> Thanks
>> Emily
>> =================
>> Emily Jiang
>> ejiang at apache.org
>>
>> _______________________________________________
>> cdi-dev mailing list
>> cdi-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/cdi-dev
>>
>> Note that for all code provided on this list, the provider licenses the
>> code under the Apache License, Version 2 (
>> http://www.apache.org/licenses/LICENSE-2.0.html). For all other ideas
>> provided on this list, the provider waives all patent and other
>> intellectual property rights inherent in such information.
>>
>>
>> _______________________________________________
>> cdi-dev mailing list
>> cdi-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/cdi-dev
>>
>> Note that for all code provided on this list, the provider licenses the
>> code under the Apache License, Version 2 (
>> http://www.apache.org/licenses/LICENSE-2.0.html). For all other ideas
>> provided on this list, the provider waives all patent and other
>> intellectual property rights inherent in such information.
>>
>>
>>
>
>
> --
> Thanks
> Emily
> =================
> Emily Jiang
> ejiang at apache.org
>
>
>
> --
> Thanks
> Emily
> =================
> Emily Jiang
> ejiang at apache.org
>



-- 
Thanks
Emily
=================
Emily Jiang
ejiang at apache.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/cdi-dev/attachments/20150503/30877474/attachment-0001.html 


More information about the cdi-dev mailing list