<?xml version="1.0" encoding="UTF-8"?>
<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>net.oneandone.maven.poms</groupId>
    <artifactId>foss-parent</artifactId>
    <version>1.5.1</version>
    <relativePath />
  </parent>

  <name>Stool</name>
  <url>https://github.com/mlhartme/stool</url>
  <description>Stage tool - runs multiple web applications on a single machine.</description>

  <groupId>net.oneandone</groupId>
  <artifactId>stool</artifactId>
  <version>3.0.0</version>
  <packaging>jar</packaging>

  <properties>
    <aetherVersion>1.0.0.v20140518</aetherVersion>
    <guava.version>14.0.1</guava.version>
    <mavenVersion>3.2.5</mavenVersion>
    <wagonVersion>2.8</wagonVersion>

    <enforcer.skip>true</enforcer.skip>

    <!-- disabled because it complain about comment-only code blocks -->
    <pmd.skip>true</pmd.skip>

    <!-- too picky -->
    <cpd.skip>true</cpd.skip>

    <!-- TODO: fails with Java 8 -->
    <findbugs.skip>true</findbugs.skip>

    <jacoco.skip>true</jacoco.skip>

    <netbeans.hint.jdkPlatform>JDK_1.7</netbeans.hint.jdkPlatform>
    <maven-checkstyle-plugin.suppressionsLocation>${basedir}/src/conf/checkstyle-suppressions.xml</maven-checkstyle-plugin.suppressionsLocation>
    <surefire.forkCount>0</surefire.forkCount>

    <spring.version>4.1.3.RELEASE</spring.version>
    <spring.security.version>4.0.0.RC1</spring.security.version>
    <javax.net.ssl.trustStore />
  </properties>

  <developers>
    <developer>
      <id>mhm</id>
      <name>Michael Hartmeier</name>
      <roles>
        <role>lead</role>
        <role>developer</role>
      </roles>
    </developer>
    <developer>
      <id>mabraun</id>
      <name>Maximilian Braun</name>
    </developer>
    <developer>
      <id>rsternagel</id>
      <name>Richard Sternagel</name>
    </developer>
    <developer>
      <id>garican</id>
      <name>Goekhan Arican</name>
    </developer>
  </developers>

  <scm>
    <connection>scm:git:ssh://git@github.com/mlhartme/stool.git</connection>
    <developerConnection>scm:git:ssh://git@github.com/mlhartme/stool.git</developerConnection>
    <url>https://github.com/mlhartme/stool</url>
    <tag>stool-3.0.0</tag>
  </scm>

  <issueManagement>
    <system>GitHub</system>
    <url>https://github.com/mlhartme/stool/issues/</url>
  </issueManagement>

  <dependencies>
    <dependency>
      <groupId>net.oneandone</groupId>
      <artifactId>sushi</artifactId>
      <version>2.8.18</version>
    </dependency>
    <dependency>
      <groupId>net.oneandone.maven</groupId>
      <artifactId>embedded</artifactId>
      <version>3.11.0</version>
    </dependency>
    <!-- TODO: override 0.3.0.M1 that comes with maven 3.2.5 -->
    <dependency>
      <groupId>org.eclipse.sisu</groupId>
      <artifactId>org.eclipse.sisu.plexus</artifactId>
      <version>0.3.0</version>
    </dependency>
    <!-- TODO: override 3.2.3 that comes with maven 3.2.5 -->
    <dependency>
      <groupId>org.sonatype.sisu</groupId>
      <artifactId>sisu-guice</artifactId>
      <version>3.2.5</version>
      <classifier>no_aop</classifier>
    </dependency>
    <dependency>
      <groupId>net.oneandone</groupId>
      <artifactId>pommes</artifactId>
      <version>2.4.1</version>
    </dependency>

    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpcore</artifactId>
      <version>4.3.2</version>
    </dependency>

    <dependency>
      <groupId>javax.mail</groupId>
      <artifactId>mail</artifactId>
      <version>1.5.0-b01</version>
      <exclusions>
        <exclusion><!-- because it's part of Java 7 -->
          <groupId>javax.activation</groupId>
          <artifactId>activation</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- logging -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.7</version>
    </dependency>

    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-core</artifactId>
      <version>1.1.2</version>
      <!-- TODO: needed to override inherited test scope -->
      <scope>compile</scope>
    </dependency>

    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.1.2</version>
      <!-- TODO: needed to override inherited test scope -->
      <scope>compile</scope>
    </dependency>

    <dependency>
      <groupId>joda-time</groupId>
      <artifactId>joda-time</artifactId>
      <version>2.3</version>
    </dependency>

    <!-- Overview -->

    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.2.4</version>
    </dependency>

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

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

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

    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-web</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-ldap</artifactId>
      <version>${spring.security.version}</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-cas-client</artifactId>
      <version>3.0.8.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.hateoas</groupId>
      <artifactId>spring-hateoas</artifactId>
      <version>0.16.0.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <!-- that's the version we have on the live machines -->
      <version>3.0.1</version>
      <scope>provided</scope>
    </dependency>

    <!-- JSON - used by spring for serialization. TODO: switch to gson instead ... -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.4.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.4.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.4.1</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

    <dependency>
      <groupId>com.github.zafarkhaja</groupId>
      <artifactId>java-semver</artifactId>
      <version>0.7.2</version>
    </dependency>

    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>14.0.1</version>
    </dependency>

    <dependency>
      <groupId>org.tmatesoft.svnkit</groupId>
      <artifactId>svnkit</artifactId>
      <version>1.8.5</version>
    </dependency>

    <!-- test -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>

  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>net.oneandone.maven.plugins</groupId>
        <artifactId>application</artifactId>
        <version>1.5.2</version>
        <configuration>
          <!-- for generate -->
          <path>$PATH</path>
          <options>-Djava.awt.headless=true</options>
          <name>setup-stool</name>
          <main>net.oneandone.stool.setup.Main</main>
          <equal>com/jcraft/jsch/agentproxy/*.class, org/aopalliance/**/*, META-INF/ASL2.0</equal>
          <remove>META-INF/LICENSE, META-INF/NOTICE, META-INF/NOTICE.txt, META-INF/wsd.properties, META-INF/DEPENDENCIES,
            META-INF/LICENSE.txt,readme.txt,
            META-INF/license.txt, META-INF/notice.txt, overview.html, META-INF/DUMMY.SF, META-INF/DUMMY.DSA, about.html,changelog.txt,
            notice.txt,license.txt
          </remove>
          <overwrite>META-INF/pominfo.properties, org/apache/commons/logging/**/*</overwrite>
          <concat>META-INF/sisu/javax.inject.Named, META-INF/services/org.apache.lucene.codecs.PostingsFormat, META-INF/spring.*</concat>
          <attach>false</attach>
        </configuration>
        <executions>
          <execution>
            <id>stool</id>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <!-- Documentation: http://code.google.com/p/docbkx-tools/ -->
        <groupId>com.agilejava.docbkx</groupId>
        <artifactId>docbkx-maven-plugin</artifactId>
        <version>2.0.16</version>
        <configuration>
          <sourceDirectory>src/site/manual</sourceDirectory>
          <includes>manual.xml</includes>
          <targetDirectory>${basedir}/target/site</targetDirectory>
          <xincludeSupported>true</xincludeSupported>
          <preProcess>
            <tstamp>
              <format pattern="yyyy-MM-d" property="now" />
            </tstamp>
            <mkdir dir="${project.build.directory}/site/manual" />
            <java classname="net.oneandone.stool.Main" classpath="${project.build.directory}/setup-stool" fork="true" output="${project.build.directory}/stool-help.txt" />
            <echo file="${project.build.directory}/now.txt">${now}</echo>
          </preProcess>
        </configuration>
        <executions>
          <execution>
            <id>manual-html</id>
            <phase>pre-site</phase>
            <goals>
              <goal>generate-html</goal>
            </goals>
            <configuration>
              <chunkedOutput>false</chunkedOutput>
              <generateSectionTocLevel>0</generateSectionTocLevel>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changes-plugin</artifactId>
        <configuration>
          <onlyMilestoneIssues>false</onlyMilestoneIssues>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

  <profiles>
    <profile>
      <id>java8</id>
      <activation>
        <jdk>1.8</jdk>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
              <additionalparam>-Xdoclint:syntax</additionalparam>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <reporting>
        <plugins>
          <plugin>
            <!-- javadoc 8 is way too picky ... -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
              <additionalparam>-Xdoclint:syntax</additionalparam>
            </configuration>
          </plugin>
        </plugins>
      </reporting>
    </profile>
  </profiles>
  <distributionManagement>
    <site>
      <id>github</id>
      <name>maven-reports at github</name>
      <url>https://github.com/mlhartme/stool</url>
    </site>
  </distributionManagement>
</project>
