<?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>

    <groupId>org.apache.wss4j</groupId>
    <artifactId>wss4j</artifactId>
    <version>2.3.4-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Apache WSS4J</name>
    <description>
        The Apache WSS4J project provides a Java implementation of the primary security standards 
        for Web Services, namely the OASIS Web Services Security (WS-Security) specifications 
        from the OASIS Web Services Security TC.
    </description>
    <url>https://ws.apache.org/wss4j/</url>
    <issueManagement>
        <system>JIRA</system>
        <url>https://issues.apache.org/jira/browse/WSS</url>
    </issueManagement>
    <mailingLists>
        <mailingList>
            <name>Apache Web Services Developer List</name>
            <subscribe>dev-subscribe@ws.apache.org</subscribe>
            <unsubscribe>
                dev-unsubscribe@ws.apache.org
            </unsubscribe>
            <post>dev@ws.apache.org</post>
            <archive>
                https://lists.apache.org/list.html?dev@ws.apache.org
            </archive>
        </mailingList>
        <mailingList>
            <name>Apache Web Services Users List</name>
            <subscribe>users-subscribe@ws.apache.org</subscribe>
            <unsubscribe>
                users-unsubscribe@ws.apache.org
            </unsubscribe>
            <post>users@ws.apache.org</post>
            <archive>
                https://lists.apache.org/list.html?users@ws.apache.org
            </archive>
        </mailingList>
        <mailingList>
            <name>Apache Web Services Commits List</name>
            <subscribe>commits-subscribe@ws.apache.org</subscribe>
            <unsubscribe>
                commits-unsubscribe@ws.apache.org
            </unsubscribe>
            <archive>
                https://lists.apache.org/list.html?commits@ws.apache.org
            </archive>
        </mailingList>
    </mailingLists>
    <inceptionYear>2004</inceptionYear>
    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>
    <scm>
        <connection>scm:git:https://gitbox.apache.org/repos/asf/ws-wss4j.git</connection>
        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/ws-wss4j.git</developerConnection>
        <url>https://gitbox.apache.org/repos/asf?p=ws-wss4j.git;a=summary</url>
      <tag>HEAD</tag>
  </scm>
    <organization>
        <name>The Apache Software Foundation</name>
        <url>https://www.apache.org/</url>
    </organization>
    <developers>
        <developer>
            <name>The Apache WSS4J Team</name>
            <email>wss4j-dev@ws.apache.org</email>
            <url>https://ws.apache.org/wss4j</url>
            <organization>Apache Software Foundation</organization>
            <organizationUrl>https://apache.org/</organizationUrl>
        </developer>
    </developers>

    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>24</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <targetJdk>1.8</targetJdk>
        <buildtools.dir>${basedir}/build-tools</buildtools.dir>
        <maven-owasp-plugin-version>6.0.4</maven-owasp-plugin-version>
        <project.build.outputTimestamp>1</project.build.outputTimestamp>
    </properties>

    <modules>
        <module>parent</module>
        <module>bindings</module>
        <module>policy</module>
        <module>ws-security-common</module>
        <module>ws-security-dom</module>
        <module>ws-security-stax</module>
        <module>ws-security-web</module>
        <module>integration</module>
        <module>ws-security-policy-stax</module>
        <!-- <module>performance</module>-->
    </modules>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>3.7</version>
                <configuration>
                    <rulesets>
                        <ruleset>${buildtools.dir}/wss4j-pmd-ruleset.xml</ruleset>
                    </rulesets>
                    <sourceEncoding>UTF-8</sourceEncoding>
                    <failOnViolation>true</failOnViolation>
                    <linkXRef>false</linkXRef>
                    <verbose>true</verbose>
                    <includeTests>true</includeTests>
                    <targetJdk>${targetJdk}</targetJdk>
                    <excludeRoots>
                        <excludeRoot>${basedir}/src/main/generated</excludeRoot>
                    </excludeRoots>
                </configuration>
                <executions>
                    <execution>
                        <id>validate</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <configLocation>${buildtools.dir}/wss4j-checkstyle.xml</configLocation>
                    <includeTestSourceDirectory>false</includeTestSourceDirectory>
                    <includeTestResources>false</includeTestResources>
                    <encoding>UTF-8</encoding>
                    <failOnViolation>true</failOnViolation>
                </configuration>
                <executions>
                    <execution>
                       <id>validate</id>
                       <phase>validate</phase>
                       <goals>
                           <goal>check</goal>
                       </goals>
                    </execution>
                 </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <attach>true</attach>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <configuration>
                    <useReleaseProfile>false</useReleaseProfile>
                    <preparationGoals>clean install</preparationGoals>
                    <goals>deploy</goals>
                    <arguments>-Papache-release</arguments>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                </configuration>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.5.3</version>
                </plugin>
                <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.0.1</version>
                </plugin>                
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>5.1.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.8</version>
                    <dependencies>
                        <dependency>
                            <groupId>ant</groupId>
                            <artifactId>ant-optional</artifactId>
                            <version>1.5.3-1</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                    <configuration>
                        <source>${targetJdk}</source>
                        <target>${targetJdk}</target>
                        <compilerArgs>
                            <arg>-XDcompilePolicy=simple</arg>
                        </compilerArgs>
                        <annotationProcessorPaths>
                            <path>
                                <groupId>com.google.errorprone</groupId>
                                <artifactId>error_prone_core</artifactId>
                                <version>2.3.2</version>
                            </path>
                        </annotationProcessorPaths>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>0.13</version>
                    <executions>
                        <execution>
                            <phase>verify</phase>
                            <goals>
                                <goal>check</goal>
                           </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <excludes>
                        <exclude>**/*.sh</exclude>
                        <exclude>*.txt</exclude>
                        <exclude>.gitignore</exclude>
                        <exclude>.git/**</exclude>
                        <exclude>.pmd/**</exclude>
                        <exclude>.externalToolBuilders/**</exclude>
                        <exclude>.checkstyle/**</exclude>
                        <exclude>.classpath</exclude>
                        <exclude>.project</exclude>
                        <exclude>.settings/**</exclude>
                        <exclude>.idea/**</exclude>
                        <exclude>**/src/main/resources/**</exclude>
                        <exclude>**/src/site/**</exclude>
                        <exclude>**/src/test/resources/**</exclude>
                        <exclude>**/*.patch</exclude>
                        <exclude>NOTICE</exclude>
                        </excludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>cobertura-maven-plugin</artifactId>
                    <version>2.7</version>
                    <inherited>true</inherited>
                    <configuration>
                        <check>
                            <branchRate>100</branchRate>
                            <lineRate>100</lineRate>
                            <haltOnFailure>false</haltOnFailure>
                            <totalBranchRate>100</totalBranchRate>
                            <totalLineRate>100</totalLineRate>
                            <packageLineRate>100</packageLineRate>
                            <packageBranchRate>100</packageBranchRate>
                        </check>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>3.1.1</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <source>8</source>
                        <attach>true</attach>
                        <excludePackageNames>org.apache.wss4j.binding.*</excludePackageNames>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.6</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.asciidoctor</groupId>
                            <artifactId>asciidoctor-maven-plugin</artifactId>
                            <version>1.5.7</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.owasp</groupId>
                    <artifactId>dependency-check-maven</artifactId>
                    <version>${maven-owasp-plugin-version}</version>
                    <executions>
                        <execution>
                            <phase>validate</phase>
                            <goals>
                                <goal>check</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>

        <defaultGoal>install</defaultGoal>
    </build>

    <profiles>
        <profile>
            <id>fastinstall</id>
            <properties>
                <maven.test.skip>true</maven.test.skip>
                <pmd.skip>true</pmd.skip>
                <checkstyle.skip>true</checkstyle.skip>
            </properties>
        </profile>
        <profile>
            <id>nochecks</id>
            <properties>
                <pmd.skip>true</pmd.skip>
                <checkstyle.skip>true</checkstyle.skip>
            </properties>
        </profile>
        <profile>
            <id>jdk18</id>
            <activation>
                <jdk>1.8</jdk>
            </activation>
            <properties>
               <javadoc.opts>-Xdoclint:none</javadoc.opts>
            </properties>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-javadoc-plugin</artifactId>
                            <configuration>
                                <additionalJOptions>
                                    <additionalJOption>-Xdoclint:none</additionalJOption>
                                </additionalJOptions>
                            </configuration>
                        </plugin>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-compiler-plugin</artifactId>
                            <configuration>
                                <fork>true</fork>
                                <compilerArgs combine.children="append">
                                    <arg>-J-Xbootclasspath/p:${settings.localRepository}/com/google/errorprone/javac/9+181-r4173-1/javac-9+181-r4173-1.jar</arg>
                                </compilerArgs>
                            </configuration>
                        </plugin>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-surefire-plugin</artifactId>
                            <version>2.22.2</version>
                            <configuration>
                                <reportFormat>brief</reportFormat>
                                <useFile>false</useFile>
                                <childDelegation>false</childDelegation>
                                <includes>
                                    <include>**/*Test.java</include>
                                </includes>
                                <argLine>-Xmx2000m</argLine>
                                <systemPropertyVariables>
                                    <java.io.tmpdir>${basedir}/target</java.io.tmpdir>
                                </systemPropertyVariables>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
         </profile>
         <profile>
            <id>jdk19-plus</id>
            <activation>
                <jdk>[9,)</jdk>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-surefire-plugin</artifactId>
                            <version>2.22.1</version>
                            <configuration>
                                <reportFormat>brief</reportFormat>
                                <useFile>false</useFile>
                                <childDelegation>false</childDelegation>
                                <includes>
                                    <include>**/*Test.java</include>
                                </includes>
                                <argLine>-Xmx2000m --add-opens java.base/java.lang.reflect=ALL-UNNAMED</argLine>
                                <systemPropertyVariables>
                                    <java.io.tmpdir>${basedir}/target</java.io.tmpdir>
                                </systemPropertyVariables>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
            <dependencies>
                 <dependency>
                     <groupId>jakarta.xml.ws</groupId>
                     <artifactId>jakarta.xml.ws-api</artifactId>
                     <version>2.3.3</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>2.3.2</version>
                     <scope>test</scope>
                 </dependency>
                 <dependency>
                     <groupId>com.sun.xml.messaging.saaj</groupId>
                     <artifactId>saaj-impl</artifactId>
                     <scope>test</scope>
                     <version>1.4.0-b03</version>
                </dependency>
             </dependencies>
         </profile>

         <profile>
            <id>ibm</id>
            <activation>
                <property>
                    <name>java.vendor</name>
                    <value>IBM Corporation</value>
                </property>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-surefire-plugin</artifactId>
                            <version>2.22.1</version>
                            <inherited>true</inherited>
                            <configuration>
                               <reportFormat>brief</reportFormat>
                               <useFile>false</useFile>
                               <childDelegation>false</childDelegation>
                               <includes>
                                   <include>**/*Test.java</include>
                               </includes>
                               <systemPropertyVariables>
                                   <java.io.tmpdir>${basedir}/target</java.io.tmpdir>
<org.apache.xml.security.cipher.gcm.useIvParameterSpec>true</org.apache.xml.security.cipher.gcm.useIvParameterSpec>
                               </systemPropertyVariables>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <id>activate-buildtools-in-module</id>
            <activation>
                <file>
                    <exists>${basedir}/../build-tools/wss4j-checkstyle.xml</exists>
                </file>
            </activation>
            <properties>
                <buildtools.dir>${basedir}/../build-tools</buildtools.dir>
            </properties>
        </profile>
        <profile>
            <id>activate-buildtools-in-submodule</id>
            <activation>
                <file>
                    <exists>${basedir}/../../build-tools/wss4j-checkstyle.xml</exists>
                </file>
            </activation>
            <properties>
                <buildtools.dir>${basedir}/../../build-tools</buildtools.dir>
            </properties>
        </profile>

        <profile>
            <id>dependencycheck</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.owasp</groupId>
                        <artifactId>dependency-check-maven</artifactId>
                    </plugin>
                </plugins>
            </build>
        </profile>

    </profiles>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.9</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>issue-tracking</report>
                            <report>license</report>
                            <report>mailing-list</report>
                            <report>scm</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.4</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>2.5</version>
            </plugin>
            <plugin>
                <groupId>org.owasp</groupId>
                <artifactId>dependency-check-maven</artifactId>
                <version>${maven-owasp-plugin-version}</version>
            </plugin>
        </plugins>
    </reporting>

    <distributionManagement>
        <repository>
            <id>apache.releases.https</id>
            <name>Apache Release Distribution Repository</name>
            <url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
        </repository>
        <snapshotRepository>
            <id>apache.snapshots.https</id>
            <name>Apache Development Snapshot Repository</name>
            <url>https://repository.apache.org/content/repositories/snapshots</url>
            <!--uniqueVersion>false</uniqueVersion-->
        </snapshotRepository>
    </distributionManagement>

</project>
