mirror of
https://github.com/apache/airflow.git
synced 2026-11-04 07:12:48 +00:00
88 lines
2.7 KiB
Kotlin
88 lines
2.7 KiB
Kotlin
/*
|
|
* 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 {
|
|
`java-library`
|
|
id("airflow-jvm-conventions")
|
|
id("airflow-publish")
|
|
}
|
|
|
|
val slf4jVersion: String by project
|
|
|
|
abstract class GenerateConstants : DefaultTask() {
|
|
@get:Input
|
|
abstract val requestedSlf4jApiVersion: Property<String>
|
|
|
|
@get:OutputDirectory
|
|
abstract val outputDir: DirectoryProperty
|
|
|
|
@TaskAction
|
|
fun generate() =
|
|
outputDir.get().file("org/apache/airflow/sdk/slf4j/Constants.kt").asFile.apply {
|
|
parentFile.mkdirs()
|
|
writeText(
|
|
"""
|
|
// Generated by Gradle — do not edit.
|
|
package org.apache.airflow.sdk.slf4j
|
|
|
|
internal const val REQUESTED_SLF4J_API_VERSION = "${requestedSlf4jApiVersion.get()}"
|
|
""".trimIndent() + "\n",
|
|
)
|
|
}
|
|
}
|
|
|
|
val generateSlf4jApiVersion by tasks.registering(GenerateConstants::class) {
|
|
description = "Generate source for constants pulled from Gradle properties."
|
|
requestedSlf4jApiVersion = slf4jVersion
|
|
outputDir = layout.buildDirectory.dir("generated/sources/slf4jApiVersion/kotlin/main")
|
|
}
|
|
|
|
kotlin.sourceSets.main {
|
|
kotlin.srcDir(generateSlf4jApiVersion.map { it.outputs.files.singleFile })
|
|
}
|
|
|
|
dependencies {
|
|
api("org.slf4j:slf4j-api:$slf4jVersion")
|
|
implementation(project(":sdk"))
|
|
testImplementation(kotlin("test"))
|
|
testImplementation(testFixtures(project(":sdk")))
|
|
}
|
|
|
|
java {
|
|
withSourcesJar() // Required by Maven Central.
|
|
}
|
|
|
|
tasks.withType<Test> {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
create<MavenPublication>("mavenJava") {
|
|
artifactId = "airflow-sdk-slf4j"
|
|
from(components["java"])
|
|
pom {
|
|
name = "Apache Airflow Java SDK SLF4J Provider"
|
|
description = "SLF4J logging provider for the Apache Airflow Java SDK. " +
|
|
"Routes SLF4J log calls from task code through the SDK to Airflow's task log store."
|
|
}
|
|
}
|
|
}
|
|
}
|