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

apply from: "$rootDir/buildscripts/java-core.gradle"
apply from: "$rootDir/buildscripts/publishing.gradle"
apply from: "$rootDir/buildscripts/java-junit5.gradle"

description = 'migration-tools-commons-tests'

configurations {
    unpackDependencies { transitive = false}
}

dependencies {
    implementation project(path: ":migration-tools-ignite3-repack", configuration: "shadow")
    implementation libs.commons.lang3
    implementation libs.testcontainers.core
    implementation libs.testcontainers.junit
    implementation libs.assertj.core
    implementation libs.junit5.api
    implementation libs.log4j.api

    implementation files(layout.buildDirectory.dir("generated/unpackClassesFromDependencies"))

    unpackDependencies libs.ignite2.core
}

def unpackTask = tasks.register('unpackClassesFromDependencies', Copy) {
    includeEmptyDirs = false
    configurations.unpackDependencies.each { artifact ->
        from zipTree(artifact)
    }

    into layout.buildDirectory.dir("generated/$name")
    include "org/apache/ignite/cache/affinity/AffinityKey.class",
            "org/apache/ignite/cache/affinity/AffinityKeyMapped.class",
            "org/apache/ignite/binary/Binarylizable.class",
            "org/apache/ignite/cache/query/annotations/QuerySqlField.class",
            "org/apache/ignite/cache/query/annotations/QuerySqlField\$Group.class"
}

compileJava {
    dependsOn unpackTask
}

/*sourceSets {
    main {
        java {
            compi
        }
        compileClasspath  layout.buildDirectory.dir("classes/java/main")
    }
}*/
