<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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">

    <parent>
        <groupId>com.mulesoft.connectors</groupId>
        <artifactId>mule4-connectors-parent</artifactId>
        <version>2.0.7</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mulesoft.connectors</groupId>
    <artifactId>mule-websockets-connector</artifactId>
    <version>1.0.4</version>
    <packaging>mule-extension</packaging>

    <name>Mule WebSockets Extension</name>

    <properties>
        <minVersion>4.2.2</minVersion>
        <muleHttpConnectorVersion>1.12.1</muleHttpConnectorVersion>
        <mule.file.connector.version>1.5.6</mule.file.connector.version>
        <mule.version>4.2.2</mule.version>
        <mule.service.http.api.version>4.2.2</mule.service.http.api.version>
        <!-- 10.0.0 drops jdk8 support https://jetty.org/download.html#version-history-->
        <jetty-version>9.4.58.v20250814</jetty-version>

        <licenseYear>2020</licenseYear>
        <awaitility.version>4.3.0</awaitility.version>

        <!-- Java 25-compatible MUnit/MTF tooling (RC line) -->
        <munit.version>3.7.1-rc1</munit.version>
        <mtf.tools.version>1.3.0-rc3</mtf.tools.version>
        <munit.extensions.maven.plugin.version>1.7.1-rc1</munit.extensions.maven.plugin.version>

        <maven.jar.plugin.version>3.5.1</maven.jar.plugin.version>
        <mule.module.javaee.version>4.8.15</mule.module.javaee.version>
        <javax.activation.version>1.2.0</javax.activation.version>
        <jaxb.api.version>2.3.1</jaxb.api.version>
        <jaxb.runtime.version>2.3.9</jaxb.runtime.version>
    </properties>

    <dependencies>
        <!-- Override inherited dependency: mule-module-javaee was removed in Mule 4.11.x -->
        <dependency>
            <groupId>org.mule.runtime</groupId>
            <artifactId>mule-module-javaee</artifactId>
            <version>${mule.module.javaee.version}</version>
            <scope>provided</scope>
        </dependency>
        <!-- javax.activation required for compilation against Mule 4.11.x (no longer bundled in JDK 11+) -->
        <dependency>
            <groupId>com.sun.activation</groupId>
            <artifactId>javax.activation</artifactId>
            <version>${javax.activation.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mule.runtime</groupId>
            <artifactId>mule-service-http-api</artifactId>
            <version>${mule.service.http.api.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mule.connectors</groupId>
            <artifactId>mule-http-connector</artifactId>
            <version>${muleHttpConnectorVersion}</version>
            <classifier>mule-plugin</classifier>
        </dependency>
        <dependency>
            <groupId>org.mule.sdk</groupId>
            <artifactId>mule-sdk-api</artifactId>
            <version>${mule.sdk.api.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mule.connectors</groupId>
            <artifactId>mule-file-connector</artifactId>
            <version>${mule.file.connector.version}</version>
            <classifier>mule-plugin</classifier>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty.websocket</groupId>
            <artifactId>websocket-api</artifactId>
            <version>${jetty-version}</version>
            <scope>test</scope>
        </dependency>
        <!-- To run websockets in embedded server -->
        <dependency>
            <groupId>org.eclipse.jetty.websocket</groupId>
            <artifactId>websocket-server</artifactId>
            <version>${jetty-version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>${jetty-version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-servlet</artifactId>
            <version>${jetty-version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.awaitility</groupId>
            <artifactId>awaitility</artifactId>
            <version>${awaitility.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>2.0.9</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito2</artifactId>
            <version>2.0.9</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>${maven.jar.plugin.version}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <annotationProcessorPaths combine.children="append">
                        <path>
                            <groupId>com.sun.activation</groupId>
                            <artifactId>javax.activation</artifactId>
                            <version>${javax.activation.version}</version>
                        </path>
                        <path>
                            <groupId>javax.xml.bind</groupId>
                            <artifactId>jaxb-api</artifactId>
                            <version>${jaxb.api.version}</version>
                        </path>
                        <path>
                            <groupId>org.glassfish.jaxb</groupId>
                            <artifactId>jaxb-runtime</artifactId>
                            <version>${jaxb.runtime.version}</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <configuration>
                    <ignoredUnusedDeclaredDependencies>
                        <ignoredUnusedDeclaredDependency>org.eclipse.jetty:jetty-servlet</ignoredUnusedDeclaredDependency>
                        <ignoredUnusedDeclaredDependency>org.powermock:powermock-module-junit4</ignoredUnusedDeclaredDependency>
                        <ignoredUnusedDeclaredDependency>org.powermock:powermock-api-mockito2</ignoredUnusedDeclaredDependency>
                        <ignoredUnusedDeclaredDependency>com.sun.activation:javax.activation</ignoredUnusedDeclaredDependency>
                        <ignoredUnusedDeclaredDependency>javax.activation:javax.activation-api</ignoredUnusedDeclaredDependency>
                    </ignoredUnusedDeclaredDependencies>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.mulesoft.munit</groupId>
                <artifactId>munit-extensions-maven-plugin</artifactId>
                <configuration>
                    <argLines>
                        <argLine>
                            -javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco.version}/org.jacoco.agent-${jacoco.version}-runtime.jar=destfile=${session.executionRootDirectory}/target/jacoco.exec
                        </argLine>
                    </argLines>
                    <runtimeConfiguration>
                        <discoverRuntimes>
                            <minMuleVersion>${minVersion}</minMuleVersion>
                            <includeSnapshots>false</includeSnapshots>
                            <product>EE</product>
                        </discoverRuntimes>
                    </runtimeConfiguration>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>default-config</id>
            <activation>
                <property>
                    <name>!mule.security.model</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.mulesoft.munit</groupId>
                        <artifactId>munit-extensions-maven-plugin</artifactId>
                        <configuration>
                            <systemPropertyVariables>
                                <tls.keystore.path>tls/clientServerKeystore</tls.keystore.path>
                                <tls.truststore.path>tls/trustStore</tls.truststore.path>
                                <tls.truststore.without.cert.path>tls/trustStoreWithoutMuleServerCertificate</tls.truststore.without.cert.path>
                            </systemPropertyVariables>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>fips-config</id>
            <activation>
                <property>
                    <name>mule.security.model</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.mulesoft.munit</groupId>
                        <artifactId>munit-extensions-maven-plugin</artifactId>
                        <configuration>
                            <systemPropertyVariables>
                                <tls.keystore.path>clientServerKeystore.bcfks</tls.keystore.path>
                                <tls.truststore.path>trustStore.bcfks</tls.truststore.path>
                                <tls.truststore.without.cert.path>trustStoreWithoutMuleServerCertificate.bcfks</tls.truststore.without.cert.path>
                            </systemPropertyVariables>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
