<?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/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>org.apache.camel.k</groupId>
        <artifactId>camel-k-runtime-project</artifactId>
        <version>1.7.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>

    <artifactId>camel-k-itests</artifactId>

    <modules>
        <module>camel-k-itests-core</module>

        <module>camel-k-itests-loader-groovy</module>
        <module>camel-k-itests-loader-kotlin</module>
        <module>camel-k-itests-loader-java</module>
        <module>camel-k-itests-loader-jsh</module>
        <module>camel-k-itests-loader-js</module>
        <module>camel-k-itests-loader-xml</module>
        <module>camel-k-itests-loader-yaml</module>
        <module>camel-k-itests-loader-polyglot</module>

        <module>camel-k-itests-runtime</module>
        <module>camel-k-itests-runtime-xml</module>
        <module>camel-k-itests-runtime-yaml</module>

        <module>camel-k-itests-cron</module>
        <module>camel-k-itests-master</module>
        <module>camel-k-itests-knative</module>
        <module>camel-k-itests-knative-env-from-registry</module>
        <module>camel-k-itests-knative-env-from-properties</module>
        <module>camel-k-itests-knative-producer</module>
        <module>camel-k-itests-knative-consumer</module>
        <module>camel-k-itests-knative-sinkbinding</module>
        <module>camel-k-itests-knative-source-groovy</module>
        <module>camel-k-itests-knative-source-java</module>
        <module>camel-k-itests-knative-source-js</module>
        <module>camel-k-itests-knative-source-xml</module>
        <module>camel-k-itests-knative-source-yaml</module>
        <module>camel-k-itests-kamelet</module>
        <module>camel-k-itests-kamelet-reify</module>
        <module>camel-k-itests-webhook</module>
    </modules>

</project>
