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

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

Add new methods to DiscoveryServiceClient? to invoke each of the different
avaiable webservices - to allow this to be used by JUnit test.
Add basic JUNIT test to call each of the services.
Fix NPE in Skeleton class by adding extra checks.

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