<?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</artifactId>
    <packaging>pom</packaging>
    <name>Apache CXF Runtime</name>
    <description>Apache CXF Runtime</description>
    <url>http://cxf.apache.org</url>
    <parent>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf</artifactId>
        <version>3.0.0-SNAPSHOT</version>
    </parent>
    <modules>
        <module>spring</module>
        <module>aries-blueprint</module>
        <module>wsdl</module>
        <module>transports/local</module>
        <module>databinding/jaxb</module>
        <module>databinding/xmlbeans</module>
        <module>databinding/aegis</module>
        <module>databinding/sdo</module>
        <module>databinding/jibx</module>
        <module>bindings</module>
        <module>features/clustering</module>
        <module>frontend/simple</module>
        <module>frontend/jaxws</module>
        <module>frontend/jaxrs</module>
        <module>frontend/js</module>
        <module>transports/http</module>
        <module>transports/http-jetty</module>
        <module>transports/http-hc</module>
        <module>transports/http-netty/netty-server</module>
        <module>transports/http-netty/netty-client</module>
        <module>transports/jms</module>
        <module>transports/udp</module>
        <module>transports/websocket</module>
        <module>ws/policy</module>
        <module>ws/addr</module>
        <module>ws/security</module>
        <module>ws/rm</module>
        <module>ws/mex</module>
        <module>ws/eventing</module>
        <module>rs/client</module>
        <module>rs/description</module>
        <module>rs/extensions/providers</module>
        <module>rs/extensions/search</module>
        <module>rs/security/xml</module>
        <module>rs/security/sso/saml</module>
        <module>rs/security/oauth-parent</module>
        <module>rs/security/cors</module>
        <module>management</module>
        <module>management-web</module>
        <module>javascript</module>
        <module>security</module>
    </modules>
</project>
