source: TI01-discovery/branches/ws-Discovery2-upgrade/srcgen/buildDiscovery.xml @ 3962

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI01-discovery/branches/ws-Discovery2-upgrade/srcgen/buildDiscovery.xml@3962
Revision 3962, 11.8 KB checked in by cbyrom, 12 years ago (diff)

Add new build target, generatestubs, to generate both client + server
side stubs + package up client xbeans files + tidy up some other build
things.

Line 
1<project basedir="." default="jar.all">
2        <!--Auto generated ant build file-->
3        <property environment="env"/>
4        <property name="axis2.home" value="${env.AXIS2_HOME}"/>
5        <property name="build.base.dir" value="."/>
6        <property name="maven.class.path" value=""/>
7        <property name="name" value="DiscoveryService"/>
8        <property name="src" value="${build.base.dir}/src"/>
9        <property name="docsrc" value="../docs"/>
10        <property name="test" value="${build.base.dir}/test"/>
11        <property name="build" value="${build.base.dir}/build"/>
12        <property name="jar.server" value="${build}/lib/${name}.aar"/>
13        <property name="build.src" value="${build}/src"/>
14        <property name="build.classes" value="${build}/classes"/>
15        <property name="lib" value="${build}/lib"/>
16        <property name="resources" value="${build.base.dir}/resources"/>
17        <property name="xbeans.packaged.jar.name" value="XBeans-packaged.jar"/>
18        <property name="jars.ok" value=""/>
19        <property name="src.nongen" value="../src"/>
20        <property name="src.nongen.server" value="../src/ndg/services"/>
21        <property name="src.nongen.client" value="../src/ndg/testclient"/>
22        <property name="res.nongen" value="../resources"/>
23        <property name="stubfile" value="${src}/ndg/clients/discovery/DiscoveryServiceStub.java"/>
24        <property name="skeletonfile" value="${src}/ndg/services/discovery/DiscoveryServiceSkeleton.java"/>
25        <property name="tomcat.deploy.dir" value="${env.CATALINA_HOME}/webapps/axis2/WEB-INF/services/"/>
26       
27        <path id="axis2.class.path">
28                <pathelement path="${java.class.path}"/>
29                <pathelement path="${maven.class.path}"/>
30                <fileset dir="${axis2.home}">
31                        <include name="lib/*.jar"/>
32                </fileset>
33                <fileset dir="${resources}">
34                        <include name="*.jar"/>
35                </fileset>
36        </path>
37       
38        <target name="clean">
39                <delete dir="${build}"/>
40                <delete dir="${resources}"/>
41                <delete dir="${test}"/>
42                <delete dir="${src}"/>
43        </target>
44        <target name="init" depends="clean">
45                <mkdir dir="${build}"/>
46                <mkdir dir="${build.classes}"/>
47                <mkdir dir="${lib}"/>
48                <mkdir dir="${test}"/>
49                <mkdir dir="${resources}"/>
50        </target>
51       
52        <target name="wsdl2java.client" depends="init">
53                <echo message="Generating client side stubs from WSDL"/>
54        <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
55                        <classpath refid="axis2.class.path"/> 
56                    <arg value="-d"/>
57                    <arg value="xmlbeans"/>
58                    <arg value="-uri"/>
59                    <arg file="${build.base.dir}/../wsdl/Discovery.wsdl"/>
60            <arg value="-o"/>
61                    <arg file="${build.base.dir}"/>
62                    <arg value="-p"/>
63                    <arg value="ndg.clients.discovery"/>
64                </java>
65        </target>       
66       
67        <target name="wsdl2java.server" depends="init">
68                <echo message="Generating server side stubs from WSDL"/>
69        <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
70                        <classpath refid="axis2.class.path"/> 
71                    <arg value="-d"/>
72                    <arg value="xmlbeans"/>
73                    <arg value="-uri"/>
74                    <arg file="${build.base.dir}/../wsdl/Discovery.wsdl"/>
75                    <arg value="-ss"/>
76                    <arg value="-sd"/>
77            <arg value="-o"/>
78                    <arg file="${build.base.dir}"/>
79                    <arg value="-p"/>
80                    <arg value="ndg.services.discovery"/>
81                </java>
82                <echo message="Deleting autogenerated skeleton file, ${skeletonfile}"/>
83                <echo message="- this is superceded by user defined file"/>
84                <delete file="${skeletonfile}"/>
85        </target>       
86
87        <target name="generatestubs" depends="wsdl2java.server, wsdl2java.client, jar.xbeans" />
88
89        <target name="jar.xbeans">
90                <jar basedir="${resources}" destfile="${lib}/${xbeans.packaged.jar.name}" excludes="**/services.xml, **/*.xsd"/>
91        </target>
92       
93        <target name="pre.compile.test" depends="init, jar.xbeans">
94                <!--Test the classpath for the availability of necesary classes-->
95                <available classname="org.apache.xmlbeans.XmlObject" property="xbeans.available" classpathref="axis2.class.path"/>
96                <available classname="javax.xml.stream.XMLStreamReader" property="stax.available" classpathref="axis2.class.path"/>
97                <available classname="org.apache.axis2.engine.AxisEngine" property="axis2.available" classpathref="axis2.class.path"/>
98                <condition property="jars.ok">
99                        <and>
100                                <isset property="xbeans.available"/>
101                                <isset property="stax.available"/>
102                                <isset property="axis2.available"/>
103                        </and>
104                </condition>
105                <!--Print out the availabilities-->
106                <echo message="XmlBeans Availability = ${xbeans.available}"/>
107                <echo message="Stax Availability= ${stax.available}"/>
108                <echo message="Axis2 Availability= ${axis2.available}"/>
109        </target>
110       
111        <target name="compile.src.server" depends="wsdl2java.server,pre.compile.test,copygen,copynongen.server,compile.src"/>
112        <target name="compile.src.client" depends="wsdl2java.client,fixchunking,pre.compile.test,copygen,copynongen.client,compile.src"/>
113        <target name="compile.src" depends="" if="jars.ok">
114                <javac debug="on" destdir="${build.classes}" srcdir="${build.src}">
115                        <classpath location="${lib}/${xbeans.packaged.jar.name}"/>
116                        <classpath refid="axis2.class.path"/>
117                </javac>
118                <delete dir="${build.src}"/>
119        </target>
120        <target name="compile.test" depends="compile.src.client" if="jars.ok">
121                <javac debug="on" destdir="${build.classes}">
122                        <src path="${test}"/>
123                        <classpath location="${lib}/${xbeans.packaged.jar.name}"/>
124                        <classpath refid="axis2.class.path"/>
125                </javac>
126        </target>
127        <target name="echo.classpath.problem" depends="pre.compile.test" unless="jars.ok">
128                <echo message="The class path is not set right!                                Please make sure the following classes are in the classpath                                1. XmlBeans                                2. Stax                                3. Axis2                 "/>
129        </target>
130        <target name="jar.all" depends="jar.server"/>
131        <target name="jar.server" depends="compile.src.server,echo.classpath.problem" if="jars.ok">
132                <copy toDir="${build.classes}/META-INF">
133                        <fileset dir="${resources}">
134                                <include name="*.xml"/>
135                                <include name="*.wsdl"/>
136                                <include name="*.xsd"/>
137                                <exclude name="**/schemaorg_apache_xmlbean/**"/>
138                        </fileset>
139                </copy>
140                <copy file="${lib}/${xbeans.packaged.jar.name}" toDir="${build.classes}/lib"/>
141                <copy toDir="${build.classes}/lib">
142                        <fileset dir="${resources}">
143                                <include name="*.jar"/>
144                        </fileset>
145                </copy>
146                <jar destfile="${lib}/${name}.aar">
147                        <fileset excludes="**/Test.class" dir="${build.classes}"/>
148                </jar>
149        </target>
150        <target name="jar.client" if="jars.ok" depends="compile.test">
151                <jar destfile="${lib}/${name}-test-client.jar">
152                        <fileset dir="${build.classes}">
153                                <exclude name="**/META-INF/*.*"/>
154                                <exclude name="**/lib/*.*"/>
155                                <exclude name="**/*MessageReceiver.class"/>
156                                <exclude name="**/*Skeleton.class"/>
157                        </fileset>
158                        <fileset dir="${resources}">
159                                <exclude name="**/*.wsdl"/>
160                                <exclude name="**/*.xsd"/>
161                                <exclude name="**/*.xml"/>
162                        </fileset>
163                </jar>
164        </target>
165        <target depends="jar.server" name="make.repo" if="jars.ok">
166                <mkdir dir="${build}/repo/"/>
167                <mkdir dir="${build}/repo/services"/>
168                <copy file="${jar.server}" toDir="${build}/repo/services/"/>
169        </target>
170        <target depends="make.repo" name="start.server" if="jars.ok">
171                <java classname="org.apache.axis2.transport.http.SimpleHTTPServer" fork="true">
172                        <arg value="${build}/repo"/>
173                        <classpath refid="axis2.class.path"/>
174                </java>
175        </target>
176        <target if="jars.ok" name="run.test" depends="jar.client">
177                <path id="test.class.path">
178                        <pathelement location="${lib}/${name}-test-client.jar"/>
179                        <path refid="axis2.class.path"/>
180                </path>
181                <mkdir dir="${build}/test-reports/"/>
182                <junit printsummary="yes" haltonfailure="yes">
183                        <classpath refid="test.class.path"/>
184                        <formatter type="plain"/>
185                        <batchtest fork="yes" toDir="${build}/test-reports/">
186                                <fileset dir="${test}">
187                                        <include name="**/*Test*.java"/>
188                                </fileset>
189                        </batchtest>
190                </junit>
191        </target>
192        <target name="javadoc" depends="compile.src.server" description="Create Javadoc API documentation">
193                <mkdir dir="${build}/docs/api"/>
194                <mkdir dir="${build}/docs/api/resources"/>
195                <copy toDir="${build}/docs/api/resources" overwrite="true"> 
196                        <fileset dir="${docsrc}/resources">
197                                <include name="**/*.png"/>
198                        </fileset>
199                </copy>
200                <javadoc sourcepath="${build.src}" destdir="${build}/docs/api" packagenames="ndg.services.discovery,discoveryserviceapi" overview="${docsrc}/overview.html"/>
201    </target>
202        <target depends="jar.client" name="run.client" if="jars.ok">
203                <!-- <setproxy proxyHost="wwwcache.rl.ac.uk" proxyPort="8080"/> -->
204                <echo message="JAVA_HOME = ${env.JAVA_HOME}"/>
205                <java classname="ndg.testclient.discovery.DiscoveryServiceClient" fork="true">
206                        <!-- <arg value="${build}/repo"/> -->
207                        <classpath refid="axis2.class.path"/>
208                        <classpath location="${lib}/${name}-test-client.jar"/>
209                        <sysproperty key="verbose" value="true"/>
210                        <arg value="string"/>
211                </java>
212        </target>
213        <target depends="" name="test.client" if="jars.ok">
214                <echo message="JAVA_HOME = ${env.JAVA_HOME}"/>
215                <echo message="CLASSPATH = ${env.CLASSPATH}"/>
216                <java classname="ndg.testclient.discovery.DiscoveryServiceClient" fork="true">
217                        <classpath refid="axis2.class.path"/>
218                        <classpath location="${lib}/${name}-test-client.jar"/>
219                        <arg value="string"/>
220                </java>
221        </target>
222    <target name="copygen">
223                <!-- Copy auto-generated src to source tree -->
224                <!-- NB. Overwrites even if files in toDir are newer -->
225                <copy toDir="${build.src}" overwrite="true"> 
226                        <fileset dir="${src}">
227                                <include name="**/*.java"/>
228                                <include name="**/*.html"/>
229                        </fileset>
230                </copy>
231    </target>
232    <target name="copynongen.server" depends="copy.resource">
233                <!-- Copy non-auto-generated src to source tree -->
234                <!-- NB. Overwrites even if files in toDir are newer -->
235                <copy toDir="${build.src}" overwrite="true" verbose="true"> 
236                        <fileset dir="${src.nongen.server}">
237                                <include name="**/*.java"/>
238                                <include name="**/*.html"/>
239                        </fileset>
240                </copy>
241   </target>
242        <target name="copy.resource">
243                <copy toDir="${resources}" overwrite="true" verbose="true">
244                        <fileset dir="${res.nongen}">
245                                <!-- <include name="**/*.xq"/> -->
246                                <!-- <include name="**/*.properties"/> -->
247                                <include name="**/*.jar"/>
248                        </fileset>
249                </copy>
250        </target>
251
252        <target name="copynongen.client" depends="copy.resource">
253                <!-- Copy non-auto-generated src to source tree -->
254                <!-- NB. Overwrites even if files in toDir are newer -->
255                <copy toDir="${build.src}" overwrite="true" verbose="true"> 
256                        <fileset dir="${src.nongen.client}">
257                                <include name="**/*.java"/>
258                                <include name="**/*.html"/>
259                        </fileset>
260                </copy>
261                <copy toDir="${resources}" overwrite="true" verbose="true">
262                        <fileset dir="${res.nongen}">
263                                <!-- <include name="**/*.xq"/> -->
264                                <!-- <include name="**/*.properties"/> -->
265                                <include name="**/*.jar"/>
266                        </fileset>
267                </copy>
268           </target>
269   <target name="fixchunking">
270                <echo message="Changing content of ${stubfile} to switch off http tranfer chunking"/> 
271                <replaceregexp file="${stubfile}"
272                        match="_serviceClient \= new org\.apache\.axis2\.client\.ServiceClient\(configurationContext\,\_service\)\;"
273                        replace="_serviceClient = new org.apache.axis2.client.ServiceClient(configurationContext,_service);_serviceClient.getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, false);"/>
274   </target>
275       
276        <target name="deploy.server" depends="jar.server">
277                <copy file="${jar.server}" toDir="${tomcat.deploy.dir}" overwrite="true" verbose="true" />
278        </target>
279
280        <target name="reload" depends="deploy.server, tomcat-start" />
281       
282        <target name="tomcat-start" depends="tomcat-stop">
283            <java jar="${env.CATALINA_HOME}/bin/bootstrap.jar" fork="true">
284                <jvmarg value="-Dcatalina.home=${env.CATALINA_HOME}"/>
285            </java>
286        </target>
287
288        <target name="tomcat-stop">
289            <java jar="${env.CATALINA_HOME}/bin/bootstrap.jar" fork="true">
290                <jvmarg value="-Dcatalina.home=${env.CATALINA_HOME}"/>
291                <arg line="stop"/>
292            </java>
293        </target>
294
295</project>
Note: See TracBrowser for help on using the repository browser.