| <?xml version="1.0"?> |
| |
| <!-- |
| Copyright 1999-2004 The Apache Software Foundation |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> |
| <xsl:output method="xml" indent="yes"/> |
| |
| <xsl:template match="/"> |
| <project default="compile" basedir="." name="blocks"> |
| <description>Ant build file generated by blocks-build.xsl to build the Cocoon blocks.</description> |
| |
| <filter token="Name" value="${{fullname}}"/> |
| <filter token="name" value="${{fullname}}"/> |
| <filter token="year" value="${{year}}"/> |
| <filter token="version" value="${{version}}"/> |
| <filter token="date" value="${{TODAY}}"/> |
| <filter token="released.version" value="${{released.version}}"/> |
| <filter token="loglevel" value="${{build.webapp.loglevel}}"/> |
| |
| <path id="classpath"> |
| <fileset dir="${{lib.core}}"> |
| <include name="*.jar"/> |
| </fileset> |
| <fileset dir="${{lib.endorsed}}"> |
| <include name="*.jar"/> |
| </fileset> |
| <!-- Currently, we have no JVM dependent libraries |
| <fileset dir="${{lib.core}}/jvm${{target.vm}}"> |
| <include name="*.jar"/> |
| </fileset> |
| --> |
| <fileset dir="${{build.blocks}}"> |
| <include name="*.jar"/> |
| </fileset> |
| <path location="${{build.mocks}}"/> |
| <path location="${{build.dest}}"/> |
| <pathelement path="${{build.webapp.webinf}}/classes/"/> |
| </path> |
| |
| <path id="test.classpath"> |
| <fileset dir="${{tools.lib}}"> |
| <include name="*.jar"/> |
| </fileset> |
| </path> |
| |
| <!-- Text files, which should no compiled or otherwise processed --> |
| <patternset id="unprocessed.text-sources"> |
| <exclude name="**/*.java"/> |
| <exclude name="**/package.html"/> |
| <exclude name="**/*.gif"/> |
| </patternset> |
| |
| <!-- Binary files, which should no compiled or otherwise processed --> |
| <patternset id="unprocessed.binary-sources"> |
| <include name="**/*.gif"/> |
| </patternset> |
| |
| <macrodef name="test-include-block"> |
| <attribute name="name"/> |
| <sequential> |
| <condition property="include.block.@{{name}}"> |
| <and> |
| <equals arg1="${{default.block.mode}}" arg2="include"/> |
| <not><istrue value="${{exclude.block.@{{name}}}}"/></not> |
| </and> |
| </condition> |
| <condition property="internal.exclude.block.@{{name}}"> |
| <not><istrue value="${{include.block.@{{name}}}}"/></not> |
| </condition> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="print-excluded-block"> |
| <attribute name="name"/> |
| <sequential> |
| <if> |
| <istrue value="${{internal.exclude.block.@{{name}}}}"/> |
| <then> |
| <echo message=" Block '@{{name}}' is excluded from the build."/> |
| </then> |
| </if> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="block-compile"> |
| <attribute name="name"/> |
| <attribute name="package"/> |
| <attribute name="dir"/> |
| <sequential> |
| <!-- Test if this block has special build --> |
| <if> |
| <available file="@{{dir}}/build-special.xml"/> |
| <then> |
| <ant inheritAll="true" |
| inheritRefs="false" |
| target="main" |
| antfile="@{{dir}}/build-special.xml"> |
| <property name="block.dir" value="@{{dir}}"/> |
| </ant> |
| </then> |
| </if> |
| <!-- Test if this block has mocks --> |
| <if> |
| <available type="dir" file="@{{dir}}/mocks/"/> |
| <then> |
| <mkdir dir="${{build.blocks}}/@{{name}}/mocks"/> |
| <javac srcdir="@{{dir}}/mocks" |
| destdir="${{build.blocks}}/@{{name}}/mocks" |
| debug="${{compiler.debug}}" |
| optimize="${{compiler.optimize}}" |
| deprecation="${{compiler.deprecation}}" |
| target="${{target.vm}}" |
| nowarn="${{compiler.nowarn}}" |
| compiler="${{compiler}}"> |
| <classpath refid="@{{name}}.classpath"/> |
| </javac> |
| </then> |
| </if> |
| <!-- This is a little bit tricky: |
| As the javac task checks, if a src directory is available and |
| stops if its not available, we use the following property |
| to either point to a jdk dependent directory or - if not |
| available - to the usual java source directory. |
| If someone knows a better solution... |
| --> |
| <!-- Currently, we have no JVM dependent sources |
| <condition property="dependend.vm" value="${{target.vm}}"> |
| <available file="@{{dir}}/java${{target.vm}}"/> |
| </condition> |
| <condition property="dependend.vm" value=""> |
| <not> |
| <available file="@{{dir}}/java${{target.vm}}"/> |
| </not> |
| </condition> |
| --> |
| <javac destdir="${{build.blocks}}/@{{name}}/dest" |
| debug="${{compiler.debug}}" |
| optimize="${{compiler.optimize}}" |
| deprecation="${{compiler.deprecation}}" |
| target="${{target.vm}}" |
| nowarn="${{compiler.nowarn}}" |
| compiler="${{compiler}}"> |
| <src path="@{{dir}}/java"/> |
| <!-- Currently, we have no JVM dependent sources |
| <src path="@{{dir}}/java${{dependend.vm}}"/> |
| --> |
| <classpath refid="@{{name}}.classpath"/> |
| <exclude name="**/samples/**/*.java"/> |
| </javac> |
| |
| <copy filtering="on" todir="${{build.blocks}}/@{{name}}/dest"> |
| <fileset dir="@{{dir}}/java"> |
| <patternset refid="unprocessed.text-sources"/> |
| </fileset> |
| </copy> |
| |
| <copy filtering="off" todir="${{build.blocks}}/@{{name}}/dest"> |
| <fileset dir="@{{dir}}/java"> |
| <patternset refid="unprocessed.binary-sources"/> |
| </fileset> |
| </copy> |
| |
| <copy filtering="off" todir="${{build.blocks}}/@{{name}}/dest"> |
| <fileset dir="@{{dir}}/java"> |
| <include name="**/Manifest.mf"/> |
| <include name="META-INF/**"/> |
| </fileset> |
| </copy> |
| <jar jarfile="${{build.blocks}}/@{{name}}-block.jar" index="true"> |
| <fileset dir="${{build.blocks}}/@{{name}}/dest"> |
| <include name="@{{package}}/**"/> |
| <include name="META-INF/**"/> |
| </fileset> |
| </jar> |
| <if> |
| <istrue value="${{include.sources-in-jars}}"/> |
| <then> |
| <jar jarfile="${{build.blocks}}/@{{name}}-block.jar" update="true"> |
| <fileset dir="@{{dir}}/java"> |
| <include name="**/*.java"/> |
| </fileset> |
| </jar> |
| </then> |
| </if> |
| |
| <if> |
| <istrue value="${{include.sources-jars}}"/> |
| <then> |
| <jar jarfile="${{build.blocks}}/@{{name}}-block.src.jar"> |
| <fileset dir="@{{dir}}/java"> |
| <include name="**/*.java"/> |
| </fileset> |
| </jar> |
| </then> |
| </if> |
| |
| <!-- exclude sample classes from the block package --> |
| <if> |
| <isfalse value="${{internal.exclude.webapp.samples}}"/> |
| <then> |
| <mkdir dir="${{build.blocks}}/@{{name}}/samples"/> |
| <javac destdir="${{build.blocks}}/@{{name}}/samples" |
| debug="${{compiler.debug}}" |
| optimize="${{compiler.optimize}}" |
| deprecation="${{compiler.deprecation}}" |
| target="${{target.vm}}" |
| nowarn="${{compiler.nowarn}}" |
| compiler="${{compiler}}"> |
| <src path="@{{dir}}/java"/> |
| <!-- Currently, we have no JVM dependent sources |
| <src path="@{{dir}}/java${{dependend.vm}}"/> |
| --> |
| <classpath refid="@{{name}}.classpath"/> |
| <include name="**/samples/**/*.java"/> |
| </javac> |
| </then> |
| </if> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="block-patch"> |
| <attribute name="name"/> |
| <attribute name="dir"/> |
| <sequential> |
| <xpatch file="${{build.webapp}}/WEB-INF/cocoon.xconf" srcdir="@{{dir}}" addcomments="true"> |
| <include name="conf/*.xconf"/> |
| </xpatch> |
| <xpatch file="${{build.webapp}}/WEB-INF/web.xml" srcdir="@{{dir}}"> |
| <include name="conf/*.xweb"/> |
| </xpatch> |
| |
| <!-- generate sitemap entries |
| <sitemap-components sitemap="${{build.webapp}}/sitemap.xmap" |
| source="@{{dir}}/java" |
| block="@{{name}}"> |
| <xsl:if test="@status='unstable'"> |
| <xsl:attribute name="stable">false</xsl:attribute> |
| </xsl:if> |
| <xsl:if test="@status='deprecated'"> |
| <xsl:attribute name="deprecated">true</xsl:attribute> |
| </xsl:if> |
| </sitemap-components> |
| --> |
| |
| <!-- generate sitemap components docs --> |
| <!-- TODO - this is the wrong place for documentation, but currently blocks |
| don't have own docs! |
| <mkdir dir="${{build.context}}/xdocs/userdocs"/> |
| <sitemap-components docDir="${{build.context}}/xdocs/userdocs" |
| source="@{{dir}}/java" |
| block="@{{name}}"> |
| <xsl:if test="@status='unstable'"> |
| <xsl:attribute name="stable">false</xsl:attribute> |
| </xsl:if> |
| <xsl:if test="@status='deprecated'"> |
| <xsl:attribute name="deprecated">true</xsl:attribute> |
| </xsl:if> |
| </sitemap-components> |
| --> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="block-roles"> |
| <attribute name="name"/> |
| <attribute name="dir"/> |
| <sequential> |
| <xpatch file="${{build.dest}}/org/apache/cocoon/cocoon.roles" srcdir="@{{dir}}"> |
| <include name="conf/*.xroles"/> |
| </xpatch> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="block-patch-samples"> |
| <attribute name="name"/> |
| <attribute name="dir"/> |
| <sequential> |
| <xpatch file="${{build.webapp}}/samples/sitemap.xmap" srcdir="@{{dir}}"> |
| <include name="conf/*.samplesxpipe"/> |
| </xpatch> |
| <xpatch file="${{build.webapp}}/WEB-INF/cocoon.xconf" srcdir="@{{dir}}"> |
| <include name="conf/*.samplesxconf"/> |
| </xpatch> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="block-samples"> |
| <attribute name="name"/> |
| <attribute name="dir"/> |
| <sequential> |
| <!-- Test if this block has samples --> |
| <if> |
| <available file="@{{dir}}/samples/sitemap.xmap"/> |
| <then> |
| <!-- Important to use here encoding="iso-8859-1" to avoid |
| mutilating LATIN-1 characters in the copy operation. |
| If these were read assuming UTF-8 encoding, umlauts |
| are invalid byte sequences and get replaced by '?'. |
| |
| On the other hand, reading UTF-8 files using LATIN-1 |
| encoding is not a problem in this context since every |
| UTF-8 byte sequence maps to one or more LATIN-1 characters. |
| We only need to assume that the tokens to be replaced |
| by the filtering option are written in ASCII only. |
| --> |
| <copy filtering="on" todir="${{build.webapp}}/samples/blocks/@{{name}}" encoding="iso-8859-1"> |
| <fileset dir="@{{dir}}/samples"> |
| <exclude name="**/*.gif"/> |
| <exclude name="**/*.jpg"/> |
| </fileset> |
| </copy> |
| <copy filtering="off" todir="${{build.webapp}}/samples/blocks/@{{name}}"> |
| <fileset dir="@{{dir}}/samples"> |
| <include name="**/*.gif"/> |
| <include name="**/*.jpg"/> |
| </fileset> |
| </copy> |
| <!-- copy sample classes --> |
| <copy todir="${{build.webapp.classes}}" filtering="off"> |
| <fileset dir="${{build.blocks}}/@{{name}}/samples"/> |
| </copy> |
| </then> |
| </if> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="block-lib"> |
| <attribute name="name"/> |
| <attribute name="dir"/> |
| <sequential> |
| <!-- if this block has a lib directory copy those too (deprecated) --> |
| <if> |
| <available type="dir" file="@{{dir}}/lib"/> |
| <then> |
| <echo> |
| NOTICE: the preferred method of including library dependencies in your block |
| is by putting them in lib/optional and then declaring them in gump.xml. |
| </echo> |
| <copy filtering="off" todir="${{build.webapp.lib}}"> |
| <fileset dir="@{{dir}}/lib"> |
| <include name="*.jar"/> |
| <exclude name="servlet*.jar"/> |
| </fileset> |
| </copy> |
| </then> |
| </if> |
| <!-- Test if this block has global WEB-INF files --> |
| <if> |
| <available type="dir" file="@{{dir}}/WEB-INF/"/> |
| <then> |
| <copy filtering="on" todir="${{build.webapp.webinf}}"> |
| <fileset dir="@{{dir}}/WEB-INF/"> |
| <include name="**"/> |
| </fileset> |
| </copy> |
| </then> |
| </if> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="block-tests"> |
| <attribute name="name"/> |
| <attribute name="dir"/> |
| <sequential> |
| <!-- Test if this block has tests --> |
| <if> |
| <available file="@{{dir}}/test"/> |
| <then> |
| <mkdir dir="${{build.blocks}}/@{{name}}/test"/> |
| |
| <copy todir="${{build.blocks}}/@{{name}}/test" filtering="on"> |
| <fileset dir="@{{dir}}/test" excludes="**/*.java"/> |
| </copy> |
| |
| <javac destdir="${{build.blocks}}/@{{name}}/test" |
| debug="${{compiler.debug}}" |
| optimize="${{compiler.optimize}}" |
| deprecation="${{compiler.deprecation}}" |
| target="${{target.vm}}" |
| nowarn="${{compiler.nowarn}}" |
| compiler="${{compiler}}"> |
| <src path="@{{dir}}/test"/> |
| <classpath> |
| <path refid="@{{name}}.classpath"/> |
| <path refid="test.classpath"/> |
| <pathelement location="${{build.test}}"/> |
| </classpath> |
| </javac> |
| |
| <junit printsummary="yes" fork="yes" failureproperty="junit.test.failed"> |
| <jvmarg value="-Djava.endorsed.dirs=lib/endorsed"/> |
| <jvmarg value="-Djunit.test.loglevel=${{junit.test.loglevel}}"/> |
| <jvmarg line="${{junit.test.jvmargs}}"/> |
| <classpath> |
| <path refid="@{{name}}.classpath"/> |
| <path refid="test.classpath"/> |
| <pathelement location="${{build.test}}"/> |
| <pathelement location="${{build.blocks}}/@{{name}}/test"/> |
| </classpath> |
| <formatter type="plain" usefile="no"/> |
| <formatter type="xml"/> |
| <batchtest todir="${{build.test.output}}"> |
| <fileset dir="${{build.blocks}}/@{{name}}/test"> |
| <include name="${{junit.test.include.1}}"/> |
| <include name="${{junit.test.include.2}}"/> |
| <exclude name="**/AllTest.class"/> |
| <exclude name="**/*$$*Test.class"/> |
| <exclude name="**/Abstract*.class"/> |
| </fileset> |
| </batchtest> |
| </junit> |
| </then> |
| </if> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="block-prepare-anteater-tests"> |
| <attribute name="name"/> |
| <attribute name="dir"/> |
| <sequential> |
| <!-- Test if this block has Anteater tests --> |
| <if> |
| <available file="@{{dir}}/test/anteater"/> |
| <then> |
| <copy todir="${{build.test}}/anteater"> |
| <fileset dir="@{{dir}}/test/anteater"/> |
| <mapper type="glob" from="*.xml" to="@{{name}}-*.xml"/> |
| </copy> |
| </then> |
| </if> |
| </sequential> |
| </macrodef> |
| <xsl:apply-templates select="module"/> |
| </project> |
| </xsl:template> |
| |
| <xsl:template match="module"> |
| <xsl:variable name="cocoon-blocks" select="project[starts-with(@name, 'cocoon-block-')]"/> |
| |
| <target name="init"> |
| <condition property="default.block.mode" value="include"> |
| <istrue value="${{include.all.blocks}}"/> |
| </condition> |
| <condition property="default.block.mode" value="exclude"> |
| <istrue value="${{exclude.all.blocks}}"/> |
| </condition> |
| <property name="default.block.mode" value="include"/> |
| <xsl:for-each select="$cocoon-blocks"> |
| <xsl:variable name="block-name" select="substring-after(@name,'cocoon-block-')"/> |
| <test-include-block name="{$block-name}"/> |
| </xsl:for-each> |
| </target> |
| |
| <target name="unstable" depends="init"> |
| <condition property="unstable.blocks.present"> |
| <or> |
| <xsl:for-each select="$cocoon-blocks[@status='unstable']"> |
| <xsl:variable name="block-name" select="substring-after(@name,'cocoon-block-')"/> |
| <isfalse value="${{internal.exclude.block.{$block-name}}}"/> |
| </xsl:for-each> |
| </or> |
| </condition> |
| <if> |
| <istrue value="${{unstable.blocks.present}}"/> |
| <then> |
| <echo message="==================== WARNING ======================="/> |
| <xsl:for-each select="$cocoon-blocks[@status='unstable']"> |
| <xsl:sort select="@name"/> |
| <xsl:variable name="block-name" select="substring-after(@name,'cocoon-block-')"/> |
| <echo message=" Block '{$block-name}' should be considered unstable."/> |
| </xsl:for-each> |
| <echo message="----------------------------------------------------"/> |
| <echo message=" This means that its API, schemas "/> |
| <echo message=" and other contracts might change without notice."/> |
| <echo message="===================================================="/> |
| </then> |
| </if> |
| </target> |
| |
| <target name="excluded" depends="init"> |
| <condition property="excluded.blocks.present"> |
| <or> |
| <xsl:for-each select="$cocoon-blocks"> |
| <xsl:variable name="block-name" select="substring-after(@name,'cocoon-block-')"/> |
| <istrue value="${{internal.exclude.block.{$block-name}}}"/> |
| </xsl:for-each> |
| </or> |
| </condition> |
| <if> |
| <istrue value="${{excluded.blocks.present}}"/> |
| <then> |
| <echo message="==================== NOTICE ========================"/> |
| <xsl:for-each select="$cocoon-blocks"> |
| <xsl:sort select="@name"/> |
| <xsl:variable name="block-name" select="substring-after(@name,'cocoon-block-')"/> |
| <print-excluded-block name="{$block-name}"/> |
| </xsl:for-each> |
| <echo message="===================================================="/> |
| </then> |
| </if> |
| </target> |
| |
| <target name="compile"> |
| <xsl:attribute name="depends"> |
| <xsl:text>unstable,excluded</xsl:text> |
| <xsl:for-each select="$cocoon-blocks"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@name, '-compile')"/> |
| </xsl:for-each> |
| </xsl:attribute> |
| </target> |
| |
| <target name="patch"> |
| <xsl:attribute name="depends"> |
| <xsl:text>init</xsl:text> |
| <xsl:for-each select="$cocoon-blocks"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@name, '-patch')"/> |
| </xsl:for-each> |
| </xsl:attribute> |
| </target> |
| |
| <target name="roles"> |
| <xsl:attribute name="depends"> |
| <xsl:text>init</xsl:text> |
| <xsl:for-each select="$cocoon-blocks"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@name, '-roles')"/> |
| </xsl:for-each> |
| </xsl:attribute> |
| </target> |
| |
| <target name="patch-samples"> |
| <xsl:attribute name="depends"> |
| <xsl:text>init</xsl:text> |
| <xsl:for-each select="$cocoon-blocks"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@name, '-patch-samples')"/> |
| </xsl:for-each> |
| </xsl:attribute> |
| </target> |
| |
| <target name="samples"> |
| <xsl:attribute name="depends"> |
| <xsl:text>init,patch-samples</xsl:text> |
| <xsl:for-each select="$cocoon-blocks"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@name, '-samples')"/> |
| </xsl:for-each> |
| </xsl:attribute> |
| </target> |
| |
| <target name="lib"> |
| <xsl:attribute name="depends"> |
| <xsl:text>init</xsl:text> |
| <xsl:for-each select="$cocoon-blocks"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@name, '-lib')"/> |
| </xsl:for-each> |
| </xsl:attribute> |
| </target> |
| |
| <target name="tests"> |
| <xsl:attribute name="depends"> |
| <xsl:text>init</xsl:text> |
| <xsl:for-each select="$cocoon-blocks"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@name, '-tests')"/> |
| </xsl:for-each> |
| </xsl:attribute> |
| </target> |
| |
| <target name="prepare-anteater-tests"> |
| <xsl:attribute name="depends"> |
| <xsl:text>init</xsl:text> |
| <xsl:for-each select="$cocoon-blocks"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@name, '-prepare-anteater-tests')"/> |
| </xsl:for-each> |
| </xsl:attribute> |
| </target> |
| |
| <!-- Check if javadocs have to be generated --> |
| <target name="javadocs-check"> |
| <mkdir dir="${{build.javadocs}}"/> |
| <condition property="javadocs.notrequired" value="true"> |
| <or> |
| <uptodate targetfile="${{build.javadocs}}/packages.html"> |
| <srcfiles dir="${{java}}" includes="**/*.java,**/package.html"/> |
| <srcfiles dir="${{deprecated.src}}" includes="**/*.java,**/package.html"/> |
| <xsl:for-each select="$cocoon-blocks"> |
| <srcfiles dir="{@dir}/java" includes="**/*.java,**/package.html"/> |
| </xsl:for-each> |
| </uptodate> |
| <istrue value="${{internal.exclude.javadocs}}"/> |
| </or> |
| </condition> |
| </target> |
| |
| <!-- Creates Javadocs --> |
| <target name="javadocs" unless="javadocs.notrequired"> |
| <xsl:attribute name="depends"> |
| <xsl:text>init, javadocs-check</xsl:text> |
| <xsl:for-each select="$cocoon-blocks"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@name, '-prepare')"/> |
| </xsl:for-each> |
| </xsl:attribute> |
| |
| <condition property="javadoc.additionalparam" value="-breakiterator -tag todo:all:Todo:"> |
| <equals arg1="1.4" arg2="${{ant.java.version}}"/> |
| </condition> |
| <condition property="javadoc.additionalparam" value=""> |
| <not> |
| <equals arg1="1.4" arg2="${{ant.java.version}}"/> |
| </not> |
| </condition> |
| |
| <javadoc destdir="${{build.javadocs}}" |
| author="true" |
| version="true" |
| use="true" |
| noindex="false" |
| splitindex="true" |
| windowtitle="${{Name}} API ${{version}} [${{TODAY}}]" |
| doctitle="${{Name}} API ${{version}}" |
| bottom="Copyright © ${{year}} The Apache Software Foundation. All Rights Reserved." |
| stylesheetfile="${{resources.javadoc}}/javadoc.css" |
| useexternalfile="yes" |
| additionalparam="${{javadoc.additionalparam}}" |
| maxmemory="192m"> |
| |
| <link packagelistloc="${{resources.javadoc}}/avalon-excalibur" |
| offline="true" href="http://excalibur.apache.org/apidocs"/> |
| <link packagelistloc="${{resources.javadoc}}/avalon-framework" |
| offline="true" href="http://excalibur.apache.org/apidocs"/> |
| <link packagelistloc="${{resources.javadoc}}/j2ee" |
| offline="true" href="http://java.sun.com/j2ee/sdk_1.3/techdocs/api"/> |
| <link packagelistloc="${{resources.javadoc}}/j2se" |
| offline="true" href="http://java.sun.com/j2se/1.4.2/docs/api"/> |
| <link packagelistloc="${{resources.javadoc}}/jstl" |
| offline="true" href="http://java.sun.com/products/jsp/jstl/1.1/docs/api"/> |
| <link packagelistloc="${{resources.javadoc}}/xalan" |
| offline="true" href="http://xml.apache.org/xalan-j/apidocs"/> |
| <link packagelistloc="${{resources.javadoc}}/xerces" |
| offline="true" href="http://xml.apache.org/xerces2-j/javadocs/api"/> |
| <link packagelistloc="${{resources.javadoc}}/log4j" |
| offline="true" href="http://logging.apache.org/log4j/docs/api"/> |
| <link packagelistloc="${{resources.javadoc}}/logkit" |
| offline="true" href="http://avalon.apache.org/avalon/runtime/3.3.0/impl"/> |
| |
| <tag name="avalon.component" scope="types" description="Avalon component" /> |
| <tag name="avalon.service" scope="types" description="Implements service:" /> |
| <!-- FIXME: javadoc or ant seems to not understand these |
| <tag name="x-avalon.info" scope="types" description="Shorthand:" /> |
| <tag name="x-avalon.lifestyle" scope="types" description="Lifestyle:" /> |
| --> |
| <tag name="avalon.context" scope="methods" description="Requires entry:" /> |
| <tag name="avalon.dependency" scope="methods" description="Requires component:" /> |
| <tag name="cocoon.sitemap.component.configuration" enabled="false"/> |
| <tag name="cocoon.sitemap.component.documentation" enabled="false"/> |
| <tag name="cocoon.sitemap.component.documentation.caching" enabled="false"/> |
| <tag name="cocoon.sitemap.component.label" enabled="false"/> |
| <tag name="cocoon.sitemap.component.logger" enabled="false"/> |
| <tag name="cocoon.sitemap.component.mimetype" enabled="false"/> |
| <tag name="cocoon.sitemap.component.name" enabled="false"/> |
| <tag name="cocoon.sitemap.component.parameter" enabled="false"/> |
| <tag name="cocoon.sitemap.component.pooling.grow" enabled="false"/> |
| <tag name="cocoon.sitemap.component.pooling.max" enabled="false"/> |
| <tag name="cocoon.sitemap.component.pooling.min" enabled="false"/> |
| |
| <packageset dir="${{java}}"> |
| <include name="**"/> |
| </packageset> |
| <packageset dir="${{deprecated.src}}"> |
| <include name="**"/> |
| </packageset> |
| <xsl:for-each select="$cocoon-blocks"> |
| <packageset dir="{@dir}/java"> |
| <include name="**"/> |
| </packageset> |
| </xsl:for-each> |
| <classpath> |
| <fileset dir="${{tools.lib}}"> |
| <include name="*.jar"/> |
| </fileset> |
| <path refid="classpath" /> |
| <xsl:for-each select="$cocoon-blocks"> |
| <path refid="{substring-after(@name,'cocoon-block-')}.classpath"/> |
| </xsl:for-each> |
| </classpath> |
| </javadoc> |
| </target> |
| |
| <xsl:apply-templates select="$cocoon-blocks"/> |
| </xsl:template> |
| |
| |
| <xsl:template match="project"> |
| <xsl:variable name="block-name" select="substring-after(@name,'cocoon-block-')"/> |
| <xsl:variable name="cocoon-block-dependencies" select="depend[starts-with(@project,'cocoon-block-')]"/> |
| |
| <target name="{@name}" unless="internal.exclude.block.{$block-name}"/> |
| |
| <target name="{@name}-compile" unless="internal.exclude.block.{$block-name}"> |
| <xsl:attribute name="depends"> |
| <xsl:if test="depend"> |
| <xsl:value-of select="concat(@name, '-prepare,')"/> |
| <xsl:value-of select="@name"/> |
| <xsl:for-each select="$cocoon-block-dependencies"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@project, '-compile')"/> |
| </xsl:for-each> |
| </xsl:if> |
| </xsl:attribute> |
| <block-compile name="{$block-name}" |
| package="{translate(package/text(), '.', '/')}" |
| dir="{@dir}"/> |
| </target> |
| |
| <target name="{@name}-patch" unless="internal.exclude.block.{$block-name}"> |
| <xsl:attribute name="depends"> |
| <xsl:value-of select="concat(@name, '-prepare')"/> |
| <xsl:if test="depend"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="@name"/> |
| <xsl:for-each select="depend[contains(@project,'cocoon-block-')]"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="@project"/><xsl:text>-patch</xsl:text> |
| </xsl:for-each> |
| </xsl:if> |
| </xsl:attribute> |
| <block-patch name="{$block-name}" dir="{@dir}"/> |
| <block-config file="${{build.webapp}}/WEB-INF/xconf/cocoon-{$block-name}.xconf"> |
| <xsl:attribute name="depends"> |
| <xsl:for-each select="depend[contains(@project,'cocoon-block-')]"> |
| <xsl:text>cocoon-</xsl:text><xsl:value-of select="substring-after(@project,'cocoon-block-')"/><xsl:text>,</xsl:text> |
| </xsl:for-each> |
| </xsl:attribute> |
| </block-config> |
| </target> |
| |
| <target name="{@name}-roles" unless="internal.exclude.block.{$block-name}"> |
| <xsl:if test="depend"> |
| <xsl:attribute name="depends"> |
| <xsl:value-of select="@name"/> |
| <xsl:for-each select="depend[contains(@project,'cocoon-block-')]"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@project, '-roles')"/> |
| </xsl:for-each> |
| </xsl:attribute> |
| </xsl:if> |
| <block-roles name="{$block-name}" dir="{@dir}"/> |
| </target> |
| |
| <target name="{@name}-patch-samples" unless="internal.exclude.block.{$block-name}"> |
| <block-patch-samples name="{$block-name}" dir="{@dir}"/> |
| </target> |
| |
| <target name="{@name}-samples" unless="internal.exclude.block.{$block-name}"> |
| <xsl:if test="depend"> |
| <xsl:attribute name="depends"> |
| <xsl:value-of select="@name"/> |
| <xsl:for-each select="$cocoon-block-dependencies"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@project, '-samples')"/> |
| </xsl:for-each> |
| </xsl:attribute> |
| </xsl:if> |
| <block-samples name="{$block-name}" dir="{@dir}"/> |
| </target> |
| |
| <target name="{@name}-lib" unless="internal.exclude.block.{$block-name}"> |
| <xsl:if test="depend"> |
| <xsl:attribute name="depends"> |
| <xsl:value-of select="@name"/> |
| <xsl:for-each select="$cocoon-block-dependencies"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@project, '-lib')"/> |
| </xsl:for-each> |
| </xsl:attribute> |
| </xsl:if> |
| |
| <!-- Copy the library depencies --> |
| <xsl:if test="library[not(@bundle='false')]"> |
| <copy filtering="off" todir="${{build.webapp.lib}}"> |
| <fileset dir="${{lib.optional}}"> |
| <xsl:for-each select="library[not(@bundle='false')]"> |
| <include name="{@name}*.jar"/> |
| </xsl:for-each> |
| </fileset> |
| </copy> |
| </xsl:if> |
| <block-lib name="{$block-name}" dir="{@dir}"/> |
| </target> |
| |
| <target name="{@name}-prepare" unless="internal.exclude.block.{$block-name}"> |
| <xsl:if test="depend"> |
| <xsl:attribute name="depends"> |
| <xsl:value-of select="@name"/> |
| <xsl:for-each select="$cocoon-block-dependencies"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@project, '-prepare')"/> |
| </xsl:for-each> |
| </xsl:attribute> |
| </xsl:if> |
| |
| <mkdir dir="${{build.blocks}}/{$block-name}/dest"/> |
| |
| <path id="{$block-name}.classpath"> |
| <path refid="classpath"/> |
| <xsl:if test="library"> |
| <fileset dir="${{lib.optional}}"> |
| <xsl:for-each select="library"> |
| <include name="{@name}*.jar"/> |
| </xsl:for-each> |
| </fileset> |
| </xsl:if> |
| <!-- include the block/lib directory (deprecated) --> |
| <fileset dir="{@dir}"> |
| <include name="lib/*.jar"/> |
| </fileset> |
| <pathelement location="${{build.blocks}}/{$block-name}/mocks"/> |
| <pathelement location="${{build.blocks}}/{$block-name}/dest"/> |
| <pathelement location="${{build.blocks}}/{$block-name}/samples"/> |
| <xsl:for-each select="$cocoon-block-dependencies"> |
| <path refid="{substring-after(@project,'cocoon-block-')}.classpath"/> |
| </xsl:for-each> |
| </path> |
| </target> |
| |
| <target name="{@name}-tests" unless="internal.exclude.block.{$block-name}"> |
| <xsl:attribute name="depends"> |
| <xsl:value-of select="@name"/><xsl:text>-compile</xsl:text> |
| <xsl:if test="depend"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="@name"/> |
| <xsl:for-each select="$cocoon-block-dependencies"> |
| <xsl:text>,</xsl:text> |
| <xsl:value-of select="concat(@project, '-compile')"/> |
| </xsl:for-each> |
| </xsl:if> |
| </xsl:attribute> |
| <block-tests name="{$block-name}" dir="{@dir}"/> |
| </target> |
| |
| <target name="{@name}-prepare-anteater-tests" unless="internal.exclude.block.{$block-name}"> |
| <block-prepare-anteater-tests name="{$block-name}" dir="{@dir}"/> |
| </target> |
| </xsl:template> |
| </xsl:stylesheet> |