<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    https://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->
<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>
    <groupId>jakarta.ws.rs</groupId>
    <artifactId>jakarta.ws.rs-spec</artifactId>
    <version>3.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Jakarta RESTful Web Services Specification</name>

    <properties>
        <site.output.dir>${project.build.directory}/staging</site.output.dir>
        <maven.site.skip>true</maven.site.skip>
        <asciidoctor.maven.plugin.version>2.1.0</asciidoctor.maven.plugin.version>
        <asciidoctorj.version>2.5.1</asciidoctorj.version>
        <asciidoctorj.pdf.version>1.6.0</asciidoctorj.pdf.version>
        <jruby.version>9.2.19.0</jruby.version>
        <!-- status: DRAFT, BETA, etc., or blank for final -->
        <status>DRAFT</status>
        <maven.build.timestamp.format>MMMM dd, yyyy</maven.build.timestamp.format>
        <revisiondate>${maven.build.timestamp}</revisiondate>
    </properties>

    <scm>
        <connection>scm:git:https://github.com/eclipse-ee4j/jaxrs-api</connection>
        <url>https://github.com/eclipse-ee4j/jaxrs-api</url>
        <tag>HEAD</tag>
    </scm>

    <distributionManagement>
        <site>
            <url>scm:git:https://github.com/eclipse-ee4j/jaxrs-api</url>
        </site>
    </distributionManagement>

    <build>
        <defaultGoal>package</defaultGoal>
        <plugins>
            <plugin>
                <groupId>org.asciidoctor</groupId>
                <artifactId>asciidoctor-maven-plugin</artifactId>
                <version>${asciidoctor.maven.plugin.version}</version>
                <dependencies>
                    <dependency>
                        <groupId>org.jruby</groupId>
                        <artifactId>jruby-complete</artifactId>
                        <version>${jruby.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.asciidoctor</groupId>
                        <artifactId>asciidoctorj</artifactId>
                        <version>${asciidoctorj.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.asciidoctor</groupId>
                        <artifactId>asciidoctorj-pdf</artifactId>
                        <version>${asciidoctorj.pdf.version}</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <logHandler>
                        <failIf>
                            <severity>ERROR</severity>
                        </failIf>
                    </logHandler>
                </configuration>
                <executions>
                    <execution>
                        <id>asciidoc-to-html</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <backend>xhtml</backend>
                            <attributes>
				<imagesdir>images</imagesdir>
                                <revnumber>${project.version}</revnumber>
                                <revremark>${status}</revremark>
                                <revdate>${revisiondate}</revdate>
                                <doctype>book</doctype>
                                <status>${status}</status>
                                <data-uri />
                                <icons>font</icons>
                                <toc>left</toc>
                                <icons>font</icons>
                                <sectanchors>true</sectanchors>
                                <idprefix />
                                <idseparator>-</idseparator>
                                <docinfo1>true</docinfo1>
                            </attributes>
                        </configuration>
                    </execution>
                    <execution>
                        <id>asciidoc-to-pdf</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <backend>pdf</backend>
                            <attributes>
				<imagesdir>images</imagesdir>
                                <pdf-stylesdir>${project.basedir}/src/theme</pdf-stylesdir>
                                <pdf-style>jakartaee</pdf-style>
                                <revnumber>${project.version}</revnumber>
                                <revremark>${status}</revremark>
                                <revdate>${revisiondate}</revdate>
                                <doctype>book</doctype>
                                <status>${status}</status>
                                <data-uri />
                                <icons>font</icons>
                                <pagenums />
                                <toc />
                                <icons>font</icons>
                                <sectanchors>true</sectanchors>
                                <idprefix />
                                <idseparator>-</idseparator>
                                <docinfo1>true</docinfo1>
                                <embedAssets>true</embedAssets>
                            </attributes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
