Subversion Repositories DevTools

Rev

Rev 4148 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<project name="xdoclet-macrodef">

        <macrodef name="ant-ejbdoclet">

                <attribute name="srcdir"/>
                <attribute name="destdir"       default = "${basedir}/build/generate"/>
                <attribute name="ejbspec"       default = "2.1"/>
                <attribute name="jboss.version" default = "4.0"/>
                <attribute name="force"         default = "${xdoclet.force}"/>
                <attribute name="mergedir"      default = "${basedir}/xdoclet"/>

                <element name="xdoclet-classpath" optional="no" implicit="no" description="Anything you can put in a fileset."/>

                <sequential>

                        <taskdef name      = "ejbdoclet"
                                 classname = "xdoclet.modules.ejb.EjbDocletTask">
                                <classpath>
                                        <path id = "using.xdoclet.path">
                                        <fileset dir="${PACKAGE_xdoclet}/jar" includes="*.jar" />
                                        </path>
                                        <xdoclet-classpath/>
                                </classpath>
                        </taskdef>

                        <ejbdoclet destdir      = "@{destdir}" excludedtags = "@version,@author" ejbspec      = "@{ejbspec}" mergedir     = "@{mergedir}" force      = "@{force}">

                                <fileset dir="@{srcdir}">
                                        <!--</xdoclet-fileset>-->
                                        <include name="**/*Bean.java"/>
                                </fileset>

                                <!-- Generate 'api' classes; these include:
                                        * remote interfaces
                                        * remote home interfaces
                                        * value objects / data transfer objects (DTOs)
                                        * entity primary key classes (for CMP)
                                  -->
                                <remoteinterface    pattern="{0}"
                                                    destdir="@{destdir}/api"/>
                                <homeinterface      pattern="{0}Home"
                                                    destdir="@{destdir}/api"
                                                                        templateFile="${using.ant-ejbdoclet.basedir}/home-custom.xdt"/>
                                <valueobject        pattern="{0}Details"
                                                    destdir="@{destdir}/api"
                                                    templateFile="${using.ant-ejbdoclet.basedir}/valueobject-custom.xdt"/>
                                <entitypk           pattern="{0}Key"
                                                    destdir="@{destdir}/api"/>

                                <!-- Generate 'implementation' classes to be deployed on the server; these include:
                                        * local interfaces
                                        * local home interfaces
                                        * utility broker objects (some of which will be transferred to the API)
                                        * CMP entity beans
                                        * BMP entity beans
                                        * The deployment descriptor (both standard and JBoss-specific)
                                  -->
                                <localinterface     pattern="Local{0}"
                                                    destdir="@{destdir}/impl"/>
                                <localhomeinterface pattern="Local{0}Home"
                                                    destdir="@{destdir}/impl"
                                                                        templateFile="${using.ant-ejbdoclet.basedir}/local-home-custom.xdt"/>
                                <utilobject         pattern="{0}Broker"
                                                    destdir="@{destdir}/impl"
                                                    cacheHomes="true"
                                                    templateFile="${using.ant-ejbdoclet.basedir}/lookup-custom.xdt"/>
                                <entitycmp          destdir="@{destdir}/impl"/>
                                <entitybmp          destdir="@{destdir}/impl"/>
                                <deploymentdescriptor destdir="@{destdir}/impl/META-INF"/>
                                <jboss version     = "@{jboss.version}"
                                       mergeDir    = "@{mergedir}"
                                       xmlencoding = "UTF-8"
                                       destdir     = "@{destdir}/impl/META-INF"
                                       validateXml = "false"/>
                        </ejbdoclet>

                        <!-- Any brokers that act for remote EJBs should be in the API, so move them there -->
                        <move todir="@{destdir}/api">
                                <fileset dir="@{destdir}/impl" includes="**/*Broker.java">
                                        <contains text="cachedRemoteHome" casesensitive="no"/>
                                </fileset>
                        </move>

                </sequential>
        </macrodef>
</project>