Jbock Versions Save

Reflectionless command line parser

v5.8

2 years ago

In order to avoid certain staleness problems with gradle's "isolating" annotation processing model, some features had to be removed.

  • Remove the Converter annotation.
  • The converter attribute must now point to a static member class of the command class (see note).
  • Forbid inheritance of abstract methods.

Note: Effectively, it is still possible to define a "standalone" converter class, by writing a small static inner class which implements Supplier<StringConverter<X>> and returns an instance of the "real" converter class from its get method. For example, see how BigIntegerConverter is used in CustomConverterCommand.

v5.7

2 years ago
  • allow abstract overrides
  • improve parameters-validation error message
  • forbid StringConverter of Optional
  • improve invalid position error message

v5.6

2 years ago
  • fix converter error message
  • use either 1.5

v5.5

2 years ago
  • use either 1.3

v5.4

2 years ago
  • use either:1.2
  • stop including either in the compiler jar

v5.3

2 years ago
  • depend on either:1.1
  • stop using javadoc as input for usage documentation

v5.2

2 years ago
  • depend on io.github.jbock-java:either:1.0
  • new attribute generateParseOrExitMethod
  • remove attributes atFileExpansion and helpEnabled; configure the ParseRequest instead
  • fix formatting in generated character converter
  • improve at-file syntax: ignore all empty lines, allow quoting
  • add support for alternative Optional types: vavr
  • the generated parse method now takes an argument of type ParseRequest
  • use 4-space indentation for all source files

core_5.1

2 years ago

jbock 5.1 "midsummer edition"

  • removed ansi attribute from Command, it is now a runtime config in StandardErrorHandler
  • remove redundant attribute exithook from StandardErrorHandler; custom exit logic can now be implemented without this; see implementation of generated method parseOrExit
  • add attribute unixClustering to CommandModel
  • fix: atFileExpansion = false didn't compile
  • fix: potential infinite loop at compile time, in EnumName logic
  • allow additional tokens after at file expansion
  • refactoring: avoid lambdas in generated method StatefulParser#build, extract convert logic for enums, File and char to inner classes

compiler_5.0

2 years ago
  • Changed the maven group name to io.github.jbock-java
  • Renamed the artifacts: "jbock-annotations" -> "jbock" (aka "core"), "jbock" -> "jbock-compiler".
  • moved the Either library into core
  • add runtime model of the annotated class (net.jbock.model.CommandModel)
  • parse now returns an Either
  • rename the generated class, "*_Parser" -> "*Parser"
  • SuperCommand is now an attribute
  • add the atFileExpansion attribute
  • add the unixClustering attribute
  • runtime config, like terminalWidth, works differently (see implementation of parseOrExit)

a4.4

3 years ago
  • new attribute 'ansi'
  • please note that jbock requires java 11, since version 4.3.000