<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (c) 2026 Contributors to the Eclipse Foundation.
    Copyright (c) 2015, 2025 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

-->

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.glassfish.jersey.tests.integration</groupId>
        <artifactId>project</artifactId>
        <version>3.1.99-SNAPSHOT</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>

    <artifactId>ejb-multimodule-reload-ear</artifactId>
    <packaging>ear</packaging>
    <name>jersey-tests-integration-ejb-multimodule-reload-ear</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ear-plugin</artifactId>
                <configuration>
                    <version>6</version>
                    <defaultLibBundleDir>APP-INF/lib</defaultLibBundleDir>
                    <modules>
                        <webModule>
                            <groupId>org.glassfish.jersey.tests.integration</groupId>
                            <artifactId>ejb-multimodule-reload-war1</artifactId>
                        </webModule>
                        <webModule>
                            <groupId>org.glassfish.jersey.tests.integration</groupId>
                            <artifactId>ejb-multimodule-reload-war2</artifactId>
                        </webModule>
                        <ejbModule>
                            <groupId>org.glassfish.jersey.tests.integration</groupId>
                            <artifactId>ejb-multimodule-reload-lib</artifactId>
                        </ejbModule>
                    </modules>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey.tests.integration</groupId>
            <artifactId>ejb-multimodule-reload-war1</artifactId>
            <type>war</type>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.tests.integration</groupId>
            <artifactId>ejb-multimodule-reload-war2</artifactId>
            <type>war</type>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.tests.integration</groupId>
            <artifactId>ejb-multimodule-reload-lib</artifactId>
            <type>ejb</type>
            <version>${project.version}</version>
        </dependency>
    </dependencies>
</project>
