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

    Copyright (c) 2019, 2021 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>project</artifactId>
        <groupId>org.glassfish.jersey.tests.integration</groupId>
        <version>2.34-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>

    <groupId>org.glassfish.jersey.tests.integration.cdi</groupId>
    <artifactId>cdi-integration-project</artifactId>
    <name>cdi-integration-project</name>
    <modules>
        <module>cdi-beanvalidation-webapp</module>
        <module>cdi-client</module>
        <module>cdi-client-on-server</module>
        <module>cdi-ejb-test-webapp</module>
        <module>cdi-iface-with-non-jaxrs-impl-test-webapp</module>
        <module>cdi-manually-bound</module>
        <module>cdi-log-check</module>
        <module>cdi-multimodule</module>
        <module>cdi-multipart-webapp</module>
        <module>cdi-test-webapp</module>
        <module>cdi-with-jersey-injection-custom-cfg-webapp</module>
        <module>cdi-with-jersey-injection-custom-hk2-banned-webapp</module>
        <module>cdi-with-jersey-injection-webapp</module>
    </modules>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <configuration>
                    <skip>false</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
