<?xml version="1.0" encoding="UTF-8"?>
<!--
  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.
-->
<project xmlns="https://maven.apache.org/POM/4.0.0"
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0
                      https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.yetus</groupId>
    <artifactId>yetus-project</artifactId>
    <version>0.11.1</version>
    <relativePath>..</relativePath>
  </parent>
  <artifactId>asf-site</artifactId>
  <description>Website and Documentation for Apache Yetus</description>
  <name>Apache Yetus - Website/Documentation</name>
  <packaging>pom</packaging>

  <properties>
    <rdm.bin>${basedir}/../releasedocmaker/src/main/python/releasedocmaker.py</rdm.bin>
  </properties>

  <build>

    <plugins>
      <plugin>
        <groupId>org.apache.yetus</groupId>
        <artifactId>yetus-minimaven-plugin</artifactId>
        <version>${project.version}</version>
        <executions>
          <execution>
            <id>0.8.0</id>
            <phase>pre-site</phase>
            <goals>
              <goal>symlink</goal>
            </goals>
            <configuration>
              <target>../../target/0.8.0</target>
              <newLink>${basedir}/source/documentation/0.8.0</newLink>
            </configuration>
          </execution>
          <execution>
            <id>0.8.0.html.md</id>
            <phase>pre-site</phase>
            <goals>
              <goal>symlink</goal>
            </goals>
            <configuration>
              <target>../../target/0.8.0.html.md</target>
              <newLink>${basedir}/source/documentation/0.8.0.html.md</newLink>
            </configuration>
          </execution>
          <execution>
            <id>0.9.0</id>
            <phase>pre-site</phase>
            <goals>
              <goal>symlink</goal>
            </goals>
            <configuration>
              <target>../../target/0.9.0</target>
              <newLink>${basedir}/source/documentation/0.9.0</newLink>
            </configuration>
          </execution>
          <execution>
            <id>0.9.0.html.md</id>
            <phase>pre-site</phase>
            <goals>
              <goal>symlink</goal>
            </goals>
            <configuration>
              <target>../../target/0.9.0.html.md</target>
              <newLink>${basedir}/source/documentation/0.9.0.html.md</newLink>
            </configuration>
          </execution>
          <execution>
            <id>0.10.0</id>
            <phase>pre-site</phase>
            <goals>
              <goal>symlink</goal>
            </goals>
            <configuration>
              <target>../../target/0.10.0</target>
              <newLink>${basedir}/source/documentation/0.10.0</newLink>
            </configuration>
          </execution>
          <execution>
            <id>0.10.0.html.md</id>
            <phase>pre-site</phase>
            <goals>
              <goal>symlink</goal>
            </goals>
            <configuration>
              <target>../../target/0.10.0.html.md</target>
              <newLink>${basedir}/source/documentation/0.10.0.html.md</newLink>
            </configuration>
          </execution>
          <execution>
            <!-- we create a symlink of current version->in-progress.  This will cause
                 middle man to generate two copies of the output. -->
            <id>in-progress</id>
            <phase>pre-site</phase>
            <goals>
              <goal>symlink</goal>
            </goals>
            <configuration>
              <target>in-progress</target>
              <newLink>${basedir}/source/documentation/${project.version}</newLink>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>releasedocs</id>
            <phase>pre-site</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>${rdm.bin}</executable>
              <requiresOnline>true</requiresOnline>
              <arguments>
                <argument>--lint=all</argument>
                <argument>--license</argument>
                <argument>--outputdir</argument>
                <argument>source/documentation/in-progress</argument>
                <argument>--project</argument>
                <argument>YETUS</argument>
                <argument>--projecttitle</argument>
                <argument>Apache Yetus</argument>
                <argument>--usetoday</argument>
                <argument>--version</argument>
                <argument>${project.version}</argument>
              </arguments>
            </configuration>
          </execution>
          <execution>
            <id>bundle-install</id>
            <phase>pre-site</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>bundle</executable>
              <requiresOnline>true</requiresOnline>
              <arguments>
                <argument>install</argument>
              </arguments>
            </configuration>
          </execution>
          <execution>
            <id>middleman</id>
            <phase>pre-site</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>bundle</executable>
              <requiresOnline>false</requiresOnline>
              <arguments>
                <argument>exec</argument>
                <argument>middleman</argument>
                <argument>build</argument>
              </arguments>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>website-docs</id>
            <phase>site:stage</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <finalName>apache-yetus-${project.version}-site</finalName>
              <appendAssemblyId>false</appendAssemblyId>
              <attach>false</attach>
              <descriptors>
                <descriptor>src/main/assemblies/${project.artifactId}.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>Gemfile.lock</exclude>
            <exclude>source/assets/config.json</exclude>
            <exclude>source/assets/css/bootstrap-theme.css</exclude>
            <exclude>source/assets/css/bootstrap-theme.css.map</exclude>
            <exclude>source/assets/css/bootstrap-theme.min.css</exclude>
            <exclude>source/assets/css/bootstrap.css</exclude>
            <exclude>source/assets/css/bootstrap.css.map</exclude>
            <exclude>source/assets/css/bootstrap.min.css</exclude>
            <exclude>source/assets/css/font-awesome.css</exclude>
            <exclude>source/assets/css/font-awesome.min.css</exclude>
            <exclude>source/assets/fonts/fontawesome-webfont.svg</exclude>
            <exclude>source/assets/fonts/glyphicons-halflings-regular.svg</exclude>
            <exclude>source/assets/js/bootstrap.js</exclude>
            <exclude>source/assets/js/bootstrap.min.js</exclude>
            <exclude>source/assets/js/jquery-2.1.4.min.js</exclude>
          </excludes>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <executions>
          <execution>
            <id>releng</id>
            <phase>clean</phase>
            <goals>
              <goal>clean</goal>
            </goals>
            <configuration>
              <filesets>
                <fileset>
                  <directory>source/documentation/</directory>
                    <includes>
                      <include>0*</include>
                    </includes>
                  <followSymlinks>false</followSymlinks>
                </fileset>
                <fileset>
                  <directory>source/documentation/in-progress</directory>
                    <includes>
                      <include>CHANGELOG.md</include>
                      <include>RELEASENOTES.md</include>
                    </includes>
                  <followSymlinks>false</followSymlinks>
                </fileset>
              </filesets>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-deploy-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>


    </plugins>
  </build>

</project>
