Sineaggi commented on code in PR #3614:
URL: https://github.com/apache/avro/pull/3614#discussion_r2662361111
##########
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:
This would be avoided by using `DirectoryProperty`s, which would already be
project-relative.
--
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]