* The "builtin" and "selftest" descriptors are now generated. * Fixed ant-descriptor.template to handle @ant:type tag properly. Submitted by Darrell DeBoer [darrell@apache.org] git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271623 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -27,7 +27,6 @@ Legal: | |||||
| <property name="gen.dir" value="${build.dir}/gen"/> | <property name="gen.dir" value="${build.dir}/gen"/> | ||||
| <property name="antlib.name" value="NONAME"/> | <property name="antlib.name" value="NONAME"/> | ||||
| <property name="antlib.include" value="org/apache/antlib/${antlib.name}/**"/> | |||||
| <property name="antlib.descriptor" value="${antlib.name}-ant-descriptor.xml"/> | <property name="antlib.descriptor" value="${antlib.name}-ant-descriptor.xml"/> | ||||
| <property name="antlib.role.descriptor" value="${antlib.name}-ant-roles.xml"/> | <property name="antlib.role.descriptor" value="${antlib.name}-ant-roles.xml"/> | ||||
| @@ -40,36 +39,37 @@ Legal: | |||||
| </path> | </path> | ||||
| <!-- Main target --> | <!-- Main target --> | ||||
| <target name="main" depends="jar" /> | |||||
| <target name="check-uptodate"> | |||||
| <uptodate property="xdoclet.uptodate" targetfile="${gen.dir}/${antlib.descriptor}" > | |||||
| <srcfiles dir= "${java.dir}" includes="${antlib.include}/*.java"/> | |||||
| </uptodate> | |||||
| <target name="main" depends="antlib-jar" /> | |||||
| <!-- Define the pattern which specifies file to include/exclude | |||||
| in this antlib. --> | |||||
| <target name="antlib-definition"> | |||||
| <patternset id="antlib.include"> | |||||
| <include name="org/apache/antlib/${antlib.name}/**"/> | |||||
| </patternset> | |||||
| </target> | </target> | ||||
| <!-- runs xdoclet if need be --> | <!-- runs xdoclet if need be --> | ||||
| <target name="xdoclet" depends="check-uptodate" unless="xdoclet.uptodate"> | |||||
| <taskdef name="xdoclet" classname="xdoclet.DocletTask" classpathref="project.class.path"/> | |||||
| <xdoclet sourcepath="${java.dir}" destdir="${gen.dir}" classpathref="project.class.path"> | |||||
| <target name="antlib-descriptors" | |||||
| depends="antlib-definition" | |||||
| unless="antlib-descriptors.omit"> | |||||
| <antlib-descriptor libName="${antlib.name}" | |||||
| destdir="${gen.dir}" | |||||
| classpathref="project.class.path"> | |||||
| <fileset dir="${java.dir}"> | <fileset dir="${java.dir}"> | ||||
| <include name="${antlib.include}/*.java" /> | |||||
| <patternset refid="antlib.include"/> | |||||
| </fileset> | </fileset> | ||||
| <template templateFile="${manifest.dir}/ant-descriptor.template" | |||||
| destinationfile="${antlib.descriptor}"/> | |||||
| <template templateFile="${manifest.dir}/ant-roles.template" | |||||
| destinationfile="${antlib.role.descriptor}"/> | |||||
| </xdoclet> | |||||
| </antlib-descriptor> | |||||
| </target> | </target> | ||||
| <!-- Creates the jars file --> | |||||
| <target name="jar" depends="xdoclet"> | |||||
| <!-- Generate an "atl" jar file for this antlib. --> | |||||
| <target name="antlib-jar" depends="antlib-descriptors"> | |||||
| <antlib-jar jarfile="${build.lib}/${antlib.name}.atl" | <antlib-jar jarfile="${build.lib}/${antlib.name}.atl" | ||||
| basedir="${build.classes}" | |||||
| descriptor="${gen.dir}/${antlib.descriptor}" | descriptor="${gen.dir}/${antlib.descriptor}" | ||||
| rolesDescriptor="${gen.dir}/${antlib.role.descriptor}"> | rolesDescriptor="${gen.dir}/${antlib.role.descriptor}"> | ||||
| <include name="${antlib.include}" /> | |||||
| <fileset dir="${build.classes}"> | |||||
| <patternset refid="antlib.include"/> | |||||
| </fileset> | |||||
| </antlib-jar> | </antlib-jar> | ||||
| </target> | </target> | ||||
| @@ -184,14 +184,24 @@ Legal: | |||||
| <!-- Compiles and installs the custom build tasks --> | <!-- Compiles and installs the custom build tasks --> | ||||
| <target name="custom-tasks"> | <target name="custom-tasks"> | ||||
| <property name="custom-tasks-dir" value="${build.dir}/tasks"/> | |||||
| <mkdir dir="${custom-tasks-dir}"/> | |||||
| <javac srcdir="src/make" destdir="${custom-tasks-dir}"> | |||||
| <classpath refid="project.class.path"/> | |||||
| </javac> | |||||
| <taskdef name="antlib-jar" classname="org.apache.myrmidon.build.AntlibJarTask"> | |||||
| <classpath location="${custom-tasks-dir}"/> | |||||
| </taskdef> | |||||
| <property name="custom-tasks-dir" value="${build.dir}/tasks"/> | |||||
| <mkdir dir="${custom-tasks-dir}"/> | |||||
| <javac srcdir="src/make" destdir="${custom-tasks-dir}"> | |||||
| <classpath refid="project.class.path"/> | |||||
| </javac> | |||||
| <copy file="${manifest.dir}/ant-descriptor.template" todir="${build.dir}/tasks"/> | |||||
| <copy file="${manifest.dir}/ant-roles.template" todir="${build.dir}/tasks"/> | |||||
| <taskdef name="antlib-jar" classname="org.apache.myrmidon.build.AntlibJarTask"> | |||||
| <classpath location="${custom-tasks-dir}"/> | |||||
| </taskdef> | |||||
| <taskdef name="antlib-descriptor" classname="org.apache.myrmidon.build.AntlibDescriptorTask"> | |||||
| <classpath> | |||||
| <pathelement location="${custom-tasks-dir}"/> | |||||
| <path refid="project.class.path"/> | |||||
| </classpath> | |||||
| </taskdef> | |||||
| </target> | </target> | ||||
| <!-- Compiles the source code --> | <!-- Compiles the source code --> | ||||
| @@ -302,23 +312,15 @@ Legal: | |||||
| </target> | </target> | ||||
| <!-- Creates the jars file --> | |||||
| <target name="jars" depends="custom-tasks, compile"> | |||||
| <target name="jar-prepare" depends="custom-tasks, compile"> | |||||
| <mkdir dir="${build.lib}"/> | <mkdir dir="${build.lib}"/> | ||||
| <jar jarfile="${build.lib}/myrmidon-launcher.jar" | |||||
| basedir="${build.classes}" | |||||
| manifest="${manifest.dir}/myrmidon-launcher.mf"> | |||||
| <!-- Define the packaging for the various jars --> | |||||
| <patternset id="myrmidon-launcher.include"> | |||||
| <include name="org/apache/myrmidon/launcher/*" /> | <include name="org/apache/myrmidon/launcher/*" /> | ||||
| </jar> | |||||
| </patternset> | |||||
| <antlib-jar jarfile="${build.lib}/myrmidon-api.jar" | |||||
| basedir="${build.classes}" | |||||
| manifest="${manifest.dir}/myrmidon-api.mf" | |||||
| rolesDescriptor="${manifest.dir}/builtin-ant-roles.xml" | |||||
| descriptor="${manifest.dir}/builtin-ant-descriptor.xml" | |||||
| servicesDescriptor="${manifest.dir}/core-services.xml" > | |||||
| <patternset id="myrmidon-api.include"> | |||||
| <include name="org/apache/myrmidon/api/*" /> | <include name="org/apache/myrmidon/api/*" /> | ||||
| <include name="org/apache/myrmidon/aspects/*" /> | <include name="org/apache/myrmidon/aspects/*" /> | ||||
| <include name="org/apache/myrmidon/converter/*" /> | <include name="org/apache/myrmidon/converter/*" /> | ||||
| @@ -327,34 +329,91 @@ Legal: | |||||
| <include name="org/apache/myrmidon/framework/**" /> | <include name="org/apache/myrmidon/framework/**" /> | ||||
| <include name="org/apache/aut/**" /> | <include name="org/apache/aut/**" /> | ||||
| <include name="org/apache/tools/**" /> | <include name="org/apache/tools/**" /> | ||||
| <!-- <include name="org/apache/myrmidon/*" /> | |||||
| <include name="org/apache/myrmidon/components/**"/> | |||||
| <include name="org/apache/myrmidon/frontends/*" /> --> | |||||
| </antlib-jar> | |||||
| </patternset> | |||||
| <patternset id="myrmidon-container.include"> | |||||
| <include name="org/apache/myrmidon/components/**" /> | |||||
| <include name="org/apache/myrmidon/frontends/*" /> | |||||
| <include name="org/apache/myrmidon/*" /> | |||||
| </patternset> | |||||
| <!-- | |||||
| <jar jarfile="${build.lib}/myrmidon-framework.jar" | |||||
| basedir="${build.classes}" | |||||
| manifest="${manifest.dir}/myrmidon-framework.mf"> | |||||
| <include name="org/apache/myrmidon/framework/**" /> | |||||
| <patternset id="selftest.include"> | |||||
| <include name="org/apache/antlib/selftest/**" /> | |||||
| <exclude name="org/apache/antlib/selftest/extension1/**" /> | |||||
| </patternset> | |||||
| <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-roles.xml"> | |||||
| <include name="builtin-ant-roles.xml"/> | |||||
| </zipfileset> | |||||
| <patternset id="selftest-extension1.include"> | |||||
| <include name="org/apache/antlib/selftest/extension1/**" /> | |||||
| </patternset> | |||||
| </target> | |||||
| <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml"> | |||||
| <include name="builtin-ant-descriptor.xml"/> | |||||
| </zipfileset> | |||||
| <!-- The generation of the descriptor is kept separated from the packaging | |||||
| of the jars, since jarring is fast and XDoclet is pretty slow.--> | |||||
| <target name="antlib-descriptors" | |||||
| depends="jar-prepare" | |||||
| unless="antlib-descriptors.omit" | |||||
| description="Generates Antlib descriptors using XDoclet."> | |||||
| <!-- The "builtin" descriptors include metainfo for both | |||||
| myrmidon-api and myrmidon-container jars. | |||||
| (Packaged with myrmidon-api.jar). --> | |||||
| <antlib-descriptor libName="builtin" | |||||
| destdir="${gen.dir}" | |||||
| classpathref="project.class.path"> | |||||
| <fileset dir="${java.dir}"> | |||||
| <patternset refid="myrmidon-api.include"/> | |||||
| <patternset refid="myrmidon-container.include"/> | |||||
| </fileset> | |||||
| </antlib-descriptor> | |||||
| <antlib-descriptor libName="selftest" | |||||
| destdir="${gen.dir}" | |||||
| classpathref="project.class.path"> | |||||
| <fileset dir="${java.dir}"> | |||||
| <patternset refid="selftest.include"/> | |||||
| </fileset> | |||||
| </antlib-descriptor> | |||||
| </target> | |||||
| <!-- Package the jar files --> | |||||
| <target name="jars" depends="antlib-descriptors"> | |||||
| <jar jarfile="${build.lib}/myrmidon-launcher.jar" | |||||
| basedir="${build.classes}" | |||||
| manifest="${manifest.dir}/myrmidon-launcher.mf"> | |||||
| <patternset refid="myrmidon-launcher.include"/> | |||||
| </jar> | </jar> | ||||
| --> | |||||
| <jar jarfile="${build.lib}/myrmidon-container.jar" | <jar jarfile="${build.lib}/myrmidon-container.jar" | ||||
| basedir="${build.classes}" | basedir="${build.classes}" | ||||
| manifest="${manifest.dir}/myrmidon-container.mf"> | manifest="${manifest.dir}/myrmidon-container.mf"> | ||||
| <include name="org/apache/myrmidon/components/**" /> | |||||
| <include name="org/apache/myrmidon/frontends/*" /> | |||||
| <include name="org/apache/myrmidon/*" /> | |||||
| <patternset refid="myrmidon-container.include"/> | |||||
| </jar> | </jar> | ||||
| <antlib-jar jarfile="${build.lib}/myrmidon-api.jar" | |||||
| basedir="${build.classes}" | |||||
| manifest="${manifest.dir}/myrmidon-api.mf" | |||||
| rolesDescriptor="${gen.dir}/builtin-ant-roles.xml" | |||||
| descriptor="${gen.dir}/builtin-ant-descriptor.xml" | |||||
| servicesDescriptor="${manifest.dir}/core-services.xml" > | |||||
| <patternset refid="myrmidon-api.include"/> | |||||
| </antlib-jar> | |||||
| <antlib-jar jarfile="${build.lib}/selftest.atl" | |||||
| basedir="${build.classes}" | |||||
| manifest="${manifest.dir}/selftest.mf" | |||||
| descriptor="${gen.dir}/selftest-ant-descriptor.xml" | |||||
| rolesDescriptor="${gen.dir}/selftest-ant-roles.xml"> | |||||
| <patternset refid="selftest.include"/> | |||||
| </antlib-jar> | |||||
| <jar jarfile="${build.lib}/selftest-extension1.jar" | |||||
| basedir="${build.classes}" | |||||
| manifest="${manifest.dir}/selftest-extension1.mf"> | |||||
| <patternset refid="selftest-extension1.include" /> | |||||
| </jar> | |||||
| <!-- Simple cases handled by antlib.xml --> | |||||
| <ant antfile="antlib.xml"> | <ant antfile="antlib.xml"> | ||||
| <property name="antlib.name" value="core"/> | <property name="antlib.name" value="core"/> | ||||
| </ant> | </ant> | ||||
| @@ -390,22 +449,6 @@ Legal: | |||||
| <ant antfile="antlib.xml"> | <ant antfile="antlib.xml"> | ||||
| <property name="antlib.name" value="vfile"/> | <property name="antlib.name" value="vfile"/> | ||||
| </ant> | </ant> | ||||
| <antlib-jar jarfile="${build.lib}/selftest.atl" | |||||
| basedir="${build.classes}" | |||||
| manifest="${manifest.dir}/selftest.mf" | |||||
| descriptor="${manifest.dir}/selftest-ant-descriptor.xml" | |||||
| rolesDescriptor="${manifest.dir}/empty-roles.xml"> | |||||
| <include name="org/apache/antlib/selftest/**" /> | |||||
| <exclude name="org/apache/antlib/selftest/extension1/**" /> | |||||
| </antlib-jar> | |||||
| <jar jarfile="${build.lib}/selftest-extension1.jar" | |||||
| basedir="${build.classes}" | |||||
| manifest="${manifest.dir}/selftest-extension1.mf"> | |||||
| <include name="org/apache/antlib/selftest/extension1/**" /> | |||||
| </jar> | |||||
| </target> | </target> | ||||
| <!-- Compiles and runs the unit tests --> | <!-- Compiles and runs the unit tests --> | ||||
| @@ -487,7 +530,9 @@ Legal: | |||||
| </target> | </target> | ||||
| <!-- Creates the distribution --> | <!-- Creates the distribution --> | ||||
| <target name="dist-lite" depends="jars"> | |||||
| <target name="dist-lite" | |||||
| depends="jars" | |||||
| description="Generates a minimal working distribution."> | |||||
| <mkdir dir="${dist.bin}"/> | <mkdir dir="${dist.bin}"/> | ||||
| <mkdir dir="${dist.lib}"/> | <mkdir dir="${dist.lib}"/> | ||||
| @@ -529,6 +574,12 @@ Legal: | |||||
| </target> | </target> | ||||
| <target name="dist-extralite" | |||||
| description="A faster version of dist-lite (no XDoclet)."> | |||||
| <property name="antlib-descriptors.omit" value="true"/> | |||||
| <antcall target="dist-lite"/> | |||||
| </target> | |||||
| <!-- Creates the distribution --> | <!-- Creates the distribution --> | ||||
| <target name="dist" depends="dist-lite,test" description="Builds the distribution"/> | <target name="dist" depends="dist-lite,test" description="Builds the distribution"/> | ||||
| @@ -15,6 +15,7 @@ import org.apache.myrmidon.api.TaskException; | |||||
| * This is to test whether extension is loaded. | * This is to test whether extension is loaded. | ||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @ant:task name="extensions-test" | |||||
| */ | */ | ||||
| public class ExtensionsTest | public class ExtensionsTest | ||||
| extends AbstractTask | extends AbstractTask | ||||
| @@ -14,6 +14,7 @@ import org.apache.myrmidon.api.TaskException; | |||||
| * Test conversion of all the primitive types. | * Test conversion of all the primitive types. | ||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @ant:task name="prim-test" | |||||
| */ | */ | ||||
| public class PrimitiveTypesTest | public class PrimitiveTypesTest | ||||
| extends AbstractTask | extends AbstractTask | ||||
| @@ -28,6 +28,7 @@ import java.util.Properties; | |||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @version $Revision$ $Date$ | * @version $Revision$ $Date$ | ||||
| * @ant:role shorthand="exec-manager" | |||||
| */ | */ | ||||
| public interface ExecManager | public interface ExecManager | ||||
| { | { | ||||
| @@ -50,6 +50,7 @@ import java.io.File; | |||||
| * </ul> | * </ul> | ||||
| * | * | ||||
| * @author Adam Murdoch | * @author Adam Murdoch | ||||
| * @ant:role shorthand="file-system-manager" | |||||
| */ | */ | ||||
| public interface FileSystemManager | public interface FileSystemManager | ||||
| { | { | ||||
| @@ -12,6 +12,7 @@ package org.apache.myrmidon.aspects; | |||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @version $Revision$ $Date$ | * @version $Revision$ $Date$ | ||||
| * @ant:type type="aspect" name="noop" | |||||
| */ | */ | ||||
| public class NoopAspectHandler | public class NoopAspectHandler | ||||
| extends AbstractAspectHandler | extends AbstractAspectHandler | ||||
| @@ -29,6 +29,7 @@ import org.xml.sax.XMLReader; | |||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @version $Revision$ $Date$ | * @version $Revision$ $Date$ | ||||
| * @ant:type type="project-builder" name="ati" | |||||
| */ | */ | ||||
| public class ATIProjectBuilder | public class ATIProjectBuilder | ||||
| extends DefaultProjectBuilder | extends DefaultProjectBuilder | ||||
| @@ -35,6 +35,8 @@ import org.xml.sax.XMLReader; | |||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @version $Revision$ $Date$ | * @version $Revision$ $Date$ | ||||
| * @ant:type type="project-builder" name="xml" | |||||
| * @ant:type type="project-builder" name="ant" | |||||
| */ | */ | ||||
| public class DefaultProjectBuilder | public class DefaultProjectBuilder | ||||
| extends AbstractLogEnabled | extends AbstractLogEnabled | ||||
| @@ -30,6 +30,7 @@ import org.apache.myrmidon.interfaces.configurer.Configurer; | |||||
| * Class used to configure tasks. | * Class used to configure tasks. | ||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @ant:type type="configurer" name="classic" | |||||
| */ | */ | ||||
| public class ClassicConfigurer | public class ClassicConfigurer | ||||
| extends AbstractLogEnabled | extends AbstractLogEnabled | ||||
| @@ -34,6 +34,7 @@ import org.apache.myrmidon.interfaces.type.TypeManager; | |||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @version $Revision$ $Date$ | * @version $Revision$ $Date$ | ||||
| * @ant:type type="configurer" name="default" | |||||
| */ | */ | ||||
| public class DefaultConfigurer | public class DefaultConfigurer | ||||
| extends AbstractLogEnabled | extends AbstractLogEnabled | ||||
| @@ -17,6 +17,7 @@ import org.apache.myrmidon.api.TaskException; | |||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @version $Revision$ $Date$ | * @version $Revision$ $Date$ | ||||
| * @ant:data-type name="pattern" | |||||
| */ | */ | ||||
| public class Pattern | public class Pattern | ||||
| implements DataType | implements DataType | ||||
| @@ -13,7 +13,7 @@ import org.apache.myrmidon.api.TaskException; | |||||
| import org.apache.myrmidon.aspects.AspectHandler; | import org.apache.myrmidon.aspects.AspectHandler; | ||||
| /** | /** | ||||
| * Manage and propogate Aspects. | |||||
| * Manage and propogate Aspects.. | |||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @version $Revision$ $Date$ | * @version $Revision$ $Date$ | ||||
| @@ -16,6 +16,7 @@ import org.apache.myrmidon.api.Context; | |||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @version $Revision$ $Date$ | * @version $Revision$ $Date$ | ||||
| * @ant:role shorthand="configurer" | |||||
| */ | */ | ||||
| public interface Configurer | public interface Configurer | ||||
| { | { | ||||
| @@ -15,6 +15,7 @@ import org.apache.avalon.framework.ExceptionUtil; | |||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @version $Revision$ $Date$ | * @version $Revision$ $Date$ | ||||
| * @ant:type type="listener" name="classic" | |||||
| */ | */ | ||||
| public class ClassicProjectListener | public class ClassicProjectListener | ||||
| extends AbstractProjectListener | extends AbstractProjectListener | ||||
| @@ -12,6 +12,7 @@ package org.apache.myrmidon.listeners; | |||||
| * | * | ||||
| * @author <a href="mailto:peter@apache.org">Peter Donald</a> | * @author <a href="mailto:peter@apache.org">Peter Donald</a> | ||||
| * @version $Revision$ $Date$ | * @version $Revision$ $Date$ | ||||
| * @ant:type type="listener" name="default" | |||||
| */ | */ | ||||
| public class DefaultProjectListener | public class DefaultProjectListener | ||||
| extends ClassicProjectListener | extends ClassicProjectListener | ||||
| @@ -12,7 +12,8 @@ package org.apache.myrmidon.listeners; | |||||
| * | * | ||||
| * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a> | * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a> | ||||
| * @version $Revision$ $Date$ | * @version $Revision$ $Date$ | ||||
| */ | |||||
| * @ant:type type="listener" name="noprefix" | |||||
| */ | |||||
| public class NoPrefixProjectListener | public class NoPrefixProjectListener | ||||
| extends DefaultProjectListener | extends DefaultProjectListener | ||||
| { | { | ||||
| @@ -18,10 +18,10 @@ | |||||
| </XDtClass:ifHasClassTag> | </XDtClass:ifHasClassTag> | ||||
| </XDtClass:forAllClasses> | </XDtClass:forAllClasses> | ||||
| <XDtClass:forAllClasses> | |||||
| <XDtClass:forAllClassTags tagName="ant:type"> | |||||
| <<XDtClass:classTagValue tagName="ant:type" paramName="type"/> | |||||
| name="<XDtClass:classTagValue tagName="ant:type" paramName="name"/>" | |||||
| <XDtClass:forAllClasses extent="concrete-type"> | |||||
| <XDtClass:forAllClassTags tagName="ant:type" superclasses="false"> | |||||
| <<XDtClass:classTagValue tagName="ant:type" paramName="type" superclasses="false"/> | |||||
| name="<XDtClass:classTagValue tagName="ant:type" paramName="name" superclasses="false"/>" | |||||
| classname="<XDtClass:fullClassName/>" /> | classname="<XDtClass:fullClassName/>" /> | ||||
| </XDtClass:forAllClassTags> | </XDtClass:forAllClassTags> | ||||
| </XDtClass:forAllClasses> | </XDtClass:forAllClasses> | ||||