167 lines
7.8 KiB
XML
167 lines
7.8 KiB
XML
<?xml version="1.0"?>
|
|
<!--
|
|
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.
|
|
|
|
$Header:$
|
|
-->
|
|
|
|
<!--
|
|
This Ant build file contains <macrodef>s that are used to build
|
|
Beehive-related source artifacts.
|
|
-->
|
|
<project name="Beehive/Tools" default="usage">
|
|
|
|
<path id="apt.task.classpath">
|
|
<path refid="controls.dependency.path"/>
|
|
<path refid="velocity.dependency.path"/>
|
|
</path>
|
|
|
|
<macrodef name="build-schemas">
|
|
<attribute name="srcdir" description="The directory containing XML Schemas or XMLBeans xsdconfig files to build"/>
|
|
<attribute name="destdir" description="The directory to use for files generated during an XSD build"/>
|
|
<sequential>
|
|
<taskdef name="xmlbeanbuild"
|
|
classname="org.apache.xmlbeans.impl.tool.XMLBean"
|
|
classpathref="xbean.dependency.path"/>
|
|
|
|
<xmlbeanbuild classpathref="xbean.dependency.path"
|
|
schema="@{srcdir}"
|
|
classgendir="@{destdir}"
|
|
failonerror="true"/>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<macrodef name="build-controls">
|
|
<attribute name="srcdir" description="The directory containing controls to build. Required."/>
|
|
<attribute name="destdir" description="The destination directory for compiled class files. Required."/>
|
|
<attribute name="tempdir" description="The temporary directory for generated files. Required."/>
|
|
<attribute name="classpathref" description="The classpath reference for building the controls. Required."/>
|
|
<attribute name="nocompile" default="false" description="Flag to decide whether to skip compilation. Optional; defaults to false"/>
|
|
<sequential>
|
|
<taskdef name="apt"
|
|
classname="org.apache.beehive.controls.runtime.generator.AptTask"
|
|
classpathref="apt.task.classpath"
|
|
onerror="fail"/>
|
|
|
|
<!--
|
|
since Velocity is required at build time for controls, it needs to be
|
|
explicitly added here via the velocity.dependency.path
|
|
-->
|
|
<path id="_controls.build.classpath">
|
|
<path refid="@{classpathref}"/>
|
|
<path refid="velocity.dependency.path"/>
|
|
</path>
|
|
|
|
<apt srcdir="@{srcdir}"
|
|
destdir="@{destdir}"
|
|
gendir="@{tempdir}"
|
|
classpathref="_controls.build.classpath"
|
|
compileByExtension="true"
|
|
srcExtensions="*.java,*.jcx,*.jcs,*.jws"
|
|
debug="true"
|
|
nocompile="@{nocompile}"/>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<!--
|
|
This macrodef is intended for the compilation of the *page flow* portions of a web application.
|
|
This macrodef will *not* compile controls inside of a web application. If the web application
|
|
contains controls, they should be compiled first using the macrodef "build-controls";
|
|
once the compilation of the controls is complete, the page flows within the web app can be compiled
|
|
using the macrodef below.
|
|
-->
|
|
<macrodef name="build-pageflows">
|
|
<attribute name="srcdir" description="The root directory which will be scanned for source files. Required."/>
|
|
<attribute name="classpathref" description="The classpath reference for building page flows. Required."/>
|
|
<attribute name="sourcepathref"
|
|
default="_pageflow.default.sourcepath"
|
|
description="A reference to a path that contains all the source roots. Optional; defaults to a path that contains @{srcdir} and @{srcdir}/WEB-INF/src."/>
|
|
<attribute name="webcontentdir"
|
|
default="@{srcdir}"
|
|
description="The root location for web content (e.g., JSPs, web.xml, etc.). Optional; defaults to @{srcdir}."/>
|
|
<attribute name="destdir"
|
|
default="@{srcdir}/WEB-INF/classes"
|
|
description="The directory for compiled classes and generated resources. Optional; defaults to @{srcdir}/WEB-INF/classes."/>
|
|
<attribute name="tempdir"
|
|
default="@{srcdir}/WEB-INF/.tmpbeansrc"
|
|
description="The directory for any temporary or generated files. Optional; defaults to @{srcdir}/WEB-INF/.tmpbeansrc."/>
|
|
<attribute name="nocompile"
|
|
default="false"
|
|
description="Flag to decide whether to skip compilation. Optional; defaults to false"/>
|
|
<sequential>
|
|
<taskdef name="apt"
|
|
classname="org.apache.beehive.controls.runtime.generator.AptTask"
|
|
classpathref="apt.task.classpath"
|
|
onerror="fail"/>
|
|
|
|
<!--
|
|
since the annotation processor for JPFs isn't contained inside of the JPF runtime
|
|
JAR, it needs to be explicitly added here via the netui-compiler.dependency.path
|
|
-->
|
|
<path id="_pageflow.build.classpath">
|
|
<path refid="@{classpathref}"/>
|
|
<path refid="netui-compiler.dependency.path"/>
|
|
<path refid="velocity.dependency.path"/>
|
|
</path>
|
|
|
|
<path id="_pageflow.default.sourcepath">
|
|
<pathelement path="@{srcdir}"/>
|
|
<pathelement path="@{srcdir}/WEB-INF/src"/>
|
|
</path>
|
|
|
|
<property name="_pageflow.build.classpath" refid="_pageflow.build.classpath"/>
|
|
<property name="_pageflow.build.sourcepath" refid="@{sourcepathref}"/>
|
|
|
|
<echo> srcdir: @{srcdir}</echo>
|
|
<echo> classpath: ${_pageflow.build.classpath}</echo>
|
|
<echo> sourcepath: ${_pageflow.build.sourcepath}</echo>
|
|
<echo> webcontentdir: @{webcontentdir}</echo>
|
|
<echo> destdir: @{destdir}</echo>
|
|
<echo> tempdir: @{tempdir}</echo>
|
|
|
|
<mkdir dir="@{destdir}"/>
|
|
|
|
<apt srcdir="@{srcdir}"
|
|
destdir="@{destdir}"
|
|
gendir="@{tempdir}"
|
|
classpathref="_pageflow.build.classpath"
|
|
sourcepathref="@{sourcepathref}"
|
|
srcExtensions="*.jpf,*.jpfs,*.app,*.jsfb,*.java"
|
|
processorOptions="web.content.root=@{webcontentdir}"
|
|
debug="true"
|
|
nocompile="@{nocompile}"/>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<!-- create a jar of a control -->
|
|
<taskdef name="control-jar"
|
|
classname="org.apache.beehive.controls.runtime.packaging.ControlJarTask"
|
|
classpathref="controls.dependency.path" onerror="report" />
|
|
|
|
<target name="usage" description="Print the usage for this Ant build file.">
|
|
<echo>
|
|
The beehive-tools.xml file contains Ant macros which can be used
|
|
to build Beehive related source artifacts such as Controls, Page Flows,
|
|
and XML Schemas. For examples of how to use these macros, see the
|
|
Beehive samples.
|
|
|
|
Note, this build file does not contain targets that can be called
|
|
directly on the command line.
|
|
</echo>
|
|
</target>
|
|
|
|
</project>
|