<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License. You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache.ws</groupId>
        <artifactId>ws-parent</artifactId>
        <version>3</version>
    </parent>

    <groupId>org.apache.ws.commons.axiom</groupId>
    <artifactId>axiom</artifactId>
    <version>1.4.0</version>
    <packaging>pom</packaging>

    <name>Axiom</name>
    <description>The root/parent POM for Apache Axiom</description>
    <url>http://ws.apache.org/axiom/</url>
    <inceptionYear>2004</inceptionYear>

    <developers>
        <developer>
            <name>Saminda Abeyruwan</name>
            <id>saminda</id>
            <email>saminda AT wso2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Afkham Azeez</name>
            <id>azeez</id>
            <email>azeez AT wso2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Eran Chinthaka</name>
            <id>chinthaka</id>
            <email>chinthaka AT wso2.com</email>
            <organization>WSO2</organization>
            <url>http://www.apache.org/~chinthaka</url>
        </developer>
        <developer>
            <name>Glen Daniels</name>
            <id>gdaniels</id>
            <email>gdaniels AT apache.org</email>
            <organization>Sonic Software</organization>
        </developer>
        <developer>
            <name>Jaliya Ekanayake</name>
            <id>jaliya</id>
            <email>jaliya AT opensource.lk</email>
            <organization>Virtusa / Lanka Software Foundation</organization>
            <url>http://www.apache.org/~jaliya</url>
        </developer>
        <developer>
            <name>Senaka Fernando</name>
            <id>senaka</id>
            <email>senaka AT apache.org</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Nandana Mihindukulasooriya</name>
            <id>nandana</id>
            <email>nandana AT wso2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Ruchith Fernando</name>
            <id>ruchith</id>
            <email>ruchith AT wso2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <id>thilina</id>
            <name>Thilina Gunarathne</name>
            <email>thilina AT wso2.com</email>
            <url>http://www.apache.org/~thilina</url>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Chathura Herath</name>
            <id>chathura</id>
            <email>chathura AT opensource.lk</email>
            <organization>LSF/MIT</organization>
            <url>http://www.apache.org/~chathura</url>
        </developer>
        <developer>
            <name>Deepal Jayasinghe</name>
            <id>deepal</id>
            <email>deepal AT wso2.com</email>
            <organization>WSO2</organization>
            <url>http://www.apache.org/~deepal</url>
        </developer>
        <developer>
            <name>Robert Lazarski</name>
            <id>robertlazarski</id>
            <email>robertlazarski AT gmail.com</email>
            <organization>Alpha Theory</organization>
        </developer>
        <developer>
            <name>Chatra Nakkawita</name>
            <id>chatra</id>
            <email>chatra AT WSO2.com</email>
            <organization>WSO2</organization>
        </developer>
        <developer>
            <name>Srinath Perera</name>
            <id>hemapani</id>
            <email>hemapani AT apache.org</email>
            <organization>Lanka Software Foundation</organization>
            <url>http://www.apache.org/~hemapani</url>
        </developer>
        <developer>
            <name>Ajith Ranabahu</name>
            <id>ajith</id>
            <email>ajith AT wso2.com</email>
            <organization>WSO2</organization>
            <url>http://www.apache.org/~ajith</url>
        </developer>
        <developer>
            <name>Venkat Reddy</name>
            <id>venkat</id>
            <email>vreddyp AT gmail.com</email>
            <organization>Computer Associates</organization>
        </developer>
        <developer>
            <name>Rich Scheuerle</name>
            <id>scheu</id>
            <email>scheu AT us.ibm.com</email>
            <organization>IBM</organization>
        </developer>
        <developer>
            <name>Ashutosh Shahi</name>
            <id>ashu</id>
            <email>Ashutosh.Shahi AT ca.com</email>
            <organization>Computer Associates</organization>
        </developer>
        <developer>
            <name>Aleksander Slominski</name>
            <id>alek</id>
            <email>aslom AT cs.indiana.edu</email>
            <organization>Indiana University Extreme! Computing Lab</organization>
        </developer>
        <developer>
            <name>Davanum Srinivas</name>
            <id>dims</id>
            <email>davanum AT gmail.com</email>
            <organization>IBM</organization>
        </developer>
        <developer>
            <name>Jayachandra Sekhara Rao Sunkara</name>
            <id>jaya</id>
            <email>jayachandra AT gmail.com</email>
            <organization>Computer Associates</organization>
        </developer>
        <developer>
            <name>Andreas Veithen</name>
            <id>veithen</id>
            <email>veithen AT google.com</email>
            <url>http://veithen.github.io</url>
            <organization>Google</organization>
        </developer>
        <developer>
            <name>Dasarath Weerathunga</name>
            <id>dasarath</id>
            <email>dasarath AT opensource.lk</email>
            <organization>Lanka Software Foundation</organization>
        </developer>
        <developer>
            <name>Sanjiva Weerawarana</name>
            <id>sanjiva</id>
            <email>sanjiva AT wso2.com</email>
            <organization>WSO2</organization>
        </developer>
    </developers>
    <contributors>
        <contributor>
            <name>Dharshana Dias</name>
            <email />
            <organization>Lanka Software Foundation / University of Moratuwa</organization>
        </contributor>
        <contributor>
            <name>Anushka Kumara</name>
            <email>anushkakumar AT gmail.com</email>
            <organization>Lanka Software Foundation / University of Moratuwa</organization>
        </contributor>
        <contributor>
            <name>Chinthaka Thilakarathne</name>
            <email />
            <organization>Lanka Software Foundation / University of Moratuwa</organization>
        </contributor>
        <contributor>
            <name>Jochen Wiedmann</name>
            <email>jochen.wiedmann AT gmail.com</email>
        </contributor>
    </contributors>

    <modules>
        <module>buildutils</module>
        <module>axiom-api</module>
        <module>axiom-compat</module>
        <module>axiom-jaxb</module>
        <module>axiom-all</module>
        <module>samples</module>
        <module>systests</module>
        <module>devguide</module>
        <module>userguide</module>
        <module>apidocs</module>
        <module>distribution</module>
        <module>testing</module>
        <module>mixins</module>
        <module>implementations</module>
        <module>components</module>
        <module>axiom-weaver</module>
        <module>axiom-weaver-annotations</module>
    </modules>

    <scm>
        <connection>scm:git:https://gitbox.apache.org/repos/asf/ws-axiom.git</connection>
        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/ws-axiom.git</developerConnection>
        <url>https://gitbox.apache.org/repos/asf?p=ws-axiom.git;a=summary</url>
      <tag>1.4.0</tag>
  </scm>
    <issueManagement>
        <system>JIRA</system>
        <url>http://issues.apache.org/jira/browse/AXIOM</url>
    </issueManagement>
    <distributionManagement>
        <site>
            <id>website</id>
            <url>scm:svn:https://svn.apache.org/repos/asf/webservices/website/axiom-staging</url>
        </site>
    </distributionManagement>

    <properties>
        <javaVersion>1.8</javaVersion>

        <failIfNoTests>false</failIfNoTests>
        <shade.plugin.version>3.3.0</shade.plugin.version>
        <spring.version>5.3.19</spring.version>
        <springws.version>3.1.3</springws.version>
        <exam.version>4.13.5</exam.version>
        <slf4j.version>1.7.36</slf4j.version>
        <jetty.version>9.4.46.v20220331</jetty.version>
        <log4j.version>2.17.2</log4j.version>
        <groovy.version>4.0.2</groovy.version>
        <jaxbri.version>2.3.6</jaxbri.version>
        <auto-service.version>1.0.1</auto-service.version>
        <asm.version>9.2</asm.version>
        <errorprone.version>2.11.0</errorprone.version>

        <skipDeploy>false</skipDeploy>

        <project.build.outputTimestamp>2022-03-13T11:17:04Z</project.build.outputTimestamp>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.sun.mail</groupId>
                <artifactId>jakarta.mail</artifactId>
                <version>1.6.7</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.2</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.woodstox</groupId>
                <artifactId>woodstox-core</artifactId>
                <version>6.2.8</version>
            </dependency>
            <dependency>
                <groupId>jaxen</groupId>
                <artifactId>jaxen</artifactId>
                <version>1.2.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.james</groupId>
                <artifactId>apache-mime4j-core</artifactId>
                <version>0.8.6</version>
            </dependency>
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.framework</artifactId>
                <version>1.10.0</version>
            </dependency>
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.util.tracker</artifactId>
                <version>1.5.4</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13.2</version>
            </dependency>
            <dependency>
                <groupId>com.google.truth</groupId>
                <artifactId>truth</artifactId>
                <version>1.1.3</version>
            </dependency>
            <dependency>
                <groupId>xalan</groupId>
                <artifactId>xalan</artifactId>
                <version>2.7.2</version>
                <exclusions>
                    <exclusion>
                        <groupId>xml-apis</groupId>
                        <artifactId>xml-apis</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
                <version>2.12.2</version>
                <exclusions>
                    <exclusion>
                        <groupId>xml-apis</groupId>
                        <artifactId>xml-apis</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.11.0</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.woodstox</groupId>
                <artifactId>stax2-api</artifactId>
                <version>4.2.1</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.xml.stream</groupId>
                        <artifactId>stax-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-jcl</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-oxm</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.ws</groupId>
                <artifactId>spring-ws-core</artifactId>
                <version>${springws.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.ws</groupId>
                <artifactId>spring-ws-security</artifactId>
                <version>${springws.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.soap</groupId>
                <artifactId>jakarta.xml.soap-api</artifactId>
                <version>1.4.2</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.messaging.saaj</groupId>
                <artifactId>saaj-impl</artifactId>
                <version>1.5.3</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.15</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>4.5.1</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.ws</groupId>
                <artifactId>jaxws-rt</artifactId>
                <version>2.3.5</version>
            </dependency>
            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.framework</artifactId>
                <version>7.0.3</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam-container-native</artifactId>
                <version>${exam.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam-junit4</artifactId>
                <version>${exam.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam-link-assembly</artifactId>
                <version>${exam.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-jdk14</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-jcl</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>${asm.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-tree</artifactId>
                <version>${asm.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-util</artifactId>
                <version>${asm.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-commons</artifactId>
                <version>${asm.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.activation</groupId>
                <artifactId>jakarta.activation-api</artifactId>
                <version>1.2.2</version>
            </dependency>
            <dependency>
                <groupId>com.sun.activation</groupId>
                <artifactId>jakarta.activation</artifactId>
                <version>1.2.2</version>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.bind</groupId>
                <artifactId>jakarta.xml.bind-api</artifactId>
                <version>2.3.3</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jaxb</groupId>
                <artifactId>jaxb-runtime</artifactId>
                <version>${jaxbri.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-webapp</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.auto.service</groupId>
                <artifactId>auto-service-annotations</artifactId>
                <version>${auto-service.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <repositories>
        <!-- Need to declare this here so that Maven can download snapshot versions of the parent POM -->
        <repository>
            <id>apache.snapshots</id>
            <name>Apache Snapshot Repository</name>
            <url>https://repository.apache.org/snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
        <repository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>apache.snapshots</id>
            <name>Apache Snapshot Repository</name>
            <url>https://repository.apache.org/snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
        </pluginRepository>
        <pluginRepository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>5.1.5</version>
                    <configuration>
                        <instructions>
                            <_removeheaders>
                                <!-- These are not OSGi headers and shouldn't appear in the manifest -->
                                Private-Package,Include-Resource
                            </_removeheaders>
                            <_nodefaultversion>true</_nodefaultversion>
                            <_consumer-policy>${range;[--,++)}</_consumer-policy>
                            <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                        </instructions>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.2</version>
                    <configuration>
                        <includes>
                            <include>**/*Test.java</include>
                        </includes>
                        <trimStackTrace>false</trimStackTrace>
                        <systemProperties>
                            <property>
                                <name>java.io.tmpdir</name>
                                <value>${project.build.directory}/tmp</value>
                            </property>
                            <property>
                                <name>user.home</name>
                                <value>${project.build.directory}</value>
                            </property>
                            <property>
                                <name>java.awt.headless</name>
                                <value>true</value>
                            </property>
                            <!-- Uncomment this to test with the StAX implementation in Java 7 -->
                            <!-- property>
                                <name>javax.xml.stream.XMLInputFactory</name>
                                <value>com.sun.xml.internal.stream.XMLInputFactoryImpl</value>
                            </property>
                            <property>
                                <name>javax.xml.stream.XMLOutputFactory</name>
                                <value>com.sun.xml.internal.stream.XMLOutputFactoryImpl</value>
                            </property -->
                            <!-- Uncomment this to test with BEA's reference implementation -->
                            <!-- property>
                                <name>javax.xml.stream.XMLInputFactory</name>
                                <value>com.bea.xml.stream.MXParserFactory</value>
                            </property>
                            <property>
                                <name>javax.xml.stream.XMLOutputFactory</name>
                                <value>com.bea.xml.stream.XMLOutputFactoryBase</value>
                            </property -->
                        </systemProperties>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>2.22.2</version>
                    <configuration>
                        <trimStackTrace>false</trimStackTrace>
                        <systemProperties>
                            <property>
                                <name>java.io.tmpdir</name>
                                <value>${project.build.directory}/tmp</value>
                            </property>
                            <property>
                                <name>user.home</name>
                                <value>${project.build.directory}</value>
                            </property>
                            <property>
                                <name>java.awt.headless</name>
                                <value>true</value>
                            </property>
                        </systemProperties>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.3.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>${shade.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>com.agilejava.docbkx</groupId>
                    <artifactId>docbkx-maven-plugin</artifactId>
                    <version>2.0.17</version>
                    <dependencies>
                        <!-- Contains the catalog and DTD/Schema files. We use this to resolve the DTD locally
                             instead of downloading it from the Web -->
                        <dependency>
                            <groupId>net.sf.docbook</groupId>
                            <artifactId>docbook-xml</artifactId>
                            <version>5.0-all</version>
                            <type>zip</type>
                            <classifier>resources</classifier>
                        </dependency>
                        <!-- Upgrade to xml-resolver 1.2. This is merely to make debugging easier (version 1.1
                             neither has debug information nor a source JAR) -->
                        <dependency>
                            <groupId>xml-resolver</groupId>
                            <artifactId>xml-resolver</artifactId>
                            <version>1.2</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>3.3.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-release-plugin</artifactId>
                    <configuration>
                        <tagBase>https://svn.apache.org/repos/asf/webservices/axiom/tags</tagBase>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                        <tagNameFormat>@{project.version}</tagNameFormat>
                        <!-- The default value "clean verify" is not appropriate. If the install
                             phase is not executed, then the current build will pick up artifacts
                             from a previous build. -->
                        <preparationGoals>clean install</preparationGoals>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.3.0</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.gmavenplus</groupId>
                    <artifactId>gmavenplus-plugin</artifactId>
                    <version>1.13.1</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.groovy</groupId>
                            <artifactId>groovy</artifactId>
                            <version>${groovy.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.groovy</groupId>
                            <artifactId>groovy-ant</artifactId>
                            <version>${groovy.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>0.13</version>
                </plugin>
                <plugin>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.10.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.2.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.2.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>3.4.0</version>
                    <configuration>
                        <detectOfflineLinks>false</detectOfflineLinks>
                        <source>${javaVersion}</source>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.github.veithen.maven</groupId>
                    <artifactId>xjc-maven-plugin</artifactId>
                    <version>0.1.1</version>
                </plugin>
                <plugin>
                    <groupId>com.github.veithen.maven</groupId>
                    <artifactId>wsimport-maven-plugin</artifactId>
                    <version>0.2.2</version>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.gmavenplus</groupId>
                                        <artifactId>gmavenplus-plugin</artifactId>
                                        <versionRange>[0.0.0,)</versionRange>
                                        <goals>
                                            <goal>execute</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.jacoco</groupId>
                                        <artifactId>jacoco-maven-plugin</artifactId>
                                        <versionRange>[0.0.0,)</versionRange>
                                        <goals>
                                            <goal>prepare-agent</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.mojo</groupId>
                                        <artifactId>tidy-maven-plugin</artifactId>
                                        <versionRange>[0.0.0,)</versionRange>
                                        <goals>
                                            <goal>check</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <!-- We use maven-remote-resources-plugin only to add resources for human consumption.
                                         Disable it to speed up the build in Eclipse. -->
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-remote-resources-plugin</artifactId>
                                        <versionRange>[0.0.0,)</versionRange>
                                        <goals>
                                            <goal>process</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.github.veithen.alta</groupId>
                    <artifactId>alta-maven-plugin</artifactId>
                    <version>0.7.1</version>
                </plugin>
                <plugin>
                    <groupId>com.github.veithen.phos</groupId>
                    <artifactId>enforcer-maven-plugin</artifactId>
                    <version>0.3.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                    <version>3.3.0</version>
                    <configuration>
                        <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.spotify.fmt</groupId>
                    <artifactId>fmt-maven-plugin</artifactId>
                    <version>2.18</version>
                    <configuration>
                        <!-- AOSP changes the indentation (from 2 to 4) and the import order. Since we
                             don't want Android conventions for import ordering, we skip sorting
                             imports. -->
                        <style>aosp</style>
                        <skipSortingImports>true</skipSortingImports>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>com.google.googlejavaformat</groupId>
                            <artifactId>google-java-format</artifactId>
                            <version>1.15.0</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <rules>
                        <requireJavaVersion>
                            <!-- We require Java 11 for the build, but we configure the compiler to enforce compatibility with older versions. -->
                            <version>11</version>
                        </requireJavaVersion>
                        <requireMavenVersion>
                            <!-- Require a recent Maven version for consistent build results -->
                            <version>3.3.1</version>
                        </requireMavenVersion>
                        <requireNoRepositories>
                            <message>The POM must not include repository definitions since non Apache repositories threaten the build stability.</message>
                            <banRepositories>true</banRepositories>
                            <!-- We need the Eclipse P2 repository for one of the Eclipse releases. If we select the
                                 repository carefully, then it is reasonable to assume that this doesn't threaten
                                 the build stability. -->
                            <allowedRepositories>
                                <allowedRepository>eclipse_2021_09</allowedRepository>
                            </allowedRepositories>
                            <banPluginRepositories>true</banPluginRepositories>
                            <!-- We still need to allow the Apache snapshot repository -->
                            <allowSnapshotRepositories>true</allowSnapshotRepositories>
                            <allowSnapshotPluginRepositories>true</allowSnapshotPluginRepositories>
                        </requireNoRepositories>
                    </rules>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.gmavenplus</groupId>
                <artifactId>gmavenplus-plugin</artifactId>
                <executions>
                    <execution>
                        <id>initialize</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                        <configuration>
                            <scripts>
                                <script><![CDATA[
                                    import java.io.File
                                    
                                    // Since we don't generate Maven sites for submodules the project URLs computed by Maven
                                    // (parent project URL + artifact ID) are wrong. Make sure that the URL is explicitly set
                                    // to the right location, at least for modules that deploy artifacts.
                                    if (project.properties['skipDeploy'] == 'false' && !new File(project.basedir, 'src/site/site.xml').exists() && project.url != 'http://ws.apache.org/axiom/') {
                                        throw new Error('Invalid project URL')
                                    }
                                    
                                    // Create the temporary directory specified in the surefire configuration
                                    new File(project.build.directory, 'tmp').mkdirs()
                                    
                                    // Skip Jacoco if necessary
                                    if (System.properties['skipTests'] == 'true') {
                                        println 'Disabling JaCoCo because tests are skipped'
                                        project.properties['skipJacoco'] = 'true'
                                    }
                                    
                                    javaVersion = project.properties['javaVersion']
                                    if (javaVersion == '1.8') {
                                        project.properties['javaRelease'] = '8'
                                    } else {
                                        project.properties['javaRelease'] = javaVersion;
                                    }
                                ]]></script>
                            </scripts>
                        </configuration>
                    </execution>
                    <execution>
                        <id>check-tmp-dir</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                        <configuration>
                            <scripts>
                                <script>
                                    import java.io.File
                                    
                                    if (new File(project.build.directory, 'tmp').listFiles().length &gt; 0) {
                                        throw new Error("Temporary directory not empty");
                                    }
                                </script>
                            </scripts>
                        </configuration>
                    </execution>
                    <execution>
                        <id>prepare-site</id>
                        <phase>pre-site</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                        <configuration>
                            <scripts>
                                <script>
                                    import java.util.Date
                                    import java.text.MessageFormat
                                    project.properties['release_date'] = MessageFormat.format("{0,date,MMMMM dd, yyyy}", new Date())
                                    project.properties['release_version'] = project.version.replaceAll("-SNAPSHOT", "")
                                    project.properties['skipSiteSite'] = String.valueOf(!new File(project.basedir, 'src/site/site.xml').exists())
                                </script>
                            </scripts>
                        </configuration>
                    </execution>
                    <execution>
                        <id>check-site</id>
                        <phase>post-site</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                        <configuration>
                            <scripts>
                                <script>
                                    project.properties['skipSiteStage'] = String.valueOf(!new File(project.reporting.outputDirectory).exists())
                                </script>
                            </scripts>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-remote-resources-plugin</artifactId>
                <configuration>
                    <properties>
                        <projectName>Apache Axiom</projectName>
                    </properties>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${javaVersion}</source>
                    <target>${javaVersion}</target>
                    <release>${javaRelease}</release>
                    <compilerArgs combine.children="append">
                        <compilerArg>-XDcompilePolicy=simple</compilerArg>
                        <compilerArg>-Xplugin:ErrorProne -XepExcludedPaths:.*/org/jaxen/.* -Xep:MissingOverride:ERROR</compilerArg>
                    </compilerArgs>
                    <annotationProcessorPaths combine.children="append">
                        <annotationProcessorPath>
                            <groupId>com.google.errorprone</groupId>
                            <artifactId>error_prone_core</artifactId>
                            <version>${errorprone.version}</version>
                        </annotationProcessorPath>
                        <annotationProcessorPath>
                            <groupId>com.google.auto.service</groupId>
                            <artifactId>auto-service</artifactId>
                            <version>${auto-service.version}</version>
                        </annotationProcessorPath>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.github.veithen.maven</groupId>
                <artifactId>hermetic-maven-plugin</artifactId>
                <version>0.6.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate-policy</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin><!-- This serves two purposes:
                      (1) we want to generate source JARs for all builds, not just release builds;
                      (2) we need (some of) the source JARs to generate the Javadoc in the apidocs module. -->
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>source-jars</id>
                        <!-- Execute in phase prepare-package to make sure that the source JAR is built before
                             maven-shade-plugin is invoked. (Note that activation of the apache-release profile
                             may cause an inversion of the order in which these goals are executed if they are
                             bound to the same phase.) -->
                        <phase>prepare-package</phase>
                        <goals>
                            <!-- Use "jar-no-fork" instead of "jar" to avoid forking the build
                                 (which is not a problem, but unnecessary) -->
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <attach>true</attach>
                </configuration>
            </plugin>
            <plugin><!-- We need this to make sure that shade:shade is executed after source:jar-no-fork
                     (see MSHADE-120). -->
                <artifactId>maven-shade-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.8</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                        <configuration>
                            <skip>${skipJacoco}</skip>
                            <includes>
                                <include>org.apache.axiom.*</include>
                            </includes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.github.veithen.maven</groupId>
                <artifactId>jacoco-report-maven-plugin</artifactId>
                <version>0.3.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>${skipDeploy}</skip>
                    <!-- Work around flakiness in the ASF infrastructure -->
                    <retryFailedDeploymentCount>3</retryFailedDeploymentCount>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-site-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default-site</id>
                        <phase>site</phase>
                        <goals>
                            <goal>site</goal>
                        </goals>
                        <configuration>
                            <skip>${skipSiteSite}</skip>
                        </configuration>
                    </execution>
                    <execution>
                        <id>site-stage</id>
                        <phase>site-deploy</phase>
                        <goals>
                            <goal>stage</goal>
                        </goals>
                        <configuration>
                            <skip>${skipSiteStage}</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tidy-maven-plugin</artifactId>
                <version>1.1.0</version>
                <executions>
                    <execution>
                        <!-- The default binding to the verify phase doesn't work here because some
                             modules transform their POMs. -->
                        <phase>validate</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-scm-publish-plugin</artifactId>
                <inherited>false</inherited>
                <configuration>
                    <ignorePathsToDelete>
                        <ignorePathToDelete>.htaccess</ignorePathToDelete>
                        <!-- Allow people to enable Google Webmaster Tools -->
                        <ignorePathToDelete>google*.html</ignorePathToDelete>
                    </ignorePathsToDelete>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.github.veithen.maven</groupId>
                <artifactId>eclipse-settings-maven-plugin</artifactId>
                <version>0.2.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>apply</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <bundles>
                        <bundle>
                            <symbolicName>org.eclipse.jdt.core</symbolicName>
                            <properties>
                                <property>
                                    <name>org.eclipse.jdt.core.formatter.comment.line_length</name>
                                    <value>100</value>
                                </property>
                                <property>
                                    <name>org.eclipse.jdt.core.formatter.lineSplit</name>
                                    <value>100</value>
                                </property>
                                <property>
                                    <name>org.eclipse.jdt.core.formatter.tabulation.char</name>
                                    <value>space</value>
                                </property>
                                <property>
                                    <name>org.eclipse.jdt.core.formatter.indentation.size</name>
                                    <value>4</value>
                                </property>
                            </properties>
                        </bundle>
                        <bundle>
                            <symbolicName>org.eclipse.jdt.ui</symbolicName>
                            <properties>
                                <property>
                                    <name>org.eclipse.jdt.ui.text.custom_code_templates</name>
                                    <value><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="false" context="newtype_context" deleted="false" description="Newly created files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.newtype" name="newtype">/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
$${filecomment}
$${package_declaration}

$${typecomment}
$${type_declaration}</template></templates>]]></value>
                                </property>
                            </properties>
                        </bundle>
                    </bundles>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <reporting>
        <plugins>
            <plugin>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <inherited>false</inherited>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>issue-management</report>
                            <report>team</report>
                            <report>scm</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>

    <profiles>
        <profile>
            <id>jdk16</id>
            <activation>
                <jdk>[16,)</jdk>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <configuration>
                            <fork>true</fork>
                            <compilerArgs combine.children="append">
                                <compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</compilerArg>
                                <compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</compilerArg>
                                <compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</compilerArg>
                                <compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</compilerArg>
                                <compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</compilerArg>
                                <compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</compilerArg>
                                <compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</compilerArg>
                                <compilerArg>-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</compilerArg>
                                <compilerArg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</compilerArg>
                                <compilerArg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</compilerArg>
                            </compilerArgs>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>apache-release</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <!-- Skip the execution configured in org.apache:apache. We use our own configuration. -->
                                <id>attach-sources</id>
                                <phase>none</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                                <configuration>
				    <source>8</source>
                                    <additionalOptions>
                                        <additionalOption>-Xdoclint:none</additionalOption>
                                    </additionalOptions>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <executions>
                            <execution>
                                <!-- The source release is built by the distribution module -->
                                <id>source-release-assembly</id>
                                <phase>none</phase>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <excludes>
                                <!-- Exclusions specific to the root project -->
                                
                                <!-- RAT doesn't recognize this one as notes file -->
                                <exclude>RELEASE-NOTE.txt</exclude>
                                <exclude>src/site/markdown/release-notes/**</exclude>
                                <!-- SVG files are not edited by hand, so license headers would be lost anyway -->
                                <exclude>**/*.svg</exclude>
                                <!-- License file from Jaxen (see LEGAL-74 & WSCOMMONS-545) -->
                                <exclude>legal/jaxen-LICENSE.txt</exclude>
                                <!-- BSD style license -->
                                <exclude>legal/stax2-api-LICENSE.txt</exclude>
                                <!-- BSD style license -->
                                <exclude>legal/jakarta.activation-api-LICENSE.txt</exclude>
                                <!-- BSD style license -->
                                <exclude>legal/jakarta.xml.bind-api-LICENSE.txt</exclude>
                                <!-- Files used by various developer tools -->
                                <exclude>*.sonarj</exclude>
                                <!-- File generated by maven-release-plugin -->
                                <exclude>release.properties</exclude>
                                <!-- Patch files -->
                                <exclude>third_party/*.patch</exclude>
                                <!-- Bazel directories -->
                                <exclude>bazel-*/**</exclude>
                                
                                <!-- Exclusions that apply to submodules -->
                                
                                <!-- We can't add license headers to test resources -->
                                <exclude>src/test/resources/**</exclude>
                                <!-- Temporary file created by maven-shade-plugin -->
                                <exclude>dependency-reduced-pom.xml</exclude>
                                <exclude>.repository/**</exclude>
                            </excludes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
