Important
The Rust SDK is moving to https://github.com/apache/avro-rs. Please use it for new issues and pull requests!
This repository contains a modified Java implementation of Apache Avro. It addresses the following 3 issues:
- The changes in this version allow for the serialization of java generics in supertypes, such as the example below:
class AbstractRecord<T> { T recordType; }
/**
* The template type will be lost on write-out and deserialization will fail without this change
* @param <Y> the concrete template type stored in {@link AbstractRecord#recordType}
*/
final class OutputRecord<Y> extends AbstractRecord<Y> {}- Support configuration of serialization field order via the
@AvroOrderannotation
final class OutputRecord {
@AvroOrder(Schema.Field.Order.ASCENDING)
final String outputField;
}- Prior to the introduction to the
@AvroAliasesannotation, support configuring multiple aliases via a single annotation. This feature has been removed for avro versions >= 1.10
@AvroAlias({"org.mitre.A", "org.mitre.B"})
final class OutputRecord {}Note: self-hosted ARM based java actions have been removed
- Update main with the latest Avro changes and rebase the forked changes
- Ensure you have the upstream avro fork as a git remote and fetch tags
git remote add fork-source https://github.com/apache/avro git fetch --tags fork-source
- Check out a new release branch from the relevant avro release tag
git checkout -b release/1.0.0-1.12.0 release-1.12.0 - Apply the most recent fork change to that branch
git cherry-pick <ref-from-main> - If adjusting the fork itself, bump the version in
lang/java/avro/pom.xmlto match the forked changes. Otherwise, you can rely on the project version itself. - Deploy the final jars from
lang/java/avromvn deploy -DskipTests -DaltDeploymentRepository=repository-id::repository-url - Push the release branch to remote
NOTICE
This work was produced for the U.S. Government under Contract 693KA8-22-C-00001 and is subject to Federal Aviation Administration Acquisition Management System Clause 3.5-13, Rights In Data-General (Oct. 2014), Alt. III and Alt. IV (Oct. 2009).
The contents of this document reflect the views of the author and The MITRE Corporation and do not necessarily reflect the views of the Federal Aviation Administration (FAA) or the Department of Transportation (DOT). Neither the FAA nor the DOT makes any warranty or guarantee, expressed or implied, concerning the content or accuracy of these views.
For further information, please contact The MITRE Corporation, Contracts Management Office, 7515 Colshire Drive, McLean, VA 22102-7539, (703) 983-6000.
© 2024 The MITRE Corporation. All Rights Reserved.
Approved for Public Release; Distribution Unlimited. Public Release Case Number 24-3517
Apache Avro™ is a data serialization system.
Learn more about Avro, please visit our website at:
To contribute to Avro, please read:
https://cwiki.apache.org/confluence/display/AVRO/How+To+Contribute
You can use devcontainers to develop Avro:
Apache®, Apache Avro and the Apache Avro airplane logo are trademarks of The Apache Software Foundation.
The Apache Avro airplane logo on this page has been designed by Emma Kellam for use by this project.