<?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">
 <!-- 
* @@@ START COPYRIGHT @@@                                                       
*
* 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.
*
* @@@ END COPYRIGHT @@@
-->
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.trafodion</groupId>
  <artifactId>client-install-guide</artifactId>
  <version>${env.TRAFODION_VER}</version>
  <packaging>pom</packaging>
  <name>Trafodion Client Installation Guide</name>
  <description>This guide describes how to install different Trafodion client applications.</description>
  <url>http://trafodion.incubator.apache.org</url>
  <inceptionYear>2015</inceptionYear>

  <parent>
    <groupId>org.apache.trafodion</groupId>
    <artifactId>trafodion</artifactId>
    <version>1.3.0</version>
    <relativePath>../../pom.xml</relativePath>
  </parent>


  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
      <comments>A business-friendly OSS license</comments>
    </license>
  </licenses>

  <organization>
    <name>Apache Software Foundation</name>
    <url>http://www.apache.org</url>
  </organization>

  <issueManagement>
    <system>JIRA</system>
    <url>http://issues.apache.org/jira/browse/TRAFODION</url>
  </issueManagement>

  <scm>
    <connection>scm:git:http://git-wip-us.apache.org/repos/asf/incubator-trafodion.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-trafodion.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf?p=incubator-trafodion.git</url>
    <tag>HEAD</tag>
  </scm>

  <ciManagement>
    <system>Jenkins</system>
    <url>https://jenkins.esgyn.com</url>
  </ciManagement>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <asciidoctor.maven.plugin.version>1.5.2.1</asciidoctor.maven.plugin.version>
    <asciidoctorj.pdf.version>1.5.0-alpha.11</asciidoctorj.pdf.version>
    <asciidoctorj.version>1.5.4</asciidoctorj.version>
    <rubygems.prawn.version>2.0.2</rubygems.prawn.version>
    <jruby.version>9.0.4.0</jruby.version>
    <dependency.locations.enabled>false</dependency.locations.enabled>
  </properties>

  <repositories>
    <repository>
      <id>rubygems-proxy-releases</id>
      <name>RubyGems.org Proxy (Releases)</name>
      <url>http://rubygems-proxy.torquebox.org/releases</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>
  
  <dependencies>
    <dependency>
      <groupId>rubygems</groupId>
      <artifactId>prawn</artifactId>
      <version>${rubygems.prawn.version}</version>
      <type>gem</type>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jruby</groupId>
      <artifactId>jruby-complete</artifactId>
      <version>${jruby.version}</version>
    </dependency>
    <dependency>
      <groupId>org.asciidoctor</groupId>
      <artifactId>asciidoctorj</artifactId>
      <version>${asciidoctorj.version}</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>de.saumya.mojo</groupId>
        <artifactId>gem-maven-plugin</artifactId>
        <version>1.0.10</version>
        <configuration>
          <!-- align JRuby version with AsciidoctorJ to avoid redundant downloading -->
          <jrubyVersion>${jruby.version}</jrubyVersion>
          <gemHome>${project.build.directory}/gems</gemHome>
          <gemPath>${project.build.directory}/gems</gemPath>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>initialize</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.7</version>
        <configuration>
          <encoding>UTF-8</encoding>
          <attributes>
            <generateReports>false</generateReports>
          </attributes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.asciidoctor</groupId>
        <artifactId>asciidoctor-maven-plugin</artifactId>
        <version>${asciidoctor.maven.plugin.version}</version> 
        <dependencies>
          <dependency>
            <groupId>org.asciidoctor</groupId>
            <artifactId>asciidoctorj-pdf</artifactId>
            <version>${asciidoctorj.pdf.version}</version>
          </dependency>
          <dependency>
            <groupId>org.asciidoctor</groupId>
            <artifactId>asciidoctorj</artifactId>
            <version>${asciidoctorj.version}</version>
          </dependency>
        </dependencies>
        <configuration>
          <sourceDirectory>${basedir}/src</sourceDirectory>
        </configuration>
        <executions>
          <execution>
            <id>generate-html-doc</id> 
            <goals>
              <goal>process-asciidoc</goal> 
            </goals>
            <phase>site</phase>
            <configuration>
              <doctype>book</doctype>
              <backend>html5</backend>
              <sourceHighlighter>coderay</sourceHighlighter>
              <outputDirectory>${basedir}/target/site</outputDirectory>
              <requires>
                <require>${basedir}/../shared/google-analytics-postprocessor.rb</require>
              </requires>
              <attributes>
                <!-- Location of centralized stylesheet -->
                <stylesheet>${basedir}/../shared/trafodion-manuals.css</stylesheet>
                <project-version>${env.TRAFODION_VER}</project-version>
                <project-name>Trafodion</project-name>
                <project-logo>${basedir}/../shared/trafodion-logo.jpg</project-logo>
                <project-support>user@trafodion.incubator.apache.org</project-support>
                <docs-url>http://trafodion.incubator.apache.org/docs</docs-url>
                <download-url>http://trafodion.incubator.apache.org/download.html</download-url>
                <build-date>${maven.build.timestamp}</build-date>
                <google-analytics-account>UA-72491210-1</google-analytics-account>
              </attributes>
            </configuration>
          </execution>
          <execution>
            <id>generate-pdf-doc</id>
            <phase>site</phase>
            <goals>
              <goal>process-asciidoc</goal>
            </goals>
            <configuration>
              <doctype>book</doctype>
              <backend>pdf</backend>
              <sourceHighlighter>coderay</sourceHighlighter>
              <outputDirectory>${basedir}/target</outputDirectory>
              <attributes>
                <pdf-stylesdir>${basedir}/../shared</pdf-stylesdir>
                <pdf-style>trafodion</pdf-style>
                <icons>font</icons>
                <pagenums/>
                <toc/>
                <idprefix/>
                <idseparator>-</idseparator>
                <project-version>${env.TRAFODION_VER}</project-version>
                <project-name>Trafodion</project-name>
                <project-logo>${basedir}/../shared/trafodion-logo.jpg</project-logo>
                <project-support>user@trafodion.incubator.apache.org</project-support>
                <docs-url>http://trafodion.incubator.apache.org/docs</docs-url>
                <download-url>http://http://trafodion.incubator.apache.org/download.html</download-url>
                <build-date>${maven.build.timestamp}</build-date>
              </attributes>
            </configuration>
          </execution>
        </executions>
      </plugin> 
      <!-- Rename target/site/index.pdf to client-install-guide.pdf -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.8</version>
        <inherited>false</inherited>
        <executions>
          <execution>
            <id>populate-release-directories</id>
            <phase>post-site</phase>
            <configuration>
              <target name="Populate Release Directories">
                <!-- The website uses the following organization for the docs/target/docs directory:
                  - To ensure a known location, the base directory contains the LATEST version of the web book and the PDF files.
                  - The know location is docs/target/docs/<document>
                  - target/docs/<version>/<document> contains version-specific renderings of the documents.
                  - target/docs/<version>/<document> contains the PDF version and the web book. The web book is named index.html
                --> 
                <!-- Copy the PDF file to its target directories -->
                <copy file="${basedir}/target/index.pdf" tofile="${basedir}/../target/docs/client_install/Trafodion_Client_Installation_Guide.pdf" />
                <copy file="${basedir}/target/index.pdf" tofile="${basedir}/../target/docs/${project.version}/client_install/Trafodion_Client_Installation_Guide.pdf" />
                <!-- Copy the Web Book files to their target directories -->
                <copy todir="${basedir}/../target/docs/client_install">
                  <fileset dir="${basedir}/target/site">
                    <include name="**/*.*"/>  <!--All sub-directories, too-->
                  </fileset>
                </copy>
                <copy todir="${basedir}/../target/docs/${project.version}/client_install">
                  <fileset dir="${basedir}/target/site">
                    <include name="**/*.*"/>  <!--All sub-directories, too-->
                  </fileset>
                </copy>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <!-- Included because this is required. No reports are generated. -->
  <reporting>
    <excludeDefaults>true</excludeDefaults>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.8</version>
        <reportSets>
          <reportSet>
            <reports>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>

  <distributionManagement>
    <site>
      <id>trafodion.incubator.apache.org</id>
      <name>Trafodion Website at incubator.apache.org</name>
      <!-- On why this is the tmp dir and not trafodion.incubator.apache.org, see
      https://issues.apache.org/jira/browse/HBASE-7593?focusedCommentId=13555866&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13555866
      -->
      <url>file:///tmp</url>
    </site>
  </distributionManagement>
</project>
