<?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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.directory.project</groupId>
    <artifactId>project</artifactId>
    <version>35</version>
    <relativePath />
  </parent>

  <groupId>org.apache.directory.fortress</groupId>
  <artifactId>fortress-core</artifactId>
  <packaging>jar</packaging>
  <name>Apache Fortress Core</name>
  <version>2.0.4</version>
  <inceptionYear>2007</inceptionYear>
  <description>
    Apache Fortress is a standards-based Access Management SDK that implements ANSI RBAC INCITS 359.
  </description>
  <url>https://directory.apache.org/fortress/</url>

  <licenses>
    <license>
      <name>Apache License 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0</url>
    </license>
  </licenses>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/directory-fortress-core.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/directory-fortress-core.git</developerConnection>
    <url>https://github.com/apache/directory-fortress-core/tree/{project.scm.tag}</url>
    <tag>2.0.4</tag>
  </scm>

  <issueManagement>
    <system>jira</system>
    <url>https://issues.apache.org/jira/browse/DIRFORTRESS</url>
  </issueManagement>

  <!-- ====================================================== -->
  <!-- The list of current developers                         -->
  <!-- ====================================================== -->
  <developers>
    <developer>
      <id>smckinney</id>
      <name>Shawn McKinney</name>
      <email>smckinney@apache.org</email>
    </developer>

    <developer>
      <id>elecharny</id>
      <name>Emmanuel Lecharny</name>
      <email>elecharny@apache.org</email>
    </developer>

    <developer>
      <id>cpike</id>
      <name>Chris Pike</name>
      <email>cpike@apache.org</email>
    </developer>

  </developers>

  <!-- ====================================================== -->
  <!-- The used properties for this project                   -->
  <!-- ====================================================== -->
  <properties>

    <java.version>1.8</java.version>
    <additionalparam>-Xdoclint:none</additionalparam>
    <!-- Jars -->
    <version.accelerator.api>1.0-RC41</version.accelerator.api>
    <version.accelerator.impl>1.0-RC41</version.accelerator.impl>
    <version.ant>1.10.5</version.ant>
    <version.ant.launcher>1.9.1</version.ant.launcher>
    <version.antlr>2.7.7</version.antlr>
    <version.apache.jdbm1>2.0.0-M3</version.apache.jdbm1>
    <version.apacheds>2.0.0.AM25</version.apacheds>
    <version.api.all>1.0.3</version.api.all>
    <version.commons.beanutils>1.7.0</version.commons.beanutils>
    <version.commons.beanutils-core>1.8.0</version.commons.beanutils-core>
    <version.commons.codec>1.13</version.commons.codec>
    <version.commons.collections>3.2.2</version.commons.collections>
    <version.commons.configuration>1.10</version.commons.configuration>
    <version.commons.digester>1.8</version.commons.digester>
    <version.commons.io>2.6</version.commons.io>
    <version.commons.lang>2.6</version.commons.lang>
    <version.commons.logging>1.1.1</version.commons.logging>
    <version.commons.pool>1.6</version.commons.pool>
    <version.dom4j>1.6.1</version.dom4j>
    <version.ehcache.core>2.6.11</version.ehcache.core>
    <version.hamcrest.core>1.3</version.hamcrest.core>
    <version.httpcomponent.httpclient>4.5.10</version.httpcomponent.httpclient>
    <version.httpcomponent.httpcore>4.4.12</version.httpcomponent.httpcore>
    <version.jasypt>1.9.3</version.jasypt>
    <version.javaee.api>8.0.1</version.javaee.api>
    <version.javax.ws.rs-api>2.1.1</version.javax.ws.rs-api>
    <version.jaxb.api>2.3.0</version.jaxb.api>
    <version.jaxb.core>2.3.0.1</version.jaxb.core>
    <version.jaxb.impl>2.3.2</version.jaxb.impl>
    <version.jgrapht-core>1.3.1</version.jgrapht-core>
    <version.jmeter.core>2.11</version.jmeter.core>
    <version.jmeter.java>2.11</version.jmeter.java>
    <version.junit>4.12</version.junit>
    <version.log4j>1.2.17</version.log4j>
    <version.mina.core>2.0.13</version.mina.core>
    <version.opencsv>2.3</version.opencsv>
    <version.slf4j.api>1.7.29</version.slf4j.api>
    <version.slf4j.log4j12>1.7.21</version.slf4j.log4j12>
    <version.stax2.api>3.1.1</version.stax2.api>
    <version.woodstox.core.asl>4.2.0</version.woodstox.core.asl>
    <version.xml.apis>1.0b2</version.xml.apis>
    <version.xmlschema.core>2.0.3</version.xmlschema.core>
    <version.xpp3>1.1.4c</version.xpp3>
    <version.jackson-annotations>2.10.1</version.jackson-annotations>
    
    <!-- ===================================================== -->
    <!-- This is a hack to allow someone to release            -->
    <!-- without having to run the tests. In order to          -->
    <!-- do so, just tpe :                                     -->
    <!-- mvn release:prepare                                   -->
    <!--   -Drelease.arguments="-DskipTests -Prelease"         -->
    <!-- ===================================================== -->
    <release.arguments />
  </properties>

  <!-- ====================================================== -->
  <!-- The dependencies for all the projects                  -->
  <!-- ====================================================== -->

  <!-- ====================================================== -->
  <!-- The dependencies                                       -->
  <!-- ====================================================== -->
  <dependencies>
    <dependency>
      <groupId>org.openldap</groupId>
      <artifactId>accelerator-api</artifactId>
      <version>${version.accelerator.api}</version>
    </dependency>

    <dependency>
      <groupId>org.openldap</groupId>
      <artifactId>accelerator-impl</artifactId>
      <version>${version.accelerator.impl}</version>
    </dependency>

    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>${version.commons.lang}</version>
    </dependency>

    <dependency>
      <groupId>commons-configuration</groupId>
      <artifactId>commons-configuration</artifactId>
      <version>${version.commons.configuration}</version>
    </dependency>

    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>${version.commons.io}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>${version.httpcomponent.httpclient}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpcore</artifactId>
      <version>${version.httpcomponent.httpcore}</version>
    </dependency>

    <dependency>
      <groupId>net.sf.ehcache</groupId>
      <artifactId>ehcache-core</artifactId>
      <version>${version.ehcache.core}</version>
    </dependency>

    <dependency>
      <groupId>commons-pool</groupId>
      <artifactId>commons-pool</artifactId>
      <version>${version.commons.pool}</version>
    </dependency>

    <dependency>
      <groupId>javax.ws.rs</groupId>
      <artifactId>javax.ws.rs-api</artifactId>
      <version>${version.javax.ws.rs-api}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.api</groupId>
      <artifactId>api-all</artifactId>
      <version>${version.api.all}</version>
      <type>jar</type>
      <exclusions>
        <exclusion>
          <groupId>xml-apis</groupId>
          <artifactId>xml-apis</artifactId>
        </exclusion>
        <!-- CVE-2018-1000632 -->
        <exclusion>
          <groupId>org.apache.servicemix.bundles</groupId>
          <artifactId>org.apache.servicemix.bundles.dom4j</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant</artifactId>
      <version>${version.ant}</version>
    </dependency>

    <dependency>
      <groupId>org.jasypt</groupId>
      <artifactId>jasypt</artifactId>
      <version>${version.jasypt}</version>
    </dependency>

    <dependency>
      <groupId>org.jgrapht</groupId>
      <artifactId>jgrapht-core</artifactId>
      <version>${version.jgrapht-core}</version>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${version.slf4j.api}</version>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>${version.slf4j.api}</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${version.jackson-annotations}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core-annotations</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core-api</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core-avl</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core-constants</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-core-jndi</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-interceptor-kerberos</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.jdbm</groupId>
      <artifactId>apacheds-jdbm1</artifactId>
      <version>${version.apache.jdbm1}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-jdbm-partition</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-kerberos-codec</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-ldif-partition</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-dhcp</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-dns</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-kerberos</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-ldap</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-ntp</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-shared</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-server-annotations</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-server-config</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-server-jndi</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-test-framework</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-xdbm-partition</artifactId>
      <version>${version.apacheds}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>${version.javaee.api}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.jmeter</groupId>
      <artifactId>ApacheJMeter_core</artifactId>
      <version>${version.jmeter.core}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.jmeter</groupId>
      <artifactId>ApacheJMeter_java</artifactId>
      <version>${version.jmeter.java}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${version.junit}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>net.sf.opencsv</groupId>
      <artifactId>opencsv</artifactId>
      <version>${version.opencsv}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>com.sun.xml.bind</groupId>
      <artifactId>jaxb-impl</artifactId>
      <version>${version.jaxb.impl}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.glassfish.jaxb</groupId>
      <artifactId>jaxb-core</artifactId>
      <version>${version.jaxb.core}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>${version.commons.codec}</version>
    </dependency>

    <dependency>
      <groupId>antlr</groupId>
      <artifactId>antlr</artifactId>
      <version>${version.antlr}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>${version.log4j}</version>
      <scope>test</scope>
    </dependency>

  </dependencies>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <inherited>true</inherited>
          <version>3.0.0-M1</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>3.0.0-M1</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <!-- Don't place a version here, 'mvn site' won't work during release. -->
        </plugin>

        <!-- Fires on 'mvn -Dtest=ClassName' where ClassName is junit test class name -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
            <argLine>-Xmx1024m</argLine>
            <systemProperties>
              <systemProperty>
                <key>version</key>
                <value>${project.version}</value>
              </systemProperty>
              <systemProperty>
                <key>tenant</key>
                <value>${tenant}</value>
              </systemProperty>
            </systemProperties>
            <excludes>
              <exclude>${exclude.tests}</exclude>
            </excludes>
            <includes>
              <include>${include.tests}</include>
            </includes>
            <groups>${testcase.groups}</groups>
            <runOrder>random</runOrder>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.1</version>
          <configuration>
            <source>${java.version}</source>
            <target>${java.version}</target>
            <optimize>true</optimize>
            <encoding>ISO-8859-1</encoding>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.2.0</version>
          <configuration>
            <excludes>
              <exclude>**/bootstrap</exclude>
              <exclude>**/config</exclude>
              <exclude>**/*.xml</exclude>
              <exclude>**/*.properties</exclude>
              <exclude>**/*.txt</exclude>
              <exclude>**/*.src</exclude>
            </excludes>
          </configuration>
          <executions>
            <execution>
              <goals>
                <goal>test-jar</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <configuration>
            <excludeSubProjects>false</excludeSubProjects>
            <excludes>
              <!-- MAVEN_DEFAULT_EXCLUDES -->
              <exclude>**/target/**/*</exclude>
              <exclude>**/cobertura.ser</exclude>
              <!-- ECLIPSE_DEFAULT_EXCLUDES -->
              <exclude>**/.classpath</exclude>
              <exclude>**/.project</exclude>
              <exclude>**/.settings/**/*</exclude>
              <!-- IDEA_DEFAULT_EXCLUDES -->
              <exclude>**/*.iml</exclude>
              <exclude>**/*.ipr</exclude>
              <exclude>**/*.iws</exclude>
              <!-- MANIFEST_MF_EXCLUDES -->
              <exclude>**/MANIFEST.MF</exclude>
              <!-- GIT_EXCLUDES -->
              <exclude>**/.git/**/*</exclude>
              <!-- CERT_EXCLUDES -->
              <exclude>**/*.pem</exclude>
              <!-- EXTERNAL_CODE_EXCLUDES -->
              <exclude>**/CmdLineParser.java</exclude>
              <!-- Exclude logs -->
              <exclude>**/*.log/**</exclude>
            </excludes>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.owasp</groupId>
          <artifactId>dependency-check-maven</artifactId>
          <version>5.2.4</version>
          <configuration>
            <failBuildOnAnyVulnerability>true</failBuildOnAnyVulnerability>
              <suppressionFile>${project.basedir}/src/owasp/suppression.xml</suppressionFile>
          </configuration>
        </plugin>

      </plugins>
    </pluginManagement>

    <resources>
      <resource>
        <directory>config</directory>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>3.2.0</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-resources</id>
            <!-- here the phase you need -->
            <phase>validate</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${basedir}/target/config</outputDirectory>
              <resources>
                <resource>
                  <directory>config</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <additionalparam>-Xdoclint:none</additionalparam>
          <stylesheet>java</stylesheet>
          <bottom>&lt;small&gt;Copyright &amp;copy; 2003-2018, The Apache Software Foundation. All Rights Reserved. Generated ${maven.build.timestamp}&lt;/small&gt;</bottom>
          <overview>src/main/java/org/apache/directory/fortress/core/overview.html</overview>
          <docfilessubdirs>true</docfilessubdirs>
          <includes />
          <version>true</version>
          <author>true</author>
          <doctitle>Fortress Core Javadoc ${project.version}</doctitle>
          <windowtitle>Apache Fortress Core Javadoc ${project.version}</windowtitle>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>initialize-fortress-config</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <tasks>
                <ant antfile="${basedir}/build-config.xml" target="init-fortress-config" />
              </tasks>
            </configuration>
          </execution>

          <execution>
            <phase>test</phase>
            <configuration>
              <target name="fortress-load" if="load.file" description="Loads fortress policy into ldap">
                <echo message="############### Run Fortress Ant script to load policy ###############" />
                <java classname="org.apache.tools.ant.launch.Launcher" fork="true" failonerror="true" dir="${basedir}" timeout="4000000" taskname="startAnt">
                  <classpath>
                    <!-- use config/bootstrap folder for config because the config ldap node isn't (might not be) inserted: -->
                    <pathelement location="./config/bootstrap/" />
                    <pathelement location="./target/classes/" />
                    <pathelement location="${org.apache.ant:ant-launcher:jar}" />
                    <pathelement location="${org.apache.ant:ant:jar}" />
                    <pathelement location="${org.openldap:accelerator-api:jar}" />
                    <pathelement location="${org.openldap:accelerator-impl:jar}" />
                    <pathelement location="${log4j:log4j:jar}" />
                    <pathelement location="${org.apache.directory.api:api-all:jar}" />
                    <pathelement location="${org.apache.mina:mina-core:jar}" />
                    <pathelement location="${org.jgrapht:jgrapht-core:jar}" />
                    <pathelement location="${org.jasypt:jasypt:jar}" />
                    <pathelement location="${commons-configuration:commons-configuration:jar}" />
                    <pathelement location="${commons-lang:commons-lang:jar}" />
                    <pathelement location="${commons-collections:commons-collections:jar}" />
                    <pathelement location="${commons-logging:commons-logging:jar}" />
                    <pathelement location="${commons-io:commons-io:jar}" />
                    <pathelement location="${commons-pool:commons-pool:jar}" />
                    <pathelement location="${net.sf.ehcache:ehcache-core:jar}" />
                    <pathelement location="${org.slf4j:slf4j-api:jar}" />
                    <pathelement location="${org.slf4j:slf4j-log4j12:jar}" />
                    <pathelement location="${antlr:antlr:jar}" />
                    <pathelement location="${javax.ws.rs:javax.ws.rs-api:jar}" />
                    <pathelement location="${org.apache.httpcomponents:httpclient:jar}" />
                    <pathelement location="${org.apache.httpcomponents:httpcore:jar}" />
                    <pathelement location="${com.sun.xml.bind:jaxb-impl:jar}" />
                    <pathelement location="${commons-codec:commons-codec:jar}" />
                  </classpath>
                  <sysproperty key="version" value="${project.version}" />
                  <sysproperty key="tenant" value="${tenant}" />
                  <arg value="-buildfile" />
                  <arg file="./${load.file}" />
                </java>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>

    <testResources>
      <testResource>
        <directory>${project.basedir}/config</directory>
      </testResource>
    </testResources>
  </build>

  <profiles>

    <!-- If JDK11++ pull in the JAXB API dependency. -->
    <profile>
      <id>java-11</id>
      <activation>
        <jdk>11</jdk>
      </activation>
      <dependencies>
        <dependency>
          <groupId>javax.xml.bind</groupId>
          <artifactId>jaxb-api</artifactId>
          <version>${version.jaxb.api}</version>
        </dependency>
      </dependencies>
    </profile>


    <!-- This profile starts the Fortress Console App -->
    <!-- To execute: mvn -Pconsole test -->
    <profile>
      <id>console</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <executions>
              <execution>
                <phase>test</phase>
                <goals>
                  <goal>java</goal>
                </goals>
                <configuration>
                  <echo message="############### Run Fortress Console ###############" />
                  <mainClass>org.apache.directory.fortress.core.FortressConsole</mainClass>
                  <classpathScope>test</classpathScope>
                  <systemProperties>
                    <systemProperty>
                      <key>version</key>
                      <value>${project.version}</value>
                    </systemProperty>
                    <systemProperty>
                      <key>tenant</key>
                      <value>${tenant}</value>
                    </systemProperty>
                  </systemProperties>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- This profile starts the Fortress Command Line Interpreter App -->
    <!-- To execute: mvn -Pcli test -->
    <profile>
      <id>cli</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <executions>
              <execution>
                <phase>test</phase>
                <goals>
                  <goal>java</goal>
                </goals>
                <configuration>
                  <echo message="############### Run Fortress Command Line Interface ###############" />
                  <mainClass>org.apache.directory.fortress.core.cli.CommandLineInterpreter</mainClass>
                  <classpathScope>test</classpathScope>
                  <systemProperties>
                    <systemProperty>
                      <key>version</key>
                      <value>${project.version}</value>
                    </systemProperty>
                    <systemProperty>
                      <key>tenant</key>
                      <value>${tenant}</value>
                    </systemProperty>
                  </systemProperties>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- This profile starts Openldap accelerator checkAccess loadTest -->
    <!-- To execute: ./m.sh -Ploadtest-accel jmeter:jmeter -->
    <profile>
      <id>loadtest-accel</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.lazerycode.jmeter</groupId>
            <artifactId>jmeter-maven-plugin</artifactId>
            <version>1.10.1</version>
            <configuration>
              <overrideRootLogLevel>DEBUG</overrideRootLogLevel>
              <suppressJMeterOutput>false</suppressJMeterOutput>
              <testFilesIncluded>
                <jMeterTestFile>acCheckAccess.jmx</jMeterTestFile>
              </testFilesIncluded>
            </configuration>
            <executions>
              <execution>
                <id>jmeter-tests</id>
                <goals>
                  <goal>jmeter</goal>
                </goals>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${version.log4j}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.directory.fortress</groupId>
                <artifactId>fortress-core</artifactId>
                <version>${project.version}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.directory.fortress</groupId>
                <artifactId>fortress-core</artifactId>
                <type>test-jar</type>
                <version>${project.version}</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- This profile starts Fortress core checkAccess loadTest -->
    <!-- To execute: ./m.sh -Ploadtest-fortress jmeter:jmeter -->
    <profile>
      <id>loadtest-fortress</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.lazerycode.jmeter</groupId>
            <artifactId>jmeter-maven-plugin</artifactId>
            <version>1.10.0</version>
            <configuration>
              <overrideRootLogLevel>INFO</overrideRootLogLevel>
              <suppressJMeterOutput>false</suppressJMeterOutput>
              <testFilesIncluded>
                <jMeterTestFile>ftCheckAccess.jmx</jMeterTestFile>
              </testFilesIncluded>
              <propertiesSystem>
                <version>${project.version}</version>
              </propertiesSystem>
              <propertiesSystem>
                <tenant>${tenant}</tenant>
              </propertiesSystem>
            </configuration>
            <executions>
              <execution>
                <id>jmeter-tests</id>
                <goals>
                  <goal>jmeter</goal>
                </goals>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${version.log4j}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.directory.fortress</groupId>
                <artifactId>fortress-core</artifactId>
                <version>${project.version}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.directory.fortress</groupId>
                <artifactId>fortress-core</artifactId>
                <type>test-jar</type>
                <version>${project.version}</version>
              </dependency>
            </dependencies>
          </plugin>

        </plugins>
      </build>
    </profile>

    <!-- This profile starts Openldap accelerator createSession loadTest -->
    <!-- To execute: ./m.sh -Ploadtest-accel-createsess jmeter:jmeter -->
    <profile>
      <id>loadtest-accel-createsess</id>
      <build>
        <plugins>

          <plugin>
            <groupId>com.lazerycode.jmeter</groupId>
            <artifactId>jmeter-maven-plugin</artifactId>
            <version>1.10.0</version>
            <configuration>
              <overrideRootLogLevel>DEBUG</overrideRootLogLevel>
              <suppressJMeterOutput>false</suppressJMeterOutput>
              <testFilesIncluded>
                <jMeterTestFile>acCreateSession.jmx</jMeterTestFile>
              </testFilesIncluded>
              <propertiesSystem>
                <version>${project.version}</version>
              </propertiesSystem>
              <propertiesSystem>
                <tenant>${tenant}</tenant>
              </propertiesSystem>
            </configuration>
            <executions>
              <execution>
                <id>jmeter-tests</id>
                <goals>
                  <goal>jmeter</goal>
                </goals>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${version.log4j}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.directory.fortress</groupId>
                <artifactId>fortress-core</artifactId>
                <version>${project.version}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.directory.fortress</groupId>
                <artifactId>fortress-core</artifactId>
                <type>test-jar</type>
                <version>${project.version}</version>
              </dependency>
            </dependencies>
          </plugin>

        </plugins>
      </build>
    </profile>

    <!-- This profile starts Fortress core checkAccess loadTest -->
    <!-- To execute: ./m.sh -Ploadtest-fortress-createsess jmeter:jmeter -->
    <profile>
      <id>loadtest-fortress-createsess</id>
      <build>
        <plugins>

          <plugin>
            <groupId>com.lazerycode.jmeter</groupId>
            <artifactId>jmeter-maven-plugin</artifactId>
            <version>1.10.0</version>
            <configuration>
              <overrideRootLogLevel>DEBUG</overrideRootLogLevel>
              <suppressJMeterOutput>false</suppressJMeterOutput>
              <testFilesIncluded>
                <jMeterTestFile>ftCreateSession.jmx</jMeterTestFile>
              </testFilesIncluded>
              <propertiesSystem>
                <version>${project.version}</version>
              </propertiesSystem>
              <propertiesSystem>
                <tenant>${tenant}</tenant>
              </propertiesSystem>
            </configuration>
            <executions>
              <execution>
                <id>jmeter-tests</id>
                <goals>
                  <goal>jmeter</goal>
                </goals>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${version.log4j}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.directory.fortress</groupId>
                <artifactId>fortress-core</artifactId>
                <version>${project.version}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.directory.fortress</groupId>
                <artifactId>fortress-core</artifactId>
                <type>test-jar</type>
                <version>${project.version}</version>
              </dependency>
            </dependencies>
          </plugin>

        </plugins>
      </build>
    </profile>

    <!-- This profile starts Fortress core sessionPermissions loadTest -->
    <!-- To execute: ./m.sh -Ploadtest-fortress-sessperms jmeter:jmeter -->
    <profile>
      <id>loadtest-fortress-sessperms</id>
      <build>
        <plugins>

          <plugin>
            <groupId>com.lazerycode.jmeter</groupId>
            <artifactId>jmeter-maven-plugin</artifactId>
            <version>1.10.0</version>
            <configuration>
              <overrideRootLogLevel>DEBUG</overrideRootLogLevel>
              <suppressJMeterOutput>false</suppressJMeterOutput>
              <testFilesIncluded>
                <jMeterTestFile>ftSessionPerms.jmx</jMeterTestFile>
              </testFilesIncluded>
              <propertiesSystem>
                <version>${project.version}</version>
              </propertiesSystem>
              <propertiesSystem>
                <tenant>${tenant}</tenant>
              </propertiesSystem>
            </configuration>
            <executions>
              <execution>
                <id>jmeter-tests</id>
                <goals>
                  <goal>jmeter</goal>
                </goals>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${version.log4j}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.directory.fortress</groupId>
                <artifactId>fortress-core</artifactId>
                <version>${project.version}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.directory.fortress</groupId>
                <artifactId>fortress-core</artifactId>
                <type>test-jar</type>
                <version>${project.version}</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- This profile starts Fortress accelerator sessionPermissions loadTest but function not implemented yet! -->
    <!-- To execute: ./m.sh -Ploadtest-accel-sessperms jmeter:jmeter -->
    <profile>
      <id>loadtest-accel-sessperms</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.lazerycode.jmeter</groupId>
            <artifactId>jmeter-maven-plugin</artifactId>
            <version>1.10.1</version>
            <configuration>
              <overrideRootLogLevel>DEBUG</overrideRootLogLevel>
              <suppressJMeterOutput>false</suppressJMeterOutput>
              <testFilesIncluded>
                <jMeterTestFile>acSessionPerms.jmx</jMeterTestFile>
              </testFilesIncluded>
              <propertiesSystem>
                <version>${project.version}</version>
              </propertiesSystem>
              <propertiesSystem>
                <tenant>${tenant}</tenant>
              </propertiesSystem>
            </configuration>
            <executions>
              <execution>
                <id>jmeter-tests</id>
                <goals>
                  <goal>jmeter</goal>
                </goals>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${version.log4j}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.directory.fortress</groupId>
                <artifactId>fortress-core</artifactId>
                <version>${project.version}</version>
              </dependency>
              <dependency>
                <groupId>org.apache.directory.fortress</groupId>
                <artifactId>fortress-core</artifactId>
                <type>test-jar</type>
                <version>${project.version}</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- This profile calls ant target init-slapd in build-config.xml script. -->
    <!-- To execute: mvn -Pinit-slapd test -->
    <profile>
      <id>init-slapd</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>init-slapd-mvn</id>
                <phase>compile</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target name="init-slapd-mvn">
                    <property name="maven.project.url" value="${project.url}" />
                    <ant antfile="build-config.xml" target="init-slapd" />
                    <echo message="init-slapd complete" />
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- This profile calls ant target start-slapd in build-config.xml script. -->
    <!-- To execute: mvn -Pstart-slapd test -->
    <profile>
      <id>start-slapd</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>start-slapd-mvn</id>
                <phase>compile</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target name="start-slapd-mvn">
                    <property name="maven.project.url" value="${project.url}" />
                    <ant antfile="build-config.xml" target="start-slapd" />
                    <echo message="start-slapd complete" />
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- This profile calls ant target stop-slapd in build-config.xml script. -->
    <!-- To execute: mvn -Pstop-slapd test -->
    <profile>
      <id>stop-slapd</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>stop-slapd-mvn</id>
                <phase>compile</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target name="stop-slapd-mvn">
                    <property name="maven.project.url" value="${project.url}" />
                    <ant antfile="build-config.xml" target="stop-slapd" />
                    <echo message="stop-slapd complete" />
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

      <!-- OWASP Dependency Vulnerability Scanner Profile -->
    <profile>
      <id>owasp</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.owasp</groupId>
            <artifactId>dependency-check-maven</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

  </profiles>
</project>
