/*
 * 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 {
    alias(libs.plugins.shadow)
}

apply plugin: 'signing'
apply from: "$rootDir/buildscripts/publishing-repos.gradle"
apply from: "$rootDir/buildscripts/java-core.gradle"

description = 'migration-tools-ignite3-slim-repack'

dependencies {
    runtimeOnly project(":ignite-api")
    runtimeOnly project(":ignite-core")
    runtimeOnly project(":ignite-configuration")
    runtimeOnly project(":ignite-configuration-api")
    runtimeOnly project(":ignite-runner")
}

jar {
    dependsOn(tasks.shadowJar)
    enabled = false
}

shadowJar {
    archiveClassifier.set("")
    mergeServiceFiles()
    append 'META-INF/transferable.messages'
    dependencies {
        include(dependency(project.group + '::'))
    }
    exclude "ignite.properties"
    include(
        "*.jar",
        "org/apache/ignite/Ignite.class",
        "org/apache/ignite/table/IgniteTables.class",
        "org/apache/ignite/table/Table.class",
        "org/apache/ignite/table/Tuple.class",
        "org/apache/ignite/table/KeyValueView.class",
        "org/apache/ignite/table/DataStreamerTarget.class",
        "org/apache/ignite/table/manager/IgniteTables.class",
        "org/apache/ignite/table/mapper/Mapper.class",
        "org/apache/ignite/table/criteria/CriteriaQuerySource.class",
        "org/apache/ignite/table/ContinuousQuerySource.class",
        "org/apache/ignite/table/QualifiedName.class",
        "org/apache/ignite/compute/ComputeJob.class",
        "org/apache/ignite/compute/JobExecutionContext.class",
        "org/apache/ignite/tx/Transaction.class",
        "org/apache/ignite/marshalling/Marshaller.class",
        "org/apache/ignite/marshalling/UnsupportedObjectTypeMarshallingException.class",
        "org/apache/ignite/lang/ErrorGroup.class",
        "org/apache/ignite/lang/ErrorGroups.class",
        "org/apache/ignite/lang/IgniteException.class",
    )
}

publishing {
    publications {
        shadow(MavenPublication) {
            from components.shadow
        }
    }
}

signing {
    sign publishing.publications
}
