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

  <parent>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-parent</artifactId>
    <version>2.11.1-SNAPSHOT</version>
    <relativePath>../parent</relativePath>
  </parent>

  <artifactId>components</artifactId>
  <name>Camel :: Components</name>
  <description>Camel Components</description>
  <packaging>pom</packaging>

  <modules>
	<!-- we want to test these modules first to catch any errors early as possible -->
    <module>camel-test</module>
    <module>camel-testng</module>
    <module>camel-test-blueprint</module>
    <module>camel-test-spring</module>
    <module>camel-core-osgi</module>
    <module>camel-core-xml</module>
    <module>camel-blueprint</module>
    <module>camel-spring</module>
    <module>camel-bam</module>
    <module>camel-groovy</module>
    <module>camel-scala</module>
    <module>camel-scala29</module>
    <module>camel-http</module>
    <module>camel-http4</module>
    <module>camel-jetty</module>
    <module>camel-cxf</module>
    <module>camel-cxf-transport</module>
    <module>camel-web</module>
    <module>camel-web-standalone</module>
    <module>camel-jms</module>

    <!-- regular modules in alphabetic order -->
    <module>camel-ahc</module>
    <module>camel-amqp</module>
    <module>camel-apns</module>
    <module>camel-atom</module>
    <module>camel-avro</module>  
    <module>camel-aws</module>
    <module>camel-base64</module>
    <module>camel-beanio</module>
    <module>camel-bean-validator</module>
    <module>camel-bindy</module>
    <module>camel-cache</module>
    <module>camel-castor</module>
    <module>camel-cdi</module>
    <module>camel-cmis</module>
    <module>camel-cometd</module>
    <module>camel-context</module>
    <module>camel-couchdb</module>
    <module>camel-crypto</module>
    <module>camel-csv</module>
    <module>camel-dns</module>
    <module>camel-dozer</module>
    <module>camel-eclipse</module>
    <module>camel-ejb</module>
    <module>camel-elasticsearch</module>
    <module>camel-eventadmin</module>
    <module>camel-exec</module>
    <module>camel-flatpack</module>
    <module>camel-fop</module>
    <module>camel-freemarker</module>
    <module>camel-ftp</module>
    <module>camel-gae</module>
    <module>camel-gson</module>
    <module>camel-guava-eventbus</module>
    <module>camel-guice</module>
    <module>camel-hawtdb</module>
    <module>camel-hazelcast</module>
    <module>camel-hbase</module>
    <module>camel-hdfs</module>
    <module>camel-hl7</module>
    <module>camel-ibatis</module>
    <module>camel-ical</module>
    <module>camel-irc</module>
    <module>camel-jackson</module>
    <module>camel-javaspace</module>
    <module>camel-jaxb</module>
    <module>camel-jasypt</module>
    <module>camel-jclouds</module>
    <module>camel-jcr</module>
    <module>camel-jdbc</module>
    <module>camel-jibx</module>
    <module>camel-jing</module>
    <module>camel-jmx</module>
    <module>camel-josql</module>
    <module>camel-jpa</module>
    <module>camel-jsch</module>
    <module>camel-jt400</module>
    <module>camel-juel</module>
    <module>camel-jxpath</module>
    <module>camel-kestrel</module>
    <module>camel-krati</module>
    <module>camel-ldap</module>
    <module>camel-leveldb</module>
    <module>camel-lucene</module>
    <module>camel-mail</module>
    <module>camel-mina</module>
    <module>camel-mina2</module>
    <module>camel-mongodb</module>
    <module>camel-mqtt</module>
    <module>camel-msv</module>
    <module>camel-mvel</module>
    <module>camel-mybatis</module>
    <module>camel-nagios</module>
    <module>camel-netty</module>
    <module>camel-ognl</module>
    <module>camel-paxlogging</module>
    <module>camel-printer</module>
    <module>camel-protobuf</module>
    <module>camel-quartz</module>
    <module>camel-quickfix</module>
    <module>camel-restlet</module>
    <module>camel-rmi</module>
    <module>camel-routebox</module>
    <module>camel-rss</module>
    <module>camel-ruby</module>
    <module>camel-rx</module>
    <module>camel-saxon</module>
    <module>camel-script</module>
    <module>camel-servlet</module>
    <module>camel-servletlistener</module>
    <module>camel-shiro</module>
    <module>camel-sip</module>
    <module>camel-smpp</module>
    <module>camel-snmp</module>
    <module>camel-sjms</module>
    <module>camel-soap</module>
    <module>camel-solr</module>
    <module>camel-spring-batch</module>
    <module>camel-spring-javaconfig</module>
    <module>camel-spring-integration</module>
    <module>camel-spring-ldap</module>
    <module>camel-spring-redis</module>
    <module>camel-spring-security</module>
    <module>camel-spring-ws</module>
    <module>camel-sql</module>
    <module>camel-ssh</module>
    <module>camel-stax</module>
    <module>camel-stream</module>
    <module>camel-stringtemplate</module>
    <module>camel-syslog</module>
    <module>camel-tagsoup</module>
    <module>camel-twitter</module>
    <module>camel-urlrewrite</module>
    <module>camel-velocity</module>
    <module>camel-websocket</module>
    <module>camel-xmlbeans</module>
    <module>camel-xmljson</module>
    <module>camel-xmlrpc</module>
    <module>camel-xmlsecurity</module>
    <module>camel-xmpp</module>
    <module>camel-xstream</module>
    <module>camel-zipfile</module>
    <module>camel-zookeeper</module>
  </modules>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-package-maven-plugin</artifactId>
        <version>${project.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>generate-components-list</goal>
            </goals>
            <phase>generate-resources</phase>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
