Skip to content

v0.7.3

Latest

Choose a tag to compare

@merlimat merlimat released this 12 May 20:47

Dependency cleanup

This release shrinks the lightproto-code-generator dependency footprint and removes the transitive log4j 1.2.17 that came in via jibx-tools. Generated code is byte-identical to v0.7.2.

Drop jibx-tools dependency (#8)

jibx-tools was only used for two simple pluralize / depluralize helpers feeding into generated repeated-field accessor names (addItem, getItemsCount, …). The actual logic — ~40 lines of suffix-rule manipulation from org.jibx.util.NameUtilities — is now vendored directly into the code generator (BSD 3-clause, attributed in source). This drops:

  • org.jibx:jibx-tools 1.3.3
  • log4j:log4j 1.2.17 (multiple CVEs)
  • ~10 ancient org.eclipse.* JDT jars

The vendored behavior is locked in by a new parameterized UtilTest that covers every branch of the rules (including the case-sensitivity quirk where "ANY" pluralizes to "ANYs").

Drop guava dependency (#9)

The code generator used guava for three small utilities: Joiner.on('/').join(...) (replaced by String.join), Maps.newHashMap() (replaced by new HashMap<>()), and CaseFormat snake↔camel conversions (replaced by two small in-tree helpers, verified byte-identical to guava's output for every input shape that appears in the code generator). Removes:

  • com.google.guava:guava 32.0.0-jre
  • 6 transitive annotation jars (failureaccess, listenablefuture, jsr305, checker-qual, error_prone_annotations, j2objc-annotations)

Net effect

After these two changes, the lightproto-code-generator runtime dependency tree is just protobuf-java + slf4j-api + roaster. The generated runtime is unchanged.