<?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>34</version>
    <relativePath />
  </parent>

  <groupId>org.apache.directory.fortress</groupId>
  <artifactId>fortress-web</artifactId>
  <packaging>war</packaging>
  <version>2.0.6-SNAPSHOT</version>
  <name>Apache Fortress Web</name>
  <url>https://directory.apache.org/fortress/</url>
  <description>Apache Fortress Web is a policy administration and review user interface.</description>

  <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-commander.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/directory-fortress-commander.git/ </developerConnection>
    <url>https://github.com/apache/directory-fortress-commander/tree/{project.scm.tag}</url>
    <tag>master</tag>
  </scm>

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

  <mailingLists>
    <mailingList>
      <name>Apache Directory -- Fortress List</name>
      <post>fortress@directory.apache.org</post>
      <archive>https://mail-archives.apache.org/mod_mbox/directory-fortress/</archive>
    </mailingList>
  </mailingLists>

  <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>
  </developers>

  <properties>
    <title>${project.name} ${project.version}</title>
    <java.version>1.8</java.version>
    <fortress.realm.version>2.0.5</fortress.realm.version>
    <wicket.version>8.8.0</wicket.version>
    <wicket.googlecode.version>8.6.0</wicket.googlecode.version>
    <version.log4j>2.13.3</version.log4j>
    <version.ant>1.9.7</version.ant>
    <version.slf4j.api>1.7.29</version.slf4j.api>
    <version.slf4j.impl>2.13.3</version.slf4j.impl>
    <spring.security.version>5.3.2.RELEASE</spring.security.version>
    <javadoc.version>2.9.1</javadoc.version>
    <jetty.version>8.1.8.v20121106</jetty.version>
    <jetty.stopKey>stopJetty</jetty.stopKey>
    <jetty.stopPort>9081</jetty.stopPort>
    <jetty.port>9080</jetty.port>
  </properties>

  <dependencies>
    <!-- Fortress Realm also pulls in Fortress Core APIs. -->
    <dependency>
      <groupId>org.apache.directory.fortress</groupId>
      <artifactId>fortress-realm-impl</artifactId>
      <version>${fortress.realm.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>${version.log4j}</version>
    </dependency>
    
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <version>${version.slf4j.impl}</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>

    <!-- Wicket, Spring and other Web UI framework tools -->
    <dependency>
      <groupId>org.apache.wicket</groupId>
      <artifactId>wicket-spring</artifactId>
      <version>${wicket.version}</version>
    </dependency>

    <dependency>
      <groupId>org.wicketstuff</groupId>
      <artifactId>wicketstuff-inmethod-grid</artifactId>
      <version>${wicket.version}</version>
    </dependency>
    
    <dependency>
      <groupId>com.googlecode.wicket-jquery-ui</groupId>
      <artifactId>wicket-jquery-ui</artifactId>
      <version>${wicket.googlecode.version}</version>
    </dependency>
    
    <dependency>
      <groupId>com.googlecode.wicket-jquery-ui</groupId>
      <artifactId>wicket-kendo-ui</artifactId>
      <version>${wicket.googlecode.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-config</artifactId>
      <version>${spring.security.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-web</artifactId>
      <version>${spring.security.version}</version>
    </dependency>

    <!--  ANT DEPENDENCIES FOR RUNNING ANT PLUG-IN FOR FORTRESS LOAD UTILITY  -->
    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant</artifactId>
      <version>${version.ant}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant-launcher</artifactId>
      <version>${version.ant}</version>
      <scope>test</scope>
    </dependency>

    <!-- Begin test dependencies -->
    <dependency>
      <groupId>httpunit</groupId>
      <artifactId>httpunit</artifactId>
      <version>1.6.1</version>
      <scope>test</scope>
    </dependency>
    
    <!--  JETTY used for devpr embedded testing -->
    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty</artifactId>
      <version>6.1.25</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.eclipse.jetty.aggregate</groupId>
      <artifactId>jetty-all-server</artifactId>
      <version>${jetty.version}</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>3.141.59</version>
      <scope>test</scope>
    </dependency>

    <!-- Use [WebDriverManager](https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-java-dependency) for running tests -->
    <dependency>
      <groupId>io.github.bonigarcia</groupId>
      <artifactId>webdrivermanager</artifactId>
      <version>4.0.0</version>
      <scope>test</scope>
    </dependency>

  </dependencies>

  <build>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <resources>
      <!-- include all these to be able to view their source -->
      <resource>
        <filtering>false</filtering>
        <directory>${basedir}/src/main/java</directory>
        <includes>
          <include>**/*.html</include>
          <include>**/*.js</include>
          <include>**/*.css</include>
          <include>**/*.jpg</include>
          <include>**/*.gif</include>
          <include>**/*.png</include>
          <include>**/*.txt</include>
          <include>**/*.xml</include>
          <include>**/*.properties</include>
        </includes>
      </resource>
      
      <resource>
        <filtering>false</filtering>
        <directory>${basedir}/src/main/resources</directory>
        <includes>
          <include>**/*.html</include>
          <include>**/*.js</include>
          <include>**/*.css</include>
          <include>**/*.jpg</include>
          <include>**/*.gif</include>
          <include>**/*.png</include>
          <include>**/*.txt</include>
          <include>**/*.xml</include>
          <include>**/*.properties</include>
          <include>**/*.vm</include>
          <include>**/*.tmpl</include>
        </includes>
      </resource>
      
      <resource>
        <filtering>false</filtering>
        <directory>src/main/webapp/login</directory>
        <includes>
          <include>**/*.html</include>
        </includes>
      </resource>
    </resources>
    <plugins>

      <!-- Deploy the finished war -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
        <version>1.1</version>
        <configuration>
          <warFile>target/${project.artifactId}-${project.version}.war</warFile>
          <server>local-tomcat</server>
          <url>http://localhost:8080/manager/text</url>
          <path>/${project.artifactId}</path>
          <!-- Warning the tomcat manager creds here are for deploying into a demo environment only. -->
          <username>tcmanager</username>
          <password>m@nager123</password>
        </configuration>
      </plugin>
      
      <!-- Compile the fortress web source -->
      <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>
        </configuration>
      </plugin>

      <!-- War the commander app -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.3</version>
        <configuration>
          <warName>${project.artifactId}-${project.version}</warName>
          <archive>
            <manifest>
              <classpathPrefix>lib/</classpathPrefix>
            </manifest>
          </archive>
          <webResources>
            <resource>
              <!-- this is relative to the pom.xml directory -->
              <directory>${project.basedir}/src/main/resources
              </directory>
            </resource>
          </webResources>
          <attachClasses>true</attachClasses>
        </configuration>
      </plugin>
      
      <!-- Javadoc archive -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <source>8</source>
          <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/web/overview.html</overview>
          <version>true</version>
          <author>true</author>
          <doctitle>${project.name} Javadoc ${project.version}</doctitle>
          <windowtitle>Apache ${project.name} Javadoc ${project.version}</windowtitle>
          <additionalparam>-Xdoclint:none</additionalparam>
        </configuration>
      </plugin>
      
      <!-- Source archive -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>3.2.0</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <!-- Fires on 'mvn test -Dtest=ClassName' where ClassName is junit test class name, for this project: -->
      <!-- mvn test -Dtest=FortressWebSeleniumITCase -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <systemPropertyVariables>
            <version>${project.version}</version>
          </systemPropertyVariables>
          <excludes>
            <exclude>${exclude.tests}</exclude>
          </excludes>
          <includes>
            <include>${include.tests}</include>
          </includes>
          <groups>${testcase.groups}</groups>
          <runOrder>random</runOrder>
        </configuration>
      </plugin>
      
      <!-- this works for embedded testing with Jetty -->
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>${jetty.version}</version>
        <configuration>
          <scanIntervalSeconds>1</scanIntervalSeconds>
          <stopPort>9999</stopPort>
          <stopKey>foo</stopKey>
          <connectors>
            <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
              <port>8081</port>
              <maxIdleTime>3600000</maxIdleTime>
            </connector>
          </connectors>
        </configuration>
      </plugin>

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

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
      </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>
            <!-- Exclude logs -->
            <exclude>**/*.log/**</exclude>
          </excludes>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-core</artifactId>
            <version>1.6</version>
            <exclusions>
              <exclusion>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
        </dependencies>
      </plugin>

      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>test</phase>
            <configuration>
              <target name="fortress-load" if="load.file" description="Loads fortress rbac policy files into ldap">
                <echo message="############### Run Fortress Policy Load ###############" />
                <java classname="org.apache.tools.ant.launch.Launcher" fork="true" clonevm="true" failonerror="true" dir="${basedir}" timeout="120000" taskname="startAnt">
                  <classpath>
                    <pathelement location="./src/main/resources" />
                    <pathelement location="${org.apache.ant:ant-launcher:jar}" />
                    <pathelement location="${org.apache.ant:ant:jar}" />
                    <pathelement location="${org.apache.directory.fortress:fortress-core:jar}" />
                    <pathelement location="${org.openldap:accelerator-api:jar}" />
                    <pathelement location="${org.openldap:accelerator-impl:jar}" />
                    <pathelement location="${org.apache.logging.log4j:log4j-api:jar}" />
                    <pathelement location="${org.apache.logging.log4j:log4j-core: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.apache.logging.log4j:log4j-slf4j-impl:jar}" />
                    <pathelement location="${org.apache.cxf:cxf-api:jar}" />
                    <pathelement location="${javax.ws.rs:javax.ws.rs-api: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}" />
                    <pathelement location="${antlr:antlr:jar}" />
                  </classpath>
                  <sysproperty key="version" value="${project.version}" />
                  <sysproperty key="tenant" value="${tenant}" />
                  <arg value="-buildfile" />
                  <arg file="./${load.file}" />
                  <!--                  <arg file="./src/main/resources/FortressRestServerPolicy.xml" />-->
                </java>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

  <repositories>
    <repository>
      <id>maven2</id>
      <url>https://repo1.maven.org/maven2</url>
    </repository>
  </repositories>

</project>
