<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements. See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership. The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License. You may obtain a copy of the License at
 
  http://www.apache.org/licenses/LICENSE-2.0
 
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied. See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<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>
    <artifactId>cxf-rt-rs</artifactId>
    <packaging>pom</packaging>
    <name>Apache CXF Rest Runtime</name>
    <description>Apache CXF Rest Runtime</description>
    <url>https://cxf.apache.org</url>
    <parent>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt</artifactId>
        <version>3.4.4</version>
    </parent>
    <modules>
        <module>client</module>
        <module>http-sci</module>
        <module>description</module>
        <module>description-swagger</module>
        <module>extensions/json-basic</module>
        <module>extensions/providers</module>
        <module>extensions/search</module>
        <module>extensions/rx</module>
        <module>extensions/rx2</module>
        <module>extensions/rx3</module>
        <module>extensions/reactor</module>
        <module>extensions/reactivestreams</module>
        <module>security</module>
        <module>sse</module>
        <module>description-openapi-v3</module>
        <module>description-microprofile-openapi</module>
        <module>description-swagger-ui</module>
        <module>microprofile-client</module>
        <module>description-common-openapi</module>
    </modules>
</project>
