<?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.14.5-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-test-spring3</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-http</module>
    <module>camel-http4</module>
    <module>camel-jetty</module>
    <module>camel-cxf</module>
    <module>camel-cxf-transport</module>
    <module>camel-web-standalone</module>
    <module>camel-jms</module>

    <!-- regular modules in alphabetic order -->
    <module>camel-ahc</module>
    <module>camel-ahc-ws</module>
    <module>camel-amqp</module>
    <module>camel-apns</module>
    <module>camel-atmosphere-websocket</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-barcode</module>
    <module>camel-bindy</module>
    <module>camel-box</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-disruptor</module>
    <module>camel-dns</module>
    <module>camel-dozer</module>
    <module>camel-dropbox</module>
    <module>camel-eclipse</module>
    <module>camel-ejb</module>
    <module>camel-elasticsearch</module>
    <module>camel-eventadmin</module>
    <module>camel-exec</module>
    <module>camel-facebook</module>
    <module>camel-flatpack</module>
    <module>camel-fop</module>
    <module>camel-freemarker</module>
    <module>camel-ftp</module>
    <module>camel-gae</module>
    <module>camel-geocoder</module>
    <module>camel-google-drive</module>
    <module>camel-gora</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-hdfs2</module>
    <module>camel-hl7</module>
    <module>camel-ibatis</module>
    <module>camel-ical</module>
    <module>camel-infinispan</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-jgroups</module>
    <!-- camel-jibx doesn't work under JDK8, but may be build without tests -->
    <module>camel-jibx</module>
    <module>camel-jing</module>
    <module>camel-jmx</module>
    <module>camel-josql</module>
    <module>camel-jpa</module>
    <module>camel-jsonpath</module>
    <module>camel-jsch</module>
    <module>camel-jt400</module>
    <module>camel-juel</module>
    <module>camel-jxpath</module>
    <module>camel-kafka</module>
    <module>camel-kestrel</module>
    <module>camel-krati</module>
    <module>camel-ldap</module>
    <module>camel-leveldb</module>
    <module>camel-linkedin</module>
    <module>camel-lucene</module>
    <module>camel-mail</module>
    <module>camel-metrics</module>
    <module>camel-mina</module>
    <module>camel-mina2</module>
    <module>camel-mongodb</module>
    <module>camel-mqtt</module>
    <module>camel-msv</module>
    <module>camel-mustache</module>
    <module>camel-mvel</module>
    <module>camel-mybatis</module>
    <module>camel-nagios</module>
    <module>camel-netty</module>
    <module>camel-netty4</module>
    <module>camel-netty-http</module>
    <module>camel-netty4-http</module>
    <module>camel-ognl</module>
    <module>camel-olingo2</module>
    <module>camel-openshift</module>
    <module>camel-optaplanner</module>
    <module>camel-paxlogging</module>
    <module>camel-printer</module>
    <module>camel-protobuf</module>
    <module>camel-quartz</module>
    <module>camel-quartz2</module>
    <module>camel-quickfix</module>
    <module>camel-rabbitmq</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-sap-netweaver</module>
    <module>camel-saxon</module>
    <module>camel-salesforce</module>
    <module>camel-schematron</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-spark-rest</module>
    <module>camel-splunk</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-stomp</module>
    <module>camel-stream</module>
    <module>camel-stringtemplate</module>
    <module>camel-syslog</module>
    <module>camel-swagger</module>
    <module>camel-tagsoup</module>
    <module>camel-twitter</module>
    <module>camel-urlrewrite</module>
    <module>camel-velocity</module>
    <module>camel-vertx</module>
    <module>camel-weather</module>
    <module>camel-web</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-yammer</module>
    <module>camel-zipfile</module>
    <module>camel-zookeeper</module>
  </modules>


  <build>
    <pluginManagement>
      <plugins>
        <!-- Eclipse m2e Lifecycle Management -->
        <plugin>
         <groupId>org.eclipse.m2e</groupId>
         <artifactId>lifecycle-mapping</artifactId>
         <version>${lifecycle-mapping-version}</version>
         <configuration>
           <lifecycleMappingMetadata>
             <pluginExecutions>
               <pluginExecution>
                 <pluginExecutionFilter>
                   <groupId>org.apache.camel</groupId>
                   <artifactId>camel-package-maven-plugin</artifactId>
                   <versionRange>${project.version}</versionRange>
                   <goals>
                     <goal>generate-components-list</goal>
                   </goals>
                 </pluginExecutionFilter>
                 <action>
                   <ignore />
                 </action>
               </pluginExecution>
             </pluginExecutions>
           </lifecycleMappingMetadata>
         </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <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>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-package-maven-plugin</artifactId>
        <version>${project.version}</version>
      </plugin>
    </plugins>
  </reporting>

  <profiles>
    <!-- enables the APT dependency so that it can be disabled in IDE builds -->
    <profile>
      <id>apt</id>
      <activation>
        <property>
            <name>!dummy.prop.to.keep.this.profile.active.even.when.other.profiles.are.active</name>
        </property>
      </activation>

      <dependencies>
        <!-- enable the APT processor -->
        <dependency>
          <groupId>org.apache.camel</groupId>
          <artifactId>apt</artifactId>
          <version>${project.version}</version>
          <scope>provided</scope>
        </dependency>
      </dependencies>
    </profile>
  </profiles>
</project>
