<?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.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/trafodion.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/trafodion.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf?p=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.apache.org</project-support>
                <docs-url>http://trafodion.apache.org/docs</docs-url>
                <download-url>http://trafodion.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.apache.org</project-support>
                <docs-url>http://trafodion.apache.org/docs</docs-url>
                <download-url>http://http://trafodion.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.apache.org</id>
      <name>Trafodion Website at apache.org</name>
      <!-- On why this is the tmp dir and not trafodion.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>
