<!--
  ~ Copyright (c) 2013, JoshuaTree Software. All rights reserved.
  -->
<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>
    <groupId>us.joshuatreesoftware</groupId>
    <artifactId>commander</artifactId>
    <packaging>war</packaging>
    <version>1.0-RC32</version>
    <name>Commander Webapp</name>
    <url>http://jts.us</url>
    <description>Commander is an ANSI RBAC compliant administrative Web UI</description>

    <licenses>
        <license>
            <name>BSD</name>
            <url>http://jts.us/License</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <scm>
        <url>http://www.openldap.org/software/repo/openldap-fortress-commander.git</url>
        <connection>git://git.openldap.org/openldap-fortress-commander.git</connection>
    </scm>

    <issueManagement>
        <system>Commander Web Admin JIRA</system>
        <url>https://fortress.atlassian.net/browse/COM/</url>
    </issueManagement>

    <parent>
        <groupId>org.sonatype.oss</groupId>
        <artifactId>oss-parent</artifactId>
        <version>7</version>
    </parent>

    <mailingLists>
        <mailingList>
            <name>openldap-fortress -- OpenLDAP Fortress Discussion list</name>
            <post>openldap-fortress@openldap.org</post>
            <archive>http://www.openldap.org/lists/openldap-fortress/</archive>
        </mailingList>
    </mailingLists>

    <developers>
        <developer>
            <id>kpmckinney</id>
            <name>Kevin McKinney</name>
            <email>kevin.mckinney@jts.us</email>
            <roles>
                <role>Developer</role>
            </roles>
            <organization>jts.us</organization>
            <timezone>-7</timezone>
        </developer>
        <developer>
            <id>smckinney</id>
            <name>Shawn McKinney</name>
            <email>shawn.mckinney@jts.us</email>
            <roles>
                <role>Developer</role>
            </roles>
            <organization>jts.us</organization>
            <timezone>-5</timezone>
        </developer>
    </developers>

    <properties>
        <version>1.0-RC32</version>
        <title>${name} ${version}</title>
        <wicket.version>6.11.0</wicket.version>
        <wicket.jquery.version>6.11.0</wicket.jquery.version>
        <slf4j.version>1.5.11</slf4j.version>
        <spring.version>3.2.3.RELEASE</spring.version>
        <spring.security.version>3.1.4.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>
        <skipTests>true</skipTests>
    </properties>

    <dependencies>
        <!-- Fortress provides RBAC 'CRUD' & policy enforcement APIs for Commander Web -->
        <dependency>
            <groupId>us.joshuatreesoftware</groupId>
            <artifactId>fortress</artifactId>
            <version>${version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>8.0.0-RC1</version>
        </dependency>
        <!--  JETTY used for embedded testing within intellij -->
        <dependency>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty</artifactId>
            <version>6.1.25</version>
        </dependency>
        <!-- Wicket, Spring and other Web UI framework tools -->
        <dependency>
            <groupId>org.apache.wicket</groupId>
            <artifactId>wicket-extensions</artifactId>
            <version>${wicket.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.wicket</groupId>
            <artifactId>wicket-guice</artifactId>
            <version>${wicket.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.wicket</groupId>
            <artifactId>wicket-jmx</artifactId>
            <version>${wicket.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.wicket</groupId>
            <artifactId>wicket-auth-roles</artifactId>
            <version>${wicket.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.wicket</groupId>
            <artifactId>wicket-datetime</artifactId>
            <version>${wicket.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.wicket</groupId>
            <artifactId>wicket-velocity</artifactId>
            <version>${wicket.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.wicket</groupId>
            <artifactId>wicket-spring</artifactId>
            <version>${wicket.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.wicket</groupId>
            <artifactId>wicket-devutils</artifactId>
            <version>${wicket.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wicketstuff</groupId>
            <artifactId>wicketstuff-inmethod-grid</artifactId>
            <version>${wicket.jquery.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wicketstuff</groupId>
            <artifactId>wicketstuff-jwicket-ui-resize</artifactId>
            <version>${wicket.jquery.version}</version>
        </dependency>
        <dependency>
            <groupId>com.googlecode.wicket-jquery-ui</groupId>
            <artifactId>wicket-jquery-ui</artifactId>
            <version>${wicket.jquery.version}</version>
        </dependency>
        <dependency>
            <groupId>com.googlecode.wicket-jquery-ui</groupId>
            <artifactId>wicket-kendo-ui</artifactId>
            <version>${wicket.jquery.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>${spring.security.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>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>com.uwyn</groupId>
            <artifactId>jhighlight</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>httpunit</groupId>
            <artifactId>httpunit</artifactId>
            <version>1.6.1</version>
        </dependency>
        <!--  JETTY DEPENDENCIES FOR TESTING  -->
        <dependency>
            <groupId>org.eclipse.jetty.aggregate</groupId>
            <artifactId>jetty-all-server</artifactId>
            <version>${jetty.version}</version>
            <scope>provided</scope>
        </dependency>

        <!-- Testing -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <!--            <version>2.33.0</version>-->
            <version>2.35.0</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-common</artifactId>
            <version>2.0b1</version>
        </dependency>
        <dependency>
            <groupId>com.github.detro.ghostdriver</groupId>
            <artifactId>phantomjsdriver</artifactId>
            <version>1.0.3</version>
            <!--            <version>1.0.3-dev</version>-->
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium.client-drivers</groupId>
            <artifactId>selenium-java-client-driver</artifactId>
            <version>1.0.2</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>${project.artifactId}-${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>

            <!-- Assemble a commander distro archive -->
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <id>user_distribution</id>
                        <phase>package</phase>
                        <goals>
                            <goal>attached</goal>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <appendAssemblyId>false</appendAssemblyId>
                            <descriptors>
                                <descriptor>src/main/assembly/distsrc.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </execution>

                </executions>
            </plugin>
            <!-- Deploy the finished war -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <version>1.0-beta-1</version>
                <configuration>
                    <warFile>target/${project.artifactId}.war</warFile>
                    <server>local-tomcat</server>
                    <url>http://localhost:8080/manager/html</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 commander source -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <!-- War the commander app -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <warName>${project.artifactId}</warName>
                </configuration>
            </plugin>
            <!-- Javadoc archive -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.9.1</version>
                <configuration>
                    <stylesheet>java</stylesheet>
                    <bottom>&lt;small&gt;Copyright &amp;copy; 2011-2013 Joshua Tree Software, LLC. All Rights Reserved.
                        Generated ${maven.build.timestamp}.&lt;/small&gt;</bottom>
                    <overview>src/main/java/us/jts/commander/overview.html</overview>
                    <version>true</version>
                    <author>true</author>
                    <doctitle>${title}</doctitle>
                    <windowtitle>${title}</windowtitle>
                </configuration>
            </plugin>
            <!-- Source archive -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.9.1</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- Integration Test -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.16</version>
                <configuration>
                    <skipTests>${skipTests}</skipTests>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </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>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.7</version>
                <executions>
                    <execution>
                        <phase>test</phase>
                        <configuration>
                            <target>
                                <echo message="###############  Run Fortress Ant script to load demo policy  ###############"/>
                                <java
                                        classname="org.apache.tools.ant.launch.Launcher"
                                        fork="true"
                                        failonerror="true"
                                        dir="${basedir}"
                                        timeout="4000000"
                                        taskname="startAnt">
                                    <classpath>
                                        <pathelement location="${ANT_HOME}/lib/ant-launcher.jar"/>
                                        <pathelement location="${ANT_HOME}/lib/ant.jar"/>
                                        <pathelement location="./src/main/resources"/>
                                        <pathelement location="${us.joshuatreesoftware:fortress:jar}"/>
                                        <pathelement location="${log4j:log4j:jar}"/>
                                        <pathelement location="${com.unboundid:unboundid-ldapsdk:jar}"/>
                                        <pathelement location="${org.jgrapht:jgrapht-jdk1.5: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="${net.sf.ehcache:ehcache-core:jar}"/>
                                        <pathelement location="${org.slf4j:slf4j-api:jar}"/>
                                        <pathelement location="${org.slf4j:slf4j-log4j12:jar}"/>
                                        <pathelement location="${org.apache.cxf:cxf-common-utilities:jar}"/>
                                        <pathelement location="${javax.ws.rs:jsr311-api:jar}"/>
                                        <pathelement location="${commons-httpclient:commons-httpclient:jar}"/>
                                        <pathelement location="${commons-codec:commons-codec:jar}"/>
                                    </classpath>
                                    <sysproperty key="version" value="${version}"/>
                                    <sysproperty key="tenant" value="HOME"/>
                                    <arg value="-buildfile"/>
                                    <arg file="./src/main/resources/CommanderDemoUsers.xml"/>
                                </java>
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>release-sign-artifacts</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <property>
                    <name>performRelease</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.4</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>load-ldap</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <property>
                    <name>!ANT_HOME</name>
                    <value>true</value>
                </property>
            </activation>
            <properties>
<!--                <ANT_HOME>../apache-ant/</ANT_HOME>-->
                <ANT_HOME>/home/smckinn/JavaTools/apache-ant-1.8.2</ANT_HOME>
            </properties>
        </profile>
    </profiles>
</project>