Skip to content

Releases: ImSejin/common-utils

v0.14.0

28 Dec 12:20
Compare
Choose a tag to compare

v0.13.0

29 Oct 14:41
Compare
Choose a tag to compare

v0.12.0

09 Oct 05:39
Compare
Choose a tag to compare

v0.11.0

12 Sep 04:51
Compare
Choose a tag to compare

v0.10.0

21 Aug 06:42
Compare
Choose a tag to compare

v0.9.0

25 May 15:14
Compare
Choose a tag to compare

v0.8.0

10 Apr 14:43
Compare
Choose a tag to compare

Modification

  • 🚚 Move: all methods in TypeClassifier to ClassUtils
  • 🚚 Move: package tool.crypto to security.crypto
  • 🚚 Move: pacakge of ClassAssert, PackageAssert from assertion.reflect to assertion.lang
  • 🚚 Move: pacakge of ArrayAssert from assertion.array to assertion.lang
  • 🚚 Move: pacakge of StringAssert from assertion.chars to assertion.lang
  • 🚚 Move: pacakge of BooleanAssert, CharacterAssert, DoubleAssert, FloatAssert, NumberAssert from assertion.primitive to assertion.lang
  • πŸ”₯ Remove: methods instantiate(Class, Class[], Object[]), invoke(Class, Object, String, Class[], Object[]) in ReflectionUtils
  • πŸ”₯ Remove: redundant annotation @Nonnull on parameter
  • ♻️ Replace: methods box with wrap(Object) in ArrayUtils
  • ♻️ Replace: methods unbox with unwrap(Object) in ArrayUtils
  • ♻️ Replace: assertion.DecimalNumberAssertion with assertion.composition.DecimalNumberAssertion
  • ♻️ Replace: assertion.object.AbstractObjectAssert with assertion.lang.ObjectAssert
  • ♻️ Replace: assertion.chars.AbstractCharSequenceAssert with assertion.lang.CharSequenceAssert
  • ♻️ Replace: assertion.time.OffsetAssertion with assertion.composition.OffsetAssertable
  • ♻️ Replace: assertion.time.YearAssertion with assertion.composition.YearAssertable
  • ♻️ Replace: assertion.collection.AbstractCollectionAssert with assertion.util.CollectionAssert
  • ♻️ Replace: assertion.map.AbstractMapAssert with assertion.util.MapAssert
  • ✨ Support: multiple-dimensional array by wrap(Object), unwrap(Object) in ArrayUtils
  • ✨ Support: array by wrap(Class), unwrap(Class) in ClassUtils
  • ✨ Support: recursive conversion on method ArrayUtils#toString(Object)
  • ⚑️ Improve: method getInheritedFields(Class) in ReflectionUtils
  • ⚑️ Improve: formatting for array on Descriptor
  • ⚑️ Integrate: ArrayAssert, CollectionAssert with IterationAssertable
  • πŸ—‘οΈ Deprecate: Descriptor#equals(Object)

New features

  • πŸ“¦οΈ Add: package model.graph.traverse
  • ✨ Add: model Graph(implementation: DirectedGraph, UndirectedGraph)
  • ✨ Add: security model Verification
  • ✨ Add: assertion composition IterationAssertable
  • ✨ Add: variable EMPTY_ARRAY_MAP in ArrayUtils
  • ✨ Add: method StringUtils#indexOfCurrentClosingBracket(String, int, char, char)
  • ✨ Add: method InstantAssert#asEpochMilli()
  • ✨ Add: methods asSecondOfDay(), asNanoOfDay() in LocalTimeAssert
  • ✨ Add: methods asValue(), asLength() in YearAssert
  • ✨ Add: methods asYear(), asMonthValue() in YearMonthAssert
  • ✨ Add: methods getAllExtendedOrImplementedTypesAsSet(Class), getAllExtendedOrImplementedTypesAsGraph(Class), resolveActualTypes(Type) in ClassUtils
  • ✨ Add: methods resolveArrayType(Class, int), resolveActualComponentType(Class), dimensionOf(Class) in ArrayUtils
  • ✨ Add: methods instantiate(Constructor, Object...), invoke(Method, Object, Object[]), execute(Executable, Object, Object[]) in ReflectionUtils

Troubleshooting

  • πŸ”’οΈ Fix: security issues on reflection
  • 🐞 Fix: wrong computation in ArrayUtils#toString(Object)
  • 🐞 Fix: wrong type inference in AbstractObjectAssert
  • 🐞 Fix: wrong type inference in ArrayAssert

Dependencies

  • ⬆️ Upgrade: dependency gson from 2.8.7 to 2.9.0
  • ⬆️ Upgrade: test dependency junit5 from 5.8.1 to 5.8.2
  • ⬆️ Upgrade: test dependency assertj-core from 3.21.0 to 3.22.0
  • ⬆️ Upgrade: test dependency spock-core from 2.0-groovy-3.0 to 2.1-groovy-3.0
  • ⬆️ Upgrade: build dependency maven-compiler-plugin from 3.8.1 to 3.10.1
  • ⬆️ Upgrade: build dependency maven-jar-plugin from 3.2.0 to 3.2.2
  • ⬆️ Upgrade: build dependency gmavenplus-plugin from 1.13.0 to 1.13.1
  • ⬆️ Upgrade: build dependency jacoco-maven-plugin from 0.8.7 to 0.8.8

v0.7.1

20 Feb 06:43
Compare
Choose a tag to compare

Modification

  • ⚑️ Improve: type inference of AbstractObjectAssert

New features

  • ✨ Add: method ordinalIndexOf(String, char, int) in StringUtils
  • ✨ Add: protected method merge(Descriptor, Descriptor) in Descriptor
  • ✨ Add: method asName() in AbstractFileAssert

Troubleshooting

  • 🐞 Fix: wrong computation of ReflectionUtils#getInheritedFields(Class) on groovy class
  • 🐞 Fix: wrong computation to sustain states when convert to other assertion
  • 🐞 Fix: wrong assertion of hasName(String), hasExtension(String) in AbstractFileAssert
  • 🐞 Fix: wrong assertion of isEqualTo(BigDecimal), isNotEqualTo(BigDecimal) in BigDecimalAssert

v0.7.0

23 Oct 21:10
Compare
Choose a tag to compare

Modification

  • 🚚 Move: package of classes AbstractChrono*Assert to io.github.imsejin.common.assertion.time.chrono
  • πŸ”₯ Remove: methods anyNullOrBlank(Collection), allNullOrBlank(Collection) in StringUtils
  • πŸ”₯ Remove: methods toPositive, toNegative that has a parameter as primitive type in NumberUtils
  • ♻️ Change: default description for assertions AbstractObjectAssert, AbstractCharSequenceAssert, AbstractChronoLocalDateAssert, AbstractChronoLocalDateTimeAssert, AbstractChronoZonedDateTimeAssert, LocalTimeAssert, OffsetDateTimeAssert, OffsetTimeAssert
  • ♻️ Change: some generic type of AbstractMapAssert, AbstractChronoLocalDateAssert, AbstractChronoLocalDateTimeAssert, AbstractChronoZonedDateTimeAssert, LocalTimeAssert, OffsetDateTimeAssert, OffsetTimeAssert
  • ♻️ Change: default assertion descriptions as variables
  • ♻️ Change: method anyContains(String, Collection) to anyContains(String, Iterable) in StringUtils
  • ♻️ Change: parameter of methods box, unbox to be non-null in ArrayUtils
  • ♻️ Replace: method baseName(File) with getBaseName(String) in FilenameUtils
  • ♻️ Replace: method extension(File) with getExtension(String) in FilenameUtils
  • ♻️ Replace: method formatComma(long) with formatComma(double) in StringUtils
  • ♻️ Replace: methods isNullOrEmpty with isNullOrEmpty(Object) in ArrayUtils
  • ♻️ Replace: methods exists with exists(Object) in ArrayUtils
  • ⚑️ Improve: architecture of time assertions with extension of class AbstractTemporalAssert
  • ⚑️ Improve: performance of anyEquals(String, Collection) in StringUtils

New features

  • ✨ Support: assertions for BigInteger, BigDecimal
  • ✨ Add: assertions InstantAssert, YearAssert, YearMonthAssert
  • ✨ Add: abstract assertion AbstractTemporalAssert
  • ✨ Add: interfaces YearAssertion, OffsetAssertion for assertion
  • ✨ Add: method asInstant() to AbstractChronoLocalDateTimeAssert, AbstractChronoZonedDateTimeAssert, OffsetDateTimeAssert
  • ✨ Add: method isOdd(BigInteger) in MathUtils
  • ✨ Add: method download(URL, File) in FileUtils
  • ✨ Add: methods ifNullOrEmpty(Collection, Collection), ifNullOrEmpty(Collection, Supplier), exists(Map) in CollectionUtils

Dependencies

  • βž– Remove: useless build dependency maven-dependency-plugin
  • ⬆️ Upgrade: test dependency junit5 from 5.7.2 to 5.8.1
  • ⬆️ Upgrade: test dependency assertj-core from 3.20.2 to 3.21.0
  • ⬆️ Upgrade: test dependency lombok from 1.18.20 to 1.18.22
  • ⬆️ Upgrade: build dependency maven-javadoc-plugin from 3.2.0 to 3.3.1
  • ⬆️ Upgrade: build dependency maven-gpg-plugin from 1.6 to 3.0.1
  • ⬆️ Upgrade: build dependency maven-gmavenplus-plugin from 1.12.1 to 1.13.0

Troubleshooting

  • 🐞 Fix: wrong type inference in AbstractMapAssert
  • 🐞 Fix: wrong assertion condition of isNotSameSize(Map) in AbstractMapAssert
  • 🐞 Fix: wrong default description when array is multi-dimensional
  • 🐞 Fix: wrong comparison in NumberUtils#hasDecimalPart(BigDecimal)

Full Changelog: 0.6.0...0.7.0

v0.6.0

21 Aug 10:30
Compare
Choose a tag to compare

Modification

  • 🚚 Move: method hasDecimalPart(double) from MathUtils to NumberUtils
  • 🚚 Rename: constant OperatingSystem to OS
  • 🚚 Rename: method toWrapper(Class) to box(Class) in TypeClassifier
  • 🚚 Rename: method toPrimitive(Class) to unbox(Class) in TypeClassifier
  • 🚚 Rename: method toWrapper to box in ArrayUtils
  • 🚚 Rename: method toPrimitive to unbox in ArrayUtils
  • πŸ”₯ Remove: methods getKeywords(), contains(String), of(String) in OperatingSystem
  • ♻️ Refactor: tool Stopwatch
  • ♻️ Change: method from containsAny(Object...) to containsAny(Object, Object...) in ArrayAssert

New features

  • ✨ Add: tool ClassFinder
  • ✨ Add: utility ReflectionUtils
  • ✨ Add: interface for two way ecryption Crypto
  • ✨ Add: classes AES128, AES192, AES256 that are implemetations of Crypto
  • ✨ Add: method getTimeUnit() in Stopwatch
  • ✨ Add: method prepend(Object[], Object...), append(Object[], Object...) in ArrayUtils
  • ✨ Add: methods findAllFiles(Path), deleteRecursively(Path, FileVisitOption...) in FileUtils
  • ✨ Add: methods isSuperclass(Class, Class), initialValueOf(Class) in ClassUtils
  • ✨ Add: methods reverse(long), reverse(BigInteger), hasDecimalPart(BigDecimal) in NumberUtils
  • ✨ Add: methods getCurrentOs(), isCurrentOs() in OS
  • ✨ Add: method containsAny(T, T...) in AbstractCollectionAssert
  • ✨ Add: method doesNotContainNull() in ArrayAssert, AbstractCollectionAssert
  • ✨ Add: methods isBetween(NUMBER, NUMBER), isStrictlyBetween(NUMBER, NUMBER), isCloseTo(NUMBER, double) in NumberAssert
  • ✨ Add: conversion methods in some assertion classes
  • ✨ Add: default description for some assertion classes

Troubleshooting

  • 🐞 Fix: wrong assertion condition of isNotSameLength(CharSequence) in AbstractCharSequenceAssert
  • 🐞 Fix: wrong assertion condition of isLetter(), isLetterOrDigit(), isUppercase(), isLowercase(), isAlphabetic(), startsWith(String), endsWith(String), contains(String) in StringAssert