Log any persistent-id attributes from Shibboleth.
[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="hornetq.path" value="${env.HORNETQ_PATH}" />
34         <property name="src.dir" value="${basedir}/src"/>
35
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" />
43
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" />
50
51         <!-- MBeans -->
52         <property name="mbeans.dir" value="${basedir}/mbeans"/>
53         <property name="mbeans.meta-inf.dir" value="${mbeans.dir}/META-INF"/>
54
55         <!-- JUnit dirs -->
56         <property name="test.dir" value="${basedir}/test" />
57         <property name="test.src.dir" value="${test.dir}/src"/>
58
59         <!-- Build dirs -->
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"/>
68
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" />
77         
78         <property name="mbeans.dist.file" value="${ant.project.name}-mbeans.sar"/>
79
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}/ejb3-persistence.jar"/>
86                 <pathelement location="${jboss.common.lib.dir}/jboss-ejb3-ext-api.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.common.lib.dir}/hibernate-annotations.jar"/>
91                 <pathelement location="${jboss.lib.dir}/jboss-j2se.jar"/>
92                 <pathelement location="${jboss.lib.dir}/jboss-kernel.jar"/>
93                 <pathelement location="${jboss.lib.dir}/jboss-system-jmx.jar"/>
94                 <pathelement location="${jboss.lib.dir}/jboss-system.jar"/>
95                 <pathelement location="${jboss.lib.dir}/jbosssx.jar"/>
96                 <pathelement location="${ear.lib.dir}/commons-codec-1.3.jar"/>
97                 <pathelement location="${ear.lib.dir}/commons-configuration-1.6.jar"/>
98                 <pathelement location="${war.lib.dir}/commons-fileupload-1.2.jar"/>
99         <pathelement location="${ear.lib.dir}/commons-httpclient-3.1.jar"/>
100                 <pathelement location="${ear.lib.dir}/commons-lang.jar"/>
101                 <pathelement location="${junit.path}/junit.jar"/>
102                 <pathelement location="${basedir}/lib/gwt-dnd-3.0.1.jar"/>
103                 <pathelement location="${basedir}/lib/gwt-gears.jar"/>
104                 
105         </path>
106
107         <target name="install" description="Installs the configuration files of the application server">
108                 <!-- Install HornetQ configuration -->
109                 <copy todir="${jboss.run_conf.lib.dir}">
110                         <fileset dir="${hornetq.path}/lib">
111                                 <include name="hornetq-*.jar"/>
112                                 <include name="netty*.jar"/>
113                         </fileset>
114                 </copy>
115                 <property name="hornetq.sar.dir" value="${jboss.deploy.dir}/hornetq.sar"/>
116                 <mkdir dir="${hornetq.sar.dir}"/>
117                 <copy todir="${hornetq.sar.dir}">
118                         <fileset dir="${hornetq.path}/config/jboss-as/non-clustered" includes="*" excludes="**/jboss-as-4/**"/>
119                 </copy>
120                 <unzip src="${hornetq.path}/lib/hornetq-ra.rar" dest="${jboss.deploy.dir}/hornetq-ra.rar"/>
121                 <delete dir="${jboss.deploy.dir}/messaging" failonerror="false"/>
122                 <mkdir dir="${jboss.bin.dir}/META-INF/lib/linux2/x86"/>
123                 <mkdir dir="${jboss.bin.dir}/META-INF/lib/linux2/x64"/>
124                 <copy todir="${jboss.bin.dir}/META-INF/lib/linux2/x86" file="${hornetq.path}/bin/libHornetQAIO32.so"/>
125                 <copy todir="${jboss.bin.dir}/META-INF/lib/linux2/x64" file="${hornetq.path}/bin/libHornetQAIO64.so"/>
126                 <!-- Install gss configuration -->
127                 <copy todir="${jboss.bin.dir}" overwrite="true" failonerror="false">
128                         <fileset dir="${jboss.project}/bin"/>
129                 </copy>
130                 <copy todir="${jboss.bin.dir}" overwrite="true" failonerror="false">
131                         <fileset dir="${jboss-spec.bin.dir}" />
132                 </copy>
133                 <copy todir="${jboss.conf.dir}" overwrite="true" failonerror="false">
134                         <fileset dir="${jboss.project}/conf"/>
135                 </copy>
136                 <copy todir="${jboss.conf.dir}" overwrite="true" failonerror="false">
137                         <fileset dir="${jboss-spec.conf.dir}"/>
138                 </copy>
139                 <copy todir="${jboss.run_conf.lib.dir}" overwrite="true" failonerror="false">
140                         <fileset dir="${jboss.project}/lib"/>
141                 </copy>
142                 <copy todir="${jboss.run_conf.lib.dir}" overwrite="true" failonerror="false">
143                         <fileset dir="${jboss-spec.lib.dir}" />
144                 </copy>
145                 <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
146                         <fileset dir="${jboss.project}/deploy"/>
147                 </copy>
148                 <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
149                         <fileset dir="${jboss-spec.deploy.dir}" />
150                 </copy>
151         </target>
152
153         <target name="install-production" description="Installs the configuration files for the production deployment of the application server">
154                 <!-- Install HornetQ configuration -->
155                 <copy todir="${jboss.prod.run_conf.lib.dir}">
156                         <fileset dir="${hornetq.path}/lib">
157                                 <include name="hornetq-*.jar"/>
158                                 <include name="netty*.jar"/>
159                         </fileset>
160                 </copy>
161                 <property name="hornetq.prod.sar.dir" value="${jboss.prod.deploy.dir}/hornetq.sar"/>
162                 <mkdir dir="${hornetq.prod.sar.dir}"/>
163                 <copy todir="${hornetq.prod.sar.dir}">
164                         <fileset dir="${hornetq.path}/config/jboss-as/non-clustered" includes="*" excludes="**/jboss-as-4/**"/>
165                 </copy>
166                 <unzip src="${hornetq.path}/lib/hornetq-ra.rar" dest="${jboss.prod.deploy.dir}/hornetq-ra.rar"/>
167                 <delete dir="${jboss.prod.deploy.dir}/messaging" failonerror="false"/>
168                 <mkdir dir="${jboss.prod.bin.dir}/META-INF/lib/linux2/x86"/>
169                 <mkdir dir="${jboss.prod.bin.dir}/META-INF/lib/linux2/x64"/>
170                 <copy todir="${jboss.prod.bin.dir}/META-INF/lib/linux2/x86" file="${hornetq.path}/bin/libHornetQAIO32.so"/>
171                 <copy todir="${jboss.prod.bin.dir}/META-INF/lib/linux2/x64" file="${hornetq.path}/bin/libHornetQAIO64.so"/>
172                 <!-- Install gss configuration -->
173                 <copy todir="${jboss.prod.bin.dir}" overwrite="true" failonerror="false">
174                         <fileset dir="${jboss.project}/bin"/>
175                 </copy>
176                 <copy todir="${jboss.prod.bin.dir}" overwrite="true" failonerror="false">
177                         <fileset dir="${jboss-spec.prod.bin.dir}" />
178                 </copy>
179                 <copy todir="${jboss.prod.conf.dir}" overwrite="true" failonerror="false">
180                         <fileset dir="${jboss.project}/conf"/>
181                 </copy>
182                 <copy todir="${jboss.prod.conf.dir}" overwrite="true" failonerror="false">
183                         <fileset dir="${jboss-spec.prod.conf.dir}"/>
184                 </copy>
185                 <copy todir="${jboss.prod.run_conf.lib.dir}" overwrite="true" failonerror="false">
186                         <fileset dir="${jboss.project}/lib"/>
187                 </copy>
188                 <copy todir="${jboss.prod.run_conf.lib.dir}" overwrite="true" failonerror="false">
189                         <fileset dir="${jboss-spec.prod.lib.dir}" />
190                 </copy>
191                 <copy todir="${jboss.prod.deploy.dir}" overwrite="true" failonerror="false">
192                         <fileset dir="${jboss.project}/deploy"/>
193                 </copy>
194                 <copy todir="${jboss.prod.deploy.dir}" overwrite="true" failonerror="false">
195                         <fileset dir="${jboss-spec.prod.deploy.dir}" />
196                 </copy>
197         </target>
198
199         <target name="compile" description="Compile src to bin">
200                 <mkdir dir="bin" />
201                 <javac srcdir="src:test" destdir="bin" debug="on" debuglevel="lines,vars,source" source="1.6">
202                         <classpath refid="project.class.path" />
203                 </javac>
204         </target>
205
206         <target name="package-code" depends="compile" description="Package up the project code as a jar">
207                 <jar destfile="${build.dir}/${ant.project.name}.jar">
208                         <fileset dir="bin">
209                                 <include name="org/json/**" />
210                                 <include name="**/server/**" />
211                                 <exclude name="**/domain/**"/>
212                                 <exclude name="**/ejb/**"/>
213                                 <exclude name="**/soap/**"/>
214                         </fileset>
215                 </jar>
216         </target>
217
218         <target name="package-webdav" depends="compile" description="Package up the webdav code as a jar">
219                 <jar destfile="${build.dir}/webdav.jar">
220                         <fileset dir="bin">
221                                 <include name="**/webdav/**" />
222                         </fileset>
223                 </jar>
224         </target>
225
226         <target name="package-ejb" depends="compile" description="Package up the EJB classes">
227                 <jar destfile="${build.dir}/ejbs.jar">
228                         <zipfileset dir="${basedir}/persistence" />
229                         <zipfileset dir="${build.dir}">
230                                 <include name="**/configuration/**" />
231                                 <include name="**/exceptions/**" />
232                                 <include name="**/domain/**" />
233                                 <include name="**/ejb/**" />
234                                 <include name="**/soap/**" />
235                                 <exclude name="**/*Test.class"/>
236                         </zipfileset>
237                 </jar>
238         </target>
239
240         <target name="check-gwt-compile" depends="compile">
241                 <uptodate property="compilation-not-needed">
242                         <srcfiles dir="${src.dir}" excludes="**/server/**"/>
243                         <mergemapper to="${build.dir}/www/gr.ebs.gss.GSS.nocache.js"/>
244                 </uptodate>
245         </target>
246         
247         <target name="gwt-compile" depends="check-gwt-compile" unless="compilation-not-needed" description="Compile client code to JavaScript">
248                 <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev.jar">
249                         <available file="${gwt.path}/gwt-dev.jar" />
250                 </condition>
251                         
252                         <java classname="com.google.gwt.dev.Compiler" failonerror="true" fork="true">
253                                 <!--arg value="-style"/>
254                                 <arg value="DETAILED"/-->
255                                 <arg value="-localWorkers" />
256                                 <arg value="2" />
257                                 <arg value="-war"/>
258                                 <arg value="${gwt.www.dir}"/>
259                                 <arg value="${gwt.module}"/>
260                                 
261                             <classpath>
262                                 <pathelement location="dist/test.jar"/>
263                                 <pathelement path="${gwt-dev-lib}"/>
264                                         <path refid="project.class.path" />
265                                         <pathelement path="${src.dir}" />
266                             </classpath>
267                         </java>
268                         <mkdir dir="${build.dir}/www"/>
269                         <copy todir="${build.dir}/www">
270                                 <fileset dir="${gwt.www.dir}/${gwt.module}" excludes="**/${gwt.module.class}.html">
271                                 </fileset>
272                         </copy>
273                         <copy file="${gwt.www.dir}/${gwt.module}/${gwt.module.class}.html" tofile="${build.dir}/www/index.html" />
274                 </target>
275         
276         <target name="package-war" depends="gwt-compile, package-code" description="Package up the web part as a war">
277                 <jar destfile="${build.dir}/${dist.war}">
278                         <zipfileset dir="${war.dir}" >
279                                                         <exclude name="**/classes/**"/>
280                                                         </zipfileset>
281
282                         <zipfileset dir="${build.dir}/www" />
283                         <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
284                                 <include name="${ant.project.name}.jar" />
285                         </zipfileset>
286                         <zipfileset dir="${gwt.path}" prefix="WEB-INF/lib">
287                                 <include name="gwt-servlet.jar" />
288                         </zipfileset>
289                 </jar>
290         </target>
291
292         <target name="package-webdav-war" depends="package-webdav" description="Package up the WebDAV part as a war">
293                 <jar destfile="${build.dir}/${webdav.war}">
294                         <zipfileset dir="${webdav.war.dir}" />
295                         <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
296                                 <include name="webdav.jar" />
297                         </zipfileset>
298                 </jar>
299         </target>
300
301         <target name="package-mbeans" depends="compile">
302                 <jar jarfile="${build.dir}/${mbeans.dist.file}" basedir="${build.dir}">
303                         <include name="**/mbeans/**"/>
304                         <metainf dir="${mbeans.meta-inf.dir}"/>
305                 </jar>
306         </target>
307         
308         <target name="package-ear" depends="package-war, package-webdav-war, package-ejb, package-mbeans" description="Package up the project as an ear">
309                 <jar destfile="${build.dir}/${dist.ear}">
310                         <zipfileset dir="${ear.dir}" />
311                         <zipfileset dir="${build.dir}">
312                                 <include name="ejbs.jar" />
313                                 <include name="${dist.war}" />
314                                 <include name="${webdav.war}" />
315                                 <include name="${mbeans.dist.file}"/>
316                         </zipfileset>
317                 </jar>
318         </target>
319
320         <target name="deploy" depends="package-ear" description="Deploy the project to the server">
321                 <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}"/>
322         </target>
323
324         <target name="deploy-production" depends="package-ear" description="Deploy the project to the production server">
325                 <copy todir="${jboss.prod.deploy.dir}" file="${build.dir}/${dist.ear}"/>
326         </target>
327
328         <target name="redeploy" depends="package-ear" description="Redeploy the project to the server">
329                 <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}" overwrite="yes"/>
330         </target>
331
332         <target name="undeploy" description="Undeploy the project from the server">
333                 <delete file="${jboss.deploy.dir}/${dist.ear}"/>
334         </target>
335
336         <target name="clean" description="Delete the contents of the bin and www directories">
337                 <delete dir="${build.dir}" />
338                 <delete dir="${gwt.www.dir}" />
339         </target>
340
341         <target name="test" description="Performs unit tests on the project" depends="compile">
342                 <available
343                       property="junit.present"
344                       classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
345                       classpathref="project.class.path"/>
346             <fail unless="junit.present">
347               ##################################################################
348               JUnit not found.
349               Please make sure junit.jar is in ANT_HOME/lib, or made available
350               to Ant using other mechanisms like -lib or CLASSPATH.
351               ##################################################################
352                 </fail>
353
354                 <junit printsummary="withOutAndErr" fork="yes" haltonfailure="yes">
355                         <classpath refid="project.class.path"/>
356                         <formatter type="plain"/>
357                         <batchtest todir="${test.build.dir}">
358                                 <fileset dir="${test.build.classes.dir}">
359                                         <include name="**/*Test.class"/>
360                                 </fileset>          
361                         </batchtest>
362
363                 </junit>
364         </target>
365         
366 </project>