<?xml version='1.0' encoding='UTF-8'?>

<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>

    <artifactId>jboss-parent-mr-jar</artifactId>

    <packaging>pom</packaging>

    <name>JBoss MR-JAR Parent POM</name>
    <description>Parent POM for multi-release JBoss projects.</description>
    <url>http://www.jboss.org</url>

    <parent>
        <groupId>org.jboss</groupId>
        <artifactId>jboss-parent</artifactId>
        <version>32</version>
        <relativePath>../base</relativePath>
    </parent>

    <properties>
        <!-- Special version for MR JAR jdk-misc artifact -->
        <version.jdk-misc>2.Final</version.jdk-misc>
    </properties>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>default-compile</id>
                            <phase>compile</phase>
                            <goals>
                                <goal>compile</goal>
                            </goals>
                            <configuration>
                                <release>8</release>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <profiles>
        <!-- This profile is manually activated by a property to include jdk-misc.jar in the base layer build. -->
        <profile>
            <id>include-jdk-misc</id>
            <activation>
                <file>
                    <exists>${basedir}/build-include-jdk-misc</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>fetch-jdk-misc</id>
                                <phase>generate-sources</phase>
                                <goals>
                                    <goal>get</goal>
                                    <goal>copy</goal>
                                </goals>
                                <configuration>
                                    <artifact>org.jboss:jdk-misc:${version.jdk-misc}</artifact>
                                    <outputDirectory>${project.build.directory}</outputDirectory>
                                    <stripVersion>true</stripVersion>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>default-compile</id>
                                <phase>compile</phase>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                                <configuration>
                                    <release>8</release>
                                    <additionalClasspathElements>
                                        <additionalClasspathElement>${project.build.directory}/jdk-misc.jar
                                        </additionalClasspathElement>
                                    </additionalClasspathElements>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- This profile is activated when Java 9 or later is used to test a project that supports Java 8 -->
        <profile>
            <id>java8-test</id>
            <activation>
                <jdk>[9,</jdk>
                <property>
                    <name>java8.home</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>java8-test</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                                <configuration>
                                    <jvm>${java8.home}/bin/java</jvm>
                                    <additionalClasspathElements>
                                        <additionalClasspathElement>${java8.home}/lib/tools.jar</additionalClasspathElement>
                                    </additionalClasspathElements>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- This profile is activated when Java 9 or later is used to build -->
        <profile>
            <id>java9-mr-build</id>
            <activation>
                <jdk>[9,</jdk>
                <file>
                    <exists>${basedir}/src/main/java9</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>compile-java9</id>
                                <phase>compile</phase>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                                <configuration>
                                    <release>9</release>
                                    <buildDirectory>${project.build.directory}</buildDirectory>
                                    <compileSourceRoots>${project.basedir}/src/main/java9</compileSourceRoots>
                                    <outputDirectory>${project.build.directory}/classes/META-INF/versions/9
                                    </outputDirectory>
                                    <additionalClasspathElements>
                                        <additionalClasspathElement>${project.build.outputDirectory}
                                        </additionalClasspathElement>
                                    </additionalClasspathElements>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-jar-plugin</artifactId>
                        <configuration>
                            <archive>
                                <manifestEntries>
                                    <Multi-Release>true</Multi-Release>
                                </manifestEntries>
                            </archive>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- This profile is activated when Java 10 or later is used to test a project that supports Java 9 -->
        <profile>
            <id>java9-test</id>
            <activation>
                <jdk>[10,</jdk>
                <property>
                    <name>java9.home</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>java9-test</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                                <configuration>
                                    <jvm>${java9.home}/bin/java</jvm>
                                    <classesDirectory>${project.build.directory}/classes/META-INF/versions/9
                                    </classesDirectory>
                                    <additionalClasspathElements>
                                        <additionalClasspathElement>${project.build.outputDirectory}
                                        </additionalClasspathElement>
                                    </additionalClasspathElements>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- This profile is activated when Java 10 or later is used to build -->
        <profile>
            <id>java10-mr-build</id>
            <activation>
                <jdk>[10,</jdk>
                <file>
                    <exists>${basedir}/src/main/java10</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>compile-java10</id>
                                <phase>compile</phase>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                                <configuration>
                                    <release>10</release>
                                    <buildDirectory>${project.build.directory}</buildDirectory>
                                    <compileSourceRoots>${project.basedir}/src/main/java10</compileSourceRoots>
                                    <outputDirectory>${project.build.directory}/classes/META-INF/versions/10
                                    </outputDirectory>
                                    <additionalClasspathElements>
                                        <additionalClasspathElement>
                                            ${project.build.directory}/classes/META-INF/versions/9
                                        </additionalClasspathElement>
                                        <additionalClasspathElement>${project.build.outputDirectory}
                                        </additionalClasspathElement>
                                    </additionalClasspathElements>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-jar-plugin</artifactId>
                        <configuration>
                            <archive>
                                <manifestEntries>
                                    <Multi-Release>true</Multi-Release>
                                </manifestEntries>
                            </archive>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- This profile is activated when Java 11 or later is used to test a project that supports Java 10 -->
        <profile>
            <id>java10-test</id>
            <activation>
                <jdk>[11,</jdk>
                <property>
                    <name>java10.home</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>java10-test</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                                <configuration>
                                    <jvm>${java10.home}/bin/java</jvm>
                                    <classesDirectory>${project.build.directory}/classes/META-INF/versions/10
                                    </classesDirectory>
                                    <additionalClasspathElements>
                                        <additionalClasspathElement>
                                            ${project.build.directory}/classes/META-INF/versions/9
                                        </additionalClasspathElement>
                                        <additionalClasspathElement>${project.build.outputDirectory}
                                        </additionalClasspathElement>
                                    </additionalClasspathElements>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- This profile is activated when Java 11 or later is used to build -->
        <profile>
            <id>java11-mr-build</id>
            <activation>
                <jdk>[11,</jdk>
                <file>
                    <exists>${basedir}/src/main/java11</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>compile-java11</id>
                                <phase>compile</phase>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                                <configuration>
                                    <release>11</release>
                                    <buildDirectory>${project.build.directory}</buildDirectory>
                                    <compileSourceRoots>${project.basedir}/src/main/java11</compileSourceRoots>
                                    <outputDirectory>${project.build.directory}/classes/META-INF/versions/11
                                    </outputDirectory>
                                    <additionalClasspathElements>
                                        <additionalClasspathElement>
                                            ${project.build.directory}/classes/META-INF/versions/10
                                        </additionalClasspathElement>
                                        <additionalClasspathElement>
                                            ${project.build.directory}/classes/META-INF/versions/9
                                        </additionalClasspathElement>
                                        <additionalClasspathElement>${project.build.outputDirectory}
                                        </additionalClasspathElement>
                                    </additionalClasspathElements>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-jar-plugin</artifactId>
                        <configuration>
                            <archive>
                                <manifestEntries>
                                    <Multi-Release>true</Multi-Release>
                                </manifestEntries>
                            </archive>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- This profile is activated when Java 12 or later is used to test a project that supports Java 11 -->
        <profile>
            <id>java11-test</id>
            <activation>
                <jdk>[12,</jdk>
                <property>
                    <name>java11.home</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>java11-test</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                                <configuration>
                                    <jvm>${java11.home}/bin/java</jvm>
                                    <classesDirectory>${project.build.directory}/classes/META-INF/versions/11
                                    </classesDirectory>
                                    <additionalClasspathElements>
                                        <additionalClasspathElement>
                                            ${project.build.directory}/classes/META-INF/versions/10
                                        </additionalClasspathElement>
                                        <additionalClasspathElement>
                                            ${project.build.directory}/classes/META-INF/versions/9
                                        </additionalClasspathElement>
                                        <additionalClasspathElement>${project.build.outputDirectory}
                                        </additionalClasspathElement>
                                    </additionalClasspathElements>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- This profile is activated when Java 12 or later is used to build -->
        <profile>
            <id>java12-mr-build</id>
            <activation>
                <jdk>[12,</jdk>
                <file>
                    <exists>${basedir}/src/main/java12</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>compile-java12</id>
                                <phase>compile</phase>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                                <configuration>
                                    <release>12</release>
                                    <buildDirectory>${project.build.directory}</buildDirectory>
                                    <compileSourceRoots>${project.basedir}/src/main/java12</compileSourceRoots>
                                    <outputDirectory>${project.build.directory}/classes/META-INF/versions/12
                                    </outputDirectory>
                                    <additionalClasspathElements>
                                        <additionalClasspathElement>
                                            ${project.build.directory}/classes/META-INF/versions/11
                                        </additionalClasspathElement>
                                        <additionalClasspathElement>
                                            ${project.build.directory}/classes/META-INF/versions/10
                                        </additionalClasspathElement>
                                        <additionalClasspathElement>
                                            ${project.build.directory}/classes/META-INF/versions/9
                                        </additionalClasspathElement>
                                        <additionalClasspathElement>${project.build.outputDirectory}
                                        </additionalClasspathElement>
                                    </additionalClasspathElements>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-jar-plugin</artifactId>
                        <configuration>
                            <archive>
                                <manifestEntries>
                                    <Multi-Release>true</Multi-Release>
                                </manifestEntries>
                            </archive>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

    </profiles>
</project>
