<!--
  ~ Copyright 2023 Red Hat, Inc. and/or its affiliates
  ~ and other contributors as indicated by the @author tags.
  ~
  ~ Licensed 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">
    <parent>
        <artifactId>keycloak-docs-parent</artifactId>
        <groupId>org.keycloak</groupId>
        <version>26.3.2</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <name>Keycloak Guides</name>
    <artifactId>keycloak-guides</artifactId>
    <description>Keycloak Guides</description>
    <!-- although this doesn't provide a JAR, this is necessary to call the DocsBuildDebugUtil class
    from an IDE for debugging -->
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-guides-maven-plugin</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-plugin-api</artifactId>
            <version>${maven.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.3.0</version>
                <executions>
                    <execution>
                        <id>copy-images</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${basedir}/target/generated-docs/images</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>${basedir}/images</directory>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-attributes</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${basedir}/target/generated-guides/</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>${basedir}/</directory>
                                    <includes>
                                        <include>attributes.adoc</include>
                                    </includes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-included-files</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${basedir}/target/generated-guides/</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>${basedir}/</directory>
                                    <includes>
                                        <include>**/examples/**/*.*</include>
                                        <include>**/partials/**/*.*</include>
                                    </includes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.keycloak</groupId>
                <artifactId>keycloak-guides-maven-plugin</artifactId>
                <version>${project.version}</version>
                <executions>
                    <execution>
                        <id>generate-asciidoc</id>
                        <goals>
                            <goal>keycloak-guide</goal>
                        </goals>
                        <configuration>
                            <sourceDir>${project.basedir}</sourceDir>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.asciidoctor</groupId>
                <artifactId>asciidoctor-maven-plugin</artifactId>
                <configuration>
                    <sourceDocumentName>index.adoc</sourceDocumentName>
                    <backend>html5</backend>
                    <sourceHighlighter>coderay</sourceHighlighter>
                    <attributes>
                        <toc>left</toc>
                        <toc>left</toc>
                        <icons>font</icons>
                        <sectanchors>true</sectanchors>
                        <idprefix />
                        <idseparator>-</idseparator>
                        <docinfo1>true</docinfo1>
                        <imagesdir>../images</imagesdir>
                        <attribute-missing>warn</attribute-missing>
                    </attributes>
                    <logHandler>
                        <failIf>
                            <severity>ERROR</severity>
                        </failIf>
                    </logHandler>
                </configuration>
                <executions>
                    <execution>
                        <id>server-asciidoc-to-html</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <sourceDirectory>${basedir}/target/generated-guides/server</sourceDirectory>
                            <outputDirectory>${project.build.directory}/generated-docs/server</outputDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>operator-asciidoc-to-html</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <sourceDirectory>${basedir}/target/generated-guides/operator</sourceDirectory>
                            <outputDirectory>${project.build.directory}/generated-docs/operator</outputDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>observability-asciidoc-to-html</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <sourceDirectory>${basedir}/target/generated-guides/observability</sourceDirectory>
                            <outputDirectory>${project.build.directory}/generated-docs/observability</outputDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>migration-asciidoc-to-html</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <sourceDirectory>${basedir}/target/generated-guides/migration</sourceDirectory>
                            <outputDirectory>${project.build.directory}/generated-docs/migration</outputDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>getting-started-asciidoc-to-html</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <sourceDirectory>${basedir}/target/generated-guides/getting-started</sourceDirectory>
                            <outputDirectory>
                                ${project.build.directory}/generated-docs/getting-started</outputDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>high-availability-asciidoc-to-html</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <sourceDirectory>${basedir}/target/generated-guides/high-availability</sourceDirectory>
                            <outputDirectory>
                                ${project.build.directory}/generated-docs/high-availability</outputDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>securing-apps-asciidoc-to-html</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <sourceDirectory>${basedir}/target/generated-guides/securing-apps</sourceDirectory>
                            <outputDirectory>${project.build.directory}/generated-docs/securing-apps</outputDirectory>
                            <preserveDirectories>true</preserveDirectories>
                        </configuration>
                    </execution>
                    <execution>
                        <id>ui-customization-asciidoc-to-html</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <sourceDirectory>${basedir}/target/generated-guides/ui-customization</sourceDirectory>
                            <outputDirectory>
                                ${project.build.directory}/generated-docs/ui-customization</outputDirectory>
                            <preserveDirectories>true</preserveDirectories>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptors>
                        <descriptor>assembly.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>create-archive</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>