Fix the ignored file paths.
[pithos] / build.xml
1 <?xml version="1.0" encoding="utf-8" ?>
2 <project name="gss" default="deploy" basedir=".">
3         <description>The GSS project build file</description>
4
5         <property file="build.properties"/>
6
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" />
11
12         <property environment="env" />
13
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" />
20
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" />
27
28         <!-- Jboss dirs -->
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"/>
34
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" />
42
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" />
49
50         <!-- MBeans -->
51         <property name="mbeans.dir" value="${basedir}/mbeans"/>
52         <property name="mbeans.meta-inf.dir" value="${mbeans.dir}/META-INF"/>
53
54         <!-- JUnit dirs -->
55         <property name="test.dir" value="${basedir}/test" />
56         <property name="test.src.dir" value="${test.dir}/src"/>
57
58         <!-- Build dirs -->
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"/>
67
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" />
76         
77         <property name="mbeans.dist.file" value="${ant.project.name}-mbeans.sar"/>
78
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.6.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"/>
99         </path>
100
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"/>
104                 </copy>
105                 <copy todir="${jboss.bin.dir}" overwrite="true" failonerror="false">
106                         <fileset dir="${jboss-spec.bin.dir}" />
107                 </copy>
108                 <copy todir="${jboss.conf.dir}" overwrite="true" failonerror="false">
109                         <fileset dir="${jboss.project}/conf"/>
110                 </copy>
111                 <copy todir="${jboss.conf.dir}" overwrite="true" failonerror="false">
112                         <fileset dir="${jboss-spec.conf.dir}"/>
113                 </copy>
114                 <copy todir="${jboss.run_conf.lib.dir}" overwrite="true" failonerror="false">
115                         <fileset dir="${jboss.project}/lib"/>
116                 </copy>
117                 <copy todir="${jboss.run_conf.lib.dir}" overwrite="true" failonerror="false">
118                         <fileset dir="${jboss-spec.lib.dir}" />
119                 </copy>
120                 <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
121                         <fileset dir="${jboss.project}/deploy"/>
122                 </copy>
123                 <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
124                         <fileset dir="${jboss-spec.deploy.dir}" />
125                 </copy>
126         </target>
127
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"/>
131                 </copy>
132                 <copy todir="${jboss.prod.bin.dir}" overwrite="true" failonerror="false">
133                         <fileset dir="${jboss-spec.prod.bin.dir}" />
134                 </copy>
135                 <copy todir="${jboss.prod.conf.dir}" overwrite="true" failonerror="false">
136                         <fileset dir="${jboss.project}/conf"/>
137                 </copy>
138                 <copy todir="${jboss.prod.conf.dir}" overwrite="true" failonerror="false">
139                         <fileset dir="${jboss-spec.prod.conf.dir}"/>
140                 </copy>
141                 <copy todir="${jboss.prod.run_conf.lib.dir}" overwrite="true" failonerror="false">
142                         <fileset dir="${jboss.project}/lib"/>
143                 </copy>
144                 <copy todir="${jboss.prod.run_conf.lib.dir}" overwrite="true" failonerror="false">
145                         <fileset dir="${jboss-spec.prod.lib.dir}" />
146                 </copy>
147                 <copy todir="${jboss.prod.deploy.dir}" overwrite="true" failonerror="false">
148                         <fileset dir="${jboss.project}/deploy"/>
149                 </copy>
150                 <copy todir="${jboss.prod.deploy.dir}" overwrite="true" failonerror="false">
151                         <fileset dir="${jboss-spec.prod.deploy.dir}" />
152                 </copy>
153         </target>
154
155         <target name="compile" description="Compile src to bin">
156                 <mkdir dir="bin" />
157                 <javac srcdir="src:test" destdir="bin" debug="on" debuglevel="lines,vars,source" source="1.6">
158                         <classpath refid="project.class.path" />
159                 </javac>
160         </target>
161
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">
164                         <fileset dir="bin">
165                                 <include name="org/json/**" />
166                                 <include name="**/server/**" />
167                                 <exclude name="**/domain/**"/>
168                                 <exclude name="**/ejb/**"/>
169                                 <exclude name="**/soap/**"/>
170                         </fileset>
171                 </jar>
172         </target>
173
174         <target name="package-webdav" depends="compile" description="Package up the webdav code as a jar">
175                 <jar destfile="${build.dir}/webdav.jar">
176                         <fileset dir="bin">
177                                 <include name="**/webdav/**" />
178                         </fileset>
179                 </jar>
180         </target>
181
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/**" />
191                                 <exclude name="**/*Test.class"/>
192                         </zipfileset>
193                 </jar>
194         </target>
195
196         <target name="check-gwt-compile" depends="compile">
197                 <uptodate property="compilation-not-needed">
198                         <srcfiles dir="${src.dir}" excludes="**/server/**"/>
199                         <mergemapper to="${build.dir}/www/clear.cache.gif"/>
200                 </uptodate>
201         </target>
202
203         <target name="gwt-compile" depends="check-gwt-compile" unless="compilation-not-needed" description="Compile client code to JavaScript">
204         <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev-linux.jar">
205                 <available file="${gwt.path}/gwt-dev-linux.jar"/>
206         </condition>
207         <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev-mac.jar">
208                 <available file="${gwt.path}/gwt-dev-mac.jar" />
209         </condition>
210         <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev-windows.jar">
211                 <available file="${gwt.path}/gwt-dev-windows.jar" />
212         </condition>
213                 <java classname="com.google.gwt.dev.GWTCompiler" failonerror="true" fork="true">
214                         <arg value="-out"/>
215                         <arg value="${gwt.www.dir}"/>
216                         <arg value="${gwt.module}"/>
217                         <jvmarg value="-Xmx196m"/>
218                     <classpath>
219                         <pathelement location="dist/test.jar"/>
220                         <pathelement path="${gwt-dev-lib}"/>
221                                 <path refid="project.class.path" />
222                                 <pathelement path="${src.dir}" />
223                     </classpath>
224                 </java>
225                 <mkdir dir="${build.dir}/www"/>
226                 <copy todir="${build.dir}/www">
227                         <fileset dir="${gwt.www.dir}/${gwt.module}" excludes="**/${gwt.module.class}.html">
228                         </fileset>
229                 </copy>
230                 <copy file="${gwt.www.dir}/${gwt.module}/${gwt.module.class}.html" tofile="${build.dir}/www/index.html" />
231         </target>
232         
233         <target name="package-war" depends="gwt-compile, package-code" description="Package up the web part as a war">
234                 <jar destfile="${build.dir}/${dist.war}">
235                         <zipfileset dir="${war.dir}" />
236                         <zipfileset dir="${build.dir}/www" />
237                         <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
238                                 <include name="${ant.project.name}.jar" />
239                         </zipfileset>
240                         <zipfileset dir="${gwt.path}" prefix="WEB-INF/lib">
241                                 <include name="gwt-servlet.jar" />
242                         </zipfileset>
243                 </jar>
244         </target>
245
246         <target name="package-webdav-war" depends="package-webdav" description="Package up the WebDAV part as a war">
247                 <jar destfile="${build.dir}/${webdav.war}">
248                         <zipfileset dir="${webdav.war.dir}" />
249                         <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
250                                 <include name="webdav.jar" />
251                         </zipfileset>
252                 </jar>
253         </target>
254
255         <target name="package-mbeans" depends="compile">
256                 <jar jarfile="${build.dir}/${mbeans.dist.file}" basedir="${build.dir}">
257                         <include name="**/mbeans/**"/>
258                         <metainf dir="${mbeans.meta-inf.dir}"/>
259                 </jar>
260         </target>
261         
262         <target name="package-ear" depends="package-war, package-webdav-war, package-ejb, package-mbeans" description="Package up the project as an ear">
263                 <jar destfile="${build.dir}/${dist.ear}">
264                         <zipfileset dir="${ear.dir}" />
265                         <zipfileset dir="${build.dir}">
266                                 <include name="ejbs.jar" />
267                                 <include name="${dist.war}" />
268                                 <include name="${webdav.war}" />
269                                 <include name="${mbeans.dist.file}"/>
270                         </zipfileset>
271                 </jar>
272         </target>
273
274         <target name="deploy" depends="package-ear" description="Deploy the project to the server">
275                 <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}"/>
276         </target>
277
278         <target name="deploy-production" depends="package-ear" description="Deploy the project to the production server">
279                 <copy todir="${jboss.prod.deploy.dir}" file="${build.dir}/${dist.ear}"/>
280         </target>
281
282         <target name="redeploy" depends="package-ear" description="Redeploy the project to the server">
283                 <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}" overwrite="yes"/>
284         </target>
285
286         <target name="undeploy" description="Undeploy the project from the server">
287                 <delete file="${jboss.deploy.dir}/${dist.ear}"/>
288         </target>
289
290         <target name="clean" description="Delete the contents of the bin and www directories">
291                 <delete dir="${build.dir}" />
292                 <delete dir="${gwt.www.dir}" />
293         </target>
294
295         <target name="test" description="Performs unit tests on the project" depends="compile">
296                 <available
297                       property="junit.present"
298                       classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
299                       classpathref="project.class.path"/>
300             <fail unless="junit.present">
301               ##################################################################
302               JUnit not found.
303               Please make sure junit.jar is in ANT_HOME/lib, or made available
304               to Ant using other mechanisms like -lib or CLASSPATH.
305               ##################################################################
306                 </fail>
307
308                 <junit printsummary="withOutAndErr" fork="yes" haltonfailure="yes">
309                         <classpath refid="project.class.path"/>
310                         <formatter type="plain"/>
311                         <batchtest todir="${test.build.dir}">
312                                 <fileset dir="${test.build.classes.dir}">
313                                         <include name="**/*Test.class"/>
314                                 </fileset>          
315                         </batchtest>
316
317                 </junit>
318         </target>
319         
320 </project>