[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