pom_xpath_inject(7)
===================
:doctype:	manpage
:man source:	JAVAPACKAGES
:man manual:	Java Packages Tools

NAME
----
pom_xpath_inject - inject code into XML file

SYNOPSIS
--------
*%pom_xpath_inject* XPath [XML-code] [XML-file-location]...

DESCRIPTION
-----------
This macro patches specified XML file appending given code as children
of all XML nodes described by the XPath expression.

XPath is an expression describing a set of XML nodes in the XML file
to which child code is to be appended.  It must be a properly formated
XPath 1.0 expression, as described in http://www.w3.org/TR/xpath/.

Maven POM files use specific XML namespace
`http://maven.apache.org/POM/4.0.0` as default. This namespace needs to
be explicitly specified in XPath expressions by prefixing all node names
with `pom:` (i.e. `pom:modelVersion`).

Many other XML formats also use namespaces which you have to explicitly
specify. This script will use the namespace prefix names from the
*xmlns* declarations in the document's root element. So if the document
begins with `<root xmlns:my="myurl.com">` you would select the root node
with XPath expression `/my:root`. If the document specifies a default
namespace (e.g. `xmlns="myurl.com"`) use the prefix named *default* to
acces elements in that namespace.

XML location can be either a full path to the XML, or a path to the
directory containing *pom.xml* or *ivy.xml*.  If XML location is not
given then *pom.xml* or *ivy.xml* from current working directory is
used. When both *pom.xml* and *ivy.xml* are present, *pom.xml* is
processed. You can specify more file locations.

EXAMPLES
--------
*%pom_xpath_inject pom:project "<packaging>war</packaging>"* - this
call sets packaging of POM in current working directory to *war*.

*%pom_xpath inject configurations \'<conf name="test"/>'* - this adds
a new configuration to the Ivy file in current working directory.

AUTHOR
------
Written by Mikolaj Izdebski.

REPORTING BUGS
--------------
Bugs should be reported through Java Pacakges Tools issue tracker at
Github: https://github.com/fedora-java/javapackages/issues.

SEE ALSO
--------
*pom_add_dep*(7),
*pom_add_parent*(7),
*pom_add_plugin*(7),
*pom_disable_module*(7),
*pom_remove_dep*(7),
*pom_remove_parent*(7),
*pom_remove_plugin*(7),
*pom_change_dep*(7),
*pom_set_parent*(7),
*pom_xpath_remove*(7),
*pom_xpath_replace*(7),
*pom_xpath_set*(7).
