Sineaggi commented on code in PR #3614:
URL: https://github.com/apache/avro/pull/3614#discussion_r2662359583
##########
lang/java/gradle-plugin/src/main/kotlin/eu/eventloopsoftware/avro/gradle/plugin/tasks/CompileSchemaTask.kt:
##########
@@ -0,0 +1,125 @@
+package eu.eventloopsoftware.avro.gradle.plugin.tasks
+
+import org.apache.avro.SchemaParseException
+import org.apache.avro.SchemaParser
+import org.apache.avro.compiler.specific.SpecificCompiler
+import org.apache.avro.compiler.specific.SpecificCompiler.FieldVisibility
+import org.apache.avro.generic.GenericData
+import org.gradle.api.file.FileTree
+import org.gradle.api.provider.Property
+import org.gradle.api.tasks.TaskAction
+import java.io.File
+import java.io.IOException
+import java.util.*
+
+abstract class CompileSchemaTask : AbstractCompileTask() {
+
+ @TaskAction
+ fun compileSchema() {
+ project.logger.info("Generating Java files from Avro schemas...")
+
+ if (!source.isEmpty) {
+ val sourceDirectoryFullPath =
getSourceDirectoryFullPath(sourceDirectory)
+ val outputDirectoryFullPath =
getBuildDirectoryFullPath(outputDirectory)
+ compileSchemas(source, sourceDirectoryFullPath,
outputDirectoryFullPath)
+ } else {
+ logger.warn("No Avro files found in $sourceDirectory. Nothing to
compile")
+ }
+
+ project.logger.info("Done generating Java files from Avro schemas...")
+ }
+
+
+ private fun getSourceDirectoryFullPath(directoryProperty:
Property<String>): File =
+ project.layout.projectDirectory.dir(directoryProperty.get()).asFile
Review Comment:
Calling project at runtime is soft-deprecated in Gradle 8, deprecated in
Gradle 9 and will be unsupported in Gradle 10.
https://docs.gradle.org/8.12.1/userguide/configuration_cache.html#config_cache:requirements:use_project_during_execution
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]