<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--

    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-dependencies</artifactId>
        <version>4.3.0-SNAPSHOT</version>
    </parent>

    <groupId>org.apache.camel.example</groupId>
    <artifactId>camel-examples</artifactId>
    <version>4.3.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>Camel Examples</name>
    <description>Examples for Camel</description>
    <url>https://camel.apache.org</url>

    <developers>
        <developer>
            <name>The Apache Camel Team</name>
            <email>dev@camel.apache.org</email>
            <url>https://camel.apache.org</url>
            <organization>Apache Software Foundation</organization>
            <organizationUrl>http://apache.org/</organizationUrl>
        </developer>
    </developers>

    <mailingLists>
        <mailingList>
            <name>Development List</name>
            <subscribe>dev-subscribe@camel.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@camel.apache.org</unsubscribe>
            <post>dev@camel.apache.org</post>
        </mailingList>
        <mailingList>
            <name>User List</name>
            <subscribe>users-subscribe@camel.apache.org</subscribe>
            <unsubscribe>users-unsubscribe@camel.apache.org</unsubscribe>
            <post>users@camel.apache.org</post>
        </mailingList>
        <mailingList>
            <name>Commits List</name>
            <subscribe>commits-subscribe@camel.apache.org</subscribe>
            <unsubscribe>commits-unsubscribe@camel.apache.org</unsubscribe>
            <post>commits@camel.apache.org</post>
        </mailingList>
    </mailingLists>

    <issueManagement>
        <system>jira</system>
        <url>https://issues.apache.org/jira/browse/CAMEL</url>
    </issueManagement>

    <distributionManagement>
        <site>
            <id>apache.website</id>
            <url>${site-repo-url}</url>
        </site>
    </distributionManagement>

    <modules>
        <module>aggregate</module>
        <module>aggregate-dist</module>
        <module>as2</module>
        <module>aws</module>
        <module>azure</module>
        <module>basic</module>
        <module>billboard-aggregate</module>
        <module>bigxml-split</module>
        <module>cafe</module>
        <module>cafe-endpointdsl</module>
        <module>cassandra-kubernetes</module>
        <module>console</module>
        <module>couchbase-log</module>
        <module>csimple</module>
        <module>csimple-joor</module>
        <module>debezium</module>
        <module>debezium-eventhubs-blob</module>
        <module>flight-recorder</module>
        <module>ftp</module>
        <module>google</module>
        <module>hazelcast-kubernetes</module>
        <module>java8</module>
        <module>jdbc</module>
        <module>jmx</module>
        <module>jooq</module>
        <module>kafka</module>
        <module>kamelet</module>
        <module>kamelet-chucknorris</module>
        <module>kamelet-main</module>
        <module>kamelet-sql</module>
        <module>kotlin</module>
        <module>loadbalancing</module>
        <module>main</module>
        <module>main-endpointdsl</module>
        <module>main-health</module>
        <module>main-joor</module>
        <module>main-lambda</module>
        <module>main-micrometer</module>
        <module>main-tiny</module>
        <module>main-xml</module>
        <module>main-yaml</module>
        <module>mapstruct</module>
        <module>minio</module>
        <module>mongodb</module>
        <module>netty-custom-correlation</module>
        <module>oaipmh</module>
        <module>reactive-executor-vertx</module>
        <module>resume-api</module>
        <module>routeloader</module>
        <module>routetemplate</module>
        <module>routetemplate-xml</module>
        <module>routes-configuration</module>
        <module>salesforce-consumer</module>
        <module>splunk</module>
        <module>spring</module>
        <module>spring-pulsar</module>
        <module>spring-security</module>
        <module>spring-xquery</module>
        <module>telegram</module>
        <module>transformer-demo</module>
        <module>vault</module>
        <module>whatsapp</module>
    </modules>

    <properties>
        <!-- unify the encoding for all the modules -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <site-repo-url>scpexe://people.apache.org/www/camel.apache.org/maven/</site-repo-url>
        <jdk.version>17</jdk.version>
        <compiler.fork>false</compiler.fork>

        <camel.version>${project.version}</camel.version>

        <arquillian-version>1.7.0.Alpha10</arquillian-version>
        <arquillian-tomcat-version>1.2.0.Final</arquillian-tomcat-version>
        <arquillian-jetty-version>1.0.0.CR4</arquillian-jetty-version>
        <asciidoctorj-version>2.1.0</asciidoctorj-version>
        <cdi-api-1.2-version>1.2</cdi-api-1.2-version>
        <groovy-version>3.0.2</groovy-version>
        <pax-exam-version>4.13.2</pax-exam-version>
        <pax-url-aether>2.6.2</pax-url-aether>
        <jaxb-version>2.3.0</jaxb-version>
        <!-- These are not inherited from Camel via camel-dependencies -->
        <maven-compiler-plugin-version>3.11.0</maven-compiler-plugin-version>
        <maven-surefire-plugin-version>3.1.2</maven-surefire-plugin-version>
        <maven-javadoc-plugin-version>3.5.0</maven-javadoc-plugin-version>
        <maven-release-plugin-version>3.0.1</maven-release-plugin-version>
        <flatten-maven-plugin-version>1.5.0</flatten-maven-plugin-version>
        <metrics-cdi-version>1.3.3</metrics-cdi-version>
        <mycila-license-version>3.0</mycila-license-version>
        <pax-cdi-version>1.0.0</pax-cdi-version>
        <surefire.version>${maven-surefire-plugin-version}</surefire.version>
        <tomcat-version>10.1.13</tomcat-version>
        <jkube-version>1.14.0</jkube-version>
        <wsdl4j-version>1.6.3</wsdl4j-version>
        <fabric8-maven-plugin-version>4.4.1</fabric8-maven-plugin-version>
    </properties>

    <repositories>
        <repository>
            <id>apache.snapshots</id>
            <url>https://repository.apache.org/snapshots/</url>
            <name>Apache Snapshot Repo</name>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>apache.snapshots</id>
            <url>https://repository.apache.org/snapshots/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>

            <!-- update readme file -->
            <plugin>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-package-maven-plugin</artifactId>
                <version>${camel.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>prepare-example</goal>
                        </goals>
                        <phase>process-resources</phase>
                    </execution>
                </executions>
            </plugin>

            <!-- to validate Camel endpoints: mvn camel-report:validate -->
            <plugin>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-report-maven-plugin</artifactId>
                <version>${camel.version}</version>
                <configuration>
                    <failOnError>false</failOnError>
                    <includeTest>true</includeTest>
                    <includeXml>true</includeXml>
                    <ignoreLenientProperties>false</ignoreLenientProperties>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <forkCount>1</forkCount>
                    <reuseForks>false</reuseForks>
                    <systemPropertyVariables>
                        <skipStartingCamelContext>${skip.starting.camel.context}</skipStartingCamelContext>
                    </systemPropertyVariables>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin-version}</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                    <maxmem>512M</maxmem>
                    <fork>${compiler.fork}</fork>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <attach>true</attach>
                    <source>${jdk.version}</source>
                    <quiet>true</quiet>
                    <bottom>Apache Camel</bottom>
                    <detectOfflineLinks>false</detectOfflineLinks>
                    <javadocVersion>1.8.0</javadocVersion>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${maven-javadoc-plugin-version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-eclipse-plugin</artifactId>
                    <version>2.10</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.camel</groupId>
                            <artifactId>camel-buildtools</artifactId>
                            <version>${camel.version}</version>
                        </dependency>
                    </dependencies>
                    <configuration>
                        <downloadSources>true</downloadSources>
                        <downloadJavadocs>false</downloadJavadocs>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <configuration>
                        <excludeSubProjects>false</excludeSubProjects>
                        <excludes>
                            <exclude>**/generated.txt</exclude>
                            <exclude>**/*.json</exclude>
                            <exclude>**/README</exclude>
                            <exclude>**/README.txt</exclude>
                            <exclude>**/README.md</exclude>
                            <exclude>**/ReadMe.md</exclude>
                            <exclude>**/resources/**/*.xsd</exclude>
                            <exclude>**/webapp/js/**/*</exclude>
                            <exclude>**/test/resources/**/*</exclude>
                            <exclude>**/test/data*/**/*</exclude>
                            <exclude>.gitignore</exclude>
                            <exclude>.git/**/*</exclude>
                            <exclude>**/*.adoc</exclude>
                            <exclude>**/*.adoc.template</exclude>
                            <exclude>**/*.md</exclude>
                            <exclude>**/*.sh</exclude>
                            <exclude>**/*.bat</exclude>
                            <exclude>**/java9-maven-settings</exclude>
                            <exclude>**/*.pfx</exclude>
                            <!-- tooling json-simple parser -->
                            <exclude>**/src/main/java/org/json/simple/**</exclude>
                            <!-- tooling/camel-manual/src/styles/print.css use a different license -->
                            <exclude>**/src/styles/print.css</exclude>
                            <!-- tooling for component docs -->
                            <exclude>**/component-header.mvel</exclude>
                            <exclude>**/component-options.mvel</exclude>
                            <exclude>**/endpoint-options.mvel</exclude>
                            <exclude>**/dataformat-options.mvel</exclude>
                            <exclude>**/eip-options.mvel</exclude>
                            <exclude>**/language-options.mvel</exclude>
                            <exclude>**/website-components-list.mvel</exclude>
                            <exclude>**/website-languages-list.mvel</exclude>
                            <exclude>**/website-others-list.mvel</exclude>
                            <exclude>**/website-dataformats-list.mvel</exclude>
                            <exclude>**/readme-examples.mvel</exclude>
                            <exclude>**/spring-boot-auto-configure-options.mvel</exclude>
                            <exclude>**/camel-NOTICE.txt</exclude>
                            <exclude>**/spring-boot-starter-NOTICE.txt</exclude>
                            <!-- cxf does not handle comments here -->
                            <exclude>**/src/main/resources/META-INF/cxf/cxf.extension</exclude>
                            <exclude>**/src/main/resources/META-INF/cxf/bus-extensions.txt</exclude>
                            <!-- ignore the api signatures files -->
                            <exclude>**/src/signatures/*.txt</exclude>
                            <!-- camel-salesforce BSD license from salesforce developers -->
                            <exclude>**/CometDReplayExtension.java</exclude>
                            <exclude>**/LICENSE-SALESFORCE.txt</exclude>
                            <!-- camel-as2 -->
                            <exclude>**/mdnDescription.vm</exclude>
                            <!-- camel-jbpm -->
                            <exclude>**/src/main/resources/*.wid</exclude>
                            <!-- camel website and user-manual -->
                            <exclude>**/node/**</exclude>
                            <exclude>**/node_modules/**</exclude>
                            <exclude>**/user-manual/**</exclude>
                            <exclude>**/yarn.lock</exclude>
                            <!-- examples -->
                            <exclude>**/fabric8/*.yaml</exclude>
                            <exclude>**/src/main/data/*.patient</exclude>
                            <exclude>**/src/main/data/*.csv</exclude>
                            <exclude>**/src/main/resources/avro/*.avsc</exclude>
                            <!-- generated files -->
                            <exclude>**/target/**/*</exclude>
                            <exclude>**/eclipse-classes/**/*</exclude>
                            <exclude>**/.*</exclude>
                            <exclude>**/.settings/**/*</exclude>
                            <exclude>**/*.iml</exclude>
                            <exclude>**/.idea/**/*</exclude>
                            <exclude>**/avro/**/*.avpr</exclude>
                            <exclude>**/test_rsa*</exclude>
                            <exclude>**/data*/**/*.xml</exclude>
                            <exlucde>**/*.log</exlucde>
                            <exclude>**/id_file</exclude>
                            <exclude>**/dependency-reduced-pom.xml</exclude>
                            <exclude>**/Dropbox_API_Terms_and_Conditions.txt</exclude>
                            <exclude>**/MerchandiseRestResource.apxc</exclude>
                            <exclude>**/file-sig-api.txt</exclude>
                            <exclude>**/Tasks__c.java</exclude>
                            <exclude>**/*.proto</exclude>
                            <exclude>
                                **/src/main/resources/META-INF/services/org.kie.server.services.api.KieServerExtension
                            </exclude>
                            <!-- Maven Wrapper -->
                            <exclude>.mvn/**/*</exclude>
                        </excludes>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>${maven-release-plugin-version}</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.maven.scm</groupId>
                            <artifactId>maven-scm-provider-gitexe</artifactId>
                            <version>1.9</version>
                        </dependency>
                    </dependencies>
                    <configuration>
                        <localCheckout>true</localCheckout>
                        <pushChanges>true</pushChanges>
                        <tagNameFormat>@{project.artifactId}-@{project.version}</tagNameFormat>
                        <useReleaseProfile>false</useReleaseProfile>
                        <preparationGoals>clean install</preparationGoals>
                        <goals>deploy</goals>
                        <!-- The profile we want to use when doing the release -->
                        <arguments>-Prelease,apache-release,enable-schemagen,apt,sourcecheck,hibernate</arguments>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-remote-resources-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>process-resource-bundles</id>
                            <phase>disabled</phase>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>flatten-maven-plugin</artifactId>
                    <version>${flatten-maven-plugin-version}</version>
                    <executions>
                        <execution>
                            <id>default-cli</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>flatten</goal>
                            </goals>
                            <configuration>
                                <updatePomFile>true</updatePomFile>
                                <pomElements>
                                    <build>keep</build>
                                    <dependencyManagement>keep</dependencyManagement>
                                    <description>keep</description>
                                    <name>keep</name>
                                    <parent>expand</parent>
                                    <pluginManagement>keep</pluginManagement>
                                    <profiles>remove</profiles>
                                    <properties>keep</properties>
                                </pomElements>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <artifactId>maven-invoker-plugin</artifactId>
                    <configuration>
                        <skipInstallation>${invoker.skip}</skipInstallation>
                        <skipInvocation>${invoker.skip}</skipInvocation>
                        <mavenOpts>-Xmx64m -XshowSettings</mavenOpts>
                        <showVersion>true</showVersion>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>${exec-maven-plugin-version}</version>
                </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>
