<?xml version="1.0" encoding="UTF-8"?>
<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">

    <!--

        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.
    -->

    <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
         !!!!!!                                !!!!!!
         !!!!!!    This pom is only provided   !!!!!!
         !!!!!!   for build convenience and    !!!!!!
         !!!!!!   should not be released       !!!!!!
         !!!!!!                                !!!!!!
         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache.servicemix</groupId>
        <artifactId>servicemix-pom</artifactId>
        <version>5</version>
    </parent>

    <groupId>org.apache.servicemix.bundles</groupId>
    <artifactId>org.apache.servicemix.bundles.pom</artifactId>
    <version>1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Apache ServiceMix :: Bundles</name>

    <modules>
        <!-- add modules for all bundles to released in the next batch here -->
        <module>digitalocean-api-client-2.9</module>
        <module>docker-java-3.0.9</module>
        <module>okhttp-3.7.0</module>
        <module>hystrix-1.5.11</module>
        <module>hystrix-event-stream-1.5.11</module>
        <module>elasticsearch-client-5.3.2</module>
        <module>spring-instrument-4.1.9.RELEASE</module>
        <module>spring-instrument-4.2.9.RELEASE</module>
        <module>spring-instrument-4.3.7.RELEASE</module>
        <module>grpc-1.2.0</module>
        <module>spring-security-config-4.2.2.RELEASE</module>
        <module>azure-keyvault-core-1.0.0</module>
        <module>spring-data-commons-1.13.3.RELEASE</module>
        <module>spring-aop-4.3.8.RELEASE</module>
        <module>spring-aspects-4.3.8.RELEASE</module>
        <module>spring-beans-4.3.8.RELEASE</module>
        <module>spring-context-4.3.8.RELEASE</module>
        <module>spring-context-support-4.3.8.RELEASE</module>
        <module>spring-core-4.3.8.RELEASE</module>
        <module>spring-expression-4.3.8.RELEASE</module>
        <module>spring-instrument-4.3.8.RELEASE</module>
        <module>spring-jdbc-4.3.8.RELEASE</module>
        <module>spring-jms-4.3.8.RELEASE</module>
        <module>spring-messaging-4.3.8.RELEASE</module>
        <module>spring-orm-4.3.8.RELEASE</module>
        <module>spring-oxm-4.3.8.RELEASE</module>
        <module>spring-test-4.3.8.RELEASE</module>
        <module>spring-tx-4.3.8.RELEASE</module>
        <module>spring-web-4.3.8.RELEASE</module>
        <module>spring-webmvc-4.3.8.RELEASE</module>
        <module>spring-webmvc-portlet-4.3.8.RELEASE</module>
        <module>spring-websocket-4.3.8.RELEASE</module>
        <module>batik-1.9</module>
        <module>quartz-2.3.0</module>
        <module>kafka-clients-0.10.2.1</module>
        <module>kafka_2.10-0.10.2.1</module>
        <module>gwt-servlet-2.8.1</module>
        <module>spring-integration-core-4.3.9.RELEASE</module>
        <module>lucene-6.5.1</module>
        <module>lucene-analyzers-common-6.5.1</module>
        <module>lucene-queries-6.5.1</module>
        <module>lucene-queryparser-6.5.1</module>
        <module>lucene-sandbox-6.5.1</module>
        <module>solr-solrj-6.5.1</module>
        <module>jasper-6.0.53</module>
        <module>libthrift-0.10.0</module>
        <module>snmp4j-2.5.6</module>
        <module>jt400-9.3</module>
        <module>mybatis-3.4.4</module>
        <module>elasticsearch-5.3.2</module>
        <module>poi-3.16</module>
        <module>xmlgraphics-commons-2.2</module>
        <module>hbase-1.3.1</module>
        <module>json4s-3.5.1</module>
        <module>libphonenumber-8.4.2</module>
        <module>gae-1.9.51</module>
        <module>facebook4j-2.4.9</module>
        <module>reflections-0.9.11</module>
        <module>aws-java-sdk-1.11.125</module>
        <module>ognl-3.2.1</module>
        <module>okio-1.12.0</module>
        <module>cglib-3.2.5</module>
        <module>spring-xml-2.4.0.RELEASE</module>
        <module>fop-2.2</module>
        <module>jsr305-3.0.2</module>
        <module>spring-security-ldap-4.2.2.RELEASE</module>
        <module>htmlunit-2.26</module>
        <module>saxon-9.7.0-18</module>
        <module>json4s_2.11-3.5.1</module>
    </modules>

</project>
