/*
 * 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.
 */

rootProject.name = "beam"

include ":release"

include "beam-examples-java"
project(":beam-examples-java").dir = file("examples/java")
include "beam-model-fn-execution"
project(":beam-model-fn-execution").dir = file("model/fn-execution")
include "beam-model-job-management"
project(":beam-model-job-management").dir = file("model/job-management")
include "beam-model-pipeline"
project(":beam-model-pipeline").dir = file("model/pipeline")
include "beam-runners-apex"
project(":beam-runners-apex").dir = file("runners/apex")
include "beam-runners-core-construction-java"
project(":beam-runners-core-construction-java").dir = file("runners/core-construction-java")
include "beam-runners-core-java"
project(":beam-runners-core-java").dir = file("runners/core-java")
include "beam-runners-direct-java"
project(":beam-runners-direct-java").dir = file("runners/direct-java")
include "beam-runners-extensions-java-metrics"
project(":beam-runners-extensions-java-metrics").dir = file("runners/extensions-java/metrics")
include "beam-runners-flink_2.11"
project(":beam-runners-flink_2.11").dir = file("runners/flink")
include "beam-runners-flink_2.11-job-server"
project(":beam-runners-flink_2.11-job-server").dir = file("runners/flink/job-server")
include "beam-runners-flink_2.11-job-server-container"
project(":beam-runners-flink_2.11-job-server-container").dir = file("runners/flink/job-server-container")
include "beam-runners-gcp-gcemd"
project(":beam-runners-gcp-gcemd").dir = file("runners/gcp/gcemd")
include "beam-runners-gcp-gcsproxy"
project(":beam-runners-gcp-gcsproxy").dir = file("runners/gcp/gcsproxy")
include "beam-runners-gearpump"
project(":beam-runners-gearpump").dir = file("runners/gearpump")
include "beam-runners-google-cloud-dataflow-java"
project(":beam-runners-google-cloud-dataflow-java").dir = file("runners/google-cloud-dataflow-java")
include ":beam-runners-google-cloud-dataflow-java-examples"
project(":beam-runners-google-cloud-dataflow-java-examples").dir = file("runners/google-cloud-dataflow-java/examples")
include ":beam-runners-google-cloud-dataflow-java-examples-streaming"
project(":beam-runners-google-cloud-dataflow-java-examples-streaming").dir = file("runners/google-cloud-dataflow-java/examples-streaming")
include "beam-runners-java-fn-execution"
project(":beam-runners-java-fn-execution").dir = file("runners/java-fn-execution")
include "beam-runners-local-java-core"
project(":beam-runners-local-java-core").dir = file("runners/local-java")
include "beam-runners-reference-java"
project(":beam-runners-reference-java").dir = file("runners/reference/java")
include "beam-runners-spark"
project(":beam-runners-spark").dir = file("runners/spark")
include "beam-runners-samza"
project(":beam-runners-samza").dir = file("runners/samza")
include "beam-sdks-go"
project(":beam-sdks-go").dir = file("sdks/go")
include "beam-sdks-go-container"
project(":beam-sdks-go-container").dir = file("sdks/go/container")
include "beam-sdks-go-examples"
project(":beam-sdks-go-examples").dir = file("sdks/go/examples")
include "beam-sdks-go-test"
project(":beam-sdks-go-test").dir = file("sdks/go/test")
include "beam-sdks-java-build-tools"
project(":beam-sdks-java-build-tools").dir = file("sdks/java/build-tools")
include "beam-sdks-java-container"
project(":beam-sdks-java-container").dir = file("sdks/java/container")
include "beam-sdks-java-core"
project(":beam-sdks-java-core").dir = file("sdks/java/core")
include "beam-sdks-java-extensions-google-cloud-platform-core"
project(":beam-sdks-java-extensions-google-cloud-platform-core").dir = file("sdks/java/extensions/google-cloud-platform-core")
include "beam-sdks-java-extensions-json-jackson"
project(":beam-sdks-java-extensions-json-jackson").dir = file("sdks/java/extensions/jackson")
include "beam-sdks-java-extensions-join-library"
project(":beam-sdks-java-extensions-join-library").dir = file("sdks/java/extensions/join-library")
include "beam-sdks-java-extensions-protobuf"
project(":beam-sdks-java-extensions-protobuf").dir = file("sdks/java/extensions/protobuf")
include "beam-sdks-java-extensions-sketching"
project(":beam-sdks-java-extensions-sketching").dir = file("sdks/java/extensions/sketching")
include "beam-sdks-java-extensions-sorter"
project(":beam-sdks-java-extensions-sorter").dir = file("sdks/java/extensions/sorter")
include "beam-sdks-java-extensions-sql"
project(":beam-sdks-java-extensions-sql").dir = file("sdks/java/extensions/sql")
include "beam-sdks-java-extensions-sql-jdbc"
project(":beam-sdks-java-extensions-sql-jdbc").dir = file("sdks/java/extensions/sql/jdbc")
include "beam-sdks-java-extensions-sql-shell"
project(":beam-sdks-java-extensions-sql-shell").dir = file("sdks/java/extensions/sql/shell")
include "beam-sdks-java-fn-execution"
project(":beam-sdks-java-fn-execution").dir = file("sdks/java/fn-execution")
include "beam-sdks-java-harness"
project(":beam-sdks-java-harness").dir = file("sdks/java/harness")
include "beam-sdks-java-io-amazon-web-services"
project(":beam-sdks-java-io-amazon-web-services").dir = file("sdks/java/io/amazon-web-services")
include "beam-sdks-java-io-amqp"
project(":beam-sdks-java-io-amqp").dir = file("sdks/java/io/amqp")
include "beam-sdks-java-io-cassandra"
project(":beam-sdks-java-io-cassandra").dir = file("sdks/java/io/cassandra")
include "beam-sdks-java-io-common"
project(":beam-sdks-java-io-common").dir = file("sdks/java/io/common")
include "beam-sdks-java-io-elasticsearch"
project(":beam-sdks-java-io-elasticsearch").dir = file("sdks/java/io/elasticsearch")
include "beam-sdks-java-io-elasticsearch-tests-2"
project(":beam-sdks-java-io-elasticsearch-tests-2").dir = file("sdks/java/io/elasticsearch-tests/elasticsearch-tests-2")
include "beam-sdks-java-io-elasticsearch-tests-5"
project(":beam-sdks-java-io-elasticsearch-tests-5").dir = file("sdks/java/io/elasticsearch-tests/elasticsearch-tests-5")
include "beam-sdks-java-io-elasticsearch-tests-common"
project(":beam-sdks-java-io-elasticsearch-tests-common").dir = file("sdks/java/io/elasticsearch-tests/elasticsearch-tests-common")
include "beam-sdks-java-io-file-based-io-tests"
project(":beam-sdks-java-io-file-based-io-tests").dir = file("sdks/java/io/file-based-io-tests")
include "beam-sdks-java-io-google-cloud-platform"
project(":beam-sdks-java-io-google-cloud-platform").dir = file("sdks/java/io/google-cloud-platform")
include "beam-sdks-java-io-hadoop-common"
project(":beam-sdks-java-io-hadoop-common").dir = file("sdks/java/io/hadoop-common")
include "beam-sdks-java-io-hadoop-file-system"
project(":beam-sdks-java-io-hadoop-file-system").dir = file("sdks/java/io/hadoop-file-system")
include "beam-sdks-java-io-hadoop-input-format"
project(":beam-sdks-java-io-hadoop-input-format").dir = file("sdks/java/io/hadoop-input-format")
include "beam-sdks-java-io-hbase"
project(":beam-sdks-java-io-hbase").dir = file("sdks/java/io/hbase")
include "beam-sdks-java-io-hcatalog"
project(":beam-sdks-java-io-hcatalog").dir = file("sdks/java/io/hcatalog")
include "beam-sdks-java-io-jdbc"
project(":beam-sdks-java-io-jdbc").dir = file("sdks/java/io/jdbc")
include "beam-sdks-java-io-jms"
project(":beam-sdks-java-io-jms").dir = file("sdks/java/io/jms")
include "beam-sdks-java-io-kafka"
project(":beam-sdks-java-io-kafka").dir = file("sdks/java/io/kafka")
include "beam-sdks-java-io-kinesis"
project(":beam-sdks-java-io-kinesis").dir = file("sdks/java/io/kinesis")
include "beam-sdks-java-io-kudu"
project(":beam-sdks-java-io-kudu").dir = file("sdks/java/io/kudu")
include "beam-sdks-java-io-mongodb"
project(":beam-sdks-java-io-mongodb").dir = file("sdks/java/io/mongodb")
include "beam-sdks-java-io-mqtt"
project(":beam-sdks-java-io-mqtt").dir = file("sdks/java/io/mqtt")
include "beam-sdks-java-io-parquet"
project(":beam-sdks-java-io-parquet").dir = file("sdks/java/io/parquet")
include "beam-sdks-java-io-redis"
project(":beam-sdks-java-io-redis").dir = file("sdks/java/io/redis")
include "beam-sdks-java-io-solr"
project(":beam-sdks-java-io-solr").dir = file("sdks/java/io/solr")
include "beam-sdks-java-io-tika"
project(":beam-sdks-java-io-tika").dir = file("sdks/java/io/tika")
include "beam-sdks-java-io-xml"
project(":beam-sdks-java-io-xml").dir = file("sdks/java/io/xml")
include "beam-sdks-java-io-synthetic"
project(":beam-sdks-java-io-synthetic").dir = file("sdks/java/io/synthetic")
include "beam-sdks-java-javadoc"
project(":beam-sdks-java-javadoc").dir = file("sdks/java/javadoc")
include "beam-sdks-java-maven-archetypes-examples"
project(":beam-sdks-java-maven-archetypes-examples").dir = file("sdks/java/maven-archetypes/examples")
include "beam-sdks-java-maven-archetypes-starter"
project(":beam-sdks-java-maven-archetypes-starter").dir = file("sdks/java/maven-archetypes/starter")
include "beam-sdks-java-nexmark"
project(":beam-sdks-java-nexmark").dir = file("sdks/java/nexmark")
include "beam-sdks-python"
project(":beam-sdks-python").dir = file("sdks/python")
include "beam-sdks-python-container"
project(":beam-sdks-python-container").dir = file("sdks/python/container")
include "beam-vendor-sdks-java-extensions-protobuf"
project(":beam-vendor-sdks-java-extensions-protobuf").dir = file("vendor/sdks-java-extensions-protobuf")
