The XML replacements option allows you to modify XML files of your container's configuration using XPath statements. |
This feature is only available for standalone local containers, and does work with the Cargo Daemon since version 1.4.12. |
In some cases, it is necessary to modify XML files of your container. This can be done using Cargo's xmlReplacements
option, accessible via the Cargo APIs.
You might for example want to modify the defaultHost
for your Tomcat instance.
LocalContainer container = ...; StandaloneLocalConfiguration configuration = (StandaloneLocalConfiguration) getLocalContainer().getConfiguration(); XmlReplacement defaultHost = new XmlReplacement(); defaultHost.setFile("conf/server.xml"); defaultHost.setXpathExpression("//Server/Engine"); defaultHost.setAttributeName("defaultHost"); defaultHost.setValue("myhost"); configuration.addXmlReplacement(defaultHost); |
Some notes:
attributeName
parameter is optional -if you don't specify it, then Cargo will replace directly the value of the nodevalue
corresponds to an existing configuration property (such as cargo.hostname
for example) then Cargo will reuse it from the configurationignoreIfNonExisting
which, when set to TRUE
, will make the XML replacement tool ignore if that specific XPath doesn't exist in the XML file<cargo containerId="@{containerId}" action="@{action}"> <configuration home="${configuration.home}"> <xmlreplacement file="conf/server.xml" xpathexpression="//Server/Engine" attributename="defaultHost" value="myhost"/> </configuration> </cargo> |
<plugin> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven3-plugin</artifactId> <configuration> <container> [...] </container> <configuration> <type>standalone</type> [...] <xmlReplacements> <xmlReplacement> <file>conf/server.xml</file> <xpathExpression>//Server/Engine</xpathExpression> <attributeName>defaultHost</attributeName> <value>myhost</value> </xmlReplacement> </xmlReplacements> </configuration> </configuration> </plugin> |