Have such a requirement:
Insert the following servelet into web.xml if not already there:
<servlet>
<description>My Servlet</description>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.tom.servlet.MyServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/servlet/myServlet/*</url-pattern>
</servlet-mapping>
I am using XMLTask in my ant script
Tried the following script,but failed:
<xmltask source="${env.My_HOME}/WEB-INF/web.xml" dest="${env.My_HOME}/WEB-INF/web.xml" report="false">
<copy property="servletfound" path="/web-app/servlet[servlet-name='myServlet']/text()" />
<insert unless="servletfound" path="/web-app/servlet[last()]" position="after">
<![CDATA[
<servlet>
<description>My Servlet</description>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.tom.servlet.MyServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/servlet/myServlet/*</url-pattern>
</servlet-mapping>
]]>
</insert>
</xmltask>
My question is how to detect that servlet is there or not, because I should avoid to insert twice. Sounds my xpath grammar is not correct. Please help.