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="src.dir" value="${basedir}/src"/>
35 <property name="jboss.project" value="${basedir}/jboss-config/${jboss.version}" />
36 <property name="jboss.bin.dir" value="${jboss.home}/bin" />
37 <property name="jboss.conf.dir" value="${jboss.home}/server/${jboss_run_configuration}/conf" />
38 <property name="jboss.deploy.dir" value="${jboss.home}/server/${jboss_run_configuration}/deploy" />
39 <property name="jboss.run_conf.lib.dir" value="${jboss.home}/server/${jboss_run_configuration}/lib" />
40 <property name="jboss.lib.dir" value="${jboss.home}/lib" />
41 <property name="jboss.common.lib.dir" value="${jboss.home}/common/lib" />
43 <property name="jboss.prod.bin.dir" value="${jboss.prod.home}/bin" />
44 <property name="jboss.prod.conf.dir" value="${jboss.prod.home}/server/${jboss_run_configuration}/conf" />
45 <property name="jboss.prod.deploy.dir" value="${jboss.prod.home}/server/${jboss_run_configuration}/deploy" />
46 <property name="jboss.prod.run_conf.lib.dir" value="${jboss.prod.home}/server/${jboss_run_configuration}/lib" />
47 <property name="jboss.prod.lib.dir" value="${jboss.prod.home}/lib" />
48 <property name="jboss.prod.common.lib.dir" value="${jboss.prod.home}/common/lib" />
51 <property name="mbeans.dir" value="${basedir}/mbeans"/>
52 <property name="mbeans.meta-inf.dir" value="${mbeans.dir}/META-INF"/>
55 <property name="test.dir" value="${basedir}/test" />
56 <property name="test.src.dir" value="${test.dir}/src"/>
59 <property name="build.dir" value="${basedir}/bin" />
60 <property name="build.classes.dir" value="${build.dir}/classes" />
61 <property name="test.build.dir" value="${build.dir}" />
62 <property name="test.build.classes.dir" value="${test.build.dir}/" />
63 <property name="gwt.www.dir" value="${basedir}/www" />
64 <property name="dist.war" value="${ant.project.name}.war"/>
65 <property name="webdav.war" value="webdav.war"/>
66 <property name="dist.ear" value="${ant.project.name}.ear"/>
68 <property name="war.dir" value="${basedir}/war" />
69 <property name="war.web-inf.dir" value="${war.dir}/WEB-INF"/>
70 <property name="war.lib.dir" value="${war.web-inf.dir}/lib"/>
71 <property name="webdav.war.dir" value="${basedir}/webdav" />
72 <property name="webdav.war.web-inf.dir" value="${webdav.war.dir}/WEB-INF"/>
73 <property name="webdav.war.lib.dir" value="${webdav.war.web-inf.dir}/lib"/>
74 <property name="ear.dir" value="${basedir}/ear" />
75 <property name="ear.lib.dir" value="${ear.dir}/lib" />
77 <property name="mbeans.dist.file" value="${ant.project.name}-mbeans.sar"/>
79 <!-- set classpath -->
80 <path id="project.class.path">
81 <pathelement path="${java.class.path}/" />
82 <pathelement path="${gwt.path}/gwt-user.jar" />
83 <pathelement location="${jboss.common.lib.dir}/commons-logging.jar"/>
84 <pathelement location="${jboss.common.lib.dir}/commons-httpclient.jar"/>
85 <pathelement location="${jboss.common.lib.dir}/ejb3-persistence.jar"/>
86 <pathelement location="${jboss.common.lib.dir}/jboss-javaee.jar"/>
87 <pathelement location="${jboss.common.lib.dir}/jbosssx.jar"/>
88 <pathelement location="${jboss.lib.dir}/jboss-j2se.jar"/>
89 <pathelement location="${jboss.lib.dir}/jboss-kernel.jar"/>
90 <pathelement location="${jboss.lib.dir}/jboss-system-jmx.jar"/>
91 <pathelement location="${jboss.lib.dir}/jboss-system.jar"/>
92 <pathelement location="${jboss.lib.dir}/jbosssx.jar"/>
93 <pathelement location="${ear.lib.dir}/commons-codec-1.3.jar"/>
94 <pathelement location="${ear.lib.dir}/commons-configuration-1.5.jar"/>
95 <pathelement location="${war.lib.dir}/commons-fileupload-1.2.jar"/>
96 <pathelement location="${ear.lib.dir}/commons-lang.jar"/>
97 <pathelement location="${junit.path}/junit.jar"/>
98 <pathelement location="${basedir}/lib/gwt-dnd-2.5.6.jar"/>
101 <target name="install" description="Installs the configuration files of the application server">
102 <copy todir="${jboss.bin.dir}" overwrite="true" failonerror="false">
103 <fileset dir="${jboss.project}/bin"/>
105 <copy todir="${jboss.bin.dir}" overwrite="true" failonerror="false">
106 <fileset dir="${jboss-spec.bin.dir}" />
108 <copy todir="${jboss.conf.dir}" overwrite="true" failonerror="false">
109 <fileset dir="${jboss.project}/conf"/>
111 <copy todir="${jboss.conf.dir}" overwrite="true" failonerror="false">
112 <fileset dir="${jboss-spec.conf.dir}"/>
114 <copy todir="${jboss.run_conf.lib.dir}" overwrite="true" failonerror="false">
115 <fileset dir="${jboss.project}/lib"/>
117 <copy todir="${jboss.run_conf.lib.dir}" overwrite="true" failonerror="false">
118 <fileset dir="${jboss-spec.lib.dir}" />
120 <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
121 <fileset dir="${jboss.project}/deploy"/>
123 <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
124 <fileset dir="${jboss-spec.deploy.dir}" />
128 <target name="install-production" description="Installs the configuration files for the production deployment of the application server">
129 <copy todir="${jboss.prod.bin.dir}" overwrite="true" failonerror="false">
130 <fileset dir="${jboss.project}/bin"/>
132 <copy todir="${jboss.prod.bin.dir}" overwrite="true" failonerror="false">
133 <fileset dir="${jboss-spec.prod.bin.dir}" />
135 <copy todir="${jboss.prod.conf.dir}" overwrite="true" failonerror="false">
136 <fileset dir="${jboss.project}/conf"/>
138 <copy todir="${jboss.prod.conf.dir}" overwrite="true" failonerror="false">
139 <fileset dir="${jboss-spec.prod.conf.dir}"/>
141 <copy todir="${jboss.prod.run_conf.lib.dir}" overwrite="true" failonerror="false">
142 <fileset dir="${jboss.project}/lib"/>
144 <copy todir="${jboss.prod.run_conf.lib.dir}" overwrite="true" failonerror="false">
145 <fileset dir="${jboss-spec.prod.lib.dir}" />
147 <copy todir="${jboss.prod.deploy.dir}" overwrite="true" failonerror="false">
148 <fileset dir="${jboss.project}/deploy"/>
150 <copy todir="${jboss.prod.deploy.dir}" overwrite="true" failonerror="false">
151 <fileset dir="${jboss-spec.prod.deploy.dir}" />
155 <target name="compile" description="Compile src to bin">
157 <javac srcdir="src:test" destdir="bin" debug="on" debuglevel="lines,vars,source" source="1.6">
158 <classpath refid="project.class.path" />
162 <target name="package-code" depends="compile" description="Package up the project code as a jar">
163 <jar destfile="${build.dir}/${ant.project.name}.jar">
165 <include name="org/json/**" />
166 <include name="**/server/**" />
167 <exclude name="**/domain/**"/>
168 <exclude name="**/ejb/**"/>
169 <exclude name="**/soap/**"/>
174 <target name="package-webdav" depends="compile" description="Package up the webdav code as a jar">
175 <jar destfile="${build.dir}/webdav.jar">
177 <include name="**/webdav/**" />
182 <target name="package-ejb" depends="compile" description="Package up the EJB classes">
183 <jar destfile="${build.dir}/ejbs.jar">
184 <zipfileset dir="${basedir}/persistence" />
185 <zipfileset dir="${build.dir}">
186 <include name="**/configuration/**" />
187 <include name="**/exceptions/**" />
188 <include name="**/domain/**" />
189 <include name="**/ejb/**" />
190 <include name="**/soap/**" />
195 <target name="check-gwt-compile" depends="compile">
196 <uptodate property="compilation-not-needed">
197 <srcfiles dir="${src.dir}" excludes="**/server/**"/>
198 <mergemapper to="${build.dir}/www/clear.cache.gif"/>
202 <target name="gwt-compile" depends="check-gwt-compile" unless="compilation-not-needed" description="Compile client code to JavaScript">
203 <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev-linux.jar">
204 <available file="${gwt.path}/gwt-dev-linux.jar"/>
206 <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev-mac.jar">
207 <available file="${gwt.path}/gwt-dev-mac.jar" />
209 <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev-windows.jar">
210 <available file="${gwt.path}/gwt-dev-windows.jar" />
212 <java classname="com.google.gwt.dev.GWTCompiler" failonerror="true" fork="true">
214 <arg value="${gwt.www.dir}"/>
215 <arg value="${gwt.module}"/>
216 <jvmarg value="-Xmx196m"/>
218 <pathelement location="dist/test.jar"/>
219 <pathelement path="${gwt-dev-lib}"/>
220 <path refid="project.class.path" />
221 <pathelement path="${src.dir}" />
224 <mkdir dir="${build.dir}/www"/>
225 <copy todir="${build.dir}/www">
226 <fileset dir="${gwt.www.dir}/${gwt.module}" excludes="**/${gwt.module.class}.html">
229 <copy file="${gwt.www.dir}/${gwt.module}/${gwt.module.class}.html" tofile="${build.dir}/www/index.html" />
232 <target name="package-war" depends="gwt-compile, package-code" description="Package up the web part as a war">
233 <jar destfile="${build.dir}/${dist.war}">
234 <zipfileset dir="${war.dir}" />
235 <zipfileset dir="${build.dir}/www" />
236 <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
237 <include name="${ant.project.name}.jar" />
239 <zipfileset dir="${gwt.path}" prefix="WEB-INF/lib">
240 <include name="gwt-servlet.jar" />
245 <target name="package-webdav-war" depends="package-webdav" description="Package up the WebDAV part as a war">
246 <jar destfile="${build.dir}/${webdav.war}">
247 <zipfileset dir="${webdav.war.dir}" />
248 <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
249 <include name="webdav.jar" />
254 <target name="package-mbeans" depends="compile">
255 <jar jarfile="${build.dir}/${mbeans.dist.file}" basedir="${build.dir}">
256 <include name="**/mbeans/**"/>
257 <metainf dir="${mbeans.meta-inf.dir}"/>
261 <target name="package-ear" depends="package-war, package-webdav-war, package-ejb, package-mbeans" description="Package up the project as an ear">
262 <jar destfile="${build.dir}/${dist.ear}">
263 <zipfileset dir="${ear.dir}" />
264 <zipfileset dir="${build.dir}">
265 <include name="ejbs.jar" />
266 <include name="${dist.war}" />
267 <include name="${webdav.war}" />
268 <include name="${mbeans.dist.file}"/>
273 <target name="deploy" depends="package-ear" description="Deploy the project to the server">
274 <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}"/>
277 <target name="deploy-production" depends="package-ear" description="Deploy the project to the production server">
278 <copy todir="${jboss.prod.deploy.dir}" file="${build.dir}/${dist.ear}"/>
281 <target name="redeploy" depends="package-ear" description="Redeploy the project to the server">
282 <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}" overwrite="yes"/>
285 <target name="undeploy" description="Undeploy the project from the server">
286 <delete file="${jboss.deploy.dir}/${dist.ear}"/>
289 <target name="clean" description="Delete the contents of the bin and www directories">
290 <delete dir="${build.dir}" />
291 <delete dir="${gwt.www.dir}" />
294 <target name="test" description="Performs unit tests on the project" depends="compile">
296 property="junit.present"
297 classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
298 classpathref="project.class.path"/>
299 <fail unless="junit.present">
300 ##################################################################
302 Please make sure junit.jar is in ANT_HOME/lib, or made available
303 to Ant using other mechanisms like -lib or CLASSPATH.
304 ##################################################################
307 <junit printsummary="withOutAndErr" fork="yes" haltonfailure="yes">
308 <classpath refid="project.class.path"/>
309 <formatter type="plain"/>
310 <batchtest todir="${test.build.dir}">
311 <fileset dir="${test.build.classes.dir}">
312 <include name="**/**.Test"/>