Statistics
| Branch: | Tag: | Revision:

root / build.xml @ 1206:292dec4eae08

History | View | Annotate | Download (30.3 kB)

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
    <property name="gwt.workers" value="1"/>
9
    <property name="jboss.args" value="-b 0.0.0.0" />
10

    
11
    <property name="jboss.version" value="5.1.0"/>
12
    <property name="jboss.home" value="${deps.dir}/jboss-${jboss.version}.GA" />
13
    <property name="jboss.bin.dir" value="${jboss.home}/bin" />
14
    <property name="jboss.conf.dir" value="${jboss.home}/server/default/conf" />
15
    <property name="jboss.deploy.dir" value="${jboss.home}/server/default/deploy" />
16
    <property name="jboss.lib.dir" value="${jboss.home}/server/default/lib" />
17
    <property name="jboss.root.lib.dir" value="${jboss.home}/lib" />
18
    <property name="jboss.common.lib.dir" value="${jboss.home}/common/lib" />
19
    <property name="jboss.filename" value="jboss-${jboss.version}.GA-jdk6.zip"/>
20
        <property name="jboss.download.url" value="http://switch.dl.sourceforge.net/project/jboss/JBoss/JBoss-${jboss.version}.GA/${jboss.filename}"/>
21

    
22
    <property name="solr.version" value="1.4.1" />
23
        <property name="solr.root" value="${deps.dir}/apache-solr-${solr.version}"/>
24
    <property name="solr.lib" value="${solr.root}/lib"/>
25
    <property name="solr.dist" value="${solr.root}/dist"/>
26
        <property name="solr.home" value="${solr.root}/example/solr"/>
27
    <property name="solr.conf.dir" value="${solr.home}/conf"/>
28
    <property name="solr.filename" value="apache-solr-${solr.version}.zip"/>
29
        <property name="solr.download.url" value="http://apache.ntua.gr/lucene/solr/${solr.version}/${solr.filename}"/>
30
        <property name="solrj.jar" value="apache-solr-solrj-${solr.version}.jar"/>
31

    
32
    <property name="milton.version" value="1.5.7"/>
33
    <property name="milton.api.filename" value="milton-api-${milton.version}.jar"/>
34
    <property name="milton.api.download.url" value="http://www.ettrema.com/maven2/com/ettrema/milton-api/${milton.version}/${milton.api.filename}"/>
35
    <property name="milton.console.filename" value="milton-console-${milton.version}.jar"/>
36
    <property name="milton.console.download.url" value="http://www.ettrema.com/maven2/com/ettrema/milton-console/${milton.version}/${milton.console.filename}"/>
37
    <property name="milton.servlet.filename" value="milton-servlet-${milton.version}.jar"/>
38
    <property name="milton.servlet.download.url" value="http://www.ettrema.com/maven2/com/ettrema/milton-servlet/${milton.version}/${milton.servlet.filename}"/>
39

    
40
    <property name="gwt.version" value="2.1.1"/>
41
        <property name="gwt.home" value="${deps.dir}/gwt-${gwt.version}"/>
42
    <property name="gwt.filename" value="gwt-${gwt.version}.zip"/>
43
    <property name="gwt.download.url" value="http://google-web-toolkit.googlecode.com/files/${gwt.filename}"/>
44

    
45
    <property name="hornetq.version" value="2.0.0"/>
46
    <property name="hornetq.home" value="${deps.dir}/hornetq-${hornetq.version}.GA"/>
47
    <property name="hornetq.filename" value="hornetq-${hornetq.version}.GA.zip/"/>
48
    <property name="hornetq.download.url" value="http://sourceforge.net/projects/hornetq/files/${hornetq.version}.GA/${hornetq.filename}/download"/>
49

    
50
    <property name="junit.version" value="4.8.1"/>
51
        <property name="junit.home" value="${deps.dir}/junit${junit.version}"/>
52
        <property name="junit.filename" value="junit${junit.version}.zip"/>
53
        <property name="junit.download.url" value="http://sourceforge.net/projects/junit/files/junit/${junit.version}/${junit.filename}/download"/>
54

    
55
    <property name="gwt-gears.version" value="1.3.0"/>
56
    <property name="gwt-gears.home" value="${deps.dir}/gwt-gears-${gwt-gears.version}" />
57
    <property name="gwt-gears.filename" value="gwt-gears-${gwt-gears.version}.zip"/>
58
    <property name="gwt-gears.download.url" value="http://gwt-google-apis.googlecode.com/files/${gwt-gears.filename}"/>
59

    
60
    <property name="gwt-incubator.filename" value="gwt-incubator-20101117-r1766.jar"/>
61
    <property name="gwt-incubator.download.url" value="http://google-web-toolkit-incubator.googlecode.com/files/gwt-incubator-20101117-r1766.jar"/>
62
    <property name="gwt-visualization.home" value="${deps.dir}/gwt-visualization-1.1.0" />
63
    <property name="gwt-visualization.filename" value="gwt-visualization-1.1.0.zip"/>
64
    <property name="gwt-visualization.download.url" value="http://gwt-google-apis.googlecode.com/files/${gwt-visualization.filename}"/>
65

    
66
    <property name="gwtquery.filename" value="gwtquery-1.0.0-20110116.074055-7.jar"/>
67
    <property name="gwtquery.download.url" value="http://gss.googlecode.com/hg/lib/${gwtquery.filename}?r=0473a2c1bc32c9426423f8ca3b688a29ce30216b"/>
68
    <property name="gwtquery-draggable-plugin.filename" value="draggable-plugin-1.0.2.jar"/>
69
    <property name="gwtquery-draggable-plugin.download.url" value="http://gss.googlecode.com/hg/lib/${gwtquery-draggable-plugin.filename}?r=0634eeeeaaad1b9bfb7a8e809bfc9e9545d208e2"/>
70
    <property name="gwtquery-droppable-plugin.filename" value="droppable-plugin-1.0.2.jar"/>
71
    <property name="gwtquery-droppable-plugin.download.url" value="http://gss.googlecode.com/hg/lib/${gwtquery-droppable-plugin.filename}?r=c8bca56a1c4ab780ac0d0cc72a2b40b60d7ca4f7"/>
72
    <property name="gwtquery-commonui-plugin.filename" value="commonui-plugin-1.0.3.jar"/>
73
    <property name="gwtquery-commonui-plugin.download.url" value="http://gss.googlecode.com/hg/lib/${gwtquery-commonui-plugin.filename}?r=0473a2c1bc32c9426423f8ca3b688a29ce30216b"/>
74

    
75
        <property name="selenium-server.filename" value="selenium-server-standalone-2.0b1.jar"/>
76
        <property name="selenium-server.download.url" value="http://selenium.googlecode.com/files/${selenium-server.filename}"/>
77

    
78
    <property name="root.context" value="gss" />
79
    <property name="gwt.module.class" value="GSS" />
80
    <property name="gwt.root.package" value="org.gss_project.gss.web" />
81
    <property name="gwt.root.path" value="org/gss_project/gss/web" />
82
    <property name="gwt.module" value="${gwt.root.package}.${gwt.module.class}" />
83
    <property name="gwt.admin.module.class" value="TwoAdmin" />
84
    <property name="gwt.admin.root.package" value="org.gss_project.gss.admin" />
85
    <property name="gwt.admin.root.path" value="org/gss_project/gss/admin" />
86
    <property name="gwt.admin.module" value="${gwt.admin.root.package}.${gwt.admin.module.class}" />
87

    
88
        <property name="src.dir" value="${basedir}/src"/>
89
    <property name="jboss-config.dir" value="${basedir}/jboss" />
90
    <property name="jboss-config.conf.dir" value="${jboss-config.dir}/conf" />
91
    <property name="jboss-config.bin.dir" value="${jboss-config.dir}/bin" />
92
    <property name="jboss-config.deploy.dir" value="${jboss-config.dir}/deploy" />
93
    <property name="jboss-config.lib.dir" value="${jboss-config.dir}/lib" />
94

    
95

    
96
        <property name="solr-config.dir" value="${basedir}/solr"/>
97
        <property name="solr-config.conf.dir" value="${solr-config.dir}/conf"/>
98

    
99
        <!-- MBeans -->
100
        <property name="mbeans.dir" value="${basedir}/mbeans"/>
101
        <property name="mbeans.meta-inf.dir" value="${mbeans.dir}/META-INF"/>
102

    
103
        <!-- JUnit dirs -->
104
        <property name="test.dir" value="${basedir}/test" />
105
        
106
        <!-- Build dirs -->
107
    <property  name="solr.src.dir" value="${solr-config.dir}/src"/>
108
        <property name="build.dir" value="${basedir}/bin" />
109
        <property name="build.classes.dir" value="${build.dir}/classes" />
110
        <property name="test.build.dir" value="${build.dir}/test" />
111
        <property name="test.build.classes.dir" value="${test.build.dir}/classes" />
112
    <property name="solr.build.dir" value="${build.dir}/solr" />
113
    <property name="solr.build.classes.dir" value="${solr.build.dir}/classes" />
114
        <property name="gwt.www.dir" value="${build.dir}/www" />
115
        <property name="gwt.www.admin.dir" value="${build.dir}/wwwadmin" />
116
        <property name="dist.war" value="${ant.project.name}.war"/>
117
        <property name="dist.admin.war" value="${ant.project.name}-admin.war"/>
118
        <property name="webdav.war" value="webdav.war"/>
119
        <property name="dist.ear" value="${ant.project.name}.ear"/>
120
        <property name="war.dir" value="${basedir}/war" />
121
        <property name="war.web-inf.dir" value="${war.dir}/WEB-INF"/>
122
        <property name="war.lib.dir" value="${war.web-inf.dir}/lib"/>
123
        <property name="war.admin.dir" value="${basedir}/waradmin" />
124
        <property name="war.admin.web-inf.dir" value="${war.dir}/WEB-INF"/>
125
        <property name="war.admin.lib.dir" value="${war.admin.web-inf.dir}/lib"/>
126
        <property name="webdav.war.dir" value="${basedir}/webdav" />
127
        <property name="webdav.war.web-inf.dir" value="${webdav.war.dir}/WEB-INF"/>
128
        <property name="webdav.war.lib.dir" value="${webdav.war.web-inf.dir}/lib"/>
129
    <property name="webdav.jar" value="webdav.jar"/>
130
    <property name="ejbs.jar" value="ejbs.jar"/>
131
        <property name="ear.dir" value="${basedir}/ear" />
132
        <property name="ear.lib.dir" value="${ear.dir}/lib" />
133
        <property name="mbeans.dist.file" value="${ant.project.name}-mbeans.sar"/>
134

    
135
        <!-- set classpath -->
136
        <path id="project.class.path">
137
        <pathelement location="${gwt.home}/gwt-user.jar"/>
138
                <pathelement location="${jboss.common.lib.dir}/commons-logging.jar"/>
139
                <pathelement location="${jboss.common.lib.dir}/ejb3-persistence.jar"/>
140
                <pathelement location="${jboss.common.lib.dir}/jboss-ejb3-ext-api.jar"/>
141
                <pathelement location="${jboss.common.lib.dir}/jboss-javaee.jar"/>
142
                <pathelement location="${jboss.common.lib.dir}/jbosssx.jar"/>
143
                <pathelement location="${jboss.common.lib.dir}/hibernate-core.jar"/>
144
        <pathelement location="${jboss.common.lib.dir}/hibernate-annotations.jar"/>
145
                <pathelement location="${jboss.common.lib.dir}/jboss-remoting.jar"/>
146
        <pathelement location="${jboss.common.lib.dir}/slf4j-api.jar"/>
147
                <pathelement location="${jboss.root.lib.dir}/jboss-j2se.jar"/>
148
                <pathelement location="${jboss.root.lib.dir}/jboss-kernel.jar"/>
149
                <pathelement location="${jboss.root.lib.dir}/jboss-system-jmx.jar"/>
150
                <pathelement location="${jboss.root.lib.dir}/jboss-system.jar"/>
151
                <pathelement location="${jboss.lib.dir}/jbosssx.jar"/>
152
                <pathelement location="${ear.lib.dir}/commons-codec-1.4.jar"/>
153
                <pathelement location="${ear.lib.dir}/commons-configuration-1.6.jar"/>
154
        <pathelement location="${ear.lib.dir}/commons-httpclient-3.1.jar"/>
155
                <pathelement location="${ear.lib.dir}/commons-lang.jar"/>
156
                <pathelement location="${ear.lib.dir}/ldap.jar"/>
157
        <pathelement location="${deps.dir}/${milton.api.filename}"/>
158
        <pathelement location="${ear.lib.dir}/commons-io-1.1.jar"/>
159
        <pathelement location="${war.lib.dir}/commons-fileupload-1.2.jar"/>
160
        <pathelement location="${deps.dir}/${milton.servlet.filename}"/>
161
        <pathelement location="${deps.dir}/${milton.console.filename}"/>
162
                <pathelement location="${solr.dist}/${solrj.jar}"/>
163
        <pathelement location="${solr.dist}/apache-solr-core-1.4.1.jar"/>
164
        <pathelement location="${solr.lib}/lucene-core-2.9.3.jar"/>
165
        <pathelement location="${solr.lib}/lucene-analyzers-2.9.3.jar"/>        
166
                <pathelement location="${deps.dir}/${selenium-server.filename}"/>
167
        <pathelement location="${junit.home}/junit.jar"/>
168
        </path>
169

    
170
        <target name="check-dependencies" description="Checks if all dependencies are present">
171
        <condition property="dependencies.present">
172
            <and>
173
                <available file="${jboss.home}" type="dir"/>
174
                <available file="${hornetq.home}" type="dir"/>
175
                <available file="${gwt.home}" type="dir"/>
176
                <available file="${gwt-gears.home}" type="dir"/>
177
                <available file="${deps.dir}/${gwtquery.filename}"/>
178
                <available file="${deps.dir}/${gwtquery-draggable-plugin.filename}"/>
179
                <available file="${deps.dir}/${gwtquery-droppable-plugin.filename}"/>
180
                <available file="${deps.dir}/${gwtquery-commonui-plugin.filename}"/>
181
                <available file="${deps.dir}/${gwt-incubator.filename}"/>
182
                <available file="${deps.dir}/${gwt-visualization.filename}"/>
183
                <available file="${junit.home}" type="dir"/>
184
                <available file="${deps.dir}/${selenium-server.filename}"/>
185
                <available file="${solr.root}" type="dir"/>
186
                <available file="${deps.dir}/${milton.api.filename}"/>
187
                <available file="${deps.dir}/${milton.console.filename}"/>
188
                <available file="${deps.dir}/${milton.servlet.filename}"/>
189
            </and>
190
        </condition>
191
        <echo message="dependencies.present=${dependencies.present}"/>
192
    </target>
193

    
194
    <target name="fetch-dependencies" unless="dependencies.present" description="Fetch the dpendencies if not present" depends="check-dependencies">
195
            <mkdir dir="${deps.dir}"/>
196
        <get src="${jboss.download.url}" dest="${deps.dir}/${jboss.filename}" usetimestamp="true"/>
197
        <get src="${hornetq.download.url}" dest="${deps.dir}/${hornetq.filename}" usetimestamp="true"/>
198
        <get src="${milton.api.download.url}" dest="${deps.dir}/${milton.api.filename}" usetimestamp="true"/>
199
        <get src="${milton.console.download.url}" dest="${deps.dir}/${milton.console.filename}" usetimestamp="true"/>
200
        <get src="${milton.servlet.download.url}" dest="${deps.dir}/${milton.servlet.filename}" usetimestamp="true"/>
201
        <get src="${gwt.download.url}" dest="${deps.dir}/${gwt.filename}" usetimestamp="true"/>
202
        <get src="${gwt-gears.download.url}" dest="${deps.dir}/${gwt-gears.filename}" usetimestamp="true"/>
203
        <get src="${gwt-incubator.download.url}" dest="${deps.dir}/${gwt-incubator.filename}"/>
204
        <get src="${gwt-visualization.download.url}" dest="${deps.dir}/${gwt-visualization.filename}"/>
205
        <get src="${gwtquery.download.url}" dest="${deps.dir}/${gwtquery.filename}" usetimestamp="true"/>
206
        <get src="${gwtquery-draggable-plugin.download.url}" dest="${deps.dir}/${gwtquery-draggable-plugin.filename}" usetimestamp="true"/>
207
        <get src="${gwtquery-droppable-plugin.download.url}" dest="${deps.dir}/${gwtquery-droppable-plugin.filename}" usetimestamp="true"/>
208
        <get src="${gwtquery-commonui-plugin.download.url}" dest="${deps.dir}/${gwtquery-commonui-plugin.filename}" usetimestamp="true"/>
209
            <get src="${junit.download.url}" dest="${deps.dir}/${junit.filename}" usetimestamp="true"/>
210
            <get src="${selenium-server.download.url}" dest="${deps.dir}/${selenium-server.filename}" usetimestamp="true"/>            
211
        <get src="${solr.download.url}" dest="${deps.dir}/${solr.filename}" usetimestamp="true"/>
212
        <unzip src="${deps.dir}/${jboss.filename}" dest="${jboss.home}/.."/>
213
        <unzip src="${deps.dir}/${hornetq.filename}" dest="${hornetq.home}/.."/>
214
            <unzip src="${deps.dir}/${gwt.filename}" dest="${gwt.home}/.."/>
215
        <unzip src="${deps.dir}/${gwt-gears.filename}" dest="${gwt-gears.home}/.."/>
216
        <unzip src="${deps.dir}/${gwt-visualization.filename}" dest="${gwt-visualization.home}/.."/>
217
            <unzip src="${deps.dir}/${junit.filename}" dest="${junit.home}/.."/>
218
        <unzip src="${deps.dir}/${solr.filename}" dest="${solr.root}/.."/>
219
    </target>
220

    
221
    <target name="compile-solr" depends="fetch-dependencies" description="Compile solr Greek filter">
222
        <mkdir dir="${build.dir}"/>
223
        <mkdir dir="${solr.build.dir}"/>
224
        <mkdir dir="${solr.build.classes.dir}"/>
225
        <javac srcdir="${solr.src.dir}" destdir="${solr.build.classes.dir}" debug="on" debuglevel="lines,vars,source" source="1.6" includeantruntime="false">
226
            <classpath refid="project.class.path" />
227
        </javac>
228
    </target>
229

    
230
    <target name="install-solr" depends="fetch-dependencies, compile-solr" description="Installs Greek filter and modifies solr config files">
231
                <copy todir="${solr.conf.dir}" overwrite="true" failonerror="false">
232
                        <fileset dir="${solr-config.conf.dir}" />
233
                </copy>
234
                <jar destfile="${solr.root}/greektokenfilter.jar">
235
                    <fileset dir="${solr.build.classes.dir}">
236
                                <include name="org/gss_project/gss/solr/analysis/GreekLowerCaseFilterFactory.class"/>
237
                    </fileset>
238
                </jar>
239
    </target>
240

    
241
        <target name="install" depends="fetch-dependencies, install-solr" description="Installs the configuration files of the application server">
242
                <!-- Install HornetQ configuration -->
243
                <copy todir="${jboss.lib.dir}">
244
                        <fileset dir="${hornetq.home}/lib">
245
                                <include name="hornetq-*.jar"/>
246
                                <include name="netty*.jar"/>
247
                        </fileset>
248
                </copy>
249
                <property name="hornetq.sar.dir" value="${jboss.deploy.dir}/hornetq.sar"/>
250
                <mkdir dir="${hornetq.sar.dir}"/>
251
                <copy todir="${hornetq.sar.dir}">
252
                        <fileset dir="${hornetq.home}/config/jboss-as/non-clustered" includes="*" excludes="**/jboss-as-4/**"/>
253
                </copy>
254
                <unzip src="${hornetq.home}/lib/hornetq-ra.rar" dest="${jboss.deploy.dir}/hornetq-ra.rar"/>
255
                <delete dir="${jboss.deploy.dir}/messaging" failonerror="false"/>
256
                <mkdir dir="${jboss.bin.dir}/META-INF/lib/linux2/x86"/>
257
                <copy todir="${jboss.bin.dir}/META-INF/lib/linux2/x86" file="${hornetq.home}/bin/libHornetQAIO32.so"/>
258
        <mkdir dir="${jboss.bin.dir}/META-INF/lib/linux2/x64"/>
259
                <copy todir="${jboss.bin.dir}/META-INF/lib/linux2/x64" file="${hornetq.home}/bin/libHornetQAIO64.so"/>
260

    
261
                <!-- Install gss configuration -->
262
                <copy todir="${jboss.bin.dir}" overwrite="true" failonerror="false">
263
                        <fileset dir="${jboss-config.bin.dir}" />
264
                </copy>
265
                <copy todir="${jboss.conf.dir}" overwrite="true" failonerror="false">
266
                        <fileset dir="${jboss-config.conf.dir}"/>
267
                </copy>
268
        <native2ascii src="${jboss-config.conf.dir}" dest="${jboss.conf.dir}">
269
            <include name="*.properties"/>
270
        </native2ascii>
271
                <copy todir="${jboss.lib.dir}" overwrite="true" failonerror="false">
272
                        <fileset dir="${jboss-config.lib.dir}" />
273
                </copy>
274
                <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
275
                        <fileset dir="${jboss-config.deploy.dir}" />
276
                </copy>
277
        <!-- Make run.sh executable again -->
278
        <chmod file="${jboss.bin.dir}/run.sh" perm="ugo+x"/>
279
        </target>
280

    
281
        <target name="compile" description="Compile all sources except gwt client sources" depends="fetch-dependencies">
282
                <mkdir dir="${build.dir}"/>
283
        <mkdir dir="${build.classes.dir}"/>
284
                <javac srcdir="${src.dir}:${test.dir}" destdir="${build.classes.dir}" debug="on" debuglevel="lines,vars,source" source="1.6" includeantruntime="false">
285
                        <classpath refid="project.class.path" />
286
            <include name="org/json/**"/>
287
            <include name="**/server/**"/>
288
            <include name="**/common/**"/>
289
            <include name="**/mbeans/**"/>
290
                </javac>
291
        </target>
292

    
293
    <target name="package-ejb" depends="compile" description="Package up the EJB classes">
294
        <jar destfile="${build.dir}/${ejbs.jar}">
295
            <zipfileset dir="${basedir}/persistence" />
296
            <zipfileset dir="${build.classes.dir}">
297
                <include name="**/configuration/**" />
298
                <include name="**/common/**" />
299
                <include name="**/domain/**" />
300
                <include name="**/ejb/**" />
301
                <exclude name="**/*Test.class"/>
302
            </zipfileset>
303
        </jar>
304
    </target>
305

    
306
        <target name="package-code" depends="compile" description="Package up the servlet code of the web client as a jar">
307
                <jar destfile="${build.dir}/${ant.project.name}.jar">
308
                        <fileset dir="${build.classes.dir}">
309
                                <include name="org/json/**" />
310
                <include name="**/server/*.class" />
311
                <include name="**/server/rest/**" />
312
                        </fileset>
313
                </jar>
314
        </target>
315

    
316
    <target name="package-admin-code" depends="compile" description="Package up the admin webapp code as a jar">
317
        <jar destfile="${build.dir}/${ant.project.name}-admin.jar">
318
            <fileset dir="${build.classes.dir}">
319
                <include name="**/client/AdminService.class" />
320
                <include name="**/server/*.class" />
321
                <include name="**/server/admin/**" />
322
            </fileset>
323
        </jar>
324
    </target>
325

    
326
        <target name="package-webdav-code" depends="compile" description="Package up the webdav code as a jar">
327
                <jar destfile="${build.dir}/webdav.jar">
328
                        <fileset dir="${build.classes.dir}">
329
                                <include name="**/webdav/**" />
330
                        </fileset>
331
                </jar>
332
        </target>
333

    
334
        <target name="check-gwt-compile" description="Checks is the web gwt client sources are up-to-date with the compiled artifacts">
335
                <uptodate property="compilation-not-needed">
336
                        <srcfiles dir="${src.dir}">
337
                <include name="${gwt.root.path}/**"/>
338
                <include name="**/common/exceptions/**"/>
339
            </srcfiles>
340
                        <mergemapper to="${gwt.www.dir}/${gwt.module}/${gwt.module}.nocache.js"/>
341
                </uptodate>
342
        </target>
343

    
344
        <target name="gwt-compile" depends="check-gwt-compile, fetch-dependencies" unless="compilation-not-needed" description="Compile the gwt web client code to JavaScript">
345
                <java classname="com.google.gwt.dev.Compiler" failonerror="true" fork="true">
346
                        <arg value="-localWorkers" />
347
                        <arg value="${gwt.workers}" />
348
                        <arg value="-war"/>
349
                        <arg value="${gwt.www.dir}"/>
350
                        <arg value="${gwt.module}"/>
351
                        
352
                    <classpath>
353
                <pathelement path="${gwt.home}/gwt-dev.jar"/>
354
                <pathelement location="${deps.dir}/${gwtquery.filename}"/>
355
                <pathelement location="${deps.dir}/${gwtquery-droppable-plugin.filename}"/>
356
                <pathelement location="${deps.dir}/${gwtquery-draggable-plugin.filename}"/>
357
                <pathelement location="${deps.dir}/${gwtquery-commonui-plugin.filename}"/>
358
                <pathelement location="${gwt-gears.home}/gwt-gears.jar"/>
359
                <pathelement path="${gwt.home}/gwt-user.jar" />
360
                                <path refid="project.class.path"/>
361
                                <pathelement path="${src.dir}" />
362
                    </classpath>
363
                </java>
364
        <move file="${gwt.www.dir}/${gwt.module}/${gwt.module.class}.html" tofile="${gwt.www.dir}/${gwt.module}/index.html"/>
365
        </target>
366
        
367
        <target name="check-gwt-admin-compile" description="Checks is the admin gwt client sources are up-to-date with the compiled artifacts">
368
                <uptodate property="admin-compilation-not-needed">
369
                        <srcfiles dir="${src.dir}">
370
                <include name="${gwt.admin.root.path}/**"/>
371
            </srcfiles>
372
                        <mergemapper to="${gwt.www.admin.dir}/${gwt.admin.module}/${gwt.admin.module}.nocache.js"/>
373
                </uptodate>
374
        </target>
375

    
376
        <target name="gwt-admin-compile" depends="check-gwt-admin-compile, fetch-dependencies" unless="admin-compilation-not-needed" description="Compile admin gwt client code to JavaScript">
377
                <java classname="com.google.gwt.dev.Compiler" failonerror="true" fork="true">
378
                        <!--arg value="-style"/>
379
                        <arg value="DETAILED"/-->
380
                        <arg value="-localWorkers" />
381
                        <arg value="${gwt.workers}" />
382
                        <arg value="-war"/>
383
                        <arg value="${gwt.www.admin.dir}"/>
384
                        <arg value="${gwt.admin.module}"/>
385
                    <classpath>
386
                <pathelement path="${gwt.home}/gwt-dev.jar"/>
387
                <pathelement path="${gwt.home}/gwt-user.jar" />
388
                <pathelement path="${deps.dir}/${gwt-incubator.filename}"/>
389
                <pathelement path="${gwt-visualization.home}/gwt-visualization.jar"/>
390
                                <path refid="project.class.path" />
391
                                <pathelement path="${src.dir}" />
392
                    </classpath>
393
                </java>
394
        <move file="${gwt.www.admin.dir}/${gwt.admin.module}/${gwt.admin.module.class}.html" tofile="${gwt.www.admin.dir}/${gwt.admin.module}/index.html"/>
395
        </target>
396
                
397
    <target name="package-war" depends="gwt-compile, package-code" description="Package up the web client as a war">
398
        <jar destfile="${build.dir}/${dist.war}">
399
            <zipfileset dir="${war.dir}"/>
400
            <zipfileset dir="${gwt.www.dir}/${gwt.module}"/>
401
            <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
402
                <include name="${ant.project.name}.jar" />
403
            </zipfileset>
404
            <zipfileset dir="${gwt.home}" prefix="WEB-INF/lib">
405
                <include name="gwt-servlet.jar" />
406
            </zipfileset>
407
        </jar>
408
    </target>
409

    
410
        <target name="package-admin-war" depends="gwt-admin-compile, package-admin-code" description="Package up the admin webapp as a war">
411
                <jar destfile="${build.dir}/${dist.admin.war}">
412
                        <zipfileset dir="${war.admin.dir}"/>
413
                        <zipfileset dir="${gwt.www.admin.dir}/${gwt.admin.module}"/>
414
                        <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
415
                                <include name="${ant.project.name}-admin.jar" />
416
                        </zipfileset>
417
                        <zipfileset dir="${gwt.home}" prefix="WEB-INF/lib">
418
                                <include name="gwt-servlet.jar" />
419
                        </zipfileset>
420
                </jar>
421
        </target>
422

    
423
        <target name="package-webdav-war" depends="package-webdav-code" description="Package up the WebDAV part as a war">
424
                <jar destfile="${build.dir}/${webdav.war}">
425
                        <zipfileset dir="${webdav.war.dir}" />
426
            <zipfileset dir="${deps.dir}" prefix="WEB-INF/lib">
427
                <include name="${milton.console.filename}"/>
428
                <include name="${milton.servlet.filename}"/>
429
            </zipfileset>
430
                        <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
431
                                <include name="${webdav.jar}" />
432
                        </zipfileset>
433
                </jar>
434
        </target>
435

    
436
        <target name="package-mbeans" depends="compile" description="Package the mbeans as .sar">
437
                <jar jarfile="${build.dir}/${mbeans.dist.file}" basedir="${build.classes.dir}">
438
                        <include name="**/mbeans/**"/>
439
                        <metainf dir="${mbeans.meta-inf.dir}"/>
440
                </jar>
441
        </target>
442
        
443
        <target name="package-ear" depends="package-admin-war, package-war, package-webdav-war, package-ejb, package-mbeans" description="Package up the project as an ear">
444
                <jar destfile="${build.dir}/${dist.ear}">
445
                        <zipfileset dir="${ear.dir}" />
446
                        <zipfileset dir="${build.dir}" >
447
                                <include name="${ejbs.jar}" />
448
                                <include name="${dist.war}" />
449
                                <include name="${webdav.war}" />
450
                <include name="${dist.admin.war}" />
451
                                <include name="${mbeans.dist.file}"/>
452
                        </zipfileset>
453
                    <zipfileset dir="${solr.dist}" prefix="lib">
454
                                <include name="${solrj.jar}" />
455
                        </zipfileset>
456
            <zipfileset dir="${deps.dir}" prefix="lib">
457
                <include name="${milton.api.filename}"/>
458
            </zipfileset>
459
                </jar>
460
        </target>
461

    
462
        <target name="deploy" depends="package-ear" description="Deploy the project on the server">
463
                <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}"/>
464
        </target>
465

    
466
        <target name="redeploy" depends="package-ear" description="Redeploy the project on the server">
467
                <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}" overwrite="yes"/>
468
        </target>
469

    
470
        <target name="undeploy" description="Undeploy the project from the server">
471
                <delete file="${jboss.deploy.dir}/${dist.ear}"/>
472
        </target>
473

    
474
        <target name="clean" description="Delete all build artifacts">
475
                <delete dir="${build.dir}"/>
476
        </target>
477

    
478
    <target name="distclean" depends="clean" description="Delete all downloaded dependencies">
479
        <delete dir="${deps.dir}"/>
480
    </target>
481

    
482
        <target name="test" description="Performs unit tests on the project" depends="compile">
483
                <available
484
                      property="junit.present"
485
                      classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
486
                      classpathref="project.class.path"/>
487
            <fail unless="junit.present">
488
              ##################################################################
489
              JUnit not found.
490
              Please make sure junit.jar is in ANT_HOME/lib, or made available
491
              to Ant using other mechanisms like -lib or CLASSPATH.
492
              ##################################################################
493
                </fail>
494

    
495
                <junit printsummary="withOutAndErr" fork="yes" haltonfailure="yes">
496
                        <classpath refid="project.class.path"/>
497
                        <formatter type="plain"/>
498
                        <batchtest todir="${test.build.dir}">
499
                                <fileset dir="${test.build.classes.dir}">
500
                                        <include name="**/*Test.class"/>
501
                                </fileset>          
502
                        </batchtest>
503

    
504
                </junit>
505
        </target>
506

    
507
        <target name="run" description="Starts the server" depends="deploy">
508
        <exec executable="${jboss.bin.dir}/run.sh" osfamily="unix">
509
            <arg line="${jboss.args}"/>
510
        </exec>
511
                <exec executable="cmd" osfamily="windows">
512
                    <arg value="/c"/>
513
                    <arg value="${jboss.bin.dir}/run.bat"/>
514
            <arg line="${jboss.args}"/>
515
                </exec>
516
    </target>
517
    
518
    <target name="run-solr" depends="install-solr" description="Starts the solr server">
519
        <java jar="${solr.root}/example/start.jar" fork="true" dir="${solr.root}/example"/>
520
    </target>
521

    
522
    <target name="run-web-dev-mode" depends="deploy" description="Run web client in development mode">
523
        <java fork="true" classname="com.google.gwt.dev.DevMode" spawn="true">
524
            <classpath>
525
                <pathelement location="${src.dir}"/>
526
                <pathelement location="${build.classes.dir}"/>
527
                <pathelement path="${gwt.home}/gwt-dev.jar"/>
528
                <pathelement location="${deps.dir}/${gwtquery.filename}"/>
529
                <pathelement location="${deps.dir}/${gwtquery-draggable-plugin.filename}"/>
530
                <pathelement location="${deps.dir}/${gwtquery-droppable-plugin.filename}"/>
531
                <pathelement location="${deps.dir}/${gwtquery-commonui-plugin.filename}"/>
532
                <pathelement location="${gwt-gears.home}/gwt-gears.jar"/>
533
                <pathelement path="${gwt.home}/gwt-user.jar" />
534
                <path refid="project.class.path"/>
535
            </classpath>
536
            <jvmarg value="-Xmx256M"/>
537
            <jvmarg value="-Xdebug"/>
538
            <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=55555"/>
539
            <arg value="-noserver"/>
540
            <arg value="-war"/>
541
            <arg value="${gwt.www.dir}"/>
542
            <arg value="-startupUrl"/>
543
            <arg value="http://127.0.0.1:8080/pithos"/>
544
            <arg value="${gwt.module}"/>
545
        </java>
546
    </target>
547

    
548
    <target name="run-admin-dev-mode" depends="deploy" description="Run admin client in development mode">
549
        <java fork="true" classname="com.google.gwt.dev.DevMode" spawn="true">
550
            <classpath>
551
                <pathelement location="${src.dir}"/>
552
                <pathelement location="${build.classes.dir}"/>
553
                <pathelement path="${deps.dir}/${gwt-incubator.filename}"/>
554
                <pathelement path="${gwt-visualization.home}/gwt-visualization.jar"/>
555
                <pathelement path="${gwt.home}/gwt-dev.jar"/>
556
                <pathelement path="${gwt.home}/gwt-user.jar" />
557
                <path refid="project.class.path"/>
558
            </classpath>
559
            <jvmarg value="-Xmx256M"/>
560
            <jvmarg value="-Xdebug"/>
561
            <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=66666"/>
562
            <arg value="-noserver"/>
563
            <arg value="-war"/>
564
            <arg value="${gwt.www.admin.dir}"/>
565
            <arg value="-startupUrl"/>
566
            <arg value="http://127.0.0.1:8080/gss-admin"/>
567
            <arg value="${gwt.admin.module}"/>
568
        </java>
569
    </target>
570
</project>