commit | 7bd7070bf4c5aeb23d62b3285371ff09d61155ed | [log] [tgz] |
---|---|---|
author | Renovate Bot <renovate-bot@benkard.de> | Thu Aug 08 00:02:56 2024 +0000 |
committer | Renovate Bot <renovate-bot@benkard.de> | Thu Aug 08 00:02:56 2024 +0000 |
tree | 417471a5c6dfc76c8b1bfb3571f1023be1a0d19d | |
parent | 15310a21589e37a422074fcab106543927d47566 [diff] | |
parent | d2293da18175caf643ca11cd791d2b4c5afa7233 [diff] |
Update all non-major dependencies (mulk/jgvariant!28) This MR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [org.tukaani:xz](https://tukaani.org/xz/java.html) ([source](https://github.com/tukaani-project/xz-java)) | compile | minor | `1.9` -> `1.10` | | [org.eclipse:yasson](https://projects.eclipse.org/projects/ee4j.yasson) ([source](https://github.com/eclipse-ee4j/yasson)) | compile | patch | `3.0.3` -> `3.0.4` | | [org.eclipse.parsson:parsson](https://github.com/eclipse-ee4j/parsson) | compile | patch | `1.1.6` -> `1.1.7` | | [com.uber.nullaway:nullaway](https://github.com/uber/NullAway) | | patch | `0.11.0` -> `0.11.1` | | [io.hosuaby:inject-resources-junit-jupiter](https://github.com/hosuaby/inject-resources) | test | patch | `0.3.3` -> `0.3.5` | | [org.codehaus.mojo:exec-maven-plugin](https://www.mojohaus.org/exec-maven-plugin) ([source](https://github.com/mojohaus/exec-maven-plugin)) | build | minor | `3.3.0` -> `3.4.0` | --- ### Release Notes <details> <summary>tukaani-project/xz-java</summary> ### [`v1.10`](https://github.com/tukaani-project/xz-java/releases/tag/v1.10): XZ for Java 1.10 [Compare Source](https://github.com/tukaani-project/xz-java/compare/v1.9...v1.10) </details> <details> <summary>eclipse-ee4j/yasson</summary> ### [`v3.0.4`](https://github.com/eclipse-ee4j/yasson/compare/3.0.3...3.0.4) [Compare Source](https://github.com/eclipse-ee4j/yasson/compare/3.0.3...3.0.4) </details> <details> <summary>eclipse-ee4j/parsson</summary> ### [`v1.1.7`](https://github.com/eclipse-ee4j/parsson/compare/1.1.6...1.1.7) [Compare Source](https://github.com/eclipse-ee4j/parsson/compare/1.1.6...1.1.7) </details> <details> <summary>uber/NullAway</summary> ### [`v0.11.1`](https://github.com/uber/NullAway/blob/HEAD/CHANGELOG.md#Version-0111) [Compare Source](https://github.com/uber/NullAway/compare/v0.11.0...v0.11.1) - Fix issue 1008 ([#​1009](https://github.com/uber/NullAway/issues/1009)) - JSpecify: read upper bound annotations from bytecode and add tests ([#​1004](https://github.com/uber/NullAway/issues/1004)) - Fix crash with suggested suppressions in JSpecify mode ([#​1001](https://github.com/uber/NullAway/issues/1001)) - Update to JSpecify 1.0 and use JSpecify annotations in NullAway code ([#​1000](https://github.com/uber/NullAway/issues/1000)) - Expose [@​EnsuresNonNull](https://github.com/EnsuresNonNull) and [@​RequiresNonNull](https://github.com/RequiresNonNull) in annotations package ([#​999](https://github.com/uber/NullAway/issues/999)) - Don't report initializer warnings on [@​NullUnmarked](https://github.com/NullUnmarked) constructors / methods ([#​997](https://github.com/uber/NullAway/issues/997)) - Strip annotations from MethodSymbol strings ([#​993](https://github.com/uber/NullAway/issues/993)) - JSpecify: fix crashes where declared parameter / return types were raw ([#​989](https://github.com/uber/NullAway/issues/989)) - JSpecify: Handle [@​nullable](https://github.com/nullable) elements for enhanced-for-loops on arrays ([#​986](https://github.com/uber/NullAway/issues/986)) - Features/944 tidy stream nullability propagator ([#​985](https://github.com/uber/NullAway/issues/985)) - Tests for loops over arrays ([#​982](https://github.com/uber/NullAway/issues/982)) - Bug fixes for array subtyping at returns / parameter passing ([#​980](https://github.com/uber/NullAway/issues/980)) - JSpecify: Handle [@​nonnull](https://github.com/nonnull) elements in [@​nullable](https://github.com/nullable) content arrays ([#​963](https://github.com/uber/NullAway/issues/963)) - Don't report [@​nullable](https://github.com/nullable) type argument errors for unmarked classes ([#​958](https://github.com/uber/NullAway/issues/958)) - External Library Models: Adding support for Nullable upper bounds of Generic Type parameters ([#​949](https://github.com/uber/NullAway/issues/949)) - Refactoring / code cleanups: - Test on JDK 22 ([#​992](https://github.com/uber/NullAway/issues/992)) - Add test case for [@​nullable](https://github.com/nullable) Void with override in JSpecify mode ([#​990](https://github.com/uber/NullAway/issues/990)) - Enable UnnecessaryFinal and PreferredInterfaceType EP checks ([#​991](https://github.com/uber/NullAway/issues/991)) - Add missing [@​test](https://github.com/test) annotation ([#​988](https://github.com/uber/NullAway/issues/988)) - Fix typo in variable name ([#​987](https://github.com/uber/NullAway/issues/987)) - Remove AbstractConfig class ([#​974](https://github.com/uber/NullAway/issues/974)) - Fix Javadoc for MethodRef ([#​973](https://github.com/uber/NullAway/issues/973)) - Refactored data clumps with the help of LLMs (research project) ([#​960](https://github.com/uber/NullAway/issues/960)) - Build / CI tooling maintenance: - Various cleanups enabled by bumping minimum Java and Error Prone versions ([#​962](https://github.com/uber/NullAway/issues/962)) - Disable publishing of snapshot builds from CI ([#​967](https://github.com/uber/NullAway/issues/967)) - Update Gradle action usage in CI workflow ([#​969](https://github.com/uber/NullAway/issues/969)) - Update Gradle config to always compile Java code using JDK 17 ([#​971](https://github.com/uber/NullAway/issues/971)) - Update JavaParser to 3.26.0 ([#​970](https://github.com/uber/NullAway/issues/970)) - Reenable JMH benchmarking in a safer manner ([#​975](https://github.com/uber/NullAway/issues/975)) - Updated JMH Benchmark Comment Action ([#​976](https://github.com/uber/NullAway/issues/976)) - Update to Gradle 8.8 ([#​981](https://github.com/uber/NullAway/issues/981)) - Update to Error Prone 2.28.0 ([#​984](https://github.com/uber/NullAway/issues/984)) - Update to Gradle 8.9 ([#​998](https://github.com/uber/NullAway/issues/998)) - Update to WALA 1.6.6 ([#​1003](https://github.com/uber/NullAway/issues/1003)) </details> <details> <summary>hosuaby/inject-resources</summary> ### [`v0.3.5`](https://github.com/hosuaby/inject-resources/compare/v0.3.4...v0.3.5) [Compare Source](https://github.com/hosuaby/inject-resources/compare/v0.3.4...v0.3.5) ### [`v0.3.4`](https://github.com/hosuaby/inject-resources/compare/v0.3.3...v0.3.4) [Compare Source](https://github.com/hosuaby/inject-resources/compare/v0.3.3...v0.3.4) </details> <details> <summary>mojohaus/exec-maven-plugin</summary> ### [`v3.4.0`](https://github.com/mojohaus/exec-maven-plugin/releases/tag/3.4.0) [Compare Source](https://github.com/mojohaus/exec-maven-plugin/compare/3.3.0...3.4.0) <!-- Optional: add a release summary here --> #### 🚀 New features and improvements - Allow `<includePluginDependencies>` to be specified for the exec:exec goal ([#​432](https://github.com/mojohaus/exec-maven-plugin/pull/432)) [@​sebthom](https://github.com/sebthom) #### 🐛 Bug Fixes - Do not get UPPERCASE env vars ([#​427](https://github.com/mojohaus/exec-maven-plugin/pull/427)) [@​wheezil](https://github.com/wheezil) #### 📦 Dependency updates - Bump org.codehaus.mojo:mojo-parent from 82 to 84 ([#​434](https://github.com/mojohaus/exec-maven-plugin/pull/434)) [@​dependabot](https://github.com/dependabot) - Bump org.codehaus.plexus:plexus-xml from 3.0.0 to 3.0.1 ([#​431](https://github.com/mojohaus/exec-maven-plugin/pull/431)) [@​dependabot](https://github.com/dependabot) #### 👻 Maintenance - Remove Log4j 1.2.x from ITs ([#​437](https://github.com/mojohaus/exec-maven-plugin/pull/437)) [@​slawekjaranowski](https://github.com/slawekjaranowski) #### 🔧 Build - Use Maven 3.9.7 and 4.0.0-beta-3 ([#​433](https://github.com/mojohaus/exec-maven-plugin/pull/433)) [@​slawekjaranowski](https://github.com/slawekjaranowski) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This MR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yNC4wIiwidXBkYXRlZEluVmVyIjoiMzQuMjQuMCJ9-->
This library provides a GVariant parser in pure Java.
jgvariant-core
provides Decoder<T>
, which read a given type of GVariant-encoded value from a ByteBuffer. The class also contains factory methods to acquire those instances.
The various subclasses of Decoder
together implement the GVariant serialization specification.
jgvariant-ostree
provides instances of Decoder<T>
for various GVariant types used in OSTree repositories.
To parse a GVariant value of type "a(si)"
, which is an array of pairs of String and int
, you can use the following code:
record ExampleRecord(String s, int i) {} var decoder = Decoder.ofArray( Decoder.ofStructure( ExampleRecord.class, Decoder.ofString(StandardCharsets.UTF_8), Decoder.ofInt().withByteOrder(ByteOrder.LITTLE_ENDIAN))); byte[] bytes = ...; List<ExampleRecord> example = decoder.decode(ByteBuffer.wrap(bytes));
The jgvariant-tool
module contains a tool called jgvariant
that can be used to manipulate GVariant-formatted files from the command line. Its primary purpose is to enable the scripting of OSTree repository management tasks.
$ jgvariant ostree summary read ./jgvariant-ostree/src/test/resources/ostree/summary
Output:
{ "entries": [ { "ref": "mulkos/1.x/amd64", "value": { "checksum": "66ff167ff35ce87daac817447a9490a262ee75f095f017716a6eb1a9d9eb3350", "metadata": { "fields": { "ostree.commit.timestamp": 1640537170 } }, "size": 214 } } ], "metadata": { "fields": { "ostree.summary.last-modified": 1640537300, "ostree.summary.tombstone-commits": false, "ostree.static-deltas": { "3d3b3329dca38871f29aeda1bf5854d76c707fa269759a899d0985c91815fe6f-66ff167ff35ce87daac817447a9490a262ee75f095f017716a6eb1a9d9eb3350": "03738040e28e7662e9c9d2599c530ea974e642c9f87e6c00cbaa39a0cdac8d44", "31c8835d5c9d2c6687a50091c85142d1b2d853ff416a9fb81b4ee30754510d52": "f481144629474bd88c106e45ac405ebd75b324b0655af1aec14b31786ae1fd61", "31c8835d5c9d2c6687a50091c85142d1b2d853ff416a9fb81b4ee30754510d52-3d3b3329dca38871f29aeda1bf5854d76c707fa269759a899d0985c91815fe6f": "2c6a07bc1cf4d7ce7d00f82d7d2d6d156fd0e31d476851b46dc2306b181b064a" }, "ostree.summary.mode": "bare", "ostree.summary.indexed-deltas": true } } }
Superblock checksum 0...
, between commits 3...
and 6...
:
$ jgvariant ostree summary add-static-delta ./jgvariant-ostree/src/test/resources/ostree/summary 03738040e28e7662e9c9d2599c530ea974e642c9f87e6c00cbaa39a0cdac8d44 66ff167ff35ce87daac817447a9490a262ee75f095f017716a6eb1a9d9eb3350 3d3b3329dca38871f29aeda1bf5854d76c707fa269759a899d0985c91815fe6f
Superblock checksum f...
, between the empty commit and 3...
:
$ jgvariant ostree summary add-static-delta ./jgvariant-ostree/src/test/resources/ostree/summary f481144629474bd88c106e45ac405ebd75b324b0655af1aec14b31786ae1fd61 31c8835d5c9d2c6687a50091c85142d1b2d853ff416a9fb81b4ee30754510d52
Checksums can be given in either hex (64 digits) or a variant of Base64 (43 digits) where /
is replaced by _
. The latter format is used to identify the start and end commits of deltas as part of folder names below deltas/
in the OSTree repository itself.
You can build the tool either as a shaded JAR or as a native executable.
To build and run a shaded JAR:
$ mvn package -pl jgvariant-tool -am -Pshade $ java -jar jgvariant-tool/target/jgvariant-tool-*.jar ...
To build and run a native executable:
$ mvn package -pl jgvariant-tool -am -Pnative $ ./jgvariant-tool/target/jgvariant ...
You can also run the tool directly with Maven using the exec
profile:
$ mvn verify -pl jgvariant-tool -am -Pexec -Dexec.args="..."
<project> ... <dependencyManagement> ... <dependencies> <dependency> <groupId>eu.mulk.jgvariant</groupId> <artifactId>jgvariant-bom</artifactId> <version>0.1.10</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> ... </dependencyManagement> <dependencies> ... <dependency> <groupId>eu.mulk.jgvariant</groupId> <artifactId>jgvariant-core</artifactId> </dependency> <dependency> <groupId>eu.mulk.jgvariant</groupId> <artifactId>jgvariant-ostree</artifactId> </dependency> ... </dependencies> ... </project>
dependencies { ... implementation(platform("eu.mulk.jgvariant:jgvariant-bom:0.1.10") implementation("eu.mulk.jgvariant:jgvariant-core") implementation("eu.mulk.jgvariant:jgvariant-ostree") ... }