<?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.18.2</version>
    <relativePath>../parent</relativePath>
  </parent>

  <artifactId>examples</artifactId>
  <name>Camel :: Example</name>
  <description>Camel Examples</description>
  <packaging>pom</packaging>

  <modules>
    <module>camel-example-activemq-tomcat</module>
    <module>camel-example-aggregate</module>
    <module>camel-example-bam</module>
    <module>camel-example-box-osgi</module>
    <module>camel-example-cafe</module>
    <module>camel-example-cdi</module>
    <module>camel-example-cdi-cassandraql</module>
    <module>camel-example-cdi-kubernetes</module>
    <module>camel-example-cdi-metrics</module>
    <module>camel-example-cdi-osgi</module>
    <module>camel-example-cdi-properties</module>
    <module>camel-example-cdi-rest-servlet</module>
    <module>camel-example-cdi-test</module>
    <module>camel-example-cdi-xml</module>
    <module>camel-example-cxf</module>
    <module>camel-example-cxf-blueprint</module>
    <module>camel-example-cxf-osgi</module>
    <module>camel-example-cxf-proxy</module>
    <module>camel-example-cxf-tomcat</module>
    <module>camel-example-console</module>
    <module>camel-example-etl</module>
    <module>camel-example-ftp</module>
    <module>camel-example-guice-jms</module>
    <module>camel-example-hystrix</module>
    <module>camel-example-java8</module>
    <module>camel-example-java8-rx</module>
    <module>camel-example-jdbc</module>
    <module>camel-example-jmx</module>
    <module>camel-example-jms-file</module>
    <module>camel-example-loadbalancing</module>
    <module>camel-example-loan-broker</module>
    <module>camel-example-management</module>
    <module>camel-example-mybatis</module>
    <module>camel-example-netty-http</module>
    <module>camel-example-osgi-rmi</module>
    <module>camel-example-pojo-messaging</module>
    <module>camel-example-reportincident</module>
    <module>camel-example-reportincident-wssecurity</module>
    <module>camel-example-restlet-jdbc</module>
    <module>camel-example-route-throttling</module>
    <module>camel-example-servlet-rest-blueprint</module>
    <module>camel-example-servlet-tomcat</module>
    <module>camel-example-servlet-tomcat-no-spring</module>
    <module>camel-example-simplejirabot</module>
    <module>camel-example-spark-rest</module>
    <module>camel-example-splunk</module>
    <module>camel-example-spring</module>
    <module>camel-example-spring-boot</module>
    <module>camel-example-spring-boot-live-reload</module>
    <module>camel-example-spring-boot-metrics</module>
    <module>camel-example-spring-boot-rest-jpa</module>
    <module>camel-example-spring-boot-starter</module>
    <module>camel-example-spring-dm</module>
    <module>camel-example-spring-javaconfig</module>
    <module>camel-example-spring-jms</module>
    <module>camel-example-spring-ws</module>
    <module>camel-example-spring-xquery</module>
    <module>camel-example-spring-security</module>
    <module>camel-example-ssh</module>
    <module>camel-example-ssh-security</module>
    <module>camel-example-sql</module>
    <module>camel-example-sql-blueprint</module>
    <module>camel-example-swagger-cdi</module>
    <module>camel-example-swagger-osgi</module>
    <module>camel-example-swagger-xml</module>
    <module>camel-example-tracer</module>
    <module>camel-example-twitter-websocket</module>
    <module>camel-example-twitter-websocket-blueprint</module>
    <module>camel-example-widget-gadget-cdi</module>
    <module>camel-example-widget-gadget-java</module>
    <module>camel-example-widget-gadget-xml</module>
    <module>camel-example-zipkin</module>
  </modules>

  <properties>
    <!-- for symbolicName in OSGi examples we only want the artifactId, eg camel-example-sql -->
    <!-- as having org.apache.camel as prefix is not needed and makes the name very long -->
    <camel.osgi.symbolic.name>${project.artifactId}</camel.osgi.symbolic.name>
    <skip.starting.camel.context>false</skip.starting.camel.context>
    <camel.osgi.export.pkg />
  </properties>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <phase>process-resources</phase>
            <goals>
              <goal>resources</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <forkCount>1</forkCount>
          <reuseForks>false</reuseForks>
          <systemPropertyVariables>
            <skipStartingCamelContext>${skip.starting.camel.context}</skipStartingCamelContext>
          </systemPropertyVariables>
        </configuration>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <versionRange>[2.3.7,)</versionRange>
                    <goals>
                      <goal>cleanVersions</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <profiles>
    <profile>
      <id>container-test</id>
      <properties>
        <skip.starting.camel.context>true</skip.starting.camel.context>
      </properties>
    </profile>
    <!-- 
      This profile allows you to add a repository to the repo list so that 
      you can test the examples out against a staged version of the camel distribution 
    -->
    <profile>
      <id>add-remote-repo</id>
      <activation>
        <property>
          <name>remoteRepo</name>
        </property>
      </activation>

      <repositories>
        <repository>
          <id>dynamic.repo</id>
          <name>Repository Dynamically Added Via the Command Line</name>
          <url>$remoteRepo</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>dynamic.repo</id>
          <name>Repository Dynamically Added Via the Command Line</name>
          <url>$remoteRepo</url>
        </pluginRepository>
      </pluginRepositories>

    </profile>
  </profiles>

</project>
