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

    Copyright (c) 2011, 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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.glassfish.jersey</groupId>
        <artifactId>project</artifactId>
        <version>2.36-SNAPSHOT</version>
    </parent>

    <groupId>org.glassfish.jersey.ext</groupId>
    <artifactId>project</artifactId>
    <packaging>pom</packaging>
    <name>jersey-extensions</name>

    <description>
        Jersey extension modules providing utilities, filters as well as integrations
        with external frameworks (Guice, Spring, Freemarker, etc.) and languages
        (Scala, Groovy, etc.).

        NOTE: Jersey security extensions have their own dedicated security umbrella
        project.
    </description>

    <modules>
        <module>bean-validation</module>
        <module>cdi</module>
        <module>entity-filtering</module>
        <module>metainf-services</module>
        <module>mvc</module>
        <module>mvc-bean-validation</module>
        <module>mvc-freemarker</module>
        <module>mvc-jsp</module>
        <module>mvc-mustache</module>
        <module>proxy-client</module>
        <module>rx</module>
        <module>servlet-portability</module>
        <module>spring4</module>
        <module>spring5</module>
        <module>wadl-doclet</module>
        <module>microprofile</module>
    </modules>

    <dependencies>
        <dependency>
            <groupId>jakarta.ws.rs</groupId>
            <artifactId>jakarta.ws.rs-api</artifactId>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.inject</groupId>
            <artifactId>jersey-hk2</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
