blob: 552a2ecfa31a7e1aca8ca0f045b6356aeccfd818 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<!-- ======================================================================== -->
<!-- -->
<!-- maven Buildfile -->
<!-- -->
<!-- $Id$ -->
<!-- -->
<!-- ======================================================================== -->
<project
xmlns:j="jelly:core"
xmlns:u="jelly:util"
xmlns:maven="jelly:maven"
default="jar:jar">
<!-- ================================================================== -->
<!-- C O M P I L E P R E - G O A L -->
<!-- ================================================================== -->
<!-- Before compiling the Turbine Source Code, it is necessary to -->
<!-- generate the Torque Peers. This preGoal runs the prepare-sources -->
<!-- target. -->
<!-- ================================================================== -->
<preGoal name="java:compile">
<attainGoal name="prepare-sources"/>
<!-- Hack for Maven bug when compiling with a clean target. -->
<j:if test="${sourcesPresent != 'true'}">
<j:set var="sourcesPresent" value="true"/>
<path id="maven.compile.src.set" location="target/src"/>
</j:if>
</preGoal>
<!-- ================================================================== -->
<!-- C O M P I L E P O S T - G O A L -->
<!-- ================================================================== -->
<!-- executed before the building of the jar, it copies all the various -->
<!-- resource files into the jar build directory -->
<!-- ================================================================== -->
<postGoal name="java:compile">
<copy
file="${maven.src.dir}/dtd/intake.dtd"
todir="${maven.build.dest}/org/apache/turbine/services/intake/transform"
/>
<copy
file="${maven.src.dir}/macros/TurbineMacros.vm"
todir="${maven.build.dest}/macros"
/>
</postGoal>
<!-- ================================================================== -->
<!-- T O R Q U E - I N I T P R E - G O A L -->
<!-- ================================================================== -->
<!-- The schema files for the Torque peers must be prepared and some -->
<!-- variables added. This must be done before doing any torque work -->
<!-- ================================================================== -->
<preGoal name="torque:init">
<attainGoal name="copy-om"/>
</preGoal>
<!-- ================================================================== -->
<!-- P R E P A R E S O U R C E S -->
<!-- ================================================================== -->
<!-- This target builds the torque peers needed to compile the Turbine -->
<!-- distribution. If you don't want to build the whole code with -->
<!-- maven but use an IDE (e.g. Eclipse), you can run this target and -->
<!-- use target/src as your source directory. -->
<!-- ================================================================== -->
<goal name="prepare-sources" description="Copy Turbine and Torque generated sources to target/src">
<copy todir="target/src">
<fileset dir="src/java"/>
</copy>
<attainGoal name="generate-om"/>
</goal>
<!-- ================================================================== -->
<!-- T O R Q U E G E N E R A T I O N G O A L -->
<!-- ================================================================== -->
<!-- Generates only the java classes for the peers of the scheduler and -->
<!-- the torque security service -->
<!-- ================================================================== -->
<goal name="generate-om" description="Generate Torque peer classes in target/src"
prereqs="scheduler-om, torque-security-om"/>
<!-- ================================================== -->
<!-- Prepare all Sources for Torque -->
<!-- ================================================== -->
<goal name="copy-om" description="Copy all schema files to target/xml and replace database related variables"
prereqs="copy-scheduler-om ,copy-torque-security-om, copy-id-table-om"/>
<!-- ================================================== -->
<!-- Prepare Scheduler Sources for Torque -->
<!-- ================================================== -->
<goal name="copy-scheduler-om" description="Copy scheduler schema files to target/xml and replace database related variables">
<filter token="DATABASE_DEFAULT" value="${scheduler.database.name}"/>
<filter token="EXTRA_USER_COLUMNS" value="${scheduler.extra.user.columns}"/>
<copy
file="src/schema/scheduler-schema.xml"
tofile="${torque.schema.dir}/scheduler-schema.xml"
filtering="yes"/>
</goal>
<!-- ================================================== -->
<!-- Prepare Torque Security Service Sources for Torque -->
<!-- ================================================== -->
<goal name="copy-torque-security-om" description="Copy torque security service schema files to target/xml and replace database related variables">
<filter token="DATABASE_DEFAULT" value="${torque.security.database.name}"/>
<copy
file="src/schema/torque-security-schema.xml"
tofile="${torque.schema.dir}/torque-security-schema.xml"
filtering="yes"/>
</goal>
<!-- ================================================== -->
<!-- Prepare ID Table (for idBroker) Sources for Torque -->
<!-- ================================================== -->
<goal name="copy-id-table-om" description="Copy id-table schema files to target/xml and replace database related variables">
<filter token="DATABASE_DEFAULT" value="${scheduler.database.name}"/>
<copy
file="src/schema/id-table-schema.xml"
tofile="${torque.schema.dir}/scheduler-idtable-schema.xml"
filtering="yes"/>
<filter token="DATABASE_DEFAULT" value="${torque.security.database.name}"/>
<copy
file="src/schema/id-table-schema.xml"
tofile="${torque.schema.dir}/torque-security-idtable-schema.xml"
filtering="yes"/>
</goal>
<!-- ================================================== -->
<!-- Build Peers for the Scheduler -->
<!-- ================================================== -->
<goal name="scheduler-om" description="generate Torque peers for the scheduler"
prereqs="copy-scheduler-om">
<j:set var="torque.project" value="scheduler"/>
<j:set var="torque.schema.om.includes" value="scheduler-schema.xml"/>
<j:set var="torque.targetPackage" value="${scheduler.package}"/>
<attainGoal name="torque:om"/>
<j:set var="outputDirectory" value="" />
</goal>
<!-- ================================================== -->
<!-- Build Peers for Torque Security -->
<!-- ================================================== -->
<goal name="torque-security-om" description="generate Torque peers for the torque security service"
prereqs="copy-torque-security-om">
<j:set var="torque.project" value="torque-security"/>
<j:set var="torque.schema.om.includes" value="torque-security-schema.xml"/>
<j:set var="torque.targetPackage" value="${torque.security.package}"/>
<attainGoal name="torque:om"/>
<j:set var="outputDirectory" value="" />
</goal>
<!-- ================================================== -->
<!-- Build SQL files -->
<!-- ================================================== -->
<goal name="sql" description="generate Torque SQL">
<echo>Building SQL files for ${torque.database}</echo>
<attainGoal name="torque:sql"/>
<attainGoal name="torque:id-table-init-sql"/>
<j:set var="outputDirectory" value="" />
</goal>
<!-- ================================================================== -->
<!-- D I S T : B U I L D _ S R C P R E G O A L -->
<!-- ================================================================== -->
<preGoal name="dist:build-src">
<copy todir="${maven.dist.src.assembly.dir}/conf">
<fileset dir="${basedir}/conf">
<include name="test/*"/>
<include name="checkstyle-license.txt"/>
<include name="turbine-checkstyle.xml"/>
<include name="test/turbine-resources/**/*"/>
</fileset>
</copy>
<copy todir="${maven.dist.src.assembly.dir}/xdocs">
<fileset dir="xdocs"/>
</copy>
<copy todir="${maven.dist.src.assembly.dir}">
<fileset dir="${basedir}">
<include name="pom.xml"/>
<include name="project.xml"/>
<include name="project.properties"/>
<include name="NOTICE"/>
<include name="LICENSE.txt"/>
</fileset>
</copy>
</preGoal>
<!-- ================================================================== -->
<!-- D I S T : B U I L D _ B I N P R E G O A L -->
<!-- ================================================================== -->
<!-- copies jars, sample configuration ... to the -->
<!-- ${maven.dist.bin.assembly.dir} to include them in the binary dists -->
<!-- ================================================================== -->
<preGoal name="dist:build-bin">
<attainGoal name="copy-dist-libs"/>
<!-- copy the contents of the conf directory -->
<!-- to the right place -->
<copy todir="${maven.dist.bin.assembly.dir}/conf" failonerror="false">
<fileset dir="conf">
<include name="componentConfiguration.xml" />
<include name="roleConfiguration.xml" />
<include name="Log4j.properties" />
<include name="TurbineResources.properties" />
</fileset>
</copy>
<copy todir="${maven.dist.bin.assembly.dir}" failonerror="false">
<fileset file='${basedir}/NOTICE'/>
<fileset file='${basedir}/LICENSE.txt'/>
</copy>
<u:tokenize var="databaseList" delim="," trim="true">db2,hypersonic,interbase,mysql,oracle,postgresql,sybase</u:tokenize>
<j:forEach var="torque.database" items="${databaseList}">
<attainGoal name="sql"/>
<j:set var="outputDirectory" value="" />
<copy todir="${maven.dist.bin.assembly.dir}/sql/${torque.database}" >
<fileset dir="${torque.sql.dir}">
<include name="*.sql"/>
</fileset>
</copy>
</j:forEach>
</preGoal>
<goal name="copy-dist-libs">
<!-- include listed dependencies -->
<j:forEach var="dep" items="${pom.dependencies}">
<j:if test="${dep.getProperty('dist.bundle') != null &amp;&amp; dep.getProperty('dist.bundle').equalsIgnoreCase('true')}">
<copy todir="${maven.dist.bin.assembly.dir}/lib"
file="${maven.repo.local}/${dep.getArtifactDirectory()}/jars/${dep.getArtifact()}"/>
</j:if>
</j:forEach>
</goal>
</project>