<?xml version="1.0" encoding="UTF-8"?>
<!--
~ JBoss, Home of Professional Open Source.
~ Copyright 2021 Red Hat, Inc., and individual contributors
~ as indicated by the @author tags.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~     http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->

<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.wildfly</groupId>
        <artifactId>wildfly-parent</artifactId>
        <!--
        Maintain separation between the artifact id and the version to help prevent
        merge conflicts between commits changing the GA and those changing the V.
        -->
        <version>27.0.0.Final</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>

    <artifactId>wildfly-ee-9-source-transform-parent</artifactId>
    <description>Parent for EE 9 Source Transformation related modules</description>
    <packaging>pom</packaging>

    <name>WildFly: EE 9 Source Transform parent</name>

    <properties>
        <!-- Directory from which source is obtained. Child modules will override this -->
        <transformer-input-dir>${project.basedir}</transformer-input-dir>
        <!-- Plugin dependency versions -->
        <version.org.wildfly.extras.batavia>1.0.15.Final</version.org.wildfly.extras.batavia>
    </properties>

    <modules>
        <module>bean-validation</module>
        <module>connector</module>
        <module>ee</module>
        <module>iiop-openjdk</module>
        <module>transactions</module>
        <module>rts</module>
        <module>jpa/spi</module>
        <module>jpa/eclipselink</module>
        <module>jpa/subsystem</module>
        <module>jsf</module>
        <module>microprofile</module>
        <module>shared</module>
        <module>web-common</module>
        <module>weld/bean-validation</module>
        <module>weld/common</module>
        <module>weld/jpa</module>
        <module>weld/spi</module>
        <module>weld/subsystem</module>
        <module>weld/transactions</module>
        <module>observability/opentelemetry-api</module>
        <module>observability/opentelemetry</module>
        <module>undertow</module>
        <module>messaging-activemq/injection</module>
        <module>messaging-activemq/subsystem</module>
    </modules>

    <dependencyManagement>
        <!--
        This module actually builds artifacts for standard WildFly, not Preview,
        so use the standard WildFly dependencies.

        Child modules that provide expansion capabilities can override

        TODO move this module out of the preview part of the source tree.
        -->
        <dependencies>
            <dependency>
                <groupId>${ee.maven.groupId}</groupId>
                <artifactId>wildfly-standard-ee-bom</artifactId>
                <version>${ee.maven.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <!-- Source transformation is vulnerable to leftover files in the target
                     folder from previous builds, so always clean even if the clean lifecycle is not invoked -->
                <artifactId>maven-clean-plugin</artifactId>
                <executions>
                    <execution>
                        <id>auto-clean</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.wildfly.extras.batavia</groupId>
                <artifactId>transformer-tools-mvn</artifactId>
                <version>${version.org.wildfly.extras.batavia}</version>
                <executions>
                    <execution>
                        <id>transform-sources</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>transform-sources</goal>
                        </goals>
                        <configuration>
                            <source-project>${transformer-input-dir}</source-project>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.wildfly.extras.batavia</groupId>
                        <artifactId>transformer-impl-eclipse</artifactId>
                        <version>${version.org.wildfly.extras.batavia}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

</project>
