|
20 | 20 | Parquet Java (formerly Parquet MR) [](https://github.com/apache/parquet-java/actions) |
21 | 21 | ====== |
22 | 22 |
|
23 | | -This repository contains a Java implementation of [Apache Parquet](https://parquet.apache.org/) |
| 23 | +This repository contains a **modified** Java implementation of [Apache Parquet](https://parquet.apache.org/). The changes |
| 24 | +in this version allow for the serialization of Java generic supertypes in a collection, without the correct type |
| 25 | +being lost on read. |
| 26 | + |
| 27 | +See below for an example of this fix: |
| 28 | +```java |
| 29 | +class AbstractRecord<X> { TreeSet<X> recordSet; } |
| 30 | + |
| 31 | +/** |
| 32 | + * The template type will be lost on write-out and deserialization will fail without this change |
| 33 | + * @param <Y> the concrete template type stored in {@link AbstractRecord#recordSet} |
| 34 | + */ |
| 35 | +class OutputRecord<Y> extends AbstractRecord<Y> {} |
| 36 | +``` |
| 37 | + |
| 38 | +### Releasing new versions |
| 39 | + |
| 40 | +- Update main with the latest Parquet-java changes and rebase the forked changes |
| 41 | +- Ensure you have the upstream parquet fork as a git remote and fetch tags |
| 42 | + ```shell |
| 43 | + git remote add fork-source https://github.com/apache/parquet-java |
| 44 | + git fetch --tags fork-source |
| 45 | + ``` |
| 46 | +- Check out a new release branch from the relevant avro release tag |
| 47 | + `git checkout -b release/1.0.0-1.15.0 apache-parquet-1.15.0` |
| 48 | +- Apply the most recent fork change to that branch |
| 49 | + `git cherry-pick <ref-from-main>` |
| 50 | +- Set the new project version. **If** adjusting the fork itself bump the base version (1.0.0) |
| 51 | + `mvn versions:set 1.0.0-1.15.0` |
| 52 | +- Deploy the final jars from `lang/java/avro` |
| 53 | + `mvn deploy -DskipTests -DaltDeploymentRepository=repository-id::repository-url` |
| 54 | +- Push the release branch to remote |
| 55 | + |
| 56 | +--- |
| 57 | + |
| 58 | +<p align=center><ins><b>NOTICE</b></ins></p> |
| 59 | + |
| 60 | +<p>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).</p> |
| 61 | + |
| 62 | +<p>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.</p> |
| 63 | + |
| 64 | +<p>For further information, please contact The MITRE Corporation, Contracts Management Office, 7515 Colshire Drive, McLean, VA 22102-7539, (703) 983-6000.</p> |
| 65 | + |
| 66 | +<p align=center><ins><b>© 2024 The MITRE Corporation. All Rights Reserved.</b></ins></p> |
| 67 | + |
| 68 | +--- |
| 69 | + |
| 70 | +<p align=center>Approved for Public Release; Distribution Unlimited. Public Release Case Number 24-3517</p> |
| 71 | + |
| 72 | +--- |
24 | 73 |
|
25 | 74 | Apache Parquet is an open source, column-oriented data file format |
26 | 75 | designed for efficient data storage and retrieval. It provides high |
|
0 commit comments