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

<!--
  ~ Copyright The WildFly Authors
  ~ SPDX-License-Identifier: Apache-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.wildfly.core</groupId>
        <artifactId>wildfly-core-parent</artifactId>
        <version>27.1.10.Final-redhat-00001</version>
    </parent>

    <artifactId>wildfly-logging</artifactId>

    <name>WildFly: Logging Subsystem</name>
    <properties>
        <surefire.argLine>${surefire.system.args}</surefire.argLine>
        <jboss.modules.dir>${project.build.directory}${file.separator}modules</jboss.modules.dir>
        <test.class.path>${project.build.testOutputDirectory}</test.class.path>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.wildfly.core</groupId>
                <artifactId>wildfly-core-testbom</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <testResources>
            <!-- Process default resources -->
            <testResource>
                <directory>src/test/resources</directory>
                <targetPath>${project.build.testOutputDirectory}</targetPath>
            </testResource>
            <!-- Process modules for a fake modular environment, this is used for custom-handler's, custom-formatter's
                 and filters.
             -->
            <testResource>
                <directory>src/test/modules</directory>
                <filtering>true</filtering>
                <targetPath>${jboss.modules.dir}</targetPath>
            </testResource>
        </testResources>
        <plugins>
            <!-- this is only needed on windows -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>properties</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <argLine>-javaagent:${org.jboss.byteman:byteman:jar}=port:${byteman.port},address:${byteman.host},boot:${org.jboss.byteman:byteman:jar} ${surefire.argLine}</argLine>
                    <systemPropertyVariables>
                        <!-- Configure a module directory as custom-handler's, custom-formatter's and filters require
                             a module to be used
                        -->
                        <jboss.modules.dir>${jboss.modules.dir}</jboss.modules.dir>
                        <module.path>${jboss.modules.dir}</module.path>
                        <maven.repo.local>${settings.localRepository}</maven.repo.local>
                        <jboss.server.log.dir>${project.build.directory}${file.separator}logs</jboss.server.log.dir>
                        <jboss.server.config.dir>${project.build.directory}${file.separator}config</jboss.server.config.dir>
                        <org.jboss.byteman.contrib.bmunit.agent.inhibit>true</org.jboss.byteman.contrib.bmunit.agent.inhibit>
                        <org.jboss.byteman.debug>true</org.jboss.byteman.debug>
                        <org.jboss.byteman.contrib.bmunit.agent.host>${byteman.host}</org.jboss.byteman.contrib.bmunit.agent.host>
                        <org.jboss.byteman.contrib.bmunit.agent.port>${byteman.port}</org.jboss.byteman.contrib.bmunit.agent.port>
                    </systemPropertyVariables>
                </configuration>
            </plugin>
        </plugins>

    </build>

    <dependencies>
        <dependency>
            <groupId>org.jboss</groupId>
            <artifactId>jboss-dmr</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.modules</groupId>
            <artifactId>jboss-modules</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss</groupId>
            <artifactId>staxmapper</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss</groupId>
            <artifactId>jboss-vfs</artifactId>
        </dependency>

        <dependency>
            <groupId>org.wildfly.core</groupId>
            <artifactId>wildfly-controller</artifactId>
        </dependency>

        <dependency>
            <groupId>org.wildfly.security</groupId>
            <artifactId>wildfly-elytron-security-manager</artifactId>
        </dependency>

        <dependency>
            <groupId>org.wildfly.core</groupId>
            <artifactId>wildfly-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging-annotations</artifactId>
            <!-- This is a compile-time dependency of this project, but is not needed at compile or runtime by other
                  projects that depend on this project.-->
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging-processor</artifactId>
            <!-- This is a compile-time dependency of this project, but is not needed at compile or runtime by other
                  projects that depend on this project.-->
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.jboss.logmanager</groupId>
            <artifactId>jboss-logmanager</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.msc</groupId>
            <artifactId>jboss-msc</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.stdio</groupId>
            <artifactId>jboss-stdio</artifactId>
        </dependency>

        <!-- Test dependencies -->

        <!-- Would be brought in transitively by wildfly-controller normally. Required for ParseUtils -->
        <dependency>
            <groupId>org.projectodd.vdx</groupId>
            <artifactId>vdx-core</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- JSONP API and IMPL -->
        <dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>jakarta.json</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.jboss.byteman</groupId>
            <artifactId>byteman</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.jboss.byteman</groupId>
            <artifactId>byteman-submit</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.jboss.byteman</groupId>
            <artifactId>byteman-install</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.jboss.byteman</groupId>
            <artifactId>byteman-bmunit</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.wildfly.core</groupId>
            <artifactId>wildfly-subsystem-test</artifactId>
            <type>pom</type>
            <scope>test</scope>
        </dependency>

    </dependencies>

    <profiles>
        <!-- profile is the same name as the test IPv6 profile for consistency and in case the profile is enabled via
        the profile name rather than the system property. -->
        <profile>
            <id>ts.ipv6</id>
            <activation>
                <property>
                    <name>ipv6</name>
                </property>
            </activation>
            <properties>
                <byteman.host>::1</byteman.host>
            </properties>
        </profile>
        <profile>
            <id>ibm-jdk</id>
            <activation>
                <property>
                    <name>java.vendor</name>
                    <value>IBM Corporation</value>
                </property>
            </activation>
            <properties>
                <surefire.argLine>-Xbootclasspath/a:${org.jboss.logmanager:jboss-logmanager} -Djava.util.logging.manager=org.jboss.logmanager.LogManager ${surefire.system.args}</surefire.argLine>
            </properties>
        </profile>
        <profile>
            <id>openj9</id>
            <activation>
                <property>
                    <name>java.vendor</name>
                    <value>Eclipse OpenJ9</value>
                </property>
            </activation>
            <properties>
                <surefire.argLine>-Xbootclasspath/a:${org.jboss.logmanager:jboss-logmanager} -Djava.util.logging.manager=org.jboss.logmanager.LogManager ${surefire.system.args}</surefire.argLine>
            </properties>
        </profile>
    </profiles>

</project>
