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

    Copyright (c) 2011, 2018 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
    http://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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.glassfish</groupId>
        <artifactId>json</artifactId>
        <version>1.1.5-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <groupId>org.glassfish</groupId>
    <artifactId>jakarta.json</artifactId>
    <packaging>bundle</packaging>
    <version>1.1.5-SNAPSHOT</version>
    <name>JSR 374 (JSON Processing) Default Provider</name>
    <description>Default provider for JSR 374:Java API for Processing JSON</description>
    <url>https://javaee.github.io/jsonp</url>

    <properties>
        <packages.private>org.glassfish.json</packages.private>
        <packages.export>javax.json.*,org.glassfish.json.api</packages.export>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.glassfish.build</groupId>
                <artifactId>spec-version-maven-plugin</artifactId>
                <configuration>
                    <spec>
                        <nonFinal>${non.final}</nonFinal>
                        <jarType>impl</jarType>
                        <specVersion>${spec_version}</specVersion>
                        <newSpecVersion>${new_spec_version}</newSpecVersion>
                        <specImplVersion>${new_spec_impl_version}</specImplVersion>
                        <implVersion>${impl_version}</implVersion>
                        <newImplVersion>${new_impl_version}</newImplVersion>
                        <apiPackage>${api_package}</apiPackage>
                        <implNamespace>${impl_namespace}</implNamespace>
                    </spec>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>set-spec-properties</goal>
                            <!-- TODO:
                            glassfish-spec-version-maven-plugin needs to be updated
                            in order to check 'jakarta.' prefixed values in manifest entries
                            -->
                            <!--<goal>check-module</goal>-->
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>sources-as-resources</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>src/main/java</directory>
                                </resource>
                            </resources>
                            <outputDirectory>${project.build.directory}/sources</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>unpack-client-sources</id>
                        <phase>package</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>jakarta.json</groupId>
                                    <artifactId>jakarta.json-api</artifactId>
                                    <version>${spec_impl_version}</version>
                                    <classifier>sources</classifier>
                                    <overWrite>false</overWrite>
                                    <outputDirectory>${project.build.directory}/sources</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-source-jar</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <classifier>sources</classifier>
                            <classesDirectory>${project.build.directory}/sources</classesDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <includeDependencySources>true</includeDependencySources>
                    <bottom>
<![CDATA[Copyright &#169; 2012-2018,
    <a href="http://www.oracle.com">Oracle</a>
    and/or its affiliates. All Rights Reserved.
    Use is subject to
    <a href="{@docRoot}/doc-files/speclicense.html" target="_top">license terms</a>.
    <br>Comments to : jsonp-dev@eclipse.org
]]>
                    </bottom>
                </configuration>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--
              This plugin is reponsible for packaging artifacts
              as OSGi bundles.  Please refer to
              http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html
              for more information about how to use this plugin.
            -->
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
                <executions>
                    <execution>
                        <id>default-bundle</id>
                        <goals>
                            <goal>bundle</goal>
                        </goals>
                        <configuration>
                            <instructions>
                                <Bundle-Version>${spec.bundle.version}</Bundle-Version>
                                <Bundle-SymbolicName>${spec.bundle.symbolic-name}</Bundle-SymbolicName>
                                <Extension-Name>${spec.extension.name}</Extension-Name>
                                <Implementation-Version>${spec.implementation.version}</Implementation-Version>
                                <Specification-Vendor>Oracle</Specification-Vendor>
                                <Specification-Version>${spec.specification.version}</Specification-Version>
                                <Export-Package>${packages.export}</Export-Package>
                                <Private-Package>${packages.private}</Private-Package>
                                <Automatic-Module-Name>java.json</Automatic-Module-Name>
                                <_donotcopy>.*services.*</_donotcopy>
                            </instructions>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>jakarta.json</groupId>
            <artifactId>jakarta.json-api</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <profiles>
        <profile>
            <id>jdk9-setup</id>
            <activation>
                <jdk>[9,)</jdk>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.felix</groupId>
                        <artifactId>maven-bundle-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>main-artifact-module</id>
                                <goals>
                                    <goal>bundle</goal>
                                </goals>
                                <configuration>
                                    <classifier>module</classifier>
                                    <instructions>
                                        <Bundle-Version>${spec.bundle.version}</Bundle-Version>
                                        <Bundle-SymbolicName>${spec.bundle.symbolic-name}.module</Bundle-SymbolicName>
                                        <Extension-Name>${spec.extension.name}</Extension-Name>
                                        <Implementation-Version>${spec.implementation.version}</Implementation-Version>
                                        <Specification-Version>${spec.specification.version}</Specification-Version>
                                        <Export-Package>org.glassfish.json.api</Export-Package>
                                        <Private-Package>${packages.private}</Private-Package>
                                        <Include-Resource>{maven-resources},target/classes/module-info.class</Include-Resource>
                                    </instructions>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>