<?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>provisioning-guide</artifactId>
  <version>${env.TRAFODION_VER}</version>
  <packaging>pom</packaging>
  <name>Trafodion Provisioning Guide</name>
  <description>This guide describes how to provision Trafodion.</description>
  <url>http://trafodion.incubator.apache.org</url>
  <inceptionYear>2015</inceptionYear>

  <parent>
    <groupId>org.apache.trafodion</groupId>
    <artifactId>trafodion</artifactId>
    <relativePath>../../pom.xml</relativePath>
    <version>1.3.0</version>
  </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>
                <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>
                <pdf-stylesdir>${basedir}/../shared</pdf-stylesdir>
                <pdf-style>trafodion</pdf-style>
                <icons>font</icons>
                <pagenums/>
                <toc/>
                <idprefix/>
                <idseparator>-</idseparator>
              </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/provisioning_guide/Trafodion_Provisioning_Guide.pdf" />
                <copy file="${basedir}/target/index.pdf" tofile="${basedir}/../target/docs/${project.version}/provisioning_guide/Trafodion_Provisioning_Guide.pdf" />
                <!-- Copy the Web Book files to their target directories -->
                <copy todir="${basedir}/../target/docs/provisioning_guide">
                  <fileset dir="${basedir}/target/site">
                    <include name="**/*.*"/>  <!--All sub-directories, too-->
                  </fileset>
                </copy>
                <copy todir="${basedir}/../target/docs/${project.version}/provisioning_guide">
                  <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>
