blob: 13d392c2d6cda1abab203c0ffc059379c5c43fb1 [file] [log] [blame]
/*
* 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.
*/
sourceSets {
jobs
unit1
unit2
}
def registerJarTask(SourceSet sourceSet, String baseName) {
tasks.register(sourceSet.jarTaskName, Jar) {
group = 'build'
archiveBaseName = baseName
archiveVersion = '1.0-SNAPSHOT'
from sourceSet.output
}
}
registerJarTask(sourceSets.jobs, 'ignite-integration-test-jobs')
registerJarTask(sourceSets.unit1, 'ignite-unit-test-job1')
registerJarTask(sourceSets.unit2, 'ignite-unit-test-job2')
processTestResources {
into('units/unit1') {
into('1.0.0') {
from unit1Jar
}
into('2.0.0') {
from unit2Jar
}
into('3.0.1') {
from unit1Jar
from unit2Jar
}
into('3.0.2') {
into('subdir') {
from unit2Jar
}
from unit1Jar
}
}
into('units/unit2') {
into('1.0.0') {
from unit1Jar
}
into('2.0.0') {
from unit2Jar
}
}
File corruptedJarFile = file("$destinationDir/units/unit1/4.0.0/unit1-1.0-corrupted.jar")
doLast {
// Generate a 100 bytes long file with random contents to simulate corrupted jar
byte[] randomBytes = new byte[100]
new Random().nextBytes(randomBytes)
corruptedJarFile.parentFile.mkdirs()
corruptedJarFile.bytes = randomBytes
}
}
processIntegrationTestResources {
into('units') {
from jobsJar
from unit1Jar
from unit2Jar
}
}
dependencies {
jobsImplementation project(':ignite-api')
unit1Implementation project(':ignite-api')
unit2Implementation project(':ignite-api')
integrationTestImplementation sourceSets.jobs.output
}