Releases: rvesse/airline
Releases · rvesse/airline
3.0.0
3.0.0 is a major release
Breaking Changes
- Java 11 is now the minimum required Java version
- Full JPMS support
@BashCompletion
annotation moved package in order to enable this
@AirlineModule
is now the only composition annotation enabled by default, use of@Inject
and its associated dependencies is now entirely optional
Full Change Log
- Core Improvements
- First class support for
BigInteger
andBigDecimal
as numeric types - First class support for
Path
- Provided corrected spelling for
ConvertResult.wasSuccessful()
, old mis-spelt method preserved but marked as
deprecated - Added a
ModulePathLocator
as an additionalResourceLocator
to allow finding resources on the Module Path when those resources are properly encapsulated by their owning modules - Added a
JpmsResourceLocator
as an additionalResourceLocator
to allow finding resources when running in a JPMS
context for resources that are not properly encapsulated or whosemodule-info.java
you cannot control (requires additional moduleairline-jpms-resources
) - BREAKING - Only
@AirlineModule
is used as a composition annotation by default, use of the older
@javax.inject.Inject
or@jakarta.inject.Inject
annotations MUST now be explicitly configured.
- First class support for
- Help Improvements
- Added an
@SeeAlso
annotation to Airline Core (#51) - BREAKING -
airline-help-bash
has moved@BashCompletion
annotation into
com.github.rvesse.airline.annotations.help.bash
to avoid package collisions between this module and the core in
order to allow this module to become a JPMS module
- Added an
- Fluent API Improvements
- A
ParserBuilder
created by callingwithParser()
on aCliBuilder
can now return control back to its parent via
theparent()
method for cleaner Fluid CLI definitions
- A
- Dependency Updates
- BREAKING - Minimum JDK Version is now 11
- Apache Commons Collections upgraded to 4.4
- Apache Commons Lang upgraded to 3.14.0
- BREAKING
jakarta.inject
andairline-backcompat-javaxinject
were madeoptional
so will no longer be pulled in
automatically - Various build plugins updated to the latest available versions (this only impacts developers building the library
from source) - Added new
airline-help-external
module with a dependency on Apache Commons CSV 1.10.0 - Added new
airline-jpms-resources
module with a dependency on
ClassGraph to enable resource location when Airline is used on Module
Path i.e. JPMS runtime context
- Maven Plugin improvements
- Some logging has moved up to INFO from DEBUG, so you no longer have to use
-X
to see it
- Some logging has moved up to INFO from DEBUG, so you no longer have to use
- New
airline-prompts
module provides a Fluent API for defining user prompts (#92)- Prompt timeouts so non-interactive apps don't hang forever
- Configurable prompt sources
- Configurable prompt formatting
- Prompt for keys, strings, passwords, options (from a pre-configured list) or a strongly typed value
- Integrates with Airline's type conversion
- New
airline-help-external
modules provides new help annotations that allow more complex help to be provided via
classpath/file resources rather than directly in the annotations. This is a generalisation of the mechanism already
used by@Version
annotation. (#52)- Adds
@ExternalDiscussion
@ExternalProse
,@ExternalExitCodes
,@ExternalExamples
and
@ExternalExamplesTabular
annotations
- Adds
- Build and Release Improvements
- All Airline modules are now fully fledged JPMS modules meaning they can be used on the JVM Module Path instead of
the Classpath where preferred- See
airline-examples
module for examples of constructing amodule-info.java
that pulls in other Airline
modules and seemodularExample
script for examples of invoking an Airline based app using the Module Path
- See
- All Airline modules are now fully fledged JPMS modules meaning they can be used on the JVM Module Path instead of