<!--
  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/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <parent>
      <groupId>org.apache.activemq</groupId>
      <artifactId>artemis-pom</artifactId>
      <version>2.37.0</version>
      <relativePath>../artemis-pom/pom.xml</relativePath>
   </parent>

   <artifactId>artemis-website</artifactId>
   <packaging>jar</packaging>
   <name>ActiveMQ Artemis Website</name>

   <properties>
      <!-- we need a "scratch" directory because we dynamically generate a few docs -->
      <scratch-dir-user-manual>${project.build.directory}/scratch/user-manual</scratch-dir-user-manual>
      <skipWebsiteDocGeneration>false</skipWebsiteDocGeneration>
      <skipWebsitePdfGeneration>${skipWebsiteDocGeneration}</skipWebsitePdfGeneration>
      <skipWebsiteJavadocGeneration>false</skipWebsiteJavadocGeneration>
   </properties>

   <profiles>
      <profile>
         <id>release</id>
         <dependencies>
            <dependency>
               <groupId>org.apache.activemq</groupId>
               <artifactId>artemis-core-client</artifactId>
            </dependency>
            <dependency>
               <groupId>org.apache.activemq</groupId>
               <artifactId>artemis-jms-client</artifactId>
            </dependency>
            <dependency>
               <groupId>org.apache.activemq</groupId>
               <artifactId>artemis-server</artifactId>
            </dependency>
            <dependency>
               <groupId>org.apache.activemq</groupId>
               <artifactId>artemis-commons</artifactId>
            </dependency>
            <dependency>
               <groupId>jakarta.json</groupId>
               <artifactId>jakarta.json-api</artifactId>
               <scope>compile</scope>
               <optional>true</optional>
               <!-- License: EPL 2.0 -->
            </dependency>

            <!-- stuff needed to resolve various classes during javadoc processing -->
            <dependency>
               <groupId>com.google.code.findbugs</groupId>
               <artifactId>jsr305</artifactId>
              <scope>provided</scope>
            </dependency>
            <dependency>
               <groupId>org.apache.activemq</groupId>
               <artifactId>artemis-log-annotation-processor</artifactId>
               <version>${project.version}</version>
               <scope>provided</scope>
            </dependency>
         </dependencies>

         <build>
            <plugins>
               <plugin>
                  <artifactId>maven-javadoc-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>javadoc-jar</id>
                        <phase>package</phase>
                        <goals>
                           <goal>jar</goal>
                        </goals>
                        <configuration>
                           <doctitle>ActiveMQ Artemis ${project.version} API</doctitle>
                           <source>11</source>
                           <minmemory>128m</minmemory>
                           <maxmemory>512m</maxmemory>
                           <noindex>true</noindex>
                           <skip>${skipWebsiteJavadocGeneration}</skip>
                           <!-- switch on dependency-driven aggregation -->
                           <includeDependencySources>true</includeDependencySources>
                           <dependencySourceIncludes>
                              <!-- include ONLY dependencies I control -->
                              <dependencySourceInclude>org.apache.activemq:artemis-core-client</dependencySourceInclude>
                              <dependencySourceInclude>org.apache.activemq:artemis-jms-client</dependencySourceInclude>
                              <dependencySourceInclude>org.apache.activemq:artemis-server</dependencySourceInclude>
                              <dependencySourceInclude>org.apache.activemq:artemis-commons</dependencySourceInclude>
                           </dependencySourceIncludes>
                           <sourceFileIncludes>
                              <sourceFileInclude>**/org/apache/activemq/artemis/api/**/*.java</sourceFileInclude>
                              <sourceFileInclude>**/org/apache/activemq/artemis/spi/**/*.java</sourceFileInclude>
                              <sourceFileInclude>**/org/apache/activemq/artemis/core/config/**/*.java</sourceFileInclude>
                              <sourceFileInclude>**/org/apache/activemq/artemis/core/server/plugin/**/*.java</sourceFileInclude>
                           </sourceFileIncludes>
                           <sourceFileExcludes>
                              <sourceFileExclude>**/impl/**/*.java</sourceFileExclude>
                              <sourceFileExclude>**/*Impl.java</sourceFileExclude>
                           </sourceFileExcludes>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <groupId>org.apache.activemq</groupId>
                  <artifactId>artemis-maven-plugin</artifactId>
                  <version>${project.version}</version>
                  <executions>
                     <execution>
                        <id>doc-jms-client</id>
                        <phase>generate-sources</phase>
                        <goals>
                           <goal>dependency-doc</goal>
                        </goals>
                        <configuration>
                           <file>${scratch-dir-user-manual}/client-classpath-jms.adoc</file>
                           <groupOrder>
                              <arg>org.apache.activemq</arg>
                              <arg>jakarta.jms</arg>
                              <arg>org.jgroups</arg>
                              <arg>io.netty</arg>
                           </groupOrder>
                           <header>= Artemis JMS Client Dependencies
// generated content!

|===
|File | package | observation

                           </header>
                           <line>|X{fileMD} | X{package} | X{detail} </line>
                           <footer>|===</footer>
                           <detailKey>
                              <arg>io.netty:netty-transport-native-epoll</arg>
                              <arg>io.netty:netty-transport-classes-epoll</arg>
                              <arg>io.netty:netty-transport-native-kqueue</arg>
                              <arg>io.netty:netty-transport-classes-kqueue</arg>
                              <arg>org.jgroups:jgroups</arg>
                           </detailKey>
                           <detailValue>
                              <arg>only if you want epoll on Linux</arg>
                              <arg>only if you want epoll on Linux</arg>
                              <arg>only if you want kqueue on MacOS</arg>
                              <arg>only if you want kqueue on MacOS</arg>
                              <arg>only if you want JGroups discovery from the clients</arg>
                           </detailValue>
                           <lib>org.apache.activemq:artemis-jms-client:${project.version}</lib>
                        </configuration>
                     </execution>
                     <execution>
                        <id>doc-jakarta-client</id>
                        <phase>generate-sources</phase>
                        <goals>
                           <goal>dependency-doc</goal>
                        </goals>
                        <configuration>
                           <file>${scratch-dir-user-manual}/client-classpath-jakarta.adoc</file>
                           <groupOrder>
                              <arg>org.apache.activemq</arg>
                              <arg>jakarta.jms</arg>
                              <arg>org.jgroups</arg>
                              <arg>io.netty</arg>
                           </groupOrder>
                           <header>= Artemis Jakarta Client Dependencies
// generated content!

|===
|File | package | observation

                           </header>
                           <line>|X{fileMD} | X{package} | X{detail} </line>
                           <footer>|===</footer>
                           <detailKey>
                              <arg>io.netty:netty-transport-native-epoll</arg>
                              <arg>io.netty:netty-transport-classes-epoll</arg>
                              <arg>io.netty:netty-transport-native-kqueue</arg>
                              <arg>io.netty:netty-transport-classes-kqueue</arg>
                              <arg>org.jgroups:jgroups</arg>
                           </detailKey>
                           <detailValue>
                              <arg>only if you want epoll on Linux</arg>
                              <arg>only if you want epoll on Linux</arg>
                              <arg>only if you want kqueue on MacOS</arg>
                              <arg>only if you want kqueue on MacOS</arg>
                              <arg>only if you want JGroups discovery from the clients</arg>
                           </detailValue>
                           <lib>org.apache.activemq:artemis-jakarta-client:${project.version}</lib>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <artifactId>maven-resources-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>copy-user-manual-resources</id>
                        <phase>generate-sources</phase>
                        <goals>
                           <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                           <outputDirectory>${scratch-dir-user-manual}</outputDirectory>
                           <skip>${skipWebsiteDocGeneration}</skip>
                           <resources>
                              <resource>
                                 <directory>${activemq.basedir}/docs/user-manual</directory>
                                 <includes>
                                    <include>**/*</include>
                                 </includes>
                              </resource>
                              <resource>
                                 <directory>${activemq.basedir}/docs/resources/font-awesome</directory>
                                 <includes>
                                    <include>**/*</include>
                                 </includes>
                              </resource>
                           </resources>
                        </configuration>
                     </execution>
                     <execution>
                        <id>copy-migration-guide-resources</id>
                        <phase>generate-sources</phase>
                        <goals>
                           <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                           <outputDirectory>${project.build.outputDirectory}/migration-guide</outputDirectory>
                           <skip>${skipWebsiteDocGeneration}</skip>
                           <resources>
                              <resource>
                                 <directory>${activemq.basedir}/docs/resources/font-awesome</directory>
                                 <includes>
                                    <include>**/*</include>
                                 </includes>
                              </resource>
                           </resources>
                        </configuration>
                     </execution>
                     <execution>
                        <id>copy-hacking-guide-resources</id>
                        <phase>generate-sources</phase>
                        <goals>
                           <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                           <outputDirectory>${project.build.outputDirectory}/hacking-guide</outputDirectory>
                           <skip>${skipWebsiteDocGeneration}</skip>
                           <resources>
                              <resource>
                                 <directory>${activemq.basedir}/docs/resources/font-awesome</directory>
                                 <includes>
                                    <include>**/*</include>
                                 </includes>
                              </resource>
                           </resources>
                        </configuration>
                     </execution>
                  </executions>
               </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>
                  </dependencies>
                  <executions>
                     <execution>
                        <id>generate-user-manual-html</id>
                        <phase>generate-sources</phase>
                        <goals>
                           <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                           <sourceDirectory>${scratch-dir-user-manual}</sourceDirectory>
                           <outputDirectory>${project.build.outputDirectory}/user-manual</outputDirectory>
                           <backend>html5</backend>
                           <attributes>
                              <toc-title>&lt;a href="index.html"&gt;User Manual for ${project.version}&lt;/a&gt;</toc-title>
                              <favicon>images/favicon.png</favicon>
                           </attributes>
                        </configuration>
                     </execution>
                     <execution>
                        <id>generate-user-manual-pdf</id>
                        <phase>generate-resources</phase>
                        <goals>
                           <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                           <sourceDirectory>${activemq.basedir}/docs/user-manual</sourceDirectory>
                           <sourceDocumentName>_book.adoc</sourceDocumentName>
                           <outputFile>book.pdf</outputFile>
                           <outputDirectory>${project.build.outputDirectory}/user-manual</outputDirectory>
                           <backend>pdf</backend>
                           <skip>${skipWebsitePdfGeneration}</skip>
                           <resources>
                              <resource>
                                 <directory>${activemq.basedir}/docs/user-manual</directory>
                                 <includes>
                                    <include>book.pdf</include>
                                 </includes>
                              </resource>
                           </resources>
                        </configuration>
                     </execution>
                     <execution>
                        <id>generate-migration-guide-html</id>
                        <phase>generate-sources</phase>
                        <goals>
                           <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                           <sourceDirectory>${activemq.basedir}/docs/migration-guide</sourceDirectory>
                           <outputDirectory>${project.build.outputDirectory}/migration-guide</outputDirectory>
                           <backend>html5</backend>
                           <attributes>
                              <favicon>images/favicon.png</favicon>
                           </attributes>
                        </configuration>
                     </execution>
                     <execution>
                        <id>generate-hacking-guide-html</id>
                        <phase>generate-sources</phase>
                        <goals>
                           <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                           <sourceDirectory>${activemq.basedir}/docs/hacking-guide</sourceDirectory>
                           <outputDirectory>${project.build.outputDirectory}/hacking-guide</outputDirectory>
                           <backend>html5</backend>
                           <attributes>
                              <favicon>images/favicon.png</favicon>
                           </attributes>
                        </configuration>
                     </execution>
                  </executions>
                  <configuration>
                     <doctype>book</doctype>
                     <skip>${skipWebsiteDocGeneration}</skip>
                     <attributes>
                        <source-highlighter>rouge</source-highlighter>
                        <toc>left</toc>
                        <icons>font</icons>
                        <toclevels>2</toclevels>
                        <sectlinks />
                        <sectanchors />
                        <sectnumlevels>3</sectnumlevels>
                        <sectnums />
                        <idprefix />
                        <idseparator>-</idseparator>
                        <nofooter>true</nofooter>
                        <linkcss>true</linkcss>
                        <iconfont-remote>false</iconfont-remote>
                        <stylesdir>css</stylesdir>
                        <webfonts>false</webfonts>
                        <prewrap>false</prewrap>
                        <reproducible />
                        <!-- enable "experimental" for keyboard macros - https://docs.asciidoctor.org/asciidoc/latest/macros/keyboard-macro/ -->
                        <experimental>true</experimental>

                        <!-- Version substitution attributes -->
                        <project-version>${project.version}</project-version>
                        <log4j-version>${log4j.version}</log4j-version>
                     </attributes>
                     <logHandler>
                        <outputToConsole>false</outputToConsole>
                        <failIf>
                           <!-- https://docs.asciidoctor.org/asciidoctor/latest/errors-and-warnings/#info -->
                           <containsText>possible invalid reference</containsText>
                        </failIf>
                     </logHandler>
                  </configuration>
               </plugin>
            </plugins>
         </build>
      </profile>
   </profiles>
</project>
