source: TI01-discovery/trunk/ws-Discovery2/srcgen/buildDiscovery.xml @ 3944

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

Restructure build file to cleanly separate client and service jar
generation - NB, the WSDL2JAVA operation generates its own xmlbeans code
and this is linked explicitly to the generated java code - so care
needs to be taken that the correct xmlbeans code is packaged up with
the java code -hence this separation.

Also, add stop/start tomcat targets and add deploy and reload targets
to allow build process to use these.

Move the test client to its own package and create targets to more
cleanly copy the code required for both the client and service jars

  • to ensure only what is needed is added to these.

Update documentation to include new build instructions and setting up
info.

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                <echo message="AXIS_CLASSPATH = ${axis2.class.path}"/>
204                <java classname="ndg.testclient.discovery.DiscoveryServiceClient" fork="true">
205                        <!-- <arg value="${build}/repo"/> -->
206                        <classpath refid="axis2.class.path"/>
207                        <classpath location="${lib}/${name}-test-client.jar"/>
208                        <sysproperty key="verbose" value="true"/>
209                        <arg value="string"/>
210                </java>
211        </target>
212        <target depends="" name="test.client" if="jars.ok">
213                <echo message="JAVA_HOME = ${env.JAVA_HOME}"/>
214                <java classname="ndg.testclient.discovery.DiscoveryServiceClient" fork="true">
215                        <!-- <arg value="${build}/repo"/> -->
216                        <classpath refid="axis2.class.path"/>
217                        <classpath location="${lib}/${name}-test-client.jar"/>
218                        <sysproperty key="verbose" value="true"/>
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.