Statistics
| Branch: | Tag: | Revision:

root / gss / build.xml @ d2c63e7e

History | View | Annotate | Download (13.5 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

    
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.5.jar"/>
95
                <pathelement location="${war.lib.dir}/commons-fileupload-1.2.jar"/>
96
                <pathelement location="${ear.lib.dir}/commons-lang.jar"/>
97
                <pathelement location="${junit.path}/junit.jar"/>
98
                <pathelement location="${basedir}/lib/gwt-dnd-2.5.6.jar"/>
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
                        </zipfileset>
192
                </jar>
193
        </target>
194

    
195
        <target name="check-gwt-compile" depends="compile">
196
                <uptodate property="compilation-not-needed">
197
                        <srcfiles dir="${src.dir}" excludes="**/server/**"/>
198
                        <mergemapper to="${build.dir}/www/clear.cache.gif"/>
199
                </uptodate>
200
        </target>
201

    
202
        <target name="gwt-compile" depends="check-gwt-compile" unless="compilation-not-needed" description="Compile client code to JavaScript">
203
            <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev-linux.jar">
204
                    <available file="${gwt.path}/gwt-dev-linux.jar"/>
205
            </condition>
206
            <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev-mac.jar">
207
                    <available file="${gwt.path}/gwt-dev-mac.jar" />
208
            </condition>
209
            <condition property="gwt-dev-lib" value="${gwt.path}/gwt-dev-windows.jar">
210
                    <available file="${gwt.path}/gwt-dev-windows.jar" />
211
            </condition>
212
                <java classname="com.google.gwt.dev.GWTCompiler" failonerror="true" fork="true">
213
                        <arg value="-out"/>
214
                        <arg value="${gwt.www.dir}"/>
215
                        <arg value="${gwt.module}"/>
216
                        <jvmarg value="-Xmx196m"/>
217
                    <classpath>
218
                            <pathelement location="dist/test.jar"/>
219
                        <pathelement path="${gwt-dev-lib}"/>
220
                                <path refid="project.class.path" />
221
                                <pathelement path="${src.dir}" />
222
                    </classpath>
223
                </java>
224
                <mkdir dir="${build.dir}/www"/>
225
                <copy todir="${build.dir}/www">
226
                        <fileset dir="${gwt.www.dir}/${gwt.module}" excludes="**/${gwt.module.class}.html">
227
                        </fileset>
228
                </copy>
229
                <copy file="${gwt.www.dir}/${gwt.module}/${gwt.module.class}.html" tofile="${build.dir}/www/index.html" />
230
        </target>
231
        
232
        <target name="package-war" depends="gwt-compile, package-code" description="Package up the web part as a war">
233
                <jar destfile="${build.dir}/${dist.war}">
234
                        <zipfileset dir="${war.dir}" />
235
                        <zipfileset dir="${build.dir}/www" />
236
                        <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
237
                                <include name="${ant.project.name}.jar" />
238
                        </zipfileset>
239
                        <zipfileset dir="${gwt.path}" prefix="WEB-INF/lib">
240
                                <include name="gwt-servlet.jar" />
241
                        </zipfileset>
242
                </jar>
243
        </target>
244

    
245
        <target name="package-webdav-war" depends="package-webdav" description="Package up the WebDAV part as a war">
246
                <jar destfile="${build.dir}/${webdav.war}">
247
                        <zipfileset dir="${webdav.war.dir}" />
248
                        <zipfileset dir="${build.dir}" prefix="WEB-INF/lib">
249
                                <include name="webdav.jar" />
250
                        </zipfileset>
251
                </jar>
252
        </target>
253

    
254
        <target name="package-mbeans" depends="compile">
255
                <jar jarfile="${build.dir}/${mbeans.dist.file}" basedir="${build.dir}">
256
                        <include name="**/mbeans/**"/>
257
                        <metainf dir="${mbeans.meta-inf.dir}"/>
258
                </jar>
259
        </target>
260
        
261
        <target name="package-ear" depends="package-war, package-webdav-war, package-ejb, package-mbeans" description="Package up the project as an ear">
262
                <jar destfile="${build.dir}/${dist.ear}">
263
                        <zipfileset dir="${ear.dir}" />
264
                        <zipfileset dir="${build.dir}">
265
                                <include name="ejbs.jar" />
266
                                <include name="${dist.war}" />
267
                                <include name="${webdav.war}" />
268
                                <include name="${mbeans.dist.file}"/>
269
                        </zipfileset>
270
                </jar>
271
        </target>
272

    
273
        <target name="deploy" depends="package-ear" description="Deploy the project to the server">
274
                <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}"/>
275
        </target>
276

    
277
        <target name="deploy-production" depends="package-ear" description="Deploy the project to the production server">
278
                <copy todir="${jboss.prod.deploy.dir}" file="${build.dir}/${dist.ear}"/>
279
        </target>
280

    
281
        <target name="redeploy" depends="package-ear" description="Redeploy the project to the server">
282
                <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}" overwrite="yes"/>
283
        </target>
284

    
285
        <target name="undeploy" description="Undeploy the project from the server">
286
                <delete file="${jboss.deploy.dir}/${dist.ear}"/>
287
        </target>
288

    
289
        <target name="clean" description="Delete the contents of the bin and www directories">
290
                <delete dir="${build.dir}" />
291
                <delete dir="${gwt.www.dir}" />
292
        </target>
293

    
294
        <target name="test" description="Performs unit tests on the project" depends="compile">
295
                <available
296
                      property="junit.present"
297
                      classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
298
                      classpathref="project.class.path"/>
299
            <fail unless="junit.present">
300
              ##################################################################
301
              JUnit not found.
302
              Please make sure junit.jar is in ANT_HOME/lib, or made available
303
              to Ant using other mechanisms like -lib or CLASSPATH.
304
              ##################################################################
305
                </fail>
306

    
307
                <junit printsummary="withOutAndErr" fork="yes" haltonfailure="yes">
308
                        <classpath refid="project.class.path"/>
309
                        <formatter type="plain"/>
310
                        <batchtest todir="${test.build.dir}">
311
                                <fileset dir="${test.build.classes.dir}">
312
                                        <include name="**/**.Test"/>
313
                                </fileset>          
314
                        </batchtest>
315

    
316
                </junit>
317
        </target>
318
        
319
</project>