<?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>
    <groupId>org.apache.cxf.systests</groupId>
    <artifactId>cxf-systests</artifactId>
    <packaging>pom</packaging>
    <name>Apache CXF System Tests</name>
    <description>Apache CXF System Tests</description>
    <url>https://cxf.apache.org</url>
    <parent>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf</artifactId>
        <version>4.0.0-SNAPSHOT</version>
    </parent>
    <modules>
        <module>container-integration</module>
        <module>uncategorized</module>
        <module>transports</module>
        <module>forked</module>
        <module>transport-undertow</module>
        <module>jaxws</module>
        <module>databinding</module>
        <module>ws-specs</module>
        <module>ws-rm</module>
        <module>ws-security</module>
        <module>ws-security-examples</module>
        <module>kerberos</module>
        <module>ldap</module>
        <module>rs-security</module>
        <module>wsdl_maven</module>
        <module>cdi</module>
        <module>rs-http-sci</module>
        <module>tracing</module>
        <module>ws-transfer</module>
        <module>rs-sse</module>
        <module>microprofile</module>
        <module>spring-boot</module>
        <module>transport-netty</module>
        <module>transport-hc5</module>
        <module>transport-jms</module>
    </modules>
    
    <profiles>
        <!-- TODO: This profile includes modules which are still on 'javax.*' namespace and
        are not migrated to Jakarta -->
        <profile>
            <id>javax</id>
            <modules>
                <module>jaxrs</module>
            </modules>
        </profile>
    </profiles>
</project>
