| Target | Description |
|---|
| setup | show ant settings |
| gen | generate xdoclet ejb code |
| compile | compile source code, copy resources |
| dist | package distribution file |
| repo | add ejb to local Maven repository |
| clean | delete all non-source files |
| default | calls: clean, dist |
<?xml version="1.0" encoding="UTF-8"?>
<project name="ejb" default="default">
<description>
+ ==\_/============J=A=V=A=G=E=N===A=N=T===M=O=D=U=L=E=S================= +
+ \(_)/ +
+ -(_)- EJB Core Module +
+ /(_)\ +
+ ======================================================================= +
+ Copyright (c) 2002-2005 Outsource Cafe, Inc. All rights reserved. +
+ ======================================================================= +
+
+ Import this module for creating EJB jar distributions.
+ This file defines generic targets for xdoclet ejb code generation,
+ compilation, distribution creation, and clean up.
+ This file implements standard targets for module building.
+
+ Targets: setup, gen, compile, dist, repo, clean
+
+ Prerequisite imports:
+ props-global.xml, classpath.xml, appserver-X.xml
+
+ developer: RichardEasterling@OutsourceCafe.com
+ ======================================================================= +
+ 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.
+ =J=A=M===========================================J=A=V=A=G=E=N=.=C=O=M= +
</description>
<property name="EJB.PRESENT" value="true"></property>
<!-- ===================================================================== -->
<!-- public targets - override as needed -->
<!-- ===================================================================== -->
<target name="setup" depends="init, settings" description="show ant settings"></target>
<target name="gen" depends="init, ejbdoclet" description="generate xdoclet ejb code"></target>
<target name="compile" depends="gen, javac, resources" description="compile source code, copy resources"></target>
<target name="dist" depends="compile, jar.ejb" description="package distribution file"></target>
<target name="repo" depends="dist, ejb.install" description="add ejb to local Maven repository"></target>
<target name="clean" depends="clean.build, clean.dist" description="delete all non-source files"></target>
<target name="default" depends="clean, dist" description="calls: clean, dist"></target>
<!-- ===================================================================== -->
<!-- sanity checks -->
<!-- ===================================================================== -->
<fail unless="PROPS-GLOBAL.PRESENT" message="props-global.xml must be imported before ejb.xml in build file."></fail>
<fail unless="CLASSPATH.PRESENT" message="classpath.xml must be imported before ejb.xml in build file. Regeneration of classpath.xml required when upgrading to JAM 2.1. Type: maven jam"></fail>
<fail unless="APPSERVER.PRESENT" message="appserver-X.xml (where X = jboss, weblogic, etc) must be imported before ejb.xml in build file."></fail>
<available property="jdk1.3+" classname="java.lang.StrictMath"></available>
<fail unless="jdk1.3+" message="Java versions prior to 1.3 not supported"></fail>
<target name="check">
<echo>DEPRICATED, no longer needed. All checks are now in-lined.</echo>
</target>
<!-- ===================================================================== -->
<!-- local properties -->
<!-- ===================================================================== -->
<property name="maven.type" value="ejb"></property>
<property name="maven.folder" value="${maven.groupId}/${maven.type}s"></property>
<property name="dist.name" value="${module.name}-${module.version}.jar"></property>
<property name="dist.file" location="${dist.dir}/${dist.name}"></property>
<property name="pom.file.name" value="${module.name}-${module.version}.pom"></property>
<property name="pom.file" value="${basedir}/project.xml"></property>
<property name="ejb.table.create" value="true"></property>
<property name="gen.ejb.uptodate.file" location="${xdoclet.build.dir}/ejb-uptodate.txt"></property>
<!-- ===================================================================== -->
<!-- jboss defaults -->
<!-- ===================================================================== -->
<property name="jboss.version" value="3.0"></property>
<property name="jboss.type.mapping" value="${database.name}"></property>
<property name="jboss.datasource.name" value="${datasource.name}"></property>
<!-- ===================================================================== -->
<!-- init -->
<!-- ===================================================================== -->
<target name="init" depends="">
<mkdir dir="${build.classes.dir}"></mkdir>
<mkdir dir="${src.java.dir}"></mkdir>
<mkdir dir="${gen.java.dir}"></mkdir>
<mkdir dir="${src.resources.dir}"></mkdir>
<mkdir dir="${xdoclet.merge.dir}"></mkdir>
<mkdir dir="${xdoclet.build.java.dir}"></mkdir>
<taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask" classpathref="xdoclet.classpath"></taskdef>
<!--
<taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask">
<classpath>
<path refid="build.classpath"/>
<pathelement location="${commons-logging.jar}"/>
<pathelement location="${commons-collections.jar}"/>
<pathelement location="${xjavadoc.jar}"/>
<pathelement location="${maven.repo}/xdoclet/jars/xdoclet-1.2.jar"/>
<pathelement location="${maven.repo}/xdoclet/jars/xdoclet-ejb-module-1.2.jar"/>
<pathelement location="${maven.repo}/xdoclet/jars/xdoclet-jboss-module-1.2.jar"/>
<pathelement location="${maven.repo}/xdoclet/jars/xdoclet-jmx-module-1.2.jar"/>
<pathelement location="${maven.repo}/xdoclet/jars/xdoclet-web-module-1.2.jar"/>
<pathelement location="${maven.repo}/xdoclet/jars/xdoclet-caucho-module-1.2.2.jar"/>
<pathelement location="${maven.repo}/xdoclet/jars/xdoclet-bea-module-1.2.2.jar"/>
<pathelement location="${maven.repo}/xdoclet/jars/xdoclet-ibm-module-1.2.2.jar"/>
</classpath>
</taskdef>
-->
<tstamp>
<format property="buildtime" pattern="yyyy-MM-dd'T'HH:mm:ss"></format>
</tstamp>
<echo file="${timestamp.path}" message="build.timestamp=${buildtime}"></echo>
</target>
<!-- ===================================================================== -->
<!-- setup -->
<!-- ===================================================================== -->
<target name="settings" depends="">
<echo>
+ ==\_/======J=A=V=A=G=E=N===A=N=T===M=O=D=U=L=E=S============= +
+ \(_)/ +
+ -(_)- EJB Build Settings +
+ /(_)\ +
+ ============================================================= +
+
module.name = ${module.name}
module.version = ${module.version}
dist.name = ${dist.name}
appserver.name = ${appserver.name}
appserver.version = ${appserver.version}
testtool.name = ${testtool.name}
compiler.debug = ${compiler.debug}
java.home = ${java.home}
java.version = ${ant.java.version}
ant.home = ${ant.home}
ant.version = ${ant.version}
maven.folder = ${maven.folder}
maven.home = ${maven.home}
maven.repo = ${maven.repo}
jam.home = ${jam.home}
appserver.deploy.dir = ${appserver.deploy.dir}
database.name = ${database.name}
datasource.name = ${datasource.name}
+
+ =J=A=M=================================J=A=V=A=G=E=N=.=C=O=M= +
</echo>
</target>
<!-- =================================================================== -->
<!-- uptodate compares java source to ${gen.ejb.uptodate.file} -->
<!-- =================================================================== -->
<target name="gen.uptodate" depends="init">
<uptodate property="ejbdoclet.uptodate" targetfile="${gen.ejb.uptodate.file}">
<!-- removed: triggers ejbdoclet every time if any files use Ant filters:
<srcfiles dir="${xdoclet.merge.dir}"/>
-->
<srcfiles dir="${src.java.dir}"></srcfiles>
<srcfiles dir="${gen.java.dir}"></srcfiles>
</uptodate>
<echo>ejbdoclet.uptodate = ${ejbdoclet.uptodate}</echo>
</target>
<!-- =================================================================== -->
<!-- webdoclet.macro - is this more flexible? -->
<!-- =================================================================== -->
<macrodef name="ejbdoclet.macro">
<attribute name="destdir" default="${xdoclet.build.java.dir}"></attribute>
<attribute name="metainfdir" default="${xdoclet.build.metainf.dir}"></attribute>
<attribute name="validatexml" default="${xdoclet.validatexml}"></attribute>
<attribute name="excludedtags" default="${xdoclet.excludedtags}"></attribute>
<attribute name="addedtags" default="@xdoclet-generated at ${TODAY},@copyright ${copyright},@author ${author},@version ${version}"></attribute>
<attribute name="mergedir" default="${xdoclet.merge.dir}"></attribute>
<attribute name="ejbspec" default="${ejb.spec.version}"></attribute>
<attribute name="verbose" default="false"></attribute>
<attribute name="force" default="true"></attribute>
<attribute name="useIds" default="true"></attribute>
<element name="fileset.tag" optional="no"></element>
<element name="predd.tag" optional="yes"></element>
<element name="postdd.tag" optional="yes"></element>
<sequential>
<mkdir dir="@{metainfdir}"></mkdir>
<echo>EJBDOCLET-MACRO destdir =@{destdir}</echo>
<echo>EJBDOCLET-MACRO ejbspec =@{ejbspec}</echo>
<echo>EJBDOCLET-MACRO mergedir=@{mergedir}</echo>
<ejbdoclet destdir="@{destdir}" ejbspec="@{ejbspec}" addedtags="@{addedtags}" verbose="@{verbose}" mergedir="@{mergedir}" excludedtags="@{excludedtags}" force="@{force}">
<fileset.tag></fileset.tag>
<predd.tag></predd.tag>
<deploymentdescriptor useIds="@{useIds}" destdir="@{metainfdir}" validatexml="@{validatexml}"></deploymentdescriptor>
<postdd.tag></postdd.tag>
</ejbdoclet>
<tstamp>
<format property="gen_ejb_timestamp" pattern="yyyy-MM-dd'T'HH-mm-ss"></format>
</tstamp>
<echo file="${gen.ejb.uptodate.file}" message="gen.ejb.timestamp=${gen_ejb_timestamp}"></echo>
</sequential>
</macrodef>
<!-- =================================================================== -->
<!-- ejbdoclet targets for building EJBs -->
<!-- =================================================================== -->
<target name="ejbdoclet" unless="ejbdoclet.uptodate" depends="gen.uptodate">
<ejbdoclet.macro>
<fileset.tag>
<fileset dir="${src.java.dir}">
<include name="**/*${xdoclet.ejb.suffix}.java"></include>
</fileset>
<fileset dir="${gen.java.dir}">
<include name="**/*${xdoclet.ejb.suffix}.java"></include>
</fileset>
</fileset.tag>
<predd.tag>
<entitycmp></entitycmp>
<packageSubstitution packages="stateless" substituteWith="interfaces"></packageSubstitution>
<remoteinterface></remoteinterface>
<localinterface></localinterface>
<homeinterface></homeinterface>
<utilobject kind="${xdoclet.jndi.kind}" cacheHomes="${xdoclet.ejb.cache.homes}" includeGUID="${xdoclet.ejb.include.guid}"></utilobject>
<localhomeinterface></localhomeinterface>
<session></session>
</predd.tag>
<postdd.tag>
<jboss version="${jboss.version}" xmlencoding="${xdoclet.xmlencoding}" typemapping="${jboss.type.mapping}" datasource="${jboss.datasource.name}" destdir="${xdoclet.build.metainf.dir}" validateXml="${xdoclet.validatexml}"></jboss>
<!--
<resin-ejb-xml generateSourceComments="true" validateXML="${xdoclet.validatexml}" acceptAbstractClasses="true" acceptInterfaces="false" destDir="${xdoclet.build.metainf.dir}"/>
<websphere useIds="true" destdir="${xdoclet.build.metainf.dir}" mergedir="${xdoclet.merge.dir}" validateXml="${xdoclet.validatexml}"/>
<weblogic destdir="${xdoclet.build.metainf.dir}" version="7.0" validateDbSchemaWith="MetaData" mergedir="${xdoclet.merge.dir}" validateXml="${xdoclet.validatexml}"/>
-->
</postdd.tag>
</ejbdoclet.macro>
</target>
<!-- =================================================================== -->
<!-- DEPRICATED DEPRICATED: use ejbdoclet instead DEPRICATED DEPRICATED -->
<!-- Generates the supporing EJB classes and deployment descriptors -->
<!-- =================================================================== -->
<target name="gen.ejb" depends="ejbdoclet">
<echo>DEPRICATED, use 'ejbdoclet' instead.</echo>
</target>
<!-- =================================================================== -->
<!-- compiles the source code and copy resources conditionaly -->
<!-- =================================================================== -->
<target name="javac">
<javac destdir="${build.classes.dir}" source="${compiler.source}" target="${compiler.target}" classpathref="build.classpath" debug="${compiler.debug}" deprecation="${compiler.deprecation}" optimize="${compiler.optimize}" compiler="${compiler.type}" excludes="${compiler.excludes}">
<src path="${xdoclet.build.java.dir}"></src>
<src path="${src.java.dir}"></src>
<src path="${gen.java.dir}"></src>
<patternset refid="source.modifications.patternset"></patternset>
</javac>
</target>
<!-- =================================================================== -->
<!-- 'resources' target - copy resources to target/classpath -->
<!-- =================================================================== -->
<!-- the 'resources' target, found in classpath.xml, is generated from the POM.
The default project.xml entry for EJBs is:
<build>
<sourceDirectory>src/java</sourceDirectory>
<integrationUnitTestSourceDirectory>src/test-cactus</integrationUnitTestSourceDirectory>
<resources>
<resource>
<directory>src/resources</directory>
</resource>
<resource>
<directory>src/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>src-gen/resources</directory>
</resource>
<resource>
<directory>src-gen/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>target/xdoclet/resources</directory>
</resource>
<resource>
<directory>target/xdoclet/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>target/xdoclet</directory>
<includes>
<include>META-INF/*</include>
</includes>
</resource>
</resources>
</build>
-->
<!-- =================================================================== -->
<!-- creates ejb jar archive -->
<!-- =================================================================== -->
<target name="jar.ejb" depends="">
<delete file="{dist.file}" failonerror="false"></delete>
<mkdir dir="${dist.dir}"></mkdir>
<jar jarfile="${dist.file}">
<fileset dir="${build.classes.dir}" includes="**"></fileset>
</jar>
</target>
<!-- =================================================================== -->
<!-- Clean targets -->
<!-- =================================================================== -->
<target name="clean.build" depends="">
<delete dir="${build.dir}"></delete>
</target>
<target name="clean.dist" depends="">
<delete dir="${dist.dir}"></delete>
</target>
<!-- =================================================================== -->
<!-- installs ejb jar in Maven repository -->
<!-- =================================================================== -->
<target name="ejb.install" depends="">
<mkdir dir="${maven.repo}/${maven.folder}"></mkdir>
<copy file="${dist.file}" todir="${maven.repo}/${maven.folder}"></copy>
<checksum fileext=".md5" file="${maven.repo}/${maven.folder}/${dist.name}" forceoverwrite="true"></checksum>
<mkdir dir="${maven.repo}/${maven.groupId}/poms"></mkdir>
<copy file="${pom.file}" tofile="${maven.repo}/${maven.groupId}/poms/${pom.file.name}"></copy>
</target>
</project>