<?xml version="1.0" encoding="iso-8859-1"?>
<!--

    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

-->

<!--
    This project builds the Jakarta Mail API jar file, which contains only
    the javax.mail.* API definitions and is *only* intended to be used
    for programs to compile against.  Note that it includes none of the
    implementation-specific classes that the jakarta.mail.* classes rely on.

    NOTE: Because the jar still has to be usable on Java SE 8 and/or
    on the classpath, implementation-specific com.sun classes are not included.
    Therefore putting this file on the module-path may not work as expected.
    To fix this, com.sun classes need to be added to the jar file
    while the JPMS descriptor needs to be kept as-is.
-->

<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>
	<groupId>com.sun.mail</groupId>
	<artifactId>all</artifactId>
	<version>1.6.7</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <groupId>jakarta.mail</groupId>
    <artifactId>jakarta.mail-api</artifactId>
    <packaging>jar</packaging>
    <name>Jakarta Mail API jar</name>

    <!-- for build to succeed -->
    <dependencies>
        <dependency>
            <groupId>com.sun.activation</groupId>
            <artifactId>jakarta.activation</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <properties>
	<mail.extensionName>
	    jakarta.mail
	</mail.extensionName>
	<mail.packages.export>
	    javax.mail.*; version=${mail.spec.version}
	</mail.packages.export>
	<mail.bundle.symbolicName>
	    jakarta.mail-api
	</mail.bundle.symbolicName>
	<mail.moduleName>
	    jakarta.mail
	</mail.moduleName>
        <mail.recompile.skip>true</mail.recompile.skip>
    </properties>

    <build>
        <plugins>
	    <plugin>
		<artifactId>maven-dependency-plugin</artifactId>
		<executions>
		    <execution>
			<!-- download the binaries -->
			<id>get-binaries</id>
			<phase>compile</phase>
			<goals>
			    <goal>unpack</goal>
			</goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>com.sun.mail</groupId>
                                    <artifactId>jakarta.mail</artifactId>
                                    <version>${mail.version}</version>
                                </artifactItem>
                            </artifactItems>
                            <outputDirectory>
                                ${project.build.outputDirectory}
                            </outputDirectory>
                        </configuration>
		    </execution>
		    <execution>
			<!-- download the sources -->
			<id>get-sources</id>
			<phase>compile</phase>
			<goals>
			    <goal>unpack</goal>
			</goals>
			<configuration>
			    <artifactItems>
				<artifactItem>
				    <groupId>com.sun.mail</groupId>
				    <artifactId>jakarta.mail</artifactId>
				    <version>${mail.version}</version>
				    <classifier>sources</classifier>
				    <outputDirectory>
					${project.build.directory}/generated-sources/sources
				    </outputDirectory>
				</artifactItem>
			    </artifactItems>
			</configuration>
		    </execution>
		</executions>
		<configuration>
		    <!--
			Include all the implementation source files so that
			javadoc run as part of "deploy" will find all the
			required classes.

			Don't include the metadata files from the original
			jar file.
		    -->
		    <excludes>
                        module-info.*,
			META-INF/**
		    </excludes>
		</configuration>
	    </plugin>

	    <!--
		 Skip compiling since the dependency plugin pulled in
		 the sources and class files.
                 We only need to compile JPMS descriptor.
	    -->
	    <plugin>
		<artifactId>maven-compiler-plugin</artifactId>
		<executions>
		    <execution>
                        <id>module-info-compile</id>
                        <goals>
                            <goal>compile</goal>
                        </goals>
			<configuration>
                            <release>11</release>
                            <includes>
                                <include>module-info.java</include>
                            </includes>
			</configuration>
		    </execution>
		</executions>
	    </plugin>

	    <!--
		Don't include the implementation classes in the jar file.
	    -->
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <finalName>${project.artifactId}</finalName>
		    <excludes>
			<exclude>com/**</exclude>
		    </excludes>
                </configuration>
            </plugin>

	    <!--
		Don't include the implementation sources in the jar file.
	    -->
	    <plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-source-plugin</artifactId>
		<configuration>
		    <excludes>
			<exclude>com/**</exclude>
		    </excludes>
		</configuration>
	    </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <excludePackageNames>com.sun.*</excludePackageNames>
                    <bottom>${mail.javadoc.bottom}</bottom>
                    <header>${mail.javadoc.api.header}</header>
                    <javadocDirectory>${project.build.directory}/generated-sources/sources</javadocDirectory>
                    <additionalOptions>
                        <additionalOption>--add-modules</additionalOption>
                        <additionalOption>java.datatransfer</additionalOption>
                    </additionalOptions>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>