/*
 * 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.
 */
plugins {
    id 'org.apache.beam.module'
}

applyJavaNature(
        automaticModuleName: 'org.apache.beam.sdk.io.iceberg.bqms',
        shadowClosure: {},
        exportJavadoc: false,
        publish: false, // it's an intermediate jar for io-expansion-service
        validateShadowJar: false
)

def libDir = "$buildDir/libs"
def bqmsFileName = "iceberg-bqms-catalog-${iceberg_bqms_catalog_version}.jar"
task downloadBqmsJar(type: Copy) {
    // TODO: remove this workaround and downlooad normally when the catalog gets open-sourced:
    // (https://github.com/apache/iceberg/pull/11039)
    def jarUrl = "https://storage.googleapis.com/spark-lib/bigquery/iceberg-bigquery-catalog-${iceberg_bqms_catalog_version}.jar"
    def outputDir = file("$libDir")
    outputDir.mkdirs()
    def destFile = new File(outputDir, bqmsFileName)

    if (!destFile.exists()) {
        try {
            ant.get(src: jarUrl, dest: destFile)
            println "Successfully downloaded BQMS catalog jar: $destFile"
        } catch (Exception e) {
            println "Could not download $jarUrl: ${e.message}"
        }
    }
}

repositories {
    flatDir {
        dirs "$libDir"
    }
}

compileJava.dependsOn downloadBqmsJar

dependencies {
    implementation files("$libDir/$bqmsFileName")
}

description = "Apache Beam :: SDKs :: Java :: IO :: Iceberg :: BigQuery Metastore"
ext.summary = "A copy of the BQMS catalog."
