- Upgrade commons-compress to 1.24.0 due to CVE-2023-42503
- Built using Avro 1.11.3
- Built using Avro 1.11.2
- Fix vulnerabilities in transitive dependencies (contribution from BlacCello); see davidmc24#229
- Support for using conversions and type factories located outside of build classpath (contribution from erdi); see davidmc24#228
- Add support for configuring classpath for
GenerateAvroJavaTask
(thanks to crtlib); see davidmc24#222 - Drop compatibility testing for old versions of Java (9, 10, 12, 13, 14, 15, 16)
- Built using Gradle 7.6
- Updated compatibility testing through Gradle 7.6
- Updated compatibility testing through Java 19
- Added support for
additionalVelocityTool
thanks to a contribution from dcracauer; see davidmc24#211 - Built using Avro 1.11.1
- Built using Gradle 7.5.1
- Updated compatibility testing through Gradle 7.5.1
- Updated compatibility testing through Java 18
- Drop support for Kotlin plugin integration
- Built using Avro 1.11.0
- Dropped support for Avro 1.9.0-1.10.2 due to use of new SpecificRecordBuilderBase constructor in Avro 1.11.0
- Default field visibility is now "PRIVATE" to match Avro's new default, as "PUBLIC_DEPRECATED" is no longer supported in Avro 1.11.0
- Built using Gradle 7.3
- Updated compatibility testing through Gradle 7.3
- Updated compatibility testing through Kotlin 1.5.31
- Added compatibility with Java 17
GenerateAvroProtocolTask
now has a debug log to output its classpathGenerateAvroProtocolTask
will no longer delegate to the system classloader
- Built using Gradle 7.1.1
- Updated compatibility testing through Gradle 7.1.1
- When
sourcesJar
is used, declares dependency onGenerateAvroJavaTask
s to avoid disabling execution optimizations introduced in Gradle 7.1. (see #167)
- Avro 1.9.0-1.9.2 is supported again (no changed needed; just change in support policy and testing)
generateAvroProtocol
task fails if avpr file will get overwritten (due to multiple IDL files using the same namespace and protocol)
- Built using Avro 1.10.2
- Built using Gradle 7.0-rc-1
- Updated compatibility testing through Gradle 6.8.3/7.0-rc-1
- Updated compatibility testing through Kotlin 1.4.32
- Updated compatibility testing to include Java 16/17-ea
- Adopted Github Actions for compatibility testing
- Published to Maven Central (no longer published to JCenter)
- New plugin IDs:
com.github.davidmc24.gradle.plugin.avro
andcom.github.davidmc24.gradle.plugin.avro-base
- New package for tasks:
com.github.davidmc24.gradle.plugin.avro
These versions used a different publishing process. They use different coordinates/packages and may no longer be available in a traditional Maven repository. It is strongly recommended to upgrade to a newer version.
If you still need to use them, the artifacts can be downloaded from GitHub Releases or accessed via JitPack.
The plugin IDs are com.commercehub.gradle.plugin.avro
and com.commercehub.gradle.plugin.avro-base
, with all tasks in the package com.commercehub.gradle.plugin.avro
.
- Add Configuration Cache support (#129; thanks to dcabasson and eskatos)
- Add coverage reporting via JaCoco/Codecov to the plugin's build pipeline
- Add support for multiple IDL files with the same name in different directories (#123)
- The
.avpr
file generated byGenerateAvroProtocolTask
is now based on the namespace and name of the protocol, rather than the name of the.avdl
file.
- The
- Built using Avro 1.10.1
- Built using Gradle 6.7.1
- Updated compatibility testing to include Java 15
- Updated compatibility testing through Gradle 6.7.1
- Updated compatibility testing through Kotlin 1.4.20
Links:
- Built using Avro 1.10.0
- Drop support for Avro 1.9.X
- Removed support for
dateTimeLogicalType
; The behavior is now as if it were alwaysJSR-310
due to an upstream change - Add support for
optionalGettersForNullableFieldsOnly
- Apply @Classpath annotation to classpath on
GenerateAvroProtocolTask
Links:
- Built using Gradle 6.5
- Updated compatibility testing to include Java 14
- Updated compatibility testing through Gradle 6.5
- Add
ResolveAvroDependenciesTask
(#115)
Links:
- Fix schema dependency resolution when types are referenced with a
{ "type": NAME }
block rather than justNAME
(#107) - Eliminate
NullPointerException
handling in schema dependency resolution, as it no longer appears to be needed.
Links:
- Add support for Gradle 6.0-6.2.2 (#101)
- Drop support for Gradle versions prior to 5.1
- Update version of kotlin plugin in tests/example
- Built using Avro 1.9.2 (#104)
- Add support for Java 13
- Add support for testing multiple Kotlin versions
- Update plugin's own build to address some deprecation warnings of APIs being removed in Gradle 7
- Add tests for Kotlin DSL usage (#61)
- Support Task Configuration Avoidance (#97); thanks to dcabasson for the collaboration
- Upgrade Codenarc from 1.4 to 1.5
- Preliminary Java 14 support
Links:
- Use reproducible file order for plugin archives
- Eliminate usage of internal conventions API, using new Lazy Configuration approach instead; requires Gradle 4.4+
- Technically, the APIs needed are available in Gradle 4.3, but there is a bug related to un-set
Property
instances in 4.3 and 4.3.1; see gradle/gradle#3879
- Technically, the APIs needed are available in Gradle 4.3, but there is a bug related to un-set
- Cleaned up compatibility code for older versions of Gradle
- Built using Gradle 5.6.2
- Upgrade Spock from 1.2 to 1.3
- Upgrade Checkstyle from 6.1.1 to 8.23 and adjust rules used
- Upgrade Codenarc from 1.0 to 1.4 and adjust rules used
- Change source compatibility to 8
- Modernized for Java 8
- Built using Avro 1.9.1
- GenerateAvroProtocolTask now has a
classpath
property; defaults to the runtime configuration when the Avro plugin is applied - GenerateAvroProtocolTask now properly declares the
classpath
as an input; fixes #86; thanks to RichSteele for the bug report - Fix handling of default
outputCharacterEncoding
(use of system default character set to match Java compiler) - Add support for generating getters that return Optional (#90); contribution from bspeakmon
- Add support for
logicalTypeFactories
andcustomConversions
; fixes #92
Links:
- Built using Avro 1.9.0
- Removed configuration setting
validateDefaults
; defaults are now always validated due to an upstream change - Java 7 is no longer supported, as Avro 1.9.0 is now Java 8+
- Began testing using Java 12
Links:
- Built using Gradle 4.10.2
- Updated compatibility testing through Gradle 4.10.2
- Added support for the Gradle Build Cache (#48); contribution from dcabasson
- Upgrade Spock from 1.0 to 1.2
- Update plugin publishing mode to address Gradle 5.0 deprecation warning
Links:
- Fix "Boolean configuration cannot be set with boolean values from Kotlin DSL" (#60)
Links:
- Built using Gradle 4.9
- Updated compatibility testing through Gradle 4.9
- Began testing using Java 11
- Add support for generating schema files (#56)
- Fix bug where
GenerateAvroProtocolTask
can't be used without a runtime configuration
Links:
- Stop creating default generated output directories when
outputDir
is customized and IntelliJ integration is used (#52)
Links:
- Built using Gradle 4.6
- Updated compatibility testing through Gradle 4.6
- Began testing using Java 10
- Began testing using Kotlin 1.2.31
- Fixed infinite loop when a schema file contains multiple definitions of the same type (#47)
Links:
- Built using Gradle 4.5
- Updated compatibility testing through Gradle 4.5
- Support for validation of default values in schema (#42)
Links:
- Remove pre-cleaning behavior from
GenerateAvroJavaTask
(#41)
Links:
- Improve support for Kotlin (#36)
Links:
- Built using Gradle 4.2.1
- Began testing using Java 9
- Built using Avro 1.8.2
- Breaking backward compatibility with Avro versions older than 1.8.2
- Add new configuration option "enableDecimalLogicalType" to generate
BigDecimal
for fields annotated withlogicalType
equals todecimal
- Breaking backward compatibility caused by "enableDecimalLogicalType" default value set
true
.BigDecimal
will be used instead of old usage ofByteBuffer
Links:
- Drop support for Gradle 2.x
- As Gradle 3.0+ has a minimum Java version requiremenet of Java 7, drop support for Java 6
- Update source compatibility to Java 7
- Reduce access to utility methods not intended for re-use
- Stopped publishing to Gradle plugin portal
- Published to Bintray
- MapUtils class is no longer public
Links:
- Built using Gradle 4.1
- Updated versions for cross-compatibility testing
Links:
- Built using Avro 1.8.1 (#23)
- Built using Gradle 2.13
- Added version cross-compatibility testing
Links:
- Compatible at runtime with Gradle 5; no functional changes. Compiled with Gradle 5.6.
Links:
- Add support for Java 6 (#21)
Links:
- Remove usage of Apache Commons IO (#19)
- Add ability to retry processing of duplicate type definitions (#13)
- Renamed "encoding" option to "outputCharacterEncoding" to match Avro compiler
- Allowed setting "outputCharacterEncoding" to a
java.nio.charset.Charset
(in addition to aString
charset name) - Allowed setting "stringType" to a
org.apache.avro.generic.GenericData.StringType
(in addition to a String) - Allowed setting "fieldVisibility" to a
org.apache.avro.compiler.specific.SpecificCompiler.FieldVisibility
(in addition to a String) - Fixed handling of non-"true" String settings for "createSetters" option
- Automatically use encoding from
JavaCompile
task as "outputCharacterEncoding", if set - Change default "outputCharacterEncoding" to system default to match
JavaCompile
task behavior (#20)
Links:
- Add Checkstyle ImportControl to prevent accidentally adding dependencies on libraries that Gradle makes available for build but not runtime.
- Remove usage of Guava (#18)
Links:
- Add new configuration option "templateDirectory" to set source directory for the Avro compiler's Velocity templates.
- Add new configuration option "createSetters" to allow suppressing the Avro compiler's creation of setters in created domain objects.
- Matching of fieldVisibility settings is now case-insensitive.
- Removed some excessive debug logging
- Built against Gradle 2.7
- Added Checkstyle and Codenarc to build
- Known Bug: doesn't work properly unless you manually add a dependency on guava; please upgrade to 0.6.1
Links:
- Add support for schemas/protocols/IDL in subdirectories of
src/main/avro
, etc. (#11) - Expose original error messages from
avro-compiler
when compilation fails
Links:
- Add ability to specify fieldVisibility for generated Java source; contribution from wooder79
- Removed support for unqualified plugin ID (just "avro")
- Published via new mechanism to Gradle plugin portal
- Stopped publishing to previous location on Bintray
- Built against Gradle 2.6; uses test kit for functional testing
Links:
- Fix registration of generated sources for compilation (#8)
- Change classloader handling to better support import of external dependencies (#9)
Links:
- Fix generation of Java files from .avdl files; contribution from viacoban
Links:
- Improve handling when custom buildDir is used
Links:
- Fix extension support for configuring encoding
- Make default encoding UTF-8
Links:
- IntelliJ: register generated source directories even if they don't already exist.
- Add avro-base plugin, which exposes tasks and the extension without creating tasks, defaults, etc.
- Add support for configuring encoding
Links:
- Build against Gradle 1.12
- Compile using Avro 1.7.6
- Support for qualified plugin ID
- Deprecate unqualified plugin ID
Links:
- Always regenerate all Java classes when any schema file changes to avoid some classes having outdated schema information.
Links:
- Eliminate dependency on guava, make dependency on commons-io explicit
Links:
- Fixed NullPointerException when performing clean builds
Links:
- Add support for converting IDL files to JSON protocol declaration files
- Add support for generating Java classes from JSON protocol declaration files
- Add support for generating Java classes from JSON schema declaration files
- Add support for inter-dependent JSON schema declaration files
- Add support for tweaking source/exclude directories in IntelliJ
- Add support for specifying the string type to use in generated classes
Links: