1 <?xml version="1.0" encoding="utf-8" ?>
2 <project name="gss" default="deploy" basedir=".">
3 <description>The GSS project build file</description>
5 <property file="build.properties"/>
7 <property name="jboss_run_configuration" value="default" />
8 <property name="root.context" value="gss" />
9 <property name="gwt.module" value="gr.ebs.gss.GSS" />
10 <property name="gwt.module.class" value="GSS" />
12 <property environment="env" />
14 <!-- Application server specific configuration -->
15 <property name="jboss-spec.dir" value="${basedir}/jboss" />
16 <property name="jboss-spec.conf.dir" value="${jboss-spec.dir}/conf" />
17 <property name="jboss-spec.bin.dir" value="${jboss-spec.dir}/bin" />
18 <property name="jboss-spec.deploy.dir" value="${jboss-spec.dir}/deploy" />
19 <property name="jboss-spec.lib.dir" value="${jboss-spec.dir}/lib" />
21 <!-- Production deployment specific configuration -->
22 <property name="jboss-spec.prod.dir" value="${basedir}/jboss-production" />
23 <property name="jboss-spec.prod.conf.dir" value="${jboss-spec.prod.dir}/conf" />
24 <property name="jboss-spec.prod.bin.dir" value="${jboss-spec.prod.dir}/bin" />
25 <property name="jboss-spec.prod.deploy.dir" value="${jboss-spec.prod.dir}/deploy" />
26 <property name="jboss-spec.prod.lib.dir" value="${jboss-spec.prod.dir}/lib" />
29 <property name="jboss.home" value="${env.JBOSS_HOME}" />
30 <property name="jboss.prod.home" value="${env.JBOSS_PROD_HOME}" />
31 <property name="jboss.version" value="${env.JBOSS_VERSION}" />
32 <property name="gwt.path" value="${env.GWT_PATH}" />
33 <property name="hornetq.path" value="${env.HORNETQ_PATH}" />
34 <property name="src.dir" value="${basedir}/src"/>
36 <property name="jboss.project" value="${basedir}/jboss-config/${jboss.version}" />
37 <property name="jboss.bin.dir" value="${jboss.home}/bin" />
38 <property name="jboss.conf.dir" value="${jboss.home}/server/${jboss_run_configuration}/conf" />
39 <property name="jboss.deploy.dir" value="${jboss.home}/server/${jboss_run_configuration}/deploy" />
40 <property name="jboss.run_conf.lib.dir" value="${jboss.home}/server/${jboss_run_configuration}/lib" />
41 <property name="jboss.lib.dir" value="${jboss.home}/lib" />
42 <property name="jboss.common.lib.dir" value="${jboss.home}/common/lib" />
44 <property name="jboss.prod.bin.dir" value="${jboss.prod.home}/bin" />
45 <property name="jboss.prod.conf.dir" value="${jboss.prod.home}/server/${jboss_run_configuration}/conf" />
46 <property name="jboss.prod.deploy.dir" value="${jboss.prod.home}/server/${jboss_run_configuration}/deploy" />
47 <property name="jboss.prod.run_conf.lib.dir" value="${jboss.prod.home}/server/${jboss_run_configuration}/lib" />
48 <property name="jboss.prod.lib.dir" value="${jboss.prod.home}/lib" />
49 <property name="jboss.prod.common.lib.dir" value="${jboss.prod.home}/common/lib" />
52 <property name="mbeans.dir" value="${basedir}/mbeans"/>
53 <property name="mbeans.meta-inf.dir" value="${mbeans.dir}/META-INF"/>
56 <property name="test.dir" value="${basedir}/test" />
57 <property name="test.src.dir" value="${test.dir}/src"/>
60 <property name="build.dir" value="${basedir}/bin" />
61 <property name="build.classes.dir" value="${build.dir}/classes" />
62 <property name="test.build.dir" value="${build.dir}" />
63 <property name="test.build.classes.dir" value="${test.build.dir}/" />
64 <property name="gwt.www.dir" value="${basedir}/www" />
65 <property name="dist.war" value="${ant.project.name}.war"/>
66 <property name="webdav.war" value="webdav.war"/>
67 <property name="dist.ear" value="${ant.project.name}.ear"/>
69 <property name="war.dir" value="${basedir}/war" />
70 <property name="war.web-inf.dir" value="${war.dir}/WEB-INF"/>
71 <property name="war.lib.dir" value="${war.web-inf.dir}/lib"/>
72 <property name="webdav.war.dir" value="${basedir}/webdav" />
73 <property name="webdav.war.web-inf.dir" value="${webdav.war.dir}/WEB-INF"/>
74 <property name="webdav.war.lib.dir" value="${webdav.war.web-inf.dir}/lib"/>
75 <property name="ear.dir" value="${basedir}/ear" />
76 <property name="ear.lib.dir" value="${ear.dir}/lib" />
78 <property name="mbeans.dist.file" value="${ant.project.name}-mbeans.sar"/>
80 <!-- set classpath -->
81 <path id="project.class.path">
82 <pathelement path="${java.class.path}/" />
83 <pathelement path="${gwt.path}/gwt-user.jar" />
84 <pathelement location="${jboss.common.lib.dir}/commons-logging.jar"/>
85 <pathelement location="${jboss.common.lib.dir}/commons-httpclient.jar"/>
86 <pathelement location="${jboss.common.lib.dir}/ejb3-persistence.jar"/>
87 <pathelement location="${jboss.common.lib.dir}/jboss-javaee.jar"/>
88 <pathelement location="${jboss.common.lib.dir}/jbosssx.jar"/>
89 <pathelement location="${jboss.common.lib.dir}/hibernate-core.jar"/>
90 <pathelement location="${jboss.lib.dir}/jboss-j2se.jar"/>
91 <pathelement location="${jboss.lib.dir}/jboss-kernel.jar"/>
92 <pathelement location="${jboss.lib.dir}/jboss-system-jmx.jar"/>
93 <pathelement location="${jboss.lib.dir}/jboss-system.jar"/>
94 <pathelement location="${jboss.lib.dir}/jbosssx.jar"/>
95 <pathelement location="${ear.lib.dir}/commons-codec-1.3.jar"/>
96 <pathelement location="${ear.lib.dir}/commons-configuration-1.6.jar"/>
97 <pathelement location="${war.lib.dir}/commons-fileupload-1.2.jar"/>
98 <pathelement location="${ear.lib.dir}/commons-lang.jar"/>
99 <pathelement location="${junit.path}/junit.jar"/>
100 <pathelement location="${basedir}/lib/gwt-dnd-3.0.0.jar"/>
101 <pathelement location="${basedir}/lib/gwt-gears.jar"/>
104 <target name="install" description="Installs the configuration files of the application server">
105 <!-- Install HornetQ configuration -->
106 <copy todir="${jboss.run_conf.lib.dir}">
107 <fileset dir="${hornetq.path}/lib">
108 <include name="hornetq-*.jar"/>
109 <include name="netty*.jar"/>
112 <property name="hornetq.sar.dir" value="${jboss.deploy.dir}/hornetq.sar"/>
113 <mkdir dir="${hornetq.sar.dir}"/>
114 <copy todir="${hornetq.sar.dir}">
115 <fileset dir="${hornetq.path}/config/jboss-as/non-clustered" includes="*" excludes="**/jboss-as-4/**"/>
117 <unzip src="${hornetq.path}/lib/hornetq-ra.rar" dest="${jboss.deploy.dir}/hornetq-ra.rar"/>
118 <delete dir="${jboss.deploy.dir}/messaging" failonerror="false"/>
119 <mkdir dir="${jboss.bin.dir}/META-INF/lib/linux2/x86"/>
120 <mkdir dir="${jboss.bin.dir}/META-INF/lib/linux2/x64"/>
121 <copy todir="${jboss.bin.dir}/META-INF/lib/linux2/x86" file="${hornetq.path}/bin/libHornetQAIO32.so"/>
122 <copy todir="${jboss.bin.dir}/META-INF/lib/linux2/x64" file="${hornetq.path}/bin/libHornetQAIO64.so"/>
123 <!-- Install gss configuration -->
124 <copy todir="${jboss.bin.dir}" overwrite="true" failonerror="false">
125 <fileset dir="${jboss.project}/bin"/>
127 <copy todir="${jboss.bin.dir}" overwrite="true" failonerror="false">
128 <fileset dir="${jboss-spec.bin.dir}" />
130 <copy todir="${jboss.conf.dir}" overwrite="true" failonerror="false">
131 <fileset dir="${jboss.project}/conf"/>
133 <copy todir="${jboss.conf.dir}" overwrite="true" failonerror="false">
134 <fileset dir="${jboss-spec.conf.dir}"/>
136 <copy todir="${jboss.run_conf.lib.dir}" overwrite="true" failonerror="false">
137 <fileset dir="${jboss.project}/lib"/>
139 <copy todir="${jboss.run_conf.lib.dir}" overwrite="true" failonerror="false">
140 <fileset dir="${jboss-spec.lib.dir}" />
142 <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
143 <fileset dir="${jboss.project}/deploy"/>
145 <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
146 <fileset dir="${jboss-spec.deploy.dir}" />
150 <target name="install-production" description="Installs the configuration files for the production deployment of the application server">
151 <copy todir="${jboss.prod.bin.dir}" overwrite="true" failonerror="false">
152 <fileset dir="${jboss.project}/bin"/>
154 <copy todir="${jboss.prod.bin.dir}" overwrite="true" failonerror="false">
155 <fileset dir="${jboss-spec.prod.bin.dir}" />
157 <copy todir="${jboss.prod.conf.dir}" overwrite="true" failonerror="false">
158 <fileset dir="${jboss.project}/conf"/>
160 <copy todir="${jboss.prod.conf.dir}" overwrite="true" failonerror="false">
161 <fileset dir="${jboss-spec.prod.conf.dir}"/>
163 <copy todir="${jboss.prod.run_conf.lib.dir}" overwrite="true" failonerror="false">
164 <fileset dir="${jboss.project}/lib"/>
166 <copy todir="${jboss.prod.run_conf.lib.dir}" overwrite="true" failonerror="false">
167 <fileset dir="${jboss-spec.prod.lib.dir}" />
169 <copy todir="${jboss.prod.deploy.dir}" overwrite="true" failonerror="false">
170 <fileset dir="${jboss.project}/deploy"/>
172 <copy todir="${jboss.prod.deploy.dir}" overwrite="true" failonerror="false">
173 <fileset dir="${jboss-spec.prod.deploy.dir}" />
177 <target name="compile" description="Compile src to bin">
179 <javac srcdir="src:test" destdir="bin" debug="on" debuglevel="lines,vars,source" source="1.6">
180 <classpath refid="project.class.path" />
184 <target name="package-code" depends="compile" description="Package up the project code as a jar">
185 <jar destfile="${build.dir}/${ant.project.name}.jar">
187 <include name="org/json/**" />
188 <include name="**/server/**" />
189 <exclude name="**/domain/**"/>
190 <exclude name="**/ejb/**"/>
191 <exclude name="**/soap/**"/>
196 <target name="package-webdav" depends="compile" description="Package up the webdav code as a jar">
197 <jar destfile="${build.dir}/webdav.jar">
199 <include name="**/webdav/**" />
204 <target name="package-ejb" depends="compile" description="Package up the EJB classes">
205 <jar destfile="${build.dir}/ejbs.jar">
206 <zipfileset dir="${basedir}/persistence" />
207 <zipfileset dir="${build.dir}">
208 <include name="**/configuration/**" />
209 <include name="**/exceptions/**" />
210 <include name="**/domain/**" />
211 <include name="**/ejb/**" />
212 <include name="**/soap/**" />
213 <exclude name="**/*Test.class"/>
218 <target name="check-gwt-compile" depends="compile">
219 <uptodate property="compilation-not-needed">
220 <srcfiles dir="${src.dir}" excludes="**/server/**"/>
221 <mergemapper to="${build.dir}/www/gr.ebs.gss.GSS.nocache.js"/>
225 <target name="gwt-compile" depends="check-gwt-compile" unless="compilation-not-needed" description="Compile client code to JavaScript">
226 <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev.jar">
227 <available file="${gwt.path}/gwt-dev.jar" />
230 <java classname="com.google.gwt.dev.Compiler" failonerror="true" fork="true">
231 <!--arg value="-style"/>
232 <arg value="DETAILED"/-->
233 <arg value="-localWorkers" />
236 <arg value="${gwt.www.dir}"/>
237 <arg value="${gwt.module}"/>
240 <pathelement location="dist/test.jar"/>
241 <pathelement path="${gwt-dev-lib}"/>
242 <path refid="project.class.path" />
243 <pathelement path="${src.dir}" />
246 <mkdir dir="${build.dir}/www"/>
247 <copy todir="${build.dir}/www">
248 <fileset dir="${gwt.www.dir}/${gwt.module}" excludes="**/${gwt.module.class}.html">
251 <copy file="${gwt.www.dir}/${gwt.module}/${gwt.module.class}.html" tofile="${build.dir}/www/index.html" />
254 <target name="package-war" depends="gwt-compile, package-code" description="Package up the web part as a war">
255 <jar destfile="${build.dir}/${dist.war}">
256 <zipfileset dir="${war.dir}" />
257 <zipfileset dir="${build.dir}/www" />
258 <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
259 <include name="${ant.project.name}.jar" />
261 <zipfileset dir="${gwt.path}" prefix="WEB-INF/lib">
262 <include name="gwt-servlet.jar" />
267 <target name="package-webdav-war" depends="package-webdav" description="Package up the WebDAV part as a war">
268 <jar destfile="${build.dir}/${webdav.war}">
269 <zipfileset dir="${webdav.war.dir}" />
270 <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
271 <include name="webdav.jar" />
276 <target name="package-mbeans" depends="compile">
277 <jar jarfile="${build.dir}/${mbeans.dist.file}" basedir="${build.dir}">
278 <include name="**/mbeans/**"/>
279 <metainf dir="${mbeans.meta-inf.dir}"/>
283 <target name="package-ear" depends="package-war, package-webdav-war, package-ejb, package-mbeans" description="Package up the project as an ear">
284 <jar destfile="${build.dir}/${dist.ear}">
285 <zipfileset dir="${ear.dir}" />
286 <zipfileset dir="${build.dir}">
287 <include name="ejbs.jar" />
288 <include name="${dist.war}" />
289 <include name="${webdav.war}" />
290 <include name="${mbeans.dist.file}"/>
295 <target name="deploy" depends="package-ear" description="Deploy the project to the server">
296 <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}"/>
299 <target name="deploy-production" depends="package-ear" description="Deploy the project to the production server">
300 <copy todir="${jboss.prod.deploy.dir}" file="${build.dir}/${dist.ear}"/>
303 <target name="redeploy" depends="package-ear" description="Redeploy the project to the server">
304 <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}" overwrite="yes"/>
307 <target name="undeploy" description="Undeploy the project from the server">
308 <delete file="${jboss.deploy.dir}/${dist.ear}"/>
311 <target name="clean" description="Delete the contents of the bin and www directories">
312 <delete dir="${build.dir}" />
313 <delete dir="${gwt.www.dir}" />
316 <target name="test" description="Performs unit tests on the project" depends="compile">
318 property="junit.present"
319 classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
320 classpathref="project.class.path"/>
321 <fail unless="junit.present">
322 ##################################################################
324 Please make sure junit.jar is in ANT_HOME/lib, or made available
325 to Ant using other mechanisms like -lib or CLASSPATH.
326 ##################################################################
329 <junit printsummary="withOutAndErr" fork="yes" haltonfailure="yes">
330 <classpath refid="project.class.path"/>
331 <formatter type="plain"/>
332 <batchtest todir="${test.build.dir}">
333 <fileset dir="${test.build.classes.dir}">
334 <include name="**/*Test.class"/>