milton webdav support - TODO: get rid of spring dependencies
[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     <property name="deps.dir" value="dependencies"/>
7
8         <!-- User-editable settings. These are the only settings in this file that
9         a user may consider changing. Note that these can also be configured
10         through command line parameters (e.g. "ant -Dgwt.workers=2") or a
11         build.properties file. -->
12     <property name="gwt.workers" value="1" />
13     <property name="jboss.home" value="${deps.dir}/jboss-5.1.0.GA" />
14     <property name="jboss.args" value="" />
15         <property name="solr.root" value="${deps.dir}/apache-solr-1.4.1"/>
16     <property name="solr.lib" value="${solr.root}/lib"/>
17     <property name="solr.dist" value="${solr.root}/dist"/>
18         <property name="solr.home" value="${deps.dir}/apache-solr-1.4.1/example/solr"/>
19
20         <!-- Library and runtime dependencies -->
21     <property name="jboss.version" value="5.1.0" />
22     <property name="jboss.filename" value="jboss-5.1.0.GA-jdk6.zip"/>
23         <property name="jboss.download.url" value="http://switch.dl.sourceforge.net/project/jboss/JBoss/JBoss-${jboss.version}.GA/${jboss.filename}"/>
24     <property name="solr.version" value="1.4.1" />
25     <property name="solr.filename" value="apache-solr-1.4.1.zip"/>
26         <property name="solr.download.url" value="http://apache.ntua.gr/lucene/solr/${solr.version}/${solr.filename}"/>
27         <property name="solrj.version" value="1.4.1"/>
28         <property name="solrj.jar" value="apache-solr-solrj-${solrj.version}.jar"/>
29         <!--
30         <property name="gwt.path" value="${deps.dir}/gwt-2.2-M1"/>
31         <property name="gwt.filename" value="gwt-2.2-M1.zip"/>
32         <property name="gwt.download.url" value="http://google-web-toolkit.googlecode.com/files/gwt-2.2-M1.zip"/>
33         -->
34          
35         <property name="gwt.path" value="${deps.dir}/gwt-2.1.1"/>
36     <property name="gwt.filename" value="gwt-2.1.1.zip"/>
37     <property name="gwt.download.url" value="http://google-web-toolkit.googlecode.com/files/gwt-2.1.1.zip"/>
38     
39         
40         
41     <property name="hornetq.path" value="${deps.dir}/hornetq-2.0.0.GA" />
42     <property name="hornetq.filename" value="hornetq-2.0.0.GA.zip/"/>
43     <property name="hornetq.download.url" value="http://sourceforge.net/projects/hornetq/files/2.0.0.GA/hornetq-2.0.0.GA.zip/download"/>
44         <property name="junit.path" value="${deps.dir}/junit4.8.1"/>
45         <property name="junit.filename" value="junit4.8.1.zip"/>
46         <property name="junit.download.url" value="http://sourceforge.net/projects/junit/files/junit/4.8.1/junit4.8.1.zip/download"/>    
47     <property name="gwt-dnd.filename" value="gwt-dnd-3.0.1.jar"/>
48     <property name="gwt-dnd.download.url" value="http://gwt-dnd.googlecode.com/files/gwt-dnd-3.0.1.jar"/>
49     <property name="gwt-gears.path" value="${deps.dir}/gwt-gears-1.3.0" />
50     <property name="gwt-gears.filename" value="gwt-gears-1.3.0.zip"/>
51     <property name="gwt-gears.download.url" value="http://gwt-google-apis.googlecode.com/files/gwt-gears-1.3.0.zip"/>
52     <property name="gwt-visualization.path" value="${deps.dir}/gwt-visualization-1.1.0" />
53     <property name="gwt-visualization.filename" value="gwt-visualization-1.1.0.zip"/>
54     <property name="gwt-visualization.download.url" value="http://gwt-google-apis.googlecode.com/files/gwt-visualization-1.1.0.zip"/>
55     <property name="gwt-incubator.filename" value="gwt-incubator-20101117-r1766.jar"/>
56     <property name="gwt-incubator.download.url" value="http://google-web-toolkit-incubator.googlecode.com/files/gwt-incubator-20101117-r1766.jar"/>
57         <property name="selenium-server.filename" value="selenium-server-standalone-2.0b1.jar"/>
58         <property name="selenium-server.download.url" value="http://selenium.googlecode.com/files/selenium-server-standalone-2.0b1.jar"/>
59         
60         <!-- DND SUPPORT -->
61                 <property name="gquery.filename" value="gwtquery-1.0.0-SNAPSHOT.jar"/>
62                 <property name="gquery-dnd-bundle.filename" value="gquery-dnd-bundle-1.0.2.jar"/>
63                 <property name="gquery-dnd-bundle.download.url" value="http://gwtquery-plugins.googlecode.com/files/gquery-dnd-bundle-1.0.2.jar"/>
64                 
65         
66         <!-- Source and runtime layout configuration -->
67         <property name="jboss_run_configuration" value="default" />
68     <property name="root.context" value="gss" />
69     <property name="gwt.module" value="gr.ebs.gss.GSS" />
70     <property name="gwt.module.class" value="GSS" />
71     <property name="gwt.admin.module" value="gr.ebs.gss.admin.TwoAdmin" />
72     <property name="gwt.admin.module.class" value="TwoAdmin" />
73         <property name="src.dir" value="${basedir}/src"/>
74     <property name="jboss-spec.dir" value="${basedir}/jboss" />
75     <property name="jboss-spec.conf.dir" value="${jboss-spec.dir}/conf" />
76     <property name="jboss-spec.bin.dir" value="${jboss-spec.dir}/bin" />
77     <property name="jboss-spec.deploy.dir" value="${jboss-spec.dir}/deploy" />
78     <property name="jboss-spec.lib.dir" value="${jboss-spec.dir}/lib" />
79         <property name="jboss.project" value="${basedir}/jboss-config/${jboss.version}" />
80         <property name="jboss.bin.dir" value="${jboss.home}/bin" />
81         <property name="jboss.conf.dir" value="${jboss.home}/server/${jboss_run_configuration}/conf" />
82         <property name="jboss.deploy.dir" value="${jboss.home}/server/${jboss_run_configuration}/deploy" />
83         <property name="jboss.run_conf.lib.dir" value="${jboss.home}/server/${jboss_run_configuration}/lib" />
84         <property name="jboss.lib.dir" value="${jboss.home}/lib" />
85         <property name="jboss.common.lib.dir" value="${jboss.home}/common/lib" />
86
87         <property name="solr-spec.dir" value="${basedir}/solr"/>
88         <property name="solr-spec.conf.dir" value="${solr-spec.dir}/conf"/>
89         <property name="solr.conf.dir" value="${solr.home}/conf"/>
90         
91         <!-- MBeans -->
92         <property name="mbeans.dir" value="${basedir}/mbeans"/>
93         <property name="mbeans.meta-inf.dir" value="${mbeans.dir}/META-INF"/>
94
95         <!-- JUnit dirs -->
96         <property name="test.dir" value="${basedir}/test" />
97
98         <!-- Build dirs -->
99     <property  name="src.dir" value="${basedir}/src}"/>
100     <property  name="solr.src.dir" value="${solr-spec.dir}/src"/>
101         <property name="build.dir" value="${basedir}/bin" />
102         <property name="build.classes.dir" value="${build.dir}/classes" />
103         <property name="test.build.dir" value="${build.dir}" />
104         <property name="test.build.classes.dir" value="${test.build.dir}/" />
105         <property name="gwt.www.dir" value="${basedir}/www" />
106         <property name="gwt.www.admin.dir" value="${basedir}/wwwadmin" />
107         <property name="dist.war" value="${ant.project.name}.war"/>
108         <property name="dist.admin.war" value="${ant.project.name}-admin.war"/>
109         <property name="webdav.war" value="webdav.war"/>
110         <property name="dist.ear" value="${ant.project.name}.ear"/>
111         <property name="war.dir" value="${basedir}/war" />
112         <property name="war.web-inf.dir" value="${war.dir}/WEB-INF"/>
113         <property name="war.lib.dir" value="${war.web-inf.dir}/lib"/>
114         <property name="war.admin.dir" value="${basedir}/waradmin" />
115         <property name="war.admin.web-inf.dir" value="${war.dir}/WEB-INF"/>
116         <property name="war.admin.lib.dir" value="${war.web-inf.dir}/lib"/>
117         <property name="webdav.war.dir" value="${basedir}/webdav" />
118         <property name="webdav.war.web-inf.dir" value="${webdav.war.dir}/WEB-INF"/>
119         <property name="webdav.war.lib.dir" value="${webdav.war.web-inf.dir}/lib"/>
120         <property name="ear.dir" value="${basedir}/ear" />
121         <property name="ear.lib.dir" value="${ear.dir}/lib" />
122         <property name="mbeans.dist.file" value="${ant.project.name}-mbeans.sar"/>
123         <property name="lib.dir" value="${basedir}/lib" />
124         
125         <!-- set classpath -->
126         <path id="project.class.path">
127                 <pathelement path="${java.class.path}/" />
128                 <!-- DO NOT MOVE THESE JARS BELOW MUST BE FIRST ON CLASSPATH -->
129                 <pathelement location="${lib.dir}/gwtquery-1.0.0-20110116.074055-7.jar"/>
130                 <pathelement location="${lib.dir}/droppable-plugin-1.0.2.jar"/> 
131                 <pathelement location="${lib.dir}/draggable-plugin-1.0.2.jar"/>
132                 <pathelement location="${lib.dir}/commonui-plugin-1.0.3.jar"/>
133                 <!-- END OF DO NOT MOVE THESE JARS BELOW MUST BE FIRST ON CLASSPATH -->
134                 <pathelement path="${gwt.path}/gwt-user.jar" />
135                 <pathelement location="${jboss.common.lib.dir}/commons-logging.jar"/>
136                 <pathelement location="${jboss.common.lib.dir}/ejb3-persistence.jar"/>
137                 <pathelement location="${jboss.common.lib.dir}/jboss-ejb3-ext-api.jar"/>
138                 <pathelement location="${jboss.common.lib.dir}/jboss-javaee.jar"/>
139                 <pathelement location="${jboss.common.lib.dir}/jbosssx.jar"/>
140                 <pathelement location="${jboss.common.lib.dir}/hibernate-core.jar"/>
141         <pathelement location="${jboss.common.lib.dir}/hibernate-annotations.jar"/>
142                 <pathelement location="${jboss.lib.dir}/jboss-j2se.jar"/>
143                 <pathelement location="${jboss.lib.dir}/jboss-kernel.jar"/>
144                 <pathelement location="${jboss.lib.dir}/jboss-system-jmx.jar"/>
145                 <pathelement location="${jboss.lib.dir}/jboss-system.jar"/>
146                 <pathelement location="${jboss.lib.dir}/jbosssx.jar"/>
147                 <pathelement location="${ear.lib.dir}/commons-codec-1.4.jar"/>
148                 <pathelement location="${ear.lib.dir}/commons-configuration-1.6.jar"/>
149                 <pathelement location="${war.lib.dir}/commons-fileupload-1.2.jar"/>
150         <pathelement location="${ear.lib.dir}/commons-httpclient-3.1.jar"/>
151                 <pathelement location="${ear.lib.dir}/commons-lang.jar"/>
152                 <pathelement location="${ear.lib.dir}/ldap.jar"/>
153                 <pathelement location="${junit.path}/junit.jar"/>
154                 <pathelement location="${deps.dir}/${gwt-dnd.filename}"/>
155                 <pathelement location="${gwt-gears.path}/gwt-gears.jar"/>
156                 <pathelement location="${deps.dir}/${gwt-incubator.filename}"/>
157                 <pathelement location="${gwt-visualization.path}/gwt-visualization.jar"/>
158                 <pathelement location="${solr.dist}/${solrj.jar}"/>
159         <pathelement location="${solr.dist}/apache-solr-core-1.4.1.jar"/>
160         <pathelement location="${solr.lib}/lucene-core-2.9.3.jar"/>
161         <pathelement location="${solr.lib}/lucene-analyzers-2.9.3.jar"/>
162                 <pathelement location="${deps.dir}/${selenium-server.filename}"/>               
163                 <fileset dir="${lib.dir}/milton">
164                 <include name="**/*.jar" />
165                 </fileset>
166         </path>
167
168         <target name="check-jboss">
169                 <available file="${jboss.home}" type="dir" property="jboss.home.present"/>
170         </target>
171
172     <target name="fetch-dependencies" description="Fetch the dpendencies" depends="check-jboss">
173         <mkdir dir="${deps.dir}"/>
174         <!--
175         <get src="${gwt-dnd.download.url}" dest="${deps.dir}/${gwt-dnd.filename}" usetimestamp="true"/>
176         <get src="${gwt-gears.download.url}" dest="${deps.dir}/${gwt-gears.filename}" usetimestamp="true"/>
177         <get src="${gwt-visualization.download.url}" dest="${deps.dir}/${gwt-visualization.filename}" usetimestamp="true"/>       
178         <get src="${hornetq.download.url}" dest="${deps.dir}/${hornetq.filename}" usetimestamp="true"/>        
179         <get src="${jboss.download.url}" dest="${deps.dir}/${jboss.filename}" usetimestamp="true"/>
180         -->     
181         <!--
182         <get src="${gwt.download.url}" dest="${deps.dir}/${gwt.filename}" usetimestamp="true"/>
183         
184         -->
185         <get src="${gwt-incubator.download.url}" dest="${deps.dir}/${gwt-incubator.filename}" usetimestamp="true"/>
186         <get src="${junit.download.url}" dest="${deps.dir}/${junit.filename}" usetimestamp="true"/>
187         <get src="${selenium-server.download.url}" dest="${deps.dir}/${selenium-server.filename}" usetimestamp="true"/>         
188         <unzip src="${deps.dir}/${gwt.filename}" dest="${deps.dir}"/>
189         <unzip src="${deps.dir}/${junit.filename}" dest="${deps.dir}"/>         
190         <!--
191         <unzip src="${deps.dir}/${gwt-gears.filename}" dest="${deps.dir}"/>
192         <unzip src="${deps.dir}/${gwt-visualization.filename}" dest="${deps.dir}"/>
193         <unzip src="${deps.dir}/${hornetq.filename}" dest="${deps.dir}"/>        
194         <unzip src="${deps.dir}/${jboss.filename}" dest="${jboss.home}/.."/>
195         -->
196     </target>
197
198         <target name="install" depends="fetch-dependencies, install-solr" description="Installs the configuration files of the application server">
199                 <!-- Install HornetQ configuration -->
200                 <copy todir="${jboss.run_conf.lib.dir}">
201                         <fileset dir="${hornetq.path}/lib">
202                                 <include name="hornetq-*.jar"/>
203                                 <include name="netty*.jar"/>
204                         </fileset>
205                 </copy>
206                 <property name="hornetq.sar.dir" value="${jboss.deploy.dir}/hornetq.sar"/>
207                 <mkdir dir="${hornetq.sar.dir}"/>
208                 <copy todir="${hornetq.sar.dir}">
209                         <fileset dir="${hornetq.path}/config/jboss-as/non-clustered" includes="*" excludes="**/jboss-as-4/**"/>
210                 </copy>
211                 <unzip src="${hornetq.path}/lib/hornetq-ra.rar" dest="${jboss.deploy.dir}/hornetq-ra.rar"/>
212                 <delete dir="${jboss.deploy.dir}/messaging" failonerror="false"/>
213                 <mkdir dir="${jboss.bin.dir}/META-INF/lib/linux2/x86"/>
214                 <mkdir dir="${jboss.bin.dir}/META-INF/lib/linux2/x64"/>
215                 <copy todir="${jboss.bin.dir}/META-INF/lib/linux2/x86" file="${hornetq.path}/bin/libHornetQAIO32.so"/>
216                 <copy todir="${jboss.bin.dir}/META-INF/lib/linux2/x64" file="${hornetq.path}/bin/libHornetQAIO64.so"/>
217                 <!-- Install gss configuration -->
218                 <copy todir="${jboss.bin.dir}" overwrite="true" failonerror="false">
219                         <fileset dir="${jboss.project}/bin"/>
220                 </copy>
221                 <copy todir="${jboss.bin.dir}" overwrite="true" failonerror="false">
222                         <fileset dir="${jboss-spec.bin.dir}" />
223                 </copy>
224                 <copy todir="${jboss.conf.dir}" overwrite="true" failonerror="false">
225                         <fileset dir="${jboss.project}/conf"/>
226                 </copy>
227                 <copy todir="${jboss.conf.dir}" overwrite="true" failonerror="false">
228                         <fileset dir="${jboss-spec.conf.dir}"/>
229                 </copy>
230                 <copy todir="${jboss.run_conf.lib.dir}" overwrite="true" failonerror="false">
231                         <fileset dir="${jboss.project}/lib"/>
232                 </copy>
233                 <copy todir="${jboss.run_conf.lib.dir}" overwrite="true" failonerror="false">
234                         <fileset dir="${jboss-spec.lib.dir}" />
235                 </copy>
236                 <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
237                         <fileset dir="${jboss.project}/deploy"/>
238                 </copy>
239                 <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
240                         <fileset dir="${jboss-spec.deploy.dir}" />
241                 </copy>
242         <!-- Make run.sh executable again -->
243         <chmod file="${jboss.bin.dir}/run.sh" perm="ugo+x"/>
244         </target>
245
246         <target name="compile" description="Compile src to bin">
247                 <mkdir dir="${build.dir}" />
248                 <javac srcdir="${src.dir}:${test.dir}" destdir="${build.dir}" debug="on" debuglevel="lines,vars,source" source="1.6">
249                         <classpath refid="project.class.path" />
250                 </javac>
251         </target>
252
253         <target name="package-code" depends="compile" description="Package up the project code as a jar">
254                 <jar destfile="${build.dir}/${ant.project.name}.jar">
255                         <fileset dir="bin">
256                                 <include name="org/json/**" />
257                                 <include name="**/client/AdminService.class" />
258                                 <include name="**/server/**" />
259                                 <exclude name="**/domain/**"/>
260                                 <exclude name="**/ejb/**"/>
261                         </fileset>
262                         <fileset dir="src">
263                                 <include name="**/*.xml" />
264                                 <include name="**/client/exceptions/**" />
265                                 </fileset>
266                 </jar>
267         </target>
268
269         <target name="package-webdav" depends="compile" description="Package up the webdav code as a jar">
270                 <jar destfile="${build.dir}/webdav.jar">
271                         <fileset dir="bin">
272                                 <include name="**/webdav/**" />
273                         </fileset>
274                 </jar>
275         </target>
276
277         <target name="package-ejb" depends="compile" description="Package up the EJB classes">
278                 <jar destfile="${build.dir}/ejbs.jar">
279                         <zipfileset dir="${basedir}/persistence" />
280                         <zipfileset dir="${build.dir}">
281                                 <include name="**/configuration/**" />
282                                 <include name="**/exceptions/**" />
283                                 <include name="**/domain/**" />
284                                 <include name="**/ejb/**" />
285                                 <exclude name="**/*Test.class"/>
286                         </zipfileset>
287                 </jar>
288         </target>
289
290         <target name="check-gwt-compile" depends="compile">
291                 <uptodate property="compilation-not-needed">
292                         <srcfiles dir="${src.dir}" excludes="**/server/**"/>
293                         <mergemapper to="${build.dir}/www/gr.ebs.gss.GSS.nocache.js"/>
294                 </uptodate>
295         </target>
296
297         <target name="gwt-compile" depends="check-gwt-compile" unless="compilation-not-needed" description="Compile client code to JavaScript">
298         <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev.jar">
299                 <available file="${gwt.path}/gwt-dev.jar" />
300         </condition>
301                 
302                 <java classname="com.google.gwt.dev.Compiler" failonerror="true" fork="true">
303                         <!--arg value="-style"/>
304                         <arg value="DETAILED"/-->
305                         <arg value="-localWorkers" />
306                         <arg value="${gwt.workers}" />
307                         <arg value="-war"/>
308                         <arg value="${gwt.www.dir}"/>
309                         <arg value="${gwt.module}"/>
310                         
311                     <classpath>
312                         <pathelement path="${gwt-dev-lib}"/>
313                                 <path refid="project.class.path" />
314                                 <pathelement path="${src.dir}" />
315                     </classpath>
316                 </java>
317                 <mkdir dir="${build.dir}/www"/>
318                 <copy todir="${build.dir}/www">
319                         <fileset dir="${gwt.www.dir}/${gwt.module}" excludes="**/${gwt.module.class}.html">
320                         </fileset>
321                 </copy>
322                 <copy file="${gwt.www.dir}/${gwt.module}/${gwt.module.class}.html" tofile="${build.dir}/www/index.html" />
323         </target>
324         
325         <target name="package-war" depends="gwt-compile, package-code" description="Package up the web part as a war">
326                 <jar destfile="${build.dir}/${dist.war}">
327                         <zipfileset dir="${war.dir}" >
328                             <exclude name="**/classes/**"/>
329                         </zipfileset>
330                         <zipfileset dir="${build.dir}/www" />
331                         <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
332                                 <include name="${ant.project.name}.jar" />
333                         </zipfileset>
334                 </jar>
335         </target>
336         
337         <target name="check-gwt-admin-compile" depends="compile">
338                 <uptodate property="compilation-not-needed">
339                         <srcfiles dir="${src.dir}" excludes="**/server/**"/>
340                         <mergemapper to="${build.dir}/wwwadmin/gr.ebs.gss.admin.TwoAdmin.nocache.js"/>
341                 </uptodate>
342         </target>
343
344         <target name="gwt-admin-compile" depends="check-gwt-admin-compile" unless="compilation-not-needed" description="Compile client code to JavaScript">
345         <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev.jar">
346                 <available file="${gwt.path}/gwt-dev.jar" />
347         </condition>
348                 
349                 <java classname="com.google.gwt.dev.Compiler" failonerror="true" fork="true">
350                         <!--arg value="-style"/>
351                         <arg value="DETAILED"/-->
352                         <arg value="-localWorkers" />
353                         <arg value="${gwt.workers}" />
354                         <arg value="-war"/>
355                         <arg value="${gwt.www.admin.dir}"/>
356                         <arg value="${gwt.admin.module}"/>
357             <jvmarg value="-Xmx256m"/>                                          
358                     <classpath>
359                         <pathelement path="${gwt-dev-lib}"/>
360                                 <path refid="project.class.path" />
361                                 <pathelement path="${src.dir}" />
362                     </classpath>
363                 </java>
364                 <mkdir dir="${build.dir}/wwwadmin"/>
365                 <copy todir="${build.dir}/wwwadmin">
366                         <fileset dir="${gwt.www.admin.dir}/${gwt.admin.module}" excludes="**/${gwt.admin.module.class}.html">
367                         </fileset>
368                 </copy>
369                 <copy file="${gwt.www.admin.dir}/${gwt.admin.module}/${gwt.admin.module.class}.html" tofile="${build.dir}/wwwadmin/index.html" />
370         </target>
371                 
372         <target name="package-admin-war" depends="gwt-admin-compile, package-code" description="Package up the web part as a war">
373                 <jar destfile="${build.dir}/${dist.admin.war}">
374                         <zipfileset dir="${war.admin.dir}" >
375                                   <exclude name="**/classes/**"/>
376             </zipfileset>
377                         <zipfileset dir="${build.dir}/wwwadmin" />
378                         <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
379                                 <include name="${ant.project.name}.jar" />
380                         </zipfileset>
381                         <zipfileset dir="${gwt.path}" prefix="WEB-INF/lib">
382                                 <include name="gwt-servlet.jar" />
383                         </zipfileset>
384                 </jar>
385         </target>
386
387         <target name="package-webdav-war" depends="package-webdav" description="Package up the WebDAV part as a war">
388                 <jar destfile="${build.dir}/${webdav.war}">
389                         <zipfileset dir="${webdav.war.dir}" />
390                         <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
391                                 <include name="webdav.jar" />
392                         </zipfileset>
393                         <zipfileset dir="${lib.dir}/milton" prefix="WEB-INF/lib">
394                         <include name="**/*.jar" />
395                         </zipfileset>
396                 </jar>
397         </target>
398
399         <target name="package-mbeans" depends="compile">
400                 <jar jarfile="${build.dir}/${mbeans.dist.file}" basedir="${build.dir}">
401                         <include name="**/mbeans/**"/>
402                         <metainf dir="${mbeans.meta-inf.dir}"/>
403                 </jar>
404         </target>
405         
406         <target name="package-ear" depends=" package-war,package-admin-war,package-webdav-war, package-ejb, package-mbeans" description="Package up the project as an ear">
407                 <jar destfile="${build.dir}/${dist.ear}">
408                         <zipfileset dir="${ear.dir}" />
409                         <zipfileset dir="${build.dir}" >
410                                 <include name="ejbs.jar" />
411                                 <include name="${dist.war}" />
412                                 <include name="${webdav.war}" />
413                                 <include name="${dist.admin.war}" />
414                                 <include name="${mbeans.dist.file}"/>
415                         </zipfileset>
416                 <zipfileset dir="${solr.dist}" prefix="lib">
417                                 <include name="${solrj.jar}" />
418                         </zipfileset>
419                 </jar>
420         </target>
421
422         <target name="deploy" depends="package-ear" description="Deploy the project to the server">
423                 <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}"/>
424         </target>
425
426         <target name="redeploy" depends="package-ear" description="Redeploy the project to the server">
427                 <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}" overwrite="yes"/>
428         </target>
429
430         <target name="undeploy" description="Undeploy the project from the server">
431                 <delete file="${jboss.deploy.dir}/${dist.ear}"/>
432         </target>
433
434         <target name="clean" description="Delete the contents of the bin and www directories">
435                 <delete dir="${build.dir}"/>
436                 <delete dir="${gwt.www.dir}"/>
437                 <delete dir="${gwt.www.admin.dir}"/>
438         </target>
439
440     <target name="deinstall"
441         description="Delete the contents of the JBoss home directory">
442         <delete dir="${jboss.home}"/>
443     </target>
444
445     <target name="distclean" depends="deinstall, clean"
446         description="Delete the contents of the JBoss home directory and all downloaded artifacts">
447         <delete dir="${deps.dir}"/>
448     </target>
449
450         <target name="test" description="Performs unit tests on the project" depends="compile">
451                 <available
452                       property="junit.present"
453                       classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
454                       classpathref="project.class.path"/>
455             <fail unless="junit.present">
456               ##################################################################
457               JUnit not found.
458               Please make sure junit.jar is in ANT_HOME/lib, or made available
459               to Ant using other mechanisms like -lib or CLASSPATH.
460               ##################################################################
461                 </fail>
462
463                 <junit printsummary="withOutAndErr" fork="yes" haltonfailure="yes">
464                         <classpath refid="project.class.path"/>
465                         <formatter type="plain"/>
466                         <batchtest todir="${test.build.dir}">
467                                 <fileset dir="${test.build.classes.dir}">
468                                         <include name="**/*Test.class"/>
469                                 </fileset>          
470                         </batchtest>
471
472                 </junit>
473         </target>
474
475         <target name="run" description="Starts the server" depends="deploy">
476         <exec executable="${jboss.bin.dir}/run.sh" osfamily="unix">
477             <arg line="${jboss.args}"/>
478         </exec>
479                 <exec executable="cmd" osfamily="windows">
480                     <arg value="/c"/>
481                     <arg value="${jboss.bin.dir}/run.bat"/>
482             <arg line="${jboss.args}"/>
483                 </exec>
484     </target>
485     
486         <target name="check-solr">
487                 <available file="${solr.root}" type="dir" property="solr.home.present"/>
488         </target>
489
490     <target name="fetch-solr" unless="solr.home.present" depends="check-solr">
491                 <get src="${solr.download.url}" dest="${deps.dir}/${solr.filename}" usetimestamp="true"/>
492         <unzip src="${deps.dir}/${solr.filename}" dest="${deps.dir}"/>
493     </target>
494
495     <target name="compile-solr" depends="fetch-solr">
496         <mkdir dir="${build.dir}"/>
497         <javac srcdir="${solr.src.dir}" destdir="${build.dir}" debug="on" debuglevel="lines,vars,source" source="1.6">
498             <classpath refid="project.class.path" />
499         </javac>
500     </target>
501
502     <target name="install-solr" depends="fetch-solr, compile-solr">
503                 <copy todir="${solr.conf.dir}" overwrite="true" failonerror="false">
504                         <fileset dir="${solr-spec.conf.dir}" />
505                 </copy>
506                 <jar destfile="${solr.root}/greektokenfilter.jar">
507                     <fileset dir="${build.dir}">
508                                 <include name="gr/ebs/gss/solr/analysis/GreekLowerCaseFilterFactory.class"/>
509                     </fileset>
510                 </jar>
511     </target>
512     
513     <target name="run-solr" depends="install-solr">
514         <java jar="${solr.root}/example/start.jar" fork="true" dir="${solr.root}/example"/>
515     </target>
516 </project>