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

    Copyright (c) 1997, 2021 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.main</groupId>
        <artifactId>glassfish-parent</artifactId>
        <version>6.2.5</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>

    <!-- version 4.0 means this is the dataprovider used in Woodstock 4.2 release -->
    <groupId>org.glassfish.main.admingui</groupId>
    <artifactId>dataprovider</artifactId>

    <name>DataProvider</name>
    <description>DataProvider Repackaged as OSGi bundle for GlassFish</description>

    <properties>
        <!--
            Exclude this module because the source code isn't here;
            it comes from an external project that we don't modify.
        -->
        <findbugs.skip>true</findbugs.skip>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.sun.woodstock.dependlibs</groupId>
            <artifactId>dataprovider</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin><!-- Configure maven-bundle-plugin which takes care of
                     OSGi packaging -->
                <!-- We need to override the plugin settings -->
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <!-- We don't use extensions as this interfers with
                     HK2 and that results in hk2 artifacts
                     being copied as .hk2-jar. Instead, we configure the
                     plugin to run as part of package phase. By Sahoo.
                <extensions>true</extensions>
                -->
                <configuration>
                    <!-- Enable it for jar type -s parent plugin disable it for
                         jar type.
                    -->
                    <supportedProjectTypes>
                        <supportedProjectType>jar</supportedProjectType>
                    </supportedProjectTypes>
                    <instructions>
                        <Embed-Dependency>artifactId=dataprovider;inline=true;</Embed-Dependency>
                        <Export-Package>com.sun.data.*; password="GlassFish"; mandatory:=password</Export-Package>
                        <Import-Package>com.sun.sql.*;resolution:=optional,*</Import-Package>
                    </instructions>
                    <unpackBundle>true</unpackBundle>
                </configuration>
                <executions>
                    <execution>
                        <id>osgi-bundle</id>
                        <phase>package</phase>
                        <goals>
                            <goal>bundle</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <!-- generate empty javadoc jar -->
            <id>release-phase2</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-jar-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>create-empty-javadoc-jar</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                                <configuration>
                                    <classesDirectory>${project.build.directory}/javadoc</classesDirectory>
                                    <classifier>javadoc</classifier>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
