/*
 * 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 = 'Apache Ignite 3'
include(':ignite-page-memory')
include(':ignite-storage-api')
include(':ignite-network-annotation-processor')
include(':ignite-client')
include(':ignite-jdbc')
include(':ignite-rocksdb-common')
include(':ignite-file-io')
include(':ignite-vault')
include(':ignite-workers')
include(':ignite-rest')
include(':ignite-examples')
include(':ignite-dev-utilities')
include(':ignite-network')
include(':ignite-configuration-api')
include(':ignite-raft-api')
include(':ignite-raft')
include(':ignite-schema')
include(':ignite-storage-page-memory')
include(':ignite-transactions')
include(':ignite-client-common')
include(':ignite-network-api')
include(':ignite-cluster-management')
include(':ignite-cli')
include(':ignite-table')
include(':ignite-api')
include(':ignite-client-handler')
include(':ignite-sql-engine')
include(':ignite-marshaller-common')
include(':ignite-jacoco-report')
include(':ignite-configuration')
include(':ignite-configuration-presentation')
include(':ignite-core')
include(':ignite-affinity')
include(':ignite-bytecode')
include(':ignite-runner')
include(':ignite-index')
include(':ignite-metastorage-api')
include(':ignite-metastorage')
include(':ignite-rest-api')
include(':ignite-storage-rocksdb')
include(':ignite-configuration-annotation-processor')
include(':ignite-compute')
include(':ignite-metrics')
include(':ignite-binary-tuple')
include(':platforms')
include(':packaging-cli')
include(':packaging-db')
include(':packaging-odbc')
include(':packaging-java-client')
include(':packaging-cpp-client')
include(':packaging-dotnet-client')
include(':packaging')
include(':ignite-replicator')
include(':ignite-distribution-zones')
include(':ignite-placement-driver')
include(':ignite-placement-driver-api')
include(':ignite-code-deployment')
include(':ignite-security-api')
include(':ignite-security')
include(':ignite-catalog')
include(":ignite-arch-test")
include(":ignite-file-transfer")
include(":ignite-system-view")
include(":ignite-system-view-api")
include(":ignite-error-code-annotation-processor")
include(':ignite-failure-handler')
include(":ignite-catalog-dsl")
include(":ignite-eventlog")
include(":ignite-low-watermark")

project(":ignite-examples").projectDir = file('examples')
project(":ignite-dev-utilities").projectDir = file('dev-utilities')
project(":ignite-page-memory").projectDir = file('modules/page-memory')
project(":ignite-storage-api").projectDir = file('modules/storage-api')
project(":ignite-network-annotation-processor").projectDir = file('modules/network-annotation-processor')
project(":ignite-client").projectDir = file('modules/client')
project(":ignite-jdbc").projectDir = file('modules/jdbc')
project(":ignite-rocksdb-common").projectDir = file('modules/rocksdb-common')
project(":ignite-file-io").projectDir = file('modules/file-io')
project(":ignite-vault").projectDir = file('modules/vault')
project(":ignite-workers").projectDir = file('modules/workers')
project(":ignite-rest").projectDir = file('modules/rest')
project(":ignite-network").projectDir = file('modules/network')
project(":ignite-raft-api").projectDir = file('modules/raft-api')
project(":ignite-configuration-api").projectDir = file('modules/configuration-api')
project(":ignite-raft").projectDir = file('modules/raft')
project(":ignite-schema").projectDir = file('modules/schema')
project(":ignite-storage-page-memory").projectDir = file('modules/storage-page-memory')
project(":ignite-transactions").projectDir = file('modules/transactions')
project(":ignite-client-common").projectDir = file('modules/client-common')
project(":ignite-network-api").projectDir = file('modules/network-api')
project(":ignite-cluster-management").projectDir = file('modules/cluster-management')
project(":ignite-cli").projectDir = file('modules/cli')
project(":ignite-table").projectDir = file('modules/table')
project(":ignite-api").projectDir = file('modules/api')
project(":ignite-client-handler").projectDir = file('modules/client-handler')
project(":ignite-sql-engine").projectDir = file('modules/sql-engine')
project(":ignite-marshaller-common").projectDir = file('modules/marshaller-common')
project(":ignite-jacoco-report").projectDir = file('modules/jacoco-report')
project(":ignite-configuration").projectDir = file('modules/configuration')
project(":ignite-configuration-presentation").projectDir = file('modules/configuration-presentation')
project(":ignite-core").projectDir = file('modules/core')
project(":ignite-affinity").projectDir = file('modules/affinity')
project(":ignite-bytecode").projectDir = file('modules/bytecode')
project(":ignite-runner").projectDir = file('modules/runner')
project(":ignite-index").projectDir = file('modules/index')
project(":ignite-metastorage-api").projectDir = file('modules/metastorage-api')
project(":ignite-metastorage").projectDir = file('modules/metastorage')
project(":ignite-rest-api").projectDir = file('modules/rest-api')
project(":ignite-storage-rocksdb").projectDir = file('modules/storage-rocksdb')
project(":ignite-configuration-annotation-processor").projectDir = file('modules/configuration-annotation-processor')
project(":ignite-compute").projectDir = file('modules/compute')
project(":ignite-metrics").projectDir = file('modules/metrics')
project(":ignite-binary-tuple").projectDir = file('modules/binary-tuple')
project(":platforms").projectDir = file('modules/platforms')
project(":ignite-replicator").projectDir = file('modules/replicator')
project(":packaging-cli").projectDir = file('packaging/cli')
project(":packaging-db").projectDir = file('packaging/db')
project(':packaging-odbc').projectDir = file('packaging/odbc')
project(':packaging-java-client').projectDir = file('packaging/client/java')
project(':packaging-cpp-client').projectDir = file('packaging/client/cpp')
project(':packaging-dotnet-client').projectDir = file('packaging/client/dotnet')
project(":packaging").projectDir = file('packaging')
project(":ignite-distribution-zones").projectDir = file('modules/distribution-zones')
project(":ignite-placement-driver").projectDir = file('modules/placement-driver')
project(":ignite-placement-driver-api").projectDir = file('modules/placement-driver-api')
project(":ignite-code-deployment").projectDir = file('modules/code-deployment')
project(":ignite-security").projectDir = file('modules/security')
project(":ignite-security-api").projectDir = file('modules/security-api')
project(":ignite-catalog").projectDir = file('modules/catalog')
project(":ignite-arch-test").projectDir = file('modules/arch-test')
project(":ignite-file-transfer").projectDir = file('modules/file-transfer')
project(":ignite-system-view").projectDir = file('modules/system-view')
project(":ignite-system-view-api").projectDir = file('modules/system-view-api')
project(":ignite-error-code-annotation-processor").projectDir = file('modules/error-code-annotation-processor')
project(":ignite-failure-handler").projectDir = file('modules/failure-handler')
project(":ignite-catalog-dsl").projectDir = file('modules/catalog-dsl')
project(":ignite-eventlog").projectDir = file('modules/eventlog')
project(":ignite-low-watermark").projectDir = file('modules/low-watermark')

ext.isCiServer = System.getenv().containsKey("IGNITE_CI")

buildCache {
    local {
        enabled = !isCiServer
        push = !isCiServer
    }
    remote(HttpBuildCache) {
        enabled = isCiServer
        push = isCiServer
        url = System.getenv()["GRADLE_BUILD_CACHE_URI"] + "/cache/"
        allowInsecureProtocol = true
        credentials {
            username = System.getenv()["GRADLE_BUILD_CACHE_USERNAME"]
            password = System.getenv()["GRADLE_BUILD_CACHE_PASSWORD"]
        }
    }
}
