services.xml (381 lines of code) (raw):

<project name="services" default="deployServer"> <import file="${basedir}/build/buildInitialize.xml" /> <import file="${basedir}/build/testInitialize.xml" /> <import file="${basedir}/build/serviceInitialize.xml" /> <target name="createServerConfigurationFile" depends="initialize, decideserverproperties"> <!-- Select which parser library to use --> <condition property="ClientParserLib" value="${xml4c.xmlParserLibraryName}"> <istrue value="${testconf.client.parser.xml4c}"/> </condition> <condition property="ClientParserLib" value="${xerces.xmlParserLibraryName}"> <istrue value="${testconf.client.parser.xerces}"/> </condition> <dirname file="${axiscppconffile}" property="axisCPPConfFilePath"/> <mkdir dir="${axisCPPConfFilePath}"/> <echo file="${axiscppconffile}"># The comment character is '#' # Available directives are as follows # # WSDDFilePath: The path to the server wsdd # LogPath: The path to the axis log # XMLParser: The xml parser library # NodeName: Node name # ListenPort: Listening port # LogPath:${dir.test.generated}/server/ServerLog.taw WSDDFilePath:${wsdd.file} Transport_http:${dir.libraries}/${libraryPrefix}${HTTP.transportLibraryName}${librarySuffix} Channel_HTTP:${dir.libraries}/${libraryPrefix}${HTTP.ChannelLibraryName}${librarySuffix} XMLParser:${dir.libraries}/${libraryPrefix}${ClientParserLib}${librarySuffix} </echo> </target> <target name="runserver" depends="initialize, decideserverproperties"> <echo> line="${startargs}" key="AXISCPP_DEPLOY" value="${axiscpp_deploy}/server" key="${serverenv.env}" value="${dir.xmlParser}/bin${path.separator}${dir.xmlParser}/lib${path.separator}${serverenv.env.value}" key="AXISCPP_STARTUP_TRACE" value="${dir.test.generated}/server/StartupTrace.taw" </echo> <exec executable="${serverexecutable}" spawn="true"> <arg line="${startargs}" /> <env key="AXISCPP_DEPLOY" value="${axiscpp_deploy}/server" /> <env key="${serverenv.env}" value="${dir.xmlParser}/bin${path.separator}${dir.xmlParser}/lib${path.separator}${serverenv.env.value}" /> <env key="AXISCPP_STARTUP_TRACE" value="${dir.test.generated}/server/StartupTrace.taw"/> </exec> </target> <target name="stopserver" depends="initialize, decideserverproperties"> <!-- This is necessary since stoppping apache2 is a problem sometimes. The user will have to manually stop the server in this case.--> <if> <isset property="stopargs" /> <then> <exec executable="${serverexecutable}"> <arg line="${stopargs}" /> <env key="${serverenv.env1}" value="${serverenv.env1.value}" /> <env key="${serverenv.env2}" value="${serverenv.env2.value}" /> </exec> <sleep seconds="3" /> </then> <else> <antcall target="stopAxisServer"/> <echo message="WARNING!" /> <echo message="this script can't stop this server (${serverexecutable}). If the server is started stop it yourself and then run ant again" /> </else> </if> </target> <target name="deployServer" depends="initialize, stopserver, createServerConfigurationFile, createServerWSDDFile, runserver, deployServices" description="Build and deploy services for tests" /> <target name="undeployServer" depends="initialize, undeployServices, stopserver" description="Undeploy services and stop server"/> <target name="createServerWSDDFile"> <dirname file="${wsdd.file}" property="WSDDFilePath"/> <mkdir dir="${WSDDFilePath}"/> <condition property="dir.adminService" value="${dir.release}/bin"> <or> <equals arg1="${platform}" arg2="Win32"/> <equals arg1="${platform}" arg2="Win64"/> </or> </condition> <condition property="dir.adminService" value="${dir.release}/lib"> <not> <or> <equals arg1="${platform}" arg2="Win32"/> <equals arg1="${platform}" arg2="Win64"/> </or> </not> </condition> <echo file="${wsdd.file}">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:C="http://xml.apache.org/axis/wsdd/providers/C" xmlns:CPP="http://xml.apache.org/axis/wsdd/providers/CPP"&gt; &lt;globalConfiguration&gt; &lt;/globalConfiguration&gt; &lt;service name="AxisAdmin" provider="CPP:DOCUMENT" description="Axis C++ Admin Service"&gt; &lt;parameter name="className" value="${dir.adminService}/${libraryPrefix}${adminServiceLibraryName}${librarySuffix}"/&gt; &lt;/service&gt; &lt;/deployment&gt; </echo> </target> <target name="deployServices" depends="initialize, setServiceList"> <echo message="buildservice: ${service.list}"/> <foreach target="deployService" param="service_property" inheritall="true"> <path refid="service_properties" /> <param name="dir.release" value="${dir.release}"/> </foreach> </target> <target name="undeployServices" depends="initialize, setServiceList"> <echo message="buildservice: ${service.list}"/> <foreach target="undeployService" param="service_property" inheritall="true"> <path refid="service_properties" /> <param name="dir.release" value="${dir.release}"/> </foreach> </target> <target name="setServiceList" depends="setServiceListType,setIndividualService,setFromServiceList,setAllServices" /> <target name="setServiceListType"> <condition property="allService"> <and> <not> <isset property="service.name" /> </not> <not> <isset property="service.list" /> </not> </and> </condition> </target> <!-- Create a list of just 1 Service from command line parameter -Dservice.name= --> <target name="setIndividualService" if="service.name"> <echo message="setIndividual ${service.name}" /> <path id="service_properties"> <fileset dir="${dir.autotests}/tests/server" includes="${service.name}.xml" /> </path> </target> <!-- Create a list of Services from a properties file unless an individual Service has been specified too --> <target name="setFromServiceList" if="service.list" unless="service.name"> <echo message="setFromList ${service.list}" /> <path id="service_properties"> <fileset dir="${dir.autotests}/tests/server" includesfile="${service.list}" /> </path> </target> <!-- Create a list of all the Services --> <target name="setAllServices" if="allService"> <echo message="setAll ${dir.autotests}/tests/server" /> <path id="service_properties"> <fileset dir="${dir.autotests}/tests/server" includes="*.xml" /> </path> </target> <target name="prepareAdminClient"> <mkdir dir="${dir.test.generated}/AdminClient"/> <!-- Select which parser library to use --> <condition property="ClientParserLib" value="${xml4c.xmlParserLibraryName}"> <istrue value="${testconf.client.parser.xml4c}"/> </condition> <condition property="ClientParserLib" value="${xerces.xmlParserLibraryName}"> <istrue value="${testconf.client.parser.xerces}"/> </condition> <condition property="adminconffile" value="${dir.test.generated}/AdminClient/axiscpp.conf"> <isset property="windows"/> </condition> <condition property="adminconffile" value="${dir.test.generated}/AdminClient/etc/axiscpp.conf"> <not> <isset property="windows"/> </not> </condition> <condition property="ClientLogPath" value="${dir.test.generated}/server/${serviceLang}/${serviceName}/AdminClientLog.taw"> <isset property="serviceName"/> </condition> <condition property="ClientLogPath" value="${dir.test.generated}/AdminClient/AdminClientLog.taw"> <not> <isset property="serviceName"/> </not> </condition> <dirname file="${adminconffile}" property="adminconffilePath"/> <mkdir dir="${adminconffilePath}"/> <echo file="${adminconffile}"># The comment character is '#' # Available directives are as follows # # ClientLogPath: The path to the axis log # XMLParser: The xml parser library # Transport_http: The HTTP Transport library # Channel_HTTP: The HTTP (non-SSL) Channel library # ClientLogPath:${ClientLogPath} XMLParser:${dir.libraries}/${libraryPrefix}${ClientParserLib}${librarySuffix} Transport_http:${dir.libraries}/${libraryPrefix}${transportLibraryName}${librarySuffix} Channel_HTTP:${dir.libraries}/${libraryPrefix}${HTTP.ChannelLibraryName}${librarySuffix} </echo> </target> <target name="deployService" depends="setPropertiesForService, generateServerStubs, compileService, generateWSDDService, prepareAdminClient"> <antcall target="runAdminClient" inheritall="true"> <param name="wsddFile" value="${dir.test.generated}/server/${serviceLang}/${serviceName}/deploy.wsdd"/> </antcall> </target> <target name="runAdminClient"> <exec executable="${dir.release}/bin/${adminClientExecutableName}${executableSuffix}" failifexecutionfails="true"> <arg line="localhost ${testPort} &quot;${wsddFile}&quot;" /> <env key="PATH" path="${dir.xmlParser}/bin${path.separator}${dir.libraries}${path.separator}${java.library.path}" /> <env key="LD_LIBRARY_PATH" path="${dir.libraries}${path.separator}${dir.xmlParser}/lib" /> <env key="LIBPATH" path="${dir.libraries}${path.separator}${dir.xmlParser}/lib" /> <env key="SHLIB_PATH" path="${dir.libraries}${path.separator}${dir.xmlParser}/lib" /> <env key="AXISCPP_DEPLOY" value="${dir.test.generated}/AdminClient" /> </exec> </target> <target name="undeployService" depends="setPropertiesForService, prepareAdminClient"> <antcall target="runAdminClient" inheritall="true"> <param name="wsddFile" value="${dir.test.generated}/server/${serviceLang}/${serviceName}/undeploy.wsdd" /> </antcall> </target> <target name="setPropertiesForService" depends="loadServerXMLProperties,setServiceName,setServiceDesc,setServiceCode,setServiceLang,setServiceWsdl" /> <target name="loadServerXMLProperties"> <echo message="Loading XML file ${service_property}" /> <xmlproperty file="${service_property}" keepRoot="true" /> </target> <target name="setServiceName" if="service.name"> <propertycopy property="serviceName" from="service.name" /> </target> <target name="setServiceDesc" if="service.description"> <propertycopy property="serviceDesc" from="service.description" /> </target> <target name="setServiceCode" if="service.serviceCode"> <propertycopy property="serviceCode" from="service.serviceCode" /> <if> <isset property="service.serviceHeader" /> <then> <propertycopy property="serviceHeader" from="service.serviceHeader" /> </then> </if> </target> <target name="setServiceLang" if="service.serviceLang"> <propertycopy property="serviceLang" from="service.serviceLang" /> </target> <target name="setServiceWsdl" if="service.wsdl"> <propertycopy property="serviceWsdl" from="service.wsdl" /> </target> <target name="cleanService"> <delete dir="${dir.test.generated}/${serviceLang}/${serviceName}" /> </target> <target name="setServiceLanguage"> <condition property="generated.lang" value="c++"> <equals arg1="${serviceLang}" arg2="cpp" /> </condition> </target> <target name="generateServerStubs" depends="setServiceLanguage"> <!-- Make directory in which all generated code shall be placed --> <echo message="${dir.test.generated}/server/${serviceLang}/${serviceName}" /> <mkdir dir="${dir.test.generated}/server/${serviceLang}/${serviceName}" /> <!-- Setup classpath for WSDL2Ws --> <path id="cp"> <fileset dir="${dir.wsdl2ws}" includes="wsdl2ws.jar" /> <fileset dir="${dir.axisJARs}" includes="*.jar" /> </path> <!-- Run WSDL2Ws --> <java classname="org.apache.axis.wsdl.wsdl2ws.WSDL2Ws" fork="true"> <classpath refid="cp" /> <arg value="${dir.autotests}/wsdls/${serviceWsdl}" /> <arg value="-o${dir.test.generated}/server/${serviceLang}/${serviceName}" /> <arg value="-l${generated.lang}" /> <arg value="-sserver" /> </java> </target> <target name="compileService"> <!-- Deleting the service template generated by WSDL2Ws if service.removeFile property is set - AXISCPP-948 --> <if> <isset property="service.removeFile" /> <then> <delete file="${dir.test.generated}/server/${serviceLang}/${serviceName}/${service.removeFile}" failonerror="false" /> </then> </if> <copy file="${dir.autotests}/server/${serviceLang}/${serviceCode}" tofile="${dir.test.generated}/server/${serviceLang}/${serviceName}/${serviceCode}" overwrite="true" /> <propertycopy property="serviceCode" from="service.serviceCode" /> <if> <isset property="service.serviceHeader"/> <then> <copy file="${dir.autotests}/server/${serviceLang}/${serviceHeader}" tofile="${dir.test.generated}/server/${serviceLang}/${serviceName}/${serviceHeader}" overwrite="true"/> </then> </if> <if> <not> <isset property="aix" /> </not> <then> <cc failonerror="false" incremental="false" outfile="${dir.test.generated}/server/${serviceLang}/${serviceName}/${serviceName}" objdir="${dir.test.generated}/server/${serviceLang}/${serviceName}" exceptions="true" outtype="shared" subsystem="console"> <!-- Compilers --> <compiler refid="VisualC++" /> <compiler refid="SolarisCC"/> <compiler refid="Linuxgcc"/> <!-- Linkers --> <linker refid="VisualC++Linker" /> <linker refid="SolarisLinker"/> <linker refid="LinuxLinker"/> <!-- Axis Client .lib file location, or UNIX shared object --> <!-- This lib is needed when building a service on windows where AxisUserAPI implementation is needed --> <libset dir="${dir.lib}" libs="${serverEngineLibraryName}" /> <!-- Files to be compiled --> <includepath path="${dir.include}" /> <fileset dir="${dir.test.generated}/server/${serviceLang}/${serviceName}"> <include name="*.cpp" /> </fileset> </cc> </then> <else> <cc failonerror="false" incremental="false" outfile="${dir.test.generated}/server/${serviceLang}/${serviceName}/${libraryPrefix}${serviceName}${librarySuffix}" objdir="${dir.test.generated}/server/${serviceLang}/${serviceName}" exceptions="true" subsystem="console"> <!-- Compilers --> <compiler refid="AIXxlc"/> <!-- Linkers --> <linker refid="AIXLinker"/> <libset dir="${dir.lib}" libs="${serverEngineLibraryName}" /> <!-- Files to be compiled --> <includepath path="${dir.include}" /> <fileset dir="${dir.test.generated}/server/${serviceLang}/${serviceName}"> <include name="*.cpp" /> </fileset> </cc> </else> </if> </target> <target name="generateWSDDService"> <xmlproperty file="${dir.test.generated}/server/${serviceLang}/${serviceName}/deploy.wsdd" collapseAttributes="true" /> <echo file="${dir.test.generated}/server/${serviceLang}/${serviceName}/deploy.wsdd">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:CPP="http://xml.apache.org/axis/wsdd/providers/CPP"&gt; &lt;service name="${serviceName}" provider="${deployment.service.provider}" description="Axis C++ web service" &gt; &lt;parameter name="className" value="${dir.test.generated}/server/${serviceLang}/${serviceName}/${libraryPrefix}${serviceName}${librarySuffix}"/&gt; &lt;/service&gt; &lt;/deployment&gt; </echo> <echo file="${dir.test.generated}/server/${serviceLang}/${serviceName}/undeploy.wsdd">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;undeployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:CPP="http://xml.apache.org/axis/wsdd/providers/CPP"&gt; &lt;service name="${serviceName}"/&gt; &lt;/undeployment&gt; </echo> </target> <target name="checkParameters"> <description> This target checks that the user has put in the right params to run the default target with no errors. If you find things out that leave you with a bad error message then put them in here to help out future users </description> <if> <not> <available file="${dir.xmlParser}"/> </not> <then> <throw message="dir.xmlparser is not available. It is currently set to '${dir.xmlParser}'"/> </then> </if> <if> <not> <available file="${env.AXISJAVA_LIB}"/> </not> <then> <throw message="AXISJAVA_LIB must be set to where the prereq axis java libs are installed"/> </then> </if> </target> <target name="stopAxisServer" depends="initialize"> <exec executable="${dir.release}/bin/${adminClientExecutableName}${executableSuffix}" timeout="60000" failifexecutionfails="false"> <arg line="localhost ${testPort} STOP 120" /> <env key="PATH" path="${dir.xmlParser}/bin${path.separator}${dir.libraries}${path.separator}${java.library.path}" /> <env key="LD_LIBRARY_PATH" path="${dir.libraries}${path.separator}${dir.xmlParser}/lib" /> <env key="LIBPATH" path="${dir.libraries}${path.separator}${dir.xmlParser}/lib" /> <env key="SHLIB_PATH" path="${dir.libraries}${path.separator}${dir.xmlParser}" /> <env key="AXISCPP_DEPLOY" value="${dir.test.generated}/AdminClient" /> </exec> </target> </project>