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

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

Update build file:

1) Add the wsdl2java code generation to the build - for both server and client side stubs
2) Add code to add the line in the stub file to switch off http chunking
3) Remove generated skeleton file - to avoid conflict in eclipse with user defined
skeleton file
4) Tidy up build process - to do the compiling of files in the build directory

  • this makes flow more logical and easier to separate codebases and use in eclipse

5) Add additional cleaning up to build
6) Add additional logging + adjust variable names to make more meaningful.

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