github sksamuel/hoplite v3.0.0

4 hours ago

What's Changed

  • Fix decoder error handling: Triple, BooleanArray, Regex by @sksamuel in #520
  • Add @ConfigEnumDefault for enum fallback values (#478) by @sksamuel in #521
  • Fix decoder bugs: BigInteger/BigDecimal precision and collection element type by @sksamuel in #519
  • Add tests confirming decoder bug fixes from #519 by @sksamuel in #523
  • Don't crash on empty-key ${} placeholders (#469) by @sksamuel in #522
  • Allow negative endpoints in IntRange / LongRange decoders by @sksamuel in #542
  • Let arrow/vavr OptionDecoder accept MapNode and ArrayNode by @sksamuel in #538
  • Fix ${random.string(N)} never producing the letter 'z' by @sksamuel in #531
  • Fix ${{ hoplite:env }} returning the host CPU count by @sksamuel in #529
  • Fix ${random.double} returning a Long instead of a Double by @sksamuel in #527
  • Keep acronyms together in SnakeCase / KebabCase param mappers by @sksamuel in #544
  • Stop ConfigSource.fromPaths/fromClasspathResources leaking streams by @sksamuel in #532
  • Stop ConfigSource.fromResourcesOrFiles leaking the probe stream by @sksamuel in #539
  • Use string concatenation in MonthDayDecoder instead of prependIndent by @sksamuel in #543
  • Catch exceptions in hoplite-javax security decoders by @sksamuel in #541
  • Add SecretFilesPreprocessor to add secrets into configs referenced from a dir by @Bengreen in #470
  • Close the input stream in InputStreamPropertySource by @sksamuel in #540
  • Fix RandomContextResolver parameterised paths never matching by @sksamuel in #528
  • Stop SystemPropertyContextResolver crashing on empty-key placeholders by @sksamuel in #537
  • Fix env-var list elements coming out in HashMap iteration order by @sksamuel in #530
  • SecretFilesPreprocessor: switch placeholder format to ${secret:key} by @sksamuel in #547
  • SecretFilesPreprocessor: surface missing-file as a clean ConfigFailure by @sksamuel in #581
  • docs: fix JsonPropertySource example referencing the wrong class by @sksamuel in #582
  • Fix typos and one wrong-verb docstring by @sksamuel in #580
  • hoplite-aws2: use Locale.ROOT for RegionDecoder case folding by @sksamuel in #564
  • Fix typo in cascade error message: "overriden" -> "overridden" by @sksamuel in #575
  • addResourceOrFileSource: forward the optional flag in the filesystem branch by @sksamuel in #571
  • addResourceOrFileSource: stop dropping the leading slash before the file probe by @sksamuel in #563
  • IntDecoder/ByteDecoder/ShortDecoder: range-check LongNode instead of silently truncating by @sksamuel in #579
  • hoplite-toml: surface TOML parse errors instead of returning a partial result by @sksamuel in #554
  • Don't crash the loader on ${random.int(0)} and similar empty ranges by @sksamuel in #569
  • Fix typos: "Uknown", "seperated", "recursivel" by @sksamuel in #556
  • EnumDecoder: match against Enum.name, not toString() by @sksamuel in #565
  • Close input stream in ConfigFilePropertySource on the empty-file paths by @sksamuel in #551
  • hoplite-hdfs: catch IllegalArgumentException from Hadoop Path constructor by @sksamuel in #562
  • Fix paginated SSM parameter ordering: last page no longer comes first by @sksamuel in #570
  • Fix @deprecated ReplaceWith pointing at the same misspelled method by @sksamuel in #566
  • Recognise Null / NULL / ~ as YAML null literals by @sksamuel in #536
  • hoplite-yaml / hoplite-hocon: pin reader charset to UTF-8 by @sksamuel in #573
  • AWS preprocessors: distinguish "secret is not JSON" from "key missing in secret JSON" by @sksamuel in #559
  • Render cascade override message in the correct direction by @sksamuel in #578
  • Close the InputStreamReader in PropsParser by @sksamuel in #567
  • SealedClassDecoder: align deriveInstance object lookup with java.simpleName by @sksamuel in #576
  • Lower-case file extensions so the parser registry lookup is case-insensitive by @sksamuel in #574
  • hoplite-aws2: AwsSecretsManagerSource null-checks secretString() by @sksamuel in #568
  • docs: addPathSource and PropertySource.path read from the filesystem, not classpath by @sksamuel in #572
  • hoplite-watch: stop FileWatcher spin-looping when the watch service is closed by @sksamuel in #558
  • hoplite-yaml: pass the error message to error() instead of a lambda by @sksamuel in #553
  • hoplite-aws-kotlin: paginate ParameterStorePathPreprocessor results by @sksamuel in #552
  • docs: add SecretFilesPreprocessor section to README by @sksamuel in #550
  • Make SystemPropertiesPropertySource prefix configurable (#545) by @sksamuel in #546
  • hoplite-watch: route FixedIntervalWatchable callback failures through errorHandler by @sksamuel in #560
  • ReloadableConfig: publish errorHandler safely to the watcher thread (@volatile) by @sksamuel in #588
  • CommandLinePropertySource: don't crash when delimiter is a substring of the prefix by @sksamuel in #584
  • LookupPreprocessor: resolve cased/dashed paths when PathNormalizer is active (#503) by @sksamuel in #591
  • SealedClassDecoder: don't crash when no sealed subtype matches the node by @sksamuel in #577
  • HashObfuscator: emit the documented number of hash characters by @sksamuel in #585
  • Stop legacy preprocessors from mangling ${{...}} (#472) by @sksamuel in #525
  • Fix InformationUnit.Octets ratio (1 octet == 1 byte) by @sksamuel in #549
  • docs: document Spring-style env-var binding rules in the README by @sksamuel in #548
  • Random resolver/preprocessor: never return a negative int/long by @sksamuel in #590
  • Don't discard a scalar when a higher-precedence map shares its key (#592) by @sksamuel in #594
  • MapDecoder: mark key/value paths as used in array-of-objects form by @sksamuel in #557
  • Mark vavr Map entries as used so strict() doesn't flag them by @sksamuel in #535
  • Close the MANIFEST.MF input stream in ManifestContextResolver by @sksamuel in #555
  • Close internal stream wrappers in YAML / JSON / HOCON parsers by @sksamuel in #561
  • loadProps: preserve null elements in list values instead of dropping them by @sksamuel in #589
  • ContextResolver: split key/default on the first ':-' so defaults can contain ':-' by @sksamuel in #587
  • Mark LinkedHashMap entries as used so strict() doesn't flag them by @sksamuel in #534
  • Don't flag env vars or sysprops as unused in strict() mode (#505) by @sksamuel in #524

New Contributors

Full Changelog: v3.0.0.RC3...v3.0.0

Don't miss a new hoplite release

NewReleases is sending notifications on new releases.