<?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.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.0</version>
  <inceptionYear>2007</inceptionYear>
  <description>
    Apache Fortress is a standards-based Access Management SDK that implements ANSI RBAC INCITS 359.
  </description>
  <url>http://directory.apache.org/fortress/</url>

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

  <scm>
    <connection>scm:git:http://git-wip-us.apache.org/repos/asf/directory-fortress-core.git</connection>
    <developerConnection>
      scm:git:https://git-wip-us.apache.org/repos/asf/directory-fortress-core.git
    </developerConnection>
    <tag>2.0.0</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>
    <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.9.7</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-M24</version.apacheds>
    <version.api.all>1.0.0</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.10</version.commons.codec>
    <version.commons.collections>3.2.1</version.commons.collections>
    <version.commons.configuration>1.10</version.commons.configuration>
    <version.commons.digester>1.8</version.commons.digester>
    <version.commons.io>2.5</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.2</version.httpcomponent.httpclient>
    <version.httpcomponent.httpcore>4.4.5</version.httpcomponent.httpcore>
    <version.jasypt>1.9.2</version.jasypt>
    <version.javaee.api>7.0</version.javaee.api>
    <version.javax.ws.rs-api>2.0.1</version.javax.ws.rs-api>
    <version.jaxb>2.2.11</version.jaxb>
    <version.jgrapht-core>1.0.0</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.21</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>

    <!-- ===================================================== -->
    <!-- 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>
    </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>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}</version>
      <scope>test</scope>
    </dependency>

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

    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>${version.commons.codec}</version>
      <!--<scope>test</scope>-->
    </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>
        </plugin>

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

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

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

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
        </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>
            <systemPropertyVariables>
              <version>${tenant}</version>
            </systemPropertyVariables>
            <systemPropertyVariables>
              <version>${project.version}</version>
            </systemPropertyVariables>
            <excludes>
              <exclude>${exclude.tests}</exclude>
            </excludes>
            <includes>
              <include>${include.tests}</include>
            </includes>
            <groups>${testcase.groups}</groups>
            <!--<forkMode>never</forkMode>-->
            <runOrder>random</runOrder>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <optimize>true</optimize>
            <encoding>ISO-8859-1</encoding>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.6</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>
      </plugins>
    </pluginManagement>

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

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <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-2016, 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>

    <!-- 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>DEBUG</overrideRootLogLevel>
              <suppressJMeterOutput>false</suppressJMeterOutput>
              <testFilesIncluded>
                <jMeterTestFile>ftCheckAccess.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 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>
            </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>
            </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>
            </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>
            </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>

  </profiles>
</project>
