[weld-commits] Weld SVN: r5121 - api/trunk/cdi/src/main/resources.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Mon Nov 23 14:20:31 EST 2009


Author: pete.muir at jboss.org
Date: 2009-11-23 14:20:30 -0500 (Mon, 23 Nov 2009)
New Revision: 5121

Modified:
   api/trunk/cdi/src/main/resources/beans.xsd
Log:
WELD-289, thanks to Jason Porter

Modified: api/trunk/cdi/src/main/resources/beans.xsd
===================================================================
--- api/trunk/cdi/src/main/resources/beans.xsd	2009-11-23 18:39:02 UTC (rev 5120)
+++ api/trunk/cdi/src/main/resources/beans.xsd	2009-11-23 19:20:30 UTC (rev 5121)
@@ -1,65 +1,180 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<!--
-JBoss, Home of Professional Open Source
-Copyright 2008, Red Hat Middleware LLC, and individual contributors
-by the @authors tag. See the copyright.txt in the distribution for a
-full listing of individual contributors.
+   <!--
+      JBoss, Home of Professional Open Source Copyright 2008, Red Hat
+      Middleware LLC, and individual contributors by the @authors tag.
+      See the copyright.txt in the distribution for a full listing of
+      individual contributors. Licensed under the Apache License,
+      Version 2.0 (the "License"); you may not use this file except in
+      compliance with the License. You may obtain a copy of the License
+      at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
+      applicable law or agreed to in writing, software distributed under
+      the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
+      OR CONDITIONS OF ANY KIND, either express or implied. See the
+      License for the specific language governing permissions and
+      limitations under the License.
+   -->
 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,  
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-   elementFormDefault="qualified"
-   targetNamespace="http://seamframework.org/ns/CDI"
-   xmlns:cdi="http://seamframework.org/ns/CDI"
-   version="1.0">
+   elementFormDefault="qualified" targetNamespace="http://seamframework.org/ns/CDI"
+   xmlns:cdi="http://seamframework.org/ns/CDI" version="1.0">
 
+   <xs:annotation>
+      <xs:documentation>
+         Contexts and Dependency Injection (CDI) defines
+         a set of complementary services that help improve the structure
+         of application code. beans.xml is used to enable CDI services
+         for the current bean archive as well as to enable named
+         interceptors, decorators and altenatives for the current bean
+         archive.
+      </xs:documentation>
+   </xs:annotation>
+
    <xs:element name="beans">
+      <xs:annotation>
+         <xs:documentation>
+            Bean classes of enabled beans must be
+            deployed in bean archives. A library jar, EJB jar,
+            application client jar or rar archive is a bean archive if
+            it has a file named beans.xml in the META-INF directory. The
+            WEB-INF/classes directory of a war is a bean archive if
+            there is a file named beans.xml in the WEB-INF directory of
+            the war. A directory in the JVM classpath is a bean archive
+            if it has a file named beans.xml in the META-INF directory.
+         </xs:documentation>
+      </xs:annotation>
       <xs:complexType>
-         <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element ref="cdi:policies"/>
+         <xs:all>
             <xs:element ref="cdi:interceptors" />
             <xs:element ref="cdi:decorators" />
-         </xs:choice>
+            <xs:element ref="cdi:alternatives" />
+         </xs:all>
       </xs:complexType>
    </xs:element>
 
-   <xs:element name="policies">
+   <xs:element name="interceptors">
+      <xs:annotation>
+         <xs:documentation>
+            By default, a bean archive has no enabled
+            interceptors bound via interceptor bindings. An interceptor
+            must be explicitly enabled by listing its class under the
+            &lt;interceptors&gt; element of the beans.xml file of the
+            bean archive. The order of the interceptor declarations
+            determines the interceptor ordering. Interceptors which
+            occur earlier in the list are called first. If the same
+            class is listed twice under the &lt;interceptors&gt;
+            element, the container automatically detects the problem and
+            treats it as a deployment problem.
+        </xs:documentation>
+      </xs:annotation>
       <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element ref="cdi:class" />
-            <xs:element ref="cdi:annotation" />
+            <xs:element name="class" type="xs:string">
+               <xs:annotation>
+                  <xs:documentation>
+                     Each child &lt;class&gt; element
+                     must specify the name of an interceptor class. If
+                     there is no class with the specified name, or if
+                     the class with the specified name is not an
+                     interceptor class, the container automatically
+                     detects the problem and treats it as a deployment
+                     problem.
+                  </xs:documentation>
+               </xs:annotation>
+            </xs:element>
          </xs:choice>
       </xs:complexType>
    </xs:element>
-   
-   <xs:element name="interceptors">
+
+   <xs:element name="decorators">
+      <xs:annotation>
+         <xs:documentation>
+            By default, a bean archive has no enabled
+            decorators. A decorator must be explicitly enabled by
+            listing its bean class under the &lt;decorators&gt; element
+            of the beans.xml file of the bean archive. The order of the
+            decorator declarations determines the decorator ordering.
+            Decorators which occur earlier in the list are called first.
+            If the same class is listed twice under the
+            &lt;decorators&gt; element, the container automatically
+            detects the problem and treats it as a deployment problem.
+         </xs:documentation>
+      </xs:annotation>
       <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element ref="cdi:class" />
+            <xs:element name="class" type="xs:string">
+               <xs:annotation>
+                  <xs:documentation>
+                     Each child &lt;class&gt; element
+                     must specify the name of a decorator class. If
+                     there is no class with the specified name, or if
+                     the class with the specified name is not a
+                     decorator class, the container automatically
+                     detects the problem and treats it as a deployment
+                     problem.
+                  </xs:documentation>
+               </xs:annotation>
+            </xs:element>
          </xs:choice>
       </xs:complexType>
    </xs:element>
-   
-   <xs:element name="decorators">
+
+   <xs:element name="alternatives">
+      <xs:annotation>
+         <xs:documentation>
+            An alternative is a bean that must be
+            explicitly declared in the beans.xml file if it should be
+            available for lookup, injection or EL resolution. By
+            default, a bean archive has no selected alternatives. An
+            alternative must be explicitly declared using the
+            &lt;alternatives&gt; element of the beans.xml file of the
+            bean archive. The &lt;alternatives&gt; element contains a
+            list of bean classes and stereotypes. An alternative is
+            selected for the bean archive if either: the alternative is
+            a managed bean or session bean and the bean class of the
+            bean is listed, or the alternative is a producer method,
+            field or resource, and the bean class that declares the
+            method or field is listed, or any @Alternative stereotype of
+            the alternative is listed.
+        </xs:documentation>
+      </xs:annotation>
       <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element ref="cdi:class"/>
+            <xs:element name="class" type="xs:string">
+               <xs:annotation>
+                  <xs:documentation>
+                     Each child &lt;class&gt; element
+                     must specify the name of an alternative bean class.
+                     If there is no class with the specified name, or if
+                     the class with the specified name is not an
+                     alternative bean class, the container automatically
+                     detects the problem and treats it as a deployment
+                     problem. If the same class is listed twice under
+                     the &lt;alternatives&gt; element, the container
+                     automatically detects the problem and treats it as
+                     a deployment problem.
+                  </xs:documentation>
+               </xs:annotation>
+            </xs:element>
+
+            <xs:element name="stereotype" type="xs:string">
+               <xs:annotation>
+                  <xs:documentation>
+                     Each child &lt;stereotype&gt;
+                     element must specify the name of an @Alternative
+                     stereotype annotation. If there is no annotation
+                     with the specified name, or the annotation is not
+                     an @Alternative stereotype, the container
+                     automatically detects the problem and treats it as
+                     a deployment problem. If the same stereotype is
+                     listed twice under the &lt;alternatives&gt;
+                     element, the container automatically detects the
+                     problem and treats it as a deployment problem.
+                  </xs:documentation>
+               </xs:annotation>
+            </xs:element>
          </xs:choice>
       </xs:complexType>
    </xs:element>
 
-   <xs:element name="class" type="xs:string" />
-   
-   <xs:element name="annotation" type="xs:string" />
-
-</xs:schema>
\ No newline at end of file
+</xs:schema>



More information about the weld-commits mailing list