1656 lines
70 KiB
XML
Executable File
1656 lines
70 KiB
XML
Executable File
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<xsl:stylesheet version="1.0"
|
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
xmlns:xalan="http://xml.apache.org/xslt"
|
|
xmlns:ccm="http://ccm.redhat.com/ccm-project"
|
|
exclude-result-prefixes="ccm">
|
|
|
|
<xsl:output method="xml"
|
|
encoding="UTF-8"
|
|
indent="yes"
|
|
xalan:indent-amount="4"/>
|
|
|
|
<xsl:template match="ccm:project">
|
|
<project name="CCM" default="usage" basedir=".">
|
|
<xsl:call-template name="SharedProperties"/>
|
|
<xsl:call-template name="AppProperties"/>
|
|
|
|
<xsl:choose>
|
|
<xsl:when test="/ccm:project/@type != 'styling'">
|
|
<xsl:call-template name="TargetClean"/>
|
|
<xsl:call-template name="TargetBuild"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:call-template name="TargetCleanLite"/>
|
|
<xsl:call-template name="TargetBuildNoop"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:call-template name="TargetDeploy"/>
|
|
<xsl:call-template name="TargetJavadoc"/>
|
|
<xsl:call-template name="TargetVerify"/>
|
|
<xsl:choose>
|
|
<xsl:when test="/ccm:project/@type != 'styling'">
|
|
<xsl:call-template name="TargetTest"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:call-template name="TargetTestNoop"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:call-template name="TargetMisc"/>
|
|
</project>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="SharedProperties">
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="prettyName"><xsl:value-of select="@prettyName"/></xsl:variable>
|
|
<xsl:variable name="extends"><xsl:value-of select="/ccm:project/@extends"/></xsl:variable>
|
|
|
|
<property environment="env"/>
|
|
<property value="${{env.CCM_DIST_HOME}}" name="ccm.dist.dir"/>
|
|
<property value="${{ccm.dist.dir}}/applications" name="ccm.apps.dist.dir"/>
|
|
<property value="${{ccm.dist.dir}}/projects" name="ccm.projects.dist.dir"/>
|
|
<property value="${{env.CCM_CONFIG_HOME}}" name="ccm.config.dir"/>
|
|
<property value="${{env.CCM_DEV_HOME}}" name="ccm.src.dir"/>
|
|
<property value="ant.properties" name="property.file"/>
|
|
<property file="${{property.file}}"/>
|
|
<property name="app.name" value="{$name}"/>
|
|
<property name="app.pretty.name" value="{$prettyName}"/>
|
|
<xsl:choose>
|
|
<xsl:when test="/ccm:project/@type = 'project'">
|
|
<property name="project.name" value="{$name}"/>
|
|
</xsl:when>
|
|
<xsl:when test="/ccm:project/@extends">
|
|
<property name="project.name" value="{$extends}"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<property name="project.name" value=""/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<property value="${{file.separator}}" name="slash"/>
|
|
<property value="build" name="build.dir"/>
|
|
<property value="${{j2ee.webapp.dir}}" name="deploy.dir"/>
|
|
<property value="${{deploy.dir}}/WEB-INF/resources" name="deploy.init.dir"/>
|
|
<property value="${{deploy.dir}}/WEB-INF" name="deploy.web.dir"/>
|
|
<property value="${{deploy.dir}}/src" name="deploy.src.dir"/>
|
|
<property value="${{deploy.dir}}/test" name="deploy.test.dir"/>
|
|
<property value="${{deploy.test.dir}}/classes" name="deploy.test.classes.dir"/>
|
|
<property value="${{env.CCM_CONFIG_LIB_DIR}}" name="ccm.config.lib.dir"/>
|
|
<property value="lib" name="lib.dir"/>
|
|
<property value="etc/lib" name="etclib.dir"/>
|
|
<property value="pdl" name="pdl.dir"/>
|
|
<property value="sql" name="sql.dir"/>
|
|
<property value="src" name="src.dir"/>
|
|
<property value="web" name="web.dir"/>
|
|
<property value="ddl" name="ddl.dir"/>
|
|
<property value="8300" name="test.remote.port"/>
|
|
<property value="false" name="test.sql.verbose"/>
|
|
<property value="true" name="test.sql.continue"/>
|
|
<property value="test" name="test.dir"/>
|
|
<property value="test/sql" name="test.sql.dir"/>
|
|
<property value="test/pdl" name="test.pdl.dir"/>
|
|
<property value="test/src" name="test.src.dir"/>
|
|
<property value="${{build.dir}}/test" name="test.deploy.dir"/>
|
|
<property value="${{build.dir}}/tmp" name="test.tmp.dir"/>
|
|
<property value="${{build.dir}}" name="enterprise.build.dir"/>
|
|
<property value="${{build.dir}}/src" name="build.src.dir"/>
|
|
<property value="${{build.dir}}/classes" name="build.classes.dir"/>
|
|
<property value="${{build.dir}}/sql" name="build.sql.dir"/>
|
|
<property value="${{build.dir}}/tests" name="build.tests.dir"/>
|
|
<property value="${{test.pdl.dir}}" name="build.tests.pdl.dir"/>
|
|
<property value="${{build.tests.dir}}/sql" name="build.tests.sql.dir"/>
|
|
<property value="${{build.tests.sql.dir}}/oracle-se" name="build.tests.sql.dir.db"/>
|
|
<property value="${{etclib.dir}}" name="javacc.home.dir"/>
|
|
<property value="*Suite.class" name="junit.suite"/>
|
|
<property value="" name="junit.test"/>
|
|
<property value="off" name="junit.test.haltonfailure"/>
|
|
<property value="off" name="junit.test.haltonerror"/>
|
|
<property value="false" name="junit.usefail"/>
|
|
<property value="false" name="junit.usecactus"/>
|
|
<property value="plain" name="junit.formatter"/>
|
|
<property value="${{build.dir}}/api" name="javadoc.dir"/>
|
|
<property value="${{build.dir}}/api-apps" name="app.javadoc.dir"/>
|
|
<property value="${{build.dir}}/javadoc-src" name="javadoc.src.dir"/>
|
|
<property value="api" name="javadoc.dist.dir"/>
|
|
<property value="${{deploy.dir}}/api" name="deploy.api.dir"/>
|
|
<property value="" name="pdl.args"/>
|
|
<property value="on" name="compile.debug"/>
|
|
<property value="on" name="compile.optimize"/>
|
|
<property value="off" name="compile.deprecation"/>
|
|
<property value="off" name="compile.verbose"/>
|
|
<property value="off" name="compile.nowarn"/>
|
|
<property value="rulesets/design.xml,rulesets/imports.xml" name="pmd.rulesets"/>
|
|
<property value="xml" name="pmd.format"/>
|
|
<property value="${{build.dir}}/pmd" name="pmd.report.dir"/>
|
|
<property value="pmd.${{pmd.format}}" name="pmd.report.file"/>
|
|
<property value="com.arsdigita.persistence.pdl.PDL" name="verify.pdl.classname"/>
|
|
<property value="com.arsdigita.persistence.metadata.DDLWriter" name="ddl.generator.resource"/>
|
|
<property value="com.arsdigita.persistence.pdl.PDL" name="ddl.generator.classname"/>
|
|
<property value="com.arsdigita.persistence.pdl.TestPDLGenerator" name="test.ddl.generator.classname"/>
|
|
|
|
<path id="ccm.base.classpath">
|
|
<fileset dir="${{ccm.config.lib.dir}}">
|
|
<include name="junit*.jar"/>
|
|
<include name="httpunit*.jar"/>
|
|
<include name="servletapi3*.jar"/>
|
|
<include name="servlet-2.2.jar"/>
|
|
</fileset>
|
|
<pathelement path="${{java.class.path}}"/>
|
|
</path>
|
|
|
|
</xsl:template>
|
|
|
|
<xsl:template name="AppProperties">
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
|
|
<xsl:call-template name="AppPropertyClassPath">
|
|
<xsl:with-param name="target" select="@name"/>
|
|
<xsl:with-param name="type">build</xsl:with-param>
|
|
<xsl:with-param name="order" select="@buildOrder"/>
|
|
</xsl:call-template>
|
|
|
|
<xsl:call-template name="AppPropertyClassPath">
|
|
<xsl:with-param name="target" select="@name"/>
|
|
<xsl:with-param name="type">tests</xsl:with-param>
|
|
<xsl:with-param name="order" select="@buildOrder"/>
|
|
</xsl:call-template>
|
|
</xsl:for-each>
|
|
|
|
<xsl:call-template name="AppPropertyClassPath">
|
|
<xsl:with-param name="target">javadoc</xsl:with-param>
|
|
<xsl:with-param name="type">build</xsl:with-param>
|
|
<xsl:with-param name="order">10000</xsl:with-param>
|
|
</xsl:call-template>
|
|
|
|
<xsl:call-template name="AppPropertyClassPath">
|
|
<xsl:with-param name="target">verify</xsl:with-param>
|
|
<xsl:with-param name="type">build</xsl:with-param>
|
|
<xsl:with-param name="order">10000</xsl:with-param>
|
|
</xsl:call-template>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="AppPropertyClassPath">
|
|
<xsl:param name="target" select="'default-value'"/>
|
|
<xsl:param name="type" select="'build'"/>
|
|
<xsl:param name="order" select="'default-value'"/>
|
|
<xsl:variable name="extends"><xsl:value-of select="/ccm:project/@extends"/></xsl:variable>
|
|
<xsl:variable name="extendsVersion"><xsl:value-of select="/ccm:project/@extendsVersion"/></xsl:variable>
|
|
|
|
<path id="{$target}.{$type}.classpath">
|
|
<pathelement path="${{ccm.config.dir}}/lib/xerces.jar"/>
|
|
<xsl:if test="/ccm:project/@extends">
|
|
<fileset dir="${{ccm.projects.dist.dir}}/{$extends}-{$extendsVersion}/dist/WEB-INF">
|
|
<include name="${{lib.dir}}/*.jar"/>
|
|
<include name="${{lib.dir}}/*.zip"/>
|
|
</fileset>
|
|
<pathelement path="${{ccm.projects.dist.dir}}/{$extends}-{$extendsVersion}/dist/WEB-INF/classes"/>
|
|
<xsl:if test="$type = 'tests'">
|
|
<pathelement path="${{ccm.projects.dist.dir}}/{$extends}-{$extendsVersion}/test/classes"/>
|
|
</xsl:if>
|
|
</xsl:if>
|
|
|
|
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="version"><xsl:value-of select="@version"/></xsl:variable>
|
|
<fileset dir="${{ccm.apps.dist.dir}}/{$name}-{$version}/dist/WEB-INF">
|
|
<include name="${{lib.dir}}/*.jar"/>
|
|
<include name="${{lib.dir}}/*.zip"/>
|
|
</fileset>
|
|
<pathelement path="${{ccm.apps.dist.dir}}/{$name}-{$version}/dist/WEB-INF/classes"/>
|
|
<xsl:if test="$type = 'tests'">
|
|
<pathelement path="${{ccm.apps.dist.dir}}/{$name}-{$version}/test/classes"/>
|
|
</xsl:if>
|
|
</xsl:for-each>
|
|
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
|
|
<xsl:if test="number(@buildOrder) <= number($order)">
|
|
<fileset dir="./{$name}">
|
|
<include name="${{lib.dir}}/*.jar"/>
|
|
<include name="${{lib.dir}}/*.zip"/>
|
|
</fileset>
|
|
<pathelement path="./{$name}/build/classes/"/>
|
|
<xsl:if test="$type = 'tests'">
|
|
<pathelement path="./{$name}/build/tests/"/>
|
|
</xsl:if>
|
|
<fileset dir="./{$name}">
|
|
<include name="${{etclib.dir}}/*.jar"/>
|
|
<include name="${{etclib.dir}}/*.zip"/>
|
|
</fileset>
|
|
</xsl:if>
|
|
</xsl:for-each>
|
|
|
|
<path refid="ccm.base.classpath"/>
|
|
|
|
</path>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetClean">
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
|
|
<!-- The app clean build hooks -->
|
|
<target depends="init" name="clean-build-{$name}-hook" if="build.hook.{$name}">
|
|
<ant antfile="build-hooks.xml" target="clean-build-hook" dir="{$name}"/>
|
|
</target>
|
|
|
|
<!-- The app test hooks -->
|
|
<target depends="init" name="clean-tests-{$name}-hook" if="build.hook.{$name}">
|
|
<ant antfile="build-hooks.xml" target="clean-tests-hook" dir="{$name}"/>
|
|
</target>
|
|
|
|
<!-- The app clean build tasks -->
|
|
<target name="clean-build-{$name}" depends="init,clean-build-{$name}-hook">
|
|
<delete dir="{$name}/${{build.dir}}"/>
|
|
</target>
|
|
|
|
<!-- The app clean test tasks -->
|
|
<target name="clean-tests-{$name}" depends="init,clean-tests-{$name}-hook">
|
|
<delete>
|
|
<fileset dir="{$name}">
|
|
<include name="TEST-*.txt"/>
|
|
<include name="TEST-*.xml"/>
|
|
</fileset>
|
|
</delete>
|
|
</target>
|
|
</xsl:for-each>
|
|
|
|
<target name="clean-build">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:text>,clean-build-</xsl:text>
|
|
<xsl:value-of select="@name"/>
|
|
</xsl:for-each>
|
|
</xsl:attribute>
|
|
</target>
|
|
|
|
<target name="clean-tests">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:text>,clean-tests-</xsl:text>
|
|
<xsl:value-of select="@name"/>
|
|
</xsl:for-each>
|
|
</xsl:attribute>
|
|
</target>
|
|
|
|
<target name="clean-deploy">
|
|
<delete dir="${{deploy.dir}}"/>
|
|
</target>
|
|
|
|
<target name="clean" depends="clean-build,clean-tests,clean-deploy"/>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetCleanLite">
|
|
<target name="clean-deploy">
|
|
<delete dir="${{deploy.dir}}"/>
|
|
</target>
|
|
<target name="clean" depends="clean-deploy"/>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetBuild">
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
|
|
<!-- Compile hooks -->
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<target name="compile-{$name}-check">
|
|
<available property="compile.{$name}" file="{$name}/src"/>
|
|
</target>
|
|
|
|
<target name="compile-{$name}-hook" if="build.hook.{$name}">
|
|
<ant antfile="build-hooks.xml" target="compile-hook" dir="{$name}"/>
|
|
</target>
|
|
|
|
|
|
<!-- Compile task -->
|
|
<target name="_compile-{$name}" if="compile.{$name}">
|
|
<mkdir dir="{$name}/${{build.classes.dir}}"/>
|
|
<mkdir dir="{$name}/${{build.src.dir}}"/>
|
|
<javac
|
|
debug="${{compile.debug}}"
|
|
optimize="${{compile.optimize}}"
|
|
deprecation="${{compile.deprecation}}"
|
|
verbose="${{compile.verbose}}"
|
|
nowarn="${{compile.nowarn}}"
|
|
destdir="{$name}/${{build.classes.dir}}">
|
|
<src path="{$name}/${{src.dir}}"/>
|
|
<src path="{$name}/${{build.src.dir}}"/>
|
|
<include name="**/*.java"/>
|
|
<classpath refid="{$name}.build.classpath"/>
|
|
</javac>
|
|
</target>
|
|
|
|
<target name="compile-{$name}" depends="init,compile-{$name}-check,compile-{$name}-hook,_compile-{$name}"/>
|
|
|
|
<!-- DDL generate task -->
|
|
<target name="generate-sql-{$name}-check">
|
|
<condition property="generate.sql.{$name}">
|
|
<and>
|
|
<available classname="${{ddl.generator.resource}}" classpathref="{$name}.build.classpath"/>
|
|
<available file="{$name}/pdl"/>
|
|
</and>
|
|
</condition>
|
|
<uptodate property="generate.sql.{$name}.uptodate" targetfile="{$name}/${{build.dir}}/.ddl-timestamp">
|
|
<srcfiles includes="${{pdl.dir}}/**/*.pdl" dir="{$name}"/>
|
|
</uptodate>
|
|
</target>
|
|
|
|
<target name="copy-sql-{$name}">
|
|
<mkdir dir="{$name}/${{build.sql.dir}}"/>
|
|
<copy todir="{$name}/${{build.sql.dir}}">
|
|
<fileset dir="{$name}">
|
|
<include name="${{sql.dir}}/**/*.sql"/>
|
|
</fileset>
|
|
<mapper type="glob" from="${{sql.dir}}/*" to="*"/>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="generate-sql-{$name}-timestamp">
|
|
<mkdir dir="{$name}/${{build.dir}}"/>
|
|
<echo message="ddl-timestamp" file="{$name}/${{build.dir}}/.ddl-timestamp"/>
|
|
</target>
|
|
|
|
<target name="generate-sql-{$name}" depends="init,compile-{$name},copy-sql-{$name},generate-sql-{$name}-check,generate-sql-{$name}-oracle-se,generate-sql-{$name}-postgres,generate-sql-{$name}-timestamp"/>
|
|
|
|
<xsl:call-template name="TargetGenerateSQL">
|
|
<xsl:with-param name="database">oracle-se</xsl:with-param>
|
|
<xsl:with-param name="order" select="@buildOrder"/>
|
|
</xsl:call-template>
|
|
<xsl:call-template name="TargetGenerateSQL">
|
|
<xsl:with-param name="database">postgres</xsl:with-param>
|
|
<xsl:with-param name="order" select="@buildOrder"/>
|
|
</xsl:call-template>
|
|
|
|
<!-- Copy src task -->
|
|
<target depends="init" name="copy-src-{$name}">
|
|
<copy todir="{$name}/${{build.classes.dir}}">
|
|
<fileset dir="{$name}">
|
|
<include name="${{src.dir}}/**/*.properties"/>
|
|
</fileset>
|
|
<mapper type="glob" from="${{src.dir}}/*" to="*"/>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- Build tasks -->
|
|
<xsl:call-template name="TargetBuildApp">
|
|
<xsl:with-param name="target" select="@name"/>
|
|
<xsl:with-param name="order" select="@buildOrder"/>
|
|
</xsl:call-template>
|
|
</xsl:for-each>
|
|
|
|
|
|
<target name="build">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:text>,build-</xsl:text>
|
|
<xsl:value-of select="@name"/>
|
|
</xsl:for-each>
|
|
</xsl:attribute>
|
|
</target>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetBuildApp">
|
|
<xsl:param name="target"/>
|
|
<xsl:param name="order" select="'default-value'"/>
|
|
<target name="build-{$target}">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:if test="number(@buildOrder) < number($order)">
|
|
<xsl:text>,build-</xsl:text>
|
|
<xsl:value-of select="@name"/>
|
|
</xsl:if>
|
|
</xsl:for-each>
|
|
<xsl:text>,compile-</xsl:text><xsl:value-of select="$target"/>
|
|
<xsl:text>,generate-sql-</xsl:text><xsl:value-of select="$target"/>
|
|
<xsl:text>,copy-src-</xsl:text><xsl:value-of select="$target"/>
|
|
</xsl:attribute>
|
|
</target>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetGenerateSQL">
|
|
<xsl:param name="database"/>
|
|
<xsl:param name="order" select="'default-value'"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="extends"><xsl:value-of select="@extends"/></xsl:variable>
|
|
<xsl:variable name="extendsVersion"><xsl:value-of select="@extendsVersion"/></xsl:variable>
|
|
|
|
<target name="generate-sql-{$name}-{$database}" depends="init" if="generate.sql.{$name}" unless="generate.sql.{$name}.uptodate">
|
|
<mkdir dir="{$name}/${{build.sql.dir}}/${{ddl.dir}}/{$database}"/>
|
|
<java failonerror="yes" classname="${{ddl.generator.classname}}" fork="yes">
|
|
<classpath refid="{$name}.build.classpath"/>
|
|
<arg line="-quiet"/>
|
|
<arg line="-generate-ddl {$name}/${{build.sql.dir}}/${{ddl.dir}}/{$database}"/>
|
|
<arg line="-database {$database}"/>
|
|
<arg line="-path {$name}/${{pdl.dir}}"/>
|
|
<arg line="-sqldir {$name}/${{build.sql.dir}}"/>
|
|
<xsl:call-template name="TargetPdlPath">
|
|
<xsl:with-param name="order" select="$order"/>
|
|
</xsl:call-template>
|
|
</java>
|
|
</target>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetPdlPath">
|
|
<xsl:param name="order" select="'default-value'"/>
|
|
<xsl:param name="pathType" select="'library-path'"/>
|
|
<xsl:if test="(count(/ccm:project/ccm:build/ccm:application[number(@buildOrder) < number($order)]) > 0) or (count(/ccm:project/ccm:prebuilt/ccm:application) > 0) or /ccm:project/@extends">
|
|
<xsl:text disable-output-escaping="yes">
|
|
<arg line="</xsl:text>
|
|
<xsl:text>-</xsl:text><xsl:copy-of select="$pathType"/><xsl:text> </xsl:text>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application[number(@buildOrder) < number($order)]">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:value-of select="@name"/>
|
|
<xsl:text>/${pdl.dir}</xsl:text>
|
|
<xsl:if test="1">
|
|
<xsl:text>:</xsl:text>
|
|
</xsl:if>
|
|
</xsl:for-each>
|
|
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:text>${ccm.apps.dist.dir}/</xsl:text>
|
|
<xsl:value-of select="@name"/><xsl:text>-</xsl:text>
|
|
<xsl:value-of select="@version"/>
|
|
<xsl:text>/dist/WEB-INF/pdl</xsl:text>
|
|
<xsl:if test="1">
|
|
<xsl:text>:</xsl:text>
|
|
</xsl:if>
|
|
</xsl:for-each>
|
|
<xsl:if test="/ccm:project/@extends">
|
|
<xsl:text>${ccm.projects.dist.dir}/</xsl:text>
|
|
<xsl:value-of select="/ccm:project/@extends"/><xsl:text>-</xsl:text>
|
|
<xsl:value-of select="/ccm:project/@extendsVersion"/>
|
|
<xsl:text>/dist/WEB-INF/pdl</xsl:text>
|
|
<xsl:if test="1">
|
|
<xsl:text>:</xsl:text>
|
|
</xsl:if>
|
|
</xsl:if>
|
|
<xsl:text disable-output-escaping="yes">"/>
|
|
</xsl:text>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetBuildNoop">
|
|
<target name="build"/>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetVerify">
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
|
|
<target name="verify-pdl" depends="init" unless="pdl.no.verify">
|
|
<java classname="${{verify.pdl.classname}}" failonerror="yes" fork="yes">
|
|
<classpath refid="verify.build.classpath"/>
|
|
<arg line="${{pdl.args}}"/>
|
|
<xsl:call-template name="TargetPdlPath">
|
|
<xsl:with-param name="order">10000</xsl:with-param>
|
|
<xsl:with-param name="pathType">path</xsl:with-param>
|
|
</xsl:call-template>
|
|
</java>
|
|
<echo message="PDL files compiled successfully."/>
|
|
</target>
|
|
|
|
<path id="jsp.compiler.classpath">
|
|
<fileset dir="${{env.CATALINA_HOME}}">
|
|
<include name="server/lib/*.jar"/>
|
|
<include name="common/lib/*.jar"/>
|
|
</fileset>
|
|
</path>
|
|
|
|
<target name="jsp-compiler-check">
|
|
<condition property="jsp.compiler.available">
|
|
<and>
|
|
<available file="${{env.CATALINA_HOME}}" type="dir"/>
|
|
<available classname="org.apache.jasper.JspC" classpathref="jsp.compiler.classpath"/>
|
|
</and>
|
|
</condition>
|
|
</target>
|
|
|
|
<target name="compile-jsp" depends="deploy,jsp-compiler-check" if="jsp.compiler.available">
|
|
<taskdef classname="org.apache.jasper.JspC" name="jasper2">
|
|
<classpath refid="jsp.compiler.classpath"/>
|
|
</taskdef>
|
|
<jasper2
|
|
verbose="1"
|
|
package="com.arsdigita"
|
|
uriroot="${{deploy.dir}}"
|
|
webXmlFragment="${{build.dir}}/generated_web.xml"
|
|
outputDir="${{build.dir}}/jsp-java" />
|
|
</target>
|
|
|
|
<target name="build-jsp" depends="compile-jsp" if="jsp.compiler.available">
|
|
<mkdir dir="${{build.dir}}/jsp-classes"/>
|
|
<javac destdir="${{build.dir}}/jsp-classes" verbose="${{compile.verbose}}" deprecation="${{compile.deprecation}}" optimize="${{compile.optimize}}" debug="${{compile.debug}}">
|
|
<src path="${{build.dir}}/jsp-java"/>
|
|
<include name="**/*.java"/>
|
|
<classpath refid="jsp.compiler.classpath"/>
|
|
<classpath refid="verify.build.classpath"/>
|
|
</javac>
|
|
</target>
|
|
|
|
<target name="no-build-jsp" unless="jsp.compiler.available">
|
|
<echo message="JSP verification skipped. The CATALINA_HOME environment variable must point to a Tomcat 4.1 installation."/>
|
|
</target>
|
|
|
|
<target name="verify-jsp" depends="build-jsp,no-build-jsp"/>
|
|
|
|
</xsl:template>
|
|
|
|
<!--
|
|
Here is where we insert additional servlet mappings and declarations into
|
|
web.xml. First we check to see if the file exist. Then we load their
|
|
contents. If the files exist but are empty, then the properties will not get
|
|
set, which is why the loading is split out into a separate target.
|
|
-->
|
|
<xsl:template name="DeployConfigWeb">
|
|
<xsl:param name="name"/>
|
|
<xsl:param name="directory"/>
|
|
<target name="deploy-check-webxml-{$name}">
|
|
<condition property="deploy.webxml.{$name}">
|
|
<and>
|
|
<available file="{$directory}/servlet-declarations.xml"/>
|
|
<available file="{$directory}/servlet-mappings.xml"/>
|
|
</and>
|
|
</condition>
|
|
</target>
|
|
<target name="deploy-load-webxml-{$name}" if="deploy.webxml.{$name}" depends="init,deploy-check-webxml-{$name}">
|
|
<loadfile property="{$name}.webxml.servdec" srcfile="{$directory}/servlet-declarations.xml"/>
|
|
<loadfile property="{$name}.webxml.servmap" srcfile="{$directory}/servlet-mappings.xml"/>
|
|
<condition property="deploy.webxml.loaded.{$name}">
|
|
<and>
|
|
<isset property="{$name}.webxml.servdec"/>
|
|
<isset property="{$name}.webxml.servmap"/>
|
|
</and>
|
|
</condition>
|
|
</target>
|
|
<target name="_deploy-config-web-{$name}" if="deploy.webxml.loaded.{$name}" depends="init,deploy-load-webxml-{$name}">
|
|
<replace
|
|
dir="${{deploy.web.dir}}"
|
|
includes="web.xml.*"
|
|
token="<!-- ADDITIONAL SERVLET DECLARATIONS -->"
|
|
value="<!-- ADDITIONAL SERVLET DECLARATIONS --> ${{{$name}.webxml.servdec}}"/>
|
|
<replace
|
|
dir="${{deploy.web.dir}}"
|
|
includes="web.xml.*"
|
|
token="<!-- ADDITIONAL SERVLET MAPPINGS -->"
|
|
value="<!-- ADDITIONAL SERVLET MAPPINGS --> ${{{$name}.webxml.servmap}}"/>
|
|
</target>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetDeploy">
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
|
|
<target name="deploy-web">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:text>,deploy-web-</xsl:text>
|
|
<xsl:value-of select="@name"/>
|
|
</xsl:for-each>
|
|
</xsl:attribute>
|
|
</target>
|
|
|
|
<!-- Deploy hooks -->
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
|
|
<target name="deploy-{$name}-hook" if="build.hook.{$name}">
|
|
<ant antfile="build-hooks.xml" target="deploy-hook" dir="{$name}"/>
|
|
</target>
|
|
|
|
<xsl:if test="/ccm:project/@type != 'styling'">
|
|
<!-- Deploy classes -->
|
|
<target name="_deploy-classes-{$name}" depends="build-{$name}" if="deploy.classes.{$name}">
|
|
<copy todir="${{deploy.dir}}/WEB-INF/classes">
|
|
<xsl:if test="@overwrite"><xsl:attribute name="overwrite">yes</xsl:attribute></xsl:if>
|
|
<fileset dir="{$name}/${{build.classes.dir}}">
|
|
<include name="**"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- Deploy libs -->
|
|
<target name="_deploy-lib-{$name}" if="deploy.lib.{$name}">
|
|
<copy todir="${{deploy.dir}}/WEB-INF/lib">
|
|
<xsl:if test="@overwrite"><xsl:attribute name="overwrite">yes</xsl:attribute></xsl:if>
|
|
<fileset dir="{$name}/${{lib.dir}}">
|
|
<include name="**"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- Deploy pdl -->
|
|
<target name="_deploy-pdl-{$name}" if="deploy.pdl.{$name}">
|
|
<copy todir="${{deploy.dir}}/WEB-INF/pdl">
|
|
<xsl:if test="@overwrite"><xsl:attribute name="overwrite">yes</xsl:attribute></xsl:if>
|
|
<fileset dir="{$name}/${{pdl.dir}}">
|
|
<include name="**"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- Deploy sql -->
|
|
<target name="_deploy-sql-{$name}" if="deploy.sql.{$name}" depends="generate-sql-{$name}">
|
|
<copy todir="${{deploy.dir}}/WEB-INF/sql/{$name}">
|
|
<xsl:if test="@overwrite"><xsl:attribute name="overwrite">yes</xsl:attribute></xsl:if>
|
|
<fileset dir="{$name}/${{build.sql.dir}}">
|
|
<include name="**"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
</xsl:if>
|
|
|
|
<!-- Deploy web -->
|
|
<target name="_deploy-web-{$name}" if="deploy.web.{$name}">
|
|
<copy todir="${{deploy.dir}}">
|
|
<xsl:if test="@overwrite"><xsl:attribute name="overwrite">yes</xsl:attribute></xsl:if>
|
|
<fileset dir="{$name}/${{web.dir}}">
|
|
<include name="**"/>
|
|
<exclude name="**/web.xml*"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<xsl:if test="/ccm:project/@type != 'styling'">
|
|
<!-- Deploy classes wrapper -->
|
|
<target name="deploy-classes-{$name}" depends="deploy-check-{$name},_deploy-classes-{$name}"/>
|
|
|
|
<!-- Deploy lib wrapper -->
|
|
<target name="deploy-lib-{$name}" depends="deploy-check-{$name},_deploy-lib-{$name}"/>
|
|
|
|
<!-- Deploy pdl wrapper -->
|
|
<target name="deploy-pdl-{$name}" depends="deploy-check-{$name},_deploy-pdl-{$name}"/>
|
|
|
|
<!-- Deploy sql wrapper -->
|
|
<target name="deploy-sql-{$name}" depends="deploy-check-{$name},_deploy-sql-{$name}"/>
|
|
</xsl:if>
|
|
|
|
<!-- Deploy web wrapper -->
|
|
<target name="deploy-web-{$name}" depends="deploy-check-{$name},_deploy-web-{$name}"/>
|
|
|
|
<!-- Check which dirs to deploy -->
|
|
<target name="deploy-check-{$name}">
|
|
<xsl:if test="/ccm:project/@type != 'styling'">
|
|
<available property="deploy.classes.{$name}" file="{$name}/src"/>
|
|
<available property="deploy.pdl.{$name}" file="{$name}/pdl"/>
|
|
<available property="deploy.sql.{$name}" file="{$name}/sql"/>
|
|
<available property="deploy.lib.{$name}" file="{$name}/lib"/>
|
|
</xsl:if>
|
|
<available property="deploy.web.{$name}" file="{$name}/web"/>
|
|
</target>
|
|
|
|
<!-- Deploy app -->
|
|
<target name="deploy-{$name}">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:text>,build-</xsl:text><xsl:value-of select="@name"/>
|
|
<xsl:text>,deploy-</xsl:text><xsl:value-of select="@name"/><xsl:text>-hook</xsl:text>
|
|
<xsl:text>,deploy-check-</xsl:text><xsl:value-of select="@name"/>
|
|
<xsl:if test="/ccm:project/@type != 'styling'">
|
|
<xsl:text>,deploy-classes-</xsl:text><xsl:value-of select="@name"/>
|
|
<xsl:text>,deploy-lib-</xsl:text><xsl:value-of select="@name"/>
|
|
<xsl:text>,deploy-pdl-</xsl:text><xsl:value-of select="@name"/>
|
|
<xsl:text>,deploy-sql-</xsl:text><xsl:value-of select="@name"/>
|
|
</xsl:if>
|
|
<xsl:text>,deploy-web-</xsl:text><xsl:value-of select="@name"/>
|
|
</xsl:attribute>
|
|
</target>
|
|
</xsl:for-each>
|
|
|
|
<target name="deploy-config-init-local" depends="init">
|
|
<copy tofile="${{deploy.init.dir}}/enterprise.init" file="enterprise.init-local">
|
|
<xsl:if test="@overwrite"><xsl:attribute name="overwrite">yes</xsl:attribute></xsl:if>
|
|
</copy>
|
|
<copy tofile="${{deploy.init.dir}}/enterprise.init.in" file="enterprise.init.in-local">
|
|
<xsl:if test="@overwrite"><xsl:attribute name="overwrite">yes</xsl:attribute></xsl:if>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="deploy-config-init" depends="init">
|
|
<copy tofile="${{deploy.init.dir}}/enterprise.init" file="enterprise.init">
|
|
<xsl:if test="@overwrite"><xsl:attribute name="overwrite">yes</xsl:attribute></xsl:if>
|
|
</copy>
|
|
<copy tofile="${{deploy.init.dir}}/enterprise.init.in" file="enterprise.init.in">
|
|
<xsl:if test="@overwrite"><xsl:attribute name="overwrite">yes</xsl:attribute></xsl:if>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="deploy-config-webxml-local" depends="init">
|
|
<xsl:if test="/ccm:project/ccm:build/ccm:application">
|
|
<mkdir dir="${{deploy.web.dir}}"/>
|
|
<concat destfile="${{deploy.web.dir}}/servlet-declarations.xml">
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<fileset dir="{$name}/etc" includes="servlet-declarations.xml"/>
|
|
</xsl:for-each>
|
|
</concat>
|
|
<concat destfile="${{deploy.web.dir}}/servlet-mappings.xml">
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<fileset dir="{$name}/etc" includes="servlet-mappings.xml"/>
|
|
</xsl:for-each>
|
|
</concat>
|
|
</xsl:if>
|
|
</target>
|
|
|
|
<target name="deploy-config-webxml" depends="init,deploy-config-webxml-local">
|
|
<mkdir dir="${{deploy.web.dir}}"/>
|
|
<xsl:if test="/ccm:project/@extends or /ccm:project/ccm:prebuilt/ccm:application">
|
|
<concat destfile="${{deploy.web.dir}}/servlet-declarations.xml" append="true">
|
|
<xsl:if test="/ccm:project/@extends">
|
|
<xsl:variable name="extends"><xsl:value-of select="@extends"/></xsl:variable>
|
|
<xsl:variable name="extendsVersion"><xsl:value-of select="@extendsVersion"/></xsl:variable>
|
|
<fileset dir="${{ccm.projects.dist.dir}}/{$extends}-{$extendsVersion}/etc" includes="servlet-declarations.xml"/>
|
|
</xsl:if>
|
|
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="version"><xsl:value-of select="@version"/></xsl:variable>
|
|
<fileset dir="${{ccm.apps.dist.dir}}/{$name}-{$version}/etc" includes="servlet-declarations.xml"/>
|
|
</xsl:for-each>
|
|
</concat>
|
|
<concat destfile="${{deploy.web.dir}}/servlet-mappings.xml" append="true">
|
|
<xsl:if test="/ccm:project/@extends">
|
|
<xsl:variable name="extends"><xsl:value-of select="@extends"/></xsl:variable>
|
|
<xsl:variable name="extendsVersion"><xsl:value-of select="@extendsVersion"/></xsl:variable>
|
|
<fileset dir="${{ccm.projects.dist.dir}}/{$extends}-{$extendsVersion}/etc" includes="servlet-mappings.xml"/>
|
|
</xsl:if>
|
|
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="version"><xsl:value-of select="@version"/></xsl:variable>
|
|
<fileset dir="${{ccm.apps.dist.dir}}/{$name}-{$version}/etc" includes="servlet-mappings.xml"/>
|
|
</xsl:for-each>
|
|
</concat>
|
|
</xsl:if>
|
|
</target>
|
|
|
|
<target name="_deploy-config-web" depends="init" if="ccm.servlet.engine">
|
|
<copy tofile="${{deploy.web.dir}}/web.xml" file="${{deploy.web.dir}}/web.xml.${{ccm.servlet.engine}}"/>
|
|
</target>
|
|
|
|
<xsl:if test="/ccm:project/@extends">
|
|
<xsl:call-template name="DeployConfigWeb">
|
|
<xsl:with-param name="name"><xsl:value-of select="@extends"/></xsl:with-param>
|
|
<xsl:with-param name="directory">
|
|
<xsl:text>${ccm.projects.dist.dir}/</xsl:text>
|
|
<xsl:value-of select="@extends"/>
|
|
<xsl:text>-</xsl:text>
|
|
<xsl:value-of select="@extendsVersion"/>
|
|
<xsl:text>/etc</xsl:text>
|
|
</xsl:with-param>
|
|
</xsl:call-template>
|
|
</xsl:if>
|
|
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:call-template name="DeployConfigWeb">
|
|
<xsl:with-param name="name"><xsl:value-of select="@name"/></xsl:with-param>
|
|
<xsl:with-param name="directory">
|
|
<xsl:text>${ccm.apps.dist.dir}/</xsl:text>
|
|
<xsl:value-of select="@name"/>
|
|
<xsl:text>-</xsl:text>
|
|
<xsl:value-of select="@version"/>
|
|
<xsl:text>/etc</xsl:text>
|
|
</xsl:with-param>
|
|
</xsl:call-template>
|
|
</xsl:for-each>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:call-template name="DeployConfigWeb">
|
|
<xsl:with-param name="name"><xsl:value-of select="@name"/></xsl:with-param>
|
|
<xsl:with-param name="directory"><xsl:value-of select="@name"/><xsl:text>/etc</xsl:text></xsl:with-param>
|
|
</xsl:call-template>
|
|
</xsl:for-each>
|
|
|
|
<target name="_deploy-config-web-resetwebxml">
|
|
<delete quiet="true">
|
|
<fileset dir="${{deploy.web.dir}}">
|
|
<include name="web.xml*"/>
|
|
</fileset>
|
|
</delete>
|
|
</target>
|
|
|
|
<target name="_deploy-config-web-redeploy-webxml-local">
|
|
<mkdir dir="${{deploy.web.dir}}"/>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<copy todir="${{deploy.web.dir}}">
|
|
<fileset dir="{$name}">
|
|
<include name="${{web.dir}}/WEB-INF/web.xml.*"/>
|
|
</fileset>
|
|
<mapper type="glob" from="${{web.dir}}/WEB-INF/*" to="*"/>
|
|
</copy>
|
|
</xsl:for-each>
|
|
</target>
|
|
|
|
<target name="_deploy-config-web-redeploy-webxml" depends="_deploy-config-web-redeploy-webxml-local">
|
|
<mkdir dir="${{deploy.web.dir}}"/>
|
|
<xsl:if test="/ccm:project/@extends">
|
|
<xsl:variable name="extends"><xsl:value-of select="@extends"/></xsl:variable>
|
|
<xsl:variable name="extendsVersion"><xsl:value-of select="@extendsVersion"/></xsl:variable>
|
|
<copy todir="${{deploy.web.dir}}">
|
|
<fileset dir="${{ccm.projects.dist.dir}}/{$extends}-{$extendsVersion}/dist/WEB-INF/">
|
|
<include name="web.xml.*"/>
|
|
</fileset>
|
|
</copy>
|
|
</xsl:if>
|
|
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="version"><xsl:value-of select="@version"/></xsl:variable>
|
|
<copy todir="${{deploy.web.dir}}">
|
|
<fileset dir="${{ccm.apps.dist.dir}}/{$name}-{$version}/dist/WEB-INF/">
|
|
<include name="web.xml.*"/>
|
|
</fileset>
|
|
</copy>
|
|
</xsl:for-each>
|
|
</target>
|
|
|
|
<target name="deploy-config-web">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:text>,_deploy-config-web-resetwebxml</xsl:text>
|
|
<xsl:text>,_deploy-config-web-redeploy-webxml</xsl:text>
|
|
<xsl:if test="/ccm:project/@extends">
|
|
<xsl:text>,_deploy-config-web-</xsl:text><xsl:value-of select="@extends"/>
|
|
</xsl:if>
|
|
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:text>,_deploy-config-web-</xsl:text><xsl:value-of select="@name"/>
|
|
</xsl:for-each>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:text>,_deploy-config-web-</xsl:text><xsl:value-of select="@name"/>
|
|
</xsl:for-each>
|
|
<xsl:text>,_deploy-config-web</xsl:text>
|
|
</xsl:attribute>
|
|
</target>
|
|
|
|
<target name="deploy-config-web-orig">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:text>,_deploy-config-web-resetwebxml</xsl:text>
|
|
<xsl:text>,_deploy-config-web-redeploy-webxml</xsl:text>
|
|
</xsl:attribute>
|
|
</target>
|
|
|
|
<target name="deploy-config-web-orig-local">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:text>,_deploy-config-web-resetwebxml</xsl:text>
|
|
<xsl:text>,_deploy-config-web-redeploy-webxml-local</xsl:text>
|
|
</xsl:attribute>
|
|
</target>
|
|
|
|
<!-- Deploy config -->
|
|
<target name="deploy-config" depends="deploy-config-init,deploy-config-web"/>
|
|
|
|
<target name="deploy-parent">
|
|
<xsl:if test="/ccm:project/@extends">
|
|
<xsl:variable name="extends"><xsl:value-of select="@extends"/></xsl:variable>
|
|
<xsl:variable name="extendsVersion"><xsl:value-of select="@extendsVersion"/></xsl:variable>
|
|
<copy todir="${{deploy.dir}}" preservelastmodified="true">
|
|
<fileset dir="${{ccm.projects.dist.dir}}/{$extends}-{$extendsVersion}/dist">
|
|
<include name="**"/>
|
|
</fileset>
|
|
</copy>
|
|
</xsl:if>
|
|
</target>
|
|
|
|
<!-- Deploy prebuilt apps -->
|
|
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="version"><xsl:value-of select="@version"/></xsl:variable>
|
|
|
|
<target name="deploy-{$name}">
|
|
<copy todir="${{deploy.dir}}" preservelastmodified="true">
|
|
<fileset dir="${{ccm.apps.dist.dir}}/{$name}-{$version}/dist">
|
|
<include name="**"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
</xsl:for-each>
|
|
|
|
<target name="deploy-global">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:if test="/ccm:project/@extends">
|
|
<xsl:text>,deploy-parent</xsl:text>
|
|
</xsl:if>
|
|
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:text>,deploy-</xsl:text><xsl:value-of select="@name"/>
|
|
</xsl:for-each>
|
|
</xsl:attribute>
|
|
</target>
|
|
|
|
<target name="deploy-local">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:text>,deploy-</xsl:text><xsl:value-of select="@name"/>
|
|
</xsl:for-each>
|
|
</xsl:attribute>
|
|
</target>
|
|
|
|
<!-- Master deploy -->
|
|
<target name="deploy" depends="init,deploy-global,deploy-local,deploy-config"/>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetCopyTestPDL">
|
|
<xsl:param name="target" select="'default-value'"/>
|
|
<xsl:param name="order" select="'default-value'"/>
|
|
<target depends="init" name="copy-test-pdl-{$target}">
|
|
<mkdir dir="${{test.deploy.dir}}/WEB-INF/pdl"/>
|
|
<copy todir="${{test.deploy.dir}}/WEB-INF/pdl">
|
|
<fileset dir=".">
|
|
<include name="{$target}/${{test.pdl.dir}}/**"/>
|
|
</fileset>
|
|
<mapper type="glob" to="*" from="{$target}/${{test.pdl.dir}}${{file.separator}}*"/>
|
|
</copy>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application[number(@buildOrder) <= number($order)]">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<copy todir="${{test.deploy.dir}}/WEB-INF/pdl">
|
|
<fileset dir=".">
|
|
<include name="{$name}/${{pdl.dir}}/**"/>
|
|
</fileset>
|
|
<mapper type="glob" to="*" from="{$name}/${{pdl.dir}}${{file.separator}}*"/>
|
|
</copy>
|
|
</xsl:for-each>
|
|
<xsl:if test="/ccm:project/@extends">
|
|
<xsl:variable name="extends"><xsl:value-of select="/ccm:project/@extends"/></xsl:variable>
|
|
<xsl:variable name="extendsVersion"><xsl:value-of select="/ccm:project/@extendsVersion"/></xsl:variable>
|
|
<copy todir="${{test.deploy.dir}}/WEB-INF/pdl">
|
|
<fileset dir="${{ccm.projects.dist.dir}}/{$extends}-{$extendsVersion}/dist/WEB-INF">
|
|
<include name="pdl/**"/>
|
|
</fileset>
|
|
<mapper type="glob" to="*" from="pdl${{file.separator}}*"/>
|
|
</copy>
|
|
</xsl:if>
|
|
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application">
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="version"><xsl:value-of select="@version"/></xsl:variable>
|
|
<copy todir="${{test.deploy.dir}}/WEB-INF/pdl">
|
|
<fileset dir="${{ccm.apps.dist.dir}}/{$name}-{$version}/dist/WEB-INF">
|
|
<include name="pdl/**"/>
|
|
</fileset>
|
|
<mapper type="glob" to="*" from="pdl${{file.separator}}*"/>
|
|
</copy>
|
|
</xsl:for-each>
|
|
</target>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetGenerateTestSQL">
|
|
<xsl:param name="target" select="'default-value'"/>
|
|
<xsl:param name="database" select="'default-value'"/>
|
|
<xsl:param name="order" select="'default-value'"/>
|
|
<target if="generate.test.sql.{$target}"
|
|
unless="generate.test.sql.{$target}.uptodate"
|
|
depends="copy-test-sql-{$target},generate-test-sql-{$target}-check"
|
|
name="generate-test-ddl-{$target}-{$database}" >
|
|
<mkdir dir="{$target}/${{build.tests.sql.dir}}/{$database}"/>
|
|
<java failonerror="yes" classname="${{test.ddl.generator.classname}}" fork="yes">
|
|
<classpath refid="{$target}.build.classpath"/>
|
|
<arg line="-quiet"/>
|
|
<arg line="-generate-ddl {$target}/${{build.tests.sql.dir}}/{$database}"/>
|
|
<arg line="-database {$database}"/>
|
|
<arg line="-path {$target}/${{test.pdl.dir}}/com"/>
|
|
<xsl:call-template name="TargetPdlPath">
|
|
<xsl:with-param name="order" select="$order + 1"/>
|
|
</xsl:call-template>
|
|
</java>
|
|
</target>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetTest">
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
|
|
<target name="compile-tests-{$name}" depends="init,build-{$name}" if="{$name}.test.src.dir.exists">
|
|
<mkdir dir="{$name}/${{build.tests.dir}}"/>
|
|
<javac
|
|
debug="${{compile.debug}}"
|
|
optimize="${{compile.optimize}}"
|
|
deprecation="${{compile.deprecation}}"
|
|
verbose="${{compile.verbose}}"
|
|
destdir="{$name}/${{build.tests.dir}}">
|
|
<src path="{$name}/${{test.src.dir}}"/>
|
|
<include name="**/*.java"/>
|
|
<classpath refid="{$name}.tests.classpath"/>
|
|
</javac>
|
|
</target>
|
|
|
|
<target depends="init" name="copy-test-src-{$name}">
|
|
<mkdir dir="{$name}/${{build.tests.dir}}"/>
|
|
<copy todir="{$name}/${{build.tests.dir}}">
|
|
<fileset dir=".">
|
|
<include name="{$name}/${{test.src.dir}}/**"/>
|
|
<exclude name="{$name}/${{test.src.dir}}/**/*.java"/>
|
|
</fileset>
|
|
<mapper type="glob" to="*" from="{$name}/${{test.src.dir}}${{file.separator}}*"/>
|
|
</copy>
|
|
</target>
|
|
|
|
<target depends="init" name="copy-test-sql-{$name}">
|
|
<mkdir dir="{$name}/${{build.tests.sql.dir}}"/>
|
|
<copy todir="{$name}/${{build.tests.sql.dir}}">
|
|
<fileset dir="{$name}">
|
|
<include name="${{test.sql.dir}}/**/*.sql"/>
|
|
</fileset>
|
|
<mapper type="glob" to="*" from="${{test.sql.dir}}${{file.separator}}*"/>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="generate-test-sql-{$name}-check">
|
|
<condition property="generate.test.sql.{$name}">
|
|
<and>
|
|
<available classname="${{ddl.generator.resource}}" classpathref="{$name}.build.classpath"/>
|
|
<available file="{$name}/test/pdl/com"/>
|
|
</and>
|
|
</condition>
|
|
<uptodate property="generate.test.sql.{$name}.uptodate" targetfile="{$name}/${{build.tests.dir}}/.ddl-timestamp">
|
|
<srcfiles includes="${{test.pdl.dir}}/com/**/*.pdl" dir="{$name}"/>
|
|
</uptodate>
|
|
</target>
|
|
|
|
<target name="generate-test-sql-{$name}-timestamp">
|
|
<mkdir dir="{$name}/${{build.tests.dir}}"/>
|
|
<echo message="ddl-timestamp" file="{$name}/${{build.tests.dir}}/.ddl-timestamp"/>
|
|
</target>
|
|
|
|
<target name="generate-test-ddl-{$name}" depends="generate-test-ddl-{$name}-oracle-se,generate-test-ddl-{$name}-postgres,generate-test-sql-{$name}-timestamp"/>
|
|
|
|
<xsl:call-template name="TargetGenerateTestSQL">
|
|
<xsl:with-param name="target" select="$name"/>
|
|
<xsl:with-param name="database">oracle-se</xsl:with-param>
|
|
<xsl:with-param name="order" select="@buildOrder"/>
|
|
</xsl:call-template>
|
|
|
|
<xsl:call-template name="TargetGenerateTestSQL">
|
|
<xsl:with-param name="target" select="$name"/>
|
|
<xsl:with-param name="database">postgres</xsl:with-param>
|
|
<xsl:with-param name="order" select="@buildOrder"/>
|
|
</xsl:call-template>
|
|
|
|
<xsl:call-template name="TargetCopyTestPDL">
|
|
<xsl:with-param name="target" select="@name"/>
|
|
<xsl:with-param name="order" select="@buildOrder"/>
|
|
</xsl:call-template>
|
|
|
|
<target name="build-tests-{$name}" depends="compile-tests-{$name},copy-test-src-{$name}"/>
|
|
|
|
<target name="deploy-test-webapp-{$name}">
|
|
<antcall target="deploy">
|
|
<param name="deploy.dir" value="${{test.deploy.dir}}"/>
|
|
<param name="deploy.init.dir" value="${{test.deploy.dir}}/WEB-INF/resources"/>
|
|
<param name="deploy.web.dir" value="${{test.deploy.dir}}/WEB-INF"/>
|
|
</antcall>
|
|
</target>
|
|
|
|
<target name="runtests-{$name}" depends="build-tests-{$name},copy-test-pdl-{$name},generate-test-ddl-{$name},deploy-test-webapp-{$name}">
|
|
|
|
<mkdir dir="{$name}/${{test.tmp.dir}}"/>
|
|
<junit
|
|
printsummary="yes"
|
|
fork="yes"
|
|
haltonfailure="${{junit.test.haltonfailure}}"
|
|
haltonerror="${{junit.test.haltonerror}}"
|
|
dir="{$name}">
|
|
<classpath refid="{$name}.tests.classpath"/>
|
|
<classpath path="{$name}/${{build.tests.dir}}"/>
|
|
<classpath path="{$name}/${{build.tests.pdl.dir}}"/>
|
|
<formatter type="${{junit.formatter}}"/>
|
|
<sysproperty key="j2ee.webapp.dir" value="${{deploy.dir}}"/>
|
|
<sysproperty key="junit.usefail" value="${{junit.usefail}}"/>
|
|
<sysproperty key="junit.test" value="${{junit.test}}"/>
|
|
<sysproperty key="junit.usecactus" value="${{junit.usecactus}}"/>
|
|
<sysproperty key="sql.continue" value="${{test.sql.continue}}"/>
|
|
<sysproperty key="sql.verbose" value="${{test.sql.verbose}}"/>
|
|
<sysproperty key="test.base.dir" value="${{env.CCM_DEV_HOME}}/{$name}/${{build.tests.dir}}"/>
|
|
<sysproperty key="test.initscript" value="${{test.initscript}}"/>
|
|
<sysproperty key="test.server.url" value="${{test.server.url}}"/>
|
|
<sysproperty key="test.sql.dir" value="${{env.CCM_DEV_HOME}}/{$name}/${{build.tests.sql.dir.db}}"/>
|
|
<sysproperty key="test.tmp.dir" value="${{env.CCM_DEV_HOME}}/{$name}/${{test.tmp.dir}}"/>
|
|
<sysproperty key="test.webapp.dir" value="${{env.CCM_DEV_HOME}}/${{test.deploy.dir}}"/>
|
|
<batchtest todir="{$name}">
|
|
<fileset dir="{$name}/${{build.tests.dir}}">
|
|
<include name="**/${{junit.suite}}"/>
|
|
</fileset>
|
|
</batchtest>
|
|
</junit>
|
|
</target>
|
|
|
|
|
|
<target name="debugtests-{$name}" depends="build-tests-{$name},copy-test-pdl-{$name}">
|
|
<mkdir dir="{$name}/${{test.tmp.dir}}"/>
|
|
<junit
|
|
printsummary="yes"
|
|
fork="yes"
|
|
haltonfailure="${{junit.test.haltonfailure}}"
|
|
haltonerror="${{junit.test.haltonerror}}"
|
|
dir="{$name}">
|
|
<classpath refid="{$name}.build.classpath"/>
|
|
<classpath path="{$name}/${{build.tests.dir}}"/>
|
|
<classpath path="{$name}/${{build.tests.pdl.dir}}"/>
|
|
<jvmarg value="-Xdebug"/>
|
|
<jvmarg value="-Xrunjdwp:transport=dt_socket,address=${{test.remote.port}},server=y,suspend=y"/>
|
|
<jvmarg value="-Xnoagent"/>
|
|
<jvmarg value="-Djava.compiler=NONE"/>
|
|
<formatter type="${{junit.formatter}}"/>
|
|
<sysproperty key="j2ee.webapp.dir" value="${{deploy.dir}}"/>
|
|
<sysproperty key="junit.usefail" value="${{junit.usefail}}"/>
|
|
<sysproperty key="junit.test" value="${{junit.test}}"/>
|
|
<sysproperty key="junit.usecactus" value="${{junit.usecactus}}"/>
|
|
<sysproperty key="sql.continue" value="${{test.sql.continue}}"/>
|
|
<sysproperty key="sql.verbose" value="${{test.sql.verbose}}"/>
|
|
<sysproperty key="test.base.dir" value="{$name}/${{build.tests.dir}}"/>
|
|
<sysproperty key="test.initscript" value="${{test.initscript}}"/>
|
|
<sysproperty key="test.server.url" value="${{test.server.url}}"/>
|
|
<sysproperty key="test.sql.dir" value="{$name}/${{build.tests.sql.dir.db}}"/>
|
|
<sysproperty key="test.tmp.dir" value="{$name}/${{test.tmp.dir}}"/>
|
|
<sysproperty key="test.webapp.dir" value="${{env.CCM_DEV_HOME}}/${{test.deploy.dir}}"/>
|
|
<batchtest>
|
|
<fileset dir="{$name}/${{build.tests.dir}}">
|
|
<include name="**/${{junit.suite}}"/>
|
|
</fileset>
|
|
</batchtest>
|
|
</junit>
|
|
</target>
|
|
|
|
</xsl:for-each>
|
|
|
|
<target name="build-tests">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:text>,build-tests-</xsl:text><xsl:value-of select="@name"/>
|
|
</xsl:for-each>
|
|
</xsl:attribute>
|
|
</target>
|
|
|
|
<target name="runtests">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:text>,runtests-</xsl:text><xsl:value-of select="@name"/>
|
|
</xsl:for-each>
|
|
</xsl:attribute>
|
|
</target>
|
|
|
|
<target name="debugtests">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:text>,debugtests-</xsl:text><xsl:value-of select="@name"/>
|
|
</xsl:for-each>
|
|
</xsl:attribute>
|
|
</target>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetTestNoop">
|
|
<target name="runtests"/>
|
|
<target name="debugtests"/>
|
|
</xsl:template>
|
|
|
|
|
|
<xsl:template name="TargetJavadoc">
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="version"><xsl:value-of select="@version"/></xsl:variable>
|
|
<xsl:variable name="extends"><xsl:value-of select="/ccm:project/@extends"/></xsl:variable>
|
|
<xsl:variable name="extendsVersion"><xsl:value-of select="/ccm:project/@extendsVersion"/></xsl:variable>
|
|
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="prettyName"><xsl:value-of select="@prettyName"/></xsl:variable>
|
|
|
|
<target name="combine-src-{$name}" depends="init" if="{$name}.src.dir.exists">
|
|
<mkdir dir="${{javadoc.src.dir}}/{$name}"/>
|
|
<copy todir="${{javadoc.src.dir}}/{$name}">
|
|
<fileset dir="{$name}/${{src.dir}}">
|
|
<include name="**"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="_javadoc-{$name}" depends="combine-src-{$name}" if="{$name}.src.dir.exists">
|
|
<mkdir dir="${{app.javadoc.dir}}/{$name}"/>
|
|
<javadoc
|
|
maxmemory="134217728"
|
|
author="true"
|
|
version="true"
|
|
use="true"
|
|
destdir="${{app.javadoc.dir}}/{$name}"
|
|
bottom="
|
|
<i>Copyright (c) ${{YEAR}} Red Hat, Inc.
|
|
Corporation. All Rights Reserved.</i>
|
|
Generated at ${{TODAY}}:${{TSTAMP}} UTC"
|
|
windowtitle="{$prettyName} API Documentation"
|
|
doctitle="<h1>{$prettyName} API Documentation</h1>">
|
|
<packageset dir="${{javadoc.src.dir}}/{$name}">
|
|
<include name="**" />
|
|
</packageset>
|
|
<classpath refid="javadoc.build.classpath"/>
|
|
<link href="http://java.sun.com/j2se/1.3/docs/api/"/>
|
|
<link href="http://java.sun.com/j2ee/tutorial/api/"/>
|
|
</javadoc>
|
|
</target>
|
|
|
|
<target name="__javadoc-{$name}" unless="{$name}.src.dir.exists">
|
|
<echo message="Javadoc skipped because there are no source files"/>
|
|
</target>
|
|
|
|
<target name="javadoc-{$name}" depends="_javadoc-{$name},__javadoc-{$name}"/>
|
|
</xsl:for-each>
|
|
|
|
<target name="combine-src" depends="init">
|
|
<mkdir dir="${{build.dir}}"/>
|
|
<xsl:if test="/ccm:project/@type != 'application'">
|
|
<xsl:if test="/ccm:project/@extends">
|
|
<copy todir="${{build.dir}}">
|
|
<fileset dir="${{ccm.projects.dist.dir}}/{$extends}-{$extendsVersion}">
|
|
<include name="src/**"/>
|
|
</fileset>
|
|
</copy>
|
|
</xsl:if>
|
|
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="version"><xsl:value-of select="@version"/></xsl:variable>
|
|
<copy todir="${{build.dir}}">
|
|
<fileset dir="${{ccm.apps.dist.dir}}/{$name}-{$version}">
|
|
<include name="src/**"/>
|
|
</fileset>
|
|
</copy>
|
|
</xsl:for-each>
|
|
</xsl:if>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<copy todir="${{build.dir}}" includeEmptyDirs="false">
|
|
<fileset dir="{$name}">
|
|
<include name="${{src.dir}}/**"/>
|
|
</fileset>
|
|
</copy>
|
|
</xsl:for-each>
|
|
<available property="build.src.dir.exists" file="${{build.src.dir}}" type="dir"/>
|
|
</target>
|
|
|
|
<target name="_javadoc" depends="combine-src" if="build.src.dir.exists">
|
|
<mkdir dir="${{javadoc.dir}}"/>
|
|
<javadoc
|
|
maxmemory="134217728"
|
|
author="true"
|
|
version="true"
|
|
use="true"
|
|
destdir="${{javadoc.dir}}"
|
|
bottom="
|
|
<i>Copyright (c) ${{YEAR}} Red Hat, Inc.
|
|
Corporation. All Rights Reserved.</i>
|
|
Generated at ${{TODAY}}:${{TSTAMP}} UTC">
|
|
<xsl:attribute name="windowtitle">
|
|
<xsl:value-of select="/ccm:project/@prettyName"/><xsl:text> API Documentation</xsl:text>
|
|
</xsl:attribute>
|
|
<xsl:attribute name="doctitle">
|
|
<xsl:text><h1></xsl:text><xsl:value-of select="/ccm:project/@prettyName"/><xsl:text> API Documentation</h1></xsl:text>
|
|
</xsl:attribute>
|
|
<packageset dir="${{build.src.dir}}">
|
|
<include name="**" />
|
|
</packageset>
|
|
<classpath refid="javadoc.build.classpath"/>
|
|
<link href="http://java.sun.com/j2se/1.3/docs/api/"/>
|
|
<link href="http://java.sun.com/j2ee/tutorial/api/"/>
|
|
</javadoc>
|
|
</target>
|
|
|
|
<target name="__javadoc" unless="build.src.dir.exists">
|
|
<echo message="Javadoc skipped because there are no source files"/>
|
|
</target>
|
|
|
|
<target name="javadoc" depends="_javadoc,__javadoc"/>
|
|
|
|
<target name="deploy-api-nodeps" depends="">
|
|
<copy todir="${{deploy.api.dir}}">
|
|
<fileset dir="${{javadoc.dir}}">
|
|
<include name="**"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- Nasty hack, we have the -nodeps version so we can invoke
|
|
it separately from javadoc without regenerating all the docs -->
|
|
<target name="deploy-api" depends="javadoc,deploy-api-nodeps"/>
|
|
|
|
<target name="deploy-src" depends="combine-src">
|
|
<copy todir="${{deploy.src.dir}}">
|
|
<fileset dir="${{build.src.dir}}">
|
|
<include name="**"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="deploy-test">
|
|
<xsl:attribute name="depends">
|
|
<xsl:text>init</xsl:text>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:text>,build-tests-</xsl:text><xsl:value-of select="@name"/>
|
|
</xsl:for-each>
|
|
</xsl:attribute>
|
|
|
|
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
|
|
<mkdir dir="${{deploy.test.dir}}"/>
|
|
|
|
<copy todir="${{deploy.test.dir}}">
|
|
<fileset dir=".">
|
|
<include name="{$name}/${{test.dir}}/**"/>
|
|
</fileset>
|
|
<mapper type="glob" to="*" from="{$name}/${{test.dir}}${{file.separator}}*"/>
|
|
</copy>
|
|
|
|
<copy todir="${{deploy.test.classes.dir}}">
|
|
<fileset dir="{$name}/${{build.tests.dir}}">
|
|
<include name="**"/>
|
|
</fileset>
|
|
</copy>
|
|
</xsl:for-each>
|
|
</target>
|
|
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetMisc">
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
|
|
<target name="kaboom">
|
|
<echo>
|
|
_.-^^---....,,--_
|
|
_-- --_
|
|
< >)
|
|
| |
|
|
\._ _./
|
|
```--. . , ; .--'''
|
|
| | |
|
|
.-=|| | |=-.
|
|
`-=#$%@%$#=-'
|
|
| ; :|
|
|
_____.,-#%@$@%#$#~,._____
|
|
</echo>
|
|
</target>
|
|
|
|
<target name="larry">
|
|
<!-- Taken from alt.ascii-art - author Tua Xiong -->
|
|
<echo>
|
|
Credits:
|
|
-------
|
|
|
|
All hail Larry the CCM Lizard!
|
|
|
|
_.--~~~~~~~--._
|
|
/~ ___ ~-._ __
|
|
( /~ > /-._ _, o )~\\
|
|
\\ \< ~<<==\(\_| '''
|
|
_) ''' \\ `~'
|
|
'''
|
|
CCM Build Configuration tools were written and are
|
|
maintained by :
|
|
|
|
Daniel Berrange <berrange@redhat.com>
|
|
Dennis Gregorovic <dgregor@redhat.com>
|
|
|
|
</echo>
|
|
</target>
|
|
|
|
<target name="make-init-local">
|
|
<java classname="com.redhat.ccm.config.MakeInit"
|
|
classpath="${{ccm.config.dir}}/classes:${{ccm.config.dir}}/lib/jakarta-oro-2.0.4.jar">
|
|
<arg value="config.vars"/>
|
|
<arg value="enterprise.init-local"/>
|
|
<arg value="enterprise.init.in-local"/>
|
|
<xsl:call-template name="TargetMiscInitFiles">
|
|
<xsl:with-param name="local" select="1"/>
|
|
</xsl:call-template>
|
|
</java>
|
|
</target>
|
|
|
|
<target name="make-init">
|
|
<java classname="com.redhat.ccm.config.MakeInit"
|
|
classpath="${{ccm.config.dir}}/classes:${{ccm.config.dir}}/lib/jakarta-oro-2.0.4.jar">
|
|
<arg value="config.vars"/>
|
|
<arg value="enterprise.init"/>
|
|
<arg value="enterprise.init.in"/>
|
|
<xsl:call-template name="TargetMiscInitFiles"/>
|
|
</java>
|
|
</target>
|
|
|
|
<target name="backup-config" if="config.vars.exists" depends="init">
|
|
<copy file="config.vars" tofile="config.vars.bak" failonerror="false" preservelastmodified="true"/>
|
|
</target>
|
|
|
|
<target name="make-config-local" depends="backup-config">
|
|
<java classname="com.redhat.ccm.config.MakeConfig"
|
|
classpath="${{ccm.config.dir}}/classes:${{ccm.config.dir}}/lib/jakarta-oro-2.0.4.jar">
|
|
<sysproperty key="projectVars" value="project-name,${{project.name}}"/>
|
|
<arg value="config.vars"/>
|
|
<xsl:call-template name="TargetMiscInitFiles">
|
|
<xsl:with-param name="local" select="1"/>
|
|
</xsl:call-template>
|
|
</java>
|
|
</target>
|
|
|
|
<target name="make-config" depends="backup-config">
|
|
<java classname="com.redhat.ccm.config.MakeConfig"
|
|
classpath="${{ccm.config.dir}}/classes:${{ccm.config.dir}}/lib/jakarta-oro-2.0.4.jar">
|
|
<sysproperty key="projectVars" value="project-name,${{project.name}}"/>
|
|
<arg value="config.vars"/>
|
|
<xsl:call-template name="TargetMiscInitFiles"/>
|
|
</java>
|
|
</target>
|
|
|
|
<target name="update-config">
|
|
<move file="config.vars" tofile="config.vars.orig"/>
|
|
<java classname="com.redhat.ccm.config.IntegrateConfig"
|
|
classpath="${{ccm.config.dir}}/classes:${{ccm.config.dir}}/lib/jakarta-oro-2.0.4.jar">
|
|
<sysproperty key="projectVars" value="project-name,${{project.name}}"/>
|
|
<arg value="config.vars.orig"/>
|
|
<arg value="config.vars"/>
|
|
<xsl:call-template name="TargetMiscInitFiles"/>
|
|
</java>
|
|
</target>
|
|
|
|
<target name="pmd-check">
|
|
<available property="pmd.available" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="ccm.base.classpath"/>
|
|
</target>
|
|
|
|
<target name="pmd" depends="pmd-check" if="pmd.available">
|
|
<mkdir dir="${{pmd.report.dir}}"/>
|
|
<echo message="Generating ${{pmd.report.dir}}/${{pmd.report.file}} for *.java files"/>
|
|
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="ccm.base.classpath"/>
|
|
<pmd rulesetfiles="${{pmd.rulesets}}">
|
|
<formatter type="${{pmd.format}}" toFile="${{pmd.report.dir}}/${{pmd.report.file}}"/>
|
|
<fileset dir=".">
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<include name="{$name}/src/**/*.java"/>
|
|
</xsl:for-each>
|
|
</fileset>
|
|
</pmd>
|
|
</target>
|
|
|
|
<target name="fail-if-properties-not-set" unless="necessary.properties.set">
|
|
<echo message="One or more necessary build properties were not set. Make
|
|
sure that the CCM_DEV_HOME environment variable is set correctly and that a
|
|
valid ant.properties file exists there."/>
|
|
</target>
|
|
|
|
<target name="check-necessary-properties-set">
|
|
<condition property="necessary.properties.set">
|
|
<and>
|
|
<isset property="j2ee.webapp.dir"/>
|
|
<isset property="ccm.servlet.engine"/>
|
|
<isset property="test.initscript"/>
|
|
<isset property="test.server.url"/>
|
|
<isset property="test.server.cactusURL"/>
|
|
</and>
|
|
</condition>
|
|
</target>
|
|
|
|
<target name="init" depends="check-necessary-properties-set,fail-if-properties-not-set">
|
|
<echo message="${{ant.file}}"/>
|
|
<tstamp>
|
|
<format property="YEAR" pattern="yyyy"/>
|
|
</tstamp>
|
|
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<available property="build.hook.{$name}" file="{$name}/build-hooks.xml"/>
|
|
<available property="{$name}.test.src.dir.exists" file="{$name}/${{test.src.dir}}" type="dir"/>
|
|
<available property="{$name}.src.dir.exists" file="{$name}/${{src.dir}}" type="dir"/>
|
|
</xsl:for-each>
|
|
<available property="config.vars.exists" file="config.vars"/>
|
|
</target>
|
|
|
|
<target name="usage">
|
|
<echo>
|
|
<xsl:text>
|
|
ant [usage] - ant with no arguments prints this message
|
|
|
|
|
|
Shared Targets
|
|
|
|
ant build - builds all java files across all applications
|
|
ant deploy - builds and deploys all applications, also deploys
|
|
prebuilt applications and config files
|
|
ant deploy-config - deploy configuration files
|
|
ant deploy-prebuilt - deploy prebuilt applications
|
|
|
|
ant clean - cleans out the build environment and webapp dir
|
|
ant runtests - builds all applications and then runs unit tests
|
|
|
|
ant make-config - generate the master configuration file config.vars
|
|
ant update-config - add any new config options to config.vars
|
|
ant make-init - generate enterprise.init file substituting from config.vars
|
|
|
|
ant verify-pdl - Verify that the PDL files compile. Requires CCM Core 5.2 or greater.
|
|
ant verify-jsp - Verify that JSP files compile. Requires Tomcat 4.1
|
|
|
|
ant javadoc - generate the combined API documentation.
|
|
ant deploy-api - deploy the API documentation to the webapp root
|
|
|
|
</xsl:text>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
|
|
<xsl:text>
|
|
|
|
|
|
</xsl:text>
|
|
<xsl:value-of select="@name"/><xsl:text> Targets</xsl:text>
|
|
<xsl:text>
|
|
|
|
ant compile-</xsl:text><xsl:value-of select="@name"/><xsl:text>
|
|
ant build-</xsl:text><xsl:value-of select="@name"/><xsl:text>
|
|
|
|
ant deploy-</xsl:text><xsl:value-of select="@name"/><xsl:text>
|
|
ant deploy-classes-</xsl:text><xsl:value-of select="@name"/><xsl:text>
|
|
ant deploy-pdl-</xsl:text><xsl:value-of select="@name"/><xsl:text>
|
|
ant deploy-sql-</xsl:text><xsl:value-of select="@name"/><xsl:text>
|
|
ant deploy-lib-</xsl:text><xsl:value-of select="@name"/><xsl:text>
|
|
ant deploy-web-</xsl:text><xsl:value-of select="@name"/><xsl:text>
|
|
|
|
ant clean-build-</xsl:text><xsl:value-of select="@name"/><xsl:text>
|
|
ant clean-tests-</xsl:text><xsl:value-of select="@name"/><xsl:text>
|
|
|
|
ant runtests-</xsl:text><xsl:value-of select="@name"/><xsl:text>
|
|
ant debugtests-</xsl:text><xsl:value-of select="@name"/><xsl:text>
|
|
|
|
ant javadoc-</xsl:text><xsl:value-of select="@name"/><xsl:text>
|
|
|
|
</xsl:text>
|
|
</xsl:for-each>
|
|
</echo>
|
|
</target>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="TargetMiscInitFiles">
|
|
<xsl:param name="local" select="0"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="extends"><xsl:value-of select="/ccm:project/@extends"/></xsl:variable>
|
|
<xsl:variable name="extendsVersion"><xsl:value-of select="/ccm:project/@extendsVersion"/></xsl:variable>
|
|
<xsl:variable name="initFile"><xsl:value-of select="@initFile"/></xsl:variable>
|
|
<xsl:variable name="version"><xsl:value-of select="@version"/></xsl:variable>
|
|
|
|
<xsl:if test="not($local)">
|
|
<xsl:if test="/ccm:project/@extends">
|
|
<xsl:choose>
|
|
<xsl:when test="not(/ccm:project/@initFile)">
|
|
<arg value="${{ccm.projects.dist.dir}}/{$extends}-{$extendsVersion}/etc/enterprise.init.in"/>
|
|
</xsl:when>
|
|
<xsl:when test="@initFile != 'none'">
|
|
<arg value="{$initFile}"/>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:if>
|
|
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application" >
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="version"><xsl:value-of select="@version"/></xsl:variable>
|
|
<xsl:variable name="initFile"><xsl:value-of select="@initFile"/></xsl:variable>
|
|
<xsl:choose>
|
|
<xsl:when test="not(@initFile)">
|
|
<arg value="${{ccm.apps.dist.dir}}/{$name}-{$version}/etc/enterprise.init.in"/>
|
|
</xsl:when>
|
|
<xsl:when test="@initFile != 'none'">
|
|
<arg value="{$initFile}"/>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:for-each>
|
|
</xsl:if>
|
|
<xsl:for-each select="/ccm:project/ccm:build/ccm:application" >
|
|
<xsl:sort select="@buildOrder" data-type="number"/>
|
|
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
|
|
<xsl:variable name="initFile"><xsl:value-of select="@initFile"/></xsl:variable>
|
|
<xsl:choose>
|
|
<xsl:when test="not(@initFile)">
|
|
<arg value="{$name}/etc/enterprise.init.in"/>
|
|
</xsl:when>
|
|
<xsl:when test="@initFile != 'none'">
|
|
<arg value="{$initFile}"/>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:for-each>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|