<?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="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/xsd/maven-4.0.0.xsd">
  <parent>
    <artifactId>arthur</artifactId>
    <groupId>org.apache.geronimo.arthur</groupId>
    <version>1.0.6-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <artifactId>documentation</artifactId>
  <name>Arthur :: Documentation</name>

  <properties>
    <geronimo-arthur.shortname>documentation</geronimo-arthur.shortname>

    <doc.mojo.basedir>
      ${project.parent.basedir}/arthur-maven-plugin/src/main/java/org/apache/geronimo/arthur/maven/mojo
    </doc.mojo.basedir>
  </properties>

  <dependencies>
    <!-- we want to be last in the reactor to be able to rely on relative paths if we generate doc -->
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>arthur-maven-plugin</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}.knights</groupId>
      <artifactId>jsch-knight</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>${project.groupId}.knights</groupId>
      <artifactId>slf4j-knight</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>${project.groupId}.knights</groupId>
      <artifactId>openwebbeans-knight</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>${project.groupId}.knights</groupId>
      <artifactId>winegrower-knight</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- generation dependencies -->
    <dependency>
      <groupId>org.tomitribe</groupId>
      <artifactId>tomitribe-crest</artifactId>
      <version>0.11</version>
      <exclusions>
        <exclusion>
          <groupId>org.apache.xbean</groupId>
          <artifactId>xbean-asm7-shaded</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.xbean</groupId>
          <artifactId>xbean-finder-shaded</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <version>${slf4j.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.asciidoctor</groupId>
      <artifactId>asciidoctorj</artifactId>
      <version>2.5.7</version>
    </dependency>
    <dependency>
      <groupId>org.asciidoctor</groupId>
      <artifactId>asciidoctorj-diagram</artifactId>
      <version>2.2.3</version>
    </dependency>
    <dependency>
      <groupId>org.jruby</groupId>
      <artifactId>jruby-complete</artifactId>
      <version>9.4.0.0</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.6.0</version>
        <executions>
          <execution>
            <id>default-cli</id>
            <phase />
            <goals>
              <goal>java</goal>
            </goals>
          </execution>
          <execution>
            <id>generate</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>java</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <mainClass>org.apache.geronimo.arthur.documentation.DocumentationGeneratorLauncher</mainClass>
          <arguments>
            <argument>generate</argument>
            <argument>--work-directory=${project.build.directory}/generated_documentation</argument>
            <argument>--content-location=${project.basedir}/src/content</argument>
            <argument>--static-location=${project.basedir}/src/static</argument>
            <argument>--output=${project.build.directory}/documentation</argument>
            <!-- only update after a release or run Downloads#main manually
            <argument>- -download-source=${project.basedir}/src/content/downloads.adoc</argument>
            -->
            <argument>--template-header=${project.basedir}/src/template/header.html</argument>
            <argument>--template-footer=${project.basedir}/src/template/footer.html</argument>
            <argument>--mojo=${doc.mojo.basedir}/DockerMojo.java</argument>
            <argument>--mojo=${doc.mojo.basedir}/ImageMojo.java</argument>
            <argument>--mojo=${doc.mojo.basedir}/NativeImageMojo.java</argument>
          </arguments>
          <systemProperties>
            <systemProperty>
              <key>org.slf4j.simpleLogger.showThreadName</key>
              <value>false</value>
            </systemProperty>
            <systemProperty>
              <key>org.slf4j.simpleLogger.levelInBrackets</key>
              <value>true</value>
            </systemProperty>
            <systemProperty>
              <key>org.slf4j.simpleLogger.showShortLogName</key>
              <value>false</value>
            </systemProperty>
            <systemProperty>
              <key>org.slf4j.simpleLogger.logFile</key>
              <value>System.out</value>
            </systemProperty>
          </systemProperties>
        </configuration>
      </plugin>
      <plugin> <!-- "mvn meecrowave:bake" to check out the generated website -->
        <groupId>org.apache.meecrowave</groupId>
        <artifactId>meecrowave-maven-plugin</artifactId>
        <version>1.2.9</version>
        <configuration>
          <webapp>${project.build.directory}/documentation</webapp>
          <webResourceCached>false</webResourceCached>
          <reloadGoals>prepare-package</reloadGoals> <!-- mvn meecrowave:bake -DskipTests, then "r" to reload -->
          <scanningExcludes>a,b,c,d,i,j,m,n,o,t</scanningExcludes>
        </configuration>
      </plugin>
      <plugin> <!-- "mvn clean prepare-package scm-publish:publish-scm -DskipTests" to publish the website -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-publish-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>scm-publish</id>
            <phase>site-deploy</phase>
            <goals>
              <goal>publish-scm</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <content>${project.build.directory}/documentation</content>
          <pubScmUrl>scm:svn:https://svn.apache.org/repos/infra/websites/production/geronimo/content/arthur</pubScmUrl>
          <tryUpdate>true</tryUpdate>
          <checkoutDirectory>${project.parent.basedir}/.site-content</checkoutDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <distributionManagement>
    <repository>
      <id>localhost</id>
      <url>file://${project.basedir}/target/deploy/</url>
    </repository>
    <snapshotRepository>
      <id>localhost</id>
      <url>file://${project.basedir}/target/deploy/</url>
    </snapshotRepository>
  </distributionManagement>
</project>
