[jboss-cvs] JBossAS SVN: r79406 - in projects/aop/trunk/aop/docs: reference/reference/en and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Oct 13 11:28:16 EDT 2008


Author: kabir.khan at jboss.com
Date: 2008-10-13 11:28:16 -0400 (Mon, 13 Oct 2008)
New Revision: 79406

Added:
   projects/aop/trunk/aop/docs/reference/reference/en/modules/array.xml
Removed:
   projects/aop/trunk/aop/docs/aop_xml_2_0.xsd
Modified:
   projects/aop/trunk/aop/docs/reference/reference/en/master.xml
   projects/aop/trunk/aop/docs/reference/reference/en/modules/xml.xml
Log:
[JBAOP-643] reference manual section on array interception

Deleted: projects/aop/trunk/aop/docs/aop_xml_2_0.xsd
===================================================================
--- projects/aop/trunk/aop/docs/aop_xml_2_0.xsd	2008-10-13 15:27:49 UTC (rev 79405)
+++ projects/aop/trunk/aop/docs/aop_xml_2_0.xsd	2008-10-13 15:28:16 UTC (rev 79406)
@@ -1,786 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- A prototype xsd schema for javabeans
-$Id: aop-beans_1_0.xsd 71751 2008-04-06 21:46:33Z kabir.khan at jboss.com $
- -->
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-   targetNamespace="urn:jboss:aop_xml:2.0"
-   xmlns="urn:jboss:aop_xml:2.0"
-   elementFormDefault="qualified"
-   attributeFormDefault="unqualified"
-   version="1.0"
->   
-   <xsd:annotation>
-      <xsd:documentation>
-         <![CDATA[
-         A schema for constructing aop beans.
-         ]]>
-      </xsd:documentation>
-   </xsd:annotation>
-
-   <xsd:element name="aop" type="aopType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           An AOP Deployment
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:complexType name="aopType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           An AOP Deployment
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="0" maxOccurs="unbounded">
-         <xsd:element name="annotation" type="aopAnnotationType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="annotation-introduction" type="annotationIntroductionType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="arraybind" type="arraybindType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="arrayreplacement" type="arrayreplacementType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="aspect" type="aspectOrInterceptorType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="bind" type="bindType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="cflow-stack" type="cflowStackType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="declare-error" type="declareType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="declare-warning" type="declareType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="domain" type="domainType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="dynamic-cflow" type="dynamicCflowStackType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="interceptor" type="aspectOrInterceptorType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="introduction" type="introductionType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="loader-repository" type="loaderRepositoryType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="metadata" type="metadataType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="metadata-loader" type="metadataLoaderType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="pointcut" type="pointcutType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="precedence" type="precedenceType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="prepare" type="prepareType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="stack" type="stackType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="typedef" type="typedefType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:any namespace="##other" processContents="strict" minOccurs="0">
-            <xsd:annotation>
-               <xsd:documentation>An extension value</xsd:documentation>
-            </xsd:annotation>
-         </xsd:any>
-      </xsd:choice>
-   </xsd:complexType>
-
-   <xsd:element name="domain" type="domainType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           An AOP domain
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:complexType name="domainType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           An AOP domain
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="0" maxOccurs="1">
-         <xsd:element name="annotation" type="aopAnnotationType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="annotation-introduction" type="annotationIntroductionType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="arraybind" type="arraybindType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="arrayreplacement" type="arrayreplacementType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="aspect" type="aspectOrInterceptorType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="bind" type="bindType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="cflow-stack" type="cflowStackType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="declare-error" type="declareType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="declare-warning" type="declareType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="dynamic-cflow" type="dynamicCflowStackType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="interceptor" type="aspectOrInterceptorType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="introduction" type="introductionType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="metadata" type="metadataType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="metadata-loader" type="metadataLoaderType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="pointcut" type="pointcutType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="precedence" type="precedenceType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="prepare" type="prepareType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="stack" type="stackType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="typedef" type="typedefType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:any namespace="##other" processContents="strict" minOccurs="0">
-            <xsd:annotation>
-               <xsd:documentation>An extension value</xsd:documentation>
-            </xsd:annotation>
-         </xsd:any>
-      </xsd:choice>
-      <xsd:attribute name="name" type="xsd:string" use="required"/>
-      <xsd:attribute name="parentFirst" type="xsd:boolean" use="optional" default="false"/>
-      <xsd:attribute name="inheritDefinitions" type="xsd:boolean" use="optional" default="true"/>
-      <xsd:attribute name="inheritBindings" type="xsd:boolean" use="optional" default="false"/>
-      <xsd:attribute name="extends" type="xsd:string" use="optional"/>
-   </xsd:complexType> 
-
-   <xsd:element name="interceptor" type="aspectOrInterceptorType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           An interceptor
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-   
-   <xsd:element name="aspect" type="aspectOrInterceptorType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           An aspect
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-   
-   <xsd:complexType name="aspectOrInterceptorType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           aspects or interceptors 
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="0" maxOccurs="1">
-         <xsd:any namespace="##other" processContents="strict" minOccurs="0">
-         </xsd:any>
-      </xsd:choice>   
-      <xsd:attribute name="name" type="xsd:string" use="optional"/>
-      <xsd:attribute name="class" type="xsd:string" use="optional"/>
-      <xsd:attribute name="scope" type="xsd:string" use="optional"/>
-      <xsd:attribute name="factory" type="xsd:string" use="optional"/>
-   </xsd:complexType>
-
-   <xsd:element name="bind" type="bindType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A binding
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-   
-   <xsd:complexType name="bindType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           A binding
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="1" maxOccurs="unbounded">
-         <xsd:element name="interceptor" type="aspectOrInterceptorType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="interceptor-ref" type="interceptorRefType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="stack-ref" type="stackRefType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="advice" type="adviceType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="around" type="adviceType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="before" type="beforeType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="after" type="afterType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="throwing" type="throwingType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="finally" type="finallyType" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:choice>
-      <xsd:attribute name="name" type="xsd:string" use="optional" />
-      <xsd:attribute name="pointcut" type="xsd:string" use="required" />
-      <xsd:attribute name="cflow" type="xsd:string" use="optional" />
-   </xsd:complexType>
-
-   <xsd:element name="stack" type="stackType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           An interceptor stack
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-   
-   <xsd:complexType name="stackType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           An interceptor stack
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="1" maxOccurs="unbounded">
-         <xsd:element name="interceptor" type="aspectOrInterceptorType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="interceptor-ref" type="interceptorRefType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="stack-ref" type="stackRefType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="advice" type="adviceType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="around" type="adviceType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="before" type="beforeType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="after" type="afterType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="throwing" type="throwingType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="finally" type="finallyType" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:choice>
-      <xsd:attribute name="name" type="xsd:string" use="required" />
-   </xsd:complexType>
-
-   <xsd:complexType name="bindContentType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           base type for bind content: stack-ref, interceptor-ref and advice
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:attribute name="name" use="required"/>
-   </xsd:complexType>
-
-   <xsd:complexType name="interceptorRefType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           A interceptor-ref within a bind or intereptor-stack
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="bindContentType">
-         </xsd:extension>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="stackRefType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           A stack-ref within a bind or interceptor-stack
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="bindContentType">
-         </xsd:extension>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="adviceType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           A advice or around within a bind or interceptor-stack
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="bindContentType">
-            <xsd:attribute name="aspect" type="xsd:string" use="required"/>
-         </xsd:extension>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="beforeType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           A before within a bind or interceptor-stack
-           
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="adviceType"/>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="afterType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           A after within a bind or interceptor-stack
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="adviceType"/>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="throwingType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           A throwing within a bind or interceptor-stack
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="adviceType"/>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="finallyType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           A finally within a bind or interceptor-stack
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="adviceType"/>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:element name="typedef" type="typedefType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A typedef
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-   
-   <xsd:complexType name="typedefType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A typedef 
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:attribute name="name" type="xsd:string" use="required"/>
-      <xsd:attribute name="expr" type="xsd:string" use="required"/>
-   </xsd:complexType>
-
-   <xsd:element name="cflow-stack" type="cflowStackType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A cflow-stack
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-   
-   <xsd:complexType name="cflowStackType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A cflow-stack 
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="1" maxOccurs="unbounded">
-         <xsd:element name="called" type="cflowStackEntryType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="not-called" type="cflowStackEntryType" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:choice>
-      <xsd:attribute name="name" type="xsd:string" use="required"/>
-   </xsd:complexType>
-   
-   <xsd:complexType name="cflowStackEntryType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           The called or not-called children of cflow-stack
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:attribute name="expr" use="required"/>
-   </xsd:complexType>
-
-   <xsd:element name="dynamic-cflow" type="dynamicCflowStackType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A dynamic cflow
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:complexType name="dynamicCflowStackType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A dynamic cflow
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:attribute name="name" type="xsd:string" use="required"/>
-      <xsd:attribute name="class" type="xsd:string" use="required"/>
-   </xsd:complexType>
-   
-   <xsd:element name="declare-error" type="declareType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A declare error
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:element name="declare-warning" type="declareType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A declare warning
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:complexType name="declareType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A declare-error or declare-warning
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:simpleContent>
-         <xsd:extension base="xsd:string">
-            <xsd:attribute name="name" type="xsd:string" use="required"/>
-            <xsd:attribute name="expr" type="xsd:string" use="required"/>
-         </xsd:extension>
-      </xsd:simpleContent>
-   </xsd:complexType>
-   
-   <xsd:element name="pointcut" type="pointcutType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A named pointcut
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:complexType name="pointcutType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A named pointcut
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:attribute name="name" type="xsd:string" use="required"/>
-      <xsd:attribute name="expr" type="xsd:string" use="required"/>
-   </xsd:complexType>
-   
-   <xsd:element name="prepare" type="prepareType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A prepare statement
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:complexType name="prepareType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A prepare statement
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:attribute name="name" type="xsd:string" use="optional"/>
-      <xsd:attribute name="expr" type="xsd:string" use="required"/>
-   </xsd:complexType>
-
-   <xsd:element name="annotation-introduction" type="annotationIntroductionType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A annotation-introduction
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:complexType name="annotationIntroductionType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A annotation-introduction
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:attribute name="expr" type="xsd:string" use="required"/>
-      <xsd:attribute name="invisible" type="xsd:boolean" use="required"/>
-   </xsd:complexType>
-
-   <xsd:element name="annotation" type="aopAnnotationType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A annotation override
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:complexType name="aopAnnotationType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A annotation override
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:complexContent>
-         <xsd:extension base="annotationIntroductionType"/>
-      </xsd:complexContent>
-   </xsd:complexType>
-
-   <xsd:element name="precedence" type="precedenceType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A precedence
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:complexType name="precedenceType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           A annotation override
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="1" maxOccurs="unbounded">
-         <xsd:element name="interceptor-ref" type="interceptorRefType" minOccurs="0" maxOccurs="unbounded" />
-         <xsd:element name="advice" type="adviceType" minOccurs="0" maxOccurs="unbounded" />
-      </xsd:choice>
-      <xsd:attribute name="name" type="xsd:string" use="optional"></xsd:attribute>
-   </xsd:complexType>
-
-   <xsd:element name="introduction" type="introductionType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A interface introduction
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:complexType name="introductionType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           A interface introduction
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="1" maxOccurs="1">
-         <xsd:element name="interfaces" type="interfacesType" minOccurs="0" maxOccurs="1" />
-         <xsd:element name="mixin" type="mixinType" minOccurs="0" maxOccurs="unbounded" />
-      </xsd:choice>
-      <xsd:attribute name="class" type="xsd:string" use="optional"></xsd:attribute>
-      <xsd:attribute name="expr" type="xsd:string" use="optional"></xsd:attribute>
-   </xsd:complexType>
-
-   <xsd:complexType name="mixinType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           A mixin within an interface introduction
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="1" maxOccurs="1">
-         <xsd:element name="interfaces" type="interfacesType" minOccurs="1" maxOccurs="1" />
-         <xsd:element name="class" type="classType" minOccurs="1" maxOccurs="1" />
-         <xsd:element name="construction" type="constructionType" minOccurs="0" maxOccurs="1" />
-         <xsd:element name="transient" type="transientType" minOccurs="0" maxOccurs="1" />
-      </xsd:choice>
-   </xsd:complexType>
-
-   <xsd:complexType name="interfacesType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           A interfaces within an introduction or an introduction/mixin
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:simpleContent>
-         <xsd:extension base="xsd:string"/>
-      </xsd:simpleContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="classType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           A class within an interface/mixin
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:simpleContent>
-         <xsd:extension base="xsd:string"/>
-      </xsd:simpleContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="constructionType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           How to construct an interface/mixin
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:simpleContent>
-         <xsd:extension base="xsd:string"/>
-      </xsd:simpleContent>
-   </xsd:complexType>
-
-   <xsd:complexType name="transientType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           Whether an interface/mixin should be transient
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:simpleContent>
-         <xsd:extension base="xsd:string"/>
-      </xsd:simpleContent>
-   </xsd:complexType>
-
-   <xsd:element name="metadata" type="metadataType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A metadata
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-   
-   <xsd:complexType name="metadataType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A metadata
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="0" maxOccurs="1">
-         <xsd:any namespace="##other" processContents="strict" minOccurs="0">
-         </xsd:any>
-      </xsd:choice>
-      <xsd:attribute name="tag" type="xsd:string" use="required"></xsd:attribute>
-      <xsd:attribute name="class" type="xsd:string" use="required"></xsd:attribute>
-   </xsd:complexType>
-
-   <xsd:element name="metadata-loader" type="metadataLoaderType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A metadata
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-   
-   <xsd:complexType name="metadataLoaderType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           A metadata
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="0" maxOccurs="1">
-         <xsd:any namespace="##other" processContents="strict" minOccurs="0">
-         </xsd:any>
-      </xsd:choice>
-      <xsd:attribute name="tag" type="xsd:string" use="required"></xsd:attribute>
-      <xsd:attribute name="class" type="xsd:string" use="required"></xsd:attribute>
-   </xsd:complexType>
-
-   <xsd:element name="arrayreplacement" type="arrayreplacementType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           An array replacement
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:complexType name="arrayreplacementType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           An array replacement
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:attribute name="name" type="xsd:string" use="optional"></xsd:attribute>
-      <xsd:attribute name="class" type="xsd:string" use="optional"></xsd:attribute>
-      <xsd:attribute name="expr" type="xsd:string" use="optional"></xsd:attribute>
-   </xsd:complexType>
-
-   <xsd:element name="arraybind" type="arraybindType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           An array binding
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-
-   <xsd:complexType name="arraybindType">
-      <xsd:annotation>
-         <xsd:documentation>
-            <![CDATA[
-           An array binding
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:choice minOccurs="1" maxOccurs="unbounded">
-         <xsd:element name="interceptor" type="aspectOrInterceptorType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="interceptor-ref" type="interceptorRefType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="stack-ref" type="stackRefType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="advice" type="adviceType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="around" type="adviceType" minOccurs="0" maxOccurs="unbounded"/>
-         <!-- b/a/t/f is not supported yet for arrays 
-         <xsd:element name="before" type="beforeType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="after" type="afterType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="throwing" type="throwingType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="finally" type="finallyType" minOccurs="0" maxOccurs="unbounded"/>
-         -->
-      </xsd:choice>
-      <xsd:attribute name="name" type="xsd:string" use="optional"></xsd:attribute>
-      <xsd:attribute name="type" type="xsd:string" use="required"></xsd:attribute>
-   </xsd:complexType>
-
-   
-   <xsd:element name="loader-repository">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           Which loader repository to attach to
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-   </xsd:element>
-   
-   <xsd:simpleType name="loaderRepositoryType">
-      <xsd:annotation>
-         <xsd:documentation>
-           <![CDATA[
-           The name of the loader repository to attach to
-           ]]>
-         </xsd:documentation>
-      </xsd:annotation>
-      <xsd:restriction base="xsd:string">
-      </xsd:restriction>
-   </xsd:simpleType>
-</xsd:schema>

Modified: projects/aop/trunk/aop/docs/reference/reference/en/master.xml
===================================================================
--- projects/aop/trunk/aop/docs/reference/reference/en/master.xml	2008-10-13 15:27:49 UTC (rev 79405)
+++ projects/aop/trunk/aop/docs/reference/reference/en/master.xml	2008-10-13 15:28:16 UTC (rev 79406)
@@ -13,6 +13,7 @@
 <!ENTITY compiling              SYSTEM "modules/compiling.xml">
 <!ENTITY running                SYSTEM "modules/running.xml">
 <!ENTITY reflection             SYSTEM "modules/reflection.xml">
+<!ENTITY array                  SYSTEM "modules/array.xml">
 <!ENTITY modes                  SYSTEM "modules/modes.xml">
 <!ENTITY maven                  SYSTEM "modules/maven.xml">
 ]>
@@ -108,6 +109,8 @@
 
    &reflection;
    
+   &array;
+   
    &modes;
 
 </book>

Added: projects/aop/trunk/aop/docs/reference/reference/en/modules/array.xml
===================================================================
--- projects/aop/trunk/aop/docs/reference/reference/en/modules/array.xml	                        (rev 0)
+++ projects/aop/trunk/aop/docs/reference/reference/en/modules/array.xml	2008-10-13 15:28:16 UTC (rev 79406)
@@ -0,0 +1,163 @@
+<chapter id="arrays">
+
+   <title>Interception of Array Element Access</title>
+
+   <!-- *********************************** Intro ******************************** -->
+
+   <para>
+         This chapter will show you how to intercept access to the individual elements of
+         an array. The concepts are similar to the interception we have seen previously,
+         but a few configuration options are introduced. Array interception can currently
+         only be configured via xml. There are three steps involved.
+         <itemizedlist>
+            <listitem>Specifying which classes we want to replace access to arrays in</listitem>
+            <listitem>Preparing the array fields in the target class</listitem>
+            <listitem>Binding advices to array access</listitem>
+         </itemizedlist>         
+   </para>
+   <!-- *********************************** Aspect ******************************** -->
+
+   <sect1 id="array-replacement" revision="1">
+      <title>Replacing Array Access</title>
+      <para>
+         To achieve array interception we need to replace all access to arrays within
+         a selected set of classes. The <literal>arrayreplacement</literal> element is 
+         used for this. You can either specify a particular class using the
+         <literal>class</literal> attribute or a class expression using the 
+         <literal>expr</literal> attribute: 
+      </para>
+      <para>
+         <programlisting>
+<![CDATA[    
+   <arrayreplacement class="org.acme.POJOWithArray"/>
+   <arrayreplacement expr="class(org.acme.*)"/>
+]]>
+         </programlisting>
+      </para>
+   </sect1>
+
+   <sect1 id="array-preparing" revision="1">
+      <title>Preparing Array Fields</title>
+      <para>
+         If we want to intercept an array's elements, that array field needs to be woven, using either a 
+         <literal>prepare</literal> or a <literal>bind</literal> expression. If that field is within a
+         class picked out by an <literal>arrayreplacement</literal> expression it gets all the hooks for 
+         arrayreplacement to take place. The following xml along with the previous <literal>arrayreplacement</literal>
+         weaves <literal>org.acme.POJOWithArray.ints</literal> for array element interception.    
+      </para>
+      <para>
+         <programlisting>
+<![CDATA[    
+   <prepare expr="field(int[] org.acme.POJOWithArray->ints)"/>
+]]>
+         </programlisting>
+      </para>
+   </sect1>
+   
+   <sect1 id="array-binding" revision="1">
+      <title>Binding Advices to array element access</title>
+      <para>
+         To bind advices to the access of array elements, you use a <literal>arraybind</literal> element.
+         It binds advices to all arrays woven for array access. You can use the <literal>type</literal>
+         attribute to specify if you want the interception to take place when setting elements in the array, 
+         getting elements from the array, or both. Valid values for the <literal>type</literal> attribute are:
+         <literal>READ_WRITE</literal>, <literal>READ_ONLY</literal> and <literal>WRITE_ONLY</literal>. An 
+         example is shown below:
+      </para>
+      <para>
+         <programlisting>
+<![CDATA[    
+   <interceptor class="org.acme.TestInterceptor"/>
+   <arraybind type="READ_ONLY">
+      <interceptor-ref name="org.acme.TestInterceptor"/>
+   </arraybind>
+]]>
+         </programlisting>
+      </para>
+      <para>
+         <literal>arraybind</literal> currently only supports <literal>interceptor-ref</literal> and
+         <literal>advice</literal> as child elements. <literal>before</literal>, <literal>after</literal>, 
+         <literal>throwing</literal> and <literal>finally</literal> are not yet supported for array interception.
+         for arrays.
+      </para>
+   </sect1>
+
+   <sect1 id="array-invocations" revision="1">
+      <title>Invocation types for array element access interception</title>
+      <para>
+         Writing aspects for array element interception is more or less the same as for any other joinpoint.
+         However, array element interception comes with its own hierarchy of <literal>Invocation</literal> clases.
+         Which one of these is used depends on what is being itercepted. The hierarchy is shown below (all the
+         classes live in the <literal>org.jboss.aop.array</literal> package):
+      </para>
+      <para>
+         <programlisting>
+<![CDATA[    
+ArrayElementInvocation
+-ArrayElementReadInvocation
+--BooleanArrayElementReadInvocation  -Element read from a boolean[]
+--ByteArrayElementReadInvocation     -Element read from a byte[]
+--CharArrayElementReadInvocation     -Element read from a char[]
+--DoubleArrayElementReadInvocation   -Element read from a double[]
+--FloatArrayElementReadInvocation    -Element read from a float[]
+--IntArrayElementReadInvocation      -Element read from a int[]
+--LongArrayElementReadInvocation     -Element read from a long[]
+--ObjectArrayElementReadInvocation   -Element read from a Object[], String[] etc.
+--ShortArrayElementReadInvocation    -Element read from a shore[]
+-ArrayElementWriteInvocation
+--BooleanArrayElementWriteInvocation -Element written to a boolean[]
+--ByteArrayElementWriteInvocation    -Element written to a byte[]
+--CharArrayElementWriteInvocation    -Element written to a char[]
+--DoubleArrayElementWriteInvocation  -Element written to a double[]
+--FloatArrayElementWriteInvocation   -Element written to a float[]
+--IntArrayElementWriteInvocation     -Element written to a int[]
+--LongArrayElementWriteInvocation    -Element written to a long[]
+--ObjectArrayElementWriteInvocation  -Element written to a Object[], String[] etc.
+--ShortArrayElementWriteInvocation   -Element written to a short[]
+]]>
+         </programlisting>
+      </para>
+      <para>
+         The write invocation classes allow you access to the value the element is being set to.
+         <literal>ArrayElementReadInvocation</literal> defines a method to get hold of the value being
+         set:
+      </para>
+      <para>
+         <programlisting>
+<![CDATA[
+   public abstract Object getValue();    
+]]>
+         </programlisting>
+      </para>
+      <para>
+         The sub-classes override this value, and also define a more fine-grained value to avoid using the
+         wrapper classes where appropriate, as shown in the following methods from 
+         <literal>DoubleArrayElementWriteInvocation</literal>:
+      </para>
+      <para>
+         <programlisting>
+<![CDATA[
+   public Object getValue()
+   {
+      return new Double(value);
+   }
+
+   public double getDoubleValue()
+   {
+      return value;
+   }
+]]>
+         </programlisting>
+      </para>
+      <para>
+         When reading an array element the invocation's return value contains the value read. For all 
+         array invocations you can get the index of the element being accessed by calling
+         <literal>ArrayElementInvocation.getIndex()</literal>. 
+      </para>
+   </sect1>
+
+</chapter>
+
+
+
+

Modified: projects/aop/trunk/aop/docs/reference/reference/en/modules/xml.xml
===================================================================
--- projects/aop/trunk/aop/docs/reference/reference/en/modules/xml.xml	2008-10-13 15:27:49 UTC (rev 79405)
+++ projects/aop/trunk/aop/docs/reference/reference/en/modules/xml.xml	2008-10-13 15:28:16 UTC (rev 79406)
@@ -56,95 +56,9 @@
    </sect1>
 
    <sect1 id="xml-dtd" revision="1">
-      <title>XML DTD</title>
+      <title>XML Schema</title>
       <para>
-         <programlisting><![CDATA[
-<?xml version='1.0' encoding='UTF-8' ?>
-
-<!ELEMENT aop (interceptor|introduction|metadata-loader|metadata|
-               stack|aspect|pointcut|pluggable-pointcut|bind|
-               prepare|cflow-stack|dynamic-cflow|annotation-introduction|typedef)+>
-
-<!ELEMENT interceptor ANY>
-<!ATTLIST interceptor name CDATA #IMPLIED>
-<!ATTLIST interceptor class CDATA #IMPLIED>
-<!ATTLIST interceptor factory CDATA #IMPLIED>
-<!ATTLIST interceptor scope (PER_VM|PER_CLASS|PER_INSTANCE|PER_JOINPOINT) "PER_VM">
-
-<!ELEMENT aspect ANY>
-<!ATTLIST aspect name CDATA #IMPLIED>
-<!ATTLIST aspect class CDATA #IMPLIED>
-<!ATTLIST aspect factory CDATA #IMPLIED>
-<!ATTLIST aspect scope (PER_VM|PER_CLASS|PER_INSTANCE|PER_JOINPOINT) "PER_VM">
-
-<!ELEMENT introduction (mixin*,interfaces)>
-<!ATTLIST introduction class CDATA #IMPLIED>
-<!ATTLIST introduction expr CDATA #IMPLIED>
-<!ELEMENT mixin (interfaces, class, construction?)>
-<!ATTLIST mixin transient (true|false) "true">
-<!ELEMENT interfaces (#PCDATA)>
-<!ELEMENT class (#PCDATA)>
-<!ELEMENT construction (#PCDATA)>
-
-<!ELEMENT metadata-loader EMPTY>
-<!ATTLIST metadata-loader tag CDATA #REQUIRED>
-<!ATTLIST metadata-loader class CDATA #REQUIRED>
-
-<!ELEMENT metadata ANY>
-<!ATTLIST metadata tag CDATA #REQUIRED>
-<!ATTLIST metadata class CDATA #REQUIRED>
-
-<!ELEMENT stack (interceptor|interceptor-ref|stack-ref|advice)+>
-<!ATTLIST stack name CDATA #REQUIRED>
-
-<!ELEMENT interceptor-ref EMPTY>
-<!ATTLIST interceptor-ref name CDATA #REQUIRED>
-
-<!ELEMENT stack-ref EMPTY>
-<!ATTLIST stack-ref name CDATA #REQUIRED>
-
-<!ELEMENT advice EMPTY>
-<!ATTLIST advice name CDATA #REQUIRED>
-<!ATTLIST advice aspect CDATA #REQUIRED>
-
-<!ELEMENT pointcut EMPTY>
-<!ATTLIST pointcut name CDATA #REQUIRED>
-<!ATTLIST pointcut expr CDATA #REQUIRED>
-
-<!ELEMENT prepare EMPTY>
-<!ATTLIST prepare expr CDATA #REQUIRED>
-
-<!ELEMENT pluggable-pointcut ANY>
-<!ATTLIST pluggable-pointcut name CDATA #REQUIRED>
-<!ATTLIST pluggable-pointcut class CDATA #REQUIRED>
-
-<!ELEMENT bind (interceptor|interceptor-ref|stack-ref|advice|before|around|after|throwing|finally)+>
-<!ATTLIST bind name CDATA #IMPLIED>
-<!ATTLIST bind pointcut CDATA #REQUIRED>
-<!ATTLIST bind cflow CDATA #IMPLIED>
-
-<!ELEMENT cflow-stack (called|not-called)+>
-<!ATTLIST cflow-stack name CDATA #REQUIRED>
-
-<!ELEMENT called EMPTY>
-<!ATTLIST called expr CDATA #REQUIRED>
-<!ELEMENT not-called EMPTY>
-<!ATTLIST not-called expr CDATA #REQUIRED>
-
-
-<!ELEMENT dynamic-cflow EMPTY>
-<!ATTLIST dynamic-cflow name CDATA #REQUIRED>
-<!ATTLIST dynamic-cflow class CDATA #REQUIRED>
-
-<!ELEMENT annotation-introduction (#PCDATA)>
-<!ATTLIST annotation-introduction expr CDATA #REQUIRED>
-<!ATTLIST annotation-introduction invisible (true|false) #REQUIRED>
-
-<!ELEMENT typedef EMPTY>
-<!ATTLIST typedef name CDATA #REQUIRED>
-<!ATTLIST typedef expr CDATA #REQUIRED>
-            ]]>
-         </programlisting>
+         The xml schema can be found in the distribution's <literal>etc/</literal>literal> folder.
       </para>
    </sect1>
 




More information about the jboss-cvs-commits mailing list