diff options
author | avasseur <avasseur> | 2005-05-04 14:43:24 +0000 |
---|---|---|
committer | avasseur <avasseur> | 2005-05-04 14:43:24 +0000 |
commit | 929c87018158604e439a24fbdfdb721d6a07fff7 (patch) | |
tree | d63af82d7db3ba209ac4cca37bb954284f72d37a /loadtime | |
parent | cc7137d761b7232996f20b84958d9e714075d113 (diff) | |
download | aspectj-929c87018158604e439a24fbdfdb721d6a07fff7.tar.gz aspectj-929c87018158604e439a24fbdfdb721d6a07fff7.zip |
*** empty log message ***
Diffstat (limited to 'loadtime')
-rw-r--r-- | loadtime/src/aspectj_1_5_0.dtd | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/loadtime/src/aspectj_1_5_0.dtd b/loadtime/src/aspectj_1_5_0.dtd new file mode 100644 index 000000000..86bc43d51 --- /dev/null +++ b/loadtime/src/aspectj_1_5_0.dtd @@ -0,0 +1,137 @@ +<!--***************************************************************************************************************************** +/******************************************************************************* + * Copyright (c) 2005 Contributors. + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution and is available at + * http://eclipse.org/legal/epl-v10.html + * + * Contributors: + * Alexandre Vasseur initial implementation + *******************************************************************************/ +AspectJ 5 DTD + +To use this DTD, start your defintion file with + <!DOCTYPE aspectj PUBLIC + "-//AspectJ//DTD 1.5.0//EN" + "http://.../dtd/aspectj_1_5_0.dtd"> + +You can also use the "aliasing DTD" that matchs always the latest release of AspectJ +<!DOCTYPE aspectj PUBLIC + "-//AspectJ//DTD//EN" + "http://.../dtd/aspectj.dtd"> + +To not use this DTD, start your definition file with + <?xml version="1.0"?> + +******************************************************************************************************************************--> + + +<!--***************************************************************************************************************************** +aspectj +********************************************************************************************************************************* +[aspectj] defines the root element +******************************************************************************************************************************--> +<!ELEMENT aspectj ( + weaver?, + aspects? +)> +<!--***************************************************************************************************************************** +weaver +********************************************************************************************************************************* +[weaver] defines the weaver configuration +@options defines a command like line of option + When multiple aspectj DD are found, the options are simply toggled + TODO: Note: the scope of the options can be ClassLoader aware but should be assumed JVM wide +******************************************************************************************************************************--> +<!ELEMENT weaver ( + (include | exclude)* +)> +<!ATTLIST weaver + options CDATA #IMPLIED +> +<!--***************************************************************************************************************************** +include +********************************************************************************************************************************* +[include] narrows the scope of the weaver +A class must be matched by ALL the include elements to be exposed to the weaver +@within defines a type pattern + (it is not a startWith) +******************************************************************************************************************************--> +<!ELEMENT include EMPTY> +<!ATTLIST include + within CDATA #REQUIRED +> +<!--***************************************************************************************************************************** +exclude +********************************************************************************************************************************* +[exclude] narrows the scope of the weaver +A class must be matched by NONE of the exclude elements to be exposed to the weaver +@within defines a type pattern + (it is not a startWith) + TODO should it be called @from: "<exclude from=..> instead of <exclude within=..> + TODO: AND must be written that way and not with the "&&" symbol. Thus NOT and OR exists as well. +******************************************************************************************************************************--> +<!ELEMENT exclude EMPTY> +<!ATTLIST exclude + within CDATA #REQUIRED +> +<!--***************************************************************************************************************************** +aspects +********************************************************************************************************************************* +[aspects] defines a set of aspects +TODO we were about to use include but it is already used for weaver scope with "within" which is not relevant +for aspects. I (AV) decided to use only aspect and provide include= thru name, and exclude= as exclude. +see sample. +******************************************************************************************************************************--> +<!ELEMENT aspects ( + (aspect | exclude | concrete-aspect)* +)> +<!--***************************************************************************************************************************** +aspect +TODO: did not used include since already used in weaver/include@within and @within does not makes sense +********************************************************************************************************************************* +[aspect] defines an aspect to include + @name FQN of the aspect, nested class must use $ +******************************************************************************************************************************--> +<!ELEMENT aspect EMPTY> +<!ATTLIST aspect + name CDATA #REQUIRED +> +<!--***************************************************************************************************************************** +exclude +********************************************************************************************************************************* +[exclude] defines a set of aspect to exclude + @within within pattern (even from other systems / parent classloader) +SAME AS FOR weaver/exclude +******************************************************************************************************************************--> +<!--***************************************************************************************************************************** +concrete-aspect +********************************************************************************************************************************* +[concrete-aspect] defines a concrete aspect from an abstract one + @name FQN of the concrete aspect (use $ for nested class) [will be jit generated] + @extends FQN of the abstract aspect (use $ for nested class) +******************************************************************************************************************************--> +<!ELEMENT concrete-aspect ( + pointcut+ +)> +<!ATTLIST concrete-aspect + name CDATA #REQUIRED + extends CDATA #REQUIRED +> +<!--***************************************************************************************************************************** +pointcut +********************************************************************************************************************************* +[pointcut] defines a concrete pointcut within a concrete aspect from an abstract one + @name name of the abstract pointcut (method name, unique in aspect class hierarchy) + @expression pointcut expression + Note: for argument binding, the bounded arguments must be present and bounded: + <pointcut name="myAdvice(int i)" expression="... AND args(i)"/> + TODO: AND must be written that way and not with the "&&" symbol. Thus NOT and OR exists as well. +******************************************************************************************************************************--> +<!ELEMENT pointcut EMPTY> +<!ATTLIST pointcut + name CDATA #REQUIRED + expression CDATA #REQUIRED +> |