<!--
  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.31.0</version>
   </parent>

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

   <properties>
      <activemq.basedir>${project.basedir}/..</activemq.basedir>
      <!-- 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>
               <version>${project.version}</version>
            </dependency>
            <dependency>
               <groupId>org.apache.activemq</groupId>
               <artifactId>artemis-jms-client</artifactId>
               <version>${project.version}</version>
            </dependency>
            <dependency>
               <groupId>org.apache.activemq</groupId>
               <artifactId>artemis-server</artifactId>
               <version>${project.version}</version>
            </dependency>
            <dependency>
               <groupId>org.apache.activemq</groupId>
               <artifactId>artemis-commons</artifactId>
               <version>${project.version}</version>
            </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>
                        <project-version>${project.version}</project-version>
                        <nofooter>true</nofooter>
                        <linkcss>true</linkcss>
                        <iconfont-remote>false</iconfont-remote>
                        <stylesdir>css</stylesdir>
                        <webfonts>false</webfonts>
                     </attributes>
                  </configuration>
               </plugin>
            </plugins>
         </build>
      </profile>
   </profiles>
</project>
