commit | e0022376763eaefe76ff2b552e0d91f21999ae8a | [log] [tgz] |
---|---|---|
author | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | Sun Oct 09 19:32:25 2022 +0200 |
committer | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | Sun Oct 09 19:32:25 2022 +0200 |
tree | 4a4e7140be02b563696792e434fc3ac3d072bfc9 | |
parent | 119011dc82f87e4e7356b410ff02239bbe531794 [diff] |
Make annotation dependencies optional again. All static-analaysis-related annotation libraries are compile-time-only and can therefore be marked optional. Also changes the Java module descriptors to use 'requires static' instead of plain 'requires' for the corresponding modules, which lifts the runtime dependency from the point of view of the module system. Change-Id: I414907b002f6b0290ddb61b6f0ce899481c6efd3
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));
<project> ... <dependencyManagement> ... <dependencies> <dependency> <groupId>eu.mulk.jgvariant</groupId> <artifactId>jgvariant-bom</artifactId> <version>0.1.6</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.6") implementation("eu.mulk.jgvariant:jgvariant-core") implementation("eu.mulk.jgvariant:jgvariant-ostree") ... }