| <project name="CXF package and deploy" default="deploy"> |
| |
| <!-- |
| JAX-RS TCK package target: package JAX-RS TCK test application into web archive |
| |
| resource.classes: specified in individual test's build.xml, |
| contains all resource class used in the test |
| app.name: specified in individual test's build.xml, |
| is used for web archive name: ${app.name}_web.war |
| is also used in web application's context root: |
| ${app.name}_web |
| web.xml: located in individual test's directory. |
| Is web application's deployment descriptor. |
| class.dir: TCK's class directory. Located at $TS_HOME/classes |
| servlet_adaptor: specified in $TS_HOME/bin/ts.jte. |
| Required by JAX-RS specification to run in servlet container, |
| it is imeplementation specific. |
| appconfig.class: specified in individual test's build.xml. |
| Required by JAX-RS spec to list all resources in the test application. |
| --> |
| |
| <!-- |
| JAX-RS TCK deploy target: Deploy JAX-RS web archive |
| |
| webapp.dir: autodeploy directory for web application |
| --> |
| <import file="../../ts.top.import.xml"/> |
| |
| <target name="pre.deploy"> |
| <fileset id="all.jaxrs.src.dirs" dir="${ts.home}/src" includes="**/web.xml.template"/> |
| <property name="prop.all.jaxrs.src.dirs" refid="all.jaxrs.src.dirs"/> |
| <propertyregex property="all.jaxrs.tests.dir" |
| input="${prop.all.jaxrs.src.dirs}" |
| regexp="[\/|\\]web.xml.template" |
| replace="" |
| casesensitive="false"/> |
| <!-- It seems the separator can be != path.separator --> |
| <propertyregex property="all.jaxrs.tests.dir.correct.separator" |
| input="${all.jaxrs.tests.dir}" |
| regexp=";" |
| replace="${path.separator}" |
| casesensitive="false"/> |
| <foreach list="${all.jaxrs.tests.dir.correct.separator}" |
| delimiter="${path.separator}" |
| target="all_action" |
| param="pkg.dir"/> |
| </target> |
| |
| <target name="check.web.xml"> |
| <available file="${ts.home}/src/${pkg.dir}/web.xml.template" property="exist.web.xml"/> |
| </target> |
| |
| <target name="all_action" depends="update_servlet_adaptor,copywar"/> |
| |
| <target name="update_servlet_adaptor" depends="check.web.xml" if="exist.web.xml"> |
| |
| <echo message=">>> Servlet adaptor class ${servlet_adaptor}"/> |
| |
| <!-- |
| Create implementation specific web with servlet information |
| --> |
| <copy file="${ts.home}/src/${pkg.dir}/web.xml.template" verbose="true" |
| tofile="${ts.home}/dist/${pkg.dir}/web.xml.${jaxrs_impl_name}"/> |
| |
| <replace file="${ts.home}/dist/${pkg.dir}/web.xml.${jaxrs_impl_name}" value="${servlet_adaptor}" summary="yes"> |
| <replacetoken>servlet_adaptor</replacetoken> |
| </replace> |
| |
| <!-- |
| Create implementation specfic war files with |
| updated web.xml; |
| servlet class; |
| --> |
| |
| <antcall target="updatewar"/> |
| </target> |
| |
| <target name="get.app.name"> |
| <fileset id="dist.contents" dir="${ts.home}/dist/${pkg.dir}" includes="jaxrs*.war.template"/> |
| <property name="prop.dist.contents" refid="dist.contents"/> |
| <propertyregex property="app.name" |
| input="${prop.dist.contents}" |
| regexp="_web.war.template$" |
| replace=""/> |
| </target> |
| |
| <target name="updatewar" depends="get.app.name" if="app.name"> |
| <!-- Copy web.war.template to web.war.cxf --> |
| <jar destfile="${ts.home}/dist/${pkg.dir}/${app.name}_web.war.${jaxrs_impl_name}" update="true"> |
| <zipfileset src="${ts.home}/dist/${pkg.dir}/${app.name}_web.war.template" |
| excludes="WEB-INF/web.xml"/> |
| </jar> |
| <!-- Copy web.xml to web.war.cxf --> |
| <jar destfile="${ts.home}/dist/${pkg.dir}/${app.name}_web.war.${jaxrs_impl_name}" update="true"> |
| <zipfileset dir="${ts.home}/dist/${pkg.dir}" |
| includes="web.xml.${jaxrs_impl_name}" |
| fullpath="WEB-INF/web.xml"/> |
| </jar> |
| <copy failonerror="false" verbose="true" |
| file="${dist.dir}/${pkg.dir}/${app.name}_web.war.${jaxrs_impl_name}" |
| tofile="${dist.dir}/${pkg.dir}/${app.name}_web.war"/> |
| </target> |
| |
| <!-- for 3.0 servlet wars without web.xml --> |
| <target name="copywar" depends="check.web.xml,get.app.name" if="app.name" unless="exist.web.xml"> |
| <copy failonerror="false" verbose="true" |
| file="${dist.dir}/${pkg.dir}/${app.name}_web.war.template" |
| tofile="${dist.dir}/${pkg.dir}/${app.name}_web.war"/> |
| </target> |
| |
| </project> |